Version Description
- Added: New statistics system powered by vueJS.
- Added: Ajax loading for likers box with better optimization.
- Added: Huge optimization on admin core functionalities with reducing resource consumption.
- Upgraded: The log pages templates.
- Fixed: Some issues in button styles.
- Fixed: Some issues in ulike js functionality.
- Fixed: An issue with supporting ulike in ultimatememeber.
- Fixed: Colorpicker issue in admin settings by replacing the wpColorPicker with spectrum plugin.
Download this release
Release Info
Developer | alimir |
Plugin | WP ULike |
Version | 3.5.0 |
Comparing to | |
See all releases |
Code changes from version 3.4 to 3.5.0
- admin/admin-ajax.php +41 -1
- admin/admin-functions.php +61 -1114
- admin/admin-hooks.php +19 -137
- admin/assets/css/admin.css +263 -96
- admin/assets/js/{statistics.js → plugins.js} +2422 -277
- admin/assets/js/scripts.js +435 -0
- admin/assets/js/settings.js +0 -294
- admin/assets/js/solo/vue/vue.js +10947 -0
- admin/assets/js/solo/vue/vue.min.js +6 -0
- admin/classes/class-wp-ulike-admin-assets.php +103 -0
- admin/classes/class-wp-ulike-admin-pages.php +153 -0
- admin/classes/class-wp-ulike-pagination.php +27 -22
- admin/classes/class-wp-ulike-settings.php +6 -11
- admin/classes/class-wp-ulike-stats.php +240 -222
- admin/classes/class-wp-ulike-widget.php +7 -0
- admin/includes/geoiploc.php +0 -367
admin/admin-ajax.php
CHANGED
@@ -7,10 +7,50 @@
|
|
7 |
* @link https://wpulike.com
|
8 |
*/
|
9 |
|
|
|
|
|
|
|
|
|
|
|
10 |
/*******************************************************
|
11 |
Start AJAX From Here
|
12 |
*******************************************************/
|
13 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
14 |
/**
|
15 |
* AJAX handler to store the state of dismissible notices.
|
16 |
*
|
@@ -21,7 +61,7 @@
|
|
21 |
function wp_ulike_ajax_notice_handler() {
|
22 |
// Store it in the options table
|
23 |
if ( ! isset( $_POST['nonce'] ) || ! wp_verify_nonce( $_POST['nonce'], 'wp-ulike-notice-dismissed' ) ) {
|
24 |
-
wp_send_json_error(
|
25 |
} else {
|
26 |
update_option( 'wp-ulike-notice-dismissed', TRUE );
|
27 |
wp_send_json_success( __( 'It\'s OK.', WP_ULIKE_SLUG ) );
|
7 |
* @link https://wpulike.com
|
8 |
*/
|
9 |
|
10 |
+
// If this file is called directly, abort.
|
11 |
+
if ( ! defined( 'WPINC' ) ) {
|
12 |
+
die('No Naughty Business Please !');
|
13 |
+
}
|
14 |
+
|
15 |
/*******************************************************
|
16 |
Start AJAX From Here
|
17 |
*******************************************************/
|
18 |
|
19 |
+
/**
|
20 |
+
* AJAX handler to get statistics data
|
21 |
+
*
|
22 |
+
* @author Alimir
|
23 |
+
* @since 3.4
|
24 |
+
* @return Void
|
25 |
+
*/
|
26 |
+
function wp_ulike_ajax_stats() {
|
27 |
+
|
28 |
+
$nonce = $_POST['nonce'];
|
29 |
+
$method = $_POST['method'];
|
30 |
+
|
31 |
+
$value = json_decode( json_encode( $_POST['value'] ), true );
|
32 |
+
|
33 |
+
// If is not json then keep it as a variable
|
34 |
+
if( !is_array( $value ) ) {
|
35 |
+
$value = $_POST['value'];
|
36 |
+
}
|
37 |
+
|
38 |
+
if ( empty( $nonce ) || ! wp_verify_nonce( $nonce, 'wp-ulike-ajax-nonce' ) ) {
|
39 |
+
wp_send_json_error( __( 'Error: Something Wrong Happened!', WP_ULIKE_SLUG ) );
|
40 |
+
}
|
41 |
+
|
42 |
+
$wp_ulike_stats = wp_ulike_stats::get_instance();
|
43 |
+
|
44 |
+
if( method_exists( $wp_ulike_stats, $method ) ) {
|
45 |
+
$output = empty( $value ) ? $wp_ulike_stats->$method() : $wp_ulike_stats->$method( $value );
|
46 |
+
wp_send_json_success( json_encode( $output ) );
|
47 |
+
}
|
48 |
+
|
49 |
+
wp_send_json_error( __( 'Error: Something Wrong Happened!', WP_ULIKE_SLUG ) );
|
50 |
+
|
51 |
+
}
|
52 |
+
add_action( 'wp_ajax_wp_ulike_ajax_stats', 'wp_ulike_ajax_stats' );
|
53 |
+
|
54 |
/**
|
55 |
* AJAX handler to store the state of dismissible notices.
|
56 |
*
|
61 |
function wp_ulike_ajax_notice_handler() {
|
62 |
// Store it in the options table
|
63 |
if ( ! isset( $_POST['nonce'] ) || ! wp_verify_nonce( $_POST['nonce'], 'wp-ulike-notice-dismissed' ) ) {
|
64 |
+
wp_send_json_error( __( 'Error: Something Wrong Happened!', WP_ULIKE_SLUG ) );
|
65 |
} else {
|
66 |
update_option( 'wp-ulike-notice-dismissed', TRUE );
|
67 |
wp_send_json_success( __( 'It\'s OK.', WP_ULIKE_SLUG ) );
|
admin/admin-functions.php
CHANGED
@@ -7,205 +7,11 @@
|
|
7 |
* @link https://wpulike.com
|
8 |
*/
|
9 |
|
10 |
-
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
/**
|
15 |
-
* Create WP ULike About page
|
16 |
-
*
|
17 |
-
* @author Alimir
|
18 |
-
* @since 1.7
|
19 |
-
* @return String
|
20 |
-
*/
|
21 |
-
function wp_ulike_about_page() {
|
22 |
-
?>
|
23 |
-
<div class="wrap about-wrap wp-ulike-about-page">
|
24 |
-
|
25 |
-
<h1><?php echo _e( 'Welcome to WP ULike', WP_ULIKE_SLUG ) . ' ' . WP_ULIKE_VERSION; ?></h1>
|
26 |
-
<div class="about-text"><?php echo _e('Thank you for choosing WP ULike! This version is our leanest and most powerful version yet.', WP_ULIKE_SLUG) ; ?><br />
|
27 |
-
|
28 |
-
<?php add_thickbox(); ?>
|
29 |
-
<a target="_blank" href="<?php echo WP_ULIKE_PLUGIN_URI . '?TB_iframe=true&width=800&height=600'; ?>" class="thickbox"> <?php _e('Visit our homepage',WP_ULIKE_SLUG); ?></a>
|
30 |
-
</div>
|
31 |
-
<div class="ulike-badge"><?php echo _e('Version',WP_ULIKE_SLUG) . ' ' . WP_ULIKE_VERSION; ?></div>
|
32 |
-
<h2 class="nav-tab-wrapper">
|
33 |
-
<a class="nav-tab <?php if(!isset($_GET["credit"])) echo 'nav-tab-active'; ?>" href="admin.php?page=wp-ulike-about"><?php echo _e('Getting Started',WP_ULIKE_SLUG); ?></a>
|
34 |
-
<a class="nav-tab <?php if(isset($_GET["credit"])) echo 'nav-tab-active'; ?>" href="admin.php?page=wp-ulike-about&credit=true"><?php echo _e('Credits',WP_ULIKE_SLUG); ?></a>
|
35 |
-
<a target="_blank" class="nav-tab" href="https://wordpress.org/support/plugin/wp-ulike"><?php echo _e('Support',WP_ULIKE_SLUG); ?></a>
|
36 |
-
<a target="_blank" class="nav-tab" href="https://wordpress.org/plugins/wp-ulike/faq/"><?php echo _e('FAQ',WP_ULIKE_SLUG); ?></a>
|
37 |
-
<a target="_blank" class="nav-tab" href="https://wordpress.org/support/view/plugin-reviews/wp-ulike"><?php echo _e('Reviews',WP_ULIKE_SLUG); ?></a>
|
38 |
-
</h2>
|
39 |
-
|
40 |
-
<?php if(!isset($_GET["credit"])): ?>
|
41 |
-
|
42 |
-
<div class="changelog headline-feature">
|
43 |
-
<h2><?php echo _e('Introducing WP ULike',WP_ULIKE_SLUG); ?> <img draggable="false" class="emoji" alt="emoji" src="https://s.w.org/images/core/emoji/2.2.1/svg/1f60a.svg"></h2>
|
44 |
-
<div class="featured-image">
|
45 |
-
<img alt="wp ulike intro" src="<?php echo WP_ULIKE_ASSETS_URL; ?>/img/wp-ulike-intro.png">
|
46 |
-
</div>
|
47 |
-
|
48 |
-
<div class="feature-section">
|
49 |
-
<div class="col">
|
50 |
-
<h2><?php echo _e('About WP ULike',WP_ULIKE_SLUG); ?></h2>
|
51 |
-
<div style="text-align:center">
|
52 |
-
<?php $args = array(
|
53 |
-
'rating' => 5,
|
54 |
-
'type' => 'rating',
|
55 |
-
'number' => 43,
|
56 |
-
);
|
57 |
-
wp_star_rating( $args ); ?>
|
58 |
-
</div>
|
59 |
-
<p class="lead-description"><?php echo _e('WP ULike plugin allows to integrate a beautiful Ajax Like Button into your wordPress website to allow your visitors to like and unlike pages, posts, comments AND buddypress activities. Its very simple to use and supports many options.',WP_ULIKE_SLUG); ?></p>
|
60 |
-
</div>
|
61 |
-
</div>
|
62 |
-
|
63 |
-
<div class="clear"></div>
|
64 |
-
</div>
|
65 |
-
<hr>
|
66 |
-
<div class="changelog feature-section three-col">
|
67 |
-
<div class="col">
|
68 |
-
<div class="icon-container">
|
69 |
-
<i class="wp-ulike-icons-hotairballoon"></i>
|
70 |
-
</div>
|
71 |
-
<h3><?php echo _e('WP Ulike Extension',WP_ULIKE_SLUG); ?></h3>
|
72 |
-
<p><?php echo _e('Right now, WP ULike support wordpress posts / comments, BuddyPress activities & bbPress Topics.',WP_ULIKE_SLUG); ?></p>
|
73 |
-
</div>
|
74 |
-
<div class="col">
|
75 |
-
<div class="icon-container">
|
76 |
-
<i class="wp-ulike-icons-globe"></i>
|
77 |
-
</div>
|
78 |
-
<h3><?php echo _e('Added More Than 20 Language Files',WP_ULIKE_SLUG); ?></h3>
|
79 |
-
<p><?php echo _e('WP ULike is already translated into +20 languages, with more always in progress.',WP_ULIKE_SLUG); ?></p>
|
80 |
-
</div>
|
81 |
-
<div class="col">
|
82 |
-
<div class="icon-container">
|
83 |
-
<i class="wp-ulike-icons-profile-male"></i>
|
84 |
-
</div>
|
85 |
-
<h3><?php echo _e('User Profile Links',WP_ULIKE_SLUG); ?></h3>
|
86 |
-
<p><?php echo _e('Since WP ULike 2.3, We have synced the likers profile with BuddyPress & UltimateMember plugins.',WP_ULIKE_SLUG); ?></p>
|
87 |
-
</div>
|
88 |
-
<div class="col">
|
89 |
-
<div class="icon-container">
|
90 |
-
<i class="wp-ulike-icons-paintbrush"></i>
|
91 |
-
</div>
|
92 |
-
<h3><?php echo _e('New Themes And Styles',WP_ULIKE_SLUG); ?></h3>
|
93 |
-
<p><?php echo _e('Since WP ULike 2.3, We have made some new styles and themes and you can customize them by your taste.',WP_ULIKE_SLUG); ?></p>
|
94 |
-
</div>
|
95 |
-
<div class="col">
|
96 |
-
<div class="icon-container">
|
97 |
-
<i class="wp-ulike-icons-trophy"></i>
|
98 |
-
</div>
|
99 |
-
<h3><?php echo _e('myCRED Points Support',WP_ULIKE_SLUG); ?></h3>
|
100 |
-
<p><?php echo _e('myCRED is an adaptive points management system that lets you award / charge your users for interacting with your WordPress.',WP_ULIKE_SLUG); ?></p>
|
101 |
-
</div>
|
102 |
-
<div class="col">
|
103 |
-
<div class="icon-container">
|
104 |
-
<i class="wp-ulike-icons-map"></i>
|
105 |
-
</div>
|
106 |
-
<h3><?php echo _e('Likers World Map',WP_ULIKE_SLUG); ?></h3>
|
107 |
-
<p><?php echo _e('Since WP ULike 2.3, We have made a new ability that you can track your likers by their country in the world map & Top Liker widget.',WP_ULIKE_SLUG); ?></p>
|
108 |
-
</div>
|
109 |
-
</div>
|
110 |
-
|
111 |
-
<div class="changelog feature-list">
|
112 |
-
<div class="return-to-dashboard">
|
113 |
-
<a href="admin.php?page=wp-ulike-statistics"><?php echo _e('WP ULike Statistics',WP_ULIKE_SLUG); ?> → <?php echo _e('Home',WP_ULIKE_SLUG); ?></a> <?php echo _e('OR',WP_ULIKE_SLUG); ?> <a href="admin.php?page=wp-ulike-settings"><?php echo _e('WP ULike Settings',WP_ULIKE_SLUG); ?></a>
|
114 |
-
</div>
|
115 |
-
</div>
|
116 |
-
|
117 |
-
<?php else: ?>
|
118 |
-
|
119 |
-
<p class="about-description"><?php echo _e('WP ULike is created by many love and time. Enjoy it :)',WP_ULIKE_SLUG); ?></p>
|
120 |
-
<h3 class="wp-people-group"><?php echo _e('Project Leaders',WP_ULIKE_SLUG); ?></h3>
|
121 |
-
<ul id="wp-people-group-project-leaders" class="wp-people-group">
|
122 |
-
<li class="wp-person" id="wp-person-alimir">
|
123 |
-
<a href="https://profiles.wordpress.org/alimir/"><?php echo get_avatar( 'info@alimir.ir', 64 ); ?></a>
|
124 |
-
<a class="web" target="_blank" href="https://ir.linkedin.com/in/alimirir/">Ali Mirzaei</a>
|
125 |
-
<span class="title"><?php echo _e('Project Lead & Developer',WP_ULIKE_SLUG); ?></span>
|
126 |
-
</li>
|
127 |
-
</ul>
|
128 |
-
|
129 |
-
<h3 class="wp-people-group"><?php _e('Translations',WP_ULIKE_SLUG); ?></h3>
|
130 |
-
<ul>
|
131 |
-
<li>English (United States)</li>
|
132 |
-
<li>Persian (Iran)</li>
|
133 |
-
<li>French (France)</li>
|
134 |
-
<li>Chinese (China)</li>
|
135 |
-
<li>Chinese (Taiwan)</li>
|
136 |
-
<li>Dutch (Netherlands) </li>
|
137 |
-
<li>Arabic</li>
|
138 |
-
<li>Portuguese (Brazil)</li>
|
139 |
-
<li>Turkish (Turkey)</li>
|
140 |
-
<li>Greek</li>
|
141 |
-
<li>Russian (Russia)</li>
|
142 |
-
<li>Spanish (Spain)</li>
|
143 |
-
<li>German (Germany)</li>
|
144 |
-
<li>Japanese</li>
|
145 |
-
<li>Romanian (Romania)</li>
|
146 |
-
<li>Slovak (Slovakia)</li>
|
147 |
-
<li>Czech (Czech Republic)</li>
|
148 |
-
<li>Hebrew (Israel)</li>
|
149 |
-
<li>Italian (Italy)</li>
|
150 |
-
<li>Polish (Poland)</li>
|
151 |
-
<li>Finnish</li>
|
152 |
-
<li>Hungarian (Hungary)</li>
|
153 |
-
<li>Lithuanian (Lithuania)</li>
|
154 |
-
<li>Indonesian (Indonesia)</li>
|
155 |
-
<li>Khmer</li>
|
156 |
-
<li>Norwegian Bokmal (Norway)</li>
|
157 |
-
<li>Portuguese (Portugal)</li>
|
158 |
-
<li>Swedish (Sweden)</li>
|
159 |
-
<li>Danish (Denmark)</li>
|
160 |
-
<li>Estonian</li>
|
161 |
-
<li>Korean (Korea)</li>
|
162 |
-
<li>Vietnamese</li>
|
163 |
-
<li>Basque</li>
|
164 |
-
<li>Bosnian (Bosnia and Herzegovina)</li>
|
165 |
-
<li>English (United Kingdom)</li>
|
166 |
-
</ul>
|
167 |
-
|
168 |
-
<p class="about-description"><?php _e('Would you like to help translate the plugin into more languages?',WP_ULIKE_SLUG); ?> <a target="_blank" href="https://www.transifex.com/projects/p/wp-ulike/" title"WP-Translations">[<?php _e('Join our WP-Translations Community',WP_ULIKE_SLUG); ?>]</a></p>
|
169 |
-
|
170 |
-
<h3 class="wp-people-group"><?php echo _e('Other Plugins',WP_ULIKE_SLUG); ?></h3>
|
171 |
-
<ul class="wp-people-group">
|
172 |
-
<li class="wp-person" id="wp-person-alimirzaei">
|
173 |
-
<a target="_blank" href="https://wordpress.org/plugins/blue-login-style"><img class="gravatar" src="<?php echo WP_ULIKE_ASSETS_URL; ?>/img/blue-login-themes.jpg" alt="Blue Login Themes" /></a>
|
174 |
-
<a class="web" href="https://profiles.wordpress.org/alimir/">Ali Mirzaei</a>
|
175 |
-
<span class="title">Blue Login Themes</span>
|
176 |
-
</li>
|
177 |
-
<li class="wp-person" id="wp-person-alimirzaei">
|
178 |
-
<a target="_blank" href="https://wordpress.org/plugins/custom-fields-notifications/"><img class="gravatar" src="<?php echo WP_ULIKE_ASSETS_URL; ?>/img/custom-fileds-notifications.png" alt="Custom Fields Notifications" /></a>
|
179 |
-
<a class="web" href="https://profiles.wordpress.org/alimir/">Ali Mirzaei</a>
|
180 |
-
<span class="title">Custom Fields Notifications</span>
|
181 |
-
</li>
|
182 |
-
<li class="wp-person" id="wp-person-alimirzaei">
|
183 |
-
<a target="_blank" href="http://wordpress.org/plugins/ajax-bootmodal-login/"><img class="gravatar" src="<?php echo WP_ULIKE_ASSETS_URL; ?>/img/ajax-bootmodal-login.jpg" alt="Ajax BootModal Login" /></a>
|
184 |
-
<a class="web" href="https://profiles.wordpress.org/alimir/">Ali Mirzaei</a>
|
185 |
-
<span class="title">Ajax BootModal Login</span>
|
186 |
-
</li>
|
187 |
-
</ul>
|
188 |
-
|
189 |
-
<h3 class="wp-people-group"><?php _e('Like this plugin?',WP_ULIKE_SLUG); ?></h3>
|
190 |
-
<div class="wp-ulike-notice">
|
191 |
-
<img src="<?php echo WP_ULIKE_ASSETS_URL; ?>/img/wp-ulike-badge.png" alt="WP ULike Plugin">
|
192 |
-
<div class="wp-ulike-notice-text">
|
193 |
-
<p><?php echo _e( "It's great to see that you've been using the WP ULike plugin for a while now. Hopefully you're happy with it! If so, would you consider leaving a positive review? It really helps to support the plugin and helps others to discover it too!" , WP_ULIKE_SLUG ); ?> </p>
|
194 |
-
<p class="links">
|
195 |
-
<a href="https://wordpress.org/support/plugin/wp-ulike/reviews/?filter=5" target="_blank"><?php echo _e( "Sure, I'd love to!", WP_ULIKE_SLUG ); ?></a>
|
196 |
-
</p>
|
197 |
-
</div>
|
198 |
-
</div>
|
199 |
-
|
200 |
-
<?php endif; ?>
|
201 |
-
|
202 |
-
</div>
|
203 |
-
<?php
|
204 |
}
|
205 |
|
206 |
-
/*******************************************************
|
207 |
-
Logs Page
|
208 |
-
*******************************************************/
|
209 |
/**
|
210 |
* Return per_page option value
|
211 |
*
|
@@ -214,932 +20,69 @@ function wp_ulike_about_page() {
|
|
214 |
* @return Integer
|
215 |
*/
|
216 |
function wp_ulike_logs_return_per_page(){
|
217 |
-
$user
|
218 |
-
$screen
|
219 |
-
$option
|
220 |
-
$per_page = get_user_meta($user, $option, true);
|
221 |
|
222 |
-
|
223 |
-
return 20;
|
224 |
-
}
|
225 |
-
else
|
226 |
-
return $per_page;
|
227 |
}
|
228 |
|
229 |
/**
|
230 |
-
*
|
231 |
*
|
232 |
* @author Alimir
|
233 |
-
* @since
|
234 |
-
* @return
|
235 |
-
*/
|
236 |
-
function wp_ulike_logs_per_page() {
|
237 |
-
$option = 'per_page';
|
238 |
-
$args = array(
|
239 |
-
'label' => __('Logs',WP_ULIKE_SLUG),
|
240 |
-
'default' => 20,
|
241 |
-
'option' => 'wp_ulike_logs_per_page'
|
242 |
-
);
|
243 |
-
add_screen_option( $option, $args );
|
244 |
-
}
|
245 |
-
|
246 |
-
/**
|
247 |
-
* Create WP ULike Post Logs page with separate pagination
|
248 |
-
*
|
249 |
-
* @author Alimir
|
250 |
-
* @since 1.7
|
251 |
-
* @return String
|
252 |
*/
|
253 |
-
function
|
254 |
global $wpdb;
|
255 |
-
$alternate = true;
|
256 |
-
$items = $wpdb->get_var("SELECT COUNT(*) FROM ".$wpdb->prefix."ulike");
|
257 |
-
if($items > 0) {
|
258 |
-
$p = new wp_ulike_pagination;
|
259 |
-
$p->items($items);
|
260 |
-
$p->limit(wp_ulike_logs_return_per_page()); // Limit entries per page
|
261 |
-
$p->target("admin.php?page=wp-ulike-post-logs");
|
262 |
-
$p->calculate(); // Calculates what to show
|
263 |
-
$p->parameterName('page_number');
|
264 |
-
$p->adjacents(1); //No. of page away from the current page
|
265 |
|
266 |
-
|
267 |
-
|
268 |
-
|
269 |
-
|
270 |
-
|
271 |
-
|
272 |
-
//Query for limit page_number
|
273 |
-
$limit = "LIMIT " . ($p->page - 1) * $p->limit . ", " . $p->limit;
|
274 |
-
|
275 |
-
$get_ulike_logs = $wpdb->get_results("SELECT * FROM ".$wpdb->prefix."ulike ORDER BY id DESC ".$limit."");
|
276 |
-
|
277 |
-
?>
|
278 |
-
<div class="wrap">
|
279 |
-
<h2><?php _e('WP ULike Logs', WP_ULIKE_SLUG); ?></h2>
|
280 |
-
<h3><?php _e('Post Likes Logs', WP_ULIKE_SLUG); ?></h3>
|
281 |
-
<div class="tablenav">
|
282 |
-
<div class='tablenav-pages'>
|
283 |
-
<span class="displaying-num"><?php echo $items . ' ' . __('Logs',WP_ULIKE_SLUG); ?></span>
|
284 |
-
<?php echo $p->show(); // Echo out the list of paging. ?>
|
285 |
-
</div>
|
286 |
-
</div>
|
287 |
-
<table class="widefat">
|
288 |
-
<thead>
|
289 |
-
<tr>
|
290 |
-
<th width="2%"><?php _e('ID', WP_ULIKE_SLUG); ?></th>
|
291 |
-
<th width="10%"><?php _e('Username', WP_ULIKE_SLUG); ?></th>
|
292 |
-
<th><?php _e('Status', WP_ULIKE_SLUG); ?></th>
|
293 |
-
<th width="6%"><?php _e('Post ID', WP_ULIKE_SLUG); ?></th>
|
294 |
-
<th><?php _e('Post Title', WP_ULIKE_SLUG); ?></th>
|
295 |
-
<th width="20%"><?php _e('Date / Time', WP_ULIKE_SLUG); ?></th>
|
296 |
-
<th><?php _e('IP', WP_ULIKE_SLUG); ?></th>
|
297 |
-
<th><?php _e('Actions', WP_ULIKE_SLUG); ?></th>
|
298 |
-
</tr>
|
299 |
-
</thead>
|
300 |
-
<tbody class="wp_ulike_logs">
|
301 |
-
<?php
|
302 |
-
foreach ( $get_ulike_logs as $get_ulike_log )
|
303 |
-
{
|
304 |
-
?>
|
305 |
-
<tr <?php if ($alternate == true) echo 'class="alternate"';?>>
|
306 |
-
<td>
|
307 |
-
<?php echo $get_ulike_log->id; ?>
|
308 |
-
</td>
|
309 |
-
<td>
|
310 |
-
<?php
|
311 |
-
$user_info = get_userdata($get_ulike_log->user_id);
|
312 |
-
if($user_info)
|
313 |
-
echo get_avatar( $user_info->user_email, 16, '' , 'avatar') . '<em> @' . $user_info->user_login . '</em>';
|
314 |
-
else
|
315 |
-
echo '<em> #'. __('Guest User',WP_ULIKE_SLUG) .'</em>';
|
316 |
-
?>
|
317 |
-
</td>
|
318 |
-
<td>
|
319 |
-
<?php
|
320 |
-
$get_the_status = $get_ulike_log->status;
|
321 |
-
if($get_the_status == 'like')
|
322 |
-
echo '<i class="wp-ulike-icons-thumb_up"></i>';
|
323 |
-
else
|
324 |
-
echo '<i class="wp-ulike-icons-thumb_down"></i>';
|
325 |
-
?>
|
326 |
-
</td>
|
327 |
-
<td>
|
328 |
-
<?php echo $get_ulike_log->post_id; ?>
|
329 |
-
</td>
|
330 |
-
<td>
|
331 |
-
<?php echo '<a href="'.get_permalink($get_ulike_log->post_id).'" title="'.get_the_title($get_ulike_log->post_id).'">'.get_the_title($get_ulike_log->post_id).'</a>'; ?>
|
332 |
-
</td>
|
333 |
-
<td>
|
334 |
-
<?php
|
335 |
-
echo wp_ulike_date_i18n($get_ulike_log->date_time);
|
336 |
-
?>
|
337 |
-
</td>
|
338 |
-
<td>
|
339 |
-
<?php echo $get_ulike_log->ip; ?>
|
340 |
-
</td>
|
341 |
-
<td>
|
342 |
-
<button class="wp_ulike_delete button" type="button" data-nonce="<?php echo wp_create_nonce( 'ulike' . $get_ulike_log->id ); ?>" data-id="<?php echo $get_ulike_log->id;?>" data-table="ulike"><i class="dashicons dashicons-trash"></i></button>
|
343 |
-
</td>
|
344 |
-
<?php
|
345 |
-
$alternate = !$alternate;
|
346 |
-
}
|
347 |
-
?>
|
348 |
-
</tr>
|
349 |
-
</tbody>
|
350 |
-
</table>
|
351 |
-
<div class="tablenav">
|
352 |
-
<div class='tablenav-pages'>
|
353 |
-
<span class="displaying-num"><?php echo $items . ' ' . __('Logs',WP_ULIKE_SLUG); ?></span>
|
354 |
-
<?php echo $p->show(); // Echo out the list of paging. ?>
|
355 |
-
</div>
|
356 |
-
</div>
|
357 |
-
</div>
|
358 |
-
<?php
|
359 |
-
} else {
|
360 |
-
echo "<div class='error'><p>" . __('<strong>ERROR:</strong> No Record Found. (This problem is created because you don\'t have any data on this table)',WP_ULIKE_SLUG) . "</p></div>";
|
361 |
-
}
|
362 |
-
}
|
363 |
-
|
364 |
-
/**
|
365 |
-
* Create WP ULike Comment Logs page with separate pagination
|
366 |
-
*
|
367 |
-
* @author Alimir
|
368 |
-
* @since 1.7
|
369 |
-
* @return String
|
370 |
-
*/
|
371 |
-
function wp_ulike_comment_likes_logs(){
|
372 |
-
global $wpdb;
|
373 |
-
$alternate = true;
|
374 |
-
$items = $wpdb->get_var("SELECT COUNT(*) FROM ".$wpdb->prefix."ulike_comments");
|
375 |
-
if($items > 0) {
|
376 |
-
$p = new wp_ulike_pagination;
|
377 |
-
$p->items($items);
|
378 |
-
$p->limit(wp_ulike_logs_return_per_page()); // Limit entries per page
|
379 |
-
$p->target("admin.php?page=wp-ulike-comment-logs");
|
380 |
-
$p->calculate(); // Calculates what to show
|
381 |
-
$p->parameterName('page_number');
|
382 |
-
$p->adjacents(1); //No. of page away from the current page
|
383 |
-
|
384 |
-
if(!isset($_GET['page_number'])) {
|
385 |
-
$p->page = 1;
|
386 |
-
} else {
|
387 |
-
$p->page = $_GET['page_number'];
|
388 |
-
}
|
389 |
-
|
390 |
-
//Query for limit page_number
|
391 |
-
$limit = "LIMIT " . ($p->page - 1) * $p->limit . ", " . $p->limit;
|
392 |
-
|
393 |
-
$get_ulike_logs = $wpdb->get_results("SELECT * FROM ".$wpdb->prefix."ulike_comments ORDER BY id DESC ".$limit."");
|
394 |
-
?>
|
395 |
-
<div class="wrap">
|
396 |
-
<h2><?php _e('WP ULike Logs', WP_ULIKE_SLUG); ?></h2>
|
397 |
-
<h3><?php _e('Comment Likes Logs', WP_ULIKE_SLUG); ?></h3>
|
398 |
-
<div class="tablenav">
|
399 |
-
<div class='tablenav-pages'>
|
400 |
-
<span class="displaying-num"><?php echo $items . ' ' . __('Logs',WP_ULIKE_SLUG); ?></span>
|
401 |
-
<?php echo $p->show(); // Echo out the list of paging. ?>
|
402 |
-
</div>
|
403 |
-
</div>
|
404 |
-
<table class="widefat">
|
405 |
-
<thead>
|
406 |
-
<tr>
|
407 |
-
<th width="2%"><?php _e('ID', WP_ULIKE_SLUG); ?></th>
|
408 |
-
<th width="10%"><?php _e('Username', WP_ULIKE_SLUG); ?></th>
|
409 |
-
<th width="5%"><?php _e('Status', WP_ULIKE_SLUG); ?></th>
|
410 |
-
<th width="6%"><?php _e('Comment ID', WP_ULIKE_SLUG); ?></th>
|
411 |
-
<th><?php _e('Comment Author', WP_ULIKE_SLUG); ?></th>
|
412 |
-
<th><?php _e('Comment Text', WP_ULIKE_SLUG); ?></th>
|
413 |
-
<th width="20%"><?php _e('Date / Time', WP_ULIKE_SLUG); ?></th>
|
414 |
-
<th><?php _e('IP', WP_ULIKE_SLUG); ?></th>
|
415 |
-
<th><?php _e('Actions', WP_ULIKE_SLUG); ?></th>
|
416 |
-
</tr>
|
417 |
-
</thead>
|
418 |
-
<tbody class="wp_ulike_logs">
|
419 |
-
<?php
|
420 |
-
foreach ( $get_ulike_logs as $get_ulike_log )
|
421 |
-
{
|
422 |
-
?>
|
423 |
-
<tr <?php if ($alternate == true) echo 'class="alternate"';?>>
|
424 |
-
<td>
|
425 |
-
<?php echo $get_ulike_log->id; ?>
|
426 |
-
</td>
|
427 |
-
<td>
|
428 |
-
<?php
|
429 |
-
$user_info = get_userdata($get_ulike_log->user_id);
|
430 |
-
if($user_info)
|
431 |
-
echo get_avatar( $user_info->user_email, 16, '' , 'avatar') . '<em> @' . $user_info->user_login . '</em>';
|
432 |
-
else
|
433 |
-
echo '<em> #'. __('Guest User',WP_ULIKE_SLUG) .'</em>';
|
434 |
-
?>
|
435 |
-
</td>
|
436 |
-
<td>
|
437 |
-
<?php
|
438 |
-
$get_the_status = $get_ulike_log->status;
|
439 |
-
if($get_the_status == 'like')
|
440 |
-
echo '<i class="wp-ulike-icons-thumb_up"></i>';
|
441 |
-
else
|
442 |
-
echo '<i class="wp-ulike-icons-thumb_down"></i>';
|
443 |
-
?>
|
444 |
-
</td>
|
445 |
-
<td>
|
446 |
-
<?php echo $get_ulike_log->comment_id; ?>
|
447 |
-
</td>
|
448 |
-
<td>
|
449 |
-
<?php echo get_comment_author($get_ulike_log->comment_id) ?>
|
450 |
-
</td>
|
451 |
-
<td>
|
452 |
-
<?php echo get_comment_text($get_ulike_log->comment_id) ?>
|
453 |
-
</td>
|
454 |
-
<td>
|
455 |
-
<?php
|
456 |
-
echo wp_ulike_date_i18n($get_ulike_log->date_time);
|
457 |
-
?>
|
458 |
-
</td>
|
459 |
-
<td>
|
460 |
-
<?php echo $get_ulike_log->ip; ?>
|
461 |
-
</td>
|
462 |
-
<td>
|
463 |
-
<button class="wp_ulike_delete button" type="button" data-nonce="<?php echo wp_create_nonce( 'ulike_comments' . $get_ulike_log->id ); ?>" data-id="<?php echo $get_ulike_log->id;?>" data-table="ulike_comments"><i class="dashicons dashicons-trash"></i></button>
|
464 |
-
</td>
|
465 |
-
<?php
|
466 |
-
$alternate = !$alternate;
|
467 |
-
}
|
468 |
-
?>
|
469 |
-
</tr>
|
470 |
-
</tbody>
|
471 |
-
</table>
|
472 |
-
<div class="tablenav">
|
473 |
-
<div class='tablenav-pages'>
|
474 |
-
<span class="displaying-num"><?php echo $items . ' ' . __('Logs',WP_ULIKE_SLUG); ?></span>
|
475 |
-
<?php echo $p->show(); // Echo out the list of paging. ?>
|
476 |
-
</div>
|
477 |
-
</div>
|
478 |
-
</div>
|
479 |
-
|
480 |
-
<?php
|
481 |
-
} else {
|
482 |
-
echo "<div class='error'><p>" . __('<strong>ERROR:</strong> No Record Found. (This problem is created because you don\'t have any data on this table)',WP_ULIKE_SLUG) . "</p></div>";
|
483 |
-
}
|
484 |
-
}
|
485 |
-
|
486 |
-
/**
|
487 |
-
* Create WP ULike BuddyPress Logs page with separate pagination
|
488 |
-
*
|
489 |
-
* @author Alimir
|
490 |
-
* @since 1.7
|
491 |
-
* @return String
|
492 |
-
*/
|
493 |
-
function wp_ulike_buddypress_likes_logs(){
|
494 |
-
|
495 |
-
if( ! defined( 'BP_VERSION' ) ) {
|
496 |
-
echo sprintf( '<div class="wrap">' . __( '%s is Not Activated!', WP_ULIKE_SLUG ) . '</div>' ,__( 'BuddyPress', WP_ULIKE_SLUG ) );
|
497 |
-
return;
|
498 |
-
}
|
499 |
-
|
500 |
-
global $wpdb;
|
501 |
-
$alternate = true;
|
502 |
-
$items = $wpdb->get_var("SELECT COUNT(*) FROM ".$wpdb->prefix."ulike_activities");
|
503 |
-
if($items > 0) {
|
504 |
-
$p = new wp_ulike_pagination;
|
505 |
-
$p->items($items);
|
506 |
-
$p->limit(wp_ulike_logs_return_per_page()); // Limit entries per page
|
507 |
-
$p->target("admin.php?page=wp-ulike-bp-logs");
|
508 |
-
$p->calculate(); // Calculates what to show
|
509 |
-
$p->parameterName('page_number');
|
510 |
-
$p->adjacents(1); //No. of page away from the current page
|
511 |
-
|
512 |
-
if(!isset($_GET['page_number'])) {
|
513 |
-
$p->page = 1;
|
514 |
-
} else {
|
515 |
-
$p->page = $_GET['page_number'];
|
516 |
-
}
|
517 |
-
|
518 |
-
//Query for limit page_number
|
519 |
-
$limit = "LIMIT " . ($p->page - 1) * $p->limit . ", " . $p->limit;
|
520 |
-
|
521 |
-
$get_ulike_logs = $wpdb->get_results("SELECT * FROM ".$wpdb->prefix."ulike_activities ORDER BY id DESC ".$limit."");
|
522 |
-
|
523 |
-
?>
|
524 |
-
<div class="wrap">
|
525 |
-
<h2><?php _e('WP ULike Logs', WP_ULIKE_SLUG); ?></h2>
|
526 |
-
<h3><?php _e('Activity Likes Logs', WP_ULIKE_SLUG); ?></h3>
|
527 |
-
<div class="tablenav">
|
528 |
-
<div class='tablenav-pages'>
|
529 |
-
<span class="displaying-num"><?php echo $items . ' ' . __('Logs',WP_ULIKE_SLUG); ?></span>
|
530 |
-
<?php echo $p->show(); // Echo out the list of paging. ?>
|
531 |
-
</div>
|
532 |
-
</div>
|
533 |
-
<table class="widefat">
|
534 |
-
<thead>
|
535 |
-
<tr>
|
536 |
-
<th width="3%"><?php _e('ID', WP_ULIKE_SLUG); ?></th>
|
537 |
-
<th width="13%"><?php _e('Username', WP_ULIKE_SLUG); ?></th>
|
538 |
-
<th><?php _e('Status', WP_ULIKE_SLUG); ?></th>
|
539 |
-
<th width="6%"><?php _e('Activity ID', WP_ULIKE_SLUG); ?></th>
|
540 |
-
<th><?php _e('Permalink', WP_ULIKE_SLUG); ?></th>
|
541 |
-
<th><?php _e('Date / Time', WP_ULIKE_SLUG); ?></th>
|
542 |
-
<th><?php _e('IP', WP_ULIKE_SLUG); ?></th>
|
543 |
-
<th><?php _e('Actions', WP_ULIKE_SLUG); ?></th>
|
544 |
-
</tr>
|
545 |
-
</thead>
|
546 |
-
<tbody class="wp_ulike_logs">
|
547 |
-
<?php
|
548 |
-
foreach ( $get_ulike_logs as $get_ulike_log )
|
549 |
-
{
|
550 |
-
?>
|
551 |
-
<tr <?php if ($alternate == true) echo 'class="alternate"';?>>
|
552 |
-
<td>
|
553 |
-
<?php echo $get_ulike_log->id; ?>
|
554 |
-
</td>
|
555 |
-
<td>
|
556 |
-
<?php
|
557 |
-
$user_info = get_userdata($get_ulike_log->user_id);
|
558 |
-
if($user_info)
|
559 |
-
echo get_avatar( $user_info->user_email, 16, '' , 'avatar') . '<em> @' . $user_info->user_login . '</em>';
|
560 |
-
else
|
561 |
-
echo '<em> #'. __('Guest User',WP_ULIKE_SLUG) .'</em>';
|
562 |
-
?>
|
563 |
-
</td>
|
564 |
-
<td>
|
565 |
-
<?php
|
566 |
-
$get_the_status = $get_ulike_log->status;
|
567 |
-
if($get_the_status == 'like')
|
568 |
-
echo '<i class="wp-ulike-icons-thumb_up"></i>';
|
569 |
-
else
|
570 |
-
echo '<i class="wp-ulike-icons-thumb_down"></i>';
|
571 |
-
?>
|
572 |
-
</td>
|
573 |
-
<td>
|
574 |
-
<?php echo $get_ulike_log->activity_id; ?>
|
575 |
-
</td>
|
576 |
-
<td>
|
577 |
-
<?php printf( __( '<a href="%1$s">Activity Permalink</a>', WP_ULIKE_SLUG ), bp_activity_get_permalink( $get_ulike_log->activity_id ) ); ?>
|
578 |
-
</td>
|
579 |
-
<td>
|
580 |
-
<?php
|
581 |
-
echo wp_ulike_date_i18n($get_ulike_log->date_time);
|
582 |
-
?>
|
583 |
-
</td>
|
584 |
-
<td>
|
585 |
-
<?php echo $get_ulike_log->ip; ?>
|
586 |
-
</td>
|
587 |
-
<td>
|
588 |
-
<button class="wp_ulike_delete button" type="button" data-nonce="<?php echo wp_create_nonce( 'ulike_activities' . $get_ulike_log->id ); ?>" data-id="<?php echo $get_ulike_log->id;?>" data-table="ulike_activities"><i class="dashicons dashicons-trash"></i></button>
|
589 |
-
</td>
|
590 |
-
<?php
|
591 |
-
$alternate = !$alternate;
|
592 |
-
}
|
593 |
-
?>
|
594 |
-
</tr>
|
595 |
-
</tbody>
|
596 |
-
</table>
|
597 |
-
<div class="tablenav">
|
598 |
-
<div class='tablenav-pages'>
|
599 |
-
<span class="displaying-num"><?php echo $items . ' ' . __('Logs',WP_ULIKE_SLUG); ?></span>
|
600 |
-
<?php echo $p->show(); // Echo out the list of paging. ?>
|
601 |
-
</div>
|
602 |
-
</div>
|
603 |
-
</div>
|
604 |
-
|
605 |
-
<?php
|
606 |
-
} else {
|
607 |
-
echo "<div class='error'><p>" . __('<strong>ERROR:</strong> No Record Found. (This problem is created because you don\'t have any data on this table)',WP_ULIKE_SLUG) . "</p></div>";
|
608 |
-
}
|
609 |
-
}
|
610 |
|
611 |
-
|
612 |
-
* Create WP ULike bbPress Logs page with separate pagination
|
613 |
-
*
|
614 |
-
* @author Alimir
|
615 |
-
* @since 2.2
|
616 |
-
* @updated 2.4.2
|
617 |
-
* @return String
|
618 |
-
*/
|
619 |
-
function wp_ulike_bbpress_likes_logs(){
|
620 |
|
621 |
-
if(
|
622 |
-
echo sprintf( '<div class="wrap">' . __( '%s is Not Activated!', WP_ULIKE_SLUG ) . '</div>' ,__( 'bbPress', WP_ULIKE_SLUG ) );
|
623 |
return;
|
624 |
}
|
625 |
|
626 |
-
|
627 |
-
$alternate = true;
|
628 |
-
$items = $wpdb->get_var("SELECT COUNT(*) FROM ".$wpdb->prefix."ulike_forums");
|
629 |
-
if($items > 0) {
|
630 |
-
$p = new wp_ulike_pagination;
|
631 |
-
$p->items($items);
|
632 |
-
$p->limit(wp_ulike_logs_return_per_page()); // Limit entries per page
|
633 |
-
$p->target("admin.php?page=wp-ulike-bbpress-logs");
|
634 |
-
$p->calculate(); // Calculates what to show
|
635 |
-
$p->parameterName('page_number');
|
636 |
-
$p->adjacents(1); //No. of page away from the current page
|
637 |
-
|
638 |
-
if(!isset($_GET['page_number'])) {
|
639 |
-
$p->page = 1;
|
640 |
-
} else {
|
641 |
-
$p->page = $_GET['page_number'];
|
642 |
-
}
|
643 |
-
|
644 |
-
//Query for limit page_number
|
645 |
-
$limit = "LIMIT " . ($p->page - 1) * $p->limit . ", " . $p->limit;
|
646 |
-
|
647 |
-
$get_ulike_logs = $wpdb->get_results("SELECT * FROM ".$wpdb->prefix."ulike_forums ORDER BY id DESC ".$limit."");
|
648 |
|
649 |
-
|
650 |
-
|
651 |
-
|
652 |
-
|
653 |
-
|
654 |
-
|
655 |
-
|
656 |
-
<?php echo $p->show(); // Echo out the list of paging. ?>
|
657 |
-
</div>
|
658 |
-
</div>
|
659 |
-
<table class="widefat">
|
660 |
-
<thead>
|
661 |
-
<tr>
|
662 |
-
<th width="2%"><?php _e('ID', WP_ULIKE_SLUG); ?></th>
|
663 |
-
<th width="10%"><?php _e('Username', WP_ULIKE_SLUG); ?></th>
|
664 |
-
<th><?php _e('Status', WP_ULIKE_SLUG); ?></th>
|
665 |
-
<th width="6%"><?php _e('Topic ID', WP_ULIKE_SLUG); ?></th>
|
666 |
-
<th><?php _e('Topic Title', WP_ULIKE_SLUG); ?></th>
|
667 |
-
<th width="20%"><?php _e('Date / Time', WP_ULIKE_SLUG); ?></th>
|
668 |
-
<th><?php _e('IP', WP_ULIKE_SLUG); ?></th>
|
669 |
-
<th><?php _e('Actions', WP_ULIKE_SLUG); ?></th>
|
670 |
-
</tr>
|
671 |
-
</thead>
|
672 |
-
<tbody class="wp_ulike_logs">
|
673 |
-
<?php
|
674 |
-
foreach ( $get_ulike_logs as $get_ulike_log )
|
675 |
-
{
|
676 |
-
?>
|
677 |
-
<tr <?php if ($alternate == true) echo 'class="alternate"';?>>
|
678 |
-
<td>
|
679 |
-
<?php echo $get_ulike_log->id; ?>
|
680 |
-
</td>
|
681 |
-
<td>
|
682 |
-
<?php
|
683 |
-
$user_info = get_userdata($get_ulike_log->user_id);
|
684 |
-
if($user_info)
|
685 |
-
echo get_avatar( $user_info->user_email, 16, '' , 'avatar') . '<em> @' . $user_info->user_login . '</em>';
|
686 |
-
else
|
687 |
-
echo '<em> #'. __('Guest User',WP_ULIKE_SLUG) .'</em>';
|
688 |
-
?>
|
689 |
-
</td>
|
690 |
-
<td>
|
691 |
-
<?php
|
692 |
-
$get_the_status = $get_ulike_log->status;
|
693 |
-
if($get_the_status == 'like')
|
694 |
-
echo '<i class="wp-ulike-icons-thumb_up"></i>';
|
695 |
-
else
|
696 |
-
echo '<i class="wp-ulike-icons-thumb_down"></i>';
|
697 |
-
?>
|
698 |
-
</td>
|
699 |
-
<td>
|
700 |
-
<?php echo $get_ulike_log->topic_id; ?>
|
701 |
-
</td>
|
702 |
-
<td>
|
703 |
-
<?php echo '<a href="'.get_permalink($get_ulike_log->topic_id).'" title="'.get_the_title($get_ulike_log->topic_id).'">'.get_the_title($get_ulike_log->topic_id).'</a>'; ?>
|
704 |
-
</td>
|
705 |
-
<td>
|
706 |
-
<?php
|
707 |
-
echo wp_ulike_date_i18n($get_ulike_log->date_time);
|
708 |
-
?>
|
709 |
-
</td>
|
710 |
-
<td>
|
711 |
-
<?php echo $get_ulike_log->ip; ?>
|
712 |
-
</td>
|
713 |
-
<td>
|
714 |
-
<button class="wp_ulike_delete button" type="button" data-nonce="<?php echo wp_create_nonce( 'ulike_forums' . $get_ulike_log->id ); ?>" data-id="<?php echo $get_ulike_log->id;?>" data-table="ulike_forums"><i class="dashicons dashicons-trash"></i></button>
|
715 |
-
</td>
|
716 |
-
<?php
|
717 |
-
$alternate = !$alternate;
|
718 |
-
}
|
719 |
-
?>
|
720 |
-
</tr>
|
721 |
-
</tbody>
|
722 |
-
</table>
|
723 |
-
<div class="tablenav">
|
724 |
-
<div class='tablenav-pages'>
|
725 |
-
<span class="displaying-num"><?php echo $items . ' ' . __('Logs',WP_ULIKE_SLUG); ?></span>
|
726 |
-
<?php echo $p->show(); // Echo out the list of paging. ?>
|
727 |
-
</div>
|
728 |
-
</div>
|
729 |
-
</div>
|
730 |
|
731 |
-
|
|
|
732 |
} else {
|
733 |
-
|
734 |
-
}
|
735 |
-
|
736 |
-
|
737 |
-
|
738 |
-
|
739 |
-
|
740 |
-
|
741 |
-
|
742 |
-
|
743 |
-
|
744 |
-
*
|
745 |
-
* @since 2.1
|
746 |
-
* @return Void
|
747 |
-
*/
|
748 |
-
function wp_ulike_statistics_register_option(){
|
749 |
-
$screen = get_current_screen();
|
750 |
-
add_filter('screen_layout_columns', 'wp_ulike_statistics_display_option');
|
751 |
-
$screen->add_option('wp_ulike_statistics_screen');
|
752 |
-
}
|
753 |
-
|
754 |
-
/**
|
755 |
-
* Create WP ULike statistics with wp_ulike_stats class
|
756 |
-
*
|
757 |
-
* @author Alimir
|
758 |
-
* @since 2.0
|
759 |
-
* @return String
|
760 |
-
*/
|
761 |
-
function wp_ulike_statistics(){
|
762 |
-
|
763 |
-
global $wp_ulike_stats;
|
764 |
-
$get_option = get_option( 'wp_ulike_statistics_screen' );
|
765 |
-
|
766 |
-
echo '<div class="wrap">';
|
767 |
-
echo '<h2>' . __( 'WP ULike Statistics', WP_ULIKE_SLUG ) . '</h2>';
|
768 |
-
|
769 |
-
apply_filters( 'wp_ulike_advertisement', '__return_null' );
|
770 |
-
|
771 |
-
/*******************************************************
|
772 |
-
Welcome Panel
|
773 |
-
*******************************************************/
|
774 |
-
if($get_option['welcome_panel'] == 1){
|
775 |
-
echo '<div id="welcome-panel" class="welcome-panel"><div class="welcome-panel-content">';
|
776 |
-
echo '<h3>' . __('Welcome to WP ULike Statistics!',WP_ULIKE_SLUG) . '</h3>';
|
777 |
-
echo '<p class="about-description">' . __('We have provided some useful statistics tools in this page:',WP_ULIKE_SLUG) . '</p>';
|
778 |
-
echo '<div class="welcome-panel-column-container">';
|
779 |
-
echo '
|
780 |
-
<div class="welcome-panel-column">
|
781 |
-
<h4>'.__('Get Started').'</h4>
|
782 |
-
<a class="button button-primary button-hero" href="admin.php?page=wp-ulike-about">'.__( 'About WP ULike', WP_ULIKE_SLUG ).'</a>
|
783 |
-
<p class="hide-if-no-customize">'.__('or',WP_ULIKE_SLUG).', <a target="_blank" href="'.WP_ULIKE_PLUGIN_URI.'">'.__( 'Visit our homepage', WP_ULIKE_SLUG ).'</a></p>
|
784 |
-
</div>
|
785 |
-
<div class="welcome-panel-column">
|
786 |
-
<h4>'.__('Other Tools',WP_ULIKE_SLUG).'</h4>
|
787 |
-
<ul>
|
788 |
-
<li><a target="_blank" href="admin.php?page=wp-ulike-post-logs" class="welcome-icon welcome-view-site">'.__('Post Likes Logs',WP_ULIKE_SLUG).'</a></li>
|
789 |
-
<li><a target="_blank" href="admin.php?page=wp-ulike-comment-logs" class="welcome-icon welcome-view-site">'.__('Comment Likes Logs',WP_ULIKE_SLUG).'</a></li>
|
790 |
-
<li><a target="_blank" href="admin.php?page=wp-ulike-bp-logs" class="welcome-icon welcome-view-site">'.__('Activity Likes Logs',WP_ULIKE_SLUG).'</a></li>
|
791 |
-
<li><a target="_blank" href="admin.php?page=wp-ulike-bbpress-logs" class="welcome-icon welcome-view-site">'.__('Topics Likes Logs',WP_ULIKE_SLUG).'</a></li>
|
792 |
-
</ul>
|
793 |
-
</div>
|
794 |
-
<div class="welcome-panel-column welcome-panel-last">
|
795 |
-
<h4>'.__('Documentation').'</h4>
|
796 |
-
<ul>
|
797 |
-
<li><a target="_blank" href="https://wordpress.org/support/plugin/wp-ulike" class="welcome-icon welcome-learn-more">'.__('Support',WP_ULIKE_SLUG).'</a></li>
|
798 |
-
<li><a target="_blank" href="https://wordpress.org/plugins/wp-ulike/faq/" class="welcome-icon welcome-learn-more">'.__('FAQ',WP_ULIKE_SLUG).'</a></li>
|
799 |
-
<li><a target="_blank" href="http://preview.alimir.ir/contact/" class="welcome-icon welcome-learn-more">'.__('Contact',WP_ULIKE_SLUG).'</a></li>
|
800 |
-
<li><a target="_blank" href="https://github.com/Alimir/wp-ulike" class="welcome-icon welcome-learn-more">'.__('GitHub Repository',WP_ULIKE_SLUG).'</a></li>
|
801 |
-
</ul>
|
802 |
-
</div>
|
803 |
-
';
|
804 |
-
echo '</div></div></div>';
|
805 |
-
}
|
806 |
-
|
807 |
-
/*******************************************************
|
808 |
-
First Column
|
809 |
-
*******************************************************/
|
810 |
-
$total_likes = 0;
|
811 |
-
|
812 |
-
echo '
|
813 |
-
<div class="postbox-container" id="right-log">
|
814 |
-
<div class="metabox-holder">
|
815 |
-
<div class="meta-box-sortables ui-sortable">';
|
816 |
-
|
817 |
-
if( isset($get_option) && $get_option['summary_like_stats'] == 1){
|
818 |
-
|
819 |
-
$SummaryArr = array(
|
820 |
-
"posts" => array(
|
821 |
-
"id" => "posts_likes_stats",
|
822 |
-
"type" => "ulike",
|
823 |
-
"table" => "postmeta",
|
824 |
-
"key" => "_liked",
|
825 |
-
"dashicons" => "dashicons-admin-post",
|
826 |
-
"title" => __('Posts Likes Summary',WP_ULIKE_SLUG)
|
827 |
-
),
|
828 |
-
"comments" => array(
|
829 |
-
"id" => "comments_likes_stats",
|
830 |
-
"type" => "ulike_comments",
|
831 |
-
"table" => "commentmeta",
|
832 |
-
"key" => "_commentliked",
|
833 |
-
"dashicons" => "dashicons-admin-comments",
|
834 |
-
"title" => __('Comments Likes Summary',WP_ULIKE_SLUG)
|
835 |
-
),
|
836 |
-
"activities" => array(
|
837 |
-
"id" => "activities_likes_stats",
|
838 |
-
"type" => "ulike_activities",
|
839 |
-
"table" => "bp_activity_meta",
|
840 |
-
"key" => "_activityliked",
|
841 |
-
"dashicons" => "dashicons-groups",
|
842 |
-
"title" => __('Activities Likes Summary',WP_ULIKE_SLUG)
|
843 |
-
),
|
844 |
-
"topics" => array(
|
845 |
-
"id" => "topics_likes_stats",
|
846 |
-
"type" => "ulike_forums",
|
847 |
-
"table" => "postmeta",
|
848 |
-
"key" => "_topicliked",
|
849 |
-
"dashicons" => "dashicons-admin-post",
|
850 |
-
"title" => __('Topics Likes Summary',WP_ULIKE_SLUG)
|
851 |
-
)
|
852 |
-
);
|
853 |
-
|
854 |
-
foreach ($SummaryArr as $SummaryTotal) {
|
855 |
-
$total_likes += $wp_ulike_stats->get_all_data_date($SummaryTotal["table"],$SummaryTotal["key"]);
|
856 |
-
}
|
857 |
-
|
858 |
-
echo'
|
859 |
-
<div style="display: block;" class="postbox">
|
860 |
-
<div class="handlediv" title="Click to toggle"><br></div>
|
861 |
-
<h3 class="hndle"><span><i class="dashicons dashicons-chart-bar"></i> '.__('Summary',WP_ULIKE_SLUG).'</span></h3>
|
862 |
-
<div class="inside">';
|
863 |
-
|
864 |
-
foreach ($SummaryArr as $SummaryVal) {
|
865 |
-
|
866 |
-
echo'<table class="widefat table-stats" id="summary-stats" width="100%"><tbody>';
|
867 |
-
|
868 |
-
if($get_option[$SummaryVal['id']] == 1){
|
869 |
-
|
870 |
-
if($SummaryVal["id"] == 'posts_likes_stats'){
|
871 |
-
echo'
|
872 |
-
<tr>
|
873 |
-
<th><i class="dashicons dashicons-pressthis"></i> '.__('Total Likes',WP_ULIKE_SLUG).':</th>
|
874 |
-
<th colspan="2" id="th-colspan"><span>'.$total_likes.'</span></th>
|
875 |
-
</tr>';
|
876 |
-
}
|
877 |
-
|
878 |
-
echo'
|
879 |
-
|
880 |
-
<tr>
|
881 |
-
<th colspan="3" style="text-align: center; font-weight:bold;"><br><hr>'.$SummaryVal["title"].'<hr><br></th>
|
882 |
-
</tr>
|
883 |
-
|
884 |
-
<tr>
|
885 |
-
<th><i class="dashicons dashicons-star-filled"></i> '. __('Today',WP_ULIKE_SLUG) .':</th>
|
886 |
-
<th class="th-center"><span>'. $wp_ulike_stats->get_data_date($SummaryVal["type"],'today').'</span></th>
|
887 |
-
</tr>
|
888 |
-
|
889 |
-
<tr>
|
890 |
-
<th><i class="dashicons dashicons-star-empty"></i> '. __('Yesterday',WP_ULIKE_SLUG) .':</th>
|
891 |
-
<th class="th-center"><span>'. $wp_ulike_stats->get_data_date($SummaryVal["type"],'yesterday').'</span></th>
|
892 |
-
</tr>
|
893 |
-
|
894 |
-
<tr>
|
895 |
-
<th><i class="dashicons dashicons-calendar"></i> '. __('Week',WP_ULIKE_SLUG) .':</th>
|
896 |
-
<th class="th-center"><span>'. $wp_ulike_stats->get_data_date($SummaryVal["type"],'week').'</span></th>
|
897 |
-
</tr>
|
898 |
-
|
899 |
-
<tr>
|
900 |
-
<th><i class="dashicons dashicons-flag"></i> '. __('Month',WP_ULIKE_SLUG) .':</th>
|
901 |
-
<th class="th-center"><span>'. $wp_ulike_stats->get_data_date($SummaryVal["type"],'month').'</span></th>
|
902 |
-
</tr>
|
903 |
-
|
904 |
-
<tr>
|
905 |
-
<th><i class="dashicons dashicons-chart-area"></i> '. __('Total',WP_ULIKE_SLUG) .':</th>
|
906 |
-
<th class="th-center"><span>'. $wp_ulike_stats->get_all_data_date($SummaryVal["table"],$SummaryVal["key"]).'</span></th>
|
907 |
-
</tr>';
|
908 |
-
|
909 |
-
}
|
910 |
-
|
911 |
-
echo '</tbody></table>';
|
912 |
-
|
913 |
-
}
|
914 |
-
|
915 |
-
echo '</div></div>';
|
916 |
-
}
|
917 |
-
|
918 |
-
if($get_option['likers_map'] == 1){
|
919 |
-
echo '
|
920 |
-
<div id="world_map" class="postbox">
|
921 |
-
<div class="handlediv" title="Click to toggle"><br></div>
|
922 |
-
<h3 class="hndle"><span><i class="dashicons dashicons-location-alt"></i> '.__('Likers World Map',WP_ULIKE_SLUG) . '</span></h3>
|
923 |
-
<div class="inside">
|
924 |
-
<div class="main">
|
925 |
-
<div>
|
926 |
-
<div id="vmap" style="width: 100%; min-height: 250px;"></div>
|
927 |
-
</div>
|
928 |
-
</div>
|
929 |
-
</div>
|
930 |
-
</div>';
|
931 |
-
}
|
932 |
-
|
933 |
-
if($get_option['top_likers'] == 1){
|
934 |
-
$get_top_likers = $wp_ulike_stats->get_top_likers();
|
935 |
-
$top_users_counter = 1;
|
936 |
-
echo'
|
937 |
-
<div class="postbox">
|
938 |
-
<div class="handlediv" title="Click to toggle"><br></div>
|
939 |
-
<h3 class="hndle"><span><i class="dashicons dashicons-awards"></i> '.__('Top Likers',WP_ULIKE_SLUG) . '</span></h3>
|
940 |
-
<div class="inside">';
|
941 |
-
|
942 |
-
foreach ($get_top_likers as $top_liker) {
|
943 |
-
$get_top_user_id = stripslashes($top_liker->user_id);
|
944 |
-
$get_top_user_info = get_userdata($get_top_user_id);
|
945 |
-
$final_user_name = __('Guest User',WP_ULIKE_SLUG);
|
946 |
-
if($get_top_user_info != '')
|
947 |
-
$final_user_name = $get_top_user_info->display_name;
|
948 |
-
echo'
|
949 |
-
<div class="log-latest">
|
950 |
-
<div class="log-item">
|
951 |
-
<div class="log-page-title">'. $top_users_counter++ . ' - ' .$final_user_name.'</div>
|
952 |
-
<div class="badge"><strong>'.$top_liker->SumUser.'</strong> '.__('Like',WP_ULIKE_SLUG) . '</div>
|
953 |
-
<div class="left-div"><i class="dashicons dashicons-location"></i> <em dir="ltr">'.$top_liker->ip.'</em> | '.getCountryFromIP($top_liker->ip, "NamE").'</div>
|
954 |
-
</div>
|
955 |
-
</div>
|
956 |
-
';
|
957 |
-
}
|
958 |
-
echo '</div></div>';
|
959 |
-
}
|
960 |
-
|
961 |
-
if($get_option['top_posts'] == 1){
|
962 |
-
echo'
|
963 |
-
<div class="postbox">
|
964 |
-
<div class="handlediv" title="Click to toggle"><br></div>
|
965 |
-
<h3 class="hndle"><span><i class="dashicons dashicons-admin-post"></i> '.__('Most Liked Posts',WP_ULIKE_SLUG) . '</span></h3>
|
966 |
-
<div class="inside"><div class="top-widget"><ol>';
|
967 |
-
echo $wp_ulike_stats->get_tops('top_posts');
|
968 |
-
echo '</ol></div></div></div>';
|
969 |
-
}
|
970 |
-
|
971 |
-
if($get_option['top_comments'] == 1){
|
972 |
-
echo'
|
973 |
-
<div class="postbox">
|
974 |
-
<div class="handlediv" title="Click to toggle"><br></div>
|
975 |
-
<h3 class="hndle"><span><i class="dashicons dashicons-admin-comments"></i> '.__('Most Liked Comments',WP_ULIKE_SLUG) . '</span></h3>
|
976 |
-
<div class="inside"><div class="top-widget"><ol>';
|
977 |
-
echo $wp_ulike_stats->get_tops('top_comments');
|
978 |
-
echo '</ol></div></div></div>';
|
979 |
-
}
|
980 |
-
|
981 |
-
if($get_option['top_activities'] == 1){
|
982 |
-
echo'
|
983 |
-
<div class="postbox">
|
984 |
-
<div class="handlediv" title="Click to toggle"><br></div>
|
985 |
-
<h3 class="hndle"><span><i class="dashicons dashicons-groups"></i> '.__('Most Liked Activities',WP_ULIKE_SLUG) . '</span></h3>
|
986 |
-
<div class="inside"><div class="top-widget"><ol>';
|
987 |
-
echo $wp_ulike_stats->get_tops('top_activities');
|
988 |
-
echo '</ol></div></div></div>';
|
989 |
-
}
|
990 |
-
|
991 |
-
if($get_option['top_topics'] == 1){
|
992 |
-
echo'
|
993 |
-
<div class="postbox">
|
994 |
-
<div class="handlediv" title="Click to toggle"><br></div>
|
995 |
-
<h3 class="hndle"><span><i class="dashicons dashicons-index-card"></i> '.__('Most Liked Topics',WP_ULIKE_SLUG) . '</span></h3>
|
996 |
-
<div class="inside"><div class="top-widget"><ol>';
|
997 |
-
echo $wp_ulike_stats->get_tops('top_topics');
|
998 |
-
echo '</ol></div></div></div>';
|
999 |
-
}
|
1000 |
-
|
1001 |
-
echo '</div></div></div>';
|
1002 |
-
|
1003 |
-
|
1004 |
-
|
1005 |
-
/*******************************************************
|
1006 |
-
Second Column
|
1007 |
-
*******************************************************/
|
1008 |
-
|
1009 |
-
if(isset($get_option)){
|
1010 |
-
|
1011 |
-
$ChartsArr = array(
|
1012 |
-
"posts" => array(
|
1013 |
-
"id" => "posts_likes_stats",
|
1014 |
-
"view_logs" => ' <a style="text-decoration:none;" href="?page=wp-ulike-post-logs" target="_blank"><i class="dashicons dashicons-visibility"></i> '. __('View Logs',WP_ULIKE_SLUG) .'</a>',
|
1015 |
-
"title" => __('Posts Likes Stats',WP_ULIKE_SLUG) . ' - ' . sprintf(__('In The Last %s Days',WP_ULIKE_SLUG), $get_option['days_number']),
|
1016 |
-
"chart" => "chart1"
|
1017 |
-
),
|
1018 |
-
"comments" => array(
|
1019 |
-
"id" => "comments_likes_stats",
|
1020 |
-
"view_logs" => ' <a style="text-decoration:none;" href="?page=wp-ulike-comment-logs" target="_blank"><i class="dashicons dashicons-visibility"></i> '. __('View Logs',WP_ULIKE_SLUG) .'</a>',
|
1021 |
-
"title" => __('Comments Likes Stats',WP_ULIKE_SLUG) . ' - ' . sprintf(__('In The Last %s Days',WP_ULIKE_SLUG), $get_option['days_number']),
|
1022 |
-
"chart" => "chart2"
|
1023 |
-
),
|
1024 |
-
"activities" => array(
|
1025 |
-
"id" => "activities_likes_stats",
|
1026 |
-
"view_logs" => ' <a style="text-decoration:none;" href="?page=wp-ulike-bp-logs" target="_blank"><i class="dashicons dashicons-visibility"></i> '. __('View Logs',WP_ULIKE_SLUG) .'</a>',
|
1027 |
-
"title" => __('Activities Likes Stats',WP_ULIKE_SLUG) . ' - ' . sprintf(__('In The Last %s Days',WP_ULIKE_SLUG), $get_option['days_number']),
|
1028 |
-
"chart" => "chart3"
|
1029 |
-
),
|
1030 |
-
"topics" => array(
|
1031 |
-
"id" => "topics_likes_stats",
|
1032 |
-
"view_logs" => ' <a style="text-decoration:none;" href="?page=wp-ulike-bbpress-logs" target="_blank"><i class="dashicons dashicons-visibility"></i> '. __('View Logs',WP_ULIKE_SLUG) .'</a>',
|
1033 |
-
"title" => __('Topics Likes Stats',WP_ULIKE_SLUG) . ' - ' . sprintf(__('In The Last %s Days',WP_ULIKE_SLUG), $get_option['days_number']),
|
1034 |
-
"chart" => "chart4"
|
1035 |
-
)
|
1036 |
-
);
|
1037 |
-
|
1038 |
-
echo '
|
1039 |
-
<div class="postbox-container" id="left-log">
|
1040 |
-
<div class="metabox-holder">
|
1041 |
-
<div class="meta-box-sortables ui-sortable">';
|
1042 |
-
|
1043 |
-
foreach ($ChartsArr as $ChartArr) {
|
1044 |
-
if($get_option[$ChartArr['id']] == 1){
|
1045 |
-
echo '
|
1046 |
-
<div id="'.$ChartArr['id'].'" class="postbox">
|
1047 |
-
<div class="handlediv" title="Click to toggle"><br></div>
|
1048 |
-
<h3 class="hndle"><span><i class="dashicons dashicons-chart-line"></i> '.$ChartArr['title'] . $ChartArr['view_logs'].' </span></h3>
|
1049 |
-
<div class="inside">
|
1050 |
-
<div class="main">
|
1051 |
-
<div>
|
1052 |
-
<canvas id="'.$ChartArr['chart'].'"></canvas>
|
1053 |
-
</div>
|
1054 |
-
</div>
|
1055 |
-
</div>
|
1056 |
-
</div>';
|
1057 |
-
}
|
1058 |
-
}
|
1059 |
-
|
1060 |
-
if($get_option['piechart_stats'] == 1){
|
1061 |
-
echo '
|
1062 |
-
<div id="piechart_stats" class="postbox">
|
1063 |
-
<div class="handlediv" title="Click to toggle"><br></div>
|
1064 |
-
<h3 class="hndle"><span><i class="dashicons dashicons-chart-pie"></i> '.__('Likes Percent',WP_ULIKE_SLUG) . ' - ' . sprintf(__('In The Last %s Days',WP_ULIKE_SLUG), $get_option['days_number']).' </span></h3>
|
1065 |
-
<div class="inside">
|
1066 |
-
<div class="main">
|
1067 |
-
<div>
|
1068 |
-
<canvas id="piechart"></canvas>
|
1069 |
-
</div>
|
1070 |
-
</div>
|
1071 |
-
</div>
|
1072 |
-
</div>';
|
1073 |
-
}
|
1074 |
-
|
1075 |
-
echo '</div></div></div>';
|
1076 |
-
}
|
1077 |
-
|
1078 |
-
echo '</div>'; //end wrap class
|
1079 |
-
|
1080 |
-
}
|
1081 |
-
|
1082 |
-
|
1083 |
-
/**
|
1084 |
-
* Display Screen Options
|
1085 |
-
*
|
1086 |
-
* @author Alimir
|
1087 |
-
* @since 2.1
|
1088 |
-
* @return Void
|
1089 |
-
*/
|
1090 |
-
function wp_ulike_statistics_display_option(){
|
1091 |
-
// get user options
|
1092 |
-
$get_option = get_option( 'wp_ulike_statistics_screen' );
|
1093 |
-
|
1094 |
-
if( ! $get_option ){
|
1095 |
-
$options = array(
|
1096 |
-
'welcome_panel' => 1,
|
1097 |
-
'summary_like_stats' => 1,
|
1098 |
-
'posts_likes_stats' => 1,
|
1099 |
-
'comments_likes_stats' => 1,
|
1100 |
-
'activities_likes_stats' => 0,
|
1101 |
-
'topics_likes_stats' => 0,
|
1102 |
-
'most_liked_posts' => 1,
|
1103 |
-
'most_liked_comments' => 1,
|
1104 |
-
'piechart_stats' => 1,
|
1105 |
-
'likers_map' => 0,
|
1106 |
-
'top_likers' => 1,
|
1107 |
-
'top_posts' => 1,
|
1108 |
-
'top_comments' => 1,
|
1109 |
-
'top_activities' => 1,
|
1110 |
-
'top_topics' => 1,
|
1111 |
-
'days_number' => 20
|
1112 |
);
|
1113 |
-
update_option('wp_ulike_statistics_screen',$options);
|
1114 |
-
}
|
1115 |
|
1116 |
-
|
1117 |
-
|
1118 |
-
|
1119 |
-
|
1120 |
-
|
1121 |
-
<label><input class="hide-postbox-tog" name="wp_ulike_welcome" type="checkbox" value="1" <?php checked( '1', $get_option['welcome_panel'] ); ?>><?php echo _e('Welcome',WP_ULIKE_SLUG); ?></label>
|
1122 |
-
<label><input class="hide-postbox-tog" name="wp_ulike_summary_stats" type="checkbox" value="1" <?php checked( '1', $get_option['summary_like_stats'] ); ?>><?php echo _e('Summary',WP_ULIKE_SLUG); ?></label>
|
1123 |
-
<label><input class="hide-postbox-tog" name="wp_ulike_posts_stats" type="checkbox" value="1" <?php checked( '1', $get_option['posts_likes_stats'] ); ?>><?php echo _e('Posts Likes Stats',WP_ULIKE_SLUG); ?></label>
|
1124 |
-
<label><input class="hide-postbox-tog" name="wp_ulike_comments_stats" type="checkbox" value="1" <?php checked( '1', $get_option['comments_likes_stats'] ); ?>><?php echo _e('Comments Likes Stats',WP_ULIKE_SLUG); ?></label>
|
1125 |
-
<label><input class="hide-postbox-tog" name="wp_ulike_activities_stats" type="checkbox" value="1" <?php checked( '1', $get_option['activities_likes_stats'] ); ?>><?php echo _e('Activities Likes Stats',WP_ULIKE_SLUG); ?></label>
|
1126 |
-
<label><input class="hide-postbox-tog" name="wp_ulike_topics_stats" type="checkbox" value="1" <?php checked( '1', $get_option['topics_likes_stats'] ); ?>><?php echo _e('Topics Likes Stats',WP_ULIKE_SLUG); ?></label>
|
1127 |
-
<label><input class="hide-postbox-tog" name="wp_ulike_piechart_stats" type="checkbox" value="1" <?php checked( '1', $get_option['piechart_stats'] ); ?>><?php echo _e('Likes Percent',WP_ULIKE_SLUG); ?></label>
|
1128 |
-
<label><input class="hide-postbox-tog" name="wp_ulike_likers_map" type="checkbox" value="1" <?php checked( '1', $get_option['likers_map'] ); ?>><?php echo _e('Likers World Map',WP_ULIKE_SLUG); ?></label>
|
1129 |
-
<label><input class="hide-postbox-tog" name="wp_ulike_top_likers" type="checkbox" value="1" <?php checked( '1', $get_option['top_likers'] ); ?>><?php echo _e('Top Likers',WP_ULIKE_SLUG); ?></label>
|
1130 |
-
<label><input class="hide-postbox-tog" name="wp_ulike_top_posts" type="checkbox" value="1" <?php checked( '1', $get_option['top_posts'] ); ?>><?php echo _e('Most Liked Posts',WP_ULIKE_SLUG); ?></label>
|
1131 |
-
<label><input class="hide-postbox-tog" name="wp_ulike_top_comments" type="checkbox" value="1" <?php checked( '1', $get_option['top_comments'] ); ?>><?php echo _e('Most Liked Comments',WP_ULIKE_SLUG); ?></label>
|
1132 |
-
<label><input class="hide-postbox-tog" name="wp_ulike_top_activities" type="checkbox" value="1" <?php checked( '1', $get_option['top_activities'] ); ?>><?php echo _e('Most Liked Activities',WP_ULIKE_SLUG); ?></label>
|
1133 |
-
<label><input class="hide-postbox-tog" name="wp_ulike_top_topics" type="checkbox" value="1" <?php checked( '1', $get_option['top_topics'] ); ?>><?php echo _e('Most Liked Topics',WP_ULIKE_SLUG); ?></label>
|
1134 |
-
<br class="clear">
|
1135 |
-
<input step="1" min="5" max="60" class="screen-per-page" name="wp_ulike_days_number" maxlength="3" value="<?php echo $get_option['days_number']; ?>" type="number">
|
1136 |
-
<label><?php echo _e('Days',WP_ULIKE_SLUG); ?></label>
|
1137 |
-
<input name="screen-options-apply" class="button button-primary" value="<?php echo _e('Save Settings',WP_ULIKE_SLUG); ?>" type="submit">
|
1138 |
-
<?php wp_nonce_field( 'wp_ulike_statistics_nonce_field', 'wp_ulike_statistics_screen' ); ?>
|
1139 |
-
</div>
|
1140 |
-
</form>
|
1141 |
-
</div>
|
1142 |
-
<?php
|
1143 |
|
1144 |
}
|
1145 |
|
@@ -1157,14 +100,18 @@ function wp_ulike_get_number_of_new_likes() {
|
|
1157 |
update_option( 'wpulike_lastvisit', current_time( 'mysql' ) );
|
1158 |
}
|
1159 |
|
1160 |
-
|
1161 |
-
|
1162 |
-
|
1163 |
-
|
1164 |
-
|
1165 |
-
|
1166 |
-
|
1167 |
-
|
|
|
|
|
1168 |
|
1169 |
-
|
1170 |
-
|
|
|
|
7 |
* @link https://wpulike.com
|
8 |
*/
|
9 |
|
10 |
+
// If this file is called directly, abort.
|
11 |
+
if ( ! defined( 'WPINC' ) ) {
|
12 |
+
die('No Naughty Business Please !');
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
13 |
}
|
14 |
|
|
|
|
|
|
|
15 |
/**
|
16 |
* Return per_page option value
|
17 |
*
|
20 |
* @return Integer
|
21 |
*/
|
22 |
function wp_ulike_logs_return_per_page(){
|
23 |
+
$user = get_current_user_id();
|
24 |
+
$screen = get_current_screen();
|
25 |
+
$option = $screen->get_option( 'per_page', 'option' );
|
26 |
+
$per_page = get_user_meta( $user, $option, true );
|
27 |
|
28 |
+
return ( empty( $per_page ) || $per_page < 1 ) ? 30 : $per_page;
|
|
|
|
|
|
|
|
|
29 |
}
|
30 |
|
31 |
/**
|
32 |
+
* Get paginated logs datasets
|
33 |
*
|
34 |
* @author Alimir
|
35 |
+
* @since 3.5
|
36 |
+
* @return Array
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
37 |
*/
|
38 |
+
function wp_ulike_get_paginated_logs( $table, $type ){
|
39 |
global $wpdb;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
40 |
|
41 |
+
// Make new sql request
|
42 |
+
$query = sprintf( "
|
43 |
+
SELECT COUNT(*)
|
44 |
+
FROM %s",
|
45 |
+
$wpdb->prefix . $table
|
46 |
+
);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
47 |
|
48 |
+
$num_rows = $wpdb->get_var( $query );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
49 |
|
50 |
+
if( empty( $num_rows ) ) {
|
|
|
51 |
return;
|
52 |
}
|
53 |
|
54 |
+
$per_page = wp_ulike_logs_return_per_page();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
55 |
|
56 |
+
$pagination = new wp_ulike_pagination;
|
57 |
+
$pagination->items( $num_rows );
|
58 |
+
$pagination->limit( $per_page ); // Limit entries per page
|
59 |
+
$pagination->target( 'admin.php?page=wp-ulike-' . $type . '-logs' );
|
60 |
+
$pagination->calculate(); // Calculates what to show
|
61 |
+
$pagination->parameterName( 'page_number' );
|
62 |
+
$pagination->adjacents(1); //No. of page away from the current page
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
63 |
|
64 |
+
if( ! isset( $_GET['page_number'] ) ) {
|
65 |
+
$pagination->page = 1;
|
66 |
} else {
|
67 |
+
$pagination->page = (int) $_GET['page_number'];
|
68 |
+
}
|
69 |
+
|
70 |
+
// Make new sql request
|
71 |
+
$query = sprintf( '
|
72 |
+
SELECT *
|
73 |
+
FROM %s
|
74 |
+
ORDER BY id
|
75 |
+
DESC
|
76 |
+
LIMIT %s',
|
77 |
+
$wpdb->prefix . $table,
|
78 |
+
($pagination->page - 1) * $pagination->limit . ", " . $pagination->limit
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
79 |
);
|
|
|
|
|
80 |
|
81 |
+
return array(
|
82 |
+
'data_rows' => $wpdb->get_results( $query ),
|
83 |
+
'paginate' => $pagination,
|
84 |
+
'num_rows' => $num_rows
|
85 |
+
);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
86 |
|
87 |
}
|
88 |
|
100 |
update_option( 'wpulike_lastvisit', current_time( 'mysql' ) );
|
101 |
}
|
102 |
|
103 |
+
$query = sprintf( '
|
104 |
+
SELECT
|
105 |
+
( SELECT COUNT(*) FROM `%1$sulike` WHERE ( date_time <= NOW() AND date_time >= "%2$s" ) ) +
|
106 |
+
( SELECT COUNT(*) FROM `%1$sulike_activities` WHERE ( date_time <= NOW() AND date_time >= "%2$s" ) ) +
|
107 |
+
( SELECT COUNT(*) FROM `%1$sulike_comments` WHERE ( date_time <= NOW() AND date_time >= "%2$s" ) ) +
|
108 |
+
( SELECT COUNT(*) FROM `%1$sulike_forums` WHERE ( date_time <= NOW() AND date_time >= "%2$s" ) )
|
109 |
+
',
|
110 |
+
$wpdb->prefix,
|
111 |
+
get_option( 'wpulike_lastvisit')
|
112 |
+
);
|
113 |
|
114 |
+
$result = $wpdb->get_var( $query );
|
115 |
+
|
116 |
+
return empty( $result ) ? 0 : $result;
|
117 |
+
}
|
admin/admin-hooks.php
CHANGED
@@ -7,9 +7,10 @@
|
|
7 |
* @link https://wpulike.com
|
8 |
*/
|
9 |
|
10 |
-
|
11 |
-
|
12 |
-
|
|
|
13 |
|
14 |
/**
|
15 |
* Add WP ULike CopyRight in footer
|
@@ -20,48 +21,17 @@
|
|
20 |
* @return String
|
21 |
*/
|
22 |
function wp_ulike_copyright( $text ) {
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
/**
|
31 |
-
* admin enqueue scripts
|
32 |
-
*
|
33 |
-
* @author Alimir
|
34 |
-
* @since 2.1
|
35 |
-
* @return Void
|
36 |
-
*/
|
37 |
-
function wp_ulike_logs_enqueue_script( $hook ){
|
38 |
-
|
39 |
-
// Enqueue admin styles
|
40 |
-
wp_enqueue_style( 'wp-ulike-admin', WP_ULIKE_ADMIN_URL . '/assets/css/admin.css' );
|
41 |
-
|
42 |
-
$currentScreen = get_current_screen();
|
43 |
-
|
44 |
-
if ( $currentScreen->id !== $hook || ! preg_match( '/logs/', $currentScreen->id ) ) {
|
45 |
-
return;
|
46 |
}
|
47 |
|
48 |
-
|
49 |
-
wp_enqueue_script(
|
50 |
-
'wp_ulike_stats',
|
51 |
-
WP_ULIKE_ADMIN_URL . '/assets/js/statistics.js',
|
52 |
-
array('jquery'),
|
53 |
-
null,
|
54 |
-
true
|
55 |
-
);
|
56 |
-
|
57 |
-
//localize script
|
58 |
-
wp_localize_script( 'wp_ulike_stats', 'wp_ulike_logs', array(
|
59 |
-
'ajaxurl' => admin_url( 'admin-ajax.php' ),
|
60 |
-
'message' => __('Are you sure to remove this item?!',WP_ULIKE_SLUG)
|
61 |
-
));
|
62 |
-
|
63 |
}
|
64 |
-
|
65 |
|
66 |
/**
|
67 |
* Set the option of per_page
|
@@ -71,7 +41,11 @@ add_action('admin_enqueue_scripts', 'wp_ulike_logs_enqueue_script');
|
|
71 |
* @return String
|
72 |
*/
|
73 |
function wp_ulike_logs_per_page_set_option($status, $option, $value) {
|
74 |
-
|
|
|
|
|
|
|
|
|
75 |
return $status;
|
76 |
}
|
77 |
add_filter('set-screen-option', 'wp_ulike_logs_per_page_set_option', 10, 3);
|
@@ -89,80 +63,6 @@ function wp_ulike_remove_photo_class($avatar) {
|
|
89 |
add_filter('get_avatar', 'wp_ulike_remove_photo_class');
|
90 |
|
91 |
|
92 |
-
/**
|
93 |
-
* Save screen options with "update_option" mehtod
|
94 |
-
*
|
95 |
-
* @author Alimir
|
96 |
-
* @since 2.1
|
97 |
-
* @return Void
|
98 |
-
*/
|
99 |
-
function wp_ulike_statistics_save_option(){
|
100 |
-
if(isset($_POST['wp_ulike_statistics_screen']) AND wp_verify_nonce($_POST['wp_ulike_statistics_screen'], 'wp_ulike_statistics_nonce_field' ) ){
|
101 |
-
$options = array(
|
102 |
-
'welcome_panel' => isset($_POST['wp_ulike_welcome']) ? $_POST['wp_ulike_welcome'] : 0,
|
103 |
-
'summary_like_stats' => isset($_POST['wp_ulike_summary_stats']) ? $_POST['wp_ulike_summary_stats'] : 0,
|
104 |
-
'posts_likes_stats' => isset($_POST['wp_ulike_posts_stats']) ? $_POST['wp_ulike_posts_stats'] : 0,
|
105 |
-
'comments_likes_stats' => isset($_POST['wp_ulike_comments_stats']) ? $_POST['wp_ulike_comments_stats'] : 0,
|
106 |
-
'activities_likes_stats' => isset($_POST['wp_ulike_activities_stats']) ? $_POST['wp_ulike_activities_stats'] : 0,
|
107 |
-
'topics_likes_stats' => isset($_POST['wp_ulike_topics_stats']) ? $_POST['wp_ulike_topics_stats'] : 0,
|
108 |
-
'most_liked_posts' => isset($_POST['wp_ulike_most_liked_posts']) ? $_POST['wp_ulike_most_liked_posts'] : 0,
|
109 |
-
'most_liked_comments' => isset($_POST['wp_ulike_most_liked_cmt']) ? $_POST['wp_ulike_most_liked_cmt'] : 0,
|
110 |
-
'piechart_stats' => isset($_POST['wp_ulike_piechart_stats']) ? $_POST['wp_ulike_piechart_stats'] : 0,
|
111 |
-
'likers_map' => isset($_POST['wp_ulike_likers_map']) ? $_POST['wp_ulike_likers_map'] : 0,
|
112 |
-
'top_likers' => isset($_POST['wp_ulike_top_likers']) ? $_POST['wp_ulike_top_likers'] : 0,
|
113 |
-
'top_posts' => isset($_POST['wp_ulike_top_posts']) ? $_POST['wp_ulike_top_posts'] : 0,
|
114 |
-
'top_comments' => isset($_POST['wp_ulike_top_comments']) ? $_POST['wp_ulike_top_comments'] : 0,
|
115 |
-
'top_activities' => isset($_POST['wp_ulike_top_activities']) ? $_POST['wp_ulike_top_activities'] : 0,
|
116 |
-
'top_topics' => isset($_POST['wp_ulike_top_topics']) ? $_POST['wp_ulike_top_topics'] : 0,
|
117 |
-
'days_number' => isset($_POST['wp_ulike_days_number']) ? $_POST['wp_ulike_days_number'] : 20
|
118 |
-
);
|
119 |
-
update_option( 'wp_ulike_statistics_screen', $options );
|
120 |
-
}
|
121 |
-
}
|
122 |
-
add_action('admin_init', 'wp_ulike_statistics_save_option');
|
123 |
-
|
124 |
-
/**
|
125 |
-
* Add menu to admin
|
126 |
-
*
|
127 |
-
* @author Alimir
|
128 |
-
* @since 1.0
|
129 |
-
* @updated 2.2
|
130 |
-
* @updated 2.4.2
|
131 |
-
* @return String
|
132 |
-
*/
|
133 |
-
function wp_ulike_admin_menu() {
|
134 |
-
|
135 |
-
global $menu;
|
136 |
-
|
137 |
-
//Post Like Logs Menu
|
138 |
-
$posts_screen = add_submenu_page(null, __( 'Post Likes Logs', WP_ULIKE_SLUG ), __( 'Post Likes Logs', WP_ULIKE_SLUG ), 'manage_options', 'wp-ulike-post-logs', 'wp_ulike_post_likes_logs');
|
139 |
-
add_action("load-$posts_screen",'wp_ulike_logs_per_page');
|
140 |
-
|
141 |
-
//Comment Like Logs Menu
|
142 |
-
$comments_screen = add_submenu_page(null, __( 'Comment Likes Logs', WP_ULIKE_SLUG ), __( 'Comment Likes Logs', WP_ULIKE_SLUG ), 'manage_options','wp-ulike-comment-logs', 'wp_ulike_comment_likes_logs');
|
143 |
-
add_action("load-$comments_screen",'wp_ulike_logs_per_page');
|
144 |
-
|
145 |
-
//Activity Like Logs Menu
|
146 |
-
$activities_screen = add_submenu_page(null, __( 'Activity Likes Logs', WP_ULIKE_SLUG ), __( 'Activity Likes Logs', WP_ULIKE_SLUG ), 'manage_options', 'wp-ulike-bp-logs', 'wp_ulike_buddypress_likes_logs');
|
147 |
-
add_action("load-$activities_screen",'wp_ulike_logs_per_page');
|
148 |
-
|
149 |
-
//Activity Like Logs Menu
|
150 |
-
$topics_screen = add_submenu_page(null, __( 'Topics Likes Logs', WP_ULIKE_SLUG ), __( 'Topics Likes Logs', WP_ULIKE_SLUG ), 'manage_options', 'wp-ulike-bbpress-logs', 'wp_ulike_bbpress_likes_logs');
|
151 |
-
add_action("load-$topics_screen",'wp_ulike_logs_per_page');
|
152 |
-
|
153 |
-
//Statistics Menu
|
154 |
-
$statistics_screen = add_submenu_page('wp-ulike-settings', __( 'WP ULike Statistics', WP_ULIKE_SLUG ), __( 'WP ULike Statistics', WP_ULIKE_SLUG ), 'manage_options', 'wp-ulike-statistics', 'wp_ulike_statistics');
|
155 |
-
add_action("load-$statistics_screen",'wp_ulike_statistics_register_option');
|
156 |
-
|
157 |
-
//WP ULike About Menu
|
158 |
-
add_submenu_page('wp-ulike-settings', __( 'About WP ULike', WP_ULIKE_SLUG ), __( 'About WP ULike', WP_ULIKE_SLUG ), 'manage_options', 'wp-ulike-about', 'wp_ulike_about_page');
|
159 |
-
|
160 |
-
$newvotes = wp_ulike_get_number_of_new_likes();
|
161 |
-
$menu[313][0] .= $newvotes ? " <span class='update-plugins count-1'><span class='update-count'>". number_format_i18n($newvotes) ."</span></span> " : '';
|
162 |
-
|
163 |
-
}
|
164 |
-
add_action('admin_menu', 'wp_ulike_admin_menu');
|
165 |
-
|
166 |
/**
|
167 |
* Set the admin login time.
|
168 |
*
|
@@ -208,7 +108,7 @@ function wp_ulike_admin_notice() {
|
|
208 |
<img src="<?php echo WP_ULIKE_ASSETS_URL; ?>/img/wp-ulike-badge.png" alt="WP ULike Plugin">
|
209 |
</div>
|
210 |
<div class="wp-ulike-notice-text">
|
211 |
-
<p><?php echo _e( "It's great to see that you've been using the WP ULike plugin
|
212 |
<div class="links">
|
213 |
<a href="https://wordpress.org/support/plugin/wp-ulike/reviews/?filter=5" target="_blank"><?php echo _e( "Sure, I'd love to!", WP_ULIKE_SLUG ); ?></a>
|
214 |
<a href="https://m.do.co/c/13ad5bc24738" target="_blank"><?php echo _e( "I also want to donate!", WP_ULIKE_SLUG ); ?></a>
|
@@ -218,22 +118,4 @@ function wp_ulike_admin_notice() {
|
|
218 |
</div>
|
219 |
<?php
|
220 |
}
|
221 |
-
add_action( 'admin_notices', 'wp_ulike_admin_notice',
|
222 |
-
|
223 |
-
/**
|
224 |
-
* Simple Ads
|
225 |
-
*
|
226 |
-
* @author Alimir
|
227 |
-
* @since 3.1
|
228 |
-
* @return String
|
229 |
-
*/
|
230 |
-
function wp_ulike_advertisement(){
|
231 |
-
?>
|
232 |
-
<div class="welcome-panel wp-ulike-advertisement">
|
233 |
-
<a href="http://averta.net/phlox/wordpress-theme/?utm_source=ulike&utm_medium=banner&utm_campaign=phlox" target="_blank" title="Phlox Theme">
|
234 |
-
<img src="<?php echo WP_ULIKE_ASSETS_URL; ?>/img/phlox-theme.png" alt="Phlox Theme">
|
235 |
-
</a>
|
236 |
-
</div>
|
237 |
-
<?php
|
238 |
-
}
|
239 |
-
add_filter( 'wp_ulike_advertisement', 'wp_ulike_advertisement', 99999999999999 );
|
7 |
* @link https://wpulike.com
|
8 |
*/
|
9 |
|
10 |
+
// If this file is called directly, abort.
|
11 |
+
if ( ! defined( 'WPINC' ) ) {
|
12 |
+
die('No Naughty Business Please !');
|
13 |
+
}
|
14 |
|
15 |
/**
|
16 |
* Add WP ULike CopyRight in footer
|
21 |
* @return String
|
22 |
*/
|
23 |
function wp_ulike_copyright( $text ) {
|
24 |
+
if( isset($_GET["page"]) && stripos( $_GET["page"], "wp-ulike") !== false ) {
|
25 |
+
return sprintf(
|
26 |
+
__( ' Thank you for choosing <a href="%s" title="Wordpress ULike" target="_blank">WP ULike</a>. Created by <a href="%s" title="Wordpress ULike" target="_blank">Ali Mirzaei</a>', WP_ULIKE_SLUG ),
|
27 |
+
'http://wordpress.org/plugins/wp-ulike/',
|
28 |
+
'https://ir.linkedin.com/in/alimirir'
|
29 |
+
);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
30 |
}
|
31 |
|
32 |
+
return $text;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
33 |
}
|
34 |
+
add_filter( 'admin_footer_text', 'wp_ulike_copyright');
|
35 |
|
36 |
/**
|
37 |
* Set the option of per_page
|
41 |
* @return String
|
42 |
*/
|
43 |
function wp_ulike_logs_per_page_set_option($status, $option, $value) {
|
44 |
+
|
45 |
+
if ( 'wp_ulike_logs_per_page' == $option ) {
|
46 |
+
return $value;
|
47 |
+
}
|
48 |
+
|
49 |
return $status;
|
50 |
}
|
51 |
add_filter('set-screen-option', 'wp_ulike_logs_per_page_set_option', 10, 3);
|
63 |
add_filter('get_avatar', 'wp_ulike_remove_photo_class');
|
64 |
|
65 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
66 |
/**
|
67 |
* Set the admin login time.
|
68 |
*
|
108 |
<img src="<?php echo WP_ULIKE_ASSETS_URL; ?>/img/wp-ulike-badge.png" alt="WP ULike Plugin">
|
109 |
</div>
|
110 |
<div class="wp-ulike-notice-text">
|
111 |
+
<p><?php echo _e( "It's great to see that you've been using the WP ULike plugin. Hopefully you're happy with it! If so, would you consider leaving a positive review? It really helps to support the plugin and helps others to discover it too!" , WP_ULIKE_SLUG ); ?> </p>
|
112 |
<div class="links">
|
113 |
<a href="https://wordpress.org/support/plugin/wp-ulike/reviews/?filter=5" target="_blank"><?php echo _e( "Sure, I'd love to!", WP_ULIKE_SLUG ); ?></a>
|
114 |
<a href="https://m.do.co/c/13ad5bc24738" target="_blank"><?php echo _e( "I also want to donate!", WP_ULIKE_SLUG ); ?></a>
|
118 |
</div>
|
119 |
<?php
|
120 |
}
|
121 |
+
add_action( 'admin_notices', 'wp_ulike_admin_notice', 25 );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
admin/assets/css/admin.css
CHANGED
@@ -13,6 +13,193 @@ https://wordpress.org/plugins/wp-ulike/
|
|
13 |
|
14 |
\------------------------------------------/
|
15 |
*/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
16 |
/** WP ULike Icons */
|
17 |
@font-face { font-family: 'wp-ulike'; src: url("../fonts/wp-ulike.eot?113a2q"); src: url("../fonts/wp-ulike.eot?113a2q#iefix") format("embedded-opentype"), url("../fonts/wp-ulike.ttf?113a2q") format("truetype"), url("../fonts/wp-ulike.woff?113a2q") format("woff"), url("../fonts/wp-ulike.svg?113a2q#wp-ulike") format("svg"); font-weight: normal; font-style: normal; }
|
18 |
[class^="wp-ulike-icons-"], [class*=" wp-ulike-icons-"] { /* use !important to prevent issues with browser extensions that change fonts */ font-family: 'wp-ulike' !important; speak: none; font-style: normal; font-weight: normal; font-variant: normal; text-transform: none; line-height: 1; /* Better Font Rendering =========== */ -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }
|
@@ -126,130 +313,122 @@ tr.hide-label td { padding-left: 0; }
|
|
126 |
#wp_ulike_customize_custom_css { font-family: Consolas,Monaco,monospace; direction: ltr; font-size: 13px; width: 97%; background: none repeat scroll 0% 0% #F9F9F9; outline: 0px none; width: 60%; min-height: 300px; }
|
127 |
|
128 |
.wp-ulike-notice { position: relative; max-width: 870px; overflow: hidden; padding: 20px; background: #f83600; background: linear-gradient(to right, #f83600, #fe8c00); color: #FFFCD6; display: table; box-shadow: 0 3px 25px rgba(248, 54, 0, 0.2); margin: 20px 0px; }
|
129 |
-
.wp-ulike-notice .wp-ulike-notice-image { display: table-cell; vertical-align: middle; }
|
130 |
-
.wp-ulike-notice .wp-ulike-notice-image img { width: 100px; }
|
131 |
.wp-ulike-notice .wp-ulike-notice-text { display: table-cell; vertical-align: middle; padding: 10px 20px; }
|
132 |
.wp-ulike-notice .wp-ulike-notice-text p { font-size: 15px; margin-top: 0; }
|
133 |
.wp-ulike-notice .links a { display: inline-block; color: #FFFCD6; text-transform: uppercase; text-decoration: none; padding: 5px 10px; border: 1px solid #FFFCD6; margin-top: 8px; margin-right: 8px; box-shadow: none; }
|
134 |
.wp-ulike-notice .links a:hover, .wp-ulike-notice .links a:focus { background: #FFFCD6; color: #212121; }
|
135 |
|
136 |
-
|
137 |
-
.wp-ulike-visual-select { height: auto; display: inline-block; width: 100%; max-width: 900px; }
|
138 |
-
.wp-ulike-visual-select .radio-img-item { display: inline-block; margin-right: 10px; border: 3px solid #d8d8d8; padding: 0 10px; width: 110px; height: 60px; cursor: pointer; }
|
139 |
-
.wp-ulike-visual-select .radio-img-item.item-checked { -webkit-filter: brightness(40%) sepia(100%) hue-rotate(170deg) saturate(250%); filter: brightness(40%) sepia(100%) hue-rotate(170deg) saturate(250%); }
|
140 |
-
.wp-ulike-visual-select .radio-img-item img { display: block; clear: both; width: 100%; height: 100%; }
|
141 |
-
|
142 |
-
/** Statistics Page */
|
143 |
-
#right-log { width: 31%; }
|
144 |
-
#right-log a { text-decoration: none; }
|
145 |
|
146 |
-
|
147 |
-
#left-log a { text-decoration: none; }
|
148 |
|
149 |
-
|
150 |
-
#last-log a { text-decoration: none; }
|
151 |
|
152 |
-
|
153 |
-
#summary-stats tr:first-child th { border-top: 0 none; }
|
154 |
-
#summary-stats span { color: #27ae60 !important; font-family: Georgia,"Times New Roman","Bitstream Charter",Times,serif; font-size: 21px; }
|
155 |
|
156 |
-
|
157 |
-
#th-colspan span { color: #21759B !important; font-size: 30px; }
|
158 |
|
159 |
-
|
160 |
-
#last-visitor tr:first-child { background: none repeat scroll 0 0 #EEEEEE; font-weight: bold; text-align: center; }
|
161 |
|
162 |
-
|
163 |
-
#last-search tr:first-child { background: none repeat scroll 0 0 #EEEEEE; font-weight: bold; text-align: center; }
|
164 |
|
165 |
-
|
166 |
-
#last-referrer tr:first-child { background: none repeat scroll 0 0 #EEEEEE; font-weight: bold; text-align: center; }
|
167 |
|
168 |
-
.
|
169 |
|
170 |
-
.
|
171 |
|
172 |
-
.
|
173 |
|
174 |
-
|
175 |
|
176 |
-
.
|
177 |
-
.map-html-marker p { border-bottom: 1px dashed #EFEFEF; font-size: 10px; margin: 2px 0; padding: 3px 0; text-align: left; }
|
178 |
-
.map-html-marker p:last-child { border-bottom: 0 none; }
|
179 |
|
180 |
-
.
|
181 |
-
.log-item:hover { background: none repeat scroll 0 0 #EEEEEE; }
|
182 |
|
183 |
-
.
|
184 |
-
.top-widget ol li a { color: #616161; }
|
185 |
-
.top-widget ol li:hover { background: none repeat scroll 0 0 #EEEEEE; }
|
186 |
-
.top-widget .wp_counter_span { display: inline-block; background-color: #D54E21; color: #FFFFFF; font-size: 12px; line-height: 19px; font-weight: normal; margin: 1px 0px 0px 2px; vertical-align: top; border-radius: 10px; padding-left: 5px; padding-right: 5px; z-index: 26; float: right; }
|
187 |
|
188 |
-
.
|
189 |
|
190 |
-
.
|
191 |
|
192 |
-
.
|
193 |
|
194 |
-
.
|
195 |
|
196 |
-
.
|
197 |
-
|
198 |
-
.
|
199 |
-
|
200 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
201 |
|
202 |
-
|
|
|
203 |
|
204 |
-
|
|
|
|
|
205 |
|
206 |
-
|
|
|
207 |
|
208 |
-
|
209 |
|
210 |
-
|
|
|
|
|
|
|
211 |
|
212 |
-
|
|
|
213 |
|
214 |
-
|
|
|
215 |
|
216 |
-
|
217 |
-
|
|
|
|
|
218 |
|
219 |
-
|
|
|
|
|
|
|
|
|
|
|
220 |
|
221 |
-
.
|
|
|
|
|
|
|
222 |
|
223 |
-
.
|
|
|
|
|
|
|
224 |
|
|
|
225 |
.wp_ulike_logs .button { line-height: 20px; }
|
226 |
.wp_ulike_logs i { font-size: 1.9em; }
|
227 |
.wp_ulike_logs i.wp-ulike-icons-thumb_up:before { color: #4caf50; }
|
228 |
.wp_ulike_logs i.wp-ulike-icons-thumb_down:before { color: #f44336; }
|
229 |
|
230 |
-
.postbox .badge { display: inline-block; background-color: #D54E21; color: #FFFFFF; font-size: 12px; line-height: 19px; font-weight: normal; margin: 1px 0px 0px 2px; vertical-align: top; border-radius: 10px; padding-left: 5px; padding-right: 5px; z-index: 26; float: right; }
|
231 |
-
|
232 |
-
@media screen and (max-width: 960px) { #right-log { width: 35%; }
|
233 |
-
#left-log { margin: 0 0 0 1%; width: 63%; } }
|
234 |
-
@media screen and (max-width: 758px) { #right-log { width: 100%; }
|
235 |
-
#left-log { margin: 0 0 0 1%; width: 100%; } }
|
236 |
-
@media screen and (max-width: 524px) { #right-log { width: 100%; }
|
237 |
-
#left-log { margin: 0 0 0 1%; width: 100%; } }
|
238 |
-
/** jQVMap Version 1.5 */
|
239 |
-
.jqvmap-label { position: absolute; display: none; -webkit-border-radius: 3px; -moz-border-radius: 3px; border-radius: 3px; background: #292929; color: white; font-family: sans-serif, Verdana; font-size: smaller; padding: 3px; pointer-events: none; }
|
240 |
-
|
241 |
-
.jqvmap-pin { pointer-events: none; }
|
242 |
-
|
243 |
-
.jqvmap-zoomin, .jqvmap-zoomout { position: absolute; left: 10px; -webkit-border-radius: 3px; -moz-border-radius: 3px; border-radius: 3px; background: #000000; padding: 3px; color: white; width: 10px; height: 10px; cursor: pointer; line-height: 10px; text-align: center; }
|
244 |
-
|
245 |
-
.jqvmap-zoomin { top: 10px; }
|
246 |
-
|
247 |
-
.jqvmap-zoomout { top: 30px; }
|
248 |
-
|
249 |
-
.jqvmap-region { cursor: pointer; }
|
250 |
-
|
251 |
-
.jqvmap-ajax_response { width: 100%; height: 500px; }
|
252 |
-
|
253 |
/** About Page */
|
254 |
.wp-ulike-about-page .ulike-badge { background: url(../../../assets/img/wp-ulike-badge.png) no-repeat scroll center 24px/95px 95px #F3643A; color: #FFFFFF; position: absolute; top: 0px; right: 0px; font-size: 14px; text-align: center; font-weight: 600; margin: 5px 0px 0px; padding-top: 120px; height: 40px; display: inline-block; width: 150px; text-rendering: optimizelegibility; box-shadow: 0px 1px 3px rgba(0, 0, 0, 0.2); }
|
255 |
.wp-ulike-about-page .wp_ulike_version { display: inline-block; position: absolute; top: 54px; left: 0; padding: 5px 10px; background: #e74c3c; color: #FFFFFF; font-size: 13px; font-weight: normal; }
|
@@ -269,17 +448,5 @@ tr.hide-label td { padding-left: 0; }
|
|
269 |
.rtl .settings-error.info { border-left: none; border-right: 4px solid #2ea2cc; }
|
270 |
.rtl .settings-error.warning { border-left: none; border-right: 4px solid #2ea2cc; }
|
271 |
.rtl tr.hide-label td { padding-right: 0; padding-left: inherit !important; }
|
272 |
-
.rtl #left-log { margin: 0 1% 0 0; }
|
273 |
-
.rtl .th-center { text-align: center !important; }
|
274 |
-
.rtl .td-align { text-align: right; }
|
275 |
-
.rtl .log-referred { float: right; }
|
276 |
-
.rtl .log-ip { float: left; }
|
277 |
-
.rtl .left-div { float: right; }
|
278 |
-
.rtl .right-div { float: left; }
|
279 |
-
.rtl .postbox .badge { margin: 1px 2px 0px 0; float: left; }
|
280 |
-
.rtl .top-widget .wp_counter_span { margin: 1px 2px 0px 0; float: left; }
|
281 |
.rtl .wp-ulike-about-page .ulike-badge { right: inherit; left: 0px; }
|
282 |
-
.rtl .wp-ulike-notice
|
283 |
-
.rtl .wp-ulike-notice .wp-ulike-notice-text { float: right; }
|
284 |
-
.rtl .wp-ulike-notice p { float: right; margin: 0 100px 0 0 !important; padding: 4px 0 4px 40px; }
|
285 |
-
.rtl .wp-ulike-notice .links { margin: 0 92px 0 0 !important; }
|
13 |
|
14 |
\------------------------------------------/
|
15 |
*/
|
16 |
+
/***
|
17 |
+
Spectrum Colorpicker v1.8.0
|
18 |
+
https://github.com/bgrins/spectrum
|
19 |
+
Author: Brian Grinstead
|
20 |
+
License: MIT
|
21 |
+
***/
|
22 |
+
.sp-container { position: absolute; top: 0; left: 0; display: inline-block; *display: inline; *zoom: 1; /* https://github.com/bgrins/spectrum/issues/40 */ z-index: 9999994; overflow: hidden; }
|
23 |
+
|
24 |
+
.sp-container.sp-flat { position: relative; }
|
25 |
+
|
26 |
+
/* Fix for * { box-sizing: border-box; } */
|
27 |
+
.sp-container, .sp-container * { -webkit-box-sizing: content-box; -moz-box-sizing: content-box; box-sizing: content-box; }
|
28 |
+
|
29 |
+
/* http://ansciath.tumblr.com/post/7347495869/css-aspect-ratio */
|
30 |
+
.sp-top { position: relative; width: 100%; display: inline-block; }
|
31 |
+
|
32 |
+
.sp-top-inner { position: absolute; top: 0; left: 0; bottom: 0; right: 0; }
|
33 |
+
|
34 |
+
.sp-color { position: absolute; top: 0; left: 0; bottom: 0; right: 20%; }
|
35 |
+
|
36 |
+
.sp-hue { position: absolute; top: 0; right: 0; bottom: 0; left: 84%; height: 100%; }
|
37 |
+
|
38 |
+
.sp-clear-enabled .sp-hue { top: 33px; height: 77.5%; }
|
39 |
+
|
40 |
+
.sp-fill { padding-top: 80%; }
|
41 |
+
|
42 |
+
.sp-sat, .sp-val { position: absolute; top: 0; left: 0; right: 0; bottom: 0; }
|
43 |
+
|
44 |
+
.sp-alpha-enabled .sp-top { margin-bottom: 18px; }
|
45 |
+
|
46 |
+
.sp-alpha-enabled .sp-alpha { display: block; }
|
47 |
+
|
48 |
+
.sp-alpha-handle { position: absolute; top: -4px; bottom: -4px; width: 6px; left: 50%; cursor: pointer; border: 1px solid black; background: white; opacity: .8; }
|
49 |
+
|
50 |
+
.sp-alpha { display: none; position: absolute; bottom: -14px; right: 0; left: 0; height: 8px; }
|
51 |
+
|
52 |
+
.sp-alpha-inner { border: solid 1px #333; }
|
53 |
+
|
54 |
+
.sp-clear { display: none; }
|
55 |
+
|
56 |
+
.sp-clear.sp-clear-display { background-position: center; }
|
57 |
+
|
58 |
+
.sp-clear-enabled .sp-clear { display: block; position: absolute; top: 0px; right: 0; bottom: 0; left: 84%; height: 28px; }
|
59 |
+
|
60 |
+
/* Don't allow text selection */
|
61 |
+
.sp-container, .sp-replacer, .sp-preview, .sp-dragger, .sp-slider, .sp-alpha, .sp-clear, .sp-alpha-handle, .sp-container.sp-dragging .sp-input, .sp-container button { -webkit-user-select: none; -moz-user-select: -moz-none; -o-user-select: none; user-select: none; }
|
62 |
+
|
63 |
+
.sp-container.sp-input-disabled .sp-input-container { display: none; }
|
64 |
+
|
65 |
+
.sp-container.sp-buttons-disabled .sp-button-container { display: none; }
|
66 |
+
|
67 |
+
.sp-container.sp-palette-buttons-disabled .sp-palette-button-container { display: none; }
|
68 |
+
|
69 |
+
.sp-palette-only .sp-picker-container { display: none; }
|
70 |
+
|
71 |
+
.sp-palette-disabled .sp-palette-container { display: none; }
|
72 |
+
|
73 |
+
.sp-initial-disabled .sp-initial { display: none; }
|
74 |
+
|
75 |
+
/* Gradients for hue, saturation and value instead of images. Not pretty... but it works */
|
76 |
+
.sp-sat { background-image: -webkit-gradient(linear, 0 0, 100% 0, from(#FFF), to(rgba(204, 154, 129, 0))); background-image: -webkit-linear-gradient(left, #FFF, rgba(204, 154, 129, 0)); background-image: -moz-linear-gradient(left, #fff, rgba(204, 154, 129, 0)); background-image: -o-linear-gradient(left, #fff, rgba(204, 154, 129, 0)); background-image: -ms-linear-gradient(left, #fff, rgba(204, 154, 129, 0)); background-image: linear-gradient(to right, #ffffff, rgba(204, 154, 129, 0)); -ms-filter: "progid:DXImageTransform.Microsoft.gradient(GradientType = 1, startColorstr=#FFFFFFFF, endColorstr=#00CC9A81)"; filter: progid:DXImageTransform.Microsoft.gradient(GradientType = 1, startColorstr='#FFFFFFFF', endColorstr='#00CC9A81'); }
|
77 |
+
|
78 |
+
.sp-val { background-image: -webkit-gradient(linear, 0 100%, 0 0, from(#000000), to(rgba(204, 154, 129, 0))); background-image: -webkit-linear-gradient(bottom, #000000, rgba(204, 154, 129, 0)); background-image: -moz-linear-gradient(bottom, #000, rgba(204, 154, 129, 0)); background-image: -o-linear-gradient(bottom, #000, rgba(204, 154, 129, 0)); background-image: -ms-linear-gradient(bottom, #000, rgba(204, 154, 129, 0)); background-image: linear-gradient(to top, #000000, rgba(204, 154, 129, 0)); -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#00CC9A81, endColorstr=#FF000000)"; filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00CC9A81', endColorstr='#FF000000'); }
|
79 |
+
|
80 |
+
.sp-hue { background: -moz-linear-gradient(top, #ff0000 0%, #ffff00 17%, #00ff00 33%, #00ffff 50%, #0000ff 67%, #ff00ff 83%, #ff0000 100%); background: -ms-linear-gradient(top, #ff0000 0%, #ffff00 17%, #00ff00 33%, #00ffff 50%, #0000ff 67%, #ff00ff 83%, #ff0000 100%); background: -o-linear-gradient(top, #ff0000 0%, #ffff00 17%, #00ff00 33%, #00ffff 50%, #0000ff 67%, #ff00ff 83%, #ff0000 100%); background: -webkit-gradient(linear, left top, left bottom, from(#ff0000), color-stop(0.17, #ffff00), color-stop(0.33, #00ff00), color-stop(0.5, #00ffff), color-stop(0.67, #0000ff), color-stop(0.83, #ff00ff), to(#ff0000)); background: -webkit-linear-gradient(top, #ff0000 0%, #ffff00 17%, #00ff00 33%, #00ffff 50%, #0000ff 67%, #ff00ff 83%, #ff0000 100%); background: linear-gradient(to bottom, #ff0000 0%, #ffff00 17%, #00ff00 33%, #00ffff 50%, #0000ff 67%, #ff00ff 83%, #ff0000 100%); }
|
81 |
+
|
82 |
+
/* IE filters do not support multiple color stops. Generate 6 divs, line them up, and do two color gradients for each. Yes, really. */
|
83 |
+
.sp-1 { height: 17%; filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0000', endColorstr='#ffff00'); }
|
84 |
+
|
85 |
+
.sp-2 { height: 16%; filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffff00', endColorstr='#00ff00'); }
|
86 |
+
|
87 |
+
.sp-3 { height: 17%; filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00ff00', endColorstr='#00ffff'); }
|
88 |
+
|
89 |
+
.sp-4 { height: 17%; filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00ffff', endColorstr='#0000ff'); }
|
90 |
+
|
91 |
+
.sp-5 { height: 16%; filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#0000ff', endColorstr='#ff00ff'); }
|
92 |
+
|
93 |
+
.sp-6 { height: 17%; filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff00ff', endColorstr='#ff0000'); }
|
94 |
+
|
95 |
+
.sp-hidden { display: none !important; }
|
96 |
+
|
97 |
+
/* Clearfix hack */
|
98 |
+
.sp-cf:before, .sp-cf:after { content: ""; display: table; }
|
99 |
+
|
100 |
+
.sp-cf:after { clear: both; }
|
101 |
+
|
102 |
+
.sp-cf { *zoom: 1; }
|
103 |
+
|
104 |
+
/* Mobile devices, make hue slider bigger so it is easier to slide */
|
105 |
+
@media (max-device-width: 480px) { .sp-color { right: 40%; }
|
106 |
+
.sp-hue { left: 63%; }
|
107 |
+
.sp-fill { padding-top: 60%; } }
|
108 |
+
.sp-dragger { border-radius: 5px; height: 5px; width: 5px; border: 1px solid #fff; background: #000; cursor: pointer; position: absolute; top: 0; left: 0; }
|
109 |
+
|
110 |
+
.sp-slider { position: absolute; top: 0; cursor: pointer; height: 3px; left: -1px; right: -1px; border: 1px solid #000; background: white; opacity: .8; }
|
111 |
+
|
112 |
+
/*
|
113 |
+
Theme authors:
|
114 |
+
Here are the basic themeable display options (colors, fonts, global widths).
|
115 |
+
See http://bgrins.github.io/spectrum/themes/ for instructions.
|
116 |
+
*/
|
117 |
+
.sp-container { border-radius: 0; background-color: #ECECEC; border: solid 1px #f0c49B; padding: 0; }
|
118 |
+
|
119 |
+
.sp-container, .sp-container button, .sp-container input, .sp-color, .sp-hue, .sp-clear { font: normal 12px "Lucida Grande", "Lucida Sans Unicode", "Lucida Sans", Geneva, Verdana, sans-serif; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; -ms-box-sizing: border-box; box-sizing: border-box; }
|
120 |
+
|
121 |
+
.sp-top { margin-bottom: 3px; }
|
122 |
+
|
123 |
+
.sp-color, .sp-hue, .sp-clear { border: solid 1px #666; }
|
124 |
+
|
125 |
+
/* Input */
|
126 |
+
.sp-input-container { float: right; width: 100px; margin-bottom: 4px; }
|
127 |
+
|
128 |
+
.sp-initial-disabled .sp-input-container { width: 100%; }
|
129 |
+
|
130 |
+
.sp-input { font-size: 12px !important; border: 1px inset; padding: 4px 5px; margin: 0; width: 100%; background: transparent; border-radius: 3px; color: #222; }
|
131 |
+
|
132 |
+
.sp-input:focus { border: 1px solid orange; }
|
133 |
+
|
134 |
+
.sp-input.sp-validation-error { border: 1px solid red; background: #fdd; }
|
135 |
+
|
136 |
+
.sp-picker-container, .sp-palette-container { float: left; position: relative; padding: 10px; padding-bottom: 300px; margin-bottom: -290px; }
|
137 |
+
|
138 |
+
.sp-picker-container { width: 172px; border-left: solid 1px #fff; }
|
139 |
+
|
140 |
+
/* Palettes */
|
141 |
+
.sp-palette-container { border-right: solid 1px #ccc; }
|
142 |
+
|
143 |
+
.sp-palette-only .sp-palette-container { border: 0; }
|
144 |
+
|
145 |
+
.sp-palette .sp-thumb-el { display: block; position: relative; float: left; width: 24px; height: 15px; margin: 3px; cursor: pointer; border: solid 2px transparent; }
|
146 |
+
|
147 |
+
.sp-palette .sp-thumb-el:hover, .sp-palette .sp-thumb-el.sp-thumb-active { border-color: orange; }
|
148 |
+
|
149 |
+
.sp-thumb-el { position: relative; }
|
150 |
+
|
151 |
+
/* Initial */
|
152 |
+
.sp-initial { float: left; border: solid 1px #333; }
|
153 |
+
|
154 |
+
.sp-initial span { width: 30px; height: 25px; border: none; display: block; float: left; margin: 0; }
|
155 |
+
|
156 |
+
.sp-initial .sp-clear-display { background-position: center; }
|
157 |
+
|
158 |
+
/* Buttons */
|
159 |
+
.sp-palette-button-container, .sp-button-container { float: right; }
|
160 |
+
|
161 |
+
/* Replacer (the little preview div that shows up instead of the <input>) */
|
162 |
+
.sp-replacer { margin: 0; overflow: hidden; cursor: pointer; padding: 4px; display: inline-block; *zoom: 1; *display: inline; border: solid 1px #91765d; background: #eee; color: #333; vertical-align: middle; }
|
163 |
+
|
164 |
+
.sp-replacer:hover, .sp-replacer.sp-active { border-color: #F0C49B; color: #111; }
|
165 |
+
|
166 |
+
.sp-replacer.sp-disabled { cursor: default; border-color: silver; color: silver; }
|
167 |
+
|
168 |
+
.sp-dd { padding: 2px 0; height: 16px; line-height: 16px; float: left; font-size: 10px; }
|
169 |
+
|
170 |
+
.sp-preview { position: relative; width: 25px; height: 20px; border: solid 1px #222; margin-right: 5px; float: left; z-index: 0; }
|
171 |
+
|
172 |
+
.sp-palette { *width: 220px; max-width: 220px; }
|
173 |
+
|
174 |
+
.sp-palette .sp-thumb-el { width: 16px; height: 16px; margin: 2px 1px; border: solid 1px #d0d0d0; }
|
175 |
+
|
176 |
+
.sp-container { padding-bottom: 0; }
|
177 |
+
|
178 |
+
/* Buttons: http://hellohappy.org/css3-buttons/ */
|
179 |
+
.sp-container button { background-color: #eeeeee; background-image: -webkit-linear-gradient(top, #eeeeee, #cccccc); background-image: -moz-linear-gradient(top, #eeeeee, #cccccc); background-image: -ms-linear-gradient(top, #eeeeee, #cccccc); background-image: -o-linear-gradient(top, #eeeeee, #cccccc); background-image: linear-gradient(to bottom, #eeeeee, #cccccc); border: 1px solid #ccc; border-bottom: 1px solid #bbb; border-radius: 3px; color: #333; font-size: 14px; line-height: 1; padding: 5px 4px; text-align: center; text-shadow: 0 1px 0 #eee; vertical-align: middle; }
|
180 |
+
|
181 |
+
.sp-container button:hover { background-color: #dddddd; background-image: -webkit-linear-gradient(top, #dddddd, #bbbbbb); background-image: -moz-linear-gradient(top, #dddddd, #bbbbbb); background-image: -ms-linear-gradient(top, #dddddd, #bbbbbb); background-image: -o-linear-gradient(top, #dddddd, #bbbbbb); background-image: linear-gradient(to bottom, #dddddd, #bbbbbb); border: 1px solid #bbb; border-bottom: 1px solid #999; cursor: pointer; text-shadow: 0 1px 0 #ddd; }
|
182 |
+
|
183 |
+
.sp-container button:active { border: 1px solid #aaa; border-bottom: 1px solid #888; -webkit-box-shadow: inset 0 0 5px 2px #aaaaaa, 0 1px 0 0 #eeeeee; -moz-box-shadow: inset 0 0 5px 2px #aaaaaa, 0 1px 0 0 #eeeeee; -ms-box-shadow: inset 0 0 5px 2px #aaaaaa, 0 1px 0 0 #eeeeee; -o-box-shadow: inset 0 0 5px 2px #aaaaaa, 0 1px 0 0 #eeeeee; box-shadow: inset 0 0 5px 2px #aaaaaa, 0 1px 0 0 #eeeeee; }
|
184 |
+
|
185 |
+
.sp-cancel { font-size: 11px; color: #d93f3f !important; margin: 0; padding: 2px; margin-right: 5px; vertical-align: middle; text-decoration: none; }
|
186 |
+
|
187 |
+
.sp-cancel:hover { color: #d93f3f !important; text-decoration: underline; }
|
188 |
+
|
189 |
+
.sp-palette span:hover, .sp-palette span.sp-thumb-active { border-color: #000; }
|
190 |
+
|
191 |
+
.sp-preview, .sp-alpha, .sp-thumb-el { position: relative; background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==); }
|
192 |
+
|
193 |
+
.sp-preview-inner, .sp-alpha-inner, .sp-thumb-inner { display: block; position: absolute; top: 0; left: 0; bottom: 0; right: 0; }
|
194 |
+
|
195 |
+
.sp-palette .sp-thumb-inner { background-position: 50% 50%; background-repeat: no-repeat; }
|
196 |
+
|
197 |
+
.sp-palette .sp-thumb-light.sp-thumb-active .sp-thumb-inner { background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAIVJREFUeNpiYBhsgJFMffxAXABlN5JruT4Q3wfi/0DsT64h8UD8HmpIPCWG/KemIfOJCUB+Aoacx6EGBZyHBqI+WsDCwuQ9mhxeg2A210Ntfo8klk9sOMijaURm7yc1UP2RNCMbKE9ODK1HM6iegYLkfx8pligC9lCD7KmRof0ZhjQACDAAceovrtpVBRkAAAAASUVORK5CYII=); }
|
198 |
+
|
199 |
+
.sp-palette .sp-thumb-dark.sp-thumb-active .sp-thumb-inner { background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAadEVYdFNvZnR3YXJlAFBhaW50Lk5FVCB2My41LjEwMPRyoQAAAMdJREFUOE+tkgsNwzAMRMugEAahEAahEAZhEAqlEAZhEAohEAYh81X2dIm8fKpEspLGvudPOsUYpxE2BIJCroJmEW9qJ+MKaBFhEMNabSy9oIcIPwrB+afvAUFoK4H0tMaQ3XtlrggDhOVVMuT4E5MMG0FBbCEYzjYT7OxLEvIHQLY2zWwQ3D+9luyOQTfKDiFD3iUIfPk8VqrKjgAiSfGFPecrg6HN6m/iBcwiDAo7WiBeawa+Kwh7tZoSCGLMqwlSAzVDhoK+6vH4G0P5wdkAAAAASUVORK5CYII=); }
|
200 |
+
|
201 |
+
.sp-clear-display { background-repeat: no-repeat; background-position: center; background-image: url(data:image/gif;base64,R0lGODlhFAAUAPcAAAAAAJmZmZ2dnZ6enqKioqOjo6SkpKWlpaampqenp6ioqKmpqaqqqqurq/Hx8fLy8vT09PX19ff39/j4+Pn5+fr6+vv7+wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAP8ALAAAAAAUABQAAAihAP9FoPCvoMGDBy08+EdhQAIJCCMybCDAAYUEARBAlFiQQoMABQhKUJBxY0SPICEYHBnggEmDKAuoPMjS5cGYMxHW3IiT478JJA8M/CjTZ0GgLRekNGpwAsYABHIypcAgQMsITDtWJYBR6NSqMico9cqR6tKfY7GeBCuVwlipDNmefAtTrkSzB1RaIAoXodsABiZAEFB06gIBWC1mLVgBa0AAOw==); }
|
202 |
+
|
203 |
/** WP ULike Icons */
|
204 |
@font-face { font-family: 'wp-ulike'; src: url("../fonts/wp-ulike.eot?113a2q"); src: url("../fonts/wp-ulike.eot?113a2q#iefix") format("embedded-opentype"), url("../fonts/wp-ulike.ttf?113a2q") format("truetype"), url("../fonts/wp-ulike.woff?113a2q") format("woff"), url("../fonts/wp-ulike.svg?113a2q#wp-ulike") format("svg"); font-weight: normal; font-style: normal; }
|
205 |
[class^="wp-ulike-icons-"], [class*=" wp-ulike-icons-"] { /* use !important to prevent issues with browser extensions that change fonts */ font-family: 'wp-ulike' !important; speak: none; font-style: normal; font-weight: normal; font-variant: normal; text-transform: none; line-height: 1; /* Better Font Rendering =========== */ -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }
|
313 |
#wp_ulike_customize_custom_css { font-family: Consolas,Monaco,monospace; direction: ltr; font-size: 13px; width: 97%; background: none repeat scroll 0% 0% #F9F9F9; outline: 0px none; width: 60%; min-height: 300px; }
|
314 |
|
315 |
.wp-ulike-notice { position: relative; max-width: 870px; overflow: hidden; padding: 20px; background: #f83600; background: linear-gradient(to right, #f83600, #fe8c00); color: #FFFCD6; display: table; box-shadow: 0 3px 25px rgba(248, 54, 0, 0.2); margin: 20px 0px; }
|
316 |
+
.wp-ulike-notice .wp-ulike-notice-image { display: table-cell; vertical-align: middle; min-width: 100px; }
|
317 |
+
.wp-ulike-notice .wp-ulike-notice-image img { width: 100px; height: auto; }
|
318 |
.wp-ulike-notice .wp-ulike-notice-text { display: table-cell; vertical-align: middle; padding: 10px 20px; }
|
319 |
.wp-ulike-notice .wp-ulike-notice-text p { font-size: 15px; margin-top: 0; }
|
320 |
.wp-ulike-notice .links a { display: inline-block; color: #FFFCD6; text-transform: uppercase; text-decoration: none; padding: 5px 10px; border: 1px solid #FFFCD6; margin-top: 8px; margin-right: 8px; box-shadow: none; }
|
321 |
.wp-ulike-notice .links a:hover, .wp-ulike-notice .links a:focus { background: #FFFCD6; color: #212121; }
|
322 |
|
323 |
+
.wp-ulike-container { width: 100%; margin-left: auto; margin-right: auto; }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
324 |
|
325 |
+
.wp-ulike-row { position: relative; width: 100%; }
|
|
|
326 |
|
327 |
+
.wp-ulike-flex { display: flex; align-items: center; flex-wrap: wrap; justify-content: center; padding: 10px 0; }
|
|
|
328 |
|
329 |
+
.wp-ulike-row [class^="col"] { float: left; margin: 2%; }
|
|
|
|
|
330 |
|
331 |
+
.rtl .wp-ulike-row [class^="col"] { float: right; }
|
|
|
332 |
|
333 |
+
.wp-ulike-row::after { content: ""; display: table; clear: both; }
|
|
|
334 |
|
335 |
+
.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12 { width: 96%; }
|
|
|
336 |
|
337 |
+
.col-1-sm { width: 4.33333%; }
|
|
|
338 |
|
339 |
+
.col-2-sm { width: 12.66667%; }
|
340 |
|
341 |
+
.col-3-sm { width: 21%; }
|
342 |
|
343 |
+
.col-4-sm { width: 29.33333%; }
|
344 |
|
345 |
+
.col-5-sm { width: 37.66667%; }
|
346 |
|
347 |
+
.col-6-sm { width: 46%; }
|
|
|
|
|
348 |
|
349 |
+
.col-7-sm { width: 54.33333%; }
|
|
|
350 |
|
351 |
+
.col-8-sm { width: 62.66667%; }
|
|
|
|
|
|
|
352 |
|
353 |
+
.col-9-sm { width: 71%; }
|
354 |
|
355 |
+
.col-10-sm { width: 79.33333%; }
|
356 |
|
357 |
+
.col-11-sm { width: 87.66667%; }
|
358 |
|
359 |
+
.col-12-sm { width: 96%; }
|
360 |
|
361 |
+
@media only screen and (min-width: 45em) { .col-1 { width: 4.33333%; }
|
362 |
+
.col-2 { width: 12.66667%; }
|
363 |
+
.col-3 { width: 21%; }
|
364 |
+
.col-4 { width: 29.33333%; }
|
365 |
+
.col-5 { width: 37.66667%; }
|
366 |
+
.col-6 { width: 46%; }
|
367 |
+
.col-7 { width: 54.33333%; }
|
368 |
+
.col-8 { width: 62.66667%; }
|
369 |
+
.col-9 { width: 71%; }
|
370 |
+
.col-10 { width: 79.33333%; }
|
371 |
+
.col-11 { width: 87.66667%; }
|
372 |
+
.col-12 { width: 96%; }
|
373 |
+
.hidden-sm { display: block; } }
|
374 |
+
@media only screen and (max-width: 45em) { .wp-ulike-flex { text-align: center; } }
|
375 |
+
/** Visual Select */
|
376 |
+
.wp-ulike-visual-select { height: auto; display: inline-block; width: 100%; max-width: 900px; }
|
377 |
+
.wp-ulike-visual-select .radio-img-item { display: inline-block; margin-right: 10px; border: 3px solid #d8d8d8; padding: 0 10px; width: 110px; height: 60px; cursor: pointer; }
|
378 |
+
.wp-ulike-visual-select .radio-img-item.item-checked { -webkit-filter: brightness(40%) sepia(100%) hue-rotate(170deg) saturate(250%); filter: brightness(40%) sepia(100%) hue-rotate(170deg) saturate(250%); }
|
379 |
+
.wp-ulike-visual-select .radio-img-item img { display: block; clear: both; width: 100%; height: 100%; }
|
380 |
|
381 |
+
/** Statistics Page */
|
382 |
+
.wp-ulike-page-title { font-size: 38px; line-height: 50px; font-weight: 400; margin: 0; }
|
383 |
|
384 |
+
.wp-ulike-header { margin: 0 2% 10px; padding: 0 20px 35px; display: flex; justify-content: space-between; position: relative; align-items: center; flex-wrap: wrap; }
|
385 |
+
.wp-ulike-header:after { content: ""; position: absolute; bottom: 0; height: 1px; background: #dde3e7; right: 20px; left: 20px; }
|
386 |
+
.wp-ulike-header .wp-ulike-widget-title { text-transform: capitalize; font-size: 22px; font-weight: 500; line-height: normal; color: #3d3d3d; margin: 0; }
|
387 |
|
388 |
+
.wp-ulike-button { background-color: #f9faff; padding: 10px 25px; text-decoration: none; text-transform: uppercase; color: #7e8996; border: 1px solid #dde3e7; border-radius: 50em; font-size: 14px; line-height: 20px; }
|
389 |
+
.wp-ulike-button:hover { background-color: #fff; color: #42484e; }
|
390 |
|
391 |
+
.wp-ulike-inner { position: relative; padding: 35px 20px; border: 1px solid #e4e6eb; background: #fff; border-radius: 4px; }
|
392 |
|
393 |
+
.wp-ulike-logs-count { margin: 0 auto; text-align: center; }
|
394 |
+
.wp-ulike-logs-count .wp-ulike-icon { font-size: 5vw; color: #8B93A6; line-height: 5vh; }
|
395 |
+
.wp-ulike-logs-count .wp-ulike-var { font-size: 3vw; line-height: 4vw; display: block; }
|
396 |
+
.wp-ulike-logs-count .wp-ulike-text { display: block; color: #8B93A6; font-size: 1.5vw; line-height: 2.5vw; }
|
397 |
|
398 |
+
.wp-ulike-is-loading { padding: 10px 0; }
|
399 |
+
.wp-ulike-is-loading:before { content: ""; position: absolute; left: 0; width: 100%; top: 0; height: 100%; background-color: white; background-image: url(../../../assets/img/svg/statistics.svg); background-repeat: no-repeat; background-position: center center; z-index: 9; }
|
400 |
|
401 |
+
.wp-ulike-table { display: table; }
|
402 |
+
.wp-ulike-table .wp-ulike-table-cell { display: table-cell; vertical-align: middle; }
|
403 |
|
404 |
+
.wp-ulike-summary-charts .wp-ulike-info { flex-basis: 35%; }
|
405 |
+
.wp-ulike-summary-charts .wp-ulike-icon { font-size: 3vw; color: #8B93A6; line-height: normal; flex-basis: 25%; }
|
406 |
+
.wp-ulike-summary-charts .wp-ulike-var { font-size: 1.8vw; line-height: normal; display: block; }
|
407 |
+
.wp-ulike-summary-charts .wp-ulike-text { display: block; color: #8B93A6; font-size: 1vw; line-height: normal; }
|
408 |
|
409 |
+
.wp-ulike-top-likers { margin: 0 2%; }
|
410 |
+
.wp-ulike-top-likers .wp-ulike-users-list { border-bottom: 1px solid #dde3e7; font-size: 15px; padding: 20px 0px; margin: 5px; }
|
411 |
+
.wp-ulike-top-likers .wp-ulike-users-list i { color: #8B93A6; margin: 0 5px; }
|
412 |
+
.wp-ulike-top-likers .wp-ulike-info { width: 60%; }
|
413 |
+
.wp-ulike-top-likers .wp-ulike-counter { width: 20%; }
|
414 |
+
.wp-ulike-top-likers .wp-ulike-total { width: 20%; }
|
415 |
|
416 |
+
.wp-ulike-empty-stats { text-align: center; height: 50em; position: relative; }
|
417 |
+
.wp-ulike-empty-stats > div { position: relative; top: 50%; transform: translateY(-50%); }
|
418 |
+
.wp-ulike-empty-stats .wp-ulike-icon { font-size: 110px; color: #8B93A6; }
|
419 |
+
.wp-ulike-empty-stats .wp-ulike-info { font-size: 28px; line-height: 42px; font-weight: 300; margin-top: 50px; }
|
420 |
|
421 |
+
.wp-ulike-tops-list { padding: 0 20px; }
|
422 |
+
.wp-ulike-tops-list > ul { font-size: 16px; font-weight: 300; line-height: 26px; color: #3d3d3d; margin: 0; }
|
423 |
+
.wp-ulike-tops-list > ul > li { display: flex; justify-content: space-between; border-bottom: 1px solid #dde3e7; padding: 8px 0; }
|
424 |
+
.wp-ulike-tops-list > ul > li a { text-decoration: none; color: #3d3d3d; }
|
425 |
|
426 |
+
/** Logs Page */
|
427 |
.wp_ulike_logs .button { line-height: 20px; }
|
428 |
.wp_ulike_logs i { font-size: 1.9em; }
|
429 |
.wp_ulike_logs i.wp-ulike-icons-thumb_up:before { color: #4caf50; }
|
430 |
.wp_ulike_logs i.wp-ulike-icons-thumb_down:before { color: #f44336; }
|
431 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
432 |
/** About Page */
|
433 |
.wp-ulike-about-page .ulike-badge { background: url(../../../assets/img/wp-ulike-badge.png) no-repeat scroll center 24px/95px 95px #F3643A; color: #FFFFFF; position: absolute; top: 0px; right: 0px; font-size: 14px; text-align: center; font-weight: 600; margin: 5px 0px 0px; padding-top: 120px; height: 40px; display: inline-block; width: 150px; text-rendering: optimizelegibility; box-shadow: 0px 1px 3px rgba(0, 0, 0, 0.2); }
|
434 |
.wp-ulike-about-page .wp_ulike_version { display: inline-block; position: absolute; top: 54px; left: 0; padding: 5px 10px; background: #e74c3c; color: #FFFFFF; font-size: 13px; font-weight: normal; }
|
448 |
.rtl .settings-error.info { border-left: none; border-right: 4px solid #2ea2cc; }
|
449 |
.rtl .settings-error.warning { border-left: none; border-right: 4px solid #2ea2cc; }
|
450 |
.rtl tr.hide-label td { padding-right: 0; padding-left: inherit !important; }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
451 |
.rtl .wp-ulike-about-page .ulike-badge { right: inherit; left: 0px; }
|
452 |
+
.rtl .wp-ulike-notice .links a { margin-right: 0; margin-left: 8px; }
|
|
|
|
|
|
admin/assets/js/{statistics.js → plugins.js}
RENAMED
@@ -1,4 +1,4 @@
|
|
1 |
-
/*! WP ULike - v3.
|
2 |
* https://wpulike.com
|
3 |
* Alimir 2018;
|
4 |
*/
|
@@ -19,283 +19,2428 @@
|
|
19 |
!function(t){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).Chart=t()}}(function(){return function t(e,n,i){function a(r,l){if(!n[r]){if(!e[r]){var s="function"==typeof require&&require;if(!l&&s)return s(r,!0);if(o)return o(r,!0);var u=new Error("Cannot find module '"+r+"'");throw u.code="MODULE_NOT_FOUND",u}var d=n[r]={exports:{}};e[r][0].call(d.exports,function(t){var n=e[r][1][t];return a(n||t)},d,d.exports,t,e,n,i)}return n[r].exports}for(var o="function"==typeof require&&require,r=0;r<i.length;r++)a(i[r]);return a}({1:[function(t,e,n){},{}],2:[function(t,e,n){function i(t){if(t){var e=[0,0,0],n=1,i=t.match(/^#([a-fA-F0-9]{3})$/i);if(i){i=i[1];for(a=0;a<e.length;a++)e[a]=parseInt(i[a]+i[a],16)}else if(i=t.match(/^#([a-fA-F0-9]{6})$/i)){i=i[1];for(a=0;a<e.length;a++)e[a]=parseInt(i.slice(2*a,2*a+2),16)}else if(i=t.match(/^rgba?\(\s*([+-]?\d+)\s*,\s*([+-]?\d+)\s*,\s*([+-]?\d+)\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)$/i)){for(a=0;a<e.length;a++)e[a]=parseInt(i[a+1]);n=parseFloat(i[4])}else if(i=t.match(/^rgba?\(\s*([+-]?[\d\.]+)\%\s*,\s*([+-]?[\d\.]+)\%\s*,\s*([+-]?[\d\.]+)\%\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)$/i)){for(a=0;a<e.length;a++)e[a]=Math.round(2.55*parseFloat(i[a+1]));n=parseFloat(i[4])}else if(i=t.match(/(\w+)/)){if("transparent"==i[1])return[0,0,0,0];if(!(e=c[i[1]]))return}for(var a=0;a<e.length;a++)e[a]=u(e[a],0,255);return n=n||0==n?u(n,0,1):1,e[3]=n,e}}function a(t){if(t){var e=t.match(/^hsla?\(\s*([+-]?\d+)(?:deg)?\s*,\s*([+-]?[\d\.]+)%\s*,\s*([+-]?[\d\.]+)%\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)/);if(e){var n=parseFloat(e[4]);return[u(parseInt(e[1]),0,360),u(parseFloat(e[2]),0,100),u(parseFloat(e[3]),0,100),u(isNaN(n)?1:n,0,1)]}}}function o(t){if(t){var e=t.match(/^hwb\(\s*([+-]?\d+)(?:deg)?\s*,\s*([+-]?[\d\.]+)%\s*,\s*([+-]?[\d\.]+)%\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)/);if(e){var n=parseFloat(e[4]);return[u(parseInt(e[1]),0,360),u(parseFloat(e[2]),0,100),u(parseFloat(e[3]),0,100),u(isNaN(n)?1:n,0,1)]}}}function r(t,e){return void 0===e&&(e=void 0!==t[3]?t[3]:1),"rgba("+t[0]+", "+t[1]+", "+t[2]+", "+e+")"}function l(t,e){return"rgba("+Math.round(t[0]/255*100)+"%, "+Math.round(t[1]/255*100)+"%, "+Math.round(t[2]/255*100)+"%, "+(e||t[3]||1)+")"}function s(t,e){return void 0===e&&(e=void 0!==t[3]?t[3]:1),"hsla("+t[0]+", "+t[1]+"%, "+t[2]+"%, "+e+")"}function u(t,e,n){return Math.min(Math.max(e,t),n)}function d(t){var e=t.toString(16).toUpperCase();return e.length<2?"0"+e:e}var c=t(6);e.exports={getRgba:i,getHsla:a,getRgb:function(t){var e=i(t);return e&&e.slice(0,3)},getHsl:function(t){var e=a(t);return e&&e.slice(0,3)},getHwb:o,getAlpha:function(t){var e=i(t);return e?e[3]:(e=a(t))?e[3]:(e=o(t))?e[3]:void 0},hexString:function(t){return"#"+d(t[0])+d(t[1])+d(t[2])},rgbString:function(t,e){return e<1||t[3]&&t[3]<1?r(t,e):"rgb("+t[0]+", "+t[1]+", "+t[2]+")"},rgbaString:r,percentString:function(t,e){return e<1||t[3]&&t[3]<1?l(t,e):"rgb("+Math.round(t[0]/255*100)+"%, "+Math.round(t[1]/255*100)+"%, "+Math.round(t[2]/255*100)+"%)"},percentaString:l,hslString:function(t,e){return e<1||t[3]&&t[3]<1?s(t,e):"hsl("+t[0]+", "+t[1]+"%, "+t[2]+"%)"},hslaString:s,hwbString:function(t,e){return void 0===e&&(e=void 0!==t[3]?t[3]:1),"hwb("+t[0]+", "+t[1]+"%, "+t[2]+"%"+(void 0!==e&&1!==e?", "+e:"")+")"},keyword:function(t){return h[t.slice(0,3)]}};var h={};for(var f in c)h[c[f]]=f},{6:6}],3:[function(t,e,n){var i=t(5),a=t(2),o=function(t){if(t instanceof o)return t;if(!(this instanceof o))return new o(t);this.valid=!1,this.values={rgb:[0,0,0],hsl:[0,0,0],hsv:[0,0,0],hwb:[0,0,0],cmyk:[0,0,0,0],alpha:1};var e;"string"==typeof t?(e=a.getRgba(t))?this.setValues("rgb",e):(e=a.getHsla(t))?this.setValues("hsl",e):(e=a.getHwb(t))&&this.setValues("hwb",e):"object"==typeof t&&(void 0!==(e=t).r||void 0!==e.red?this.setValues("rgb",e):void 0!==e.l||void 0!==e.lightness?this.setValues("hsl",e):void 0!==e.v||void 0!==e.value?this.setValues("hsv",e):void 0!==e.w||void 0!==e.whiteness?this.setValues("hwb",e):void 0===e.c&&void 0===e.cyan||this.setValues("cmyk",e))};o.prototype={isValid:function(){return this.valid},rgb:function(){return this.setSpace("rgb",arguments)},hsl:function(){return this.setSpace("hsl",arguments)},hsv:function(){return this.setSpace("hsv",arguments)},hwb:function(){return this.setSpace("hwb",arguments)},cmyk:function(){return this.setSpace("cmyk",arguments)},rgbArray:function(){return this.values.rgb},hslArray:function(){return this.values.hsl},hsvArray:function(){return this.values.hsv},hwbArray:function(){var t=this.values;return 1!==t.alpha?t.hwb.concat([t.alpha]):t.hwb},cmykArray:function(){return this.values.cmyk},rgbaArray:function(){var t=this.values;return t.rgb.concat([t.alpha])},hslaArray:function(){var t=this.values;return t.hsl.concat([t.alpha])},alpha:function(t){return void 0===t?this.values.alpha:(this.setValues("alpha",t),this)},red:function(t){return this.setChannel("rgb",0,t)},green:function(t){return this.setChannel("rgb",1,t)},blue:function(t){return this.setChannel("rgb",2,t)},hue:function(t){return t&&(t=(t%=360)<0?360+t:t),this.setChannel("hsl",0,t)},saturation:function(t){return this.setChannel("hsl",1,t)},lightness:function(t){return this.setChannel("hsl",2,t)},saturationv:function(t){return this.setChannel("hsv",1,t)},whiteness:function(t){return this.setChannel("hwb",1,t)},blackness:function(t){return this.setChannel("hwb",2,t)},value:function(t){return this.setChannel("hsv",2,t)},cyan:function(t){return this.setChannel("cmyk",0,t)},magenta:function(t){return this.setChannel("cmyk",1,t)},yellow:function(t){return this.setChannel("cmyk",2,t)},black:function(t){return this.setChannel("cmyk",3,t)},hexString:function(){return a.hexString(this.values.rgb)},rgbString:function(){return a.rgbString(this.values.rgb,this.values.alpha)},rgbaString:function(){return a.rgbaString(this.values.rgb,this.values.alpha)},percentString:function(){return a.percentString(this.values.rgb,this.values.alpha)},hslString:function(){return a.hslString(this.values.hsl,this.values.alpha)},hslaString:function(){return a.hslaString(this.values.hsl,this.values.alpha)},hwbString:function(){return a.hwbString(this.values.hwb,this.values.alpha)},keyword:function(){return a.keyword(this.values.rgb,this.values.alpha)},rgbNumber:function(){var t=this.values.rgb;return t[0]<<16|t[1]<<8|t[2]},luminosity:function(){for(var t=this.values.rgb,e=[],n=0;n<t.length;n++){var i=t[n]/255;e[n]=i<=.03928?i/12.92:Math.pow((i+.055)/1.055,2.4)}return.2126*e[0]+.7152*e[1]+.0722*e[2]},contrast:function(t){var e=this.luminosity(),n=t.luminosity();return e>n?(e+.05)/(n+.05):(n+.05)/(e+.05)},level:function(t){var e=this.contrast(t);return e>=7.1?"AAA":e>=4.5?"AA":""},dark:function(){var t=this.values.rgb;return(299*t[0]+587*t[1]+114*t[2])/1e3<128},light:function(){return!this.dark()},negate:function(){for(var t=[],e=0;e<3;e++)t[e]=255-this.values.rgb[e];return this.setValues("rgb",t),this},lighten:function(t){var e=this.values.hsl;return e[2]+=e[2]*t,this.setValues("hsl",e),this},darken:function(t){var e=this.values.hsl;return e[2]-=e[2]*t,this.setValues("hsl",e),this},saturate:function(t){var e=this.values.hsl;return e[1]+=e[1]*t,this.setValues("hsl",e),this},desaturate:function(t){var e=this.values.hsl;return e[1]-=e[1]*t,this.setValues("hsl",e),this},whiten:function(t){var e=this.values.hwb;return e[1]+=e[1]*t,this.setValues("hwb",e),this},blacken:function(t){var e=this.values.hwb;return e[2]+=e[2]*t,this.setValues("hwb",e),this},greyscale:function(){var t=this.values.rgb,e=.3*t[0]+.59*t[1]+.11*t[2];return this.setValues("rgb",[e,e,e]),this},clearer:function(t){var e=this.values.alpha;return this.setValues("alpha",e-e*t),this},opaquer:function(t){var e=this.values.alpha;return this.setValues("alpha",e+e*t),this},rotate:function(t){var e=this.values.hsl,n=(e[0]+t)%360;return e[0]=n<0?360+n:n,this.setValues("hsl",e),this},mix:function(t,e){var n=this,i=t,a=void 0===e?.5:e,o=2*a-1,r=n.alpha()-i.alpha(),l=((o*r==-1?o:(o+r)/(1+o*r))+1)/2,s=1-l;return this.rgb(l*n.red()+s*i.red(),l*n.green()+s*i.green(),l*n.blue()+s*i.blue()).alpha(n.alpha()*a+i.alpha()*(1-a))},toJSON:function(){return this.rgb()},clone:function(){var t,e,n=new o,i=this.values,a=n.values;for(var r in i)i.hasOwnProperty(r)&&(t=i[r],"[object Array]"===(e={}.toString.call(t))?a[r]=t.slice(0):"[object Number]"===e?a[r]=t:console.error("unexpected color value:",t));return n}},o.prototype.spaces={rgb:["red","green","blue"],hsl:["hue","saturation","lightness"],hsv:["hue","saturation","value"],hwb:["hue","whiteness","blackness"],cmyk:["cyan","magenta","yellow","black"]},o.prototype.maxes={rgb:[255,255,255],hsl:[360,100,100],hsv:[360,100,100],hwb:[360,100,100],cmyk:[100,100,100,100]},o.prototype.getValues=function(t){for(var e=this.values,n={},i=0;i<t.length;i++)n[t.charAt(i)]=e[t][i];return 1!==e.alpha&&(n.a=e.alpha),n},o.prototype.setValues=function(t,e){var n,a=this.values,o=this.spaces,r=this.maxes,l=1;if(this.valid=!0,"alpha"===t)l=e;else if(e.length)a[t]=e.slice(0,t.length),l=e[t.length];else if(void 0!==e[t.charAt(0)]){for(n=0;n<t.length;n++)a[t][n]=e[t.charAt(n)];l=e.a}else if(void 0!==e[o[t][0]]){var s=o[t];for(n=0;n<t.length;n++)a[t][n]=e[s[n]];l=e.alpha}if(a.alpha=Math.max(0,Math.min(1,void 0===l?a.alpha:l)),"alpha"===t)return!1;var u;for(n=0;n<t.length;n++)u=Math.max(0,Math.min(r[t][n],a[t][n])),a[t][n]=Math.round(u);for(var d in o)d!==t&&(a[d]=i[t][d](a[t]));return!0},o.prototype.setSpace=function(t,e){var n=e[0];return void 0===n?this.getValues(t):("number"==typeof n&&(n=Array.prototype.slice.call(e)),this.setValues(t,n),this)},o.prototype.setChannel=function(t,e,n){var i=this.values[t];return void 0===n?i[e]:n===i[e]?this:(i[e]=n,this.setValues(t,i),this)},"undefined"!=typeof window&&(window.Color=o),e.exports=o},{2:2,5:5}],4:[function(t,e,n){function i(t){var e,n,i,a=t[0]/255,o=t[1]/255,r=t[2]/255,l=Math.min(a,o,r),s=Math.max(a,o,r),u=s-l;return s==l?e=0:a==s?e=(o-r)/u:o==s?e=2+(r-a)/u:r==s&&(e=4+(a-o)/u),(e=Math.min(60*e,360))<0&&(e+=360),i=(l+s)/2,n=s==l?0:i<=.5?u/(s+l):u/(2-s-l),[e,100*n,100*i]}function a(t){var e,n,i,a=t[0],o=t[1],r=t[2],l=Math.min(a,o,r),s=Math.max(a,o,r),u=s-l;return n=0==s?0:u/s*1e3/10,s==l?e=0:a==s?e=(o-r)/u:o==s?e=2+(r-a)/u:r==s&&(e=4+(a-o)/u),(e=Math.min(60*e,360))<0&&(e+=360),i=s/255*1e3/10,[e,n,i]}function o(t){var e=t[0],n=t[1],a=t[2];return[i(t)[0],100*(1/255*Math.min(e,Math.min(n,a))),100*(a=1-1/255*Math.max(e,Math.max(n,a)))]}function l(t){var e,n,i,a,o=t[0]/255,r=t[1]/255,l=t[2]/255;return a=Math.min(1-o,1-r,1-l),e=(1-o-a)/(1-a)||0,n=(1-r-a)/(1-a)||0,i=(1-l-a)/(1-a)||0,[100*e,100*n,100*i,100*a]}function s(t){return C[JSON.stringify(t)]}function u(t){var e=t[0]/255,n=t[1]/255,i=t[2]/255;return[100*(.4124*(e=e>.04045?Math.pow((e+.055)/1.055,2.4):e/12.92)+.3576*(n=n>.04045?Math.pow((n+.055)/1.055,2.4):n/12.92)+.1805*(i=i>.04045?Math.pow((i+.055)/1.055,2.4):i/12.92)),100*(.2126*e+.7152*n+.0722*i),100*(.0193*e+.1192*n+.9505*i)]}function d(t){var e,n,i,a=u(t),o=a[0],r=a[1],l=a[2];return o/=95.047,r/=100,l/=108.883,o=o>.008856?Math.pow(o,1/3):7.787*o+16/116,r=r>.008856?Math.pow(r,1/3):7.787*r+16/116,l=l>.008856?Math.pow(l,1/3):7.787*l+16/116,e=116*r-16,n=500*(o-r),i=200*(r-l),[e,n,i]}function c(t){var e,n,i,a,o,r=t[0]/360,l=t[1]/100,s=t[2]/100;if(0==l)return o=255*s,[o,o,o];e=2*s-(n=s<.5?s*(1+l):s+l-s*l),a=[0,0,0];for(var u=0;u<3;u++)(i=r+1/3*-(u-1))<0&&i++,i>1&&i--,o=6*i<1?e+6*(n-e)*i:2*i<1?n:3*i<2?e+(n-e)*(2/3-i)*6:e,a[u]=255*o;return a}function h(t){var e=t[0]/60,n=t[1]/100,i=t[2]/100,a=Math.floor(e)%6,o=e-Math.floor(e),r=255*i*(1-n),l=255*i*(1-n*o),s=255*i*(1-n*(1-o)),i=255*i;switch(a){case 0:return[i,s,r];case 1:return[l,i,r];case 2:return[r,i,s];case 3:return[r,l,i];case 4:return[s,r,i];case 5:return[i,r,l]}}function f(t){var e,n,i,a,o=t[0]/360,l=t[1]/100,s=t[2]/100,u=l+s;switch(u>1&&(l/=u,s/=u),e=Math.floor(6*o),n=1-s,i=6*o-e,0!=(1&e)&&(i=1-i),a=l+i*(n-l),e){default:case 6:case 0:r=n,g=a,b=l;break;case 1:r=a,g=n,b=l;break;case 2:r=l,g=n,b=a;break;case 3:r=l,g=a,b=n;break;case 4:r=a,g=l,b=n;break;case 5:r=n,g=l,b=a}return[255*r,255*g,255*b]}function p(t){var e,n,i,a=t[0]/100,o=t[1]/100,r=t[2]/100,l=t[3]/100;return e=1-Math.min(1,a*(1-l)+l),n=1-Math.min(1,o*(1-l)+l),i=1-Math.min(1,r*(1-l)+l),[255*e,255*n,255*i]}function v(t){var e,n,i,a=t[0]/100,o=t[1]/100,r=t[2]/100;return e=3.2406*a+-1.5372*o+-.4986*r,n=-.9689*a+1.8758*o+.0415*r,i=.0557*a+-.204*o+1.057*r,e=e>.0031308?1.055*Math.pow(e,1/2.4)-.055:e*=12.92,n=n>.0031308?1.055*Math.pow(n,1/2.4)-.055:n*=12.92,i=i>.0031308?1.055*Math.pow(i,1/2.4)-.055:i*=12.92,e=Math.min(Math.max(0,e),1),n=Math.min(Math.max(0,n),1),i=Math.min(Math.max(0,i),1),[255*e,255*n,255*i]}function m(t){var e,n,i,a=t[0],o=t[1],r=t[2];return a/=95.047,o/=100,r/=108.883,a=a>.008856?Math.pow(a,1/3):7.787*a+16/116,o=o>.008856?Math.pow(o,1/3):7.787*o+16/116,r=r>.008856?Math.pow(r,1/3):7.787*r+16/116,e=116*o-16,n=500*(a-o),i=200*(o-r),[e,n,i]}function x(t){var e,n,i,a,o=t[0],r=t[1],l=t[2];return o<=8?a=(n=100*o/903.3)/100*7.787+16/116:(n=100*Math.pow((o+16)/116,3),a=Math.pow(n/100,1/3)),e=e/95.047<=.008856?e=95.047*(r/500+a-16/116)/7.787:95.047*Math.pow(r/500+a,3),i=i/108.883<=.008859?i=108.883*(a-l/200-16/116)/7.787:108.883*Math.pow(a-l/200,3),[e,n,i]}function y(t){var e,n,i,a=t[0],o=t[1],r=t[2];return e=Math.atan2(r,o),(n=360*e/2/Math.PI)<0&&(n+=360),i=Math.sqrt(o*o+r*r),[a,i,n]}function k(t){return v(x(t))}function w(t){var e,n,i,a=t[0],o=t[1];return i=t[2]/360*2*Math.PI,e=o*Math.cos(i),n=o*Math.sin(i),[a,e,n]}function M(t){return S[t]}e.exports={rgb2hsl:i,rgb2hsv:a,rgb2hwb:o,rgb2cmyk:l,rgb2keyword:s,rgb2xyz:u,rgb2lab:d,rgb2lch:function(t){return y(d(t))},hsl2rgb:c,hsl2hsv:function(t){var e,n,i=t[0],a=t[1]/100,o=t[2]/100;return 0===o?[0,0,0]:(o*=2,a*=o<=1?o:2-o,n=(o+a)/2,e=2*a/(o+a),[i,100*e,100*n])},hsl2hwb:function(t){return o(c(t))},hsl2cmyk:function(t){return l(c(t))},hsl2keyword:function(t){return s(c(t))},hsv2rgb:h,hsv2hsl:function(t){var e,n,i=t[0],a=t[1]/100,o=t[2]/100;return n=(2-a)*o,e=a*o,e/=n<=1?n:2-n,e=e||0,n/=2,[i,100*e,100*n]},hsv2hwb:function(t){return o(h(t))},hsv2cmyk:function(t){return l(h(t))},hsv2keyword:function(t){return s(h(t))},hwb2rgb:f,hwb2hsl:function(t){return i(f(t))},hwb2hsv:function(t){return a(f(t))},hwb2cmyk:function(t){return l(f(t))},hwb2keyword:function(t){return s(f(t))},cmyk2rgb:p,cmyk2hsl:function(t){return i(p(t))},cmyk2hsv:function(t){return a(p(t))},cmyk2hwb:function(t){return o(p(t))},cmyk2keyword:function(t){return s(p(t))},keyword2rgb:M,keyword2hsl:function(t){return i(M(t))},keyword2hsv:function(t){return a(M(t))},keyword2hwb:function(t){return o(M(t))},keyword2cmyk:function(t){return l(M(t))},keyword2lab:function(t){return d(M(t))},keyword2xyz:function(t){return u(M(t))},xyz2rgb:v,xyz2lab:m,xyz2lch:function(t){return y(m(t))},lab2xyz:x,lab2rgb:k,lab2lch:y,lch2lab:w,lch2xyz:function(t){return x(w(t))},lch2rgb:function(t){return k(w(t))}};var S={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]},C={};for(var _ in S)C[JSON.stringify(S[_])]=_},{}],5:[function(t,e,n){var i=t(4),a=function(){return new u};for(var o in i){a[o+"Raw"]=function(t){return function(e){return"number"==typeof e&&(e=Array.prototype.slice.call(arguments)),i[t](e)}}(o);var r=/(\w+)2(\w+)/.exec(o),l=r[1],s=r[2];(a[l]=a[l]||{})[s]=a[o]=function(t){return function(e){"number"==typeof e&&(e=Array.prototype.slice.call(arguments));var n=i[t](e);if("string"==typeof n||void 0===n)return n;for(var a=0;a<n.length;a++)n[a]=Math.round(n[a]);return n}}(o)}var u=function(){this.convs={}};u.prototype.routeSpace=function(t,e){var n=e[0];return void 0===n?this.getValues(t):("number"==typeof n&&(n=Array.prototype.slice.call(e)),this.setValues(t,n))},u.prototype.setValues=function(t,e){return this.space=t,this.convs={},this.convs[t]=e,this},u.prototype.getValues=function(t){var e=this.convs[t];if(!e){var n=this.space,i=this.convs[n];e=a[n][t](i),this.convs[t]=e}return e},["rgb","hsl","hsv","cmyk","keyword"].forEach(function(t){u.prototype[t]=function(e){return this.routeSpace(t,arguments)}}),e.exports=a},{4:4}],6:[function(t,e,n){"use strict";e.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}},{}],7:[function(t,e,n){var i=t(29)();i.helpers=t(45),t(27)(i),i.defaults=t(25),i.Element=t(26),i.elements=t(40),i.Interaction=t(28),i.platform=t(48),t(31)(i),t(22)(i),t(23)(i),t(24)(i),t(30)(i),t(33)(i),t(32)(i),t(35)(i),t(54)(i),t(52)(i),t(53)(i),t(55)(i),t(56)(i),t(57)(i),t(15)(i),t(16)(i),t(17)(i),t(18)(i),t(19)(i),t(20)(i),t(21)(i),t(8)(i),t(9)(i),t(10)(i),t(11)(i),t(12)(i),t(13)(i),t(14)(i);var a=[];a.push(t(49)(i),t(50)(i),t(51)(i)),i.plugins.register(a),i.platform.initialize(),e.exports=i,"undefined"!=typeof window&&(window.Chart=i),i.canvasHelpers=i.helpers.canvas},{10:10,11:11,12:12,13:13,14:14,15:15,16:16,17:17,18:18,19:19,20:20,21:21,22:22,23:23,24:24,25:25,26:26,27:27,28:28,29:29,30:30,31:31,32:32,33:33,35:35,40:40,45:45,48:48,49:49,50:50,51:51,52:52,53:53,54:54,55:55,56:56,57:57,8:8,9:9}],8:[function(t,e,n){"use strict";e.exports=function(t){t.Bar=function(e,n){return n.type="bar",new t(e,n)}}},{}],9:[function(t,e,n){"use strict";e.exports=function(t){t.Bubble=function(e,n){return n.type="bubble",new t(e,n)}}},{}],10:[function(t,e,n){"use strict";e.exports=function(t){t.Doughnut=function(e,n){return n.type="doughnut",new t(e,n)}}},{}],11:[function(t,e,n){"use strict";e.exports=function(t){t.Line=function(e,n){return n.type="line",new t(e,n)}}},{}],12:[function(t,e,n){"use strict";e.exports=function(t){t.PolarArea=function(e,n){return n.type="polarArea",new t(e,n)}}},{}],13:[function(t,e,n){"use strict";e.exports=function(t){t.Radar=function(e,n){return n.type="radar",new t(e,n)}}},{}],14:[function(t,e,n){"use strict";e.exports=function(t){t.Scatter=function(e,n){return n.type="scatter",new t(e,n)}}},{}],15:[function(t,e,n){"use strict";var i=t(25),a=t(40),o=t(45);i._set("bar",{hover:{mode:"label"},scales:{xAxes:[{type:"category",categoryPercentage:.8,barPercentage:.9,offset:!0,gridLines:{offsetGridLines:!0}}],yAxes:[{type:"linear"}]}}),i._set("horizontalBar",{hover:{mode:"index",axis:"y"},scales:{xAxes:[{type:"linear",position:"bottom"}],yAxes:[{position:"left",type:"category",categoryPercentage:.8,barPercentage:.9,offset:!0,gridLines:{offsetGridLines:!0}}]},elements:{rectangle:{borderSkipped:"left"}},tooltips:{callbacks:{title:function(t,e){var n="";return t.length>0&&(t[0].yLabel?n=t[0].yLabel:e.labels.length>0&&t[0].index<e.labels.length&&(n=e.labels[t[0].index])),n},label:function(t,e){return(e.datasets[t.datasetIndex].label||"")+": "+t.xLabel}},mode:"index",axis:"y"}}),e.exports=function(t){t.controllers.bar=t.DatasetController.extend({dataElementType:a.Rectangle,initialize:function(){var e,n=this;t.DatasetController.prototype.initialize.apply(n,arguments),(e=n.getMeta()).stack=n.getDataset().stack,e.bar=!0},update:function(t){var e,n,i=this,a=i.getMeta().data;for(i._ruler=i.getRuler(),e=0,n=a.length;e<n;++e)i.updateElement(a[e],e,t)},updateElement:function(t,e,n){var i=this,a=i.chart,r=i.getMeta(),l=i.getDataset(),s=t.custom||{},u=a.options.elements.rectangle;t._xScale=i.getScaleForId(r.xAxisID),t._yScale=i.getScaleForId(r.yAxisID),t._datasetIndex=i.index,t._index=e,t._model={datasetLabel:l.label,label:a.data.labels[e],borderSkipped:s.borderSkipped?s.borderSkipped:u.borderSkipped,backgroundColor:s.backgroundColor?s.backgroundColor:o.valueAtIndexOrDefault(l.backgroundColor,e,u.backgroundColor),borderColor:s.borderColor?s.borderColor:o.valueAtIndexOrDefault(l.borderColor,e,u.borderColor),borderWidth:s.borderWidth?s.borderWidth:o.valueAtIndexOrDefault(l.borderWidth,e,u.borderWidth)},i.updateElementGeometry(t,e,n),t.pivot()},updateElementGeometry:function(t,e,n){var i=this,a=t._model,o=i.getValueScale(),r=o.getBasePixel(),l=o.isHorizontal(),s=i._ruler||i.getRuler(),u=i.calculateBarValuePixels(i.index,e),d=i.calculateBarIndexPixels(i.index,e,s);a.horizontal=l,a.base=n?r:u.base,a.x=l?n?r:u.head:d.center,a.y=l?d.center:n?r:u.head,a.height=l?d.size:void 0,a.width=l?void 0:d.size},getValueScaleId:function(){return this.getMeta().yAxisID},getIndexScaleId:function(){return this.getMeta().xAxisID},getValueScale:function(){return this.getScaleForId(this.getValueScaleId())},getIndexScale:function(){return this.getScaleForId(this.getIndexScaleId())},getStackCount:function(t){var e,n,i=this,a=i.chart,o=i.getIndexScale().options.stacked,r=void 0===t?a.data.datasets.length:t+1,l=[];for(e=0;e<r;++e)(n=a.getDatasetMeta(e)).bar&&a.isDatasetVisible(e)&&(!1===o||!0===o&&-1===l.indexOf(n.stack)||void 0===o&&(void 0===n.stack||-1===l.indexOf(n.stack)))&&l.push(n.stack);return l.length},getStackIndex:function(t){return this.getStackCount(t)-1},getRuler:function(){var t,e,n=this,i=n.getIndexScale(),a=n.getStackCount(),o=n.index,r=[],l=i.isHorizontal(),s=l?i.left:i.top,u=s+(l?i.width:i.height);for(t=0,e=n.getMeta().data.length;t<e;++t)r.push(i.getPixelForValue(null,t,o));return{pixels:r,start:s,end:u,stackCount:a,scale:i}},calculateBarValuePixels:function(t,e){var n,i,a,o,r,l,s=this,u=s.chart,d=s.getMeta(),c=s.getValueScale(),h=u.data.datasets,f=c.getRightValue(h[t].data[e]),g=c.options.stacked,p=d.stack,v=0;if(g||void 0===g&&void 0!==p)for(n=0;n<t;++n)(i=u.getDatasetMeta(n)).bar&&i.stack===p&&i.controller.getValueScaleId()===c.id&&u.isDatasetVisible(n)&&(a=c.getRightValue(h[n].data[e]),(f<0&&a<0||f>=0&&a>0)&&(v+=a));return o=c.getPixelForValue(v),r=c.getPixelForValue(v+f),l=(r-o)/2,{size:l,base:o,head:r,center:r+l/2}},calculateBarIndexPixels:function(t,e,n){var i,a,r,l,s,u,d=this,c=n.scale.options,h=d.getStackIndex(t),f=n.pixels,g=f[e],p=f.length,v=n.start,m=n.end;return 1===p?(i=g>v?g-v:m-g,a=g<m?m-g:g-v):(e>0&&(i=(g-f[e-1])/2,e===p-1&&(a=i)),e<p-1&&(a=(f[e+1]-g)/2,0===e&&(i=a))),r=i*c.categoryPercentage,l=a*c.categoryPercentage,s=(r+l)/n.stackCount,u=s*c.barPercentage,u=Math.min(o.valueOrDefault(c.barThickness,u),o.valueOrDefault(c.maxBarThickness,1/0)),g-=r,g+=s*h,g+=(s-u)/2,{size:u,base:g,head:g+u,center:g+u/2}},draw:function(){var t=this,e=t.chart,n=t.getValueScale(),i=t.getMeta().data,a=t.getDataset(),r=i.length,l=0;for(o.canvas.clipArea(e.ctx,e.chartArea);l<r;++l)isNaN(n.getRightValue(a.data[l]))||i[l].draw();o.canvas.unclipArea(e.ctx)},setHoverStyle:function(t){var e=this.chart.data.datasets[t._datasetIndex],n=t._index,i=t.custom||{},a=t._model;a.backgroundColor=i.hoverBackgroundColor?i.hoverBackgroundColor:o.valueAtIndexOrDefault(e.hoverBackgroundColor,n,o.getHoverColor(a.backgroundColor)),a.borderColor=i.hoverBorderColor?i.hoverBorderColor:o.valueAtIndexOrDefault(e.hoverBorderColor,n,o.getHoverColor(a.borderColor)),a.borderWidth=i.hoverBorderWidth?i.hoverBorderWidth:o.valueAtIndexOrDefault(e.hoverBorderWidth,n,a.borderWidth)},removeHoverStyle:function(t){var e=this.chart.data.datasets[t._datasetIndex],n=t._index,i=t.custom||{},a=t._model,r=this.chart.options.elements.rectangle;a.backgroundColor=i.backgroundColor?i.backgroundColor:o.valueAtIndexOrDefault(e.backgroundColor,n,r.backgroundColor),a.borderColor=i.borderColor?i.borderColor:o.valueAtIndexOrDefault(e.borderColor,n,r.borderColor),a.borderWidth=i.borderWidth?i.borderWidth:o.valueAtIndexOrDefault(e.borderWidth,n,r.borderWidth)}}),t.controllers.horizontalBar=t.controllers.bar.extend({getValueScaleId:function(){return this.getMeta().xAxisID},getIndexScaleId:function(){return this.getMeta().yAxisID}})}},{25:25,40:40,45:45}],16:[function(t,e,n){"use strict";var i=t(25),a=t(40),o=t(45);i._set("bubble",{hover:{mode:"single"},scales:{xAxes:[{type:"linear",position:"bottom",id:"x-axis-0"}],yAxes:[{type:"linear",position:"left",id:"y-axis-0"}]},tooltips:{callbacks:{title:function(){return""},label:function(t,e){var n=e.datasets[t.datasetIndex].label||"",i=e.datasets[t.datasetIndex].data[t.index];return n+": ("+t.xLabel+", "+t.yLabel+", "+i.r+")"}}}}),e.exports=function(t){t.controllers.bubble=t.DatasetController.extend({dataElementType:a.Point,update:function(t){var e=this,n=e.getMeta().data;o.each(n,function(n,i){e.updateElement(n,i,t)})},updateElement:function(t,e,n){var i=this,a=i.getMeta(),o=t.custom||{},r=i.getScaleForId(a.xAxisID),l=i.getScaleForId(a.yAxisID),s=i._resolveElementOptions(t,e),u=i.getDataset().data[e],d=i.index,c=n?r.getPixelForDecimal(.5):r.getPixelForValue("object"==typeof u?u:NaN,e,d),h=n?l.getBasePixel():l.getPixelForValue(u,e,d);t._xScale=r,t._yScale=l,t._options=s,t._datasetIndex=d,t._index=e,t._model={backgroundColor:s.backgroundColor,borderColor:s.borderColor,borderWidth:s.borderWidth,hitRadius:s.hitRadius,pointStyle:s.pointStyle,radius:n?0:s.radius,skip:o.skip||isNaN(c)||isNaN(h),x:c,y:h},t.pivot()},setHoverStyle:function(t){var e=t._model,n=t._options;e.backgroundColor=o.valueOrDefault(n.hoverBackgroundColor,o.getHoverColor(n.backgroundColor)),e.borderColor=o.valueOrDefault(n.hoverBorderColor,o.getHoverColor(n.borderColor)),e.borderWidth=o.valueOrDefault(n.hoverBorderWidth,n.borderWidth),e.radius=n.radius+n.hoverRadius},removeHoverStyle:function(t){var e=t._model,n=t._options;e.backgroundColor=n.backgroundColor,e.borderColor=n.borderColor,e.borderWidth=n.borderWidth,e.radius=n.radius},_resolveElementOptions:function(t,e){var n,i,a,r=this,l=r.chart,s=l.data.datasets[r.index],u=t.custom||{},d=l.options.elements.point,c=o.options.resolve,h=s.data[e],f={},g={chart:l,dataIndex:e,dataset:s,datasetIndex:r.index},p=["backgroundColor","borderColor","borderWidth","hoverBackgroundColor","hoverBorderColor","hoverBorderWidth","hoverRadius","hitRadius","pointStyle"];for(n=0,i=p.length;n<i;++n)f[a=p[n]]=c([u[a],s[a],d[a]],g,e);return f.radius=c([u.radius,h?h.r:void 0,s.radius,d.radius],g,e),f}})}},{25:25,40:40,45:45}],17:[function(t,e,n){"use strict";var i=t(25),a=t(40),o=t(45);i._set("doughnut",{animation:{animateRotate:!0,animateScale:!1},hover:{mode:"single"},legendCallback:function(t){var e=[];e.push('<ul class="'+t.id+'-legend">');var n=t.data,i=n.datasets,a=n.labels;if(i.length)for(var o=0;o<i[0].data.length;++o)e.push('<li><span style="background-color:'+i[0].backgroundColor[o]+'"></span>'),a[o]&&e.push(a[o]),e.push("</li>");return e.push("</ul>"),e.join("")},legend:{labels:{generateLabels:function(t){var e=t.data;return e.labels.length&&e.datasets.length?e.labels.map(function(n,i){var a=t.getDatasetMeta(0),r=e.datasets[0],l=a.data[i],s=l&&l.custom||{},u=o.valueAtIndexOrDefault,d=t.options.elements.arc;return{text:n,fillStyle:s.backgroundColor?s.backgroundColor:u(r.backgroundColor,i,d.backgroundColor),strokeStyle:s.borderColor?s.borderColor:u(r.borderColor,i,d.borderColor),lineWidth:s.borderWidth?s.borderWidth:u(r.borderWidth,i,d.borderWidth),hidden:isNaN(r.data[i])||a.data[i].hidden,index:i}}):[]}},onClick:function(t,e){var n,i,a,o=e.index,r=this.chart;for(n=0,i=(r.data.datasets||[]).length;n<i;++n)(a=r.getDatasetMeta(n)).data[o]&&(a.data[o].hidden=!a.data[o].hidden);r.update()}},cutoutPercentage:50,rotation:-.5*Math.PI,circumference:2*Math.PI,tooltips:{callbacks:{title:function(){return""},label:function(t,e){var n=e.labels[t.index],i=": "+e.datasets[t.datasetIndex].data[t.index];return o.isArray(n)?(n=n.slice())[0]+=i:n+=i,n}}}}),i._set("pie",o.clone(i.doughnut)),i._set("pie",{cutoutPercentage:0}),e.exports=function(t){t.controllers.doughnut=t.controllers.pie=t.DatasetController.extend({dataElementType:a.Arc,linkScales:o.noop,getRingIndex:function(t){for(var e=0,n=0;n<t;++n)this.chart.isDatasetVisible(n)&&++e;return e},update:function(t){var e=this,n=e.chart,i=n.chartArea,a=n.options,r=a.elements.arc,l=i.right-i.left-r.borderWidth,s=i.bottom-i.top-r.borderWidth,u=Math.min(l,s),d={x:0,y:0},c=e.getMeta(),h=a.cutoutPercentage,f=a.circumference;if(f<2*Math.PI){var g=a.rotation%(2*Math.PI),p=(g+=2*Math.PI*(g>=Math.PI?-1:g<-Math.PI?1:0))+f,v={x:Math.cos(g),y:Math.sin(g)},m={x:Math.cos(p),y:Math.sin(p)},b=g<=0&&p>=0||g<=2*Math.PI&&2*Math.PI<=p,x=g<=.5*Math.PI&&.5*Math.PI<=p||g<=2.5*Math.PI&&2.5*Math.PI<=p,y=g<=-Math.PI&&-Math.PI<=p||g<=Math.PI&&Math.PI<=p,k=g<=.5*-Math.PI&&.5*-Math.PI<=p||g<=1.5*Math.PI&&1.5*Math.PI<=p,w=h/100,M={x:y?-1:Math.min(v.x*(v.x<0?1:w),m.x*(m.x<0?1:w)),y:k?-1:Math.min(v.y*(v.y<0?1:w),m.y*(m.y<0?1:w))},S={x:b?1:Math.max(v.x*(v.x>0?1:w),m.x*(m.x>0?1:w)),y:x?1:Math.max(v.y*(v.y>0?1:w),m.y*(m.y>0?1:w))},C={width:.5*(S.x-M.x),height:.5*(S.y-M.y)};u=Math.min(l/C.width,s/C.height),d={x:-.5*(S.x+M.x),y:-.5*(S.y+M.y)}}n.borderWidth=e.getMaxBorderWidth(c.data),n.outerRadius=Math.max((u-n.borderWidth)/2,0),n.innerRadius=Math.max(h?n.outerRadius/100*h:0,0),n.radiusLength=(n.outerRadius-n.innerRadius)/n.getVisibleDatasetCount(),n.offsetX=d.x*n.outerRadius,n.offsetY=d.y*n.outerRadius,c.total=e.calculateTotal(),e.outerRadius=n.outerRadius-n.radiusLength*e.getRingIndex(e.index),e.innerRadius=Math.max(e.outerRadius-n.radiusLength,0),o.each(c.data,function(n,i){e.updateElement(n,i,t)})},updateElement:function(t,e,n){var i=this,a=i.chart,r=a.chartArea,l=a.options,s=l.animation,u=(r.left+r.right)/2,d=(r.top+r.bottom)/2,c=l.rotation,h=l.rotation,f=i.getDataset(),g=n&&s.animateRotate?0:t.hidden?0:i.calculateCircumference(f.data[e])*(l.circumference/(2*Math.PI)),p=n&&s.animateScale?0:i.innerRadius,v=n&&s.animateScale?0:i.outerRadius,m=o.valueAtIndexOrDefault;o.extend(t,{_datasetIndex:i.index,_index:e,_model:{x:u+a.offsetX,y:d+a.offsetY,startAngle:c,endAngle:h,circumference:g,outerRadius:v,innerRadius:p,label:m(f.label,e,a.data.labels[e])}});var b=t._model;this.removeHoverStyle(t),n&&s.animateRotate||(b.startAngle=0===e?l.rotation:i.getMeta().data[e-1]._model.endAngle,b.endAngle=b.startAngle+b.circumference),t.pivot()},removeHoverStyle:function(e){t.DatasetController.prototype.removeHoverStyle.call(this,e,this.chart.options.elements.arc)},calculateTotal:function(){var t,e=this.getDataset(),n=this.getMeta(),i=0;return o.each(n.data,function(n,a){t=e.data[a],isNaN(t)||n.hidden||(i+=Math.abs(t))}),i},calculateCircumference:function(t){var e=this.getMeta().total;return e>0&&!isNaN(t)?2*Math.PI*(t/e):0},getMaxBorderWidth:function(t){for(var e,n,i=0,a=this.index,o=t.length,r=0;r<o;r++)e=t[r]._model?t[r]._model.borderWidth:0,i=(n=t[r]._chart?t[r]._chart.config.data.datasets[a].hoverBorderWidth:0)>(i=e>i?e:i)?n:i;return i}})}},{25:25,40:40,45:45}],18:[function(t,e,n){"use strict";var i=t(25),a=t(40),o=t(45);i._set("line",{showLines:!0,spanGaps:!1,hover:{mode:"label"},scales:{xAxes:[{type:"category",id:"x-axis-0"}],yAxes:[{type:"linear",id:"y-axis-0"}]}}),e.exports=function(t){function e(t,e){return o.valueOrDefault(t.showLine,e.showLines)}t.controllers.line=t.DatasetController.extend({datasetElementType:a.Line,dataElementType:a.Point,update:function(t){var n,i,a,r=this,l=r.getMeta(),s=l.dataset,u=l.data||[],d=r.chart.options,c=d.elements.line,h=r.getScaleForId(l.yAxisID),f=r.getDataset(),g=e(f,d);for(g&&(a=s.custom||{},void 0!==f.tension&&void 0===f.lineTension&&(f.lineTension=f.tension),s._scale=h,s._datasetIndex=r.index,s._children=u,s._model={spanGaps:f.spanGaps?f.spanGaps:d.spanGaps,tension:a.tension?a.tension:o.valueOrDefault(f.lineTension,c.tension),backgroundColor:a.backgroundColor?a.backgroundColor:f.backgroundColor||c.backgroundColor,borderWidth:a.borderWidth?a.borderWidth:f.borderWidth||c.borderWidth,borderColor:a.borderColor?a.borderColor:f.borderColor||c.borderColor,borderCapStyle:a.borderCapStyle?a.borderCapStyle:f.borderCapStyle||c.borderCapStyle,borderDash:a.borderDash?a.borderDash:f.borderDash||c.borderDash,borderDashOffset:a.borderDashOffset?a.borderDashOffset:f.borderDashOffset||c.borderDashOffset,borderJoinStyle:a.borderJoinStyle?a.borderJoinStyle:f.borderJoinStyle||c.borderJoinStyle,fill:a.fill?a.fill:void 0!==f.fill?f.fill:c.fill,steppedLine:a.steppedLine?a.steppedLine:o.valueOrDefault(f.steppedLine,c.stepped),cubicInterpolationMode:a.cubicInterpolationMode?a.cubicInterpolationMode:o.valueOrDefault(f.cubicInterpolationMode,c.cubicInterpolationMode)},s.pivot()),n=0,i=u.length;n<i;++n)r.updateElement(u[n],n,t);for(g&&0!==s._model.tension&&r.updateBezierControlPoints(),n=0,i=u.length;n<i;++n)u[n].pivot()},getPointBackgroundColor:function(t,e){var n=this.chart.options.elements.point.backgroundColor,i=this.getDataset(),a=t.custom||{};return a.backgroundColor?n=a.backgroundColor:i.pointBackgroundColor?n=o.valueAtIndexOrDefault(i.pointBackgroundColor,e,n):i.backgroundColor&&(n=i.backgroundColor),n},getPointBorderColor:function(t,e){var n=this.chart.options.elements.point.borderColor,i=this.getDataset(),a=t.custom||{};return a.borderColor?n=a.borderColor:i.pointBorderColor?n=o.valueAtIndexOrDefault(i.pointBorderColor,e,n):i.borderColor&&(n=i.borderColor),n},getPointBorderWidth:function(t,e){var n=this.chart.options.elements.point.borderWidth,i=this.getDataset(),a=t.custom||{};return isNaN(a.borderWidth)?!isNaN(i.pointBorderWidth)||o.isArray(i.pointBorderWidth)?n=o.valueAtIndexOrDefault(i.pointBorderWidth,e,n):isNaN(i.borderWidth)||(n=i.borderWidth):n=a.borderWidth,n},updateElement:function(t,e,n){var i,a,r=this,l=r.getMeta(),s=t.custom||{},u=r.getDataset(),d=r.index,c=u.data[e],h=r.getScaleForId(l.yAxisID),f=r.getScaleForId(l.xAxisID),g=r.chart.options.elements.point;void 0!==u.radius&&void 0===u.pointRadius&&(u.pointRadius=u.radius),void 0!==u.hitRadius&&void 0===u.pointHitRadius&&(u.pointHitRadius=u.hitRadius),i=f.getPixelForValue("object"==typeof c?c:NaN,e,d),a=n?h.getBasePixel():r.calculatePointY(c,e,d),t._xScale=f,t._yScale=h,t._datasetIndex=d,t._index=e,t._model={x:i,y:a,skip:s.skip||isNaN(i)||isNaN(a),radius:s.radius||o.valueAtIndexOrDefault(u.pointRadius,e,g.radius),pointStyle:s.pointStyle||o.valueAtIndexOrDefault(u.pointStyle,e,g.pointStyle),backgroundColor:r.getPointBackgroundColor(t,e),borderColor:r.getPointBorderColor(t,e),borderWidth:r.getPointBorderWidth(t,e),tension:l.dataset._model?l.dataset._model.tension:0,steppedLine:!!l.dataset._model&&l.dataset._model.steppedLine,hitRadius:s.hitRadius||o.valueAtIndexOrDefault(u.pointHitRadius,e,g.hitRadius)}},calculatePointY:function(t,e,n){var i,a,o,r=this,l=r.chart,s=r.getMeta(),u=r.getScaleForId(s.yAxisID),d=0,c=0;if(u.options.stacked){for(i=0;i<n;i++)if(a=l.data.datasets[i],"line"===(o=l.getDatasetMeta(i)).type&&o.yAxisID===u.id&&l.isDatasetVisible(i)){var h=Number(u.getRightValue(a.data[e]));h<0?c+=h||0:d+=h||0}var f=Number(u.getRightValue(t));return f<0?u.getPixelForValue(c+f):u.getPixelForValue(d+f)}return u.getPixelForValue(t)},updateBezierControlPoints:function(){function t(t,e,n){return Math.max(Math.min(t,n),e)}var e,n,i,a,r=this,l=r.getMeta(),s=r.chart.chartArea,u=l.data||[];if(l.dataset._model.spanGaps&&(u=u.filter(function(t){return!t._model.skip})),"monotone"===l.dataset._model.cubicInterpolationMode)o.splineCurveMonotone(u);else for(e=0,n=u.length;e<n;++e)i=u[e]._model,a=o.splineCurve(o.previousItem(u,e)._model,i,o.nextItem(u,e)._model,l.dataset._model.tension),i.controlPointPreviousX=a.previous.x,i.controlPointPreviousY=a.previous.y,i.controlPointNextX=a.next.x,i.controlPointNextY=a.next.y;if(r.chart.options.elements.line.capBezierPoints)for(e=0,n=u.length;e<n;++e)(i=u[e]._model).controlPointPreviousX=t(i.controlPointPreviousX,s.left,s.right),i.controlPointPreviousY=t(i.controlPointPreviousY,s.top,s.bottom),i.controlPointNextX=t(i.controlPointNextX,s.left,s.right),i.controlPointNextY=t(i.controlPointNextY,s.top,s.bottom)},draw:function(){var t=this,n=t.chart,i=t.getMeta(),a=i.data||[],r=n.chartArea,l=a.length,s=0;for(o.canvas.clipArea(n.ctx,r),e(t.getDataset(),n.options)&&i.dataset.draw(),o.canvas.unclipArea(n.ctx);s<l;++s)a[s].draw(r)},setHoverStyle:function(t){var e=this.chart.data.datasets[t._datasetIndex],n=t._index,i=t.custom||{},a=t._model;a.radius=i.hoverRadius||o.valueAtIndexOrDefault(e.pointHoverRadius,n,this.chart.options.elements.point.hoverRadius),a.backgroundColor=i.hoverBackgroundColor||o.valueAtIndexOrDefault(e.pointHoverBackgroundColor,n,o.getHoverColor(a.backgroundColor)),a.borderColor=i.hoverBorderColor||o.valueAtIndexOrDefault(e.pointHoverBorderColor,n,o.getHoverColor(a.borderColor)),a.borderWidth=i.hoverBorderWidth||o.valueAtIndexOrDefault(e.pointHoverBorderWidth,n,a.borderWidth)},removeHoverStyle:function(t){var e=this,n=e.chart.data.datasets[t._datasetIndex],i=t._index,a=t.custom||{},r=t._model;void 0!==n.radius&&void 0===n.pointRadius&&(n.pointRadius=n.radius),r.radius=a.radius||o.valueAtIndexOrDefault(n.pointRadius,i,e.chart.options.elements.point.radius),r.backgroundColor=e.getPointBackgroundColor(t,i),r.borderColor=e.getPointBorderColor(t,i),r.borderWidth=e.getPointBorderWidth(t,i)}})}},{25:25,40:40,45:45}],19:[function(t,e,n){"use strict";var i=t(25),a=t(40),o=t(45);i._set("polarArea",{scale:{type:"radialLinear",angleLines:{display:!1},gridLines:{circular:!0},pointLabels:{display:!1},ticks:{beginAtZero:!0}},animation:{animateRotate:!0,animateScale:!0},startAngle:-.5*Math.PI,legendCallback:function(t){var e=[];e.push('<ul class="'+t.id+'-legend">');var n=t.data,i=n.datasets,a=n.labels;if(i.length)for(var o=0;o<i[0].data.length;++o)e.push('<li><span style="background-color:'+i[0].backgroundColor[o]+'"></span>'),a[o]&&e.push(a[o]),e.push("</li>");return e.push("</ul>"),e.join("")},legend:{labels:{generateLabels:function(t){var e=t.data;return e.labels.length&&e.datasets.length?e.labels.map(function(n,i){var a=t.getDatasetMeta(0),r=e.datasets[0],l=a.data[i].custom||{},s=o.valueAtIndexOrDefault,u=t.options.elements.arc;return{text:n,fillStyle:l.backgroundColor?l.backgroundColor:s(r.backgroundColor,i,u.backgroundColor),strokeStyle:l.borderColor?l.borderColor:s(r.borderColor,i,u.borderColor),lineWidth:l.borderWidth?l.borderWidth:s(r.borderWidth,i,u.borderWidth),hidden:isNaN(r.data[i])||a.data[i].hidden,index:i}}):[]}},onClick:function(t,e){var n,i,a,o=e.index,r=this.chart;for(n=0,i=(r.data.datasets||[]).length;n<i;++n)(a=r.getDatasetMeta(n)).data[o].hidden=!a.data[o].hidden;r.update()}},tooltips:{callbacks:{title:function(){return""},label:function(t,e){return e.labels[t.index]+": "+t.yLabel}}}}),e.exports=function(t){t.controllers.polarArea=t.DatasetController.extend({dataElementType:a.Arc,linkScales:o.noop,update:function(t){var e=this,n=e.chart,i=n.chartArea,a=e.getMeta(),r=n.options,l=r.elements.arc,s=Math.min(i.right-i.left,i.bottom-i.top);n.outerRadius=Math.max((s-l.borderWidth/2)/2,0),n.innerRadius=Math.max(r.cutoutPercentage?n.outerRadius/100*r.cutoutPercentage:1,0),n.radiusLength=(n.outerRadius-n.innerRadius)/n.getVisibleDatasetCount(),e.outerRadius=n.outerRadius-n.radiusLength*e.index,e.innerRadius=e.outerRadius-n.radiusLength,a.count=e.countVisibleElements(),o.each(a.data,function(n,i){e.updateElement(n,i,t)})},updateElement:function(t,e,n){for(var i=this,a=i.chart,r=i.getDataset(),l=a.options,s=l.animation,u=a.scale,d=a.data.labels,c=i.calculateCircumference(r.data[e]),h=u.xCenter,f=u.yCenter,g=0,p=i.getMeta(),v=0;v<e;++v)isNaN(r.data[v])||p.data[v].hidden||++g;var m=l.startAngle,b=t.hidden?0:u.getDistanceFromCenterForValue(r.data[e]),x=m+c*g,y=x+(t.hidden?0:c),k=s.animateScale?0:u.getDistanceFromCenterForValue(r.data[e]);o.extend(t,{_datasetIndex:i.index,_index:e,_scale:u,_model:{x:h,y:f,innerRadius:0,outerRadius:n?k:b,startAngle:n&&s.animateRotate?m:x,endAngle:n&&s.animateRotate?m:y,label:o.valueAtIndexOrDefault(d,e,d[e])}}),i.removeHoverStyle(t),t.pivot()},removeHoverStyle:function(e){t.DatasetController.prototype.removeHoverStyle.call(this,e,this.chart.options.elements.arc)},countVisibleElements:function(){var t=this.getDataset(),e=this.getMeta(),n=0;return o.each(e.data,function(e,i){isNaN(t.data[i])||e.hidden||n++}),n},calculateCircumference:function(t){var e=this.getMeta().count;return e>0&&!isNaN(t)?2*Math.PI/e:0}})}},{25:25,40:40,45:45}],20:[function(t,e,n){"use strict";var i=t(25),a=t(40),o=t(45);i._set("radar",{scale:{type:"radialLinear"},elements:{line:{tension:0}}}),e.exports=function(t){t.controllers.radar=t.DatasetController.extend({datasetElementType:a.Line,dataElementType:a.Point,linkScales:o.noop,update:function(t){var e=this,n=e.getMeta(),i=n.dataset,a=n.data,r=i.custom||{},l=e.getDataset(),s=e.chart.options.elements.line,u=e.chart.scale;void 0!==l.tension&&void 0===l.lineTension&&(l.lineTension=l.tension),o.extend(n.dataset,{_datasetIndex:e.index,_scale:u,_children:a,_loop:!0,_model:{tension:r.tension?r.tension:o.valueOrDefault(l.lineTension,s.tension),backgroundColor:r.backgroundColor?r.backgroundColor:l.backgroundColor||s.backgroundColor,borderWidth:r.borderWidth?r.borderWidth:l.borderWidth||s.borderWidth,borderColor:r.borderColor?r.borderColor:l.borderColor||s.borderColor,fill:r.fill?r.fill:void 0!==l.fill?l.fill:s.fill,borderCapStyle:r.borderCapStyle?r.borderCapStyle:l.borderCapStyle||s.borderCapStyle,borderDash:r.borderDash?r.borderDash:l.borderDash||s.borderDash,borderDashOffset:r.borderDashOffset?r.borderDashOffset:l.borderDashOffset||s.borderDashOffset,borderJoinStyle:r.borderJoinStyle?r.borderJoinStyle:l.borderJoinStyle||s.borderJoinStyle}}),n.dataset.pivot(),o.each(a,function(n,i){e.updateElement(n,i,t)},e),e.updateBezierControlPoints()},updateElement:function(t,e,n){var i=this,a=t.custom||{},r=i.getDataset(),l=i.chart.scale,s=i.chart.options.elements.point,u=l.getPointPositionForValue(e,r.data[e]);void 0!==r.radius&&void 0===r.pointRadius&&(r.pointRadius=r.radius),void 0!==r.hitRadius&&void 0===r.pointHitRadius&&(r.pointHitRadius=r.hitRadius),o.extend(t,{_datasetIndex:i.index,_index:e,_scale:l,_model:{x:n?l.xCenter:u.x,y:n?l.yCenter:u.y,tension:a.tension?a.tension:o.valueOrDefault(r.lineTension,i.chart.options.elements.line.tension),radius:a.radius?a.radius:o.valueAtIndexOrDefault(r.pointRadius,e,s.radius),backgroundColor:a.backgroundColor?a.backgroundColor:o.valueAtIndexOrDefault(r.pointBackgroundColor,e,s.backgroundColor),borderColor:a.borderColor?a.borderColor:o.valueAtIndexOrDefault(r.pointBorderColor,e,s.borderColor),borderWidth:a.borderWidth?a.borderWidth:o.valueAtIndexOrDefault(r.pointBorderWidth,e,s.borderWidth),pointStyle:a.pointStyle?a.pointStyle:o.valueAtIndexOrDefault(r.pointStyle,e,s.pointStyle),hitRadius:a.hitRadius?a.hitRadius:o.valueAtIndexOrDefault(r.pointHitRadius,e,s.hitRadius)}}),t._model.skip=a.skip?a.skip:isNaN(t._model.x)||isNaN(t._model.y)},updateBezierControlPoints:function(){var t=this.chart.chartArea,e=this.getMeta();o.each(e.data,function(n,i){var a=n._model,r=o.splineCurve(o.previousItem(e.data,i,!0)._model,a,o.nextItem(e.data,i,!0)._model,a.tension);a.controlPointPreviousX=Math.max(Math.min(r.previous.x,t.right),t.left),a.controlPointPreviousY=Math.max(Math.min(r.previous.y,t.bottom),t.top),a.controlPointNextX=Math.max(Math.min(r.next.x,t.right),t.left),a.controlPointNextY=Math.max(Math.min(r.next.y,t.bottom),t.top),n.pivot()})},setHoverStyle:function(t){var e=this.chart.data.datasets[t._datasetIndex],n=t.custom||{},i=t._index,a=t._model;a.radius=n.hoverRadius?n.hoverRadius:o.valueAtIndexOrDefault(e.pointHoverRadius,i,this.chart.options.elements.point.hoverRadius),a.backgroundColor=n.hoverBackgroundColor?n.hoverBackgroundColor:o.valueAtIndexOrDefault(e.pointHoverBackgroundColor,i,o.getHoverColor(a.backgroundColor)),a.borderColor=n.hoverBorderColor?n.hoverBorderColor:o.valueAtIndexOrDefault(e.pointHoverBorderColor,i,o.getHoverColor(a.borderColor)),a.borderWidth=n.hoverBorderWidth?n.hoverBorderWidth:o.valueAtIndexOrDefault(e.pointHoverBorderWidth,i,a.borderWidth)},removeHoverStyle:function(t){var e=this.chart.data.datasets[t._datasetIndex],n=t.custom||{},i=t._index,a=t._model,r=this.chart.options.elements.point;a.radius=n.radius?n.radius:o.valueAtIndexOrDefault(e.pointRadius,i,r.radius),a.backgroundColor=n.backgroundColor?n.backgroundColor:o.valueAtIndexOrDefault(e.pointBackgroundColor,i,r.backgroundColor),a.borderColor=n.borderColor?n.borderColor:o.valueAtIndexOrDefault(e.pointBorderColor,i,r.borderColor),a.borderWidth=n.borderWidth?n.borderWidth:o.valueAtIndexOrDefault(e.pointBorderWidth,i,r.borderWidth)}})}},{25:25,40:40,45:45}],21:[function(t,e,n){"use strict";t(25)._set("scatter",{hover:{mode:"single"},scales:{xAxes:[{id:"x-axis-1",type:"linear",position:"bottom"}],yAxes:[{id:"y-axis-1",type:"linear",position:"left"}]},showLines:!1,tooltips:{callbacks:{title:function(){return""},label:function(t){return"("+t.xLabel+", "+t.yLabel+")"}}}}),e.exports=function(t){t.controllers.scatter=t.controllers.line}},{25:25}],22:[function(t,e,n){"use strict";var i=t(25),a=t(26),o=t(45);i._set("global",{animation:{duration:1e3,easing:"easeOutQuart",onProgress:o.noop,onComplete:o.noop}}),e.exports=function(t){t.Animation=a.extend({chart:null,currentStep:0,numSteps:60,easing:"",render:null,onAnimationProgress:null,onAnimationComplete:null}),t.animationService={frameDuration:17,animations:[],dropFrames:0,request:null,addAnimation:function(t,e,n,i){var a,o,r=this.animations;for(e.chart=t,i||(t.animating=!0),a=0,o=r.length;a<o;++a)if(r[a].chart===t)return void(r[a]=e);r.push(e),1===r.length&&this.requestAnimationFrame()},cancelAnimation:function(t){var e=o.findIndex(this.animations,function(e){return e.chart===t});-1!==e&&(this.animations.splice(e,1),t.animating=!1)},requestAnimationFrame:function(){var t=this;null===t.request&&(t.request=o.requestAnimFrame.call(window,function(){t.request=null,t.startDigest()}))},startDigest:function(){var t=this,e=Date.now(),n=0;t.dropFrames>1&&(n=Math.floor(t.dropFrames),t.dropFrames=t.dropFrames%1),t.advance(1+n);var i=Date.now();t.dropFrames+=(i-e)/t.frameDuration,t.animations.length>0&&t.requestAnimationFrame()},advance:function(t){for(var e,n,i=this.animations,a=0;a<i.length;)n=(e=i[a]).chart,e.currentStep=(e.currentStep||0)+t,e.currentStep=Math.min(e.currentStep,e.numSteps),o.callback(e.render,[n,e],n),o.callback(e.onAnimationProgress,[e],n),e.currentStep>=e.numSteps?(o.callback(e.onAnimationComplete,[e],n),n.animating=!1,i.splice(a,1)):++a}},Object.defineProperty(t.Animation.prototype,"animationObject",{get:function(){return this}}),Object.defineProperty(t.Animation.prototype,"chartInstance",{get:function(){return this.chart},set:function(t){this.chart=t}})}},{25:25,26:26,45:45}],23:[function(t,e,n){"use strict";var i=t(25),a=t(45),o=t(28),r=t(48);e.exports=function(t){function e(t){var e=(t=t||{}).data=t.data||{};return e.datasets=e.datasets||[],e.labels=e.labels||[],t.options=a.configMerge(i.global,i[t.type],t.options||{}),t}function n(t){var e=t.options;e.scale?t.scale.options=e.scale:e.scales&&e.scales.xAxes.concat(e.scales.yAxes).forEach(function(e){t.scales[e.id].options=e}),t.tooltip._options=e.tooltips}function l(t){return"top"===t||"bottom"===t}var s=t.plugins;t.types={},t.instances={},t.controllers={},a.extend(t.prototype,{construct:function(n,i){var o=this;i=e(i);var l=r.acquireContext(n,i),s=l&&l.canvas,u=s&&s.height,d=s&&s.width;o.id=a.uid(),o.ctx=l,o.canvas=s,o.config=i,o.width=d,o.height=u,o.aspectRatio=u?d/u:null,o.options=i.options,o._bufferedRender=!1,o.chart=o,o.controller=o,t.instances[o.id]=o,Object.defineProperty(o,"data",{get:function(){return o.config.data},set:function(t){o.config.data=t}}),l&&s?(o.initialize(),o.update()):console.error("Failed to create chart: can't acquire context from the given item")},initialize:function(){var t=this;return s.notify(t,"beforeInit"),a.retinaScale(t,t.options.devicePixelRatio),t.bindEvents(),t.options.responsive&&t.resize(!0),t.ensureScalesHaveIDs(),t.buildScales(),t.initToolTip(),s.notify(t,"afterInit"),t},clear:function(){return a.canvas.clear(this),this},stop:function(){return t.animationService.cancelAnimation(this),this},resize:function(t){var e=this,n=e.options,i=e.canvas,o=n.maintainAspectRatio&&e.aspectRatio||null,r=Math.max(0,Math.floor(a.getMaximumWidth(i))),l=Math.max(0,Math.floor(o?r/o:a.getMaximumHeight(i)));if((e.width!==r||e.height!==l)&&(i.width=e.width=r,i.height=e.height=l,i.style.width=r+"px",i.style.height=l+"px",a.retinaScale(e,n.devicePixelRatio),!t)){var u={width:r,height:l};s.notify(e,"resize",[u]),e.options.onResize&&e.options.onResize(e,u),e.stop(),e.update(e.options.responsiveAnimationDuration)}},ensureScalesHaveIDs:function(){var t=this.options,e=t.scales||{},n=t.scale;a.each(e.xAxes,function(t,e){t.id=t.id||"x-axis-"+e}),a.each(e.yAxes,function(t,e){t.id=t.id||"y-axis-"+e}),n&&(n.id=n.id||"scale")},buildScales:function(){var e=this,n=e.options,i=e.scales={},o=[];n.scales&&(o=o.concat((n.scales.xAxes||[]).map(function(t){return{options:t,dtype:"category",dposition:"bottom"}}),(n.scales.yAxes||[]).map(function(t){return{options:t,dtype:"linear",dposition:"left"}}))),n.scale&&o.push({options:n.scale,dtype:"radialLinear",isDefault:!0,dposition:"chartArea"}),a.each(o,function(n){var o=n.options,r=a.valueOrDefault(o.type,n.dtype),s=t.scaleService.getScaleConstructor(r);if(s){l(o.position)!==l(n.dposition)&&(o.position=n.dposition);var u=new s({id:o.id,options:o,ctx:e.ctx,chart:e});i[u.id]=u,u.mergeTicksOptions(),n.isDefault&&(e.scale=u)}}),t.scaleService.addScalesToLayout(this)},buildOrUpdateControllers:function(){var e=this,n=[],i=[];return a.each(e.data.datasets,function(a,o){var r=e.getDatasetMeta(o),l=a.type||e.config.type;if(r.type&&r.type!==l&&(e.destroyDatasetMeta(o),r=e.getDatasetMeta(o)),r.type=l,n.push(r.type),r.controller)r.controller.updateIndex(o);else{var s=t.controllers[r.type];if(void 0===s)throw new Error('"'+r.type+'" is not a chart type.');r.controller=new s(e,o),i.push(r.controller)}},e),i},resetElements:function(){var t=this;a.each(t.data.datasets,function(e,n){t.getDatasetMeta(n).controller.reset()},t)},reset:function(){this.resetElements(),this.tooltip.initialize()},update:function(t){var e=this;if(t&&"object"==typeof t||(t={duration:t,lazy:arguments[1]}),n(e),!1!==s.notify(e,"beforeUpdate")){e.tooltip._data=e.data;var i=e.buildOrUpdateControllers();a.each(e.data.datasets,function(t,n){e.getDatasetMeta(n).controller.buildOrUpdateElements()},e),e.updateLayout(),a.each(i,function(t){t.reset()}),e.updateDatasets(),e.tooltip.initialize(),e.lastActive=[],s.notify(e,"afterUpdate"),e._bufferedRender?e._bufferedRequest={duration:t.duration,easing:t.easing,lazy:t.lazy}:e.render(t)}},updateLayout:function(){var e=this;!1!==s.notify(e,"beforeLayout")&&(t.layoutService.update(this,this.width,this.height),s.notify(e,"afterScaleUpdate"),s.notify(e,"afterLayout"))},updateDatasets:function(){var t=this;if(!1!==s.notify(t,"beforeDatasetsUpdate")){for(var e=0,n=t.data.datasets.length;e<n;++e)t.updateDataset(e);s.notify(t,"afterDatasetsUpdate")}},updateDataset:function(t){var e=this,n=e.getDatasetMeta(t),i={meta:n,index:t};!1!==s.notify(e,"beforeDatasetUpdate",[i])&&(n.controller.update(),s.notify(e,"afterDatasetUpdate",[i]))},render:function(e){var n=this;e&&"object"==typeof e||(e={duration:e,lazy:arguments[1]});var i=e.duration,o=e.lazy;if(!1!==s.notify(n,"beforeRender")){var r=n.options.animation,l=function(t){s.notify(n,"afterRender"),a.callback(r&&r.onComplete,[t],n)};if(r&&(void 0!==i&&0!==i||void 0===i&&0!==r.duration)){var u=new t.Animation({numSteps:(i||r.duration)/16.66,easing:e.easing||r.easing,render:function(t,e){var n=a.easing.effects[e.easing],i=e.currentStep,o=i/e.numSteps;t.draw(n(o),o,i)},onAnimationProgress:r.onProgress,onAnimationComplete:l});t.animationService.addAnimation(n,u,i,o)}else n.draw(),l(new t.Animation({numSteps:0,chart:n}));return n}},draw:function(t){var e=this;e.clear(),a.isNullOrUndef(t)&&(t=1),e.transition(t),!1!==s.notify(e,"beforeDraw",[t])&&(a.each(e.boxes,function(t){t.draw(e.chartArea)},e),e.scale&&e.scale.draw(),e.drawDatasets(t),e._drawTooltip(t),s.notify(e,"afterDraw",[t]))},transition:function(t){for(var e=this,n=0,i=(e.data.datasets||[]).length;n<i;++n)e.isDatasetVisible(n)&&e.getDatasetMeta(n).controller.transition(t);e.tooltip.transition(t)},drawDatasets:function(t){var e=this;if(!1!==s.notify(e,"beforeDatasetsDraw",[t])){for(var n=(e.data.datasets||[]).length-1;n>=0;--n)e.isDatasetVisible(n)&&e.drawDataset(n,t);s.notify(e,"afterDatasetsDraw",[t])}},drawDataset:function(t,e){var n=this,i=n.getDatasetMeta(t),a={meta:i,index:t,easingValue:e};!1!==s.notify(n,"beforeDatasetDraw",[a])&&(i.controller.draw(e),s.notify(n,"afterDatasetDraw",[a]))},_drawTooltip:function(t){var e=this,n=e.tooltip,i={tooltip:n,easingValue:t};!1!==s.notify(e,"beforeTooltipDraw",[i])&&(n.draw(),s.notify(e,"afterTooltipDraw",[i]))},getElementAtEvent:function(t){return o.modes.single(this,t)},getElementsAtEvent:function(t){return o.modes.label(this,t,{intersect:!0})},getElementsAtXAxis:function(t){return o.modes["x-axis"](this,t,{intersect:!0})},getElementsAtEventForMode:function(t,e,n){var i=o.modes[e];return"function"==typeof i?i(this,t,n):[]},getDatasetAtEvent:function(t){return o.modes.dataset(this,t,{intersect:!0})},getDatasetMeta:function(t){var e=this,n=e.data.datasets[t];n._meta||(n._meta={});var i=n._meta[e.id];return i||(i=n._meta[e.id]={type:null,data:[],dataset:null,controller:null,hidden:null,xAxisID:null,yAxisID:null}),i},getVisibleDatasetCount:function(){for(var t=0,e=0,n=this.data.datasets.length;e<n;++e)this.isDatasetVisible(e)&&t++;return t},isDatasetVisible:function(t){var e=this.getDatasetMeta(t);return"boolean"==typeof e.hidden?!e.hidden:!this.data.datasets[t].hidden},generateLegend:function(){return this.options.legendCallback(this)},destroyDatasetMeta:function(t){var e=this.id,n=this.data.datasets[t],i=n._meta&&n._meta[e];i&&(i.controller.destroy(),delete n._meta[e])},destroy:function(){var e,n,i=this,o=i.canvas;for(i.stop(),e=0,n=i.data.datasets.length;e<n;++e)i.destroyDatasetMeta(e);o&&(i.unbindEvents(),a.canvas.clear(i),r.releaseContext(i.ctx),i.canvas=null,i.ctx=null),s.notify(i,"destroy"),delete t.instances[i.id]},toBase64Image:function(){return this.canvas.toDataURL.apply(this.canvas,arguments)},initToolTip:function(){var e=this;e.tooltip=new t.Tooltip({_chart:e,_chartInstance:e,_data:e.data,_options:e.options.tooltips},e)},bindEvents:function(){var t=this,e=t._listeners={},n=function(){t.eventHandler.apply(t,arguments)};a.each(t.options.events,function(i){r.addEventListener(t,i,n),e[i]=n}),t.options.responsive&&(n=function(){t.resize()},r.addEventListener(t,"resize",n),e.resize=n)},unbindEvents:function(){var t=this,e=t._listeners;e&&(delete t._listeners,a.each(e,function(e,n){r.removeEventListener(t,n,e)}))},updateHoverStyle:function(t,e,n){var i,a,o,r=n?"setHoverStyle":"removeHoverStyle";for(a=0,o=t.length;a<o;++a)(i=t[a])&&this.getDatasetMeta(i._datasetIndex).controller[r](i)},eventHandler:function(t){var e=this,n=e.tooltip;if(!1!==s.notify(e,"beforeEvent",[t])){e._bufferedRender=!0,e._bufferedRequest=null;var i=e.handleEvent(t);i|=n&&n.handleEvent(t),s.notify(e,"afterEvent",[t]);var a=e._bufferedRequest;return a?e.render(a):i&&!e.animating&&(e.stop(),e.render(e.options.hover.animationDuration,!0)),e._bufferedRender=!1,e._bufferedRequest=null,e}},handleEvent:function(t){var e=this,n=e.options||{},i=n.hover,o=!1;return e.lastActive=e.lastActive||[],"mouseout"===t.type?e.active=[]:e.active=e.getElementsAtEventForMode(t,i.mode,i),a.callback(n.onHover||n.hover.onHover,[t.native,e.active],e),"mouseup"!==t.type&&"click"!==t.type||n.onClick&&n.onClick.call(e,t.native,e.active),e.lastActive.length&&e.updateHoverStyle(e.lastActive,i.mode,!1),e.active.length&&i.mode&&e.updateHoverStyle(e.active,i.mode,!0),o=!a.arrayEquals(e.active,e.lastActive),e.lastActive=e.active,o}}),t.Controller=t}},{25:25,28:28,45:45,48:48}],24:[function(t,e,n){"use strict";var i=t(45);e.exports=function(t){function e(t,e){t._chartjs?t._chartjs.listeners.push(e):(Object.defineProperty(t,"_chartjs",{configurable:!0,enumerable:!1,value:{listeners:[e]}}),a.forEach(function(e){var n="onData"+e.charAt(0).toUpperCase()+e.slice(1),a=t[e];Object.defineProperty(t,e,{configurable:!0,enumerable:!1,value:function(){var e=Array.prototype.slice.call(arguments),o=a.apply(this,e);return i.each(t._chartjs.listeners,function(t){"function"==typeof t[n]&&t[n].apply(t,e)}),o}})}))}function n(t,e){var n=t._chartjs;if(n){var i=n.listeners,o=i.indexOf(e);-1!==o&&i.splice(o,1),i.length>0||(a.forEach(function(e){delete t[e]}),delete t._chartjs)}}var a=["push","pop","shift","splice","unshift"];t.DatasetController=function(t,e){this.initialize(t,e)},i.extend(t.DatasetController.prototype,{datasetElementType:null,dataElementType:null,initialize:function(t,e){var n=this;n.chart=t,n.index=e,n.linkScales(),n.addElements()},updateIndex:function(t){this.index=t},linkScales:function(){var t=this,e=t.getMeta(),n=t.getDataset();null===e.xAxisID&&(e.xAxisID=n.xAxisID||t.chart.options.scales.xAxes[0].id),null===e.yAxisID&&(e.yAxisID=n.yAxisID||t.chart.options.scales.yAxes[0].id)},getDataset:function(){return this.chart.data.datasets[this.index]},getMeta:function(){return this.chart.getDatasetMeta(this.index)},getScaleForId:function(t){return this.chart.scales[t]},reset:function(){this.update(!0)},destroy:function(){this._data&&n(this._data,this)},createMetaDataset:function(){var t=this,e=t.datasetElementType;return e&&new e({_chart:t.chart,_datasetIndex:t.index})},createMetaData:function(t){var e=this,n=e.dataElementType;return n&&new n({_chart:e.chart,_datasetIndex:e.index,_index:t})},addElements:function(){var t,e,n=this,i=n.getMeta(),a=n.getDataset().data||[],o=i.data;for(t=0,e=a.length;t<e;++t)o[t]=o[t]||n.createMetaData(t);i.dataset=i.dataset||n.createMetaDataset()},addElementAndReset:function(t){var e=this.createMetaData(t);this.getMeta().data.splice(t,0,e),this.updateElement(e,t,!0)},buildOrUpdateElements:function(){var t=this,i=t.getDataset(),a=i.data||(i.data=[]);t._data!==a&&(t._data&&n(t._data,t),e(a,t),t._data=a),t.resyncElements()},update:i.noop,transition:function(t){for(var e=this.getMeta(),n=e.data||[],i=n.length,a=0;a<i;++a)n[a].transition(t);e.dataset&&e.dataset.transition(t)},draw:function(){var t=this.getMeta(),e=t.data||[],n=e.length,i=0;for(t.dataset&&t.dataset.draw();i<n;++i)e[i].draw()},removeHoverStyle:function(t,e){var n=this.chart.data.datasets[t._datasetIndex],a=t._index,o=t.custom||{},r=i.valueAtIndexOrDefault,l=t._model;l.backgroundColor=o.backgroundColor?o.backgroundColor:r(n.backgroundColor,a,e.backgroundColor),l.borderColor=o.borderColor?o.borderColor:r(n.borderColor,a,e.borderColor),l.borderWidth=o.borderWidth?o.borderWidth:r(n.borderWidth,a,e.borderWidth)},setHoverStyle:function(t){var e=this.chart.data.datasets[t._datasetIndex],n=t._index,a=t.custom||{},o=i.valueAtIndexOrDefault,r=i.getHoverColor,l=t._model;l.backgroundColor=a.hoverBackgroundColor?a.hoverBackgroundColor:o(e.hoverBackgroundColor,n,r(l.backgroundColor)),l.borderColor=a.hoverBorderColor?a.hoverBorderColor:o(e.hoverBorderColor,n,r(l.borderColor)),l.borderWidth=a.hoverBorderWidth?a.hoverBorderWidth:o(e.hoverBorderWidth,n,l.borderWidth)},resyncElements:function(){var t=this,e=t.getMeta(),n=t.getDataset().data,i=e.data.length,a=n.length;a<i?e.data.splice(a,i-a):a>i&&t.insertElements(i,a-i)},insertElements:function(t,e){for(var n=0;n<e;++n)this.addElementAndReset(t+n)},onDataPush:function(){this.insertElements(this.getDataset().data.length-1,arguments.length)},onDataPop:function(){this.getMeta().data.pop()},onDataShift:function(){this.getMeta().data.shift()},onDataSplice:function(t,e){this.getMeta().data.splice(t,e),this.insertElements(t,arguments.length-2)},onDataUnshift:function(){this.insertElements(0,arguments.length)}}),t.DatasetController.extend=i.inherits}},{45:45}],25:[function(t,e,n){"use strict";var i=t(45);e.exports={_set:function(t,e){return i.merge(this[t]||(this[t]={}),e)}}},{45:45}],26:[function(t,e,n){"use strict";function i(t,e,n,i){var o,r,l,s,u,d,c,h,f,g=Object.keys(n);for(o=0,r=g.length;o<r;++o)if(l=g[o],d=n[l],e.hasOwnProperty(l)||(e[l]=d),(s=e[l])!==d&&"_"!==l[0]){if(t.hasOwnProperty(l)||(t[l]=s),u=t[l],(c=typeof d)===typeof u)if("string"===c){if((h=a(u)).valid&&(f=a(d)).valid){e[l]=f.mix(h,i).rgbString();continue}}else if("number"===c&&isFinite(u)&&isFinite(d)){e[l]=u+(d-u)*i;continue}e[l]=d}}var a=t(3),o=t(45),r=function(t){o.extend(this,t),this.initialize.apply(this,arguments)};o.extend(r.prototype,{initialize:function(){this.hidden=!1},pivot:function(){var t=this;return t._view||(t._view=o.clone(t._model)),t._start={},t},transition:function(t){var e=this,n=e._model,a=e._start,o=e._view;return n&&1!==t?(o||(o=e._view={}),a||(a=e._start={}),i(a,o,n,t),e):(e._view=n,e._start=null,e)},tooltipPosition:function(){return{x:this._model.x,y:this._model.y}},hasValue:function(){return o.isNumber(this._model.x)&&o.isNumber(this._model.y)}}),r.extend=o.inherits,e.exports=r},{3:3,45:45}],27:[function(t,e,n){"use strict";var i=t(3),a=t(25),o=t(45);e.exports=function(t){function e(t,e,n){var i;return"string"==typeof t?(i=parseInt(t,10),-1!==t.indexOf("%")&&(i=i/100*e.parentNode[n])):i=t,i}function n(t){return void 0!==t&&null!==t&&"none"!==t}function r(t,i,a){var o=document.defaultView,r=t.parentNode,l=o.getComputedStyle(t)[i],s=o.getComputedStyle(r)[i],u=n(l),d=n(s),c=Number.POSITIVE_INFINITY;return u||d?Math.min(u?e(l,t,a):c,d?e(s,r,a):c):"none"}o.configMerge=function(){return o.merge(o.clone(arguments[0]),[].slice.call(arguments,1),{merger:function(e,n,i,a){var r=n[e]||{},l=i[e];"scales"===e?n[e]=o.scaleMerge(r,l):"scale"===e?n[e]=o.merge(r,[t.scaleService.getScaleDefaults(l.type),l]):o._merger(e,n,i,a)}})},o.scaleMerge=function(){return o.merge(o.clone(arguments[0]),[].slice.call(arguments,1),{merger:function(e,n,i,a){if("xAxes"===e||"yAxes"===e){var r,l,s,u=i[e].length;for(n[e]||(n[e]=[]),r=0;r<u;++r)s=i[e][r],l=o.valueOrDefault(s.type,"xAxes"===e?"category":"linear"),r>=n[e].length&&n[e].push({}),!n[e][r].type||s.type&&s.type!==n[e][r].type?o.merge(n[e][r],[t.scaleService.getScaleDefaults(l),s]):o.merge(n[e][r],s)}else o._merger(e,n,i,a)}})},o.where=function(t,e){if(o.isArray(t)&&Array.prototype.filter)return t.filter(e);var n=[];return o.each(t,function(t){e(t)&&n.push(t)}),n},o.findIndex=Array.prototype.findIndex?function(t,e,n){return t.findIndex(e,n)}:function(t,e,n){n=void 0===n?t:n;for(var i=0,a=t.length;i<a;++i)if(e.call(n,t[i],i,t))return i;return-1},o.findNextWhere=function(t,e,n){o.isNullOrUndef(n)&&(n=-1);for(var i=n+1;i<t.length;i++){var a=t[i];if(e(a))return a}},o.findPreviousWhere=function(t,e,n){o.isNullOrUndef(n)&&(n=t.length);for(var i=n-1;i>=0;i--){var a=t[i];if(e(a))return a}},o.isNumber=function(t){return!isNaN(parseFloat(t))&&isFinite(t)},o.almostEquals=function(t,e,n){return Math.abs(t-e)<n},o.almostWhole=function(t,e){var n=Math.round(t);return n-e<t&&n+e>t},o.max=function(t){return t.reduce(function(t,e){return isNaN(e)?t:Math.max(t,e)},Number.NEGATIVE_INFINITY)},o.min=function(t){return t.reduce(function(t,e){return isNaN(e)?t:Math.min(t,e)},Number.POSITIVE_INFINITY)},o.sign=Math.sign?function(t){return Math.sign(t)}:function(t){return 0==(t=+t)||isNaN(t)?t:t>0?1:-1},o.log10=Math.log10?function(t){return Math.log10(t)}:function(t){return Math.log(t)/Math.LN10},o.toRadians=function(t){return t*(Math.PI/180)},o.toDegrees=function(t){return t*(180/Math.PI)},o.getAngleFromPoint=function(t,e){var n=e.x-t.x,i=e.y-t.y,a=Math.sqrt(n*n+i*i),o=Math.atan2(i,n);return o<-.5*Math.PI&&(o+=2*Math.PI),{angle:o,distance:a}},o.distanceBetweenPoints=function(t,e){return Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))},o.aliasPixel=function(t){return t%2==0?0:.5},o.splineCurve=function(t,e,n,i){var a=t.skip?e:t,o=e,r=n.skip?e:n,l=Math.sqrt(Math.pow(o.x-a.x,2)+Math.pow(o.y-a.y,2)),s=Math.sqrt(Math.pow(r.x-o.x,2)+Math.pow(r.y-o.y,2)),u=l/(l+s),d=s/(l+s),c=i*(u=isNaN(u)?0:u),h=i*(d=isNaN(d)?0:d);return{previous:{x:o.x-c*(r.x-a.x),y:o.y-c*(r.y-a.y)},next:{x:o.x+h*(r.x-a.x),y:o.y+h*(r.y-a.y)}}},o.EPSILON=Number.EPSILON||1e-14,o.splineCurveMonotone=function(t){var e,n,i,a,r=(t||[]).map(function(t){return{model:t._model,deltaK:0,mK:0}}),l=r.length;for(e=0;e<l;++e)if(!(i=r[e]).model.skip){if(n=e>0?r[e-1]:null,(a=e<l-1?r[e+1]:null)&&!a.model.skip){var s=a.model.x-i.model.x;i.deltaK=0!==s?(a.model.y-i.model.y)/s:0}!n||n.model.skip?i.mK=i.deltaK:!a||a.model.skip?i.mK=n.deltaK:this.sign(n.deltaK)!==this.sign(i.deltaK)?i.mK=0:i.mK=(n.deltaK+i.deltaK)/2}var u,d,c,h;for(e=0;e<l-1;++e)i=r[e],a=r[e+1],i.model.skip||a.model.skip||(o.almostEquals(i.deltaK,0,this.EPSILON)?i.mK=a.mK=0:(u=i.mK/i.deltaK,d=a.mK/i.deltaK,(h=Math.pow(u,2)+Math.pow(d,2))<=9||(c=3/Math.sqrt(h),i.mK=u*c*i.deltaK,a.mK=d*c*i.deltaK)));var f;for(e=0;e<l;++e)(i=r[e]).model.skip||(n=e>0?r[e-1]:null,a=e<l-1?r[e+1]:null,n&&!n.model.skip&&(f=(i.model.x-n.model.x)/3,i.model.controlPointPreviousX=i.model.x-f,i.model.controlPointPreviousY=i.model.y-f*i.mK),a&&!a.model.skip&&(f=(a.model.x-i.model.x)/3,i.model.controlPointNextX=i.model.x+f,i.model.controlPointNextY=i.model.y+f*i.mK))},o.nextItem=function(t,e,n){return n?e>=t.length-1?t[0]:t[e+1]:e>=t.length-1?t[t.length-1]:t[e+1]},o.previousItem=function(t,e,n){return n?e<=0?t[t.length-1]:t[e-1]:e<=0?t[0]:t[e-1]},o.niceNum=function(t,e){var n=Math.floor(o.log10(t)),i=t/Math.pow(10,n);return(e?i<1.5?1:i<3?2:i<7?5:10:i<=1?1:i<=2?2:i<=5?5:10)*Math.pow(10,n)},o.requestAnimFrame="undefined"==typeof window?function(t){t()}:window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(t){return window.setTimeout(t,1e3/60)},o.getRelativePosition=function(t,e){var n,i,a=t.originalEvent||t,r=t.currentTarget||t.srcElement,l=r.getBoundingClientRect(),s=a.touches;s&&s.length>0?(n=s[0].clientX,i=s[0].clientY):(n=a.clientX,i=a.clientY);var u=parseFloat(o.getStyle(r,"padding-left")),d=parseFloat(o.getStyle(r,"padding-top")),c=parseFloat(o.getStyle(r,"padding-right")),h=parseFloat(o.getStyle(r,"padding-bottom")),f=l.right-l.left-u-c,g=l.bottom-l.top-d-h;return n=Math.round((n-l.left-u)/f*r.width/e.currentDevicePixelRatio),i=Math.round((i-l.top-d)/g*r.height/e.currentDevicePixelRatio),{x:n,y:i}},o.getConstraintWidth=function(t){return r(t,"max-width","clientWidth")},o.getConstraintHeight=function(t){return r(t,"max-height","clientHeight")},o.getMaximumWidth=function(t){var e=t.parentNode;if(!e)return t.clientWidth;var n=parseInt(o.getStyle(e,"padding-left"),10),i=parseInt(o.getStyle(e,"padding-right"),10),a=e.clientWidth-n-i,r=o.getConstraintWidth(t);return isNaN(r)?a:Math.min(a,r)},o.getMaximumHeight=function(t){var e=t.parentNode;if(!e)return t.clientHeight;var n=parseInt(o.getStyle(e,"padding-top"),10),i=parseInt(o.getStyle(e,"padding-bottom"),10),a=e.clientHeight-n-i,r=o.getConstraintHeight(t);return isNaN(r)?a:Math.min(a,r)},o.getStyle=function(t,e){return t.currentStyle?t.currentStyle[e]:document.defaultView.getComputedStyle(t,null).getPropertyValue(e)},o.retinaScale=function(t,e){var n=t.currentDevicePixelRatio=e||window.devicePixelRatio||1;if(1!==n){var i=t.canvas,a=t.height,o=t.width;i.height=a*n,i.width=o*n,t.ctx.scale(n,n),i.style.height=a+"px",i.style.width=o+"px"}},o.fontString=function(t,e,n){return e+" "+t+"px "+n},o.longestText=function(t,e,n,i){var a=(i=i||{}).data=i.data||{},r=i.garbageCollect=i.garbageCollect||[];i.font!==e&&(a=i.data={},r=i.garbageCollect=[],i.font=e),t.font=e;var l=0;o.each(n,function(e){void 0!==e&&null!==e&&!0!==o.isArray(e)?l=o.measureText(t,a,r,l,e):o.isArray(e)&&o.each(e,function(e){void 0===e||null===e||o.isArray(e)||(l=o.measureText(t,a,r,l,e))})});var s=r.length/2;if(s>n.length){for(var u=0;u<s;u++)delete a[r[u]];r.splice(0,s)}return l},o.measureText=function(t,e,n,i,a){var o=e[a];return o||(o=e[a]=t.measureText(a).width,n.push(a)),o>i&&(i=o),i},o.numberOfLabelLines=function(t){var e=1;return o.each(t,function(t){o.isArray(t)&&t.length>e&&(e=t.length)}),e},o.color=i?function(t){return t instanceof CanvasGradient&&(t=a.global.defaultColor),i(t)}:function(t){return console.error("Color.js not found!"),t},o.getHoverColor=function(t){return t instanceof CanvasPattern?t:o.color(t).saturate(.5).darken(.1).rgbString()}}},{25:25,3:3,45:45}],28:[function(t,e,n){"use strict";function i(t,e){return t.native?{x:t.x,y:t.y}:u.getRelativePosition(t,e)}function a(t,e){var n,i,a,o,r;for(i=0,o=t.data.datasets.length;i<o;++i)if(t.isDatasetVisible(i))for(a=0,r=(n=t.getDatasetMeta(i)).data.length;a<r;++a){var l=n.data[a];l._view.skip||e(l)}}function o(t,e){var n=[];return a(t,function(t){t.inRange(e.x,e.y)&&n.push(t)}),n}function r(t,e,n,i){var o=Number.POSITIVE_INFINITY,r=[];return a(t,function(t){if(!n||t.inRange(e.x,e.y)){var a=t.getCenterPoint(),l=i(e,a);l<o?(r=[t],o=l):l===o&&r.push(t)}}),r}function l(t){var e=-1!==t.indexOf("x"),n=-1!==t.indexOf("y");return function(t,i){var a=e?Math.abs(t.x-i.x):0,o=n?Math.abs(t.y-i.y):0;return Math.sqrt(Math.pow(a,2)+Math.pow(o,2))}}function s(t,e,n){var a=i(e,t);n.axis=n.axis||"x";var s=l(n.axis),u=n.intersect?o(t,a):r(t,a,!1,s),d=[];return u.length?(t.data.datasets.forEach(function(e,n){if(t.isDatasetVisible(n)){var i=t.getDatasetMeta(n).data[u[0]._index];i&&!i._view.skip&&d.push(i)}}),d):[]}var u=t(45);e.exports={modes:{single:function(t,e){var n=i(e,t),o=[];return a(t,function(t){if(t.inRange(n.x,n.y))return o.push(t),o}),o.slice(0,1)},label:s,index:s,dataset:function(t,e,n){var a=i(e,t);n.axis=n.axis||"xy";var s=l(n.axis),u=n.intersect?o(t,a):r(t,a,!1,s);return u.length>0&&(u=t.getDatasetMeta(u[0]._datasetIndex).data),u},"x-axis":function(t,e){return s(t,e,{intersect:!1})},point:function(t,e){return o(t,i(e,t))},nearest:function(t,e,n){var a=i(e,t);n.axis=n.axis||"xy";var o=l(n.axis),s=r(t,a,n.intersect,o);return s.length>1&&s.sort(function(t,e){var n=t.getArea()-e.getArea();return 0===n&&(n=t._datasetIndex-e._datasetIndex),n}),s.slice(0,1)},x:function(t,e,n){var o=i(e,t),r=[],l=!1;return a(t,function(t){t.inXRange(o.x)&&r.push(t),t.inRange(o.x,o.y)&&(l=!0)}),n.intersect&&!l&&(r=[]),r},y:function(t,e,n){var o=i(e,t),r=[],l=!1;return a(t,function(t){t.inYRange(o.y)&&r.push(t),t.inRange(o.x,o.y)&&(l=!0)}),n.intersect&&!l&&(r=[]),r}}}},{45:45}],29:[function(t,e,n){"use strict";t(25)._set("global",{responsive:!0,responsiveAnimationDuration:0,maintainAspectRatio:!0,events:["mousemove","mouseout","click","touchstart","touchmove"],hover:{onHover:null,mode:"nearest",intersect:!0,animationDuration:400},onClick:null,defaultColor:"rgba(0,0,0,0.1)",defaultFontColor:"#666",defaultFontFamily:"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif",defaultFontSize:12,defaultFontStyle:"normal",showLines:!0,elements:{},layout:{padding:{top:0,right:0,bottom:0,left:0}}}),e.exports=function(){var t=function(t,e){return this.construct(t,e),this};return t.Chart=t,t}},{25:25}],30:[function(t,e,n){"use strict";var i=t(45);e.exports=function(t){function e(t,e){return i.where(t,function(t){return t.position===e})}function n(t,e){t.forEach(function(t,e){return t._tmpIndex_=e,t}),t.sort(function(t,n){var i=e?n:t,a=e?t:n;return i.weight===a.weight?i._tmpIndex_-a._tmpIndex_:i.weight-a.weight}),t.forEach(function(t){delete t._tmpIndex_})}t.layoutService={defaults:{},addBox:function(t,e){t.boxes||(t.boxes=[]),e.fullWidth=e.fullWidth||!1,e.position=e.position||"top",e.weight=e.weight||0,t.boxes.push(e)},removeBox:function(t,e){var n=t.boxes?t.boxes.indexOf(e):-1;-1!==n&&t.boxes.splice(n,1)},configure:function(t,e,n){for(var i,a=["fullWidth","position","weight"],o=a.length,r=0;r<o;++r)i=a[r],n.hasOwnProperty(i)&&(e[i]=n[i])},update:function(t,a,o){function r(t){var e=i.findNextWhere(_,function(e){return e.box===t});if(e)if(t.isHorizontal()){var n={left:Math.max(T,D),right:Math.max(F,I),top:0,bottom:0};t.update(t.fullWidth?x:S,y/2,n)}else t.update(e.minSize.width,C)}function l(t){t.isHorizontal()?(t.left=t.fullWidth?d:T,t.right=t.fullWidth?a-c:T+S,t.top=V,t.bottom=V+t.height,V=t.bottom):(t.left=N,t.right=N+t.width,t.top=O,t.bottom=O+C,N=t.right)}if(t){var s=t.options.layout||{},u=i.options.toPadding(s.padding),d=u.left,c=u.right,h=u.top,f=u.bottom,g=e(t.boxes,"left"),p=e(t.boxes,"right"),v=e(t.boxes,"top"),m=e(t.boxes,"bottom"),b=e(t.boxes,"chartArea");n(g,!0),n(p,!1),n(v,!0),n(m,!1);var x=a-d-c,y=o-h-f,k=y/2,w=(a-x/2)/(g.length+p.length),M=(o-k)/(v.length+m.length),S=x,C=y,_=[];i.each(g.concat(p,v,m),function(t){var e,n=t.isHorizontal();n?(e=t.update(t.fullWidth?x:S,M),C-=e.height):(e=t.update(w,k),S-=e.width),_.push({horizontal:n,minSize:e,box:t})});var D=0,I=0,P=0,A=0;i.each(v.concat(m),function(t){if(t.getPadding){var e=t.getPadding();D=Math.max(D,e.left),I=Math.max(I,e.right)}}),i.each(g.concat(p),function(t){if(t.getPadding){var e=t.getPadding();P=Math.max(P,e.top),A=Math.max(A,e.bottom)}});var T=d,F=c,O=h,R=f;i.each(g.concat(p),r),i.each(g,function(t){T+=t.width}),i.each(p,function(t){F+=t.width}),i.each(v.concat(m),r),i.each(v,function(t){O+=t.height}),i.each(m,function(t){R+=t.height}),i.each(g.concat(p),function(t){var e=i.findNextWhere(_,function(e){return e.box===t}),n={left:0,right:0,top:O,bottom:R};e&&t.update(e.minSize.width,C,n)}),T=d,F=c,O=h,R=f,i.each(g,function(t){T+=t.width}),i.each(p,function(t){F+=t.width}),i.each(v,function(t){O+=t.height}),i.each(m,function(t){R+=t.height});var L=Math.max(D-T,0);T+=L,F+=Math.max(I-F,0);var z=Math.max(P-O,0);O+=z,R+=Math.max(A-R,0);var B=o-O-R,W=a-T-F;W===S&&B===C||(i.each(g,function(t){t.height=B}),i.each(p,function(t){t.height=B}),i.each(v,function(t){t.fullWidth||(t.width=W)}),i.each(m,function(t){t.fullWidth||(t.width=W)}),C=B,S=W);var N=d+L,V=h+z;i.each(g.concat(v),l),N+=S,V+=C,i.each(p,l),i.each(m,l),t.chartArea={left:T,top:O,right:T+S,bottom:O+C},i.each(b,function(e){e.left=t.chartArea.left,e.top=t.chartArea.top,e.right=t.chartArea.right,e.bottom=t.chartArea.bottom,e.update(S,C)})}}}}},{45:45}],31:[function(t,e,n){"use strict";var i=t(25),a=t(26),o=t(45);i._set("global",{plugins:{}}),e.exports=function(t){t.plugins={_plugins:[],_cacheId:0,register:function(t){var e=this._plugins;[].concat(t).forEach(function(t){-1===e.indexOf(t)&&e.push(t)}),this._cacheId++},unregister:function(t){var e=this._plugins;[].concat(t).forEach(function(t){var n=e.indexOf(t);-1!==n&&e.splice(n,1)}),this._cacheId++},clear:function(){this._plugins=[],this._cacheId++},count:function(){return this._plugins.length},getAll:function(){return this._plugins},notify:function(t,e,n){var i,a,o,r,l,s=this.descriptors(t),u=s.length;for(i=0;i<u;++i)if(a=s[i],o=a.plugin,"function"==typeof(l=o[e])&&((r=[t].concat(n||[])).push(a.options),!1===l.apply(o,r)))return!1;return!0},descriptors:function(t){var e=t._plugins||(t._plugins={});if(e.id===this._cacheId)return e.descriptors;var n=[],a=[],r=t&&t.config||{},l=r.options&&r.options.plugins||{};return this._plugins.concat(r.plugins||[]).forEach(function(t){if(-1===n.indexOf(t)){var e=t.id,r=l[e];!1!==r&&(!0===r&&(r=o.clone(i.global.plugins[e])),n.push(t),a.push({plugin:t,options:r||{}}))}}),e.descriptors=a,e.id=this._cacheId,a}},t.pluginService=t.plugins,t.PluginBase=a.extend({})}},{25:25,26:26,45:45}],32:[function(t,e,n){"use strict";function i(t){var e,n,i=[];for(e=0,n=t.length;e<n;++e)i.push(t[e].label);return i}function a(t,e,n){var i=t.getPixelForTick(e);return n&&(i-=0===e?(t.getPixelForTick(1)-i)/2:(i-t.getPixelForTick(e-1))/2),i}var o=t(25),r=t(26),l=t(45),s=t(34);o._set("scale",{display:!0,position:"left",offset:!1,gridLines:{display:!0,color:"rgba(0, 0, 0, 0.1)",lineWidth:1,drawBorder:!0,drawOnChartArea:!0,drawTicks:!0,tickMarkLength:10,zeroLineWidth:1,zeroLineColor:"rgba(0,0,0,0.25)",zeroLineBorderDash:[],zeroLineBorderDashOffset:0,offsetGridLines:!1,borderDash:[],borderDashOffset:0},scaleLabel:{display:!1,labelString:"",lineHeight:1.2,padding:{top:4,bottom:4}},ticks:{beginAtZero:!1,minRotation:0,maxRotation:50,mirror:!1,padding:0,reverse:!1,display:!0,autoSkip:!0,autoSkipPadding:0,labelOffset:0,callback:s.formatters.values,minor:{},major:{}}}),e.exports=function(t){function e(t,e,n){return l.isArray(e)?l.longestText(t,n,e):t.measureText(e).width}function n(t){var e=l.valueOrDefault,n=o.global,i=e(t.fontSize,n.defaultFontSize),a=e(t.fontStyle,n.defaultFontStyle),r=e(t.fontFamily,n.defaultFontFamily);return{size:i,style:a,family:r,font:l.fontString(i,a,r)}}function s(t){return l.options.toLineHeight(l.valueOrDefault(t.lineHeight,1.2),l.valueOrDefault(t.fontSize,o.global.defaultFontSize))}t.Scale=r.extend({getPadding:function(){var t=this;return{left:t.paddingLeft||0,top:t.paddingTop||0,right:t.paddingRight||0,bottom:t.paddingBottom||0}},getTicks:function(){return this._ticks},mergeTicksOptions:function(){var t=this.options.ticks;!1===t.minor&&(t.minor={display:!1}),!1===t.major&&(t.major={display:!1});for(var e in t)"major"!==e&&"minor"!==e&&(void 0===t.minor[e]&&(t.minor[e]=t[e]),void 0===t.major[e]&&(t.major[e]=t[e]))},beforeUpdate:function(){l.callback(this.options.beforeUpdate,[this])},update:function(t,e,n){var i,a,o,r,s,u,d=this;for(d.beforeUpdate(),d.maxWidth=t,d.maxHeight=e,d.margins=l.extend({left:0,right:0,top:0,bottom:0},n),d.longestTextCache=d.longestTextCache||{},d.beforeSetDimensions(),d.setDimensions(),d.afterSetDimensions(),d.beforeDataLimits(),d.determineDataLimits(),d.afterDataLimits(),d.beforeBuildTicks(),s=d.buildTicks()||[],d.afterBuildTicks(),d.beforeTickToLabelConversion(),o=d.convertTicksToLabels(s)||d.ticks,d.afterTickToLabelConversion(),d.ticks=o,i=0,a=o.length;i<a;++i)r=o[i],(u=s[i])?u.label=r:s.push(u={label:r,major:!1});return d._ticks=s,d.beforeCalculateTickRotation(),d.calculateTickRotation(),d.afterCalculateTickRotation(),d.beforeFit(),d.fit(),d.afterFit(),d.afterUpdate(),d.minSize},afterUpdate:function(){l.callback(this.options.afterUpdate,[this])},beforeSetDimensions:function(){l.callback(this.options.beforeSetDimensions,[this])},setDimensions:function(){var t=this;t.isHorizontal()?(t.width=t.maxWidth,t.left=0,t.right=t.width):(t.height=t.maxHeight,t.top=0,t.bottom=t.height),t.paddingLeft=0,t.paddingTop=0,t.paddingRight=0,t.paddingBottom=0},afterSetDimensions:function(){l.callback(this.options.afterSetDimensions,[this])},beforeDataLimits:function(){l.callback(this.options.beforeDataLimits,[this])},determineDataLimits:l.noop,afterDataLimits:function(){l.callback(this.options.afterDataLimits,[this])},beforeBuildTicks:function(){l.callback(this.options.beforeBuildTicks,[this])},buildTicks:l.noop,afterBuildTicks:function(){l.callback(this.options.afterBuildTicks,[this])},beforeTickToLabelConversion:function(){l.callback(this.options.beforeTickToLabelConversion,[this])},convertTicksToLabels:function(){var t=this,e=t.options.ticks;t.ticks=t.ticks.map(e.userCallback||e.callback,this)},afterTickToLabelConversion:function(){l.callback(this.options.afterTickToLabelConversion,[this])},beforeCalculateTickRotation:function(){l.callback(this.options.beforeCalculateTickRotation,[this])},calculateTickRotation:function(){var t=this,e=t.ctx,a=t.options.ticks,o=i(t._ticks),r=n(a);e.font=r.font;var s=a.minRotation||0;if(o.length&&t.options.display&&t.isHorizontal())for(var u,d=l.longestText(e,r.font,o,t.longestTextCache),c=d,h=t.getPixelForTick(1)-t.getPixelForTick(0)-6;c>h&&s<a.maxRotation;){var f=l.toRadians(s);if(u=Math.cos(f),Math.sin(f)*d>t.maxHeight){s--;break}s++,c=u*d}t.labelRotation=s},afterCalculateTickRotation:function(){l.callback(this.options.afterCalculateTickRotation,[this])},beforeFit:function(){l.callback(this.options.beforeFit,[this])},fit:function(){var t=this,a=t.minSize={width:0,height:0},o=i(t._ticks),r=t.options,u=r.ticks,d=r.scaleLabel,c=r.gridLines,h=r.display,f=t.isHorizontal(),g=n(u),p=r.gridLines.tickMarkLength;if(a.width=f?t.isFullWidth()?t.maxWidth-t.margins.left-t.margins.right:t.maxWidth:h&&c.drawTicks?p:0,a.height=f?h&&c.drawTicks?p:0:t.maxHeight,d.display&&h){var v=s(d)+l.options.toPadding(d.padding).height;f?a.height+=v:a.width+=v}if(u.display&&h){var m=l.longestText(t.ctx,g.font,o,t.longestTextCache),b=l.numberOfLabelLines(o),x=.5*g.size,y=t.options.ticks.padding;if(f){t.longestLabelWidth=m;var k=l.toRadians(t.labelRotation),w=Math.cos(k),M=Math.sin(k)*m+g.size*b+x*(b-1)+x;a.height=Math.min(t.maxHeight,a.height+M+y),t.ctx.font=g.font;var S=e(t.ctx,o[0],g.font),C=e(t.ctx,o[o.length-1],g.font);0!==t.labelRotation?(t.paddingLeft="bottom"===r.position?w*S+3:w*x+3,t.paddingRight="bottom"===r.position?w*x+3:w*C+3):(t.paddingLeft=S/2+3,t.paddingRight=C/2+3)}else u.mirror?m=0:m+=y+x,a.width=Math.min(t.maxWidth,a.width+m),t.paddingTop=g.size/2,t.paddingBottom=g.size/2}t.handleMargins(),t.width=a.width,t.height=a.height},handleMargins:function(){var t=this;t.margins&&(t.paddingLeft=Math.max(t.paddingLeft-t.margins.left,0),t.paddingTop=Math.max(t.paddingTop-t.margins.top,0),t.paddingRight=Math.max(t.paddingRight-t.margins.right,0),t.paddingBottom=Math.max(t.paddingBottom-t.margins.bottom,0))},afterFit:function(){l.callback(this.options.afterFit,[this])},isHorizontal:function(){return"top"===this.options.position||"bottom"===this.options.position},isFullWidth:function(){return this.options.fullWidth},getRightValue:function(t){if(l.isNullOrUndef(t))return NaN;if("number"==typeof t&&!isFinite(t))return NaN;if(t)if(this.isHorizontal()){if(void 0!==t.x)return this.getRightValue(t.x)}else if(void 0!==t.y)return this.getRightValue(t.y);return t},getLabelForIndex:l.noop,getPixelForValue:l.noop,getValueForPixel:l.noop,getPixelForTick:function(t){var e=this,n=e.options.offset;if(e.isHorizontal()){var i=(e.width-(e.paddingLeft+e.paddingRight))/Math.max(e._ticks.length-(n?0:1),1),a=i*t+e.paddingLeft;n&&(a+=i/2);var o=e.left+Math.round(a);return o+=e.isFullWidth()?e.margins.left:0}var r=e.height-(e.paddingTop+e.paddingBottom);return e.top+t*(r/(e._ticks.length-1))},getPixelForDecimal:function(t){var e=this;if(e.isHorizontal()){var n=(e.width-(e.paddingLeft+e.paddingRight))*t+e.paddingLeft,i=e.left+Math.round(n);return i+=e.isFullWidth()?e.margins.left:0}return e.top+t*e.height},getBasePixel:function(){return this.getPixelForValue(this.getBaseValue())},getBaseValue:function(){var t=this,e=t.min,n=t.max;return t.beginAtZero?0:e<0&&n<0?n:e>0&&n>0?e:0},_autoSkip:function(t){var e,n,i,a,o=this,r=o.isHorizontal(),s=o.options.ticks.minor,u=t.length,d=l.toRadians(o.labelRotation),c=Math.cos(d),h=o.longestLabelWidth*c,f=[];for(s.maxTicksLimit&&(a=s.maxTicksLimit),r&&(e=!1,(h+s.autoSkipPadding)*u>o.width-(o.paddingLeft+o.paddingRight)&&(e=1+Math.floor((h+s.autoSkipPadding)*u/(o.width-(o.paddingLeft+o.paddingRight)))),a&&u>a&&(e=Math.max(e,Math.floor(u/a)))),n=0;n<u;n++)i=t[n],(e>1&&n%e>0||n%e==0&&n+e>=u)&&n!==u-1&&delete i.label,f.push(i);return f},draw:function(t){var e=this,i=e.options;if(i.display){var r=e.ctx,u=o.global,d=i.ticks.minor,c=i.ticks.major||d,h=i.gridLines,f=i.scaleLabel,g=0!==e.labelRotation,p=e.isHorizontal(),v=d.autoSkip?e._autoSkip(e.getTicks()):e.getTicks(),m=l.valueOrDefault(d.fontColor,u.defaultFontColor),b=n(d),x=l.valueOrDefault(c.fontColor,u.defaultFontColor),y=n(c),k=h.drawTicks?h.tickMarkLength:0,w=l.valueOrDefault(f.fontColor,u.defaultFontColor),M=n(f),S=l.options.toPadding(f.padding),C=l.toRadians(e.labelRotation),_=[],D="right"===i.position?e.left:e.right-k,I="right"===i.position?e.left+k:e.right,P="bottom"===i.position?e.top:e.bottom-k,A="bottom"===i.position?e.top+k:e.bottom;if(l.each(v,function(n,o){if(!l.isNullOrUndef(n.label)){var r,s,c,f,m=n.label;o===e.zeroLineIndex&&i.offset===h.offsetGridLines?(r=h.zeroLineWidth,s=h.zeroLineColor,c=h.zeroLineBorderDash,f=h.zeroLineBorderDashOffset):(r=l.valueAtIndexOrDefault(h.lineWidth,o),s=l.valueAtIndexOrDefault(h.color,o),c=l.valueOrDefault(h.borderDash,u.borderDash),f=l.valueOrDefault(h.borderDashOffset,u.borderDashOffset));var b,x,y,w,M,S,T,F,O,R,L="middle",z="middle",B=d.padding;if(p){var W=k+B;"bottom"===i.position?(z=g?"middle":"top",L=g?"right":"center",R=e.top+W):(z=g?"middle":"bottom",L=g?"left":"center",R=e.bottom-W);var N=a(e,o,h.offsetGridLines&&v.length>1);N<e.left&&(s="rgba(0,0,0,0)"),N+=l.aliasPixel(r),O=e.getPixelForTick(o)+d.labelOffset,b=y=M=T=N,x=P,w=A,S=t.top,F=t.bottom}else{var V,E="left"===i.position;d.mirror?(L=E?"left":"right",V=B):(L=E?"right":"left",V=k+B),O=E?e.right-V:e.left+V;var H=a(e,o,h.offsetGridLines&&v.length>1);H<e.top&&(s="rgba(0,0,0,0)"),H+=l.aliasPixel(r),R=e.getPixelForTick(o)+d.labelOffset,b=D,y=I,M=t.left,T=t.right,x=w=S=F=H}_.push({tx1:b,ty1:x,tx2:y,ty2:w,x1:M,y1:S,x2:T,y2:F,labelX:O,labelY:R,glWidth:r,glColor:s,glBorderDash:c,glBorderDashOffset:f,rotation:-1*C,label:m,major:n.major,textBaseline:z,textAlign:L})}}),l.each(_,function(t){if(h.display&&(r.save(),r.lineWidth=t.glWidth,r.strokeStyle=t.glColor,r.setLineDash&&(r.setLineDash(t.glBorderDash),r.lineDashOffset=t.glBorderDashOffset),r.beginPath(),h.drawTicks&&(r.moveTo(t.tx1,t.ty1),r.lineTo(t.tx2,t.ty2)),h.drawOnChartArea&&(r.moveTo(t.x1,t.y1),r.lineTo(t.x2,t.y2)),r.stroke(),r.restore()),d.display){r.save(),r.translate(t.labelX,t.labelY),r.rotate(t.rotation),r.font=t.major?y.font:b.font,r.fillStyle=t.major?x:m,r.textBaseline=t.textBaseline,r.textAlign=t.textAlign;var e=t.label;if(l.isArray(e))for(var n=0,i=0;n<e.length;++n)r.fillText(""+e[n],0,i),i+=1.5*b.size;else r.fillText(e,0,0);r.restore()}}),f.display){var T,F,O=0,R=s(f)/2;if(p)T=e.left+(e.right-e.left)/2,F="bottom"===i.position?e.bottom-R-S.bottom:e.top+R+S.top;else{var L="left"===i.position;T=L?e.left+R+S.top:e.right-R-S.top,F=e.top+(e.bottom-e.top)/2,O=L?-.5*Math.PI:.5*Math.PI}r.save(),r.translate(T,F),r.rotate(O),r.textAlign="center",r.textBaseline="middle",r.fillStyle=w,r.font=M.font,r.fillText(f.labelString,0,0),r.restore()}if(h.drawBorder){r.lineWidth=l.valueAtIndexOrDefault(h.lineWidth,0),r.strokeStyle=l.valueAtIndexOrDefault(h.color,0);var z=e.left,B=e.right,W=e.top,N=e.bottom,V=l.aliasPixel(r.lineWidth);p?(W=N="top"===i.position?e.bottom:e.top,W+=V,N+=V):(z=B="left"===i.position?e.right:e.left,z+=V,B+=V),r.beginPath(),r.moveTo(z,W),r.lineTo(B,N),r.stroke()}}}})}},{25:25,26:26,34:34,45:45}],33:[function(t,e,n){"use strict";var i=t(25),a=t(45);e.exports=function(t){t.scaleService={constructors:{},defaults:{},registerScaleType:function(t,e,n){this.constructors[t]=e,this.defaults[t]=a.clone(n)},getScaleConstructor:function(t){return this.constructors.hasOwnProperty(t)?this.constructors[t]:void 0},getScaleDefaults:function(t){return this.defaults.hasOwnProperty(t)?a.merge({},[i.scale,this.defaults[t]]):{}},updateScaleDefaults:function(t,e){var n=this;n.defaults.hasOwnProperty(t)&&(n.defaults[t]=a.extend(n.defaults[t],e))},addScalesToLayout:function(e){a.each(e.scales,function(n){n.fullWidth=n.options.fullWidth,n.position=n.options.position,n.weight=n.options.weight,t.layoutService.addBox(e,n)})}}}},{25:25,45:45}],34:[function(t,e,n){"use strict";var i=t(45);e.exports={generators:{linear:function(t,e){var n,a=[];if(t.stepSize&&t.stepSize>0)n=t.stepSize;else{var o=i.niceNum(e.max-e.min,!1);n=i.niceNum(o/(t.maxTicks-1),!0)}var r=Math.floor(e.min/n)*n,l=Math.ceil(e.max/n)*n;t.min&&t.max&&t.stepSize&&i.almostWhole((t.max-t.min)/t.stepSize,n/1e3)&&(r=t.min,l=t.max);var s=(l-r)/n;s=i.almostEquals(s,Math.round(s),n/1e3)?Math.round(s):Math.ceil(s),a.push(void 0!==t.min?t.min:r);for(var u=1;u<s;++u)a.push(r+u*n);return a.push(void 0!==t.max?t.max:l),a},logarithmic:function(t,e){var n,a,o=[],r=i.valueOrDefault,l=r(t.min,Math.pow(10,Math.floor(i.log10(e.min)))),s=Math.floor(i.log10(e.max)),u=Math.ceil(e.max/Math.pow(10,s));0===l?(n=Math.floor(i.log10(e.minNotZero)),a=Math.floor(e.minNotZero/Math.pow(10,n)),o.push(l),l=a*Math.pow(10,n)):(n=Math.floor(i.log10(l)),a=Math.floor(l/Math.pow(10,n)));do{o.push(l),10===++a&&(a=1,++n),l=a*Math.pow(10,n)}while(n<s||n===s&&a<u);var d=r(t.max,l);return o.push(d),o}},formatters:{values:function(t){return i.isArray(t)?t:""+t},linear:function(t,e,n){var a=n.length>3?n[2]-n[1]:n[1]-n[0];Math.abs(a)>1&&t!==Math.floor(t)&&(a=t-Math.floor(t));var o=i.log10(Math.abs(a)),r="";if(0!==t){var l=-1*Math.floor(o);l=Math.max(Math.min(l,20),0),r=t.toFixed(l)}else r="0";return r},logarithmic:function(t,e,n){var a=t/Math.pow(10,Math.floor(i.log10(t)));return 0===t?"0":1===a||2===a||5===a||0===e||e===n.length-1?t.toExponential():""}}}},{45:45}],35:[function(t,e,n){"use strict";var i=t(25),a=t(26),o=t(45);i._set("global",{tooltips:{enabled:!0,custom:null,mode:"nearest",position:"average",intersect:!0,backgroundColor:"rgba(0,0,0,0.8)",titleFontStyle:"bold",titleSpacing:2,titleMarginBottom:6,titleFontColor:"#fff",titleAlign:"left",bodySpacing:2,bodyFontColor:"#fff",bodyAlign:"left",footerFontStyle:"bold",footerSpacing:2,footerMarginTop:6,footerFontColor:"#fff",footerAlign:"left",yPadding:6,xPadding:6,caretPadding:2,caretSize:5,cornerRadius:6,multiKeyBackground:"#fff",displayColors:!0,borderColor:"rgba(0,0,0,0)",borderWidth:0,callbacks:{beforeTitle:o.noop,title:function(t,e){var n="",i=e.labels,a=i?i.length:0;if(t.length>0){var o=t[0];o.xLabel?n=o.xLabel:a>0&&o.index<a&&(n=i[o.index])}return n},afterTitle:o.noop,beforeBody:o.noop,beforeLabel:o.noop,label:function(t,e){var n=e.datasets[t.datasetIndex].label||"";return n&&(n+=": "),n+=t.yLabel},labelColor:function(t,e){var n=e.getDatasetMeta(t.datasetIndex).data[t.index]._view;return{borderColor:n.borderColor,backgroundColor:n.backgroundColor}},labelTextColor:function(){return this._options.bodyFontColor},afterLabel:o.noop,afterBody:o.noop,beforeFooter:o.noop,footer:o.noop,afterFooter:o.noop}}}),e.exports=function(t){function e(t,e){var n=o.color(t);return n.alpha(e*n.alpha()).rgbaString()}function n(t,e){return e&&(o.isArray(e)?Array.prototype.push.apply(t,e):t.push(e)),t}function r(t){var e=t._xScale,n=t._yScale||t._scale,i=t._index,a=t._datasetIndex;return{xLabel:e?e.getLabelForIndex(i,a):"",yLabel:n?n.getLabelForIndex(i,a):"",index:i,datasetIndex:a,x:t._model.x,y:t._model.y}}function l(t){var e=i.global,n=o.valueOrDefault;return{xPadding:t.xPadding,yPadding:t.yPadding,xAlign:t.xAlign,yAlign:t.yAlign,bodyFontColor:t.bodyFontColor,_bodyFontFamily:n(t.bodyFontFamily,e.defaultFontFamily),_bodyFontStyle:n(t.bodyFontStyle,e.defaultFontStyle),_bodyAlign:t.bodyAlign,bodyFontSize:n(t.bodyFontSize,e.defaultFontSize),bodySpacing:t.bodySpacing,titleFontColor:t.titleFontColor,_titleFontFamily:n(t.titleFontFamily,e.defaultFontFamily),_titleFontStyle:n(t.titleFontStyle,e.defaultFontStyle),titleFontSize:n(t.titleFontSize,e.defaultFontSize),_titleAlign:t.titleAlign,titleSpacing:t.titleSpacing,titleMarginBottom:t.titleMarginBottom,footerFontColor:t.footerFontColor,_footerFontFamily:n(t.footerFontFamily,e.defaultFontFamily),_footerFontStyle:n(t.footerFontStyle,e.defaultFontStyle),footerFontSize:n(t.footerFontSize,e.defaultFontSize),_footerAlign:t.footerAlign,footerSpacing:t.footerSpacing,footerMarginTop:t.footerMarginTop,caretSize:t.caretSize,cornerRadius:t.cornerRadius,backgroundColor:t.backgroundColor,opacity:0,legendColorBackground:t.multiKeyBackground,displayColors:t.displayColors,borderColor:t.borderColor,borderWidth:t.borderWidth}}function s(t,e){var n=t._chart.ctx,i=2*e.yPadding,a=0,r=e.body,l=r.reduce(function(t,e){return t+e.before.length+e.lines.length+e.after.length},0);l+=e.beforeBody.length+e.afterBody.length;var s=e.title.length,u=e.footer.length,d=e.titleFontSize,c=e.bodyFontSize,h=e.footerFontSize;i+=s*d,i+=s?(s-1)*e.titleSpacing:0,i+=s?e.titleMarginBottom:0,i+=l*c,i+=l?(l-1)*e.bodySpacing:0,i+=u?e.footerMarginTop:0,i+=u*h,i+=u?(u-1)*e.footerSpacing:0;var f=0,g=function(t){a=Math.max(a,n.measureText(t).width+f)};return n.font=o.fontString(d,e._titleFontStyle,e._titleFontFamily),o.each(e.title,g),n.font=o.fontString(c,e._bodyFontStyle,e._bodyFontFamily),o.each(e.beforeBody.concat(e.afterBody),g),f=e.displayColors?c+2:0,o.each(r,function(t){o.each(t.before,g),o.each(t.lines,g),o.each(t.after,g)}),f=0,n.font=o.fontString(h,e._footerFontStyle,e._footerFontFamily),o.each(e.footer,g),a+=2*e.xPadding,{width:a,height:i}}function u(t,e){var n=t._model,i=t._chart,a=t._chart.chartArea,o="center",r="center";n.y<e.height?r="top":n.y>i.height-e.height&&(r="bottom");var l,s,u,d,c,h=(a.left+a.right)/2,f=(a.top+a.bottom)/2;"center"===r?(l=function(t){return t<=h},s=function(t){return t>h}):(l=function(t){return t<=e.width/2},s=function(t){return t>=i.width-e.width/2}),u=function(t){return t+e.width>i.width},d=function(t){return t-e.width<0},c=function(t){return t<=f?"top":"bottom"},l(n.x)?(o="left",u(n.x)&&(o="center",r=c(n.y))):s(n.x)&&(o="right",d(n.x)&&(o="center",r=c(n.y)));var g=t._options;return{xAlign:g.xAlign?g.xAlign:o,yAlign:g.yAlign?g.yAlign:r}}function d(t,e,n){var i=t.x,a=t.y,o=t.caretSize,r=t.caretPadding,l=t.cornerRadius,s=n.xAlign,u=n.yAlign,d=o+r,c=l+r;return"right"===s?i-=e.width:"center"===s&&(i-=e.width/2),"top"===u?a+=d:a-="bottom"===u?e.height+d:e.height/2,"center"===u?"left"===s?i+=d:"right"===s&&(i-=d):"left"===s?i-=c:"right"===s&&(i+=c),{x:i,y:a}}t.Tooltip=a.extend({initialize:function(){this._model=l(this._options),this._lastActive=[]},getTitle:function(){var t=this,e=t._options.callbacks,i=e.beforeTitle.apply(t,arguments),a=e.title.apply(t,arguments),o=e.afterTitle.apply(t,arguments),r=[];return r=n(r,i),r=n(r,a),r=n(r,o)},getBeforeBody:function(){var t=this._options.callbacks.beforeBody.apply(this,arguments);return o.isArray(t)?t:void 0!==t?[t]:[]},getBody:function(t,e){var i=this,a=i._options.callbacks,r=[];return o.each(t,function(t){var o={before:[],lines:[],after:[]};n(o.before,a.beforeLabel.call(i,t,e)),n(o.lines,a.label.call(i,t,e)),n(o.after,a.afterLabel.call(i,t,e)),r.push(o)}),r},getAfterBody:function(){var t=this._options.callbacks.afterBody.apply(this,arguments);return o.isArray(t)?t:void 0!==t?[t]:[]},getFooter:function(){var t=this,e=t._options.callbacks,i=e.beforeFooter.apply(t,arguments),a=e.footer.apply(t,arguments),o=e.afterFooter.apply(t,arguments),r=[];return r=n(r,i),r=n(r,a),r=n(r,o)},update:function(e){var n,i,a=this,c=a._options,h=a._model,f=a._model=l(c),g=a._active,p=a._data,v={xAlign:h.xAlign,yAlign:h.yAlign},m={x:h.x,y:h.y},b={width:h.width,height:h.height},x={x:h.caretX,y:h.caretY};if(g.length){f.opacity=1;var y=[],k=[];x=t.Tooltip.positioners[c.position].call(a,g,a._eventPosition);var w=[];for(n=0,i=g.length;n<i;++n)w.push(r(g[n]));c.filter&&(w=w.filter(function(t){return c.filter(t,p)})),c.itemSort&&(w=w.sort(function(t,e){return c.itemSort(t,e,p)})),o.each(w,function(t){y.push(c.callbacks.labelColor.call(a,t,a._chart)),k.push(c.callbacks.labelTextColor.call(a,t,a._chart))}),f.title=a.getTitle(w,p),f.beforeBody=a.getBeforeBody(w,p),f.body=a.getBody(w,p),f.afterBody=a.getAfterBody(w,p),f.footer=a.getFooter(w,p),f.x=Math.round(x.x),f.y=Math.round(x.y),f.caretPadding=c.caretPadding,f.labelColors=y,f.labelTextColors=k,f.dataPoints=w,m=d(f,b=s(this,f),v=u(this,b))}else f.opacity=0;return f.xAlign=v.xAlign,f.yAlign=v.yAlign,f.x=m.x,f.y=m.y,f.width=b.width,f.height=b.height,f.caretX=x.x,f.caretY=x.y,a._model=f,e&&c.custom&&c.custom.call(a,f),a},drawCaret:function(t,e){var n=this._chart.ctx,i=this._view,a=this.getCaretPosition(t,e,i);n.lineTo(a.x1,a.y1),n.lineTo(a.x2,a.y2),n.lineTo(a.x3,a.y3)},getCaretPosition:function(t,e,n){var i,a,o,r,l,s,u=n.caretSize,d=n.cornerRadius,c=n.xAlign,h=n.yAlign,f=t.x,g=t.y,p=e.width,v=e.height;if("center"===h)l=g+v/2,"left"===c?(a=(i=f)-u,o=i,r=l+u,s=l-u):(a=(i=f+p)+u,o=i,r=l-u,s=l+u);else if("left"===c?(i=(a=f+d+u)-u,o=a+u):"right"===c?(i=(a=f+p-d-u)-u,o=a+u):(i=(a=f+p/2)-u,o=a+u),"top"===h)l=(r=g)-u,s=r;else{l=(r=g+v)+u,s=r;var m=o;o=i,i=m}return{x1:i,x2:a,x3:o,y1:r,y2:l,y3:s}},drawTitle:function(t,n,i,a){var r=n.title;if(r.length){i.textAlign=n._titleAlign,i.textBaseline="top";var l=n.titleFontSize,s=n.titleSpacing;i.fillStyle=e(n.titleFontColor,a),i.font=o.fontString(l,n._titleFontStyle,n._titleFontFamily);var u,d;for(u=0,d=r.length;u<d;++u)i.fillText(r[u],t.x,t.y),t.y+=l+s,u+1===r.length&&(t.y+=n.titleMarginBottom-s)}},drawBody:function(t,n,i,a){var r=n.bodyFontSize,l=n.bodySpacing,s=n.body;i.textAlign=n._bodyAlign,i.textBaseline="top",i.font=o.fontString(r,n._bodyFontStyle,n._bodyFontFamily);var u=0,d=function(e){i.fillText(e,t.x+u,t.y),t.y+=r+l};i.fillStyle=e(n.bodyFontColor,a),o.each(n.beforeBody,d);var c=n.displayColors;u=c?r+2:0,o.each(s,function(l,s){var u=e(n.labelTextColors[s],a);i.fillStyle=u,o.each(l.before,d),o.each(l.lines,function(o){c&&(i.fillStyle=e(n.legendColorBackground,a),i.fillRect(t.x,t.y,r,r),i.lineWidth=1,i.strokeStyle=e(n.labelColors[s].borderColor,a),i.strokeRect(t.x,t.y,r,r),i.fillStyle=e(n.labelColors[s].backgroundColor,a),i.fillRect(t.x+1,t.y+1,r-2,r-2),i.fillStyle=u),d(o)}),o.each(l.after,d)}),u=0,o.each(n.afterBody,d),t.y-=l},drawFooter:function(t,n,i,a){var r=n.footer;r.length&&(t.y+=n.footerMarginTop,i.textAlign=n._footerAlign,i.textBaseline="top",i.fillStyle=e(n.footerFontColor,a),i.font=o.fontString(n.footerFontSize,n._footerFontStyle,n._footerFontFamily),o.each(r,function(e){i.fillText(e,t.x,t.y),t.y+=n.footerFontSize+n.footerSpacing}))},drawBackground:function(t,n,i,a,o){i.fillStyle=e(n.backgroundColor,o),i.strokeStyle=e(n.borderColor,o),i.lineWidth=n.borderWidth;var r=n.xAlign,l=n.yAlign,s=t.x,u=t.y,d=a.width,c=a.height,h=n.cornerRadius;i.beginPath(),i.moveTo(s+h,u),"top"===l&&this.drawCaret(t,a),i.lineTo(s+d-h,u),i.quadraticCurveTo(s+d,u,s+d,u+h),"center"===l&&"right"===r&&this.drawCaret(t,a),i.lineTo(s+d,u+c-h),i.quadraticCurveTo(s+d,u+c,s+d-h,u+c),"bottom"===l&&this.drawCaret(t,a),i.lineTo(s+h,u+c),i.quadraticCurveTo(s,u+c,s,u+c-h),"center"===l&&"left"===r&&this.drawCaret(t,a),i.lineTo(s,u+h),i.quadraticCurveTo(s,u,s+h,u),i.closePath(),i.fill(),n.borderWidth>0&&i.stroke()},draw:function(){var t=this._chart.ctx,e=this._view;if(0!==e.opacity){var n={width:e.width,height:e.height},i={x:e.x,y:e.y},a=Math.abs(e.opacity<.001)?0:e.opacity,o=e.title.length||e.beforeBody.length||e.body.length||e.afterBody.length||e.footer.length;this._options.enabled&&o&&(this.drawBackground(i,e,t,n,a),i.x+=e.xPadding,i.y+=e.yPadding,this.drawTitle(i,e,t,a),this.drawBody(i,e,t,a),this.drawFooter(i,e,t,a))}},handleEvent:function(t){var e=this,n=e._options,i=!1;if(e._lastActive=e._lastActive||[],"mouseout"===t.type?e._active=[]:e._active=e._chart.getElementsAtEventForMode(t,n.mode,n),!(i=!o.arrayEquals(e._active,e._lastActive)))return!1;if(e._lastActive=e._active,n.enabled||n.custom){e._eventPosition={x:t.x,y:t.y};var a=e._model;e.update(!0),e.pivot(),i|=a.x!==e._model.x||a.y!==e._model.y}return i}}),t.Tooltip.positioners={average:function(t){if(!t.length)return!1;var e,n,i=0,a=0,o=0;for(e=0,n=t.length;e<n;++e){var r=t[e];if(r&&r.hasValue()){var l=r.tooltipPosition();i+=l.x,a+=l.y,++o}}return{x:Math.round(i/o),y:Math.round(a/o)}},nearest:function(t,e){var n,i,a,r=e.x,l=e.y,s=Number.POSITIVE_INFINITY;for(n=0,i=t.length;n<i;++n){var u=t[n];if(u&&u.hasValue()){var d=u.getCenterPoint(),c=o.distanceBetweenPoints(e,d);c<s&&(s=c,a=u)}}if(a){var h=a.tooltipPosition();r=h.x,l=h.y}return{x:r,y:l}}}}},{25:25,26:26,45:45}],36:[function(t,e,n){"use strict";var i=t(25),a=t(26),o=t(45);i._set("global",{elements:{arc:{backgroundColor:i.global.defaultColor,borderColor:"#fff",borderWidth:2}}}),e.exports=a.extend({inLabelRange:function(t){var e=this._view;return!!e&&Math.pow(t-e.x,2)<Math.pow(e.radius+e.hoverRadius,2)},inRange:function(t,e){var n=this._view;if(n){for(var i=o.getAngleFromPoint(n,{x:t,y:e}),a=i.angle,r=i.distance,l=n.startAngle,s=n.endAngle;s<l;)s+=2*Math.PI;for(;a>s;)a-=2*Math.PI;for(;a<l;)a+=2*Math.PI;var u=a>=l&&a<=s,d=r>=n.innerRadius&&r<=n.outerRadius;return u&&d}return!1},getCenterPoint:function(){var t=this._view,e=(t.startAngle+t.endAngle)/2,n=(t.innerRadius+t.outerRadius)/2;return{x:t.x+Math.cos(e)*n,y:t.y+Math.sin(e)*n}},getArea:function(){var t=this._view;return Math.PI*((t.endAngle-t.startAngle)/(2*Math.PI))*(Math.pow(t.outerRadius,2)-Math.pow(t.innerRadius,2))},tooltipPosition:function(){var t=this._view,e=t.startAngle+(t.endAngle-t.startAngle)/2,n=(t.outerRadius-t.innerRadius)/2+t.innerRadius;return{x:t.x+Math.cos(e)*n,y:t.y+Math.sin(e)*n}},draw:function(){var t=this._chart.ctx,e=this._view,n=e.startAngle,i=e.endAngle;t.beginPath(),t.arc(e.x,e.y,e.outerRadius,n,i),t.arc(e.x,e.y,e.innerRadius,i,n,!0),t.closePath(),t.strokeStyle=e.borderColor,t.lineWidth=e.borderWidth,t.fillStyle=e.backgroundColor,t.fill(),t.lineJoin="bevel",e.borderWidth&&t.stroke()}})},{25:25,26:26,45:45}],37:[function(t,e,n){"use strict";var i=t(25),a=t(26),o=t(45),r=i.global;i._set("global",{elements:{line:{tension:.4,backgroundColor:r.defaultColor,borderWidth:3,borderColor:r.defaultColor,borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",capBezierPoints:!0,fill:!0}}}),e.exports=a.extend({draw:function(){var t,e,n,i,a=this,l=a._view,s=a._chart.ctx,u=l.spanGaps,d=a._children.slice(),c=r.elements.line,h=-1;for(a._loop&&d.length&&d.push(d[0]),s.save(),s.lineCap=l.borderCapStyle||c.borderCapStyle,s.setLineDash&&s.setLineDash(l.borderDash||c.borderDash),s.lineDashOffset=l.borderDashOffset||c.borderDashOffset,s.lineJoin=l.borderJoinStyle||c.borderJoinStyle,s.lineWidth=l.borderWidth||c.borderWidth,s.strokeStyle=l.borderColor||r.defaultColor,s.beginPath(),h=-1,t=0;t<d.length;++t)e=d[t],n=o.previousItem(d,t),i=e._view,0===t?i.skip||(s.moveTo(i.x,i.y),h=t):(n=-1===h?n:d[h],i.skip||(h!==t-1&&!u||-1===h?s.moveTo(i.x,i.y):o.canvas.lineTo(s,n._view,e._view),h=t));s.stroke(),s.restore()}})},{25:25,26:26,45:45}],38:[function(t,e,n){"use strict";function i(t){var e=this._view;return!!e&&Math.pow(t-e.x,2)<Math.pow(e.radius+e.hitRadius,2)}var a=t(25),o=t(26),r=t(45),l=a.global.defaultColor;a._set("global",{elements:{point:{radius:3,pointStyle:"circle",backgroundColor:l,borderColor:l,borderWidth:1,hitRadius:1,hoverRadius:4,hoverBorderWidth:1}}}),e.exports=o.extend({inRange:function(t,e){var n=this._view;return!!n&&Math.pow(t-n.x,2)+Math.pow(e-n.y,2)<Math.pow(n.hitRadius+n.radius,2)},inLabelRange:i,inXRange:i,inYRange:function(t){var e=this._view;return!!e&&Math.pow(t-e.y,2)<Math.pow(e.radius+e.hitRadius,2)},getCenterPoint:function(){var t=this._view;return{x:t.x,y:t.y}},getArea:function(){return Math.PI*Math.pow(this._view.radius,2)},tooltipPosition:function(){var t=this._view;return{x:t.x,y:t.y,padding:t.radius+t.borderWidth}},draw:function(t){var e=this._view,n=this._model,i=this._chart.ctx,o=e.pointStyle,s=e.radius,u=e.x,d=e.y,c=r.color,h=0;e.skip||(i.strokeStyle=e.borderColor||l,i.lineWidth=r.valueOrDefault(e.borderWidth,a.global.elements.point.borderWidth),i.fillStyle=e.backgroundColor||l,void 0!==t&&(n.x<t.left||1.01*t.right<n.x||n.y<t.top||1.01*t.bottom<n.y)&&(n.x<t.left?h=(u-n.x)/(t.left-n.x):1.01*t.right<n.x?h=(n.x-u)/(n.x-t.right):n.y<t.top?h=(d-n.y)/(t.top-n.y):1.01*t.bottom<n.y&&(h=(n.y-d)/(n.y-t.bottom)),h=Math.round(100*h)/100,i.strokeStyle=c(i.strokeStyle).alpha(h).rgbString(),i.fillStyle=c(i.fillStyle).alpha(h).rgbString()),r.canvas.drawPoint(i,o,s,u,d))}})},{25:25,26:26,45:45}],39:[function(t,e,n){"use strict";function i(t){return void 0!==t._view.width}function a(t){var e,n,a,o,r=t._view;if(i(t)){var l=r.width/2;e=r.x-l,n=r.x+l,a=Math.min(r.y,r.base),o=Math.max(r.y,r.base)}else{var s=r.height/2;e=Math.min(r.x,r.base),n=Math.max(r.x,r.base),a=r.y-s,o=r.y+s}return{left:e,top:a,right:n,bottom:o}}var o=t(25),r=t(26);o._set("global",{elements:{rectangle:{backgroundColor:o.global.defaultColor,borderColor:o.global.defaultColor,borderSkipped:"bottom",borderWidth:0}}}),e.exports=r.extend({draw:function(){function t(t){return m[(b+t)%4]}var e,n,i,a,o,r,l,s=this._chart.ctx,u=this._view,d=u.borderWidth;if(u.horizontal?(e=u.base,n=u.x,i=u.y-u.height/2,a=u.y+u.height/2,o=n>e?1:-1,r=1,l=u.borderSkipped||"left"):(e=u.x-u.width/2,n=u.x+u.width/2,i=u.y,o=1,r=(a=u.base)>i?1:-1,l=u.borderSkipped||"bottom"),d){var c=Math.min(Math.abs(e-n),Math.abs(i-a)),h=(d=d>c?c:d)/2,f=e+("left"!==l?h*o:0),g=n+("right"!==l?-h*o:0),p=i+("top"!==l?h*r:0),v=a+("bottom"!==l?-h*r:0);f!==g&&(i=p,a=v),p!==v&&(e=f,n=g)}s.beginPath(),s.fillStyle=u.backgroundColor,s.strokeStyle=u.borderColor,s.lineWidth=d;var m=[[e,a],[e,i],[n,i],[n,a]],b=["bottom","left","top","right"].indexOf(l,0);-1===b&&(b=0);var x=t(0);s.moveTo(x[0],x[1]);for(var y=1;y<4;y++)x=t(y),s.lineTo(x[0],x[1]);s.fill(),d&&s.stroke()},height:function(){var t=this._view;return t.base-t.y},inRange:function(t,e){var n=!1;if(this._view){var i=a(this);n=t>=i.left&&t<=i.right&&e>=i.top&&e<=i.bottom}return n},inLabelRange:function(t,e){var n=this;if(!n._view)return!1;var o=a(n);return i(n)?t>=o.left&&t<=o.right:e>=o.top&&e<=o.bottom},inXRange:function(t){var e=a(this);return t>=e.left&&t<=e.right},inYRange:function(t){var e=a(this);return t>=e.top&&t<=e.bottom},getCenterPoint:function(){var t,e,n=this._view;return i(this)?(t=n.x,e=(n.y+n.base)/2):(t=(n.x+n.base)/2,e=n.y),{x:t,y:e}},getArea:function(){var t=this._view;return t.width*Math.abs(t.y-t.base)},tooltipPosition:function(){var t=this._view;return{x:t.x,y:t.y}}})},{25:25,26:26}],40:[function(t,e,n){"use strict";e.exports={},e.exports.Arc=t(36),e.exports.Line=t(37),e.exports.Point=t(38),e.exports.Rectangle=t(39)},{36:36,37:37,38:38,39:39}],41:[function(t,e,n){"use strict";var i=t(42),n=e.exports={clear:function(t){t.ctx.clearRect(0,0,t.width,t.height)},roundedRect:function(t,e,n,i,a,o){if(o){var r=Math.min(o,i/2),l=Math.min(o,a/2);t.moveTo(e+r,n),t.lineTo(e+i-r,n),t.quadraticCurveTo(e+i,n,e+i,n+l),t.lineTo(e+i,n+a-l),t.quadraticCurveTo(e+i,n+a,e+i-r,n+a),t.lineTo(e+r,n+a),t.quadraticCurveTo(e,n+a,e,n+a-l),t.lineTo(e,n+l),t.quadraticCurveTo(e,n,e+r,n)}else t.rect(e,n,i,a)},drawPoint:function(t,e,n,i,a){var o,r,l,s,u,d;if(!e||"object"!=typeof e||"[object HTMLImageElement]"!==(o=e.toString())&&"[object HTMLCanvasElement]"!==o){if(!(isNaN(n)||n<=0)){switch(e){default:t.beginPath(),t.arc(i,a,n,0,2*Math.PI),t.closePath(),t.fill();break;case"triangle":t.beginPath(),u=(r=3*n/Math.sqrt(3))*Math.sqrt(3)/2,t.moveTo(i-r/2,a+u/3),t.lineTo(i+r/2,a+u/3),t.lineTo(i,a-2*u/3),t.closePath(),t.fill();break;case"rect":d=1/Math.SQRT2*n,t.beginPath(),t.fillRect(i-d,a-d,2*d,2*d),t.strokeRect(i-d,a-d,2*d,2*d);break;case"rectRounded":var c=n/Math.SQRT2,h=i-c,f=a-c,g=Math.SQRT2*n;t.beginPath(),this.roundedRect(t,h,f,g,g,n/2),t.closePath(),t.fill();break;case"rectRot":d=1/Math.SQRT2*n,t.beginPath(),t.moveTo(i-d,a),t.lineTo(i,a+d),t.lineTo(i+d,a),t.lineTo(i,a-d),t.closePath(),t.fill();break;case"cross":t.beginPath(),t.moveTo(i,a+n),t.lineTo(i,a-n),t.moveTo(i-n,a),t.lineTo(i+n,a),t.closePath();break;case"crossRot":t.beginPath(),l=Math.cos(Math.PI/4)*n,s=Math.sin(Math.PI/4)*n,t.moveTo(i-l,a-s),t.lineTo(i+l,a+s),t.moveTo(i-l,a+s),t.lineTo(i+l,a-s),t.closePath();break;case"star":t.beginPath(),t.moveTo(i,a+n),t.lineTo(i,a-n),t.moveTo(i-n,a),t.lineTo(i+n,a),l=Math.cos(Math.PI/4)*n,s=Math.sin(Math.PI/4)*n,t.moveTo(i-l,a-s),t.lineTo(i+l,a+s),t.moveTo(i-l,a+s),t.lineTo(i+l,a-s),t.closePath();break;case"line":t.beginPath(),t.moveTo(i-n,a),t.lineTo(i+n,a),t.closePath();break;case"dash":t.beginPath(),t.moveTo(i,a),t.lineTo(i+n,a),t.closePath()}t.stroke()}}else t.drawImage(e,i-e.width/2,a-e.height/2,e.width,e.height)},clipArea:function(t,e){t.save(),t.beginPath(),t.rect(e.left,e.top,e.right-e.left,e.bottom-e.top),t.clip()},unclipArea:function(t){t.restore()},lineTo:function(t,e,n,i){if(n.steppedLine)return"after"===n.steppedLine&&!i||"after"!==n.steppedLine&&i?t.lineTo(e.x,n.y):t.lineTo(n.x,e.y),void t.lineTo(n.x,n.y);n.tension?t.bezierCurveTo(i?e.controlPointPreviousX:e.controlPointNextX,i?e.controlPointPreviousY:e.controlPointNextY,i?n.controlPointNextX:n.controlPointPreviousX,i?n.controlPointNextY:n.controlPointPreviousY,n.x,n.y):t.lineTo(n.x,n.y)}};i.clear=n.clear,i.drawRoundedRectangle=function(t){t.beginPath(),n.roundedRect.apply(n,arguments),t.closePath()}},{42:42}],42:[function(t,e,n){"use strict";var i={noop:function(){},uid:function(){var t=0;return function(){return t++}}(),isNullOrUndef:function(t){return null===t||void 0===t},isArray:Array.isArray?Array.isArray:function(t){return"[object Array]"===Object.prototype.toString.call(t)},isObject:function(t){return null!==t&&"[object Object]"===Object.prototype.toString.call(t)},valueOrDefault:function(t,e){return void 0===t?e:t},valueAtIndexOrDefault:function(t,e,n){return i.valueOrDefault(i.isArray(t)?t[e]:t,n)},callback:function(t,e,n){if(t&&"function"==typeof t.call)return t.apply(n,e)},each:function(t,e,n,a){var o,r,l;if(i.isArray(t))if(r=t.length,a)for(o=r-1;o>=0;o--)e.call(n,t[o],o);else for(o=0;o<r;o++)e.call(n,t[o],o);else if(i.isObject(t))for(r=(l=Object.keys(t)).length,o=0;o<r;o++)e.call(n,t[l[o]],l[o])},arrayEquals:function(t,e){var n,a,o,r;if(!t||!e||t.length!==e.length)return!1;for(n=0,a=t.length;n<a;++n)if(o=t[n],r=e[n],o instanceof Array&&r instanceof Array){if(!i.arrayEquals(o,r))return!1}else if(o!==r)return!1;return!0},clone:function(t){if(i.isArray(t))return t.map(i.clone);if(i.isObject(t)){for(var e={},n=Object.keys(t),a=n.length,o=0;o<a;++o)e[n[o]]=i.clone(t[n[o]]);return e}return t},_merger:function(t,e,n,a){var o=e[t],r=n[t];i.isObject(o)&&i.isObject(r)?i.merge(o,r,a):e[t]=i.clone(r)},_mergerIf:function(t,e,n){var a=e[t],o=n[t];i.isObject(a)&&i.isObject(o)?i.mergeIf(a,o):e.hasOwnProperty(t)||(e[t]=i.clone(o))},merge:function(t,e,n){var a,o,r,l,s,u=i.isArray(e)?e:[e],d=u.length;if(!i.isObject(t))return t;for(a=(n=n||{}).merger||i._merger,o=0;o<d;++o)if(e=u[o],i.isObject(e))for(s=0,l=(r=Object.keys(e)).length;s<l;++s)a(r[s],t,e,n);return t},mergeIf:function(t,e){return i.merge(t,e,{merger:i._mergerIf})},extend:function(t){for(var e=1,n=arguments.length;e<n;++e)i.each(arguments[e],function(e,n){t[n]=e});return t},inherits:function(t){var e=this,n=t&&t.hasOwnProperty("constructor")?t.constructor:function(){return e.apply(this,arguments)},a=function(){this.constructor=n};return a.prototype=e.prototype,n.prototype=new a,n.extend=i.inherits,t&&i.extend(n.prototype,t),n.__super__=e.prototype,n}};e.exports=i,i.callCallback=i.callback,i.indexOf=function(t,e,n){return Array.prototype.indexOf.call(t,e,n)},i.getValueOrDefault=i.valueOrDefault,i.getValueAtIndexOrDefault=i.valueAtIndexOrDefault},{}],43:[function(t,e,n){"use strict";var i=t(42),a={linear:function(t){return t},easeInQuad:function(t){return t*t},easeOutQuad:function(t){return-t*(t-2)},easeInOutQuad:function(t){return(t/=.5)<1?.5*t*t:-.5*(--t*(t-2)-1)},easeInCubic:function(t){return t*t*t},easeOutCubic:function(t){return(t-=1)*t*t+1},easeInOutCubic:function(t){return(t/=.5)<1?.5*t*t*t:.5*((t-=2)*t*t+2)},easeInQuart:function(t){return t*t*t*t},easeOutQuart:function(t){return-((t-=1)*t*t*t-1)},easeInOutQuart:function(t){return(t/=.5)<1?.5*t*t*t*t:-.5*((t-=2)*t*t*t-2)},easeInQuint:function(t){return t*t*t*t*t},easeOutQuint:function(t){return(t-=1)*t*t*t*t+1},easeInOutQuint:function(t){return(t/=.5)<1?.5*t*t*t*t*t:.5*((t-=2)*t*t*t*t+2)},easeInSine:function(t){return 1-Math.cos(t*(Math.PI/2))},easeOutSine:function(t){return Math.sin(t*(Math.PI/2))},easeInOutSine:function(t){return-.5*(Math.cos(Math.PI*t)-1)},easeInExpo:function(t){return 0===t?0:Math.pow(2,10*(t-1))},easeOutExpo:function(t){return 1===t?1:1-Math.pow(2,-10*t)},easeInOutExpo:function(t){return 0===t?0:1===t?1:(t/=.5)<1?.5*Math.pow(2,10*(t-1)):.5*(2-Math.pow(2,-10*--t))},easeInCirc:function(t){return t>=1?t:-(Math.sqrt(1-t*t)-1)},easeOutCirc:function(t){return Math.sqrt(1-(t-=1)*t)},easeInOutCirc:function(t){return(t/=.5)<1?-.5*(Math.sqrt(1-t*t)-1):.5*(Math.sqrt(1-(t-=2)*t)+1)},easeInElastic:function(t){var e=1.70158,n=0,i=1;return 0===t?0:1===t?1:(n||(n=.3),i<1?(i=1,e=n/4):e=n/(2*Math.PI)*Math.asin(1/i),-i*Math.pow(2,10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/n))},easeOutElastic:function(t){var e=1.70158,n=0,i=1;return 0===t?0:1===t?1:(n||(n=.3),i<1?(i=1,e=n/4):e=n/(2*Math.PI)*Math.asin(1/i),i*Math.pow(2,-10*t)*Math.sin((t-e)*(2*Math.PI)/n)+1)},easeInOutElastic:function(t){var e=1.70158,n=0,i=1;return 0===t?0:2==(t/=.5)?1:(n||(n=.45),i<1?(i=1,e=n/4):e=n/(2*Math.PI)*Math.asin(1/i),t<1?i*Math.pow(2,10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/n)*-.5:i*Math.pow(2,-10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/n)*.5+1)},easeInBack:function(t){var e=1.70158;return t*t*((e+1)*t-e)},easeOutBack:function(t){var e=1.70158;return(t-=1)*t*((e+1)*t+e)+1},easeInOutBack:function(t){var e=1.70158;return(t/=.5)<1?t*t*((1+(e*=1.525))*t-e)*.5:.5*((t-=2)*t*((1+(e*=1.525))*t+e)+2)},easeInBounce:function(t){return 1-a.easeOutBounce(1-t)},easeOutBounce:function(t){return t<1/2.75?7.5625*t*t:t<2/2.75?7.5625*(t-=1.5/2.75)*t+.75:t<2.5/2.75?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375},easeInOutBounce:function(t){return t<.5?.5*a.easeInBounce(2*t):.5*a.easeOutBounce(2*t-1)+.5}};e.exports={effects:a},i.easingEffects=a},{42:42}],44:[function(t,e,n){"use strict";var i=t(42);e.exports={toLineHeight:function(t,e){var n=(""+t).match(/^(normal|(\d+(?:\.\d+)?)(px|em|%)?)$/);if(!n||"normal"===n[1])return 1.2*e;switch(t=+n[2],n[3]){case"px":return t;case"%":t/=100}return e*t},toPadding:function(t){var e,n,a,o;return i.isObject(t)?(e=+t.top||0,n=+t.right||0,a=+t.bottom||0,o=+t.left||0):e=n=a=o=+t||0,{top:e,right:n,bottom:a,left:o,height:e+a,width:o+n}},resolve:function(t,e,n){var a,o,r;for(a=0,o=t.length;a<o;++a)if(void 0!==(r=t[a])&&(void 0!==e&&"function"==typeof r&&(r=r(e)),void 0!==n&&i.isArray(r)&&(r=r[n]),void 0!==r))return r}}},{42:42}],45:[function(t,e,n){"use strict";e.exports=t(42),e.exports.easing=t(43),e.exports.canvas=t(41),e.exports.options=t(44)},{41:41,42:42,43:43,44:44}],46:[function(t,e,n){e.exports={acquireContext:function(t){return t&&t.canvas&&(t=t.canvas),t&&t.getContext("2d")||null}}},{}],47:[function(t,e,n){"use strict";function i(t,e){var n=v.getStyle(t,e),i=n&&n.match(/^(\d+)(\.\d+)?px$/);return i?Number(i[1]):void 0}function a(t,e){var n=t.style,a=t.getAttribute("height"),o=t.getAttribute("width");if(t[m]={initial:{height:a,width:o,style:{display:n.display,height:n.height,width:n.width}}},n.display=n.display||"block",null===o||""===o){var r=i(t,"width");void 0!==r&&(t.width=r)}if(null===a||""===a)if(""===t.style.height)t.height=t.width/(e.options.aspectRatio||2);else{var l=i(t,"height");void 0!==r&&(t.height=l)}return t}function o(t,e,n){t.addEventListener(e,n,M)}function r(t,e,n){t.removeEventListener(e,n,M)}function l(t,e,n,i,a){return{type:t,chart:e,native:a||null,x:void 0!==n?n:null,y:void 0!==i?i:null}}function s(t,e){var n=w[t.type]||t.type,i=v.getRelativePosition(t,e);return l(n,e,i.x,i.y,t)}function u(t,e){var n=!1,i=[];return function(){i=Array.prototype.slice.call(arguments),e=e||this,n||(n=!0,v.requestAnimFrame.call(window,function(){n=!1,t.apply(e,i)}))}}function d(t){var e=document.createElement("div"),n=b+"size-monitor",i="position:absolute;left:0;top:0;right:0;bottom:0;overflow:hidden;pointer-events:none;visibility:hidden;z-index:-1;";e.style.cssText=i,e.className=n,e.innerHTML='<div class="'+n+'-expand" style="'+i+'"><div style="position:absolute;width:1000000px;height:1000000px;left:0;top:0"></div></div><div class="'+n+'-shrink" style="'+i+'"><div style="position:absolute;width:200%;height:200%;left:0; top:0"></div></div>';var a=e.childNodes[0],r=e.childNodes[1];e._reset=function(){a.scrollLeft=1e6,a.scrollTop=1e6,r.scrollLeft=1e6,r.scrollTop=1e6};var l=function(){e._reset(),t()};return o(a,"scroll",l.bind(a,"expand")),o(r,"scroll",l.bind(r,"shrink")),e}function c(t,e){var n=t[m]||(t[m]={}),i=n.renderProxy=function(t){t.animationName===y&&e()};v.each(k,function(e){o(t,e,i)}),n.reflow=!!t.offsetParent,t.classList.add(x)}function h(t){var e=t[m]||{},n=e.renderProxy;n&&(v.each(k,function(e){r(t,e,n)}),delete e.renderProxy),t.classList.remove(x)}function f(t,e,n){var i=t[m]||(t[m]={}),a=i.resizer=d(u(function(){if(i.resizer)return e(l("resize",n))}));c(t,function(){if(i.resizer){var e=t.parentNode;e&&e!==a.parentNode&&e.insertBefore(a,e.firstChild),a._reset()}})}function g(t){var e=t[m]||{},n=e.resizer;delete e.resizer,h(t),n&&n.parentNode&&n.parentNode.removeChild(n)}function p(t,e){var n=t._style||document.createElement("style");t._style||(t._style=n,e="/* Chart.js */\n"+e,n.setAttribute("type","text/css"),document.getElementsByTagName("head")[0].appendChild(n)),n.appendChild(document.createTextNode(e))}var v=t(45),m="$chartjs",b="chartjs-",x=b+"render-monitor",y=b+"render-animation",k=["animationstart","webkitAnimationStart"],w={touchstart:"mousedown",touchmove:"mousemove",touchend:"mouseup",pointerenter:"mouseenter",pointerdown:"mousedown",pointermove:"mousemove",pointerup:"mouseup",pointerleave:"mouseout",pointerout:"mouseout"},M=!!function(){var t=!1;try{var e=Object.defineProperty({},"passive",{get:function(){t=!0}});window.addEventListener("e",null,e)}catch(t){}return t}()&&{passive:!0};e.exports={_enabled:"undefined"!=typeof window&&"undefined"!=typeof document,initialize:function(){var t="from{opacity:0.99}to{opacity:1}";p(this,"@-webkit-keyframes "+y+"{"+t+"}@keyframes "+y+"{"+t+"}."+x+"{-webkit-animation:"+y+" 0.001s;animation:"+y+" 0.001s;}")},acquireContext:function(t,e){"string"==typeof t?t=document.getElementById(t):t.length&&(t=t[0]),t&&t.canvas&&(t=t.canvas);var n=t&&t.getContext&&t.getContext("2d");return n&&n.canvas===t?(a(t,e),n):null},releaseContext:function(t){var e=t.canvas;if(e[m]){var n=e[m].initial;["height","width"].forEach(function(t){var i=n[t];v.isNullOrUndef(i)?e.removeAttribute(t):e.setAttribute(t,i)}),v.each(n.style||{},function(t,n){e.style[n]=t}),e.width=e.width,delete e[m]}},addEventListener:function(t,e,n){var i=t.canvas;if("resize"!==e){var a=n[m]||(n[m]={});o(i,e,(a.proxies||(a.proxies={}))[t.id+"_"+e]=function(e){n(s(e,t))})}else f(i,n,t)},removeEventListener:function(t,e,n){var i=t.canvas;if("resize"!==e){var a=((n[m]||{}).proxies||{})[t.id+"_"+e];a&&r(i,e,a)}else g(i)}},v.addEvent=o,v.removeEvent=r},{45:45}],48:[function(t,e,n){"use strict";var i=t(45),a=t(46),o=t(47),r=o._enabled?o:a;e.exports=i.extend({initialize:function(){},acquireContext:function(){},releaseContext:function(){},addEventListener:function(){},removeEventListener:function(){}},r)},{45:45,46:46,47:47}],49:[function(t,e,n){"use strict";var i=t(25),a=t(40),o=t(45);i._set("global",{plugins:{filler:{propagate:!0}}}),e.exports=function(){function t(t,e,n){var i,a=t._model||{},o=a.fill;if(void 0===o&&(o=!!a.backgroundColor),!1===o||null===o)return!1;if(!0===o)return"origin";if(i=parseFloat(o,10),isFinite(i)&&Math.floor(i)===i)return"-"!==o[0]&&"+"!==o[0]||(i=e+i),!(i===e||i<0||i>=n)&&i;switch(o){case"bottom":return"start";case"top":return"end";case"zero":return"origin";case"origin":case"start":case"end":return o;default:return!1}}function e(t){var e,n=t.el._model||{},i=t.el._scale||{},a=t.fill,o=null;if(isFinite(a))return null;if("start"===a?o=void 0===n.scaleBottom?i.bottom:n.scaleBottom:"end"===a?o=void 0===n.scaleTop?i.top:n.scaleTop:void 0!==n.scaleZero?o=n.scaleZero:i.getBasePosition?o=i.getBasePosition():i.getBasePixel&&(o=i.getBasePixel()),void 0!==o&&null!==o){if(void 0!==o.x&&void 0!==o.y)return o;if("number"==typeof o&&isFinite(o))return e=i.isHorizontal(),{x:e?o:null,y:e?null:o}}return null}function n(t,e,n){var i,a=t[e].fill,o=[e];if(!n)return a;for(;!1!==a&&-1===o.indexOf(a);){if(!isFinite(a))return a;if(!(i=t[a]))return!1;if(i.visible)return a;o.push(a),a=i.fill}return!1}function r(t){var e=t.fill,n="dataset";return!1===e?null:(isFinite(e)||(n="boundary"),d[n](t))}function l(t){return t&&!t.skip}function s(t,e,n,i,a){var r;if(i&&a){for(t.moveTo(e[0].x,e[0].y),r=1;r<i;++r)o.canvas.lineTo(t,e[r-1],e[r]);for(t.lineTo(n[a-1].x,n[a-1].y),r=a-1;r>0;--r)o.canvas.lineTo(t,n[r],n[r-1],!0)}}function u(t,e,n,i,a,o){var r,u,d,c,h,f,g,p=e.length,v=i.spanGaps,m=[],b=[],x=0,y=0;for(t.beginPath(),r=0,u=p+!!o;r<u;++r)h=n(c=e[d=r%p]._view,d,i),f=l(c),g=l(h),f&&g?(x=m.push(c),y=b.push(h)):x&&y&&(v?(f&&m.push(c),g&&b.push(h)):(s(t,m,b,x,y),x=y=0,m=[],b=[]));s(t,m,b,x,y),t.closePath(),t.fillStyle=a,t.fill()}var d={dataset:function(t){var e=t.fill,n=t.chart,i=n.getDatasetMeta(e),a=i&&n.isDatasetVisible(e)&&i.dataset._children||[],o=a.length||0;return o?function(t,e){return e<o&&a[e]._view||null}:null},boundary:function(t){var e=t.boundary,n=e?e.x:null,i=e?e.y:null;return function(t){return{x:null===n?t.x:n,y:null===i?t.y:i}}}};return{id:"filler",afterDatasetsUpdate:function(i,o){var l,s,u,d,c=(i.data.datasets||[]).length,h=o.propagate,f=[];for(s=0;s<c;++s)d=null,(u=(l=i.getDatasetMeta(s)).dataset)&&u._model&&u instanceof a.Line&&(d={visible:i.isDatasetVisible(s),fill:t(u,s,c),chart:i,el:u}),l.$filler=d,f.push(d);for(s=0;s<c;++s)(d=f[s])&&(d.fill=n(f,s,h),d.boundary=e(d),d.mapper=r(d))},beforeDatasetDraw:function(t,e){var n=e.meta.$filler;if(n){var a=t.ctx,r=n.el,l=r._view,s=r._children||[],d=n.mapper,c=l.backgroundColor||i.global.defaultColor;d&&c&&s.length&&(o.canvas.clipArea(a,t.chartArea),u(a,s,d,l,c,r._loop),o.canvas.unclipArea(a))}}}}},{25:25,40:40,45:45}],50:[function(t,e,n){"use strict";var i=t(25),a=t(26),o=t(45);i._set("global",{legend:{display:!0,position:"top",fullWidth:!0,reverse:!1,weight:1e3,onClick:function(t,e){var n=e.datasetIndex,i=this.chart,a=i.getDatasetMeta(n);a.hidden=null===a.hidden?!i.data.datasets[n].hidden:null,i.update()},onHover:null,labels:{boxWidth:40,padding:10,generateLabels:function(t){var e=t.data;return o.isArray(e.datasets)?e.datasets.map(function(e,n){return{text:e.label,fillStyle:o.isArray(e.backgroundColor)?e.backgroundColor[0]:e.backgroundColor,hidden:!t.isDatasetVisible(n),lineCap:e.borderCapStyle,lineDash:e.borderDash,lineDashOffset:e.borderDashOffset,lineJoin:e.borderJoinStyle,lineWidth:e.borderWidth,strokeStyle:e.borderColor,pointStyle:e.pointStyle,datasetIndex:n}},this):[]}}},legendCallback:function(t){var e=[];e.push('<ul class="'+t.id+'-legend">');for(var n=0;n<t.data.datasets.length;n++)e.push('<li><span style="background-color:'+t.data.datasets[n].backgroundColor+'"></span>'),t.data.datasets[n].label&&e.push(t.data.datasets[n].label),e.push("</li>");return e.push("</ul>"),e.join("")}}),e.exports=function(t){function e(t,e){return t.usePointStyle?e*Math.SQRT2:t.boxWidth}function n(e,n){var i=new t.Legend({ctx:e.ctx,options:n,chart:e});r.configure(e,i,n),r.addBox(e,i),e.legend=i}var r=t.layoutService,l=o.noop;return t.Legend=a.extend({initialize:function(t){o.extend(this,t),this.legendHitBoxes=[],this.doughnutMode=!1},beforeUpdate:l,update:function(t,e,n){var i=this;return i.beforeUpdate(),i.maxWidth=t,i.maxHeight=e,i.margins=n,i.beforeSetDimensions(),i.setDimensions(),i.afterSetDimensions(),i.beforeBuildLabels(),i.buildLabels(),i.afterBuildLabels(),i.beforeFit(),i.fit(),i.afterFit(),i.afterUpdate(),i.minSize},afterUpdate:l,beforeSetDimensions:l,setDimensions:function(){var t=this;t.isHorizontal()?(t.width=t.maxWidth,t.left=0,t.right=t.width):(t.height=t.maxHeight,t.top=0,t.bottom=t.height),t.paddingLeft=0,t.paddingTop=0,t.paddingRight=0,t.paddingBottom=0,t.minSize={width:0,height:0}},afterSetDimensions:l,beforeBuildLabels:l,buildLabels:function(){var t=this,e=t.options.labels||{},n=o.callback(e.generateLabels,[t.chart],t)||[];e.filter&&(n=n.filter(function(n){return e.filter(n,t.chart.data)})),t.options.reverse&&n.reverse(),t.legendItems=n},afterBuildLabels:l,beforeFit:l,fit:function(){var t=this,n=t.options,a=n.labels,r=n.display,l=t.ctx,s=i.global,u=o.valueOrDefault,d=u(a.fontSize,s.defaultFontSize),c=u(a.fontStyle,s.defaultFontStyle),h=u(a.fontFamily,s.defaultFontFamily),f=o.fontString(d,c,h),g=t.legendHitBoxes=[],p=t.minSize,v=t.isHorizontal();if(v?(p.width=t.maxWidth,p.height=r?10:0):(p.width=r?10:0,p.height=t.maxHeight),r)if(l.font=f,v){var m=t.lineWidths=[0],b=t.legendItems.length?d+a.padding:0;l.textAlign="left",l.textBaseline="top",o.each(t.legendItems,function(n,i){var o=e(a,d)+d/2+l.measureText(n.text).width;m[m.length-1]+o+a.padding>=t.width&&(b+=d+a.padding,m[m.length]=t.left),g[i]={left:0,top:0,width:o,height:d},m[m.length-1]+=o+a.padding}),p.height+=b}else{var x=a.padding,y=t.columnWidths=[],k=a.padding,w=0,M=0,S=d+x;o.each(t.legendItems,function(t,n){var i=e(a,d)+d/2+l.measureText(t.text).width;M+S>p.height&&(k+=w+a.padding,y.push(w),w=0,M=0),w=Math.max(w,i),M+=S,g[n]={left:0,top:0,width:i,height:d}}),k+=w,y.push(w),p.width+=k}t.width=p.width,t.height=p.height},afterFit:l,isHorizontal:function(){return"top"===this.options.position||"bottom"===this.options.position},draw:function(){var t=this,n=t.options,a=n.labels,r=i.global,l=r.elements.line,s=t.width,u=t.lineWidths;if(n.display){var d,c=t.ctx,h=o.valueOrDefault,f=h(a.fontColor,r.defaultFontColor),g=h(a.fontSize,r.defaultFontSize),p=h(a.fontStyle,r.defaultFontStyle),v=h(a.fontFamily,r.defaultFontFamily),m=o.fontString(g,p,v);c.textAlign="left",c.textBaseline="middle",c.lineWidth=.5,c.strokeStyle=f,c.fillStyle=f,c.font=m;var b=e(a,g),x=t.legendHitBoxes,y=function(t,e,i){if(!(isNaN(b)||b<=0)){c.save(),c.fillStyle=h(i.fillStyle,r.defaultColor),c.lineCap=h(i.lineCap,l.borderCapStyle),c.lineDashOffset=h(i.lineDashOffset,l.borderDashOffset),c.lineJoin=h(i.lineJoin,l.borderJoinStyle),c.lineWidth=h(i.lineWidth,l.borderWidth),c.strokeStyle=h(i.strokeStyle,r.defaultColor);var a=0===h(i.lineWidth,l.borderWidth);if(c.setLineDash&&c.setLineDash(h(i.lineDash,l.borderDash)),n.labels&&n.labels.usePointStyle){var s=g*Math.SQRT2/2,u=s/Math.SQRT2,d=t+u,f=e+u;o.canvas.drawPoint(c,i.pointStyle,s,d,f)}else a||c.strokeRect(t,e,b,g),c.fillRect(t,e,b,g);c.restore()}},k=function(t,e,n,i){var a=g/2,o=b+a+t,r=e+a;c.fillText(n.text,o,r),n.hidden&&(c.beginPath(),c.lineWidth=2,c.moveTo(o,r),c.lineTo(o+i,r),c.stroke())},w=t.isHorizontal();d=w?{x:t.left+(s-u[0])/2,y:t.top+a.padding,line:0}:{x:t.left+a.padding,y:t.top+a.padding,line:0};var M=g+a.padding;o.each(t.legendItems,function(e,n){var i=c.measureText(e.text).width,o=b+g/2+i,r=d.x,l=d.y;w?r+o>=s&&(l=d.y+=M,d.line++,r=d.x=t.left+(s-u[d.line])/2):l+M>t.bottom&&(r=d.x=r+t.columnWidths[d.line]+a.padding,l=d.y=t.top+a.padding,d.line++),y(r,l,e),x[n].left=r,x[n].top=l,k(r,l,e,i),w?d.x+=o+a.padding:d.y+=M})}},handleEvent:function(t){var e=this,n=e.options,i="mouseup"===t.type?"click":t.type,a=!1;if("mousemove"===i){if(!n.onHover)return}else{if("click"!==i)return;if(!n.onClick)return}var o=t.x,r=t.y;if(o>=e.left&&o<=e.right&&r>=e.top&&r<=e.bottom)for(var l=e.legendHitBoxes,s=0;s<l.length;++s){var u=l[s];if(o>=u.left&&o<=u.left+u.width&&r>=u.top&&r<=u.top+u.height){if("click"===i){n.onClick.call(e,t.native,e.legendItems[s]),a=!0;break}if("mousemove"===i){n.onHover.call(e,t.native,e.legendItems[s]),a=!0;break}}}return a}}),{id:"legend",beforeInit:function(t){var e=t.options.legend;e&&n(t,e)},beforeUpdate:function(t){var e=t.options.legend,a=t.legend;e?(o.mergeIf(e,i.global.legend),a?(r.configure(t,a,e),a.options=e):n(t,e)):a&&(r.removeBox(t,a),delete t.legend)},afterEvent:function(t,e){var n=t.legend;n&&n.handleEvent(e)}}}},{25:25,26:26,45:45}],51:[function(t,e,n){"use strict";var i=t(25),a=t(26),o=t(45);i._set("global",{title:{display:!1,fontStyle:"bold",fullWidth:!0,lineHeight:1.2,padding:10,position:"top",text:"",weight:2e3}}),e.exports=function(t){function e(e,i){var a=new t.Title({ctx:e.ctx,options:i,chart:e});n.configure(e,a,i),n.addBox(e,a),e.titleBlock=a}var n=t.layoutService,r=o.noop;return t.Title=a.extend({initialize:function(t){var e=this;o.extend(e,t),e.legendHitBoxes=[]},beforeUpdate:r,update:function(t,e,n){var i=this;return i.beforeUpdate(),i.maxWidth=t,i.maxHeight=e,i.margins=n,i.beforeSetDimensions(),i.setDimensions(),i.afterSetDimensions(),i.beforeBuildLabels(),i.buildLabels(),i.afterBuildLabels(),i.beforeFit(),i.fit(),i.afterFit(),i.afterUpdate(),i.minSize},afterUpdate:r,beforeSetDimensions:r,setDimensions:function(){var t=this;t.isHorizontal()?(t.width=t.maxWidth,t.left=0,t.right=t.width):(t.height=t.maxHeight,t.top=0,t.bottom=t.height),t.paddingLeft=0,t.paddingTop=0,t.paddingRight=0,t.paddingBottom=0,t.minSize={width:0,height:0}},afterSetDimensions:r,beforeBuildLabels:r,buildLabels:r,afterBuildLabels:r,beforeFit:r,fit:function(){var t=this,e=o.valueOrDefault,n=t.options,a=n.display,r=e(n.fontSize,i.global.defaultFontSize),l=t.minSize,s=o.isArray(n.text)?n.text.length:1,u=o.options.toLineHeight(n.lineHeight,r),d=a?s*u+2*n.padding:0;t.isHorizontal()?(l.width=t.maxWidth,l.height=d):(l.width=d,l.height=t.maxHeight),t.width=l.width,t.height=l.height},afterFit:r,isHorizontal:function(){var t=this.options.position;return"top"===t||"bottom"===t},draw:function(){var t=this,e=t.ctx,n=o.valueOrDefault,a=t.options,r=i.global;if(a.display){var l,s,u,d=n(a.fontSize,r.defaultFontSize),c=n(a.fontStyle,r.defaultFontStyle),h=n(a.fontFamily,r.defaultFontFamily),f=o.fontString(d,c,h),g=o.options.toLineHeight(a.lineHeight,d),p=g/2+a.padding,v=0,m=t.top,b=t.left,x=t.bottom,y=t.right;e.fillStyle=n(a.fontColor,r.defaultFontColor),e.font=f,t.isHorizontal()?(s=b+(y-b)/2,u=m+p,l=y-b):(s="left"===a.position?b+p:y-p,u=m+(x-m)/2,l=x-m,v=Math.PI*("left"===a.position?-.5:.5)),e.save(),e.translate(s,u),e.rotate(v),e.textAlign="center",e.textBaseline="middle";var k=a.text;if(o.isArray(k))for(var w=0,M=0;M<k.length;++M)e.fillText(k[M],0,w,l),w+=g;else e.fillText(k,0,0,l);e.restore()}}}),{id:"title",beforeInit:function(t){var n=t.options.title;n&&e(t,n)},beforeUpdate:function(a){var r=a.options.title,l=a.titleBlock;r?(o.mergeIf(r,i.global.title),l?(n.configure(a,l,r),l.options=r):e(a,r)):l&&(t.layoutService.removeBox(a,l),delete a.titleBlock)}}}},{25:25,26:26,45:45}],52:[function(t,e,n){"use strict";e.exports=function(t){var e=t.Scale.extend({getLabels:function(){var t=this.chart.data;return this.options.labels||(this.isHorizontal()?t.xLabels:t.yLabels)||t.labels},determineDataLimits:function(){var t=this,e=t.getLabels();t.minIndex=0,t.maxIndex=e.length-1;var n;void 0!==t.options.ticks.min&&(n=e.indexOf(t.options.ticks.min),t.minIndex=-1!==n?n:t.minIndex),void 0!==t.options.ticks.max&&(n=e.indexOf(t.options.ticks.max),t.maxIndex=-1!==n?n:t.maxIndex),t.min=e[t.minIndex],t.max=e[t.maxIndex]},buildTicks:function(){var t=this,e=t.getLabels();t.ticks=0===t.minIndex&&t.maxIndex===e.length-1?e:e.slice(t.minIndex,t.maxIndex+1)},getLabelForIndex:function(t,e){var n=this,i=n.chart.data,a=n.isHorizontal();return i.yLabels&&!a?n.getRightValue(i.datasets[e].data[t]):n.ticks[t-n.minIndex]},getPixelForValue:function(t,e){var n,i=this,a=i.options.offset,o=Math.max(i.maxIndex+1-i.minIndex-(a?0:1),1);if(void 0!==t&&null!==t&&(n=i.isHorizontal()?t.x:t.y),void 0!==n||void 0!==t&&isNaN(e)){var r=i.getLabels();t=n||t;var l=r.indexOf(t);e=-1!==l?l:e}if(i.isHorizontal()){var s=i.width/o,u=s*(e-i.minIndex);return a&&(u+=s/2),i.left+Math.round(u)}var d=i.height/o,c=d*(e-i.minIndex);return a&&(c+=d/2),i.top+Math.round(c)},getPixelForTick:function(t){return this.getPixelForValue(this.ticks[t],t+this.minIndex,null)},getValueForPixel:function(t){var e=this,n=e.options.offset,i=Math.max(e._ticks.length-(n?0:1),1),a=e.isHorizontal(),o=(a?e.width:e.height)/i;return t-=a?e.left:e.top,n&&(t-=o/2),(t<=0?0:Math.round(t/o))+e.minIndex},getBasePixel:function(){return this.bottom}});t.scaleService.registerScaleType("category",e,{position:"bottom"})}},{}],53:[function(t,e,n){"use strict";var i=t(25),a=t(45),o=t(34);e.exports=function(t){var e={position:"left",ticks:{callback:o.formatters.linear}},n=t.LinearScaleBase.extend({determineDataLimits:function(){function t(t){return r?t.xAxisID===e.id:t.yAxisID===e.id}var e=this,n=e.options,i=e.chart,o=i.data.datasets,r=e.isHorizontal();e.min=null,e.max=null;var l=n.stacked;if(void 0===l&&a.each(o,function(e,n){if(!l){var a=i.getDatasetMeta(n);i.isDatasetVisible(n)&&t(a)&&void 0!==a.stack&&(l=!0)}}),n.stacked||l){var s={};a.each(o,function(o,r){var l=i.getDatasetMeta(r),u=[l.type,void 0===n.stacked&&void 0===l.stack?r:"",l.stack].join(".");void 0===s[u]&&(s[u]={positiveValues:[],negativeValues:[]});var d=s[u].positiveValues,c=s[u].negativeValues;i.isDatasetVisible(r)&&t(l)&&a.each(o.data,function(t,i){var a=+e.getRightValue(t);isNaN(a)||l.data[i].hidden||(d[i]=d[i]||0,c[i]=c[i]||0,n.relativePoints?d[i]=100:a<0?c[i]+=a:d[i]+=a)})}),a.each(s,function(t){var n=t.positiveValues.concat(t.negativeValues),i=a.min(n),o=a.max(n);e.min=null===e.min?i:Math.min(e.min,i),e.max=null===e.max?o:Math.max(e.max,o)})}else a.each(o,function(n,o){var r=i.getDatasetMeta(o);i.isDatasetVisible(o)&&t(r)&&a.each(n.data,function(t,n){var i=+e.getRightValue(t);isNaN(i)||r.data[n].hidden||(null===e.min?e.min=i:i<e.min&&(e.min=i),null===e.max?e.max=i:i>e.max&&(e.max=i))})});e.min=isFinite(e.min)&&!isNaN(e.min)?e.min:0,e.max=isFinite(e.max)&&!isNaN(e.max)?e.max:1,this.handleTickRangeOptions()},getTickLimit:function(){var t,e=this,n=e.options.ticks;if(e.isHorizontal())t=Math.min(n.maxTicksLimit?n.maxTicksLimit:11,Math.ceil(e.width/50));else{var o=a.valueOrDefault(n.fontSize,i.global.defaultFontSize);t=Math.min(n.maxTicksLimit?n.maxTicksLimit:11,Math.ceil(e.height/(2*o)))}return t},handleDirectionalChanges:function(){this.isHorizontal()||this.ticks.reverse()},getLabelForIndex:function(t,e){return+this.getRightValue(this.chart.data.datasets[e].data[t])},getPixelForValue:function(t){var e,n=this,i=n.start,a=+n.getRightValue(t),o=n.end-i;return n.isHorizontal()?(e=n.left+n.width/o*(a-i),Math.round(e)):(e=n.bottom-n.height/o*(a-i),Math.round(e))},getValueForPixel:function(t){var e=this,n=e.isHorizontal(),i=n?e.width:e.height,a=(n?t-e.left:e.bottom-t)/i;return e.start+(e.end-e.start)*a},getPixelForTick:function(t){return this.getPixelForValue(this.ticksAsNumbers[t])}});t.scaleService.registerScaleType("linear",n,e)}},{25:25,34:34,45:45}],54:[function(t,e,n){"use strict";var i=t(45),a=t(34);e.exports=function(t){var e=i.noop;t.LinearScaleBase=t.Scale.extend({getRightValue:function(e){return"string"==typeof e?+e:t.Scale.prototype.getRightValue.call(this,e)},handleTickRangeOptions:function(){var t=this,e=t.options.ticks;if(e.beginAtZero){var n=i.sign(t.min),a=i.sign(t.max);n<0&&a<0?t.max=0:n>0&&a>0&&(t.min=0)}var o=void 0!==e.min||void 0!==e.suggestedMin,r=void 0!==e.max||void 0!==e.suggestedMax;void 0!==e.min?t.min=e.min:void 0!==e.suggestedMin&&(null===t.min?t.min=e.suggestedMin:t.min=Math.min(t.min,e.suggestedMin)),void 0!==e.max?t.max=e.max:void 0!==e.suggestedMax&&(null===t.max?t.max=e.suggestedMax:t.max=Math.max(t.max,e.suggestedMax)),o!==r&&t.min>=t.max&&(o?t.max=t.min+1:t.min=t.max-1),t.min===t.max&&(t.max++,e.beginAtZero||t.min--)},getTickLimit:e,handleDirectionalChanges:e,buildTicks:function(){var t=this,e=t.options.ticks,n=t.getTickLimit(),o={maxTicks:n=Math.max(2,n),min:e.min,max:e.max,stepSize:i.valueOrDefault(e.fixedStepSize,e.stepSize)},r=t.ticks=a.generators.linear(o,t);t.handleDirectionalChanges(),t.max=i.max(r),t.min=i.min(r),e.reverse?(r.reverse(),t.start=t.max,t.end=t.min):(t.start=t.min,t.end=t.max)},convertTicksToLabels:function(){var e=this;e.ticksAsNumbers=e.ticks.slice(),e.zeroLineIndex=e.ticks.indexOf(0),t.Scale.prototype.convertTicksToLabels.call(e)}})}},{34:34,45:45}],55:[function(t,e,n){"use strict";var i=t(45),a=t(34);e.exports=function(t){var e={position:"left",ticks:{callback:a.formatters.logarithmic}},n=t.Scale.extend({determineDataLimits:function(){function t(t){return s?t.xAxisID===e.id:t.yAxisID===e.id}var e=this,n=e.options,a=n.ticks,o=e.chart,r=o.data.datasets,l=i.valueOrDefault,s=e.isHorizontal();e.min=null,e.max=null,e.minNotZero=null;var u=n.stacked;if(void 0===u&&i.each(r,function(e,n){if(!u){var i=o.getDatasetMeta(n);o.isDatasetVisible(n)&&t(i)&&void 0!==i.stack&&(u=!0)}}),n.stacked||u){var d={};i.each(r,function(a,r){var l=o.getDatasetMeta(r),s=[l.type,void 0===n.stacked&&void 0===l.stack?r:"",l.stack].join(".");o.isDatasetVisible(r)&&t(l)&&(void 0===d[s]&&(d[s]=[]),i.each(a.data,function(t,i){var a=d[s],o=+e.getRightValue(t);isNaN(o)||l.data[i].hidden||(a[i]=a[i]||0,n.relativePoints?a[i]=100:a[i]+=o)}))}),i.each(d,function(t){var n=i.min(t),a=i.max(t);e.min=null===e.min?n:Math.min(e.min,n),e.max=null===e.max?a:Math.max(e.max,a)})}else i.each(r,function(n,a){var r=o.getDatasetMeta(a);o.isDatasetVisible(a)&&t(r)&&i.each(n.data,function(t,n){var i=+e.getRightValue(t);isNaN(i)||r.data[n].hidden||(null===e.min?e.min=i:i<e.min&&(e.min=i),null===e.max?e.max=i:i>e.max&&(e.max=i),0!==i&&(null===e.minNotZero||i<e.minNotZero)&&(e.minNotZero=i))})});e.min=l(a.min,e.min),e.max=l(a.max,e.max),e.min===e.max&&(0!==e.min&&null!==e.min?(e.min=Math.pow(10,Math.floor(i.log10(e.min))-1),e.max=Math.pow(10,Math.floor(i.log10(e.max))+1)):(e.min=1,e.max=10))},buildTicks:function(){var t=this,e=t.options.ticks,n={min:e.min,max:e.max},o=t.ticks=a.generators.logarithmic(n,t);t.isHorizontal()||o.reverse(),t.max=i.max(o),t.min=i.min(o),e.reverse?(o.reverse(),t.start=t.max,t.end=t.min):(t.start=t.min,t.end=t.max)},convertTicksToLabels:function(){this.tickValues=this.ticks.slice(),t.Scale.prototype.convertTicksToLabels.call(this)},getLabelForIndex:function(t,e){return+this.getRightValue(this.chart.data.datasets[e].data[t])},getPixelForTick:function(t){return this.getPixelForValue(this.tickValues[t])},getPixelForValue:function(t){var e,n,a,o=this,r=o.start,l=+o.getRightValue(t),s=o.options.ticks;return o.isHorizontal()?(a=i.log10(o.end)-i.log10(r),0===l?n=o.left:(e=o.width,n=o.left+e/a*(i.log10(l)-i.log10(r)))):(e=o.height,0!==r||s.reverse?0===o.end&&s.reverse?(a=i.log10(o.start)-i.log10(o.minNotZero),n=l===o.end?o.top:l===o.minNotZero?o.top+.02*e:o.top+.02*e+.98*e/a*(i.log10(l)-i.log10(o.minNotZero))):0===l?n=s.reverse?o.top:o.bottom:(a=i.log10(o.end)-i.log10(r),e=o.height,n=o.bottom-e/a*(i.log10(l)-i.log10(r))):(a=i.log10(o.end)-i.log10(o.minNotZero),n=l===r?o.bottom:l===o.minNotZero?o.bottom-.02*e:o.bottom-.02*e-.98*e/a*(i.log10(l)-i.log10(o.minNotZero)))),n},getValueForPixel:function(t){var e,n,a=this,o=i.log10(a.end)-i.log10(a.start);return a.isHorizontal()?(n=a.width,e=a.start*Math.pow(10,(t-a.left)*o/n)):(n=a.height,e=Math.pow(10,(a.bottom-t)*o/n)/a.start),e}});t.scaleService.registerScaleType("logarithmic",n,e)}},{34:34,45:45}],56:[function(t,e,n){"use strict";var i=t(25),a=t(45),o=t(34);e.exports=function(t){function e(t){var e=t.options;return e.angleLines.display||e.pointLabels.display?t.chart.data.labels.length:0}function n(t){var e=t.options.pointLabels,n=a.valueOrDefault(e.fontSize,v.defaultFontSize),i=a.valueOrDefault(e.fontStyle,v.defaultFontStyle),o=a.valueOrDefault(e.fontFamily,v.defaultFontFamily);return{size:n,style:i,family:o,font:a.fontString(n,i,o)}}function r(t,e,n){return a.isArray(n)?{w:a.longestText(t,t.font,n),h:n.length*e+1.5*(n.length-1)*e}:{w:t.measureText(n).width,h:e}}function l(t,e,n,i,a){return t===i||t===a?{start:e-n/2,end:e+n/2}:t<i||t>a?{start:e-n-5,end:e}:{start:e,end:e+n+5}}function s(t){var i,o,s,u=n(t),d=Math.min(t.height/2,t.width/2),c={r:t.width,l:0,t:t.height,b:0},h={};t.ctx.font=u.font,t._pointLabelSizes=[];var f=e(t);for(i=0;i<f;i++){s=t.getPointPosition(i,d),o=r(t.ctx,u.size,t.pointLabels[i]||""),t._pointLabelSizes[i]=o;var g=t.getIndexAngle(i),p=a.toDegrees(g)%360,v=l(p,s.x,o.w,0,180),m=l(p,s.y,o.h,90,270);v.start<c.l&&(c.l=v.start,h.l=g),v.end>c.r&&(c.r=v.end,h.r=g),m.start<c.t&&(c.t=m.start,h.t=g),m.end>c.b&&(c.b=m.end,h.b=g)}t.setReductions(d,c,h)}function u(t){var e=Math.min(t.height/2,t.width/2);t.drawingArea=Math.round(e),t.setCenterPoint(0,0,0,0)}function d(t){return 0===t||180===t?"center":t<180?"left":"right"}function c(t,e,n,i){if(a.isArray(e))for(var o=n.y,r=1.5*i,l=0;l<e.length;++l)t.fillText(e[l],n.x,o),o+=r;else t.fillText(e,n.x,n.y)}function h(t,e,n){90===t||270===t?n.y-=e.h/2:(t>270||t<90)&&(n.y-=e.h)}function f(t){var i=t.ctx,o=a.valueOrDefault,r=t.options,l=r.angleLines,s=r.pointLabels;i.lineWidth=l.lineWidth,i.strokeStyle=l.color;var u=t.getDistanceFromCenterForValue(r.ticks.reverse?t.min:t.max),f=n(t);i.textBaseline="top";for(var g=e(t)-1;g>=0;g--){if(l.display){var p=t.getPointPosition(g,u);i.beginPath(),i.moveTo(t.xCenter,t.yCenter),i.lineTo(p.x,p.y),i.stroke(),i.closePath()}if(s.display){var m=t.getPointPosition(g,u+5),b=o(s.fontColor,v.defaultFontColor);i.font=f.font,i.fillStyle=b;var x=t.getIndexAngle(g),y=a.toDegrees(x);i.textAlign=d(y),h(y,t._pointLabelSizes[g],m),c(i,t.pointLabels[g]||"",m,f.size)}}}function g(t,n,i,o){var r=t.ctx;if(r.strokeStyle=a.valueAtIndexOrDefault(n.color,o-1),r.lineWidth=a.valueAtIndexOrDefault(n.lineWidth,o-1),t.options.gridLines.circular)r.beginPath(),r.arc(t.xCenter,t.yCenter,i,0,2*Math.PI),r.closePath(),r.stroke();else{var l=e(t);if(0===l)return;r.beginPath();var s=t.getPointPosition(0,i);r.moveTo(s.x,s.y);for(var u=1;u<l;u++)s=t.getPointPosition(u,i),r.lineTo(s.x,s.y);r.closePath(),r.stroke()}}function p(t){return a.isNumber(t)?t:0}var v=i.global,m={display:!0,animate:!0,position:"chartArea",angleLines:{display:!0,color:"rgba(0, 0, 0, 0.1)",lineWidth:1},gridLines:{circular:!1},ticks:{showLabelBackdrop:!0,backdropColor:"rgba(255,255,255,0.75)",backdropPaddingY:2,backdropPaddingX:2,callback:o.formatters.linear},pointLabels:{display:!0,fontSize:10,callback:function(t){return t}}},b=t.LinearScaleBase.extend({setDimensions:function(){var t=this,e=t.options,n=e.ticks;t.width=t.maxWidth,t.height=t.maxHeight,t.xCenter=Math.round(t.width/2),t.yCenter=Math.round(t.height/2);var i=a.min([t.height,t.width]),o=a.valueOrDefault(n.fontSize,v.defaultFontSize);t.drawingArea=e.display?i/2-(o/2+n.backdropPaddingY):i/2},determineDataLimits:function(){var t=this,e=t.chart,n=Number.POSITIVE_INFINITY,i=Number.NEGATIVE_INFINITY;a.each(e.data.datasets,function(o,r){if(e.isDatasetVisible(r)){var l=e.getDatasetMeta(r);a.each(o.data,function(e,a){var o=+t.getRightValue(e);isNaN(o)||l.data[a].hidden||(n=Math.min(o,n),i=Math.max(o,i))})}}),t.min=n===Number.POSITIVE_INFINITY?0:n,t.max=i===Number.NEGATIVE_INFINITY?0:i,t.handleTickRangeOptions()},getTickLimit:function(){var t=this.options.ticks,e=a.valueOrDefault(t.fontSize,v.defaultFontSize);return Math.min(t.maxTicksLimit?t.maxTicksLimit:11,Math.ceil(this.drawingArea/(1.5*e)))},convertTicksToLabels:function(){var e=this;t.LinearScaleBase.prototype.convertTicksToLabels.call(e),e.pointLabels=e.chart.data.labels.map(e.options.pointLabels.callback,e)},getLabelForIndex:function(t,e){return+this.getRightValue(this.chart.data.datasets[e].data[t])},fit:function(){this.options.pointLabels.display?s(this):u(this)},setReductions:function(t,e,n){var i=this,a=e.l/Math.sin(n.l),o=Math.max(e.r-i.width,0)/Math.sin(n.r),r=-e.t/Math.cos(n.t),l=-Math.max(e.b-i.height,0)/Math.cos(n.b);a=p(a),o=p(o),r=p(r),l=p(l),i.drawingArea=Math.min(Math.round(t-(a+o)/2),Math.round(t-(r+l)/2)),i.setCenterPoint(a,o,r,l)},setCenterPoint:function(t,e,n,i){var a=this,o=a.width-e-a.drawingArea,r=t+a.drawingArea,l=n+a.drawingArea,s=a.height-i-a.drawingArea;a.xCenter=Math.round((r+o)/2+a.left),a.yCenter=Math.round((l+s)/2+a.top)},getIndexAngle:function(t){return t*(2*Math.PI/e(this))+(this.chart.options&&this.chart.options.startAngle?this.chart.options.startAngle:0)*Math.PI*2/360},getDistanceFromCenterForValue:function(t){var e=this;if(null===t)return 0;var n=e.drawingArea/(e.max-e.min);return e.options.ticks.reverse?(e.max-t)*n:(t-e.min)*n},getPointPosition:function(t,e){var n=this,i=n.getIndexAngle(t)-Math.PI/2;return{x:Math.round(Math.cos(i)*e)+n.xCenter,y:Math.round(Math.sin(i)*e)+n.yCenter}},getPointPositionForValue:function(t,e){return this.getPointPosition(t,this.getDistanceFromCenterForValue(e))},getBasePosition:function(){var t=this,e=t.min,n=t.max;return t.getPointPositionForValue(0,t.beginAtZero?0:e<0&&n<0?n:e>0&&n>0?e:0)},draw:function(){var t=this,e=t.options,n=e.gridLines,i=e.ticks,o=a.valueOrDefault;if(e.display){var r=t.ctx,l=this.getIndexAngle(0),s=o(i.fontSize,v.defaultFontSize),u=o(i.fontStyle,v.defaultFontStyle),d=o(i.fontFamily,v.defaultFontFamily),c=a.fontString(s,u,d);a.each(t.ticks,function(e,a){if(a>0||i.reverse){var u=t.getDistanceFromCenterForValue(t.ticksAsNumbers[a]);if(n.display&&0!==a&&g(t,n,u,a),i.display){var d=o(i.fontColor,v.defaultFontColor);if(r.font=c,r.save(),r.translate(t.xCenter,t.yCenter),r.rotate(l),i.showLabelBackdrop){var h=r.measureText(e).width;r.fillStyle=i.backdropColor,r.fillRect(-h/2-i.backdropPaddingX,-u-s/2-i.backdropPaddingY,h+2*i.backdropPaddingX,s+2*i.backdropPaddingY)}r.textAlign="center",r.textBaseline="middle",r.fillStyle=d,r.fillText(e,0,-u),r.restore()}}}),(e.angleLines.display||e.pointLabels.display)&&f(t)}}});t.scaleService.registerScaleType("radialLinear",b,m)}},{25:25,34:34,45:45}],57:[function(t,e,n){"use strict";function i(t,e){return t-e}function a(t){var e,n,i,a={},o=[];for(e=0,n=t.length;e<n;++e)a[i=t[e]]||(a[i]=!0,o.push(i));return o}function o(t,e,n,i){if("linear"===i||!t.length)return[{time:e,pos:0},{time:n,pos:1}];var a,o,r,l,s,u=[],d=[e];for(a=0,o=t.length;a<o;++a)(l=t[a])>e&&l<n&&d.push(l);for(d.push(n),a=0,o=d.length;a<o;++a)s=d[a+1],r=d[a-1],l=d[a],void 0!==r&&void 0!==s&&Math.round((s+r)/2)===l||u.push({time:l,pos:a/(o-1)});return u}function r(t,e,n){for(var i,a,o,r=0,l=t.length-1;r>=0&&r<=l;){if(i=r+l>>1,a=t[i-1]||null,o=t[i],!a)return{lo:null,hi:o};if(o[e]<n)r=i+1;else{if(!(a[e]>n))return{lo:a,hi:o};l=i-1}}return{lo:o,hi:null}}function l(t,e,n,i){var a=r(t,e,n),o=a.lo?a.hi?a.lo:t[t.length-2]:t[0],l=a.lo?a.hi?a.hi:t[t.length-1]:t[1],s=l[e]-o[e],u=s?(n-o[e])/s:0,d=(l[i]-o[i])*u;return o[i]+d}function s(t,e){var n=e.parser,i=e.parser||e.format;return"function"==typeof n?n(t):"string"==typeof t&&"string"==typeof i?m(t,i):(t instanceof m||(t=m(t)),t.isValid()?t:"function"==typeof i?i(t):t)}function u(t,e){if(x.isNullOrUndef(t))return null;var n=e.options.time,i=s(e.getRightValue(t),n);return i.isValid()?(n.round&&i.startOf(n.round),i.valueOf()):null}function d(t,e,n,i){var a,o,r,l=e-t,s=w[n],u=s.size,d=s.steps;if(!d)return Math.ceil(l/((i||1)*u));for(a=0,o=d.length;a<o&&(r=d[a],!(Math.ceil(l/(u*r))<=i));++a);return r}function c(t,e,n,i){var a,o,r,l=M.length;for(a=M.indexOf(t);a<l-1;++a)if(o=w[M[a]],r=o.steps?o.steps[o.steps.length-1]:k,o.common&&Math.ceil((n-e)/(r*o.size))<=i)return M[a];return M[l-1]}function h(t,e,n,i){var a,o,r=m.duration(m(i).diff(m(n)));for(a=M.length-1;a>=M.indexOf(e);a--)if(o=M[a],w[o].common&&r.as(o)>=t.length)return o;return M[e?M.indexOf(e):0]}function f(t){for(var e=M.indexOf(t)+1,n=M.length;e<n;++e)if(w[M[e]].common)return M[e]}function g(t,e,n,i){var a,o=i.time,r=o.unit||c(o.minUnit,t,e,n),l=f(r),s=x.valueOrDefault(o.stepSize,o.unitStepSize),u="week"===r&&o.isoWeekday,h=i.ticks.major.enabled,g=w[r],p=m(t),v=m(e),b=[];for(s||(s=d(t,e,r,n)),u&&(p=p.isoWeekday(u),v=v.isoWeekday(u)),p=p.startOf(u?"day":r),(v=v.startOf(u?"day":r))<e&&v.add(1,r),a=m(p),h&&l&&!u&&!o.round&&(a.startOf(l),a.add(~~((p-a)/(g.size*s))*s,r));a<v;a.add(s,r))b.push(+a);return b.push(+a),b}function p(t,e,n,i,a){var o,r,s=0,u=0;return a.offset&&e.length&&(a.time.min||(o=e.length>1?e[1]:i,r=e[0],s=(l(t,"time",o,"pos")-l(t,"time",r,"pos"))/2),a.time.max||(o=e[e.length-1],r=e.length>1?e[e.length-2]:n,u=(l(t,"time",o,"pos")-l(t,"time",r,"pos"))/2)),{left:s,right:u}}function v(t,e){var n,i,a,o,r=[];for(n=0,i=t.length;n<i;++n)a=t[n],o=!!e&&a===+m(a).startOf(e),r.push({value:a,major:o});return r}var m=t(1);m="function"==typeof m?m:window.moment;var b=t(25),x=t(45),y=Number.MIN_SAFE_INTEGER||-9007199254740991,k=Number.MAX_SAFE_INTEGER||9007199254740991,w={millisecond:{common:!0,size:1,steps:[1,2,5,10,20,50,100,250,500]},second:{common:!0,size:1e3,steps:[1,2,5,10,30]},minute:{common:!0,size:6e4,steps:[1,2,5,10,30]},hour:{common:!0,size:36e5,steps:[1,2,3,6,12]},day:{common:!0,size:864e5,steps:[1,2,5]},week:{common:!1,size:6048e5,steps:[1,2,3,4]},month:{common:!0,size:2628e6,steps:[1,2,3]},quarter:{common:!1,size:7884e6,steps:[1,2,3,4]},year:{common:!0,size:3154e7}},M=Object.keys(w);e.exports=function(t){var e=t.Scale.extend({initialize:function(){if(!m)throw new Error("Chart.js - Moment.js could not be found! You must include it before Chart.js to use the time scale. Download at https://momentjs.com");this.mergeTicksOptions(),t.Scale.prototype.initialize.call(this)},update:function(){var e=this,n=e.options;return n.time&&n.time.format&&console.warn("options.time.format is deprecated and replaced by options.time.parser."),t.Scale.prototype.update.apply(e,arguments)},getRightValue:function(e){return e&&void 0!==e.t&&(e=e.t),t.Scale.prototype.getRightValue.call(this,e)},determineDataLimits:function(){var t,e,n,o,r,l,s=this,d=s.chart,c=s.options.time,h=k,f=y,g=[],p=[],v=[];for(t=0,n=d.data.labels.length;t<n;++t)v.push(u(d.data.labels[t],s));for(t=0,n=(d.data.datasets||[]).length;t<n;++t)if(d.isDatasetVisible(t))if(r=d.data.datasets[t].data,x.isObject(r[0]))for(p[t]=[],e=0,o=r.length;e<o;++e)l=u(r[e],s),g.push(l),p[t][e]=l;else g.push.apply(g,v),p[t]=v.slice(0);else p[t]=[];v.length&&(v=a(v).sort(i),h=Math.min(h,v[0]),f=Math.max(f,v[v.length-1])),g.length&&(g=a(g).sort(i),h=Math.min(h,g[0]),f=Math.max(f,g[g.length-1])),h=u(c.min,s)||h,f=u(c.max,s)||f,h=h===k?+m().startOf("day"):h,f=f===y?+m().endOf("day")+1:f,s.min=Math.min(h,f),s.max=Math.max(h+1,f),s._horizontal=s.isHorizontal(),s._table=[],s._timestamps={data:g,datasets:p,labels:v}},buildTicks:function(){var t,e,n,i=this,a=i.min,r=i.max,l=i.options,s=l.time,d=[],c=[];switch(l.ticks.source){case"data":d=i._timestamps.data;break;case"labels":d=i._timestamps.labels;break;case"auto":default:d=g(a,r,i.getLabelCapacity(a),l)}for("ticks"===l.bounds&&d.length&&(a=d[0],r=d[d.length-1]),a=u(s.min,i)||a,r=u(s.max,i)||r,t=0,e=d.length;t<e;++t)(n=d[t])>=a&&n<=r&&c.push(n);return i.min=a,i.max=r,i._unit=s.unit||h(c,s.minUnit,i.min,i.max),i._majorUnit=f(i._unit),i._table=o(i._timestamps.data,a,r,l.distribution),i._offsets=p(i._table,c,a,r,l),v(c,i._majorUnit)},getLabelForIndex:function(t,e){var n=this,i=n.chart.data,a=n.options.time,o=i.labels&&t<i.labels.length?i.labels[t]:"",r=i.datasets[e].data[t];return x.isObject(r)&&(o=n.getRightValue(r)),a.tooltipFormat&&(o=s(o,a).format(a.tooltipFormat)),o},tickFormatFunction:function(t,e,n,i){var a=this,o=a.options,r=t.valueOf(),l=o.time.displayFormats,s=l[a._unit],u=a._majorUnit,d=l[u],c=t.clone().startOf(u).valueOf(),h=o.ticks.major,f=h.enabled&&u&&d&&r===c,g=t.format(i||(f?d:s)),p=f?h:o.ticks.minor,v=x.valueOrDefault(p.callback,p.userCallback);return v?v(g,e,n):g},convertTicksToLabels:function(t){var e,n,i=[];for(e=0,n=t.length;e<n;++e)i.push(this.tickFormatFunction(m(t[e].value),e,t));return i},getPixelForOffset:function(t){var e=this,n=e._horizontal?e.width:e.height,i=e._horizontal?e.left:e.top,a=l(e._table,"time",t,"pos");return i+n*(e._offsets.left+a)/(e._offsets.left+1+e._offsets.right)},getPixelForValue:function(t,e,n){var i=this,a=null;if(void 0!==e&&void 0!==n&&(a=i._timestamps.datasets[n][e]),null===a&&(a=u(t,i)),null!==a)return i.getPixelForOffset(a)},getPixelForTick:function(t){var e=this.getTicks();return t>=0&&t<e.length?this.getPixelForOffset(e[t].value):null},getValueForPixel:function(t){var e=this,n=e._horizontal?e.width:e.height,i=e._horizontal?e.left:e.top,a=(n?(t-i)/n:0)*(e._offsets.left+1+e._offsets.left)-e._offsets.right,o=l(e._table,"pos",a,"time");return m(o)},getLabelWidth:function(t){var e=this,n=e.options.ticks,i=e.ctx.measureText(t).width,a=x.toRadians(n.maxRotation),o=Math.cos(a),r=Math.sin(a);return i*o+x.valueOrDefault(n.fontSize,b.global.defaultFontSize)*r},getLabelCapacity:function(t){var e=this,n=e.options.time.displayFormats.millisecond,i=e.tickFormatFunction(m(t),0,[],n),a=e.getLabelWidth(i),o=e.isHorizontal()?e.width:e.height;return Math.floor(o/a)}});t.scaleService.registerScaleType("time",e,{position:"bottom",distribution:"linear",bounds:"data",time:{parser:!1,format:!1,unit:!1,round:!1,displayFormat:!1,isoWeekday:!1,minUnit:"millisecond",displayFormats:{millisecond:"h:mm:ss.SSS a",second:"h:mm:ss a",minute:"h:mm a",hour:"hA",day:"MMM D",week:"ll",month:"MMM YYYY",quarter:"[Q]Q - YYYY",year:"YYYY"}},ticks:{autoSkip:!1,source:"auto",major:{enabled:!1}}})}},{1:1,25:25,45:45}]},{},[7])(7)});
|
20 |
|
21 |
|
22 |
-
/* ================== admin/assets/js/src/plugins/jquery.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
23 |
|
24 |
|
25 |
/*!
|
26 |
-
*
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
33 |
|
34 |
-
var VectorCanvas=function(a,b,c){if(this.mode=window.SVGAngle?"svg":"vml",this.params=c,"svg"===this.mode)this.createSvgNode=function(a){return document.createElementNS(this.svgns,a)};else{try{document.namespaces.rvml||document.namespaces.add("rvml","urn:schemas-microsoft-com:vml"),this.createVmlNode=function(a){return document.createElement("<rvml:"+a+' class="rvml">')}}catch(d){this.createVmlNode=function(a){return document.createElement("<"+a+' xmlns="urn:schemas-microsoft.com:vml" class="rvml">')}}document.createStyleSheet().addRule(".rvml","behavior:url(#default#VML)")}"svg"===this.mode?this.canvas=this.createSvgNode("svg"):(this.canvas=this.createVmlNode("group"),this.canvas.style.position="absolute"),this.setSize(a,b)};VectorCanvas.prototype={svgns:"http://www.w3.org/2000/svg",mode:"svg",width:0,height:0,canvas:null};var ColorScale=function(a,b,c,d){a&&this.setColors(a),b&&this.setNormalizeFunction(b),c&&this.setMin(c),c&&this.setMax(d)};ColorScale.prototype={colors:[]};var JQVMap=function(a){a=a||{};var b,c=this,d=JQVMap.maps[a.map];if(!d)throw new Error('Invalid "'+a.map+'" map parameter. Please make sure you have loaded this map file in your HTML.');this.selectedRegions=[],this.multiSelectRegion=a.multiSelectRegion,this.container=a.container,this.defaultWidth=d.width,this.defaultHeight=d.height,this.color=a.color,this.selectedColor=a.selectedColor,this.hoverColor=a.hoverColor,this.hoverColors=a.hoverColors,this.hoverOpacity=a.hoverOpacity,this.setBackgroundColor(a.backgroundColor),this.width=a.container.width(),this.height=a.container.height(),this.resize(),jQuery(window).resize(function(){var d=a.container.width(),e=a.container.height();if(d&&e){c.width=d,c.height=e,c.resize(),c.canvas.setSize(c.width,c.height),c.applyTransform();var f=jQuery.Event("resize.jqvmap");jQuery(a.container).trigger(f,[d,e]),b&&(jQuery(".jqvmap-pin").remove(),c.pinHandlers=!1,c.placePins(b.pins,b.mode))}}),this.canvas=new VectorCanvas(this.width,this.height,a),a.container.append(this.canvas.canvas),this.makeDraggable(),this.rootGroup=this.canvas.createGroup(!0),this.index=JQVMap.mapIndex,this.label=jQuery("<div/>").addClass("jqvmap-label").appendTo(jQuery("body")).hide(),a.enableZoom&&(jQuery("<div/>").addClass("jqvmap-zoomin").text("+").appendTo(a.container),jQuery("<div/>").addClass("jqvmap-zoomout").html("−").appendTo(a.container)),c.countries=[];for(var e in d.paths){var f=this.canvas.createPath({path:d.paths[e].path});f.setFill(this.color),f.id=c.getCountryId(e),c.countries[e]=f,"svg"===this.canvas.mode?f.setAttribute("class","jqvmap-region"):jQuery(f).addClass("jqvmap-region"),jQuery(this.rootGroup).append(f)}if(jQuery(a.container).delegate("svg"===this.canvas.mode?"path":"shape","mouseover mouseout",function(b){var e=b.target,f=b.target.id.split("_").pop(),g=jQuery.Event("labelShow.jqvmap"),h=jQuery.Event("regionMouseOver.jqvmap");f=f.toLowerCase(),"mouseover"===b.type?(jQuery(a.container).trigger(h,[f,d.paths[f].name]),h.isDefaultPrevented()||c.highlight(f,e),a.showTooltip&&(c.label.text(d.paths[f].name),jQuery(a.container).trigger(g,[c.label,f]),g.isDefaultPrevented()||(c.label.show(),c.labelWidth=c.label.width(),c.labelHeight=c.label.height()))):(c.unhighlight(f,e),c.label.hide(),jQuery(a.container).trigger("regionMouseOut.jqvmap",[f,d.paths[f].name]))}),jQuery(a.container).delegate("svg"===this.canvas.mode?"path":"shape","click",function(b){var e=b.target,f=b.target.id.split("_").pop(),g=jQuery.Event("regionClick.jqvmap");if(f=f.toLowerCase(),jQuery(a.container).trigger(g,[f,d.paths[f].name]),!a.multiSelectRegion&&!g.isDefaultPrevented())for(var h in d.paths)c.countries[h].currentFillColor=c.countries[h].getOriginalFill(),c.countries[h].setFill(c.countries[h].getOriginalFill());g.isDefaultPrevented()||(c.isSelected(f)?c.deselect(f,e):c.select(f,e))}),a.showTooltip&&a.container.mousemove(function(a){if(c.label.is(":visible")){var b=a.pageX-15-c.labelWidth,d=a.pageY-15-c.labelHeight;0>b&&(b=a.pageX+15),0>d&&(d=a.pageY+15),c.label.css({left:b,top:d})}}),this.setColors(a.colors),this.canvas.canvas.appendChild(this.rootGroup),this.applyTransform(),this.colorScale=new ColorScale(a.scaleColors,a.normalizeFunction,a.valueMin,a.valueMax),a.values&&(this.values=a.values,this.setValues(a.values)),a.selectedRegions)if(a.selectedRegions instanceof Array)for(var g in a.selectedRegions)this.select(a.selectedRegions[g].toLowerCase());else this.select(a.selectedRegions.toLowerCase());if(this.bindZoomButtons(),a.pins&&(b={pins:a.pins,mode:a.pinMode},this.pinHandlers=!1,this.placePins(a.pins,a.pinMode)),a.showLabels){this.pinHandlers=!1;var h={};for(e in c.countries)"function"!=typeof c.countries[e]&&(a.pins&&a.pins[e]||(h[e]=e.toUpperCase()));b={pins:h,mode:"content"},this.placePins(h,"content")}JQVMap.mapIndex++};JQVMap.prototype={transX:0,transY:0,scale:1,baseTransX:0,baseTransY:0,baseScale:1,width:0,height:0,countries:{},countriesColors:{},countriesData:{},zoomStep:1.4,zoomMaxStep:4,zoomCurStep:1},JQVMap.xlink="http://www.w3.org/1999/xlink",JQVMap.mapIndex=1,JQVMap.maps={},function(){var a={colors:1,values:1,backgroundColor:1,scaleColors:1,normalizeFunction:1,enableZoom:1,showTooltip:1,borderColor:1,borderWidth:1,borderOpacity:1,selectedRegions:1,multiSelectRegion:1},b={onLabelShow:"labelShow",onLoad:"load",onRegionOver:"regionMouseOver",onRegionOut:"regionMouseOut",onRegionClick:"regionClick",onRegionSelect:"regionSelect",onRegionDeselect:"regionDeselect",onResize:"resize"};jQuery.fn.vectorMap=function(c){var d={map:"world_en",backgroundColor:"#a5bfdd",color:"#f4f3f0",hoverColor:"#c9dfaf",hoverColors:{},selectedColor:"#c9dfaf",scaleColors:["#b6d6ff","#005ace"],normalizeFunction:"linear",enableZoom:!0,showTooltip:!0,borderColor:"#818181",borderWidth:1,borderOpacity:.25,selectedRegions:null,multiSelectRegion:!1},e=this.data("mapObject");if("addMap"===c)JQVMap.maps[arguments[1]]=arguments[2];else{if("set"!==c||!a[arguments[1]]){if("string"==typeof c&&"function"==typeof e[c])return e[c].apply(e,Array.prototype.slice.call(arguments,1));jQuery.extend(d,c),d.container=this,this.css({position:"relative",overflow:"hidden"}),e=new JQVMap(d),this.data("mapObject",e),this.unbind(".jqvmap");for(var f in b)d[f]&&this.bind(b[f]+".jqvmap",d[f]);var g=jQuery.Event("load.jqvmap");return jQuery(d.container).trigger(g,e),e}e["set"+arguments[1].charAt(0).toUpperCase()+arguments[1].substr(1)].apply(e,Array.prototype.slice.call(arguments,2))}}}(jQuery),ColorScale.arrayToRgb=function(a){for(var b,c="#",d=0;d<a.length;d++)b=a[d].toString(16),c+=1===b.length?"0"+b:b;return c},ColorScale.prototype.getColor=function(a){"function"==typeof this.normalize&&(a=this.normalize(a));for(var b,c=[],d=0,e=0;e<this.colors.length-1;e++)b=this.vectorLength(this.vectorSubtract(this.colors[e+1],this.colors[e])),c.push(b),d+=b;var f=(this.maxValue-this.minValue)/d;for(e=0;e<c.length;e++)c[e]*=f;for(e=0,a-=this.minValue;a-c[e]>=0;)a-=c[e],e++;var g;for(g=e===this.colors.length-1?this.vectorToNum(this.colors[e]).toString(16):this.vectorToNum(this.vectorAdd(this.colors[e],this.vectorMult(this.vectorSubtract(this.colors[e+1],this.colors[e]),a/c[e]))).toString(16);g.length<6;)g="0"+g;return"#"+g},ColorScale.rgbToArray=function(a){return a=a.substr(1),[parseInt(a.substr(0,2),16),parseInt(a.substr(2,2),16),parseInt(a.substr(4,2),16)]},ColorScale.prototype.setColors=function(a){for(var b=0;b<a.length;b++)a[b]=ColorScale.rgbToArray(a[b]);this.colors=a},ColorScale.prototype.setMax=function(a){this.clearMaxValue=a,"function"==typeof this.normalize?this.maxValue=this.normalize(a):this.maxValue=a},ColorScale.prototype.setMin=function(a){this.clearMinValue=a,"function"==typeof this.normalize?this.minValue=this.normalize(a):this.minValue=a},ColorScale.prototype.setNormalizeFunction=function(a){"polynomial"===a?this.normalize=function(a){return Math.pow(a,.2)}:"linear"===a?delete this.normalize:this.normalize=a,this.setMin(this.clearMinValue),this.setMax(this.clearMaxValue)},ColorScale.prototype.vectorAdd=function(a,b){for(var c=[],d=0;d<a.length;d++)c[d]=a[d]+b[d];return c},ColorScale.prototype.vectorLength=function(a){for(var b=0,c=0;c<a.length;c++)b+=a[c]*a[c];return Math.sqrt(b)},ColorScale.prototype.vectorMult=function(a,b){for(var c=[],d=0;d<a.length;d++)c[d]=a[d]*b;return c},ColorScale.prototype.vectorSubtract=function(a,b){for(var c=[],d=0;d<a.length;d++)c[d]=a[d]-b[d];return c},ColorScale.prototype.vectorToNum=function(a){for(var b=0,c=0;c<a.length;c++)b+=Math.round(a[c])*Math.pow(256,a.length-c-1);return b},JQVMap.prototype.applyTransform=function(){var a,b,c,d;this.defaultWidth*this.scale<=this.width?(a=(this.width-this.defaultWidth*this.scale)/(2*this.scale),c=(this.width-this.defaultWidth*this.scale)/(2*this.scale)):(a=0,c=(this.width-this.defaultWidth*this.scale)/this.scale),this.defaultHeight*this.scale<=this.height?(b=(this.height-this.defaultHeight*this.scale)/(2*this.scale),d=(this.height-this.defaultHeight*this.scale)/(2*this.scale)):(b=0,d=(this.height-this.defaultHeight*this.scale)/this.scale),this.transY>b?this.transY=b:this.transY<d&&(this.transY=d),this.transX>a?this.transX=a:this.transX<c&&(this.transX=c),this.canvas.applyTransformParams(this.scale,this.transX,this.transY)},JQVMap.prototype.bindZoomButtons=function(){var a=this;this.container.find(".jqvmap-zoomin").click(function(){a.zoomIn()}),this.container.find(".jqvmap-zoomout").click(function(){a.zoomOut()})},JQVMap.prototype.deselect=function(a,b){if(a=a.toLowerCase(),b=b||jQuery("#"+this.getCountryId(a))[0],this.isSelected(a))this.selectedRegions.splice(this.selectIndex(a),1),jQuery(this.container).trigger("regionDeselect.jqvmap",[a]),b.currentFillColor=b.getOriginalFill(),b.setFill(b.getOriginalFill());else for(var c in this.countries)this.selectedRegions.splice(this.selectedRegions.indexOf(c),1),this.countries[c].currentFillColor=this.color,this.countries[c].setFill(this.color)},JQVMap.prototype.getCountryId=function(a){return"jqvmap"+this.index+"_"+a},JQVMap.prototype.getPin=function(a){var b=jQuery("#"+this.getPinId(a));return b.html()},JQVMap.prototype.getPinId=function(a){return this.getCountryId(a)+"_pin"},JQVMap.prototype.getPins=function(){var a=this.container.find(".jqvmap-pin"),b={};return jQuery.each(a,function(a,c){c=jQuery(c);var d=c.attr("for").toLowerCase(),e=c.html();b[d]=e}),JSON.stringify(b)},JQVMap.prototype.highlight=function(a,b){b=b||jQuery("#"+this.getCountryId(a))[0],this.hoverOpacity?b.setOpacity(this.hoverOpacity):this.hoverColors&&a in this.hoverColors?(b.currentFillColor=b.getFill()+"",b.setFill(this.hoverColors[a])):this.hoverColor&&(b.currentFillColor=b.getFill()+"",b.setFill(this.hoverColor))},JQVMap.prototype.isSelected=function(a){return this.selectIndex(a)>=0},JQVMap.prototype.makeDraggable=function(){var a,b,c=!1,d=this;d.isMoving=!1,d.isMovingTimeout=!1;var e,f,g,h,i,j,k;this.container.mousemove(function(e){return c&&(d.transX-=(a-e.pageX)/d.scale,d.transY-=(b-e.pageY)/d.scale,d.applyTransform(),a=e.pageX,b=e.pageY,d.isMoving=!0,d.isMovingTimeout&&clearTimeout(d.isMovingTimeout),d.container.trigger("drag")),!1}).mousedown(function(d){return c=!0,a=d.pageX,b=d.pageY,!1}).mouseup(function(){return c=!1,clearTimeout(d.isMovingTimeout),d.isMovingTimeout=setTimeout(function(){d.isMoving=!1},100),!1}).mouseout(function(){return c&&d.isMoving?(clearTimeout(d.isMovingTimeout),d.isMovingTimeout=setTimeout(function(){c=!1,d.isMoving=!1},100),!1):void 0}),jQuery(this.container).bind("touchmove",function(a){var b,c,l,m,n=a.originalEvent.touches;if(1===n.length){if(1===e){if(j===n[0].pageX&&k===n[0].pageY)return;l=d.transX,m=d.transY,d.transX-=(j-n[0].pageX)/d.scale,d.transY-=(k-n[0].pageY)/d.scale,d.applyTransform(),(l!==d.transX||m!==d.transY)&&a.preventDefault(),d.isMoving=!0,d.isMovingTimeout&&clearTimeout(d.isMovingTimeout)}j=n[0].pageX,k=n[0].pageY}else 2===n.length&&(2===e?(c=Math.sqrt(Math.pow(n[0].pageX-n[1].pageX,2)+Math.pow(n[0].pageY-n[1].pageY,2))/h,d.setScale(i*c,f,g),a.preventDefault()):(b=jQuery(d.container).offset(),f=n[0].pageX>n[1].pageX?n[1].pageX+(n[0].pageX-n[1].pageX)/2:n[0].pageX+(n[1].pageX-n[0].pageX)/2,g=n[0].pageY>n[1].pageY?n[1].pageY+(n[0].pageY-n[1].pageY)/2:n[0].pageY+(n[1].pageY-n[0].pageY)/2,f-=b.left,g-=b.top,i=d.scale,h=Math.sqrt(Math.pow(n[0].pageX-n[1].pageX,2)+Math.pow(n[0].pageY-n[1].pageY,2))));e=n.length}),jQuery(this.container).bind("touchstart",function(){e=0}),jQuery(this.container).bind("touchend",function(){e=0})},JQVMap.prototype.placePins=function(a,b){var c=this;if((!b||"content"!==b&&"id"!==b)&&(b="content"),"content"===b?jQuery.each(a,function(a,b){if(0!==jQuery("#"+c.getCountryId(a)).length){var d=c.getPinId(a),e=jQuery("#"+d);e.length>0&&e.remove(),c.container.append('<div id="'+d+'" for="'+a+'" class="jqvmap-pin" style="position:absolute">'+b+"</div>")}}):jQuery.each(a,function(a,b){if(0!==jQuery("#"+c.getCountryId(a)).length){var d=c.getPinId(a),e=jQuery("#"+d);e.length>0&&e.remove(),c.container.append('<div id="'+d+'" for="'+a+'" class="jqvmap-pin" style="position:absolute"></div>'),e.append(jQuery("#"+b))}}),this.positionPins(),!this.pinHandlers){this.pinHandlers=!0;var d=function(){c.positionPins()};this.container.bind("zoomIn",d).bind("zoomOut",d).bind("drag",d)}},JQVMap.prototype.positionPins=function(){var a=this,b=this.container.find(".jqvmap-pin");jQuery.each(b,function(b,c){c=jQuery(c);var d=a.getCountryId(c.attr("for").toLowerCase()),e=jQuery("#"+d),f=document.getElementById(d).getBBox(),g=e.position(),h=a.scale,i=g.left+f.width/2*h-c.width()/2,j=g.top+f.height/2*h-c.height()/2;c.css("left",i).css("top",j)})},JQVMap.prototype.removePin=function(a){a=a.toLowerCase(),jQuery("#"+this.getPinId(a)).remove()},JQVMap.prototype.removePins=function(){this.container.find(".jqvmap-pin").remove()},JQVMap.prototype.reset=function(){for(var a in this.countries)this.countries[a].setFill(this.color);this.scale=this.baseScale,this.transX=this.baseTransX,this.transY=this.baseTransY,this.applyTransform()},JQVMap.prototype.resize=function(){var a=this.baseScale;this.width/this.height>this.defaultWidth/this.defaultHeight?(this.baseScale=this.height/this.defaultHeight,this.baseTransX=Math.abs(this.width-this.defaultWidth*this.baseScale)/(2*this.baseScale)):(this.baseScale=this.width/this.defaultWidth,this.baseTransY=Math.abs(this.height-this.defaultHeight*this.baseScale)/(2*this.baseScale)),this.scale*=this.baseScale/a,this.transX*=this.baseScale/a,this.transY*=this.baseScale/a},JQVMap.prototype.select=function(a,b){a=a.toLowerCase(),b=b||jQuery("#"+this.getCountryId(a))[0],this.isSelected(a)||(this.multiSelectRegion?this.selectedRegions.push(a):this.selectedRegions=[a],jQuery(this.container).trigger("regionSelect.jqvmap",[a]),this.selectedColor&&b&&(b.currentFillColor=this.selectedColor,b.setFill(this.selectedColor)))},JQVMap.prototype.selectIndex=function(a){a=a.toLowerCase();for(var b=0;b<this.selectedRegions.length;b++)if(a===this.selectedRegions[b])return b;return-1},JQVMap.prototype.setBackgroundColor=function(a){this.container.css("background-color",a)},JQVMap.prototype.setColors=function(a,b){if("string"==typeof a)this.countries[a].setFill(b),this.countries[a].setAttribute("original",b);else{var c=a;for(var d in c)this.countries[d]&&(this.countries[d].setFill(c[d]),this.countries[d].setAttribute("original",c[d]))}},JQVMap.prototype.setNormalizeFunction=function(a){this.colorScale.setNormalizeFunction(a),this.values&&this.setValues(this.values)},JQVMap.prototype.setScale=function(a){this.scale=a,this.applyTransform()},JQVMap.prototype.setScaleColors=function(a){this.colorScale.setColors(a),this.values&&this.setValues(this.values)},JQVMap.prototype.setValues=function(a){var b,c=0,d=Number.MAX_VALUE;for(var e in a)e=e.toLowerCase(),b=parseFloat(a[e]),isNaN(b)||(b>c&&(c=a[e]),d>b&&(d=b));d===c&&c++,this.colorScale.setMin(d),this.colorScale.setMax(c);var f={};for(e in a)e=e.toLowerCase(),b=parseFloat(a[e]),f[e]=isNaN(b)?this.color:this.colorScale.getColor(b);this.setColors(f),this.values=a},JQVMap.prototype.unhighlight=function(a,b){a=a.toLowerCase(),b=b||jQuery("#"+this.getCountryId(a))[0],b.setOpacity(1),b.currentFillColor&&b.setFill(b.currentFillColor)},JQVMap.prototype.zoomIn=function(){var a=this,b=(jQuery("#zoom").innerHeight()-12-30-6-7-6)/(this.zoomMaxStep-this.zoomCurStep);if(a.zoomCurStep<a.zoomMaxStep){a.transX-=(a.width/a.scale-a.width/(a.scale*a.zoomStep))/2,a.transY-=(a.height/a.scale-a.height/(a.scale*a.zoomStep))/2,a.setScale(a.scale*a.zoomStep),a.zoomCurStep++;var c=jQuery("#zoomSlider");c.css("top",parseInt(c.css("top"),10)-b),a.container.trigger("zoomIn")}},JQVMap.prototype.zoomOut=function(){var a=this,b=(jQuery("#zoom").innerHeight()-12-30-6-7-6)/(this.zoomMaxStep-this.zoomCurStep);if(a.zoomCurStep>1){a.transX+=(a.width/(a.scale/a.zoomStep)-a.width/a.scale)/2,a.transY+=(a.height/(a.scale/a.zoomStep)-a.height/a.scale)/2,a.setScale(a.scale/a.zoomStep),a.zoomCurStep--;var c=jQuery("#zoomSlider");c.css("top",parseInt(c.css("top"),10)+b),a.container.trigger("zoomOut")}},VectorCanvas.prototype.applyTransformParams=function(a,b,c){"svg"===this.mode?this.rootGroup.setAttribute("transform","scale("+a+") translate("+b+", "+c+")"):(this.rootGroup.coordorigin=this.width-b+","+(this.height-c),this.rootGroup.coordsize=this.width/a+","+this.height/a)},VectorCanvas.prototype.createGroup=function(a){var b;return"svg"===this.mode?b=this.createSvgNode("g"):(b=this.createVmlNode("group"),b.style.width=this.width+"px",b.style.height=this.height+"px",b.style.left="0px",b.style.top="0px",b.coordorigin="0 0",b.coordsize=this.width+" "+this.height),a&&(this.rootGroup=b),b},VectorCanvas.prototype.createPath=function(a){var b;if("svg"===this.mode)b=this.createSvgNode("path"),b.setAttribute("d",a.path),null!==this.params.borderColor&&b.setAttribute("stroke",this.params.borderColor),this.params.borderWidth>0&&(b.setAttribute("stroke-width",this.params.borderWidth),b.setAttribute("stroke-linecap","round"),b.setAttribute("stroke-linejoin","round")),this.params.borderOpacity>0&&b.setAttribute("stroke-opacity",this.params.borderOpacity),b.setFill=function(a){this.setAttribute("fill",a),null===this.getAttribute("original")&&this.setAttribute("original",a)},b.getFill=function(){return this.getAttribute("fill")},b.getOriginalFill=function(){return this.getAttribute("original")},b.setOpacity=function(a){this.setAttribute("fill-opacity",a)};else{b=this.createVmlNode("shape"),b.coordorigin="0 0",b.coordsize=this.width+" "+this.height,b.style.width=this.width+"px",b.style.height=this.height+"px",b.fillcolor=JQVMap.defaultFillColor,b.stroked=!1,b.path=VectorCanvas.pathSvgToVml(a.path);var c=this.createVmlNode("skew");c.on=!0,c.matrix="0.01,0,0,0.01,0,0",c.offset="0,0",b.appendChild(c);var d=this.createVmlNode("fill");b.appendChild(d),b.setFill=function(a){this.getElementsByTagName("fill")[0].color=a,null===this.getAttribute("original")&&this.setAttribute("original",a)},b.getFill=function(){return this.getElementsByTagName("fill")[0].color},b.getOriginalFill=function(){return this.getAttribute("original")},b.setOpacity=function(a){this.getElementsByTagName("fill")[0].opacity=parseInt(100*a,10)+"%"}}return b},VectorCanvas.prototype.pathSvgToVml=function(a){var b,c,d="",e=0,f=0;return a.replace(/([MmLlHhVvCcSs])((?:-?(?:\d+)?(?:\.\d+)?,?\s?)+)/g,function(a,g,h){h=h.replace(/(\d)-/g,"$1,-").replace(/\s+/g,",").split(","),h[0]||h.shift();for(var i=0,j=h.length;j>i;i++)h[i]=Math.round(100*h[i]);switch(g){case"m":e+=h[0],f+=h[1],d="t"+h.join(",");break;case"M":e=h[0],f=h[1],d="m"+h.join(",");break;case"l":e+=h[0],f+=h[1],d="r"+h.join(",");break;case"L":e=h[0],f=h[1],d="l"+h.join(",");break;case"h":e+=h[0],d="r"+h[0]+",0";break;case"H":e=h[0],d="l"+e+","+f;break;case"v":f+=h[0],d="r0,"+h[0];break;case"V":f=h[0],d="l"+e+","+f;break;case"c":b=e+h[h.length-4],c=f+h[h.length-3],e+=h[h.length-2],f+=h[h.length-1],d="v"+h.join(",");break;case"C":b=h[h.length-4],c=h[h.length-3],e=h[h.length-2],f=h[h.length-1],d="c"+h.join(",");break;case"s":h.unshift(f-c),h.unshift(e-b),b=e+h[h.length-4],c=f+h[h.length-3],e+=h[h.length-2],f+=h[h.length-1],d="v"+h.join(",");break;case"S":h.unshift(f+f-c),h.unshift(e+e-b),b=h[h.length-4],c=h[h.length-3],e=h[h.length-2],f=h[h.length-1],d="c"+h.join(",")}return d}).replace(/z/g,"")},VectorCanvas.prototype.setSize=function(a,b){if("svg"===this.mode)this.canvas.setAttribute("width",a),this.canvas.setAttribute("height",b);else if(this.canvas.style.width=a+"px",this.canvas.style.height=b+"px",this.canvas.coordsize=a+" "+b,this.canvas.coordorigin="0 0",this.rootGroup){for(var c=this.rootGroup.getElementsByTagName("shape"),d=0,e=c.length;e>d;d++)c[d].coordsize=a+" "+b,c[d].style.width=a+"px",c[d].style.height=b+"px";this.rootGroup.coordsize=a+" "+b,this.rootGroup.style.width=a+"px",this.rootGroup.style.height=b+"px"}this.width=a,this.height=b};
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
/** Add World Map Data Points */
|
41 |
-
jQuery.fn.vectorMap('addMap', 'world_en', {"width":950,"height":550,"paths":{"id":{"path":"M781.68,324.4l-2.31,8.68l-12.53,4.23l-3.75-4.4l-1.82,0.5l3.4,13.12l5.09,0.57l6.79,2.57v2.57l3.11-0.57l4.53-6.27v-5.13l2.55-5.13l2.83,0.57l-3.4-7.13l-0.52-4.59L781.68,324.4L781.68,324.4M722.48,317.57l-0.28,2.28l6.79,11.41h1.98l14.15,23.67l5.66,0.57l2.83-8.27l-4.53-2.85l-0.85-4.56L722.48,317.57L722.48,317.57M789.53,349.11l2.26,2.77l-1.47,4.16v0.79h3.34l1.18-10.4l1.08,0.3l1.96,9.5l1.87,0.5l1.77-4.06l-1.77-6.14l-1.47-2.67l4.62-3.37l-1.08-1.49l-4.42,2.87h-1.18l-2.16-3.17l0.69-1.39l3.64-1.78l5.5,1.68l1.67-0.1l4.13-3.86l-1.67-1.68l-3.83,2.97h-2.46l-3.73-1.78l-2.65,0.1l-2.95,4.75l-1.87,8.22L789.53,349.11L789.53,349.11M814.19,330.5l-1.87,4.55l2.95,3.86h0.98l1.28-2.57l0.69-0.89l-1.28-1.39l-1.87-0.69L814.19,330.5L814.19,330.5M819.99,345.45l-4.03,0.89l-1.18,1.29l0.98,1.68l2.65-0.99l1.67-0.99l2.46,1.98l1.08-0.89l-1.96-2.38L819.99,345.45L819.99,345.45M753.17,358.32l-2.75,1.88l0.59,1.58l8.75,1.98l4.42,0.79l1.87,1.98l5.01,0.4l2.36,1.98l2.16-0.5l1.97-1.78l-3.64-1.68l-3.14-2.67l-8.16-1.98L753.17,358.32L753.17,358.32M781.77,366.93l-2.16,1.19l1.28,1.39l3.14-1.19L781.77,366.93L781.77,366.93M785.5,366.04l0.39,1.88l2.26,0.59l0.88-1.09l-0.98-1.49L785.5,366.04L785.5,366.04M790.91,370.99l-2.75,0.4l2.46,2.08h1.96L790.91,370.99L790.91,370.99M791.69,367.72l-0.59,1.19l4.42,0.69l3.44-1.98l-1.96-0.59l-3.14,0.89l-1.18-0.99L791.69,367.72L791.69,367.72M831.93,339.34l-4.17,0.47l-2.68,1.96l1.11,2.24l4.54,0.84v0.84l-2.87,2.33l1.39,4.85l1.39,0.09l1.2-4.76h2.22l0.93,4.66l10.83,8.96l0.28,7l3.7,4.01l1.67-0.09l0.37-24.72l-6.29-4.38l-5.93,4.01l-2.13,1.31l-3.52-2.24l-0.09-7.09L831.93,339.34L831.93,339.34z","name":"Indonesia"},"pg":{"path":"M852.76,348.29l-0.37,24.44l3.52-0.19l4.63-5.41l3.89,0.19l2.5,2.24l0.83,6.9l7.96,4.2l2.04-0.75v-2.52l-6.39-5.32l-3.15-7.28l2.5-1.21l-1.85-4.01l-3.7-0.09l-0.93-4.29l-9.81-6.62L852.76,348.29L852.76,348.29M880.48,349l-0.88,1.25l4.81,4.26l0.66,2.5l1.31-0.15l0.15-2.57l-1.46-1.32L880.48,349L880.48,349M882.89,355.03l-0.95,0.22l-0.58,2.57l-1.82,1.18l-5.47,0.96l0.22,2.06l5.76-0.29l3.65-2.28l-0.22-3.97L882.89,355.03L882.89,355.03M889.38,359.51l1.24,3.45l2.19,2.13l0.66-0.59l-0.22-2.28l-2.48-3.01L889.38,359.51L889.38,359.51z","name":"Papua New Guinea"},"mx":{"path":"M137.49,225.43l4.83,15.21l-2.25,1.26l0.25,3.02l4.25,3.27v6.05l5.25,5.04l-2.25-14.86l-3-9.83l0.75-6.8l2.5,0.25l1,2.27l-1,5.79l13,25.44v9.07l10.5,12.34l11.5,5.29l4.75-2.77l6.75,5.54l4-4.03l-1.75-4.54l5.75-1.76l1.75,1.01l1.75-1.76h2.75l5-8.82l-2.5-2.27l-9.75,2.27l-2.25,6.55l-5.75,1.01l-6.75-2.77l-3-9.57l2.27-12.07l-4.64-2.89l-2.21-11.59l-1.85-0.79l-3.38,3.43l-3.88-2.07l-1.52-7.73l-15.37-1.61l-7.94-5.97L137.49,225.43L137.49,225.43z","name":"Mexico"},"ee":{"path":"M517.77,143.66l-5.6-0.2l-3.55,2.17l-0.05,1.61l2.3,2.17l7.15,1.21L517.77,143.66L517.77,143.66M506.76,147.64l-1.55-0.05l-0.9,0.91l0.65,0.96l1.55,0.1l0.8-1.16L506.76,147.64L506.76,147.64z","name":"Estonia"},"dz":{"path":"M473.88,227.49l-4.08-1.37l-16.98,3.19l-3.7,2.81l2.26,11.67l-6.75,0.27l-4.06,6.53l-9.67,2.32l0.03,4.75l31.85,24.35l5.43,0.46l18.11-14.15l-1.81-2.28l-3.4-0.46l-2.04-3.42v-14.15l-1.36-1.37l0.23-3.65l-3.62-3.65l-0.45-3.88l1.58-1.14l-0.68-4.11L473.88,227.49L473.88,227.49z","name":"Algeria"},"ma":{"path":"M448.29,232.28h-11.55l-2.26,5.02l-5.21,2.51l-4.3,11.64l-8.38,5.02l-11.77,19.39l11.55-0.23l0.45-5.7h2.94v-7.76h10.19l0.23-10.04l9.74-2.28l4.08-6.62l6.34-0.23L448.29,232.28L448.29,232.28z","name":"Morocco"},"mr":{"path":"M404.9,276.66l2.18,2.85l-0.45,12.32l3.17-2.28l2.26-0.46l3.17,1.14l3.62,5.02l3.4-2.28l16.53-0.23l-4.08-27.61l4.38-0.02l-8.16-6.25l0.01,4.06l-10.33,0.01l-0.05,7.75l-2.97-0.01l-0.38,5.72L404.9,276.66L404.9,276.66z","name":"Mauritania"},"sn":{"path":"M412.03,289.84L410.12,290.31L406.18,293.18L405.28,294.78L405,296.37L406.43,297.40L411.28,297.34L414.40,296.5L414.75,298.03L414.46,300.06L414.53,300.09L406.78,300.21L408.03,303.21L408.71,301.37L418,302.15L418.06,302.21L419.03,302.25L422,302.37L422.12,300.62L418.53,296.31L414.53,290.87L412.03,289.84z","name":"Senegal"},"gm":{"path":"M406.89,298.34l-0.13,1.11l6.92-0.1l0.35-1.03l-0.15-1.04l-1.99,0.81L406.89,298.34L406.89,298.34z","name":"Gambia"},"gw":{"path":"M408.6,304.53l1.4,2.77l3.93-3.38l0.04-1.04l-4.63-0.67L408.6,304.53L408.6,304.53z","name":"Guinea-Bissau"},"gn":{"path":"M410.42,307.94l3.04,4.68l3.96-3.44l4.06-0.18l3.38,4.49l2.87,1.89l1.08-2.1l0.96-0.54l-0.07-4.62l-1.91-5.48l-5.86,0.65l-7.25-0.58l-0.04,1.86L410.42,307.94L410.42,307.94z","name":"Guinea"},"sl":{"path":"M413.93,313.13l5.65,5.46l4.03-4.89l-2.52-3.95l-3.47,0.35L413.93,313.13L413.93,313.13z","name":"Sierra Leone"},"lr":{"path":"M420.17,319.19l10.98,7.34l-0.26-5.56l-3.32-3.91l-3.24-2.87L420.17,319.19L420.17,319.19z","name":"Liberia"},"ci":{"path":"M432.07,326.75l4.28-3.03l5.32-0.93l5.43,1.17l-2.77-4.19l-0.81-2.56l0.81-7.57l-4.85,0.23l-2.2-2.1l-4.62,0.12l-2.2,0.35l0.23,5.12l-1.16,0.47l-1.39,2.56l3.58,4.19L432.07,326.75L432.07,326.75z","name":"Cote d'Ivoire"},"ml":{"path":"M419.46,295.84l3.08-2.11l17.12-0.1l-3.96-27.54l4.52-0.13l21.87,16.69l2.94,0.42l-1.11,9.28l-13.75,1.25l-10.61,7.92l-1.93,5.42l-7.37,0.31l-1.88-5.41l-5.65,0.4l0.22-1.77L419.46,295.84L419.46,295.84z","name":"Mali"},"bf":{"path":"M450.59,294.28l3.64-0.29l5.97,8.44l-5.54,4.18l-4.01-1.03l-5.39,0.07l-0.87,3.16l-4.52,0.22l-1.24-1.69l1.6-5.14L450.59,294.28L450.59,294.28z","name":"Burkina Faso"},"ne":{"path":"M460.89,302l2.55-0.06l2.3-3.45l3.86-0.69l4.11,2.51l8.77,0.25l6.78-2.76l2.55-2.19l0.19-2.88l4.73-4.77l1.25-10.53l-3.11-6.52l-7.96-1.94l-18.42,14.36l-2.61-0.25l-1.12,9.97l-9.4,0.94L460.89,302L460.89,302z","name":"Niger"},"gh":{"path":"M444.34,317.05l1.12,2.63l2.92,4.58l1.62-0.06l4.42-2.51l-0.31-14.29l-3.42-1l-4.79,0.13L444.34,317.05L444.34,317.05z","name":"Ghana"},"tg":{"path":"M455.22,321.25l2.68-1.57l-0.06-10.35l-1.74-2.82l-1.12,0.94L455.22,321.25L455.22,321.25z","name":"Togo"},"bj":{"path":"M458.71,319.49h2.12l0.12-6.02l2.68-3.89l-0.12-6.77l-2.43-0.06l-4.17,3.26l1.74,3.32L458.71,319.49L458.71,319.49z","name":"Benin"},"ng":{"path":"M461.57,319.37l3.92,0.19l4.73,5.27l2.3,0.63l1.8-0.88l2.74-0.38l0.93-3.82l3.73-2.45l4.04-0.19l7.4-13.61l-0.12-3.07l-3.42-2.63l-6.84,3.01l-9.15-0.13l-4.36-2.76l-3.11,0.69l-1.62,2.82l-0.12,7.96l-2.61,3.7L461.57,319.37L461.57,319.37z","name":"Nigeria"},"tn":{"path":"M474.91,227.33l5.53-2.23l1.82,1.18l0.07,1.44l-0.85,1.11l0.13,1.97l0.85,0.46v3.54l-0.98,1.64l0.13,1.05l3.71,1.31l-2.99,4.65l-1.17-0.07l-0.2,3.74l-1.3,0.2l-1.11-0.98l0.26-3.8l-3.64-3.54l-0.46-3.08l1.76-1.38L474.91,227.33L474.91,227.33z","name":"Tunisia"},"ly":{"path":"M480.05,248.03l1.56-0.26l0.46-3.6h0.78l3.19-5.24l7.87,2.29l2.15,3.34l7.74,3.54l4.03-1.7l-0.39-1.7l-1.76-1.7l0.2-1.18l2.86-2.42h5.66l2.15,2.88l4.55,0.66l0.59,36.89l-3.38-0.13l-20.42-10.62l-2.21,1.25l-8.39-2.1l-2.28-3.01l-3.32-0.46l-1.69-3.01L480.05,248.03L480.05,248.03z","name":"Libya"},"eg":{"path":"M521.93,243.06l2.67,0.07l5.2,1.44l2.47,0.07l3.06-2.56h1.43l2.6,1.44h3.29l0.59-0.04l2.08,5.98l0.59,1.93l0.55,2.89l-0.98,0.72l-1.69-0.85l-1.95-6.36l-1.76-0.13l-0.13,2.16l1.17,3.74l9.37,11.6l0.2,4.98l-2.73,3.15L522.32,273L521.93,243.06L521.93,243.06z","name":"Egypt"},"td":{"path":"M492.79,296l0.13-2.95l4.74-4.61l1.27-11.32l-3.16-6.04l2.21-1.13l21.4,11.15l-0.13,10.94l-3.77,3.21v5.64l2.47,4.78h-4.36l-7.22,7.14l-0.19,2.16l-5.33-0.07l-0.07,0.98l-3.04-0.4l-2.08-3.93l-1.56-0.77l0.2-1.2l1.96-1.5v-7.02l-2.71-0.42l-3.27-2.43L492.79,296L492.79,296L492.79,296z","name":"Chad"},"sd":{"path":"M520.15,292.43l0.18-11.83l2.46,0.07l-0.28-6.57l25.8,0.23l3.69-3.72l7.96,12.73l-4.36,5.14v7.85l-6.86,14.75l-2.36,1.04l0.75,4.11h2.94l3.99,5.79l-3.2,0.41l-0.82,1.49l-0.08,2.15l-9.6-0.17l-0.98-1.49l-6.71-0.38l-12.32-12.68l1.23-0.74l0.33-2.98l-2.95-1.74l-2.69-5.31l0.15-4.94L520.15,292.43L520.15,292.43z","name":"Sudan"},"cm":{"path":"M477.82,324.28l3.22,2.96l-0.23,4.58l17.66-0.41l1.44-1.62l-5.06-5.45l-0.75-1.97l3.22-6.03l-2.19-4l-1.84-0.99v-2.03l2.13-1.39l0.12-6.32l-1.69-0.19l-0.03,3.32l-7.42,13.85l-4.54,0.23l-3.11,2.14L477.82,324.28L477.82,324.28z","name":"Cameroon"},"er":{"path":"M556.71,294.7l-0.25-5.89l3.96-4.62l1.07,0.82l1.95,6.52l9.36,6.97l-1.7,2.09l-6.85-5.89H556.71L556.71,294.7z","name":"Eritrea"},"dj":{"path":"M571.48,301.54l-0.57,3.36l3.96-0.06l0.06-4.94l-1.45-0.89L571.48,301.54L571.48,301.54z","name":"Djibouti"},"et":{"path":"M549.49,311.76l7.28-16.2l7.23,0.04l6.41,5.57l-0.45,4.59h4.97l0.51,2.76l8.04,4.81l4.96,0.25l-9.43,10.13l-12.95,3.99h-3.21l-5.72-4.88l-2.26-0.95l-4.38-6.45l-2.89,0.04l-0.34-2.96L549.49,311.76L549.49,311.76z","name":"Ethiopia"},"so":{"path":"M575.74,305.04l4.08,2.78l1.21-0.06l10.13-3.48l1.15,3.71l-0.81,3.13l-2.19,1.74l-5.47-0.35l-7.83-4.81L575.74,305.04L575.74,305.04M591.97,304.05l4.37-1.68l1.55,0.93l-0.17,3.88l-4.03,11.48l-21.81,23.36l-2.53-1.74l-0.17-9.86l3.28-3.77l6.96-2.15l10.21-10.78l2.67-2.38l0.75-3.48L591.97,304.05L591.97,304.05z","name":"Somalia"},"ye":{"path":"M599.62,299.65l2.13,2.38l2.88-1.74l1.04-0.35l-1.32-1.28l-2.53,0.75L599.62,299.65L599.62,299.65M571.99,289.23l1.44,4.28v4.18l3.46,3.14l24.38-9.93l0.23-2.73l-3.91-7.02l-9.81,3.13l-5.63,5.54l-6.53-3.86L571.99,289.23L571.99,289.23z","name":"Yemen"},"cf":{"path":"M495.66,324.05l4.66,5.04l1.84-2.38l2.93,0.12l0.63-2.32l2.88-1.8l5.98,4.12l3.45-3.42l13.39,0.59L519,311.18l1.67-1.04l0.23-2.26l-2.82-1.33h-4.14l-6.67,6.61l-0.23,2.72l-5.29-0.17l-0.17,1.16l-3.45-0.35l-3.11,5.91L495.66,324.05L495.66,324.05z","name":"Central African Republic"},"st":{"path":"M470.74,337.15l1.15-0.58l0.86,0.7l-0.86,1.33l-1.04-0.41L470.74,337.15L470.74,337.15M473.05,333.5l1.73-0.29l0.58,1.1l-0.86,0.93l-0.86-0.12L473.05,333.5L473.05,333.5z","name":"Sao Tome and Principe"},"gq":{"path":"M476.84,327.41l-0.46,1.97l1.38,0.75l1.32-0.99l-0.46-2.03L476.84,327.41L476.84,327.41M480.99,332.69l-0.06,1.39l4.54,0.23l-0.06-1.57L480.99,332.69L480.99,332.69z","name":"Equatorial Guinea"},"ga":{"path":"M486.39,332.63l-0.12,2.49l-5.64-0.12l-3.45,6.67l8.11,8.87l2.01-1.68l-0.06-1.74l-1.38-0.64v-1.22l3.11-1.97l2.76,2.09l3.05,0.06l-0.06-10.49l-4.83-0.23l-0.06-2.2L486.39,332.63L486.39,332.63z","name":"Gabon"},"cg":{"path":"M491,332.52l-0.06,1.45l4.78,0.12l0.17,12.41l-4.37-0.12l-2.53-1.97l-1.96,1.1l-0.09,0.55l1.01,0.49l0.29,2.55l-2.7,2.32l0.58,1.22l2.99-2.32h1.44l0.46,1.39l1.9,0.81l6.1-5.16l-0.12-3.77l1.27-3.07l3.91-2.9l1.05-9.81l-2.78,0.01l-3.22,4.41L491,332.52L491,332.52z","name":"Congo"},"ao":{"path":"M486.55,353.23l1.74,2.26l2.25-2.13l-0.66-2.21l-0.56-0.04L486.55,353.23L486.55,353.23M488.62,356.71l3.41,12.73l-0.08,4.02l-4.99,5.36l-0.75,8.71l19.2,0.17l6.24,2.26l5.15-0.67l-3-3.76l0.01-10.74l5.9-0.25v-4.19l-4.79-0.2l-0.96-9.92l-2.02,0.03l-1.09-0.98l-1.19,0.06l-1.58,3.06H502l-1.41-1.42l0.42-2.01l-1.66-2.43L488.62,356.71L488.62,356.71z","name":"Angola"},"cd":{"path":"M489.38,355.71l10.31-0.18l2.09,2.97l-0.08,2.19l0.77,0.7h5.12l1.47-2.89h2.09l0.85,0.86l2.87-0.08l0.85,10.08l4.96,0.16v0.78l13.33,6.01l0.62,1.17h2.79l-0.31-4.22l-5.04-2.42l0.31-3.2l2.17-5.08l4.96-0.16l-4.26-14.14l0.08-6.01l6.74-10.54l0.08-1.48l-1.01-0.55l0.04-2.86l-1.23-0.11l-1.24-1.58l-20.35-0.92l-3.73,3.63l-6.11-4.02l-2.15,1.32l-1.56,13.13l-3.86,2.98l-1.16,2.64l0.21,3.91l-6.96,5.69l-1.85-0.84l0.25,1.09L489.38,355.71L489.38,355.71z","name":"Congo"},"rw":{"path":"M537.82,339.9l2.81,2.59l-0.12,2.77l-4.36,0.09v-3.06L537.82,339.9L537.82,339.9z","name":"Rwanda"},"bi":{"path":"M536.21,346.21l4.27-0.09l-1.11,3.74l-1.08,0.94h-1.32l-0.94-2.53L536.21,346.21L536.21,346.21z","name":"Burundi"},"ug":{"path":"M538.3,339.09l3.03,2.84l1.9-1.21l5.14-0.84l0.88,0.09l0.33-1.95l2.9-6.1l-2.44-5.08l-7.91,0.05l-0.05,2.09l1.06,1.02l-0.16,2.09L538.3,339.09L538.3,339.09z","name":"Uganda"},"ke":{"path":"M550.83,326.52l2.66,5.19l-3.19,6.69l-0.42,2.03l15.93,9.85l4.94-7.76l-2.5-2.03l-0.05-10.22l3.13-3.42l-4.99,1.66l-3.77,0.05l-5.9-4.98l-1.86-0.8l-3.45,0.32l-0.61,1.02L550.83,326.52L550.83,326.52z","name":"Kenya"},"tz":{"path":"M550.57,371.42l17.47-2.14l-3.93-7.6l-0.21-7.28l1.27-3.48l-16.62-10.44l-5.21,0.86l-1.81,1.34l-0.16,3.05l-1.17,4.23l-1.22,1.45l-1.75,0.16l3.35,11.61l5.47,2.57l3.77,0.11L550.57,371.42L550.57,371.42z","name":"Tanzania"},"zm":{"path":"M514.55,384.7l3.17,4.4l4.91,0.3l1.74,0.96l5.14,0.06l4.43-6.21l12.38-5.54l1.08-4.88l-1.44-6.99l-6.46-3.68l-4.31,0.3l-2.15,4.76l0.06,2.17l5.08,2.47l0.3,5.37l-4.37,0.24l-1.08-1.81l-12.14-5.18l-0.36,3.98l-5.74,0.18L514.55,384.7L514.55,384.7z","name":"Zambia"},"mw":{"path":"M547.16,379.4l3.11,3.25l-0.06,4.16l0.6,1.75l4.13-4.46l-0.48-5.67l-2.21-1.69l-1.97-9.95l-3.41-0.12l1.55,7.17L547.16,379.4L547.16,379.4z","name":"Malawi"},"mz":{"path":"M541.17,413.28l2.69,2.23l6.34-3.86l1.02-5.73v-9.46l10.17-8.32l1.74,0.06l6.16-5.91l-0.96-12.18L552,372.17l0.48,3.68l2.81,2.17l0.66,6.63l-5.5,5.37l-1.32-3.01l0.24-3.98l-3.17-3.44l-7.78,3.62l7.24,3.68l0.24,10.73l-4.79,7.11L541.17,413.28L541.17,413.28z","name":"Mozambique"},"zw":{"path":"M524.66,392.3l8.97,10.13l6.88,1.75l4.61-7.23l-0.36-9.58l-7.48-3.86l-2.81,1.27l-4.19,6.39l-5.8-0.06L524.66,392.3L524.66,392.3z","name":"Zimbabwe"},"na":{"path":"M496.55,421.96l3.35,0.24l1.97,1.99l4.67,0.06l1.14-13.26v-8.68l2.99-0.6l1.14-9.1l7.6-0.24l2.69-2.23l-4.55-0.18l-6.16,0.84l-6.64-2.41h-18.66l0.48,5.3l6.22,9.16l-1.08,4.7l0.06,2.47L496.55,421.96L496.55,421.96z","name":"Namibia"},"bw":{"path":"M508.51,411.23l2.15,0.66l-0.3,6.15l2.21,0.3l5.08-4.58l6.1,0.66l1.62-4.1l7.72-7.05l-9.27-10.67l-0.12-1.75l-1.02-0.3l-2.81,2.59l-7.3,0.18l-1.02,9.1l-2.87,0.66L508.51,411.23L508.51,411.23z","name":"Botswana"},"sz":{"path":"M540.87,414l-2.51,0.42l-1.08,2.95l1.92,1.75h2.33l1.97-2.83L540.87,414L540.87,414z","name":"Swaziland"},"ls":{"path":"M527.41,425.39l3.05-2.35l1.44,0.06l1.74,2.17l-0.18,2.17l-2.93,1.08v0.84l-3.23-0.18l-0.78-2.35L527.41,425.39L527.41,425.39z","name":"Lesotho"},"za":{"path":"M534.16,403.63l-7.9,7.3l-1.88,4.51l-6.26-0.78l-5.21,4.63l-3.46-0.34l0.28-6.4l-1.23-0.43l-0.86,13.09l-6.14-0.06l-1.85-2.18l-2.71-0.03l2.47,7.09l4.41,4.17l-3.15,3.67l2.04,4.6l4.72,1.8l3.76-3.2l10.77,0.06l0.77-0.96l4.78-0.84l16.17-16.1l-0.06-5.07l-1.73,2.24h-2.59l-3.15-2.64l1.6-3.98l2.75-0.56l-0.25-8.18L534.16,403.63L534.16,403.63z M530.37,422.13l1.51-0.06l2.45,2.66l-0.07,3.08l-2.87,1.45l-0.18,1.02l-4.38,0.05l-1.37-3.3l1.25-2.42L530.37,422.13L530.37,422.13z","name":"South Africa"},"gl":{"path":"M321.13,50.07l-1.36,2.17l2.45,2.45l-1.09,2.45l3.54,4.62l4.35-1.36l5.71-0.54l6.53,7.07l4.35,11.69l-3.53,7.34l4.89-0.82l2.72,1.63l0.27,3.54l-5.98,0.27l3.26,3.26l4.08,0.82l-8.97,11.96l-1.09,7.34l1.9,5.98l-1.36,3.54l2.45,7.61l4.62,5.17l1.36-0.27l2.99-0.82l0.27,4.35l1.9,2.72l3.53-0.27l2.72-10.06l8.16-10.06l12.24-4.89l7.61-9.52l3.53,1.63h7.34l5.98-5.98l7.34-2.99l0.82-4.62l-4.62-4.08l-4.08-1.36l-2.18-5.71l5.17-2.99l8.16,4.35l2.72-2.99l-4.35-2.45l9.25-12.51l-1.63-5.44l-4.35-0.27l1.63-4.89l5.44-2.45l11.15-9.79l-3.26-3.53l-12.51,1.09l-6.53,6.53l3.81-8.43l-4.35-1.09l-2.45,4.35l-3.53-2.99l-9.79,1.09l2.72-4.35l16.04-0.54l-4.08-5.44l-17.4-3.26l-7.07,1.09l0.27,3.54l-7.34-2.45l0.27-2.45l-5.17,1.09l-1.09,2.72l5.44,1.9l-5.71,4.08l-4.08-4.62l-5.71-1.63l-0.82,4.35h-5.71l-2.18-4.62l-8.97-1.36l-4.89,2.45l-0.27,3.26l-6.25-0.82l-3.81,1.63l0.27,3.81v1.9l-7.07,1.36l-3.26-2.17l-2.18,3.53l3.26,3.54l6.8-0.82l0.54,2.18l-5.17,2.45L321.13,50.07L321.13,50.07M342.89,92.49l1.63,2.45l-0.82,2.99h-1.63l-2.18-2.45l0.54-1.9L342.89,92.49L342.89,92.49M410.87,85.69l4.62,1.36l-0.27,3.81l-4.89-2.45l-1.09-1.36L410.87,85.69L410.87,85.69z","name":"Greenland"},"au":{"path":"M761.17,427.98l-0.35,25.38l-3.9,2.86l-0.35,2.5l5.32,3.57l13.13-2.5h6.74l2.48-3.58l14.9-2.86l10.64,3.22l-0.71,4.29l1.42,4.29l8.16-1.43l0.35,2.14l-5.32,3.93l1.77,1.43l3.9-1.43l-1.06,11.8l7.45,5.72l4.26-1.43l2.13,2.14l12.42-1.79l11.71-18.95l4.26-1.07l8.51-15.73l2.13-13.58l-5.32-6.79l2.13-1.43l-4.26-13.23l-4.61-3.22l0.71-17.87l-4.26-3.22l-1.06-10.01h-2.13l-7.1,23.59l-3.9,0.36l-8.87-8.94l4.97-13.23l-9.22-1.79l-10.29,2.86l-2.84,8.22l-4.61,1.07l-0.35-5.72l-18.8,11.44l0.35,4.29l-2.84,3.93h-7.1l-15.26,6.43L761.17,427.98L761.17,427.98M825.74,496.26l-1.77,7.15l0.35,5l5.32-0.36l6.03-9.29L825.74,496.26L825.74,496.26z","name":"Australia"},"nz":{"path":"M913.02,481.96l1.06,11.8l-1.42,5.36l-5.32,3.93l0.35,4.65v5l1.42,1.79l14.55-12.51v-2.86h-3.55l-4.97-16.8L913.02,481.96L913.02,481.96M902.38,507.7l2.84,5.36l-7.81,7.51l-0.71,3.93l-5.32,0.71l-8.87,8.22l-8.16-3.93l-0.71-2.86l14.9-6.43L902.38,507.7L902.38,507.7z","name":"New Zealand"},"nc":{"path":"M906.64,420.47l-0.35,1.79l4.61,6.43l2.48,1.07l0.35-2.5L906.64,420.47L906.64,420.47z","name":"New Caledonia"},"my":{"path":"M764.14,332.92l3.02,3.49l11.58-4.01l2.29-8.84l5.16-0.37l4.72-3.42l-6.12-4.46l-1.4-2.45l-3.02,5.57l1.11,3.2l-1.84,2.67l-3.47-0.89l-8.41,6.17l0.22,3.57L764.14,332.92L764.14,332.92M732.71,315.45l2.01,4.51l0.45,5.86l2.69,4.17l6.49,3.94l2.46,0.23l-0.45-4.06l-2.13-5.18l-3.12-6.63l-0.26,1.16l-3.76-0.17l-2.7-3.88L732.71,315.45L732.71,315.45z","name":"Malaysia"},"bn":{"path":"M779.77,319.25l-2.88,3.49l2.36,0.74l1.33-1.86L779.77,319.25L779.77,319.25z","name":"Brunei Darussalam"},"tl":{"path":"M806.14,368.42l-5.11,4.26l0.49,1.09l2.16-0.4l2.55-2.38l5.01-0.69l-0.98-1.68L806.14,368.42L806.14,368.42z","name":"Timor-Leste"},"sb":{"path":"M895.43,364.65l0.15,2.28l1.39,1.32l1.31-0.81l-1.17-2.43L895.43,364.65L895.43,364.65M897.18,370.31l-1.17,1.25l1.24,2.28l1.46,0.44l-0.07-1.54L897.18,370.31L897.18,370.31M900.03,368.99l1.02,2.5l1.97,2.35l1.09-1.76l-1.46-2.5L900.03,368.99L900.03,368.99M905.14,372.74l0.58,3.09l1.39,1.91l1.17-2.42L905.14,372.74L905.14,372.74M906.74,379.65l-0.51,0.88l1.68,2.21l1.17,0.07l-0.73-2.87L906.74,379.65L906.74,379.65M903.02,384.05l-1.75,0.81l1.53,2.13l1.31-0.74L903.02,384.05L903.02,384.05z","name":"Solomon Islands"},"vu":{"path":"M920.87,397.22l-1.24,1.66l0.52,1.87l0.62,0.42l1.13-1.46L920.87,397.22L920.87,397.22M921.49,402.31l0.1,1.35l1.34,0.42l0.93-0.52l-0.93-1.46L921.49,402.31L921.49,402.31M923.45,414.37l-0.62,0.94l0.93,1.04l1.55-0.52L923.45,414.37L923.45,414.37z","name":"Vanuatu"},"fj":{"path":"M948.62,412.29l-1.24,1.66l-0.1,1.87l1.44,1.46L948.62,412.29L948.62,412.29z","name":"Fiji"},"ph":{"path":"M789.37,297.53l-0.86,1.64l-0.48,2.02l-4.78,6.07l0.29,1.25l2.01-0.29l6.21-6.94L789.37,297.53L789.37,297.53M797.11,295.22l-0.1,5.01l1.82,1.83l0.67,3.56l1.82,0.39l0.86-2.22l-1.43-1.06l-0.38-6.26L797.11,295.22L797.11,295.22M802.28,297.15l-0.1,4.43l1.05,1.73l1.82-2.12l-0.48-3.85L802.28,297.15L802.28,297.15M803.42,293.29l1.82,2.41l0.86,2.31h1.63l-0.29-3.95l-1.82-1.25L803.42,293.29L803.42,293.29M806.96,302.35l0.38,2.89l-3.35,2.7l-2.77,0.29l-2.96,3.18l0.1,1.45l2.77-0.87l1.91-1.25l1.63,4.14l2.87,2.02l1.15-0.39l1.05-1.25l-2.29-2.31l1.34-1.06l1.53,1.25l1.05-1.73l-1.05-2.12l-0.19-4.72L806.96,302.35L806.96,302.35M791.38,272.97l-2.58,1.83l-0.29,5.78l4.02,7.8l1.34,1.06l1.72-1.16l2.96,0.48l0.57,2.6l2.2,0.19l1.05-1.44l-1.34-1.83l-1.63-1.54l-3.44-0.38l-1.82-2.99l2.1-3.18l0.19-2.79l-1.43-3.56L791.38,272.97L791.38,272.97M792.72,290.21l0.76,2.7l1.34,0.87l0.96-1.25l-1.53-2.12L792.72,290.21L792.72,290.21z","name":"Philippines"},"cn":{"path":"M759.83,270.17l-2.39,0.67l-1.72,2.12l1.43,2.79l2.1,0.19l2.39-2.12l0.57-2.79L759.83,270.17L759.83,270.17M670.4,170.07l-3.46,8.7l-4.77-0.25l-5.03,11.01l4.27,5.44l-8.8,12.15l-4.52-0.76l-3.02,3.8l0.75,2.28l3.52,0.25l1.76,4.05l3.52,0.76l10.81,13.93v7.09l5.28,3.29l5.78-1.01l7.29,4.3l8.8,2.53l4.27-0.51l4.78-0.51l10.05-6.58l3.27,0.51l1.25,2.97l2.77,0.83l3.77,5.57l-2.51,5.57l1.51,3.8l4.27,1.52l0.75,4.56l5.03,0.51l0.75-2.28l7.29-3.8l4.52,0.25l5.28,5.82l3.52-1.52l2.26,0.25l1.01,2.79l1.76,0.25l2.51-3.54l10.05-3.8l9.05-10.89l3.02-10.38l-0.25-6.84l-3.77-0.76l2.26-2.53l-0.5-4.05l-9.55-9.62v-4.81l2.76-3.54l2.76-1.27l0.25-2.79h-7.04l-1.26,3.8l-3.27-0.76l-4.02-4.3l2.51-6.58l3.52-3.8l3.27,0.25l-0.5,5.82l1.76,1.52l4.27-4.3l1.51-0.25l-0.5-3.29l4.02-4.81l3.02,0.25l1.76-5.57l2.06-1.09l0.21-3.47l-2-2.1l-0.17-5.48l3.85-0.25l-0.25-14.13l-2.7,1.62l-1.01,3.62l-4.51-0.01l-13.07-7.35l-9.44-11.38l-9.58-0.1l-2.44,2.12l3.1,7.1l-1.08,6.66l-3.86,1.6l-2.17-0.17l-0.16,6.59l2.26,0.51l4.02-1.77l5.28,2.53v2.53l-3.77,0.25l-3.02,6.58l-2.76,0.25l-9.8,12.91l-10.3,4.56l-7.04,0.51l-4.77-3.29l-6.79,3.55l-7.29-2.28l-1.76-4.81l-12.31-0.76l-6.53-10.63h-2.76l-2.22-4.93L670.4,170.07z","name":"China"},"tw":{"path":"M787.46,248.31l-3.54,2.7l-0.19,5.2l3.06,3.56l0.76-0.67L787.46,248.31L787.46,248.31z","name":"Taiwan"},"jp":{"path":"M803.23,216.42l-1.63,1.64l0.67,2.31l1.43,0.1l0.96,5.01l1.15,1.25l2.01-1.83l0.86-3.28l-2.49-3.56L803.23,216.42L803.23,216.42M812.03,213.15l-2.77,2.6l-0.1,2.99l0.67,0.87l3.73-3.18l-0.29-3.18L812.03,213.15L812.03,213.15M808.2,206.98l-4.88,5.59l0.86,1.35l2.39,0.29l4.49-3.47l3.16-0.58l2.87,3.37l2.2-0.77l0.86-3.28l4.11-0.1l4.02-4.82l-2.1-8l-0.96-4.24l2.1-1.73l-4.78-7.22l-1.24,0.1l-2.58,2.89v2.41l1.15,1.35l0.38,6.36l-2.96,3.66l-1.72-1.06l-1.34,2.99l-0.29,2.79l1.05,1.64l-0.67,1.25l-2.2-1.83h-1.53l-1.34,0.77L808.2,206.98L808.2,206.98M816.43,163.44l-1.53,1.35l0.77,2.89l1.34,1.35l-0.1,4.43l-1.72,0.67l-1.34,2.99l3.92,5.39l2.58-0.87l0.48-1.35l-2.77-2.5l1.72-2.22l1.82,0.29l1.43,1.54l0.1-3.18l3.92-3.18l2.2-0.58l-1.82-3.08l-0.86-1.35l-1.43,0.96l-1.24,1.54l-2.68-0.58l-2.77-1.83L816.43,163.44L816.43,163.44z","name":"Japan"},"ru":{"path":"M506.61,151.72l-1.5-0.15l-2.7,3.23v1.51l0.9,0.35l1.75,0.05l2.9-2.37l0.4-0.81L506.61,151.72L506.61,151.72M830.86,160.45l-2.68,3.76l0.19,1.83l1.34-0.58l3.15-3.95L830.86,160.45L830.86,160.45M834.4,154.96l-0.96,2.6l0.1,1.73l1.63-1.06l1.53-3.08V154L834.4,154.96L834.4,154.96M840.04,132.03l-1.24,1.54l0.1,2.41l1.15-0.1l1.91-3.37L840.04,132.03L840.04,132.03M837.75,137.91v4.24l1.34,0.48l0.96-1.54v-3.27L837.75,137.91L837.75,137.91M798.64,122.59l-0.09,6.17l7.74,11.95l2.77,10.4l4.88,9.25l1.91,0.67l1.63-1.35l0.76-2.22l-6.98-7.61l0.19-3.95l1.53-0.67l0.38-2.31l-13.67-19.36L798.64,122.59L798.64,122.59M852.57,103.42l-1.91,0.19l1.15,1.64l2.39,1.64l0.67-0.77L852.57,103.42L852.57,103.42M856.29,104.58l0.29,1.64l2.96,0.87l0.29-1.16L856.29,104.58L856.29,104.58M547.82,38.79l1.72,0.69l-1.21,2.08v2.95l-2.58,1.56H543l-1.55-1.91l0.17-2.08l1.21-1.56h2.41L547.82,38.79L547.82,38.79M554.36,36.88v2.08l1.72,1.39l2.41-0.17l2.07-1.91v-1.39h-1.89l-1.55,0.52l-1.21-1.39L554.36,36.88L554.36,36.88M564.18,37.06l1.21,2.6l2.41,0.17l1.72-0.69l-0.86-2.43l-2.24-0.52L564.18,37.06L564.18,37.06M573.99,33.59l-1.89-0.35l-1.72,1.74l0.86,1.56l0.52,2.43l2.24-1.73l0.52-1.91L573.99,33.59L573.99,33.59M584.49,51.98l-0.52,2.43l-3.96,3.47l-8.44,1.91l-6.89,11.45l-1.21,3.3l6.89,1.74l1.03-4.16l2.07-6.42l5.34-2.78l4.48-3.47l3.27-1.39h1.72v-4.68L584.49,51.98L584.49,51.98M562.28,77.31l4.65,0.52l1.55,5.38l3.96,4.16l-1.38,2.78h-2.41l-2.24-2.6l-4.99-0.17l-2.07-2.78v-1.91l3.1-0.87L562.28,77.31L562.28,77.31M634.95,18.15l-2.24-1.39h-2.58l-0.52,1.56l-2.75,1.56l-2.07,0.69l-0.34,2.08l4.82,0.35L634.95,18.15L634.95,18.15M640.28,18.67l-1.21,2.6l-2.41-0.17l-3.79,2.78l-1.03,3.47h2.41l1.38-2.26l3.27,2.43l3.1-1.39l2.24-1.91l-0.86-2.95l-1.21-2.08L640.28,18.67L640.28,18.67M645.28,20.58l1.21,4.86l1.89,4.51l2.07-3.64l3.96-0.87v-2.6l-2.58-1.91L645.28,20.58L645.28,20.58M739.76,12.8l2.69,2.26l1.91-0.79l0.56-3.17L741,8.39l-2.58,1.7l-6.28,0.57v2.83l-6.62,0.11v4.63l7.74,5.76l2.02-1.47l-0.45-4.07l4.94-1.24l-1.01-1.92l-1.79-1.81L739.76,12.8L739.76,12.8M746.94,10.09l1.79,3.39l6.96-0.79l1.91-2.49l-0.45-2.15l-1.91-0.79l-1.79,1.36l-5.16,1.13L746.94,10.09L746.94,10.09M746.49,23.31l-3.48-0.9L741,24.56l-0.9,2.94l4.71-0.45l3.59-1.81L746.49,23.31L746.49,23.31M836.68,3.76l-2.92-0.9L830.4,4.1l-1.68,2.49l2.13,2.83l5.61-2.49l1.12-1.24L836.68,3.76L836.68,3.76M817.97,72.93l1.76,6.08l3.52,1.01l3.52-5.57l-2.01-3.8l0.75-3.29h5.28l-1.26,2.53l0.5,9.12l-7.54,18.74l0.75,4.05l-0.25,6.84l14.07,20.51l2.76,0.76l0.25-16.71l2.76-2.53l-3.02-6.58l2.51-2.79l-5.53-7.34l-3.02,0.25l-1-12.15l7.79-2.03l0.5-3.55l4.02-1.01l2.26,2.03l2.76-11.14l4.77-8.1l3.77-2.03l3.27,0.25v-3.8l-5.28-1.01l-7.29-6.08l3.52-4.05l-3.02-6.84l2.51-2.53l3.02,4.05l7.54,2.79l8.29,0.76l1.01-3.54l-4.27-4.3l4.77-6.58l-10.81-3.8l-2.76,5.57l-3.52-4.56l-19.85-6.84l-18.85,3.29l-2.76,1.52v1.52l4.02,2.03l-0.5,4.81l-7.29-3.04l-16.08,6.33l-2.76-5.82h-11.06l-5.03,5.32l-17.84-4.05l-16.33,3.29l-2.01,5.06l2.51,0.76l-0.25,3.8l-15.83,1.77l1.01,5.06l-14.58-2.53l3.52-6.58l-14.83-0.76l1.26,6.84l-4.77,2.28l-4.02-3.8l-16.33,2.79l-6.28,5.82l-0.25,3.54l-4.02,0.25l-0.5-4.05l12.82-11.14v-7.6l-8.29-2.28l-10.81,3.54l-4.52-4.56h-2.01l-2.51,5.06l2.01,2.28l-14.33,7.85l-12.31,9.37l-7.54,10.38v4.3l8.04,3.29l-4.02,3.04l-8.54-3.04l-3.52,3.04l-5.28-6.08l-1.01,2.28l5.78,18.23l1.51,0.51l4.02-2.03l2.01,1.52v3.29l-3.77-1.52l-2.26,1.77l1.51,3.29l-1.26,8.61l-7.79,0.76l-0.5-2.79l4.52-2.79l1.01-7.6l-5.03-6.58l-1.76-11.39l-8.04-1.27l-0.75,4.05l1.51,2.03l-3.27,2.79l1.26,7.6l4.77,2.03l1.01,5.57l-4.78-3.04l-12.31-2.28l-1.51,4.05l-9.8,3.54l-1.51-2.53l-12.82,7.09l-0.25,4.81l-5.03,0.76l1.51-3.54v-3.54l-5.03-1.77l-3.27,1.27l2.76,5.32l2.01,3.54v2.79l-3.77-0.76l-0.75-0.76l-3.77,4.05l2.01,3.54l-8.54-0.25l2.76,3.55l-0.75,1.52h-4.52l-3.27-2.28l-0.75-6.33l-5.28-2.03v-2.53l11.06,2.28l6.03,0.51l2.51-3.8l-2.26-4.05l-16.08-6.33l-5.55,1.38l-1.9,1.63l0.59,3.75l2.36,0.41l-0.55,5.9l7.28,17.1l-5.26,8.34l-0.36,1.88l2.67,1.88l-2.41,1.59l-1.6,0.03l0.3,7.35l2.21,3.13l0.03,3.04l2.83,0.26l4.33,1.65l4.58,6.3l0.05,1.66l-1.49,2.55l3.42-0.19l3.33,0.96l4.5,6.37l11.08,1.01l-0.48,7.58l-3.82,3.27l0.79,1.28l-3.77,4.05l-1,3.8l2.26,3.29l7.29,2.53l3.02-1.77l19.35,7.34l0.75-2.03l-4.02-3.8v-4.81l-2.51-0.76l0.5-4.05l4.02-4.81l-7.21-5.4l0.5-7.51l7.71-5.07l9.05,0.51l1.51,2.79l9.3,0.51l6.79-3.8l-3.52-3.8l0.75-7.09l17.59-8.61l13.53,6.1l4.52-4.05l13.32,12.66l10.05-1.01l3.52,3.54l9.55,1.01l6.28-8.61l8.04,3.55l4.27,0.76l4.27-3.8l-3.77-2.53l3.27-5.06l9.3,3.04l2.01,4.05l4.02,0.25l2.51-1.77l6.79-0.25l0.75,1.77l7.79,0.51l5.28-5.57l10.81,1.27l3.27-1.27l1-6.08l-3.27-7.34l3.27-2.79h10.3l9.8,11.65l12.56,7.09h3.77l0.5-3.04l4.52-2.79l0.5,16.46l-4.02,0.25v4.05l2.26,2.79l-0.42,3.62l1.67,0.69l1.01-2.53l1.51,0.51l1,1.01l4.52-1.01l4.52-13.17l0.5-16.46l-5.78-13.17l-7.29-8.86l-3.52,0.51v2.79l-8.54-3.29l3.27-7.09l2.76-18.74l11.56-3.54l5.53-3.54h6.03L805.86,96l1.51,2.53l5.28-5.57l3.02,0.25l-0.5-3.29l-4.78-1.01l3.27-11.9L817.97,72.93L817.97,72.93z","name":"Russian Federation"},"us":{"path":"M69.17,53.35l3.46,6.47l2.22-0.5v-2.24L69.17,53.35L69.17,53.35M49.66,110.26l-0.17,3.01l2.16-0.5v-1.34L49.66,110.26L49.66,110.26M46.34,111.6l-4.32,2.18l0.67,2.34l1.66-1.34l3.32-1.51L46.34,111.6L46.34,111.6M28.39,114.44l-2.99-0.67l-0.5,1.34l0.33,2.51L28.39,114.44L28.39,114.44M22.07,114.28l-2.83-1.17l-1,1.84l1.83,1.84L22.07,114.28L22.07,114.28M12.27,111.6l-1.33-1.84l-1.33,0.5v2.51l1.5,1L12.27,111.6L12.27,111.6M1.47,99.71l1.66,1.17l-0.5,1.34H1.47V99.71L1.47,99.71M10,248.7l-0.14,2.33l2.04,1.37l1.22-1.09L10,248.7L10,248.7M15.29,252.13l-1.9,1.37l1.63,2.05l1.9-1.64L15.29,252.13L15.29,252.13M19.1,255.41l-1.63,2.19l0.54,1.37l2.31-1.09L19.1,255.41L19.1,255.41M21.81,259.65l-0.95,5.47l0.95,2.05l3.12-0.96l1.63-2.74l-3.4-3.15L21.81,259.65L21.81,259.65M271.05,281.06l-2.64-0.89l-2.12,1.33l1.06,1.24l3.61,0.53L271.05,281.06L271.05,281.06M93.11,44.89l-8.39,1.99l1.73,9.45l9.13,2.49l0.49,1.99L82.5,65.04l-7.65,12.68l2.71,13.43L82,94.13l3.46-3.23l0.99,1.99l-4.2,4.97l-16.29,7.46l-10.37,2.49l-0.25,3.73l23.94-6.96l9.87-2.74l9.13-11.19l10.12-6.71l-5.18,8.7l5.68,0.75l9.63-4.23l1.73,6.96l6.66,1.49l6.91,6.71l0.49,4.97l-0.99,1.24l1.23,4.72h1.73l0.25-7.96h1.97l0.49,19.64l4.94-4.23l-3.46-20.39h-5.18l-5.68-7.21l27.89-47.25l-27.64-21.63l-30.85,5.97l-1.23,9.45l6.66,3.98l-2.47,6.47L93.11,44.89L93.11,44.89M148.76,158.34l-1,4.02l-3.49-2.26h-1.74l-1,4.27l-12.21,27.36l3.24,23.84l3.99,2.01l0.75,6.53h8.22l7.97,6.02l15.69,1.51l1.74,8.03l2.49,1.76l3.49-3.51l2.74,1.25l2.49,11.54l4.23,2.76l3.49-6.53l10.71-7.78l6.97,3.26l5.98,0.5l0.25-3.76l12.45,0.25l2.49,2.76l0.5,6.27l-1.49,3.51l1.74,6.02h3.74l3.74-5.77l-1.49-2.76l-1.49-6.02l2.24-6.78l10.21-8.78l7.72-2.26l-1-7.28l10.71-11.55l10.71-1.76L272.8,199l10.46-6.02v-8.03l-1-0.5l-3.74,1.25l-0.5,4.92l-12.43,0.15l-9.74,6.47l-15.29,5l-2.44-2.99l6.94-10.5l-3.43-3.27l-2.33-4.44l-4.83-3.88l-5.25-0.44l-9.92-6.77L148.76,158.34L148.76,158.34z","name":"United States of America"},"mu":{"path":"M613.01,398.99l-1.52,1.99l0.3,2.15l3.2-2.61L613.01,398.99L613.01,398.99z","name":"Mauritius"},"re":{"path":"M607.38,402.37l-2.28,0.15l-0.15,1.99l1.52,0.31l2.28-1.07L607.38,402.37L607.38,402.37z","name":"Reunion"},"mg":{"path":"M592.3,372.92l-2.13,5.06l-3.65,6.44l-6.39,0.46l-2.74,3.22l0.46,9.82l-3.96,4.6l0.46,7.82l3.35,3.83l3.96-0.46l3.96-2.92l-0.91-4.6l9.13-15.8l-1.83-1.99l1.83-3.83l1.98,0.61l0.61-1.53l-1.83-7.82l-1.07-3.22L592.3,372.92L592.3,372.92z","name":"Madagascar"},"km":{"path":"M577.69,371.23l0.46,1.53l1.98,0.31l0.76-1.99L577.69,371.23L577.69,371.23M580.58,374.3l0.76,1.69h1.22l0.61-2.15L580.58,374.3L580.58,374.3z","name":"Comoros"},"sc":{"path":"M602.35,358.34l-0.61,1.23l1.67,1.38l1.22-1.38L602.35,358.34L602.35,358.34M610.88,349.14l-1.83,1.23l1.37,2.15h1.83L610.88,349.14L610.88,349.14M611.64,354.51l-1.22,1.38l0.91,1.38l1.67,0.31l0.15-2.92L611.64,354.51L611.64,354.51z","name":"Seychelles"},"mv":{"path":"M656.4,320.76l0.3,2.61l1.67,0.61l0.3-2.3L656.4,320.76L656.4,320.76M658.53,326.28l-0.15,3.22l1.22,0.61l1.07-2.15L658.53,326.28L658.53,326.28M658.84,332.57l-1.07,1.07l1.22,1.07l1.52-1.07L658.84,332.57L658.84,332.57z","name":"Maldives"},"pt":{"path":"M372.64,217.02l-1.36,1.37l2.44,1.37l0.27-1.91L372.64,217.02L372.64,217.02M379.97,216.2l-1.63,1.09l1.36,1.09l2.17-0.55L379.97,216.2L379.97,216.2M381.05,220.03l-0.81,2.19l1.08,1.37l1.36-1.09L381.05,220.03L381.05,220.03M387.56,224.4l-0.54,1.37l0.81,0.82l2.17-1.37L387.56,224.4L387.56,224.4M408.18,236.42l-1.08,1.37l1.08,1.37l1.63-0.82L408.18,236.42L408.18,236.42M430.93,211.24l-0.62,8.65l-1.77,1.6l0.18,0.98l1.24,2.05l-0.8,2.5l1.33,0.45l3.1-0.36l-0.18-2.5l2.03-11.59l-0.44-1.6L430.93,211.24L430.93,211.24z","name":"Portugal"},"es":{"path":"M415.62,253.73l-1.75,1.01l0.81,0.82L415.62,253.73L415.62,253.73M409.54,253.92l-2.17,0.55l1.08,1.64h1.63L409.54,253.92L409.54,253.92M404.38,252.28l-1.36,1.37l1.9,1.64l1.08-2.46L404.38,252.28L404.38,252.28M448.36,205h-12.74l-2.57-1.16l-1.24,0.09l-1.5,3.12l0.53,3.21l4.87,0.45l0.62,2.05l-2.12,11.95l0.09,2.14l3.45,1.87l3.98,0.27l7.96-1.96l3.89-4.9l0.09-4.99l6.9-6.24l0.35-2.76l-6.28-0.09L448.36,205L448.36,205M461.1,217.21l-1.59,0.54l0.35,1.43h2.3l0.97-1.07L461.1,217.21L461.1,217.21z","name":"Spain"},"cv":{"path":"M387.56,290.54l-1.9,1.09l1.36,1.09l1.63-0.82L387.56,290.54L387.56,290.54M392.23,292.74l-1.24,1.1l0.88,1.63l2.12-0.95L392.23,292.74L392.23,292.74M389.52,295.83l-1.59,0.95l1.71,2.29l1.35-0.71L389.52,295.83L389.52,295.83z","name":"Cape Verde"},"pf":{"path":"M27.25,402.68l-1.9-0.14l-0.14,1.78l1.49,0.96l1.77-1.09L27.25,402.68L27.25,402.68M33.77,404.6l-2.72,1.78l2.04,2.46l1.77-0.41l0.95-1.23L33.77,404.6L33.77,404.6z","name":"French Polynesia"},"kn":{"path":"M276.6,283.37l-1.5,0.62l0.53,1.33l1.76-1.15l-0.35-0.36L276.6,283.37L276.6,283.37z","name":"Saint Kitts and Nevis"},"ag":{"path":"M279.07,284.88l-0.88,1.87l1.06,1.42l1.32-1.15L279.07,284.88L279.07,284.88z","name":"Antigua and Barbuda"},"dm":{"path":"M282.07,290.03l-1.06,0.98l0.79,1.6l1.5-0.44L282.07,290.03L282.07,290.03z","name":"Dominica"},"lc":{"path":"M281.98,294.03l-0.71,1.51l1.15,1.24l1.5-0.8L281.98,294.03L281.98,294.03z","name":"Saint Lucia"},"bb":{"path":"M282.07,297.85l-1.23,0.89l0.97,1.78l1.59-0.89L282.07,297.85L282.07,297.85z","name":"Barbados"},"gd":{"path":"M280.57,301.31l-1.15,1.15l0.44,0.71h1.41l0.44-1.16L280.57,301.31L280.57,301.31z","name":"Grenada"},"tt":{"path":"M282.24,304.78l-1.06,0.98l-1.15,0.18v1.42l2.12,1.95l0.88-1.42l0.53-1.6l-0.18-1.33L282.24,304.78L282.24,304.78z","name":"Trinidad and Tobago"},"do":{"path":"M263.11,280.44l-5.29-3.46l-2.5-0.85l-0.84,6l0.88,1.69l1.15-1.33l3.35-0.89l2.91,0.62L263.11,280.44L263.11,280.44z","name":"Dominican Republic"},"ht":{"path":"M250.86,275.38l3.44,0.36l-0.41,4.22l-0.34,2.22l-4.01-0.22l-0.71,1.07l-1.23-0.09l-0.44-2.31l4.23-0.35l-0.26-2.4l-1.94-0.8L250.86,275.38L250.86,275.38z","name":"Haiti"},"fk":{"path":"M307.95,508.18l-2.63-0.29l-2.62,1.76l1.9,2.06L307.95,508.18L307.95,508.18M310.57,506.86l-0.87,2.79l-2.48,2.2l0.15,0.73l4.23-1.62l1.75-2.2L310.57,506.86L310.57,506.86z","name":"Falkland Islands"},"is":{"path":"M406.36,117.31l-1.96-1.11l-2.64,1.67l-2.27,2.1l0.06,1.17l2.94,0.37l-0.18,2.1l-1.04,1.05l0.25,0.68l2.94,0.19v3.4l4.23,0.74l2.51,1.42l2.82,0.12l4.84-2.41l3.74-4.94l0.06-3.34l-2.27-1.92l-1.9-1.61l-0.86,0.62l-1.29,1.67l-1.47-0.19l-1.47-1.61l-1.9,0.18l-2.76,2.29l-1.66,1.79l-0.92-0.8l-0.06-1.98l0.92-0.62L406.36,117.31L406.36,117.31z","name":"Iceland"},"no":{"path":"M488.26,53.96l-1.65-1.66l-3.66,1.78h-6.72L475.17,58l3.77,3.33l1.65-0.24l2.36-4.04l2,1.43l-1.42,2.85l-0.71,4.16l1.65,2.61l3.54-5.94l4.6-5.59l-1.77-1.54L488.26,53.96L488.26,53.96M490.26,46.83l-2.95,2.73l1.77,2.73h3.18l1.3,1.78l3.89,2.02l4.48-2.61l3.07-2.61l-1.06-2.14l-3.07-1.78l-2.24,2.02l-1.53-1.9l-1.18,0.12l-1.53,3.33l-2.24-2.26l-0.24-1.54L490.26,46.83L490.26,46.83M496.98,59.07l-2.36,2.14l-2,1.54l0.94,1.66l1.89,0.59l3.07-1.43l1.42-1.78l-1.3-2.14L496.98,59.07L496.98,59.07M515.46,102.14l2.02-1.48L517.3,99l-1.28-0.74l0.18-2.03h1.1v-1.11l-4.77-1.29l-7.15,0.74l-0.73,3.14L503,97.16l-1.1-1.85l-3.49,0.18L498.04,99l-1.65,0.74l-0.92-1.85l-7.34,5.91l1.47,1.66l-2.75,1.29l-6.24,12.38l-2.2,1.48l0.18,1.11l2.2,1.11l-0.55,2.4l-3.67-0.19l-1.1-1.29l-2.38,2.77l-1.47,1.11l-0.37,2.59l-1.28,0.74l-3.3,0.74l-1.65,5.18l1.1,8.5l1.28,3.88l1.47,1.48l3.3-0.18l4.77-4.62l1.83-3.14l0.55,4.62l3.12-5.54l0.18-15.53l2.54-1.6l0.76-8.57l7.7-11.09l3.67-1.29l1.65-2.03l5.5,1.29l2.75,1.66l0.92-4.62l4.59-2.77L515.46,102.14L515.46,102.14z","name":"Norway"},"lk":{"path":"M680.54,308.05l0.25,2.72l0.25,1.98l-1.47,0.25l0.74,4.45l2.21,1.24l3.43-1.98l-0.98-4.69l0.25-1.73l-3.19-2.96L680.54,308.05L680.54,308.05z","name":"Sri Lanka"},"cu":{"path":"M220.85,266.92v1.27l5.32,0.1l2.51-1.46l0.39,1.07l5.22,1.27l4.64,4.19l-1.06,1.46l0.19,1.66l3.87,0.97l3.87-1.75l1.74-1.75l-2.51-1.27l-12.95-7.6l-4.54-0.49L220.85,266.92L220.85,266.92z","name":"Cuba"},"bs":{"path":"M239.61,259.13l-1.26-0.39l-0.1,2.43l1.55,1.56l1.06-1.56L239.61,259.13L239.61,259.13M242.12,262.93l-1.74,0.97l1.64,2.34l0.87-1.17L242.12,262.93L242.12,262.93M247.73,264.68l-1.84-0.1l0.19,1.17l1.35,1.95l1.16-1.27L247.73,264.68L247.73,264.68M246.86,262.35l-3-1.27l-0.58-3.02l1.16-0.49l1.16,2.34l1.16,0.88L246.86,262.35L246.86,262.35M243.96,256.21l-1.55-0.39l-0.29-1.95l-1.64-0.58l1.06-1.07l1.93,0.68l1.45,0.88L243.96,256.21L243.96,256.21z","name":"Bahamas"},"jm":{"path":"M238.93,279.59l-3.48,0.88v0.97l2.03,1.17h2.13l1.35-1.56L238.93,279.59L238.93,279.59z","name":"Jamaica"},"ec":{"path":"M230.2,335.85l-4.73,2.94l-0.34,4.36l-0.95,1.43l2.98,2.86l-1.29,1.41l0.3,3.6l5.33,1.27l8.07-9.55l-0.02-3.33l-3.87-0.25L230.2,335.85L230.2,335.85z","name":"Ecuador"},"ca":{"path":"M203.73,35.89l0.22,4.02l-7.98,8.27l2,6.7l5.76-1.56l3.33-4.92l8.42-3.13l6.87-0.45l-5.32-5.81l-2.66,2.01l-2-0.67l-1.11-2.46l-2.44-2.46L203.73,35.89L203.73,35.89M214.15,24.05l-1.77,3.13l8.65,3.13l3.1-4.69l1.33,3.13h2.22l4.21-4.69l-5.1-1.34l-2-1.56l-2.66,2.68L214.15,24.05L214.15,24.05M229.23,30.31l-6.87,2.9v2.23l8.87,3.35l-2,2.23l1.33,2.9l5.54-2.46h4.66l2.22,3.57l3.77-3.8l-0.89-3.58l-3.1,1.12l-0.44-4.47l1.55-2.68h-1.55l-2.44,1.56l-1.11,0.89l0.67,3.13l-1.77,1.34l-2.66-0.22l-0.67-4.02L229.23,30.31L229.23,30.31M238.32,23.38l-0.67,2.23l4.21,2.01l3.1-1.79l-0.22-1.34L238.32,23.38L238.32,23.38M241.64,19.58l-3.1,1.12l0.22,1.56l6.87-0.45l-0.22-1.56L241.64,19.58L241.64,19.58M256.5,23.38l-0.44,1.56l-1.11,1.56v2.23l4.21-0.67l4.43,3.8h1.55v-3.8l-4.43-4.92L256.5,23.38L256.5,23.38M267.81,27.85l1.77,2.01l-1.55,2.68l1.11,2.9l4.88-2.68v-2.01l-2.88-3.35L267.81,27.85L267.81,27.85M274.24,22.71l0.22,3.57h5.99l1.55,1.34l-0.22,1.56l-5.32,0.67l3.77,5.14l5.1,0.89l7.09-3.13l-10.2-15.42l-3.1,2.01l0.22,2.68l-3.55-1.34L274.24,22.71L274.24,22.71M222.58,47.96l-8.42,2.23l-4.88,4.25l0.44,4.69l8.87,2.68l-2,4.47l-6.43-4.02l-1.77,3.35l4.21,2.9l-0.22,4.69l6.43,1.79l7.76-0.45l1.33-2.46l5.76,6.48l3.99-1.34l0.67-4.47l2.88,2.01l0.44-4.47l-3.55-2.23l0.22-14.07l-3.1-2.46L231.89,56L222.58,47.96L222.58,47.96M249.63,57.79l-2.88-1.34l-1.55,2.01l3.1,4.92l0.22,4.69l6.65-4.02v-5.81l2.44-2.46l-2.44-1.79h-3.99L249.63,57.79L249.63,57.79M263.82,55.78l-4.66,3.8l1.11,4.69h2.88l1.33-2.46l2,2.01l2-0.22l5.32-4.47L263.82,55.78L263.82,55.78M263.37,48.4l-1.11,2.23l4.88,1.79l1.33-2.01L263.37,48.4L263.37,48.4M260.49,39.91l-4.88,0.67l-2.88,2.68l5.32,0.22l-1.55,4.02l1.11,1.79l1.55-0.22l3.77-6.03L260.49,39.91L260.49,39.91M268.92,38.35l-2.66,0.89l0.44,3.57l4.43,2.9l0.22,2.23l-1.33,1.34l0.67,4.47l17.07,5.58l4.66,1.56l4.66-4.02l-5.54-4.47l-5.1,1.34l-7.09-0.67l-2.66-2.68l-0.67-7.37l-4.43-2.23L268.92,38.35L268.92,38.35M282.88,61.59L278,61.14l-5.76,2.23l-3.1,4.24l0.89,11.62l9.53,0.45l9.09,4.47l6.43,7.37l4.88-0.22l-1.33,6.92l-4.43,7.37l-4.88,2.23l-3.55-0.67l-1.77-1.56l-2.66,3.57l1.11,3.57l3.77,0.22l4.66-2.23l3.99,10.28l9.98,6.48l6.87-8.71l-5.76-9.38l3.33-3.8l4.66,7.82l8.42-7.37l-1.55-3.35l-5.76,1.79l-3.99-10.95l3.77-6.25l-7.54-8.04l-4.21,2.9l-3.99-8.71l-8.42,1.12l-2.22-10.5l-6.87,4.69l-0.67,5.81h-3.77l0.44-5.14L282.88,61.59L282.88,61.59M292.86,65.61l-1.77,1.79l1.55,2.46l7.32,0.89l-4.66-4.92L292.86,65.61L292.86,65.61M285.77,40.36v2.01l-4.88,1.12l1.33,2.23l5.54,2.23l6.21,0.67l4.43,3.13l4.43-2.46l-3.1-3.13h3.99l2.44-2.68l5.99-0.89v-1.34l-3.33-2.23l0.44-2.46l9.31,1.56l13.75-5.36l-5.1-1.56l1.33-1.79h10.64l1.77-1.79l-21.51-7.6l-5.1-1.79l-5.54,4.02l-6.21-5.14l-3.33-0.22l-0.67,4.25l-4.21-3.8l-4.88,1.56l0.89,2.46l7.32,1.56l-0.44,3.57l3.99,2.46l9.76-2.46l0.22,3.35l-7.98,3.8l-4.88-3.8l-4.43,0.45l4.43,6.26l-2.22,1.12l-3.33-2.9l-2.44,1.56l2.22,4.24h3.77l-0.89,4.02l-3.1-0.45l-3.99-4.25L285.77,40.36L285.77,40.36M266.01,101.85l-4.23,5.32l-0.26,5.86l3.7-2.13h4.49l3.17,2.93l2.91-2.4L266.01,101.85L266.01,101.85M317.52,171.05l-10.57,10.12l1.06,2.4l12.94,4.79l1.85-3.19l-1.06-5.32l-4.23,0.53l-2.38-2.66l3.96-3.99L317.52,171.05L317.52,171.05M158.22,48.66l1.99,3.01l1,4.02l4.98,1.25l3.49-3.76l2.99,1.51l8.47,0.75l5.98-2.51l1,8.28h3.49V57.7l3.49,0.25l8.72,10.29l5.73,3.51l-2.99,4.77l1.25,1.25L219,80.03l0.25,5.02l2.99,0.5l0.75-7.53l4.73-1.25l3.49,5.27l7.47,3.51l3.74,0.75l2.49-3.01l0.25-4.77l4.48-2.76l1.49,4.02l-3.99,7.03l0.5,3.51l2.24-3.51l4.48-4.02l0.25-5.27l-2.49-4.02l0.75-3.26l5.98-3.01l2.74,2.01l0.5,17.57l4.23-3.76l2.49,1.51l-3.49,6.02l4.48,1l6.48-10.04l5.48,5.77l-2.24,10.29l-5.48,3.01l-5.23-2.51l-9.46,2.01l1,3.26l-2.49,4.02l-7.72,1.76l-8.72,6.78l-7.72,10.29l-1,3.26l5.23,2.01l1.99,5.02l7.22,7.28l11.46,5.02l-2.49,11.54l-0.25,3.26l2.99,2.01l3.99-5.27l0.5-10.04l6.23-0.25l2.99-5.77l0.5-8.78l7.97-15.56l9.96,3.51l5.23,7.28l-2.24,7.28l3.99,2.26l9.71-6.53l2.74,17.82l8.97,10.79l0.25,5.52l-9.96,2.51l-4.73,5.02l-9.96-2.26l-4.98-0.25l-8.72,6.78l5.23-1.25l6.48-1.25l1.25,1.51l-1.74,5.52l0.25,5.02l2.99,2.01l2.99-0.75l1.5-2.26h1.99l-3.24,6.02l-6.23,0.25l-2.74,4.02h-3.49l-1-3.01l4.98-5.02l-5.98,2.01l-0.27-8.53l-1.72-1l-5.23,2.26l-0.5,4.27h-11.96l-10.21,7.03l-13.7,4.52l-1.49-2.01l6.9-10.3l-3.92-3.77l-2.49-4.78l-5.07-3.87l-5.44-0.45l-9.75-6.83l-70.71-11.62l-1.17-4.79l-6.48-6.02v-5.02l1-4.52l-0.5-2.51l-2.49-2.51l-0.5-4.02l6.48-4.52l-3.99-21.58l-5.48-0.25l-4.98-6.53L158.22,48.66L158.22,48.66M133.83,128.41l-1.7,3.26l0.59,2.31l1.11,0.69l-0.26,0.94l-1.19,0.34l0.34,3.43l1.28,1.29l1.02-1.11l-1.28-3.34l0.76-2.66l1.87-2.49l-1.36-2.31L133.83,128.41L133.83,128.41M139.45,147.95l-1.53,0.6l2.81,3.26l0.68,3.86l2.81,3l2.38-0.43v-3.94l-2.89-1.8L139.45,147.95L139.45,147.95z","name":"Canada"},"gt":{"path":"M194.88,291.52l5.93,4.34l5.98-7.43l-1.02-1.54l-2.04-0.07v-4.35l-1.53-0.93l-4.63,1.38l1.77,4.08L194.88,291.52L194.88,291.52z","name":"Guatemala"},"hn":{"path":"M207.55,288.78l9.24-0.35l2.74,3.26l-1.71-0.39l-3.29,0.14l-4.3,4.04l-1.84,4.09l-1.21-0.64l-0.01-4.48l-2.66-1.78L207.55,288.78L207.55,288.78z","name":"Honduras"},"sv":{"path":"M201.65,296.27l4.7,2.34l-0.07-3.71l-2.41-1.47L201.65,296.27L201.65,296.27z","name":"El Salvador"},"ni":{"path":"M217.74,292.11l2.19,0.44l0.07,4.49l-2.55,7.28l-6.87-0.68l-1.53-3.51l2.04-4.26l3.87-3.6L217.74,292.11L217.74,292.11z","name":"Nicaragua"},"cr":{"path":"M217.38,304.98l1.39,2.72l1.13,1.5l-1.52,4.51l-2.9-2.04l-4.74-4.34v-2.87L217.38,304.98L217.38,304.98z","name":"Costa Rica"},"pa":{"path":"M220.59,309.61l-1.46,4.56l4.82,1.25l2.99,0.59l0.51-3.53l3.21-1.62l2.85,1.47l1.12,1.79l1.36-0.16l1.07-3.25l-3.56-1.47l-2.7-1.47l-2.7,1.84l-3.21,1.62l-3.28-1.32L220.59,309.61L220.59,309.61z","name":"Panama"},"co":{"path":"M253.73,299.78l-2.06-0.21l-13.62,11.23l-1.44,3.95l-1.86,0.21l0.83,8.73l-4.75,11.65l5.16,4.37l6.61,0.42l4.54,6.66l6.6,0.21l-0.21,4.99H256l2.68-9.15l-2.48-3.12l0.62-5.82l5.16-0.42l-0.62-13.52l-11.56-3.74l-2.68-7.28L253.73,299.78L253.73,299.78z","name":"Colombia"},"ve":{"path":"M250.46,305.92l0.44,2.59l3.25,1.03l0.74-4.77l3.43-3.55l3.43,4.02l7.89,2.15l6.68-1.4l4.55,5.61l3.43,2.15l-3.76,5.73l1.26,4.34l-2.15,2.66l-2.23,1.87l-4.83-2.43l-1.11,1.12v3.46l3.53,1.68l-2.6,2.81l-2.6,2.81l-3.43-0.28l-3.45-3.79l-0.73-14.26l-11.78-4.02l-2.14-6.27L250.46,305.92L250.46,305.92z","name":"Venezuela"},"gy":{"path":"M285.05,314.13l7.22,6.54l-2.87,3.32l-0.23,1.97l3.77,3.89l-0.09,3.74l-6.56,2.5l-3.93-5.31l0.84-6.38l-1.68-4.75L285.05,314.13L285.05,314.13z","name":"Guyana"},"sr":{"path":"M293.13,321.14l2.04,1.87l3.16-1.96l2.88,0.09l-0.37,1.12l-1.21,2.52l-0.19,6.27l-5.75,2.34l0.28-4.02l-3.71-3.46l0.19-1.78L293.13,321.14L293.13,321.14z","name":"Suriname"},"gf":{"path":"M302.13,321.8l5.85,3.65l-3.06,6.08l-1.11,1.4l-3.25-1.87l0.09-6.55L302.13,321.8L302.13,321.8z","name":"French Guiana"},"pe":{"path":"M225.03,349.52l-1.94,1.96l0.13,3.13l16.94,30.88l17.59,11.34l2.72-4.56l0.65-10.03l-1.42-6.25l-4.79-8.08l-2.85,0.91l-1.29,1.43l-5.69-6.52l1.42-7.69l6.6-4.3l-0.52-4.04l-6.72-0.26l-3.49-5.86l-1.94-0.65l0.13,3.52l-8.66,10.29l-6.47-1.56L225.03,349.52L225.03,349.52z","name":"Peru"},"bo":{"path":"M258.71,372.79l8.23-3.59l2.72,0.26l1.81,7.56l12.54,4.17l2.07,6.39l5.17,0.65l2.2,5.47l-1.55,4.95l-8.41,0.65l-3.1,7.95l-6.6-0.13l-2.07-0.39l-3.81,3.7l-1.88-0.18l-6.47-14.99l1.79-2.68l0.63-10.6l-1.6-6.31L258.71,372.79L258.71,372.79z","name":"Bolivia"},"py":{"path":"M291.76,399.51l2.2,2.4l-0.26,5.08l6.34-0.39l4.79,6.13l-0.39,5.47l-3.1,4.69l-6.34,0.26l-0.26-2.61l1.81-4.3l-6.21-3.91h-5.17l-3.88-4.17l2.82-8.06L291.76,399.51L291.76,399.51z","name":"Paraguay"},"uy":{"path":"M300.36,431.93l-2.05,2.19l0.85,11.78l6.44,1.87l8.19-8.21L300.36,431.93L300.36,431.93z","name":"Uruguay"},"ar":{"path":"M305.47,418.2l1.94,1.82l-7.37,10.95l-2.59,2.87l0.9,12.51l5.69,6.91l-4.78,8.34l-3.62,1.56h-4.14l1.16,6.51l-6.47,2.22l1.55,5.47l-3.88,12.38l4.79,3.91l-2.59,6.38l-4.4,6.91l2.33,4.82l-5.69,0.91l-4.66-5.73l-0.78-17.85l-7.24-30.32l2.19-10.6l-4.66-13.55l3.1-17.59l2.85-3.39l-0.7-2.57l3.66-3.34l8.16,0.56l4.56,4.87l5.27,0.09l5.4,3.3l-1.59,3.72l0.38,3.76l7.65-0.36L305.47,418.2L305.47,418.2M288.92,518.79l0.26,5.73l4.4-0.39l3.75-2.48l-6.34-1.3L288.92,518.79L288.92,518.79z","name":"Argentina"},"cl":{"path":"M285.04,514.1l-4.27,9.38l7.37,0.78l0.13-6.25L285.04,514.1L285.04,514.1M283.59,512.63l-3.21,3.55l-0.39,4.17l-6.21-3.52l-6.6-9.51l-1.94-3.39l2.72-3.52l-0.26-4.43l-3.1-1.3l-2.46-1.82l0.52-2.48l3.23-0.91l0.65-14.33l-5.04-2.87l-3.29-74.59l0.85-1.48l6.44,14.85l2.06,0.04l0.67,2.37l-2.74,3.32l-3.15,17.87l4.48,13.76l-2.07,10.42l7.3,30.64l0.77,17.92l5.23,6.05L283.59,512.63L283.59,512.63M262.28,475.14l-1.29,1.95l0.65,3.39l1.29,0.13l0.65-4.3L262.28,475.14L262.28,475.14z","name":"Chile"},"br":{"path":"M314.24,438.85l6.25-12.02l0.23-10.1l11.66-7.52h6.53l5.13-8.69l0.93-16.68l-2.1-4.46l12.36-11.28l0.47-12.45l-16.79-8.22l-20.28-6.34l-9.56-0.94l2.57-5.4l-0.7-8.22l-2.09-0.69l-3.09,6.14l-1.62,2.03l-4.16-1.84l-13.99,4.93l-4.66-5.87l0.75-6.13l-4.4,4.48l-4.86-2.62l-0.49,0.69l0.01,2.13l4.19,2.25l-6.29,6.63l-3.97-0.04l-4.02-4.09l-4.55,0.14l-0.56,4.86l2.61,3.17l-3.08,9.87l-3.6,0.28l-5.73,3.62l-1.4,7.11l4.97,5.32l0.91-1.03l3.49-0.94l2.98,5.02l8.53-3.66l3.31,0.19l2.28,8.07l12.17,3.86l2.1,6.44l5.18,0.62l2.47,6.15l-1.67,5.47l2.18,2.86l-0.32,4.26l5.84-0.55l5.35,6.76l-0.42,4.75l3.17,2.68l-7.6,11.51L314.24,438.85L314.24,438.85z","name":"Brazil"},"bz":{"path":"M204.56,282.4l-0.05,3.65h0.84l2.86-5.34h-1.94L204.56,282.4L204.56,282.4z","name":"Belize"},"mn":{"path":"M673.8,170.17l5.82-7.72l6.99,3.23l4.75,1.27l5.82-5.34l-3.95-2.91l2.6-3.67l7.76,2.74l2.69,4.41l4.86,0.13l2.54-1.89l5.23-0.21l1.14,1.94l8.69,0.44l5.5-5.61l7.61,0.8l-0.44,7.64l3.33,0.76l4.09-1.86l4.33,2.14l-0.1,1.08l-3.14,0.09l-3.27,6.86l-2.54,0.25l-9.88,12.91l-10.09,4.45l-6.31,0.49l-5.24-3.38l-6.7,3.58l-6.6-2.05l-1.87-4.79l-12.5-0.88l-6.4-10.85l-3.11-0.2L673.8,170.17L673.8,170.17z","name":"Mongolia"},"kp":{"path":"M778.28,194.27l1.84,0.77l0.56,6.44l3.65,0.21l3.44-4.03l-1.19-1.06l0.14-4.32l3.16-3.82l-1.61-2.9l1.05-1.2l0.58-3l-1.83-0.83l-1.56,0.79l-1.93,5.86l-3.12-0.27l-3.61,4.26L778.28,194.27L778.28,194.27z","name":"North Korea"},"kr":{"path":"M788.34,198.2l6.18,5.04l1.05,4.88l-0.21,2.62l-3.02,3.4l-2.6,0.14l-2.95-6.37l-1.12-3.04l1.19-0.92l-0.28-1.27l-1.47-0.66L788.34,198.2L788.34,198.2z","name":"South Korea"},"kz":{"path":"M576.69,188.62l4.1-1.75l4.58-0.16l0.32,7h-2.68l-2.05,3.34l2.68,4.45l3.95,2.23l0.36,2.55l1.45-0.48l1.34-1.59l2.21,0.48l1.11,2.23h2.84v-2.86l-1.74-5.09l-0.79-4.13l5.05-2.23l6.79,1.11l4.26,4.29l9.63-0.95l5.37,7.63l6.31,0.32l1.74-2.86l2.21-0.48l0.32-3.18l3.31-0.16l1.74,2.07l1.74-4.13l14.99,2.07l2.52-3.34l-4.26-5.25l5.68-12.4l4.58,0.32l3.16-7.63l-6.31-0.64l-3.63-3.5l-10,1.16l-12.88-12.45l-4.54,4.03l-13.77-6.25l-16.89,8.27l-0.47,5.88l3.95,4.61l-7.7,4.35l-9.99-0.22l-2.09-3.07l-7.83-0.43l-7.42,4.77l-0.16,6.52L576.69,188.62L576.69,188.62z","name":"Kazakhstan"},"tm":{"path":"M593.85,207.59l-0.62,2.63h-4.15v3.56l4.46,2.94l-1.38,4.03v1.86l1.85,0.31l2.46-3.25l5.54-1.24l11.84,4.49l0.15,3.25l6.61,0.62l7.38-7.75l-0.92-2.48l-4.92-1.08l-13.84-8.99l-0.62-3.25h-5.23l-2.31,4.34h-2.31L593.85,207.59L593.85,207.59z","name":"Turkmenistan"},"uz":{"path":"M628.92,219.06l3.08,0.16v-5.27l-2.92-1.7l4.92-6.2h2l2,2.33l5.23-2.01l-7.23-2.48l-0.28-1.5l-1.72,0.42l-1.69,2.94l-7.29-0.24l-5.35-7.57l-9.4,0.93l-4.48-4.44l-6.2-1.05l-4.5,1.83l2.61,8.68l0.03,2.92l1.9,0.04l2.33-4.44l6.2,0.08l0.92,3.41l13.29,8.82l5.14,1.18L628.92,219.06L628.92,219.06z","name":"Uzbekistan"},"tj":{"path":"M630.19,211.84l4.11-5.1h1.55l0.54,1.14l-1.9,1.38v1.14l1.25,0.9l6.01,0.36l1.96-0.84l0.89,0.18l0.6,1.92l3.57,0.36l1.79,3.78l-0.54,1.14l-0.71,0.06l-0.71-1.44l-1.55-0.12l-2.68,0.36l-0.18,2.52l-2.68-0.18l0.12-3.18l-1.96-1.92l-2.98,2.46l0.06,1.62l-2.62,0.9h-1.55l0.12-5.58L630.19,211.84L630.19,211.84z","name":"Tajikistan"},"kg":{"path":"M636.81,199.21l-0.31,2.53l0.25,1.56l8.7,2.92l-7.64,3.08l-0.87-0.72l-1.65,1.06l0.08,0.58l0.88,0.4l5.36,0.14l2.72-0.82l3.49-4.4l4.37,0.76l5.27-7.3l-14.1-1.92l-1.95,4.73l-2.46-2.64L636.81,199.21L636.81,199.21z","name":"Kyrgyz Republic"},"af":{"path":"M614.12,227.05l1.59,12.46l3.96,0.87l0.37,2.24l-2.84,2.37l5.29,4.27l10.28-3.7l0.82-4.38l6.47-4.04l2.48-9.36l1.85-1.99l-1.92-3.34l6.26-3.87l-0.8-1.12l-2.89,0.18l-0.26,2.66l-3.88-0.04l-0.07-3.55l-1.25-1.49l-2.1,1.91l0.06,1.75l-3.17,1.2l-5.85-0.37l-7.6,7.96L614.12,227.05L614.12,227.05z","name":"Afghanistan"},"pk":{"path":"M623.13,249.84l2.6,3.86l-0.25,1.99l-3.46,1.37l-0.25,3.24h3.96l1.36-1.12h7.54l6.8,5.98l0.87-2.87h5.07l0.12-3.61l-5.19-4.98l1.11-2.74l5.32-0.37l7.17-14.95l-3.96-3.11l-1.48-5.23l9.64-0.87l-5.69-8.1l-3.03-0.82l-1.24,1.5l-0.93,0.07l-5.69,3.61l1.86,3.12l-2.1,2.24l-2.6,9.59l-6.43,4.11l-0.87,4.49L623.13,249.84L623.13,249.84z","name":"Pakistan"},"in":{"path":"M670.98,313.01l4.58-2.24l2.72-9.84l-0.12-12.08l15.58-16.82v-3.99l3.21-1.25l-0.12-4.61l-3.46-6.73l1.98-3.61l4.33,3.99l5.56,0.25v2.24l-1.73,1.87l0.37,1l2.97,0.12l0.62,3.36h0.87l2.23-3.99l1.11-10.46l3.71-2.62l0.12-3.61l-1.48-2.87l-2.35-0.12l-9.2,6.08l0.58,3.91l-6.46-0.02l-2.28-2.79l-1.24,0.16l0.42,3.88l-13.97-1l-8.66-3.86l-0.46-4.75l-5.77-3.58l-0.07-7.37l-3.96-4.53l-9.1,0.87l0.99,3.96l4.46,3.61l-7.71,15.78l-5.16,0.39l-0.85,1.9l5.08,4.7l-0.25,4.75l-5.19-0.08l-0.56,2.36l4.31-0.19l0.12,1.87l-3.09,1.62l1.98,3.74l3.83,1.25l2.35-1.74l1.11-3.11l1.36-0.62l1.61,1.62l-0.49,3.99l-1.11,1.87l0.25,3.24L670.98,313.01L670.98,313.01z","name":"India"},"np":{"path":"M671.19,242.56l0.46,4.27l8.08,3.66l12.95,0.96l-0.49-3.13l-8.65-2.38l-7.34-4.37L671.19,242.56L671.19,242.56z","name":"Nepal"},"bt":{"path":"M695.4,248.08l1.55,2.12l5.24,0.04l-0.53-2.9L695.4,248.08L695.4,248.08z","name":"Bhutan"},"bd":{"path":"M695.57,253.11l-1.31,2.37l3.4,6.46l0.1,5.04l0.62,1.35l3.99,0.07l2.26-2.17l1.64,0.99l0.33,3.07l1.31-0.82l0.08-3.92l-1.1-0.13l-0.69-3.33l-2.78-0.1l-0.69-1.85l1.7-2.27l0.03-1.12h-4.94L695.57,253.11L695.57,253.11z","name":"Bangladesh"},"mm":{"path":"M729.44,303.65l-2.77-4.44l2.01-2.82l-1.9-3.49l-1.79-0.34l-0.34-5.86l-2.68-5.19l-0.78,1.24l-1.79,3.04l-2.24,0.34l-1.12-1.47l-0.56-3.95l-1.68-3.16l-6.84-6.45l1.68-1.11l0.31-4.67l2.5-4.2l1.08-10.45l3.62-2.47l0.12-3.81l2.17,0.72l3.42,4.95l-2.54,5.44l1.71,4.27l4.23,1.66l0.77,4.65l5.68,0.88l-1.57,2.71l-7.16,2.82l-0.78,4.62l5.26,6.76l0.22,3.61l-1.23,1.24l0.11,1.13l3.92,5.75l0.11,5.97L729.44,303.65L729.44,303.65z","name":"Myanmar"},"th":{"path":"M730.03,270.47l3.24,4.17v5.07l1.12,0.56l5.15-2.48l1.01,0.34l6.15,7.1l-0.22,4.85l-2.01-0.34l-1.79-1.13l-1.34,0.11l-2.35,3.94l0.45,2.14l1.9,1.01l-0.11,2.37l-1.34,0.68l-4.59-3.16v-2.82l-1.9-0.11l-0.78,1.24l-0.4,12.62l2.97,5.42l5.26,5.07l-0.22,1.47l-2.8-0.11l-2.57-3.83h-2.69l-3.36-2.71l-1.01-2.82l1.45-2.37l0.5-2.14l1.58-2.8l-0.07-6.44l-3.86-5.58l-0.16-0.68l1.25-1.26l-0.29-4.43l-5.14-6.51l0.6-3.75L730.03,270.47L730.03,270.47z","name":"Thailand"},"kh":{"path":"M740.48,299.47l4.09,4.37l7.61-5.64l0.67-8.9l-3.93,2.71l-2.04-1.14l-2.77-0.37l-1.55-1.09l-0.75,0.04l-2.03,3.33l0.33,1.54l2.06,1.15l-0.25,3.13L740.48,299.47L740.48,299.47z","name":"Cambodia"},"la":{"path":"M735.47,262.93l-2.42,1.23l-2.01,5.86l3.36,4.28l-0.56,4.73l0.56,0.23l5.59-2.71l7.5,8.38l-0.18,5.28l1.63,0.88l4.03-3.27l-0.33-2.59l-11.63-11.05l0.11-1.69l1.45-1.01l-1.01-2.82l-4.81-0.79L735.47,262.93L735.47,262.93z","name":"Lao People's Democratic Republic"},"vn":{"path":"M745.06,304.45l1.19,1.87l0.22,2.14l3.13,0.34l3.8-5.07l3.58-1.01l1.9-5.18l-0.89-8.34l-3.69-5.07l-3.89-3.11l-4.95-8.5l3.55-5.94l-5.08-5.83l-4.07-0.18l-3.66,1.97l1.09,4.71l4.88,0.86l1.31,3.63l-1.72,1.12l0.11,0.9l11.45,11.2l0.45,3.29l-0.69,10.4L745.06,304.45L745.06,304.45z","name":"Vietnam"},"ge":{"path":"M555.46,204.16l3.27,4.27l4.08,1.88l2.51-0.01l4.31-1.17l1.08-1.69l-12.75-4.77L555.46,204.16L555.46,204.16z","name":"Georgia"},"am":{"path":"M569.72,209.89l4.8,6.26l-1.41,1.65l-3.4-0.59l-4.22-3.78l0.23-2.48L569.72,209.89L569.72,209.89z","name":"Armenia"},"az":{"path":"M571.41,207.72l-1.01,1.72l4.71,6.18l1.64-0.53l2.7,2.83l1.17-4.96l2.93,0.47l-0.12-1.42l-4.82-4.22l-0.92,2.48L571.41,207.72L571.41,207.72z","name":"Azerbaijan"},"ir":{"path":"M569.65,217.95l-1.22,1.27l0.12,2.01l1.52,2.13l5.39,5.9l-0.82,2.36h-0.94l-0.47,2.36l3.05,3.9l2.81,0.24l5.63,7.79l3.16,0.24l2.46,1.77l0.12,3.54l9.73,5.67h3.63l2.23-1.89l2.81-0.12l1.64,3.78l10.51,1.46l0.31-3.86l3.48-1.26l0.16-1.38l-2.77-3.78l-6.17-4.96l3.24-2.95l-0.23-1.3l-4.06-0.63l-1.72-13.7l-0.2-3.15l-11.01-4.21l-4.88,1.1l-2.73,3.35l-2.42-0.16l-0.7,0.59l-5.39-0.35l-6.8-4.96l-2.53-2.77l-1.16,0.28l-2.09,2.39L569.65,217.95L569.65,217.95z","name":"Iran"},"tr":{"path":"M558.7,209.19l-2.23,2.36l-8.2-0.24l-4.92-2.95l-4.8-0.12l-5.51,3.9l-5.16,0.24l-0.47,2.95h-5.86l-2.34,2.13v1.18l1.41,1.18v1.3l-0.59,1.54l0.59,1.3l1.88-0.94l1.88,2.01l-0.47,1.42l-0.7,0.95l1.05,1.18l5.16,1.06l3.63-1.54v-2.24l1.76,0.35l4.22,2.48l4.57-0.71l1.99-1.89l1.29,0.47v2.13h1.76l1.52-2.95l13.36-1.42l5.83-0.71l-1.54-2.02l-0.03-2.73l1.17-1.4l-4.26-3.42l0.23-2.95h-2.34L558.7,209.19L558.7,209.19M523.02,209.7l-0.16,3.55l3.1-0.95l1.42-0.95l-0.42-1.54l-1.47-1.17L523.02,209.7L523.02,209.7z","name":"Turkey"},"om":{"path":"M598.38,280.84l7.39-4.26l1.31-6.25l-1.62-0.93l0.67-6.7l1.41-0.82l1.51,2.37l8.99,4.7v2.61l-10.89,16.03l-5.01,0.17L598.38,280.84L598.38,280.84z","name":"Oman"},"ae":{"path":"M594.01,264.94l0.87,3.48l9.86,0.87l0.69-7.14l1.9-1.04l0.52-2.61l-3.11,0.87l-3.46,5.23L594.01,264.94L594.01,264.94z","name":"United Arab Emirates"},"qa":{"path":"M592.63,259.02l-0.52,4.01l1.54,1.17l1.4-0.13l0.52-5.05l-1.21-0.87L592.63,259.02L592.63,259.02z","name":"Qatar"},"kw":{"path":"M583.29,247.17l-2.25-1.22l-1.56,1.57l0.17,3.14l3.63,1.39L583.29,247.17L583.29,247.17z","name":"Kuwait"},"sa":{"path":"M584,253.24l7.01,9.77l2.26,1.8l1.01,4.38l10.79,0.85l1.22,0.64l-1.21,5.4l-7.09,4.18l-10.37,3.14l-5.53,5.4l-6.57-3.83l-3.98,3.48L566,279.4l-3.8-1.74l-1.38-2.09v-4.53l-13.83-16.72l-0.52-2.96h3.98l4.84-4.18l0.17-2.09l-1.38-1.39l2.77-2.26l5.88,0.35l10.03,8.36l5.92-0.27l0.38,1.46L584,253.24L584,253.24z","name":"Saudi Arabia"},"sy":{"path":"M546.67,229.13l-0.35,2.54l2.82,1.18l-0.12,7.04l2.82-0.06l2.82-2.13l1.06-0.18l6.4-5.09l1.29-7.39l-12.79,1.3l-1.35,2.96L546.67,229.13L546.67,229.13z","name":"Syrian Arab Republic"},"iq":{"path":"M564.31,225.03l-1.56,7.71l-6.46,5.38l0.41,2.54l6.31,0.43l10.05,8.18l5.62-0.16l0.15-1.89l2.06-2.21l2.88,1.63l0.38-0.36l-5.57-7.41l-2.64-0.16l-3.51-4.51l0.7-3.32l1.07-0.14l0.37-1.47l-4.78-5.03L564.31,225.03L564.31,225.03z","name":"Iraq"},"jo":{"path":"M548.9,240.78l-2.46,8.58l-0.11,1.31h3.87l4.33-3.82l0.11-1.45l-1.77-1.81l3.17-2.63l-0.46-2.44l-0.87,0.2l-2.64,1.89L548.9,240.78L548.9,240.78z","name":"Jordan"},"lb":{"path":"M546.2,232.44l0.06,1.95l-0.82,2.96l2.82,0.24l0.18-4.2L546.2,232.44L546.2,232.44z","name":"Lebanon"},"il":{"path":"M545.32,238.06l-1.58,5.03l2.05,6.03l2.35-8.81v-1.89L545.32,238.06L545.32,238.06z","name":"Israel"},"cy":{"path":"M543.21,229.84l1.23,0.89l-3.81,3.61l-1.82-0.06l-1.35-0.95l0.18-1.77l2.76-0.18L543.21,229.84L543.21,229.84z","name":"Cyprus"},"gb":{"path":"M446.12,149.08l-1.83,2.77l0.73,1.11h4.22v1.85l-1.1,1.48l0.73,3.88l2.38,4.62l1.83,4.25l2.93,1.11l1.28,2.22l-0.18,2.03l-1.83,1.11l-0.18,0.92l1.28,0.74l-1.1,1.48l-2.57,1.11l-4.95-0.55l-7.71,3.51l-2.57-1.29l7.34-4.25l-0.92-0.55l-3.85-0.37l2.38-3.51l0.37-2.96l3.12-0.37l-0.55-5.73l-3.67-0.18l-1.1-1.29l0.18-4.25l-2.2,0.18l2.2-7.39l4.04-2.96L446.12,149.08L446.12,149.08M438.42,161.47l-3.3,0.37l-0.18,2.96l2.2,1.48l2.38-0.55l0.92-1.66L438.42,161.47L438.42,161.47z","name":"United Kingdom"},"ie":{"path":"M439.51,166.55l-0.91,6l-8.07,2.96h-2.57l-1.83-1.29v-1.11l4.04-2.59l-1.1-2.22l0.18-3.14l3.49,0.18l1.6-3.76l-0.21,3.34l2.71,2.15L439.51,166.55L439.51,166.55z","name":"Ireland"},"se":{"path":"M497.72,104.58l1.96,1.81h3.67l2.02,3.88l0.55,6.65l-4.95,3.51v3.51l-3.49,4.81l-2.02,0.18l-2.75,4.62l0.18,4.44l4.77,3.51l-0.37,2.03l-1.83,2.77l-2.75,2.4l0.18,7.95l-4.22,1.48l-1.47,3.14h-2.02l-1.1-5.54l-4.59-7.04l3.77-6.31l0.26-15.59l2.6-1.43l0.63-8.92l7.41-10.61L497.72,104.58L497.72,104.58M498.49,150.17l-2.11,1.67l1.06,2.45l1.87-1.82L498.49,150.17L498.49,150.17z","name":"Sweden"},"fi":{"path":"M506.79,116.94l2.07,0.91l1.28,2.4l-1.28,1.66l-6.42,7.02l-1.1,3.7l1.47,5.36l4.95,3.7l6.6-3.14l5.32-0.74l4.95-7.95l-3.67-8.69l-3.49-8.32l0.55-5.36l-2.2-0.37l-0.57-3.91l-2.96-4.83l-3.28,2.27l-1.29,5.27l-3.48-2.09l-4.84-1.18l-1.08,1.26l1.86,1.68l3.39-0.06l2.73,4.41L506.79,116.94L506.79,116.94z","name":"Finland"},"lv":{"path":"M518.07,151.37l-6.85-1.11l0.15,3.83l6.35,3.88l2.6-0.76l-0.15-2.92L518.07,151.37L518.07,151.37z","name":"Latvia"},"lt":{"path":"M510.81,154.7l-2.15-0.05l-2.95,2.82h-2.5l0.15,3.53l-1.5,2.77l5.4,0.05l1.55-0.2l1.55,1.87l3.55-0.15l3.4-4.33l-0.2-2.57L510.81,154.7L510.81,154.7z","name":"Lithuania"},"by":{"path":"M510.66,166.29l1.5,2.47l-0.6,1.97l0.1,1.56l0.55,1.87l3.1-1.76l3.85,0.1l2.7,1.11h6.85l2-4.79l1.2-1.81v-1.21l-4.3-6.05l-3.8-1.51l-3.1-0.35l-2.7,0.86l0.1,2.72l-3.75,4.74L510.66,166.29L510.66,166.29z","name":"Belarus"},"pl":{"path":"M511.46,174.76l0.85,1.56l0.2,1.66l-0.7,1.61l-1.6,3.08l-1.35,0.61l-1.75-0.76l-1.05,0.05l-2.55,0.96l-2.9-0.86l-4.7-3.33l-4.6-2.47l-1.85-2.82l-0.35-6.65l3.6-3.13l4.7-1.56l1.75-0.2l-0.7,1.41l0.45,0.55l7.91,0.15l1.7-0.05l2.8,4.29l-0.7,1.76l0.3,2.07L511.46,174.76L511.46,174.76z","name":"Poland"},"it":{"path":"M477.56,213.38l-2.65,1.34l0.35,5.17l2.12,0.36l1.59-1.52v-4.9L477.56,213.38L477.56,213.38M472.27,196.98l-0.62,1.57l0.17,1.71l2.39,2.79l3.76-0.13l8.3,9.64l5.18,1.5l3.06,2.89l0.73,6.59l1.64-0.96l1.42-3.59l-0.35-2.58l2.43-0.22l0.35-1.46l-6.85-3.28l-6.5-6.39l-2.59-3.82l-0.63-3.63l3.31-0.79l-0.85-2.39l-2.03-1.71l-1.75-0.08l-2.44,0.67l-2.3,3.22l-1.39,0.92l-2.15-1.32L472.27,196.98L472.27,196.98M492.44,223.02l-1.45-0.78l-4.95,0.78l0.17,1.34l4.45,2.24l0.67,0.73l1.17,0.17L492.44,223.02L492.44,223.02z","name":"Italy"},"fr":{"path":"M477.83,206.96l-1.95,1.96l-0.18,1.78l1.59,0.98l0.62-0.09l0.35-2.59L477.83,206.96L477.83,206.96M460.4,178.7l-2.21,0.54l-4.42,4.81l-1.33,0.09l-1.77-1.25l-1.15,0.27l-0.88,2.76l-6.46,0.18l0.18,1.43l4.42,2.94l5.13,4.1l-0.09,4.9l-2.74,4.81l5.93,2.85l6.02,0.18l1.86-2.14l3.8,0.09l1.06,0.98l3.8-0.27l1.95-2.5l-2.48-2.94l-0.18-1.87l0.53-2.05l-1.24-1.78l-2.12,0.62l-0.27-1.6l4.69-5.17v-3.12l-3.1-1.78l-1.59-0.27L460.4,178.7L460.4,178.7z","name":"France"},"nl":{"path":"M470.09,168.27l-4.53,2.23l0.96,0.87l0.1,2.23l-0.96-0.19l-1.06-1.65l-2.53,4.01l3.89,0.81l1.45,1.53l0.77,0.02l0.51-3.46l2.45-1.03L470.09,168.27L470.09,168.27z","name":"Netherlands"},"be":{"path":"M461.61,176.52l-0.64,1.6l6.88,4.54l1.98,0.47l0.07-2.15l-1.73-1.94h-1.06l-1.45-1.65L461.61,176.52L461.61,176.52z","name":"Belgium"},"de":{"path":"M471.14,167.88l3.57-0.58v-2.52l2.99-0.49l1.64,1.65l1.73,0.19l2.7-1.17l2.41,0.68l2.12,1.84l0.29,6.89l2.12,2.82l-2.79,0.39l-4.63,2.91l0.39,0.97l4.14,3.88l-0.29,1.94l-3.85,1.94l-3.57,0.1l-0.87,1.84h-1.83l-0.87-1.94l-3.18-0.78l-0.1-3.2l-2.7-1.84l0.29-2.33l-1.83-2.52l0.48-3.3l2.5-1.17L471.14,167.88L471.14,167.88z","name":"Germany"},"dk":{"path":"M476.77,151.5l-4.15,4.59l-0.15,2.99l1.89,4.93l2.96-0.56l-0.37-4.03l2.04-2.28l-0.04-1.79l-1.44-3.73L476.77,151.5L476.77,151.5M481.44,159.64l-0.93-0.04l-1.22,1.12l0.15,1.75l2.89,0.08l0.15-1.98L481.44,159.64L481.44,159.64z","name":"Denmark"},"ch":{"path":"M472.91,189.38l-4.36,4.64l0.09,0.47l1.79-0.56l1.61,2.24l2.72-0.96l1.88,1.46l0.77-0.44l2.32-3.64l-0.59-0.56l-2.29-0.06l-1.11-2.27L472.91,189.38L472.91,189.38z","name":"Switzerland"},"cz":{"path":"M488.43,184.87h2.97h1.46l2.37,1.69l4.39-3.65l-4.26-3.04l-4.22-2.04l-2.89,0.52l-3.92,2.52L488.43,184.87L488.43,184.87z","name":"Czech Republic"},"sk":{"path":"M495.84,187.13l0.69,0.61l0.09,1.04l7.63-0.17l5.64-2.43l-0.09-2.47l-1.08,0.48l-1.55-0.83l-0.95-0.04l-2.5,1l-3.4-0.82L495.84,187.13L495.84,187.13z","name":"Slovakia"},"at":{"path":"M480.63,190.12l-0.65,1.35l0.56,0.96l2.33-0.48h1.98l2.15,1.82l4.57-0.83l3.36-2l0.86-1.35l-0.13-1.74l-3.02-2.26l-4.05,0.04l-0.34,2.3l-4.26,2.08L480.63,190.12L480.63,190.12z","name":"Austria"},"hu":{"path":"M496.74,189.6l-1.16,1.82l0.09,2.78l1.85,0.95l5.69,0.17l7.93-6.68l0.04-1.48l-0.86-0.43l-5.73,2.6L496.74,189.6L496.74,189.6z","name":"Hungary"},"si":{"path":"M494.8,191.99l-2.54,1.52l-4.74,1.04l0.95,2.74l3.32,0.04l3.06-2.56L494.8,191.99L494.8,191.99z","name":"Slovenia"},"hr":{"path":"M495.62,195.16l-3.53,2.91h-3.58l-0.43,2.52l1.64,0.43l0.82-1.22l1.29,1.13l1.03,3.6l7.07,3.3l0.7-0.8l-7.17-7.4l0.73-1.35l6.81-0.26l0.69-2.17l-4.44,0.13L495.62,195.16L495.62,195.16z","name":"Croatia"},"ba":{"path":"M494.8,198.94l-0.37,0.61l6.71,6.92l2.46-3.62l-0.09-1.43l-2.15-2.61L494.8,198.94L494.8,198.94z","name":"Bosnia and Herzegovina"},"mt":{"path":"M492.61,230.47l-1.67,0.34l0.06,1.85l1.5,0.5l0.67-0.56L492.61,230.47L492.61,230.47z","name":"Malta"},"ua":{"path":"M515.57,173.15l-2.9,1.63l0.72,3.08l-2.68,5.65l0.02,2.49l1.26,0.8l8.08,0.4l2.26-1.87l2.42,0.81l3.47,4.63l-2.54,4.56l3.02,0.88l3.95-4.55l2.26,0.41l2.1,1.46l-1.85,2.44l2.5,3.9h2.66l1.37-2.6l2.82-0.57l0.08-2.11l-5.24-0.81l0.16-2.27h5.08l5.48-4.39l2.42-2.11l0.4-6.66l-10.8-0.97l-4.43-6.25l-3.06-1.05l-3.71,0.16l-1.67,4.13l-7.6,0.1l-2.47-1.14L515.57,173.15L515.57,173.15z","name":"Ukraine"},"md":{"path":"M520.75,187.71l3.1,4.77l-0.26,2.7l1.11,0.05l2.63-4.45l-3.16-3.92l-1.79-0.74L520.75,187.71L520.75,187.71z","name":"Moldova"},"ro":{"path":"M512.18,187.6l-0.26,1.48l-5.79,4.82l4.84,7.1l3.1,2.17h5.58l1.84-1.54l2.47-0.32l1.84,1.11l3.26-3.71l-0.63-1.86l-3.31-0.85l-2.26-0.11l0.11-3.18l-3-4.72L512.18,187.6L512.18,187.6z","name":"Romania"},"rs":{"path":"M505.55,194.54l-2.05,1.54h-1l-0.68,2.12l2.42,2.81l0.16,2.23l-3,4.24l0.42,1.27l1.74,0.32l1.37-1.86l0.74-0.05l1.26,1.22l3.84-1.17l-0.32-5.46L505.55,194.54L505.55,194.54z","name":"Serbia"},"bg":{"path":"M511.44,202.39l0.16,4.98l1.68,3.5l6.31,0.11l2.84-2.01l2.79-1.11l-0.68-3.18l0.63-1.7l-1.42-0.74l-1.95,0.16l-1.53,1.54l-6.42,0.05L511.44,202.39L511.44,202.39z","name":"Bulgaria"},"al":{"path":"M504.02,209.76v4.61l1.32,2.49l0.95-0.11l1.63-2.97l-0.95-1.33l-0.37-3.29l-1.26-1.17L504.02,209.76L504.02,209.76z","name":"Albania"},"mk":{"path":"M510.92,208.01l-3.37,1.11l0.16,2.86l0.79,1.01l4-1.86L510.92,208.01L510.92,208.01z","name":"Macedonia"},"gr":{"path":"M506.71,217.6l-0.11,1.33l4.63,2.33l2.21,0.85l-1.16,1.22l-2.58,0.26l-0.37,1.17l0.89,2.01l2.89,1.54l1.26,0.11l0.16-3.45l1.89-2.28l-5.16-6.1l0.68-2.07l1.21-0.05l1.84,1.48l1.16-0.58l0.37-2.07l5.42,0.05l0.21-3.18l-2.26,1.59l-6.63-0.16l-4.31,2.23L506.71,217.6L506.71,217.6M516.76,230.59l1.63,0.05l0.68,1.01h2.37l1.58-0.58l0.53,0.64l-1.05,1.38l-4.63,0.16l-0.84-1.11l-0.89-0.53L516.76,230.59L516.76,230.59z","name":"Greece"}}});
|
42 |
-
|
43 |
-
|
44 |
-
/* ================== admin/assets/js/src/scripts.js =================== */
|
45 |
-
|
46 |
-
|
47 |
-
(function( $ ) {
|
48 |
-
|
49 |
-
$('.wp_ulike_delete').click(function(e) {
|
50 |
-
e.preventDefault();
|
51 |
-
var parent = $(this).closest('tr');
|
52 |
-
var value = $(this).data('id');
|
53 |
-
var table = $(this).data('table');
|
54 |
-
var nonce = $(this).data('nonce');
|
55 |
-
var r = confirm(wp_ulike_logs.message);
|
56 |
-
if (r === true) {
|
57 |
-
jQuery.ajax({
|
58 |
-
type:'POST',
|
59 |
-
url: wp_ulike_logs.ajaxurl,
|
60 |
-
data:{
|
61 |
-
action:'ulikelogs',
|
62 |
-
id : value,
|
63 |
-
nonce : nonce,
|
64 |
-
table : table
|
65 |
-
},
|
66 |
-
beforeSend:function(){
|
67 |
-
parent.css("background-color","#fff59d");
|
68 |
-
},
|
69 |
-
success: function( response ) {
|
70 |
-
if( response.success ) {
|
71 |
-
parent.fadeOut(300);
|
72 |
-
} else {
|
73 |
-
parent.css("background-color","#ef9a9a");
|
74 |
-
}
|
75 |
-
}
|
76 |
-
});
|
77 |
-
}
|
78 |
-
});
|
79 |
-
|
80 |
-
if ( typeof wp_ulike_statistics === "undefined" ) return;
|
81 |
-
|
82 |
-
var posts_dataset_var = JSON.parse(wp_ulike_statistics.posts_dataset);
|
83 |
-
var comments_dataset_var = JSON.parse(wp_ulike_statistics.comments_dataset);
|
84 |
-
var activities_dataset_var = JSON.parse(wp_ulike_statistics.activities_dataset);
|
85 |
-
var topics_dataset_var = JSON.parse(wp_ulike_statistics.topics_dataset);
|
86 |
-
var world_map_data = JSON.parse(wp_ulike_statistics.data_map);
|
87 |
-
var activities_dataset_sum = 0;
|
88 |
-
var topics_dataset_sum = 0;
|
89 |
-
var comments_dataset_sum = 0;
|
90 |
-
var posts_dataset_sum = 0;
|
91 |
-
//posts dataset
|
92 |
-
if(posts_dataset_var !== null){
|
93 |
-
for (var postNum = 0; postNum < posts_dataset_var.length; postNum++) {
|
94 |
-
posts_dataset_sum += parseInt(posts_dataset_var[postNum]);
|
95 |
-
}
|
96 |
-
var posts_date = {
|
97 |
-
labels : JSON.parse(wp_ulike_statistics.posts_date_labels),
|
98 |
-
datasets : [
|
99 |
-
{
|
100 |
-
label: "Liked Posts",
|
101 |
-
data : posts_dataset_var,
|
102 |
-
backgroundColor: "rgba(66, 165, 245,0.8)",
|
103 |
-
borderColor: "rgba(21, 101, 192,1)",
|
104 |
-
pointBackgroundColor: "rgba(255,255,255,1)",
|
105 |
-
borderWidth: 1
|
106 |
-
}
|
107 |
-
]
|
108 |
-
};
|
109 |
-
}
|
110 |
-
|
111 |
-
//comments dataset
|
112 |
-
if(comments_dataset_var !== null){
|
113 |
-
for (var commentNum = 0; commentNum < comments_dataset_var.length; commentNum++) {
|
114 |
-
comments_dataset_sum += parseInt(comments_dataset_var[commentNum]);
|
115 |
-
}
|
116 |
-
var comments_date = {
|
117 |
-
labels : JSON.parse(wp_ulike_statistics.comments_date_labels),
|
118 |
-
datasets : [
|
119 |
-
{
|
120 |
-
label: "Liked Comments",
|
121 |
-
data : comments_dataset_var,
|
122 |
-
backgroundColor : "rgba(255, 202, 40,0.8)",
|
123 |
-
borderColor : "rgba(255, 143, 0,1)",
|
124 |
-
pointBackgroundColor: "rgba(255,255,255,1)",
|
125 |
-
borderWidth: 1
|
126 |
-
|
127 |
-
}
|
128 |
-
]
|
129 |
-
};
|
130 |
-
}
|
131 |
-
|
132 |
-
|
133 |
-
//activities dataset
|
134 |
-
if(activities_dataset_var !== null){
|
135 |
-
for (var activityNum = 0; activityNum < activities_dataset_var.length; activityNum++) {
|
136 |
-
activities_dataset_sum += parseInt(activities_dataset_var[activityNum]);
|
137 |
-
}
|
138 |
-
var activities_date = {
|
139 |
-
labels : JSON.parse(wp_ulike_statistics.activities_date_labels),
|
140 |
-
datasets : [
|
141 |
-
{
|
142 |
-
label: "Liked Activities",
|
143 |
-
data : activities_dataset_var,
|
144 |
-
backgroundColor: "rgba(239, 83, 80,0.8)",
|
145 |
-
borderColor: "rgba(198, 40, 40,1)",
|
146 |
-
pointBackgroundColor: "rgba(255,255,255,1)",
|
147 |
-
borderWidth: 1
|
148 |
-
}
|
149 |
-
]
|
150 |
-
};
|
151 |
-
}
|
152 |
-
|
153 |
-
//Topics dataset
|
154 |
-
if(topics_dataset_var !== null){
|
155 |
-
for (var topicNum = 0; topicNum < topics_dataset_var.length; topicNum++) {
|
156 |
-
topics_dataset_sum += parseInt(topics_dataset_var[topicNum]);
|
157 |
-
}
|
158 |
-
var topics_date = {
|
159 |
-
labels : JSON.parse(wp_ulike_statistics.topics_date_labels),
|
160 |
-
datasets : [
|
161 |
-
{
|
162 |
-
label: "Liked Topics",
|
163 |
-
data : topics_dataset_var,
|
164 |
-
backgroundColor: "rgba(102, 187, 106,0.8)",
|
165 |
-
borderColor: "rgba(27, 94, 32,1)",
|
166 |
-
pointBackgroundColor: "rgba(255,255,255,1)",
|
167 |
-
borderWidth: 1
|
168 |
-
}
|
169 |
-
]
|
170 |
-
};
|
171 |
-
}
|
172 |
-
|
173 |
-
var pieData = {
|
174 |
-
datasets: [{
|
175 |
-
data: [
|
176 |
-
posts_dataset_sum,
|
177 |
-
comments_dataset_sum,
|
178 |
-
activities_dataset_sum,
|
179 |
-
topics_dataset_sum
|
180 |
-
],
|
181 |
-
backgroundColor: [
|
182 |
-
"#42a5f5",
|
183 |
-
"#ffca28",
|
184 |
-
"#F7464A",
|
185 |
-
"#66bb6a",
|
186 |
-
],
|
187 |
-
}],
|
188 |
-
|
189 |
-
// These labels appear in the legend and in the tooltips when hovering different arcs
|
190 |
-
labels: [
|
191 |
-
'Posts',
|
192 |
-
'Comments',
|
193 |
-
'Activities',
|
194 |
-
'Topics',
|
195 |
-
]
|
196 |
-
};
|
197 |
-
|
198 |
-
|
199 |
-
var postsChart = document.getElementById('chart1');
|
200 |
-
var commentsChart = document.getElementById('chart2');
|
201 |
-
var activitiesChart = document.getElementById('chart3');
|
202 |
-
var topicsChart = document.getElementById('chart4');
|
203 |
-
var allocationChart = document.getElementById('piechart');
|
204 |
-
|
205 |
-
if ( postsChart !== null ) {
|
206 |
-
if( posts_dataset_var !== null ){
|
207 |
-
var ctx1 = postsChart.getContext("2d");
|
208 |
-
postsChart = new Chart(ctx1, {
|
209 |
-
// The type of chart we want to create
|
210 |
-
type: 'line',
|
211 |
-
// The data for our dataset
|
212 |
-
data: posts_date
|
213 |
-
});
|
214 |
-
}else{
|
215 |
-
document.getElementById("posts_likes_stats").getElementsByClassName("main")[0].innerHTML = "No Data Found!";
|
216 |
-
}
|
217 |
-
}
|
218 |
-
|
219 |
-
if ( commentsChart !== null ) {
|
220 |
-
if( comments_dataset_var !== null ){
|
221 |
-
var ctx2 = commentsChart.getContext("2d");
|
222 |
-
commentsChart = new Chart(ctx2, {
|
223 |
-
// The type of chart we want to create
|
224 |
-
type: 'line',
|
225 |
-
// The data for our dataset
|
226 |
-
data: comments_date
|
227 |
-
});
|
228 |
-
}else{
|
229 |
-
document.getElementById("comments_likes_stats").getElementsByClassName("main")[0].innerHTML = "No Data Found!";
|
230 |
-
}
|
231 |
-
}
|
232 |
-
|
233 |
-
if ( activitiesChart !== null ) {
|
234 |
-
if( activities_dataset_var !== null ){
|
235 |
-
var ctx3 = activitiesChart.getContext("2d");
|
236 |
-
activitiesChart = new Chart(ctx3, {
|
237 |
-
// The type of chart we want to create
|
238 |
-
type: 'line',
|
239 |
-
// The data for our dataset
|
240 |
-
data: activities_date
|
241 |
-
});
|
242 |
-
}else{
|
243 |
-
document.getElementById("activities_likes_stats").getElementsByClassName("main")[0].innerHTML = "No Data Found!";
|
244 |
-
}
|
245 |
-
}
|
246 |
-
|
247 |
-
if ( topicsChart !== null ) {
|
248 |
-
if( topics_dataset_var !== null ){
|
249 |
-
var ctx4 = topicsChart.getContext("2d");
|
250 |
-
topicsChart = new Chart(ctx4, {
|
251 |
-
// The type of chart we want to create
|
252 |
-
type: 'line',
|
253 |
-
// The data for our dataset
|
254 |
-
data: topics_date
|
255 |
-
});
|
256 |
-
}else{
|
257 |
-
document.getElementById("topics_likes_stats").getElementsByClassName("main")[0].innerHTML = "No Data Found!";
|
258 |
-
}
|
259 |
-
}
|
260 |
-
|
261 |
-
if( allocationChart !== null ) {
|
262 |
-
if( activities_dataset_var !== null || topics_dataset_var !== null || comments_dataset_var || null && posts_dataset_var || null ){
|
263 |
-
var ctx5 = allocationChart.getContext("2d");
|
264 |
-
allocationChart = new Chart(ctx5, {
|
265 |
-
// The type of chart we want to create
|
266 |
-
type: 'pie',
|
267 |
-
// The data for our dataset
|
268 |
-
data: pieData
|
269 |
-
});
|
270 |
-
}else{
|
271 |
-
document.getElementById("piechart_stats").getElementsByClassName("main")[0].innerHTML = "No Data Found!";
|
272 |
-
}
|
273 |
-
}
|
274 |
-
|
275 |
-
jQuery('#vmap').vectorMap({
|
276 |
-
map : 'world_en',
|
277 |
-
backgroundColor : '#333333',
|
278 |
-
color : '#ffffff',
|
279 |
-
hoverOpacity : 0.7,
|
280 |
-
selectedColor : '#666666',
|
281 |
-
enableZoom : true,
|
282 |
-
showTooltip : true,
|
283 |
-
values : world_map_data,
|
284 |
-
scaleColors : ['#C8EEFF', '#006491'],
|
285 |
-
normalizeFunction : 'polynomial',
|
286 |
-
onLabelShow : function (event, label, code) {
|
287 |
-
if(world_map_data[code] > 0) {
|
288 |
-
label.append(': '+world_map_data[code]+' Users');
|
289 |
-
}
|
290 |
-
}
|
291 |
-
});
|
292 |
-
|
293 |
-
postboxes.save_state = function(){
|
294 |
-
return;
|
295 |
-
};
|
296 |
-
postboxes.save_order = function(){
|
297 |
-
return;
|
298 |
-
};
|
299 |
-
postboxes.add_postbox_toggles();
|
300 |
-
|
301 |
-
})( jQuery );
|
1 |
+
/*! WP ULike - v3.5.0
|
2 |
* https://wpulike.com
|
3 |
* Alimir 2018;
|
4 |
*/
|
19 |
!function(t){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).Chart=t()}}(function(){return function t(e,n,i){function a(r,l){if(!n[r]){if(!e[r]){var s="function"==typeof require&&require;if(!l&&s)return s(r,!0);if(o)return o(r,!0);var u=new Error("Cannot find module '"+r+"'");throw u.code="MODULE_NOT_FOUND",u}var d=n[r]={exports:{}};e[r][0].call(d.exports,function(t){var n=e[r][1][t];return a(n||t)},d,d.exports,t,e,n,i)}return n[r].exports}for(var o="function"==typeof require&&require,r=0;r<i.length;r++)a(i[r]);return a}({1:[function(t,e,n){},{}],2:[function(t,e,n){function i(t){if(t){var e=[0,0,0],n=1,i=t.match(/^#([a-fA-F0-9]{3})$/i);if(i){i=i[1];for(a=0;a<e.length;a++)e[a]=parseInt(i[a]+i[a],16)}else if(i=t.match(/^#([a-fA-F0-9]{6})$/i)){i=i[1];for(a=0;a<e.length;a++)e[a]=parseInt(i.slice(2*a,2*a+2),16)}else if(i=t.match(/^rgba?\(\s*([+-]?\d+)\s*,\s*([+-]?\d+)\s*,\s*([+-]?\d+)\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)$/i)){for(a=0;a<e.length;a++)e[a]=parseInt(i[a+1]);n=parseFloat(i[4])}else if(i=t.match(/^rgba?\(\s*([+-]?[\d\.]+)\%\s*,\s*([+-]?[\d\.]+)\%\s*,\s*([+-]?[\d\.]+)\%\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)$/i)){for(a=0;a<e.length;a++)e[a]=Math.round(2.55*parseFloat(i[a+1]));n=parseFloat(i[4])}else if(i=t.match(/(\w+)/)){if("transparent"==i[1])return[0,0,0,0];if(!(e=c[i[1]]))return}for(var a=0;a<e.length;a++)e[a]=u(e[a],0,255);return n=n||0==n?u(n,0,1):1,e[3]=n,e}}function a(t){if(t){var e=t.match(/^hsla?\(\s*([+-]?\d+)(?:deg)?\s*,\s*([+-]?[\d\.]+)%\s*,\s*([+-]?[\d\.]+)%\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)/);if(e){var n=parseFloat(e[4]);return[u(parseInt(e[1]),0,360),u(parseFloat(e[2]),0,100),u(parseFloat(e[3]),0,100),u(isNaN(n)?1:n,0,1)]}}}function o(t){if(t){var e=t.match(/^hwb\(\s*([+-]?\d+)(?:deg)?\s*,\s*([+-]?[\d\.]+)%\s*,\s*([+-]?[\d\.]+)%\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)/);if(e){var n=parseFloat(e[4]);return[u(parseInt(e[1]),0,360),u(parseFloat(e[2]),0,100),u(parseFloat(e[3]),0,100),u(isNaN(n)?1:n,0,1)]}}}function r(t,e){return void 0===e&&(e=void 0!==t[3]?t[3]:1),"rgba("+t[0]+", "+t[1]+", "+t[2]+", "+e+")"}function l(t,e){return"rgba("+Math.round(t[0]/255*100)+"%, "+Math.round(t[1]/255*100)+"%, "+Math.round(t[2]/255*100)+"%, "+(e||t[3]||1)+")"}function s(t,e){return void 0===e&&(e=void 0!==t[3]?t[3]:1),"hsla("+t[0]+", "+t[1]+"%, "+t[2]+"%, "+e+")"}function u(t,e,n){return Math.min(Math.max(e,t),n)}function d(t){var e=t.toString(16).toUpperCase();return e.length<2?"0"+e:e}var c=t(6);e.exports={getRgba:i,getHsla:a,getRgb:function(t){var e=i(t);return e&&e.slice(0,3)},getHsl:function(t){var e=a(t);return e&&e.slice(0,3)},getHwb:o,getAlpha:function(t){var e=i(t);return e?e[3]:(e=a(t))?e[3]:(e=o(t))?e[3]:void 0},hexString:function(t){return"#"+d(t[0])+d(t[1])+d(t[2])},rgbString:function(t,e){return e<1||t[3]&&t[3]<1?r(t,e):"rgb("+t[0]+", "+t[1]+", "+t[2]+")"},rgbaString:r,percentString:function(t,e){return e<1||t[3]&&t[3]<1?l(t,e):"rgb("+Math.round(t[0]/255*100)+"%, "+Math.round(t[1]/255*100)+"%, "+Math.round(t[2]/255*100)+"%)"},percentaString:l,hslString:function(t,e){return e<1||t[3]&&t[3]<1?s(t,e):"hsl("+t[0]+", "+t[1]+"%, "+t[2]+"%)"},hslaString:s,hwbString:function(t,e){return void 0===e&&(e=void 0!==t[3]?t[3]:1),"hwb("+t[0]+", "+t[1]+"%, "+t[2]+"%"+(void 0!==e&&1!==e?", "+e:"")+")"},keyword:function(t){return h[t.slice(0,3)]}};var h={};for(var f in c)h[c[f]]=f},{6:6}],3:[function(t,e,n){var i=t(5),a=t(2),o=function(t){if(t instanceof o)return t;if(!(this instanceof o))return new o(t);this.valid=!1,this.values={rgb:[0,0,0],hsl:[0,0,0],hsv:[0,0,0],hwb:[0,0,0],cmyk:[0,0,0,0],alpha:1};var e;"string"==typeof t?(e=a.getRgba(t))?this.setValues("rgb",e):(e=a.getHsla(t))?this.setValues("hsl",e):(e=a.getHwb(t))&&this.setValues("hwb",e):"object"==typeof t&&(void 0!==(e=t).r||void 0!==e.red?this.setValues("rgb",e):void 0!==e.l||void 0!==e.lightness?this.setValues("hsl",e):void 0!==e.v||void 0!==e.value?this.setValues("hsv",e):void 0!==e.w||void 0!==e.whiteness?this.setValues("hwb",e):void 0===e.c&&void 0===e.cyan||this.setValues("cmyk",e))};o.prototype={isValid:function(){return this.valid},rgb:function(){return this.setSpace("rgb",arguments)},hsl:function(){return this.setSpace("hsl",arguments)},hsv:function(){return this.setSpace("hsv",arguments)},hwb:function(){return this.setSpace("hwb",arguments)},cmyk:function(){return this.setSpace("cmyk",arguments)},rgbArray:function(){return this.values.rgb},hslArray:function(){return this.values.hsl},hsvArray:function(){return this.values.hsv},hwbArray:function(){var t=this.values;return 1!==t.alpha?t.hwb.concat([t.alpha]):t.hwb},cmykArray:function(){return this.values.cmyk},rgbaArray:function(){var t=this.values;return t.rgb.concat([t.alpha])},hslaArray:function(){var t=this.values;return t.hsl.concat([t.alpha])},alpha:function(t){return void 0===t?this.values.alpha:(this.setValues("alpha",t),this)},red:function(t){return this.setChannel("rgb",0,t)},green:function(t){return this.setChannel("rgb",1,t)},blue:function(t){return this.setChannel("rgb",2,t)},hue:function(t){return t&&(t=(t%=360)<0?360+t:t),this.setChannel("hsl",0,t)},saturation:function(t){return this.setChannel("hsl",1,t)},lightness:function(t){return this.setChannel("hsl",2,t)},saturationv:function(t){return this.setChannel("hsv",1,t)},whiteness:function(t){return this.setChannel("hwb",1,t)},blackness:function(t){return this.setChannel("hwb",2,t)},value:function(t){return this.setChannel("hsv",2,t)},cyan:function(t){return this.setChannel("cmyk",0,t)},magenta:function(t){return this.setChannel("cmyk",1,t)},yellow:function(t){return this.setChannel("cmyk",2,t)},black:function(t){return this.setChannel("cmyk",3,t)},hexString:function(){return a.hexString(this.values.rgb)},rgbString:function(){return a.rgbString(this.values.rgb,this.values.alpha)},rgbaString:function(){return a.rgbaString(this.values.rgb,this.values.alpha)},percentString:function(){return a.percentString(this.values.rgb,this.values.alpha)},hslString:function(){return a.hslString(this.values.hsl,this.values.alpha)},hslaString:function(){return a.hslaString(this.values.hsl,this.values.alpha)},hwbString:function(){return a.hwbString(this.values.hwb,this.values.alpha)},keyword:function(){return a.keyword(this.values.rgb,this.values.alpha)},rgbNumber:function(){var t=this.values.rgb;return t[0]<<16|t[1]<<8|t[2]},luminosity:function(){for(var t=this.values.rgb,e=[],n=0;n<t.length;n++){var i=t[n]/255;e[n]=i<=.03928?i/12.92:Math.pow((i+.055)/1.055,2.4)}return.2126*e[0]+.7152*e[1]+.0722*e[2]},contrast:function(t){var e=this.luminosity(),n=t.luminosity();return e>n?(e+.05)/(n+.05):(n+.05)/(e+.05)},level:function(t){var e=this.contrast(t);return e>=7.1?"AAA":e>=4.5?"AA":""},dark:function(){var t=this.values.rgb;return(299*t[0]+587*t[1]+114*t[2])/1e3<128},light:function(){return!this.dark()},negate:function(){for(var t=[],e=0;e<3;e++)t[e]=255-this.values.rgb[e];return this.setValues("rgb",t),this},lighten:function(t){var e=this.values.hsl;return e[2]+=e[2]*t,this.setValues("hsl",e),this},darken:function(t){var e=this.values.hsl;return e[2]-=e[2]*t,this.setValues("hsl",e),this},saturate:function(t){var e=this.values.hsl;return e[1]+=e[1]*t,this.setValues("hsl",e),this},desaturate:function(t){var e=this.values.hsl;return e[1]-=e[1]*t,this.setValues("hsl",e),this},whiten:function(t){var e=this.values.hwb;return e[1]+=e[1]*t,this.setValues("hwb",e),this},blacken:function(t){var e=this.values.hwb;return e[2]+=e[2]*t,this.setValues("hwb",e),this},greyscale:function(){var t=this.values.rgb,e=.3*t[0]+.59*t[1]+.11*t[2];return this.setValues("rgb",[e,e,e]),this},clearer:function(t){var e=this.values.alpha;return this.setValues("alpha",e-e*t),this},opaquer:function(t){var e=this.values.alpha;return this.setValues("alpha",e+e*t),this},rotate:function(t){var e=this.values.hsl,n=(e[0]+t)%360;return e[0]=n<0?360+n:n,this.setValues("hsl",e),this},mix:function(t,e){var n=this,i=t,a=void 0===e?.5:e,o=2*a-1,r=n.alpha()-i.alpha(),l=((o*r==-1?o:(o+r)/(1+o*r))+1)/2,s=1-l;return this.rgb(l*n.red()+s*i.red(),l*n.green()+s*i.green(),l*n.blue()+s*i.blue()).alpha(n.alpha()*a+i.alpha()*(1-a))},toJSON:function(){return this.rgb()},clone:function(){var t,e,n=new o,i=this.values,a=n.values;for(var r in i)i.hasOwnProperty(r)&&(t=i[r],"[object Array]"===(e={}.toString.call(t))?a[r]=t.slice(0):"[object Number]"===e?a[r]=t:console.error("unexpected color value:",t));return n}},o.prototype.spaces={rgb:["red","green","blue"],hsl:["hue","saturation","lightness"],hsv:["hue","saturation","value"],hwb:["hue","whiteness","blackness"],cmyk:["cyan","magenta","yellow","black"]},o.prototype.maxes={rgb:[255,255,255],hsl:[360,100,100],hsv:[360,100,100],hwb:[360,100,100],cmyk:[100,100,100,100]},o.prototype.getValues=function(t){for(var e=this.values,n={},i=0;i<t.length;i++)n[t.charAt(i)]=e[t][i];return 1!==e.alpha&&(n.a=e.alpha),n},o.prototype.setValues=function(t,e){var n,a=this.values,o=this.spaces,r=this.maxes,l=1;if(this.valid=!0,"alpha"===t)l=e;else if(e.length)a[t]=e.slice(0,t.length),l=e[t.length];else if(void 0!==e[t.charAt(0)]){for(n=0;n<t.length;n++)a[t][n]=e[t.charAt(n)];l=e.a}else if(void 0!==e[o[t][0]]){var s=o[t];for(n=0;n<t.length;n++)a[t][n]=e[s[n]];l=e.alpha}if(a.alpha=Math.max(0,Math.min(1,void 0===l?a.alpha:l)),"alpha"===t)return!1;var u;for(n=0;n<t.length;n++)u=Math.max(0,Math.min(r[t][n],a[t][n])),a[t][n]=Math.round(u);for(var d in o)d!==t&&(a[d]=i[t][d](a[t]));return!0},o.prototype.setSpace=function(t,e){var n=e[0];return void 0===n?this.getValues(t):("number"==typeof n&&(n=Array.prototype.slice.call(e)),this.setValues(t,n),this)},o.prototype.setChannel=function(t,e,n){var i=this.values[t];return void 0===n?i[e]:n===i[e]?this:(i[e]=n,this.setValues(t,i),this)},"undefined"!=typeof window&&(window.Color=o),e.exports=o},{2:2,5:5}],4:[function(t,e,n){function i(t){var e,n,i,a=t[0]/255,o=t[1]/255,r=t[2]/255,l=Math.min(a,o,r),s=Math.max(a,o,r),u=s-l;return s==l?e=0:a==s?e=(o-r)/u:o==s?e=2+(r-a)/u:r==s&&(e=4+(a-o)/u),(e=Math.min(60*e,360))<0&&(e+=360),i=(l+s)/2,n=s==l?0:i<=.5?u/(s+l):u/(2-s-l),[e,100*n,100*i]}function a(t){var e,n,i,a=t[0],o=t[1],r=t[2],l=Math.min(a,o,r),s=Math.max(a,o,r),u=s-l;return n=0==s?0:u/s*1e3/10,s==l?e=0:a==s?e=(o-r)/u:o==s?e=2+(r-a)/u:r==s&&(e=4+(a-o)/u),(e=Math.min(60*e,360))<0&&(e+=360),i=s/255*1e3/10,[e,n,i]}function o(t){var e=t[0],n=t[1],a=t[2];return[i(t)[0],100*(1/255*Math.min(e,Math.min(n,a))),100*(a=1-1/255*Math.max(e,Math.max(n,a)))]}function l(t){var e,n,i,a,o=t[0]/255,r=t[1]/255,l=t[2]/255;return a=Math.min(1-o,1-r,1-l),e=(1-o-a)/(1-a)||0,n=(1-r-a)/(1-a)||0,i=(1-l-a)/(1-a)||0,[100*e,100*n,100*i,100*a]}function s(t){return C[JSON.stringify(t)]}function u(t){var e=t[0]/255,n=t[1]/255,i=t[2]/255;return[100*(.4124*(e=e>.04045?Math.pow((e+.055)/1.055,2.4):e/12.92)+.3576*(n=n>.04045?Math.pow((n+.055)/1.055,2.4):n/12.92)+.1805*(i=i>.04045?Math.pow((i+.055)/1.055,2.4):i/12.92)),100*(.2126*e+.7152*n+.0722*i),100*(.0193*e+.1192*n+.9505*i)]}function d(t){var e,n,i,a=u(t),o=a[0],r=a[1],l=a[2];return o/=95.047,r/=100,l/=108.883,o=o>.008856?Math.pow(o,1/3):7.787*o+16/116,r=r>.008856?Math.pow(r,1/3):7.787*r+16/116,l=l>.008856?Math.pow(l,1/3):7.787*l+16/116,e=116*r-16,n=500*(o-r),i=200*(r-l),[e,n,i]}function c(t){var e,n,i,a,o,r=t[0]/360,l=t[1]/100,s=t[2]/100;if(0==l)return o=255*s,[o,o,o];e=2*s-(n=s<.5?s*(1+l):s+l-s*l),a=[0,0,0];for(var u=0;u<3;u++)(i=r+1/3*-(u-1))<0&&i++,i>1&&i--,o=6*i<1?e+6*(n-e)*i:2*i<1?n:3*i<2?e+(n-e)*(2/3-i)*6:e,a[u]=255*o;return a}function h(t){var e=t[0]/60,n=t[1]/100,i=t[2]/100,a=Math.floor(e)%6,o=e-Math.floor(e),r=255*i*(1-n),l=255*i*(1-n*o),s=255*i*(1-n*(1-o)),i=255*i;switch(a){case 0:return[i,s,r];case 1:return[l,i,r];case 2:return[r,i,s];case 3:return[r,l,i];case 4:return[s,r,i];case 5:return[i,r,l]}}function f(t){var e,n,i,a,o=t[0]/360,l=t[1]/100,s=t[2]/100,u=l+s;switch(u>1&&(l/=u,s/=u),e=Math.floor(6*o),n=1-s,i=6*o-e,0!=(1&e)&&(i=1-i),a=l+i*(n-l),e){default:case 6:case 0:r=n,g=a,b=l;break;case 1:r=a,g=n,b=l;break;case 2:r=l,g=n,b=a;break;case 3:r=l,g=a,b=n;break;case 4:r=a,g=l,b=n;break;case 5:r=n,g=l,b=a}return[255*r,255*g,255*b]}function p(t){var e,n,i,a=t[0]/100,o=t[1]/100,r=t[2]/100,l=t[3]/100;return e=1-Math.min(1,a*(1-l)+l),n=1-Math.min(1,o*(1-l)+l),i=1-Math.min(1,r*(1-l)+l),[255*e,255*n,255*i]}function v(t){var e,n,i,a=t[0]/100,o=t[1]/100,r=t[2]/100;return e=3.2406*a+-1.5372*o+-.4986*r,n=-.9689*a+1.8758*o+.0415*r,i=.0557*a+-.204*o+1.057*r,e=e>.0031308?1.055*Math.pow(e,1/2.4)-.055:e*=12.92,n=n>.0031308?1.055*Math.pow(n,1/2.4)-.055:n*=12.92,i=i>.0031308?1.055*Math.pow(i,1/2.4)-.055:i*=12.92,e=Math.min(Math.max(0,e),1),n=Math.min(Math.max(0,n),1),i=Math.min(Math.max(0,i),1),[255*e,255*n,255*i]}function m(t){var e,n,i,a=t[0],o=t[1],r=t[2];return a/=95.047,o/=100,r/=108.883,a=a>.008856?Math.pow(a,1/3):7.787*a+16/116,o=o>.008856?Math.pow(o,1/3):7.787*o+16/116,r=r>.008856?Math.pow(r,1/3):7.787*r+16/116,e=116*o-16,n=500*(a-o),i=200*(o-r),[e,n,i]}function x(t){var e,n,i,a,o=t[0],r=t[1],l=t[2];return o<=8?a=(n=100*o/903.3)/100*7.787+16/116:(n=100*Math.pow((o+16)/116,3),a=Math.pow(n/100,1/3)),e=e/95.047<=.008856?e=95.047*(r/500+a-16/116)/7.787:95.047*Math.pow(r/500+a,3),i=i/108.883<=.008859?i=108.883*(a-l/200-16/116)/7.787:108.883*Math.pow(a-l/200,3),[e,n,i]}function y(t){var e,n,i,a=t[0],o=t[1],r=t[2];return e=Math.atan2(r,o),(n=360*e/2/Math.PI)<0&&(n+=360),i=Math.sqrt(o*o+r*r),[a,i,n]}function k(t){return v(x(t))}function w(t){var e,n,i,a=t[0],o=t[1];return i=t[2]/360*2*Math.PI,e=o*Math.cos(i),n=o*Math.sin(i),[a,e,n]}function M(t){return S[t]}e.exports={rgb2hsl:i,rgb2hsv:a,rgb2hwb:o,rgb2cmyk:l,rgb2keyword:s,rgb2xyz:u,rgb2lab:d,rgb2lch:function(t){return y(d(t))},hsl2rgb:c,hsl2hsv:function(t){var e,n,i=t[0],a=t[1]/100,o=t[2]/100;return 0===o?[0,0,0]:(o*=2,a*=o<=1?o:2-o,n=(o+a)/2,e=2*a/(o+a),[i,100*e,100*n])},hsl2hwb:function(t){return o(c(t))},hsl2cmyk:function(t){return l(c(t))},hsl2keyword:function(t){return s(c(t))},hsv2rgb:h,hsv2hsl:function(t){var e,n,i=t[0],a=t[1]/100,o=t[2]/100;return n=(2-a)*o,e=a*o,e/=n<=1?n:2-n,e=e||0,n/=2,[i,100*e,100*n]},hsv2hwb:function(t){return o(h(t))},hsv2cmyk:function(t){return l(h(t))},hsv2keyword:function(t){return s(h(t))},hwb2rgb:f,hwb2hsl:function(t){return i(f(t))},hwb2hsv:function(t){return a(f(t))},hwb2cmyk:function(t){return l(f(t))},hwb2keyword:function(t){return s(f(t))},cmyk2rgb:p,cmyk2hsl:function(t){return i(p(t))},cmyk2hsv:function(t){return a(p(t))},cmyk2hwb:function(t){return o(p(t))},cmyk2keyword:function(t){return s(p(t))},keyword2rgb:M,keyword2hsl:function(t){return i(M(t))},keyword2hsv:function(t){return a(M(t))},keyword2hwb:function(t){return o(M(t))},keyword2cmyk:function(t){return l(M(t))},keyword2lab:function(t){return d(M(t))},keyword2xyz:function(t){return u(M(t))},xyz2rgb:v,xyz2lab:m,xyz2lch:function(t){return y(m(t))},lab2xyz:x,lab2rgb:k,lab2lch:y,lch2lab:w,lch2xyz:function(t){return x(w(t))},lch2rgb:function(t){return k(w(t))}};var S={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]},C={};for(var _ in S)C[JSON.stringify(S[_])]=_},{}],5:[function(t,e,n){var i=t(4),a=function(){return new u};for(var o in i){a[o+"Raw"]=function(t){return function(e){return"number"==typeof e&&(e=Array.prototype.slice.call(arguments)),i[t](e)}}(o);var r=/(\w+)2(\w+)/.exec(o),l=r[1],s=r[2];(a[l]=a[l]||{})[s]=a[o]=function(t){return function(e){"number"==typeof e&&(e=Array.prototype.slice.call(arguments));var n=i[t](e);if("string"==typeof n||void 0===n)return n;for(var a=0;a<n.length;a++)n[a]=Math.round(n[a]);return n}}(o)}var u=function(){this.convs={}};u.prototype.routeSpace=function(t,e){var n=e[0];return void 0===n?this.getValues(t):("number"==typeof n&&(n=Array.prototype.slice.call(e)),this.setValues(t,n))},u.prototype.setValues=function(t,e){return this.space=t,this.convs={},this.convs[t]=e,this},u.prototype.getValues=function(t){var e=this.convs[t];if(!e){var n=this.space,i=this.convs[n];e=a[n][t](i),this.convs[t]=e}return e},["rgb","hsl","hsv","cmyk","keyword"].forEach(function(t){u.prototype[t]=function(e){return this.routeSpace(t,arguments)}}),e.exports=a},{4:4}],6:[function(t,e,n){"use strict";e.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}},{}],7:[function(t,e,n){var i=t(29)();i.helpers=t(45),t(27)(i),i.defaults=t(25),i.Element=t(26),i.elements=t(40),i.Interaction=t(28),i.platform=t(48),t(31)(i),t(22)(i),t(23)(i),t(24)(i),t(30)(i),t(33)(i),t(32)(i),t(35)(i),t(54)(i),t(52)(i),t(53)(i),t(55)(i),t(56)(i),t(57)(i),t(15)(i),t(16)(i),t(17)(i),t(18)(i),t(19)(i),t(20)(i),t(21)(i),t(8)(i),t(9)(i),t(10)(i),t(11)(i),t(12)(i),t(13)(i),t(14)(i);var a=[];a.push(t(49)(i),t(50)(i),t(51)(i)),i.plugins.register(a),i.platform.initialize(),e.exports=i,"undefined"!=typeof window&&(window.Chart=i),i.canvasHelpers=i.helpers.canvas},{10:10,11:11,12:12,13:13,14:14,15:15,16:16,17:17,18:18,19:19,20:20,21:21,22:22,23:23,24:24,25:25,26:26,27:27,28:28,29:29,30:30,31:31,32:32,33:33,35:35,40:40,45:45,48:48,49:49,50:50,51:51,52:52,53:53,54:54,55:55,56:56,57:57,8:8,9:9}],8:[function(t,e,n){"use strict";e.exports=function(t){t.Bar=function(e,n){return n.type="bar",new t(e,n)}}},{}],9:[function(t,e,n){"use strict";e.exports=function(t){t.Bubble=function(e,n){return n.type="bubble",new t(e,n)}}},{}],10:[function(t,e,n){"use strict";e.exports=function(t){t.Doughnut=function(e,n){return n.type="doughnut",new t(e,n)}}},{}],11:[function(t,e,n){"use strict";e.exports=function(t){t.Line=function(e,n){return n.type="line",new t(e,n)}}},{}],12:[function(t,e,n){"use strict";e.exports=function(t){t.PolarArea=function(e,n){return n.type="polarArea",new t(e,n)}}},{}],13:[function(t,e,n){"use strict";e.exports=function(t){t.Radar=function(e,n){return n.type="radar",new t(e,n)}}},{}],14:[function(t,e,n){"use strict";e.exports=function(t){t.Scatter=function(e,n){return n.type="scatter",new t(e,n)}}},{}],15:[function(t,e,n){"use strict";var i=t(25),a=t(40),o=t(45);i._set("bar",{hover:{mode:"label"},scales:{xAxes:[{type:"category",categoryPercentage:.8,barPercentage:.9,offset:!0,gridLines:{offsetGridLines:!0}}],yAxes:[{type:"linear"}]}}),i._set("horizontalBar",{hover:{mode:"index",axis:"y"},scales:{xAxes:[{type:"linear",position:"bottom"}],yAxes:[{position:"left",type:"category",categoryPercentage:.8,barPercentage:.9,offset:!0,gridLines:{offsetGridLines:!0}}]},elements:{rectangle:{borderSkipped:"left"}},tooltips:{callbacks:{title:function(t,e){var n="";return t.length>0&&(t[0].yLabel?n=t[0].yLabel:e.labels.length>0&&t[0].index<e.labels.length&&(n=e.labels[t[0].index])),n},label:function(t,e){return(e.datasets[t.datasetIndex].label||"")+": "+t.xLabel}},mode:"index",axis:"y"}}),e.exports=function(t){t.controllers.bar=t.DatasetController.extend({dataElementType:a.Rectangle,initialize:function(){var e,n=this;t.DatasetController.prototype.initialize.apply(n,arguments),(e=n.getMeta()).stack=n.getDataset().stack,e.bar=!0},update:function(t){var e,n,i=this,a=i.getMeta().data;for(i._ruler=i.getRuler(),e=0,n=a.length;e<n;++e)i.updateElement(a[e],e,t)},updateElement:function(t,e,n){var i=this,a=i.chart,r=i.getMeta(),l=i.getDataset(),s=t.custom||{},u=a.options.elements.rectangle;t._xScale=i.getScaleForId(r.xAxisID),t._yScale=i.getScaleForId(r.yAxisID),t._datasetIndex=i.index,t._index=e,t._model={datasetLabel:l.label,label:a.data.labels[e],borderSkipped:s.borderSkipped?s.borderSkipped:u.borderSkipped,backgroundColor:s.backgroundColor?s.backgroundColor:o.valueAtIndexOrDefault(l.backgroundColor,e,u.backgroundColor),borderColor:s.borderColor?s.borderColor:o.valueAtIndexOrDefault(l.borderColor,e,u.borderColor),borderWidth:s.borderWidth?s.borderWidth:o.valueAtIndexOrDefault(l.borderWidth,e,u.borderWidth)},i.updateElementGeometry(t,e,n),t.pivot()},updateElementGeometry:function(t,e,n){var i=this,a=t._model,o=i.getValueScale(),r=o.getBasePixel(),l=o.isHorizontal(),s=i._ruler||i.getRuler(),u=i.calculateBarValuePixels(i.index,e),d=i.calculateBarIndexPixels(i.index,e,s);a.horizontal=l,a.base=n?r:u.base,a.x=l?n?r:u.head:d.center,a.y=l?d.center:n?r:u.head,a.height=l?d.size:void 0,a.width=l?void 0:d.size},getValueScaleId:function(){return this.getMeta().yAxisID},getIndexScaleId:function(){return this.getMeta().xAxisID},getValueScale:function(){return this.getScaleForId(this.getValueScaleId())},getIndexScale:function(){return this.getScaleForId(this.getIndexScaleId())},getStackCount:function(t){var e,n,i=this,a=i.chart,o=i.getIndexScale().options.stacked,r=void 0===t?a.data.datasets.length:t+1,l=[];for(e=0;e<r;++e)(n=a.getDatasetMeta(e)).bar&&a.isDatasetVisible(e)&&(!1===o||!0===o&&-1===l.indexOf(n.stack)||void 0===o&&(void 0===n.stack||-1===l.indexOf(n.stack)))&&l.push(n.stack);return l.length},getStackIndex:function(t){return this.getStackCount(t)-1},getRuler:function(){var t,e,n=this,i=n.getIndexScale(),a=n.getStackCount(),o=n.index,r=[],l=i.isHorizontal(),s=l?i.left:i.top,u=s+(l?i.width:i.height);for(t=0,e=n.getMeta().data.length;t<e;++t)r.push(i.getPixelForValue(null,t,o));return{pixels:r,start:s,end:u,stackCount:a,scale:i}},calculateBarValuePixels:function(t,e){var n,i,a,o,r,l,s=this,u=s.chart,d=s.getMeta(),c=s.getValueScale(),h=u.data.datasets,f=c.getRightValue(h[t].data[e]),g=c.options.stacked,p=d.stack,v=0;if(g||void 0===g&&void 0!==p)for(n=0;n<t;++n)(i=u.getDatasetMeta(n)).bar&&i.stack===p&&i.controller.getValueScaleId()===c.id&&u.isDatasetVisible(n)&&(a=c.getRightValue(h[n].data[e]),(f<0&&a<0||f>=0&&a>0)&&(v+=a));return o=c.getPixelForValue(v),r=c.getPixelForValue(v+f),l=(r-o)/2,{size:l,base:o,head:r,center:r+l/2}},calculateBarIndexPixels:function(t,e,n){var i,a,r,l,s,u,d=this,c=n.scale.options,h=d.getStackIndex(t),f=n.pixels,g=f[e],p=f.length,v=n.start,m=n.end;return 1===p?(i=g>v?g-v:m-g,a=g<m?m-g:g-v):(e>0&&(i=(g-f[e-1])/2,e===p-1&&(a=i)),e<p-1&&(a=(f[e+1]-g)/2,0===e&&(i=a))),r=i*c.categoryPercentage,l=a*c.categoryPercentage,s=(r+l)/n.stackCount,u=s*c.barPercentage,u=Math.min(o.valueOrDefault(c.barThickness,u),o.valueOrDefault(c.maxBarThickness,1/0)),g-=r,g+=s*h,g+=(s-u)/2,{size:u,base:g,head:g+u,center:g+u/2}},draw:function(){var t=this,e=t.chart,n=t.getValueScale(),i=t.getMeta().data,a=t.getDataset(),r=i.length,l=0;for(o.canvas.clipArea(e.ctx,e.chartArea);l<r;++l)isNaN(n.getRightValue(a.data[l]))||i[l].draw();o.canvas.unclipArea(e.ctx)},setHoverStyle:function(t){var e=this.chart.data.datasets[t._datasetIndex],n=t._index,i=t.custom||{},a=t._model;a.backgroundColor=i.hoverBackgroundColor?i.hoverBackgroundColor:o.valueAtIndexOrDefault(e.hoverBackgroundColor,n,o.getHoverColor(a.backgroundColor)),a.borderColor=i.hoverBorderColor?i.hoverBorderColor:o.valueAtIndexOrDefault(e.hoverBorderColor,n,o.getHoverColor(a.borderColor)),a.borderWidth=i.hoverBorderWidth?i.hoverBorderWidth:o.valueAtIndexOrDefault(e.hoverBorderWidth,n,a.borderWidth)},removeHoverStyle:function(t){var e=this.chart.data.datasets[t._datasetIndex],n=t._index,i=t.custom||{},a=t._model,r=this.chart.options.elements.rectangle;a.backgroundColor=i.backgroundColor?i.backgroundColor:o.valueAtIndexOrDefault(e.backgroundColor,n,r.backgroundColor),a.borderColor=i.borderColor?i.borderColor:o.valueAtIndexOrDefault(e.borderColor,n,r.borderColor),a.borderWidth=i.borderWidth?i.borderWidth:o.valueAtIndexOrDefault(e.borderWidth,n,r.borderWidth)}}),t.controllers.horizontalBar=t.controllers.bar.extend({getValueScaleId:function(){return this.getMeta().xAxisID},getIndexScaleId:function(){return this.getMeta().yAxisID}})}},{25:25,40:40,45:45}],16:[function(t,e,n){"use strict";var i=t(25),a=t(40),o=t(45);i._set("bubble",{hover:{mode:"single"},scales:{xAxes:[{type:"linear",position:"bottom",id:"x-axis-0"}],yAxes:[{type:"linear",position:"left",id:"y-axis-0"}]},tooltips:{callbacks:{title:function(){return""},label:function(t,e){var n=e.datasets[t.datasetIndex].label||"",i=e.datasets[t.datasetIndex].data[t.index];return n+": ("+t.xLabel+", "+t.yLabel+", "+i.r+")"}}}}),e.exports=function(t){t.controllers.bubble=t.DatasetController.extend({dataElementType:a.Point,update:function(t){var e=this,n=e.getMeta().data;o.each(n,function(n,i){e.updateElement(n,i,t)})},updateElement:function(t,e,n){var i=this,a=i.getMeta(),o=t.custom||{},r=i.getScaleForId(a.xAxisID),l=i.getScaleForId(a.yAxisID),s=i._resolveElementOptions(t,e),u=i.getDataset().data[e],d=i.index,c=n?r.getPixelForDecimal(.5):r.getPixelForValue("object"==typeof u?u:NaN,e,d),h=n?l.getBasePixel():l.getPixelForValue(u,e,d);t._xScale=r,t._yScale=l,t._options=s,t._datasetIndex=d,t._index=e,t._model={backgroundColor:s.backgroundColor,borderColor:s.borderColor,borderWidth:s.borderWidth,hitRadius:s.hitRadius,pointStyle:s.pointStyle,radius:n?0:s.radius,skip:o.skip||isNaN(c)||isNaN(h),x:c,y:h},t.pivot()},setHoverStyle:function(t){var e=t._model,n=t._options;e.backgroundColor=o.valueOrDefault(n.hoverBackgroundColor,o.getHoverColor(n.backgroundColor)),e.borderColor=o.valueOrDefault(n.hoverBorderColor,o.getHoverColor(n.borderColor)),e.borderWidth=o.valueOrDefault(n.hoverBorderWidth,n.borderWidth),e.radius=n.radius+n.hoverRadius},removeHoverStyle:function(t){var e=t._model,n=t._options;e.backgroundColor=n.backgroundColor,e.borderColor=n.borderColor,e.borderWidth=n.borderWidth,e.radius=n.radius},_resolveElementOptions:function(t,e){var n,i,a,r=this,l=r.chart,s=l.data.datasets[r.index],u=t.custom||{},d=l.options.elements.point,c=o.options.resolve,h=s.data[e],f={},g={chart:l,dataIndex:e,dataset:s,datasetIndex:r.index},p=["backgroundColor","borderColor","borderWidth","hoverBackgroundColor","hoverBorderColor","hoverBorderWidth","hoverRadius","hitRadius","pointStyle"];for(n=0,i=p.length;n<i;++n)f[a=p[n]]=c([u[a],s[a],d[a]],g,e);return f.radius=c([u.radius,h?h.r:void 0,s.radius,d.radius],g,e),f}})}},{25:25,40:40,45:45}],17:[function(t,e,n){"use strict";var i=t(25),a=t(40),o=t(45);i._set("doughnut",{animation:{animateRotate:!0,animateScale:!1},hover:{mode:"single"},legendCallback:function(t){var e=[];e.push('<ul class="'+t.id+'-legend">');var n=t.data,i=n.datasets,a=n.labels;if(i.length)for(var o=0;o<i[0].data.length;++o)e.push('<li><span style="background-color:'+i[0].backgroundColor[o]+'"></span>'),a[o]&&e.push(a[o]),e.push("</li>");return e.push("</ul>"),e.join("")},legend:{labels:{generateLabels:function(t){var e=t.data;return e.labels.length&&e.datasets.length?e.labels.map(function(n,i){var a=t.getDatasetMeta(0),r=e.datasets[0],l=a.data[i],s=l&&l.custom||{},u=o.valueAtIndexOrDefault,d=t.options.elements.arc;return{text:n,fillStyle:s.backgroundColor?s.backgroundColor:u(r.backgroundColor,i,d.backgroundColor),strokeStyle:s.borderColor?s.borderColor:u(r.borderColor,i,d.borderColor),lineWidth:s.borderWidth?s.borderWidth:u(r.borderWidth,i,d.borderWidth),hidden:isNaN(r.data[i])||a.data[i].hidden,index:i}}):[]}},onClick:function(t,e){var n,i,a,o=e.index,r=this.chart;for(n=0,i=(r.data.datasets||[]).length;n<i;++n)(a=r.getDatasetMeta(n)).data[o]&&(a.data[o].hidden=!a.data[o].hidden);r.update()}},cutoutPercentage:50,rotation:-.5*Math.PI,circumference:2*Math.PI,tooltips:{callbacks:{title:function(){return""},label:function(t,e){var n=e.labels[t.index],i=": "+e.datasets[t.datasetIndex].data[t.index];return o.isArray(n)?(n=n.slice())[0]+=i:n+=i,n}}}}),i._set("pie",o.clone(i.doughnut)),i._set("pie",{cutoutPercentage:0}),e.exports=function(t){t.controllers.doughnut=t.controllers.pie=t.DatasetController.extend({dataElementType:a.Arc,linkScales:o.noop,getRingIndex:function(t){for(var e=0,n=0;n<t;++n)this.chart.isDatasetVisible(n)&&++e;return e},update:function(t){var e=this,n=e.chart,i=n.chartArea,a=n.options,r=a.elements.arc,l=i.right-i.left-r.borderWidth,s=i.bottom-i.top-r.borderWidth,u=Math.min(l,s),d={x:0,y:0},c=e.getMeta(),h=a.cutoutPercentage,f=a.circumference;if(f<2*Math.PI){var g=a.rotation%(2*Math.PI),p=(g+=2*Math.PI*(g>=Math.PI?-1:g<-Math.PI?1:0))+f,v={x:Math.cos(g),y:Math.sin(g)},m={x:Math.cos(p),y:Math.sin(p)},b=g<=0&&p>=0||g<=2*Math.PI&&2*Math.PI<=p,x=g<=.5*Math.PI&&.5*Math.PI<=p||g<=2.5*Math.PI&&2.5*Math.PI<=p,y=g<=-Math.PI&&-Math.PI<=p||g<=Math.PI&&Math.PI<=p,k=g<=.5*-Math.PI&&.5*-Math.PI<=p||g<=1.5*Math.PI&&1.5*Math.PI<=p,w=h/100,M={x:y?-1:Math.min(v.x*(v.x<0?1:w),m.x*(m.x<0?1:w)),y:k?-1:Math.min(v.y*(v.y<0?1:w),m.y*(m.y<0?1:w))},S={x:b?1:Math.max(v.x*(v.x>0?1:w),m.x*(m.x>0?1:w)),y:x?1:Math.max(v.y*(v.y>0?1:w),m.y*(m.y>0?1:w))},C={width:.5*(S.x-M.x),height:.5*(S.y-M.y)};u=Math.min(l/C.width,s/C.height),d={x:-.5*(S.x+M.x),y:-.5*(S.y+M.y)}}n.borderWidth=e.getMaxBorderWidth(c.data),n.outerRadius=Math.max((u-n.borderWidth)/2,0),n.innerRadius=Math.max(h?n.outerRadius/100*h:0,0),n.radiusLength=(n.outerRadius-n.innerRadius)/n.getVisibleDatasetCount(),n.offsetX=d.x*n.outerRadius,n.offsetY=d.y*n.outerRadius,c.total=e.calculateTotal(),e.outerRadius=n.outerRadius-n.radiusLength*e.getRingIndex(e.index),e.innerRadius=Math.max(e.outerRadius-n.radiusLength,0),o.each(c.data,function(n,i){e.updateElement(n,i,t)})},updateElement:function(t,e,n){var i=this,a=i.chart,r=a.chartArea,l=a.options,s=l.animation,u=(r.left+r.right)/2,d=(r.top+r.bottom)/2,c=l.rotation,h=l.rotation,f=i.getDataset(),g=n&&s.animateRotate?0:t.hidden?0:i.calculateCircumference(f.data[e])*(l.circumference/(2*Math.PI)),p=n&&s.animateScale?0:i.innerRadius,v=n&&s.animateScale?0:i.outerRadius,m=o.valueAtIndexOrDefault;o.extend(t,{_datasetIndex:i.index,_index:e,_model:{x:u+a.offsetX,y:d+a.offsetY,startAngle:c,endAngle:h,circumference:g,outerRadius:v,innerRadius:p,label:m(f.label,e,a.data.labels[e])}});var b=t._model;this.removeHoverStyle(t),n&&s.animateRotate||(b.startAngle=0===e?l.rotation:i.getMeta().data[e-1]._model.endAngle,b.endAngle=b.startAngle+b.circumference),t.pivot()},removeHoverStyle:function(e){t.DatasetController.prototype.removeHoverStyle.call(this,e,this.chart.options.elements.arc)},calculateTotal:function(){var t,e=this.getDataset(),n=this.getMeta(),i=0;return o.each(n.data,function(n,a){t=e.data[a],isNaN(t)||n.hidden||(i+=Math.abs(t))}),i},calculateCircumference:function(t){var e=this.getMeta().total;return e>0&&!isNaN(t)?2*Math.PI*(t/e):0},getMaxBorderWidth:function(t){for(var e,n,i=0,a=this.index,o=t.length,r=0;r<o;r++)e=t[r]._model?t[r]._model.borderWidth:0,i=(n=t[r]._chart?t[r]._chart.config.data.datasets[a].hoverBorderWidth:0)>(i=e>i?e:i)?n:i;return i}})}},{25:25,40:40,45:45}],18:[function(t,e,n){"use strict";var i=t(25),a=t(40),o=t(45);i._set("line",{showLines:!0,spanGaps:!1,hover:{mode:"label"},scales:{xAxes:[{type:"category",id:"x-axis-0"}],yAxes:[{type:"linear",id:"y-axis-0"}]}}),e.exports=function(t){function e(t,e){return o.valueOrDefault(t.showLine,e.showLines)}t.controllers.line=t.DatasetController.extend({datasetElementType:a.Line,dataElementType:a.Point,update:function(t){var n,i,a,r=this,l=r.getMeta(),s=l.dataset,u=l.data||[],d=r.chart.options,c=d.elements.line,h=r.getScaleForId(l.yAxisID),f=r.getDataset(),g=e(f,d);for(g&&(a=s.custom||{},void 0!==f.tension&&void 0===f.lineTension&&(f.lineTension=f.tension),s._scale=h,s._datasetIndex=r.index,s._children=u,s._model={spanGaps:f.spanGaps?f.spanGaps:d.spanGaps,tension:a.tension?a.tension:o.valueOrDefault(f.lineTension,c.tension),backgroundColor:a.backgroundColor?a.backgroundColor:f.backgroundColor||c.backgroundColor,borderWidth:a.borderWidth?a.borderWidth:f.borderWidth||c.borderWidth,borderColor:a.borderColor?a.borderColor:f.borderColor||c.borderColor,borderCapStyle:a.borderCapStyle?a.borderCapStyle:f.borderCapStyle||c.borderCapStyle,borderDash:a.borderDash?a.borderDash:f.borderDash||c.borderDash,borderDashOffset:a.borderDashOffset?a.borderDashOffset:f.borderDashOffset||c.borderDashOffset,borderJoinStyle:a.borderJoinStyle?a.borderJoinStyle:f.borderJoinStyle||c.borderJoinStyle,fill:a.fill?a.fill:void 0!==f.fill?f.fill:c.fill,steppedLine:a.steppedLine?a.steppedLine:o.valueOrDefault(f.steppedLine,c.stepped),cubicInterpolationMode:a.cubicInterpolationMode?a.cubicInterpolationMode:o.valueOrDefault(f.cubicInterpolationMode,c.cubicInterpolationMode)},s.pivot()),n=0,i=u.length;n<i;++n)r.updateElement(u[n],n,t);for(g&&0!==s._model.tension&&r.updateBezierControlPoints(),n=0,i=u.length;n<i;++n)u[n].pivot()},getPointBackgroundColor:function(t,e){var n=this.chart.options.elements.point.backgroundColor,i=this.getDataset(),a=t.custom||{};return a.backgroundColor?n=a.backgroundColor:i.pointBackgroundColor?n=o.valueAtIndexOrDefault(i.pointBackgroundColor,e,n):i.backgroundColor&&(n=i.backgroundColor),n},getPointBorderColor:function(t,e){var n=this.chart.options.elements.point.borderColor,i=this.getDataset(),a=t.custom||{};return a.borderColor?n=a.borderColor:i.pointBorderColor?n=o.valueAtIndexOrDefault(i.pointBorderColor,e,n):i.borderColor&&(n=i.borderColor),n},getPointBorderWidth:function(t,e){var n=this.chart.options.elements.point.borderWidth,i=this.getDataset(),a=t.custom||{};return isNaN(a.borderWidth)?!isNaN(i.pointBorderWidth)||o.isArray(i.pointBorderWidth)?n=o.valueAtIndexOrDefault(i.pointBorderWidth,e,n):isNaN(i.borderWidth)||(n=i.borderWidth):n=a.borderWidth,n},updateElement:function(t,e,n){var i,a,r=this,l=r.getMeta(),s=t.custom||{},u=r.getDataset(),d=r.index,c=u.data[e],h=r.getScaleForId(l.yAxisID),f=r.getScaleForId(l.xAxisID),g=r.chart.options.elements.point;void 0!==u.radius&&void 0===u.pointRadius&&(u.pointRadius=u.radius),void 0!==u.hitRadius&&void 0===u.pointHitRadius&&(u.pointHitRadius=u.hitRadius),i=f.getPixelForValue("object"==typeof c?c:NaN,e,d),a=n?h.getBasePixel():r.calculatePointY(c,e,d),t._xScale=f,t._yScale=h,t._datasetIndex=d,t._index=e,t._model={x:i,y:a,skip:s.skip||isNaN(i)||isNaN(a),radius:s.radius||o.valueAtIndexOrDefault(u.pointRadius,e,g.radius),pointStyle:s.pointStyle||o.valueAtIndexOrDefault(u.pointStyle,e,g.pointStyle),backgroundColor:r.getPointBackgroundColor(t,e),borderColor:r.getPointBorderColor(t,e),borderWidth:r.getPointBorderWidth(t,e),tension:l.dataset._model?l.dataset._model.tension:0,steppedLine:!!l.dataset._model&&l.dataset._model.steppedLine,hitRadius:s.hitRadius||o.valueAtIndexOrDefault(u.pointHitRadius,e,g.hitRadius)}},calculatePointY:function(t,e,n){var i,a,o,r=this,l=r.chart,s=r.getMeta(),u=r.getScaleForId(s.yAxisID),d=0,c=0;if(u.options.stacked){for(i=0;i<n;i++)if(a=l.data.datasets[i],"line"===(o=l.getDatasetMeta(i)).type&&o.yAxisID===u.id&&l.isDatasetVisible(i)){var h=Number(u.getRightValue(a.data[e]));h<0?c+=h||0:d+=h||0}var f=Number(u.getRightValue(t));return f<0?u.getPixelForValue(c+f):u.getPixelForValue(d+f)}return u.getPixelForValue(t)},updateBezierControlPoints:function(){function t(t,e,n){return Math.max(Math.min(t,n),e)}var e,n,i,a,r=this,l=r.getMeta(),s=r.chart.chartArea,u=l.data||[];if(l.dataset._model.spanGaps&&(u=u.filter(function(t){return!t._model.skip})),"monotone"===l.dataset._model.cubicInterpolationMode)o.splineCurveMonotone(u);else for(e=0,n=u.length;e<n;++e)i=u[e]._model,a=o.splineCurve(o.previousItem(u,e)._model,i,o.nextItem(u,e)._model,l.dataset._model.tension),i.controlPointPreviousX=a.previous.x,i.controlPointPreviousY=a.previous.y,i.controlPointNextX=a.next.x,i.controlPointNextY=a.next.y;if(r.chart.options.elements.line.capBezierPoints)for(e=0,n=u.length;e<n;++e)(i=u[e]._model).controlPointPreviousX=t(i.controlPointPreviousX,s.left,s.right),i.controlPointPreviousY=t(i.controlPointPreviousY,s.top,s.bottom),i.controlPointNextX=t(i.controlPointNextX,s.left,s.right),i.controlPointNextY=t(i.controlPointNextY,s.top,s.bottom)},draw:function(){var t=this,n=t.chart,i=t.getMeta(),a=i.data||[],r=n.chartArea,l=a.length,s=0;for(o.canvas.clipArea(n.ctx,r),e(t.getDataset(),n.options)&&i.dataset.draw(),o.canvas.unclipArea(n.ctx);s<l;++s)a[s].draw(r)},setHoverStyle:function(t){var e=this.chart.data.datasets[t._datasetIndex],n=t._index,i=t.custom||{},a=t._model;a.radius=i.hoverRadius||o.valueAtIndexOrDefault(e.pointHoverRadius,n,this.chart.options.elements.point.hoverRadius),a.backgroundColor=i.hoverBackgroundColor||o.valueAtIndexOrDefault(e.pointHoverBackgroundColor,n,o.getHoverColor(a.backgroundColor)),a.borderColor=i.hoverBorderColor||o.valueAtIndexOrDefault(e.pointHoverBorderColor,n,o.getHoverColor(a.borderColor)),a.borderWidth=i.hoverBorderWidth||o.valueAtIndexOrDefault(e.pointHoverBorderWidth,n,a.borderWidth)},removeHoverStyle:function(t){var e=this,n=e.chart.data.datasets[t._datasetIndex],i=t._index,a=t.custom||{},r=t._model;void 0!==n.radius&&void 0===n.pointRadius&&(n.pointRadius=n.radius),r.radius=a.radius||o.valueAtIndexOrDefault(n.pointRadius,i,e.chart.options.elements.point.radius),r.backgroundColor=e.getPointBackgroundColor(t,i),r.borderColor=e.getPointBorderColor(t,i),r.borderWidth=e.getPointBorderWidth(t,i)}})}},{25:25,40:40,45:45}],19:[function(t,e,n){"use strict";var i=t(25),a=t(40),o=t(45);i._set("polarArea",{scale:{type:"radialLinear",angleLines:{display:!1},gridLines:{circular:!0},pointLabels:{display:!1},ticks:{beginAtZero:!0}},animation:{animateRotate:!0,animateScale:!0},startAngle:-.5*Math.PI,legendCallback:function(t){var e=[];e.push('<ul class="'+t.id+'-legend">');var n=t.data,i=n.datasets,a=n.labels;if(i.length)for(var o=0;o<i[0].data.length;++o)e.push('<li><span style="background-color:'+i[0].backgroundColor[o]+'"></span>'),a[o]&&e.push(a[o]),e.push("</li>");return e.push("</ul>"),e.join("")},legend:{labels:{generateLabels:function(t){var e=t.data;return e.labels.length&&e.datasets.length?e.labels.map(function(n,i){var a=t.getDatasetMeta(0),r=e.datasets[0],l=a.data[i].custom||{},s=o.valueAtIndexOrDefault,u=t.options.elements.arc;return{text:n,fillStyle:l.backgroundColor?l.backgroundColor:s(r.backgroundColor,i,u.backgroundColor),strokeStyle:l.borderColor?l.borderColor:s(r.borderColor,i,u.borderColor),lineWidth:l.borderWidth?l.borderWidth:s(r.borderWidth,i,u.borderWidth),hidden:isNaN(r.data[i])||a.data[i].hidden,index:i}}):[]}},onClick:function(t,e){var n,i,a,o=e.index,r=this.chart;for(n=0,i=(r.data.datasets||[]).length;n<i;++n)(a=r.getDatasetMeta(n)).data[o].hidden=!a.data[o].hidden;r.update()}},tooltips:{callbacks:{title:function(){return""},label:function(t,e){return e.labels[t.index]+": "+t.yLabel}}}}),e.exports=function(t){t.controllers.polarArea=t.DatasetController.extend({dataElementType:a.Arc,linkScales:o.noop,update:function(t){var e=this,n=e.chart,i=n.chartArea,a=e.getMeta(),r=n.options,l=r.elements.arc,s=Math.min(i.right-i.left,i.bottom-i.top);n.outerRadius=Math.max((s-l.borderWidth/2)/2,0),n.innerRadius=Math.max(r.cutoutPercentage?n.outerRadius/100*r.cutoutPercentage:1,0),n.radiusLength=(n.outerRadius-n.innerRadius)/n.getVisibleDatasetCount(),e.outerRadius=n.outerRadius-n.radiusLength*e.index,e.innerRadius=e.outerRadius-n.radiusLength,a.count=e.countVisibleElements(),o.each(a.data,function(n,i){e.updateElement(n,i,t)})},updateElement:function(t,e,n){for(var i=this,a=i.chart,r=i.getDataset(),l=a.options,s=l.animation,u=a.scale,d=a.data.labels,c=i.calculateCircumference(r.data[e]),h=u.xCenter,f=u.yCenter,g=0,p=i.getMeta(),v=0;v<e;++v)isNaN(r.data[v])||p.data[v].hidden||++g;var m=l.startAngle,b=t.hidden?0:u.getDistanceFromCenterForValue(r.data[e]),x=m+c*g,y=x+(t.hidden?0:c),k=s.animateScale?0:u.getDistanceFromCenterForValue(r.data[e]);o.extend(t,{_datasetIndex:i.index,_index:e,_scale:u,_model:{x:h,y:f,innerRadius:0,outerRadius:n?k:b,startAngle:n&&s.animateRotate?m:x,endAngle:n&&s.animateRotate?m:y,label:o.valueAtIndexOrDefault(d,e,d[e])}}),i.removeHoverStyle(t),t.pivot()},removeHoverStyle:function(e){t.DatasetController.prototype.removeHoverStyle.call(this,e,this.chart.options.elements.arc)},countVisibleElements:function(){var t=this.getDataset(),e=this.getMeta(),n=0;return o.each(e.data,function(e,i){isNaN(t.data[i])||e.hidden||n++}),n},calculateCircumference:function(t){var e=this.getMeta().count;return e>0&&!isNaN(t)?2*Math.PI/e:0}})}},{25:25,40:40,45:45}],20:[function(t,e,n){"use strict";var i=t(25),a=t(40),o=t(45);i._set("radar",{scale:{type:"radialLinear"},elements:{line:{tension:0}}}),e.exports=function(t){t.controllers.radar=t.DatasetController.extend({datasetElementType:a.Line,dataElementType:a.Point,linkScales:o.noop,update:function(t){var e=this,n=e.getMeta(),i=n.dataset,a=n.data,r=i.custom||{},l=e.getDataset(),s=e.chart.options.elements.line,u=e.chart.scale;void 0!==l.tension&&void 0===l.lineTension&&(l.lineTension=l.tension),o.extend(n.dataset,{_datasetIndex:e.index,_scale:u,_children:a,_loop:!0,_model:{tension:r.tension?r.tension:o.valueOrDefault(l.lineTension,s.tension),backgroundColor:r.backgroundColor?r.backgroundColor:l.backgroundColor||s.backgroundColor,borderWidth:r.borderWidth?r.borderWidth:l.borderWidth||s.borderWidth,borderColor:r.borderColor?r.borderColor:l.borderColor||s.borderColor,fill:r.fill?r.fill:void 0!==l.fill?l.fill:s.fill,borderCapStyle:r.borderCapStyle?r.borderCapStyle:l.borderCapStyle||s.borderCapStyle,borderDash:r.borderDash?r.borderDash:l.borderDash||s.borderDash,borderDashOffset:r.borderDashOffset?r.borderDashOffset:l.borderDashOffset||s.borderDashOffset,borderJoinStyle:r.borderJoinStyle?r.borderJoinStyle:l.borderJoinStyle||s.borderJoinStyle}}),n.dataset.pivot(),o.each(a,function(n,i){e.updateElement(n,i,t)},e),e.updateBezierControlPoints()},updateElement:function(t,e,n){var i=this,a=t.custom||{},r=i.getDataset(),l=i.chart.scale,s=i.chart.options.elements.point,u=l.getPointPositionForValue(e,r.data[e]);void 0!==r.radius&&void 0===r.pointRadius&&(r.pointRadius=r.radius),void 0!==r.hitRadius&&void 0===r.pointHitRadius&&(r.pointHitRadius=r.hitRadius),o.extend(t,{_datasetIndex:i.index,_index:e,_scale:l,_model:{x:n?l.xCenter:u.x,y:n?l.yCenter:u.y,tension:a.tension?a.tension:o.valueOrDefault(r.lineTension,i.chart.options.elements.line.tension),radius:a.radius?a.radius:o.valueAtIndexOrDefault(r.pointRadius,e,s.radius),backgroundColor:a.backgroundColor?a.backgroundColor:o.valueAtIndexOrDefault(r.pointBackgroundColor,e,s.backgroundColor),borderColor:a.borderColor?a.borderColor:o.valueAtIndexOrDefault(r.pointBorderColor,e,s.borderColor),borderWidth:a.borderWidth?a.borderWidth:o.valueAtIndexOrDefault(r.pointBorderWidth,e,s.borderWidth),pointStyle:a.pointStyle?a.pointStyle:o.valueAtIndexOrDefault(r.pointStyle,e,s.pointStyle),hitRadius:a.hitRadius?a.hitRadius:o.valueAtIndexOrDefault(r.pointHitRadius,e,s.hitRadius)}}),t._model.skip=a.skip?a.skip:isNaN(t._model.x)||isNaN(t._model.y)},updateBezierControlPoints:function(){var t=this.chart.chartArea,e=this.getMeta();o.each(e.data,function(n,i){var a=n._model,r=o.splineCurve(o.previousItem(e.data,i,!0)._model,a,o.nextItem(e.data,i,!0)._model,a.tension);a.controlPointPreviousX=Math.max(Math.min(r.previous.x,t.right),t.left),a.controlPointPreviousY=Math.max(Math.min(r.previous.y,t.bottom),t.top),a.controlPointNextX=Math.max(Math.min(r.next.x,t.right),t.left),a.controlPointNextY=Math.max(Math.min(r.next.y,t.bottom),t.top),n.pivot()})},setHoverStyle:function(t){var e=this.chart.data.datasets[t._datasetIndex],n=t.custom||{},i=t._index,a=t._model;a.radius=n.hoverRadius?n.hoverRadius:o.valueAtIndexOrDefault(e.pointHoverRadius,i,this.chart.options.elements.point.hoverRadius),a.backgroundColor=n.hoverBackgroundColor?n.hoverBackgroundColor:o.valueAtIndexOrDefault(e.pointHoverBackgroundColor,i,o.getHoverColor(a.backgroundColor)),a.borderColor=n.hoverBorderColor?n.hoverBorderColor:o.valueAtIndexOrDefault(e.pointHoverBorderColor,i,o.getHoverColor(a.borderColor)),a.borderWidth=n.hoverBorderWidth?n.hoverBorderWidth:o.valueAtIndexOrDefault(e.pointHoverBorderWidth,i,a.borderWidth)},removeHoverStyle:function(t){var e=this.chart.data.datasets[t._datasetIndex],n=t.custom||{},i=t._index,a=t._model,r=this.chart.options.elements.point;a.radius=n.radius?n.radius:o.valueAtIndexOrDefault(e.pointRadius,i,r.radius),a.backgroundColor=n.backgroundColor?n.backgroundColor:o.valueAtIndexOrDefault(e.pointBackgroundColor,i,r.backgroundColor),a.borderColor=n.borderColor?n.borderColor:o.valueAtIndexOrDefault(e.pointBorderColor,i,r.borderColor),a.borderWidth=n.borderWidth?n.borderWidth:o.valueAtIndexOrDefault(e.pointBorderWidth,i,r.borderWidth)}})}},{25:25,40:40,45:45}],21:[function(t,e,n){"use strict";t(25)._set("scatter",{hover:{mode:"single"},scales:{xAxes:[{id:"x-axis-1",type:"linear",position:"bottom"}],yAxes:[{id:"y-axis-1",type:"linear",position:"left"}]},showLines:!1,tooltips:{callbacks:{title:function(){return""},label:function(t){return"("+t.xLabel+", "+t.yLabel+")"}}}}),e.exports=function(t){t.controllers.scatter=t.controllers.line}},{25:25}],22:[function(t,e,n){"use strict";var i=t(25),a=t(26),o=t(45);i._set("global",{animation:{duration:1e3,easing:"easeOutQuart",onProgress:o.noop,onComplete:o.noop}}),e.exports=function(t){t.Animation=a.extend({chart:null,currentStep:0,numSteps:60,easing:"",render:null,onAnimationProgress:null,onAnimationComplete:null}),t.animationService={frameDuration:17,animations:[],dropFrames:0,request:null,addAnimation:function(t,e,n,i){var a,o,r=this.animations;for(e.chart=t,i||(t.animating=!0),a=0,o=r.length;a<o;++a)if(r[a].chart===t)return void(r[a]=e);r.push(e),1===r.length&&this.requestAnimationFrame()},cancelAnimation:function(t){var e=o.findIndex(this.animations,function(e){return e.chart===t});-1!==e&&(this.animations.splice(e,1),t.animating=!1)},requestAnimationFrame:function(){var t=this;null===t.request&&(t.request=o.requestAnimFrame.call(window,function(){t.request=null,t.startDigest()}))},startDigest:function(){var t=this,e=Date.now(),n=0;t.dropFrames>1&&(n=Math.floor(t.dropFrames),t.dropFrames=t.dropFrames%1),t.advance(1+n);var i=Date.now();t.dropFrames+=(i-e)/t.frameDuration,t.animations.length>0&&t.requestAnimationFrame()},advance:function(t){for(var e,n,i=this.animations,a=0;a<i.length;)n=(e=i[a]).chart,e.currentStep=(e.currentStep||0)+t,e.currentStep=Math.min(e.currentStep,e.numSteps),o.callback(e.render,[n,e],n),o.callback(e.onAnimationProgress,[e],n),e.currentStep>=e.numSteps?(o.callback(e.onAnimationComplete,[e],n),n.animating=!1,i.splice(a,1)):++a}},Object.defineProperty(t.Animation.prototype,"animationObject",{get:function(){return this}}),Object.defineProperty(t.Animation.prototype,"chartInstance",{get:function(){return this.chart},set:function(t){this.chart=t}})}},{25:25,26:26,45:45}],23:[function(t,e,n){"use strict";var i=t(25),a=t(45),o=t(28),r=t(48);e.exports=function(t){function e(t){var e=(t=t||{}).data=t.data||{};return e.datasets=e.datasets||[],e.labels=e.labels||[],t.options=a.configMerge(i.global,i[t.type],t.options||{}),t}function n(t){var e=t.options;e.scale?t.scale.options=e.scale:e.scales&&e.scales.xAxes.concat(e.scales.yAxes).forEach(function(e){t.scales[e.id].options=e}),t.tooltip._options=e.tooltips}function l(t){return"top"===t||"bottom"===t}var s=t.plugins;t.types={},t.instances={},t.controllers={},a.extend(t.prototype,{construct:function(n,i){var o=this;i=e(i);var l=r.acquireContext(n,i),s=l&&l.canvas,u=s&&s.height,d=s&&s.width;o.id=a.uid(),o.ctx=l,o.canvas=s,o.config=i,o.width=d,o.height=u,o.aspectRatio=u?d/u:null,o.options=i.options,o._bufferedRender=!1,o.chart=o,o.controller=o,t.instances[o.id]=o,Object.defineProperty(o,"data",{get:function(){return o.config.data},set:function(t){o.config.data=t}}),l&&s?(o.initialize(),o.update()):console.error("Failed to create chart: can't acquire context from the given item")},initialize:function(){var t=this;return s.notify(t,"beforeInit"),a.retinaScale(t,t.options.devicePixelRatio),t.bindEvents(),t.options.responsive&&t.resize(!0),t.ensureScalesHaveIDs(),t.buildScales(),t.initToolTip(),s.notify(t,"afterInit"),t},clear:function(){return a.canvas.clear(this),this},stop:function(){return t.animationService.cancelAnimation(this),this},resize:function(t){var e=this,n=e.options,i=e.canvas,o=n.maintainAspectRatio&&e.aspectRatio||null,r=Math.max(0,Math.floor(a.getMaximumWidth(i))),l=Math.max(0,Math.floor(o?r/o:a.getMaximumHeight(i)));if((e.width!==r||e.height!==l)&&(i.width=e.width=r,i.height=e.height=l,i.style.width=r+"px",i.style.height=l+"px",a.retinaScale(e,n.devicePixelRatio),!t)){var u={width:r,height:l};s.notify(e,"resize",[u]),e.options.onResize&&e.options.onResize(e,u),e.stop(),e.update(e.options.responsiveAnimationDuration)}},ensureScalesHaveIDs:function(){var t=this.options,e=t.scales||{},n=t.scale;a.each(e.xAxes,function(t,e){t.id=t.id||"x-axis-"+e}),a.each(e.yAxes,function(t,e){t.id=t.id||"y-axis-"+e}),n&&(n.id=n.id||"scale")},buildScales:function(){var e=this,n=e.options,i=e.scales={},o=[];n.scales&&(o=o.concat((n.scales.xAxes||[]).map(function(t){return{options:t,dtype:"category",dposition:"bottom"}}),(n.scales.yAxes||[]).map(function(t){return{options:t,dtype:"linear",dposition:"left"}}))),n.scale&&o.push({options:n.scale,dtype:"radialLinear",isDefault:!0,dposition:"chartArea"}),a.each(o,function(n){var o=n.options,r=a.valueOrDefault(o.type,n.dtype),s=t.scaleService.getScaleConstructor(r);if(s){l(o.position)!==l(n.dposition)&&(o.position=n.dposition);var u=new s({id:o.id,options:o,ctx:e.ctx,chart:e});i[u.id]=u,u.mergeTicksOptions(),n.isDefault&&(e.scale=u)}}),t.scaleService.addScalesToLayout(this)},buildOrUpdateControllers:function(){var e=this,n=[],i=[];return a.each(e.data.datasets,function(a,o){var r=e.getDatasetMeta(o),l=a.type||e.config.type;if(r.type&&r.type!==l&&(e.destroyDatasetMeta(o),r=e.getDatasetMeta(o)),r.type=l,n.push(r.type),r.controller)r.controller.updateIndex(o);else{var s=t.controllers[r.type];if(void 0===s)throw new Error('"'+r.type+'" is not a chart type.');r.controller=new s(e,o),i.push(r.controller)}},e),i},resetElements:function(){var t=this;a.each(t.data.datasets,function(e,n){t.getDatasetMeta(n).controller.reset()},t)},reset:function(){this.resetElements(),this.tooltip.initialize()},update:function(t){var e=this;if(t&&"object"==typeof t||(t={duration:t,lazy:arguments[1]}),n(e),!1!==s.notify(e,"beforeUpdate")){e.tooltip._data=e.data;var i=e.buildOrUpdateControllers();a.each(e.data.datasets,function(t,n){e.getDatasetMeta(n).controller.buildOrUpdateElements()},e),e.updateLayout(),a.each(i,function(t){t.reset()}),e.updateDatasets(),e.tooltip.initialize(),e.lastActive=[],s.notify(e,"afterUpdate"),e._bufferedRender?e._bufferedRequest={duration:t.duration,easing:t.easing,lazy:t.lazy}:e.render(t)}},updateLayout:function(){var e=this;!1!==s.notify(e,"beforeLayout")&&(t.layoutService.update(this,this.width,this.height),s.notify(e,"afterScaleUpdate"),s.notify(e,"afterLayout"))},updateDatasets:function(){var t=this;if(!1!==s.notify(t,"beforeDatasetsUpdate")){for(var e=0,n=t.data.datasets.length;e<n;++e)t.updateDataset(e);s.notify(t,"afterDatasetsUpdate")}},updateDataset:function(t){var e=this,n=e.getDatasetMeta(t),i={meta:n,index:t};!1!==s.notify(e,"beforeDatasetUpdate",[i])&&(n.controller.update(),s.notify(e,"afterDatasetUpdate",[i]))},render:function(e){var n=this;e&&"object"==typeof e||(e={duration:e,lazy:arguments[1]});var i=e.duration,o=e.lazy;if(!1!==s.notify(n,"beforeRender")){var r=n.options.animation,l=function(t){s.notify(n,"afterRender"),a.callback(r&&r.onComplete,[t],n)};if(r&&(void 0!==i&&0!==i||void 0===i&&0!==r.duration)){var u=new t.Animation({numSteps:(i||r.duration)/16.66,easing:e.easing||r.easing,render:function(t,e){var n=a.easing.effects[e.easing],i=e.currentStep,o=i/e.numSteps;t.draw(n(o),o,i)},onAnimationProgress:r.onProgress,onAnimationComplete:l});t.animationService.addAnimation(n,u,i,o)}else n.draw(),l(new t.Animation({numSteps:0,chart:n}));return n}},draw:function(t){var e=this;e.clear(),a.isNullOrUndef(t)&&(t=1),e.transition(t),!1!==s.notify(e,"beforeDraw",[t])&&(a.each(e.boxes,function(t){t.draw(e.chartArea)},e),e.scale&&e.scale.draw(),e.drawDatasets(t),e._drawTooltip(t),s.notify(e,"afterDraw",[t]))},transition:function(t){for(var e=this,n=0,i=(e.data.datasets||[]).length;n<i;++n)e.isDatasetVisible(n)&&e.getDatasetMeta(n).controller.transition(t);e.tooltip.transition(t)},drawDatasets:function(t){var e=this;if(!1!==s.notify(e,"beforeDatasetsDraw",[t])){for(var n=(e.data.datasets||[]).length-1;n>=0;--n)e.isDatasetVisible(n)&&e.drawDataset(n,t);s.notify(e,"afterDatasetsDraw",[t])}},drawDataset:function(t,e){var n=this,i=n.getDatasetMeta(t),a={meta:i,index:t,easingValue:e};!1!==s.notify(n,"beforeDatasetDraw",[a])&&(i.controller.draw(e),s.notify(n,"afterDatasetDraw",[a]))},_drawTooltip:function(t){var e=this,n=e.tooltip,i={tooltip:n,easingValue:t};!1!==s.notify(e,"beforeTooltipDraw",[i])&&(n.draw(),s.notify(e,"afterTooltipDraw",[i]))},getElementAtEvent:function(t){return o.modes.single(this,t)},getElementsAtEvent:function(t){return o.modes.label(this,t,{intersect:!0})},getElementsAtXAxis:function(t){return o.modes["x-axis"](this,t,{intersect:!0})},getElementsAtEventForMode:function(t,e,n){var i=o.modes[e];return"function"==typeof i?i(this,t,n):[]},getDatasetAtEvent:function(t){return o.modes.dataset(this,t,{intersect:!0})},getDatasetMeta:function(t){var e=this,n=e.data.datasets[t];n._meta||(n._meta={});var i=n._meta[e.id];return i||(i=n._meta[e.id]={type:null,data:[],dataset:null,controller:null,hidden:null,xAxisID:null,yAxisID:null}),i},getVisibleDatasetCount:function(){for(var t=0,e=0,n=this.data.datasets.length;e<n;++e)this.isDatasetVisible(e)&&t++;return t},isDatasetVisible:function(t){var e=this.getDatasetMeta(t);return"boolean"==typeof e.hidden?!e.hidden:!this.data.datasets[t].hidden},generateLegend:function(){return this.options.legendCallback(this)},destroyDatasetMeta:function(t){var e=this.id,n=this.data.datasets[t],i=n._meta&&n._meta[e];i&&(i.controller.destroy(),delete n._meta[e])},destroy:function(){var e,n,i=this,o=i.canvas;for(i.stop(),e=0,n=i.data.datasets.length;e<n;++e)i.destroyDatasetMeta(e);o&&(i.unbindEvents(),a.canvas.clear(i),r.releaseContext(i.ctx),i.canvas=null,i.ctx=null),s.notify(i,"destroy"),delete t.instances[i.id]},toBase64Image:function(){return this.canvas.toDataURL.apply(this.canvas,arguments)},initToolTip:function(){var e=this;e.tooltip=new t.Tooltip({_chart:e,_chartInstance:e,_data:e.data,_options:e.options.tooltips},e)},bindEvents:function(){var t=this,e=t._listeners={},n=function(){t.eventHandler.apply(t,arguments)};a.each(t.options.events,function(i){r.addEventListener(t,i,n),e[i]=n}),t.options.responsive&&(n=function(){t.resize()},r.addEventListener(t,"resize",n),e.resize=n)},unbindEvents:function(){var t=this,e=t._listeners;e&&(delete t._listeners,a.each(e,function(e,n){r.removeEventListener(t,n,e)}))},updateHoverStyle:function(t,e,n){var i,a,o,r=n?"setHoverStyle":"removeHoverStyle";for(a=0,o=t.length;a<o;++a)(i=t[a])&&this.getDatasetMeta(i._datasetIndex).controller[r](i)},eventHandler:function(t){var e=this,n=e.tooltip;if(!1!==s.notify(e,"beforeEvent",[t])){e._bufferedRender=!0,e._bufferedRequest=null;var i=e.handleEvent(t);i|=n&&n.handleEvent(t),s.notify(e,"afterEvent",[t]);var a=e._bufferedRequest;return a?e.render(a):i&&!e.animating&&(e.stop(),e.render(e.options.hover.animationDuration,!0)),e._bufferedRender=!1,e._bufferedRequest=null,e}},handleEvent:function(t){var e=this,n=e.options||{},i=n.hover,o=!1;return e.lastActive=e.lastActive||[],"mouseout"===t.type?e.active=[]:e.active=e.getElementsAtEventForMode(t,i.mode,i),a.callback(n.onHover||n.hover.onHover,[t.native,e.active],e),"mouseup"!==t.type&&"click"!==t.type||n.onClick&&n.onClick.call(e,t.native,e.active),e.lastActive.length&&e.updateHoverStyle(e.lastActive,i.mode,!1),e.active.length&&i.mode&&e.updateHoverStyle(e.active,i.mode,!0),o=!a.arrayEquals(e.active,e.lastActive),e.lastActive=e.active,o}}),t.Controller=t}},{25:25,28:28,45:45,48:48}],24:[function(t,e,n){"use strict";var i=t(45);e.exports=function(t){function e(t,e){t._chartjs?t._chartjs.listeners.push(e):(Object.defineProperty(t,"_chartjs",{configurable:!0,enumerable:!1,value:{listeners:[e]}}),a.forEach(function(e){var n="onData"+e.charAt(0).toUpperCase()+e.slice(1),a=t[e];Object.defineProperty(t,e,{configurable:!0,enumerable:!1,value:function(){var e=Array.prototype.slice.call(arguments),o=a.apply(this,e);return i.each(t._chartjs.listeners,function(t){"function"==typeof t[n]&&t[n].apply(t,e)}),o}})}))}function n(t,e){var n=t._chartjs;if(n){var i=n.listeners,o=i.indexOf(e);-1!==o&&i.splice(o,1),i.length>0||(a.forEach(function(e){delete t[e]}),delete t._chartjs)}}var a=["push","pop","shift","splice","unshift"];t.DatasetController=function(t,e){this.initialize(t,e)},i.extend(t.DatasetController.prototype,{datasetElementType:null,dataElementType:null,initialize:function(t,e){var n=this;n.chart=t,n.index=e,n.linkScales(),n.addElements()},updateIndex:function(t){this.index=t},linkScales:function(){var t=this,e=t.getMeta(),n=t.getDataset();null===e.xAxisID&&(e.xAxisID=n.xAxisID||t.chart.options.scales.xAxes[0].id),null===e.yAxisID&&(e.yAxisID=n.yAxisID||t.chart.options.scales.yAxes[0].id)},getDataset:function(){return this.chart.data.datasets[this.index]},getMeta:function(){return this.chart.getDatasetMeta(this.index)},getScaleForId:function(t){return this.chart.scales[t]},reset:function(){this.update(!0)},destroy:function(){this._data&&n(this._data,this)},createMetaDataset:function(){var t=this,e=t.datasetElementType;return e&&new e({_chart:t.chart,_datasetIndex:t.index})},createMetaData:function(t){var e=this,n=e.dataElementType;return n&&new n({_chart:e.chart,_datasetIndex:e.index,_index:t})},addElements:function(){var t,e,n=this,i=n.getMeta(),a=n.getDataset().data||[],o=i.data;for(t=0,e=a.length;t<e;++t)o[t]=o[t]||n.createMetaData(t);i.dataset=i.dataset||n.createMetaDataset()},addElementAndReset:function(t){var e=this.createMetaData(t);this.getMeta().data.splice(t,0,e),this.updateElement(e,t,!0)},buildOrUpdateElements:function(){var t=this,i=t.getDataset(),a=i.data||(i.data=[]);t._data!==a&&(t._data&&n(t._data,t),e(a,t),t._data=a),t.resyncElements()},update:i.noop,transition:function(t){for(var e=this.getMeta(),n=e.data||[],i=n.length,a=0;a<i;++a)n[a].transition(t);e.dataset&&e.dataset.transition(t)},draw:function(){var t=this.getMeta(),e=t.data||[],n=e.length,i=0;for(t.dataset&&t.dataset.draw();i<n;++i)e[i].draw()},removeHoverStyle:function(t,e){var n=this.chart.data.datasets[t._datasetIndex],a=t._index,o=t.custom||{},r=i.valueAtIndexOrDefault,l=t._model;l.backgroundColor=o.backgroundColor?o.backgroundColor:r(n.backgroundColor,a,e.backgroundColor),l.borderColor=o.borderColor?o.borderColor:r(n.borderColor,a,e.borderColor),l.borderWidth=o.borderWidth?o.borderWidth:r(n.borderWidth,a,e.borderWidth)},setHoverStyle:function(t){var e=this.chart.data.datasets[t._datasetIndex],n=t._index,a=t.custom||{},o=i.valueAtIndexOrDefault,r=i.getHoverColor,l=t._model;l.backgroundColor=a.hoverBackgroundColor?a.hoverBackgroundColor:o(e.hoverBackgroundColor,n,r(l.backgroundColor)),l.borderColor=a.hoverBorderColor?a.hoverBorderColor:o(e.hoverBorderColor,n,r(l.borderColor)),l.borderWidth=a.hoverBorderWidth?a.hoverBorderWidth:o(e.hoverBorderWidth,n,l.borderWidth)},resyncElements:function(){var t=this,e=t.getMeta(),n=t.getDataset().data,i=e.data.length,a=n.length;a<i?e.data.splice(a,i-a):a>i&&t.insertElements(i,a-i)},insertElements:function(t,e){for(var n=0;n<e;++n)this.addElementAndReset(t+n)},onDataPush:function(){this.insertElements(this.getDataset().data.length-1,arguments.length)},onDataPop:function(){this.getMeta().data.pop()},onDataShift:function(){this.getMeta().data.shift()},onDataSplice:function(t,e){this.getMeta().data.splice(t,e),this.insertElements(t,arguments.length-2)},onDataUnshift:function(){this.insertElements(0,arguments.length)}}),t.DatasetController.extend=i.inherits}},{45:45}],25:[function(t,e,n){"use strict";var i=t(45);e.exports={_set:function(t,e){return i.merge(this[t]||(this[t]={}),e)}}},{45:45}],26:[function(t,e,n){"use strict";function i(t,e,n,i){var o,r,l,s,u,d,c,h,f,g=Object.keys(n);for(o=0,r=g.length;o<r;++o)if(l=g[o],d=n[l],e.hasOwnProperty(l)||(e[l]=d),(s=e[l])!==d&&"_"!==l[0]){if(t.hasOwnProperty(l)||(t[l]=s),u=t[l],(c=typeof d)===typeof u)if("string"===c){if((h=a(u)).valid&&(f=a(d)).valid){e[l]=f.mix(h,i).rgbString();continue}}else if("number"===c&&isFinite(u)&&isFinite(d)){e[l]=u+(d-u)*i;continue}e[l]=d}}var a=t(3),o=t(45),r=function(t){o.extend(this,t),this.initialize.apply(this,arguments)};o.extend(r.prototype,{initialize:function(){this.hidden=!1},pivot:function(){var t=this;return t._view||(t._view=o.clone(t._model)),t._start={},t},transition:function(t){var e=this,n=e._model,a=e._start,o=e._view;return n&&1!==t?(o||(o=e._view={}),a||(a=e._start={}),i(a,o,n,t),e):(e._view=n,e._start=null,e)},tooltipPosition:function(){return{x:this._model.x,y:this._model.y}},hasValue:function(){return o.isNumber(this._model.x)&&o.isNumber(this._model.y)}}),r.extend=o.inherits,e.exports=r},{3:3,45:45}],27:[function(t,e,n){"use strict";var i=t(3),a=t(25),o=t(45);e.exports=function(t){function e(t,e,n){var i;return"string"==typeof t?(i=parseInt(t,10),-1!==t.indexOf("%")&&(i=i/100*e.parentNode[n])):i=t,i}function n(t){return void 0!==t&&null!==t&&"none"!==t}function r(t,i,a){var o=document.defaultView,r=t.parentNode,l=o.getComputedStyle(t)[i],s=o.getComputedStyle(r)[i],u=n(l),d=n(s),c=Number.POSITIVE_INFINITY;return u||d?Math.min(u?e(l,t,a):c,d?e(s,r,a):c):"none"}o.configMerge=function(){return o.merge(o.clone(arguments[0]),[].slice.call(arguments,1),{merger:function(e,n,i,a){var r=n[e]||{},l=i[e];"scales"===e?n[e]=o.scaleMerge(r,l):"scale"===e?n[e]=o.merge(r,[t.scaleService.getScaleDefaults(l.type),l]):o._merger(e,n,i,a)}})},o.scaleMerge=function(){return o.merge(o.clone(arguments[0]),[].slice.call(arguments,1),{merger:function(e,n,i,a){if("xAxes"===e||"yAxes"===e){var r,l,s,u=i[e].length;for(n[e]||(n[e]=[]),r=0;r<u;++r)s=i[e][r],l=o.valueOrDefault(s.type,"xAxes"===e?"category":"linear"),r>=n[e].length&&n[e].push({}),!n[e][r].type||s.type&&s.type!==n[e][r].type?o.merge(n[e][r],[t.scaleService.getScaleDefaults(l),s]):o.merge(n[e][r],s)}else o._merger(e,n,i,a)}})},o.where=function(t,e){if(o.isArray(t)&&Array.prototype.filter)return t.filter(e);var n=[];return o.each(t,function(t){e(t)&&n.push(t)}),n},o.findIndex=Array.prototype.findIndex?function(t,e,n){return t.findIndex(e,n)}:function(t,e,n){n=void 0===n?t:n;for(var i=0,a=t.length;i<a;++i)if(e.call(n,t[i],i,t))return i;return-1},o.findNextWhere=function(t,e,n){o.isNullOrUndef(n)&&(n=-1);for(var i=n+1;i<t.length;i++){var a=t[i];if(e(a))return a}},o.findPreviousWhere=function(t,e,n){o.isNullOrUndef(n)&&(n=t.length);for(var i=n-1;i>=0;i--){var a=t[i];if(e(a))return a}},o.isNumber=function(t){return!isNaN(parseFloat(t))&&isFinite(t)},o.almostEquals=function(t,e,n){return Math.abs(t-e)<n},o.almostWhole=function(t,e){var n=Math.round(t);return n-e<t&&n+e>t},o.max=function(t){return t.reduce(function(t,e){return isNaN(e)?t:Math.max(t,e)},Number.NEGATIVE_INFINITY)},o.min=function(t){return t.reduce(function(t,e){return isNaN(e)?t:Math.min(t,e)},Number.POSITIVE_INFINITY)},o.sign=Math.sign?function(t){return Math.sign(t)}:function(t){return 0==(t=+t)||isNaN(t)?t:t>0?1:-1},o.log10=Math.log10?function(t){return Math.log10(t)}:function(t){return Math.log(t)/Math.LN10},o.toRadians=function(t){return t*(Math.PI/180)},o.toDegrees=function(t){return t*(180/Math.PI)},o.getAngleFromPoint=function(t,e){var n=e.x-t.x,i=e.y-t.y,a=Math.sqrt(n*n+i*i),o=Math.atan2(i,n);return o<-.5*Math.PI&&(o+=2*Math.PI),{angle:o,distance:a}},o.distanceBetweenPoints=function(t,e){return Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))},o.aliasPixel=function(t){return t%2==0?0:.5},o.splineCurve=function(t,e,n,i){var a=t.skip?e:t,o=e,r=n.skip?e:n,l=Math.sqrt(Math.pow(o.x-a.x,2)+Math.pow(o.y-a.y,2)),s=Math.sqrt(Math.pow(r.x-o.x,2)+Math.pow(r.y-o.y,2)),u=l/(l+s),d=s/(l+s),c=i*(u=isNaN(u)?0:u),h=i*(d=isNaN(d)?0:d);return{previous:{x:o.x-c*(r.x-a.x),y:o.y-c*(r.y-a.y)},next:{x:o.x+h*(r.x-a.x),y:o.y+h*(r.y-a.y)}}},o.EPSILON=Number.EPSILON||1e-14,o.splineCurveMonotone=function(t){var e,n,i,a,r=(t||[]).map(function(t){return{model:t._model,deltaK:0,mK:0}}),l=r.length;for(e=0;e<l;++e)if(!(i=r[e]).model.skip){if(n=e>0?r[e-1]:null,(a=e<l-1?r[e+1]:null)&&!a.model.skip){var s=a.model.x-i.model.x;i.deltaK=0!==s?(a.model.y-i.model.y)/s:0}!n||n.model.skip?i.mK=i.deltaK:!a||a.model.skip?i.mK=n.deltaK:this.sign(n.deltaK)!==this.sign(i.deltaK)?i.mK=0:i.mK=(n.deltaK+i.deltaK)/2}var u,d,c,h;for(e=0;e<l-1;++e)i=r[e],a=r[e+1],i.model.skip||a.model.skip||(o.almostEquals(i.deltaK,0,this.EPSILON)?i.mK=a.mK=0:(u=i.mK/i.deltaK,d=a.mK/i.deltaK,(h=Math.pow(u,2)+Math.pow(d,2))<=9||(c=3/Math.sqrt(h),i.mK=u*c*i.deltaK,a.mK=d*c*i.deltaK)));var f;for(e=0;e<l;++e)(i=r[e]).model.skip||(n=e>0?r[e-1]:null,a=e<l-1?r[e+1]:null,n&&!n.model.skip&&(f=(i.model.x-n.model.x)/3,i.model.controlPointPreviousX=i.model.x-f,i.model.controlPointPreviousY=i.model.y-f*i.mK),a&&!a.model.skip&&(f=(a.model.x-i.model.x)/3,i.model.controlPointNextX=i.model.x+f,i.model.controlPointNextY=i.model.y+f*i.mK))},o.nextItem=function(t,e,n){return n?e>=t.length-1?t[0]:t[e+1]:e>=t.length-1?t[t.length-1]:t[e+1]},o.previousItem=function(t,e,n){return n?e<=0?t[t.length-1]:t[e-1]:e<=0?t[0]:t[e-1]},o.niceNum=function(t,e){var n=Math.floor(o.log10(t)),i=t/Math.pow(10,n);return(e?i<1.5?1:i<3?2:i<7?5:10:i<=1?1:i<=2?2:i<=5?5:10)*Math.pow(10,n)},o.requestAnimFrame="undefined"==typeof window?function(t){t()}:window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(t){return window.setTimeout(t,1e3/60)},o.getRelativePosition=function(t,e){var n,i,a=t.originalEvent||t,r=t.currentTarget||t.srcElement,l=r.getBoundingClientRect(),s=a.touches;s&&s.length>0?(n=s[0].clientX,i=s[0].clientY):(n=a.clientX,i=a.clientY);var u=parseFloat(o.getStyle(r,"padding-left")),d=parseFloat(o.getStyle(r,"padding-top")),c=parseFloat(o.getStyle(r,"padding-right")),h=parseFloat(o.getStyle(r,"padding-bottom")),f=l.right-l.left-u-c,g=l.bottom-l.top-d-h;return n=Math.round((n-l.left-u)/f*r.width/e.currentDevicePixelRatio),i=Math.round((i-l.top-d)/g*r.height/e.currentDevicePixelRatio),{x:n,y:i}},o.getConstraintWidth=function(t){return r(t,"max-width","clientWidth")},o.getConstraintHeight=function(t){return r(t,"max-height","clientHeight")},o.getMaximumWidth=function(t){var e=t.parentNode;if(!e)return t.clientWidth;var n=parseInt(o.getStyle(e,"padding-left"),10),i=parseInt(o.getStyle(e,"padding-right"),10),a=e.clientWidth-n-i,r=o.getConstraintWidth(t);return isNaN(r)?a:Math.min(a,r)},o.getMaximumHeight=function(t){var e=t.parentNode;if(!e)return t.clientHeight;var n=parseInt(o.getStyle(e,"padding-top"),10),i=parseInt(o.getStyle(e,"padding-bottom"),10),a=e.clientHeight-n-i,r=o.getConstraintHeight(t);return isNaN(r)?a:Math.min(a,r)},o.getStyle=function(t,e){return t.currentStyle?t.currentStyle[e]:document.defaultView.getComputedStyle(t,null).getPropertyValue(e)},o.retinaScale=function(t,e){var n=t.currentDevicePixelRatio=e||window.devicePixelRatio||1;if(1!==n){var i=t.canvas,a=t.height,o=t.width;i.height=a*n,i.width=o*n,t.ctx.scale(n,n),i.style.height=a+"px",i.style.width=o+"px"}},o.fontString=function(t,e,n){return e+" "+t+"px "+n},o.longestText=function(t,e,n,i){var a=(i=i||{}).data=i.data||{},r=i.garbageCollect=i.garbageCollect||[];i.font!==e&&(a=i.data={},r=i.garbageCollect=[],i.font=e),t.font=e;var l=0;o.each(n,function(e){void 0!==e&&null!==e&&!0!==o.isArray(e)?l=o.measureText(t,a,r,l,e):o.isArray(e)&&o.each(e,function(e){void 0===e||null===e||o.isArray(e)||(l=o.measureText(t,a,r,l,e))})});var s=r.length/2;if(s>n.length){for(var u=0;u<s;u++)delete a[r[u]];r.splice(0,s)}return l},o.measureText=function(t,e,n,i,a){var o=e[a];return o||(o=e[a]=t.measureText(a).width,n.push(a)),o>i&&(i=o),i},o.numberOfLabelLines=function(t){var e=1;return o.each(t,function(t){o.isArray(t)&&t.length>e&&(e=t.length)}),e},o.color=i?function(t){return t instanceof CanvasGradient&&(t=a.global.defaultColor),i(t)}:function(t){return console.error("Color.js not found!"),t},o.getHoverColor=function(t){return t instanceof CanvasPattern?t:o.color(t).saturate(.5).darken(.1).rgbString()}}},{25:25,3:3,45:45}],28:[function(t,e,n){"use strict";function i(t,e){return t.native?{x:t.x,y:t.y}:u.getRelativePosition(t,e)}function a(t,e){var n,i,a,o,r;for(i=0,o=t.data.datasets.length;i<o;++i)if(t.isDatasetVisible(i))for(a=0,r=(n=t.getDatasetMeta(i)).data.length;a<r;++a){var l=n.data[a];l._view.skip||e(l)}}function o(t,e){var n=[];return a(t,function(t){t.inRange(e.x,e.y)&&n.push(t)}),n}function r(t,e,n,i){var o=Number.POSITIVE_INFINITY,r=[];return a(t,function(t){if(!n||t.inRange(e.x,e.y)){var a=t.getCenterPoint(),l=i(e,a);l<o?(r=[t],o=l):l===o&&r.push(t)}}),r}function l(t){var e=-1!==t.indexOf("x"),n=-1!==t.indexOf("y");return function(t,i){var a=e?Math.abs(t.x-i.x):0,o=n?Math.abs(t.y-i.y):0;return Math.sqrt(Math.pow(a,2)+Math.pow(o,2))}}function s(t,e,n){var a=i(e,t);n.axis=n.axis||"x";var s=l(n.axis),u=n.intersect?o(t,a):r(t,a,!1,s),d=[];return u.length?(t.data.datasets.forEach(function(e,n){if(t.isDatasetVisible(n)){var i=t.getDatasetMeta(n).data[u[0]._index];i&&!i._view.skip&&d.push(i)}}),d):[]}var u=t(45);e.exports={modes:{single:function(t,e){var n=i(e,t),o=[];return a(t,function(t){if(t.inRange(n.x,n.y))return o.push(t),o}),o.slice(0,1)},label:s,index:s,dataset:function(t,e,n){var a=i(e,t);n.axis=n.axis||"xy";var s=l(n.axis),u=n.intersect?o(t,a):r(t,a,!1,s);return u.length>0&&(u=t.getDatasetMeta(u[0]._datasetIndex).data),u},"x-axis":function(t,e){return s(t,e,{intersect:!1})},point:function(t,e){return o(t,i(e,t))},nearest:function(t,e,n){var a=i(e,t);n.axis=n.axis||"xy";var o=l(n.axis),s=r(t,a,n.intersect,o);return s.length>1&&s.sort(function(t,e){var n=t.getArea()-e.getArea();return 0===n&&(n=t._datasetIndex-e._datasetIndex),n}),s.slice(0,1)},x:function(t,e,n){var o=i(e,t),r=[],l=!1;return a(t,function(t){t.inXRange(o.x)&&r.push(t),t.inRange(o.x,o.y)&&(l=!0)}),n.intersect&&!l&&(r=[]),r},y:function(t,e,n){var o=i(e,t),r=[],l=!1;return a(t,function(t){t.inYRange(o.y)&&r.push(t),t.inRange(o.x,o.y)&&(l=!0)}),n.intersect&&!l&&(r=[]),r}}}},{45:45}],29:[function(t,e,n){"use strict";t(25)._set("global",{responsive:!0,responsiveAnimationDuration:0,maintainAspectRatio:!0,events:["mousemove","mouseout","click","touchstart","touchmove"],hover:{onHover:null,mode:"nearest",intersect:!0,animationDuration:400},onClick:null,defaultColor:"rgba(0,0,0,0.1)",defaultFontColor:"#666",defaultFontFamily:"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif",defaultFontSize:12,defaultFontStyle:"normal",showLines:!0,elements:{},layout:{padding:{top:0,right:0,bottom:0,left:0}}}),e.exports=function(){var t=function(t,e){return this.construct(t,e),this};return t.Chart=t,t}},{25:25}],30:[function(t,e,n){"use strict";var i=t(45);e.exports=function(t){function e(t,e){return i.where(t,function(t){return t.position===e})}function n(t,e){t.forEach(function(t,e){return t._tmpIndex_=e,t}),t.sort(function(t,n){var i=e?n:t,a=e?t:n;return i.weight===a.weight?i._tmpIndex_-a._tmpIndex_:i.weight-a.weight}),t.forEach(function(t){delete t._tmpIndex_})}t.layoutService={defaults:{},addBox:function(t,e){t.boxes||(t.boxes=[]),e.fullWidth=e.fullWidth||!1,e.position=e.position||"top",e.weight=e.weight||0,t.boxes.push(e)},removeBox:function(t,e){var n=t.boxes?t.boxes.indexOf(e):-1;-1!==n&&t.boxes.splice(n,1)},configure:function(t,e,n){for(var i,a=["fullWidth","position","weight"],o=a.length,r=0;r<o;++r)i=a[r],n.hasOwnProperty(i)&&(e[i]=n[i])},update:function(t,a,o){function r(t){var e=i.findNextWhere(_,function(e){return e.box===t});if(e)if(t.isHorizontal()){var n={left:Math.max(T,D),right:Math.max(F,I),top:0,bottom:0};t.update(t.fullWidth?x:S,y/2,n)}else t.update(e.minSize.width,C)}function l(t){t.isHorizontal()?(t.left=t.fullWidth?d:T,t.right=t.fullWidth?a-c:T+S,t.top=V,t.bottom=V+t.height,V=t.bottom):(t.left=N,t.right=N+t.width,t.top=O,t.bottom=O+C,N=t.right)}if(t){var s=t.options.layout||{},u=i.options.toPadding(s.padding),d=u.left,c=u.right,h=u.top,f=u.bottom,g=e(t.boxes,"left"),p=e(t.boxes,"right"),v=e(t.boxes,"top"),m=e(t.boxes,"bottom"),b=e(t.boxes,"chartArea");n(g,!0),n(p,!1),n(v,!0),n(m,!1);var x=a-d-c,y=o-h-f,k=y/2,w=(a-x/2)/(g.length+p.length),M=(o-k)/(v.length+m.length),S=x,C=y,_=[];i.each(g.concat(p,v,m),function(t){var e,n=t.isHorizontal();n?(e=t.update(t.fullWidth?x:S,M),C-=e.height):(e=t.update(w,k),S-=e.width),_.push({horizontal:n,minSize:e,box:t})});var D=0,I=0,P=0,A=0;i.each(v.concat(m),function(t){if(t.getPadding){var e=t.getPadding();D=Math.max(D,e.left),I=Math.max(I,e.right)}}),i.each(g.concat(p),function(t){if(t.getPadding){var e=t.getPadding();P=Math.max(P,e.top),A=Math.max(A,e.bottom)}});var T=d,F=c,O=h,R=f;i.each(g.concat(p),r),i.each(g,function(t){T+=t.width}),i.each(p,function(t){F+=t.width}),i.each(v.concat(m),r),i.each(v,function(t){O+=t.height}),i.each(m,function(t){R+=t.height}),i.each(g.concat(p),function(t){var e=i.findNextWhere(_,function(e){return e.box===t}),n={left:0,right:0,top:O,bottom:R};e&&t.update(e.minSize.width,C,n)}),T=d,F=c,O=h,R=f,i.each(g,function(t){T+=t.width}),i.each(p,function(t){F+=t.width}),i.each(v,function(t){O+=t.height}),i.each(m,function(t){R+=t.height});var L=Math.max(D-T,0);T+=L,F+=Math.max(I-F,0);var z=Math.max(P-O,0);O+=z,R+=Math.max(A-R,0);var B=o-O-R,W=a-T-F;W===S&&B===C||(i.each(g,function(t){t.height=B}),i.each(p,function(t){t.height=B}),i.each(v,function(t){t.fullWidth||(t.width=W)}),i.each(m,function(t){t.fullWidth||(t.width=W)}),C=B,S=W);var N=d+L,V=h+z;i.each(g.concat(v),l),N+=S,V+=C,i.each(p,l),i.each(m,l),t.chartArea={left:T,top:O,right:T+S,bottom:O+C},i.each(b,function(e){e.left=t.chartArea.left,e.top=t.chartArea.top,e.right=t.chartArea.right,e.bottom=t.chartArea.bottom,e.update(S,C)})}}}}},{45:45}],31:[function(t,e,n){"use strict";var i=t(25),a=t(26),o=t(45);i._set("global",{plugins:{}}),e.exports=function(t){t.plugins={_plugins:[],_cacheId:0,register:function(t){var e=this._plugins;[].concat(t).forEach(function(t){-1===e.indexOf(t)&&e.push(t)}),this._cacheId++},unregister:function(t){var e=this._plugins;[].concat(t).forEach(function(t){var n=e.indexOf(t);-1!==n&&e.splice(n,1)}),this._cacheId++},clear:function(){this._plugins=[],this._cacheId++},count:function(){return this._plugins.length},getAll:function(){return this._plugins},notify:function(t,e,n){var i,a,o,r,l,s=this.descriptors(t),u=s.length;for(i=0;i<u;++i)if(a=s[i],o=a.plugin,"function"==typeof(l=o[e])&&((r=[t].concat(n||[])).push(a.options),!1===l.apply(o,r)))return!1;return!0},descriptors:function(t){var e=t._plugins||(t._plugins={});if(e.id===this._cacheId)return e.descriptors;var n=[],a=[],r=t&&t.config||{},l=r.options&&r.options.plugins||{};return this._plugins.concat(r.plugins||[]).forEach(function(t){if(-1===n.indexOf(t)){var e=t.id,r=l[e];!1!==r&&(!0===r&&(r=o.clone(i.global.plugins[e])),n.push(t),a.push({plugin:t,options:r||{}}))}}),e.descriptors=a,e.id=this._cacheId,a}},t.pluginService=t.plugins,t.PluginBase=a.extend({})}},{25:25,26:26,45:45}],32:[function(t,e,n){"use strict";function i(t){var e,n,i=[];for(e=0,n=t.length;e<n;++e)i.push(t[e].label);return i}function a(t,e,n){var i=t.getPixelForTick(e);return n&&(i-=0===e?(t.getPixelForTick(1)-i)/2:(i-t.getPixelForTick(e-1))/2),i}var o=t(25),r=t(26),l=t(45),s=t(34);o._set("scale",{display:!0,position:"left",offset:!1,gridLines:{display:!0,color:"rgba(0, 0, 0, 0.1)",lineWidth:1,drawBorder:!0,drawOnChartArea:!0,drawTicks:!0,tickMarkLength:10,zeroLineWidth:1,zeroLineColor:"rgba(0,0,0,0.25)",zeroLineBorderDash:[],zeroLineBorderDashOffset:0,offsetGridLines:!1,borderDash:[],borderDashOffset:0},scaleLabel:{display:!1,labelString:"",lineHeight:1.2,padding:{top:4,bottom:4}},ticks:{beginAtZero:!1,minRotation:0,maxRotation:50,mirror:!1,padding:0,reverse:!1,display:!0,autoSkip:!0,autoSkipPadding:0,labelOffset:0,callback:s.formatters.values,minor:{},major:{}}}),e.exports=function(t){function e(t,e,n){return l.isArray(e)?l.longestText(t,n,e):t.measureText(e).width}function n(t){var e=l.valueOrDefault,n=o.global,i=e(t.fontSize,n.defaultFontSize),a=e(t.fontStyle,n.defaultFontStyle),r=e(t.fontFamily,n.defaultFontFamily);return{size:i,style:a,family:r,font:l.fontString(i,a,r)}}function s(t){return l.options.toLineHeight(l.valueOrDefault(t.lineHeight,1.2),l.valueOrDefault(t.fontSize,o.global.defaultFontSize))}t.Scale=r.extend({getPadding:function(){var t=this;return{left:t.paddingLeft||0,top:t.paddingTop||0,right:t.paddingRight||0,bottom:t.paddingBottom||0}},getTicks:function(){return this._ticks},mergeTicksOptions:function(){var t=this.options.ticks;!1===t.minor&&(t.minor={display:!1}),!1===t.major&&(t.major={display:!1});for(var e in t)"major"!==e&&"minor"!==e&&(void 0===t.minor[e]&&(t.minor[e]=t[e]),void 0===t.major[e]&&(t.major[e]=t[e]))},beforeUpdate:function(){l.callback(this.options.beforeUpdate,[this])},update:function(t,e,n){var i,a,o,r,s,u,d=this;for(d.beforeUpdate(),d.maxWidth=t,d.maxHeight=e,d.margins=l.extend({left:0,right:0,top:0,bottom:0},n),d.longestTextCache=d.longestTextCache||{},d.beforeSetDimensions(),d.setDimensions(),d.afterSetDimensions(),d.beforeDataLimits(),d.determineDataLimits(),d.afterDataLimits(),d.beforeBuildTicks(),s=d.buildTicks()||[],d.afterBuildTicks(),d.beforeTickToLabelConversion(),o=d.convertTicksToLabels(s)||d.ticks,d.afterTickToLabelConversion(),d.ticks=o,i=0,a=o.length;i<a;++i)r=o[i],(u=s[i])?u.label=r:s.push(u={label:r,major:!1});return d._ticks=s,d.beforeCalculateTickRotation(),d.calculateTickRotation(),d.afterCalculateTickRotation(),d.beforeFit(),d.fit(),d.afterFit(),d.afterUpdate(),d.minSize},afterUpdate:function(){l.callback(this.options.afterUpdate,[this])},beforeSetDimensions:function(){l.callback(this.options.beforeSetDimensions,[this])},setDimensions:function(){var t=this;t.isHorizontal()?(t.width=t.maxWidth,t.left=0,t.right=t.width):(t.height=t.maxHeight,t.top=0,t.bottom=t.height),t.paddingLeft=0,t.paddingTop=0,t.paddingRight=0,t.paddingBottom=0},afterSetDimensions:function(){l.callback(this.options.afterSetDimensions,[this])},beforeDataLimits:function(){l.callback(this.options.beforeDataLimits,[this])},determineDataLimits:l.noop,afterDataLimits:function(){l.callback(this.options.afterDataLimits,[this])},beforeBuildTicks:function(){l.callback(this.options.beforeBuildTicks,[this])},buildTicks:l.noop,afterBuildTicks:function(){l.callback(this.options.afterBuildTicks,[this])},beforeTickToLabelConversion:function(){l.callback(this.options.beforeTickToLabelConversion,[this])},convertTicksToLabels:function(){var t=this,e=t.options.ticks;t.ticks=t.ticks.map(e.userCallback||e.callback,this)},afterTickToLabelConversion:function(){l.callback(this.options.afterTickToLabelConversion,[this])},beforeCalculateTickRotation:function(){l.callback(this.options.beforeCalculateTickRotation,[this])},calculateTickRotation:function(){var t=this,e=t.ctx,a=t.options.ticks,o=i(t._ticks),r=n(a);e.font=r.font;var s=a.minRotation||0;if(o.length&&t.options.display&&t.isHorizontal())for(var u,d=l.longestText(e,r.font,o,t.longestTextCache),c=d,h=t.getPixelForTick(1)-t.getPixelForTick(0)-6;c>h&&s<a.maxRotation;){var f=l.toRadians(s);if(u=Math.cos(f),Math.sin(f)*d>t.maxHeight){s--;break}s++,c=u*d}t.labelRotation=s},afterCalculateTickRotation:function(){l.callback(this.options.afterCalculateTickRotation,[this])},beforeFit:function(){l.callback(this.options.beforeFit,[this])},fit:function(){var t=this,a=t.minSize={width:0,height:0},o=i(t._ticks),r=t.options,u=r.ticks,d=r.scaleLabel,c=r.gridLines,h=r.display,f=t.isHorizontal(),g=n(u),p=r.gridLines.tickMarkLength;if(a.width=f?t.isFullWidth()?t.maxWidth-t.margins.left-t.margins.right:t.maxWidth:h&&c.drawTicks?p:0,a.height=f?h&&c.drawTicks?p:0:t.maxHeight,d.display&&h){var v=s(d)+l.options.toPadding(d.padding).height;f?a.height+=v:a.width+=v}if(u.display&&h){var m=l.longestText(t.ctx,g.font,o,t.longestTextCache),b=l.numberOfLabelLines(o),x=.5*g.size,y=t.options.ticks.padding;if(f){t.longestLabelWidth=m;var k=l.toRadians(t.labelRotation),w=Math.cos(k),M=Math.sin(k)*m+g.size*b+x*(b-1)+x;a.height=Math.min(t.maxHeight,a.height+M+y),t.ctx.font=g.font;var S=e(t.ctx,o[0],g.font),C=e(t.ctx,o[o.length-1],g.font);0!==t.labelRotation?(t.paddingLeft="bottom"===r.position?w*S+3:w*x+3,t.paddingRight="bottom"===r.position?w*x+3:w*C+3):(t.paddingLeft=S/2+3,t.paddingRight=C/2+3)}else u.mirror?m=0:m+=y+x,a.width=Math.min(t.maxWidth,a.width+m),t.paddingTop=g.size/2,t.paddingBottom=g.size/2}t.handleMargins(),t.width=a.width,t.height=a.height},handleMargins:function(){var t=this;t.margins&&(t.paddingLeft=Math.max(t.paddingLeft-t.margins.left,0),t.paddingTop=Math.max(t.paddingTop-t.margins.top,0),t.paddingRight=Math.max(t.paddingRight-t.margins.right,0),t.paddingBottom=Math.max(t.paddingBottom-t.margins.bottom,0))},afterFit:function(){l.callback(this.options.afterFit,[this])},isHorizontal:function(){return"top"===this.options.position||"bottom"===this.options.position},isFullWidth:function(){return this.options.fullWidth},getRightValue:function(t){if(l.isNullOrUndef(t))return NaN;if("number"==typeof t&&!isFinite(t))return NaN;if(t)if(this.isHorizontal()){if(void 0!==t.x)return this.getRightValue(t.x)}else if(void 0!==t.y)return this.getRightValue(t.y);return t},getLabelForIndex:l.noop,getPixelForValue:l.noop,getValueForPixel:l.noop,getPixelForTick:function(t){var e=this,n=e.options.offset;if(e.isHorizontal()){var i=(e.width-(e.paddingLeft+e.paddingRight))/Math.max(e._ticks.length-(n?0:1),1),a=i*t+e.paddingLeft;n&&(a+=i/2);var o=e.left+Math.round(a);return o+=e.isFullWidth()?e.margins.left:0}var r=e.height-(e.paddingTop+e.paddingBottom);return e.top+t*(r/(e._ticks.length-1))},getPixelForDecimal:function(t){var e=this;if(e.isHorizontal()){var n=(e.width-(e.paddingLeft+e.paddingRight))*t+e.paddingLeft,i=e.left+Math.round(n);return i+=e.isFullWidth()?e.margins.left:0}return e.top+t*e.height},getBasePixel:function(){return this.getPixelForValue(this.getBaseValue())},getBaseValue:function(){var t=this,e=t.min,n=t.max;return t.beginAtZero?0:e<0&&n<0?n:e>0&&n>0?e:0},_autoSkip:function(t){var e,n,i,a,o=this,r=o.isHorizontal(),s=o.options.ticks.minor,u=t.length,d=l.toRadians(o.labelRotation),c=Math.cos(d),h=o.longestLabelWidth*c,f=[];for(s.maxTicksLimit&&(a=s.maxTicksLimit),r&&(e=!1,(h+s.autoSkipPadding)*u>o.width-(o.paddingLeft+o.paddingRight)&&(e=1+Math.floor((h+s.autoSkipPadding)*u/(o.width-(o.paddingLeft+o.paddingRight)))),a&&u>a&&(e=Math.max(e,Math.floor(u/a)))),n=0;n<u;n++)i=t[n],(e>1&&n%e>0||n%e==0&&n+e>=u)&&n!==u-1&&delete i.label,f.push(i);return f},draw:function(t){var e=this,i=e.options;if(i.display){var r=e.ctx,u=o.global,d=i.ticks.minor,c=i.ticks.major||d,h=i.gridLines,f=i.scaleLabel,g=0!==e.labelRotation,p=e.isHorizontal(),v=d.autoSkip?e._autoSkip(e.getTicks()):e.getTicks(),m=l.valueOrDefault(d.fontColor,u.defaultFontColor),b=n(d),x=l.valueOrDefault(c.fontColor,u.defaultFontColor),y=n(c),k=h.drawTicks?h.tickMarkLength:0,w=l.valueOrDefault(f.fontColor,u.defaultFontColor),M=n(f),S=l.options.toPadding(f.padding),C=l.toRadians(e.labelRotation),_=[],D="right"===i.position?e.left:e.right-k,I="right"===i.position?e.left+k:e.right,P="bottom"===i.position?e.top:e.bottom-k,A="bottom"===i.position?e.top+k:e.bottom;if(l.each(v,function(n,o){if(!l.isNullOrUndef(n.label)){var r,s,c,f,m=n.label;o===e.zeroLineIndex&&i.offset===h.offsetGridLines?(r=h.zeroLineWidth,s=h.zeroLineColor,c=h.zeroLineBorderDash,f=h.zeroLineBorderDashOffset):(r=l.valueAtIndexOrDefault(h.lineWidth,o),s=l.valueAtIndexOrDefault(h.color,o),c=l.valueOrDefault(h.borderDash,u.borderDash),f=l.valueOrDefault(h.borderDashOffset,u.borderDashOffset));var b,x,y,w,M,S,T,F,O,R,L="middle",z="middle",B=d.padding;if(p){var W=k+B;"bottom"===i.position?(z=g?"middle":"top",L=g?"right":"center",R=e.top+W):(z=g?"middle":"bottom",L=g?"left":"center",R=e.bottom-W);var N=a(e,o,h.offsetGridLines&&v.length>1);N<e.left&&(s="rgba(0,0,0,0)"),N+=l.aliasPixel(r),O=e.getPixelForTick(o)+d.labelOffset,b=y=M=T=N,x=P,w=A,S=t.top,F=t.bottom}else{var V,E="left"===i.position;d.mirror?(L=E?"left":"right",V=B):(L=E?"right":"left",V=k+B),O=E?e.right-V:e.left+V;var H=a(e,o,h.offsetGridLines&&v.length>1);H<e.top&&(s="rgba(0,0,0,0)"),H+=l.aliasPixel(r),R=e.getPixelForTick(o)+d.labelOffset,b=D,y=I,M=t.left,T=t.right,x=w=S=F=H}_.push({tx1:b,ty1:x,tx2:y,ty2:w,x1:M,y1:S,x2:T,y2:F,labelX:O,labelY:R,glWidth:r,glColor:s,glBorderDash:c,glBorderDashOffset:f,rotation:-1*C,label:m,major:n.major,textBaseline:z,textAlign:L})}}),l.each(_,function(t){if(h.display&&(r.save(),r.lineWidth=t.glWidth,r.strokeStyle=t.glColor,r.setLineDash&&(r.setLineDash(t.glBorderDash),r.lineDashOffset=t.glBorderDashOffset),r.beginPath(),h.drawTicks&&(r.moveTo(t.tx1,t.ty1),r.lineTo(t.tx2,t.ty2)),h.drawOnChartArea&&(r.moveTo(t.x1,t.y1),r.lineTo(t.x2,t.y2)),r.stroke(),r.restore()),d.display){r.save(),r.translate(t.labelX,t.labelY),r.rotate(t.rotation),r.font=t.major?y.font:b.font,r.fillStyle=t.major?x:m,r.textBaseline=t.textBaseline,r.textAlign=t.textAlign;var e=t.label;if(l.isArray(e))for(var n=0,i=0;n<e.length;++n)r.fillText(""+e[n],0,i),i+=1.5*b.size;else r.fillText(e,0,0);r.restore()}}),f.display){var T,F,O=0,R=s(f)/2;if(p)T=e.left+(e.right-e.left)/2,F="bottom"===i.position?e.bottom-R-S.bottom:e.top+R+S.top;else{var L="left"===i.position;T=L?e.left+R+S.top:e.right-R-S.top,F=e.top+(e.bottom-e.top)/2,O=L?-.5*Math.PI:.5*Math.PI}r.save(),r.translate(T,F),r.rotate(O),r.textAlign="center",r.textBaseline="middle",r.fillStyle=w,r.font=M.font,r.fillText(f.labelString,0,0),r.restore()}if(h.drawBorder){r.lineWidth=l.valueAtIndexOrDefault(h.lineWidth,0),r.strokeStyle=l.valueAtIndexOrDefault(h.color,0);var z=e.left,B=e.right,W=e.top,N=e.bottom,V=l.aliasPixel(r.lineWidth);p?(W=N="top"===i.position?e.bottom:e.top,W+=V,N+=V):(z=B="left"===i.position?e.right:e.left,z+=V,B+=V),r.beginPath(),r.moveTo(z,W),r.lineTo(B,N),r.stroke()}}}})}},{25:25,26:26,34:34,45:45}],33:[function(t,e,n){"use strict";var i=t(25),a=t(45);e.exports=function(t){t.scaleService={constructors:{},defaults:{},registerScaleType:function(t,e,n){this.constructors[t]=e,this.defaults[t]=a.clone(n)},getScaleConstructor:function(t){return this.constructors.hasOwnProperty(t)?this.constructors[t]:void 0},getScaleDefaults:function(t){return this.defaults.hasOwnProperty(t)?a.merge({},[i.scale,this.defaults[t]]):{}},updateScaleDefaults:function(t,e){var n=this;n.defaults.hasOwnProperty(t)&&(n.defaults[t]=a.extend(n.defaults[t],e))},addScalesToLayout:function(e){a.each(e.scales,function(n){n.fullWidth=n.options.fullWidth,n.position=n.options.position,n.weight=n.options.weight,t.layoutService.addBox(e,n)})}}}},{25:25,45:45}],34:[function(t,e,n){"use strict";var i=t(45);e.exports={generators:{linear:function(t,e){var n,a=[];if(t.stepSize&&t.stepSize>0)n=t.stepSize;else{var o=i.niceNum(e.max-e.min,!1);n=i.niceNum(o/(t.maxTicks-1),!0)}var r=Math.floor(e.min/n)*n,l=Math.ceil(e.max/n)*n;t.min&&t.max&&t.stepSize&&i.almostWhole((t.max-t.min)/t.stepSize,n/1e3)&&(r=t.min,l=t.max);var s=(l-r)/n;s=i.almostEquals(s,Math.round(s),n/1e3)?Math.round(s):Math.ceil(s),a.push(void 0!==t.min?t.min:r);for(var u=1;u<s;++u)a.push(r+u*n);return a.push(void 0!==t.max?t.max:l),a},logarithmic:function(t,e){var n,a,o=[],r=i.valueOrDefault,l=r(t.min,Math.pow(10,Math.floor(i.log10(e.min)))),s=Math.floor(i.log10(e.max)),u=Math.ceil(e.max/Math.pow(10,s));0===l?(n=Math.floor(i.log10(e.minNotZero)),a=Math.floor(e.minNotZero/Math.pow(10,n)),o.push(l),l=a*Math.pow(10,n)):(n=Math.floor(i.log10(l)),a=Math.floor(l/Math.pow(10,n)));do{o.push(l),10===++a&&(a=1,++n),l=a*Math.pow(10,n)}while(n<s||n===s&&a<u);var d=r(t.max,l);return o.push(d),o}},formatters:{values:function(t){return i.isArray(t)?t:""+t},linear:function(t,e,n){var a=n.length>3?n[2]-n[1]:n[1]-n[0];Math.abs(a)>1&&t!==Math.floor(t)&&(a=t-Math.floor(t));var o=i.log10(Math.abs(a)),r="";if(0!==t){var l=-1*Math.floor(o);l=Math.max(Math.min(l,20),0),r=t.toFixed(l)}else r="0";return r},logarithmic:function(t,e,n){var a=t/Math.pow(10,Math.floor(i.log10(t)));return 0===t?"0":1===a||2===a||5===a||0===e||e===n.length-1?t.toExponential():""}}}},{45:45}],35:[function(t,e,n){"use strict";var i=t(25),a=t(26),o=t(45);i._set("global",{tooltips:{enabled:!0,custom:null,mode:"nearest",position:"average",intersect:!0,backgroundColor:"rgba(0,0,0,0.8)",titleFontStyle:"bold",titleSpacing:2,titleMarginBottom:6,titleFontColor:"#fff",titleAlign:"left",bodySpacing:2,bodyFontColor:"#fff",bodyAlign:"left",footerFontStyle:"bold",footerSpacing:2,footerMarginTop:6,footerFontColor:"#fff",footerAlign:"left",yPadding:6,xPadding:6,caretPadding:2,caretSize:5,cornerRadius:6,multiKeyBackground:"#fff",displayColors:!0,borderColor:"rgba(0,0,0,0)",borderWidth:0,callbacks:{beforeTitle:o.noop,title:function(t,e){var n="",i=e.labels,a=i?i.length:0;if(t.length>0){var o=t[0];o.xLabel?n=o.xLabel:a>0&&o.index<a&&(n=i[o.index])}return n},afterTitle:o.noop,beforeBody:o.noop,beforeLabel:o.noop,label:function(t,e){var n=e.datasets[t.datasetIndex].label||"";return n&&(n+=": "),n+=t.yLabel},labelColor:function(t,e){var n=e.getDatasetMeta(t.datasetIndex).data[t.index]._view;return{borderColor:n.borderColor,backgroundColor:n.backgroundColor}},labelTextColor:function(){return this._options.bodyFontColor},afterLabel:o.noop,afterBody:o.noop,beforeFooter:o.noop,footer:o.noop,afterFooter:o.noop}}}),e.exports=function(t){function e(t,e){var n=o.color(t);return n.alpha(e*n.alpha()).rgbaString()}function n(t,e){return e&&(o.isArray(e)?Array.prototype.push.apply(t,e):t.push(e)),t}function r(t){var e=t._xScale,n=t._yScale||t._scale,i=t._index,a=t._datasetIndex;return{xLabel:e?e.getLabelForIndex(i,a):"",yLabel:n?n.getLabelForIndex(i,a):"",index:i,datasetIndex:a,x:t._model.x,y:t._model.y}}function l(t){var e=i.global,n=o.valueOrDefault;return{xPadding:t.xPadding,yPadding:t.yPadding,xAlign:t.xAlign,yAlign:t.yAlign,bodyFontColor:t.bodyFontColor,_bodyFontFamily:n(t.bodyFontFamily,e.defaultFontFamily),_bodyFontStyle:n(t.bodyFontStyle,e.defaultFontStyle),_bodyAlign:t.bodyAlign,bodyFontSize:n(t.bodyFontSize,e.defaultFontSize),bodySpacing:t.bodySpacing,titleFontColor:t.titleFontColor,_titleFontFamily:n(t.titleFontFamily,e.defaultFontFamily),_titleFontStyle:n(t.titleFontStyle,e.defaultFontStyle),titleFontSize:n(t.titleFontSize,e.defaultFontSize),_titleAlign:t.titleAlign,titleSpacing:t.titleSpacing,titleMarginBottom:t.titleMarginBottom,footerFontColor:t.footerFontColor,_footerFontFamily:n(t.footerFontFamily,e.defaultFontFamily),_footerFontStyle:n(t.footerFontStyle,e.defaultFontStyle),footerFontSize:n(t.footerFontSize,e.defaultFontSize),_footerAlign:t.footerAlign,footerSpacing:t.footerSpacing,footerMarginTop:t.footerMarginTop,caretSize:t.caretSize,cornerRadius:t.cornerRadius,backgroundColor:t.backgroundColor,opacity:0,legendColorBackground:t.multiKeyBackground,displayColors:t.displayColors,borderColor:t.borderColor,borderWidth:t.borderWidth}}function s(t,e){var n=t._chart.ctx,i=2*e.yPadding,a=0,r=e.body,l=r.reduce(function(t,e){return t+e.before.length+e.lines.length+e.after.length},0);l+=e.beforeBody.length+e.afterBody.length;var s=e.title.length,u=e.footer.length,d=e.titleFontSize,c=e.bodyFontSize,h=e.footerFontSize;i+=s*d,i+=s?(s-1)*e.titleSpacing:0,i+=s?e.titleMarginBottom:0,i+=l*c,i+=l?(l-1)*e.bodySpacing:0,i+=u?e.footerMarginTop:0,i+=u*h,i+=u?(u-1)*e.footerSpacing:0;var f=0,g=function(t){a=Math.max(a,n.measureText(t).width+f)};return n.font=o.fontString(d,e._titleFontStyle,e._titleFontFamily),o.each(e.title,g),n.font=o.fontString(c,e._bodyFontStyle,e._bodyFontFamily),o.each(e.beforeBody.concat(e.afterBody),g),f=e.displayColors?c+2:0,o.each(r,function(t){o.each(t.before,g),o.each(t.lines,g),o.each(t.after,g)}),f=0,n.font=o.fontString(h,e._footerFontStyle,e._footerFontFamily),o.each(e.footer,g),a+=2*e.xPadding,{width:a,height:i}}function u(t,e){var n=t._model,i=t._chart,a=t._chart.chartArea,o="center",r="center";n.y<e.height?r="top":n.y>i.height-e.height&&(r="bottom");var l,s,u,d,c,h=(a.left+a.right)/2,f=(a.top+a.bottom)/2;"center"===r?(l=function(t){return t<=h},s=function(t){return t>h}):(l=function(t){return t<=e.width/2},s=function(t){return t>=i.width-e.width/2}),u=function(t){return t+e.width>i.width},d=function(t){return t-e.width<0},c=function(t){return t<=f?"top":"bottom"},l(n.x)?(o="left",u(n.x)&&(o="center",r=c(n.y))):s(n.x)&&(o="right",d(n.x)&&(o="center",r=c(n.y)));var g=t._options;return{xAlign:g.xAlign?g.xAlign:o,yAlign:g.yAlign?g.yAlign:r}}function d(t,e,n){var i=t.x,a=t.y,o=t.caretSize,r=t.caretPadding,l=t.cornerRadius,s=n.xAlign,u=n.yAlign,d=o+r,c=l+r;return"right"===s?i-=e.width:"center"===s&&(i-=e.width/2),"top"===u?a+=d:a-="bottom"===u?e.height+d:e.height/2,"center"===u?"left"===s?i+=d:"right"===s&&(i-=d):"left"===s?i-=c:"right"===s&&(i+=c),{x:i,y:a}}t.Tooltip=a.extend({initialize:function(){this._model=l(this._options),this._lastActive=[]},getTitle:function(){var t=this,e=t._options.callbacks,i=e.beforeTitle.apply(t,arguments),a=e.title.apply(t,arguments),o=e.afterTitle.apply(t,arguments),r=[];return r=n(r,i),r=n(r,a),r=n(r,o)},getBeforeBody:function(){var t=this._options.callbacks.beforeBody.apply(this,arguments);return o.isArray(t)?t:void 0!==t?[t]:[]},getBody:function(t,e){var i=this,a=i._options.callbacks,r=[];return o.each(t,function(t){var o={before:[],lines:[],after:[]};n(o.before,a.beforeLabel.call(i,t,e)),n(o.lines,a.label.call(i,t,e)),n(o.after,a.afterLabel.call(i,t,e)),r.push(o)}),r},getAfterBody:function(){var t=this._options.callbacks.afterBody.apply(this,arguments);return o.isArray(t)?t:void 0!==t?[t]:[]},getFooter:function(){var t=this,e=t._options.callbacks,i=e.beforeFooter.apply(t,arguments),a=e.footer.apply(t,arguments),o=e.afterFooter.apply(t,arguments),r=[];return r=n(r,i),r=n(r,a),r=n(r,o)},update:function(e){var n,i,a=this,c=a._options,h=a._model,f=a._model=l(c),g=a._active,p=a._data,v={xAlign:h.xAlign,yAlign:h.yAlign},m={x:h.x,y:h.y},b={width:h.width,height:h.height},x={x:h.caretX,y:h.caretY};if(g.length){f.opacity=1;var y=[],k=[];x=t.Tooltip.positioners[c.position].call(a,g,a._eventPosition);var w=[];for(n=0,i=g.length;n<i;++n)w.push(r(g[n]));c.filter&&(w=w.filter(function(t){return c.filter(t,p)})),c.itemSort&&(w=w.sort(function(t,e){return c.itemSort(t,e,p)})),o.each(w,function(t){y.push(c.callbacks.labelColor.call(a,t,a._chart)),k.push(c.callbacks.labelTextColor.call(a,t,a._chart))}),f.title=a.getTitle(w,p),f.beforeBody=a.getBeforeBody(w,p),f.body=a.getBody(w,p),f.afterBody=a.getAfterBody(w,p),f.footer=a.getFooter(w,p),f.x=Math.round(x.x),f.y=Math.round(x.y),f.caretPadding=c.caretPadding,f.labelColors=y,f.labelTextColors=k,f.dataPoints=w,m=d(f,b=s(this,f),v=u(this,b))}else f.opacity=0;return f.xAlign=v.xAlign,f.yAlign=v.yAlign,f.x=m.x,f.y=m.y,f.width=b.width,f.height=b.height,f.caretX=x.x,f.caretY=x.y,a._model=f,e&&c.custom&&c.custom.call(a,f),a},drawCaret:function(t,e){var n=this._chart.ctx,i=this._view,a=this.getCaretPosition(t,e,i);n.lineTo(a.x1,a.y1),n.lineTo(a.x2,a.y2),n.lineTo(a.x3,a.y3)},getCaretPosition:function(t,e,n){var i,a,o,r,l,s,u=n.caretSize,d=n.cornerRadius,c=n.xAlign,h=n.yAlign,f=t.x,g=t.y,p=e.width,v=e.height;if("center"===h)l=g+v/2,"left"===c?(a=(i=f)-u,o=i,r=l+u,s=l-u):(a=(i=f+p)+u,o=i,r=l-u,s=l+u);else if("left"===c?(i=(a=f+d+u)-u,o=a+u):"right"===c?(i=(a=f+p-d-u)-u,o=a+u):(i=(a=f+p/2)-u,o=a+u),"top"===h)l=(r=g)-u,s=r;else{l=(r=g+v)+u,s=r;var m=o;o=i,i=m}return{x1:i,x2:a,x3:o,y1:r,y2:l,y3:s}},drawTitle:function(t,n,i,a){var r=n.title;if(r.length){i.textAlign=n._titleAlign,i.textBaseline="top";var l=n.titleFontSize,s=n.titleSpacing;i.fillStyle=e(n.titleFontColor,a),i.font=o.fontString(l,n._titleFontStyle,n._titleFontFamily);var u,d;for(u=0,d=r.length;u<d;++u)i.fillText(r[u],t.x,t.y),t.y+=l+s,u+1===r.length&&(t.y+=n.titleMarginBottom-s)}},drawBody:function(t,n,i,a){var r=n.bodyFontSize,l=n.bodySpacing,s=n.body;i.textAlign=n._bodyAlign,i.textBaseline="top",i.font=o.fontString(r,n._bodyFontStyle,n._bodyFontFamily);var u=0,d=function(e){i.fillText(e,t.x+u,t.y),t.y+=r+l};i.fillStyle=e(n.bodyFontColor,a),o.each(n.beforeBody,d);var c=n.displayColors;u=c?r+2:0,o.each(s,function(l,s){var u=e(n.labelTextColors[s],a);i.fillStyle=u,o.each(l.before,d),o.each(l.lines,function(o){c&&(i.fillStyle=e(n.legendColorBackground,a),i.fillRect(t.x,t.y,r,r),i.lineWidth=1,i.strokeStyle=e(n.labelColors[s].borderColor,a),i.strokeRect(t.x,t.y,r,r),i.fillStyle=e(n.labelColors[s].backgroundColor,a),i.fillRect(t.x+1,t.y+1,r-2,r-2),i.fillStyle=u),d(o)}),o.each(l.after,d)}),u=0,o.each(n.afterBody,d),t.y-=l},drawFooter:function(t,n,i,a){var r=n.footer;r.length&&(t.y+=n.footerMarginTop,i.textAlign=n._footerAlign,i.textBaseline="top",i.fillStyle=e(n.footerFontColor,a),i.font=o.fontString(n.footerFontSize,n._footerFontStyle,n._footerFontFamily),o.each(r,function(e){i.fillText(e,t.x,t.y),t.y+=n.footerFontSize+n.footerSpacing}))},drawBackground:function(t,n,i,a,o){i.fillStyle=e(n.backgroundColor,o),i.strokeStyle=e(n.borderColor,o),i.lineWidth=n.borderWidth;var r=n.xAlign,l=n.yAlign,s=t.x,u=t.y,d=a.width,c=a.height,h=n.cornerRadius;i.beginPath(),i.moveTo(s+h,u),"top"===l&&this.drawCaret(t,a),i.lineTo(s+d-h,u),i.quadraticCurveTo(s+d,u,s+d,u+h),"center"===l&&"right"===r&&this.drawCaret(t,a),i.lineTo(s+d,u+c-h),i.quadraticCurveTo(s+d,u+c,s+d-h,u+c),"bottom"===l&&this.drawCaret(t,a),i.lineTo(s+h,u+c),i.quadraticCurveTo(s,u+c,s,u+c-h),"center"===l&&"left"===r&&this.drawCaret(t,a),i.lineTo(s,u+h),i.quadraticCurveTo(s,u,s+h,u),i.closePath(),i.fill(),n.borderWidth>0&&i.stroke()},draw:function(){var t=this._chart.ctx,e=this._view;if(0!==e.opacity){var n={width:e.width,height:e.height},i={x:e.x,y:e.y},a=Math.abs(e.opacity<.001)?0:e.opacity,o=e.title.length||e.beforeBody.length||e.body.length||e.afterBody.length||e.footer.length;this._options.enabled&&o&&(this.drawBackground(i,e,t,n,a),i.x+=e.xPadding,i.y+=e.yPadding,this.drawTitle(i,e,t,a),this.drawBody(i,e,t,a),this.drawFooter(i,e,t,a))}},handleEvent:function(t){var e=this,n=e._options,i=!1;if(e._lastActive=e._lastActive||[],"mouseout"===t.type?e._active=[]:e._active=e._chart.getElementsAtEventForMode(t,n.mode,n),!(i=!o.arrayEquals(e._active,e._lastActive)))return!1;if(e._lastActive=e._active,n.enabled||n.custom){e._eventPosition={x:t.x,y:t.y};var a=e._model;e.update(!0),e.pivot(),i|=a.x!==e._model.x||a.y!==e._model.y}return i}}),t.Tooltip.positioners={average:function(t){if(!t.length)return!1;var e,n,i=0,a=0,o=0;for(e=0,n=t.length;e<n;++e){var r=t[e];if(r&&r.hasValue()){var l=r.tooltipPosition();i+=l.x,a+=l.y,++o}}return{x:Math.round(i/o),y:Math.round(a/o)}},nearest:function(t,e){var n,i,a,r=e.x,l=e.y,s=Number.POSITIVE_INFINITY;for(n=0,i=t.length;n<i;++n){var u=t[n];if(u&&u.hasValue()){var d=u.getCenterPoint(),c=o.distanceBetweenPoints(e,d);c<s&&(s=c,a=u)}}if(a){var h=a.tooltipPosition();r=h.x,l=h.y}return{x:r,y:l}}}}},{25:25,26:26,45:45}],36:[function(t,e,n){"use strict";var i=t(25),a=t(26),o=t(45);i._set("global",{elements:{arc:{backgroundColor:i.global.defaultColor,borderColor:"#fff",borderWidth:2}}}),e.exports=a.extend({inLabelRange:function(t){var e=this._view;return!!e&&Math.pow(t-e.x,2)<Math.pow(e.radius+e.hoverRadius,2)},inRange:function(t,e){var n=this._view;if(n){for(var i=o.getAngleFromPoint(n,{x:t,y:e}),a=i.angle,r=i.distance,l=n.startAngle,s=n.endAngle;s<l;)s+=2*Math.PI;for(;a>s;)a-=2*Math.PI;for(;a<l;)a+=2*Math.PI;var u=a>=l&&a<=s,d=r>=n.innerRadius&&r<=n.outerRadius;return u&&d}return!1},getCenterPoint:function(){var t=this._view,e=(t.startAngle+t.endAngle)/2,n=(t.innerRadius+t.outerRadius)/2;return{x:t.x+Math.cos(e)*n,y:t.y+Math.sin(e)*n}},getArea:function(){var t=this._view;return Math.PI*((t.endAngle-t.startAngle)/(2*Math.PI))*(Math.pow(t.outerRadius,2)-Math.pow(t.innerRadius,2))},tooltipPosition:function(){var t=this._view,e=t.startAngle+(t.endAngle-t.startAngle)/2,n=(t.outerRadius-t.innerRadius)/2+t.innerRadius;return{x:t.x+Math.cos(e)*n,y:t.y+Math.sin(e)*n}},draw:function(){var t=this._chart.ctx,e=this._view,n=e.startAngle,i=e.endAngle;t.beginPath(),t.arc(e.x,e.y,e.outerRadius,n,i),t.arc(e.x,e.y,e.innerRadius,i,n,!0),t.closePath(),t.strokeStyle=e.borderColor,t.lineWidth=e.borderWidth,t.fillStyle=e.backgroundColor,t.fill(),t.lineJoin="bevel",e.borderWidth&&t.stroke()}})},{25:25,26:26,45:45}],37:[function(t,e,n){"use strict";var i=t(25),a=t(26),o=t(45),r=i.global;i._set("global",{elements:{line:{tension:.4,backgroundColor:r.defaultColor,borderWidth:3,borderColor:r.defaultColor,borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",capBezierPoints:!0,fill:!0}}}),e.exports=a.extend({draw:function(){var t,e,n,i,a=this,l=a._view,s=a._chart.ctx,u=l.spanGaps,d=a._children.slice(),c=r.elements.line,h=-1;for(a._loop&&d.length&&d.push(d[0]),s.save(),s.lineCap=l.borderCapStyle||c.borderCapStyle,s.setLineDash&&s.setLineDash(l.borderDash||c.borderDash),s.lineDashOffset=l.borderDashOffset||c.borderDashOffset,s.lineJoin=l.borderJoinStyle||c.borderJoinStyle,s.lineWidth=l.borderWidth||c.borderWidth,s.strokeStyle=l.borderColor||r.defaultColor,s.beginPath(),h=-1,t=0;t<d.length;++t)e=d[t],n=o.previousItem(d,t),i=e._view,0===t?i.skip||(s.moveTo(i.x,i.y),h=t):(n=-1===h?n:d[h],i.skip||(h!==t-1&&!u||-1===h?s.moveTo(i.x,i.y):o.canvas.lineTo(s,n._view,e._view),h=t));s.stroke(),s.restore()}})},{25:25,26:26,45:45}],38:[function(t,e,n){"use strict";function i(t){var e=this._view;return!!e&&Math.pow(t-e.x,2)<Math.pow(e.radius+e.hitRadius,2)}var a=t(25),o=t(26),r=t(45),l=a.global.defaultColor;a._set("global",{elements:{point:{radius:3,pointStyle:"circle",backgroundColor:l,borderColor:l,borderWidth:1,hitRadius:1,hoverRadius:4,hoverBorderWidth:1}}}),e.exports=o.extend({inRange:function(t,e){var n=this._view;return!!n&&Math.pow(t-n.x,2)+Math.pow(e-n.y,2)<Math.pow(n.hitRadius+n.radius,2)},inLabelRange:i,inXRange:i,inYRange:function(t){var e=this._view;return!!e&&Math.pow(t-e.y,2)<Math.pow(e.radius+e.hitRadius,2)},getCenterPoint:function(){var t=this._view;return{x:t.x,y:t.y}},getArea:function(){return Math.PI*Math.pow(this._view.radius,2)},tooltipPosition:function(){var t=this._view;return{x:t.x,y:t.y,padding:t.radius+t.borderWidth}},draw:function(t){var e=this._view,n=this._model,i=this._chart.ctx,o=e.pointStyle,s=e.radius,u=e.x,d=e.y,c=r.color,h=0;e.skip||(i.strokeStyle=e.borderColor||l,i.lineWidth=r.valueOrDefault(e.borderWidth,a.global.elements.point.borderWidth),i.fillStyle=e.backgroundColor||l,void 0!==t&&(n.x<t.left||1.01*t.right<n.x||n.y<t.top||1.01*t.bottom<n.y)&&(n.x<t.left?h=(u-n.x)/(t.left-n.x):1.01*t.right<n.x?h=(n.x-u)/(n.x-t.right):n.y<t.top?h=(d-n.y)/(t.top-n.y):1.01*t.bottom<n.y&&(h=(n.y-d)/(n.y-t.bottom)),h=Math.round(100*h)/100,i.strokeStyle=c(i.strokeStyle).alpha(h).rgbString(),i.fillStyle=c(i.fillStyle).alpha(h).rgbString()),r.canvas.drawPoint(i,o,s,u,d))}})},{25:25,26:26,45:45}],39:[function(t,e,n){"use strict";function i(t){return void 0!==t._view.width}function a(t){var e,n,a,o,r=t._view;if(i(t)){var l=r.width/2;e=r.x-l,n=r.x+l,a=Math.min(r.y,r.base),o=Math.max(r.y,r.base)}else{var s=r.height/2;e=Math.min(r.x,r.base),n=Math.max(r.x,r.base),a=r.y-s,o=r.y+s}return{left:e,top:a,right:n,bottom:o}}var o=t(25),r=t(26);o._set("global",{elements:{rectangle:{backgroundColor:o.global.defaultColor,borderColor:o.global.defaultColor,borderSkipped:"bottom",borderWidth:0}}}),e.exports=r.extend({draw:function(){function t(t){return m[(b+t)%4]}var e,n,i,a,o,r,l,s=this._chart.ctx,u=this._view,d=u.borderWidth;if(u.horizontal?(e=u.base,n=u.x,i=u.y-u.height/2,a=u.y+u.height/2,o=n>e?1:-1,r=1,l=u.borderSkipped||"left"):(e=u.x-u.width/2,n=u.x+u.width/2,i=u.y,o=1,r=(a=u.base)>i?1:-1,l=u.borderSkipped||"bottom"),d){var c=Math.min(Math.abs(e-n),Math.abs(i-a)),h=(d=d>c?c:d)/2,f=e+("left"!==l?h*o:0),g=n+("right"!==l?-h*o:0),p=i+("top"!==l?h*r:0),v=a+("bottom"!==l?-h*r:0);f!==g&&(i=p,a=v),p!==v&&(e=f,n=g)}s.beginPath(),s.fillStyle=u.backgroundColor,s.strokeStyle=u.borderColor,s.lineWidth=d;var m=[[e,a],[e,i],[n,i],[n,a]],b=["bottom","left","top","right"].indexOf(l,0);-1===b&&(b=0);var x=t(0);s.moveTo(x[0],x[1]);for(var y=1;y<4;y++)x=t(y),s.lineTo(x[0],x[1]);s.fill(),d&&s.stroke()},height:function(){var t=this._view;return t.base-t.y},inRange:function(t,e){var n=!1;if(this._view){var i=a(this);n=t>=i.left&&t<=i.right&&e>=i.top&&e<=i.bottom}return n},inLabelRange:function(t,e){var n=this;if(!n._view)return!1;var o=a(n);return i(n)?t>=o.left&&t<=o.right:e>=o.top&&e<=o.bottom},inXRange:function(t){var e=a(this);return t>=e.left&&t<=e.right},inYRange:function(t){var e=a(this);return t>=e.top&&t<=e.bottom},getCenterPoint:function(){var t,e,n=this._view;return i(this)?(t=n.x,e=(n.y+n.base)/2):(t=(n.x+n.base)/2,e=n.y),{x:t,y:e}},getArea:function(){var t=this._view;return t.width*Math.abs(t.y-t.base)},tooltipPosition:function(){var t=this._view;return{x:t.x,y:t.y}}})},{25:25,26:26}],40:[function(t,e,n){"use strict";e.exports={},e.exports.Arc=t(36),e.exports.Line=t(37),e.exports.Point=t(38),e.exports.Rectangle=t(39)},{36:36,37:37,38:38,39:39}],41:[function(t,e,n){"use strict";var i=t(42),n=e.exports={clear:function(t){t.ctx.clearRect(0,0,t.width,t.height)},roundedRect:function(t,e,n,i,a,o){if(o){var r=Math.min(o,i/2),l=Math.min(o,a/2);t.moveTo(e+r,n),t.lineTo(e+i-r,n),t.quadraticCurveTo(e+i,n,e+i,n+l),t.lineTo(e+i,n+a-l),t.quadraticCurveTo(e+i,n+a,e+i-r,n+a),t.lineTo(e+r,n+a),t.quadraticCurveTo(e,n+a,e,n+a-l),t.lineTo(e,n+l),t.quadraticCurveTo(e,n,e+r,n)}else t.rect(e,n,i,a)},drawPoint:function(t,e,n,i,a){var o,r,l,s,u,d;if(!e||"object"!=typeof e||"[object HTMLImageElement]"!==(o=e.toString())&&"[object HTMLCanvasElement]"!==o){if(!(isNaN(n)||n<=0)){switch(e){default:t.beginPath(),t.arc(i,a,n,0,2*Math.PI),t.closePath(),t.fill();break;case"triangle":t.beginPath(),u=(r=3*n/Math.sqrt(3))*Math.sqrt(3)/2,t.moveTo(i-r/2,a+u/3),t.lineTo(i+r/2,a+u/3),t.lineTo(i,a-2*u/3),t.closePath(),t.fill();break;case"rect":d=1/Math.SQRT2*n,t.beginPath(),t.fillRect(i-d,a-d,2*d,2*d),t.strokeRect(i-d,a-d,2*d,2*d);break;case"rectRounded":var c=n/Math.SQRT2,h=i-c,f=a-c,g=Math.SQRT2*n;t.beginPath(),this.roundedRect(t,h,f,g,g,n/2),t.closePath(),t.fill();break;case"rectRot":d=1/Math.SQRT2*n,t.beginPath(),t.moveTo(i-d,a),t.lineTo(i,a+d),t.lineTo(i+d,a),t.lineTo(i,a-d),t.closePath(),t.fill();break;case"cross":t.beginPath(),t.moveTo(i,a+n),t.lineTo(i,a-n),t.moveTo(i-n,a),t.lineTo(i+n,a),t.closePath();break;case"crossRot":t.beginPath(),l=Math.cos(Math.PI/4)*n,s=Math.sin(Math.PI/4)*n,t.moveTo(i-l,a-s),t.lineTo(i+l,a+s),t.moveTo(i-l,a+s),t.lineTo(i+l,a-s),t.closePath();break;case"star":t.beginPath(),t.moveTo(i,a+n),t.lineTo(i,a-n),t.moveTo(i-n,a),t.lineTo(i+n,a),l=Math.cos(Math.PI/4)*n,s=Math.sin(Math.PI/4)*n,t.moveTo(i-l,a-s),t.lineTo(i+l,a+s),t.moveTo(i-l,a+s),t.lineTo(i+l,a-s),t.closePath();break;case"line":t.beginPath(),t.moveTo(i-n,a),t.lineTo(i+n,a),t.closePath();break;case"dash":t.beginPath(),t.moveTo(i,a),t.lineTo(i+n,a),t.closePath()}t.stroke()}}else t.drawImage(e,i-e.width/2,a-e.height/2,e.width,e.height)},clipArea:function(t,e){t.save(),t.beginPath(),t.rect(e.left,e.top,e.right-e.left,e.bottom-e.top),t.clip()},unclipArea:function(t){t.restore()},lineTo:function(t,e,n,i){if(n.steppedLine)return"after"===n.steppedLine&&!i||"after"!==n.steppedLine&&i?t.lineTo(e.x,n.y):t.lineTo(n.x,e.y),void t.lineTo(n.x,n.y);n.tension?t.bezierCurveTo(i?e.controlPointPreviousX:e.controlPointNextX,i?e.controlPointPreviousY:e.controlPointNextY,i?n.controlPointNextX:n.controlPointPreviousX,i?n.controlPointNextY:n.controlPointPreviousY,n.x,n.y):t.lineTo(n.x,n.y)}};i.clear=n.clear,i.drawRoundedRectangle=function(t){t.beginPath(),n.roundedRect.apply(n,arguments),t.closePath()}},{42:42}],42:[function(t,e,n){"use strict";var i={noop:function(){},uid:function(){var t=0;return function(){return t++}}(),isNullOrUndef:function(t){return null===t||void 0===t},isArray:Array.isArray?Array.isArray:function(t){return"[object Array]"===Object.prototype.toString.call(t)},isObject:function(t){return null!==t&&"[object Object]"===Object.prototype.toString.call(t)},valueOrDefault:function(t,e){return void 0===t?e:t},valueAtIndexOrDefault:function(t,e,n){return i.valueOrDefault(i.isArray(t)?t[e]:t,n)},callback:function(t,e,n){if(t&&"function"==typeof t.call)return t.apply(n,e)},each:function(t,e,n,a){var o,r,l;if(i.isArray(t))if(r=t.length,a)for(o=r-1;o>=0;o--)e.call(n,t[o],o);else for(o=0;o<r;o++)e.call(n,t[o],o);else if(i.isObject(t))for(r=(l=Object.keys(t)).length,o=0;o<r;o++)e.call(n,t[l[o]],l[o])},arrayEquals:function(t,e){var n,a,o,r;if(!t||!e||t.length!==e.length)return!1;for(n=0,a=t.length;n<a;++n)if(o=t[n],r=e[n],o instanceof Array&&r instanceof Array){if(!i.arrayEquals(o,r))return!1}else if(o!==r)return!1;return!0},clone:function(t){if(i.isArray(t))return t.map(i.clone);if(i.isObject(t)){for(var e={},n=Object.keys(t),a=n.length,o=0;o<a;++o)e[n[o]]=i.clone(t[n[o]]);return e}return t},_merger:function(t,e,n,a){var o=e[t],r=n[t];i.isObject(o)&&i.isObject(r)?i.merge(o,r,a):e[t]=i.clone(r)},_mergerIf:function(t,e,n){var a=e[t],o=n[t];i.isObject(a)&&i.isObject(o)?i.mergeIf(a,o):e.hasOwnProperty(t)||(e[t]=i.clone(o))},merge:function(t,e,n){var a,o,r,l,s,u=i.isArray(e)?e:[e],d=u.length;if(!i.isObject(t))return t;for(a=(n=n||{}).merger||i._merger,o=0;o<d;++o)if(e=u[o],i.isObject(e))for(s=0,l=(r=Object.keys(e)).length;s<l;++s)a(r[s],t,e,n);return t},mergeIf:function(t,e){return i.merge(t,e,{merger:i._mergerIf})},extend:function(t){for(var e=1,n=arguments.length;e<n;++e)i.each(arguments[e],function(e,n){t[n]=e});return t},inherits:function(t){var e=this,n=t&&t.hasOwnProperty("constructor")?t.constructor:function(){return e.apply(this,arguments)},a=function(){this.constructor=n};return a.prototype=e.prototype,n.prototype=new a,n.extend=i.inherits,t&&i.extend(n.prototype,t),n.__super__=e.prototype,n}};e.exports=i,i.callCallback=i.callback,i.indexOf=function(t,e,n){return Array.prototype.indexOf.call(t,e,n)},i.getValueOrDefault=i.valueOrDefault,i.getValueAtIndexOrDefault=i.valueAtIndexOrDefault},{}],43:[function(t,e,n){"use strict";var i=t(42),a={linear:function(t){return t},easeInQuad:function(t){return t*t},easeOutQuad:function(t){return-t*(t-2)},easeInOutQuad:function(t){return(t/=.5)<1?.5*t*t:-.5*(--t*(t-2)-1)},easeInCubic:function(t){return t*t*t},easeOutCubic:function(t){return(t-=1)*t*t+1},easeInOutCubic:function(t){return(t/=.5)<1?.5*t*t*t:.5*((t-=2)*t*t+2)},easeInQuart:function(t){return t*t*t*t},easeOutQuart:function(t){return-((t-=1)*t*t*t-1)},easeInOutQuart:function(t){return(t/=.5)<1?.5*t*t*t*t:-.5*((t-=2)*t*t*t-2)},easeInQuint:function(t){return t*t*t*t*t},easeOutQuint:function(t){return(t-=1)*t*t*t*t+1},easeInOutQuint:function(t){return(t/=.5)<1?.5*t*t*t*t*t:.5*((t-=2)*t*t*t*t+2)},easeInSine:function(t){return 1-Math.cos(t*(Math.PI/2))},easeOutSine:function(t){return Math.sin(t*(Math.PI/2))},easeInOutSine:function(t){return-.5*(Math.cos(Math.PI*t)-1)},easeInExpo:function(t){return 0===t?0:Math.pow(2,10*(t-1))},easeOutExpo:function(t){return 1===t?1:1-Math.pow(2,-10*t)},easeInOutExpo:function(t){return 0===t?0:1===t?1:(t/=.5)<1?.5*Math.pow(2,10*(t-1)):.5*(2-Math.pow(2,-10*--t))},easeInCirc:function(t){return t>=1?t:-(Math.sqrt(1-t*t)-1)},easeOutCirc:function(t){return Math.sqrt(1-(t-=1)*t)},easeInOutCirc:function(t){return(t/=.5)<1?-.5*(Math.sqrt(1-t*t)-1):.5*(Math.sqrt(1-(t-=2)*t)+1)},easeInElastic:function(t){var e=1.70158,n=0,i=1;return 0===t?0:1===t?1:(n||(n=.3),i<1?(i=1,e=n/4):e=n/(2*Math.PI)*Math.asin(1/i),-i*Math.pow(2,10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/n))},easeOutElastic:function(t){var e=1.70158,n=0,i=1;return 0===t?0:1===t?1:(n||(n=.3),i<1?(i=1,e=n/4):e=n/(2*Math.PI)*Math.asin(1/i),i*Math.pow(2,-10*t)*Math.sin((t-e)*(2*Math.PI)/n)+1)},easeInOutElastic:function(t){var e=1.70158,n=0,i=1;return 0===t?0:2==(t/=.5)?1:(n||(n=.45),i<1?(i=1,e=n/4):e=n/(2*Math.PI)*Math.asin(1/i),t<1?i*Math.pow(2,10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/n)*-.5:i*Math.pow(2,-10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/n)*.5+1)},easeInBack:function(t){var e=1.70158;return t*t*((e+1)*t-e)},easeOutBack:function(t){var e=1.70158;return(t-=1)*t*((e+1)*t+e)+1},easeInOutBack:function(t){var e=1.70158;return(t/=.5)<1?t*t*((1+(e*=1.525))*t-e)*.5:.5*((t-=2)*t*((1+(e*=1.525))*t+e)+2)},easeInBounce:function(t){return 1-a.easeOutBounce(1-t)},easeOutBounce:function(t){return t<1/2.75?7.5625*t*t:t<2/2.75?7.5625*(t-=1.5/2.75)*t+.75:t<2.5/2.75?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375},easeInOutBounce:function(t){return t<.5?.5*a.easeInBounce(2*t):.5*a.easeOutBounce(2*t-1)+.5}};e.exports={effects:a},i.easingEffects=a},{42:42}],44:[function(t,e,n){"use strict";var i=t(42);e.exports={toLineHeight:function(t,e){var n=(""+t).match(/^(normal|(\d+(?:\.\d+)?)(px|em|%)?)$/);if(!n||"normal"===n[1])return 1.2*e;switch(t=+n[2],n[3]){case"px":return t;case"%":t/=100}return e*t},toPadding:function(t){var e,n,a,o;return i.isObject(t)?(e=+t.top||0,n=+t.right||0,a=+t.bottom||0,o=+t.left||0):e=n=a=o=+t||0,{top:e,right:n,bottom:a,left:o,height:e+a,width:o+n}},resolve:function(t,e,n){var a,o,r;for(a=0,o=t.length;a<o;++a)if(void 0!==(r=t[a])&&(void 0!==e&&"function"==typeof r&&(r=r(e)),void 0!==n&&i.isArray(r)&&(r=r[n]),void 0!==r))return r}}},{42:42}],45:[function(t,e,n){"use strict";e.exports=t(42),e.exports.easing=t(43),e.exports.canvas=t(41),e.exports.options=t(44)},{41:41,42:42,43:43,44:44}],46:[function(t,e,n){e.exports={acquireContext:function(t){return t&&t.canvas&&(t=t.canvas),t&&t.getContext("2d")||null}}},{}],47:[function(t,e,n){"use strict";function i(t,e){var n=v.getStyle(t,e),i=n&&n.match(/^(\d+)(\.\d+)?px$/);return i?Number(i[1]):void 0}function a(t,e){var n=t.style,a=t.getAttribute("height"),o=t.getAttribute("width");if(t[m]={initial:{height:a,width:o,style:{display:n.display,height:n.height,width:n.width}}},n.display=n.display||"block",null===o||""===o){var r=i(t,"width");void 0!==r&&(t.width=r)}if(null===a||""===a)if(""===t.style.height)t.height=t.width/(e.options.aspectRatio||2);else{var l=i(t,"height");void 0!==r&&(t.height=l)}return t}function o(t,e,n){t.addEventListener(e,n,M)}function r(t,e,n){t.removeEventListener(e,n,M)}function l(t,e,n,i,a){return{type:t,chart:e,native:a||null,x:void 0!==n?n:null,y:void 0!==i?i:null}}function s(t,e){var n=w[t.type]||t.type,i=v.getRelativePosition(t,e);return l(n,e,i.x,i.y,t)}function u(t,e){var n=!1,i=[];return function(){i=Array.prototype.slice.call(arguments),e=e||this,n||(n=!0,v.requestAnimFrame.call(window,function(){n=!1,t.apply(e,i)}))}}function d(t){var e=document.createElement("div"),n=b+"size-monitor",i="position:absolute;left:0;top:0;right:0;bottom:0;overflow:hidden;pointer-events:none;visibility:hidden;z-index:-1;";e.style.cssText=i,e.className=n,e.innerHTML='<div class="'+n+'-expand" style="'+i+'"><div style="position:absolute;width:1000000px;height:1000000px;left:0;top:0"></div></div><div class="'+n+'-shrink" style="'+i+'"><div style="position:absolute;width:200%;height:200%;left:0; top:0"></div></div>';var a=e.childNodes[0],r=e.childNodes[1];e._reset=function(){a.scrollLeft=1e6,a.scrollTop=1e6,r.scrollLeft=1e6,r.scrollTop=1e6};var l=function(){e._reset(),t()};return o(a,"scroll",l.bind(a,"expand")),o(r,"scroll",l.bind(r,"shrink")),e}function c(t,e){var n=t[m]||(t[m]={}),i=n.renderProxy=function(t){t.animationName===y&&e()};v.each(k,function(e){o(t,e,i)}),n.reflow=!!t.offsetParent,t.classList.add(x)}function h(t){var e=t[m]||{},n=e.renderProxy;n&&(v.each(k,function(e){r(t,e,n)}),delete e.renderProxy),t.classList.remove(x)}function f(t,e,n){var i=t[m]||(t[m]={}),a=i.resizer=d(u(function(){if(i.resizer)return e(l("resize",n))}));c(t,function(){if(i.resizer){var e=t.parentNode;e&&e!==a.parentNode&&e.insertBefore(a,e.firstChild),a._reset()}})}function g(t){var e=t[m]||{},n=e.resizer;delete e.resizer,h(t),n&&n.parentNode&&n.parentNode.removeChild(n)}function p(t,e){var n=t._style||document.createElement("style");t._style||(t._style=n,e="/* Chart.js */\n"+e,n.setAttribute("type","text/css"),document.getElementsByTagName("head")[0].appendChild(n)),n.appendChild(document.createTextNode(e))}var v=t(45),m="$chartjs",b="chartjs-",x=b+"render-monitor",y=b+"render-animation",k=["animationstart","webkitAnimationStart"],w={touchstart:"mousedown",touchmove:"mousemove",touchend:"mouseup",pointerenter:"mouseenter",pointerdown:"mousedown",pointermove:"mousemove",pointerup:"mouseup",pointerleave:"mouseout",pointerout:"mouseout"},M=!!function(){var t=!1;try{var e=Object.defineProperty({},"passive",{get:function(){t=!0}});window.addEventListener("e",null,e)}catch(t){}return t}()&&{passive:!0};e.exports={_enabled:"undefined"!=typeof window&&"undefined"!=typeof document,initialize:function(){var t="from{opacity:0.99}to{opacity:1}";p(this,"@-webkit-keyframes "+y+"{"+t+"}@keyframes "+y+"{"+t+"}."+x+"{-webkit-animation:"+y+" 0.001s;animation:"+y+" 0.001s;}")},acquireContext:function(t,e){"string"==typeof t?t=document.getElementById(t):t.length&&(t=t[0]),t&&t.canvas&&(t=t.canvas);var n=t&&t.getContext&&t.getContext("2d");return n&&n.canvas===t?(a(t,e),n):null},releaseContext:function(t){var e=t.canvas;if(e[m]){var n=e[m].initial;["height","width"].forEach(function(t){var i=n[t];v.isNullOrUndef(i)?e.removeAttribute(t):e.setAttribute(t,i)}),v.each(n.style||{},function(t,n){e.style[n]=t}),e.width=e.width,delete e[m]}},addEventListener:function(t,e,n){var i=t.canvas;if("resize"!==e){var a=n[m]||(n[m]={});o(i,e,(a.proxies||(a.proxies={}))[t.id+"_"+e]=function(e){n(s(e,t))})}else f(i,n,t)},removeEventListener:function(t,e,n){var i=t.canvas;if("resize"!==e){var a=((n[m]||{}).proxies||{})[t.id+"_"+e];a&&r(i,e,a)}else g(i)}},v.addEvent=o,v.removeEvent=r},{45:45}],48:[function(t,e,n){"use strict";var i=t(45),a=t(46),o=t(47),r=o._enabled?o:a;e.exports=i.extend({initialize:function(){},acquireContext:function(){},releaseContext:function(){},addEventListener:function(){},removeEventListener:function(){}},r)},{45:45,46:46,47:47}],49:[function(t,e,n){"use strict";var i=t(25),a=t(40),o=t(45);i._set("global",{plugins:{filler:{propagate:!0}}}),e.exports=function(){function t(t,e,n){var i,a=t._model||{},o=a.fill;if(void 0===o&&(o=!!a.backgroundColor),!1===o||null===o)return!1;if(!0===o)return"origin";if(i=parseFloat(o,10),isFinite(i)&&Math.floor(i)===i)return"-"!==o[0]&&"+"!==o[0]||(i=e+i),!(i===e||i<0||i>=n)&&i;switch(o){case"bottom":return"start";case"top":return"end";case"zero":return"origin";case"origin":case"start":case"end":return o;default:return!1}}function e(t){var e,n=t.el._model||{},i=t.el._scale||{},a=t.fill,o=null;if(isFinite(a))return null;if("start"===a?o=void 0===n.scaleBottom?i.bottom:n.scaleBottom:"end"===a?o=void 0===n.scaleTop?i.top:n.scaleTop:void 0!==n.scaleZero?o=n.scaleZero:i.getBasePosition?o=i.getBasePosition():i.getBasePixel&&(o=i.getBasePixel()),void 0!==o&&null!==o){if(void 0!==o.x&&void 0!==o.y)return o;if("number"==typeof o&&isFinite(o))return e=i.isHorizontal(),{x:e?o:null,y:e?null:o}}return null}function n(t,e,n){var i,a=t[e].fill,o=[e];if(!n)return a;for(;!1!==a&&-1===o.indexOf(a);){if(!isFinite(a))return a;if(!(i=t[a]))return!1;if(i.visible)return a;o.push(a),a=i.fill}return!1}function r(t){var e=t.fill,n="dataset";return!1===e?null:(isFinite(e)||(n="boundary"),d[n](t))}function l(t){return t&&!t.skip}function s(t,e,n,i,a){var r;if(i&&a){for(t.moveTo(e[0].x,e[0].y),r=1;r<i;++r)o.canvas.lineTo(t,e[r-1],e[r]);for(t.lineTo(n[a-1].x,n[a-1].y),r=a-1;r>0;--r)o.canvas.lineTo(t,n[r],n[r-1],!0)}}function u(t,e,n,i,a,o){var r,u,d,c,h,f,g,p=e.length,v=i.spanGaps,m=[],b=[],x=0,y=0;for(t.beginPath(),r=0,u=p+!!o;r<u;++r)h=n(c=e[d=r%p]._view,d,i),f=l(c),g=l(h),f&&g?(x=m.push(c),y=b.push(h)):x&&y&&(v?(f&&m.push(c),g&&b.push(h)):(s(t,m,b,x,y),x=y=0,m=[],b=[]));s(t,m,b,x,y),t.closePath(),t.fillStyle=a,t.fill()}var d={dataset:function(t){var e=t.fill,n=t.chart,i=n.getDatasetMeta(e),a=i&&n.isDatasetVisible(e)&&i.dataset._children||[],o=a.length||0;return o?function(t,e){return e<o&&a[e]._view||null}:null},boundary:function(t){var e=t.boundary,n=e?e.x:null,i=e?e.y:null;return function(t){return{x:null===n?t.x:n,y:null===i?t.y:i}}}};return{id:"filler",afterDatasetsUpdate:function(i,o){var l,s,u,d,c=(i.data.datasets||[]).length,h=o.propagate,f=[];for(s=0;s<c;++s)d=null,(u=(l=i.getDatasetMeta(s)).dataset)&&u._model&&u instanceof a.Line&&(d={visible:i.isDatasetVisible(s),fill:t(u,s,c),chart:i,el:u}),l.$filler=d,f.push(d);for(s=0;s<c;++s)(d=f[s])&&(d.fill=n(f,s,h),d.boundary=e(d),d.mapper=r(d))},beforeDatasetDraw:function(t,e){var n=e.meta.$filler;if(n){var a=t.ctx,r=n.el,l=r._view,s=r._children||[],d=n.mapper,c=l.backgroundColor||i.global.defaultColor;d&&c&&s.length&&(o.canvas.clipArea(a,t.chartArea),u(a,s,d,l,c,r._loop),o.canvas.unclipArea(a))}}}}},{25:25,40:40,45:45}],50:[function(t,e,n){"use strict";var i=t(25),a=t(26),o=t(45);i._set("global",{legend:{display:!0,position:"top",fullWidth:!0,reverse:!1,weight:1e3,onClick:function(t,e){var n=e.datasetIndex,i=this.chart,a=i.getDatasetMeta(n);a.hidden=null===a.hidden?!i.data.datasets[n].hidden:null,i.update()},onHover:null,labels:{boxWidth:40,padding:10,generateLabels:function(t){var e=t.data;return o.isArray(e.datasets)?e.datasets.map(function(e,n){return{text:e.label,fillStyle:o.isArray(e.backgroundColor)?e.backgroundColor[0]:e.backgroundColor,hidden:!t.isDatasetVisible(n),lineCap:e.borderCapStyle,lineDash:e.borderDash,lineDashOffset:e.borderDashOffset,lineJoin:e.borderJoinStyle,lineWidth:e.borderWidth,strokeStyle:e.borderColor,pointStyle:e.pointStyle,datasetIndex:n}},this):[]}}},legendCallback:function(t){var e=[];e.push('<ul class="'+t.id+'-legend">');for(var n=0;n<t.data.datasets.length;n++)e.push('<li><span style="background-color:'+t.data.datasets[n].backgroundColor+'"></span>'),t.data.datasets[n].label&&e.push(t.data.datasets[n].label),e.push("</li>");return e.push("</ul>"),e.join("")}}),e.exports=function(t){function e(t,e){return t.usePointStyle?e*Math.SQRT2:t.boxWidth}function n(e,n){var i=new t.Legend({ctx:e.ctx,options:n,chart:e});r.configure(e,i,n),r.addBox(e,i),e.legend=i}var r=t.layoutService,l=o.noop;return t.Legend=a.extend({initialize:function(t){o.extend(this,t),this.legendHitBoxes=[],this.doughnutMode=!1},beforeUpdate:l,update:function(t,e,n){var i=this;return i.beforeUpdate(),i.maxWidth=t,i.maxHeight=e,i.margins=n,i.beforeSetDimensions(),i.setDimensions(),i.afterSetDimensions(),i.beforeBuildLabels(),i.buildLabels(),i.afterBuildLabels(),i.beforeFit(),i.fit(),i.afterFit(),i.afterUpdate(),i.minSize},afterUpdate:l,beforeSetDimensions:l,setDimensions:function(){var t=this;t.isHorizontal()?(t.width=t.maxWidth,t.left=0,t.right=t.width):(t.height=t.maxHeight,t.top=0,t.bottom=t.height),t.paddingLeft=0,t.paddingTop=0,t.paddingRight=0,t.paddingBottom=0,t.minSize={width:0,height:0}},afterSetDimensions:l,beforeBuildLabels:l,buildLabels:function(){var t=this,e=t.options.labels||{},n=o.callback(e.generateLabels,[t.chart],t)||[];e.filter&&(n=n.filter(function(n){return e.filter(n,t.chart.data)})),t.options.reverse&&n.reverse(),t.legendItems=n},afterBuildLabels:l,beforeFit:l,fit:function(){var t=this,n=t.options,a=n.labels,r=n.display,l=t.ctx,s=i.global,u=o.valueOrDefault,d=u(a.fontSize,s.defaultFontSize),c=u(a.fontStyle,s.defaultFontStyle),h=u(a.fontFamily,s.defaultFontFamily),f=o.fontString(d,c,h),g=t.legendHitBoxes=[],p=t.minSize,v=t.isHorizontal();if(v?(p.width=t.maxWidth,p.height=r?10:0):(p.width=r?10:0,p.height=t.maxHeight),r)if(l.font=f,v){var m=t.lineWidths=[0],b=t.legendItems.length?d+a.padding:0;l.textAlign="left",l.textBaseline="top",o.each(t.legendItems,function(n,i){var o=e(a,d)+d/2+l.measureText(n.text).width;m[m.length-1]+o+a.padding>=t.width&&(b+=d+a.padding,m[m.length]=t.left),g[i]={left:0,top:0,width:o,height:d},m[m.length-1]+=o+a.padding}),p.height+=b}else{var x=a.padding,y=t.columnWidths=[],k=a.padding,w=0,M=0,S=d+x;o.each(t.legendItems,function(t,n){var i=e(a,d)+d/2+l.measureText(t.text).width;M+S>p.height&&(k+=w+a.padding,y.push(w),w=0,M=0),w=Math.max(w,i),M+=S,g[n]={left:0,top:0,width:i,height:d}}),k+=w,y.push(w),p.width+=k}t.width=p.width,t.height=p.height},afterFit:l,isHorizontal:function(){return"top"===this.options.position||"bottom"===this.options.position},draw:function(){var t=this,n=t.options,a=n.labels,r=i.global,l=r.elements.line,s=t.width,u=t.lineWidths;if(n.display){var d,c=t.ctx,h=o.valueOrDefault,f=h(a.fontColor,r.defaultFontColor),g=h(a.fontSize,r.defaultFontSize),p=h(a.fontStyle,r.defaultFontStyle),v=h(a.fontFamily,r.defaultFontFamily),m=o.fontString(g,p,v);c.textAlign="left",c.textBaseline="middle",c.lineWidth=.5,c.strokeStyle=f,c.fillStyle=f,c.font=m;var b=e(a,g),x=t.legendHitBoxes,y=function(t,e,i){if(!(isNaN(b)||b<=0)){c.save(),c.fillStyle=h(i.fillStyle,r.defaultColor),c.lineCap=h(i.lineCap,l.borderCapStyle),c.lineDashOffset=h(i.lineDashOffset,l.borderDashOffset),c.lineJoin=h(i.lineJoin,l.borderJoinStyle),c.lineWidth=h(i.lineWidth,l.borderWidth),c.strokeStyle=h(i.strokeStyle,r.defaultColor);var a=0===h(i.lineWidth,l.borderWidth);if(c.setLineDash&&c.setLineDash(h(i.lineDash,l.borderDash)),n.labels&&n.labels.usePointStyle){var s=g*Math.SQRT2/2,u=s/Math.SQRT2,d=t+u,f=e+u;o.canvas.drawPoint(c,i.pointStyle,s,d,f)}else a||c.strokeRect(t,e,b,g),c.fillRect(t,e,b,g);c.restore()}},k=function(t,e,n,i){var a=g/2,o=b+a+t,r=e+a;c.fillText(n.text,o,r),n.hidden&&(c.beginPath(),c.lineWidth=2,c.moveTo(o,r),c.lineTo(o+i,r),c.stroke())},w=t.isHorizontal();d=w?{x:t.left+(s-u[0])/2,y:t.top+a.padding,line:0}:{x:t.left+a.padding,y:t.top+a.padding,line:0};var M=g+a.padding;o.each(t.legendItems,function(e,n){var i=c.measureText(e.text).width,o=b+g/2+i,r=d.x,l=d.y;w?r+o>=s&&(l=d.y+=M,d.line++,r=d.x=t.left+(s-u[d.line])/2):l+M>t.bottom&&(r=d.x=r+t.columnWidths[d.line]+a.padding,l=d.y=t.top+a.padding,d.line++),y(r,l,e),x[n].left=r,x[n].top=l,k(r,l,e,i),w?d.x+=o+a.padding:d.y+=M})}},handleEvent:function(t){var e=this,n=e.options,i="mouseup"===t.type?"click":t.type,a=!1;if("mousemove"===i){if(!n.onHover)return}else{if("click"!==i)return;if(!n.onClick)return}var o=t.x,r=t.y;if(o>=e.left&&o<=e.right&&r>=e.top&&r<=e.bottom)for(var l=e.legendHitBoxes,s=0;s<l.length;++s){var u=l[s];if(o>=u.left&&o<=u.left+u.width&&r>=u.top&&r<=u.top+u.height){if("click"===i){n.onClick.call(e,t.native,e.legendItems[s]),a=!0;break}if("mousemove"===i){n.onHover.call(e,t.native,e.legendItems[s]),a=!0;break}}}return a}}),{id:"legend",beforeInit:function(t){var e=t.options.legend;e&&n(t,e)},beforeUpdate:function(t){var e=t.options.legend,a=t.legend;e?(o.mergeIf(e,i.global.legend),a?(r.configure(t,a,e),a.options=e):n(t,e)):a&&(r.removeBox(t,a),delete t.legend)},afterEvent:function(t,e){var n=t.legend;n&&n.handleEvent(e)}}}},{25:25,26:26,45:45}],51:[function(t,e,n){"use strict";var i=t(25),a=t(26),o=t(45);i._set("global",{title:{display:!1,fontStyle:"bold",fullWidth:!0,lineHeight:1.2,padding:10,position:"top",text:"",weight:2e3}}),e.exports=function(t){function e(e,i){var a=new t.Title({ctx:e.ctx,options:i,chart:e});n.configure(e,a,i),n.addBox(e,a),e.titleBlock=a}var n=t.layoutService,r=o.noop;return t.Title=a.extend({initialize:function(t){var e=this;o.extend(e,t),e.legendHitBoxes=[]},beforeUpdate:r,update:function(t,e,n){var i=this;return i.beforeUpdate(),i.maxWidth=t,i.maxHeight=e,i.margins=n,i.beforeSetDimensions(),i.setDimensions(),i.afterSetDimensions(),i.beforeBuildLabels(),i.buildLabels(),i.afterBuildLabels(),i.beforeFit(),i.fit(),i.afterFit(),i.afterUpdate(),i.minSize},afterUpdate:r,beforeSetDimensions:r,setDimensions:function(){var t=this;t.isHorizontal()?(t.width=t.maxWidth,t.left=0,t.right=t.width):(t.height=t.maxHeight,t.top=0,t.bottom=t.height),t.paddingLeft=0,t.paddingTop=0,t.paddingRight=0,t.paddingBottom=0,t.minSize={width:0,height:0}},afterSetDimensions:r,beforeBuildLabels:r,buildLabels:r,afterBuildLabels:r,beforeFit:r,fit:function(){var t=this,e=o.valueOrDefault,n=t.options,a=n.display,r=e(n.fontSize,i.global.defaultFontSize),l=t.minSize,s=o.isArray(n.text)?n.text.length:1,u=o.options.toLineHeight(n.lineHeight,r),d=a?s*u+2*n.padding:0;t.isHorizontal()?(l.width=t.maxWidth,l.height=d):(l.width=d,l.height=t.maxHeight),t.width=l.width,t.height=l.height},afterFit:r,isHorizontal:function(){var t=this.options.position;return"top"===t||"bottom"===t},draw:function(){var t=this,e=t.ctx,n=o.valueOrDefault,a=t.options,r=i.global;if(a.display){var l,s,u,d=n(a.fontSize,r.defaultFontSize),c=n(a.fontStyle,r.defaultFontStyle),h=n(a.fontFamily,r.defaultFontFamily),f=o.fontString(d,c,h),g=o.options.toLineHeight(a.lineHeight,d),p=g/2+a.padding,v=0,m=t.top,b=t.left,x=t.bottom,y=t.right;e.fillStyle=n(a.fontColor,r.defaultFontColor),e.font=f,t.isHorizontal()?(s=b+(y-b)/2,u=m+p,l=y-b):(s="left"===a.position?b+p:y-p,u=m+(x-m)/2,l=x-m,v=Math.PI*("left"===a.position?-.5:.5)),e.save(),e.translate(s,u),e.rotate(v),e.textAlign="center",e.textBaseline="middle";var k=a.text;if(o.isArray(k))for(var w=0,M=0;M<k.length;++M)e.fillText(k[M],0,w,l),w+=g;else e.fillText(k,0,0,l);e.restore()}}}),{id:"title",beforeInit:function(t){var n=t.options.title;n&&e(t,n)},beforeUpdate:function(a){var r=a.options.title,l=a.titleBlock;r?(o.mergeIf(r,i.global.title),l?(n.configure(a,l,r),l.options=r):e(a,r)):l&&(t.layoutService.removeBox(a,l),delete a.titleBlock)}}}},{25:25,26:26,45:45}],52:[function(t,e,n){"use strict";e.exports=function(t){var e=t.Scale.extend({getLabels:function(){var t=this.chart.data;return this.options.labels||(this.isHorizontal()?t.xLabels:t.yLabels)||t.labels},determineDataLimits:function(){var t=this,e=t.getLabels();t.minIndex=0,t.maxIndex=e.length-1;var n;void 0!==t.options.ticks.min&&(n=e.indexOf(t.options.ticks.min),t.minIndex=-1!==n?n:t.minIndex),void 0!==t.options.ticks.max&&(n=e.indexOf(t.options.ticks.max),t.maxIndex=-1!==n?n:t.maxIndex),t.min=e[t.minIndex],t.max=e[t.maxIndex]},buildTicks:function(){var t=this,e=t.getLabels();t.ticks=0===t.minIndex&&t.maxIndex===e.length-1?e:e.slice(t.minIndex,t.maxIndex+1)},getLabelForIndex:function(t,e){var n=this,i=n.chart.data,a=n.isHorizontal();return i.yLabels&&!a?n.getRightValue(i.datasets[e].data[t]):n.ticks[t-n.minIndex]},getPixelForValue:function(t,e){var n,i=this,a=i.options.offset,o=Math.max(i.maxIndex+1-i.minIndex-(a?0:1),1);if(void 0!==t&&null!==t&&(n=i.isHorizontal()?t.x:t.y),void 0!==n||void 0!==t&&isNaN(e)){var r=i.getLabels();t=n||t;var l=r.indexOf(t);e=-1!==l?l:e}if(i.isHorizontal()){var s=i.width/o,u=s*(e-i.minIndex);return a&&(u+=s/2),i.left+Math.round(u)}var d=i.height/o,c=d*(e-i.minIndex);return a&&(c+=d/2),i.top+Math.round(c)},getPixelForTick:function(t){return this.getPixelForValue(this.ticks[t],t+this.minIndex,null)},getValueForPixel:function(t){var e=this,n=e.options.offset,i=Math.max(e._ticks.length-(n?0:1),1),a=e.isHorizontal(),o=(a?e.width:e.height)/i;return t-=a?e.left:e.top,n&&(t-=o/2),(t<=0?0:Math.round(t/o))+e.minIndex},getBasePixel:function(){return this.bottom}});t.scaleService.registerScaleType("category",e,{position:"bottom"})}},{}],53:[function(t,e,n){"use strict";var i=t(25),a=t(45),o=t(34);e.exports=function(t){var e={position:"left",ticks:{callback:o.formatters.linear}},n=t.LinearScaleBase.extend({determineDataLimits:function(){function t(t){return r?t.xAxisID===e.id:t.yAxisID===e.id}var e=this,n=e.options,i=e.chart,o=i.data.datasets,r=e.isHorizontal();e.min=null,e.max=null;var l=n.stacked;if(void 0===l&&a.each(o,function(e,n){if(!l){var a=i.getDatasetMeta(n);i.isDatasetVisible(n)&&t(a)&&void 0!==a.stack&&(l=!0)}}),n.stacked||l){var s={};a.each(o,function(o,r){var l=i.getDatasetMeta(r),u=[l.type,void 0===n.stacked&&void 0===l.stack?r:"",l.stack].join(".");void 0===s[u]&&(s[u]={positiveValues:[],negativeValues:[]});var d=s[u].positiveValues,c=s[u].negativeValues;i.isDatasetVisible(r)&&t(l)&&a.each(o.data,function(t,i){var a=+e.getRightValue(t);isNaN(a)||l.data[i].hidden||(d[i]=d[i]||0,c[i]=c[i]||0,n.relativePoints?d[i]=100:a<0?c[i]+=a:d[i]+=a)})}),a.each(s,function(t){var n=t.positiveValues.concat(t.negativeValues),i=a.min(n),o=a.max(n);e.min=null===e.min?i:Math.min(e.min,i),e.max=null===e.max?o:Math.max(e.max,o)})}else a.each(o,function(n,o){var r=i.getDatasetMeta(o);i.isDatasetVisible(o)&&t(r)&&a.each(n.data,function(t,n){var i=+e.getRightValue(t);isNaN(i)||r.data[n].hidden||(null===e.min?e.min=i:i<e.min&&(e.min=i),null===e.max?e.max=i:i>e.max&&(e.max=i))})});e.min=isFinite(e.min)&&!isNaN(e.min)?e.min:0,e.max=isFinite(e.max)&&!isNaN(e.max)?e.max:1,this.handleTickRangeOptions()},getTickLimit:function(){var t,e=this,n=e.options.ticks;if(e.isHorizontal())t=Math.min(n.maxTicksLimit?n.maxTicksLimit:11,Math.ceil(e.width/50));else{var o=a.valueOrDefault(n.fontSize,i.global.defaultFontSize);t=Math.min(n.maxTicksLimit?n.maxTicksLimit:11,Math.ceil(e.height/(2*o)))}return t},handleDirectionalChanges:function(){this.isHorizontal()||this.ticks.reverse()},getLabelForIndex:function(t,e){return+this.getRightValue(this.chart.data.datasets[e].data[t])},getPixelForValue:function(t){var e,n=this,i=n.start,a=+n.getRightValue(t),o=n.end-i;return n.isHorizontal()?(e=n.left+n.width/o*(a-i),Math.round(e)):(e=n.bottom-n.height/o*(a-i),Math.round(e))},getValueForPixel:function(t){var e=this,n=e.isHorizontal(),i=n?e.width:e.height,a=(n?t-e.left:e.bottom-t)/i;return e.start+(e.end-e.start)*a},getPixelForTick:function(t){return this.getPixelForValue(this.ticksAsNumbers[t])}});t.scaleService.registerScaleType("linear",n,e)}},{25:25,34:34,45:45}],54:[function(t,e,n){"use strict";var i=t(45),a=t(34);e.exports=function(t){var e=i.noop;t.LinearScaleBase=t.Scale.extend({getRightValue:function(e){return"string"==typeof e?+e:t.Scale.prototype.getRightValue.call(this,e)},handleTickRangeOptions:function(){var t=this,e=t.options.ticks;if(e.beginAtZero){var n=i.sign(t.min),a=i.sign(t.max);n<0&&a<0?t.max=0:n>0&&a>0&&(t.min=0)}var o=void 0!==e.min||void 0!==e.suggestedMin,r=void 0!==e.max||void 0!==e.suggestedMax;void 0!==e.min?t.min=e.min:void 0!==e.suggestedMin&&(null===t.min?t.min=e.suggestedMin:t.min=Math.min(t.min,e.suggestedMin)),void 0!==e.max?t.max=e.max:void 0!==e.suggestedMax&&(null===t.max?t.max=e.suggestedMax:t.max=Math.max(t.max,e.suggestedMax)),o!==r&&t.min>=t.max&&(o?t.max=t.min+1:t.min=t.max-1),t.min===t.max&&(t.max++,e.beginAtZero||t.min--)},getTickLimit:e,handleDirectionalChanges:e,buildTicks:function(){var t=this,e=t.options.ticks,n=t.getTickLimit(),o={maxTicks:n=Math.max(2,n),min:e.min,max:e.max,stepSize:i.valueOrDefault(e.fixedStepSize,e.stepSize)},r=t.ticks=a.generators.linear(o,t);t.handleDirectionalChanges(),t.max=i.max(r),t.min=i.min(r),e.reverse?(r.reverse(),t.start=t.max,t.end=t.min):(t.start=t.min,t.end=t.max)},convertTicksToLabels:function(){var e=this;e.ticksAsNumbers=e.ticks.slice(),e.zeroLineIndex=e.ticks.indexOf(0),t.Scale.prototype.convertTicksToLabels.call(e)}})}},{34:34,45:45}],55:[function(t,e,n){"use strict";var i=t(45),a=t(34);e.exports=function(t){var e={position:"left",ticks:{callback:a.formatters.logarithmic}},n=t.Scale.extend({determineDataLimits:function(){function t(t){return s?t.xAxisID===e.id:t.yAxisID===e.id}var e=this,n=e.options,a=n.ticks,o=e.chart,r=o.data.datasets,l=i.valueOrDefault,s=e.isHorizontal();e.min=null,e.max=null,e.minNotZero=null;var u=n.stacked;if(void 0===u&&i.each(r,function(e,n){if(!u){var i=o.getDatasetMeta(n);o.isDatasetVisible(n)&&t(i)&&void 0!==i.stack&&(u=!0)}}),n.stacked||u){var d={};i.each(r,function(a,r){var l=o.getDatasetMeta(r),s=[l.type,void 0===n.stacked&&void 0===l.stack?r:"",l.stack].join(".");o.isDatasetVisible(r)&&t(l)&&(void 0===d[s]&&(d[s]=[]),i.each(a.data,function(t,i){var a=d[s],o=+e.getRightValue(t);isNaN(o)||l.data[i].hidden||(a[i]=a[i]||0,n.relativePoints?a[i]=100:a[i]+=o)}))}),i.each(d,function(t){var n=i.min(t),a=i.max(t);e.min=null===e.min?n:Math.min(e.min,n),e.max=null===e.max?a:Math.max(e.max,a)})}else i.each(r,function(n,a){var r=o.getDatasetMeta(a);o.isDatasetVisible(a)&&t(r)&&i.each(n.data,function(t,n){var i=+e.getRightValue(t);isNaN(i)||r.data[n].hidden||(null===e.min?e.min=i:i<e.min&&(e.min=i),null===e.max?e.max=i:i>e.max&&(e.max=i),0!==i&&(null===e.minNotZero||i<e.minNotZero)&&(e.minNotZero=i))})});e.min=l(a.min,e.min),e.max=l(a.max,e.max),e.min===e.max&&(0!==e.min&&null!==e.min?(e.min=Math.pow(10,Math.floor(i.log10(e.min))-1),e.max=Math.pow(10,Math.floor(i.log10(e.max))+1)):(e.min=1,e.max=10))},buildTicks:function(){var t=this,e=t.options.ticks,n={min:e.min,max:e.max},o=t.ticks=a.generators.logarithmic(n,t);t.isHorizontal()||o.reverse(),t.max=i.max(o),t.min=i.min(o),e.reverse?(o.reverse(),t.start=t.max,t.end=t.min):(t.start=t.min,t.end=t.max)},convertTicksToLabels:function(){this.tickValues=this.ticks.slice(),t.Scale.prototype.convertTicksToLabels.call(this)},getLabelForIndex:function(t,e){return+this.getRightValue(this.chart.data.datasets[e].data[t])},getPixelForTick:function(t){return this.getPixelForValue(this.tickValues[t])},getPixelForValue:function(t){var e,n,a,o=this,r=o.start,l=+o.getRightValue(t),s=o.options.ticks;return o.isHorizontal()?(a=i.log10(o.end)-i.log10(r),0===l?n=o.left:(e=o.width,n=o.left+e/a*(i.log10(l)-i.log10(r)))):(e=o.height,0!==r||s.reverse?0===o.end&&s.reverse?(a=i.log10(o.start)-i.log10(o.minNotZero),n=l===o.end?o.top:l===o.minNotZero?o.top+.02*e:o.top+.02*e+.98*e/a*(i.log10(l)-i.log10(o.minNotZero))):0===l?n=s.reverse?o.top:o.bottom:(a=i.log10(o.end)-i.log10(r),e=o.height,n=o.bottom-e/a*(i.log10(l)-i.log10(r))):(a=i.log10(o.end)-i.log10(o.minNotZero),n=l===r?o.bottom:l===o.minNotZero?o.bottom-.02*e:o.bottom-.02*e-.98*e/a*(i.log10(l)-i.log10(o.minNotZero)))),n},getValueForPixel:function(t){var e,n,a=this,o=i.log10(a.end)-i.log10(a.start);return a.isHorizontal()?(n=a.width,e=a.start*Math.pow(10,(t-a.left)*o/n)):(n=a.height,e=Math.pow(10,(a.bottom-t)*o/n)/a.start),e}});t.scaleService.registerScaleType("logarithmic",n,e)}},{34:34,45:45}],56:[function(t,e,n){"use strict";var i=t(25),a=t(45),o=t(34);e.exports=function(t){function e(t){var e=t.options;return e.angleLines.display||e.pointLabels.display?t.chart.data.labels.length:0}function n(t){var e=t.options.pointLabels,n=a.valueOrDefault(e.fontSize,v.defaultFontSize),i=a.valueOrDefault(e.fontStyle,v.defaultFontStyle),o=a.valueOrDefault(e.fontFamily,v.defaultFontFamily);return{size:n,style:i,family:o,font:a.fontString(n,i,o)}}function r(t,e,n){return a.isArray(n)?{w:a.longestText(t,t.font,n),h:n.length*e+1.5*(n.length-1)*e}:{w:t.measureText(n).width,h:e}}function l(t,e,n,i,a){return t===i||t===a?{start:e-n/2,end:e+n/2}:t<i||t>a?{start:e-n-5,end:e}:{start:e,end:e+n+5}}function s(t){var i,o,s,u=n(t),d=Math.min(t.height/2,t.width/2),c={r:t.width,l:0,t:t.height,b:0},h={};t.ctx.font=u.font,t._pointLabelSizes=[];var f=e(t);for(i=0;i<f;i++){s=t.getPointPosition(i,d),o=r(t.ctx,u.size,t.pointLabels[i]||""),t._pointLabelSizes[i]=o;var g=t.getIndexAngle(i),p=a.toDegrees(g)%360,v=l(p,s.x,o.w,0,180),m=l(p,s.y,o.h,90,270);v.start<c.l&&(c.l=v.start,h.l=g),v.end>c.r&&(c.r=v.end,h.r=g),m.start<c.t&&(c.t=m.start,h.t=g),m.end>c.b&&(c.b=m.end,h.b=g)}t.setReductions(d,c,h)}function u(t){var e=Math.min(t.height/2,t.width/2);t.drawingArea=Math.round(e),t.setCenterPoint(0,0,0,0)}function d(t){return 0===t||180===t?"center":t<180?"left":"right"}function c(t,e,n,i){if(a.isArray(e))for(var o=n.y,r=1.5*i,l=0;l<e.length;++l)t.fillText(e[l],n.x,o),o+=r;else t.fillText(e,n.x,n.y)}function h(t,e,n){90===t||270===t?n.y-=e.h/2:(t>270||t<90)&&(n.y-=e.h)}function f(t){var i=t.ctx,o=a.valueOrDefault,r=t.options,l=r.angleLines,s=r.pointLabels;i.lineWidth=l.lineWidth,i.strokeStyle=l.color;var u=t.getDistanceFromCenterForValue(r.ticks.reverse?t.min:t.max),f=n(t);i.textBaseline="top";for(var g=e(t)-1;g>=0;g--){if(l.display){var p=t.getPointPosition(g,u);i.beginPath(),i.moveTo(t.xCenter,t.yCenter),i.lineTo(p.x,p.y),i.stroke(),i.closePath()}if(s.display){var m=t.getPointPosition(g,u+5),b=o(s.fontColor,v.defaultFontColor);i.font=f.font,i.fillStyle=b;var x=t.getIndexAngle(g),y=a.toDegrees(x);i.textAlign=d(y),h(y,t._pointLabelSizes[g],m),c(i,t.pointLabels[g]||"",m,f.size)}}}function g(t,n,i,o){var r=t.ctx;if(r.strokeStyle=a.valueAtIndexOrDefault(n.color,o-1),r.lineWidth=a.valueAtIndexOrDefault(n.lineWidth,o-1),t.options.gridLines.circular)r.beginPath(),r.arc(t.xCenter,t.yCenter,i,0,2*Math.PI),r.closePath(),r.stroke();else{var l=e(t);if(0===l)return;r.beginPath();var s=t.getPointPosition(0,i);r.moveTo(s.x,s.y);for(var u=1;u<l;u++)s=t.getPointPosition(u,i),r.lineTo(s.x,s.y);r.closePath(),r.stroke()}}function p(t){return a.isNumber(t)?t:0}var v=i.global,m={display:!0,animate:!0,position:"chartArea",angleLines:{display:!0,color:"rgba(0, 0, 0, 0.1)",lineWidth:1},gridLines:{circular:!1},ticks:{showLabelBackdrop:!0,backdropColor:"rgba(255,255,255,0.75)",backdropPaddingY:2,backdropPaddingX:2,callback:o.formatters.linear},pointLabels:{display:!0,fontSize:10,callback:function(t){return t}}},b=t.LinearScaleBase.extend({setDimensions:function(){var t=this,e=t.options,n=e.ticks;t.width=t.maxWidth,t.height=t.maxHeight,t.xCenter=Math.round(t.width/2),t.yCenter=Math.round(t.height/2);var i=a.min([t.height,t.width]),o=a.valueOrDefault(n.fontSize,v.defaultFontSize);t.drawingArea=e.display?i/2-(o/2+n.backdropPaddingY):i/2},determineDataLimits:function(){var t=this,e=t.chart,n=Number.POSITIVE_INFINITY,i=Number.NEGATIVE_INFINITY;a.each(e.data.datasets,function(o,r){if(e.isDatasetVisible(r)){var l=e.getDatasetMeta(r);a.each(o.data,function(e,a){var o=+t.getRightValue(e);isNaN(o)||l.data[a].hidden||(n=Math.min(o,n),i=Math.max(o,i))})}}),t.min=n===Number.POSITIVE_INFINITY?0:n,t.max=i===Number.NEGATIVE_INFINITY?0:i,t.handleTickRangeOptions()},getTickLimit:function(){var t=this.options.ticks,e=a.valueOrDefault(t.fontSize,v.defaultFontSize);return Math.min(t.maxTicksLimit?t.maxTicksLimit:11,Math.ceil(this.drawingArea/(1.5*e)))},convertTicksToLabels:function(){var e=this;t.LinearScaleBase.prototype.convertTicksToLabels.call(e),e.pointLabels=e.chart.data.labels.map(e.options.pointLabels.callback,e)},getLabelForIndex:function(t,e){return+this.getRightValue(this.chart.data.datasets[e].data[t])},fit:function(){this.options.pointLabels.display?s(this):u(this)},setReductions:function(t,e,n){var i=this,a=e.l/Math.sin(n.l),o=Math.max(e.r-i.width,0)/Math.sin(n.r),r=-e.t/Math.cos(n.t),l=-Math.max(e.b-i.height,0)/Math.cos(n.b);a=p(a),o=p(o),r=p(r),l=p(l),i.drawingArea=Math.min(Math.round(t-(a+o)/2),Math.round(t-(r+l)/2)),i.setCenterPoint(a,o,r,l)},setCenterPoint:function(t,e,n,i){var a=this,o=a.width-e-a.drawingArea,r=t+a.drawingArea,l=n+a.drawingArea,s=a.height-i-a.drawingArea;a.xCenter=Math.round((r+o)/2+a.left),a.yCenter=Math.round((l+s)/2+a.top)},getIndexAngle:function(t){return t*(2*Math.PI/e(this))+(this.chart.options&&this.chart.options.startAngle?this.chart.options.startAngle:0)*Math.PI*2/360},getDistanceFromCenterForValue:function(t){var e=this;if(null===t)return 0;var n=e.drawingArea/(e.max-e.min);return e.options.ticks.reverse?(e.max-t)*n:(t-e.min)*n},getPointPosition:function(t,e){var n=this,i=n.getIndexAngle(t)-Math.PI/2;return{x:Math.round(Math.cos(i)*e)+n.xCenter,y:Math.round(Math.sin(i)*e)+n.yCenter}},getPointPositionForValue:function(t,e){return this.getPointPosition(t,this.getDistanceFromCenterForValue(e))},getBasePosition:function(){var t=this,e=t.min,n=t.max;return t.getPointPositionForValue(0,t.beginAtZero?0:e<0&&n<0?n:e>0&&n>0?e:0)},draw:function(){var t=this,e=t.options,n=e.gridLines,i=e.ticks,o=a.valueOrDefault;if(e.display){var r=t.ctx,l=this.getIndexAngle(0),s=o(i.fontSize,v.defaultFontSize),u=o(i.fontStyle,v.defaultFontStyle),d=o(i.fontFamily,v.defaultFontFamily),c=a.fontString(s,u,d);a.each(t.ticks,function(e,a){if(a>0||i.reverse){var u=t.getDistanceFromCenterForValue(t.ticksAsNumbers[a]);if(n.display&&0!==a&&g(t,n,u,a),i.display){var d=o(i.fontColor,v.defaultFontColor);if(r.font=c,r.save(),r.translate(t.xCenter,t.yCenter),r.rotate(l),i.showLabelBackdrop){var h=r.measureText(e).width;r.fillStyle=i.backdropColor,r.fillRect(-h/2-i.backdropPaddingX,-u-s/2-i.backdropPaddingY,h+2*i.backdropPaddingX,s+2*i.backdropPaddingY)}r.textAlign="center",r.textBaseline="middle",r.fillStyle=d,r.fillText(e,0,-u),r.restore()}}}),(e.angleLines.display||e.pointLabels.display)&&f(t)}}});t.scaleService.registerScaleType("radialLinear",b,m)}},{25:25,34:34,45:45}],57:[function(t,e,n){"use strict";function i(t,e){return t-e}function a(t){var e,n,i,a={},o=[];for(e=0,n=t.length;e<n;++e)a[i=t[e]]||(a[i]=!0,o.push(i));return o}function o(t,e,n,i){if("linear"===i||!t.length)return[{time:e,pos:0},{time:n,pos:1}];var a,o,r,l,s,u=[],d=[e];for(a=0,o=t.length;a<o;++a)(l=t[a])>e&&l<n&&d.push(l);for(d.push(n),a=0,o=d.length;a<o;++a)s=d[a+1],r=d[a-1],l=d[a],void 0!==r&&void 0!==s&&Math.round((s+r)/2)===l||u.push({time:l,pos:a/(o-1)});return u}function r(t,e,n){for(var i,a,o,r=0,l=t.length-1;r>=0&&r<=l;){if(i=r+l>>1,a=t[i-1]||null,o=t[i],!a)return{lo:null,hi:o};if(o[e]<n)r=i+1;else{if(!(a[e]>n))return{lo:a,hi:o};l=i-1}}return{lo:o,hi:null}}function l(t,e,n,i){var a=r(t,e,n),o=a.lo?a.hi?a.lo:t[t.length-2]:t[0],l=a.lo?a.hi?a.hi:t[t.length-1]:t[1],s=l[e]-o[e],u=s?(n-o[e])/s:0,d=(l[i]-o[i])*u;return o[i]+d}function s(t,e){var n=e.parser,i=e.parser||e.format;return"function"==typeof n?n(t):"string"==typeof t&&"string"==typeof i?m(t,i):(t instanceof m||(t=m(t)),t.isValid()?t:"function"==typeof i?i(t):t)}function u(t,e){if(x.isNullOrUndef(t))return null;var n=e.options.time,i=s(e.getRightValue(t),n);return i.isValid()?(n.round&&i.startOf(n.round),i.valueOf()):null}function d(t,e,n,i){var a,o,r,l=e-t,s=w[n],u=s.size,d=s.steps;if(!d)return Math.ceil(l/((i||1)*u));for(a=0,o=d.length;a<o&&(r=d[a],!(Math.ceil(l/(u*r))<=i));++a);return r}function c(t,e,n,i){var a,o,r,l=M.length;for(a=M.indexOf(t);a<l-1;++a)if(o=w[M[a]],r=o.steps?o.steps[o.steps.length-1]:k,o.common&&Math.ceil((n-e)/(r*o.size))<=i)return M[a];return M[l-1]}function h(t,e,n,i){var a,o,r=m.duration(m(i).diff(m(n)));for(a=M.length-1;a>=M.indexOf(e);a--)if(o=M[a],w[o].common&&r.as(o)>=t.length)return o;return M[e?M.indexOf(e):0]}function f(t){for(var e=M.indexOf(t)+1,n=M.length;e<n;++e)if(w[M[e]].common)return M[e]}function g(t,e,n,i){var a,o=i.time,r=o.unit||c(o.minUnit,t,e,n),l=f(r),s=x.valueOrDefault(o.stepSize,o.unitStepSize),u="week"===r&&o.isoWeekday,h=i.ticks.major.enabled,g=w[r],p=m(t),v=m(e),b=[];for(s||(s=d(t,e,r,n)),u&&(p=p.isoWeekday(u),v=v.isoWeekday(u)),p=p.startOf(u?"day":r),(v=v.startOf(u?"day":r))<e&&v.add(1,r),a=m(p),h&&l&&!u&&!o.round&&(a.startOf(l),a.add(~~((p-a)/(g.size*s))*s,r));a<v;a.add(s,r))b.push(+a);return b.push(+a),b}function p(t,e,n,i,a){var o,r,s=0,u=0;return a.offset&&e.length&&(a.time.min||(o=e.length>1?e[1]:i,r=e[0],s=(l(t,"time",o,"pos")-l(t,"time",r,"pos"))/2),a.time.max||(o=e[e.length-1],r=e.length>1?e[e.length-2]:n,u=(l(t,"time",o,"pos")-l(t,"time",r,"pos"))/2)),{left:s,right:u}}function v(t,e){var n,i,a,o,r=[];for(n=0,i=t.length;n<i;++n)a=t[n],o=!!e&&a===+m(a).startOf(e),r.push({value:a,major:o});return r}var m=t(1);m="function"==typeof m?m:window.moment;var b=t(25),x=t(45),y=Number.MIN_SAFE_INTEGER||-9007199254740991,k=Number.MAX_SAFE_INTEGER||9007199254740991,w={millisecond:{common:!0,size:1,steps:[1,2,5,10,20,50,100,250,500]},second:{common:!0,size:1e3,steps:[1,2,5,10,30]},minute:{common:!0,size:6e4,steps:[1,2,5,10,30]},hour:{common:!0,size:36e5,steps:[1,2,3,6,12]},day:{common:!0,size:864e5,steps:[1,2,5]},week:{common:!1,size:6048e5,steps:[1,2,3,4]},month:{common:!0,size:2628e6,steps:[1,2,3]},quarter:{common:!1,size:7884e6,steps:[1,2,3,4]},year:{common:!0,size:3154e7}},M=Object.keys(w);e.exports=function(t){var e=t.Scale.extend({initialize:function(){if(!m)throw new Error("Chart.js - Moment.js could not be found! You must include it before Chart.js to use the time scale. Download at https://momentjs.com");this.mergeTicksOptions(),t.Scale.prototype.initialize.call(this)},update:function(){var e=this,n=e.options;return n.time&&n.time.format&&console.warn("options.time.format is deprecated and replaced by options.time.parser."),t.Scale.prototype.update.apply(e,arguments)},getRightValue:function(e){return e&&void 0!==e.t&&(e=e.t),t.Scale.prototype.getRightValue.call(this,e)},determineDataLimits:function(){var t,e,n,o,r,l,s=this,d=s.chart,c=s.options.time,h=k,f=y,g=[],p=[],v=[];for(t=0,n=d.data.labels.length;t<n;++t)v.push(u(d.data.labels[t],s));for(t=0,n=(d.data.datasets||[]).length;t<n;++t)if(d.isDatasetVisible(t))if(r=d.data.datasets[t].data,x.isObject(r[0]))for(p[t]=[],e=0,o=r.length;e<o;++e)l=u(r[e],s),g.push(l),p[t][e]=l;else g.push.apply(g,v),p[t]=v.slice(0);else p[t]=[];v.length&&(v=a(v).sort(i),h=Math.min(h,v[0]),f=Math.max(f,v[v.length-1])),g.length&&(g=a(g).sort(i),h=Math.min(h,g[0]),f=Math.max(f,g[g.length-1])),h=u(c.min,s)||h,f=u(c.max,s)||f,h=h===k?+m().startOf("day"):h,f=f===y?+m().endOf("day")+1:f,s.min=Math.min(h,f),s.max=Math.max(h+1,f),s._horizontal=s.isHorizontal(),s._table=[],s._timestamps={data:g,datasets:p,labels:v}},buildTicks:function(){var t,e,n,i=this,a=i.min,r=i.max,l=i.options,s=l.time,d=[],c=[];switch(l.ticks.source){case"data":d=i._timestamps.data;break;case"labels":d=i._timestamps.labels;break;case"auto":default:d=g(a,r,i.getLabelCapacity(a),l)}for("ticks"===l.bounds&&d.length&&(a=d[0],r=d[d.length-1]),a=u(s.min,i)||a,r=u(s.max,i)||r,t=0,e=d.length;t<e;++t)(n=d[t])>=a&&n<=r&&c.push(n);return i.min=a,i.max=r,i._unit=s.unit||h(c,s.minUnit,i.min,i.max),i._majorUnit=f(i._unit),i._table=o(i._timestamps.data,a,r,l.distribution),i._offsets=p(i._table,c,a,r,l),v(c,i._majorUnit)},getLabelForIndex:function(t,e){var n=this,i=n.chart.data,a=n.options.time,o=i.labels&&t<i.labels.length?i.labels[t]:"",r=i.datasets[e].data[t];return x.isObject(r)&&(o=n.getRightValue(r)),a.tooltipFormat&&(o=s(o,a).format(a.tooltipFormat)),o},tickFormatFunction:function(t,e,n,i){var a=this,o=a.options,r=t.valueOf(),l=o.time.displayFormats,s=l[a._unit],u=a._majorUnit,d=l[u],c=t.clone().startOf(u).valueOf(),h=o.ticks.major,f=h.enabled&&u&&d&&r===c,g=t.format(i||(f?d:s)),p=f?h:o.ticks.minor,v=x.valueOrDefault(p.callback,p.userCallback);return v?v(g,e,n):g},convertTicksToLabels:function(t){var e,n,i=[];for(e=0,n=t.length;e<n;++e)i.push(this.tickFormatFunction(m(t[e].value),e,t));return i},getPixelForOffset:function(t){var e=this,n=e._horizontal?e.width:e.height,i=e._horizontal?e.left:e.top,a=l(e._table,"time",t,"pos");return i+n*(e._offsets.left+a)/(e._offsets.left+1+e._offsets.right)},getPixelForValue:function(t,e,n){var i=this,a=null;if(void 0!==e&&void 0!==n&&(a=i._timestamps.datasets[n][e]),null===a&&(a=u(t,i)),null!==a)return i.getPixelForOffset(a)},getPixelForTick:function(t){var e=this.getTicks();return t>=0&&t<e.length?this.getPixelForOffset(e[t].value):null},getValueForPixel:function(t){var e=this,n=e._horizontal?e.width:e.height,i=e._horizontal?e.left:e.top,a=(n?(t-i)/n:0)*(e._offsets.left+1+e._offsets.left)-e._offsets.right,o=l(e._table,"pos",a,"time");return m(o)},getLabelWidth:function(t){var e=this,n=e.options.ticks,i=e.ctx.measureText(t).width,a=x.toRadians(n.maxRotation),o=Math.cos(a),r=Math.sin(a);return i*o+x.valueOrDefault(n.fontSize,b.global.defaultFontSize)*r},getLabelCapacity:function(t){var e=this,n=e.options.time.displayFormats.millisecond,i=e.tickFormatFunction(m(t),0,[],n),a=e.getLabelWidth(i),o=e.isHorizontal()?e.width:e.height;return Math.floor(o/a)}});t.scaleService.registerScaleType("time",e,{position:"bottom",distribution:"linear",bounds:"data",time:{parser:!1,format:!1,unit:!1,round:!1,displayFormat:!1,isoWeekday:!1,minUnit:"millisecond",displayFormats:{millisecond:"h:mm:ss.SSS a",second:"h:mm:ss a",minute:"h:mm a",hour:"hA",day:"MMM D",week:"ll",month:"MMM YYYY",quarter:"[Q]Q - YYYY",year:"YYYY"}},ticks:{autoSkip:!1,source:"auto",major:{enabled:!1}}})}},{1:1,25:25,45:45}]},{},[7])(7)});
|
20 |
|
21 |
|
22 |
+
/* ================== admin/assets/js/src/plugins/jquery.matchHeight-min.js =================== */
|
23 |
+
|
24 |
+
|
25 |
+
/*
|
26 |
+
* jquery-match-height 0.7.2 by @liabru
|
27 |
+
* http://brm.io/jquery-match-height/
|
28 |
+
* License MIT
|
29 |
+
*/
|
30 |
+
!function(t){"use strict";"function"==typeof define&&define.amd?define(["jquery"],t):"undefined"!=typeof module&&module.exports?module.exports=t(require("jquery")):t(jQuery)}(function(t){var e=-1,o=-1,n=function(t){return parseFloat(t)||0},a=function(e){var o=1,a=t(e),i=null,r=[];return a.each(function(){var e=t(this),a=e.offset().top-n(e.css("margin-top")),s=r.length>0?r[r.length-1]:null;null===s?r.push(e):Math.floor(Math.abs(i-a))<=o?r[r.length-1]=s.add(e):r.push(e),i=a}),r},i=function(e){var o={
|
31 |
+
byRow:!0,property:"height",target:null,remove:!1};return"object"==typeof e?t.extend(o,e):("boolean"==typeof e?o.byRow=e:"remove"===e&&(o.remove=!0),o)},r=t.fn.matchHeight=function(e){var o=i(e);if(o.remove){var n=this;return this.css(o.property,""),t.each(r._groups,function(t,e){e.elements=e.elements.not(n)}),this}return this.length<=1&&!o.target?this:(r._groups.push({elements:this,options:o}),r._apply(this,o),this)};r.version="0.7.2",r._groups=[],r._throttle=80,r._maintainScroll=!1,r._beforeUpdate=null,
|
32 |
+
r._afterUpdate=null,r._rows=a,r._parse=n,r._parseOptions=i,r._apply=function(e,o){var s=i(o),h=t(e),l=[h],c=t(window).scrollTop(),p=t("html").outerHeight(!0),u=h.parents().filter(":hidden");return u.each(function(){var e=t(this);e.data("style-cache",e.attr("style"))}),u.css("display","block"),s.byRow&&!s.target&&(h.each(function(){var e=t(this),o=e.css("display");"inline-block"!==o&&"flex"!==o&&"inline-flex"!==o&&(o="block"),e.data("style-cache",e.attr("style")),e.css({display:o,"padding-top":"0",
|
33 |
+
"padding-bottom":"0","margin-top":"0","margin-bottom":"0","border-top-width":"0","border-bottom-width":"0",height:"100px",overflow:"hidden"})}),l=a(h),h.each(function(){var e=t(this);e.attr("style",e.data("style-cache")||"")})),t.each(l,function(e,o){var a=t(o),i=0;if(s.target)i=s.target.outerHeight(!1);else{if(s.byRow&&a.length<=1)return void a.css(s.property,"");a.each(function(){var e=t(this),o=e.attr("style"),n=e.css("display");"inline-block"!==n&&"flex"!==n&&"inline-flex"!==n&&(n="block");var a={
|
34 |
+
display:n};a[s.property]="",e.css(a),e.outerHeight(!1)>i&&(i=e.outerHeight(!1)),o?e.attr("style",o):e.css("display","")})}a.each(function(){var e=t(this),o=0;s.target&&e.is(s.target)||("border-box"!==e.css("box-sizing")&&(o+=n(e.css("border-top-width"))+n(e.css("border-bottom-width")),o+=n(e.css("padding-top"))+n(e.css("padding-bottom"))),e.css(s.property,i-o+"px"))})}),u.each(function(){var e=t(this);e.attr("style",e.data("style-cache")||null)}),r._maintainScroll&&t(window).scrollTop(c/p*t("html").outerHeight(!0)),
|
35 |
+
this},r._applyDataApi=function(){var e={};t("[data-match-height], [data-mh]").each(function(){var o=t(this),n=o.attr("data-mh")||o.attr("data-match-height");n in e?e[n]=e[n].add(o):e[n]=o}),t.each(e,function(){this.matchHeight(!0)})};var s=function(e){r._beforeUpdate&&r._beforeUpdate(e,r._groups),t.each(r._groups,function(){r._apply(this.elements,this.options)}),r._afterUpdate&&r._afterUpdate(e,r._groups)};r._update=function(n,a){if(a&&"resize"===a.type){var i=t(window).width();if(i===e)return;e=i;
|
36 |
+
}n?o===-1&&(o=setTimeout(function(){s(a),o=-1},r._throttle)):s(a)},t(r._applyDataApi);var h=t.fn.on?"on":"bind";t(window)[h]("load",function(t){r._update(!1,t)}),t(window)[h]("resize orientationchange",function(t){r._update(!0,t)})});
|
37 |
+
|
38 |
+
|
39 |
+
/* ================== admin/assets/js/src/plugins/spectrum.js =================== */
|
40 |
+
|
41 |
+
|
42 |
+
// Spectrum Colorpicker v1.8.0
|
43 |
+
// https://github.com/bgrins/spectrum
|
44 |
+
// Author: Brian Grinstead
|
45 |
+
// License: MIT
|
46 |
+
|
47 |
+
(function (factory) {
|
48 |
+
"use strict";
|
49 |
+
|
50 |
+
if (typeof define === 'function' && define.amd) { // AMD
|
51 |
+
define(['jquery'], factory);
|
52 |
+
}
|
53 |
+
else if (typeof exports == "object" && typeof module == "object") { // CommonJS
|
54 |
+
module.exports = factory(require('jquery'));
|
55 |
+
}
|
56 |
+
else { // Browser
|
57 |
+
factory(jQuery);
|
58 |
+
}
|
59 |
+
})(function($, undefined) {
|
60 |
+
"use strict";
|
61 |
+
|
62 |
+
var defaultOpts = {
|
63 |
+
|
64 |
+
// Callbacks
|
65 |
+
beforeShow: noop,
|
66 |
+
move: noop,
|
67 |
+
change: noop,
|
68 |
+
show: noop,
|
69 |
+
hide: noop,
|
70 |
+
|
71 |
+
// Options
|
72 |
+
color: false,
|
73 |
+
flat: false,
|
74 |
+
showInput: false,
|
75 |
+
allowEmpty: false,
|
76 |
+
showButtons: true,
|
77 |
+
clickoutFiresChange: true,
|
78 |
+
showInitial: false,
|
79 |
+
showPalette: false,
|
80 |
+
showPaletteOnly: false,
|
81 |
+
hideAfterPaletteSelect: false,
|
82 |
+
togglePaletteOnly: false,
|
83 |
+
showSelectionPalette: true,
|
84 |
+
localStorageKey: false,
|
85 |
+
appendTo: "body",
|
86 |
+
maxSelectionSize: 7,
|
87 |
+
cancelText: "cancel",
|
88 |
+
chooseText: "choose",
|
89 |
+
togglePaletteMoreText: "more",
|
90 |
+
togglePaletteLessText: "less",
|
91 |
+
clearText: "Clear Color Selection",
|
92 |
+
noColorSelectedText: "No Color Selected",
|
93 |
+
preferredFormat: false,
|
94 |
+
className: "", // Deprecated - use containerClassName and replacerClassName instead.
|
95 |
+
containerClassName: "",
|
96 |
+
replacerClassName: "",
|
97 |
+
showAlpha: false,
|
98 |
+
theme: "sp-light",
|
99 |
+
palette: [["#ffffff", "#000000", "#ff0000", "#ff8000", "#ffff00", "#008000", "#0000ff", "#4b0082", "#9400d3"]],
|
100 |
+
selectionPalette: [],
|
101 |
+
disabled: false,
|
102 |
+
offset: null
|
103 |
+
},
|
104 |
+
spectrums = [],
|
105 |
+
IE = !!/msie/i.exec( window.navigator.userAgent ),
|
106 |
+
rgbaSupport = (function() {
|
107 |
+
function contains( str, substr ) {
|
108 |
+
return !!~('' + str).indexOf(substr);
|
109 |
+
}
|
110 |
+
|
111 |
+
var elem = document.createElement('div');
|
112 |
+
var style = elem.style;
|
113 |
+
style.cssText = 'background-color:rgba(0,0,0,.5)';
|
114 |
+
return contains(style.backgroundColor, 'rgba') || contains(style.backgroundColor, 'hsla');
|
115 |
+
})(),
|
116 |
+
replaceInput = [
|
117 |
+
"<div class='sp-replacer'>",
|
118 |
+
"<div class='sp-preview'><div class='sp-preview-inner'></div></div>",
|
119 |
+
"<div class='sp-dd'>▼</div>",
|
120 |
+
"</div>"
|
121 |
+
].join(''),
|
122 |
+
markup = (function () {
|
123 |
+
|
124 |
+
// IE does not support gradients with multiple stops, so we need to simulate
|
125 |
+
// that for the rainbow slider with 8 divs that each have a single gradient
|
126 |
+
var gradientFix = "";
|
127 |
+
if (IE) {
|
128 |
+
for (var i = 1; i <= 6; i++) {
|
129 |
+
gradientFix += "<div class='sp-" + i + "'></div>";
|
130 |
+
}
|
131 |
+
}
|
132 |
+
|
133 |
+
return [
|
134 |
+
"<div class='sp-container sp-hidden'>",
|
135 |
+
"<div class='sp-palette-container'>",
|
136 |
+
"<div class='sp-palette sp-thumb sp-cf'></div>",
|
137 |
+
"<div class='sp-palette-button-container sp-cf'>",
|
138 |
+
"<button type='button' class='sp-palette-toggle'></button>",
|
139 |
+
"</div>",
|
140 |
+
"</div>",
|
141 |
+
"<div class='sp-picker-container'>",
|
142 |
+
"<div class='sp-top sp-cf'>",
|
143 |
+
"<div class='sp-fill'></div>",
|
144 |
+
"<div class='sp-top-inner'>",
|
145 |
+
"<div class='sp-color'>",
|
146 |
+
"<div class='sp-sat'>",
|
147 |
+
"<div class='sp-val'>",
|
148 |
+
"<div class='sp-dragger'></div>",
|
149 |
+
"</div>",
|
150 |
+
"</div>",
|
151 |
+
"</div>",
|
152 |
+
"<div class='sp-clear sp-clear-display'>",
|
153 |
+
"</div>",
|
154 |
+
"<div class='sp-hue'>",
|
155 |
+
"<div class='sp-slider'></div>",
|
156 |
+
gradientFix,
|
157 |
+
"</div>",
|
158 |
+
"</div>",
|
159 |
+
"<div class='sp-alpha'><div class='sp-alpha-inner'><div class='sp-alpha-handle'></div></div></div>",
|
160 |
+
"</div>",
|
161 |
+
"<div class='sp-input-container sp-cf'>",
|
162 |
+
"<input class='sp-input' type='text' spellcheck='false' />",
|
163 |
+
"</div>",
|
164 |
+
"<div class='sp-initial sp-thumb sp-cf'></div>",
|
165 |
+
"<div class='sp-button-container sp-cf'>",
|
166 |
+
"<a class='sp-cancel' href='#'></a>",
|
167 |
+
"<button type='button' class='sp-choose'></button>",
|
168 |
+
"</div>",
|
169 |
+
"</div>",
|
170 |
+
"</div>"
|
171 |
+
].join("");
|
172 |
+
})();
|
173 |
+
|
174 |
+
function paletteTemplate (p, color, className, opts) {
|
175 |
+
var html = [];
|
176 |
+
for (var i = 0; i < p.length; i++) {
|
177 |
+
var current = p[i];
|
178 |
+
if(current) {
|
179 |
+
var tiny = tinycolor(current);
|
180 |
+
var c = tiny.toHsl().l < 0.5 ? "sp-thumb-el sp-thumb-dark" : "sp-thumb-el sp-thumb-light";
|
181 |
+
c += (tinycolor.equals(color, current)) ? " sp-thumb-active" : "";
|
182 |
+
var formattedString = tiny.toString(opts.preferredFormat || "rgb");
|
183 |
+
var swatchStyle = rgbaSupport ? ("background-color:" + tiny.toRgbString()) : "filter:" + tiny.toFilter();
|
184 |
+
html.push('<span title="' + formattedString + '" data-color="' + tiny.toRgbString() + '" class="' + c + '"><span class="sp-thumb-inner" style="' + swatchStyle + ';" /></span>');
|
185 |
+
} else {
|
186 |
+
var cls = 'sp-clear-display';
|
187 |
+
html.push($('<div />')
|
188 |
+
.append($('<span data-color="" style="background-color:transparent;" class="' + cls + '"></span>')
|
189 |
+
.attr('title', opts.noColorSelectedText)
|
190 |
+
)
|
191 |
+
.html()
|
192 |
+
);
|
193 |
+
}
|
194 |
+
}
|
195 |
+
return "<div class='sp-cf " + className + "'>" + html.join('') + "</div>";
|
196 |
+
}
|
197 |
+
|
198 |
+
function hideAll() {
|
199 |
+
for (var i = 0; i < spectrums.length; i++) {
|
200 |
+
if (spectrums[i]) {
|
201 |
+
spectrums[i].hide();
|
202 |
+
}
|
203 |
+
}
|
204 |
+
}
|
205 |
+
|
206 |
+
function instanceOptions(o, callbackContext) {
|
207 |
+
var opts = $.extend({}, defaultOpts, o);
|
208 |
+
opts.callbacks = {
|
209 |
+
'move': bind(opts.move, callbackContext),
|
210 |
+
'change': bind(opts.change, callbackContext),
|
211 |
+
'show': bind(opts.show, callbackContext),
|
212 |
+
'hide': bind(opts.hide, callbackContext),
|
213 |
+
'beforeShow': bind(opts.beforeShow, callbackContext)
|
214 |
+
};
|
215 |
+
|
216 |
+
return opts;
|
217 |
+
}
|
218 |
+
|
219 |
+
function spectrum(element, o) {
|
220 |
+
|
221 |
+
var opts = instanceOptions(o, element),
|
222 |
+
flat = opts.flat,
|
223 |
+
showSelectionPalette = opts.showSelectionPalette,
|
224 |
+
localStorageKey = opts.localStorageKey,
|
225 |
+
theme = opts.theme,
|
226 |
+
callbacks = opts.callbacks,
|
227 |
+
resize = throttle(reflow, 10),
|
228 |
+
visible = false,
|
229 |
+
isDragging = false,
|
230 |
+
dragWidth = 0,
|
231 |
+
dragHeight = 0,
|
232 |
+
dragHelperHeight = 0,
|
233 |
+
slideHeight = 0,
|
234 |
+
slideWidth = 0,
|
235 |
+
alphaWidth = 0,
|
236 |
+
alphaSlideHelperWidth = 0,
|
237 |
+
slideHelperHeight = 0,
|
238 |
+
currentHue = 0,
|
239 |
+
currentSaturation = 0,
|
240 |
+
currentValue = 0,
|
241 |
+
currentAlpha = 1,
|
242 |
+
palette = [],
|
243 |
+
paletteArray = [],
|
244 |
+
paletteLookup = {},
|
245 |
+
selectionPalette = opts.selectionPalette.slice(0),
|
246 |
+
maxSelectionSize = opts.maxSelectionSize,
|
247 |
+
draggingClass = "sp-dragging",
|
248 |
+
shiftMovementDirection = null;
|
249 |
+
|
250 |
+
var doc = element.ownerDocument,
|
251 |
+
body = doc.body,
|
252 |
+
boundElement = $(element),
|
253 |
+
disabled = false,
|
254 |
+
container = $(markup, doc).addClass(theme),
|
255 |
+
pickerContainer = container.find(".sp-picker-container"),
|
256 |
+
dragger = container.find(".sp-color"),
|
257 |
+
dragHelper = container.find(".sp-dragger"),
|
258 |
+
slider = container.find(".sp-hue"),
|
259 |
+
slideHelper = container.find(".sp-slider"),
|
260 |
+
alphaSliderInner = container.find(".sp-alpha-inner"),
|
261 |
+
alphaSlider = container.find(".sp-alpha"),
|
262 |
+
alphaSlideHelper = container.find(".sp-alpha-handle"),
|
263 |
+
textInput = container.find(".sp-input"),
|
264 |
+
paletteContainer = container.find(".sp-palette"),
|
265 |
+
initialColorContainer = container.find(".sp-initial"),
|
266 |
+
cancelButton = container.find(".sp-cancel"),
|
267 |
+
clearButton = container.find(".sp-clear"),
|
268 |
+
chooseButton = container.find(".sp-choose"),
|
269 |
+
toggleButton = container.find(".sp-palette-toggle"),
|
270 |
+
isInput = boundElement.is("input"),
|
271 |
+
isInputTypeColor = isInput && boundElement.attr("type") === "color" && inputTypeColorSupport(),
|
272 |
+
shouldReplace = isInput && !flat,
|
273 |
+
replacer = (shouldReplace) ? $(replaceInput).addClass(theme).addClass(opts.className).addClass(opts.replacerClassName) : $([]),
|
274 |
+
offsetElement = (shouldReplace) ? replacer : boundElement,
|
275 |
+
previewElement = replacer.find(".sp-preview-inner"),
|
276 |
+
initialColor = opts.color || (isInput && boundElement.val()),
|
277 |
+
colorOnShow = false,
|
278 |
+
currentPreferredFormat = opts.preferredFormat,
|
279 |
+
clickoutFiresChange = !opts.showButtons || opts.clickoutFiresChange,
|
280 |
+
isEmpty = !initialColor,
|
281 |
+
allowEmpty = opts.allowEmpty && !isInputTypeColor;
|
282 |
+
|
283 |
+
function applyOptions() {
|
284 |
+
|
285 |
+
if (opts.showPaletteOnly) {
|
286 |
+
opts.showPalette = true;
|
287 |
+
}
|
288 |
+
|
289 |
+
toggleButton.text(opts.showPaletteOnly ? opts.togglePaletteMoreText : opts.togglePaletteLessText);
|
290 |
+
|
291 |
+
if (opts.palette) {
|
292 |
+
palette = opts.palette.slice(0);
|
293 |
+
paletteArray = $.isArray(palette[0]) ? palette : [palette];
|
294 |
+
paletteLookup = {};
|
295 |
+
for (var i = 0; i < paletteArray.length; i++) {
|
296 |
+
for (var j = 0; j < paletteArray[i].length; j++) {
|
297 |
+
var rgb = tinycolor(paletteArray[i][j]).toRgbString();
|
298 |
+
paletteLookup[rgb] = true;
|
299 |
+
}
|
300 |
+
}
|
301 |
+
}
|
302 |
+
|
303 |
+
container.toggleClass("sp-flat", flat);
|
304 |
+
container.toggleClass("sp-input-disabled", !opts.showInput);
|
305 |
+
container.toggleClass("sp-alpha-enabled", opts.showAlpha);
|
306 |
+
container.toggleClass("sp-clear-enabled", allowEmpty);
|
307 |
+
container.toggleClass("sp-buttons-disabled", !opts.showButtons);
|
308 |
+
container.toggleClass("sp-palette-buttons-disabled", !opts.togglePaletteOnly);
|
309 |
+
container.toggleClass("sp-palette-disabled", !opts.showPalette);
|
310 |
+
container.toggleClass("sp-palette-only", opts.showPaletteOnly);
|
311 |
+
container.toggleClass("sp-initial-disabled", !opts.showInitial);
|
312 |
+
container.addClass(opts.className).addClass(opts.containerClassName);
|
313 |
+
|
314 |
+
reflow();
|
315 |
+
}
|
316 |
+
|
317 |
+
function initialize() {
|
318 |
+
|
319 |
+
if (IE) {
|
320 |
+
container.find("*:not(input)").attr("unselectable", "on");
|
321 |
+
}
|
322 |
+
|
323 |
+
applyOptions();
|
324 |
+
|
325 |
+
if (shouldReplace) {
|
326 |
+
boundElement.after(replacer).hide();
|
327 |
+
}
|
328 |
+
|
329 |
+
if (!allowEmpty) {
|
330 |
+
clearButton.hide();
|
331 |
+
}
|
332 |
+
|
333 |
+
if (flat) {
|
334 |
+
boundElement.after(container).hide();
|
335 |
+
}
|
336 |
+
else {
|
337 |
+
|
338 |
+
var appendTo = opts.appendTo === "parent" ? boundElement.parent() : $(opts.appendTo);
|
339 |
+
if (appendTo.length !== 1) {
|
340 |
+
appendTo = $("body");
|
341 |
+
}
|
342 |
+
|
343 |
+
appendTo.append(container);
|
344 |
+
}
|
345 |
+
|
346 |
+
updateSelectionPaletteFromStorage();
|
347 |
+
|
348 |
+
offsetElement.bind("click.spectrum touchstart.spectrum", function (e) {
|
349 |
+
if (!disabled) {
|
350 |
+
toggle();
|
351 |
+
}
|
352 |
+
|
353 |
+
e.stopPropagation();
|
354 |
+
|
355 |
+
if (!$(e.target).is("input")) {
|
356 |
+
e.preventDefault();
|
357 |
+
}
|
358 |
+
});
|
359 |
+
|
360 |
+
if(boundElement.is(":disabled") || (opts.disabled === true)) {
|
361 |
+
disable();
|
362 |
+
}
|
363 |
+
|
364 |
+
// Prevent clicks from bubbling up to document. This would cause it to be hidden.
|
365 |
+
container.click(stopPropagation);
|
366 |
+
|
367 |
+
// Handle user typed input
|
368 |
+
textInput.change(setFromTextInput);
|
369 |
+
textInput.bind("paste", function () {
|
370 |
+
setTimeout(setFromTextInput, 1);
|
371 |
+
});
|
372 |
+
textInput.keydown(function (e) { if (e.keyCode == 13) { setFromTextInput(); } });
|
373 |
+
|
374 |
+
cancelButton.text(opts.cancelText);
|
375 |
+
cancelButton.bind("click.spectrum", function (e) {
|
376 |
+
e.stopPropagation();
|
377 |
+
e.preventDefault();
|
378 |
+
revert();
|
379 |
+
hide();
|
380 |
+
});
|
381 |
+
|
382 |
+
clearButton.attr("title", opts.clearText);
|
383 |
+
clearButton.bind("click.spectrum", function (e) {
|
384 |
+
e.stopPropagation();
|
385 |
+
e.preventDefault();
|
386 |
+
isEmpty = true;
|
387 |
+
move();
|
388 |
+
|
389 |
+
if(flat) {
|
390 |
+
//for the flat style, this is a change event
|
391 |
+
updateOriginalInput(true);
|
392 |
+
}
|
393 |
+
});
|
394 |
+
|
395 |
+
chooseButton.text(opts.chooseText);
|
396 |
+
chooseButton.bind("click.spectrum", function (e) {
|
397 |
+
e.stopPropagation();
|
398 |
+
e.preventDefault();
|
399 |
+
|
400 |
+
if (IE && textInput.is(":focus")) {
|
401 |
+
textInput.trigger('change');
|
402 |
+
}
|
403 |
+
|
404 |
+
if (isValid()) {
|
405 |
+
updateOriginalInput(true);
|
406 |
+
hide();
|
407 |
+
}
|
408 |
+
});
|
409 |
+
|
410 |
+
toggleButton.text(opts.showPaletteOnly ? opts.togglePaletteMoreText : opts.togglePaletteLessText);
|
411 |
+
toggleButton.bind("click.spectrum", function (e) {
|
412 |
+
e.stopPropagation();
|
413 |
+
e.preventDefault();
|
414 |
+
|
415 |
+
opts.showPaletteOnly = !opts.showPaletteOnly;
|
416 |
+
|
417 |
+
// To make sure the Picker area is drawn on the right, next to the
|
418 |
+
// Palette area (and not below the palette), first move the Palette
|
419 |
+
// to the left to make space for the picker, plus 5px extra.
|
420 |
+
// The 'applyOptions' function puts the whole container back into place
|
421 |
+
// and takes care of the button-text and the sp-palette-only CSS class.
|
422 |
+
if (!opts.showPaletteOnly && !flat) {
|
423 |
+
container.css('left', '-=' + (pickerContainer.outerWidth(true) + 5));
|
424 |
+
}
|
425 |
+
applyOptions();
|
426 |
+
});
|
427 |
+
|
428 |
+
draggable(alphaSlider, function (dragX, dragY, e) {
|
429 |
+
currentAlpha = (dragX / alphaWidth);
|
430 |
+
isEmpty = false;
|
431 |
+
if (e.shiftKey) {
|
432 |
+
currentAlpha = Math.round(currentAlpha * 10) / 10;
|
433 |
+
}
|
434 |
+
|
435 |
+
move();
|
436 |
+
}, dragStart, dragStop);
|
437 |
+
|
438 |
+
draggable(slider, function (dragX, dragY) {
|
439 |
+
currentHue = parseFloat(dragY / slideHeight);
|
440 |
+
isEmpty = false;
|
441 |
+
if (!opts.showAlpha) {
|
442 |
+
currentAlpha = 1;
|
443 |
+
}
|
444 |
+
move();
|
445 |
+
}, dragStart, dragStop);
|
446 |
+
|
447 |
+
draggable(dragger, function (dragX, dragY, e) {
|
448 |
+
|
449 |
+
// shift+drag should snap the movement to either the x or y axis.
|
450 |
+
if (!e.shiftKey) {
|
451 |
+
shiftMovementDirection = null;
|
452 |
+
}
|
453 |
+
else if (!shiftMovementDirection) {
|
454 |
+
var oldDragX = currentSaturation * dragWidth;
|
455 |
+
var oldDragY = dragHeight - (currentValue * dragHeight);
|
456 |
+
var furtherFromX = Math.abs(dragX - oldDragX) > Math.abs(dragY - oldDragY);
|
457 |
+
|
458 |
+
shiftMovementDirection = furtherFromX ? "x" : "y";
|
459 |
+
}
|
460 |
+
|
461 |
+
var setSaturation = !shiftMovementDirection || shiftMovementDirection === "x";
|
462 |
+
var setValue = !shiftMovementDirection || shiftMovementDirection === "y";
|
463 |
+
|
464 |
+
if (setSaturation) {
|
465 |
+
currentSaturation = parseFloat(dragX / dragWidth);
|
466 |
+
}
|
467 |
+
if (setValue) {
|
468 |
+
currentValue = parseFloat((dragHeight - dragY) / dragHeight);
|
469 |
+
}
|
470 |
+
|
471 |
+
isEmpty = false;
|
472 |
+
if (!opts.showAlpha) {
|
473 |
+
currentAlpha = 1;
|
474 |
+
}
|
475 |
+
|
476 |
+
move();
|
477 |
+
|
478 |
+
}, dragStart, dragStop);
|
479 |
+
|
480 |
+
if (!!initialColor) {
|
481 |
+
set(initialColor);
|
482 |
+
|
483 |
+
// In case color was black - update the preview UI and set the format
|
484 |
+
// since the set function will not run (default color is black).
|
485 |
+
updateUI();
|
486 |
+
currentPreferredFormat = opts.preferredFormat || tinycolor(initialColor).format;
|
487 |
+
|
488 |
+
addColorToSelectionPalette(initialColor);
|
489 |
+
}
|
490 |
+
else {
|
491 |
+
updateUI();
|
492 |
+
}
|
493 |
+
|
494 |
+
if (flat) {
|
495 |
+
show();
|
496 |
+
}
|
497 |
+
|
498 |
+
function paletteElementClick(e) {
|
499 |
+
if (e.data && e.data.ignore) {
|
500 |
+
set($(e.target).closest(".sp-thumb-el").data("color"));
|
501 |
+
move();
|
502 |
+
}
|
503 |
+
else {
|
504 |
+
set($(e.target).closest(".sp-thumb-el").data("color"));
|
505 |
+
move();
|
506 |
+
updateOriginalInput(true);
|
507 |
+
if (opts.hideAfterPaletteSelect) {
|
508 |
+
hide();
|
509 |
+
}
|
510 |
+
}
|
511 |
+
|
512 |
+
return false;
|
513 |
+
}
|
514 |
+
|
515 |
+
var paletteEvent = IE ? "mousedown.spectrum" : "click.spectrum touchstart.spectrum";
|
516 |
+
paletteContainer.delegate(".sp-thumb-el", paletteEvent, paletteElementClick);
|
517 |
+
initialColorContainer.delegate(".sp-thumb-el:nth-child(1)", paletteEvent, { ignore: true }, paletteElementClick);
|
518 |
+
}
|
519 |
+
|
520 |
+
function updateSelectionPaletteFromStorage() {
|
521 |
+
|
522 |
+
if (localStorageKey && window.localStorage) {
|
523 |
+
|
524 |
+
// Migrate old palettes over to new format. May want to remove this eventually.
|
525 |
+
try {
|
526 |
+
var oldPalette = window.localStorage[localStorageKey].split(",#");
|
527 |
+
if (oldPalette.length > 1) {
|
528 |
+
delete window.localStorage[localStorageKey];
|
529 |
+
$.each(oldPalette, function(i, c) {
|
530 |
+
addColorToSelectionPalette(c);
|
531 |
+
});
|
532 |
+
}
|
533 |
+
}
|
534 |
+
catch(e) { }
|
535 |
+
|
536 |
+
try {
|
537 |
+
selectionPalette = window.localStorage[localStorageKey].split(";");
|
538 |
+
}
|
539 |
+
catch (e) { }
|
540 |
+
}
|
541 |
+
}
|
542 |
+
|
543 |
+
function addColorToSelectionPalette(color) {
|
544 |
+
if (showSelectionPalette) {
|
545 |
+
var rgb = tinycolor(color).toRgbString();
|
546 |
+
if (!paletteLookup[rgb] && $.inArray(rgb, selectionPalette) === -1) {
|
547 |
+
selectionPalette.push(rgb);
|
548 |
+
while(selectionPalette.length > maxSelectionSize) {
|
549 |
+
selectionPalette.shift();
|
550 |
+
}
|
551 |
+
}
|
552 |
+
|
553 |
+
if (localStorageKey && window.localStorage) {
|
554 |
+
try {
|
555 |
+
window.localStorage[localStorageKey] = selectionPalette.join(";");
|
556 |
+
}
|
557 |
+
catch(e) { }
|
558 |
+
}
|
559 |
+
}
|
560 |
+
}
|
561 |
+
|
562 |
+
function getUniqueSelectionPalette() {
|
563 |
+
var unique = [];
|
564 |
+
if (opts.showPalette) {
|
565 |
+
for (var i = 0; i < selectionPalette.length; i++) {
|
566 |
+
var rgb = tinycolor(selectionPalette[i]).toRgbString();
|
567 |
+
|
568 |
+
if (!paletteLookup[rgb]) {
|
569 |
+
unique.push(selectionPalette[i]);
|
570 |
+
}
|
571 |
+
}
|
572 |
+
}
|
573 |
+
|
574 |
+
return unique.reverse().slice(0, opts.maxSelectionSize);
|
575 |
+
}
|
576 |
+
|
577 |
+
function drawPalette() {
|
578 |
+
|
579 |
+
var currentColor = get();
|
580 |
+
|
581 |
+
var html = $.map(paletteArray, function (palette, i) {
|
582 |
+
return paletteTemplate(palette, currentColor, "sp-palette-row sp-palette-row-" + i, opts);
|
583 |
+
});
|
584 |
+
|
585 |
+
updateSelectionPaletteFromStorage();
|
586 |
+
|
587 |
+
if (selectionPalette) {
|
588 |
+
html.push(paletteTemplate(getUniqueSelectionPalette(), currentColor, "sp-palette-row sp-palette-row-selection", opts));
|
589 |
+
}
|
590 |
+
|
591 |
+
paletteContainer.html(html.join(""));
|
592 |
+
}
|
593 |
+
|
594 |
+
function drawInitial() {
|
595 |
+
if (opts.showInitial) {
|
596 |
+
var initial = colorOnShow;
|
597 |
+
var current = get();
|
598 |
+
initialColorContainer.html(paletteTemplate([initial, current], current, "sp-palette-row-initial", opts));
|
599 |
+
}
|
600 |
+
}
|
601 |
+
|
602 |
+
function dragStart() {
|
603 |
+
if (dragHeight <= 0 || dragWidth <= 0 || slideHeight <= 0) {
|
604 |
+
reflow();
|
605 |
+
}
|
606 |
+
isDragging = true;
|
607 |
+
container.addClass(draggingClass);
|
608 |
+
shiftMovementDirection = null;
|
609 |
+
boundElement.trigger('dragstart.spectrum', [ get() ]);
|
610 |
+
}
|
611 |
+
|
612 |
+
function dragStop() {
|
613 |
+
isDragging = false;
|
614 |
+
container.removeClass(draggingClass);
|
615 |
+
boundElement.trigger('dragstop.spectrum', [ get() ]);
|
616 |
+
}
|
617 |
+
|
618 |
+
function setFromTextInput() {
|
619 |
+
|
620 |
+
var value = textInput.val();
|
621 |
+
|
622 |
+
if ((value === null || value === "") && allowEmpty) {
|
623 |
+
set(null);
|
624 |
+
updateOriginalInput(true);
|
625 |
+
}
|
626 |
+
else {
|
627 |
+
var tiny = tinycolor(value);
|
628 |
+
if (tiny.isValid()) {
|
629 |
+
set(tiny);
|
630 |
+
updateOriginalInput(true);
|
631 |
+
}
|
632 |
+
else {
|
633 |
+
textInput.addClass("sp-validation-error");
|
634 |
+
}
|
635 |
+
}
|
636 |
+
}
|
637 |
+
|
638 |
+
function toggle() {
|
639 |
+
if (visible) {
|
640 |
+
hide();
|
641 |
+
}
|
642 |
+
else {
|
643 |
+
show();
|
644 |
+
}
|
645 |
+
}
|
646 |
+
|
647 |
+
function show() {
|
648 |
+
var event = $.Event('beforeShow.spectrum');
|
649 |
+
|
650 |
+
if (visible) {
|
651 |
+
reflow();
|
652 |
+
return;
|
653 |
+
}
|
654 |
+
|
655 |
+
boundElement.trigger(event, [ get() ]);
|
656 |
+
|
657 |
+
if (callbacks.beforeShow(get()) === false || event.isDefaultPrevented()) {
|
658 |
+
return;
|
659 |
+
}
|
660 |
+
|
661 |
+
hideAll();
|
662 |
+
visible = true;
|
663 |
+
|
664 |
+
$(doc).bind("keydown.spectrum", onkeydown);
|
665 |
+
$(doc).bind("click.spectrum", clickout);
|
666 |
+
$(window).bind("resize.spectrum", resize);
|
667 |
+
replacer.addClass("sp-active");
|
668 |
+
container.removeClass("sp-hidden");
|
669 |
+
|
670 |
+
reflow();
|
671 |
+
updateUI();
|
672 |
+
|
673 |
+
colorOnShow = get();
|
674 |
+
|
675 |
+
drawInitial();
|
676 |
+
callbacks.show(colorOnShow);
|
677 |
+
boundElement.trigger('show.spectrum', [ colorOnShow ]);
|
678 |
+
}
|
679 |
+
|
680 |
+
function onkeydown(e) {
|
681 |
+
// Close on ESC
|
682 |
+
if (e.keyCode === 27) {
|
683 |
+
hide();
|
684 |
+
}
|
685 |
+
}
|
686 |
+
|
687 |
+
function clickout(e) {
|
688 |
+
// Return on right click.
|
689 |
+
if (e.button == 2) { return; }
|
690 |
+
|
691 |
+
// If a drag event was happening during the mouseup, don't hide
|
692 |
+
// on click.
|
693 |
+
if (isDragging) { return; }
|
694 |
+
|
695 |
+
if (clickoutFiresChange) {
|
696 |
+
updateOriginalInput(true);
|
697 |
+
}
|
698 |
+
else {
|
699 |
+
revert();
|
700 |
+
}
|
701 |
+
hide();
|
702 |
+
}
|
703 |
+
|
704 |
+
function hide() {
|
705 |
+
// Return if hiding is unnecessary
|
706 |
+
if (!visible || flat) { return; }
|
707 |
+
visible = false;
|
708 |
+
|
709 |
+
$(doc).unbind("keydown.spectrum", onkeydown);
|
710 |
+
$(doc).unbind("click.spectrum", clickout);
|
711 |
+
$(window).unbind("resize.spectrum", resize);
|
712 |
+
|
713 |
+
replacer.removeClass("sp-active");
|
714 |
+
container.addClass("sp-hidden");
|
715 |
+
|
716 |
+
callbacks.hide(get());
|
717 |
+
boundElement.trigger('hide.spectrum', [ get() ]);
|
718 |
+
}
|
719 |
+
|
720 |
+
function revert() {
|
721 |
+
set(colorOnShow, true);
|
722 |
+
}
|
723 |
+
|
724 |
+
function set(color, ignoreFormatChange) {
|
725 |
+
if (tinycolor.equals(color, get())) {
|
726 |
+
// Update UI just in case a validation error needs
|
727 |
+
// to be cleared.
|
728 |
+
updateUI();
|
729 |
+
return;
|
730 |
+
}
|
731 |
+
|
732 |
+
var newColor, newHsv;
|
733 |
+
if (!color && allowEmpty) {
|
734 |
+
isEmpty = true;
|
735 |
+
} else {
|
736 |
+
isEmpty = false;
|
737 |
+
newColor = tinycolor(color);
|
738 |
+
newHsv = newColor.toHsv();
|
739 |
+
|
740 |
+
currentHue = (newHsv.h % 360) / 360;
|
741 |
+
currentSaturation = newHsv.s;
|
742 |
+
currentValue = newHsv.v;
|
743 |
+
currentAlpha = newHsv.a;
|
744 |
+
}
|
745 |
+
updateUI();
|
746 |
+
|
747 |
+
if (newColor && newColor.isValid() && !ignoreFormatChange) {
|
748 |
+
currentPreferredFormat = opts.preferredFormat || newColor.getFormat();
|
749 |
+
}
|
750 |
+
}
|
751 |
+
|
752 |
+
function get(opts) {
|
753 |
+
opts = opts || { };
|
754 |
+
|
755 |
+
if (allowEmpty && isEmpty) {
|
756 |
+
return null;
|
757 |
+
}
|
758 |
+
|
759 |
+
return tinycolor.fromRatio({
|
760 |
+
h: currentHue,
|
761 |
+
s: currentSaturation,
|
762 |
+
v: currentValue,
|
763 |
+
a: Math.round(currentAlpha * 100) / 100
|
764 |
+
}, { format: opts.format || currentPreferredFormat });
|
765 |
+
}
|
766 |
+
|
767 |
+
function isValid() {
|
768 |
+
return !textInput.hasClass("sp-validation-error");
|
769 |
+
}
|
770 |
+
|
771 |
+
function move() {
|
772 |
+
updateUI();
|
773 |
+
|
774 |
+
callbacks.move(get());
|
775 |
+
boundElement.trigger('move.spectrum', [ get() ]);
|
776 |
+
}
|
777 |
+
|
778 |
+
function updateUI() {
|
779 |
+
|
780 |
+
textInput.removeClass("sp-validation-error");
|
781 |
+
|
782 |
+
updateHelperLocations();
|
783 |
+
|
784 |
+
// Update dragger background color (gradients take care of saturation and value).
|
785 |
+
var flatColor = tinycolor.fromRatio({ h: currentHue, s: 1, v: 1 });
|
786 |
+
dragger.css("background-color", flatColor.toHexString());
|
787 |
+
|
788 |
+
// Get a format that alpha will be included in (hex and names ignore alpha)
|
789 |
+
var format = currentPreferredFormat;
|
790 |
+
if (currentAlpha < 1 && !(currentAlpha === 0 && format === "name")) {
|
791 |
+
if (format === "hex" || format === "hex3" || format === "hex6" || format === "name") {
|
792 |
+
format = "rgb";
|
793 |
+
}
|
794 |
+
}
|
795 |
+
|
796 |
+
var realColor = get({ format: format }),
|
797 |
+
displayColor = '';
|
798 |
+
|
799 |
+
//reset background info for preview element
|
800 |
+
previewElement.removeClass("sp-clear-display");
|
801 |
+
previewElement.css('background-color', 'transparent');
|
802 |
+
|
803 |
+
if (!realColor && allowEmpty) {
|
804 |
+
// Update the replaced elements background with icon indicating no color selection
|
805 |
+
previewElement.addClass("sp-clear-display");
|
806 |
+
}
|
807 |
+
else {
|
808 |
+
var realHex = realColor.toHexString(),
|
809 |
+
realRgb = realColor.toRgbString();
|
810 |
+
|
811 |
+
// Update the replaced elements background color (with actual selected color)
|
812 |
+
if (rgbaSupport || realColor.alpha === 1) {
|
813 |
+
previewElement.css("background-color", realRgb);
|
814 |
+
}
|
815 |
+
else {
|
816 |
+
previewElement.css("background-color", "transparent");
|
817 |
+
previewElement.css("filter", realColor.toFilter());
|
818 |
+
}
|
819 |
+
|
820 |
+
if (opts.showAlpha) {
|
821 |
+
var rgb = realColor.toRgb();
|
822 |
+
rgb.a = 0;
|
823 |
+
var realAlpha = tinycolor(rgb).toRgbString();
|
824 |
+
var gradient = "linear-gradient(left, " + realAlpha + ", " + realHex + ")";
|
825 |
+
|
826 |
+
if (IE) {
|
827 |
+
alphaSliderInner.css("filter", tinycolor(realAlpha).toFilter({ gradientType: 1 }, realHex));
|
828 |
+
}
|
829 |
+
else {
|
830 |
+
alphaSliderInner.css("background", "-webkit-" + gradient);
|
831 |
+
alphaSliderInner.css("background", "-moz-" + gradient);
|
832 |
+
alphaSliderInner.css("background", "-ms-" + gradient);
|
833 |
+
// Use current syntax gradient on unprefixed property.
|
834 |
+
alphaSliderInner.css("background",
|
835 |
+
"linear-gradient(to right, " + realAlpha + ", " + realHex + ")");
|
836 |
+
}
|
837 |
+
}
|
838 |
+
|
839 |
+
displayColor = realColor.toString(format);
|
840 |
+
}
|
841 |
+
|
842 |
+
// Update the text entry input as it changes happen
|
843 |
+
if (opts.showInput) {
|
844 |
+
textInput.val(displayColor);
|
845 |
+
}
|
846 |
+
|
847 |
+
if (opts.showPalette) {
|
848 |
+
drawPalette();
|
849 |
+
}
|
850 |
+
|
851 |
+
drawInitial();
|
852 |
+
}
|
853 |
+
|
854 |
+
function updateHelperLocations() {
|
855 |
+
var s = currentSaturation;
|
856 |
+
var v = currentValue;
|
857 |
+
|
858 |
+
if(allowEmpty && isEmpty) {
|
859 |
+
//if selected color is empty, hide the helpers
|
860 |
+
alphaSlideHelper.hide();
|
861 |
+
slideHelper.hide();
|
862 |
+
dragHelper.hide();
|
863 |
+
}
|
864 |
+
else {
|
865 |
+
//make sure helpers are visible
|
866 |
+
alphaSlideHelper.show();
|
867 |
+
slideHelper.show();
|
868 |
+
dragHelper.show();
|
869 |
+
|
870 |
+
// Where to show the little circle in that displays your current selected color
|
871 |
+
var dragX = s * dragWidth;
|
872 |
+
var dragY = dragHeight - (v * dragHeight);
|
873 |
+
dragX = Math.max(
|
874 |
+
-dragHelperHeight,
|
875 |
+
Math.min(dragWidth - dragHelperHeight, dragX - dragHelperHeight)
|
876 |
+
);
|
877 |
+
dragY = Math.max(
|
878 |
+
-dragHelperHeight,
|
879 |
+
Math.min(dragHeight - dragHelperHeight, dragY - dragHelperHeight)
|
880 |
+
);
|
881 |
+
dragHelper.css({
|
882 |
+
"top": dragY + "px",
|
883 |
+
"left": dragX + "px"
|
884 |
+
});
|
885 |
+
|
886 |
+
var alphaX = currentAlpha * alphaWidth;
|
887 |
+
alphaSlideHelper.css({
|
888 |
+
"left": (alphaX - (alphaSlideHelperWidth / 2)) + "px"
|
889 |
+
});
|
890 |
+
|
891 |
+
// Where to show the bar that displays your current selected hue
|
892 |
+
var slideY = (currentHue) * slideHeight;
|
893 |
+
slideHelper.css({
|
894 |
+
"top": (slideY - slideHelperHeight) + "px"
|
895 |
+
});
|
896 |
+
}
|
897 |
+
}
|
898 |
+
|
899 |
+
function updateOriginalInput(fireCallback) {
|
900 |
+
var color = get(),
|
901 |
+
displayColor = '',
|
902 |
+
hasChanged = !tinycolor.equals(color, colorOnShow);
|
903 |
+
|
904 |
+
if (color) {
|
905 |
+
displayColor = color.toString(currentPreferredFormat);
|
906 |
+
// Update the selection palette with the current color
|
907 |
+
addColorToSelectionPalette(color);
|
908 |
+
}
|
909 |
+
|
910 |
+
if (isInput) {
|
911 |
+
boundElement.val(displayColor);
|
912 |
+
}
|
913 |
+
|
914 |
+
if (fireCallback && hasChanged) {
|
915 |
+
callbacks.change(color);
|
916 |
+
boundElement.trigger('change', [ color ]);
|
917 |
+
}
|
918 |
+
}
|
919 |
+
|
920 |
+
function reflow() {
|
921 |
+
if (!visible) {
|
922 |
+
return; // Calculations would be useless and wouldn't be reliable anyways
|
923 |
+
}
|
924 |
+
dragWidth = dragger.width();
|
925 |
+
dragHeight = dragger.height();
|
926 |
+
dragHelperHeight = dragHelper.height();
|
927 |
+
slideWidth = slider.width();
|
928 |
+
slideHeight = slider.height();
|
929 |
+
slideHelperHeight = slideHelper.height();
|
930 |
+
alphaWidth = alphaSlider.width();
|
931 |
+
alphaSlideHelperWidth = alphaSlideHelper.width();
|
932 |
+
|
933 |
+
if (!flat) {
|
934 |
+
container.css("position", "absolute");
|
935 |
+
if (opts.offset) {
|
936 |
+
container.offset(opts.offset);
|
937 |
+
} else {
|
938 |
+
container.offset(getOffset(container, offsetElement));
|
939 |
+
}
|
940 |
+
}
|
941 |
+
|
942 |
+
updateHelperLocations();
|
943 |
+
|
944 |
+
if (opts.showPalette) {
|
945 |
+
drawPalette();
|
946 |
+
}
|
947 |
+
|
948 |
+
boundElement.trigger('reflow.spectrum');
|
949 |
+
}
|
950 |
+
|
951 |
+
function destroy() {
|
952 |
+
boundElement.show();
|
953 |
+
offsetElement.unbind("click.spectrum touchstart.spectrum");
|
954 |
+
container.remove();
|
955 |
+
replacer.remove();
|
956 |
+
spectrums[spect.id] = null;
|
957 |
+
}
|
958 |
+
|
959 |
+
function option(optionName, optionValue) {
|
960 |
+
if (optionName === undefined) {
|
961 |
+
return $.extend({}, opts);
|
962 |
+
}
|
963 |
+
if (optionValue === undefined) {
|
964 |
+
return opts[optionName];
|
965 |
+
}
|
966 |
+
|
967 |
+
opts[optionName] = optionValue;
|
968 |
+
|
969 |
+
if (optionName === "preferredFormat") {
|
970 |
+
currentPreferredFormat = opts.preferredFormat;
|
971 |
+
}
|
972 |
+
applyOptions();
|
973 |
+
}
|
974 |
+
|
975 |
+
function enable() {
|
976 |
+
disabled = false;
|
977 |
+
boundElement.attr("disabled", false);
|
978 |
+
offsetElement.removeClass("sp-disabled");
|
979 |
+
}
|
980 |
+
|
981 |
+
function disable() {
|
982 |
+
hide();
|
983 |
+
disabled = true;
|
984 |
+
boundElement.attr("disabled", true);
|
985 |
+
offsetElement.addClass("sp-disabled");
|
986 |
+
}
|
987 |
+
|
988 |
+
function setOffset(coord) {
|
989 |
+
opts.offset = coord;
|
990 |
+
reflow();
|
991 |
+
}
|
992 |
+
|
993 |
+
initialize();
|
994 |
+
|
995 |
+
var spect = {
|
996 |
+
show: show,
|
997 |
+
hide: hide,
|
998 |
+
toggle: toggle,
|
999 |
+
reflow: reflow,
|
1000 |
+
option: option,
|
1001 |
+
enable: enable,
|
1002 |
+
disable: disable,
|
1003 |
+
offset: setOffset,
|
1004 |
+
set: function (c) {
|
1005 |
+
set(c);
|
1006 |
+
updateOriginalInput();
|
1007 |
+
},
|
1008 |
+
get: get,
|
1009 |
+
destroy: destroy,
|
1010 |
+
container: container
|
1011 |
+
};
|
1012 |
+
|
1013 |
+
spect.id = spectrums.push(spect) - 1;
|
1014 |
+
|
1015 |
+
return spect;
|
1016 |
+
}
|
1017 |
+
|
1018 |
+
/**
|
1019 |
+
* checkOffset - get the offset below/above and left/right element depending on screen position
|
1020 |
+
* Thanks https://github.com/jquery/jquery-ui/blob/master/ui/jquery.ui.datepicker.js
|
1021 |
+
*/
|
1022 |
+
function getOffset(picker, input) {
|
1023 |
+
var extraY = 0;
|
1024 |
+
var dpWidth = picker.outerWidth();
|
1025 |
+
var dpHeight = picker.outerHeight();
|
1026 |
+
var inputHeight = input.outerHeight();
|
1027 |
+
var doc = picker[0].ownerDocument;
|
1028 |
+
var docElem = doc.documentElement;
|
1029 |
+
var viewWidth = docElem.clientWidth + $(doc).scrollLeft();
|
1030 |
+
var viewHeight = docElem.clientHeight + $(doc).scrollTop();
|
1031 |
+
var offset = input.offset();
|
1032 |
+
offset.top += inputHeight;
|
1033 |
+
|
1034 |
+
offset.left -=
|
1035 |
+
Math.min(offset.left, (offset.left + dpWidth > viewWidth && viewWidth > dpWidth) ?
|
1036 |
+
Math.abs(offset.left + dpWidth - viewWidth) : 0);
|
1037 |
+
|
1038 |
+
offset.top -=
|
1039 |
+
Math.min(offset.top, ((offset.top + dpHeight > viewHeight && viewHeight > dpHeight) ?
|
1040 |
+
Math.abs(dpHeight + inputHeight - extraY) : extraY));
|
1041 |
+
|
1042 |
+
return offset;
|
1043 |
+
}
|
1044 |
+
|
1045 |
+
/**
|
1046 |
+
* noop - do nothing
|
1047 |
+
*/
|
1048 |
+
function noop() {
|
1049 |
+
|
1050 |
+
}
|
1051 |
+
|
1052 |
+
/**
|
1053 |
+
* stopPropagation - makes the code only doing this a little easier to read in line
|
1054 |
+
*/
|
1055 |
+
function stopPropagation(e) {
|
1056 |
+
e.stopPropagation();
|
1057 |
+
}
|
1058 |
+
|
1059 |
+
/**
|
1060 |
+
* Create a function bound to a given object
|
1061 |
+
* Thanks to underscore.js
|
1062 |
+
*/
|
1063 |
+
function bind(func, obj) {
|
1064 |
+
var slice = Array.prototype.slice;
|
1065 |
+
var args = slice.call(arguments, 2);
|
1066 |
+
return function () {
|
1067 |
+
return func.apply(obj, args.concat(slice.call(arguments)));
|
1068 |
+
};
|
1069 |
+
}
|
1070 |
+
|
1071 |
+
/**
|
1072 |
+
* Lightweight drag helper. Handles containment within the element, so that
|
1073 |
+
* when dragging, the x is within [0,element.width] and y is within [0,element.height]
|
1074 |
+
*/
|
1075 |
+
function draggable(element, onmove, onstart, onstop) {
|
1076 |
+
onmove = onmove || function () { };
|
1077 |
+
onstart = onstart || function () { };
|
1078 |
+
onstop = onstop || function () { };
|
1079 |
+
var doc = document;
|
1080 |
+
var dragging = false;
|
1081 |
+
var offset = {};
|
1082 |
+
var maxHeight = 0;
|
1083 |
+
var maxWidth = 0;
|
1084 |
+
var hasTouch = ('ontouchstart' in window);
|
1085 |
+
|
1086 |
+
var duringDragEvents = {};
|
1087 |
+
duringDragEvents["selectstart"] = prevent;
|
1088 |
+
duringDragEvents["dragstart"] = prevent;
|
1089 |
+
duringDragEvents["touchmove mousemove"] = move;
|
1090 |
+
duringDragEvents["touchend mouseup"] = stop;
|
1091 |
+
|
1092 |
+
function prevent(e) {
|
1093 |
+
if (e.stopPropagation) {
|
1094 |
+
e.stopPropagation();
|
1095 |
+
}
|
1096 |
+
if (e.preventDefault) {
|
1097 |
+
e.preventDefault();
|
1098 |
+
}
|
1099 |
+
e.returnValue = false;
|
1100 |
+
}
|
1101 |
+
|
1102 |
+
function move(e) {
|
1103 |
+
if (dragging) {
|
1104 |
+
// Mouseup happened outside of window
|
1105 |
+
if (IE && doc.documentMode < 9 && !e.button) {
|
1106 |
+
return stop();
|
1107 |
+
}
|
1108 |
+
|
1109 |
+
var t0 = e.originalEvent && e.originalEvent.touches && e.originalEvent.touches[0];
|
1110 |
+
var pageX = t0 && t0.pageX || e.pageX;
|
1111 |
+
var pageY = t0 && t0.pageY || e.pageY;
|
1112 |
+
|
1113 |
+
var dragX = Math.max(0, Math.min(pageX - offset.left, maxWidth));
|
1114 |
+
var dragY = Math.max(0, Math.min(pageY - offset.top, maxHeight));
|
1115 |
+
|
1116 |
+
if (hasTouch) {
|
1117 |
+
// Stop scrolling in iOS
|
1118 |
+
prevent(e);
|
1119 |
+
}
|
1120 |
+
|
1121 |
+
onmove.apply(element, [dragX, dragY, e]);
|
1122 |
+
}
|
1123 |
+
}
|
1124 |
+
|
1125 |
+
function start(e) {
|
1126 |
+
var rightclick = (e.which) ? (e.which == 3) : (e.button == 2);
|
1127 |
+
|
1128 |
+
if (!rightclick && !dragging) {
|
1129 |
+
if (onstart.apply(element, arguments) !== false) {
|
1130 |
+
dragging = true;
|
1131 |
+
maxHeight = $(element).height();
|
1132 |
+
maxWidth = $(element).width();
|
1133 |
+
offset = $(element).offset();
|
1134 |
+
|
1135 |
+
$(doc).bind(duringDragEvents);
|
1136 |
+
$(doc.body).addClass("sp-dragging");
|
1137 |
+
|
1138 |
+
move(e);
|
1139 |
+
|
1140 |
+
prevent(e);
|
1141 |
+
}
|
1142 |
+
}
|
1143 |
+
}
|
1144 |
+
|
1145 |
+
function stop() {
|
1146 |
+
if (dragging) {
|
1147 |
+
$(doc).unbind(duringDragEvents);
|
1148 |
+
$(doc.body).removeClass("sp-dragging");
|
1149 |
+
|
1150 |
+
// Wait a tick before notifying observers to allow the click event
|
1151 |
+
// to fire in Chrome.
|
1152 |
+
setTimeout(function() {
|
1153 |
+
onstop.apply(element, arguments);
|
1154 |
+
}, 0);
|
1155 |
+
}
|
1156 |
+
dragging = false;
|
1157 |
+
}
|
1158 |
+
|
1159 |
+
$(element).bind("touchstart mousedown", start);
|
1160 |
+
}
|
1161 |
+
|
1162 |
+
function throttle(func, wait, debounce) {
|
1163 |
+
var timeout;
|
1164 |
+
return function () {
|
1165 |
+
var context = this, args = arguments;
|
1166 |
+
var throttler = function () {
|
1167 |
+
timeout = null;
|
1168 |
+
func.apply(context, args);
|
1169 |
+
};
|
1170 |
+
if (debounce) clearTimeout(timeout);
|
1171 |
+
if (debounce || !timeout) timeout = setTimeout(throttler, wait);
|
1172 |
+
};
|
1173 |
+
}
|
1174 |
+
|
1175 |
+
function inputTypeColorSupport() {
|
1176 |
+
return $.fn.spectrum.inputTypeColorSupport();
|
1177 |
+
}
|
1178 |
+
|
1179 |
+
/**
|
1180 |
+
* Define a jQuery plugin
|
1181 |
+
*/
|
1182 |
+
var dataID = "spectrum.id";
|
1183 |
+
$.fn.spectrum = function (opts, extra) {
|
1184 |
+
|
1185 |
+
if (typeof opts == "string") {
|
1186 |
+
|
1187 |
+
var returnValue = this;
|
1188 |
+
var args = Array.prototype.slice.call( arguments, 1 );
|
1189 |
+
|
1190 |
+
this.each(function () {
|
1191 |
+
var spect = spectrums[$(this).data(dataID)];
|
1192 |
+
if (spect) {
|
1193 |
+
var method = spect[opts];
|
1194 |
+
if (!method) {
|
1195 |
+
throw new Error( "Spectrum: no such method: '" + opts + "'" );
|
1196 |
+
}
|
1197 |
+
|
1198 |
+
if (opts == "get") {
|
1199 |
+
returnValue = spect.get();
|
1200 |
+
}
|
1201 |
+
else if (opts == "container") {
|
1202 |
+
returnValue = spect.container;
|
1203 |
+
}
|
1204 |
+
else if (opts == "option") {
|
1205 |
+
returnValue = spect.option.apply(spect, args);
|
1206 |
+
}
|
1207 |
+
else if (opts == "destroy") {
|
1208 |
+
spect.destroy();
|
1209 |
+
$(this).removeData(dataID);
|
1210 |
+
}
|
1211 |
+
else {
|
1212 |
+
method.apply(spect, args);
|
1213 |
+
}
|
1214 |
+
}
|
1215 |
+
});
|
1216 |
+
|
1217 |
+
return returnValue;
|
1218 |
+
}
|
1219 |
+
|
1220 |
+
// Initializing a new instance of spectrum
|
1221 |
+
return this.spectrum("destroy").each(function () {
|
1222 |
+
var options = $.extend({}, opts, $(this).data());
|
1223 |
+
var spect = spectrum(this, options);
|
1224 |
+
$(this).data(dataID, spect.id);
|
1225 |
+
});
|
1226 |
+
};
|
1227 |
+
|
1228 |
+
$.fn.spectrum.load = true;
|
1229 |
+
$.fn.spectrum.loadOpts = {};
|
1230 |
+
$.fn.spectrum.draggable = draggable;
|
1231 |
+
$.fn.spectrum.defaults = defaultOpts;
|
1232 |
+
$.fn.spectrum.inputTypeColorSupport = function inputTypeColorSupport() {
|
1233 |
+
if (typeof inputTypeColorSupport._cachedResult === "undefined") {
|
1234 |
+
var colorInput = $("<input type='color'/>")[0]; // if color element is supported, value will default to not null
|
1235 |
+
inputTypeColorSupport._cachedResult = colorInput.type === "color" && colorInput.value !== "";
|
1236 |
+
}
|
1237 |
+
return inputTypeColorSupport._cachedResult;
|
1238 |
+
};
|
1239 |
+
|
1240 |
+
$.spectrum = { };
|
1241 |
+
$.spectrum.localization = { };
|
1242 |
+
$.spectrum.palettes = { };
|
1243 |
+
|
1244 |
+
$.fn.spectrum.processNativeColorInputs = function () {
|
1245 |
+
var colorInputs = $("input[type=color]");
|
1246 |
+
if (colorInputs.length && !inputTypeColorSupport()) {
|
1247 |
+
colorInputs.spectrum({
|
1248 |
+
preferredFormat: "hex6"
|
1249 |
+
});
|
1250 |
+
}
|
1251 |
+
};
|
1252 |
+
|
1253 |
+
// TinyColor v1.1.2
|
1254 |
+
// https://github.com/bgrins/TinyColor
|
1255 |
+
// Brian Grinstead, MIT License
|
1256 |
+
|
1257 |
+
(function() {
|
1258 |
+
|
1259 |
+
var trimLeft = /^[\s,#]+/,
|
1260 |
+
trimRight = /\s+$/,
|
1261 |
+
tinyCounter = 0,
|
1262 |
+
math = Math,
|
1263 |
+
mathRound = math.round,
|
1264 |
+
mathMin = math.min,
|
1265 |
+
mathMax = math.max,
|
1266 |
+
mathRandom = math.random;
|
1267 |
+
|
1268 |
+
var tinycolor = function(color, opts) {
|
1269 |
+
|
1270 |
+
color = (color) ? color : '';
|
1271 |
+
opts = opts || { };
|
1272 |
+
|
1273 |
+
// If input is already a tinycolor, return itself
|
1274 |
+
if (color instanceof tinycolor) {
|
1275 |
+
return color;
|
1276 |
+
}
|
1277 |
+
// If we are called as a function, call using new instead
|
1278 |
+
if (!(this instanceof tinycolor)) {
|
1279 |
+
return new tinycolor(color, opts);
|
1280 |
+
}
|
1281 |
+
|
1282 |
+
var rgb = inputToRGB(color);
|
1283 |
+
this._originalInput = color,
|
1284 |
+
this._r = rgb.r,
|
1285 |
+
this._g = rgb.g,
|
1286 |
+
this._b = rgb.b,
|
1287 |
+
this._a = rgb.a,
|
1288 |
+
this._roundA = mathRound(100*this._a) / 100,
|
1289 |
+
this._format = opts.format || rgb.format;
|
1290 |
+
this._gradientType = opts.gradientType;
|
1291 |
+
|
1292 |
+
// Don't let the range of [0,255] come back in [0,1].
|
1293 |
+
// Potentially lose a little bit of precision here, but will fix issues where
|
1294 |
+
// .5 gets interpreted as half of the total, instead of half of 1
|
1295 |
+
// If it was supposed to be 128, this was already taken care of by `inputToRgb`
|
1296 |
+
if (this._r < 1) { this._r = mathRound(this._r); }
|
1297 |
+
if (this._g < 1) { this._g = mathRound(this._g); }
|
1298 |
+
if (this._b < 1) { this._b = mathRound(this._b); }
|
1299 |
+
|
1300 |
+
this._ok = rgb.ok;
|
1301 |
+
this._tc_id = tinyCounter++;
|
1302 |
+
};
|
1303 |
+
|
1304 |
+
tinycolor.prototype = {
|
1305 |
+
isDark: function() {
|
1306 |
+
return this.getBrightness() < 128;
|
1307 |
+
},
|
1308 |
+
isLight: function() {
|
1309 |
+
return !this.isDark();
|
1310 |
+
},
|
1311 |
+
isValid: function() {
|
1312 |
+
return this._ok;
|
1313 |
+
},
|
1314 |
+
getOriginalInput: function() {
|
1315 |
+
return this._originalInput;
|
1316 |
+
},
|
1317 |
+
getFormat: function() {
|
1318 |
+
return this._format;
|
1319 |
+
},
|
1320 |
+
getAlpha: function() {
|
1321 |
+
return this._a;
|
1322 |
+
},
|
1323 |
+
getBrightness: function() {
|
1324 |
+
var rgb = this.toRgb();
|
1325 |
+
return (rgb.r * 299 + rgb.g * 587 + rgb.b * 114) / 1000;
|
1326 |
+
},
|
1327 |
+
setAlpha: function(value) {
|
1328 |
+
this._a = boundAlpha(value);
|
1329 |
+
this._roundA = mathRound(100*this._a) / 100;
|
1330 |
+
return this;
|
1331 |
+
},
|
1332 |
+
toHsv: function() {
|
1333 |
+
var hsv = rgbToHsv(this._r, this._g, this._b);
|
1334 |
+
return { h: hsv.h * 360, s: hsv.s, v: hsv.v, a: this._a };
|
1335 |
+
},
|
1336 |
+
toHsvString: function() {
|
1337 |
+
var hsv = rgbToHsv(this._r, this._g, this._b);
|
1338 |
+
var h = mathRound(hsv.h * 360), s = mathRound(hsv.s * 100), v = mathRound(hsv.v * 100);
|
1339 |
+
return (this._a == 1) ?
|
1340 |
+
"hsv(" + h + ", " + s + "%, " + v + "%)" :
|
1341 |
+
"hsva(" + h + ", " + s + "%, " + v + "%, "+ this._roundA + ")";
|
1342 |
+
},
|
1343 |
+
toHsl: function() {
|
1344 |
+
var hsl = rgbToHsl(this._r, this._g, this._b);
|
1345 |
+
return { h: hsl.h * 360, s: hsl.s, l: hsl.l, a: this._a };
|
1346 |
+
},
|
1347 |
+
toHslString: function() {
|
1348 |
+
var hsl = rgbToHsl(this._r, this._g, this._b);
|
1349 |
+
var h = mathRound(hsl.h * 360), s = mathRound(hsl.s * 100), l = mathRound(hsl.l * 100);
|
1350 |
+
return (this._a == 1) ?
|
1351 |
+
"hsl(" + h + ", " + s + "%, " + l + "%)" :
|
1352 |
+
"hsla(" + h + ", " + s + "%, " + l + "%, "+ this._roundA + ")";
|
1353 |
+
},
|
1354 |
+
toHex: function(allow3Char) {
|
1355 |
+
return rgbToHex(this._r, this._g, this._b, allow3Char);
|
1356 |
+
},
|
1357 |
+
toHexString: function(allow3Char) {
|
1358 |
+
return '#' + this.toHex(allow3Char);
|
1359 |
+
},
|
1360 |
+
toHex8: function() {
|
1361 |
+
return rgbaToHex(this._r, this._g, this._b, this._a);
|
1362 |
+
},
|
1363 |
+
toHex8String: function() {
|
1364 |
+
return '#' + this.toHex8();
|
1365 |
+
},
|
1366 |
+
toRgb: function() {
|
1367 |
+
return { r: mathRound(this._r), g: mathRound(this._g), b: mathRound(this._b), a: this._a };
|
1368 |
+
},
|
1369 |
+
toRgbString: function() {
|
1370 |
+
return (this._a == 1) ?
|
1371 |
+
"rgb(" + mathRound(this._r) + ", " + mathRound(this._g) + ", " + mathRound(this._b) + ")" :
|
1372 |
+
"rgba(" + mathRound(this._r) + ", " + mathRound(this._g) + ", " + mathRound(this._b) + ", " + this._roundA + ")";
|
1373 |
+
},
|
1374 |
+
toPercentageRgb: function() {
|
1375 |
+
return { r: mathRound(bound01(this._r, 255) * 100) + "%", g: mathRound(bound01(this._g, 255) * 100) + "%", b: mathRound(bound01(this._b, 255) * 100) + "%", a: this._a };
|
1376 |
+
},
|
1377 |
+
toPercentageRgbString: function() {
|
1378 |
+
return (this._a == 1) ?
|
1379 |
+
"rgb(" + mathRound(bound01(this._r, 255) * 100) + "%, " + mathRound(bound01(this._g, 255) * 100) + "%, " + mathRound(bound01(this._b, 255) * 100) + "%)" :
|
1380 |
+
"rgba(" + mathRound(bound01(this._r, 255) * 100) + "%, " + mathRound(bound01(this._g, 255) * 100) + "%, " + mathRound(bound01(this._b, 255) * 100) + "%, " + this._roundA + ")";
|
1381 |
+
},
|
1382 |
+
toName: function() {
|
1383 |
+
if (this._a === 0) {
|
1384 |
+
return "transparent";
|
1385 |
+
}
|
1386 |
+
|
1387 |
+
if (this._a < 1) {
|
1388 |
+
return false;
|
1389 |
+
}
|
1390 |
+
|
1391 |
+
return hexNames[rgbToHex(this._r, this._g, this._b, true)] || false;
|
1392 |
+
},
|
1393 |
+
toFilter: function(secondColor) {
|
1394 |
+
var hex8String = '#' + rgbaToHex(this._r, this._g, this._b, this._a);
|
1395 |
+
var secondHex8String = hex8String;
|
1396 |
+
var gradientType = this._gradientType ? "GradientType = 1, " : "";
|
1397 |
+
|
1398 |
+
if (secondColor) {
|
1399 |
+
var s = tinycolor(secondColor);
|
1400 |
+
secondHex8String = s.toHex8String();
|
1401 |
+
}
|
1402 |
+
|
1403 |
+
return "progid:DXImageTransform.Microsoft.gradient("+gradientType+"startColorstr="+hex8String+",endColorstr="+secondHex8String+")";
|
1404 |
+
},
|
1405 |
+
toString: function(format) {
|
1406 |
+
var formatSet = !!format;
|
1407 |
+
format = format || this._format;
|
1408 |
+
|
1409 |
+
var formattedString = false;
|
1410 |
+
var hasAlpha = this._a < 1 && this._a >= 0;
|
1411 |
+
var needsAlphaFormat = !formatSet && hasAlpha && (format === "hex" || format === "hex6" || format === "hex3" || format === "name");
|
1412 |
+
|
1413 |
+
if (needsAlphaFormat) {
|
1414 |
+
// Special case for "transparent", all other non-alpha formats
|
1415 |
+
// will return rgba when there is transparency.
|
1416 |
+
if (format === "name" && this._a === 0) {
|
1417 |
+
return this.toName();
|
1418 |
+
}
|
1419 |
+
return this.toRgbString();
|
1420 |
+
}
|
1421 |
+
if (format === "rgb") {
|
1422 |
+
formattedString = this.toRgbString();
|
1423 |
+
}
|
1424 |
+
if (format === "prgb") {
|
1425 |
+
formattedString = this.toPercentageRgbString();
|
1426 |
+
}
|
1427 |
+
if (format === "hex" || format === "hex6") {
|
1428 |
+
formattedString = this.toHexString();
|
1429 |
+
}
|
1430 |
+
if (format === "hex3") {
|
1431 |
+
formattedString = this.toHexString(true);
|
1432 |
+
}
|
1433 |
+
if (format === "hex8") {
|
1434 |
+
formattedString = this.toHex8String();
|
1435 |
+
}
|
1436 |
+
if (format === "name") {
|
1437 |
+
formattedString = this.toName();
|
1438 |
+
}
|
1439 |
+
if (format === "hsl") {
|
1440 |
+
formattedString = this.toHslString();
|
1441 |
+
}
|
1442 |
+
if (format === "hsv") {
|
1443 |
+
formattedString = this.toHsvString();
|
1444 |
+
}
|
1445 |
+
|
1446 |
+
return formattedString || this.toHexString();
|
1447 |
+
},
|
1448 |
+
|
1449 |
+
_applyModification: function(fn, args) {
|
1450 |
+
var color = fn.apply(null, [this].concat([].slice.call(args)));
|
1451 |
+
this._r = color._r;
|
1452 |
+
this._g = color._g;
|
1453 |
+
this._b = color._b;
|
1454 |
+
this.setAlpha(color._a);
|
1455 |
+
return this;
|
1456 |
+
},
|
1457 |
+
lighten: function() {
|
1458 |
+
return this._applyModification(lighten, arguments);
|
1459 |
+
},
|
1460 |
+
brighten: function() {
|
1461 |
+
return this._applyModification(brighten, arguments);
|
1462 |
+
},
|
1463 |
+
darken: function() {
|
1464 |
+
return this._applyModification(darken, arguments);
|
1465 |
+
},
|
1466 |
+
desaturate: function() {
|
1467 |
+
return this._applyModification(desaturate, arguments);
|
1468 |
+
},
|
1469 |
+
saturate: function() {
|
1470 |
+
return this._applyModification(saturate, arguments);
|
1471 |
+
},
|
1472 |
+
greyscale: function() {
|
1473 |
+
return this._applyModification(greyscale, arguments);
|
1474 |
+
},
|
1475 |
+
spin: function() {
|
1476 |
+
return this._applyModification(spin, arguments);
|
1477 |
+
},
|
1478 |
+
|
1479 |
+
_applyCombination: function(fn, args) {
|
1480 |
+
return fn.apply(null, [this].concat([].slice.call(args)));
|
1481 |
+
},
|
1482 |
+
analogous: function() {
|
1483 |
+
return this._applyCombination(analogous, arguments);
|
1484 |
+
},
|
1485 |
+
complement: function() {
|
1486 |
+
return this._applyCombination(complement, arguments);
|
1487 |
+
},
|
1488 |
+
monochromatic: function() {
|
1489 |
+
return this._applyCombination(monochromatic, arguments);
|
1490 |
+
},
|
1491 |
+
splitcomplement: function() {
|
1492 |
+
return this._applyCombination(splitcomplement, arguments);
|
1493 |
+
},
|
1494 |
+
triad: function() {
|
1495 |
+
return this._applyCombination(triad, arguments);
|
1496 |
+
},
|
1497 |
+
tetrad: function() {
|
1498 |
+
return this._applyCombination(tetrad, arguments);
|
1499 |
+
}
|
1500 |
+
};
|
1501 |
+
|
1502 |
+
// If input is an object, force 1 into "1.0" to handle ratios properly
|
1503 |
+
// String input requires "1.0" as input, so 1 will be treated as 1
|
1504 |
+
tinycolor.fromRatio = function(color, opts) {
|
1505 |
+
if (typeof color == "object") {
|
1506 |
+
var newColor = {};
|
1507 |
+
for (var i in color) {
|
1508 |
+
if (color.hasOwnProperty(i)) {
|
1509 |
+
if (i === "a") {
|
1510 |
+
newColor[i] = color[i];
|
1511 |
+
}
|
1512 |
+
else {
|
1513 |
+
newColor[i] = convertToPercentage(color[i]);
|
1514 |
+
}
|
1515 |
+
}
|
1516 |
+
}
|
1517 |
+
color = newColor;
|
1518 |
+
}
|
1519 |
+
|
1520 |
+
return tinycolor(color, opts);
|
1521 |
+
};
|
1522 |
+
|
1523 |
+
// Given a string or object, convert that input to RGB
|
1524 |
+
// Possible string inputs:
|
1525 |
+
//
|
1526 |
+
// "red"
|
1527 |
+
// "#f00" or "f00"
|
1528 |
+
// "#ff0000" or "ff0000"
|
1529 |
+
// "#ff000000" or "ff000000"
|
1530 |
+
// "rgb 255 0 0" or "rgb (255, 0, 0)"
|
1531 |
+
// "rgb 1.0 0 0" or "rgb (1, 0, 0)"
|
1532 |
+
// "rgba (255, 0, 0, 1)" or "rgba 255, 0, 0, 1"
|
1533 |
+
// "rgba (1.0, 0, 0, 1)" or "rgba 1.0, 0, 0, 1"
|
1534 |
+
// "hsl(0, 100%, 50%)" or "hsl 0 100% 50%"
|
1535 |
+
// "hsla(0, 100%, 50%, 1)" or "hsla 0 100% 50%, 1"
|
1536 |
+
// "hsv(0, 100%, 100%)" or "hsv 0 100% 100%"
|
1537 |
+
//
|
1538 |
+
function inputToRGB(color) {
|
1539 |
+
|
1540 |
+
var rgb = { r: 0, g: 0, b: 0 };
|
1541 |
+
var a = 1;
|
1542 |
+
var ok = false;
|
1543 |
+
var format = false;
|
1544 |
+
|
1545 |
+
if (typeof color == "string") {
|
1546 |
+
color = stringInputToObject(color);
|
1547 |
+
}
|
1548 |
+
|
1549 |
+
if (typeof color == "object") {
|
1550 |
+
if (color.hasOwnProperty("r") && color.hasOwnProperty("g") && color.hasOwnProperty("b")) {
|
1551 |
+
rgb = rgbToRgb(color.r, color.g, color.b);
|
1552 |
+
ok = true;
|
1553 |
+
format = String(color.r).substr(-1) === "%" ? "prgb" : "rgb";
|
1554 |
+
}
|
1555 |
+
else if (color.hasOwnProperty("h") && color.hasOwnProperty("s") && color.hasOwnProperty("v")) {
|
1556 |
+
color.s = convertToPercentage(color.s);
|
1557 |
+
color.v = convertToPercentage(color.v);
|
1558 |
+
rgb = hsvToRgb(color.h, color.s, color.v);
|
1559 |
+
ok = true;
|
1560 |
+
format = "hsv";
|
1561 |
+
}
|
1562 |
+
else if (color.hasOwnProperty("h") && color.hasOwnProperty("s") && color.hasOwnProperty("l")) {
|
1563 |
+
color.s = convertToPercentage(color.s);
|
1564 |
+
color.l = convertToPercentage(color.l);
|
1565 |
+
rgb = hslToRgb(color.h, color.s, color.l);
|
1566 |
+
ok = true;
|
1567 |
+
format = "hsl";
|
1568 |
+
}
|
1569 |
+
|
1570 |
+
if (color.hasOwnProperty("a")) {
|
1571 |
+
a = color.a;
|
1572 |
+
}
|
1573 |
+
}
|
1574 |
+
|
1575 |
+
a = boundAlpha(a);
|
1576 |
+
|
1577 |
+
return {
|
1578 |
+
ok: ok,
|
1579 |
+
format: color.format || format,
|
1580 |
+
r: mathMin(255, mathMax(rgb.r, 0)),
|
1581 |
+
g: mathMin(255, mathMax(rgb.g, 0)),
|
1582 |
+
b: mathMin(255, mathMax(rgb.b, 0)),
|
1583 |
+
a: a
|
1584 |
+
};
|
1585 |
+
}
|
1586 |
+
|
1587 |
+
|
1588 |
+
// Conversion Functions
|
1589 |
+
// --------------------
|
1590 |
+
|
1591 |
+
// `rgbToHsl`, `rgbToHsv`, `hslToRgb`, `hsvToRgb` modified from:
|
1592 |
+
// <http://mjijackson.com/2008/02/rgb-to-hsl-and-rgb-to-hsv-color-model-conversion-algorithms-in-javascript>
|
1593 |
+
|
1594 |
+
// `rgbToRgb`
|
1595 |
+
// Handle bounds / percentage checking to conform to CSS color spec
|
1596 |
+
// <http://www.w3.org/TR/css3-color/>
|
1597 |
+
// *Assumes:* r, g, b in [0, 255] or [0, 1]
|
1598 |
+
// *Returns:* { r, g, b } in [0, 255]
|
1599 |
+
function rgbToRgb(r, g, b){
|
1600 |
+
return {
|
1601 |
+
r: bound01(r, 255) * 255,
|
1602 |
+
g: bound01(g, 255) * 255,
|
1603 |
+
b: bound01(b, 255) * 255
|
1604 |
+
};
|
1605 |
+
}
|
1606 |
+
|
1607 |
+
// `rgbToHsl`
|
1608 |
+
// Converts an RGB color value to HSL.
|
1609 |
+
// *Assumes:* r, g, and b are contained in [0, 255] or [0, 1]
|
1610 |
+
// *Returns:* { h, s, l } in [0,1]
|
1611 |
+
function rgbToHsl(r, g, b) {
|
1612 |
+
|
1613 |
+
r = bound01(r, 255);
|
1614 |
+
g = bound01(g, 255);
|
1615 |
+
b = bound01(b, 255);
|
1616 |
+
|
1617 |
+
var max = mathMax(r, g, b), min = mathMin(r, g, b);
|
1618 |
+
var h, s, l = (max + min) / 2;
|
1619 |
+
|
1620 |
+
if(max == min) {
|
1621 |
+
h = s = 0; // achromatic
|
1622 |
+
}
|
1623 |
+
else {
|
1624 |
+
var d = max - min;
|
1625 |
+
s = l > 0.5 ? d / (2 - max - min) : d / (max + min);
|
1626 |
+
switch(max) {
|
1627 |
+
case r: h = (g - b) / d + (g < b ? 6 : 0); break;
|
1628 |
+
case g: h = (b - r) / d + 2; break;
|
1629 |
+
case b: h = (r - g) / d + 4; break;
|
1630 |
+
}
|
1631 |
+
|
1632 |
+
h /= 6;
|
1633 |
+
}
|
1634 |
+
|
1635 |
+
return { h: h, s: s, l: l };
|
1636 |
+
}
|
1637 |
+
|
1638 |
+
// `hslToRgb`
|
1639 |
+
// Converts an HSL color value to RGB.
|
1640 |
+
// *Assumes:* h is contained in [0, 1] or [0, 360] and s and l are contained [0, 1] or [0, 100]
|
1641 |
+
// *Returns:* { r, g, b } in the set [0, 255]
|
1642 |
+
function hslToRgb(h, s, l) {
|
1643 |
+
var r, g, b;
|
1644 |
+
|
1645 |
+
h = bound01(h, 360);
|
1646 |
+
s = bound01(s, 100);
|
1647 |
+
l = bound01(l, 100);
|
1648 |
+
|
1649 |
+
function hue2rgb(p, q, t) {
|
1650 |
+
if(t < 0) t += 1;
|
1651 |
+
if(t > 1) t -= 1;
|
1652 |
+
if(t < 1/6) return p + (q - p) * 6 * t;
|
1653 |
+
if(t < 1/2) return q;
|
1654 |
+
if(t < 2/3) return p + (q - p) * (2/3 - t) * 6;
|
1655 |
+
return p;
|
1656 |
+
}
|
1657 |
+
|
1658 |
+
if(s === 0) {
|
1659 |
+
r = g = b = l; // achromatic
|
1660 |
+
}
|
1661 |
+
else {
|
1662 |
+
var q = l < 0.5 ? l * (1 + s) : l + s - l * s;
|
1663 |
+
var p = 2 * l - q;
|
1664 |
+
r = hue2rgb(p, q, h + 1/3);
|
1665 |
+
g = hue2rgb(p, q, h);
|
1666 |
+
b = hue2rgb(p, q, h - 1/3);
|
1667 |
+
}
|
1668 |
+
|
1669 |
+
return { r: r * 255, g: g * 255, b: b * 255 };
|
1670 |
+
}
|
1671 |
+
|
1672 |
+
// `rgbToHsv`
|
1673 |
+
// Converts an RGB color value to HSV
|
1674 |
+
// *Assumes:* r, g, and b are contained in the set [0, 255] or [0, 1]
|
1675 |
+
// *Returns:* { h, s, v } in [0,1]
|
1676 |
+
function rgbToHsv(r, g, b) {
|
1677 |
+
|
1678 |
+
r = bound01(r, 255);
|
1679 |
+
g = bound01(g, 255);
|
1680 |
+
b = bound01(b, 255);
|
1681 |
+
|
1682 |
+
var max = mathMax(r, g, b), min = mathMin(r, g, b);
|
1683 |
+
var h, s, v = max;
|
1684 |
+
|
1685 |
+
var d = max - min;
|
1686 |
+
s = max === 0 ? 0 : d / max;
|
1687 |
+
|
1688 |
+
if(max == min) {
|
1689 |
+
h = 0; // achromatic
|
1690 |
+
}
|
1691 |
+
else {
|
1692 |
+
switch(max) {
|
1693 |
+
case r: h = (g - b) / d + (g < b ? 6 : 0); break;
|
1694 |
+
case g: h = (b - r) / d + 2; break;
|
1695 |
+
case b: h = (r - g) / d + 4; break;
|
1696 |
+
}
|
1697 |
+
h /= 6;
|
1698 |
+
}
|
1699 |
+
return { h: h, s: s, v: v };
|
1700 |
+
}
|
1701 |
+
|
1702 |
+
// `hsvToRgb`
|
1703 |
+
// Converts an HSV color value to RGB.
|
1704 |
+
// *Assumes:* h is contained in [0, 1] or [0, 360] and s and v are contained in [0, 1] or [0, 100]
|
1705 |
+
// *Returns:* { r, g, b } in the set [0, 255]
|
1706 |
+
function hsvToRgb(h, s, v) {
|
1707 |
+
|
1708 |
+
h = bound01(h, 360) * 6;
|
1709 |
+
s = bound01(s, 100);
|
1710 |
+
v = bound01(v, 100);
|
1711 |
+
|
1712 |
+
var i = math.floor(h),
|
1713 |
+
f = h - i,
|
1714 |
+
p = v * (1 - s),
|
1715 |
+
q = v * (1 - f * s),
|
1716 |
+
t = v * (1 - (1 - f) * s),
|
1717 |
+
mod = i % 6,
|
1718 |
+
r = [v, q, p, p, t, v][mod],
|
1719 |
+
g = [t, v, v, q, p, p][mod],
|
1720 |
+
b = [p, p, t, v, v, q][mod];
|
1721 |
+
|
1722 |
+
return { r: r * 255, g: g * 255, b: b * 255 };
|
1723 |
+
}
|
1724 |
+
|
1725 |
+
// `rgbToHex`
|
1726 |
+
// Converts an RGB color to hex
|
1727 |
+
// Assumes r, g, and b are contained in the set [0, 255]
|
1728 |
+
// Returns a 3 or 6 character hex
|
1729 |
+
function rgbToHex(r, g, b, allow3Char) {
|
1730 |
+
|
1731 |
+
var hex = [
|
1732 |
+
pad2(mathRound(r).toString(16)),
|
1733 |
+
pad2(mathRound(g).toString(16)),
|
1734 |
+
pad2(mathRound(b).toString(16))
|
1735 |
+
];
|
1736 |
+
|
1737 |
+
// Return a 3 character hex if possible
|
1738 |
+
if (allow3Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1)) {
|
1739 |
+
return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0);
|
1740 |
+
}
|
1741 |
+
|
1742 |
+
return hex.join("");
|
1743 |
+
}
|
1744 |
+
// `rgbaToHex`
|
1745 |
+
// Converts an RGBA color plus alpha transparency to hex
|
1746 |
+
// Assumes r, g, b and a are contained in the set [0, 255]
|
1747 |
+
// Returns an 8 character hex
|
1748 |
+
function rgbaToHex(r, g, b, a) {
|
1749 |
+
|
1750 |
+
var hex = [
|
1751 |
+
pad2(convertDecimalToHex(a)),
|
1752 |
+
pad2(mathRound(r).toString(16)),
|
1753 |
+
pad2(mathRound(g).toString(16)),
|
1754 |
+
pad2(mathRound(b).toString(16))
|
1755 |
+
];
|
1756 |
+
|
1757 |
+
return hex.join("");
|
1758 |
+
}
|
1759 |
+
|
1760 |
+
// `equals`
|
1761 |
+
// Can be called with any tinycolor input
|
1762 |
+
tinycolor.equals = function (color1, color2) {
|
1763 |
+
if (!color1 || !color2) { return false; }
|
1764 |
+
return tinycolor(color1).toRgbString() == tinycolor(color2).toRgbString();
|
1765 |
+
};
|
1766 |
+
tinycolor.random = function() {
|
1767 |
+
return tinycolor.fromRatio({
|
1768 |
+
r: mathRandom(),
|
1769 |
+
g: mathRandom(),
|
1770 |
+
b: mathRandom()
|
1771 |
+
});
|
1772 |
+
};
|
1773 |
+
|
1774 |
+
|
1775 |
+
// Modification Functions
|
1776 |
+
// ----------------------
|
1777 |
+
// Thanks to less.js for some of the basics here
|
1778 |
+
// <https://github.com/cloudhead/less.js/blob/master/lib/less/functions.js>
|
1779 |
+
|
1780 |
+
function desaturate(color, amount) {
|
1781 |
+
amount = (amount === 0) ? 0 : (amount || 10);
|
1782 |
+
var hsl = tinycolor(color).toHsl();
|
1783 |
+
hsl.s -= amount / 100;
|
1784 |
+
hsl.s = clamp01(hsl.s);
|
1785 |
+
return tinycolor(hsl);
|
1786 |
+
}
|
1787 |
+
|
1788 |
+
function saturate(color, amount) {
|
1789 |
+
amount = (amount === 0) ? 0 : (amount || 10);
|
1790 |
+
var hsl = tinycolor(color).toHsl();
|
1791 |
+
hsl.s += amount / 100;
|
1792 |
+
hsl.s = clamp01(hsl.s);
|
1793 |
+
return tinycolor(hsl);
|
1794 |
+
}
|
1795 |
+
|
1796 |
+
function greyscale(color) {
|
1797 |
+
return tinycolor(color).desaturate(100);
|
1798 |
+
}
|
1799 |
+
|
1800 |
+
function lighten (color, amount) {
|
1801 |
+
amount = (amount === 0) ? 0 : (amount || 10);
|
1802 |
+
var hsl = tinycolor(color).toHsl();
|
1803 |
+
hsl.l += amount / 100;
|
1804 |
+
hsl.l = clamp01(hsl.l);
|
1805 |
+
return tinycolor(hsl);
|
1806 |
+
}
|
1807 |
+
|
1808 |
+
function brighten(color, amount) {
|
1809 |
+
amount = (amount === 0) ? 0 : (amount || 10);
|
1810 |
+
var rgb = tinycolor(color).toRgb();
|
1811 |
+
rgb.r = mathMax(0, mathMin(255, rgb.r - mathRound(255 * - (amount / 100))));
|
1812 |
+
rgb.g = mathMax(0, mathMin(255, rgb.g - mathRound(255 * - (amount / 100))));
|
1813 |
+
rgb.b = mathMax(0, mathMin(255, rgb.b - mathRound(255 * - (amount / 100))));
|
1814 |
+
return tinycolor(rgb);
|
1815 |
+
}
|
1816 |
+
|
1817 |
+
function darken (color, amount) {
|
1818 |
+
amount = (amount === 0) ? 0 : (amount || 10);
|
1819 |
+
var hsl = tinycolor(color).toHsl();
|
1820 |
+
hsl.l -= amount / 100;
|
1821 |
+
hsl.l = clamp01(hsl.l);
|
1822 |
+
return tinycolor(hsl);
|
1823 |
+
}
|
1824 |
+
|
1825 |
+
// Spin takes a positive or negative amount within [-360, 360] indicating the change of hue.
|
1826 |
+
// Values outside of this range will be wrapped into this range.
|
1827 |
+
function spin(color, amount) {
|
1828 |
+
var hsl = tinycolor(color).toHsl();
|
1829 |
+
var hue = (mathRound(hsl.h) + amount) % 360;
|
1830 |
+
hsl.h = hue < 0 ? 360 + hue : hue;
|
1831 |
+
return tinycolor(hsl);
|
1832 |
+
}
|
1833 |
+
|
1834 |
+
// Combination Functions
|
1835 |
+
// ---------------------
|
1836 |
+
// Thanks to jQuery xColor for some of the ideas behind these
|
1837 |
+
// <https://github.com/infusion/jQuery-xcolor/blob/master/jquery.xcolor.js>
|
1838 |
+
|
1839 |
+
function complement(color) {
|
1840 |
+
var hsl = tinycolor(color).toHsl();
|
1841 |
+
hsl.h = (hsl.h + 180) % 360;
|
1842 |
+
return tinycolor(hsl);
|
1843 |
+
}
|
1844 |
+
|
1845 |
+
function triad(color) {
|
1846 |
+
var hsl = tinycolor(color).toHsl();
|
1847 |
+
var h = hsl.h;
|
1848 |
+
return [
|
1849 |
+
tinycolor(color),
|
1850 |
+
tinycolor({ h: (h + 120) % 360, s: hsl.s, l: hsl.l }),
|
1851 |
+
tinycolor({ h: (h + 240) % 360, s: hsl.s, l: hsl.l })
|
1852 |
+
];
|
1853 |
+
}
|
1854 |
+
|
1855 |
+
function tetrad(color) {
|
1856 |
+
var hsl = tinycolor(color).toHsl();
|
1857 |
+
var h = hsl.h;
|
1858 |
+
return [
|
1859 |
+
tinycolor(color),
|
1860 |
+
tinycolor({ h: (h + 90) % 360, s: hsl.s, l: hsl.l }),
|
1861 |
+
tinycolor({ h: (h + 180) % 360, s: hsl.s, l: hsl.l }),
|
1862 |
+
tinycolor({ h: (h + 270) % 360, s: hsl.s, l: hsl.l })
|
1863 |
+
];
|
1864 |
+
}
|
1865 |
+
|
1866 |
+
function splitcomplement(color) {
|
1867 |
+
var hsl = tinycolor(color).toHsl();
|
1868 |
+
var h = hsl.h;
|
1869 |
+
return [
|
1870 |
+
tinycolor(color),
|
1871 |
+
tinycolor({ h: (h + 72) % 360, s: hsl.s, l: hsl.l}),
|
1872 |
+
tinycolor({ h: (h + 216) % 360, s: hsl.s, l: hsl.l})
|
1873 |
+
];
|
1874 |
+
}
|
1875 |
+
|
1876 |
+
function analogous(color, results, slices) {
|
1877 |
+
results = results || 6;
|
1878 |
+
slices = slices || 30;
|
1879 |
+
|
1880 |
+
var hsl = tinycolor(color).toHsl();
|
1881 |
+
var part = 360 / slices;
|
1882 |
+
var ret = [tinycolor(color)];
|
1883 |
+
|
1884 |
+
for (hsl.h = ((hsl.h - (part * results >> 1)) + 720) % 360; --results; ) {
|
1885 |
+
hsl.h = (hsl.h + part) % 360;
|
1886 |
+
ret.push(tinycolor(hsl));
|
1887 |
+
}
|
1888 |
+
return ret;
|
1889 |
+
}
|
1890 |
+
|
1891 |
+
function monochromatic(color, results) {
|
1892 |
+
results = results || 6;
|
1893 |
+
var hsv = tinycolor(color).toHsv();
|
1894 |
+
var h = hsv.h, s = hsv.s, v = hsv.v;
|
1895 |
+
var ret = [];
|
1896 |
+
var modification = 1 / results;
|
1897 |
+
|
1898 |
+
while (results--) {
|
1899 |
+
ret.push(tinycolor({ h: h, s: s, v: v}));
|
1900 |
+
v = (v + modification) % 1;
|
1901 |
+
}
|
1902 |
+
|
1903 |
+
return ret;
|
1904 |
+
}
|
1905 |
+
|
1906 |
+
// Utility Functions
|
1907 |
+
// ---------------------
|
1908 |
+
|
1909 |
+
tinycolor.mix = function(color1, color2, amount) {
|
1910 |
+
amount = (amount === 0) ? 0 : (amount || 50);
|
1911 |
+
|
1912 |
+
var rgb1 = tinycolor(color1).toRgb();
|
1913 |
+
var rgb2 = tinycolor(color2).toRgb();
|
1914 |
+
|
1915 |
+
var p = amount / 100;
|
1916 |
+
var w = p * 2 - 1;
|
1917 |
+
var a = rgb2.a - rgb1.a;
|
1918 |
+
|
1919 |
+
var w1;
|
1920 |
+
|
1921 |
+
if (w * a == -1) {
|
1922 |
+
w1 = w;
|
1923 |
+
} else {
|
1924 |
+
w1 = (w + a) / (1 + w * a);
|
1925 |
+
}
|
1926 |
+
|
1927 |
+
w1 = (w1 + 1) / 2;
|
1928 |
+
|
1929 |
+
var w2 = 1 - w1;
|
1930 |
+
|
1931 |
+
var rgba = {
|
1932 |
+
r: rgb2.r * w1 + rgb1.r * w2,
|
1933 |
+
g: rgb2.g * w1 + rgb1.g * w2,
|
1934 |
+
b: rgb2.b * w1 + rgb1.b * w2,
|
1935 |
+
a: rgb2.a * p + rgb1.a * (1 - p)
|
1936 |
+
};
|
1937 |
+
|
1938 |
+
return tinycolor(rgba);
|
1939 |
+
};
|
1940 |
+
|
1941 |
+
|
1942 |
+
// Readability Functions
|
1943 |
+
// ---------------------
|
1944 |
+
// <http://www.w3.org/TR/AERT#color-contrast>
|
1945 |
+
|
1946 |
+
// `readability`
|
1947 |
+
// Analyze the 2 colors and returns an object with the following properties:
|
1948 |
+
// `brightness`: difference in brightness between the two colors
|
1949 |
+
// `color`: difference in color/hue between the two colors
|
1950 |
+
tinycolor.readability = function(color1, color2) {
|
1951 |
+
var c1 = tinycolor(color1);
|
1952 |
+
var c2 = tinycolor(color2);
|
1953 |
+
var rgb1 = c1.toRgb();
|
1954 |
+
var rgb2 = c2.toRgb();
|
1955 |
+
var brightnessA = c1.getBrightness();
|
1956 |
+
var brightnessB = c2.getBrightness();
|
1957 |
+
var colorDiff = (
|
1958 |
+
Math.max(rgb1.r, rgb2.r) - Math.min(rgb1.r, rgb2.r) +
|
1959 |
+
Math.max(rgb1.g, rgb2.g) - Math.min(rgb1.g, rgb2.g) +
|
1960 |
+
Math.max(rgb1.b, rgb2.b) - Math.min(rgb1.b, rgb2.b)
|
1961 |
+
);
|
1962 |
+
|
1963 |
+
return {
|
1964 |
+
brightness: Math.abs(brightnessA - brightnessB),
|
1965 |
+
color: colorDiff
|
1966 |
+
};
|
1967 |
+
};
|
1968 |
+
|
1969 |
+
// `readable`
|
1970 |
+
// http://www.w3.org/TR/AERT#color-contrast
|
1971 |
+
// Ensure that foreground and background color combinations provide sufficient contrast.
|
1972 |
+
// *Example*
|
1973 |
+
// tinycolor.isReadable("#000", "#111") => false
|
1974 |
+
tinycolor.isReadable = function(color1, color2) {
|
1975 |
+
var readability = tinycolor.readability(color1, color2);
|
1976 |
+
return readability.brightness > 125 && readability.color > 500;
|
1977 |
+
};
|
1978 |
+
|
1979 |
+
// `mostReadable`
|
1980 |
+
// Given a base color and a list of possible foreground or background
|
1981 |
+
// colors for that base, returns the most readable color.
|
1982 |
+
// *Example*
|
1983 |
+
// tinycolor.mostReadable("#123", ["#fff", "#000"]) => "#000"
|
1984 |
+
tinycolor.mostReadable = function(baseColor, colorList) {
|
1985 |
+
var bestColor = null;
|
1986 |
+
var bestScore = 0;
|
1987 |
+
var bestIsReadable = false;
|
1988 |
+
for (var i=0; i < colorList.length; i++) {
|
1989 |
+
|
1990 |
+
// We normalize both around the "acceptable" breaking point,
|
1991 |
+
// but rank brightness constrast higher than hue.
|
1992 |
+
|
1993 |
+
var readability = tinycolor.readability(baseColor, colorList[i]);
|
1994 |
+
var readable = readability.brightness > 125 && readability.color > 500;
|
1995 |
+
var score = 3 * (readability.brightness / 125) + (readability.color / 500);
|
1996 |
+
|
1997 |
+
if ((readable && ! bestIsReadable) ||
|
1998 |
+
(readable && bestIsReadable && score > bestScore) ||
|
1999 |
+
((! readable) && (! bestIsReadable) && score > bestScore)) {
|
2000 |
+
bestIsReadable = readable;
|
2001 |
+
bestScore = score;
|
2002 |
+
bestColor = tinycolor(colorList[i]);
|
2003 |
+
}
|
2004 |
+
}
|
2005 |
+
return bestColor;
|
2006 |
+
};
|
2007 |
+
|
2008 |
+
|
2009 |
+
// Big List of Colors
|
2010 |
+
// ------------------
|
2011 |
+
// <http://www.w3.org/TR/css3-color/#svg-color>
|
2012 |
+
var names = tinycolor.names = {
|
2013 |
+
aliceblue: "f0f8ff",
|
2014 |
+
antiquewhite: "faebd7",
|
2015 |
+
aqua: "0ff",
|
2016 |
+
aquamarine: "7fffd4",
|
2017 |
+
azure: "f0ffff",
|
2018 |
+
beige: "f5f5dc",
|
2019 |
+
bisque: "ffe4c4",
|
2020 |
+
black: "000",
|
2021 |
+
blanchedalmond: "ffebcd",
|
2022 |
+
blue: "00f",
|
2023 |
+
blueviolet: "8a2be2",
|
2024 |
+
brown: "a52a2a",
|
2025 |
+
burlywood: "deb887",
|
2026 |
+
burntsienna: "ea7e5d",
|
2027 |
+
cadetblue: "5f9ea0",
|
2028 |
+
chartreuse: "7fff00",
|
2029 |
+
chocolate: "d2691e",
|
2030 |
+
coral: "ff7f50",
|
2031 |
+
cornflowerblue: "6495ed",
|
2032 |
+
cornsilk: "fff8dc",
|
2033 |
+
crimson: "dc143c",
|
2034 |
+
cyan: "0ff",
|
2035 |
+
darkblue: "00008b",
|
2036 |
+
darkcyan: "008b8b",
|
2037 |
+
darkgoldenrod: "b8860b",
|
2038 |
+
darkgray: "a9a9a9",
|
2039 |
+
darkgreen: "006400",
|
2040 |
+
darkgrey: "a9a9a9",
|
2041 |
+
darkkhaki: "bdb76b",
|
2042 |
+
darkmagenta: "8b008b",
|
2043 |
+
darkolivegreen: "556b2f",
|
2044 |
+
darkorange: "ff8c00",
|
2045 |
+
darkorchid: "9932cc",
|
2046 |
+
darkred: "8b0000",
|
2047 |
+
darksalmon: "e9967a",
|
2048 |
+
darkseagreen: "8fbc8f",
|
2049 |
+
darkslateblue: "483d8b",
|
2050 |
+
darkslategray: "2f4f4f",
|
2051 |
+
darkslategrey: "2f4f4f",
|
2052 |
+
darkturquoise: "00ced1",
|
2053 |
+
darkviolet: "9400d3",
|
2054 |
+
deeppink: "ff1493",
|
2055 |
+
deepskyblue: "00bfff",
|
2056 |
+
dimgray: "696969",
|
2057 |
+
dimgrey: "696969",
|
2058 |
+
dodgerblue: "1e90ff",
|
2059 |
+
firebrick: "b22222",
|
2060 |
+
floralwhite: "fffaf0",
|
2061 |
+
forestgreen: "228b22",
|
2062 |
+
fuchsia: "f0f",
|
2063 |
+
gainsboro: "dcdcdc",
|
2064 |
+
ghostwhite: "f8f8ff",
|
2065 |
+
gold: "ffd700",
|
2066 |
+
goldenrod: "daa520",
|
2067 |
+
gray: "808080",
|
2068 |
+
green: "008000",
|
2069 |
+
greenyellow: "adff2f",
|
2070 |
+
grey: "808080",
|
2071 |
+
honeydew: "f0fff0",
|
2072 |
+
hotpink: "ff69b4",
|
2073 |
+
indianred: "cd5c5c",
|
2074 |
+
indigo: "4b0082",
|
2075 |
+
ivory: "fffff0",
|
2076 |
+
khaki: "f0e68c",
|
2077 |
+
lavender: "e6e6fa",
|
2078 |
+
lavenderblush: "fff0f5",
|
2079 |
+
lawngreen: "7cfc00",
|
2080 |
+
lemonchiffon: "fffacd",
|
2081 |
+
lightblue: "add8e6",
|
2082 |
+
lightcoral: "f08080",
|
2083 |
+
lightcyan: "e0ffff",
|
2084 |
+
lightgoldenrodyellow: "fafad2",
|
2085 |
+
lightgray: "d3d3d3",
|
2086 |
+
lightgreen: "90ee90",
|
2087 |
+
lightgrey: "d3d3d3",
|
2088 |
+
lightpink: "ffb6c1",
|
2089 |
+
lightsalmon: "ffa07a",
|
2090 |
+
lightseagreen: "20b2aa",
|
2091 |
+
lightskyblue: "87cefa",
|
2092 |
+
lightslategray: "789",
|
2093 |
+
lightslategrey: "789",
|
2094 |
+
lightsteelblue: "b0c4de",
|
2095 |
+
lightyellow: "ffffe0",
|
2096 |
+
lime: "0f0",
|
2097 |
+
limegreen: "32cd32",
|
2098 |
+
linen: "faf0e6",
|
2099 |
+
magenta: "f0f",
|
2100 |
+
maroon: "800000",
|
2101 |
+
mediumaquamarine: "66cdaa",
|
2102 |
+
mediumblue: "0000cd",
|
2103 |
+
mediumorchid: "ba55d3",
|
2104 |
+
mediumpurple: "9370db",
|
2105 |
+
mediumseagreen: "3cb371",
|
2106 |
+
mediumslateblue: "7b68ee",
|
2107 |
+
mediumspringgreen: "00fa9a",
|
2108 |
+
mediumturquoise: "48d1cc",
|
2109 |
+
mediumvioletred: "c71585",
|
2110 |
+
midnightblue: "191970",
|
2111 |
+
mintcream: "f5fffa",
|
2112 |
+
mistyrose: "ffe4e1",
|
2113 |
+
moccasin: "ffe4b5",
|
2114 |
+
navajowhite: "ffdead",
|
2115 |
+
navy: "000080",
|
2116 |
+
oldlace: "fdf5e6",
|
2117 |
+
olive: "808000",
|
2118 |
+
olivedrab: "6b8e23",
|
2119 |
+
orange: "ffa500",
|
2120 |
+
orangered: "ff4500",
|
2121 |
+
orchid: "da70d6",
|
2122 |
+
palegoldenrod: "eee8aa",
|
2123 |
+
palegreen: "98fb98",
|
2124 |
+
paleturquoise: "afeeee",
|
2125 |
+
palevioletred: "db7093",
|
2126 |
+
papayawhip: "ffefd5",
|
2127 |
+
peachpuff: "ffdab9",
|
2128 |
+
peru: "cd853f",
|
2129 |
+
pink: "ffc0cb",
|
2130 |
+
plum: "dda0dd",
|
2131 |
+
powderblue: "b0e0e6",
|
2132 |
+
purple: "800080",
|
2133 |
+
rebeccapurple: "663399",
|
2134 |
+
red: "f00",
|
2135 |
+
rosybrown: "bc8f8f",
|
2136 |
+
royalblue: "4169e1",
|
2137 |
+
saddlebrown: "8b4513",
|
2138 |
+
salmon: "fa8072",
|
2139 |
+
sandybrown: "f4a460",
|
2140 |
+
seagreen: "2e8b57",
|
2141 |
+
seashell: "fff5ee",
|
2142 |
+
sienna: "a0522d",
|
2143 |
+
silver: "c0c0c0",
|
2144 |
+
skyblue: "87ceeb",
|
2145 |
+
slateblue: "6a5acd",
|
2146 |
+
slategray: "708090",
|
2147 |
+
slategrey: "708090",
|
2148 |
+
snow: "fffafa",
|
2149 |
+
springgreen: "00ff7f",
|
2150 |
+
steelblue: "4682b4",
|
2151 |
+
tan: "d2b48c",
|
2152 |
+
teal: "008080",
|
2153 |
+
thistle: "d8bfd8",
|
2154 |
+
tomato: "ff6347",
|
2155 |
+
turquoise: "40e0d0",
|
2156 |
+
violet: "ee82ee",
|
2157 |
+
wheat: "f5deb3",
|
2158 |
+
white: "fff",
|
2159 |
+
whitesmoke: "f5f5f5",
|
2160 |
+
yellow: "ff0",
|
2161 |
+
yellowgreen: "9acd32"
|
2162 |
+
};
|
2163 |
+
|
2164 |
+
// Make it easy to access colors via `hexNames[hex]`
|
2165 |
+
var hexNames = tinycolor.hexNames = flip(names);
|
2166 |
+
|
2167 |
+
|
2168 |
+
// Utilities
|
2169 |
+
// ---------
|
2170 |
+
|
2171 |
+
// `{ 'name1': 'val1' }` becomes `{ 'val1': 'name1' }`
|
2172 |
+
function flip(o) {
|
2173 |
+
var flipped = { };
|
2174 |
+
for (var i in o) {
|
2175 |
+
if (o.hasOwnProperty(i)) {
|
2176 |
+
flipped[o[i]] = i;
|
2177 |
+
}
|
2178 |
+
}
|
2179 |
+
return flipped;
|
2180 |
+
}
|
2181 |
+
|
2182 |
+
// Return a valid alpha value [0,1] with all invalid values being set to 1
|
2183 |
+
function boundAlpha(a) {
|
2184 |
+
a = parseFloat(a);
|
2185 |
+
|
2186 |
+
if (isNaN(a) || a < 0 || a > 1) {
|
2187 |
+
a = 1;
|
2188 |
+
}
|
2189 |
+
|
2190 |
+
return a;
|
2191 |
+
}
|
2192 |
+
|
2193 |
+
// Take input from [0, n] and return it as [0, 1]
|
2194 |
+
function bound01(n, max) {
|
2195 |
+
if (isOnePointZero(n)) { n = "100%"; }
|
2196 |
+
|
2197 |
+
var processPercent = isPercentage(n);
|
2198 |
+
n = mathMin(max, mathMax(0, parseFloat(n)));
|
2199 |
+
|
2200 |
+
// Automatically convert percentage into number
|
2201 |
+
if (processPercent) {
|
2202 |
+
n = parseInt(n * max, 10) / 100;
|
2203 |
+
}
|
2204 |
+
|
2205 |
+
// Handle floating point rounding errors
|
2206 |
+
if ((math.abs(n - max) < 0.000001)) {
|
2207 |
+
return 1;
|
2208 |
+
}
|
2209 |
+
|
2210 |
+
// Convert into [0, 1] range if it isn't already
|
2211 |
+
return (n % max) / parseFloat(max);
|
2212 |
+
}
|
2213 |
+
|
2214 |
+
// Force a number between 0 and 1
|
2215 |
+
function clamp01(val) {
|
2216 |
+
return mathMin(1, mathMax(0, val));
|
2217 |
+
}
|
2218 |
+
|
2219 |
+
// Parse a base-16 hex value into a base-10 integer
|
2220 |
+
function parseIntFromHex(val) {
|
2221 |
+
return parseInt(val, 16);
|
2222 |
+
}
|
2223 |
+
|
2224 |
+
// Need to handle 1.0 as 100%, since once it is a number, there is no difference between it and 1
|
2225 |
+
// <http://stackoverflow.com/questions/7422072/javascript-how-to-detect-number-as-a-decimal-including-1-0>
|
2226 |
+
function isOnePointZero(n) {
|
2227 |
+
return typeof n == "string" && n.indexOf('.') != -1 && parseFloat(n) === 1;
|
2228 |
+
}
|
2229 |
+
|
2230 |
+
// Check to see if string passed in is a percentage
|
2231 |
+
function isPercentage(n) {
|
2232 |
+
return typeof n === "string" && n.indexOf('%') != -1;
|
2233 |
+
}
|
2234 |
+
|
2235 |
+
// Force a hex value to have 2 characters
|
2236 |
+
function pad2(c) {
|
2237 |
+
return c.length == 1 ? '0' + c : '' + c;
|
2238 |
+
}
|
2239 |
+
|
2240 |
+
// Replace a decimal with it's percentage value
|
2241 |
+
function convertToPercentage(n) {
|
2242 |
+
if (n <= 1) {
|
2243 |
+
n = (n * 100) + "%";
|
2244 |
+
}
|
2245 |
+
|
2246 |
+
return n;
|
2247 |
+
}
|
2248 |
+
|
2249 |
+
// Converts a decimal to a hex value
|
2250 |
+
function convertDecimalToHex(d) {
|
2251 |
+
return Math.round(parseFloat(d) * 255).toString(16);
|
2252 |
+
}
|
2253 |
+
// Converts a hex value to a decimal
|
2254 |
+
function convertHexToDecimal(h) {
|
2255 |
+
return (parseIntFromHex(h) / 255);
|
2256 |
+
}
|
2257 |
+
|
2258 |
+
var matchers = (function() {
|
2259 |
+
|
2260 |
+
// <http://www.w3.org/TR/css3-values/#integers>
|
2261 |
+
var CSS_INTEGER = "[-\\+]?\\d+%?";
|
2262 |
+
|
2263 |
+
// <http://www.w3.org/TR/css3-values/#number-value>
|
2264 |
+
var CSS_NUMBER = "[-\\+]?\\d*\\.\\d+%?";
|
2265 |
+
|
2266 |
+
// Allow positive/negative integer/number. Don't capture the either/or, just the entire outcome.
|
2267 |
+
var CSS_UNIT = "(?:" + CSS_NUMBER + ")|(?:" + CSS_INTEGER + ")";
|
2268 |
+
|
2269 |
+
// Actual matching.
|
2270 |
+
// Parentheses and commas are optional, but not required.
|
2271 |
+
// Whitespace can take the place of commas or opening paren
|
2272 |
+
var PERMISSIVE_MATCH3 = "[\\s|\\(]+(" + CSS_UNIT + ")[,|\\s]+(" + CSS_UNIT + ")[,|\\s]+(" + CSS_UNIT + ")\\s*\\)?";
|
2273 |
+
var PERMISSIVE_MATCH4 = "[\\s|\\(]+(" + CSS_UNIT + ")[,|\\s]+(" + CSS_UNIT + ")[,|\\s]+(" + CSS_UNIT + ")[,|\\s]+(" + CSS_UNIT + ")\\s*\\)?";
|
2274 |
+
|
2275 |
+
return {
|
2276 |
+
rgb: new RegExp("rgb" + PERMISSIVE_MATCH3),
|
2277 |
+
rgba: new RegExp("rgba" + PERMISSIVE_MATCH4),
|
2278 |
+
hsl: new RegExp("hsl" + PERMISSIVE_MATCH3),
|
2279 |
+
hsla: new RegExp("hsla" + PERMISSIVE_MATCH4),
|
2280 |
+
hsv: new RegExp("hsv" + PERMISSIVE_MATCH3),
|
2281 |
+
hsva: new RegExp("hsva" + PERMISSIVE_MATCH4),
|
2282 |
+
hex3: /^([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,
|
2283 |
+
hex6: /^([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,
|
2284 |
+
hex8: /^([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/
|
2285 |
+
};
|
2286 |
+
})();
|
2287 |
+
|
2288 |
+
// `stringInputToObject`
|
2289 |
+
// Permissive string parsing. Take in a number of formats, and output an object
|
2290 |
+
// based on detected format. Returns `{ r, g, b }` or `{ h, s, l }` or `{ h, s, v}`
|
2291 |
+
function stringInputToObject(color) {
|
2292 |
+
|
2293 |
+
color = color.replace(trimLeft,'').replace(trimRight, '').toLowerCase();
|
2294 |
+
var named = false;
|
2295 |
+
if (names[color]) {
|
2296 |
+
color = names[color];
|
2297 |
+
named = true;
|
2298 |
+
}
|
2299 |
+
else if (color == 'transparent') {
|
2300 |
+
return { r: 0, g: 0, b: 0, a: 0, format: "name" };
|
2301 |
+
}
|
2302 |
+
|
2303 |
+
// Try to match string input using regular expressions.
|
2304 |
+
// Keep most of the number bounding out of this function - don't worry about [0,1] or [0,100] or [0,360]
|
2305 |
+
// Just return an object and let the conversion functions handle that.
|
2306 |
+
// This way the result will be the same whether the tinycolor is initialized with string or object.
|
2307 |
+
var match;
|
2308 |
+
if ((match = matchers.rgb.exec(color))) {
|
2309 |
+
return { r: match[1], g: match[2], b: match[3] };
|
2310 |
+
}
|
2311 |
+
if ((match = matchers.rgba.exec(color))) {
|
2312 |
+
return { r: match[1], g: match[2], b: match[3], a: match[4] };
|
2313 |
+
}
|
2314 |
+
if ((match = matchers.hsl.exec(color))) {
|
2315 |
+
return { h: match[1], s: match[2], l: match[3] };
|
2316 |
+
}
|
2317 |
+
if ((match = matchers.hsla.exec(color))) {
|
2318 |
+
return { h: match[1], s: match[2], l: match[3], a: match[4] };
|
2319 |
+
}
|
2320 |
+
if ((match = matchers.hsv.exec(color))) {
|
2321 |
+
return { h: match[1], s: match[2], v: match[3] };
|
2322 |
+
}
|
2323 |
+
if ((match = matchers.hsva.exec(color))) {
|
2324 |
+
return { h: match[1], s: match[2], v: match[3], a: match[4] };
|
2325 |
+
}
|
2326 |
+
if ((match = matchers.hex8.exec(color))) {
|
2327 |
+
return {
|
2328 |
+
a: convertHexToDecimal(match[1]),
|
2329 |
+
r: parseIntFromHex(match[2]),
|
2330 |
+
g: parseIntFromHex(match[3]),
|
2331 |
+
b: parseIntFromHex(match[4]),
|
2332 |
+
format: named ? "name" : "hex8"
|
2333 |
+
};
|
2334 |
+
}
|
2335 |
+
if ((match = matchers.hex6.exec(color))) {
|
2336 |
+
return {
|
2337 |
+
r: parseIntFromHex(match[1]),
|
2338 |
+
g: parseIntFromHex(match[2]),
|
2339 |
+
b: parseIntFromHex(match[3]),
|
2340 |
+
format: named ? "name" : "hex"
|
2341 |
+
};
|
2342 |
+
}
|
2343 |
+
if ((match = matchers.hex3.exec(color))) {
|
2344 |
+
return {
|
2345 |
+
r: parseIntFromHex(match[1] + '' + match[1]),
|
2346 |
+
g: parseIntFromHex(match[2] + '' + match[2]),
|
2347 |
+
b: parseIntFromHex(match[3] + '' + match[3]),
|
2348 |
+
format: named ? "name" : "hex"
|
2349 |
+
};
|
2350 |
+
}
|
2351 |
+
|
2352 |
+
return false;
|
2353 |
+
}
|
2354 |
+
|
2355 |
+
window.tinycolor = tinycolor;
|
2356 |
+
})();
|
2357 |
+
|
2358 |
+
$(function () {
|
2359 |
+
if ($.fn.spectrum.load) {
|
2360 |
+
$.fn.spectrum.processNativeColorInputs();
|
2361 |
+
}
|
2362 |
+
});
|
2363 |
+
|
2364 |
+
});
|
2365 |
+
|
2366 |
+
|
2367 |
+
/* ================== admin/assets/js/src/plugins/visual-select.js =================== */
|
2368 |
|
2369 |
|
2370 |
/*!
|
2371 |
+
* Radio image select
|
2372 |
+
**/
|
2373 |
+
(function($) {
|
2374 |
+
// Register jQuery plugin.
|
2375 |
+
$.fn.radioImageSelect = function(options) {
|
2376 |
+
// Default var for options.
|
2377 |
+
var defaults = {
|
2378 |
+
// Img class.
|
2379 |
+
imgItemClass: 'radio-img-item',
|
2380 |
+
// Img Checked class.
|
2381 |
+
imgItemCheckedClass: 'item-checked',
|
2382 |
+
// Is need hide label connected?
|
2383 |
+
hideLabel: true
|
2384 |
+
},
|
2385 |
+
|
2386 |
+
/**
|
2387 |
+
* Method firing when need to update classes.
|
2388 |
+
*/
|
2389 |
+
syncClassChecked = function(img) {
|
2390 |
+
var radioName = img.prev('input[type="radio"]').attr('name');
|
2391 |
+
|
2392 |
+
$('input[name="' + radioName + '"]').each(function() {
|
2393 |
+
// Define img by radio name.
|
2394 |
+
var myImg = $(this).next('img');
|
2395 |
+
|
2396 |
+
// Add / Remove Checked class.
|
2397 |
+
if ($(this).prop('checked')) {
|
2398 |
+
myImg.addClass(options.imgItemCheckedClass);
|
2399 |
+
} else {
|
2400 |
+
myImg.removeClass(options.imgItemCheckedClass);
|
2401 |
+
}
|
2402 |
+
});
|
2403 |
+
};
|
2404 |
+
|
2405 |
+
// Parse args..
|
2406 |
+
options = $.extend(defaults, options);
|
2407 |
+
|
2408 |
+
// Start jQuery loop on elements..
|
2409 |
+
return this.each(function() {
|
2410 |
+
$(this)
|
2411 |
+
// First all we are need to hide the radio input.
|
2412 |
+
.hide()
|
2413 |
+
// And add new img element by data-image source.
|
2414 |
+
.after('<img src="' + $(this).data('image') + '" alt="radio image" />');
|
2415 |
+
|
2416 |
+
// Define the new img element.
|
2417 |
+
var img = $(this).next('img');
|
2418 |
+
// Add item class.
|
2419 |
+
img.addClass(options.imgItemClass);
|
2420 |
+
|
2421 |
+
// Check if need to hide label connected.
|
2422 |
+
if (options.hideLabel) {
|
2423 |
+
$('label[for=' + $(this).attr('id') + ']').hide();
|
2424 |
+
}
|
2425 |
+
|
2426 |
+
// When we are created the img and radio get checked, we need add checked class.
|
2427 |
+
if ($(this).prop('checked')) {
|
2428 |
+
img.addClass(options.imgItemCheckedClass);
|
2429 |
+
}
|
2430 |
+
|
2431 |
+
// Create click event on img element.
|
2432 |
+
img.on('click', function(e) {
|
2433 |
+
$(this)
|
2434 |
+
// Prev to current radio input.
|
2435 |
+
.prev('input[type="radio"]')
|
2436 |
+
// Set checked attr.
|
2437 |
+
.prop('checked', true)
|
2438 |
+
// Run change event for radio element.
|
2439 |
+
.trigger('change');
|
2440 |
|
2441 |
+
// Firing the sync classes.
|
2442 |
+
syncClassChecked($(this));
|
2443 |
+
});
|
2444 |
+
});
|
2445 |
+
}
|
2446 |
+
})(jQuery);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
admin/assets/js/scripts.js
ADDED
@@ -0,0 +1,435 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/*! WP ULike - v3.5.0
|
2 |
+
* https://wpulike.com
|
3 |
+
* Alimir 2018;
|
4 |
+
*/
|
5 |
+
|
6 |
+
|
7 |
+
/* ================== admin/assets/js/src/settings.js =================== */
|
8 |
+
|
9 |
+
|
10 |
+
/*!
|
11 |
+
* Settings scripts
|
12 |
+
**/
|
13 |
+
(function( $ ) {
|
14 |
+
|
15 |
+
$(function(){
|
16 |
+
|
17 |
+
var form = $('form.wrap'),
|
18 |
+
page = $('input[name="option_page"]', form).val(),
|
19 |
+
tabs = $('.wp-ulike-settings-tabs', form),
|
20 |
+
current = parseInt(sessionStorage.getItem(page + '_current_tab'), 10) || 0;
|
21 |
+
$('.wp-ulike-settings-section', form).each(function(i, el) {
|
22 |
+
var setting = $(el).val(),
|
23 |
+
title = $(el).prev('h2'),
|
24 |
+
section = $('<div>').attr('id', page + '_' + setting);
|
25 |
+
$(el).nextAll().each(function() {
|
26 |
+
var tag = $(this).prop('tagName');
|
27 |
+
if (tag === 'H2' || tag === 'INPUT') {
|
28 |
+
return false;
|
29 |
+
}
|
30 |
+
$(this).appendTo(section);
|
31 |
+
});
|
32 |
+
if (tabs.length && title.length) {
|
33 |
+
section.addClass('wp-ulike-settings-tab').hide();
|
34 |
+
title.appendTo(tabs).click(function(e) {
|
35 |
+
e.preventDefault();
|
36 |
+
if (!title.hasClass('active')) {
|
37 |
+
$('.wp-ulike-settings-tab.active', form).fadeOut('fast', function() {
|
38 |
+
$('.active', form).removeClass('active');
|
39 |
+
title.addClass('active');
|
40 |
+
section.fadeIn('fast').addClass('active');
|
41 |
+
});
|
42 |
+
sessionStorage.setItem(page + '_current_tab', i);
|
43 |
+
}
|
44 |
+
});
|
45 |
+
if (current === i) {
|
46 |
+
title.addClass('active');
|
47 |
+
section.show().addClass('active');
|
48 |
+
}
|
49 |
+
tabs.after(section);
|
50 |
+
} else {
|
51 |
+
title.prependTo(section);
|
52 |
+
$(el).after(section);
|
53 |
+
}
|
54 |
+
});
|
55 |
+
$('label[for="hidden"]', form).each(function() {
|
56 |
+
$(this).parents('tr').addClass('hide-label');
|
57 |
+
});
|
58 |
+
$('.wp-ulike-settings-media', form).each(function() {
|
59 |
+
var frame,
|
60 |
+
select = $('.wp-ulike-select-media', this),
|
61 |
+
remove = $('.wp-ulike-remove-media', this),
|
62 |
+
input = $('input', this),
|
63 |
+
preview = $('img', this),
|
64 |
+
title = select.attr('title'),
|
65 |
+
text = select.text();
|
66 |
+
if (input.val() < 1) {
|
67 |
+
preview = $('<img class="attachment-medium">');
|
68 |
+
preview.prependTo(this).hide();
|
69 |
+
remove.hide();
|
70 |
+
}
|
71 |
+
select.click(function(e) {
|
72 |
+
e.preventDefault();
|
73 |
+
if (frame) {
|
74 |
+
frame.open();
|
75 |
+
return;
|
76 |
+
}
|
77 |
+
frame = wp.media({
|
78 |
+
title: title,
|
79 |
+
button: {
|
80 |
+
text: text
|
81 |
+
},
|
82 |
+
multiple: false
|
83 |
+
});
|
84 |
+
frame.on('select', function() {
|
85 |
+
var attachment = frame.state().get('selection').first().toJSON(),
|
86 |
+
thumb;
|
87 |
+
input.val(attachment.id);
|
88 |
+
thumb = attachment.sizes.medium || attachment.sizes.full;
|
89 |
+
preview.attr({
|
90 |
+
src: thumb.url,
|
91 |
+
width: thumb.width,
|
92 |
+
height: thumb.height
|
93 |
+
});
|
94 |
+
preview.show();
|
95 |
+
remove.show();
|
96 |
+
});
|
97 |
+
frame.open();
|
98 |
+
});
|
99 |
+
remove.click(function(e) {
|
100 |
+
e.preventDefault();
|
101 |
+
input.val('');
|
102 |
+
preview.hide();
|
103 |
+
remove.hide();
|
104 |
+
});
|
105 |
+
});
|
106 |
+
$('.wp-ulike-settings-action', form).each(function() {
|
107 |
+
var submit = $('[type="button"]', this),
|
108 |
+
spinner = $('<img>').attr({
|
109 |
+
src: wp_ulike_admin.spinner,
|
110 |
+
alt: 'loading'
|
111 |
+
}).insertAfter(submit).hide(),
|
112 |
+
notice = $('<div>').addClass('settings-error').insertBefore(submit).hide(),
|
113 |
+
action = {
|
114 |
+
data: {
|
115 |
+
action: submit.attr('id')
|
116 |
+
},
|
117 |
+
dataType: 'json',
|
118 |
+
type: 'POST',
|
119 |
+
url: ajaxurl,
|
120 |
+
beforeSend: function() {
|
121 |
+
spinner.fadeIn('fast');
|
122 |
+
submit.hide();
|
123 |
+
},
|
124 |
+
success: function(r) {
|
125 |
+
var noticeClass = 'error',
|
126 |
+
showNotice = function(msg) {
|
127 |
+
notice.html('<p>' + String(msg) + '</p>').addClass(noticeClass).show();
|
128 |
+
};
|
129 |
+
if (typeof r === 'object') {
|
130 |
+
if (r.hasOwnProperty('success') && r.success) {
|
131 |
+
noticeClass = 'updated';
|
132 |
+
}
|
133 |
+
if (r.hasOwnProperty('data') && r.data) {
|
134 |
+
if (typeof r.data === 'object') {
|
135 |
+
if (r.data.hasOwnProperty('reload') && r.data.reload) {
|
136 |
+
document.location.reload();
|
137 |
+
return;
|
138 |
+
}
|
139 |
+
if (r.data.hasOwnProperty('message') && r.data.message) {
|
140 |
+
showNotice(r.data.message);
|
141 |
+
}
|
142 |
+
} else {
|
143 |
+
showNotice(r.data);
|
144 |
+
}
|
145 |
+
}
|
146 |
+
} else if (r) {
|
147 |
+
showNotice(r);
|
148 |
+
}
|
149 |
+
spinner.hide();
|
150 |
+
submit.fadeIn('fast');
|
151 |
+
notice.show('fast');
|
152 |
+
},
|
153 |
+
error: function(jqXHR, textStatus, errorThrown) {
|
154 |
+
notice.addClass('error').append('<p>' + jqXHR.responseText + '</p>').show('fast');
|
155 |
+
console.log(textStatus, jqXHR, errorThrown);
|
156 |
+
}
|
157 |
+
};
|
158 |
+
submit.click(function(e) {
|
159 |
+
e.preventDefault();
|
160 |
+
notice.hide('fast', function() {
|
161 |
+
var r = confirm('You Are About To Delete Ulike Data/Logs.\nThis Action Is Not Reversible.\n\n Choose \'Cancel\' to stop, \'OK\' to delete.');
|
162 |
+
if (r == true) {
|
163 |
+
notice.removeClass('error updated').empty();
|
164 |
+
$.ajax(action);
|
165 |
+
}
|
166 |
+
});
|
167 |
+
});
|
168 |
+
});
|
169 |
+
|
170 |
+
$('.wp-ulike-visual-select input').radioImageSelect();
|
171 |
+
|
172 |
+
$('.wp-ulike-settings-color').spectrum({
|
173 |
+
allowEmpty: true,
|
174 |
+
showInput: true,
|
175 |
+
showAlpha: true,
|
176 |
+
disabled: false,
|
177 |
+
|
178 |
+
showSelectionPalette: true,
|
179 |
+
showPalette:true,
|
180 |
+
hideAfterPaletteSelect:true,
|
181 |
+
palette: [
|
182 |
+
['black', 'white', ' ']
|
183 |
+
],
|
184 |
+
clickoutFiresChange: true,
|
185 |
+
showInitial: true,
|
186 |
+
containerClassName: 'wp-ulike-sp-wrapper',
|
187 |
+
localStorageKey: "wpulike.spectrum",
|
188 |
+
preferredFormat: "hex6",
|
189 |
+
change: function(color) {
|
190 |
+
if( color === null) {
|
191 |
+
$(this).val('');
|
192 |
+
} else {
|
193 |
+
$(this).val( color.toString() );
|
194 |
+
}
|
195 |
+
}
|
196 |
+
});
|
197 |
+
|
198 |
+
$('#wp-ulike-settings_wp_ulike_customize tr:not(:first-child)').addClass('custom-style-show');
|
199 |
+
|
200 |
+
function evaluate() {
|
201 |
+
var item = $(this);
|
202 |
+
var relatedItem = $('.custom-style-show');
|
203 |
+
|
204 |
+
if (item.is(":checked")) {
|
205 |
+
relatedItem.fadeIn();
|
206 |
+
} else {
|
207 |
+
relatedItem.fadeOut();
|
208 |
+
}
|
209 |
+
}
|
210 |
+
|
211 |
+
$('.wp_ulike_custom_style_activation').click(evaluate).each(evaluate);
|
212 |
+
|
213 |
+
$('#wp-ulike-settings_wp_ulike_general tr:nth-child(2), #wp-ulike-settings_wp_ulike_general tr:nth-child(3)').addClass('button-text-show');
|
214 |
+
$('#wp-ulike-settings_wp_ulike_general tr:nth-child(4), #wp-ulike-settings_wp_ulike_general tr:nth-child(5)').addClass('button-icon-show');
|
215 |
+
|
216 |
+
if (!$(".wp_ulike_check_text").next('img').hasClass("item-checked")) {
|
217 |
+
$('.button-text-show').hide();
|
218 |
+
}
|
219 |
+
if (!$(".wp_ulike_check_image").next('img').hasClass("item-checked")) {
|
220 |
+
$('.button-icon-show').hide();
|
221 |
+
}
|
222 |
+
|
223 |
+
$(".wp_ulike_check_text, .wp_ulike_check_image").next('img').click(function() {
|
224 |
+
if ($(".wp_ulike_check_text").next('img').hasClass("item-checked")) {
|
225 |
+
$('.button-text-show').fadeIn();
|
226 |
+
}
|
227 |
+
if (!$(".wp_ulike_check_text").next('img').hasClass("item-checked")) {
|
228 |
+
$('.button-text-show').hide();
|
229 |
+
}
|
230 |
+
if ($(".wp_ulike_check_image").next('img').hasClass("item-checked")) {
|
231 |
+
$('.button-icon-show').fadeIn();
|
232 |
+
}
|
233 |
+
if (!$(".wp_ulike_check_image").next('img').hasClass("item-checked")) {
|
234 |
+
$('.button-icon-show').hide();
|
235 |
+
}
|
236 |
+
});
|
237 |
+
|
238 |
+
});
|
239 |
+
|
240 |
+
})( jQuery );
|
241 |
+
|
242 |
+
|
243 |
+
/* ================== admin/assets/js/src/statistics.js =================== */
|
244 |
+
|
245 |
+
|
246 |
+
(function( $ ) {
|
247 |
+
|
248 |
+
$('.wp_ulike_delete').click(function(e) {
|
249 |
+
e.preventDefault();
|
250 |
+
var parent = $(this).closest('tr');
|
251 |
+
var value = $(this).data('id');
|
252 |
+
var table = $(this).data('table');
|
253 |
+
var nonce = $(this).data('nonce');
|
254 |
+
var r = confirm(wp_ulike_admin.logs_notif);
|
255 |
+
if (r === true) {
|
256 |
+
jQuery.ajax({
|
257 |
+
type:'POST',
|
258 |
+
url: ajaxurl,
|
259 |
+
data:{
|
260 |
+
action:'ulikelogs',
|
261 |
+
id : value,
|
262 |
+
nonce : nonce,
|
263 |
+
table : table
|
264 |
+
},
|
265 |
+
beforeSend:function(){
|
266 |
+
parent.css("background-color","#fff59d");
|
267 |
+
},
|
268 |
+
success: function( response ) {
|
269 |
+
if( response.success ) {
|
270 |
+
parent.fadeOut(300);
|
271 |
+
} else {
|
272 |
+
parent.css("background-color","#ef9a9a");
|
273 |
+
}
|
274 |
+
}
|
275 |
+
});
|
276 |
+
}
|
277 |
+
});
|
278 |
+
|
279 |
+
// Charts stack array to save data
|
280 |
+
window.wpUlikechartsInfo = [];
|
281 |
+
|
282 |
+
$.fn.WpUlikeAjaxStats = function( method, value ){
|
283 |
+
// local var
|
284 |
+
var theResponse = null;
|
285 |
+
// returnValue = $.isPlainObject( value ) ? $.parseJSON( value ) : value;
|
286 |
+
|
287 |
+
// jQuery ajax
|
288 |
+
$.ajax({
|
289 |
+
type :'POST',
|
290 |
+
dataType : 'json',
|
291 |
+
url : ajaxurl,
|
292 |
+
async : false,
|
293 |
+
data :{
|
294 |
+
action: 'wp_ulike_ajax_stats',
|
295 |
+
method: method,
|
296 |
+
value : value,
|
297 |
+
nonce : wp_ulike_admin.nonce_field
|
298 |
+
},
|
299 |
+
success : function( response ){
|
300 |
+
if( response.success ) {
|
301 |
+
theResponse = JSON.parse( response.data );
|
302 |
+
} else {
|
303 |
+
theResponse = 0;
|
304 |
+
}
|
305 |
+
}
|
306 |
+
});
|
307 |
+
// Return the response text
|
308 |
+
return theResponse;
|
309 |
+
};
|
310 |
+
|
311 |
+
if( wp_ulike_admin.hook_address.indexOf("wp-ulike-statistics") !== -1 ) {
|
312 |
+
// Get single var component
|
313 |
+
Vue.component('get-var', {
|
314 |
+
props: ['callback', 'args'],
|
315 |
+
data: function () {
|
316 |
+
return {
|
317 |
+
output : '...'
|
318 |
+
}
|
319 |
+
},
|
320 |
+
mounted() {
|
321 |
+
this.output = this.fetchData();
|
322 |
+
// Remove spinner class
|
323 |
+
this.$nextTick(function () {
|
324 |
+
this.removeClass( this.$el.offsetParent );
|
325 |
+
});
|
326 |
+
},
|
327 |
+
methods:{
|
328 |
+
fetchData () {
|
329 |
+
return $.fn.WpUlikeAjaxStats( this.callback, this.args )
|
330 |
+
},
|
331 |
+
removeClass( element ){
|
332 |
+
element.classList.remove( 'wp-ulike-is-loading' );
|
333 |
+
}
|
334 |
+
}
|
335 |
+
});
|
336 |
+
// Get charts object component
|
337 |
+
Vue.component('get-chart', {
|
338 |
+
props: ['callback', 'args', 'identify', 'type'],
|
339 |
+
mounted() {
|
340 |
+
if( this.type == 'line' ) {
|
341 |
+
this.planetChartData = this.fetchData();
|
342 |
+
this.createLineChart( this.planetChartData );
|
343 |
+
} else {
|
344 |
+
this.createPieChart();
|
345 |
+
}
|
346 |
+
// Remove spinner class
|
347 |
+
this.$nextTick(function () {
|
348 |
+
this.removeClass( this.$el.offsetParent );
|
349 |
+
});
|
350 |
+
},
|
351 |
+
methods:{
|
352 |
+
fetchData () {
|
353 |
+
return $.fn.WpUlikeAjaxStats( this.callback, this.args );
|
354 |
+
},
|
355 |
+
createLineChart( chartData ) {
|
356 |
+
// Push data stats in dataset options
|
357 |
+
chartData.options['data'] = chartData.data;
|
358 |
+
// And finally draw it
|
359 |
+
this.drawChart({
|
360 |
+
// The type of chart we want to create
|
361 |
+
type: 'line',
|
362 |
+
// The data for our dataset
|
363 |
+
data: {
|
364 |
+
labels : chartData.label,
|
365 |
+
datasets: [
|
366 |
+
chartData.options
|
367 |
+
]
|
368 |
+
}
|
369 |
+
});
|
370 |
+
// Set info for this canvas
|
371 |
+
this.setInfo( chartData );
|
372 |
+
},
|
373 |
+
createPieChart() {
|
374 |
+
// Define stack variables
|
375 |
+
var pieData = [],
|
376 |
+
pieBackground = [],
|
377 |
+
pieLabels = [];
|
378 |
+
// Get the info of each chart
|
379 |
+
window.wpUlikechartsInfo.forEach(function( value, key ){
|
380 |
+
pieData.push( value.sum );
|
381 |
+
pieBackground.push( value.background );
|
382 |
+
pieLabels.push( value.label );
|
383 |
+
});
|
384 |
+
// And finally draw it
|
385 |
+
this.drawChart({
|
386 |
+
// The type of chart we want to create
|
387 |
+
type: 'pie',
|
388 |
+
// The data for our dataset
|
389 |
+
data: {
|
390 |
+
datasets: [{
|
391 |
+
data : pieData,
|
392 |
+
backgroundColor: pieBackground,
|
393 |
+
}],
|
394 |
+
// These labels appear in the legend and in the tooltips when hovering different arcs
|
395 |
+
labels: pieLabels
|
396 |
+
}
|
397 |
+
});
|
398 |
+
},
|
399 |
+
drawChart( chartArgs ){
|
400 |
+
// Get canvas element
|
401 |
+
const ctx = document.getElementById( this.identify );
|
402 |
+
// Draw Chart
|
403 |
+
const chart = new Chart( ctx, chartArgs );
|
404 |
+
},
|
405 |
+
setInfo( chartData ){
|
406 |
+
var sumStack = 0;
|
407 |
+
// Get the sum of total likes
|
408 |
+
chartData.data.forEach(function( num ){
|
409 |
+
sumStack += parseFloat( num ) || 0;
|
410 |
+
});
|
411 |
+
// Upgrade wpUlikechartsInfo array
|
412 |
+
window.wpUlikechartsInfo.push({
|
413 |
+
type : this.identify,
|
414 |
+
sum : sumStack,
|
415 |
+
label : chartData.options.label,
|
416 |
+
background: chartData.options.backgroundColor
|
417 |
+
});
|
418 |
+
},
|
419 |
+
removeClass( element ){
|
420 |
+
element.classList.remove( 'wp-ulike-is-loading' );
|
421 |
+
}
|
422 |
+
}
|
423 |
+
});
|
424 |
+
|
425 |
+
new Vue({
|
426 |
+
el: '#wp-ulike-stats-app',
|
427 |
+
});
|
428 |
+
}
|
429 |
+
|
430 |
+
// on document ready
|
431 |
+
$(function(){
|
432 |
+
$('.wp-ulike-match-height').matchHeight();
|
433 |
+
});
|
434 |
+
|
435 |
+
})( jQuery );
|
admin/assets/js/settings.js
DELETED
@@ -1,294 +0,0 @@
|
|
1 |
-
/*! WP ULike - v3.4
|
2 |
-
* https://wpulike.com
|
3 |
-
* Alimir 2018;
|
4 |
-
*/
|
5 |
-
|
6 |
-
|
7 |
-
/* ================== admin/assets/js/src/settings/visual-select.js =================== */
|
8 |
-
|
9 |
-
|
10 |
-
/*!
|
11 |
-
* Radio image select
|
12 |
-
**/
|
13 |
-
(function($) {
|
14 |
-
// Register jQuery plugin.
|
15 |
-
$.fn.radioImageSelect = function(options) {
|
16 |
-
// Default var for options.
|
17 |
-
var defaults = {
|
18 |
-
// Img class.
|
19 |
-
imgItemClass: 'radio-img-item',
|
20 |
-
// Img Checked class.
|
21 |
-
imgItemCheckedClass: 'item-checked',
|
22 |
-
// Is need hide label connected?
|
23 |
-
hideLabel: true
|
24 |
-
},
|
25 |
-
|
26 |
-
/**
|
27 |
-
* Method firing when need to update classes.
|
28 |
-
*/
|
29 |
-
syncClassChecked = function(img) {
|
30 |
-
var radioName = img.prev('input[type="radio"]').attr('name');
|
31 |
-
|
32 |
-
$('input[name="' + radioName + '"]').each(function() {
|
33 |
-
// Define img by radio name.
|
34 |
-
var myImg = $(this).next('img');
|
35 |
-
|
36 |
-
// Add / Remove Checked class.
|
37 |
-
if ($(this).prop('checked')) {
|
38 |
-
myImg.addClass(options.imgItemCheckedClass);
|
39 |
-
} else {
|
40 |
-
myImg.removeClass(options.imgItemCheckedClass);
|
41 |
-
}
|
42 |
-
});
|
43 |
-
};
|
44 |
-
|
45 |
-
// Parse args..
|
46 |
-
options = $.extend(defaults, options);
|
47 |
-
|
48 |
-
// Start jQuery loop on elements..
|
49 |
-
return this.each(function() {
|
50 |
-
$(this)
|
51 |
-
// First all we are need to hide the radio input.
|
52 |
-
.hide()
|
53 |
-
// And add new img element by data-image source.
|
54 |
-
.after('<img src="' + $(this).data('image') + '" alt="radio image" />');
|
55 |
-
|
56 |
-
// Define the new img element.
|
57 |
-
var img = $(this).next('img');
|
58 |
-
// Add item class.
|
59 |
-
img.addClass(options.imgItemClass);
|
60 |
-
|
61 |
-
// Check if need to hide label connected.
|
62 |
-
if (options.hideLabel) {
|
63 |
-
$('label[for=' + $(this).attr('id') + ']').hide();
|
64 |
-
}
|
65 |
-
|
66 |
-
// When we are created the img and radio get checked, we need add checked class.
|
67 |
-
if ($(this).prop('checked')) {
|
68 |
-
img.addClass(options.imgItemCheckedClass);
|
69 |
-
}
|
70 |
-
|
71 |
-
// Create click event on img element.
|
72 |
-
img.on('click', function(e) {
|
73 |
-
$(this)
|
74 |
-
// Prev to current radio input.
|
75 |
-
.prev('input[type="radio"]')
|
76 |
-
// Set checked attr.
|
77 |
-
.prop('checked', true)
|
78 |
-
// Run change event for radio element.
|
79 |
-
.trigger('change');
|
80 |
-
|
81 |
-
// Firing the sync classes.
|
82 |
-
syncClassChecked($(this));
|
83 |
-
});
|
84 |
-
});
|
85 |
-
}
|
86 |
-
})(jQuery);
|
87 |
-
|
88 |
-
|
89 |
-
/* ================== admin/assets/js/src/settings/panel.js =================== */
|
90 |
-
|
91 |
-
|
92 |
-
/*!
|
93 |
-
* Settings scripts
|
94 |
-
**/
|
95 |
-
jQuery(document).ready(function($) {
|
96 |
-
'use strict';
|
97 |
-
var form = $('form.wrap'),
|
98 |
-
page = $('input[name="option_page"]', form).val(),
|
99 |
-
tabs = $('.wp-ulike-settings-tabs', form),
|
100 |
-
current = parseInt(sessionStorage.getItem(page + '_current_tab'), 10) || 0;
|
101 |
-
$('.wp-ulike-settings-section', form).each(function(i, el) {
|
102 |
-
var setting = $(el).val(),
|
103 |
-
title = $(el).prev('h2'),
|
104 |
-
section = $('<div>').attr('id', page + '_' + setting);
|
105 |
-
$(el).nextAll().each(function() {
|
106 |
-
var tag = $(this).prop('tagName');
|
107 |
-
if (tag === 'H2' || tag === 'INPUT') {
|
108 |
-
return false;
|
109 |
-
}
|
110 |
-
$(this).appendTo(section);
|
111 |
-
});
|
112 |
-
if (tabs.length && title.length) {
|
113 |
-
section.addClass('wp-ulike-settings-tab').hide();
|
114 |
-
title.appendTo(tabs).click(function(e) {
|
115 |
-
e.preventDefault();
|
116 |
-
if (!title.hasClass('active')) {
|
117 |
-
$('.wp-ulike-settings-tab.active', form).fadeOut('fast', function() {
|
118 |
-
$('.active', form).removeClass('active');
|
119 |
-
title.addClass('active');
|
120 |
-
section.fadeIn('fast').addClass('active');
|
121 |
-
});
|
122 |
-
sessionStorage.setItem(page + '_current_tab', i);
|
123 |
-
}
|
124 |
-
});
|
125 |
-
if (current === i) {
|
126 |
-
title.addClass('active');
|
127 |
-
section.show().addClass('active');
|
128 |
-
}
|
129 |
-
tabs.after(section);
|
130 |
-
} else {
|
131 |
-
title.prependTo(section);
|
132 |
-
$(el).after(section);
|
133 |
-
}
|
134 |
-
});
|
135 |
-
$('label[for="hidden"]', form).each(function() {
|
136 |
-
$(this).parents('tr').addClass('hide-label');
|
137 |
-
});
|
138 |
-
$('.wp-ulike-settings-media', form).each(function() {
|
139 |
-
var frame,
|
140 |
-
select = $('.wp-ulike-select-media', this),
|
141 |
-
remove = $('.wp-ulike-remove-media', this),
|
142 |
-
input = $('input', this),
|
143 |
-
preview = $('img', this),
|
144 |
-
title = select.attr('title'),
|
145 |
-
text = select.text();
|
146 |
-
if (input.val() < 1) {
|
147 |
-
preview = $('<img class="attachment-medium">');
|
148 |
-
preview.prependTo(this).hide();
|
149 |
-
remove.hide();
|
150 |
-
}
|
151 |
-
select.click(function(e) {
|
152 |
-
e.preventDefault();
|
153 |
-
if (frame) {
|
154 |
-
frame.open();
|
155 |
-
return;
|
156 |
-
}
|
157 |
-
frame = wp.media({
|
158 |
-
title: title,
|
159 |
-
button: {
|
160 |
-
text: text
|
161 |
-
},
|
162 |
-
multiple: false
|
163 |
-
});
|
164 |
-
frame.on('select', function() {
|
165 |
-
var attachment = frame.state().get('selection').first().toJSON(),
|
166 |
-
thumb;
|
167 |
-
input.val(attachment.id);
|
168 |
-
thumb = attachment.sizes.medium || attachment.sizes.full;
|
169 |
-
preview.attr({
|
170 |
-
src: thumb.url,
|
171 |
-
width: thumb.width,
|
172 |
-
height: thumb.height
|
173 |
-
});
|
174 |
-
preview.show();
|
175 |
-
remove.show();
|
176 |
-
});
|
177 |
-
frame.open();
|
178 |
-
});
|
179 |
-
remove.click(function(e) {
|
180 |
-
e.preventDefault();
|
181 |
-
input.val('');
|
182 |
-
preview.hide();
|
183 |
-
remove.hide();
|
184 |
-
});
|
185 |
-
});
|
186 |
-
$('.wp-ulike-settings-action', form).each(function() {
|
187 |
-
var submit = $('[type="button"]', this),
|
188 |
-
spinner = $('<img>').attr({
|
189 |
-
src: ajax.spinner,
|
190 |
-
alt: 'loading'
|
191 |
-
}).insertAfter(submit).hide(),
|
192 |
-
notice = $('<div>').addClass('settings-error').insertBefore(submit).hide(),
|
193 |
-
action = {
|
194 |
-
data: {
|
195 |
-
action: submit.attr('id')
|
196 |
-
},
|
197 |
-
dataType: 'json',
|
198 |
-
type: 'POST',
|
199 |
-
url: ajax.url,
|
200 |
-
beforeSend: function() {
|
201 |
-
spinner.fadeIn('fast');
|
202 |
-
submit.hide();
|
203 |
-
},
|
204 |
-
success: function(r) {
|
205 |
-
var noticeClass = 'error',
|
206 |
-
showNotice = function(msg) {
|
207 |
-
notice.html('<p>' + String(msg) + '</p>').addClass(noticeClass).show();
|
208 |
-
};
|
209 |
-
if (typeof r === 'object') {
|
210 |
-
if (r.hasOwnProperty('success') && r.success) {
|
211 |
-
noticeClass = 'updated';
|
212 |
-
}
|
213 |
-
if (r.hasOwnProperty('data') && r.data) {
|
214 |
-
if (typeof r.data === 'object') {
|
215 |
-
if (r.data.hasOwnProperty('reload') && r.data.reload) {
|
216 |
-
document.location.reload();
|
217 |
-
return;
|
218 |
-
}
|
219 |
-
if (r.data.hasOwnProperty('message') && r.data.message) {
|
220 |
-
showNotice(r.data.message);
|
221 |
-
}
|
222 |
-
} else {
|
223 |
-
showNotice(r.data);
|
224 |
-
}
|
225 |
-
}
|
226 |
-
} else if (r) {
|
227 |
-
showNotice(r);
|
228 |
-
}
|
229 |
-
spinner.hide();
|
230 |
-
submit.fadeIn('fast');
|
231 |
-
notice.show('fast');
|
232 |
-
},
|
233 |
-
error: function(jqXHR, textStatus, errorThrown) {
|
234 |
-
notice.addClass('error').append('<p>' + jqXHR.responseText + '</p>').show('fast');
|
235 |
-
console.log(textStatus, jqXHR, errorThrown);
|
236 |
-
}
|
237 |
-
};
|
238 |
-
submit.click(function(e) {
|
239 |
-
e.preventDefault();
|
240 |
-
notice.hide('fast', function() {
|
241 |
-
var r = confirm('You Are About To Delete Ulike Data/Logs.\nThis Action Is Not Reversible.\n\n Choose \'Cancel\' to stop, \'OK\' to delete.');
|
242 |
-
if (r == true) {
|
243 |
-
notice.removeClass('error updated').empty();
|
244 |
-
$.ajax(action);
|
245 |
-
}
|
246 |
-
});
|
247 |
-
});
|
248 |
-
});
|
249 |
-
|
250 |
-
$('.wp-ulike-visual-select input').radioImageSelect();
|
251 |
-
|
252 |
-
$('.wp-ulike-settings-color').wpColorPicker();
|
253 |
-
|
254 |
-
$('#wp-ulike-settings_wp_ulike_customize tr:not(:first-child)').addClass('custom-style-show');
|
255 |
-
|
256 |
-
function evaluate() {
|
257 |
-
var item = $(this);
|
258 |
-
var relatedItem = $('.custom-style-show');
|
259 |
-
|
260 |
-
if (item.is(":checked")) {
|
261 |
-
relatedItem.fadeIn();
|
262 |
-
} else {
|
263 |
-
relatedItem.fadeOut();
|
264 |
-
}
|
265 |
-
}
|
266 |
-
|
267 |
-
$('.wp_ulike_custom_style_activation').click(evaluate).each(evaluate);
|
268 |
-
|
269 |
-
$('#wp-ulike-settings_wp_ulike_general tr:nth-child(2), #wp-ulike-settings_wp_ulike_general tr:nth-child(3)').addClass('button-text-show');
|
270 |
-
$('#wp-ulike-settings_wp_ulike_general tr:nth-child(4), #wp-ulike-settings_wp_ulike_general tr:nth-child(5)').addClass('button-icon-show');
|
271 |
-
|
272 |
-
if (!$(".wp_ulike_check_text").next('img').hasClass("item-checked")) {
|
273 |
-
$('.button-text-show').hide();
|
274 |
-
}
|
275 |
-
if (!$(".wp_ulike_check_image").next('img').hasClass("item-checked")) {
|
276 |
-
$('.button-icon-show').hide();
|
277 |
-
}
|
278 |
-
|
279 |
-
$(".wp_ulike_check_text, .wp_ulike_check_image").next('img').click(function() {
|
280 |
-
if ($(".wp_ulike_check_text").next('img').hasClass("item-checked")) {
|
281 |
-
$('.button-text-show').fadeIn();
|
282 |
-
}
|
283 |
-
if (!$(".wp_ulike_check_text").next('img').hasClass("item-checked")) {
|
284 |
-
$('.button-text-show').hide();
|
285 |
-
}
|
286 |
-
if ($(".wp_ulike_check_image").next('img').hasClass("item-checked")) {
|
287 |
-
$('.button-icon-show').fadeIn();
|
288 |
-
}
|
289 |
-
if (!$(".wp_ulike_check_image").next('img').hasClass("item-checked")) {
|
290 |
-
$('.button-icon-show').hide();
|
291 |
-
}
|
292 |
-
});
|
293 |
-
|
294 |
-
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
admin/assets/js/solo/vue/vue.js
ADDED
@@ -0,0 +1,10947 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/*!
|
2 |
+
* Vue.js v2.5.16
|
3 |
+
* (c) 2014-2018 Evan You
|
4 |
+
* Released under the MIT License.
|
5 |
+
*/
|
6 |
+
(function (global, factory) {
|
7 |
+
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
|
8 |
+
typeof define === 'function' && define.amd ? define(factory) :
|
9 |
+
(global.Vue = factory());
|
10 |
+
}(this, (function () { 'use strict';
|
11 |
+
|
12 |
+
/* */
|
13 |
+
|
14 |
+
var emptyObject = Object.freeze({});
|
15 |
+
|
16 |
+
// these helpers produces better vm code in JS engines due to their
|
17 |
+
// explicitness and function inlining
|
18 |
+
function isUndef (v) {
|
19 |
+
return v === undefined || v === null
|
20 |
+
}
|
21 |
+
|
22 |
+
function isDef (v) {
|
23 |
+
return v !== undefined && v !== null
|
24 |
+
}
|
25 |
+
|
26 |
+
function isTrue (v) {
|
27 |
+
return v === true
|
28 |
+
}
|
29 |
+
|
30 |
+
function isFalse (v) {
|
31 |
+
return v === false
|
32 |
+
}
|
33 |
+
|
34 |
+
/**
|
35 |
+
* Check if value is primitive
|
36 |
+
*/
|
37 |
+
function isPrimitive (value) {
|
38 |
+
return (
|
39 |
+
typeof value === 'string' ||
|
40 |
+
typeof value === 'number' ||
|
41 |
+
// $flow-disable-line
|
42 |
+
typeof value === 'symbol' ||
|
43 |
+
typeof value === 'boolean'
|
44 |
+
)
|
45 |
+
}
|
46 |
+
|
47 |
+
/**
|
48 |
+
* Quick object check - this is primarily used to tell
|
49 |
+
* Objects from primitive values when we know the value
|
50 |
+
* is a JSON-compliant type.
|
51 |
+
*/
|
52 |
+
function isObject (obj) {
|
53 |
+
return obj !== null && typeof obj === 'object'
|
54 |
+
}
|
55 |
+
|
56 |
+
/**
|
57 |
+
* Get the raw type string of a value e.g. [object Object]
|
58 |
+
*/
|
59 |
+
var _toString = Object.prototype.toString;
|
60 |
+
|
61 |
+
function toRawType (value) {
|
62 |
+
return _toString.call(value).slice(8, -1)
|
63 |
+
}
|
64 |
+
|
65 |
+
/**
|
66 |
+
* Strict object type check. Only returns true
|
67 |
+
* for plain JavaScript objects.
|
68 |
+
*/
|
69 |
+
function isPlainObject (obj) {
|
70 |
+
return _toString.call(obj) === '[object Object]'
|
71 |
+
}
|
72 |
+
|
73 |
+
function isRegExp (v) {
|
74 |
+
return _toString.call(v) === '[object RegExp]'
|
75 |
+
}
|
76 |
+
|
77 |
+
/**
|
78 |
+
* Check if val is a valid array index.
|
79 |
+
*/
|
80 |
+
function isValidArrayIndex (val) {
|
81 |
+
var n = parseFloat(String(val));
|
82 |
+
return n >= 0 && Math.floor(n) === n && isFinite(val)
|
83 |
+
}
|
84 |
+
|
85 |
+
/**
|
86 |
+
* Convert a value to a string that is actually rendered.
|
87 |
+
*/
|
88 |
+
function toString (val) {
|
89 |
+
return val == null
|
90 |
+
? ''
|
91 |
+
: typeof val === 'object'
|
92 |
+
? JSON.stringify(val, null, 2)
|
93 |
+
: String(val)
|
94 |
+
}
|
95 |
+
|
96 |
+
/**
|
97 |
+
* Convert a input value to a number for persistence.
|
98 |
+
* If the conversion fails, return original string.
|
99 |
+
*/
|
100 |
+
function toNumber (val) {
|
101 |
+
var n = parseFloat(val);
|
102 |
+
return isNaN(n) ? val : n
|
103 |
+
}
|
104 |
+
|
105 |
+
/**
|
106 |
+
* Make a map and return a function for checking if a key
|
107 |
+
* is in that map.
|
108 |
+
*/
|
109 |
+
function makeMap (
|
110 |
+
str,
|
111 |
+
expectsLowerCase
|
112 |
+
) {
|
113 |
+
var map = Object.create(null);
|
114 |
+
var list = str.split(',');
|
115 |
+
for (var i = 0; i < list.length; i++) {
|
116 |
+
map[list[i]] = true;
|
117 |
+
}
|
118 |
+
return expectsLowerCase
|
119 |
+
? function (val) { return map[val.toLowerCase()]; }
|
120 |
+
: function (val) { return map[val]; }
|
121 |
+
}
|
122 |
+
|
123 |
+
/**
|
124 |
+
* Check if a tag is a built-in tag.
|
125 |
+
*/
|
126 |
+
var isBuiltInTag = makeMap('slot,component', true);
|
127 |
+
|
128 |
+
/**
|
129 |
+
* Check if a attribute is a reserved attribute.
|
130 |
+
*/
|
131 |
+
var isReservedAttribute = makeMap('key,ref,slot,slot-scope,is');
|
132 |
+
|
133 |
+
/**
|
134 |
+
* Remove an item from an array
|
135 |
+
*/
|
136 |
+
function remove (arr, item) {
|
137 |
+
if (arr.length) {
|
138 |
+
var index = arr.indexOf(item);
|
139 |
+
if (index > -1) {
|
140 |
+
return arr.splice(index, 1)
|
141 |
+
}
|
142 |
+
}
|
143 |
+
}
|
144 |
+
|
145 |
+
/**
|
146 |
+
* Check whether the object has the property.
|
147 |
+
*/
|
148 |
+
var hasOwnProperty = Object.prototype.hasOwnProperty;
|
149 |
+
function hasOwn (obj, key) {
|
150 |
+
return hasOwnProperty.call(obj, key)
|
151 |
+
}
|
152 |
+
|
153 |
+
/**
|
154 |
+
* Create a cached version of a pure function.
|
155 |
+
*/
|
156 |
+
function cached (fn) {
|
157 |
+
var cache = Object.create(null);
|
158 |
+
return (function cachedFn (str) {
|
159 |
+
var hit = cache[str];
|
160 |
+
return hit || (cache[str] = fn(str))
|
161 |
+
})
|
162 |
+
}
|
163 |
+
|
164 |
+
/**
|
165 |
+
* Camelize a hyphen-delimited string.
|
166 |
+
*/
|
167 |
+
var camelizeRE = /-(\w)/g;
|
168 |
+
var camelize = cached(function (str) {
|
169 |
+
return str.replace(camelizeRE, function (_, c) { return c ? c.toUpperCase() : ''; })
|
170 |
+
});
|
171 |
+
|
172 |
+
/**
|
173 |
+
* Capitalize a string.
|
174 |
+
*/
|
175 |
+
var capitalize = cached(function (str) {
|
176 |
+
return str.charAt(0).toUpperCase() + str.slice(1)
|
177 |
+
});
|
178 |
+
|
179 |
+
/**
|
180 |
+
* Hyphenate a camelCase string.
|
181 |
+
*/
|
182 |
+
var hyphenateRE = /\B([A-Z])/g;
|
183 |
+
var hyphenate = cached(function (str) {
|
184 |
+
return str.replace(hyphenateRE, '-$1').toLowerCase()
|
185 |
+
});
|
186 |
+
|
187 |
+
/**
|
188 |
+
* Simple bind polyfill for environments that do not support it... e.g.
|
189 |
+
* PhantomJS 1.x. Technically we don't need this anymore since native bind is
|
190 |
+
* now more performant in most browsers, but removing it would be breaking for
|
191 |
+
* code that was able to run in PhantomJS 1.x, so this must be kept for
|
192 |
+
* backwards compatibility.
|
193 |
+
*/
|
194 |
+
|
195 |
+
/* istanbul ignore next */
|
196 |
+
function polyfillBind (fn, ctx) {
|
197 |
+
function boundFn (a) {
|
198 |
+
var l = arguments.length;
|
199 |
+
return l
|
200 |
+
? l > 1
|
201 |
+
? fn.apply(ctx, arguments)
|
202 |
+
: fn.call(ctx, a)
|
203 |
+
: fn.call(ctx)
|
204 |
+
}
|
205 |
+
|
206 |
+
boundFn._length = fn.length;
|
207 |
+
return boundFn
|
208 |
+
}
|
209 |
+
|
210 |
+
function nativeBind (fn, ctx) {
|
211 |
+
return fn.bind(ctx)
|
212 |
+
}
|
213 |
+
|
214 |
+
var bind = Function.prototype.bind
|
215 |
+
? nativeBind
|
216 |
+
: polyfillBind;
|
217 |
+
|
218 |
+
/**
|
219 |
+
* Convert an Array-like object to a real Array.
|
220 |
+
*/
|
221 |
+
function toArray (list, start) {
|
222 |
+
start = start || 0;
|
223 |
+
var i = list.length - start;
|
224 |
+
var ret = new Array(i);
|
225 |
+
while (i--) {
|
226 |
+
ret[i] = list[i + start];
|
227 |
+
}
|
228 |
+
return ret
|
229 |
+
}
|
230 |
+
|
231 |
+
/**
|
232 |
+
* Mix properties into target object.
|
233 |
+
*/
|
234 |
+
function extend (to, _from) {
|
235 |
+
for (var key in _from) {
|
236 |
+
to[key] = _from[key];
|
237 |
+
}
|
238 |
+
return to
|
239 |
+
}
|
240 |
+
|
241 |
+
/**
|
242 |
+
* Merge an Array of Objects into a single Object.
|
243 |
+
*/
|
244 |
+
function toObject (arr) {
|
245 |
+
var res = {};
|
246 |
+
for (var i = 0; i < arr.length; i++) {
|
247 |
+
if (arr[i]) {
|
248 |
+
extend(res, arr[i]);
|
249 |
+
}
|
250 |
+
}
|
251 |
+
return res
|
252 |
+
}
|
253 |
+
|
254 |
+
/**
|
255 |
+
* Perform no operation.
|
256 |
+
* Stubbing args to make Flow happy without leaving useless transpiled code
|
257 |
+
* with ...rest (https://flow.org/blog/2017/05/07/Strict-Function-Call-Arity/)
|
258 |
+
*/
|
259 |
+
function noop (a, b, c) {}
|
260 |
+
|
261 |
+
/**
|
262 |
+
* Always return false.
|
263 |
+
*/
|
264 |
+
var no = function (a, b, c) { return false; };
|
265 |
+
|
266 |
+
/**
|
267 |
+
* Return same value
|
268 |
+
*/
|
269 |
+
var identity = function (_) { return _; };
|
270 |
+
|
271 |
+
/**
|
272 |
+
* Generate a static keys string from compiler modules.
|
273 |
+
*/
|
274 |
+
function genStaticKeys (modules) {
|
275 |
+
return modules.reduce(function (keys, m) {
|
276 |
+
return keys.concat(m.staticKeys || [])
|
277 |
+
}, []).join(',')
|
278 |
+
}
|
279 |
+
|
280 |
+
/**
|
281 |
+
* Check if two values are loosely equal - that is,
|
282 |
+
* if they are plain objects, do they have the same shape?
|
283 |
+
*/
|
284 |
+
function looseEqual (a, b) {
|
285 |
+
if (a === b) { return true }
|
286 |
+
var isObjectA = isObject(a);
|
287 |
+
var isObjectB = isObject(b);
|
288 |
+
if (isObjectA && isObjectB) {
|
289 |
+
try {
|
290 |
+
var isArrayA = Array.isArray(a);
|
291 |
+
var isArrayB = Array.isArray(b);
|
292 |
+
if (isArrayA && isArrayB) {
|
293 |
+
return a.length === b.length && a.every(function (e, i) {
|
294 |
+
return looseEqual(e, b[i])
|
295 |
+
})
|
296 |
+
} else if (!isArrayA && !isArrayB) {
|
297 |
+
var keysA = Object.keys(a);
|
298 |
+
var keysB = Object.keys(b);
|
299 |
+
return keysA.length === keysB.length && keysA.every(function (key) {
|
300 |
+
return looseEqual(a[key], b[key])
|
301 |
+
})
|
302 |
+
} else {
|
303 |
+
/* istanbul ignore next */
|
304 |
+
return false
|
305 |
+
}
|
306 |
+
} catch (e) {
|
307 |
+
/* istanbul ignore next */
|
308 |
+
return false
|
309 |
+
}
|
310 |
+
} else if (!isObjectA && !isObjectB) {
|
311 |
+
return String(a) === String(b)
|
312 |
+
} else {
|
313 |
+
return false
|
314 |
+
}
|
315 |
+
}
|
316 |
+
|
317 |
+
function looseIndexOf (arr, val) {
|
318 |
+
for (var i = 0; i < arr.length; i++) {
|
319 |
+
if (looseEqual(arr[i], val)) { return i }
|
320 |
+
}
|
321 |
+
return -1
|
322 |
+
}
|
323 |
+
|
324 |
+
/**
|
325 |
+
* Ensure a function is called only once.
|
326 |
+
*/
|
327 |
+
function once (fn) {
|
328 |
+
var called = false;
|
329 |
+
return function () {
|
330 |
+
if (!called) {
|
331 |
+
called = true;
|
332 |
+
fn.apply(this, arguments);
|
333 |
+
}
|
334 |
+
}
|
335 |
+
}
|
336 |
+
|
337 |
+
var SSR_ATTR = 'data-server-rendered';
|
338 |
+
|
339 |
+
var ASSET_TYPES = [
|
340 |
+
'component',
|
341 |
+
'directive',
|
342 |
+
'filter'
|
343 |
+
];
|
344 |
+
|
345 |
+
var LIFECYCLE_HOOKS = [
|
346 |
+
'beforeCreate',
|
347 |
+
'created',
|
348 |
+
'beforeMount',
|
349 |
+
'mounted',
|
350 |
+
'beforeUpdate',
|
351 |
+
'updated',
|
352 |
+
'beforeDestroy',
|
353 |
+
'destroyed',
|
354 |
+
'activated',
|
355 |
+
'deactivated',
|
356 |
+
'errorCaptured'
|
357 |
+
];
|
358 |
+
|
359 |
+
/* */
|
360 |
+
|
361 |
+
var config = ({
|
362 |
+
/**
|
363 |
+
* Option merge strategies (used in core/util/options)
|
364 |
+
*/
|
365 |
+
// $flow-disable-line
|
366 |
+
optionMergeStrategies: Object.create(null),
|
367 |
+
|
368 |
+
/**
|
369 |
+
* Whether to suppress warnings.
|
370 |
+
*/
|
371 |
+
silent: false,
|
372 |
+
|
373 |
+
/**
|
374 |
+
* Show production mode tip message on boot?
|
375 |
+
*/
|
376 |
+
productionTip: "development" !== 'production',
|
377 |
+
|
378 |
+
/**
|
379 |
+
* Whether to enable devtools
|
380 |
+
*/
|
381 |
+
devtools: "development" !== 'production',
|
382 |
+
|
383 |
+
/**
|
384 |
+
* Whether to record perf
|
385 |
+
*/
|
386 |
+
performance: false,
|
387 |
+
|
388 |
+
/**
|
389 |
+
* Error handler for watcher errors
|
390 |
+
*/
|
391 |
+
errorHandler: null,
|
392 |
+
|
393 |
+
/**
|
394 |
+
* Warn handler for watcher warns
|
395 |
+
*/
|
396 |
+
warnHandler: null,
|
397 |
+
|
398 |
+
/**
|
399 |
+
* Ignore certain custom elements
|
400 |
+
*/
|
401 |
+
ignoredElements: [],
|
402 |
+
|
403 |
+
/**
|
404 |
+
* Custom user key aliases for v-on
|
405 |
+
*/
|
406 |
+
// $flow-disable-line
|
407 |
+
keyCodes: Object.create(null),
|
408 |
+
|
409 |
+
/**
|
410 |
+
* Check if a tag is reserved so that it cannot be registered as a
|
411 |
+
* component. This is platform-dependent and may be overwritten.
|
412 |
+
*/
|
413 |
+
isReservedTag: no,
|
414 |
+
|
415 |
+
/**
|
416 |
+
* Check if an attribute is reserved so that it cannot be used as a component
|
417 |
+
* prop. This is platform-dependent and may be overwritten.
|
418 |
+
*/
|
419 |
+
isReservedAttr: no,
|
420 |
+
|
421 |
+
/**
|
422 |
+
* Check if a tag is an unknown element.
|
423 |
+
* Platform-dependent.
|
424 |
+
*/
|
425 |
+
isUnknownElement: no,
|
426 |
+
|
427 |
+
/**
|
428 |
+
* Get the namespace of an element
|
429 |
+
*/
|
430 |
+
getTagNamespace: noop,
|
431 |
+
|
432 |
+
/**
|
433 |
+
* Parse the real tag name for the specific platform.
|
434 |
+
*/
|
435 |
+
parsePlatformTagName: identity,
|
436 |
+
|
437 |
+
/**
|
438 |
+
* Check if an attribute must be bound using property, e.g. value
|
439 |
+
* Platform-dependent.
|
440 |
+
*/
|
441 |
+
mustUseProp: no,
|
442 |
+
|
443 |
+
/**
|
444 |
+
* Exposed for legacy reasons
|
445 |
+
*/
|
446 |
+
_lifecycleHooks: LIFECYCLE_HOOKS
|
447 |
+
})
|
448 |
+
|
449 |
+
/* */
|
450 |
+
|
451 |
+
/**
|
452 |
+
* Check if a string starts with $ or _
|
453 |
+
*/
|
454 |
+
function isReserved (str) {
|
455 |
+
var c = (str + '').charCodeAt(0);
|
456 |
+
return c === 0x24 || c === 0x5F
|
457 |
+
}
|
458 |
+
|
459 |
+
/**
|
460 |
+
* Define a property.
|
461 |
+
*/
|
462 |
+
function def (obj, key, val, enumerable) {
|
463 |
+
Object.defineProperty(obj, key, {
|
464 |
+
value: val,
|
465 |
+
enumerable: !!enumerable,
|
466 |
+
writable: true,
|
467 |
+
configurable: true
|
468 |
+
});
|
469 |
+
}
|
470 |
+
|
471 |
+
/**
|
472 |
+
* Parse simple path.
|
473 |
+
*/
|
474 |
+
var bailRE = /[^\w.$]/;
|
475 |
+
function parsePath (path) {
|
476 |
+
if (bailRE.test(path)) {
|
477 |
+
return
|
478 |
+
}
|
479 |
+
var segments = path.split('.');
|
480 |
+
return function (obj) {
|
481 |
+
for (var i = 0; i < segments.length; i++) {
|
482 |
+
if (!obj) { return }
|
483 |
+
obj = obj[segments[i]];
|
484 |
+
}
|
485 |
+
return obj
|
486 |
+
}
|
487 |
+
}
|
488 |
+
|
489 |
+
/* */
|
490 |
+
|
491 |
+
// can we use __proto__?
|
492 |
+
var hasProto = '__proto__' in {};
|
493 |
+
|
494 |
+
// Browser environment sniffing
|
495 |
+
var inBrowser = typeof window !== 'undefined';
|
496 |
+
var inWeex = typeof WXEnvironment !== 'undefined' && !!WXEnvironment.platform;
|
497 |
+
var weexPlatform = inWeex && WXEnvironment.platform.toLowerCase();
|
498 |
+
var UA = inBrowser && window.navigator.userAgent.toLowerCase();
|
499 |
+
var isIE = UA && /msie|trident/.test(UA);
|
500 |
+
var isIE9 = UA && UA.indexOf('msie 9.0') > 0;
|
501 |
+
var isEdge = UA && UA.indexOf('edge/') > 0;
|
502 |
+
var isAndroid = (UA && UA.indexOf('android') > 0) || (weexPlatform === 'android');
|
503 |
+
var isIOS = (UA && /iphone|ipad|ipod|ios/.test(UA)) || (weexPlatform === 'ios');
|
504 |
+
var isChrome = UA && /chrome\/\d+/.test(UA) && !isEdge;
|
505 |
+
|
506 |
+
// Firefox has a "watch" function on Object.prototype...
|
507 |
+
var nativeWatch = ({}).watch;
|
508 |
+
|
509 |
+
var supportsPassive = false;
|
510 |
+
if (inBrowser) {
|
511 |
+
try {
|
512 |
+
var opts = {};
|
513 |
+
Object.defineProperty(opts, 'passive', ({
|
514 |
+
get: function get () {
|
515 |
+
/* istanbul ignore next */
|
516 |
+
supportsPassive = true;
|
517 |
+
}
|
518 |
+
})); // https://github.com/facebook/flow/issues/285
|
519 |
+
window.addEventListener('test-passive', null, opts);
|
520 |
+
} catch (e) {}
|
521 |
+
}
|
522 |
+
|
523 |
+
// this needs to be lazy-evaled because vue may be required before
|
524 |
+
// vue-server-renderer can set VUE_ENV
|
525 |
+
var _isServer;
|
526 |
+
var isServerRendering = function () {
|
527 |
+
if (_isServer === undefined) {
|
528 |
+
/* istanbul ignore if */
|
529 |
+
if (!inBrowser && !inWeex && typeof global !== 'undefined') {
|
530 |
+
// detect presence of vue-server-renderer and avoid
|
531 |
+
// Webpack shimming the process
|
532 |
+
_isServer = global['process'].env.VUE_ENV === 'server';
|
533 |
+
} else {
|
534 |
+
_isServer = false;
|
535 |
+
}
|
536 |
+
}
|
537 |
+
return _isServer
|
538 |
+
};
|
539 |
+
|
540 |
+
// detect devtools
|
541 |
+
var devtools = inBrowser && window.__VUE_DEVTOOLS_GLOBAL_HOOK__;
|
542 |
+
|
543 |
+
/* istanbul ignore next */
|
544 |
+
function isNative (Ctor) {
|
545 |
+
return typeof Ctor === 'function' && /native code/.test(Ctor.toString())
|
546 |
+
}
|
547 |
+
|
548 |
+
var hasSymbol =
|
549 |
+
typeof Symbol !== 'undefined' && isNative(Symbol) &&
|
550 |
+
typeof Reflect !== 'undefined' && isNative(Reflect.ownKeys);
|
551 |
+
|
552 |
+
var _Set;
|
553 |
+
/* istanbul ignore if */ // $flow-disable-line
|
554 |
+
if (typeof Set !== 'undefined' && isNative(Set)) {
|
555 |
+
// use native Set when available.
|
556 |
+
_Set = Set;
|
557 |
+
} else {
|
558 |
+
// a non-standard Set polyfill that only works with primitive keys.
|
559 |
+
_Set = (function () {
|
560 |
+
function Set () {
|
561 |
+
this.set = Object.create(null);
|
562 |
+
}
|
563 |
+
Set.prototype.has = function has (key) {
|
564 |
+
return this.set[key] === true
|
565 |
+
};
|
566 |
+
Set.prototype.add = function add (key) {
|
567 |
+
this.set[key] = true;
|
568 |
+
};
|
569 |
+
Set.prototype.clear = function clear () {
|
570 |
+
this.set = Object.create(null);
|
571 |
+
};
|
572 |
+
|
573 |
+
return Set;
|
574 |
+
}());
|
575 |
+
}
|
576 |
+
|
577 |
+
/* */
|
578 |
+
|
579 |
+
var warn = noop;
|
580 |
+
var tip = noop;
|
581 |
+
var generateComponentTrace = (noop); // work around flow check
|
582 |
+
var formatComponentName = (noop);
|
583 |
+
|
584 |
+
{
|
585 |
+
var hasConsole = typeof console !== 'undefined';
|
586 |
+
var classifyRE = /(?:^|[-_])(\w)/g;
|
587 |
+
var classify = function (str) { return str
|
588 |
+
.replace(classifyRE, function (c) { return c.toUpperCase(); })
|
589 |
+
.replace(/[-_]/g, ''); };
|
590 |
+
|
591 |
+
warn = function (msg, vm) {
|
592 |
+
var trace = vm ? generateComponentTrace(vm) : '';
|
593 |
+
|
594 |
+
if (config.warnHandler) {
|
595 |
+
config.warnHandler.call(null, msg, vm, trace);
|
596 |
+
} else if (hasConsole && (!config.silent)) {
|
597 |
+
console.error(("[Vue warn]: " + msg + trace));
|
598 |
+
}
|
599 |
+
};
|
600 |
+
|
601 |
+
tip = function (msg, vm) {
|
602 |
+
if (hasConsole && (!config.silent)) {
|
603 |
+
console.warn("[Vue tip]: " + msg + (
|
604 |
+
vm ? generateComponentTrace(vm) : ''
|
605 |
+
));
|
606 |
+
}
|
607 |
+
};
|
608 |
+
|
609 |
+
formatComponentName = function (vm, includeFile) {
|
610 |
+
if (vm.$root === vm) {
|
611 |
+
return '<Root>'
|
612 |
+
}
|
613 |
+
var options = typeof vm === 'function' && vm.cid != null
|
614 |
+
? vm.options
|
615 |
+
: vm._isVue
|
616 |
+
? vm.$options || vm.constructor.options
|
617 |
+
: vm || {};
|
618 |
+
var name = options.name || options._componentTag;
|
619 |
+
var file = options.__file;
|
620 |
+
if (!name && file) {
|
621 |
+
var match = file.match(/([^/\\]+)\.vue$/);
|
622 |
+
name = match && match[1];
|
623 |
+
}
|
624 |
+
|
625 |
+
return (
|
626 |
+
(name ? ("<" + (classify(name)) + ">") : "<Anonymous>") +
|
627 |
+
(file && includeFile !== false ? (" at " + file) : '')
|
628 |
+
)
|
629 |
+
};
|
630 |
+
|
631 |
+
var repeat = function (str, n) {
|
632 |
+
var res = '';
|
633 |
+
while (n) {
|
634 |
+
if (n % 2 === 1) { res += str; }
|
635 |
+
if (n > 1) { str += str; }
|
636 |
+
n >>= 1;
|
637 |
+
}
|
638 |
+
return res
|
639 |
+
};
|
640 |
+
|
641 |
+
generateComponentTrace = function (vm) {
|
642 |
+
if (vm._isVue && vm.$parent) {
|
643 |
+
var tree = [];
|
644 |
+
var currentRecursiveSequence = 0;
|
645 |
+
while (vm) {
|
646 |
+
if (tree.length > 0) {
|
647 |
+
var last = tree[tree.length - 1];
|
648 |
+
if (last.constructor === vm.constructor) {
|
649 |
+
currentRecursiveSequence++;
|
650 |
+
vm = vm.$parent;
|
651 |
+
continue
|
652 |
+
} else if (currentRecursiveSequence > 0) {
|
653 |
+
tree[tree.length - 1] = [last, currentRecursiveSequence];
|
654 |
+
currentRecursiveSequence = 0;
|
655 |
+
}
|
656 |
+
}
|
657 |
+
tree.push(vm);
|
658 |
+
vm = vm.$parent;
|
659 |
+
}
|
660 |
+
return '\n\nfound in\n\n' + tree
|
661 |
+
.map(function (vm, i) { return ("" + (i === 0 ? '---> ' : repeat(' ', 5 + i * 2)) + (Array.isArray(vm)
|
662 |
+
? ((formatComponentName(vm[0])) + "... (" + (vm[1]) + " recursive calls)")
|
663 |
+
: formatComponentName(vm))); })
|
664 |
+
.join('\n')
|
665 |
+
} else {
|
666 |
+
return ("\n\n(found in " + (formatComponentName(vm)) + ")")
|
667 |
+
}
|
668 |
+
};
|
669 |
+
}
|
670 |
+
|
671 |
+
/* */
|
672 |
+
|
673 |
+
|
674 |
+
var uid = 0;
|
675 |
+
|
676 |
+
/**
|
677 |
+
* A dep is an observable that can have multiple
|
678 |
+
* directives subscribing to it.
|
679 |
+
*/
|
680 |
+
var Dep = function Dep () {
|
681 |
+
this.id = uid++;
|
682 |
+
this.subs = [];
|
683 |
+
};
|
684 |
+
|
685 |
+
Dep.prototype.addSub = function addSub (sub) {
|
686 |
+
this.subs.push(sub);
|
687 |
+
};
|
688 |
+
|
689 |
+
Dep.prototype.removeSub = function removeSub (sub) {
|
690 |
+
remove(this.subs, sub);
|
691 |
+
};
|
692 |
+
|
693 |
+
Dep.prototype.depend = function depend () {
|
694 |
+
if (Dep.target) {
|
695 |
+
Dep.target.addDep(this);
|
696 |
+
}
|
697 |
+
};
|
698 |
+
|
699 |
+
Dep.prototype.notify = function notify () {
|
700 |
+
// stabilize the subscriber list first
|
701 |
+
var subs = this.subs.slice();
|
702 |
+
for (var i = 0, l = subs.length; i < l; i++) {
|
703 |
+
subs[i].update();
|
704 |
+
}
|
705 |
+
};
|
706 |
+
|
707 |
+
// the current target watcher being evaluated.
|
708 |
+
// this is globally unique because there could be only one
|
709 |
+
// watcher being evaluated at any time.
|
710 |
+
Dep.target = null;
|
711 |
+
var targetStack = [];
|
712 |
+
|
713 |
+
function pushTarget (_target) {
|
714 |
+
if (Dep.target) { targetStack.push(Dep.target); }
|
715 |
+
Dep.target = _target;
|
716 |
+
}
|
717 |
+
|
718 |
+
function popTarget () {
|
719 |
+
Dep.target = targetStack.pop();
|
720 |
+
}
|
721 |
+
|
722 |
+
/* */
|
723 |
+
|
724 |
+
var VNode = function VNode (
|
725 |
+
tag,
|
726 |
+
data,
|
727 |
+
children,
|
728 |
+
text,
|
729 |
+
elm,
|
730 |
+
context,
|
731 |
+
componentOptions,
|
732 |
+
asyncFactory
|
733 |
+
) {
|
734 |
+
this.tag = tag;
|
735 |
+
this.data = data;
|
736 |
+
this.children = children;
|
737 |
+
this.text = text;
|
738 |
+
this.elm = elm;
|
739 |
+
this.ns = undefined;
|
740 |
+
this.context = context;
|
741 |
+
this.fnContext = undefined;
|
742 |
+
this.fnOptions = undefined;
|
743 |
+
this.fnScopeId = undefined;
|
744 |
+
this.key = data && data.key;
|
745 |
+
this.componentOptions = componentOptions;
|
746 |
+
this.componentInstance = undefined;
|
747 |
+
this.parent = undefined;
|
748 |
+
this.raw = false;
|
749 |
+
this.isStatic = false;
|
750 |
+
this.isRootInsert = true;
|
751 |
+
this.isComment = false;
|
752 |
+
this.isCloned = false;
|
753 |
+
this.isOnce = false;
|
754 |
+
this.asyncFactory = asyncFactory;
|
755 |
+
this.asyncMeta = undefined;
|
756 |
+
this.isAsyncPlaceholder = false;
|
757 |
+
};
|
758 |
+
|
759 |
+
var prototypeAccessors = { child: { configurable: true } };
|
760 |
+
|
761 |
+
// DEPRECATED: alias for componentInstance for backwards compat.
|
762 |
+
/* istanbul ignore next */
|
763 |
+
prototypeAccessors.child.get = function () {
|
764 |
+
return this.componentInstance
|
765 |
+
};
|
766 |
+
|
767 |
+
Object.defineProperties( VNode.prototype, prototypeAccessors );
|
768 |
+
|
769 |
+
var createEmptyVNode = function (text) {
|
770 |
+
if ( text === void 0 ) text = '';
|
771 |
+
|
772 |
+
var node = new VNode();
|
773 |
+
node.text = text;
|
774 |
+
node.isComment = true;
|
775 |
+
return node
|
776 |
+
};
|
777 |
+
|
778 |
+
function createTextVNode (val) {
|
779 |
+
return new VNode(undefined, undefined, undefined, String(val))
|
780 |
+
}
|
781 |
+
|
782 |
+
// optimized shallow clone
|
783 |
+
// used for static nodes and slot nodes because they may be reused across
|
784 |
+
// multiple renders, cloning them avoids errors when DOM manipulations rely
|
785 |
+
// on their elm reference.
|
786 |
+
function cloneVNode (vnode) {
|
787 |
+
var cloned = new VNode(
|
788 |
+
vnode.tag,
|
789 |
+
vnode.data,
|
790 |
+
vnode.children,
|
791 |
+
vnode.text,
|
792 |
+
vnode.elm,
|
793 |
+
vnode.context,
|
794 |
+
vnode.componentOptions,
|
795 |
+
vnode.asyncFactory
|
796 |
+
);
|
797 |
+
cloned.ns = vnode.ns;
|
798 |
+
cloned.isStatic = vnode.isStatic;
|
799 |
+
cloned.key = vnode.key;
|
800 |
+
cloned.isComment = vnode.isComment;
|
801 |
+
cloned.fnContext = vnode.fnContext;
|
802 |
+
cloned.fnOptions = vnode.fnOptions;
|
803 |
+
cloned.fnScopeId = vnode.fnScopeId;
|
804 |
+
cloned.isCloned = true;
|
805 |
+
return cloned
|
806 |
+
}
|
807 |
+
|
808 |
+
/*
|
809 |
+
* not type checking this file because flow doesn't play well with
|
810 |
+
* dynamically accessing methods on Array prototype
|
811 |
+
*/
|
812 |
+
|
813 |
+
var arrayProto = Array.prototype;
|
814 |
+
var arrayMethods = Object.create(arrayProto);
|
815 |
+
|
816 |
+
var methodsToPatch = [
|
817 |
+
'push',
|
818 |
+
'pop',
|
819 |
+
'shift',
|
820 |
+
'unshift',
|
821 |
+
'splice',
|
822 |
+
'sort',
|
823 |
+
'reverse'
|
824 |
+
];
|
825 |
+
|
826 |
+
/**
|
827 |
+
* Intercept mutating methods and emit events
|
828 |
+
*/
|
829 |
+
methodsToPatch.forEach(function (method) {
|
830 |
+
// cache original method
|
831 |
+
var original = arrayProto[method];
|
832 |
+
def(arrayMethods, method, function mutator () {
|
833 |
+
var args = [], len = arguments.length;
|
834 |
+
while ( len-- ) args[ len ] = arguments[ len ];
|
835 |
+
|
836 |
+
var result = original.apply(this, args);
|
837 |
+
var ob = this.__ob__;
|
838 |
+
var inserted;
|
839 |
+
switch (method) {
|
840 |
+
case 'push':
|
841 |
+
case 'unshift':
|
842 |
+
inserted = args;
|
843 |
+
break
|
844 |
+
case 'splice':
|
845 |
+
inserted = args.slice(2);
|
846 |
+
break
|
847 |
+
}
|
848 |
+
if (inserted) { ob.observeArray(inserted); }
|
849 |
+
// notify change
|
850 |
+
ob.dep.notify();
|
851 |
+
return result
|
852 |
+
});
|
853 |
+
});
|
854 |
+
|
855 |
+
/* */
|
856 |
+
|
857 |
+
var arrayKeys = Object.getOwnPropertyNames(arrayMethods);
|
858 |
+
|
859 |
+
/**
|
860 |
+
* In some cases we may want to disable observation inside a component's
|
861 |
+
* update computation.
|
862 |
+
*/
|
863 |
+
var shouldObserve = true;
|
864 |
+
|
865 |
+
function toggleObserving (value) {
|
866 |
+
shouldObserve = value;
|
867 |
+
}
|
868 |
+
|
869 |
+
/**
|
870 |
+
* Observer class that is attached to each observed
|
871 |
+
* object. Once attached, the observer converts the target
|
872 |
+
* object's property keys into getter/setters that
|
873 |
+
* collect dependencies and dispatch updates.
|
874 |
+
*/
|
875 |
+
var Observer = function Observer (value) {
|
876 |
+
this.value = value;
|
877 |
+
this.dep = new Dep();
|
878 |
+
this.vmCount = 0;
|
879 |
+
def(value, '__ob__', this);
|
880 |
+
if (Array.isArray(value)) {
|
881 |
+
var augment = hasProto
|
882 |
+
? protoAugment
|
883 |
+
: copyAugment;
|
884 |
+
augment(value, arrayMethods, arrayKeys);
|
885 |
+
this.observeArray(value);
|
886 |
+
} else {
|
887 |
+
this.walk(value);
|
888 |
+
}
|
889 |
+
};
|
890 |
+
|
891 |
+
/**
|
892 |
+
* Walk through each property and convert them into
|
893 |
+
* getter/setters. This method should only be called when
|
894 |
+
* value type is Object.
|
895 |
+
*/
|
896 |
+
Observer.prototype.walk = function walk (obj) {
|
897 |
+
var keys = Object.keys(obj);
|
898 |
+
for (var i = 0; i < keys.length; i++) {
|
899 |
+
defineReactive(obj, keys[i]);
|
900 |
+
}
|
901 |
+
};
|
902 |
+
|
903 |
+
/**
|
904 |
+
* Observe a list of Array items.
|
905 |
+
*/
|
906 |
+
Observer.prototype.observeArray = function observeArray (items) {
|
907 |
+
for (var i = 0, l = items.length; i < l; i++) {
|
908 |
+
observe(items[i]);
|
909 |
+
}
|
910 |
+
};
|
911 |
+
|
912 |
+
// helpers
|
913 |
+
|
914 |
+
/**
|
915 |
+
* Augment an target Object or Array by intercepting
|
916 |
+
* the prototype chain using __proto__
|
917 |
+
*/
|
918 |
+
function protoAugment (target, src, keys) {
|
919 |
+
/* eslint-disable no-proto */
|
920 |
+
target.__proto__ = src;
|
921 |
+
/* eslint-enable no-proto */
|
922 |
+
}
|
923 |
+
|
924 |
+
/**
|
925 |
+
* Augment an target Object or Array by defining
|
926 |
+
* hidden properties.
|
927 |
+
*/
|
928 |
+
/* istanbul ignore next */
|
929 |
+
function copyAugment (target, src, keys) {
|
930 |
+
for (var i = 0, l = keys.length; i < l; i++) {
|
931 |
+
var key = keys[i];
|
932 |
+
def(target, key, src[key]);
|
933 |
+
}
|
934 |
+
}
|
935 |
+
|
936 |
+
/**
|
937 |
+
* Attempt to create an observer instance for a value,
|
938 |
+
* returns the new observer if successfully observed,
|
939 |
+
* or the existing observer if the value already has one.
|
940 |
+
*/
|
941 |
+
function observe (value, asRootData) {
|
942 |
+
if (!isObject(value) || value instanceof VNode) {
|
943 |
+
return
|
944 |
+
}
|
945 |
+
var ob;
|
946 |
+
if (hasOwn(value, '__ob__') && value.__ob__ instanceof Observer) {
|
947 |
+
ob = value.__ob__;
|
948 |
+
} else if (
|
949 |
+
shouldObserve &&
|
950 |
+
!isServerRendering() &&
|
951 |
+
(Array.isArray(value) || isPlainObject(value)) &&
|
952 |
+
Object.isExtensible(value) &&
|
953 |
+
!value._isVue
|
954 |
+
) {
|
955 |
+
ob = new Observer(value);
|
956 |
+
}
|
957 |
+
if (asRootData && ob) {
|
958 |
+
ob.vmCount++;
|
959 |
+
}
|
960 |
+
return ob
|
961 |
+
}
|
962 |
+
|
963 |
+
/**
|
964 |
+
* Define a reactive property on an Object.
|
965 |
+
*/
|
966 |
+
function defineReactive (
|
967 |
+
obj,
|
968 |
+
key,
|
969 |
+
val,
|
970 |
+
customSetter,
|
971 |
+
shallow
|
972 |
+
) {
|
973 |
+
var dep = new Dep();
|
974 |
+
|
975 |
+
var property = Object.getOwnPropertyDescriptor(obj, key);
|
976 |
+
if (property && property.configurable === false) {
|
977 |
+
return
|
978 |
+
}
|
979 |
+
|
980 |
+
// cater for pre-defined getter/setters
|
981 |
+
var getter = property && property.get;
|
982 |
+
if (!getter && arguments.length === 2) {
|
983 |
+
val = obj[key];
|
984 |
+
}
|
985 |
+
var setter = property && property.set;
|
986 |
+
|
987 |
+
var childOb = !shallow && observe(val);
|
988 |
+
Object.defineProperty(obj, key, {
|
989 |
+
enumerable: true,
|
990 |
+
configurable: true,
|
991 |
+
get: function reactiveGetter () {
|
992 |
+
var value = getter ? getter.call(obj) : val;
|
993 |
+
if (Dep.target) {
|
994 |
+
dep.depend();
|
995 |
+
if (childOb) {
|
996 |
+
childOb.dep.depend();
|
997 |
+
if (Array.isArray(value)) {
|
998 |
+
dependArray(value);
|
999 |
+
}
|
1000 |
+
}
|
1001 |
+
}
|
1002 |
+
return value
|
1003 |
+
},
|
1004 |
+
set: function reactiveSetter (newVal) {
|
1005 |
+
var value = getter ? getter.call(obj) : val;
|
1006 |
+
/* eslint-disable no-self-compare */
|
1007 |
+
if (newVal === value || (newVal !== newVal && value !== value)) {
|
1008 |
+
return
|
1009 |
+
}
|
1010 |
+
/* eslint-enable no-self-compare */
|
1011 |
+
if ("development" !== 'production' && customSetter) {
|
1012 |
+
customSetter();
|
1013 |
+
}
|
1014 |
+
if (setter) {
|
1015 |
+
setter.call(obj, newVal);
|
1016 |
+
} else {
|
1017 |
+
val = newVal;
|
1018 |
+
}
|
1019 |
+
childOb = !shallow && observe(newVal);
|
1020 |
+
dep.notify();
|
1021 |
+
}
|
1022 |
+
});
|
1023 |
+
}
|
1024 |
+
|
1025 |
+
/**
|
1026 |
+
* Set a property on an object. Adds the new property and
|
1027 |
+
* triggers change notification if the property doesn't
|
1028 |
+
* already exist.
|
1029 |
+
*/
|
1030 |
+
function set (target, key, val) {
|
1031 |
+
if ("development" !== 'production' &&
|
1032 |
+
(isUndef(target) || isPrimitive(target))
|
1033 |
+
) {
|
1034 |
+
warn(("Cannot set reactive property on undefined, null, or primitive value: " + ((target))));
|
1035 |
+
}
|
1036 |
+
if (Array.isArray(target) && isValidArrayIndex(key)) {
|
1037 |
+
target.length = Math.max(target.length, key);
|
1038 |
+
target.splice(key, 1, val);
|
1039 |
+
return val
|
1040 |
+
}
|
1041 |
+
if (key in target && !(key in Object.prototype)) {
|
1042 |
+
target[key] = val;
|
1043 |
+
return val
|
1044 |
+
}
|
1045 |
+
var ob = (target).__ob__;
|
1046 |
+
if (target._isVue || (ob && ob.vmCount)) {
|
1047 |
+
"development" !== 'production' && warn(
|
1048 |
+
'Avoid adding reactive properties to a Vue instance or its root $data ' +
|
1049 |
+
'at runtime - declare it upfront in the data option.'
|
1050 |
+
);
|
1051 |
+
return val
|
1052 |
+
}
|
1053 |
+
if (!ob) {
|
1054 |
+
target[key] = val;
|
1055 |
+
return val
|
1056 |
+
}
|
1057 |
+
defineReactive(ob.value, key, val);
|
1058 |
+
ob.dep.notify();
|
1059 |
+
return val
|
1060 |
+
}
|
1061 |
+
|
1062 |
+
/**
|
1063 |
+
* Delete a property and trigger change if necessary.
|
1064 |
+
*/
|
1065 |
+
function del (target, key) {
|
1066 |
+
if ("development" !== 'production' &&
|
1067 |
+
(isUndef(target) || isPrimitive(target))
|
1068 |
+
) {
|
1069 |
+
warn(("Cannot delete reactive property on undefined, null, or primitive value: " + ((target))));
|
1070 |
+
}
|
1071 |
+
if (Array.isArray(target) && isValidArrayIndex(key)) {
|
1072 |
+
target.splice(key, 1);
|
1073 |
+
return
|
1074 |
+
}
|
1075 |
+
var ob = (target).__ob__;
|
1076 |
+
if (target._isVue || (ob && ob.vmCount)) {
|
1077 |
+
"development" !== 'production' && warn(
|
1078 |
+
'Avoid deleting properties on a Vue instance or its root $data ' +
|
1079 |
+
'- just set it to null.'
|
1080 |
+
);
|
1081 |
+
return
|
1082 |
+
}
|
1083 |
+
if (!hasOwn(target, key)) {
|
1084 |
+
return
|
1085 |
+
}
|
1086 |
+
delete target[key];
|
1087 |
+
if (!ob) {
|
1088 |
+
return
|
1089 |
+
}
|
1090 |
+
ob.dep.notify();
|
1091 |
+
}
|
1092 |
+
|
1093 |
+
/**
|
1094 |
+
* Collect dependencies on array elements when the array is touched, since
|
1095 |
+
* we cannot intercept array element access like property getters.
|
1096 |
+
*/
|
1097 |
+
function dependArray (value) {
|
1098 |
+
for (var e = (void 0), i = 0, l = value.length; i < l; i++) {
|
1099 |
+
e = value[i];
|
1100 |
+
e && e.__ob__ && e.__ob__.dep.depend();
|
1101 |
+
if (Array.isArray(e)) {
|
1102 |
+
dependArray(e);
|
1103 |
+
}
|
1104 |
+
}
|
1105 |
+
}
|
1106 |
+
|
1107 |
+
/* */
|
1108 |
+
|
1109 |
+
/**
|
1110 |
+
* Option overwriting strategies are functions that handle
|
1111 |
+
* how to merge a parent option value and a child option
|
1112 |
+
* value into the final value.
|
1113 |
+
*/
|
1114 |
+
var strats = config.optionMergeStrategies;
|
1115 |
+
|
1116 |
+
/**
|
1117 |
+
* Options with restrictions
|
1118 |
+
*/
|
1119 |
+
{
|
1120 |
+
strats.el = strats.propsData = function (parent, child, vm, key) {
|
1121 |
+
if (!vm) {
|
1122 |
+
warn(
|
1123 |
+
"option \"" + key + "\" can only be used during instance " +
|
1124 |
+
'creation with the `new` keyword.'
|
1125 |
+
);
|
1126 |
+
}
|
1127 |
+
return defaultStrat(parent, child)
|
1128 |
+
};
|
1129 |
+
}
|
1130 |
+
|
1131 |
+
/**
|
1132 |
+
* Helper that recursively merges two data objects together.
|
1133 |
+
*/
|
1134 |
+
function mergeData (to, from) {
|
1135 |
+
if (!from) { return to }
|
1136 |
+
var key, toVal, fromVal;
|
1137 |
+
var keys = Object.keys(from);
|
1138 |
+
for (var i = 0; i < keys.length; i++) {
|
1139 |
+
key = keys[i];
|
1140 |
+
toVal = to[key];
|
1141 |
+
fromVal = from[key];
|
1142 |
+
if (!hasOwn(to, key)) {
|
1143 |
+
set(to, key, fromVal);
|
1144 |
+
} else if (isPlainObject(toVal) && isPlainObject(fromVal)) {
|
1145 |
+
mergeData(toVal, fromVal);
|
1146 |
+
}
|
1147 |
+
}
|
1148 |
+
return to
|
1149 |
+
}
|
1150 |
+
|
1151 |
+
/**
|
1152 |
+
* Data
|
1153 |
+
*/
|
1154 |
+
function mergeDataOrFn (
|
1155 |
+
parentVal,
|
1156 |
+
childVal,
|
1157 |
+
vm
|
1158 |
+
) {
|
1159 |
+
if (!vm) {
|
1160 |
+
// in a Vue.extend merge, both should be functions
|
1161 |
+
if (!childVal) {
|
1162 |
+
return parentVal
|
1163 |
+
}
|
1164 |
+
if (!parentVal) {
|
1165 |
+
return childVal
|
1166 |
+
}
|
1167 |
+
// when parentVal & childVal are both present,
|
1168 |
+
// we need to return a function that returns the
|
1169 |
+
// merged result of both functions... no need to
|
1170 |
+
// check if parentVal is a function here because
|
1171 |
+
// it has to be a function to pass previous merges.
|
1172 |
+
return function mergedDataFn () {
|
1173 |
+
return mergeData(
|
1174 |
+
typeof childVal === 'function' ? childVal.call(this, this) : childVal,
|
1175 |
+
typeof parentVal === 'function' ? parentVal.call(this, this) : parentVal
|
1176 |
+
)
|
1177 |
+
}
|
1178 |
+
} else {
|
1179 |
+
return function mergedInstanceDataFn () {
|
1180 |
+
// instance merge
|
1181 |
+
var instanceData = typeof childVal === 'function'
|
1182 |
+
? childVal.call(vm, vm)
|
1183 |
+
: childVal;
|
1184 |
+
var defaultData = typeof parentVal === 'function'
|
1185 |
+
? parentVal.call(vm, vm)
|
1186 |
+
: parentVal;
|
1187 |
+
if (instanceData) {
|
1188 |
+
return mergeData(instanceData, defaultData)
|
1189 |
+
} else {
|
1190 |
+
return defaultData
|
1191 |
+
}
|
1192 |
+
}
|
1193 |
+
}
|
1194 |
+
}
|
1195 |
+
|
1196 |
+
strats.data = function (
|
1197 |
+
parentVal,
|
1198 |
+
childVal,
|
1199 |
+
vm
|
1200 |
+
) {
|
1201 |
+
if (!vm) {
|
1202 |
+
if (childVal && typeof childVal !== 'function') {
|
1203 |
+
"development" !== 'production' && warn(
|
1204 |
+
'The "data" option should be a function ' +
|
1205 |
+
'that returns a per-instance value in component ' +
|
1206 |
+
'definitions.',
|
1207 |
+
vm
|
1208 |
+
);
|
1209 |
+
|
1210 |
+
return parentVal
|
1211 |
+
}
|
1212 |
+
return mergeDataOrFn(parentVal, childVal)
|
1213 |
+
}
|
1214 |
+
|
1215 |
+
return mergeDataOrFn(parentVal, childVal, vm)
|
1216 |
+
};
|
1217 |
+
|
1218 |
+
/**
|
1219 |
+
* Hooks and props are merged as arrays.
|
1220 |
+
*/
|
1221 |
+
function mergeHook (
|
1222 |
+
parentVal,
|
1223 |
+
childVal
|
1224 |
+
) {
|
1225 |
+
return childVal
|
1226 |
+
? parentVal
|
1227 |
+
? parentVal.concat(childVal)
|
1228 |
+
: Array.isArray(childVal)
|
1229 |
+
? childVal
|
1230 |
+
: [childVal]
|
1231 |
+
: parentVal
|
1232 |
+
}
|
1233 |
+
|
1234 |
+
LIFECYCLE_HOOKS.forEach(function (hook) {
|
1235 |
+
strats[hook] = mergeHook;
|
1236 |
+
});
|
1237 |
+
|
1238 |
+
/**
|
1239 |
+
* Assets
|
1240 |
+
*
|
1241 |
+
* When a vm is present (instance creation), we need to do
|
1242 |
+
* a three-way merge between constructor options, instance
|
1243 |
+
* options and parent options.
|
1244 |
+
*/
|
1245 |
+
function mergeAssets (
|
1246 |
+
parentVal,
|
1247 |
+
childVal,
|
1248 |
+
vm,
|
1249 |
+
key
|
1250 |
+
) {
|
1251 |
+
var res = Object.create(parentVal || null);
|
1252 |
+
if (childVal) {
|
1253 |
+
"development" !== 'production' && assertObjectType(key, childVal, vm);
|
1254 |
+
return extend(res, childVal)
|
1255 |
+
} else {
|
1256 |
+
return res
|
1257 |
+
}
|
1258 |
+
}
|
1259 |
+
|
1260 |
+
ASSET_TYPES.forEach(function (type) {
|
1261 |
+
strats[type + 's'] = mergeAssets;
|
1262 |
+
});
|
1263 |
+
|
1264 |
+
/**
|
1265 |
+
* Watchers.
|
1266 |
+
*
|
1267 |
+
* Watchers hashes should not overwrite one
|
1268 |
+
* another, so we merge them as arrays.
|
1269 |
+
*/
|
1270 |
+
strats.watch = function (
|
1271 |
+
parentVal,
|
1272 |
+
childVal,
|
1273 |
+
vm,
|
1274 |
+
key
|
1275 |
+
) {
|
1276 |
+
// work around Firefox's Object.prototype.watch...
|
1277 |
+
if (parentVal === nativeWatch) { parentVal = undefined; }
|
1278 |
+
if (childVal === nativeWatch) { childVal = undefined; }
|
1279 |
+
/* istanbul ignore if */
|
1280 |
+
if (!childVal) { return Object.create(parentVal || null) }
|
1281 |
+
{
|
1282 |
+
assertObjectType(key, childVal, vm);
|
1283 |
+
}
|
1284 |
+
if (!parentVal) { return childVal }
|
1285 |
+
var ret = {};
|
1286 |
+
extend(ret, parentVal);
|
1287 |
+
for (var key$1 in childVal) {
|
1288 |
+
var parent = ret[key$1];
|
1289 |
+
var child = childVal[key$1];
|
1290 |
+
if (parent && !Array.isArray(parent)) {
|
1291 |
+
parent = [parent];
|
1292 |
+
}
|
1293 |
+
ret[key$1] = parent
|
1294 |
+
? parent.concat(child)
|
1295 |
+
: Array.isArray(child) ? child : [child];
|
1296 |
+
}
|
1297 |
+
return ret
|
1298 |
+
};
|
1299 |
+
|
1300 |
+
/**
|
1301 |
+
* Other object hashes.
|
1302 |
+
*/
|
1303 |
+
strats.props =
|
1304 |
+
strats.methods =
|
1305 |
+
strats.inject =
|
1306 |
+
strats.computed = function (
|
1307 |
+
parentVal,
|
1308 |
+
childVal,
|
1309 |
+
vm,
|
1310 |
+
key
|
1311 |
+
) {
|
1312 |
+
if (childVal && "development" !== 'production') {
|
1313 |
+
assertObjectType(key, childVal, vm);
|
1314 |
+
}
|
1315 |
+
if (!parentVal) { return childVal }
|
1316 |
+
var ret = Object.create(null);
|
1317 |
+
extend(ret, parentVal);
|
1318 |
+
if (childVal) { extend(ret, childVal); }
|
1319 |
+
return ret
|
1320 |
+
};
|
1321 |
+
strats.provide = mergeDataOrFn;
|
1322 |
+
|
1323 |
+
/**
|
1324 |
+
* Default strategy.
|
1325 |
+
*/
|
1326 |
+
var defaultStrat = function (parentVal, childVal) {
|
1327 |
+
return childVal === undefined
|
1328 |
+
? parentVal
|
1329 |
+
: childVal
|
1330 |
+
};
|
1331 |
+
|
1332 |
+
/**
|
1333 |
+
* Validate component names
|
1334 |
+
*/
|
1335 |
+
function checkComponents (options) {
|
1336 |
+
for (var key in options.components) {
|
1337 |
+
validateComponentName(key);
|
1338 |
+
}
|
1339 |
+
}
|
1340 |
+
|
1341 |
+
function validateComponentName (name) {
|
1342 |
+
if (!/^[a-zA-Z][\w-]*$/.test(name)) {
|
1343 |
+
warn(
|
1344 |
+
'Invalid component name: "' + name + '". Component names ' +
|
1345 |
+
'can only contain alphanumeric characters and the hyphen, ' +
|
1346 |
+
'and must start with a letter.'
|
1347 |
+
);
|
1348 |
+
}
|
1349 |
+
if (isBuiltInTag(name) || config.isReservedTag(name)) {
|
1350 |
+
warn(
|
1351 |
+
'Do not use built-in or reserved HTML elements as component ' +
|
1352 |
+
'id: ' + name
|
1353 |
+
);
|
1354 |
+
}
|
1355 |
+
}
|
1356 |
+
|
1357 |
+
/**
|
1358 |
+
* Ensure all props option syntax are normalized into the
|
1359 |
+
* Object-based format.
|
1360 |
+
*/
|
1361 |
+
function normalizeProps (options, vm) {
|
1362 |
+
var props = options.props;
|
1363 |
+
if (!props) { return }
|
1364 |
+
var res = {};
|
1365 |
+
var i, val, name;
|
1366 |
+
if (Array.isArray(props)) {
|
1367 |
+
i = props.length;
|
1368 |
+
while (i--) {
|
1369 |
+
val = props[i];
|
1370 |
+
if (typeof val === 'string') {
|
1371 |
+
name = camelize(val);
|
1372 |
+
res[name] = { type: null };
|
1373 |
+
} else {
|
1374 |
+
warn('props must be strings when using array syntax.');
|
1375 |
+
}
|
1376 |
+
}
|
1377 |
+
} else if (isPlainObject(props)) {
|
1378 |
+
for (var key in props) {
|
1379 |
+
val = props[key];
|
1380 |
+
name = camelize(key);
|
1381 |
+
res[name] = isPlainObject(val)
|
1382 |
+
? val
|
1383 |
+
: { type: val };
|
1384 |
+
}
|
1385 |
+
} else {
|
1386 |
+
warn(
|
1387 |
+
"Invalid value for option \"props\": expected an Array or an Object, " +
|
1388 |
+
"but got " + (toRawType(props)) + ".",
|
1389 |
+
vm
|
1390 |
+
);
|
1391 |
+
}
|
1392 |
+
options.props = res;
|
1393 |
+
}
|
1394 |
+
|
1395 |
+
/**
|
1396 |
+
* Normalize all injections into Object-based format
|
1397 |
+
*/
|
1398 |
+
function normalizeInject (options, vm) {
|
1399 |
+
var inject = options.inject;
|
1400 |
+
if (!inject) { return }
|
1401 |
+
var normalized = options.inject = {};
|
1402 |
+
if (Array.isArray(inject)) {
|
1403 |
+
for (var i = 0; i < inject.length; i++) {
|
1404 |
+
normalized[inject[i]] = { from: inject[i] };
|
1405 |
+
}
|
1406 |
+
} else if (isPlainObject(inject)) {
|
1407 |
+
for (var key in inject) {
|
1408 |
+
var val = inject[key];
|
1409 |
+
normalized[key] = isPlainObject(val)
|
1410 |
+
? extend({ from: key }, val)
|
1411 |
+
: { from: val };
|
1412 |
+
}
|
1413 |
+
} else {
|
1414 |
+
warn(
|
1415 |
+
"Invalid value for option \"inject\": expected an Array or an Object, " +
|
1416 |
+
"but got " + (toRawType(inject)) + ".",
|
1417 |
+
vm
|
1418 |
+
);
|
1419 |
+
}
|
1420 |
+
}
|
1421 |
+
|
1422 |
+
/**
|
1423 |
+
* Normalize raw function directives into object format.
|
1424 |
+
*/
|
1425 |
+
function normalizeDirectives (options) {
|
1426 |
+
var dirs = options.directives;
|
1427 |
+
if (dirs) {
|
1428 |
+
for (var key in dirs) {
|
1429 |
+
var def = dirs[key];
|
1430 |
+
if (typeof def === 'function') {
|
1431 |
+
dirs[key] = { bind: def, update: def };
|
1432 |
+
}
|
1433 |
+
}
|
1434 |
+
}
|
1435 |
+
}
|
1436 |
+
|
1437 |
+
function assertObjectType (name, value, vm) {
|
1438 |
+
if (!isPlainObject(value)) {
|
1439 |
+
warn(
|
1440 |
+
"Invalid value for option \"" + name + "\": expected an Object, " +
|
1441 |
+
"but got " + (toRawType(value)) + ".",
|
1442 |
+
vm
|
1443 |
+
);
|
1444 |
+
}
|
1445 |
+
}
|
1446 |
+
|
1447 |
+
/**
|
1448 |
+
* Merge two option objects into a new one.
|
1449 |
+
* Core utility used in both instantiation and inheritance.
|
1450 |
+
*/
|
1451 |
+
function mergeOptions (
|
1452 |
+
parent,
|
1453 |
+
child,
|
1454 |
+
vm
|
1455 |
+
) {
|
1456 |
+
{
|
1457 |
+
checkComponents(child);
|
1458 |
+
}
|
1459 |
+
|
1460 |
+
if (typeof child === 'function') {
|
1461 |
+
child = child.options;
|
1462 |
+
}
|
1463 |
+
|
1464 |
+
normalizeProps(child, vm);
|
1465 |
+
normalizeInject(child, vm);
|
1466 |
+
normalizeDirectives(child);
|
1467 |
+
var extendsFrom = child.extends;
|
1468 |
+
if (extendsFrom) {
|
1469 |
+
parent = mergeOptions(parent, extendsFrom, vm);
|
1470 |
+
}
|
1471 |
+
if (child.mixins) {
|
1472 |
+
for (var i = 0, l = child.mixins.length; i < l; i++) {
|
1473 |
+
parent = mergeOptions(parent, child.mixins[i], vm);
|
1474 |
+
}
|
1475 |
+
}
|
1476 |
+
var options = {};
|
1477 |
+
var key;
|
1478 |
+
for (key in parent) {
|
1479 |
+
mergeField(key);
|
1480 |
+
}
|
1481 |
+
for (key in child) {
|
1482 |
+
if (!hasOwn(parent, key)) {
|
1483 |
+
mergeField(key);
|
1484 |
+
}
|
1485 |
+
}
|
1486 |
+
function mergeField (key) {
|
1487 |
+
var strat = strats[key] || defaultStrat;
|
1488 |
+
options[key] = strat(parent[key], child[key], vm, key);
|
1489 |
+
}
|
1490 |
+
return options
|
1491 |
+
}
|
1492 |
+
|
1493 |
+
/**
|
1494 |
+
* Resolve an asset.
|
1495 |
+
* This function is used because child instances need access
|
1496 |
+
* to assets defined in its ancestor chain.
|
1497 |
+
*/
|
1498 |
+
function resolveAsset (
|
1499 |
+
options,
|
1500 |
+
type,
|
1501 |
+
id,
|
1502 |
+
warnMissing
|
1503 |
+
) {
|
1504 |
+
/* istanbul ignore if */
|
1505 |
+
if (typeof id !== 'string') {
|
1506 |
+
return
|
1507 |
+
}
|
1508 |
+
var assets = options[type];
|
1509 |
+
// check local registration variations first
|
1510 |
+
if (hasOwn(assets, id)) { return assets[id] }
|
1511 |
+
var camelizedId = camelize(id);
|
1512 |
+
if (hasOwn(assets, camelizedId)) { return assets[camelizedId] }
|
1513 |
+
var PascalCaseId = capitalize(camelizedId);
|
1514 |
+
if (hasOwn(assets, PascalCaseId)) { return assets[PascalCaseId] }
|
1515 |
+
// fallback to prototype chain
|
1516 |
+
var res = assets[id] || assets[camelizedId] || assets[PascalCaseId];
|
1517 |
+
if ("development" !== 'production' && warnMissing && !res) {
|
1518 |
+
warn(
|
1519 |
+
'Failed to resolve ' + type.slice(0, -1) + ': ' + id,
|
1520 |
+
options
|
1521 |
+
);
|
1522 |
+
}
|
1523 |
+
return res
|
1524 |
+
}
|
1525 |
+
|
1526 |
+
/* */
|
1527 |
+
|
1528 |
+
function validateProp (
|
1529 |
+
key,
|
1530 |
+
propOptions,
|
1531 |
+
propsData,
|
1532 |
+
vm
|
1533 |
+
) {
|
1534 |
+
var prop = propOptions[key];
|
1535 |
+
var absent = !hasOwn(propsData, key);
|
1536 |
+
var value = propsData[key];
|
1537 |
+
// boolean casting
|
1538 |
+
var booleanIndex = getTypeIndex(Boolean, prop.type);
|
1539 |
+
if (booleanIndex > -1) {
|
1540 |
+
if (absent && !hasOwn(prop, 'default')) {
|
1541 |
+
value = false;
|
1542 |
+
} else if (value === '' || value === hyphenate(key)) {
|
1543 |
+
// only cast empty string / same name to boolean if
|
1544 |
+
// boolean has higher priority
|
1545 |
+
var stringIndex = getTypeIndex(String, prop.type);
|
1546 |
+
if (stringIndex < 0 || booleanIndex < stringIndex) {
|
1547 |
+
value = true;
|
1548 |
+
}
|
1549 |
+
}
|
1550 |
+
}
|
1551 |
+
// check default value
|
1552 |
+
if (value === undefined) {
|
1553 |
+
value = getPropDefaultValue(vm, prop, key);
|
1554 |
+
// since the default value is a fresh copy,
|
1555 |
+
// make sure to observe it.
|
1556 |
+
var prevShouldObserve = shouldObserve;
|
1557 |
+
toggleObserving(true);
|
1558 |
+
observe(value);
|
1559 |
+
toggleObserving(prevShouldObserve);
|
1560 |
+
}
|
1561 |
+
{
|
1562 |
+
assertProp(prop, key, value, vm, absent);
|
1563 |
+
}
|
1564 |
+
return value
|
1565 |
+
}
|
1566 |
+
|
1567 |
+
/**
|
1568 |
+
* Get the default value of a prop.
|
1569 |
+
*/
|
1570 |
+
function getPropDefaultValue (vm, prop, key) {
|
1571 |
+
// no default, return undefined
|
1572 |
+
if (!hasOwn(prop, 'default')) {
|
1573 |
+
return undefined
|
1574 |
+
}
|
1575 |
+
var def = prop.default;
|
1576 |
+
// warn against non-factory defaults for Object & Array
|
1577 |
+
if ("development" !== 'production' && isObject(def)) {
|
1578 |
+
warn(
|
1579 |
+
'Invalid default value for prop "' + key + '": ' +
|
1580 |
+
'Props with type Object/Array must use a factory function ' +
|
1581 |
+
'to return the default value.',
|
1582 |
+
vm
|
1583 |
+
);
|
1584 |
+
}
|
1585 |
+
// the raw prop value was also undefined from previous render,
|
1586 |
+
// return previous default value to avoid unnecessary watcher trigger
|
1587 |
+
if (vm && vm.$options.propsData &&
|
1588 |
+
vm.$options.propsData[key] === undefined &&
|
1589 |
+
vm._props[key] !== undefined
|
1590 |
+
) {
|
1591 |
+
return vm._props[key]
|
1592 |
+
}
|
1593 |
+
// call factory function for non-Function types
|
1594 |
+
// a value is Function if its prototype is function even across different execution context
|
1595 |
+
return typeof def === 'function' && getType(prop.type) !== 'Function'
|
1596 |
+
? def.call(vm)
|
1597 |
+
: def
|
1598 |
+
}
|
1599 |
+
|
1600 |
+
/**
|
1601 |
+
* Assert whether a prop is valid.
|
1602 |
+
*/
|
1603 |
+
function assertProp (
|
1604 |
+
prop,
|
1605 |
+
name,
|
1606 |
+
value,
|
1607 |
+
vm,
|
1608 |
+
absent
|
1609 |
+
) {
|
1610 |
+
if (prop.required && absent) {
|
1611 |
+
warn(
|
1612 |
+
'Missing required prop: "' + name + '"',
|
1613 |
+
vm
|
1614 |
+
);
|
1615 |
+
return
|
1616 |
+
}
|
1617 |
+
if (value == null && !prop.required) {
|
1618 |
+
return
|
1619 |
+
}
|
1620 |
+
var type = prop.type;
|
1621 |
+
var valid = !type || type === true;
|
1622 |
+
var expectedTypes = [];
|
1623 |
+
if (type) {
|
1624 |
+
if (!Array.isArray(type)) {
|
1625 |
+
type = [type];
|
1626 |
+
}
|
1627 |
+
for (var i = 0; i < type.length && !valid; i++) {
|
1628 |
+
var assertedType = assertType(value, type[i]);
|
1629 |
+
expectedTypes.push(assertedType.expectedType || '');
|
1630 |
+
valid = assertedType.valid;
|
1631 |
+
}
|
1632 |
+
}
|
1633 |
+
if (!valid) {
|
1634 |
+
warn(
|
1635 |
+
"Invalid prop: type check failed for prop \"" + name + "\"." +
|
1636 |
+
" Expected " + (expectedTypes.map(capitalize).join(', ')) +
|
1637 |
+
", got " + (toRawType(value)) + ".",
|
1638 |
+
vm
|
1639 |
+
);
|
1640 |
+
return
|
1641 |
+
}
|
1642 |
+
var validator = prop.validator;
|
1643 |
+
if (validator) {
|
1644 |
+
if (!validator(value)) {
|
1645 |
+
warn(
|
1646 |
+
'Invalid prop: custom validator check failed for prop "' + name + '".',
|
1647 |
+
vm
|
1648 |
+
);
|
1649 |
+
}
|
1650 |
+
}
|
1651 |
+
}
|
1652 |
+
|
1653 |
+
var simpleCheckRE = /^(String|Number|Boolean|Function|Symbol)$/;
|
1654 |
+
|
1655 |
+
function assertType (value, type) {
|
1656 |
+
var valid;
|
1657 |
+
var expectedType = getType(type);
|
1658 |
+
if (simpleCheckRE.test(expectedType)) {
|
1659 |
+
var t = typeof value;
|
1660 |
+
valid = t === expectedType.toLowerCase();
|
1661 |
+
// for primitive wrapper objects
|
1662 |
+
if (!valid && t === 'object') {
|
1663 |
+
valid = value instanceof type;
|
1664 |
+
}
|
1665 |
+
} else if (expectedType === 'Object') {
|
1666 |
+
valid = isPlainObject(value);
|
1667 |
+
} else if (expectedType === 'Array') {
|
1668 |
+
valid = Array.isArray(value);
|
1669 |
+
} else {
|
1670 |
+
valid = value instanceof type;
|
1671 |
+
}
|
1672 |
+
return {
|
1673 |
+
valid: valid,
|
1674 |
+
expectedType: expectedType
|
1675 |
+
}
|
1676 |
+
}
|
1677 |
+
|
1678 |
+
/**
|
1679 |
+
* Use function string name to check built-in types,
|
1680 |
+
* because a simple equality check will fail when running
|
1681 |
+
* across different vms / iframes.
|
1682 |
+
*/
|
1683 |
+
function getType (fn) {
|
1684 |
+
var match = fn && fn.toString().match(/^\s*function (\w+)/);
|
1685 |
+
return match ? match[1] : ''
|
1686 |
+
}
|
1687 |
+
|
1688 |
+
function isSameType (a, b) {
|
1689 |
+
return getType(a) === getType(b)
|
1690 |
+
}
|
1691 |
+
|
1692 |
+
function getTypeIndex (type, expectedTypes) {
|
1693 |
+
if (!Array.isArray(expectedTypes)) {
|
1694 |
+
return isSameType(expectedTypes, type) ? 0 : -1
|
1695 |
+
}
|
1696 |
+
for (var i = 0, len = expectedTypes.length; i < len; i++) {
|
1697 |
+
if (isSameType(expectedTypes[i], type)) {
|
1698 |
+
return i
|
1699 |
+
}
|
1700 |
+
}
|
1701 |
+
return -1
|
1702 |
+
}
|
1703 |
+
|
1704 |
+
/* */
|
1705 |
+
|
1706 |
+
function handleError (err, vm, info) {
|
1707 |
+
if (vm) {
|
1708 |
+
var cur = vm;
|
1709 |
+
while ((cur = cur.$parent)) {
|
1710 |
+
var hooks = cur.$options.errorCaptured;
|
1711 |
+
if (hooks) {
|
1712 |
+
for (var i = 0; i < hooks.length; i++) {
|
1713 |
+
try {
|
1714 |
+
var capture = hooks[i].call(cur, err, vm, info) === false;
|
1715 |
+
if (capture) { return }
|
1716 |
+
} catch (e) {
|
1717 |
+
globalHandleError(e, cur, 'errorCaptured hook');
|
1718 |
+
}
|
1719 |
+
}
|
1720 |
+
}
|
1721 |
+
}
|
1722 |
+
}
|
1723 |
+
globalHandleError(err, vm, info);
|
1724 |
+
}
|
1725 |
+
|
1726 |
+
function globalHandleError (err, vm, info) {
|
1727 |
+
if (config.errorHandler) {
|
1728 |
+
try {
|
1729 |
+
return config.errorHandler.call(null, err, vm, info)
|
1730 |
+
} catch (e) {
|
1731 |
+
logError(e, null, 'config.errorHandler');
|
1732 |
+
}
|
1733 |
+
}
|
1734 |
+
logError(err, vm, info);
|
1735 |
+
}
|
1736 |
+
|
1737 |
+
function logError (err, vm, info) {
|
1738 |
+
{
|
1739 |
+
warn(("Error in " + info + ": \"" + (err.toString()) + "\""), vm);
|
1740 |
+
}
|
1741 |
+
/* istanbul ignore else */
|
1742 |
+
if ((inBrowser || inWeex) && typeof console !== 'undefined') {
|
1743 |
+
console.error(err);
|
1744 |
+
} else {
|
1745 |
+
throw err
|
1746 |
+
}
|
1747 |
+
}
|
1748 |
+
|
1749 |
+
/* */
|
1750 |
+
/* globals MessageChannel */
|
1751 |
+
|
1752 |
+
var callbacks = [];
|
1753 |
+
var pending = false;
|
1754 |
+
|
1755 |
+
function flushCallbacks () {
|
1756 |
+
pending = false;
|
1757 |
+
var copies = callbacks.slice(0);
|
1758 |
+
callbacks.length = 0;
|
1759 |
+
for (var i = 0; i < copies.length; i++) {
|
1760 |
+
copies[i]();
|
1761 |
+
}
|
1762 |
+
}
|
1763 |
+
|
1764 |
+
// Here we have async deferring wrappers using both microtasks and (macro) tasks.
|
1765 |
+
// In < 2.4 we used microtasks everywhere, but there are some scenarios where
|
1766 |
+
// microtasks have too high a priority and fire in between supposedly
|
1767 |
+
// sequential events (e.g. #4521, #6690) or even between bubbling of the same
|
1768 |
+
// event (#6566). However, using (macro) tasks everywhere also has subtle problems
|
1769 |
+
// when state is changed right before repaint (e.g. #6813, out-in transitions).
|
1770 |
+
// Here we use microtask by default, but expose a way to force (macro) task when
|
1771 |
+
// needed (e.g. in event handlers attached by v-on).
|
1772 |
+
var microTimerFunc;
|
1773 |
+
var macroTimerFunc;
|
1774 |
+
var useMacroTask = false;
|
1775 |
+
|
1776 |
+
// Determine (macro) task defer implementation.
|
1777 |
+
// Technically setImmediate should be the ideal choice, but it's only available
|
1778 |
+
// in IE. The only polyfill that consistently queues the callback after all DOM
|
1779 |
+
// events triggered in the same loop is by using MessageChannel.
|
1780 |
+
/* istanbul ignore if */
|
1781 |
+
if (typeof setImmediate !== 'undefined' && isNative(setImmediate)) {
|
1782 |
+
macroTimerFunc = function () {
|
1783 |
+
setImmediate(flushCallbacks);
|
1784 |
+
};
|
1785 |
+
} else if (typeof MessageChannel !== 'undefined' && (
|
1786 |
+
isNative(MessageChannel) ||
|
1787 |
+
// PhantomJS
|
1788 |
+
MessageChannel.toString() === '[object MessageChannelConstructor]'
|
1789 |
+
)) {
|
1790 |
+
var channel = new MessageChannel();
|
1791 |
+
var port = channel.port2;
|
1792 |
+
channel.port1.onmessage = flushCallbacks;
|
1793 |
+
macroTimerFunc = function () {
|
1794 |
+
port.postMessage(1);
|
1795 |
+
};
|
1796 |
+
} else {
|
1797 |
+
/* istanbul ignore next */
|
1798 |
+
macroTimerFunc = function () {
|
1799 |
+
setTimeout(flushCallbacks, 0);
|
1800 |
+
};
|
1801 |
+
}
|
1802 |
+
|
1803 |
+
// Determine microtask defer implementation.
|
1804 |
+
/* istanbul ignore next, $flow-disable-line */
|
1805 |
+
if (typeof Promise !== 'undefined' && isNative(Promise)) {
|
1806 |
+
var p = Promise.resolve();
|
1807 |
+
microTimerFunc = function () {
|
1808 |
+
p.then(flushCallbacks);
|
1809 |
+
// in problematic UIWebViews, Promise.then doesn't completely break, but
|
1810 |
+
// it can get stuck in a weird state where callbacks are pushed into the
|
1811 |
+
// microtask queue but the queue isn't being flushed, until the browser
|
1812 |
+
// needs to do some other work, e.g. handle a timer. Therefore we can
|
1813 |
+
// "force" the microtask queue to be flushed by adding an empty timer.
|
1814 |
+
if (isIOS) { setTimeout(noop); }
|
1815 |
+
};
|
1816 |
+
} else {
|
1817 |
+
// fallback to macro
|
1818 |
+
microTimerFunc = macroTimerFunc;
|
1819 |
+
}
|
1820 |
+
|
1821 |
+
/**
|
1822 |
+
* Wrap a function so that if any code inside triggers state change,
|
1823 |
+
* the changes are queued using a (macro) task instead of a microtask.
|
1824 |
+
*/
|
1825 |
+
function withMacroTask (fn) {
|
1826 |
+
return fn._withTask || (fn._withTask = function () {
|
1827 |
+
useMacroTask = true;
|
1828 |
+
var res = fn.apply(null, arguments);
|
1829 |
+
useMacroTask = false;
|
1830 |
+
return res
|
1831 |
+
})
|
1832 |
+
}
|
1833 |
+
|
1834 |
+
function nextTick (cb, ctx) {
|
1835 |
+
var _resolve;
|
1836 |
+
callbacks.push(function () {
|
1837 |
+
if (cb) {
|
1838 |
+
try {
|
1839 |
+
cb.call(ctx);
|
1840 |
+
} catch (e) {
|
1841 |
+
handleError(e, ctx, 'nextTick');
|
1842 |
+
}
|
1843 |
+
} else if (_resolve) {
|
1844 |
+
_resolve(ctx);
|
1845 |
+
}
|
1846 |
+
});
|
1847 |
+
if (!pending) {
|
1848 |
+
pending = true;
|
1849 |
+
if (useMacroTask) {
|
1850 |
+
macroTimerFunc();
|
1851 |
+
} else {
|
1852 |
+
microTimerFunc();
|
1853 |
+
}
|
1854 |
+
}
|
1855 |
+
// $flow-disable-line
|
1856 |
+
if (!cb && typeof Promise !== 'undefined') {
|
1857 |
+
return new Promise(function (resolve) {
|
1858 |
+
_resolve = resolve;
|
1859 |
+
})
|
1860 |
+
}
|
1861 |
+
}
|
1862 |
+
|
1863 |
+
/* */
|
1864 |
+
|
1865 |
+
var mark;
|
1866 |
+
var measure;
|
1867 |
+
|
1868 |
+
{
|
1869 |
+
var perf = inBrowser && window.performance;
|
1870 |
+
/* istanbul ignore if */
|
1871 |
+
if (
|
1872 |
+
perf &&
|
1873 |
+
perf.mark &&
|
1874 |
+
perf.measure &&
|
1875 |
+
perf.clearMarks &&
|
1876 |
+
perf.clearMeasures
|
1877 |
+
) {
|
1878 |
+
mark = function (tag) { return perf.mark(tag); };
|
1879 |
+
measure = function (name, startTag, endTag) {
|
1880 |
+
perf.measure(name, startTag, endTag);
|
1881 |
+
perf.clearMarks(startTag);
|
1882 |
+
perf.clearMarks(endTag);
|
1883 |
+
perf.clearMeasures(name);
|
1884 |
+
};
|
1885 |
+
}
|
1886 |
+
}
|
1887 |
+
|
1888 |
+
/* not type checking this file because flow doesn't play well with Proxy */
|
1889 |
+
|
1890 |
+
var initProxy;
|
1891 |
+
|
1892 |
+
{
|
1893 |
+
var allowedGlobals = makeMap(
|
1894 |
+
'Infinity,undefined,NaN,isFinite,isNaN,' +
|
1895 |
+
'parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,' +
|
1896 |
+
'Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,' +
|
1897 |
+
'require' // for Webpack/Browserify
|
1898 |
+
);
|
1899 |
+
|
1900 |
+
var warnNonPresent = function (target, key) {
|
1901 |
+
warn(
|
1902 |
+
"Property or method \"" + key + "\" is not defined on the instance but " +
|
1903 |
+
'referenced during render. Make sure that this property is reactive, ' +
|
1904 |
+
'either in the data option, or for class-based components, by ' +
|
1905 |
+
'initializing the property. ' +
|
1906 |
+
'See: https://vuejs.org/v2/guide/reactivity.html#Declaring-Reactive-Properties.',
|
1907 |
+
target
|
1908 |
+
);
|
1909 |
+
};
|
1910 |
+
|
1911 |
+
var hasProxy =
|
1912 |
+
typeof Proxy !== 'undefined' && isNative(Proxy);
|
1913 |
+
|
1914 |
+
if (hasProxy) {
|
1915 |
+
var isBuiltInModifier = makeMap('stop,prevent,self,ctrl,shift,alt,meta,exact');
|
1916 |
+
config.keyCodes = new Proxy(config.keyCodes, {
|
1917 |
+
set: function set (target, key, value) {
|
1918 |
+
if (isBuiltInModifier(key)) {
|
1919 |
+
warn(("Avoid overwriting built-in modifier in config.keyCodes: ." + key));
|
1920 |
+
return false
|
1921 |
+
} else {
|
1922 |
+
target[key] = value;
|
1923 |
+
return true
|
1924 |
+
}
|
1925 |
+
}
|
1926 |
+
});
|
1927 |
+
}
|
1928 |
+
|
1929 |
+
var hasHandler = {
|
1930 |
+
has: function has (target, key) {
|
1931 |
+
var has = key in target;
|
1932 |
+
var isAllowed = allowedGlobals(key) || key.charAt(0) === '_';
|
1933 |
+
if (!has && !isAllowed) {
|
1934 |
+
warnNonPresent(target, key);
|
1935 |
+
}
|
1936 |
+
return has || !isAllowed
|
1937 |
+
}
|
1938 |
+
};
|
1939 |
+
|
1940 |
+
var getHandler = {
|
1941 |
+
get: function get (target, key) {
|
1942 |
+
if (typeof key === 'string' && !(key in target)) {
|
1943 |
+
warnNonPresent(target, key);
|
1944 |
+
}
|
1945 |
+
return target[key]
|
1946 |
+
}
|
1947 |
+
};
|
1948 |
+
|
1949 |
+
initProxy = function initProxy (vm) {
|
1950 |
+
if (hasProxy) {
|
1951 |
+
// determine which proxy handler to use
|
1952 |
+
var options = vm.$options;
|
1953 |
+
var handlers = options.render && options.render._withStripped
|
1954 |
+
? getHandler
|
1955 |
+
: hasHandler;
|
1956 |
+
vm._renderProxy = new Proxy(vm, handlers);
|
1957 |
+
} else {
|
1958 |
+
vm._renderProxy = vm;
|
1959 |
+
}
|
1960 |
+
};
|
1961 |
+
}
|
1962 |
+
|
1963 |
+
/* */
|
1964 |
+
|
1965 |
+
var seenObjects = new _Set();
|
1966 |
+
|
1967 |
+
/**
|
1968 |
+
* Recursively traverse an object to evoke all converted
|
1969 |
+
* getters, so that every nested property inside the object
|
1970 |
+
* is collected as a "deep" dependency.
|
1971 |
+
*/
|
1972 |
+
function traverse (val) {
|
1973 |
+
_traverse(val, seenObjects);
|
1974 |
+
seenObjects.clear();
|
1975 |
+
}
|
1976 |
+
|
1977 |
+
function _traverse (val, seen) {
|
1978 |
+
var i, keys;
|
1979 |
+
var isA = Array.isArray(val);
|
1980 |
+
if ((!isA && !isObject(val)) || Object.isFrozen(val) || val instanceof VNode) {
|
1981 |
+
return
|
1982 |
+
}
|
1983 |
+
if (val.__ob__) {
|
1984 |
+
var depId = val.__ob__.dep.id;
|
1985 |
+
if (seen.has(depId)) {
|
1986 |
+
return
|
1987 |
+
}
|
1988 |
+
seen.add(depId);
|
1989 |
+
}
|
1990 |
+
if (isA) {
|
1991 |
+
i = val.length;
|
1992 |
+
while (i--) { _traverse(val[i], seen); }
|
1993 |
+
} else {
|
1994 |
+
keys = Object.keys(val);
|
1995 |
+
i = keys.length;
|
1996 |
+
while (i--) { _traverse(val[keys[i]], seen); }
|
1997 |
+
}
|
1998 |
+
}
|
1999 |
+
|
2000 |
+
/* */
|
2001 |
+
|
2002 |
+
var normalizeEvent = cached(function (name) {
|
2003 |
+
var passive = name.charAt(0) === '&';
|
2004 |
+
name = passive ? name.slice(1) : name;
|
2005 |
+
var once$$1 = name.charAt(0) === '~'; // Prefixed last, checked first
|
2006 |
+
name = once$$1 ? name.slice(1) : name;
|
2007 |
+
var capture = name.charAt(0) === '!';
|
2008 |
+
name = capture ? name.slice(1) : name;
|
2009 |
+
return {
|
2010 |
+
name: name,
|
2011 |
+
once: once$$1,
|
2012 |
+
capture: capture,
|
2013 |
+
passive: passive
|
2014 |
+
}
|
2015 |
+
});
|
2016 |
+
|
2017 |
+
function createFnInvoker (fns) {
|
2018 |
+
function invoker () {
|
2019 |
+
var arguments$1 = arguments;
|
2020 |
+
|
2021 |
+
var fns = invoker.fns;
|
2022 |
+
if (Array.isArray(fns)) {
|
2023 |
+
var cloned = fns.slice();
|
2024 |
+
for (var i = 0; i < cloned.length; i++) {
|
2025 |
+
cloned[i].apply(null, arguments$1);
|
2026 |
+
}
|
2027 |
+
} else {
|
2028 |
+
// return handler return value for single handlers
|
2029 |
+
return fns.apply(null, arguments)
|
2030 |
+
}
|
2031 |
+
}
|
2032 |
+
invoker.fns = fns;
|
2033 |
+
return invoker
|
2034 |
+
}
|
2035 |
+
|
2036 |
+
function updateListeners (
|
2037 |
+
on,
|
2038 |
+
oldOn,
|
2039 |
+
add,
|
2040 |
+
remove$$1,
|
2041 |
+
vm
|
2042 |
+
) {
|
2043 |
+
var name, def, cur, old, event;
|
2044 |
+
for (name in on) {
|
2045 |
+
def = cur = on[name];
|
2046 |
+
old = oldOn[name];
|
2047 |
+
event = normalizeEvent(name);
|
2048 |
+
/* istanbul ignore if */
|
2049 |
+
if (isUndef(cur)) {
|
2050 |
+
"development" !== 'production' && warn(
|
2051 |
+
"Invalid handler for event \"" + (event.name) + "\": got " + String(cur),
|
2052 |
+
vm
|
2053 |
+
);
|
2054 |
+
} else if (isUndef(old)) {
|
2055 |
+
if (isUndef(cur.fns)) {
|
2056 |
+
cur = on[name] = createFnInvoker(cur);
|
2057 |
+
}
|
2058 |
+
add(event.name, cur, event.once, event.capture, event.passive, event.params);
|
2059 |
+
} else if (cur !== old) {
|
2060 |
+
old.fns = cur;
|
2061 |
+
on[name] = old;
|
2062 |
+
}
|
2063 |
+
}
|
2064 |
+
for (name in oldOn) {
|
2065 |
+
if (isUndef(on[name])) {
|
2066 |
+
event = normalizeEvent(name);
|
2067 |
+
remove$$1(event.name, oldOn[name], event.capture);
|
2068 |
+
}
|
2069 |
+
}
|
2070 |
+
}
|
2071 |
+
|
2072 |
+
/* */
|
2073 |
+
|
2074 |
+
function mergeVNodeHook (def, hookKey, hook) {
|
2075 |
+
if (def instanceof VNode) {
|
2076 |
+
def = def.data.hook || (def.data.hook = {});
|
2077 |
+
}
|
2078 |
+
var invoker;
|
2079 |
+
var oldHook = def[hookKey];
|
2080 |
+
|
2081 |
+
function wrappedHook () {
|
2082 |
+
hook.apply(this, arguments);
|
2083 |
+
// important: remove merged hook to ensure it's called only once
|
2084 |
+
// and prevent memory leak
|
2085 |
+
remove(invoker.fns, wrappedHook);
|
2086 |
+
}
|
2087 |
+
|
2088 |
+
if (isUndef(oldHook)) {
|
2089 |
+
// no existing hook
|
2090 |
+
invoker = createFnInvoker([wrappedHook]);
|
2091 |
+
} else {
|
2092 |
+
/* istanbul ignore if */
|
2093 |
+
if (isDef(oldHook.fns) && isTrue(oldHook.merged)) {
|
2094 |
+
// already a merged invoker
|
2095 |
+
invoker = oldHook;
|
2096 |
+
invoker.fns.push(wrappedHook);
|
2097 |
+
} else {
|
2098 |
+
// existing plain hook
|
2099 |
+
invoker = createFnInvoker([oldHook, wrappedHook]);
|
2100 |
+
}
|
2101 |
+
}
|
2102 |
+
|
2103 |
+
invoker.merged = true;
|
2104 |
+
def[hookKey] = invoker;
|
2105 |
+
}
|
2106 |
+
|
2107 |
+
/* */
|
2108 |
+
|
2109 |
+
function extractPropsFromVNodeData (
|
2110 |
+
data,
|
2111 |
+
Ctor,
|
2112 |
+
tag
|
2113 |
+
) {
|
2114 |
+
// we are only extracting raw values here.
|
2115 |
+
// validation and default values are handled in the child
|
2116 |
+
// component itself.
|
2117 |
+
var propOptions = Ctor.options.props;
|
2118 |
+
if (isUndef(propOptions)) {
|
2119 |
+
return
|
2120 |
+
}
|
2121 |
+
var res = {};
|
2122 |
+
var attrs = data.attrs;
|
2123 |
+
var props = data.props;
|
2124 |
+
if (isDef(attrs) || isDef(props)) {
|
2125 |
+
for (var key in propOptions) {
|
2126 |
+
var altKey = hyphenate(key);
|
2127 |
+
{
|
2128 |
+
var keyInLowerCase = key.toLowerCase();
|
2129 |
+
if (
|
2130 |
+
key !== keyInLowerCase &&
|
2131 |
+
attrs && hasOwn(attrs, keyInLowerCase)
|
2132 |
+
) {
|
2133 |
+
tip(
|
2134 |
+
"Prop \"" + keyInLowerCase + "\" is passed to component " +
|
2135 |
+
(formatComponentName(tag || Ctor)) + ", but the declared prop name is" +
|
2136 |
+
" \"" + key + "\". " +
|
2137 |
+
"Note that HTML attributes are case-insensitive and camelCased " +
|
2138 |
+
"props need to use their kebab-case equivalents when using in-DOM " +
|
2139 |
+
"templates. You should probably use \"" + altKey + "\" instead of \"" + key + "\"."
|
2140 |
+
);
|
2141 |
+
}
|
2142 |
+
}
|
2143 |
+
checkProp(res, props, key, altKey, true) ||
|
2144 |
+
checkProp(res, attrs, key, altKey, false);
|
2145 |
+
}
|
2146 |
+
}
|
2147 |
+
return res
|
2148 |
+
}
|
2149 |
+
|
2150 |
+
function checkProp (
|
2151 |
+
res,
|
2152 |
+
hash,
|
2153 |
+
key,
|
2154 |
+
altKey,
|
2155 |
+
preserve
|
2156 |
+
) {
|
2157 |
+
if (isDef(hash)) {
|
2158 |
+
if (hasOwn(hash, key)) {
|
2159 |
+
res[key] = hash[key];
|
2160 |
+
if (!preserve) {
|
2161 |
+
delete hash[key];
|
2162 |
+
}
|
2163 |
+
return true
|
2164 |
+
} else if (hasOwn(hash, altKey)) {
|
2165 |
+
res[key] = hash[altKey];
|
2166 |
+
if (!preserve) {
|
2167 |
+
delete hash[altKey];
|
2168 |
+
}
|
2169 |
+
return true
|
2170 |
+
}
|
2171 |
+
}
|
2172 |
+
return false
|
2173 |
+
}
|
2174 |
+
|
2175 |
+
/* */
|
2176 |
+
|
2177 |
+
// The template compiler attempts to minimize the need for normalization by
|
2178 |
+
// statically analyzing the template at compile time.
|
2179 |
+
//
|
2180 |
+
// For plain HTML markup, normalization can be completely skipped because the
|
2181 |
+
// generated render function is guaranteed to return Array<VNode>. There are
|
2182 |
+
// two cases where extra normalization is needed:
|
2183 |
+
|
2184 |
+
// 1. When the children contains components - because a functional component
|
2185 |
+
// may return an Array instead of a single root. In this case, just a simple
|
2186 |
+
// normalization is needed - if any child is an Array, we flatten the whole
|
2187 |
+
// thing with Array.prototype.concat. It is guaranteed to be only 1-level deep
|
2188 |
+
// because functional components already normalize their own children.
|
2189 |
+
function simpleNormalizeChildren (children) {
|
2190 |
+
for (var i = 0; i < children.length; i++) {
|
2191 |
+
if (Array.isArray(children[i])) {
|
2192 |
+
return Array.prototype.concat.apply([], children)
|
2193 |
+
}
|
2194 |
+
}
|
2195 |
+
return children
|
2196 |
+
}
|
2197 |
+
|
2198 |
+
// 2. When the children contains constructs that always generated nested Arrays,
|
2199 |
+
// e.g. <template>, <slot>, v-for, or when the children is provided by user
|
2200 |
+
// with hand-written render functions / JSX. In such cases a full normalization
|
2201 |
+
// is needed to cater to all possible types of children values.
|
2202 |
+
function normalizeChildren (children) {
|
2203 |
+
return isPrimitive(children)
|
2204 |
+
? [createTextVNode(children)]
|
2205 |
+
: Array.isArray(children)
|
2206 |
+
? normalizeArrayChildren(children)
|
2207 |
+
: undefined
|
2208 |
+
}
|
2209 |
+
|
2210 |
+
function isTextNode (node) {
|
2211 |
+
return isDef(node) && isDef(node.text) && isFalse(node.isComment)
|
2212 |
+
}
|
2213 |
+
|
2214 |
+
function normalizeArrayChildren (children, nestedIndex) {
|
2215 |
+
var res = [];
|
2216 |
+
var i, c, lastIndex, last;
|
2217 |
+
for (i = 0; i < children.length; i++) {
|
2218 |
+
c = children[i];
|
2219 |
+
if (isUndef(c) || typeof c === 'boolean') { continue }
|
2220 |
+
lastIndex = res.length - 1;
|
2221 |
+
last = res[lastIndex];
|
2222 |
+
// nested
|
2223 |
+
if (Array.isArray(c)) {
|
2224 |
+
if (c.length > 0) {
|
2225 |
+
c = normalizeArrayChildren(c, ((nestedIndex || '') + "_" + i));
|
2226 |
+
// merge adjacent text nodes
|
2227 |
+
if (isTextNode(c[0]) && isTextNode(last)) {
|
2228 |
+
res[lastIndex] = createTextVNode(last.text + (c[0]).text);
|
2229 |
+
c.shift();
|
2230 |
+
}
|
2231 |
+
res.push.apply(res, c);
|
2232 |
+
}
|
2233 |
+
} else if (isPrimitive(c)) {
|
2234 |
+
if (isTextNode(last)) {
|
2235 |
+
// merge adjacent text nodes
|
2236 |
+
// this is necessary for SSR hydration because text nodes are
|
2237 |
+
// essentially merged when rendered to HTML strings
|
2238 |
+
res[lastIndex] = createTextVNode(last.text + c);
|
2239 |
+
} else if (c !== '') {
|
2240 |
+
// convert primitive to vnode
|
2241 |
+
res.push(createTextVNode(c));
|
2242 |
+
}
|
2243 |
+
} else {
|
2244 |
+
if (isTextNode(c) && isTextNode(last)) {
|
2245 |
+
// merge adjacent text nodes
|
2246 |
+
res[lastIndex] = createTextVNode(last.text + c.text);
|
2247 |
+
} else {
|
2248 |
+
// default key for nested array children (likely generated by v-for)
|
2249 |
+
if (isTrue(children._isVList) &&
|
2250 |
+
isDef(c.tag) &&
|
2251 |
+
isUndef(c.key) &&
|
2252 |
+
isDef(nestedIndex)) {
|
2253 |
+
c.key = "__vlist" + nestedIndex + "_" + i + "__";
|
2254 |
+
}
|
2255 |
+
res.push(c);
|
2256 |
+
}
|
2257 |
+
}
|
2258 |
+
}
|
2259 |
+
return res
|
2260 |
+
}
|
2261 |
+
|
2262 |
+
/* */
|
2263 |
+
|
2264 |
+
function ensureCtor (comp, base) {
|
2265 |
+
if (
|
2266 |
+
comp.__esModule ||
|
2267 |
+
(hasSymbol && comp[Symbol.toStringTag] === 'Module')
|
2268 |
+
) {
|
2269 |
+
comp = comp.default;
|
2270 |
+
}
|
2271 |
+
return isObject(comp)
|
2272 |
+
? base.extend(comp)
|
2273 |
+
: comp
|
2274 |
+
}
|
2275 |
+
|
2276 |
+
function createAsyncPlaceholder (
|
2277 |
+
factory,
|
2278 |
+
data,
|
2279 |
+
context,
|
2280 |
+
children,
|
2281 |
+
tag
|
2282 |
+
) {
|
2283 |
+
var node = createEmptyVNode();
|
2284 |
+
node.asyncFactory = factory;
|
2285 |
+
node.asyncMeta = { data: data, context: context, children: children, tag: tag };
|
2286 |
+
return node
|
2287 |
+
}
|
2288 |
+
|
2289 |
+
function resolveAsyncComponent (
|
2290 |
+
factory,
|
2291 |
+
baseCtor,
|
2292 |
+
context
|
2293 |
+
) {
|
2294 |
+
if (isTrue(factory.error) && isDef(factory.errorComp)) {
|
2295 |
+
return factory.errorComp
|
2296 |
+
}
|
2297 |
+
|
2298 |
+
if (isDef(factory.resolved)) {
|
2299 |
+
return factory.resolved
|
2300 |
+
}
|
2301 |
+
|
2302 |
+
if (isTrue(factory.loading) && isDef(factory.loadingComp)) {
|
2303 |
+
return factory.loadingComp
|
2304 |
+
}
|
2305 |
+
|
2306 |
+
if (isDef(factory.contexts)) {
|
2307 |
+
// already pending
|
2308 |
+
factory.contexts.push(context);
|
2309 |
+
} else {
|
2310 |
+
var contexts = factory.contexts = [context];
|
2311 |
+
var sync = true;
|
2312 |
+
|
2313 |
+
var forceRender = function () {
|
2314 |
+
for (var i = 0, l = contexts.length; i < l; i++) {
|
2315 |
+
contexts[i].$forceUpdate();
|
2316 |
+
}
|
2317 |
+
};
|
2318 |
+
|
2319 |
+
var resolve = once(function (res) {
|
2320 |
+
// cache resolved
|
2321 |
+
factory.resolved = ensureCtor(res, baseCtor);
|
2322 |
+
// invoke callbacks only if this is not a synchronous resolve
|
2323 |
+
// (async resolves are shimmed as synchronous during SSR)
|
2324 |
+
if (!sync) {
|
2325 |
+
forceRender();
|
2326 |
+
}
|
2327 |
+
});
|
2328 |
+
|
2329 |
+
var reject = once(function (reason) {
|
2330 |
+
"development" !== 'production' && warn(
|
2331 |
+
"Failed to resolve async component: " + (String(factory)) +
|
2332 |
+
(reason ? ("\nReason: " + reason) : '')
|
2333 |
+
);
|
2334 |
+
if (isDef(factory.errorComp)) {
|
2335 |
+
factory.error = true;
|
2336 |
+
forceRender();
|
2337 |
+
}
|
2338 |
+
});
|
2339 |
+
|
2340 |
+
var res = factory(resolve, reject);
|
2341 |
+
|
2342 |
+
if (isObject(res)) {
|
2343 |
+
if (typeof res.then === 'function') {
|
2344 |
+
// () => Promise
|
2345 |
+
if (isUndef(factory.resolved)) {
|
2346 |
+
res.then(resolve, reject);
|
2347 |
+
}
|
2348 |
+
} else if (isDef(res.component) && typeof res.component.then === 'function') {
|
2349 |
+
res.component.then(resolve, reject);
|
2350 |
+
|
2351 |
+
if (isDef(res.error)) {
|
2352 |
+
factory.errorComp = ensureCtor(res.error, baseCtor);
|
2353 |
+
}
|
2354 |
+
|
2355 |
+
if (isDef(res.loading)) {
|
2356 |
+
factory.loadingComp = ensureCtor(res.loading, baseCtor);
|
2357 |
+
if (res.delay === 0) {
|
2358 |
+
factory.loading = true;
|
2359 |
+
} else {
|
2360 |
+
setTimeout(function () {
|
2361 |
+
if (isUndef(factory.resolved) && isUndef(factory.error)) {
|
2362 |
+
factory.loading = true;
|
2363 |
+
forceRender();
|
2364 |
+
}
|
2365 |
+
}, res.delay || 200);
|
2366 |
+
}
|
2367 |
+
}
|
2368 |
+
|
2369 |
+
if (isDef(res.timeout)) {
|
2370 |
+
setTimeout(function () {
|
2371 |
+
if (isUndef(factory.resolved)) {
|
2372 |
+
reject(
|
2373 |
+
"timeout (" + (res.timeout) + "ms)"
|
2374 |
+
);
|
2375 |
+
}
|
2376 |
+
}, res.timeout);
|
2377 |
+
}
|
2378 |
+
}
|
2379 |
+
}
|
2380 |
+
|
2381 |
+
sync = false;
|
2382 |
+
// return in case resolved synchronously
|
2383 |
+
return factory.loading
|
2384 |
+
? factory.loadingComp
|
2385 |
+
: factory.resolved
|
2386 |
+
}
|
2387 |
+
}
|
2388 |
+
|
2389 |
+
/* */
|
2390 |
+
|
2391 |
+
function isAsyncPlaceholder (node) {
|
2392 |
+
return node.isComment && node.asyncFactory
|
2393 |
+
}
|
2394 |
+
|
2395 |
+
/* */
|
2396 |
+
|
2397 |
+
function getFirstComponentChild (children) {
|
2398 |
+
if (Array.isArray(children)) {
|
2399 |
+
for (var i = 0; i < children.length; i++) {
|
2400 |
+
var c = children[i];
|
2401 |
+
if (isDef(c) && (isDef(c.componentOptions) || isAsyncPlaceholder(c))) {
|
2402 |
+
return c
|
2403 |
+
}
|
2404 |
+
}
|
2405 |
+
}
|
2406 |
+
}
|
2407 |
+
|
2408 |
+
/* */
|
2409 |
+
|
2410 |
+
/* */
|
2411 |
+
|
2412 |
+
function initEvents (vm) {
|
2413 |
+
vm._events = Object.create(null);
|
2414 |
+
vm._hasHookEvent = false;
|
2415 |
+
// init parent attached events
|
2416 |
+
var listeners = vm.$options._parentListeners;
|
2417 |
+
if (listeners) {
|
2418 |
+
updateComponentListeners(vm, listeners);
|
2419 |
+
}
|
2420 |
+
}
|
2421 |
+
|
2422 |
+
var target;
|
2423 |
+
|
2424 |
+
function add (event, fn, once) {
|
2425 |
+
if (once) {
|
2426 |
+
target.$once(event, fn);
|
2427 |
+
} else {
|
2428 |
+
target.$on(event, fn);
|
2429 |
+
}
|
2430 |
+
}
|
2431 |
+
|
2432 |
+
function remove$1 (event, fn) {
|
2433 |
+
target.$off(event, fn);
|
2434 |
+
}
|
2435 |
+
|
2436 |
+
function updateComponentListeners (
|
2437 |
+
vm,
|
2438 |
+
listeners,
|
2439 |
+
oldListeners
|
2440 |
+
) {
|
2441 |
+
target = vm;
|
2442 |
+
updateListeners(listeners, oldListeners || {}, add, remove$1, vm);
|
2443 |
+
target = undefined;
|
2444 |
+
}
|
2445 |
+
|
2446 |
+
function eventsMixin (Vue) {
|
2447 |
+
var hookRE = /^hook:/;
|
2448 |
+
Vue.prototype.$on = function (event, fn) {
|
2449 |
+
var this$1 = this;
|
2450 |
+
|
2451 |
+
var vm = this;
|
2452 |
+
if (Array.isArray(event)) {
|
2453 |
+
for (var i = 0, l = event.length; i < l; i++) {
|
2454 |
+
this$1.$on(event[i], fn);
|
2455 |
+
}
|
2456 |
+
} else {
|
2457 |
+
(vm._events[event] || (vm._events[event] = [])).push(fn);
|
2458 |
+
// optimize hook:event cost by using a boolean flag marked at registration
|
2459 |
+
// instead of a hash lookup
|
2460 |
+
if (hookRE.test(event)) {
|
2461 |
+
vm._hasHookEvent = true;
|
2462 |
+
}
|
2463 |
+
}
|
2464 |
+
return vm
|
2465 |
+
};
|
2466 |
+
|
2467 |
+
Vue.prototype.$once = function (event, fn) {
|
2468 |
+
var vm = this;
|
2469 |
+
function on () {
|
2470 |
+
vm.$off(event, on);
|
2471 |
+
fn.apply(vm, arguments);
|
2472 |
+
}
|
2473 |
+
on.fn = fn;
|
2474 |
+
vm.$on(event, on);
|
2475 |
+
return vm
|
2476 |
+
};
|
2477 |
+
|
2478 |
+
Vue.prototype.$off = function (event, fn) {
|
2479 |
+
var this$1 = this;
|
2480 |
+
|
2481 |
+
var vm = this;
|
2482 |
+
// all
|
2483 |
+
if (!arguments.length) {
|
2484 |
+
vm._events = Object.create(null);
|
2485 |
+
return vm
|
2486 |
+
}
|
2487 |
+
// array of events
|
2488 |
+
if (Array.isArray(event)) {
|
2489 |
+
for (var i = 0, l = event.length; i < l; i++) {
|
2490 |
+
this$1.$off(event[i], fn);
|
2491 |
+
}
|
2492 |
+
return vm
|
2493 |
+
}
|
2494 |
+
// specific event
|
2495 |
+
var cbs = vm._events[event];
|
2496 |
+
if (!cbs) {
|
2497 |
+
return vm
|
2498 |
+
}
|
2499 |
+
if (!fn) {
|
2500 |
+
vm._events[event] = null;
|
2501 |
+
return vm
|
2502 |
+
}
|
2503 |
+
if (fn) {
|
2504 |
+
// specific handler
|
2505 |
+
var cb;
|
2506 |
+
var i$1 = cbs.length;
|
2507 |
+
while (i$1--) {
|
2508 |
+
cb = cbs[i$1];
|
2509 |
+
if (cb === fn || cb.fn === fn) {
|
2510 |
+
cbs.splice(i$1, 1);
|
2511 |
+
break
|
2512 |
+
}
|
2513 |
+
}
|
2514 |
+
}
|
2515 |
+
return vm
|
2516 |
+
};
|
2517 |
+
|
2518 |
+
Vue.prototype.$emit = function (event) {
|
2519 |
+
var vm = this;
|
2520 |
+
{
|
2521 |
+
var lowerCaseEvent = event.toLowerCase();
|
2522 |
+
if (lowerCaseEvent !== event && vm._events[lowerCaseEvent]) {
|
2523 |
+
tip(
|
2524 |
+
"Event \"" + lowerCaseEvent + "\" is emitted in component " +
|
2525 |
+
(formatComponentName(vm)) + " but the handler is registered for \"" + event + "\". " +
|
2526 |
+
"Note that HTML attributes are case-insensitive and you cannot use " +
|
2527 |
+
"v-on to listen to camelCase events when using in-DOM templates. " +
|
2528 |
+
"You should probably use \"" + (hyphenate(event)) + "\" instead of \"" + event + "\"."
|
2529 |
+
);
|
2530 |
+
}
|
2531 |
+
}
|
2532 |
+
var cbs = vm._events[event];
|
2533 |
+
if (cbs) {
|
2534 |
+
cbs = cbs.length > 1 ? toArray(cbs) : cbs;
|
2535 |
+
var args = toArray(arguments, 1);
|
2536 |
+
for (var i = 0, l = cbs.length; i < l; i++) {
|
2537 |
+
try {
|
2538 |
+
cbs[i].apply(vm, args);
|
2539 |
+
} catch (e) {
|
2540 |
+
handleError(e, vm, ("event handler for \"" + event + "\""));
|
2541 |
+
}
|
2542 |
+
}
|
2543 |
+
}
|
2544 |
+
return vm
|
2545 |
+
};
|
2546 |
+
}
|
2547 |
+
|
2548 |
+
/* */
|
2549 |
+
|
2550 |
+
|
2551 |
+
|
2552 |
+
/**
|
2553 |
+
* Runtime helper for resolving raw children VNodes into a slot object.
|
2554 |
+
*/
|
2555 |
+
function resolveSlots (
|
2556 |
+
children,
|
2557 |
+
context
|
2558 |
+
) {
|
2559 |
+
var slots = {};
|
2560 |
+
if (!children) {
|
2561 |
+
return slots
|
2562 |
+
}
|
2563 |
+
for (var i = 0, l = children.length; i < l; i++) {
|
2564 |
+
var child = children[i];
|
2565 |
+
var data = child.data;
|
2566 |
+
// remove slot attribute if the node is resolved as a Vue slot node
|
2567 |
+
if (data && data.attrs && data.attrs.slot) {
|
2568 |
+
delete data.attrs.slot;
|
2569 |
+
}
|
2570 |
+
// named slots should only be respected if the vnode was rendered in the
|
2571 |
+
// same context.
|
2572 |
+
if ((child.context === context || child.fnContext === context) &&
|
2573 |
+
data && data.slot != null
|
2574 |
+
) {
|
2575 |
+
var name = data.slot;
|
2576 |
+
var slot = (slots[name] || (slots[name] = []));
|
2577 |
+
if (child.tag === 'template') {
|
2578 |
+
slot.push.apply(slot, child.children || []);
|
2579 |
+
} else {
|
2580 |
+
slot.push(child);
|
2581 |
+
}
|
2582 |
+
} else {
|
2583 |
+
(slots.default || (slots.default = [])).push(child);
|
2584 |
+
}
|
2585 |
+
}
|
2586 |
+
// ignore slots that contains only whitespace
|
2587 |
+
for (var name$1 in slots) {
|
2588 |
+
if (slots[name$1].every(isWhitespace)) {
|
2589 |
+
delete slots[name$1];
|
2590 |
+
}
|
2591 |
+
}
|
2592 |
+
return slots
|
2593 |
+
}
|
2594 |
+
|
2595 |
+
function isWhitespace (node) {
|
2596 |
+
return (node.isComment && !node.asyncFactory) || node.text === ' '
|
2597 |
+
}
|
2598 |
+
|
2599 |
+
function resolveScopedSlots (
|
2600 |
+
fns, // see flow/vnode
|
2601 |
+
res
|
2602 |
+
) {
|
2603 |
+
res = res || {};
|
2604 |
+
for (var i = 0; i < fns.length; i++) {
|
2605 |
+
if (Array.isArray(fns[i])) {
|
2606 |
+
resolveScopedSlots(fns[i], res);
|
2607 |
+
} else {
|
2608 |
+
res[fns[i].key] = fns[i].fn;
|
2609 |
+
}
|
2610 |
+
}
|
2611 |
+
return res
|
2612 |
+
}
|
2613 |
+
|
2614 |
+
/* */
|
2615 |
+
|
2616 |
+
var activeInstance = null;
|
2617 |
+
var isUpdatingChildComponent = false;
|
2618 |
+
|
2619 |
+
function initLifecycle (vm) {
|
2620 |
+
var options = vm.$options;
|
2621 |
+
|
2622 |
+
// locate first non-abstract parent
|
2623 |
+
var parent = options.parent;
|
2624 |
+
if (parent && !options.abstract) {
|
2625 |
+
while (parent.$options.abstract && parent.$parent) {
|
2626 |
+
parent = parent.$parent;
|
2627 |
+
}
|
2628 |
+
parent.$children.push(vm);
|
2629 |
+
}
|
2630 |
+
|
2631 |
+
vm.$parent = parent;
|
2632 |
+
vm.$root = parent ? parent.$root : vm;
|
2633 |
+
|
2634 |
+
vm.$children = [];
|
2635 |
+
vm.$refs = {};
|
2636 |
+
|
2637 |
+
vm._watcher = null;
|
2638 |
+
vm._inactive = null;
|
2639 |
+
vm._directInactive = false;
|
2640 |
+
vm._isMounted = false;
|
2641 |
+
vm._isDestroyed = false;
|
2642 |
+
vm._isBeingDestroyed = false;
|
2643 |
+
}
|
2644 |
+
|
2645 |
+
function lifecycleMixin (Vue) {
|
2646 |
+
Vue.prototype._update = function (vnode, hydrating) {
|
2647 |
+
var vm = this;
|
2648 |
+
if (vm._isMounted) {
|
2649 |
+
callHook(vm, 'beforeUpdate');
|
2650 |
+
}
|
2651 |
+
var prevEl = vm.$el;
|
2652 |
+
var prevVnode = vm._vnode;
|
2653 |
+
var prevActiveInstance = activeInstance;
|
2654 |
+
activeInstance = vm;
|
2655 |
+
vm._vnode = vnode;
|
2656 |
+
// Vue.prototype.__patch__ is injected in entry points
|
2657 |
+
// based on the rendering backend used.
|
2658 |
+
if (!prevVnode) {
|
2659 |
+
// initial render
|
2660 |
+
vm.$el = vm.__patch__(
|
2661 |
+
vm.$el, vnode, hydrating, false /* removeOnly */,
|
2662 |
+
vm.$options._parentElm,
|
2663 |
+
vm.$options._refElm
|
2664 |
+
);
|
2665 |
+
// no need for the ref nodes after initial patch
|
2666 |
+
// this prevents keeping a detached DOM tree in memory (#5851)
|
2667 |
+
vm.$options._parentElm = vm.$options._refElm = null;
|
2668 |
+
} else {
|
2669 |
+
// updates
|
2670 |
+
vm.$el = vm.__patch__(prevVnode, vnode);
|
2671 |
+
}
|
2672 |
+
activeInstance = prevActiveInstance;
|
2673 |
+
// update __vue__ reference
|
2674 |
+
if (prevEl) {
|
2675 |
+
prevEl.__vue__ = null;
|
2676 |
+
}
|
2677 |
+
if (vm.$el) {
|
2678 |
+
vm.$el.__vue__ = vm;
|
2679 |
+
}
|
2680 |
+
// if parent is an HOC, update its $el as well
|
2681 |
+
if (vm.$vnode && vm.$parent && vm.$vnode === vm.$parent._vnode) {
|
2682 |
+
vm.$parent.$el = vm.$el;
|
2683 |
+
}
|
2684 |
+
// updated hook is called by the scheduler to ensure that children are
|
2685 |
+
// updated in a parent's updated hook.
|
2686 |
+
};
|
2687 |
+
|
2688 |
+
Vue.prototype.$forceUpdate = function () {
|
2689 |
+
var vm = this;
|
2690 |
+
if (vm._watcher) {
|
2691 |
+
vm._watcher.update();
|
2692 |
+
}
|
2693 |
+
};
|
2694 |
+
|
2695 |
+
Vue.prototype.$destroy = function () {
|
2696 |
+
var vm = this;
|
2697 |
+
if (vm._isBeingDestroyed) {
|
2698 |
+
return
|
2699 |
+
}
|
2700 |
+
callHook(vm, 'beforeDestroy');
|
2701 |
+
vm._isBeingDestroyed = true;
|
2702 |
+
// remove self from parent
|
2703 |
+
var parent = vm.$parent;
|
2704 |
+
if (parent && !parent._isBeingDestroyed && !vm.$options.abstract) {
|
2705 |
+
remove(parent.$children, vm);
|
2706 |
+
}
|
2707 |
+
// teardown watchers
|
2708 |
+
if (vm._watcher) {
|
2709 |
+
vm._watcher.teardown();
|
2710 |
+
}
|
2711 |
+
var i = vm._watchers.length;
|
2712 |
+
while (i--) {
|
2713 |
+
vm._watchers[i].teardown();
|
2714 |
+
}
|
2715 |
+
// remove reference from data ob
|
2716 |
+
// frozen object may not have observer.
|
2717 |
+
if (vm._data.__ob__) {
|
2718 |
+
vm._data.__ob__.vmCount--;
|
2719 |
+
}
|
2720 |
+
// call the last hook...
|
2721 |
+
vm._isDestroyed = true;
|
2722 |
+
// invoke destroy hooks on current rendered tree
|
2723 |
+
vm.__patch__(vm._vnode, null);
|
2724 |
+
// fire destroyed hook
|
2725 |
+
callHook(vm, 'destroyed');
|
2726 |
+
// turn off all instance listeners.
|
2727 |
+
vm.$off();
|
2728 |
+
// remove __vue__ reference
|
2729 |
+
if (vm.$el) {
|
2730 |
+
vm.$el.__vue__ = null;
|
2731 |
+
}
|
2732 |
+
// release circular reference (#6759)
|
2733 |
+
if (vm.$vnode) {
|
2734 |
+
vm.$vnode.parent = null;
|
2735 |
+
}
|
2736 |
+
};
|
2737 |
+
}
|
2738 |
+
|
2739 |
+
function mountComponent (
|
2740 |
+
vm,
|
2741 |
+
el,
|
2742 |
+
hydrating
|
2743 |
+
) {
|
2744 |
+
vm.$el = el;
|
2745 |
+
if (!vm.$options.render) {
|
2746 |
+
vm.$options.render = createEmptyVNode;
|
2747 |
+
{
|
2748 |
+
/* istanbul ignore if */
|
2749 |
+
if ((vm.$options.template && vm.$options.template.charAt(0) !== '#') ||
|
2750 |
+
vm.$options.el || el) {
|
2751 |
+
warn(
|
2752 |
+
'You are using the runtime-only build of Vue where the template ' +
|
2753 |
+
'compiler is not available. Either pre-compile the templates into ' +
|
2754 |
+
'render functions, or use the compiler-included build.',
|
2755 |
+
vm
|
2756 |
+
);
|
2757 |
+
} else {
|
2758 |
+
warn(
|
2759 |
+
'Failed to mount component: template or render function not defined.',
|
2760 |
+
vm
|
2761 |
+
);
|
2762 |
+
}
|
2763 |
+
}
|
2764 |
+
}
|
2765 |
+
callHook(vm, 'beforeMount');
|
2766 |
+
|
2767 |
+
var updateComponent;
|
2768 |
+
/* istanbul ignore if */
|
2769 |
+
if ("development" !== 'production' && config.performance && mark) {
|
2770 |
+
updateComponent = function () {
|
2771 |
+
var name = vm._name;
|
2772 |
+
var id = vm._uid;
|
2773 |
+
var startTag = "vue-perf-start:" + id;
|
2774 |
+
var endTag = "vue-perf-end:" + id;
|
2775 |
+
|
2776 |
+
mark(startTag);
|
2777 |
+
var vnode = vm._render();
|
2778 |
+
mark(endTag);
|
2779 |
+
measure(("vue " + name + " render"), startTag, endTag);
|
2780 |
+
|
2781 |
+
mark(startTag);
|
2782 |
+
vm._update(vnode, hydrating);
|
2783 |
+
mark(endTag);
|
2784 |
+
measure(("vue " + name + " patch"), startTag, endTag);
|
2785 |
+
};
|
2786 |
+
} else {
|
2787 |
+
updateComponent = function () {
|
2788 |
+
vm._update(vm._render(), hydrating);
|
2789 |
+
};
|
2790 |
+
}
|
2791 |
+
|
2792 |
+
// we set this to vm._watcher inside the watcher's constructor
|
2793 |
+
// since the watcher's initial patch may call $forceUpdate (e.g. inside child
|
2794 |
+
// component's mounted hook), which relies on vm._watcher being already defined
|
2795 |
+
new Watcher(vm, updateComponent, noop, null, true /* isRenderWatcher */);
|
2796 |
+
hydrating = false;
|
2797 |
+
|
2798 |
+
// manually mounted instance, call mounted on self
|
2799 |
+
// mounted is called for render-created child components in its inserted hook
|
2800 |
+
if (vm.$vnode == null) {
|
2801 |
+
vm._isMounted = true;
|
2802 |
+
callHook(vm, 'mounted');
|
2803 |
+
}
|
2804 |
+
return vm
|
2805 |
+
}
|
2806 |
+
|
2807 |
+
function updateChildComponent (
|
2808 |
+
vm,
|
2809 |
+
propsData,
|
2810 |
+
listeners,
|
2811 |
+
parentVnode,
|
2812 |
+
renderChildren
|
2813 |
+
) {
|
2814 |
+
{
|
2815 |
+
isUpdatingChildComponent = true;
|
2816 |
+
}
|
2817 |
+
|
2818 |
+
// determine whether component has slot children
|
2819 |
+
// we need to do this before overwriting $options._renderChildren
|
2820 |
+
var hasChildren = !!(
|
2821 |
+
renderChildren || // has new static slots
|
2822 |
+
vm.$options._renderChildren || // has old static slots
|
2823 |
+
parentVnode.data.scopedSlots || // has new scoped slots
|
2824 |
+
vm.$scopedSlots !== emptyObject // has old scoped slots
|
2825 |
+
);
|
2826 |
+
|
2827 |
+
vm.$options._parentVnode = parentVnode;
|
2828 |
+
vm.$vnode = parentVnode; // update vm's placeholder node without re-render
|
2829 |
+
|
2830 |
+
if (vm._vnode) { // update child tree's parent
|
2831 |
+
vm._vnode.parent = parentVnode;
|
2832 |
+
}
|
2833 |
+
vm.$options._renderChildren = renderChildren;
|
2834 |
+
|
2835 |
+
// update $attrs and $listeners hash
|
2836 |
+
// these are also reactive so they may trigger child update if the child
|
2837 |
+
// used them during render
|
2838 |
+
vm.$attrs = parentVnode.data.attrs || emptyObject;
|
2839 |
+
vm.$listeners = listeners || emptyObject;
|
2840 |
+
|
2841 |
+
// update props
|
2842 |
+
if (propsData && vm.$options.props) {
|
2843 |
+
toggleObserving(false);
|
2844 |
+
var props = vm._props;
|
2845 |
+
var propKeys = vm.$options._propKeys || [];
|
2846 |
+
for (var i = 0; i < propKeys.length; i++) {
|
2847 |
+
var key = propKeys[i];
|
2848 |
+
var propOptions = vm.$options.props; // wtf flow?
|
2849 |
+
props[key] = validateProp(key, propOptions, propsData, vm);
|
2850 |
+
}
|
2851 |
+
toggleObserving(true);
|
2852 |
+
// keep a copy of raw propsData
|
2853 |
+
vm.$options.propsData = propsData;
|
2854 |
+
}
|
2855 |
+
|
2856 |
+
// update listeners
|
2857 |
+
listeners = listeners || emptyObject;
|
2858 |
+
var oldListeners = vm.$options._parentListeners;
|
2859 |
+
vm.$options._parentListeners = listeners;
|
2860 |
+
updateComponentListeners(vm, listeners, oldListeners);
|
2861 |
+
|
2862 |
+
// resolve slots + force update if has children
|
2863 |
+
if (hasChildren) {
|
2864 |
+
vm.$slots = resolveSlots(renderChildren, parentVnode.context);
|
2865 |
+
vm.$forceUpdate();
|
2866 |
+
}
|
2867 |
+
|
2868 |
+
{
|
2869 |
+
isUpdatingChildComponent = false;
|
2870 |
+
}
|
2871 |
+
}
|
2872 |
+
|
2873 |
+
function isInInactiveTree (vm) {
|
2874 |
+
while (vm && (vm = vm.$parent)) {
|
2875 |
+
if (vm._inactive) { return true }
|
2876 |
+
}
|
2877 |
+
return false
|
2878 |
+
}
|
2879 |
+
|
2880 |
+
function activateChildComponent (vm, direct) {
|
2881 |
+
if (direct) {
|
2882 |
+
vm._directInactive = false;
|
2883 |
+
if (isInInactiveTree(vm)) {
|
2884 |
+
return
|
2885 |
+
}
|
2886 |
+
} else if (vm._directInactive) {
|
2887 |
+
return
|
2888 |
+
}
|
2889 |
+
if (vm._inactive || vm._inactive === null) {
|
2890 |
+
vm._inactive = false;
|
2891 |
+
for (var i = 0; i < vm.$children.length; i++) {
|
2892 |
+
activateChildComponent(vm.$children[i]);
|
2893 |
+
}
|
2894 |
+
callHook(vm, 'activated');
|
2895 |
+
}
|
2896 |
+
}
|
2897 |
+
|
2898 |
+
function deactivateChildComponent (vm, direct) {
|
2899 |
+
if (direct) {
|
2900 |
+
vm._directInactive = true;
|
2901 |
+
if (isInInactiveTree(vm)) {
|
2902 |
+
return
|
2903 |
+
}
|
2904 |
+
}
|
2905 |
+
if (!vm._inactive) {
|
2906 |
+
vm._inactive = true;
|
2907 |
+
for (var i = 0; i < vm.$children.length; i++) {
|
2908 |
+
deactivateChildComponent(vm.$children[i]);
|
2909 |
+
}
|
2910 |
+
callHook(vm, 'deactivated');
|
2911 |
+
}
|
2912 |
+
}
|
2913 |
+
|
2914 |
+
function callHook (vm, hook) {
|
2915 |
+
// #7573 disable dep collection when invoking lifecycle hooks
|
2916 |
+
pushTarget();
|
2917 |
+
var handlers = vm.$options[hook];
|
2918 |
+
if (handlers) {
|
2919 |
+
for (var i = 0, j = handlers.length; i < j; i++) {
|
2920 |
+
try {
|
2921 |
+
handlers[i].call(vm);
|
2922 |
+
} catch (e) {
|
2923 |
+
handleError(e, vm, (hook + " hook"));
|
2924 |
+
}
|
2925 |
+
}
|
2926 |
+
}
|
2927 |
+
if (vm._hasHookEvent) {
|
2928 |
+
vm.$emit('hook:' + hook);
|
2929 |
+
}
|
2930 |
+
popTarget();
|
2931 |
+
}
|
2932 |
+
|
2933 |
+
/* */
|
2934 |
+
|
2935 |
+
|
2936 |
+
var MAX_UPDATE_COUNT = 100;
|
2937 |
+
|
2938 |
+
var queue = [];
|
2939 |
+
var activatedChildren = [];
|
2940 |
+
var has = {};
|
2941 |
+
var circular = {};
|
2942 |
+
var waiting = false;
|
2943 |
+
var flushing = false;
|
2944 |
+
var index = 0;
|
2945 |
+
|
2946 |
+
/**
|
2947 |
+
* Reset the scheduler's state.
|
2948 |
+
*/
|
2949 |
+
function resetSchedulerState () {
|
2950 |
+
index = queue.length = activatedChildren.length = 0;
|
2951 |
+
has = {};
|
2952 |
+
{
|
2953 |
+
circular = {};
|
2954 |
+
}
|
2955 |
+
waiting = flushing = false;
|
2956 |
+
}
|
2957 |
+
|
2958 |
+
/**
|
2959 |
+
* Flush both queues and run the watchers.
|
2960 |
+
*/
|
2961 |
+
function flushSchedulerQueue () {
|
2962 |
+
flushing = true;
|
2963 |
+
var watcher, id;
|
2964 |
+
|
2965 |
+
// Sort queue before flush.
|
2966 |
+
// This ensures that:
|
2967 |
+
// 1. Components are updated from parent to child. (because parent is always
|
2968 |
+
// created before the child)
|
2969 |
+
// 2. A component's user watchers are run before its render watcher (because
|
2970 |
+
// user watchers are created before the render watcher)
|
2971 |
+
// 3. If a component is destroyed during a parent component's watcher run,
|
2972 |
+
// its watchers can be skipped.
|
2973 |
+
queue.sort(function (a, b) { return a.id - b.id; });
|
2974 |
+
|
2975 |
+
// do not cache length because more watchers might be pushed
|
2976 |
+
// as we run existing watchers
|
2977 |
+
for (index = 0; index < queue.length; index++) {
|
2978 |
+
watcher = queue[index];
|
2979 |
+
id = watcher.id;
|
2980 |
+
has[id] = null;
|
2981 |
+
watcher.run();
|
2982 |
+
// in dev build, check and stop circular updates.
|
2983 |
+
if ("development" !== 'production' && has[id] != null) {
|
2984 |
+
circular[id] = (circular[id] || 0) + 1;
|
2985 |
+
if (circular[id] > MAX_UPDATE_COUNT) {
|
2986 |
+
warn(
|
2987 |
+
'You may have an infinite update loop ' + (
|
2988 |
+
watcher.user
|
2989 |
+
? ("in watcher with expression \"" + (watcher.expression) + "\"")
|
2990 |
+
: "in a component render function."
|
2991 |
+
),
|
2992 |
+
watcher.vm
|
2993 |
+
);
|
2994 |
+
break
|
2995 |
+
}
|
2996 |
+
}
|
2997 |
+
}
|
2998 |
+
|
2999 |
+
// keep copies of post queues before resetting state
|
3000 |
+
var activatedQueue = activatedChildren.slice();
|
3001 |
+
var updatedQueue = queue.slice();
|
3002 |
+
|
3003 |
+
resetSchedulerState();
|
3004 |
+
|
3005 |
+
// call component updated and activated hooks
|
3006 |
+
callActivatedHooks(activatedQueue);
|
3007 |
+
callUpdatedHooks(updatedQueue);
|
3008 |
+
|
3009 |
+
// devtool hook
|
3010 |
+
/* istanbul ignore if */
|
3011 |
+
if (devtools && config.devtools) {
|
3012 |
+
devtools.emit('flush');
|
3013 |
+
}
|
3014 |
+
}
|
3015 |
+
|
3016 |
+
function callUpdatedHooks (queue) {
|
3017 |
+
var i = queue.length;
|
3018 |
+
while (i--) {
|
3019 |
+
var watcher = queue[i];
|
3020 |
+
var vm = watcher.vm;
|
3021 |
+
if (vm._watcher === watcher && vm._isMounted) {
|
3022 |
+
callHook(vm, 'updated');
|
3023 |
+
}
|
3024 |
+
}
|
3025 |
+
}
|
3026 |
+
|
3027 |
+
/**
|
3028 |
+
* Queue a kept-alive component that was activated during patch.
|
3029 |
+
* The queue will be processed after the entire tree has been patched.
|
3030 |
+
*/
|
3031 |
+
function queueActivatedComponent (vm) {
|
3032 |
+
// setting _inactive to false here so that a render function can
|
3033 |
+
// rely on checking whether it's in an inactive tree (e.g. router-view)
|
3034 |
+
vm._inactive = false;
|
3035 |
+
activatedChildren.push(vm);
|
3036 |
+
}
|
3037 |
+
|
3038 |
+
function callActivatedHooks (queue) {
|
3039 |
+
for (var i = 0; i < queue.length; i++) {
|
3040 |
+
queue[i]._inactive = true;
|
3041 |
+
activateChildComponent(queue[i], true /* true */);
|
3042 |
+
}
|
3043 |
+
}
|
3044 |
+
|
3045 |
+
/**
|
3046 |
+
* Push a watcher into the watcher queue.
|
3047 |
+
* Jobs with duplicate IDs will be skipped unless it's
|
3048 |
+
* pushed when the queue is being flushed.
|
3049 |
+
*/
|
3050 |
+
function queueWatcher (watcher) {
|
3051 |
+
var id = watcher.id;
|
3052 |
+
if (has[id] == null) {
|
3053 |
+
has[id] = true;
|
3054 |
+
if (!flushing) {
|
3055 |
+
queue.push(watcher);
|
3056 |
+
} else {
|
3057 |
+
// if already flushing, splice the watcher based on its id
|
3058 |
+
// if already past its id, it will be run next immediately.
|
3059 |
+
var i = queue.length - 1;
|
3060 |
+
while (i > index && queue[i].id > watcher.id) {
|
3061 |
+
i--;
|
3062 |
+
}
|
3063 |
+
queue.splice(i + 1, 0, watcher);
|
3064 |
+
}
|
3065 |
+
// queue the flush
|
3066 |
+
if (!waiting) {
|
3067 |
+
waiting = true;
|
3068 |
+
nextTick(flushSchedulerQueue);
|
3069 |
+
}
|
3070 |
+
}
|
3071 |
+
}
|
3072 |
+
|
3073 |
+
/* */
|
3074 |
+
|
3075 |
+
var uid$1 = 0;
|
3076 |
+
|
3077 |
+
/**
|
3078 |
+
* A watcher parses an expression, collects dependencies,
|
3079 |
+
* and fires callback when the expression value changes.
|
3080 |
+
* This is used for both the $watch() api and directives.
|
3081 |
+
*/
|
3082 |
+
var Watcher = function Watcher (
|
3083 |
+
vm,
|
3084 |
+
expOrFn,
|
3085 |
+
cb,
|
3086 |
+
options,
|
3087 |
+
isRenderWatcher
|
3088 |
+
) {
|
3089 |
+
this.vm = vm;
|
3090 |
+
if (isRenderWatcher) {
|
3091 |
+
vm._watcher = this;
|
3092 |
+
}
|
3093 |
+
vm._watchers.push(this);
|
3094 |
+
// options
|
3095 |
+
if (options) {
|
3096 |
+
this.deep = !!options.deep;
|
3097 |
+
this.user = !!options.user;
|
3098 |
+
this.lazy = !!options.lazy;
|
3099 |
+
this.sync = !!options.sync;
|
3100 |
+
} else {
|
3101 |
+
this.deep = this.user = this.lazy = this.sync = false;
|
3102 |
+
}
|
3103 |
+
this.cb = cb;
|
3104 |
+
this.id = ++uid$1; // uid for batching
|
3105 |
+
this.active = true;
|
3106 |
+
this.dirty = this.lazy; // for lazy watchers
|
3107 |
+
this.deps = [];
|
3108 |
+
this.newDeps = [];
|
3109 |
+
this.depIds = new _Set();
|
3110 |
+
this.newDepIds = new _Set();
|
3111 |
+
this.expression = expOrFn.toString();
|
3112 |
+
// parse expression for getter
|
3113 |
+
if (typeof expOrFn === 'function') {
|
3114 |
+
this.getter = expOrFn;
|
3115 |
+
} else {
|
3116 |
+
this.getter = parsePath(expOrFn);
|
3117 |
+
if (!this.getter) {
|
3118 |
+
this.getter = function () {};
|
3119 |
+
"development" !== 'production' && warn(
|
3120 |
+
"Failed watching path: \"" + expOrFn + "\" " +
|
3121 |
+
'Watcher only accepts simple dot-delimited paths. ' +
|
3122 |
+
'For full control, use a function instead.',
|
3123 |
+
vm
|
3124 |
+
);
|
3125 |
+
}
|
3126 |
+
}
|
3127 |
+
this.value = this.lazy
|
3128 |
+
? undefined
|
3129 |
+
: this.get();
|
3130 |
+
};
|
3131 |
+
|
3132 |
+
/**
|
3133 |
+
* Evaluate the getter, and re-collect dependencies.
|
3134 |
+
*/
|
3135 |
+
Watcher.prototype.get = function get () {
|
3136 |
+
pushTarget(this);
|
3137 |
+
var value;
|
3138 |
+
var vm = this.vm;
|
3139 |
+
try {
|
3140 |
+
value = this.getter.call(vm, vm);
|
3141 |
+
} catch (e) {
|
3142 |
+
if (this.user) {
|
3143 |
+
handleError(e, vm, ("getter for watcher \"" + (this.expression) + "\""));
|
3144 |
+
} else {
|
3145 |
+
throw e
|
3146 |
+
}
|
3147 |
+
} finally {
|
3148 |
+
// "touch" every property so they are all tracked as
|
3149 |
+
// dependencies for deep watching
|
3150 |
+
if (this.deep) {
|
3151 |
+
traverse(value);
|
3152 |
+
}
|
3153 |
+
popTarget();
|
3154 |
+
this.cleanupDeps();
|
3155 |
+
}
|
3156 |
+
return value
|
3157 |
+
};
|
3158 |
+
|
3159 |
+
/**
|
3160 |
+
* Add a dependency to this directive.
|
3161 |
+
*/
|
3162 |
+
Watcher.prototype.addDep = function addDep (dep) {
|
3163 |
+
var id = dep.id;
|
3164 |
+
if (!this.newDepIds.has(id)) {
|
3165 |
+
this.newDepIds.add(id);
|
3166 |
+
this.newDeps.push(dep);
|
3167 |
+
if (!this.depIds.has(id)) {
|
3168 |
+
dep.addSub(this);
|
3169 |
+
}
|
3170 |
+
}
|
3171 |
+
};
|
3172 |
+
|
3173 |
+
/**
|
3174 |
+
* Clean up for dependency collection.
|
3175 |
+
*/
|
3176 |
+
Watcher.prototype.cleanupDeps = function cleanupDeps () {
|
3177 |
+
var this$1 = this;
|
3178 |
+
|
3179 |
+
var i = this.deps.length;
|
3180 |
+
while (i--) {
|
3181 |
+
var dep = this$1.deps[i];
|
3182 |
+
if (!this$1.newDepIds.has(dep.id)) {
|
3183 |
+
dep.removeSub(this$1);
|
3184 |
+
}
|
3185 |
+
}
|
3186 |
+
var tmp = this.depIds;
|
3187 |
+
this.depIds = this.newDepIds;
|
3188 |
+
this.newDepIds = tmp;
|
3189 |
+
this.newDepIds.clear();
|
3190 |
+
tmp = this.deps;
|
3191 |
+
this.deps = this.newDeps;
|
3192 |
+
this.newDeps = tmp;
|
3193 |
+
this.newDeps.length = 0;
|
3194 |
+
};
|
3195 |
+
|
3196 |
+
/**
|
3197 |
+
* Subscriber interface.
|
3198 |
+
* Will be called when a dependency changes.
|
3199 |
+
*/
|
3200 |
+
Watcher.prototype.update = function update () {
|
3201 |
+
/* istanbul ignore else */
|
3202 |
+
if (this.lazy) {
|
3203 |
+
this.dirty = true;
|
3204 |
+
} else if (this.sync) {
|
3205 |
+
this.run();
|
3206 |
+
} else {
|
3207 |
+
queueWatcher(this);
|
3208 |
+
}
|
3209 |
+
};
|
3210 |
+
|
3211 |
+
/**
|
3212 |
+
* Scheduler job interface.
|
3213 |
+
* Will be called by the scheduler.
|
3214 |
+
*/
|
3215 |
+
Watcher.prototype.run = function run () {
|
3216 |
+
if (this.active) {
|
3217 |
+
var value = this.get();
|
3218 |
+
if (
|
3219 |
+
value !== this.value ||
|
3220 |
+
// Deep watchers and watchers on Object/Arrays should fire even
|
3221 |
+
// when the value is the same, because the value may
|
3222 |
+
// have mutated.
|
3223 |
+
isObject(value) ||
|
3224 |
+
this.deep
|
3225 |
+
) {
|
3226 |
+
// set new value
|
3227 |
+
var oldValue = this.value;
|
3228 |
+
this.value = value;
|
3229 |
+
if (this.user) {
|
3230 |
+
try {
|
3231 |
+
this.cb.call(this.vm, value, oldValue);
|
3232 |
+
} catch (e) {
|
3233 |
+
handleError(e, this.vm, ("callback for watcher \"" + (this.expression) + "\""));
|
3234 |
+
}
|
3235 |
+
} else {
|
3236 |
+
this.cb.call(this.vm, value, oldValue);
|
3237 |
+
}
|
3238 |
+
}
|
3239 |
+
}
|
3240 |
+
};
|
3241 |
+
|
3242 |
+
/**
|
3243 |
+
* Evaluate the value of the watcher.
|
3244 |
+
* This only gets called for lazy watchers.
|
3245 |
+
*/
|
3246 |
+
Watcher.prototype.evaluate = function evaluate () {
|
3247 |
+
this.value = this.get();
|
3248 |
+
this.dirty = false;
|
3249 |
+
};
|
3250 |
+
|
3251 |
+
/**
|
3252 |
+
* Depend on all deps collected by this watcher.
|
3253 |
+
*/
|
3254 |
+
Watcher.prototype.depend = function depend () {
|
3255 |
+
var this$1 = this;
|
3256 |
+
|
3257 |
+
var i = this.deps.length;
|
3258 |
+
while (i--) {
|
3259 |
+
this$1.deps[i].depend();
|
3260 |
+
}
|
3261 |
+
};
|
3262 |
+
|
3263 |
+
/**
|
3264 |
+
* Remove self from all dependencies' subscriber list.
|
3265 |
+
*/
|
3266 |
+
Watcher.prototype.teardown = function teardown () {
|
3267 |
+
var this$1 = this;
|
3268 |
+
|
3269 |
+
if (this.active) {
|
3270 |
+
// remove self from vm's watcher list
|
3271 |
+
// this is a somewhat expensive operation so we skip it
|
3272 |
+
// if the vm is being destroyed.
|
3273 |
+
if (!this.vm._isBeingDestroyed) {
|
3274 |
+
remove(this.vm._watchers, this);
|
3275 |
+
}
|
3276 |
+
var i = this.deps.length;
|
3277 |
+
while (i--) {
|
3278 |
+
this$1.deps[i].removeSub(this$1);
|
3279 |
+
}
|
3280 |
+
this.active = false;
|
3281 |
+
}
|
3282 |
+
};
|
3283 |
+
|
3284 |
+
/* */
|
3285 |
+
|
3286 |
+
var sharedPropertyDefinition = {
|
3287 |
+
enumerable: true,
|
3288 |
+
configurable: true,
|
3289 |
+
get: noop,
|
3290 |
+
set: noop
|
3291 |
+
};
|
3292 |
+
|
3293 |
+
function proxy (target, sourceKey, key) {
|
3294 |
+
sharedPropertyDefinition.get = function proxyGetter () {
|
3295 |
+
return this[sourceKey][key]
|
3296 |
+
};
|
3297 |
+
sharedPropertyDefinition.set = function proxySetter (val) {
|
3298 |
+
this[sourceKey][key] = val;
|
3299 |
+
};
|
3300 |
+
Object.defineProperty(target, key, sharedPropertyDefinition);
|
3301 |
+
}
|
3302 |
+
|
3303 |
+
function initState (vm) {
|
3304 |
+
vm._watchers = [];
|
3305 |
+
var opts = vm.$options;
|
3306 |
+
if (opts.props) { initProps(vm, opts.props); }
|
3307 |
+
if (opts.methods) { initMethods(vm, opts.methods); }
|
3308 |
+
if (opts.data) {
|
3309 |
+
initData(vm);
|
3310 |
+
} else {
|
3311 |
+
observe(vm._data = {}, true /* asRootData */);
|
3312 |
+
}
|
3313 |
+
if (opts.computed) { initComputed(vm, opts.computed); }
|
3314 |
+
if (opts.watch && opts.watch !== nativeWatch) {
|
3315 |
+
initWatch(vm, opts.watch);
|
3316 |
+
}
|
3317 |
+
}
|
3318 |
+
|
3319 |
+
function initProps (vm, propsOptions) {
|
3320 |
+
var propsData = vm.$options.propsData || {};
|
3321 |
+
var props = vm._props = {};
|
3322 |
+
// cache prop keys so that future props updates can iterate using Array
|
3323 |
+
// instead of dynamic object key enumeration.
|
3324 |
+
var keys = vm.$options._propKeys = [];
|
3325 |
+
var isRoot = !vm.$parent;
|
3326 |
+
// root instance props should be converted
|
3327 |
+
if (!isRoot) {
|
3328 |
+
toggleObserving(false);
|
3329 |
+
}
|
3330 |
+
var loop = function ( key ) {
|
3331 |
+
keys.push(key);
|
3332 |
+
var value = validateProp(key, propsOptions, propsData, vm);
|
3333 |
+
/* istanbul ignore else */
|
3334 |
+
{
|
3335 |
+
var hyphenatedKey = hyphenate(key);
|
3336 |
+
if (isReservedAttribute(hyphenatedKey) ||
|
3337 |
+
config.isReservedAttr(hyphenatedKey)) {
|
3338 |
+
warn(
|
3339 |
+
("\"" + hyphenatedKey + "\" is a reserved attribute and cannot be used as component prop."),
|
3340 |
+
vm
|
3341 |
+
);
|
3342 |
+
}
|
3343 |
+
defineReactive(props, key, value, function () {
|
3344 |
+
if (vm.$parent && !isUpdatingChildComponent) {
|
3345 |
+
warn(
|
3346 |
+
"Avoid mutating a prop directly since the value will be " +
|
3347 |
+
"overwritten whenever the parent component re-renders. " +
|
3348 |
+
"Instead, use a data or computed property based on the prop's " +
|
3349 |
+
"value. Prop being mutated: \"" + key + "\"",
|
3350 |
+
vm
|
3351 |
+
);
|
3352 |
+
}
|
3353 |
+
});
|
3354 |
+
}
|
3355 |
+
// static props are already proxied on the component's prototype
|
3356 |
+
// during Vue.extend(). We only need to proxy props defined at
|
3357 |
+
// instantiation here.
|
3358 |
+
if (!(key in vm)) {
|
3359 |
+
proxy(vm, "_props", key);
|
3360 |
+
}
|
3361 |
+
};
|
3362 |
+
|
3363 |
+
for (var key in propsOptions) loop( key );
|
3364 |
+
toggleObserving(true);
|
3365 |
+
}
|
3366 |
+
|
3367 |
+
function initData (vm) {
|
3368 |
+
var data = vm.$options.data;
|
3369 |
+
data = vm._data = typeof data === 'function'
|
3370 |
+
? getData(data, vm)
|
3371 |
+
: data || {};
|
3372 |
+
if (!isPlainObject(data)) {
|
3373 |
+
data = {};
|
3374 |
+
"development" !== 'production' && warn(
|
3375 |
+
'data functions should return an object:\n' +
|
3376 |
+
'https://vuejs.org/v2/guide/components.html#data-Must-Be-a-Function',
|
3377 |
+
vm
|
3378 |
+
);
|
3379 |
+
}
|
3380 |
+
// proxy data on instance
|
3381 |
+
var keys = Object.keys(data);
|
3382 |
+
var props = vm.$options.props;
|
3383 |
+
var methods = vm.$options.methods;
|
3384 |
+
var i = keys.length;
|
3385 |
+
while (i--) {
|
3386 |
+
var key = keys[i];
|
3387 |
+
{
|
3388 |
+
if (methods && hasOwn(methods, key)) {
|
3389 |
+
warn(
|
3390 |
+
("Method \"" + key + "\" has already been defined as a data property."),
|
3391 |
+
vm
|
3392 |
+
);
|
3393 |
+
}
|
3394 |
+
}
|
3395 |
+
if (props && hasOwn(props, key)) {
|
3396 |
+
"development" !== 'production' && warn(
|
3397 |
+
"The data property \"" + key + "\" is already declared as a prop. " +
|
3398 |
+
"Use prop default value instead.",
|
3399 |
+
vm
|
3400 |
+
);
|
3401 |
+
} else if (!isReserved(key)) {
|
3402 |
+
proxy(vm, "_data", key);
|
3403 |
+
}
|
3404 |
+
}
|
3405 |
+
// observe data
|
3406 |
+
observe(data, true /* asRootData */);
|
3407 |
+
}
|
3408 |
+
|
3409 |
+
function getData (data, vm) {
|
3410 |
+
// #7573 disable dep collection when invoking data getters
|
3411 |
+
pushTarget();
|
3412 |
+
try {
|
3413 |
+
return data.call(vm, vm)
|
3414 |
+
} catch (e) {
|
3415 |
+
handleError(e, vm, "data()");
|
3416 |
+
return {}
|
3417 |
+
} finally {
|
3418 |
+
popTarget();
|
3419 |
+
}
|
3420 |
+
}
|
3421 |
+
|
3422 |
+
var computedWatcherOptions = { lazy: true };
|
3423 |
+
|
3424 |
+
function initComputed (vm, computed) {
|
3425 |
+
// $flow-disable-line
|
3426 |
+
var watchers = vm._computedWatchers = Object.create(null);
|
3427 |
+
// computed properties are just getters during SSR
|
3428 |
+
var isSSR = isServerRendering();
|
3429 |
+
|
3430 |
+
for (var key in computed) {
|
3431 |
+
var userDef = computed[key];
|
3432 |
+
var getter = typeof userDef === 'function' ? userDef : userDef.get;
|
3433 |
+
if ("development" !== 'production' && getter == null) {
|
3434 |
+
warn(
|
3435 |
+
("Getter is missing for computed property \"" + key + "\"."),
|
3436 |
+
vm
|
3437 |
+
);
|
3438 |
+
}
|
3439 |
+
|
3440 |
+
if (!isSSR) {
|
3441 |
+
// create internal watcher for the computed property.
|
3442 |
+
watchers[key] = new Watcher(
|
3443 |
+
vm,
|
3444 |
+
getter || noop,
|
3445 |
+
noop,
|
3446 |
+
computedWatcherOptions
|
3447 |
+
);
|
3448 |
+
}
|
3449 |
+
|
3450 |
+
// component-defined computed properties are already defined on the
|
3451 |
+
// component prototype. We only need to define computed properties defined
|
3452 |
+
// at instantiation here.
|
3453 |
+
if (!(key in vm)) {
|
3454 |
+
defineComputed(vm, key, userDef);
|
3455 |
+
} else {
|
3456 |
+
if (key in vm.$data) {
|
3457 |
+
warn(("The computed property \"" + key + "\" is already defined in data."), vm);
|
3458 |
+
} else if (vm.$options.props && key in vm.$options.props) {
|
3459 |
+
warn(("The computed property \"" + key + "\" is already defined as a prop."), vm);
|
3460 |
+
}
|
3461 |
+
}
|
3462 |
+
}
|
3463 |
+
}
|
3464 |
+
|
3465 |
+
function defineComputed (
|
3466 |
+
target,
|
3467 |
+
key,
|
3468 |
+
userDef
|
3469 |
+
) {
|
3470 |
+
var shouldCache = !isServerRendering();
|
3471 |
+
if (typeof userDef === 'function') {
|
3472 |
+
sharedPropertyDefinition.get = shouldCache
|
3473 |
+
? createComputedGetter(key)
|
3474 |
+
: userDef;
|
3475 |
+
sharedPropertyDefinition.set = noop;
|
3476 |
+
} else {
|
3477 |
+
sharedPropertyDefinition.get = userDef.get
|
3478 |
+
? shouldCache && userDef.cache !== false
|
3479 |
+
? createComputedGetter(key)
|
3480 |
+
: userDef.get
|
3481 |
+
: noop;
|
3482 |
+
sharedPropertyDefinition.set = userDef.set
|
3483 |
+
? userDef.set
|
3484 |
+
: noop;
|
3485 |
+
}
|
3486 |
+
if ("development" !== 'production' &&
|
3487 |
+
sharedPropertyDefinition.set === noop) {
|
3488 |
+
sharedPropertyDefinition.set = function () {
|
3489 |
+
warn(
|
3490 |
+
("Computed property \"" + key + "\" was assigned to but it has no setter."),
|
3491 |
+
this
|
3492 |
+
);
|
3493 |
+
};
|
3494 |
+
}
|
3495 |
+
Object.defineProperty(target, key, sharedPropertyDefinition);
|
3496 |
+
}
|
3497 |
+
|
3498 |
+
function createComputedGetter (key) {
|
3499 |
+
return function computedGetter () {
|
3500 |
+
var watcher = this._computedWatchers && this._computedWatchers[key];
|
3501 |
+
if (watcher) {
|
3502 |
+
if (watcher.dirty) {
|
3503 |
+
watcher.evaluate();
|
3504 |
+
}
|
3505 |
+
if (Dep.target) {
|
3506 |
+
watcher.depend();
|
3507 |
+
}
|
3508 |
+
return watcher.value
|
3509 |
+
}
|
3510 |
+
}
|
3511 |
+
}
|
3512 |
+
|
3513 |
+
function initMethods (vm, methods) {
|
3514 |
+
var props = vm.$options.props;
|
3515 |
+
for (var key in methods) {
|
3516 |
+
{
|
3517 |
+
if (methods[key] == null) {
|
3518 |
+
warn(
|
3519 |
+
"Method \"" + key + "\" has an undefined value in the component definition. " +
|
3520 |
+
"Did you reference the function correctly?",
|
3521 |
+
vm
|
3522 |
+
);
|
3523 |
+
}
|
3524 |
+
if (props && hasOwn(props, key)) {
|
3525 |
+
warn(
|
3526 |
+
("Method \"" + key + "\" has already been defined as a prop."),
|
3527 |
+
vm
|
3528 |
+
);
|
3529 |
+
}
|
3530 |
+
if ((key in vm) && isReserved(key)) {
|
3531 |
+
warn(
|
3532 |
+
"Method \"" + key + "\" conflicts with an existing Vue instance method. " +
|
3533 |
+
"Avoid defining component methods that start with _ or $."
|
3534 |
+
);
|
3535 |
+
}
|
3536 |
+
}
|
3537 |
+
vm[key] = methods[key] == null ? noop : bind(methods[key], vm);
|
3538 |
+
}
|
3539 |
+
}
|
3540 |
+
|
3541 |
+
function initWatch (vm, watch) {
|
3542 |
+
for (var key in watch) {
|
3543 |
+
var handler = watch[key];
|
3544 |
+
if (Array.isArray(handler)) {
|
3545 |
+
for (var i = 0; i < handler.length; i++) {
|
3546 |
+
createWatcher(vm, key, handler[i]);
|
3547 |
+
}
|
3548 |
+
} else {
|
3549 |
+
createWatcher(vm, key, handler);
|
3550 |
+
}
|
3551 |
+
}
|
3552 |
+
}
|
3553 |
+
|
3554 |
+
function createWatcher (
|
3555 |
+
vm,
|
3556 |
+
expOrFn,
|
3557 |
+
handler,
|
3558 |
+
options
|
3559 |
+
) {
|
3560 |
+
if (isPlainObject(handler)) {
|
3561 |
+
options = handler;
|
3562 |
+
handler = handler.handler;
|
3563 |
+
}
|
3564 |
+
if (typeof handler === 'string') {
|
3565 |
+
handler = vm[handler];
|
3566 |
+
}
|
3567 |
+
return vm.$watch(expOrFn, handler, options)
|
3568 |
+
}
|
3569 |
+
|
3570 |
+
function stateMixin (Vue) {
|
3571 |
+
// flow somehow has problems with directly declared definition object
|
3572 |
+
// when using Object.defineProperty, so we have to procedurally build up
|
3573 |
+
// the object here.
|
3574 |
+
var dataDef = {};
|
3575 |
+
dataDef.get = function () { return this._data };
|
3576 |
+
var propsDef = {};
|
3577 |
+
propsDef.get = function () { return this._props };
|
3578 |
+
{
|
3579 |
+
dataDef.set = function (newData) {
|
3580 |
+
warn(
|
3581 |
+
'Avoid replacing instance root $data. ' +
|
3582 |
+
'Use nested data properties instead.',
|
3583 |
+
this
|
3584 |
+
);
|
3585 |
+
};
|
3586 |
+
propsDef.set = function () {
|
3587 |
+
warn("$props is readonly.", this);
|
3588 |
+
};
|
3589 |
+
}
|
3590 |
+
Object.defineProperty(Vue.prototype, '$data', dataDef);
|
3591 |
+
Object.defineProperty(Vue.prototype, '$props', propsDef);
|
3592 |
+
|
3593 |
+
Vue.prototype.$set = set;
|
3594 |
+
Vue.prototype.$delete = del;
|
3595 |
+
|
3596 |
+
Vue.prototype.$watch = function (
|
3597 |
+
expOrFn,
|
3598 |
+
cb,
|
3599 |
+
options
|
3600 |
+
) {
|
3601 |
+
var vm = this;
|
3602 |
+
if (isPlainObject(cb)) {
|
3603 |
+
return createWatcher(vm, expOrFn, cb, options)
|
3604 |
+
}
|
3605 |
+
options = options || {};
|
3606 |
+
options.user = true;
|
3607 |
+
var watcher = new Watcher(vm, expOrFn, cb, options);
|
3608 |
+
if (options.immediate) {
|
3609 |
+
cb.call(vm, watcher.value);
|
3610 |
+
}
|
3611 |
+
return function unwatchFn () {
|
3612 |
+
watcher.teardown();
|
3613 |
+
}
|
3614 |
+
};
|
3615 |
+
}
|
3616 |
+
|
3617 |
+
/* */
|
3618 |
+
|
3619 |
+
function initProvide (vm) {
|
3620 |
+
var provide = vm.$options.provide;
|
3621 |
+
if (provide) {
|
3622 |
+
vm._provided = typeof provide === 'function'
|
3623 |
+
? provide.call(vm)
|
3624 |
+
: provide;
|
3625 |
+
}
|
3626 |
+
}
|
3627 |
+
|
3628 |
+
function initInjections (vm) {
|
3629 |
+
var result = resolveInject(vm.$options.inject, vm);
|
3630 |
+
if (result) {
|
3631 |
+
toggleObserving(false);
|
3632 |
+
Object.keys(result).forEach(function (key) {
|
3633 |
+
/* istanbul ignore else */
|
3634 |
+
{
|
3635 |
+
defineReactive(vm, key, result[key], function () {
|
3636 |
+
warn(
|
3637 |
+
"Avoid mutating an injected value directly since the changes will be " +
|
3638 |
+
"overwritten whenever the provided component re-renders. " +
|
3639 |
+
"injection being mutated: \"" + key + "\"",
|
3640 |
+
vm
|
3641 |
+
);
|
3642 |
+
});
|
3643 |
+
}
|
3644 |
+
});
|
3645 |
+
toggleObserving(true);
|
3646 |
+
}
|
3647 |
+
}
|
3648 |
+
|
3649 |
+
function resolveInject (inject, vm) {
|
3650 |
+
if (inject) {
|
3651 |
+
// inject is :any because flow is not smart enough to figure out cached
|
3652 |
+
var result = Object.create(null);
|
3653 |
+
var keys = hasSymbol
|
3654 |
+
? Reflect.ownKeys(inject).filter(function (key) {
|
3655 |
+
/* istanbul ignore next */
|
3656 |
+
return Object.getOwnPropertyDescriptor(inject, key).enumerable
|
3657 |
+
})
|
3658 |
+
: Object.keys(inject);
|
3659 |
+
|
3660 |
+
for (var i = 0; i < keys.length; i++) {
|
3661 |
+
var key = keys[i];
|
3662 |
+
var provideKey = inject[key].from;
|
3663 |
+
var source = vm;
|
3664 |
+
while (source) {
|
3665 |
+
if (source._provided && hasOwn(source._provided, provideKey)) {
|
3666 |
+
result[key] = source._provided[provideKey];
|
3667 |
+
break
|
3668 |
+
}
|
3669 |
+
source = source.$parent;
|
3670 |
+
}
|
3671 |
+
if (!source) {
|
3672 |
+
if ('default' in inject[key]) {
|
3673 |
+
var provideDefault = inject[key].default;
|
3674 |
+
result[key] = typeof provideDefault === 'function'
|
3675 |
+
? provideDefault.call(vm)
|
3676 |
+
: provideDefault;
|
3677 |
+
} else {
|
3678 |
+
warn(("Injection \"" + key + "\" not found"), vm);
|
3679 |
+
}
|
3680 |
+
}
|
3681 |
+
}
|
3682 |
+
return result
|
3683 |
+
}
|
3684 |
+
}
|
3685 |
+
|
3686 |
+
/* */
|
3687 |
+
|
3688 |
+
/**
|
3689 |
+
* Runtime helper for rendering v-for lists.
|
3690 |
+
*/
|
3691 |
+
function renderList (
|
3692 |
+
val,
|
3693 |
+
render
|
3694 |
+
) {
|
3695 |
+
var ret, i, l, keys, key;
|
3696 |
+
if (Array.isArray(val) || typeof val === 'string') {
|
3697 |
+
ret = new Array(val.length);
|
3698 |
+
for (i = 0, l = val.length; i < l; i++) {
|
3699 |
+
ret[i] = render(val[i], i);
|
3700 |
+
}
|
3701 |
+
} else if (typeof val === 'number') {
|
3702 |
+
ret = new Array(val);
|
3703 |
+
for (i = 0; i < val; i++) {
|
3704 |
+
ret[i] = render(i + 1, i);
|
3705 |
+
}
|
3706 |
+
} else if (isObject(val)) {
|
3707 |
+
keys = Object.keys(val);
|
3708 |
+
ret = new Array(keys.length);
|
3709 |
+
for (i = 0, l = keys.length; i < l; i++) {
|
3710 |
+
key = keys[i];
|
3711 |
+
ret[i] = render(val[key], key, i);
|
3712 |
+
}
|
3713 |
+
}
|
3714 |
+
if (isDef(ret)) {
|
3715 |
+
(ret)._isVList = true;
|
3716 |
+
}
|
3717 |
+
return ret
|
3718 |
+
}
|
3719 |
+
|
3720 |
+
/* */
|
3721 |
+
|
3722 |
+
/**
|
3723 |
+
* Runtime helper for rendering <slot>
|
3724 |
+
*/
|
3725 |
+
function renderSlot (
|
3726 |
+
name,
|
3727 |
+
fallback,
|
3728 |
+
props,
|
3729 |
+
bindObject
|
3730 |
+
) {
|
3731 |
+
var scopedSlotFn = this.$scopedSlots[name];
|
3732 |
+
var nodes;
|
3733 |
+
if (scopedSlotFn) { // scoped slot
|
3734 |
+
props = props || {};
|
3735 |
+
if (bindObject) {
|
3736 |
+
if ("development" !== 'production' && !isObject(bindObject)) {
|
3737 |
+
warn(
|
3738 |
+
'slot v-bind without argument expects an Object',
|
3739 |
+
this
|
3740 |
+
);
|
3741 |
+
}
|
3742 |
+
props = extend(extend({}, bindObject), props);
|
3743 |
+
}
|
3744 |
+
nodes = scopedSlotFn(props) || fallback;
|
3745 |
+
} else {
|
3746 |
+
var slotNodes = this.$slots[name];
|
3747 |
+
// warn duplicate slot usage
|
3748 |
+
if (slotNodes) {
|
3749 |
+
if ("development" !== 'production' && slotNodes._rendered) {
|
3750 |
+
warn(
|
3751 |
+
"Duplicate presence of slot \"" + name + "\" found in the same render tree " +
|
3752 |
+
"- this will likely cause render errors.",
|
3753 |
+
this
|
3754 |
+
);
|
3755 |
+
}
|
3756 |
+
slotNodes._rendered = true;
|
3757 |
+
}
|
3758 |
+
nodes = slotNodes || fallback;
|
3759 |
+
}
|
3760 |
+
|
3761 |
+
var target = props && props.slot;
|
3762 |
+
if (target) {
|
3763 |
+
return this.$createElement('template', { slot: target }, nodes)
|
3764 |
+
} else {
|
3765 |
+
return nodes
|
3766 |
+
}
|
3767 |
+
}
|
3768 |
+
|
3769 |
+
/* */
|
3770 |
+
|
3771 |
+
/**
|
3772 |
+
* Runtime helper for resolving filters
|
3773 |
+
*/
|
3774 |
+
function resolveFilter (id) {
|
3775 |
+
return resolveAsset(this.$options, 'filters', id, true) || identity
|
3776 |
+
}
|
3777 |
+
|
3778 |
+
/* */
|
3779 |
+
|
3780 |
+
function isKeyNotMatch (expect, actual) {
|
3781 |
+
if (Array.isArray(expect)) {
|
3782 |
+
return expect.indexOf(actual) === -1
|
3783 |
+
} else {
|
3784 |
+
return expect !== actual
|
3785 |
+
}
|
3786 |
+
}
|
3787 |
+
|
3788 |
+
/**
|
3789 |
+
* Runtime helper for checking keyCodes from config.
|
3790 |
+
* exposed as Vue.prototype._k
|
3791 |
+
* passing in eventKeyName as last argument separately for backwards compat
|
3792 |
+
*/
|
3793 |
+
function checkKeyCodes (
|
3794 |
+
eventKeyCode,
|
3795 |
+
key,
|
3796 |
+
builtInKeyCode,
|
3797 |
+
eventKeyName,
|
3798 |
+
builtInKeyName
|
3799 |
+
) {
|
3800 |
+
var mappedKeyCode = config.keyCodes[key] || builtInKeyCode;
|
3801 |
+
if (builtInKeyName && eventKeyName && !config.keyCodes[key]) {
|
3802 |
+
return isKeyNotMatch(builtInKeyName, eventKeyName)
|
3803 |
+
} else if (mappedKeyCode) {
|
3804 |
+
return isKeyNotMatch(mappedKeyCode, eventKeyCode)
|
3805 |
+
} else if (eventKeyName) {
|
3806 |
+
return hyphenate(eventKeyName) !== key
|
3807 |
+
}
|
3808 |
+
}
|
3809 |
+
|
3810 |
+
/* */
|
3811 |
+
|
3812 |
+
/**
|
3813 |
+
* Runtime helper for merging v-bind="object" into a VNode's data.
|
3814 |
+
*/
|
3815 |
+
function bindObjectProps (
|
3816 |
+
data,
|
3817 |
+
tag,
|
3818 |
+
value,
|
3819 |
+
asProp,
|
3820 |
+
isSync
|
3821 |
+
) {
|
3822 |
+
if (value) {
|
3823 |
+
if (!isObject(value)) {
|
3824 |
+
"development" !== 'production' && warn(
|
3825 |
+
'v-bind without argument expects an Object or Array value',
|
3826 |
+
this
|
3827 |
+
);
|
3828 |
+
} else {
|
3829 |
+
if (Array.isArray(value)) {
|
3830 |
+
value = toObject(value);
|
3831 |
+
}
|
3832 |
+
var hash;
|
3833 |
+
var loop = function ( key ) {
|
3834 |
+
if (
|
3835 |
+
key === 'class' ||
|
3836 |
+
key === 'style' ||
|
3837 |
+
isReservedAttribute(key)
|
3838 |
+
) {
|
3839 |
+
hash = data;
|
3840 |
+
} else {
|
3841 |
+
var type = data.attrs && data.attrs.type;
|
3842 |
+
hash = asProp || config.mustUseProp(tag, type, key)
|
3843 |
+
? data.domProps || (data.domProps = {})
|
3844 |
+
: data.attrs || (data.attrs = {});
|
3845 |
+
}
|
3846 |
+
if (!(key in hash)) {
|
3847 |
+
hash[key] = value[key];
|
3848 |
+
|
3849 |
+
if (isSync) {
|
3850 |
+
var on = data.on || (data.on = {});
|
3851 |
+
on[("update:" + key)] = function ($event) {
|
3852 |
+
value[key] = $event;
|
3853 |
+
};
|
3854 |
+
}
|
3855 |
+
}
|
3856 |
+
};
|
3857 |
+
|
3858 |
+
for (var key in value) loop( key );
|
3859 |
+
}
|
3860 |
+
}
|
3861 |
+
return data
|
3862 |
+
}
|
3863 |
+
|
3864 |
+
/* */
|
3865 |
+
|
3866 |
+
/**
|
3867 |
+
* Runtime helper for rendering static trees.
|
3868 |
+
*/
|
3869 |
+
function renderStatic (
|
3870 |
+
index,
|
3871 |
+
isInFor
|
3872 |
+
) {
|
3873 |
+
var cached = this._staticTrees || (this._staticTrees = []);
|
3874 |
+
var tree = cached[index];
|
3875 |
+
// if has already-rendered static tree and not inside v-for,
|
3876 |
+
// we can reuse the same tree.
|
3877 |
+
if (tree && !isInFor) {
|
3878 |
+
return tree
|
3879 |
+
}
|
3880 |
+
// otherwise, render a fresh tree.
|
3881 |
+
tree = cached[index] = this.$options.staticRenderFns[index].call(
|
3882 |
+
this._renderProxy,
|
3883 |
+
null,
|
3884 |
+
this // for render fns generated for functional component templates
|
3885 |
+
);
|
3886 |
+
markStatic(tree, ("__static__" + index), false);
|
3887 |
+
return tree
|
3888 |
+
}
|
3889 |
+
|
3890 |
+
/**
|
3891 |
+
* Runtime helper for v-once.
|
3892 |
+
* Effectively it means marking the node as static with a unique key.
|
3893 |
+
*/
|
3894 |
+
function markOnce (
|
3895 |
+
tree,
|
3896 |
+
index,
|
3897 |
+
key
|
3898 |
+
) {
|
3899 |
+
markStatic(tree, ("__once__" + index + (key ? ("_" + key) : "")), true);
|
3900 |
+
return tree
|
3901 |
+
}
|
3902 |
+
|
3903 |
+
function markStatic (
|
3904 |
+
tree,
|
3905 |
+
key,
|
3906 |
+
isOnce
|
3907 |
+
) {
|
3908 |
+
if (Array.isArray(tree)) {
|
3909 |
+
for (var i = 0; i < tree.length; i++) {
|
3910 |
+
if (tree[i] && typeof tree[i] !== 'string') {
|
3911 |
+
markStaticNode(tree[i], (key + "_" + i), isOnce);
|
3912 |
+
}
|
3913 |
+
}
|
3914 |
+
} else {
|
3915 |
+
markStaticNode(tree, key, isOnce);
|
3916 |
+
}
|
3917 |
+
}
|
3918 |
+
|
3919 |
+
function markStaticNode (node, key, isOnce) {
|
3920 |
+
node.isStatic = true;
|
3921 |
+
node.key = key;
|
3922 |
+
node.isOnce = isOnce;
|
3923 |
+
}
|
3924 |
+
|
3925 |
+
/* */
|
3926 |
+
|
3927 |
+
function bindObjectListeners (data, value) {
|
3928 |
+
if (value) {
|
3929 |
+
if (!isPlainObject(value)) {
|
3930 |
+
"development" !== 'production' && warn(
|
3931 |
+
'v-on without argument expects an Object value',
|
3932 |
+
this
|
3933 |
+
);
|
3934 |
+
} else {
|
3935 |
+
var on = data.on = data.on ? extend({}, data.on) : {};
|
3936 |
+
for (var key in value) {
|
3937 |
+
var existing = on[key];
|
3938 |
+
var ours = value[key];
|
3939 |
+
on[key] = existing ? [].concat(existing, ours) : ours;
|
3940 |
+
}
|
3941 |
+
}
|
3942 |
+
}
|
3943 |
+
return data
|
3944 |
+
}
|
3945 |
+
|
3946 |
+
/* */
|
3947 |
+
|
3948 |
+
function installRenderHelpers (target) {
|
3949 |
+
target._o = markOnce;
|
3950 |
+
target._n = toNumber;
|
3951 |
+
target._s = toString;
|
3952 |
+
target._l = renderList;
|
3953 |
+
target._t = renderSlot;
|
3954 |
+
target._q = looseEqual;
|
3955 |
+
target._i = looseIndexOf;
|
3956 |
+
target._m = renderStatic;
|
3957 |
+
target._f = resolveFilter;
|
3958 |
+
target._k = checkKeyCodes;
|
3959 |
+
target._b = bindObjectProps;
|
3960 |
+
target._v = createTextVNode;
|
3961 |
+
target._e = createEmptyVNode;
|
3962 |
+
target._u = resolveScopedSlots;
|
3963 |
+
target._g = bindObjectListeners;
|
3964 |
+
}
|
3965 |
+
|
3966 |
+
/* */
|
3967 |
+
|
3968 |
+
function FunctionalRenderContext (
|
3969 |
+
data,
|
3970 |
+
props,
|
3971 |
+
children,
|
3972 |
+
parent,
|
3973 |
+
Ctor
|
3974 |
+
) {
|
3975 |
+
var options = Ctor.options;
|
3976 |
+
// ensure the createElement function in functional components
|
3977 |
+
// gets a unique context - this is necessary for correct named slot check
|
3978 |
+
var contextVm;
|
3979 |
+
if (hasOwn(parent, '_uid')) {
|
3980 |
+
contextVm = Object.create(parent);
|
3981 |
+
// $flow-disable-line
|
3982 |
+
contextVm._original = parent;
|
3983 |
+
} else {
|
3984 |
+
// the context vm passed in is a functional context as well.
|
3985 |
+
// in this case we want to make sure we are able to get a hold to the
|
3986 |
+
// real context instance.
|
3987 |
+
contextVm = parent;
|
3988 |
+
// $flow-disable-line
|
3989 |
+
parent = parent._original;
|
3990 |
+
}
|
3991 |
+
var isCompiled = isTrue(options._compiled);
|
3992 |
+
var needNormalization = !isCompiled;
|
3993 |
+
|
3994 |
+
this.data = data;
|
3995 |
+
this.props = props;
|
3996 |
+
this.children = children;
|
3997 |
+
this.parent = parent;
|
3998 |
+
this.listeners = data.on || emptyObject;
|
3999 |
+
this.injections = resolveInject(options.inject, parent);
|
4000 |
+
this.slots = function () { return resolveSlots(children, parent); };
|
4001 |
+
|
4002 |
+
// support for compiled functional template
|
4003 |
+
if (isCompiled) {
|
4004 |
+
// exposing $options for renderStatic()
|
4005 |
+
this.$options = options;
|
4006 |
+
// pre-resolve slots for renderSlot()
|
4007 |
+
this.$slots = this.slots();
|
4008 |
+
this.$scopedSlots = data.scopedSlots || emptyObject;
|
4009 |
+
}
|
4010 |
+
|
4011 |
+
if (options._scopeId) {
|
4012 |
+
this._c = function (a, b, c, d) {
|
4013 |
+
var vnode = createElement(contextVm, a, b, c, d, needNormalization);
|
4014 |
+
if (vnode && !Array.isArray(vnode)) {
|
4015 |
+
vnode.fnScopeId = options._scopeId;
|
4016 |
+
vnode.fnContext = parent;
|
4017 |
+
}
|
4018 |
+
return vnode
|
4019 |
+
};
|
4020 |
+
} else {
|
4021 |
+
this._c = function (a, b, c, d) { return createElement(contextVm, a, b, c, d, needNormalization); };
|
4022 |
+
}
|
4023 |
+
}
|
4024 |
+
|
4025 |
+
installRenderHelpers(FunctionalRenderContext.prototype);
|
4026 |
+
|
4027 |
+
function createFunctionalComponent (
|
4028 |
+
Ctor,
|
4029 |
+
propsData,
|
4030 |
+
data,
|
4031 |
+
contextVm,
|
4032 |
+
children
|
4033 |
+
) {
|
4034 |
+
var options = Ctor.options;
|
4035 |
+
var props = {};
|
4036 |
+
var propOptions = options.props;
|
4037 |
+
if (isDef(propOptions)) {
|
4038 |
+
for (var key in propOptions) {
|
4039 |
+
props[key] = validateProp(key, propOptions, propsData || emptyObject);
|
4040 |
+
}
|
4041 |
+
} else {
|
4042 |
+
if (isDef(data.attrs)) { mergeProps(props, data.attrs); }
|
4043 |
+
if (isDef(data.props)) { mergeProps(props, data.props); }
|
4044 |
+
}
|
4045 |
+
|
4046 |
+
var renderContext = new FunctionalRenderContext(
|
4047 |
+
data,
|
4048 |
+
props,
|
4049 |
+
children,
|
4050 |
+
contextVm,
|
4051 |
+
Ctor
|
4052 |
+
);
|
4053 |
+
|
4054 |
+
var vnode = options.render.call(null, renderContext._c, renderContext);
|
4055 |
+
|
4056 |
+
if (vnode instanceof VNode) {
|
4057 |
+
return cloneAndMarkFunctionalResult(vnode, data, renderContext.parent, options)
|
4058 |
+
} else if (Array.isArray(vnode)) {
|
4059 |
+
var vnodes = normalizeChildren(vnode) || [];
|
4060 |
+
var res = new Array(vnodes.length);
|
4061 |
+
for (var i = 0; i < vnodes.length; i++) {
|
4062 |
+
res[i] = cloneAndMarkFunctionalResult(vnodes[i], data, renderContext.parent, options);
|
4063 |
+
}
|
4064 |
+
return res
|
4065 |
+
}
|
4066 |
+
}
|
4067 |
+
|
4068 |
+
function cloneAndMarkFunctionalResult (vnode, data, contextVm, options) {
|
4069 |
+
// #7817 clone node before setting fnContext, otherwise if the node is reused
|
4070 |
+
// (e.g. it was from a cached normal slot) the fnContext causes named slots
|
4071 |
+
// that should not be matched to match.
|
4072 |
+
var clone = cloneVNode(vnode);
|
4073 |
+
clone.fnContext = contextVm;
|
4074 |
+
clone.fnOptions = options;
|
4075 |
+
if (data.slot) {
|
4076 |
+
(clone.data || (clone.data = {})).slot = data.slot;
|
4077 |
+
}
|
4078 |
+
return clone
|
4079 |
+
}
|
4080 |
+
|
4081 |
+
function mergeProps (to, from) {
|
4082 |
+
for (var key in from) {
|
4083 |
+
to[camelize(key)] = from[key];
|
4084 |
+
}
|
4085 |
+
}
|
4086 |
+
|
4087 |
+
/* */
|
4088 |
+
|
4089 |
+
|
4090 |
+
|
4091 |
+
|
4092 |
+
// Register the component hook to weex native render engine.
|
4093 |
+
// The hook will be triggered by native, not javascript.
|
4094 |
+
|
4095 |
+
|
4096 |
+
// Updates the state of the component to weex native render engine.
|
4097 |
+
|
4098 |
+
/* */
|
4099 |
+
|
4100 |
+
// https://github.com/Hanks10100/weex-native-directive/tree/master/component
|
4101 |
+
|
4102 |
+
// listening on native callback
|
4103 |
+
|
4104 |
+
/* */
|
4105 |
+
|
4106 |
+
/* */
|
4107 |
+
|
4108 |
+
// inline hooks to be invoked on component VNodes during patch
|
4109 |
+
var componentVNodeHooks = {
|
4110 |
+
init: function init (
|
4111 |
+
vnode,
|
4112 |
+
hydrating,
|
4113 |
+
parentElm,
|
4114 |
+
refElm
|
4115 |
+
) {
|
4116 |
+
if (
|
4117 |
+
vnode.componentInstance &&
|
4118 |
+
!vnode.componentInstance._isDestroyed &&
|
4119 |
+
vnode.data.keepAlive
|
4120 |
+
) {
|
4121 |
+
// kept-alive components, treat as a patch
|
4122 |
+
var mountedNode = vnode; // work around flow
|
4123 |
+
componentVNodeHooks.prepatch(mountedNode, mountedNode);
|
4124 |
+
} else {
|
4125 |
+
var child = vnode.componentInstance = createComponentInstanceForVnode(
|
4126 |
+
vnode,
|
4127 |
+
activeInstance,
|
4128 |
+
parentElm,
|
4129 |
+
refElm
|
4130 |
+
);
|
4131 |
+
child.$mount(hydrating ? vnode.elm : undefined, hydrating);
|
4132 |
+
}
|
4133 |
+
},
|
4134 |
+
|
4135 |
+
prepatch: function prepatch (oldVnode, vnode) {
|
4136 |
+
var options = vnode.componentOptions;
|
4137 |
+
var child = vnode.componentInstance = oldVnode.componentInstance;
|
4138 |
+
updateChildComponent(
|
4139 |
+
child,
|
4140 |
+
options.propsData, // updated props
|
4141 |
+
options.listeners, // updated listeners
|
4142 |
+
vnode, // new parent vnode
|
4143 |
+
options.children // new children
|
4144 |
+
);
|
4145 |
+
},
|
4146 |
+
|
4147 |
+
insert: function insert (vnode) {
|
4148 |
+
var context = vnode.context;
|
4149 |
+
var componentInstance = vnode.componentInstance;
|
4150 |
+
if (!componentInstance._isMounted) {
|
4151 |
+
componentInstance._isMounted = true;
|
4152 |
+
callHook(componentInstance, 'mounted');
|
4153 |
+
}
|
4154 |
+
if (vnode.data.keepAlive) {
|
4155 |
+
if (context._isMounted) {
|
4156 |
+
// vue-router#1212
|
4157 |
+
// During updates, a kept-alive component's child components may
|
4158 |
+
// change, so directly walking the tree here may call activated hooks
|
4159 |
+
// on incorrect children. Instead we push them into a queue which will
|
4160 |
+
// be processed after the whole patch process ended.
|
4161 |
+
queueActivatedComponent(componentInstance);
|
4162 |
+
} else {
|
4163 |
+
activateChildComponent(componentInstance, true /* direct */);
|
4164 |
+
}
|
4165 |
+
}
|
4166 |
+
},
|
4167 |
+
|
4168 |
+
destroy: function destroy (vnode) {
|
4169 |
+
var componentInstance = vnode.componentInstance;
|
4170 |
+
if (!componentInstance._isDestroyed) {
|
4171 |
+
if (!vnode.data.keepAlive) {
|
4172 |
+
componentInstance.$destroy();
|
4173 |
+
} else {
|
4174 |
+
deactivateChildComponent(componentInstance, true /* direct */);
|
4175 |
+
}
|
4176 |
+
}
|
4177 |
+
}
|
4178 |
+
};
|
4179 |
+
|
4180 |
+
var hooksToMerge = Object.keys(componentVNodeHooks);
|
4181 |
+
|
4182 |
+
function createComponent (
|
4183 |
+
Ctor,
|
4184 |
+
data,
|
4185 |
+
context,
|
4186 |
+
children,
|
4187 |
+
tag
|
4188 |
+
) {
|
4189 |
+
if (isUndef(Ctor)) {
|
4190 |
+
return
|
4191 |
+
}
|
4192 |
+
|
4193 |
+
var baseCtor = context.$options._base;
|
4194 |
+
|
4195 |
+
// plain options object: turn it into a constructor
|
4196 |
+
if (isObject(Ctor)) {
|
4197 |
+
Ctor = baseCtor.extend(Ctor);
|
4198 |
+
}
|
4199 |
+
|
4200 |
+
// if at this stage it's not a constructor or an async component factory,
|
4201 |
+
// reject.
|
4202 |
+
if (typeof Ctor !== 'function') {
|
4203 |
+
{
|
4204 |
+
warn(("Invalid Component definition: " + (String(Ctor))), context);
|
4205 |
+
}
|
4206 |
+
return
|
4207 |
+
}
|
4208 |
+
|
4209 |
+
// async component
|
4210 |
+
var asyncFactory;
|
4211 |
+
if (isUndef(Ctor.cid)) {
|
4212 |
+
asyncFactory = Ctor;
|
4213 |
+
Ctor = resolveAsyncComponent(asyncFactory, baseCtor, context);
|
4214 |
+
if (Ctor === undefined) {
|
4215 |
+
// return a placeholder node for async component, which is rendered
|
4216 |
+
// as a comment node but preserves all the raw information for the node.
|
4217 |
+
// the information will be used for async server-rendering and hydration.
|
4218 |
+
return createAsyncPlaceholder(
|
4219 |
+
asyncFactory,
|
4220 |
+
data,
|
4221 |
+
context,
|
4222 |
+
children,
|
4223 |
+
tag
|
4224 |
+
)
|
4225 |
+
}
|
4226 |
+
}
|
4227 |
+
|
4228 |
+
data = data || {};
|
4229 |
+
|
4230 |
+
// resolve constructor options in case global mixins are applied after
|
4231 |
+
// component constructor creation
|
4232 |
+
resolveConstructorOptions(Ctor);
|
4233 |
+
|
4234 |
+
// transform component v-model data into props & events
|
4235 |
+
if (isDef(data.model)) {
|
4236 |
+
transformModel(Ctor.options, data);
|
4237 |
+
}
|
4238 |
+
|
4239 |
+
// extract props
|
4240 |
+
var propsData = extractPropsFromVNodeData(data, Ctor, tag);
|
4241 |
+
|
4242 |
+
// functional component
|
4243 |
+
if (isTrue(Ctor.options.functional)) {
|
4244 |
+
return createFunctionalComponent(Ctor, propsData, data, context, children)
|
4245 |
+
}
|
4246 |
+
|
4247 |
+
// extract listeners, since these needs to be treated as
|
4248 |
+
// child component listeners instead of DOM listeners
|
4249 |
+
var listeners = data.on;
|
4250 |
+
// replace with listeners with .native modifier
|
4251 |
+
// so it gets processed during parent component patch.
|
4252 |
+
data.on = data.nativeOn;
|
4253 |
+
|
4254 |
+
if (isTrue(Ctor.options.abstract)) {
|
4255 |
+
// abstract components do not keep anything
|
4256 |
+
// other than props & listeners & slot
|
4257 |
+
|
4258 |
+
// work around flow
|
4259 |
+
var slot = data.slot;
|
4260 |
+
data = {};
|
4261 |
+
if (slot) {
|
4262 |
+
data.slot = slot;
|
4263 |
+
}
|
4264 |
+
}
|
4265 |
+
|
4266 |
+
// install component management hooks onto the placeholder node
|
4267 |
+
installComponentHooks(data);
|
4268 |
+
|
4269 |
+
// return a placeholder vnode
|
4270 |
+
var name = Ctor.options.name || tag;
|
4271 |
+
var vnode = new VNode(
|
4272 |
+
("vue-component-" + (Ctor.cid) + (name ? ("-" + name) : '')),
|
4273 |
+
data, undefined, undefined, undefined, context,
|
4274 |
+
{ Ctor: Ctor, propsData: propsData, listeners: listeners, tag: tag, children: children },
|
4275 |
+
asyncFactory
|
4276 |
+
);
|
4277 |
+
|
4278 |
+
// Weex specific: invoke recycle-list optimized @render function for
|
4279 |
+
// extracting cell-slot template.
|
4280 |
+
// https://github.com/Hanks10100/weex-native-directive/tree/master/component
|
4281 |
+
/* istanbul ignore if */
|
4282 |
+
return vnode
|
4283 |
+
}
|
4284 |
+
|
4285 |
+
function createComponentInstanceForVnode (
|
4286 |
+
vnode, // we know it's MountedComponentVNode but flow doesn't
|
4287 |
+
parent, // activeInstance in lifecycle state
|
4288 |
+
parentElm,
|
4289 |
+
refElm
|
4290 |
+
) {
|
4291 |
+
var options = {
|
4292 |
+
_isComponent: true,
|
4293 |
+
parent: parent,
|
4294 |
+
_parentVnode: vnode,
|
4295 |
+
_parentElm: parentElm || null,
|
4296 |
+
_refElm: refElm || null
|
4297 |
+
};
|
4298 |
+
// check inline-template render functions
|
4299 |
+
var inlineTemplate = vnode.data.inlineTemplate;
|
4300 |
+
if (isDef(inlineTemplate)) {
|
4301 |
+
options.render = inlineTemplate.render;
|
4302 |
+
options.staticRenderFns = inlineTemplate.staticRenderFns;
|
4303 |
+
}
|
4304 |
+
return new vnode.componentOptions.Ctor(options)
|
4305 |
+
}
|
4306 |
+
|
4307 |
+
function installComponentHooks (data) {
|
4308 |
+
var hooks = data.hook || (data.hook = {});
|
4309 |
+
for (var i = 0; i < hooksToMerge.length; i++) {
|
4310 |
+
var key = hooksToMerge[i];
|
4311 |
+
hooks[key] = componentVNodeHooks[key];
|
4312 |
+
}
|
4313 |
+
}
|
4314 |
+
|
4315 |
+
// transform component v-model info (value and callback) into
|
4316 |
+
// prop and event handler respectively.
|
4317 |
+
function transformModel (options, data) {
|
4318 |
+
var prop = (options.model && options.model.prop) || 'value';
|
4319 |
+
var event = (options.model && options.model.event) || 'input';(data.props || (data.props = {}))[prop] = data.model.value;
|
4320 |
+
var on = data.on || (data.on = {});
|
4321 |
+
if (isDef(on[event])) {
|
4322 |
+
on[event] = [data.model.callback].concat(on[event]);
|
4323 |
+
} else {
|
4324 |
+
on[event] = data.model.callback;
|
4325 |
+
}
|
4326 |
+
}
|
4327 |
+
|
4328 |
+
/* */
|
4329 |
+
|
4330 |
+
var SIMPLE_NORMALIZE = 1;
|
4331 |
+
var ALWAYS_NORMALIZE = 2;
|
4332 |
+
|
4333 |
+
// wrapper function for providing a more flexible interface
|
4334 |
+
// without getting yelled at by flow
|
4335 |
+
function createElement (
|
4336 |
+
context,
|
4337 |
+
tag,
|
4338 |
+
data,
|
4339 |
+
children,
|
4340 |
+
normalizationType,
|
4341 |
+
alwaysNormalize
|
4342 |
+
) {
|
4343 |
+
if (Array.isArray(data) || isPrimitive(data)) {
|
4344 |
+
normalizationType = children;
|
4345 |
+
children = data;
|
4346 |
+
data = undefined;
|
4347 |
+
}
|
4348 |
+
if (isTrue(alwaysNormalize)) {
|
4349 |
+
normalizationType = ALWAYS_NORMALIZE;
|
4350 |
+
}
|
4351 |
+
return _createElement(context, tag, data, children, normalizationType)
|
4352 |
+
}
|
4353 |
+
|
4354 |
+
function _createElement (
|
4355 |
+
context,
|
4356 |
+
tag,
|
4357 |
+
data,
|
4358 |
+
children,
|
4359 |
+
normalizationType
|
4360 |
+
) {
|
4361 |
+
if (isDef(data) && isDef((data).__ob__)) {
|
4362 |
+
"development" !== 'production' && warn(
|
4363 |
+
"Avoid using observed data object as vnode data: " + (JSON.stringify(data)) + "\n" +
|
4364 |
+
'Always create fresh vnode data objects in each render!',
|
4365 |
+
context
|
4366 |
+
);
|
4367 |
+
return createEmptyVNode()
|
4368 |
+
}
|
4369 |
+
// object syntax in v-bind
|
4370 |
+
if (isDef(data) && isDef(data.is)) {
|
4371 |
+
tag = data.is;
|
4372 |
+
}
|
4373 |
+
if (!tag) {
|
4374 |
+
// in case of component :is set to falsy value
|
4375 |
+
return createEmptyVNode()
|
4376 |
+
}
|
4377 |
+
// warn against non-primitive key
|
4378 |
+
if ("development" !== 'production' &&
|
4379 |
+
isDef(data) && isDef(data.key) && !isPrimitive(data.key)
|
4380 |
+
) {
|
4381 |
+
{
|
4382 |
+
warn(
|
4383 |
+
'Avoid using non-primitive value as key, ' +
|
4384 |
+
'use string/number value instead.',
|
4385 |
+
context
|
4386 |
+
);
|
4387 |
+
}
|
4388 |
+
}
|
4389 |
+
// support single function children as default scoped slot
|
4390 |
+
if (Array.isArray(children) &&
|
4391 |
+
typeof children[0] === 'function'
|
4392 |
+
) {
|
4393 |
+
data = data || {};
|
4394 |
+
data.scopedSlots = { default: children[0] };
|
4395 |
+
children.length = 0;
|
4396 |
+
}
|
4397 |
+
if (normalizationType === ALWAYS_NORMALIZE) {
|
4398 |
+
children = normalizeChildren(children);
|
4399 |
+
} else if (normalizationType === SIMPLE_NORMALIZE) {
|
4400 |
+
children = simpleNormalizeChildren(children);
|
4401 |
+
}
|
4402 |
+
var vnode, ns;
|
4403 |
+
if (typeof tag === 'string') {
|
4404 |
+
var Ctor;
|
4405 |
+
ns = (context.$vnode && context.$vnode.ns) || config.getTagNamespace(tag);
|
4406 |
+
if (config.isReservedTag(tag)) {
|
4407 |
+
// platform built-in elements
|
4408 |
+
vnode = new VNode(
|
4409 |
+
config.parsePlatformTagName(tag), data, children,
|
4410 |
+
undefined, undefined, context
|
4411 |
+
);
|
4412 |
+
} else if (isDef(Ctor = resolveAsset(context.$options, 'components', tag))) {
|
4413 |
+
// component
|
4414 |
+
vnode = createComponent(Ctor, data, context, children, tag);
|
4415 |
+
} else {
|
4416 |
+
// unknown or unlisted namespaced elements
|
4417 |
+
// check at runtime because it may get assigned a namespace when its
|
4418 |
+
// parent normalizes children
|
4419 |
+
vnode = new VNode(
|
4420 |
+
tag, data, children,
|
4421 |
+
undefined, undefined, context
|
4422 |
+
);
|
4423 |
+
}
|
4424 |
+
} else {
|
4425 |
+
// direct component options / constructor
|
4426 |
+
vnode = createComponent(tag, data, context, children);
|
4427 |
+
}
|
4428 |
+
if (Array.isArray(vnode)) {
|
4429 |
+
return vnode
|
4430 |
+
} else if (isDef(vnode)) {
|
4431 |
+
if (isDef(ns)) { applyNS(vnode, ns); }
|
4432 |
+
if (isDef(data)) { registerDeepBindings(data); }
|
4433 |
+
return vnode
|
4434 |
+
} else {
|
4435 |
+
return createEmptyVNode()
|
4436 |
+
}
|
4437 |
+
}
|
4438 |
+
|
4439 |
+
function applyNS (vnode, ns, force) {
|
4440 |
+
vnode.ns = ns;
|
4441 |
+
if (vnode.tag === 'foreignObject') {
|
4442 |
+
// use default namespace inside foreignObject
|
4443 |
+
ns = undefined;
|
4444 |
+
force = true;
|
4445 |
+
}
|
4446 |
+
if (isDef(vnode.children)) {
|
4447 |
+
for (var i = 0, l = vnode.children.length; i < l; i++) {
|
4448 |
+
var child = vnode.children[i];
|
4449 |
+
if (isDef(child.tag) && (
|
4450 |
+
isUndef(child.ns) || (isTrue(force) && child.tag !== 'svg'))) {
|
4451 |
+
applyNS(child, ns, force);
|
4452 |
+
}
|
4453 |
+
}
|
4454 |
+
}
|
4455 |
+
}
|
4456 |
+
|
4457 |
+
// ref #5318
|
4458 |
+
// necessary to ensure parent re-render when deep bindings like :style and
|
4459 |
+
// :class are used on slot nodes
|
4460 |
+
function registerDeepBindings (data) {
|
4461 |
+
if (isObject(data.style)) {
|
4462 |
+
traverse(data.style);
|
4463 |
+
}
|
4464 |
+
if (isObject(data.class)) {
|
4465 |
+
traverse(data.class);
|
4466 |
+
}
|
4467 |
+
}
|
4468 |
+
|
4469 |
+
/* */
|
4470 |
+
|
4471 |
+
function initRender (vm) {
|
4472 |
+
vm._vnode = null; // the root of the child tree
|
4473 |
+
vm._staticTrees = null; // v-once cached trees
|
4474 |
+
var options = vm.$options;
|
4475 |
+
var parentVnode = vm.$vnode = options._parentVnode; // the placeholder node in parent tree
|
4476 |
+
var renderContext = parentVnode && parentVnode.context;
|
4477 |
+
vm.$slots = resolveSlots(options._renderChildren, renderContext);
|
4478 |
+
vm.$scopedSlots = emptyObject;
|
4479 |
+
// bind the createElement fn to this instance
|
4480 |
+
// so that we get proper render context inside it.
|
4481 |
+
// args order: tag, data, children, normalizationType, alwaysNormalize
|
4482 |
+
// internal version is used by render functions compiled from templates
|
4483 |
+
vm._c = function (a, b, c, d) { return createElement(vm, a, b, c, d, false); };
|
4484 |
+
// normalization is always applied for the public version, used in
|
4485 |
+
// user-written render functions.
|
4486 |
+
vm.$createElement = function (a, b, c, d) { return createElement(vm, a, b, c, d, true); };
|
4487 |
+
|
4488 |
+
// $attrs & $listeners are exposed for easier HOC creation.
|
4489 |
+
// they need to be reactive so that HOCs using them are always updated
|
4490 |
+
var parentData = parentVnode && parentVnode.data;
|
4491 |
+
|
4492 |
+
/* istanbul ignore else */
|
4493 |
+
{
|
4494 |
+
defineReactive(vm, '$attrs', parentData && parentData.attrs || emptyObject, function () {
|
4495 |
+
!isUpdatingChildComponent && warn("$attrs is readonly.", vm);
|
4496 |
+
}, true);
|
4497 |
+
defineReactive(vm, '$listeners', options._parentListeners || emptyObject, function () {
|
4498 |
+
!isUpdatingChildComponent && warn("$listeners is readonly.", vm);
|
4499 |
+
}, true);
|
4500 |
+
}
|
4501 |
+
}
|
4502 |
+
|
4503 |
+
function renderMixin (Vue) {
|
4504 |
+
// install runtime convenience helpers
|
4505 |
+
installRenderHelpers(Vue.prototype);
|
4506 |
+
|
4507 |
+
Vue.prototype.$nextTick = function (fn) {
|
4508 |
+
return nextTick(fn, this)
|
4509 |
+
};
|
4510 |
+
|
4511 |
+
Vue.prototype._render = function () {
|
4512 |
+
var vm = this;
|
4513 |
+
var ref = vm.$options;
|
4514 |
+
var render = ref.render;
|
4515 |
+
var _parentVnode = ref._parentVnode;
|
4516 |
+
|
4517 |
+
// reset _rendered flag on slots for duplicate slot check
|
4518 |
+
{
|
4519 |
+
for (var key in vm.$slots) {
|
4520 |
+
// $flow-disable-line
|
4521 |
+
vm.$slots[key]._rendered = false;
|
4522 |
+
}
|
4523 |
+
}
|
4524 |
+
|
4525 |
+
if (_parentVnode) {
|
4526 |
+
vm.$scopedSlots = _parentVnode.data.scopedSlots || emptyObject;
|
4527 |
+
}
|
4528 |
+
|
4529 |
+
// set parent vnode. this allows render functions to have access
|
4530 |
+
// to the data on the placeholder node.
|
4531 |
+
vm.$vnode = _parentVnode;
|
4532 |
+
// render self
|
4533 |
+
var vnode;
|
4534 |
+
try {
|
4535 |
+
vnode = render.call(vm._renderProxy, vm.$createElement);
|
4536 |
+
} catch (e) {
|
4537 |
+
handleError(e, vm, "render");
|
4538 |
+
// return error render result,
|
4539 |
+
// or previous vnode to prevent render error causing blank component
|
4540 |
+
/* istanbul ignore else */
|
4541 |
+
{
|
4542 |
+
if (vm.$options.renderError) {
|
4543 |
+
try {
|
4544 |
+
vnode = vm.$options.renderError.call(vm._renderProxy, vm.$createElement, e);
|
4545 |
+
} catch (e) {
|
4546 |
+
handleError(e, vm, "renderError");
|
4547 |
+
vnode = vm._vnode;
|
4548 |
+
}
|
4549 |
+
} else {
|
4550 |
+
vnode = vm._vnode;
|
4551 |
+
}
|
4552 |
+
}
|
4553 |
+
}
|
4554 |
+
// return empty vnode in case the render function errored out
|
4555 |
+
if (!(vnode instanceof VNode)) {
|
4556 |
+
if ("development" !== 'production' && Array.isArray(vnode)) {
|
4557 |
+
warn(
|
4558 |
+
'Multiple root nodes returned from render function. Render function ' +
|
4559 |
+
'should return a single root node.',
|
4560 |
+
vm
|
4561 |
+
);
|
4562 |
+
}
|
4563 |
+
vnode = createEmptyVNode();
|
4564 |
+
}
|
4565 |
+
// set parent
|
4566 |
+
vnode.parent = _parentVnode;
|
4567 |
+
return vnode
|
4568 |
+
};
|
4569 |
+
}
|
4570 |
+
|
4571 |
+
/* */
|
4572 |
+
|
4573 |
+
var uid$3 = 0;
|
4574 |
+
|
4575 |
+
function initMixin (Vue) {
|
4576 |
+
Vue.prototype._init = function (options) {
|
4577 |
+
var vm = this;
|
4578 |
+
// a uid
|
4579 |
+
vm._uid = uid$3++;
|
4580 |
+
|
4581 |
+
var startTag, endTag;
|
4582 |
+
/* istanbul ignore if */
|
4583 |
+
if ("development" !== 'production' && config.performance && mark) {
|
4584 |
+
startTag = "vue-perf-start:" + (vm._uid);
|
4585 |
+
endTag = "vue-perf-end:" + (vm._uid);
|
4586 |
+
mark(startTag);
|
4587 |
+
}
|
4588 |
+
|
4589 |
+
// a flag to avoid this being observed
|
4590 |
+
vm._isVue = true;
|
4591 |
+
// merge options
|
4592 |
+
if (options && options._isComponent) {
|
4593 |
+
// optimize internal component instantiation
|
4594 |
+
// since dynamic options merging is pretty slow, and none of the
|
4595 |
+
// internal component options needs special treatment.
|
4596 |
+
initInternalComponent(vm, options);
|
4597 |
+
} else {
|
4598 |
+
vm.$options = mergeOptions(
|
4599 |
+
resolveConstructorOptions(vm.constructor),
|
4600 |
+
options || {},
|
4601 |
+
vm
|
4602 |
+
);
|
4603 |
+
}
|
4604 |
+
/* istanbul ignore else */
|
4605 |
+
{
|
4606 |
+
initProxy(vm);
|
4607 |
+
}
|
4608 |
+
// expose real self
|
4609 |
+
vm._self = vm;
|
4610 |
+
initLifecycle(vm);
|
4611 |
+
initEvents(vm);
|
4612 |
+
initRender(vm);
|
4613 |
+
callHook(vm, 'beforeCreate');
|
4614 |
+
initInjections(vm); // resolve injections before data/props
|
4615 |
+
initState(vm);
|
4616 |
+
initProvide(vm); // resolve provide after data/props
|
4617 |
+
callHook(vm, 'created');
|
4618 |
+
|
4619 |
+
/* istanbul ignore if */
|
4620 |
+
if ("development" !== 'production' && config.performance && mark) {
|
4621 |
+
vm._name = formatComponentName(vm, false);
|
4622 |
+
mark(endTag);
|
4623 |
+
measure(("vue " + (vm._name) + " init"), startTag, endTag);
|
4624 |
+
}
|
4625 |
+
|
4626 |
+
if (vm.$options.el) {
|
4627 |
+
vm.$mount(vm.$options.el);
|
4628 |
+
}
|
4629 |
+
};
|
4630 |
+
}
|
4631 |
+
|
4632 |
+
function initInternalComponent (vm, options) {
|
4633 |
+
var opts = vm.$options = Object.create(vm.constructor.options);
|
4634 |
+
// doing this because it's faster than dynamic enumeration.
|
4635 |
+
var parentVnode = options._parentVnode;
|
4636 |
+
opts.parent = options.parent;
|
4637 |
+
opts._parentVnode = parentVnode;
|
4638 |
+
opts._parentElm = options._parentElm;
|
4639 |
+
opts._refElm = options._refElm;
|
4640 |
+
|
4641 |
+
var vnodeComponentOptions = parentVnode.componentOptions;
|
4642 |
+
opts.propsData = vnodeComponentOptions.propsData;
|
4643 |
+
opts._parentListeners = vnodeComponentOptions.listeners;
|
4644 |
+
opts._renderChildren = vnodeComponentOptions.children;
|
4645 |
+
opts._componentTag = vnodeComponentOptions.tag;
|
4646 |
+
|
4647 |
+
if (options.render) {
|
4648 |
+
opts.render = options.render;
|
4649 |
+
opts.staticRenderFns = options.staticRenderFns;
|
4650 |
+
}
|
4651 |
+
}
|
4652 |
+
|
4653 |
+
function resolveConstructorOptions (Ctor) {
|
4654 |
+
var options = Ctor.options;
|
4655 |
+
if (Ctor.super) {
|
4656 |
+
var superOptions = resolveConstructorOptions(Ctor.super);
|
4657 |
+
var cachedSuperOptions = Ctor.superOptions;
|
4658 |
+
if (superOptions !== cachedSuperOptions) {
|
4659 |
+
// super option changed,
|
4660 |
+
// need to resolve new options.
|
4661 |
+
Ctor.superOptions = superOptions;
|
4662 |
+
// check if there are any late-modified/attached options (#4976)
|
4663 |
+
var modifiedOptions = resolveModifiedOptions(Ctor);
|
4664 |
+
// update base extend options
|
4665 |
+
if (modifiedOptions) {
|
4666 |
+
extend(Ctor.extendOptions, modifiedOptions);
|
4667 |
+
}
|
4668 |
+
options = Ctor.options = mergeOptions(superOptions, Ctor.extendOptions);
|
4669 |
+
if (options.name) {
|
4670 |
+
options.components[options.name] = Ctor;
|
4671 |
+
}
|
4672 |
+
}
|
4673 |
+
}
|
4674 |
+
return options
|
4675 |
+
}
|
4676 |
+
|
4677 |
+
function resolveModifiedOptions (Ctor) {
|
4678 |
+
var modified;
|
4679 |
+
var latest = Ctor.options;
|
4680 |
+
var extended = Ctor.extendOptions;
|
4681 |
+
var sealed = Ctor.sealedOptions;
|
4682 |
+
for (var key in latest) {
|
4683 |
+
if (latest[key] !== sealed[key]) {
|
4684 |
+
if (!modified) { modified = {}; }
|
4685 |
+
modified[key] = dedupe(latest[key], extended[key], sealed[key]);
|
4686 |
+
}
|
4687 |
+
}
|
4688 |
+
return modified
|
4689 |
+
}
|
4690 |
+
|
4691 |
+
function dedupe (latest, extended, sealed) {
|
4692 |
+
// compare latest and sealed to ensure lifecycle hooks won't be duplicated
|
4693 |
+
// between merges
|
4694 |
+
if (Array.isArray(latest)) {
|
4695 |
+
var res = [];
|
4696 |
+
sealed = Array.isArray(sealed) ? sealed : [sealed];
|
4697 |
+
extended = Array.isArray(extended) ? extended : [extended];
|
4698 |
+
for (var i = 0; i < latest.length; i++) {
|
4699 |
+
// push original options and not sealed options to exclude duplicated options
|
4700 |
+
if (extended.indexOf(latest[i]) >= 0 || sealed.indexOf(latest[i]) < 0) {
|
4701 |
+
res.push(latest[i]);
|
4702 |
+
}
|
4703 |
+
}
|
4704 |
+
return res
|
4705 |
+
} else {
|
4706 |
+
return latest
|
4707 |
+
}
|
4708 |
+
}
|
4709 |
+
|
4710 |
+
function Vue (options) {
|
4711 |
+
if ("development" !== 'production' &&
|
4712 |
+
!(this instanceof Vue)
|
4713 |
+
) {
|
4714 |
+
warn('Vue is a constructor and should be called with the `new` keyword');
|
4715 |
+
}
|
4716 |
+
this._init(options);
|
4717 |
+
}
|
4718 |
+
|
4719 |
+
initMixin(Vue);
|
4720 |
+
stateMixin(Vue);
|
4721 |
+
eventsMixin(Vue);
|
4722 |
+
lifecycleMixin(Vue);
|
4723 |
+
renderMixin(Vue);
|
4724 |
+
|
4725 |
+
/* */
|
4726 |
+
|
4727 |
+
function initUse (Vue) {
|
4728 |
+
Vue.use = function (plugin) {
|
4729 |
+
var installedPlugins = (this._installedPlugins || (this._installedPlugins = []));
|
4730 |
+
if (installedPlugins.indexOf(plugin) > -1) {
|
4731 |
+
return this
|
4732 |
+
}
|
4733 |
+
|
4734 |
+
// additional parameters
|
4735 |
+
var args = toArray(arguments, 1);
|
4736 |
+
args.unshift(this);
|
4737 |
+
if (typeof plugin.install === 'function') {
|
4738 |
+
plugin.install.apply(plugin, args);
|
4739 |
+
} else if (typeof plugin === 'function') {
|
4740 |
+
plugin.apply(null, args);
|
4741 |
+
}
|
4742 |
+
installedPlugins.push(plugin);
|
4743 |
+
return this
|
4744 |
+
};
|
4745 |
+
}
|
4746 |
+
|
4747 |
+
/* */
|
4748 |
+
|
4749 |
+
function initMixin$1 (Vue) {
|
4750 |
+
Vue.mixin = function (mixin) {
|
4751 |
+
this.options = mergeOptions(this.options, mixin);
|
4752 |
+
return this
|
4753 |
+
};
|
4754 |
+
}
|
4755 |
+
|
4756 |
+
/* */
|
4757 |
+
|
4758 |
+
function initExtend (Vue) {
|
4759 |
+
/**
|
4760 |
+
* Each instance constructor, including Vue, has a unique
|
4761 |
+
* cid. This enables us to create wrapped "child
|
4762 |
+
* constructors" for prototypal inheritance and cache them.
|
4763 |
+
*/
|
4764 |
+
Vue.cid = 0;
|
4765 |
+
var cid = 1;
|
4766 |
+
|
4767 |
+
/**
|
4768 |
+
* Class inheritance
|
4769 |
+
*/
|
4770 |
+
Vue.extend = function (extendOptions) {
|
4771 |
+
extendOptions = extendOptions || {};
|
4772 |
+
var Super = this;
|
4773 |
+
var SuperId = Super.cid;
|
4774 |
+
var cachedCtors = extendOptions._Ctor || (extendOptions._Ctor = {});
|
4775 |
+
if (cachedCtors[SuperId]) {
|
4776 |
+
return cachedCtors[SuperId]
|
4777 |
+
}
|
4778 |
+
|
4779 |
+
var name = extendOptions.name || Super.options.name;
|
4780 |
+
if ("development" !== 'production' && name) {
|
4781 |
+
validateComponentName(name);
|
4782 |
+
}
|
4783 |
+
|
4784 |
+
var Sub = function VueComponent (options) {
|
4785 |
+
this._init(options);
|
4786 |
+
};
|
4787 |
+
Sub.prototype = Object.create(Super.prototype);
|
4788 |
+
Sub.prototype.constructor = Sub;
|
4789 |
+
Sub.cid = cid++;
|
4790 |
+
Sub.options = mergeOptions(
|
4791 |
+
Super.options,
|
4792 |
+
extendOptions
|
4793 |
+
);
|
4794 |
+
Sub['super'] = Super;
|
4795 |
+
|
4796 |
+
// For props and computed properties, we define the proxy getters on
|
4797 |
+
// the Vue instances at extension time, on the extended prototype. This
|
4798 |
+
// avoids Object.defineProperty calls for each instance created.
|
4799 |
+
if (Sub.options.props) {
|
4800 |
+
initProps$1(Sub);
|
4801 |
+
}
|
4802 |
+
if (Sub.options.computed) {
|
4803 |
+
initComputed$1(Sub);
|
4804 |
+
}
|
4805 |
+
|
4806 |
+
// allow further extension/mixin/plugin usage
|
4807 |
+
Sub.extend = Super.extend;
|
4808 |
+
Sub.mixin = Super.mixin;
|
4809 |
+
Sub.use = Super.use;
|
4810 |
+
|
4811 |
+
// create asset registers, so extended classes
|
4812 |
+
// can have their private assets too.
|
4813 |
+
ASSET_TYPES.forEach(function (type) {
|
4814 |
+
Sub[type] = Super[type];
|
4815 |
+
});
|
4816 |
+
// enable recursive self-lookup
|
4817 |
+
if (name) {
|
4818 |
+
Sub.options.components[name] = Sub;
|
4819 |
+
}
|
4820 |
+
|
4821 |
+
// keep a reference to the super options at extension time.
|
4822 |
+
// later at instantiation we can check if Super's options have
|
4823 |
+
// been updated.
|
4824 |
+
Sub.superOptions = Super.options;
|
4825 |
+
Sub.extendOptions = extendOptions;
|
4826 |
+
Sub.sealedOptions = extend({}, Sub.options);
|
4827 |
+
|
4828 |
+
// cache constructor
|
4829 |
+
cachedCtors[SuperId] = Sub;
|
4830 |
+
return Sub
|
4831 |
+
};
|
4832 |
+
}
|
4833 |
+
|
4834 |
+
function initProps$1 (Comp) {
|
4835 |
+
var props = Comp.options.props;
|
4836 |
+
for (var key in props) {
|
4837 |
+
proxy(Comp.prototype, "_props", key);
|
4838 |
+
}
|
4839 |
+
}
|
4840 |
+
|
4841 |
+
function initComputed$1 (Comp) {
|
4842 |
+
var computed = Comp.options.computed;
|
4843 |
+
for (var key in computed) {
|
4844 |
+
defineComputed(Comp.prototype, key, computed[key]);
|
4845 |
+
}
|
4846 |
+
}
|
4847 |
+
|
4848 |
+
/* */
|
4849 |
+
|
4850 |
+
function initAssetRegisters (Vue) {
|
4851 |
+
/**
|
4852 |
+
* Create asset registration methods.
|
4853 |
+
*/
|
4854 |
+
ASSET_TYPES.forEach(function (type) {
|
4855 |
+
Vue[type] = function (
|
4856 |
+
id,
|
4857 |
+
definition
|
4858 |
+
) {
|
4859 |
+
if (!definition) {
|
4860 |
+
return this.options[type + 's'][id]
|
4861 |
+
} else {
|
4862 |
+
/* istanbul ignore if */
|
4863 |
+
if ("development" !== 'production' && type === 'component') {
|
4864 |
+
validateComponentName(id);
|
4865 |
+
}
|
4866 |
+
if (type === 'component' && isPlainObject(definition)) {
|
4867 |
+
definition.name = definition.name || id;
|
4868 |
+
definition = this.options._base.extend(definition);
|
4869 |
+
}
|
4870 |
+
if (type === 'directive' && typeof definition === 'function') {
|
4871 |
+
definition = { bind: definition, update: definition };
|
4872 |
+
}
|
4873 |
+
this.options[type + 's'][id] = definition;
|
4874 |
+
return definition
|
4875 |
+
}
|
4876 |
+
};
|
4877 |
+
});
|
4878 |
+
}
|
4879 |
+
|
4880 |
+
/* */
|
4881 |
+
|
4882 |
+
function getComponentName (opts) {
|
4883 |
+
return opts && (opts.Ctor.options.name || opts.tag)
|
4884 |
+
}
|
4885 |
+
|
4886 |
+
function matches (pattern, name) {
|
4887 |
+
if (Array.isArray(pattern)) {
|
4888 |
+
return pattern.indexOf(name) > -1
|
4889 |
+
} else if (typeof pattern === 'string') {
|
4890 |
+
return pattern.split(',').indexOf(name) > -1
|
4891 |
+
} else if (isRegExp(pattern)) {
|
4892 |
+
return pattern.test(name)
|
4893 |
+
}
|
4894 |
+
/* istanbul ignore next */
|
4895 |
+
return false
|
4896 |
+
}
|
4897 |
+
|
4898 |
+
function pruneCache (keepAliveInstance, filter) {
|
4899 |
+
var cache = keepAliveInstance.cache;
|
4900 |
+
var keys = keepAliveInstance.keys;
|
4901 |
+
var _vnode = keepAliveInstance._vnode;
|
4902 |
+
for (var key in cache) {
|
4903 |
+
var cachedNode = cache[key];
|
4904 |
+
if (cachedNode) {
|
4905 |
+
var name = getComponentName(cachedNode.componentOptions);
|
4906 |
+
if (name && !filter(name)) {
|
4907 |
+
pruneCacheEntry(cache, key, keys, _vnode);
|
4908 |
+
}
|
4909 |
+
}
|
4910 |
+
}
|
4911 |
+
}
|
4912 |
+
|
4913 |
+
function pruneCacheEntry (
|
4914 |
+
cache,
|
4915 |
+
key,
|
4916 |
+
keys,
|
4917 |
+
current
|
4918 |
+
) {
|
4919 |
+
var cached$$1 = cache[key];
|
4920 |
+
if (cached$$1 && (!current || cached$$1.tag !== current.tag)) {
|
4921 |
+
cached$$1.componentInstance.$destroy();
|
4922 |
+
}
|
4923 |
+
cache[key] = null;
|
4924 |
+
remove(keys, key);
|
4925 |
+
}
|
4926 |
+
|
4927 |
+
var patternTypes = [String, RegExp, Array];
|
4928 |
+
|
4929 |
+
var KeepAlive = {
|
4930 |
+
name: 'keep-alive',
|
4931 |
+
abstract: true,
|
4932 |
+
|
4933 |
+
props: {
|
4934 |
+
include: patternTypes,
|
4935 |
+
exclude: patternTypes,
|
4936 |
+
max: [String, Number]
|
4937 |
+
},
|
4938 |
+
|
4939 |
+
created: function created () {
|
4940 |
+
this.cache = Object.create(null);
|
4941 |
+
this.keys = [];
|
4942 |
+
},
|
4943 |
+
|
4944 |
+
destroyed: function destroyed () {
|
4945 |
+
var this$1 = this;
|
4946 |
+
|
4947 |
+
for (var key in this$1.cache) {
|
4948 |
+
pruneCacheEntry(this$1.cache, key, this$1.keys);
|
4949 |
+
}
|
4950 |
+
},
|
4951 |
+
|
4952 |
+
mounted: function mounted () {
|
4953 |
+
var this$1 = this;
|
4954 |
+
|
4955 |
+
this.$watch('include', function (val) {
|
4956 |
+
pruneCache(this$1, function (name) { return matches(val, name); });
|
4957 |
+
});
|
4958 |
+
this.$watch('exclude', function (val) {
|
4959 |
+
pruneCache(this$1, function (name) { return !matches(val, name); });
|
4960 |
+
});
|
4961 |
+
},
|
4962 |
+
|
4963 |
+
render: function render () {
|
4964 |
+
var slot = this.$slots.default;
|
4965 |
+
var vnode = getFirstComponentChild(slot);
|
4966 |
+
var componentOptions = vnode && vnode.componentOptions;
|
4967 |
+
if (componentOptions) {
|
4968 |
+
// check pattern
|
4969 |
+
var name = getComponentName(componentOptions);
|
4970 |
+
var ref = this;
|
4971 |
+
var include = ref.include;
|
4972 |
+
var exclude = ref.exclude;
|
4973 |
+
if (
|
4974 |
+
// not included
|
4975 |
+
(include && (!name || !matches(include, name))) ||
|
4976 |
+
// excluded
|
4977 |
+
(exclude && name && matches(exclude, name))
|
4978 |
+
) {
|
4979 |
+
return vnode
|
4980 |
+
}
|
4981 |
+
|
4982 |
+
var ref$1 = this;
|
4983 |
+
var cache = ref$1.cache;
|
4984 |
+
var keys = ref$1.keys;
|
4985 |
+
var key = vnode.key == null
|
4986 |
+
// same constructor may get registered as different local components
|
4987 |
+
// so cid alone is not enough (#3269)
|
4988 |
+
? componentOptions.Ctor.cid + (componentOptions.tag ? ("::" + (componentOptions.tag)) : '')
|
4989 |
+
: vnode.key;
|
4990 |
+
if (cache[key]) {
|
4991 |
+
vnode.componentInstance = cache[key].componentInstance;
|
4992 |
+
// make current key freshest
|
4993 |
+
remove(keys, key);
|
4994 |
+
keys.push(key);
|
4995 |
+
} else {
|
4996 |
+
cache[key] = vnode;
|
4997 |
+
keys.push(key);
|
4998 |
+
// prune oldest entry
|
4999 |
+
if (this.max && keys.length > parseInt(this.max)) {
|
5000 |
+
pruneCacheEntry(cache, keys[0], keys, this._vnode);
|
5001 |
+
}
|
5002 |
+
}
|
5003 |
+
|
5004 |
+
vnode.data.keepAlive = true;
|
5005 |
+
}
|
5006 |
+
return vnode || (slot && slot[0])
|
5007 |
+
}
|
5008 |
+
}
|
5009 |
+
|
5010 |
+
var builtInComponents = {
|
5011 |
+
KeepAlive: KeepAlive
|
5012 |
+
}
|
5013 |
+
|
5014 |
+
/* */
|
5015 |
+
|
5016 |
+
function initGlobalAPI (Vue) {
|
5017 |
+
// config
|
5018 |
+
var configDef = {};
|
5019 |
+
configDef.get = function () { return config; };
|
5020 |
+
{
|
5021 |
+
configDef.set = function () {
|
5022 |
+
warn(
|
5023 |
+
'Do not replace the Vue.config object, set individual fields instead.'
|
5024 |
+
);
|
5025 |
+
};
|
5026 |
+
}
|
5027 |
+
Object.defineProperty(Vue, 'config', configDef);
|
5028 |
+
|
5029 |
+
// exposed util methods.
|
5030 |
+
// NOTE: these are not considered part of the public API - avoid relying on
|
5031 |
+
// them unless you are aware of the risk.
|
5032 |
+
Vue.util = {
|
5033 |
+
warn: warn,
|
5034 |
+
extend: extend,
|
5035 |
+
mergeOptions: mergeOptions,
|
5036 |
+
defineReactive: defineReactive
|
5037 |
+
};
|
5038 |
+
|
5039 |
+
Vue.set = set;
|
5040 |
+
Vue.delete = del;
|
5041 |
+
Vue.nextTick = nextTick;
|
5042 |
+
|
5043 |
+
Vue.options = Object.create(null);
|
5044 |
+
ASSET_TYPES.forEach(function (type) {
|
5045 |
+
Vue.options[type + 's'] = Object.create(null);
|
5046 |
+
});
|
5047 |
+
|
5048 |
+
// this is used to identify the "base" constructor to extend all plain-object
|
5049 |
+
// components with in Weex's multi-instance scenarios.
|
5050 |
+
Vue.options._base = Vue;
|
5051 |
+
|
5052 |
+
extend(Vue.options.components, builtInComponents);
|
5053 |
+
|
5054 |
+
initUse(Vue);
|
5055 |
+
initMixin$1(Vue);
|
5056 |
+
initExtend(Vue);
|
5057 |
+
initAssetRegisters(Vue);
|
5058 |
+
}
|
5059 |
+
|
5060 |
+
initGlobalAPI(Vue);
|
5061 |
+
|
5062 |
+
Object.defineProperty(Vue.prototype, '$isServer', {
|
5063 |
+
get: isServerRendering
|
5064 |
+
});
|
5065 |
+
|
5066 |
+
Object.defineProperty(Vue.prototype, '$ssrContext', {
|
5067 |
+
get: function get () {
|
5068 |
+
/* istanbul ignore next */
|
5069 |
+
return this.$vnode && this.$vnode.ssrContext
|
5070 |
+
}
|
5071 |
+
});
|
5072 |
+
|
5073 |
+
// expose FunctionalRenderContext for ssr runtime helper installation
|
5074 |
+
Object.defineProperty(Vue, 'FunctionalRenderContext', {
|
5075 |
+
value: FunctionalRenderContext
|
5076 |
+
});
|
5077 |
+
|
5078 |
+
Vue.version = '2.5.16';
|
5079 |
+
|
5080 |
+
/* */
|
5081 |
+
|
5082 |
+
// these are reserved for web because they are directly compiled away
|
5083 |
+
// during template compilation
|
5084 |
+
var isReservedAttr = makeMap('style,class');
|
5085 |
+
|
5086 |
+
// attributes that should be using props for binding
|
5087 |
+
var acceptValue = makeMap('input,textarea,option,select,progress');
|
5088 |
+
var mustUseProp = function (tag, type, attr) {
|
5089 |
+
return (
|
5090 |
+
(attr === 'value' && acceptValue(tag)) && type !== 'button' ||
|
5091 |
+
(attr === 'selected' && tag === 'option') ||
|
5092 |
+
(attr === 'checked' && tag === 'input') ||
|
5093 |
+
(attr === 'muted' && tag === 'video')
|
5094 |
+
)
|
5095 |
+
};
|
5096 |
+
|
5097 |
+
var isEnumeratedAttr = makeMap('contenteditable,draggable,spellcheck');
|
5098 |
+
|
5099 |
+
var isBooleanAttr = makeMap(
|
5100 |
+
'allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,' +
|
5101 |
+
'default,defaultchecked,defaultmuted,defaultselected,defer,disabled,' +
|
5102 |
+
'enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,' +
|
5103 |
+
'muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,' +
|
5104 |
+
'required,reversed,scoped,seamless,selected,sortable,translate,' +
|
5105 |
+
'truespeed,typemustmatch,visible'
|
5106 |
+
);
|
5107 |
+
|
5108 |
+
var xlinkNS = 'http://www.w3.org/1999/xlink';
|
5109 |
+
|
5110 |
+
var isXlink = function (name) {
|
5111 |
+
return name.charAt(5) === ':' && name.slice(0, 5) === 'xlink'
|
5112 |
+
};
|
5113 |
+
|
5114 |
+
var getXlinkProp = function (name) {
|
5115 |
+
return isXlink(name) ? name.slice(6, name.length) : ''
|
5116 |
+
};
|
5117 |
+
|
5118 |
+
var isFalsyAttrValue = function (val) {
|
5119 |
+
return val == null || val === false
|
5120 |
+
};
|
5121 |
+
|
5122 |
+
/* */
|
5123 |
+
|
5124 |
+
function genClassForVnode (vnode) {
|
5125 |
+
var data = vnode.data;
|
5126 |
+
var parentNode = vnode;
|
5127 |
+
var childNode = vnode;
|
5128 |
+
while (isDef(childNode.componentInstance)) {
|
5129 |
+
childNode = childNode.componentInstance._vnode;
|
5130 |
+
if (childNode && childNode.data) {
|
5131 |
+
data = mergeClassData(childNode.data, data);
|
5132 |
+
}
|
5133 |
+
}
|
5134 |
+
while (isDef(parentNode = parentNode.parent)) {
|
5135 |
+
if (parentNode && parentNode.data) {
|
5136 |
+
data = mergeClassData(data, parentNode.data);
|
5137 |
+
}
|
5138 |
+
}
|
5139 |
+
return renderClass(data.staticClass, data.class)
|
5140 |
+
}
|
5141 |
+
|
5142 |
+
function mergeClassData (child, parent) {
|
5143 |
+
return {
|
5144 |
+
staticClass: concat(child.staticClass, parent.staticClass),
|
5145 |
+
class: isDef(child.class)
|
5146 |
+
? [child.class, parent.class]
|
5147 |
+
: parent.class
|
5148 |
+
}
|
5149 |
+
}
|
5150 |
+
|
5151 |
+
function renderClass (
|
5152 |
+
staticClass,
|
5153 |
+
dynamicClass
|
5154 |
+
) {
|
5155 |
+
if (isDef(staticClass) || isDef(dynamicClass)) {
|
5156 |
+
return concat(staticClass, stringifyClass(dynamicClass))
|
5157 |
+
}
|
5158 |
+
/* istanbul ignore next */
|
5159 |
+
return ''
|
5160 |
+
}
|
5161 |
+
|
5162 |
+
function concat (a, b) {
|
5163 |
+
return a ? b ? (a + ' ' + b) : a : (b || '')
|
5164 |
+
}
|
5165 |
+
|
5166 |
+
function stringifyClass (value) {
|
5167 |
+
if (Array.isArray(value)) {
|
5168 |
+
return stringifyArray(value)
|
5169 |
+
}
|
5170 |
+
if (isObject(value)) {
|
5171 |
+
return stringifyObject(value)
|
5172 |
+
}
|
5173 |
+
if (typeof value === 'string') {
|
5174 |
+
return value
|
5175 |
+
}
|
5176 |
+
/* istanbul ignore next */
|
5177 |
+
return ''
|
5178 |
+
}
|
5179 |
+
|
5180 |
+
function stringifyArray (value) {
|
5181 |
+
var res = '';
|
5182 |
+
var stringified;
|
5183 |
+
for (var i = 0, l = value.length; i < l; i++) {
|
5184 |
+
if (isDef(stringified = stringifyClass(value[i])) && stringified !== '') {
|
5185 |
+
if (res) { res += ' '; }
|
5186 |
+
res += stringified;
|
5187 |
+
}
|
5188 |
+
}
|
5189 |
+
return res
|
5190 |
+
}
|
5191 |
+
|
5192 |
+
function stringifyObject (value) {
|
5193 |
+
var res = '';
|
5194 |
+
for (var key in value) {
|
5195 |
+
if (value[key]) {
|
5196 |
+
if (res) { res += ' '; }
|
5197 |
+
res += key;
|
5198 |
+
}
|
5199 |
+
}
|
5200 |
+
return res
|
5201 |
+
}
|
5202 |
+
|
5203 |
+
/* */
|
5204 |
+
|
5205 |
+
var namespaceMap = {
|
5206 |
+
svg: 'http://www.w3.org/2000/svg',
|
5207 |
+
math: 'http://www.w3.org/1998/Math/MathML'
|
5208 |
+
};
|
5209 |
+
|
5210 |
+
var isHTMLTag = makeMap(
|
5211 |
+
'html,body,base,head,link,meta,style,title,' +
|
5212 |
+
'address,article,aside,footer,header,h1,h2,h3,h4,h5,h6,hgroup,nav,section,' +
|
5213 |
+
'div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,' +
|
5214 |
+
'a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,rtc,ruby,' +
|
5215 |
+
's,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,' +
|
5216 |
+
'embed,object,param,source,canvas,script,noscript,del,ins,' +
|
5217 |
+
'caption,col,colgroup,table,thead,tbody,td,th,tr,' +
|
5218 |
+
'button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,' +
|
5219 |
+
'output,progress,select,textarea,' +
|
5220 |
+
'details,dialog,menu,menuitem,summary,' +
|
5221 |
+
'content,element,shadow,template,blockquote,iframe,tfoot'
|
5222 |
+
);
|
5223 |
+
|
5224 |
+
// this map is intentionally selective, only covering SVG elements that may
|
5225 |
+
// contain child elements.
|
5226 |
+
var isSVG = makeMap(
|
5227 |
+
'svg,animate,circle,clippath,cursor,defs,desc,ellipse,filter,font-face,' +
|
5228 |
+
'foreignObject,g,glyph,image,line,marker,mask,missing-glyph,path,pattern,' +
|
5229 |
+
'polygon,polyline,rect,switch,symbol,text,textpath,tspan,use,view',
|
5230 |
+
true
|
5231 |
+
);
|
5232 |
+
|
5233 |
+
var isPreTag = function (tag) { return tag === 'pre'; };
|
5234 |
+
|
5235 |
+
var isReservedTag = function (tag) {
|
5236 |
+
return isHTMLTag(tag) || isSVG(tag)
|
5237 |
+
};
|
5238 |
+
|
5239 |
+
function getTagNamespace (tag) {
|
5240 |
+
if (isSVG(tag)) {
|
5241 |
+
return 'svg'
|
5242 |
+
}
|
5243 |
+
// basic support for MathML
|
5244 |
+
// note it doesn't support other MathML elements being component roots
|
5245 |
+
if (tag === 'math') {
|
5246 |
+
return 'math'
|
5247 |
+
}
|
5248 |
+
}
|
5249 |
+
|
5250 |
+
var unknownElementCache = Object.create(null);
|
5251 |
+
function isUnknownElement (tag) {
|
5252 |
+
/* istanbul ignore if */
|
5253 |
+
if (!inBrowser) {
|
5254 |
+
return true
|
5255 |
+
}
|
5256 |
+
if (isReservedTag(tag)) {
|
5257 |
+
return false
|
5258 |
+
}
|
5259 |
+
tag = tag.toLowerCase();
|
5260 |
+
/* istanbul ignore if */
|
5261 |
+
if (unknownElementCache[tag] != null) {
|
5262 |
+
return unknownElementCache[tag]
|
5263 |
+
}
|
5264 |
+
var el = document.createElement(tag);
|
5265 |
+
if (tag.indexOf('-') > -1) {
|
5266 |
+
// http://stackoverflow.com/a/28210364/1070244
|
5267 |
+
return (unknownElementCache[tag] = (
|
5268 |
+
el.constructor === window.HTMLUnknownElement ||
|
5269 |
+
el.constructor === window.HTMLElement
|
5270 |
+
))
|
5271 |
+
} else {
|
5272 |
+
return (unknownElementCache[tag] = /HTMLUnknownElement/.test(el.toString()))
|
5273 |
+
}
|
5274 |
+
}
|
5275 |
+
|
5276 |
+
var isTextInputType = makeMap('text,number,password,search,email,tel,url');
|
5277 |
+
|
5278 |
+
/* */
|
5279 |
+
|
5280 |
+
/**
|
5281 |
+
* Query an element selector if it's not an element already.
|
5282 |
+
*/
|
5283 |
+
function query (el) {
|
5284 |
+
if (typeof el === 'string') {
|
5285 |
+
var selected = document.querySelector(el);
|
5286 |
+
if (!selected) {
|
5287 |
+
"development" !== 'production' && warn(
|
5288 |
+
'Cannot find element: ' + el
|
5289 |
+
);
|
5290 |
+
return document.createElement('div')
|
5291 |
+
}
|
5292 |
+
return selected
|
5293 |
+
} else {
|
5294 |
+
return el
|
5295 |
+
}
|
5296 |
+
}
|
5297 |
+
|
5298 |
+
/* */
|
5299 |
+
|
5300 |
+
function createElement$1 (tagName, vnode) {
|
5301 |
+
var elm = document.createElement(tagName);
|
5302 |
+
if (tagName !== 'select') {
|
5303 |
+
return elm
|
5304 |
+
}
|
5305 |
+
// false or null will remove the attribute but undefined will not
|
5306 |
+
if (vnode.data && vnode.data.attrs && vnode.data.attrs.multiple !== undefined) {
|
5307 |
+
elm.setAttribute('multiple', 'multiple');
|
5308 |
+
}
|
5309 |
+
return elm
|
5310 |
+
}
|
5311 |
+
|
5312 |
+
function createElementNS (namespace, tagName) {
|
5313 |
+
return document.createElementNS(namespaceMap[namespace], tagName)
|
5314 |
+
}
|
5315 |
+
|
5316 |
+
function createTextNode (text) {
|
5317 |
+
return document.createTextNode(text)
|
5318 |
+
}
|
5319 |
+
|
5320 |
+
function createComment (text) {
|
5321 |
+
return document.createComment(text)
|
5322 |
+
}
|
5323 |
+
|
5324 |
+
function insertBefore (parentNode, newNode, referenceNode) {
|
5325 |
+
parentNode.insertBefore(newNode, referenceNode);
|
5326 |
+
}
|
5327 |
+
|
5328 |
+
function removeChild (node, child) {
|
5329 |
+
node.removeChild(child);
|
5330 |
+
}
|
5331 |
+
|
5332 |
+
function appendChild (node, child) {
|
5333 |
+
node.appendChild(child);
|
5334 |
+
}
|
5335 |
+
|
5336 |
+
function parentNode (node) {
|
5337 |
+
return node.parentNode
|
5338 |
+
}
|
5339 |
+
|
5340 |
+
function nextSibling (node) {
|
5341 |
+
return node.nextSibling
|
5342 |
+
}
|
5343 |
+
|
5344 |
+
function tagName (node) {
|
5345 |
+
return node.tagName
|
5346 |
+
}
|
5347 |
+
|
5348 |
+
function setTextContent (node, text) {
|
5349 |
+
node.textContent = text;
|
5350 |
+
}
|
5351 |
+
|
5352 |
+
function setStyleScope (node, scopeId) {
|
5353 |
+
node.setAttribute(scopeId, '');
|
5354 |
+
}
|
5355 |
+
|
5356 |
+
|
5357 |
+
var nodeOps = Object.freeze({
|
5358 |
+
createElement: createElement$1,
|
5359 |
+
createElementNS: createElementNS,
|
5360 |
+
createTextNode: createTextNode,
|
5361 |
+
createComment: createComment,
|
5362 |
+
insertBefore: insertBefore,
|
5363 |
+
removeChild: removeChild,
|
5364 |
+
appendChild: appendChild,
|
5365 |
+
parentNode: parentNode,
|
5366 |
+
nextSibling: nextSibling,
|
5367 |
+
tagName: tagName,
|
5368 |
+
setTextContent: setTextContent,
|
5369 |
+
setStyleScope: setStyleScope
|
5370 |
+
});
|
5371 |
+
|
5372 |
+
/* */
|
5373 |
+
|
5374 |
+
var ref = {
|
5375 |
+
create: function create (_, vnode) {
|
5376 |
+
registerRef(vnode);
|
5377 |
+
},
|
5378 |
+
update: function update (oldVnode, vnode) {
|
5379 |
+
if (oldVnode.data.ref !== vnode.data.ref) {
|
5380 |
+
registerRef(oldVnode, true);
|
5381 |
+
registerRef(vnode);
|
5382 |
+
}
|
5383 |
+
},
|
5384 |
+
destroy: function destroy (vnode) {
|
5385 |
+
registerRef(vnode, true);
|
5386 |
+
}
|
5387 |
+
}
|
5388 |
+
|
5389 |
+
function registerRef (vnode, isRemoval) {
|
5390 |
+
var key = vnode.data.ref;
|
5391 |
+
if (!isDef(key)) { return }
|
5392 |
+
|
5393 |
+
var vm = vnode.context;
|
5394 |
+
var ref = vnode.componentInstance || vnode.elm;
|
5395 |
+
var refs = vm.$refs;
|
5396 |
+
if (isRemoval) {
|
5397 |
+
if (Array.isArray(refs[key])) {
|
5398 |
+
remove(refs[key], ref);
|
5399 |
+
} else if (refs[key] === ref) {
|
5400 |
+
refs[key] = undefined;
|
5401 |
+
}
|
5402 |
+
} else {
|
5403 |
+
if (vnode.data.refInFor) {
|
5404 |
+
if (!Array.isArray(refs[key])) {
|
5405 |
+
refs[key] = [ref];
|
5406 |
+
} else if (refs[key].indexOf(ref) < 0) {
|
5407 |
+
// $flow-disable-line
|
5408 |
+
refs[key].push(ref);
|
5409 |
+
}
|
5410 |
+
} else {
|
5411 |
+
refs[key] = ref;
|
5412 |
+
}
|
5413 |
+
}
|
5414 |
+
}
|
5415 |
+
|
5416 |
+
/**
|
5417 |
+
* Virtual DOM patching algorithm based on Snabbdom by
|
5418 |
+
* Simon Friis Vindum (@paldepind)
|
5419 |
+
* Licensed under the MIT License
|
5420 |
+
* https://github.com/paldepind/snabbdom/blob/master/LICENSE
|
5421 |
+
*
|
5422 |
+
* modified by Evan You (@yyx990803)
|
5423 |
+
*
|
5424 |
+
* Not type-checking this because this file is perf-critical and the cost
|
5425 |
+
* of making flow understand it is not worth it.
|
5426 |
+
*/
|
5427 |
+
|
5428 |
+
var emptyNode = new VNode('', {}, []);
|
5429 |
+
|
5430 |
+
var hooks = ['create', 'activate', 'update', 'remove', 'destroy'];
|
5431 |
+
|
5432 |
+
function sameVnode (a, b) {
|
5433 |
+
return (
|
5434 |
+
a.key === b.key && (
|
5435 |
+
(
|
5436 |
+
a.tag === b.tag &&
|
5437 |
+
a.isComment === b.isComment &&
|
5438 |
+
isDef(a.data) === isDef(b.data) &&
|
5439 |
+
sameInputType(a, b)
|
5440 |
+
) || (
|
5441 |
+
isTrue(a.isAsyncPlaceholder) &&
|
5442 |
+
a.asyncFactory === b.asyncFactory &&
|
5443 |
+
isUndef(b.asyncFactory.error)
|
5444 |
+
)
|
5445 |
+
)
|
5446 |
+
)
|
5447 |
+
}
|
5448 |
+
|
5449 |
+
function sameInputType (a, b) {
|
5450 |
+
if (a.tag !== 'input') { return true }
|
5451 |
+
var i;
|
5452 |
+
var typeA = isDef(i = a.data) && isDef(i = i.attrs) && i.type;
|
5453 |
+
var typeB = isDef(i = b.data) && isDef(i = i.attrs) && i.type;
|
5454 |
+
return typeA === typeB || isTextInputType(typeA) && isTextInputType(typeB)
|
5455 |
+
}
|
5456 |
+
|
5457 |
+
function createKeyToOldIdx (children, beginIdx, endIdx) {
|
5458 |
+
var i, key;
|
5459 |
+
var map = {};
|
5460 |
+
for (i = beginIdx; i <= endIdx; ++i) {
|
5461 |
+
key = children[i].key;
|
5462 |
+
if (isDef(key)) { map[key] = i; }
|
5463 |
+
}
|
5464 |
+
return map
|
5465 |
+
}
|
5466 |
+
|
5467 |
+
function createPatchFunction (backend) {
|
5468 |
+
var i, j;
|
5469 |
+
var cbs = {};
|
5470 |
+
|
5471 |
+
var modules = backend.modules;
|
5472 |
+
var nodeOps = backend.nodeOps;
|
5473 |
+
|
5474 |
+
for (i = 0; i < hooks.length; ++i) {
|
5475 |
+
cbs[hooks[i]] = [];
|
5476 |
+
for (j = 0; j < modules.length; ++j) {
|
5477 |
+
if (isDef(modules[j][hooks[i]])) {
|
5478 |
+
cbs[hooks[i]].push(modules[j][hooks[i]]);
|
5479 |
+
}
|
5480 |
+
}
|
5481 |
+
}
|
5482 |
+
|
5483 |
+
function emptyNodeAt (elm) {
|
5484 |
+
return new VNode(nodeOps.tagName(elm).toLowerCase(), {}, [], undefined, elm)
|
5485 |
+
}
|
5486 |
+
|
5487 |
+
function createRmCb (childElm, listeners) {
|
5488 |
+
function remove () {
|
5489 |
+
if (--remove.listeners === 0) {
|
5490 |
+
removeNode(childElm);
|
5491 |
+
}
|
5492 |
+
}
|
5493 |
+
remove.listeners = listeners;
|
5494 |
+
return remove
|
5495 |
+
}
|
5496 |
+
|
5497 |
+
function removeNode (el) {
|
5498 |
+
var parent = nodeOps.parentNode(el);
|
5499 |
+
// element may have already been removed due to v-html / v-text
|
5500 |
+
if (isDef(parent)) {
|
5501 |
+
nodeOps.removeChild(parent, el);
|
5502 |
+
}
|
5503 |
+
}
|
5504 |
+
|
5505 |
+
function isUnknownElement$$1 (vnode, inVPre) {
|
5506 |
+
return (
|
5507 |
+
!inVPre &&
|
5508 |
+
!vnode.ns &&
|
5509 |
+
!(
|
5510 |
+
config.ignoredElements.length &&
|
5511 |
+
config.ignoredElements.some(function (ignore) {
|
5512 |
+
return isRegExp(ignore)
|
5513 |
+
? ignore.test(vnode.tag)
|
5514 |
+
: ignore === vnode.tag
|
5515 |
+
})
|
5516 |
+
) &&
|
5517 |
+
config.isUnknownElement(vnode.tag)
|
5518 |
+
)
|
5519 |
+
}
|
5520 |
+
|
5521 |
+
var creatingElmInVPre = 0;
|
5522 |
+
|
5523 |
+
function createElm (
|
5524 |
+
vnode,
|
5525 |
+
insertedVnodeQueue,
|
5526 |
+
parentElm,
|
5527 |
+
refElm,
|
5528 |
+
nested,
|
5529 |
+
ownerArray,
|
5530 |
+
index
|
5531 |
+
) {
|
5532 |
+
if (isDef(vnode.elm) && isDef(ownerArray)) {
|
5533 |
+
// This vnode was used in a previous render!
|
5534 |
+
// now it's used as a new node, overwriting its elm would cause
|
5535 |
+
// potential patch errors down the road when it's used as an insertion
|
5536 |
+
// reference node. Instead, we clone the node on-demand before creating
|
5537 |
+
// associated DOM element for it.
|
5538 |
+
vnode = ownerArray[index] = cloneVNode(vnode);
|
5539 |
+
}
|
5540 |
+
|
5541 |
+
vnode.isRootInsert = !nested; // for transition enter check
|
5542 |
+
if (createComponent(vnode, insertedVnodeQueue, parentElm, refElm)) {
|
5543 |
+
return
|
5544 |
+
}
|
5545 |
+
|
5546 |
+
var data = vnode.data;
|
5547 |
+
var children = vnode.children;
|
5548 |
+
var tag = vnode.tag;
|
5549 |
+
if (isDef(tag)) {
|
5550 |
+
{
|
5551 |
+
if (data && data.pre) {
|
5552 |
+
creatingElmInVPre++;
|
5553 |
+
}
|
5554 |
+
if (isUnknownElement$$1(vnode, creatingElmInVPre)) {
|
5555 |
+
warn(
|
5556 |
+
'Unknown custom element: <' + tag + '> - did you ' +
|
5557 |
+
'register the component correctly? For recursive components, ' +
|
5558 |
+
'make sure to provide the "name" option.',
|
5559 |
+
vnode.context
|
5560 |
+
);
|
5561 |
+
}
|
5562 |
+
}
|
5563 |
+
|
5564 |
+
vnode.elm = vnode.ns
|
5565 |
+
? nodeOps.createElementNS(vnode.ns, tag)
|
5566 |
+
: nodeOps.createElement(tag, vnode);
|
5567 |
+
setScope(vnode);
|
5568 |
+
|
5569 |
+
/* istanbul ignore if */
|
5570 |
+
{
|
5571 |
+
createChildren(vnode, children, insertedVnodeQueue);
|
5572 |
+
if (isDef(data)) {
|
5573 |
+
invokeCreateHooks(vnode, insertedVnodeQueue);
|
5574 |
+
}
|
5575 |
+
insert(parentElm, vnode.elm, refElm);
|
5576 |
+
}
|
5577 |
+
|
5578 |
+
if ("development" !== 'production' && data && data.pre) {
|
5579 |
+
creatingElmInVPre--;
|
5580 |
+
}
|
5581 |
+
} else if (isTrue(vnode.isComment)) {
|
5582 |
+
vnode.elm = nodeOps.createComment(vnode.text);
|
5583 |
+
insert(parentElm, vnode.elm, refElm);
|
5584 |
+
} else {
|
5585 |
+
vnode.elm = nodeOps.createTextNode(vnode.text);
|
5586 |
+
insert(parentElm, vnode.elm, refElm);
|
5587 |
+
}
|
5588 |
+
}
|
5589 |
+
|
5590 |
+
function createComponent (vnode, insertedVnodeQueue, parentElm, refElm) {
|
5591 |
+
var i = vnode.data;
|
5592 |
+
if (isDef(i)) {
|
5593 |
+
var isReactivated = isDef(vnode.componentInstance) && i.keepAlive;
|
5594 |
+
if (isDef(i = i.hook) && isDef(i = i.init)) {
|
5595 |
+
i(vnode, false /* hydrating */, parentElm, refElm);
|
5596 |
+
}
|
5597 |
+
// after calling the init hook, if the vnode is a child component
|
5598 |
+
// it should've created a child instance and mounted it. the child
|
5599 |
+
// component also has set the placeholder vnode's elm.
|
5600 |
+
// in that case we can just return the element and be done.
|
5601 |
+
if (isDef(vnode.componentInstance)) {
|
5602 |
+
initComponent(vnode, insertedVnodeQueue);
|
5603 |
+
if (isTrue(isReactivated)) {
|
5604 |
+
reactivateComponent(vnode, insertedVnodeQueue, parentElm, refElm);
|
5605 |
+
}
|
5606 |
+
return true
|
5607 |
+
}
|
5608 |
+
}
|
5609 |
+
}
|
5610 |
+
|
5611 |
+
function initComponent (vnode, insertedVnodeQueue) {
|
5612 |
+
if (isDef(vnode.data.pendingInsert)) {
|
5613 |
+
insertedVnodeQueue.push.apply(insertedVnodeQueue, vnode.data.pendingInsert);
|
5614 |
+
vnode.data.pendingInsert = null;
|
5615 |
+
}
|
5616 |
+
vnode.elm = vnode.componentInstance.$el;
|
5617 |
+
if (isPatchable(vnode)) {
|
5618 |
+
invokeCreateHooks(vnode, insertedVnodeQueue);
|
5619 |
+
setScope(vnode);
|
5620 |
+
} else {
|
5621 |
+
// empty component root.
|
5622 |
+
// skip all element-related modules except for ref (#3455)
|
5623 |
+
registerRef(vnode);
|
5624 |
+
// make sure to invoke the insert hook
|
5625 |
+
insertedVnodeQueue.push(vnode);
|
5626 |
+
}
|
5627 |
+
}
|
5628 |
+
|
5629 |
+
function reactivateComponent (vnode, insertedVnodeQueue, parentElm, refElm) {
|
5630 |
+
var i;
|
5631 |
+
// hack for #4339: a reactivated component with inner transition
|
5632 |
+
// does not trigger because the inner node's created hooks are not called
|
5633 |
+
// again. It's not ideal to involve module-specific logic in here but
|
5634 |
+
// there doesn't seem to be a better way to do it.
|
5635 |
+
var innerNode = vnode;
|
5636 |
+
while (innerNode.componentInstance) {
|
5637 |
+
innerNode = innerNode.componentInstance._vnode;
|
5638 |
+
if (isDef(i = innerNode.data) && isDef(i = i.transition)) {
|
5639 |
+
for (i = 0; i < cbs.activate.length; ++i) {
|
5640 |
+
cbs.activate[i](emptyNode, innerNode);
|
5641 |
+
}
|
5642 |
+
insertedVnodeQueue.push(innerNode);
|
5643 |
+
break
|
5644 |
+
}
|
5645 |
+
}
|
5646 |
+
// unlike a newly created component,
|
5647 |
+
// a reactivated keep-alive component doesn't insert itself
|
5648 |
+
insert(parentElm, vnode.elm, refElm);
|
5649 |
+
}
|
5650 |
+
|
5651 |
+
function insert (parent, elm, ref$$1) {
|
5652 |
+
if (isDef(parent)) {
|
5653 |
+
if (isDef(ref$$1)) {
|
5654 |
+
if (ref$$1.parentNode === parent) {
|
5655 |
+
nodeOps.insertBefore(parent, elm, ref$$1);
|
5656 |
+
}
|
5657 |
+
} else {
|
5658 |
+
nodeOps.appendChild(parent, elm);
|
5659 |
+
}
|
5660 |
+
}
|
5661 |
+
}
|
5662 |
+
|
5663 |
+
function createChildren (vnode, children, insertedVnodeQueue) {
|
5664 |
+
if (Array.isArray(children)) {
|
5665 |
+
{
|
5666 |
+
checkDuplicateKeys(children);
|
5667 |
+
}
|
5668 |
+
for (var i = 0; i < children.length; ++i) {
|
5669 |
+
createElm(children[i], insertedVnodeQueue, vnode.elm, null, true, children, i);
|
5670 |
+
}
|
5671 |
+
} else if (isPrimitive(vnode.text)) {
|
5672 |
+
nodeOps.appendChild(vnode.elm, nodeOps.createTextNode(String(vnode.text)));
|
5673 |
+
}
|
5674 |
+
}
|
5675 |
+
|
5676 |
+
function isPatchable (vnode) {
|
5677 |
+
while (vnode.componentInstance) {
|
5678 |
+
vnode = vnode.componentInstance._vnode;
|
5679 |
+
}
|
5680 |
+
return isDef(vnode.tag)
|
5681 |
+
}
|
5682 |
+
|
5683 |
+
function invokeCreateHooks (vnode, insertedVnodeQueue) {
|
5684 |
+
for (var i$1 = 0; i$1 < cbs.create.length; ++i$1) {
|
5685 |
+
cbs.create[i$1](emptyNode, vnode);
|
5686 |
+
}
|
5687 |
+
i = vnode.data.hook; // Reuse variable
|
5688 |
+
if (isDef(i)) {
|
5689 |
+
if (isDef(i.create)) { i.create(emptyNode, vnode); }
|
5690 |
+
if (isDef(i.insert)) { insertedVnodeQueue.push(vnode); }
|
5691 |
+
}
|
5692 |
+
}
|
5693 |
+
|
5694 |
+
// set scope id attribute for scoped CSS.
|
5695 |
+
// this is implemented as a special case to avoid the overhead
|
5696 |
+
// of going through the normal attribute patching process.
|
5697 |
+
function setScope (vnode) {
|
5698 |
+
var i;
|
5699 |
+
if (isDef(i = vnode.fnScopeId)) {
|
5700 |
+
nodeOps.setStyleScope(vnode.elm, i);
|
5701 |
+
} else {
|
5702 |
+
var ancestor = vnode;
|
5703 |
+
while (ancestor) {
|
5704 |
+
if (isDef(i = ancestor.context) && isDef(i = i.$options._scopeId)) {
|
5705 |
+
nodeOps.setStyleScope(vnode.elm, i);
|
5706 |
+
}
|
5707 |
+
ancestor = ancestor.parent;
|
5708 |
+
}
|
5709 |
+
}
|
5710 |
+
// for slot content they should also get the scopeId from the host instance.
|
5711 |
+
if (isDef(i = activeInstance) &&
|
5712 |
+
i !== vnode.context &&
|
5713 |
+
i !== vnode.fnContext &&
|
5714 |
+
isDef(i = i.$options._scopeId)
|
5715 |
+
) {
|
5716 |
+
nodeOps.setStyleScope(vnode.elm, i);
|
5717 |
+
}
|
5718 |
+
}
|
5719 |
+
|
5720 |
+
function addVnodes (parentElm, refElm, vnodes, startIdx, endIdx, insertedVnodeQueue) {
|
5721 |
+
for (; startIdx <= endIdx; ++startIdx) {
|
5722 |
+
createElm(vnodes[startIdx], insertedVnodeQueue, parentElm, refElm, false, vnodes, startIdx);
|
5723 |
+
}
|
5724 |
+
}
|
5725 |
+
|
5726 |
+
function invokeDestroyHook (vnode) {
|
5727 |
+
var i, j;
|
5728 |
+
var data = vnode.data;
|
5729 |
+
if (isDef(data)) {
|
5730 |
+
if (isDef(i = data.hook) && isDef(i = i.destroy)) { i(vnode); }
|
5731 |
+
for (i = 0; i < cbs.destroy.length; ++i) { cbs.destroy[i](vnode); }
|
5732 |
+
}
|
5733 |
+
if (isDef(i = vnode.children)) {
|
5734 |
+
for (j = 0; j < vnode.children.length; ++j) {
|
5735 |
+
invokeDestroyHook(vnode.children[j]);
|
5736 |
+
}
|
5737 |
+
}
|
5738 |
+
}
|
5739 |
+
|
5740 |
+
function removeVnodes (parentElm, vnodes, startIdx, endIdx) {
|
5741 |
+
for (; startIdx <= endIdx; ++startIdx) {
|
5742 |
+
var ch = vnodes[startIdx];
|
5743 |
+
if (isDef(ch)) {
|
5744 |
+
if (isDef(ch.tag)) {
|
5745 |
+
removeAndInvokeRemoveHook(ch);
|
5746 |
+
invokeDestroyHook(ch);
|
5747 |
+
} else { // Text node
|
5748 |
+
removeNode(ch.elm);
|
5749 |
+
}
|
5750 |
+
}
|
5751 |
+
}
|
5752 |
+
}
|
5753 |
+
|
5754 |
+
function removeAndInvokeRemoveHook (vnode, rm) {
|
5755 |
+
if (isDef(rm) || isDef(vnode.data)) {
|
5756 |
+
var i;
|
5757 |
+
var listeners = cbs.remove.length + 1;
|
5758 |
+
if (isDef(rm)) {
|
5759 |
+
// we have a recursively passed down rm callback
|
5760 |
+
// increase the listeners count
|
5761 |
+
rm.listeners += listeners;
|
5762 |
+
} else {
|
5763 |
+
// directly removing
|
5764 |
+
rm = createRmCb(vnode.elm, listeners);
|
5765 |
+
}
|
5766 |
+
// recursively invoke hooks on child component root node
|
5767 |
+
if (isDef(i = vnode.componentInstance) && isDef(i = i._vnode) && isDef(i.data)) {
|
5768 |
+
removeAndInvokeRemoveHook(i, rm);
|
5769 |
+
}
|
5770 |
+
for (i = 0; i < cbs.remove.length; ++i) {
|
5771 |
+
cbs.remove[i](vnode, rm);
|
5772 |
+
}
|
5773 |
+
if (isDef(i = vnode.data.hook) && isDef(i = i.remove)) {
|
5774 |
+
i(vnode, rm);
|
5775 |
+
} else {
|
5776 |
+
rm();
|
5777 |
+
}
|
5778 |
+
} else {
|
5779 |
+
removeNode(vnode.elm);
|
5780 |
+
}
|
5781 |
+
}
|
5782 |
+
|
5783 |
+
function updateChildren (parentElm, oldCh, newCh, insertedVnodeQueue, removeOnly) {
|
5784 |
+
var oldStartIdx = 0;
|
5785 |
+
var newStartIdx = 0;
|
5786 |
+
var oldEndIdx = oldCh.length - 1;
|
5787 |
+
var oldStartVnode = oldCh[0];
|
5788 |
+
var oldEndVnode = oldCh[oldEndIdx];
|
5789 |
+
var newEndIdx = newCh.length - 1;
|
5790 |
+
var newStartVnode = newCh[0];
|
5791 |
+
var newEndVnode = newCh[newEndIdx];
|
5792 |
+
var oldKeyToIdx, idxInOld, vnodeToMove, refElm;
|
5793 |
+
|
5794 |
+
// removeOnly is a special flag used only by <transition-group>
|
5795 |
+
// to ensure removed elements stay in correct relative positions
|
5796 |
+
// during leaving transitions
|
5797 |
+
var canMove = !removeOnly;
|
5798 |
+
|
5799 |
+
{
|
5800 |
+
checkDuplicateKeys(newCh);
|
5801 |
+
}
|
5802 |
+
|
5803 |
+
while (oldStartIdx <= oldEndIdx && newStartIdx <= newEndIdx) {
|
5804 |
+
if (isUndef(oldStartVnode)) {
|
5805 |
+
oldStartVnode = oldCh[++oldStartIdx]; // Vnode has been moved left
|
5806 |
+
} else if (isUndef(oldEndVnode)) {
|
5807 |
+
oldEndVnode = oldCh[--oldEndIdx];
|
5808 |
+
} else if (sameVnode(oldStartVnode, newStartVnode)) {
|
5809 |
+
patchVnode(oldStartVnode, newStartVnode, insertedVnodeQueue);
|
5810 |
+
oldStartVnode = oldCh[++oldStartIdx];
|
5811 |
+
newStartVnode = newCh[++newStartIdx];
|
5812 |
+
} else if (sameVnode(oldEndVnode, newEndVnode)) {
|
5813 |
+
patchVnode(oldEndVnode, newEndVnode, insertedVnodeQueue);
|
5814 |
+
oldEndVnode = oldCh[--oldEndIdx];
|
5815 |
+
newEndVnode = newCh[--newEndIdx];
|
5816 |
+
} else if (sameVnode(oldStartVnode, newEndVnode)) { // Vnode moved right
|
5817 |
+
patchVnode(oldStartVnode, newEndVnode, insertedVnodeQueue);
|
5818 |
+
canMove && nodeOps.insertBefore(parentElm, oldStartVnode.elm, nodeOps.nextSibling(oldEndVnode.elm));
|
5819 |
+
oldStartVnode = oldCh[++oldStartIdx];
|
5820 |
+
newEndVnode = newCh[--newEndIdx];
|
5821 |
+
} else if (sameVnode(oldEndVnode, newStartVnode)) { // Vnode moved left
|
5822 |
+
patchVnode(oldEndVnode, newStartVnode, insertedVnodeQueue);
|
5823 |
+
canMove && nodeOps.insertBefore(parentElm, oldEndVnode.elm, oldStartVnode.elm);
|
5824 |
+
oldEndVnode = oldCh[--oldEndIdx];
|
5825 |
+
newStartVnode = newCh[++newStartIdx];
|
5826 |
+
} else {
|
5827 |
+
if (isUndef(oldKeyToIdx)) { oldKeyToIdx = createKeyToOldIdx(oldCh, oldStartIdx, oldEndIdx); }
|
5828 |
+
idxInOld = isDef(newStartVnode.key)
|
5829 |
+
? oldKeyToIdx[newStartVnode.key]
|
5830 |
+
: findIdxInOld(newStartVnode, oldCh, oldStartIdx, oldEndIdx);
|
5831 |
+
if (isUndef(idxInOld)) { // New element
|
5832 |
+
createElm(newStartVnode, insertedVnodeQueue, parentElm, oldStartVnode.elm, false, newCh, newStartIdx);
|
5833 |
+
} else {
|
5834 |
+
vnodeToMove = oldCh[idxInOld];
|
5835 |
+
if (sameVnode(vnodeToMove, newStartVnode)) {
|
5836 |
+
patchVnode(vnodeToMove, newStartVnode, insertedVnodeQueue);
|
5837 |
+
oldCh[idxInOld] = undefined;
|
5838 |
+
canMove && nodeOps.insertBefore(parentElm, vnodeToMove.elm, oldStartVnode.elm);
|
5839 |
+
} else {
|
5840 |
+
// same key but different element. treat as new element
|
5841 |
+
createElm(newStartVnode, insertedVnodeQueue, parentElm, oldStartVnode.elm, false, newCh, newStartIdx);
|
5842 |
+
}
|
5843 |
+
}
|
5844 |
+
newStartVnode = newCh[++newStartIdx];
|
5845 |
+
}
|
5846 |
+
}
|
5847 |
+
if (oldStartIdx > oldEndIdx) {
|
5848 |
+
refElm = isUndef(newCh[newEndIdx + 1]) ? null : newCh[newEndIdx + 1].elm;
|
5849 |
+
addVnodes(parentElm, refElm, newCh, newStartIdx, newEndIdx, insertedVnodeQueue);
|
5850 |
+
} else if (newStartIdx > newEndIdx) {
|
5851 |
+
removeVnodes(parentElm, oldCh, oldStartIdx, oldEndIdx);
|
5852 |
+
}
|
5853 |
+
}
|
5854 |
+
|
5855 |
+
function checkDuplicateKeys (children) {
|
5856 |
+
var seenKeys = {};
|
5857 |
+
for (var i = 0; i < children.length; i++) {
|
5858 |
+
var vnode = children[i];
|
5859 |
+
var key = vnode.key;
|
5860 |
+
if (isDef(key)) {
|
5861 |
+
if (seenKeys[key]) {
|
5862 |
+
warn(
|
5863 |
+
("Duplicate keys detected: '" + key + "'. This may cause an update error."),
|
5864 |
+
vnode.context
|
5865 |
+
);
|
5866 |
+
} else {
|
5867 |
+
seenKeys[key] = true;
|
5868 |
+
}
|
5869 |
+
}
|
5870 |
+
}
|
5871 |
+
}
|
5872 |
+
|
5873 |
+
function findIdxInOld (node, oldCh, start, end) {
|
5874 |
+
for (var i = start; i < end; i++) {
|
5875 |
+
var c = oldCh[i];
|
5876 |
+
if (isDef(c) && sameVnode(node, c)) { return i }
|
5877 |
+
}
|
5878 |
+
}
|
5879 |
+
|
5880 |
+
function patchVnode (oldVnode, vnode, insertedVnodeQueue, removeOnly) {
|
5881 |
+
if (oldVnode === vnode) {
|
5882 |
+
return
|
5883 |
+
}
|
5884 |
+
|
5885 |
+
var elm = vnode.elm = oldVnode.elm;
|
5886 |
+
|
5887 |
+
if (isTrue(oldVnode.isAsyncPlaceholder)) {
|
5888 |
+
if (isDef(vnode.asyncFactory.resolved)) {
|
5889 |
+
hydrate(oldVnode.elm, vnode, insertedVnodeQueue);
|
5890 |
+
} else {
|
5891 |
+
vnode.isAsyncPlaceholder = true;
|
5892 |
+
}
|
5893 |
+
return
|
5894 |
+
}
|
5895 |
+
|
5896 |
+
// reuse element for static trees.
|
5897 |
+
// note we only do this if the vnode is cloned -
|
5898 |
+
// if the new node is not cloned it means the render functions have been
|
5899 |
+
// reset by the hot-reload-api and we need to do a proper re-render.
|
5900 |
+
if (isTrue(vnode.isStatic) &&
|
5901 |
+
isTrue(oldVnode.isStatic) &&
|
5902 |
+
vnode.key === oldVnode.key &&
|
5903 |
+
(isTrue(vnode.isCloned) || isTrue(vnode.isOnce))
|
5904 |
+
) {
|
5905 |
+
vnode.componentInstance = oldVnode.componentInstance;
|
5906 |
+
return
|
5907 |
+
}
|
5908 |
+
|
5909 |
+
var i;
|
5910 |
+
var data = vnode.data;
|
5911 |
+
if (isDef(data) && isDef(i = data.hook) && isDef(i = i.prepatch)) {
|
5912 |
+
i(oldVnode, vnode);
|
5913 |
+
}
|
5914 |
+
|
5915 |
+
var oldCh = oldVnode.children;
|
5916 |
+
var ch = vnode.children;
|
5917 |
+
if (isDef(data) && isPatchable(vnode)) {
|
5918 |
+
for (i = 0; i < cbs.update.length; ++i) { cbs.update[i](oldVnode, vnode); }
|
5919 |
+
if (isDef(i = data.hook) && isDef(i = i.update)) { i(oldVnode, vnode); }
|
5920 |
+
}
|
5921 |
+
if (isUndef(vnode.text)) {
|
5922 |
+
if (isDef(oldCh) && isDef(ch)) {
|
5923 |
+
if (oldCh !== ch) { updateChildren(elm, oldCh, ch, insertedVnodeQueue, removeOnly); }
|
5924 |
+
} else if (isDef(ch)) {
|
5925 |
+
if (isDef(oldVnode.text)) { nodeOps.setTextContent(elm, ''); }
|
5926 |
+
addVnodes(elm, null, ch, 0, ch.length - 1, insertedVnodeQueue);
|
5927 |
+
} else if (isDef(oldCh)) {
|
5928 |
+
removeVnodes(elm, oldCh, 0, oldCh.length - 1);
|
5929 |
+
} else if (isDef(oldVnode.text)) {
|
5930 |
+
nodeOps.setTextContent(elm, '');
|
5931 |
+
}
|
5932 |
+
} else if (oldVnode.text !== vnode.text) {
|
5933 |
+
nodeOps.setTextContent(elm, vnode.text);
|
5934 |
+
}
|
5935 |
+
if (isDef(data)) {
|
5936 |
+
if (isDef(i = data.hook) && isDef(i = i.postpatch)) { i(oldVnode, vnode); }
|
5937 |
+
}
|
5938 |
+
}
|
5939 |
+
|
5940 |
+
function invokeInsertHook (vnode, queue, initial) {
|
5941 |
+
// delay insert hooks for component root nodes, invoke them after the
|
5942 |
+
// element is really inserted
|
5943 |
+
if (isTrue(initial) && isDef(vnode.parent)) {
|
5944 |
+
vnode.parent.data.pendingInsert = queue;
|
5945 |
+
} else {
|
5946 |
+
for (var i = 0; i < queue.length; ++i) {
|
5947 |
+
queue[i].data.hook.insert(queue[i]);
|
5948 |
+
}
|
5949 |
+
}
|
5950 |
+
}
|
5951 |
+
|
5952 |
+
var hydrationBailed = false;
|
5953 |
+
// list of modules that can skip create hook during hydration because they
|
5954 |
+
// are already rendered on the client or has no need for initialization
|
5955 |
+
// Note: style is excluded because it relies on initial clone for future
|
5956 |
+
// deep updates (#7063).
|
5957 |
+
var isRenderedModule = makeMap('attrs,class,staticClass,staticStyle,key');
|
5958 |
+
|
5959 |
+
// Note: this is a browser-only function so we can assume elms are DOM nodes.
|
5960 |
+
function hydrate (elm, vnode, insertedVnodeQueue, inVPre) {
|
5961 |
+
var i;
|
5962 |
+
var tag = vnode.tag;
|
5963 |
+
var data = vnode.data;
|
5964 |
+
var children = vnode.children;
|
5965 |
+
inVPre = inVPre || (data && data.pre);
|
5966 |
+
vnode.elm = elm;
|
5967 |
+
|
5968 |
+
if (isTrue(vnode.isComment) && isDef(vnode.asyncFactory)) {
|
5969 |
+
vnode.isAsyncPlaceholder = true;
|
5970 |
+
return true
|
5971 |
+
}
|
5972 |
+
// assert node match
|
5973 |
+
{
|
5974 |
+
if (!assertNodeMatch(elm, vnode, inVPre)) {
|
5975 |
+
return false
|
5976 |
+
}
|
5977 |
+
}
|
5978 |
+
if (isDef(data)) {
|
5979 |
+
if (isDef(i = data.hook) && isDef(i = i.init)) { i(vnode, true /* hydrating */); }
|
5980 |
+
if (isDef(i = vnode.componentInstance)) {
|
5981 |
+
// child component. it should have hydrated its own tree.
|
5982 |
+
initComponent(vnode, insertedVnodeQueue);
|
5983 |
+
return true
|
5984 |
+
}
|
5985 |
+
}
|
5986 |
+
if (isDef(tag)) {
|
5987 |
+
if (isDef(children)) {
|
5988 |
+
// empty element, allow client to pick up and populate children
|
5989 |
+
if (!elm.hasChildNodes()) {
|
5990 |
+
createChildren(vnode, children, insertedVnodeQueue);
|
5991 |
+
} else {
|
5992 |
+
// v-html and domProps: innerHTML
|
5993 |
+
if (isDef(i = data) && isDef(i = i.domProps) && isDef(i = i.innerHTML)) {
|
5994 |
+
if (i !== elm.innerHTML) {
|
5995 |
+
/* istanbul ignore if */
|
5996 |
+
if ("development" !== 'production' &&
|
5997 |
+
typeof console !== 'undefined' &&
|
5998 |
+
!hydrationBailed
|
5999 |
+
) {
|
6000 |
+
hydrationBailed = true;
|
6001 |
+
console.warn('Parent: ', elm);
|
6002 |
+
console.warn('server innerHTML: ', i);
|
6003 |
+
console.warn('client innerHTML: ', elm.innerHTML);
|
6004 |
+
}
|
6005 |
+
return false
|
6006 |
+
}
|
6007 |
+
} else {
|
6008 |
+
// iterate and compare children lists
|
6009 |
+
var childrenMatch = true;
|
6010 |
+
var childNode = elm.firstChild;
|
6011 |
+
for (var i$1 = 0; i$1 < children.length; i$1++) {
|
6012 |
+
if (!childNode || !hydrate(childNode, children[i$1], insertedVnodeQueue, inVPre)) {
|
6013 |
+
childrenMatch = false;
|
6014 |
+
break
|
6015 |
+
}
|
6016 |
+
childNode = childNode.nextSibling;
|
6017 |
+
}
|
6018 |
+
// if childNode is not null, it means the actual childNodes list is
|
6019 |
+
// longer than the virtual children list.
|
6020 |
+
if (!childrenMatch || childNode) {
|
6021 |
+
/* istanbul ignore if */
|
6022 |
+
if ("development" !== 'production' &&
|
6023 |
+
typeof console !== 'undefined' &&
|
6024 |
+
!hydrationBailed
|
6025 |
+
) {
|
6026 |
+
hydrationBailed = true;
|
6027 |
+
console.warn('Parent: ', elm);
|
6028 |
+
console.warn('Mismatching childNodes vs. VNodes: ', elm.childNodes, children);
|
6029 |
+
}
|
6030 |
+
return false
|
6031 |
+
}
|
6032 |
+
}
|
6033 |
+
}
|
6034 |
+
}
|
6035 |
+
if (isDef(data)) {
|
6036 |
+
var fullInvoke = false;
|
6037 |
+
for (var key in data) {
|
6038 |
+
if (!isRenderedModule(key)) {
|
6039 |
+
fullInvoke = true;
|
6040 |
+
invokeCreateHooks(vnode, insertedVnodeQueue);
|
6041 |
+
break
|
6042 |
+
}
|
6043 |
+
}
|
6044 |
+
if (!fullInvoke && data['class']) {
|
6045 |
+
// ensure collecting deps for deep class bindings for future updates
|
6046 |
+
traverse(data['class']);
|
6047 |
+
}
|
6048 |
+
}
|
6049 |
+
} else if (elm.data !== vnode.text) {
|
6050 |
+
elm.data = vnode.text;
|
6051 |
+
}
|
6052 |
+
return true
|
6053 |
+
}
|
6054 |
+
|
6055 |
+
function assertNodeMatch (node, vnode, inVPre) {
|
6056 |
+
if (isDef(vnode.tag)) {
|
6057 |
+
return vnode.tag.indexOf('vue-component') === 0 || (
|
6058 |
+
!isUnknownElement$$1(vnode, inVPre) &&
|
6059 |
+
vnode.tag.toLowerCase() === (node.tagName && node.tagName.toLowerCase())
|
6060 |
+
)
|
6061 |
+
} else {
|
6062 |
+
return node.nodeType === (vnode.isComment ? 8 : 3)
|
6063 |
+
}
|
6064 |
+
}
|
6065 |
+
|
6066 |
+
return function patch (oldVnode, vnode, hydrating, removeOnly, parentElm, refElm) {
|
6067 |
+
if (isUndef(vnode)) {
|
6068 |
+
if (isDef(oldVnode)) { invokeDestroyHook(oldVnode); }
|
6069 |
+
return
|
6070 |
+
}
|
6071 |
+
|
6072 |
+
var isInitialPatch = false;
|
6073 |
+
var insertedVnodeQueue = [];
|
6074 |
+
|
6075 |
+
if (isUndef(oldVnode)) {
|
6076 |
+
// empty mount (likely as component), create new root element
|
6077 |
+
isInitialPatch = true;
|
6078 |
+
createElm(vnode, insertedVnodeQueue, parentElm, refElm);
|
6079 |
+
} else {
|
6080 |
+
var isRealElement = isDef(oldVnode.nodeType);
|
6081 |
+
if (!isRealElement && sameVnode(oldVnode, vnode)) {
|
6082 |
+
// patch existing root node
|
6083 |
+
patchVnode(oldVnode, vnode, insertedVnodeQueue, removeOnly);
|
6084 |
+
} else {
|
6085 |
+
if (isRealElement) {
|
6086 |
+
// mounting to a real element
|
6087 |
+
// check if this is server-rendered content and if we can perform
|
6088 |
+
// a successful hydration.
|
6089 |
+
if (oldVnode.nodeType === 1 && oldVnode.hasAttribute(SSR_ATTR)) {
|
6090 |
+
oldVnode.removeAttribute(SSR_ATTR);
|
6091 |
+
hydrating = true;
|
6092 |
+
}
|
6093 |
+
if (isTrue(hydrating)) {
|
6094 |
+
if (hydrate(oldVnode, vnode, insertedVnodeQueue)) {
|
6095 |
+
invokeInsertHook(vnode, insertedVnodeQueue, true);
|
6096 |
+
return oldVnode
|
6097 |
+
} else {
|
6098 |
+
warn(
|
6099 |
+
'The client-side rendered virtual DOM tree is not matching ' +
|
6100 |
+
'server-rendered content. This is likely caused by incorrect ' +
|
6101 |
+
'HTML markup, for example nesting block-level elements inside ' +
|
6102 |
+
'<p>, or missing <tbody>. Bailing hydration and performing ' +
|
6103 |
+
'full client-side render.'
|
6104 |
+
);
|
6105 |
+
}
|
6106 |
+
}
|
6107 |
+
// either not server-rendered, or hydration failed.
|
6108 |
+
// create an empty node and replace it
|
6109 |
+
oldVnode = emptyNodeAt(oldVnode);
|
6110 |
+
}
|
6111 |
+
|
6112 |
+
// replacing existing element
|
6113 |
+
var oldElm = oldVnode.elm;
|
6114 |
+
var parentElm$1 = nodeOps.parentNode(oldElm);
|
6115 |
+
|
6116 |
+
// create new node
|
6117 |
+
createElm(
|
6118 |
+
vnode,
|
6119 |
+
insertedVnodeQueue,
|
6120 |
+
// extremely rare edge case: do not insert if old element is in a
|
6121 |
+
// leaving transition. Only happens when combining transition +
|
6122 |
+
// keep-alive + HOCs. (#4590)
|
6123 |
+
oldElm._leaveCb ? null : parentElm$1,
|
6124 |
+
nodeOps.nextSibling(oldElm)
|
6125 |
+
);
|
6126 |
+
|
6127 |
+
// update parent placeholder node element, recursively
|
6128 |
+
if (isDef(vnode.parent)) {
|
6129 |
+
var ancestor = vnode.parent;
|
6130 |
+
var patchable = isPatchable(vnode);
|
6131 |
+
while (ancestor) {
|
6132 |
+
for (var i = 0; i < cbs.destroy.length; ++i) {
|
6133 |
+
cbs.destroy[i](ancestor);
|
6134 |
+
}
|
6135 |
+
ancestor.elm = vnode.elm;
|
6136 |
+
if (patchable) {
|
6137 |
+
for (var i$1 = 0; i$1 < cbs.create.length; ++i$1) {
|
6138 |
+
cbs.create[i$1](emptyNode, ancestor);
|
6139 |
+
}
|
6140 |
+
// #6513
|
6141 |
+
// invoke insert hooks that may have been merged by create hooks.
|
6142 |
+
// e.g. for directives that uses the "inserted" hook.
|
6143 |
+
var insert = ancestor.data.hook.insert;
|
6144 |
+
if (insert.merged) {
|
6145 |
+
// start at index 1 to avoid re-invoking component mounted hook
|
6146 |
+
for (var i$2 = 1; i$2 < insert.fns.length; i$2++) {
|
6147 |
+
insert.fns[i$2]();
|
6148 |
+
}
|
6149 |
+
}
|
6150 |
+
} else {
|
6151 |
+
registerRef(ancestor);
|
6152 |
+
}
|
6153 |
+
ancestor = ancestor.parent;
|
6154 |
+
}
|
6155 |
+
}
|
6156 |
+
|
6157 |
+
// destroy old node
|
6158 |
+
if (isDef(parentElm$1)) {
|
6159 |
+
removeVnodes(parentElm$1, [oldVnode], 0, 0);
|
6160 |
+
} else if (isDef(oldVnode.tag)) {
|
6161 |
+
invokeDestroyHook(oldVnode);
|
6162 |
+
}
|
6163 |
+
}
|
6164 |
+
}
|
6165 |
+
|
6166 |
+
invokeInsertHook(vnode, insertedVnodeQueue, isInitialPatch);
|
6167 |
+
return vnode.elm
|
6168 |
+
}
|
6169 |
+
}
|
6170 |
+
|
6171 |
+
/* */
|
6172 |
+
|
6173 |
+
var directives = {
|
6174 |
+
create: updateDirectives,
|
6175 |
+
update: updateDirectives,
|
6176 |
+
destroy: function unbindDirectives (vnode) {
|
6177 |
+
updateDirectives(vnode, emptyNode);
|
6178 |
+
}
|
6179 |
+
}
|
6180 |
+
|
6181 |
+
function updateDirectives (oldVnode, vnode) {
|
6182 |
+
if (oldVnode.data.directives || vnode.data.directives) {
|
6183 |
+
_update(oldVnode, vnode);
|
6184 |
+
}
|
6185 |
+
}
|
6186 |
+
|
6187 |
+
function _update (oldVnode, vnode) {
|
6188 |
+
var isCreate = oldVnode === emptyNode;
|
6189 |
+
var isDestroy = vnode === emptyNode;
|
6190 |
+
var oldDirs = normalizeDirectives$1(oldVnode.data.directives, oldVnode.context);
|
6191 |
+
var newDirs = normalizeDirectives$1(vnode.data.directives, vnode.context);
|
6192 |
+
|
6193 |
+
var dirsWithInsert = [];
|
6194 |
+
var dirsWithPostpatch = [];
|
6195 |
+
|
6196 |
+
var key, oldDir, dir;
|
6197 |
+
for (key in newDirs) {
|
6198 |
+
oldDir = oldDirs[key];
|
6199 |
+
dir = newDirs[key];
|
6200 |
+
if (!oldDir) {
|
6201 |
+
// new directive, bind
|
6202 |
+
callHook$1(dir, 'bind', vnode, oldVnode);
|
6203 |
+
if (dir.def && dir.def.inserted) {
|
6204 |
+
dirsWithInsert.push(dir);
|
6205 |
+
}
|
6206 |
+
} else {
|
6207 |
+
// existing directive, update
|
6208 |
+
dir.oldValue = oldDir.value;
|
6209 |
+
callHook$1(dir, 'update', vnode, oldVnode);
|
6210 |
+
if (dir.def && dir.def.componentUpdated) {
|
6211 |
+
dirsWithPostpatch.push(dir);
|
6212 |
+
}
|
6213 |
+
}
|
6214 |
+
}
|
6215 |
+
|
6216 |
+
if (dirsWithInsert.length) {
|
6217 |
+
var callInsert = function () {
|
6218 |
+
for (var i = 0; i < dirsWithInsert.length; i++) {
|
6219 |
+
callHook$1(dirsWithInsert[i], 'inserted', vnode, oldVnode);
|
6220 |
+
}
|
6221 |
+
};
|
6222 |
+
if (isCreate) {
|
6223 |
+
mergeVNodeHook(vnode, 'insert', callInsert);
|
6224 |
+
} else {
|
6225 |
+
callInsert();
|
6226 |
+
}
|
6227 |
+
}
|
6228 |
+
|
6229 |
+
if (dirsWithPostpatch.length) {
|
6230 |
+
mergeVNodeHook(vnode, 'postpatch', function () {
|
6231 |
+
for (var i = 0; i < dirsWithPostpatch.length; i++) {
|
6232 |
+
callHook$1(dirsWithPostpatch[i], 'componentUpdated', vnode, oldVnode);
|
6233 |
+
}
|
6234 |
+
});
|
6235 |
+
}
|
6236 |
+
|
6237 |
+
if (!isCreate) {
|
6238 |
+
for (key in oldDirs) {
|
6239 |
+
if (!newDirs[key]) {
|
6240 |
+
// no longer present, unbind
|
6241 |
+
callHook$1(oldDirs[key], 'unbind', oldVnode, oldVnode, isDestroy);
|
6242 |
+
}
|
6243 |
+
}
|
6244 |
+
}
|
6245 |
+
}
|
6246 |
+
|
6247 |
+
var emptyModifiers = Object.create(null);
|
6248 |
+
|
6249 |
+
function normalizeDirectives$1 (
|
6250 |
+
dirs,
|
6251 |
+
vm
|
6252 |
+
) {
|
6253 |
+
var res = Object.create(null);
|
6254 |
+
if (!dirs) {
|
6255 |
+
// $flow-disable-line
|
6256 |
+
return res
|
6257 |
+
}
|
6258 |
+
var i, dir;
|
6259 |
+
for (i = 0; i < dirs.length; i++) {
|
6260 |
+
dir = dirs[i];
|
6261 |
+
if (!dir.modifiers) {
|
6262 |
+
// $flow-disable-line
|
6263 |
+
dir.modifiers = emptyModifiers;
|
6264 |
+
}
|
6265 |
+
res[getRawDirName(dir)] = dir;
|
6266 |
+
dir.def = resolveAsset(vm.$options, 'directives', dir.name, true);
|
6267 |
+
}
|
6268 |
+
// $flow-disable-line
|
6269 |
+
return res
|
6270 |
+
}
|
6271 |
+
|
6272 |
+
function getRawDirName (dir) {
|
6273 |
+
return dir.rawName || ((dir.name) + "." + (Object.keys(dir.modifiers || {}).join('.')))
|
6274 |
+
}
|
6275 |
+
|
6276 |
+
function callHook$1 (dir, hook, vnode, oldVnode, isDestroy) {
|
6277 |
+
var fn = dir.def && dir.def[hook];
|
6278 |
+
if (fn) {
|
6279 |
+
try {
|
6280 |
+
fn(vnode.elm, dir, vnode, oldVnode, isDestroy);
|
6281 |
+
} catch (e) {
|
6282 |
+
handleError(e, vnode.context, ("directive " + (dir.name) + " " + hook + " hook"));
|
6283 |
+
}
|
6284 |
+
}
|
6285 |
+
}
|
6286 |
+
|
6287 |
+
var baseModules = [
|
6288 |
+
ref,
|
6289 |
+
directives
|
6290 |
+
]
|
6291 |
+
|
6292 |
+
/* */
|
6293 |
+
|
6294 |
+
function updateAttrs (oldVnode, vnode) {
|
6295 |
+
var opts = vnode.componentOptions;
|
6296 |
+
if (isDef(opts) && opts.Ctor.options.inheritAttrs === false) {
|
6297 |
+
return
|
6298 |
+
}
|
6299 |
+
if (isUndef(oldVnode.data.attrs) && isUndef(vnode.data.attrs)) {
|
6300 |
+
return
|
6301 |
+
}
|
6302 |
+
var key, cur, old;
|
6303 |
+
var elm = vnode.elm;
|
6304 |
+
var oldAttrs = oldVnode.data.attrs || {};
|
6305 |
+
var attrs = vnode.data.attrs || {};
|
6306 |
+
// clone observed objects, as the user probably wants to mutate it
|
6307 |
+
if (isDef(attrs.__ob__)) {
|
6308 |
+
attrs = vnode.data.attrs = extend({}, attrs);
|
6309 |
+
}
|
6310 |
+
|
6311 |
+
for (key in attrs) {
|
6312 |
+
cur = attrs[key];
|
6313 |
+
old = oldAttrs[key];
|
6314 |
+
if (old !== cur) {
|
6315 |
+
setAttr(elm, key, cur);
|
6316 |
+
}
|
6317 |
+
}
|
6318 |
+
// #4391: in IE9, setting type can reset value for input[type=radio]
|
6319 |
+
// #6666: IE/Edge forces progress value down to 1 before setting a max
|
6320 |
+
/* istanbul ignore if */
|
6321 |
+
if ((isIE || isEdge) && attrs.value !== oldAttrs.value) {
|
6322 |
+
setAttr(elm, 'value', attrs.value);
|
6323 |
+
}
|
6324 |
+
for (key in oldAttrs) {
|
6325 |
+
if (isUndef(attrs[key])) {
|
6326 |
+
if (isXlink(key)) {
|
6327 |
+
elm.removeAttributeNS(xlinkNS, getXlinkProp(key));
|
6328 |
+
} else if (!isEnumeratedAttr(key)) {
|
6329 |
+
elm.removeAttribute(key);
|
6330 |
+
}
|
6331 |
+
}
|
6332 |
+
}
|
6333 |
+
}
|
6334 |
+
|
6335 |
+
function setAttr (el, key, value) {
|
6336 |
+
if (el.tagName.indexOf('-') > -1) {
|
6337 |
+
baseSetAttr(el, key, value);
|
6338 |
+
} else if (isBooleanAttr(key)) {
|
6339 |
+
// set attribute for blank value
|
6340 |
+
// e.g. <option disabled>Select one</option>
|
6341 |
+
if (isFalsyAttrValue(value)) {
|
6342 |
+
el.removeAttribute(key);
|
6343 |
+
} else {
|
6344 |
+
// technically allowfullscreen is a boolean attribute for <iframe>,
|
6345 |
+
// but Flash expects a value of "true" when used on <embed> tag
|
6346 |
+
value = key === 'allowfullscreen' && el.tagName === 'EMBED'
|
6347 |
+
? 'true'
|
6348 |
+
: key;
|
6349 |
+
el.setAttribute(key, value);
|
6350 |
+
}
|
6351 |
+
} else if (isEnumeratedAttr(key)) {
|
6352 |
+
el.setAttribute(key, isFalsyAttrValue(value) || value === 'false' ? 'false' : 'true');
|
6353 |
+
} else if (isXlink(key)) {
|
6354 |
+
if (isFalsyAttrValue(value)) {
|
6355 |
+
el.removeAttributeNS(xlinkNS, getXlinkProp(key));
|
6356 |
+
} else {
|
6357 |
+
el.setAttributeNS(xlinkNS, key, value);
|
6358 |
+
}
|
6359 |
+
} else {
|
6360 |
+
baseSetAttr(el, key, value);
|
6361 |
+
}
|
6362 |
+
}
|
6363 |
+
|
6364 |
+
function baseSetAttr (el, key, value) {
|
6365 |
+
if (isFalsyAttrValue(value)) {
|
6366 |
+
el.removeAttribute(key);
|
6367 |
+
} else {
|
6368 |
+
// #7138: IE10 & 11 fires input event when setting placeholder on
|
6369 |
+
// <textarea>... block the first input event and remove the blocker
|
6370 |
+
// immediately.
|
6371 |
+
/* istanbul ignore if */
|
6372 |
+
if (
|
6373 |
+
isIE && !isIE9 &&
|
6374 |
+
el.tagName === 'TEXTAREA' &&
|
6375 |
+
key === 'placeholder' && !el.__ieph
|
6376 |
+
) {
|
6377 |
+
var blocker = function (e) {
|
6378 |
+
e.stopImmediatePropagation();
|
6379 |
+
el.removeEventListener('input', blocker);
|
6380 |
+
};
|
6381 |
+
el.addEventListener('input', blocker);
|
6382 |
+
// $flow-disable-line
|
6383 |
+
el.__ieph = true; /* IE placeholder patched */
|
6384 |
+
}
|
6385 |
+
el.setAttribute(key, value);
|
6386 |
+
}
|
6387 |
+
}
|
6388 |
+
|
6389 |
+
var attrs = {
|
6390 |
+
create: updateAttrs,
|
6391 |
+
update: updateAttrs
|
6392 |
+
}
|
6393 |
+
|
6394 |
+
/* */
|
6395 |
+
|
6396 |
+
function updateClass (oldVnode, vnode) {
|
6397 |
+
var el = vnode.elm;
|
6398 |
+
var data = vnode.data;
|
6399 |
+
var oldData = oldVnode.data;
|
6400 |
+
if (
|
6401 |
+
isUndef(data.staticClass) &&
|
6402 |
+
isUndef(data.class) && (
|
6403 |
+
isUndef(oldData) || (
|
6404 |
+
isUndef(oldData.staticClass) &&
|
6405 |
+
isUndef(oldData.class)
|
6406 |
+
)
|
6407 |
+
)
|
6408 |
+
) {
|
6409 |
+
return
|
6410 |
+
}
|
6411 |
+
|
6412 |
+
var cls = genClassForVnode(vnode);
|
6413 |
+
|
6414 |
+
// handle transition classes
|
6415 |
+
var transitionClass = el._transitionClasses;
|
6416 |
+
if (isDef(transitionClass)) {
|
6417 |
+
cls = concat(cls, stringifyClass(transitionClass));
|
6418 |
+
}
|
6419 |
+
|
6420 |
+
// set the class
|
6421 |
+
if (cls !== el._prevClass) {
|
6422 |
+
el.setAttribute('class', cls);
|
6423 |
+
el._prevClass = cls;
|
6424 |
+
}
|
6425 |
+
}
|
6426 |
+
|
6427 |
+
var klass = {
|
6428 |
+
create: updateClass,
|
6429 |
+
update: updateClass
|
6430 |
+
}
|
6431 |
+
|
6432 |
+
/* */
|
6433 |
+
|
6434 |
+
var validDivisionCharRE = /[\w).+\-_$\]]/;
|
6435 |
+
|
6436 |
+
function parseFilters (exp) {
|
6437 |
+
var inSingle = false;
|
6438 |
+
var inDouble = false;
|
6439 |
+
var inTemplateString = false;
|
6440 |
+
var inRegex = false;
|
6441 |
+
var curly = 0;
|
6442 |
+
var square = 0;
|
6443 |
+
var paren = 0;
|
6444 |
+
var lastFilterIndex = 0;
|
6445 |
+
var c, prev, i, expression, filters;
|
6446 |
+
|
6447 |
+
for (i = 0; i < exp.length; i++) {
|
6448 |
+
prev = c;
|
6449 |
+
c = exp.charCodeAt(i);
|
6450 |
+
if (inSingle) {
|
6451 |
+
if (c === 0x27 && prev !== 0x5C) { inSingle = false; }
|
6452 |
+
} else if (inDouble) {
|
6453 |
+
if (c === 0x22 && prev !== 0x5C) { inDouble = false; }
|
6454 |
+
} else if (inTemplateString) {
|
6455 |
+
if (c === 0x60 && prev !== 0x5C) { inTemplateString = false; }
|
6456 |
+
} else if (inRegex) {
|
6457 |
+
if (c === 0x2f && prev !== 0x5C) { inRegex = false; }
|
6458 |
+
} else if (
|
6459 |
+
c === 0x7C && // pipe
|
6460 |
+
exp.charCodeAt(i + 1) !== 0x7C &&
|
6461 |
+
exp.charCodeAt(i - 1) !== 0x7C &&
|
6462 |
+
!curly && !square && !paren
|
6463 |
+
) {
|
6464 |
+
if (expression === undefined) {
|
6465 |
+
// first filter, end of expression
|
6466 |
+
lastFilterIndex = i + 1;
|
6467 |
+
expression = exp.slice(0, i).trim();
|
6468 |
+
} else {
|
6469 |
+
pushFilter();
|
6470 |
+
}
|
6471 |
+
} else {
|
6472 |
+
switch (c) {
|
6473 |
+
case 0x22: inDouble = true; break // "
|
6474 |
+
case 0x27: inSingle = true; break // '
|
6475 |
+
case 0x60: inTemplateString = true; break // `
|
6476 |
+
case 0x28: paren++; break // (
|
6477 |
+
case 0x29: paren--; break // )
|
6478 |
+
case 0x5B: square++; break // [
|
6479 |
+
case 0x5D: square--; break // ]
|
6480 |
+
case 0x7B: curly++; break // {
|
6481 |
+
case 0x7D: curly--; break // }
|
6482 |
+
}
|
6483 |
+
if (c === 0x2f) { // /
|
6484 |
+
var j = i - 1;
|
6485 |
+
var p = (void 0);
|
6486 |
+
// find first non-whitespace prev char
|
6487 |
+
for (; j >= 0; j--) {
|
6488 |
+
p = exp.charAt(j);
|
6489 |
+
if (p !== ' ') { break }
|
6490 |
+
}
|
6491 |
+
if (!p || !validDivisionCharRE.test(p)) {
|
6492 |
+
inRegex = true;
|
6493 |
+
}
|
6494 |
+
}
|
6495 |
+
}
|
6496 |
+
}
|
6497 |
+
|
6498 |
+
if (expression === undefined) {
|
6499 |
+
expression = exp.slice(0, i).trim();
|
6500 |
+
} else if (lastFilterIndex !== 0) {
|
6501 |
+
pushFilter();
|
6502 |
+
}
|
6503 |
+
|
6504 |
+
function pushFilter () {
|
6505 |
+
(filters || (filters = [])).push(exp.slice(lastFilterIndex, i).trim());
|
6506 |
+
lastFilterIndex = i + 1;
|
6507 |
+
}
|
6508 |
+
|
6509 |
+
if (filters) {
|
6510 |
+
for (i = 0; i < filters.length; i++) {
|
6511 |
+
expression = wrapFilter(expression, filters[i]);
|
6512 |
+
}
|
6513 |
+
}
|
6514 |
+
|
6515 |
+
return expression
|
6516 |
+
}
|
6517 |
+
|
6518 |
+
function wrapFilter (exp, filter) {
|
6519 |
+
var i = filter.indexOf('(');
|
6520 |
+
if (i < 0) {
|
6521 |
+
// _f: resolveFilter
|
6522 |
+
return ("_f(\"" + filter + "\")(" + exp + ")")
|
6523 |
+
} else {
|
6524 |
+
var name = filter.slice(0, i);
|
6525 |
+
var args = filter.slice(i + 1);
|
6526 |
+
return ("_f(\"" + name + "\")(" + exp + (args !== ')' ? ',' + args : args))
|
6527 |
+
}
|
6528 |
+
}
|
6529 |
+
|
6530 |
+
/* */
|
6531 |
+
|
6532 |
+
function baseWarn (msg) {
|
6533 |
+
console.error(("[Vue compiler]: " + msg));
|
6534 |
+
}
|
6535 |
+
|
6536 |
+
function pluckModuleFunction (
|
6537 |
+
modules,
|
6538 |
+
key
|
6539 |
+
) {
|
6540 |
+
return modules
|
6541 |
+
? modules.map(function (m) { return m[key]; }).filter(function (_) { return _; })
|
6542 |
+
: []
|
6543 |
+
}
|
6544 |
+
|
6545 |
+
function addProp (el, name, value) {
|
6546 |
+
(el.props || (el.props = [])).push({ name: name, value: value });
|
6547 |
+
el.plain = false;
|
6548 |
+
}
|
6549 |
+
|
6550 |
+
function addAttr (el, name, value) {
|
6551 |
+
(el.attrs || (el.attrs = [])).push({ name: name, value: value });
|
6552 |
+
el.plain = false;
|
6553 |
+
}
|
6554 |
+
|
6555 |
+
// add a raw attr (use this in preTransforms)
|
6556 |
+
function addRawAttr (el, name, value) {
|
6557 |
+
el.attrsMap[name] = value;
|
6558 |
+
el.attrsList.push({ name: name, value: value });
|
6559 |
+
}
|
6560 |
+
|
6561 |
+
function addDirective (
|
6562 |
+
el,
|
6563 |
+
name,
|
6564 |
+
rawName,
|
6565 |
+
value,
|
6566 |
+
arg,
|
6567 |
+
modifiers
|
6568 |
+
) {
|
6569 |
+
(el.directives || (el.directives = [])).push({ name: name, rawName: rawName, value: value, arg: arg, modifiers: modifiers });
|
6570 |
+
el.plain = false;
|
6571 |
+
}
|
6572 |
+
|
6573 |
+
function addHandler (
|
6574 |
+
el,
|
6575 |
+
name,
|
6576 |
+
value,
|
6577 |
+
modifiers,
|
6578 |
+
important,
|
6579 |
+
warn
|
6580 |
+
) {
|
6581 |
+
modifiers = modifiers || emptyObject;
|
6582 |
+
// warn prevent and passive modifier
|
6583 |
+
/* istanbul ignore if */
|
6584 |
+
if (
|
6585 |
+
"development" !== 'production' && warn &&
|
6586 |
+
modifiers.prevent && modifiers.passive
|
6587 |
+
) {
|
6588 |
+
warn(
|
6589 |
+
'passive and prevent can\'t be used together. ' +
|
6590 |
+
'Passive handler can\'t prevent default event.'
|
6591 |
+
);
|
6592 |
+
}
|
6593 |
+
|
6594 |
+
// check capture modifier
|
6595 |
+
if (modifiers.capture) {
|
6596 |
+
delete modifiers.capture;
|
6597 |
+
name = '!' + name; // mark the event as captured
|
6598 |
+
}
|
6599 |
+
if (modifiers.once) {
|
6600 |
+
delete modifiers.once;
|
6601 |
+
name = '~' + name; // mark the event as once
|
6602 |
+
}
|
6603 |
+
/* istanbul ignore if */
|
6604 |
+
if (modifiers.passive) {
|
6605 |
+
delete modifiers.passive;
|
6606 |
+
name = '&' + name; // mark the event as passive
|
6607 |
+
}
|
6608 |
+
|
6609 |
+
// normalize click.right and click.middle since they don't actually fire
|
6610 |
+
// this is technically browser-specific, but at least for now browsers are
|
6611 |
+
// the only target envs that have right/middle clicks.
|
6612 |
+
if (name === 'click') {
|
6613 |
+
if (modifiers.right) {
|
6614 |
+
name = 'contextmenu';
|
6615 |
+
delete modifiers.right;
|
6616 |
+
} else if (modifiers.middle) {
|
6617 |
+
name = 'mouseup';
|
6618 |
+
}
|
6619 |
+
}
|
6620 |
+
|
6621 |
+
var events;
|
6622 |
+
if (modifiers.native) {
|
6623 |
+
delete modifiers.native;
|
6624 |
+
events = el.nativeEvents || (el.nativeEvents = {});
|
6625 |
+
} else {
|
6626 |
+
events = el.events || (el.events = {});
|
6627 |
+
}
|
6628 |
+
|
6629 |
+
var newHandler = {
|
6630 |
+
value: value.trim()
|
6631 |
+
};
|
6632 |
+
if (modifiers !== emptyObject) {
|
6633 |
+
newHandler.modifiers = modifiers;
|
6634 |
+
}
|
6635 |
+
|
6636 |
+
var handlers = events[name];
|
6637 |
+
/* istanbul ignore if */
|
6638 |
+
if (Array.isArray(handlers)) {
|
6639 |
+
important ? handlers.unshift(newHandler) : handlers.push(newHandler);
|
6640 |
+
} else if (handlers) {
|
6641 |
+
events[name] = important ? [newHandler, handlers] : [handlers, newHandler];
|
6642 |
+
} else {
|
6643 |
+
events[name] = newHandler;
|
6644 |
+
}
|
6645 |
+
|
6646 |
+
el.plain = false;
|
6647 |
+
}
|
6648 |
+
|
6649 |
+
function getBindingAttr (
|
6650 |
+
el,
|
6651 |
+
name,
|
6652 |
+
getStatic
|
6653 |
+
) {
|
6654 |
+
var dynamicValue =
|
6655 |
+
getAndRemoveAttr(el, ':' + name) ||
|
6656 |
+
getAndRemoveAttr(el, 'v-bind:' + name);
|
6657 |
+
if (dynamicValue != null) {
|
6658 |
+
return parseFilters(dynamicValue)
|
6659 |
+
} else if (getStatic !== false) {
|
6660 |
+
var staticValue = getAndRemoveAttr(el, name);
|
6661 |
+
if (staticValue != null) {
|
6662 |
+
return JSON.stringify(staticValue)
|
6663 |
+
}
|
6664 |
+
}
|
6665 |
+
}
|
6666 |
+
|
6667 |
+
// note: this only removes the attr from the Array (attrsList) so that it
|
6668 |
+
// doesn't get processed by processAttrs.
|
6669 |
+
// By default it does NOT remove it from the map (attrsMap) because the map is
|
6670 |
+
// needed during codegen.
|
6671 |
+
function getAndRemoveAttr (
|
6672 |
+
el,
|
6673 |
+
name,
|
6674 |
+
removeFromMap
|
6675 |
+
) {
|
6676 |
+
var val;
|
6677 |
+
if ((val = el.attrsMap[name]) != null) {
|
6678 |
+
var list = el.attrsList;
|
6679 |
+
for (var i = 0, l = list.length; i < l; i++) {
|
6680 |
+
if (list[i].name === name) {
|
6681 |
+
list.splice(i, 1);
|
6682 |
+
break
|
6683 |
+
}
|
6684 |
+
}
|
6685 |
+
}
|
6686 |
+
if (removeFromMap) {
|
6687 |
+
delete el.attrsMap[name];
|
6688 |
+
}
|
6689 |
+
return val
|
6690 |
+
}
|
6691 |
+
|
6692 |
+
/* */
|
6693 |
+
|
6694 |
+
/**
|
6695 |
+
* Cross-platform code generation for component v-model
|
6696 |
+
*/
|
6697 |
+
function genComponentModel (
|
6698 |
+
el,
|
6699 |
+
value,
|
6700 |
+
modifiers
|
6701 |
+
) {
|
6702 |
+
var ref = modifiers || {};
|
6703 |
+
var number = ref.number;
|
6704 |
+
var trim = ref.trim;
|
6705 |
+
|
6706 |
+
var baseValueExpression = '$$v';
|
6707 |
+
var valueExpression = baseValueExpression;
|
6708 |
+
if (trim) {
|
6709 |
+
valueExpression =
|
6710 |
+
"(typeof " + baseValueExpression + " === 'string'" +
|
6711 |
+
"? " + baseValueExpression + ".trim()" +
|
6712 |
+
": " + baseValueExpression + ")";
|
6713 |
+
}
|
6714 |
+
if (number) {
|
6715 |
+
valueExpression = "_n(" + valueExpression + ")";
|
6716 |
+
}
|
6717 |
+
var assignment = genAssignmentCode(value, valueExpression);
|
6718 |
+
|
6719 |
+
el.model = {
|
6720 |
+
value: ("(" + value + ")"),
|
6721 |
+
expression: ("\"" + value + "\""),
|
6722 |
+
callback: ("function (" + baseValueExpression + ") {" + assignment + "}")
|
6723 |
+
};
|
6724 |
+
}
|
6725 |
+
|
6726 |
+
/**
|
6727 |
+
* Cross-platform codegen helper for generating v-model value assignment code.
|
6728 |
+
*/
|
6729 |
+
function genAssignmentCode (
|
6730 |
+
value,
|
6731 |
+
assignment
|
6732 |
+
) {
|
6733 |
+
var res = parseModel(value);
|
6734 |
+
if (res.key === null) {
|
6735 |
+
return (value + "=" + assignment)
|
6736 |
+
} else {
|
6737 |
+
return ("$set(" + (res.exp) + ", " + (res.key) + ", " + assignment + ")")
|
6738 |
+
}
|
6739 |
+
}
|
6740 |
+
|
6741 |
+
/**
|
6742 |
+
* Parse a v-model expression into a base path and a final key segment.
|
6743 |
+
* Handles both dot-path and possible square brackets.
|
6744 |
+
*
|
6745 |
+
* Possible cases:
|
6746 |
+
*
|
6747 |
+
* - test
|
6748 |
+
* - test[key]
|
6749 |
+
* - test[test1[key]]
|
6750 |
+
* - test["a"][key]
|
6751 |
+
* - xxx.test[a[a].test1[key]]
|
6752 |
+
* - test.xxx.a["asa"][test1[key]]
|
6753 |
+
*
|
6754 |
+
*/
|
6755 |
+
|
6756 |
+
var len;
|
6757 |
+
var str;
|
6758 |
+
var chr;
|
6759 |
+
var index$1;
|
6760 |
+
var expressionPos;
|
6761 |
+
var expressionEndPos;
|
6762 |
+
|
6763 |
+
|
6764 |
+
|
6765 |
+
function parseModel (val) {
|
6766 |
+
// Fix https://github.com/vuejs/vue/pull/7730
|
6767 |
+
// allow v-model="obj.val " (trailing whitespace)
|
6768 |
+
val = val.trim();
|
6769 |
+
len = val.length;
|
6770 |
+
|
6771 |
+
if (val.indexOf('[') < 0 || val.lastIndexOf(']') < len - 1) {
|
6772 |
+
index$1 = val.lastIndexOf('.');
|
6773 |
+
if (index$1 > -1) {
|
6774 |
+
return {
|
6775 |
+
exp: val.slice(0, index$1),
|
6776 |
+
key: '"' + val.slice(index$1 + 1) + '"'
|
6777 |
+
}
|
6778 |
+
} else {
|
6779 |
+
return {
|
6780 |
+
exp: val,
|
6781 |
+
key: null
|
6782 |
+
}
|
6783 |
+
}
|
6784 |
+
}
|
6785 |
+
|
6786 |
+
str = val;
|
6787 |
+
index$1 = expressionPos = expressionEndPos = 0;
|
6788 |
+
|
6789 |
+
while (!eof()) {
|
6790 |
+
chr = next();
|
6791 |
+
/* istanbul ignore if */
|
6792 |
+
if (isStringStart(chr)) {
|
6793 |
+
parseString(chr);
|
6794 |
+
} else if (chr === 0x5B) {
|
6795 |
+
parseBracket(chr);
|
6796 |
+
}
|
6797 |
+
}
|
6798 |
+
|
6799 |
+
return {
|
6800 |
+
exp: val.slice(0, expressionPos),
|
6801 |
+
key: val.slice(expressionPos + 1, expressionEndPos)
|
6802 |
+
}
|
6803 |
+
}
|
6804 |
+
|
6805 |
+
function next () {
|
6806 |
+
return str.charCodeAt(++index$1)
|
6807 |
+
}
|
6808 |
+
|
6809 |
+
function eof () {
|
6810 |
+
return index$1 >= len
|
6811 |
+
}
|
6812 |
+
|
6813 |
+
function isStringStart (chr) {
|
6814 |
+
return chr === 0x22 || chr === 0x27
|
6815 |
+
}
|
6816 |
+
|
6817 |
+
function parseBracket (chr) {
|
6818 |
+
var inBracket = 1;
|
6819 |
+
expressionPos = index$1;
|
6820 |
+
while (!eof()) {
|
6821 |
+
chr = next();
|
6822 |
+
if (isStringStart(chr)) {
|
6823 |
+
parseString(chr);
|
6824 |
+
continue
|
6825 |
+
}
|
6826 |
+
if (chr === 0x5B) { inBracket++; }
|
6827 |
+
if (chr === 0x5D) { inBracket--; }
|
6828 |
+
if (inBracket === 0) {
|
6829 |
+
expressionEndPos = index$1;
|
6830 |
+
break
|
6831 |
+
}
|
6832 |
+
}
|
6833 |
+
}
|
6834 |
+
|
6835 |
+
function parseString (chr) {
|
6836 |
+
var stringQuote = chr;
|
6837 |
+
while (!eof()) {
|
6838 |
+
chr = next();
|
6839 |
+
if (chr === stringQuote) {
|
6840 |
+
break
|
6841 |
+
}
|
6842 |
+
}
|
6843 |
+
}
|
6844 |
+
|
6845 |
+
/* */
|
6846 |
+
|
6847 |
+
var warn$1;
|
6848 |
+
|
6849 |
+
// in some cases, the event used has to be determined at runtime
|
6850 |
+
// so we used some reserved tokens during compile.
|
6851 |
+
var RANGE_TOKEN = '__r';
|
6852 |
+
var CHECKBOX_RADIO_TOKEN = '__c';
|
6853 |
+
|
6854 |
+
function model (
|
6855 |
+
el,
|
6856 |
+
dir,
|
6857 |
+
_warn
|
6858 |
+
) {
|
6859 |
+
warn$1 = _warn;
|
6860 |
+
var value = dir.value;
|
6861 |
+
var modifiers = dir.modifiers;
|
6862 |
+
var tag = el.tag;
|
6863 |
+
var type = el.attrsMap.type;
|
6864 |
+
|
6865 |
+
{
|
6866 |
+
// inputs with type="file" are read only and setting the input's
|
6867 |
+
// value will throw an error.
|
6868 |
+
if (tag === 'input' && type === 'file') {
|
6869 |
+
warn$1(
|
6870 |
+
"<" + (el.tag) + " v-model=\"" + value + "\" type=\"file\">:\n" +
|
6871 |
+
"File inputs are read only. Use a v-on:change listener instead."
|
6872 |
+
);
|
6873 |
+
}
|
6874 |
+
}
|
6875 |
+
|
6876 |
+
if (el.component) {
|
6877 |
+
genComponentModel(el, value, modifiers);
|
6878 |
+
// component v-model doesn't need extra runtime
|
6879 |
+
return false
|
6880 |
+
} else if (tag === 'select') {
|
6881 |
+
genSelect(el, value, modifiers);
|
6882 |
+
} else if (tag === 'input' && type === 'checkbox') {
|
6883 |
+
genCheckboxModel(el, value, modifiers);
|
6884 |
+
} else if (tag === 'input' && type === 'radio') {
|
6885 |
+
genRadioModel(el, value, modifiers);
|
6886 |
+
} else if (tag === 'input' || tag === 'textarea') {
|
6887 |
+
genDefaultModel(el, value, modifiers);
|
6888 |
+
} else if (!config.isReservedTag(tag)) {
|
6889 |
+
genComponentModel(el, value, modifiers);
|
6890 |
+
// component v-model doesn't need extra runtime
|
6891 |
+
return false
|
6892 |
+
} else {
|
6893 |
+
warn$1(
|
6894 |
+
"<" + (el.tag) + " v-model=\"" + value + "\">: " +
|
6895 |
+
"v-model is not supported on this element type. " +
|
6896 |
+
'If you are working with contenteditable, it\'s recommended to ' +
|
6897 |
+
'wrap a library dedicated for that purpose inside a custom component.'
|
6898 |
+
);
|
6899 |
+
}
|
6900 |
+
|
6901 |
+
// ensure runtime directive metadata
|
6902 |
+
return true
|
6903 |
+
}
|
6904 |
+
|
6905 |
+
function genCheckboxModel (
|
6906 |
+
el,
|
6907 |
+
value,
|
6908 |
+
modifiers
|
6909 |
+
) {
|
6910 |
+
var number = modifiers && modifiers.number;
|
6911 |
+
var valueBinding = getBindingAttr(el, 'value') || 'null';
|
6912 |
+
var trueValueBinding = getBindingAttr(el, 'true-value') || 'true';
|
6913 |
+
var falseValueBinding = getBindingAttr(el, 'false-value') || 'false';
|
6914 |
+
addProp(el, 'checked',
|
6915 |
+
"Array.isArray(" + value + ")" +
|
6916 |
+
"?_i(" + value + "," + valueBinding + ")>-1" + (
|
6917 |
+
trueValueBinding === 'true'
|
6918 |
+
? (":(" + value + ")")
|
6919 |
+
: (":_q(" + value + "," + trueValueBinding + ")")
|
6920 |
+
)
|
6921 |
+
);
|
6922 |
+
addHandler(el, 'change',
|
6923 |
+
"var $$a=" + value + "," +
|
6924 |
+
'$$el=$event.target,' +
|
6925 |
+
"$$c=$$el.checked?(" + trueValueBinding + "):(" + falseValueBinding + ");" +
|
6926 |
+
'if(Array.isArray($$a)){' +
|
6927 |
+
"var $$v=" + (number ? '_n(' + valueBinding + ')' : valueBinding) + "," +
|
6928 |
+
'$$i=_i($$a,$$v);' +
|
6929 |
+
"if($$el.checked){$$i<0&&(" + (genAssignmentCode(value, '$$a.concat([$$v])')) + ")}" +
|
6930 |
+
"else{$$i>-1&&(" + (genAssignmentCode(value, '$$a.slice(0,$$i).concat($$a.slice($$i+1))')) + ")}" +
|
6931 |
+
"}else{" + (genAssignmentCode(value, '$$c')) + "}",
|
6932 |
+
null, true
|
6933 |
+
);
|
6934 |
+
}
|
6935 |
+
|
6936 |
+
function genRadioModel (
|
6937 |
+
el,
|
6938 |
+
value,
|
6939 |
+
modifiers
|
6940 |
+
) {
|
6941 |
+
var number = modifiers && modifiers.number;
|
6942 |
+
var valueBinding = getBindingAttr(el, 'value') || 'null';
|
6943 |
+
valueBinding = number ? ("_n(" + valueBinding + ")") : valueBinding;
|
6944 |
+
addProp(el, 'checked', ("_q(" + value + "," + valueBinding + ")"));
|
6945 |
+
addHandler(el, 'change', genAssignmentCode(value, valueBinding), null, true);
|
6946 |
+
}
|
6947 |
+
|
6948 |
+
function genSelect (
|
6949 |
+
el,
|
6950 |
+
value,
|
6951 |
+
modifiers
|
6952 |
+
) {
|
6953 |
+
var number = modifiers && modifiers.number;
|
6954 |
+
var selectedVal = "Array.prototype.filter" +
|
6955 |
+
".call($event.target.options,function(o){return o.selected})" +
|
6956 |
+
".map(function(o){var val = \"_value\" in o ? o._value : o.value;" +
|
6957 |
+
"return " + (number ? '_n(val)' : 'val') + "})";
|
6958 |
+
|
6959 |
+
var assignment = '$event.target.multiple ? $$selectedVal : $$selectedVal[0]';
|
6960 |
+
var code = "var $$selectedVal = " + selectedVal + ";";
|
6961 |
+
code = code + " " + (genAssignmentCode(value, assignment));
|
6962 |
+
addHandler(el, 'change', code, null, true);
|
6963 |
+
}
|
6964 |
+
|
6965 |
+
function genDefaultModel (
|
6966 |
+
el,
|
6967 |
+
value,
|
6968 |
+
modifiers
|
6969 |
+
) {
|
6970 |
+
var type = el.attrsMap.type;
|
6971 |
+
|
6972 |
+
// warn if v-bind:value conflicts with v-model
|
6973 |
+
// except for inputs with v-bind:type
|
6974 |
+
{
|
6975 |
+
var value$1 = el.attrsMap['v-bind:value'] || el.attrsMap[':value'];
|
6976 |
+
var typeBinding = el.attrsMap['v-bind:type'] || el.attrsMap[':type'];
|
6977 |
+
if (value$1 && !typeBinding) {
|
6978 |
+
var binding = el.attrsMap['v-bind:value'] ? 'v-bind:value' : ':value';
|
6979 |
+
warn$1(
|
6980 |
+
binding + "=\"" + value$1 + "\" conflicts with v-model on the same element " +
|
6981 |
+
'because the latter already expands to a value binding internally'
|
6982 |
+
);
|
6983 |
+
}
|
6984 |
+
}
|
6985 |
+
|
6986 |
+
var ref = modifiers || {};
|
6987 |
+
var lazy = ref.lazy;
|
6988 |
+
var number = ref.number;
|
6989 |
+
var trim = ref.trim;
|
6990 |
+
var needCompositionGuard = !lazy && type !== 'range';
|
6991 |
+
var event = lazy
|
6992 |
+
? 'change'
|
6993 |
+
: type === 'range'
|
6994 |
+
? RANGE_TOKEN
|
6995 |
+
: 'input';
|
6996 |
+
|
6997 |
+
var valueExpression = '$event.target.value';
|
6998 |
+
if (trim) {
|
6999 |
+
valueExpression = "$event.target.value.trim()";
|
7000 |
+
}
|
7001 |
+
if (number) {
|
7002 |
+
valueExpression = "_n(" + valueExpression + ")";
|
7003 |
+
}
|
7004 |
+
|
7005 |
+
var code = genAssignmentCode(value, valueExpression);
|
7006 |
+
if (needCompositionGuard) {
|
7007 |
+
code = "if($event.target.composing)return;" + code;
|
7008 |
+
}
|
7009 |
+
|
7010 |
+
addProp(el, 'value', ("(" + value + ")"));
|
7011 |
+
addHandler(el, event, code, null, true);
|
7012 |
+
if (trim || number) {
|
7013 |
+
addHandler(el, 'blur', '$forceUpdate()');
|
7014 |
+
}
|
7015 |
+
}
|
7016 |
+
|
7017 |
+
/* */
|
7018 |
+
|
7019 |
+
// normalize v-model event tokens that can only be determined at runtime.
|
7020 |
+
// it's important to place the event as the first in the array because
|
7021 |
+
// the whole point is ensuring the v-model callback gets called before
|
7022 |
+
// user-attached handlers.
|
7023 |
+
function normalizeEvents (on) {
|
7024 |
+
/* istanbul ignore if */
|
7025 |
+
if (isDef(on[RANGE_TOKEN])) {
|
7026 |
+
// IE input[type=range] only supports `change` event
|
7027 |
+
var event = isIE ? 'change' : 'input';
|
7028 |
+
on[event] = [].concat(on[RANGE_TOKEN], on[event] || []);
|
7029 |
+
delete on[RANGE_TOKEN];
|
7030 |
+
}
|
7031 |
+
// This was originally intended to fix #4521 but no longer necessary
|
7032 |
+
// after 2.5. Keeping it for backwards compat with generated code from < 2.4
|
7033 |
+
/* istanbul ignore if */
|
7034 |
+
if (isDef(on[CHECKBOX_RADIO_TOKEN])) {
|
7035 |
+
on.change = [].concat(on[CHECKBOX_RADIO_TOKEN], on.change || []);
|
7036 |
+
delete on[CHECKBOX_RADIO_TOKEN];
|
7037 |
+
}
|
7038 |
+
}
|
7039 |
+
|
7040 |
+
var target$1;
|
7041 |
+
|
7042 |
+
function createOnceHandler (handler, event, capture) {
|
7043 |
+
var _target = target$1; // save current target element in closure
|
7044 |
+
return function onceHandler () {
|
7045 |
+
var res = handler.apply(null, arguments);
|
7046 |
+
if (res !== null) {
|
7047 |
+
remove$2(event, onceHandler, capture, _target);
|
7048 |
+
}
|
7049 |
+
}
|
7050 |
+
}
|
7051 |
+
|
7052 |
+
function add$1 (
|
7053 |
+
event,
|
7054 |
+
handler,
|
7055 |
+
once$$1,
|
7056 |
+
capture,
|
7057 |
+
passive
|
7058 |
+
) {
|
7059 |
+
handler = withMacroTask(handler);
|
7060 |
+
if (once$$1) { handler = createOnceHandler(handler, event, capture); }
|
7061 |
+
target$1.addEventListener(
|
7062 |
+
event,
|
7063 |
+
handler,
|
7064 |
+
supportsPassive
|
7065 |
+
? { capture: capture, passive: passive }
|
7066 |
+
: capture
|
7067 |
+
);
|
7068 |
+
}
|
7069 |
+
|
7070 |
+
function remove$2 (
|
7071 |
+
event,
|
7072 |
+
handler,
|
7073 |
+
capture,
|
7074 |
+
_target
|
7075 |
+
) {
|
7076 |
+
(_target || target$1).removeEventListener(
|
7077 |
+
event,
|
7078 |
+
handler._withTask || handler,
|
7079 |
+
capture
|
7080 |
+
);
|
7081 |
+
}
|
7082 |
+
|
7083 |
+
function updateDOMListeners (oldVnode, vnode) {
|
7084 |
+
if (isUndef(oldVnode.data.on) && isUndef(vnode.data.on)) {
|
7085 |
+
return
|
7086 |
+
}
|
7087 |
+
var on = vnode.data.on || {};
|
7088 |
+
var oldOn = oldVnode.data.on || {};
|
7089 |
+
target$1 = vnode.elm;
|
7090 |
+
normalizeEvents(on);
|
7091 |
+
updateListeners(on, oldOn, add$1, remove$2, vnode.context);
|
7092 |
+
target$1 = undefined;
|
7093 |
+
}
|
7094 |
+
|
7095 |
+
var events = {
|
7096 |
+
create: updateDOMListeners,
|
7097 |
+
update: updateDOMListeners
|
7098 |
+
}
|
7099 |
+
|
7100 |
+
/* */
|
7101 |
+
|
7102 |
+
function updateDOMProps (oldVnode, vnode) {
|
7103 |
+
if (isUndef(oldVnode.data.domProps) && isUndef(vnode.data.domProps)) {
|
7104 |
+
return
|
7105 |
+
}
|
7106 |
+
var key, cur;
|
7107 |
+
var elm = vnode.elm;
|
7108 |
+
var oldProps = oldVnode.data.domProps || {};
|
7109 |
+
var props = vnode.data.domProps || {};
|
7110 |
+
// clone observed objects, as the user probably wants to mutate it
|
7111 |
+
if (isDef(props.__ob__)) {
|
7112 |
+
props = vnode.data.domProps = extend({}, props);
|
7113 |
+
}
|
7114 |
+
|
7115 |
+
for (key in oldProps) {
|
7116 |
+
if (isUndef(props[key])) {
|
7117 |
+
elm[key] = '';
|
7118 |
+
}
|
7119 |
+
}
|
7120 |
+
for (key in props) {
|
7121 |
+
cur = props[key];
|
7122 |
+
// ignore children if the node has textContent or innerHTML,
|
7123 |
+
// as these will throw away existing DOM nodes and cause removal errors
|
7124 |
+
// on subsequent patches (#3360)
|
7125 |
+
if (key === 'textContent' || key === 'innerHTML') {
|
7126 |
+
if (vnode.children) { vnode.children.length = 0; }
|
7127 |
+
if (cur === oldProps[key]) { continue }
|
7128 |
+
// #6601 work around Chrome version <= 55 bug where single textNode
|
7129 |
+
// replaced by innerHTML/textContent retains its parentNode property
|
7130 |
+
if (elm.childNodes.length === 1) {
|
7131 |
+
elm.removeChild(elm.childNodes[0]);
|
7132 |
+
}
|
7133 |
+
}
|
7134 |
+
|
7135 |
+
if (key === 'value') {
|
7136 |
+
// store value as _value as well since
|
7137 |
+
// non-string values will be stringified
|
7138 |
+
elm._value = cur;
|
7139 |
+
// avoid resetting cursor position when value is the same
|
7140 |
+
var strCur = isUndef(cur) ? '' : String(cur);
|
7141 |
+
if (shouldUpdateValue(elm, strCur)) {
|
7142 |
+
elm.value = strCur;
|
7143 |
+
}
|
7144 |
+
} else {
|
7145 |
+
elm[key] = cur;
|
7146 |
+
}
|
7147 |
+
}
|
7148 |
+
}
|
7149 |
+
|
7150 |
+
// check platforms/web/util/attrs.js acceptValue
|
7151 |
+
|
7152 |
+
|
7153 |
+
function shouldUpdateValue (elm, checkVal) {
|
7154 |
+
return (!elm.composing && (
|
7155 |
+
elm.tagName === 'OPTION' ||
|
7156 |
+
isNotInFocusAndDirty(elm, checkVal) ||
|
7157 |
+
isDirtyWithModifiers(elm, checkVal)
|
7158 |
+
))
|
7159 |
+
}
|
7160 |
+
|
7161 |
+
function isNotInFocusAndDirty (elm, checkVal) {
|
7162 |
+
// return true when textbox (.number and .trim) loses focus and its value is
|
7163 |
+
// not equal to the updated value
|
7164 |
+
var notInFocus = true;
|
7165 |
+
// #6157
|
7166 |
+
// work around IE bug when accessing document.activeElement in an iframe
|
7167 |
+
try { notInFocus = document.activeElement !== elm; } catch (e) {}
|
7168 |
+
return notInFocus && elm.value !== checkVal
|
7169 |
+
}
|
7170 |
+
|
7171 |
+
function isDirtyWithModifiers (elm, newVal) {
|
7172 |
+
var value = elm.value;
|
7173 |
+
var modifiers = elm._vModifiers; // injected by v-model runtime
|
7174 |
+
if (isDef(modifiers)) {
|
7175 |
+
if (modifiers.lazy) {
|
7176 |
+
// inputs with lazy should only be updated when not in focus
|
7177 |
+
return false
|
7178 |
+
}
|
7179 |
+
if (modifiers.number) {
|
7180 |
+
return toNumber(value) !== toNumber(newVal)
|
7181 |
+
}
|
7182 |
+
if (modifiers.trim) {
|
7183 |
+
return value.trim() !== newVal.trim()
|
7184 |
+
}
|
7185 |
+
}
|
7186 |
+
return value !== newVal
|
7187 |
+
}
|
7188 |
+
|
7189 |
+
var domProps = {
|
7190 |
+
create: updateDOMProps,
|
7191 |
+
update: updateDOMProps
|
7192 |
+
}
|
7193 |
+
|
7194 |
+
/* */
|
7195 |
+
|
7196 |
+
var parseStyleText = cached(function (cssText) {
|
7197 |
+
var res = {};
|
7198 |
+
var listDelimiter = /;(?![^(]*\))/g;
|
7199 |
+
var propertyDelimiter = /:(.+)/;
|
7200 |
+
cssText.split(listDelimiter).forEach(function (item) {
|
7201 |
+
if (item) {
|
7202 |
+
var tmp = item.split(propertyDelimiter);
|
7203 |
+
tmp.length > 1 && (res[tmp[0].trim()] = tmp[1].trim());
|
7204 |
+
}
|
7205 |
+
});
|
7206 |
+
return res
|
7207 |
+
});
|
7208 |
+
|
7209 |
+
// merge static and dynamic style data on the same vnode
|
7210 |
+
function normalizeStyleData (data) {
|
7211 |
+
var style = normalizeStyleBinding(data.style);
|
7212 |
+
// static style is pre-processed into an object during compilation
|
7213 |
+
// and is always a fresh object, so it's safe to merge into it
|
7214 |
+
return data.staticStyle
|
7215 |
+
? extend(data.staticStyle, style)
|
7216 |
+
: style
|
7217 |
+
}
|
7218 |
+
|
7219 |
+
// normalize possible array / string values into Object
|
7220 |
+
function normalizeStyleBinding (bindingStyle) {
|
7221 |
+
if (Array.isArray(bindingStyle)) {
|
7222 |
+
return toObject(bindingStyle)
|
7223 |
+
}
|
7224 |
+
if (typeof bindingStyle === 'string') {
|
7225 |
+
return parseStyleText(bindingStyle)
|
7226 |
+
}
|
7227 |
+
return bindingStyle
|
7228 |
+
}
|
7229 |
+
|
7230 |
+
/**
|
7231 |
+
* parent component style should be after child's
|
7232 |
+
* so that parent component's style could override it
|
7233 |
+
*/
|
7234 |
+
function getStyle (vnode, checkChild) {
|
7235 |
+
var res = {};
|
7236 |
+
var styleData;
|
7237 |
+
|
7238 |
+
if (checkChild) {
|
7239 |
+
var childNode = vnode;
|
7240 |
+
while (childNode.componentInstance) {
|
7241 |
+
childNode = childNode.componentInstance._vnode;
|
7242 |
+
if (
|
7243 |
+
childNode && childNode.data &&
|
7244 |
+
(styleData = normalizeStyleData(childNode.data))
|
7245 |
+
) {
|
7246 |
+
extend(res, styleData);
|
7247 |
+
}
|
7248 |
+
}
|
7249 |
+
}
|
7250 |
+
|
7251 |
+
if ((styleData = normalizeStyleData(vnode.data))) {
|
7252 |
+
extend(res, styleData);
|
7253 |
+
}
|
7254 |
+
|
7255 |
+
var parentNode = vnode;
|
7256 |
+
while ((parentNode = parentNode.parent)) {
|
7257 |
+
if (parentNode.data && (styleData = normalizeStyleData(parentNode.data))) {
|
7258 |
+
extend(res, styleData);
|
7259 |
+
}
|
7260 |
+
}
|
7261 |
+
return res
|
7262 |
+
}
|
7263 |
+
|
7264 |
+
/* */
|
7265 |
+
|
7266 |
+
var cssVarRE = /^--/;
|
7267 |
+
var importantRE = /\s*!important$/;
|
7268 |
+
var setProp = function (el, name, val) {
|
7269 |
+
/* istanbul ignore if */
|
7270 |
+
if (cssVarRE.test(name)) {
|
7271 |
+
el.style.setProperty(name, val);
|
7272 |
+
} else if (importantRE.test(val)) {
|
7273 |
+
el.style.setProperty(name, val.replace(importantRE, ''), 'important');
|
7274 |
+
} else {
|
7275 |
+
var normalizedName = normalize(name);
|
7276 |
+
if (Array.isArray(val)) {
|
7277 |
+
// Support values array created by autoprefixer, e.g.
|
7278 |
+
// {display: ["-webkit-box", "-ms-flexbox", "flex"]}
|
7279 |
+
// Set them one by one, and the browser will only set those it can recognize
|
7280 |
+
for (var i = 0, len = val.length; i < len; i++) {
|
7281 |
+
el.style[normalizedName] = val[i];
|
7282 |
+
}
|
7283 |
+
} else {
|
7284 |
+
el.style[normalizedName] = val;
|
7285 |
+
}
|
7286 |
+
}
|
7287 |
+
};
|
7288 |
+
|
7289 |
+
var vendorNames = ['Webkit', 'Moz', 'ms'];
|
7290 |
+
|
7291 |
+
var emptyStyle;
|
7292 |
+
var normalize = cached(function (prop) {
|
7293 |
+
emptyStyle = emptyStyle || document.createElement('div').style;
|
7294 |
+
prop = camelize(prop);
|
7295 |
+
if (prop !== 'filter' && (prop in emptyStyle)) {
|
7296 |
+
return prop
|
7297 |
+
}
|
7298 |
+
var capName = prop.charAt(0).toUpperCase() + prop.slice(1);
|
7299 |
+
for (var i = 0; i < vendorNames.length; i++) {
|
7300 |
+
var name = vendorNames[i] + capName;
|
7301 |
+
if (name in emptyStyle) {
|
7302 |
+
return name
|
7303 |
+
}
|
7304 |
+
}
|
7305 |
+
});
|
7306 |
+
|
7307 |
+
function updateStyle (oldVnode, vnode) {
|
7308 |
+
var data = vnode.data;
|
7309 |
+
var oldData = oldVnode.data;
|
7310 |
+
|
7311 |
+
if (isUndef(data.staticStyle) && isUndef(data.style) &&
|
7312 |
+
isUndef(oldData.staticStyle) && isUndef(oldData.style)
|
7313 |
+
) {
|
7314 |
+
return
|
7315 |
+
}
|
7316 |
+
|
7317 |
+
var cur, name;
|
7318 |
+
var el = vnode.elm;
|
7319 |
+
var oldStaticStyle = oldData.staticStyle;
|
7320 |
+
var oldStyleBinding = oldData.normalizedStyle || oldData.style || {};
|
7321 |
+
|
7322 |
+
// if static style exists, stylebinding already merged into it when doing normalizeStyleData
|
7323 |
+
var oldStyle = oldStaticStyle || oldStyleBinding;
|
7324 |
+
|
7325 |
+
var style = normalizeStyleBinding(vnode.data.style) || {};
|
7326 |
+
|
7327 |
+
// store normalized style under a different key for next diff
|
7328 |
+
// make sure to clone it if it's reactive, since the user likely wants
|
7329 |
+
// to mutate it.
|
7330 |
+
vnode.data.normalizedStyle = isDef(style.__ob__)
|
7331 |
+
? extend({}, style)
|
7332 |
+
: style;
|
7333 |
+
|
7334 |
+
var newStyle = getStyle(vnode, true);
|
7335 |
+
|
7336 |
+
for (name in oldStyle) {
|
7337 |
+
if (isUndef(newStyle[name])) {
|
7338 |
+
setProp(el, name, '');
|
7339 |
+
}
|
7340 |
+
}
|
7341 |
+
for (name in newStyle) {
|
7342 |
+
cur = newStyle[name];
|
7343 |
+
if (cur !== oldStyle[name]) {
|
7344 |
+
// ie9 setting to null has no effect, must use empty string
|
7345 |
+
setProp(el, name, cur == null ? '' : cur);
|
7346 |
+
}
|
7347 |
+
}
|
7348 |
+
}
|
7349 |
+
|
7350 |
+
var style = {
|
7351 |
+
create: updateStyle,
|
7352 |
+
update: updateStyle
|
7353 |
+
}
|
7354 |
+
|
7355 |
+
/* */
|
7356 |
+
|
7357 |
+
/**
|
7358 |
+
* Add class with compatibility for SVG since classList is not supported on
|
7359 |
+
* SVG elements in IE
|
7360 |
+
*/
|
7361 |
+
function addClass (el, cls) {
|
7362 |
+
/* istanbul ignore if */
|
7363 |
+
if (!cls || !(cls = cls.trim())) {
|
7364 |
+
return
|
7365 |
+
}
|
7366 |
+
|
7367 |
+
/* istanbul ignore else */
|
7368 |
+
if (el.classList) {
|
7369 |
+
if (cls.indexOf(' ') > -1) {
|
7370 |
+
cls.split(/\s+/).forEach(function (c) { return el.classList.add(c); });
|
7371 |
+
} else {
|
7372 |
+
el.classList.add(cls);
|
7373 |
+
}
|
7374 |
+
} else {
|
7375 |
+
var cur = " " + (el.getAttribute('class') || '') + " ";
|
7376 |
+
if (cur.indexOf(' ' + cls + ' ') < 0) {
|
7377 |
+
el.setAttribute('class', (cur + cls).trim());
|
7378 |
+
}
|
7379 |
+
}
|
7380 |
+
}
|
7381 |
+
|
7382 |
+
/**
|
7383 |
+
* Remove class with compatibility for SVG since classList is not supported on
|
7384 |
+
* SVG elements in IE
|
7385 |
+
*/
|
7386 |
+
function removeClass (el, cls) {
|
7387 |
+
/* istanbul ignore if */
|
7388 |
+
if (!cls || !(cls = cls.trim())) {
|
7389 |
+
return
|
7390 |
+
}
|
7391 |
+
|
7392 |
+
/* istanbul ignore else */
|
7393 |
+
if (el.classList) {
|
7394 |
+
if (cls.indexOf(' ') > -1) {
|
7395 |
+
cls.split(/\s+/).forEach(function (c) { return el.classList.remove(c); });
|
7396 |
+
} else {
|
7397 |
+
el.classList.remove(cls);
|
7398 |
+
}
|
7399 |
+
if (!el.classList.length) {
|
7400 |
+
el.removeAttribute('class');
|
7401 |
+
}
|
7402 |
+
} else {
|
7403 |
+
var cur = " " + (el.getAttribute('class') || '') + " ";
|
7404 |
+
var tar = ' ' + cls + ' ';
|
7405 |
+
while (cur.indexOf(tar) >= 0) {
|
7406 |
+
cur = cur.replace(tar, ' ');
|
7407 |
+
}
|
7408 |
+
cur = cur.trim();
|
7409 |
+
if (cur) {
|
7410 |
+
el.setAttribute('class', cur);
|
7411 |
+
} else {
|
7412 |
+
el.removeAttribute('class');
|
7413 |
+
}
|
7414 |
+
}
|
7415 |
+
}
|
7416 |
+
|
7417 |
+
/* */
|
7418 |
+
|
7419 |
+
function resolveTransition (def) {
|
7420 |
+
if (!def) {
|
7421 |
+
return
|
7422 |
+
}
|
7423 |
+
/* istanbul ignore else */
|
7424 |
+
if (typeof def === 'object') {
|
7425 |
+
var res = {};
|
7426 |
+
if (def.css !== false) {
|
7427 |
+
extend(res, autoCssTransition(def.name || 'v'));
|
7428 |
+
}
|
7429 |
+
extend(res, def);
|
7430 |
+
return res
|
7431 |
+
} else if (typeof def === 'string') {
|
7432 |
+
return autoCssTransition(def)
|
7433 |
+
}
|
7434 |
+
}
|
7435 |
+
|
7436 |
+
var autoCssTransition = cached(function (name) {
|
7437 |
+
return {
|
7438 |
+
enterClass: (name + "-enter"),
|
7439 |
+
enterToClass: (name + "-enter-to"),
|
7440 |
+
enterActiveClass: (name + "-enter-active"),
|
7441 |
+
leaveClass: (name + "-leave"),
|
7442 |
+
leaveToClass: (name + "-leave-to"),
|
7443 |
+
leaveActiveClass: (name + "-leave-active")
|
7444 |
+
}
|
7445 |
+
});
|
7446 |
+
|
7447 |
+
var hasTransition = inBrowser && !isIE9;
|
7448 |
+
var TRANSITION = 'transition';
|
7449 |
+
var ANIMATION = 'animation';
|
7450 |
+
|
7451 |
+
// Transition property/event sniffing
|
7452 |
+
var transitionProp = 'transition';
|
7453 |
+
var transitionEndEvent = 'transitionend';
|
7454 |
+
var animationProp = 'animation';
|
7455 |
+
var animationEndEvent = 'animationend';
|
7456 |
+
if (hasTransition) {
|
7457 |
+
/* istanbul ignore if */
|
7458 |
+
if (window.ontransitionend === undefined &&
|
7459 |
+
window.onwebkittransitionend !== undefined
|
7460 |
+
) {
|
7461 |
+
transitionProp = 'WebkitTransition';
|
7462 |
+
transitionEndEvent = 'webkitTransitionEnd';
|
7463 |
+
}
|
7464 |
+
if (window.onanimationend === undefined &&
|
7465 |
+
window.onwebkitanimationend !== undefined
|
7466 |
+
) {
|
7467 |
+
animationProp = 'WebkitAnimation';
|
7468 |
+
animationEndEvent = 'webkitAnimationEnd';
|
7469 |
+
}
|
7470 |
+
}
|
7471 |
+
|
7472 |
+
// binding to window is necessary to make hot reload work in IE in strict mode
|
7473 |
+
var raf = inBrowser
|
7474 |
+
? window.requestAnimationFrame
|
7475 |
+
? window.requestAnimationFrame.bind(window)
|
7476 |
+
: setTimeout
|
7477 |
+
: /* istanbul ignore next */ function (fn) { return fn(); };
|
7478 |
+
|
7479 |
+
function nextFrame (fn) {
|
7480 |
+
raf(function () {
|
7481 |
+
raf(fn);
|
7482 |
+
});
|
7483 |
+
}
|
7484 |
+
|
7485 |
+
function addTransitionClass (el, cls) {
|
7486 |
+
var transitionClasses = el._transitionClasses || (el._transitionClasses = []);
|
7487 |
+
if (transitionClasses.indexOf(cls) < 0) {
|
7488 |
+
transitionClasses.push(cls);
|
7489 |
+
addClass(el, cls);
|
7490 |
+
}
|
7491 |
+
}
|
7492 |
+
|
7493 |
+
function removeTransitionClass (el, cls) {
|
7494 |
+
if (el._transitionClasses) {
|
7495 |
+
remove(el._transitionClasses, cls);
|
7496 |
+
}
|
7497 |
+
removeClass(el, cls);
|
7498 |
+
}
|
7499 |
+
|
7500 |
+
function whenTransitionEnds (
|
7501 |
+
el,
|
7502 |
+
expectedType,
|
7503 |
+
cb
|
7504 |
+
) {
|
7505 |
+
var ref = getTransitionInfo(el, expectedType);
|
7506 |
+
var type = ref.type;
|
7507 |
+
var timeout = ref.timeout;
|
7508 |
+
var propCount = ref.propCount;
|
7509 |
+
if (!type) { return cb() }
|
7510 |
+
var event = type === TRANSITION ? transitionEndEvent : animationEndEvent;
|
7511 |
+
var ended = 0;
|
7512 |
+
var end = function () {
|
7513 |
+
el.removeEventListener(event, onEnd);
|
7514 |
+
cb();
|
7515 |
+
};
|
7516 |
+
var onEnd = function (e) {
|
7517 |
+
if (e.target === el) {
|
7518 |
+
if (++ended >= propCount) {
|
7519 |
+
end();
|
7520 |
+
}
|
7521 |
+
}
|
7522 |
+
};
|
7523 |
+
setTimeout(function () {
|
7524 |
+
if (ended < propCount) {
|
7525 |
+
end();
|
7526 |
+
}
|
7527 |
+
}, timeout + 1);
|
7528 |
+
el.addEventListener(event, onEnd);
|
7529 |
+
}
|
7530 |
+
|
7531 |
+
var transformRE = /\b(transform|all)(,|$)/;
|
7532 |
+
|
7533 |
+
function getTransitionInfo (el, expectedType) {
|
7534 |
+
var styles = window.getComputedStyle(el);
|
7535 |
+
var transitionDelays = styles[transitionProp + 'Delay'].split(', ');
|
7536 |
+
var transitionDurations = styles[transitionProp + 'Duration'].split(', ');
|
7537 |
+
var transitionTimeout = getTimeout(transitionDelays, transitionDurations);
|
7538 |
+
var animationDelays = styles[animationProp + 'Delay'].split(', ');
|
7539 |
+
var animationDurations = styles[animationProp + 'Duration'].split(', ');
|
7540 |
+
var animationTimeout = getTimeout(animationDelays, animationDurations);
|
7541 |
+
|
7542 |
+
var type;
|
7543 |
+
var timeout = 0;
|
7544 |
+
var propCount = 0;
|
7545 |
+
/* istanbul ignore if */
|
7546 |
+
if (expectedType === TRANSITION) {
|
7547 |
+
if (transitionTimeout > 0) {
|
7548 |
+
type = TRANSITION;
|
7549 |
+
timeout = transitionTimeout;
|
7550 |
+
propCount = transitionDurations.length;
|
7551 |
+
}
|
7552 |
+
} else if (expectedType === ANIMATION) {
|
7553 |
+
if (animationTimeout > 0) {
|
7554 |
+
type = ANIMATION;
|
7555 |
+
timeout = animationTimeout;
|
7556 |
+
propCount = animationDurations.length;
|
7557 |
+
}
|
7558 |
+
} else {
|
7559 |
+
timeout = Math.max(transitionTimeout, animationTimeout);
|
7560 |
+
type = timeout > 0
|
7561 |
+
? transitionTimeout > animationTimeout
|
7562 |
+
? TRANSITION
|
7563 |
+
: ANIMATION
|
7564 |
+
: null;
|
7565 |
+
propCount = type
|
7566 |
+
? type === TRANSITION
|
7567 |
+
? transitionDurations.length
|
7568 |
+
: animationDurations.length
|
7569 |
+
: 0;
|
7570 |
+
}
|
7571 |
+
var hasTransform =
|
7572 |
+
type === TRANSITION &&
|
7573 |
+
transformRE.test(styles[transitionProp + 'Property']);
|
7574 |
+
return {
|
7575 |
+
type: type,
|
7576 |
+
timeout: timeout,
|
7577 |
+
propCount: propCount,
|
7578 |
+
hasTransform: hasTransform
|
7579 |
+
}
|
7580 |
+
}
|
7581 |
+
|
7582 |
+
function getTimeout (delays, durations) {
|
7583 |
+
/* istanbul ignore next */
|
7584 |
+
while (delays.length < durations.length) {
|
7585 |
+
delays = delays.concat(delays);
|
7586 |
+
}
|
7587 |
+
|
7588 |
+
return Math.max.apply(null, durations.map(function (d, i) {
|
7589 |
+
return toMs(d) + toMs(delays[i])
|
7590 |
+
}))
|
7591 |
+
}
|
7592 |
+
|
7593 |
+
function toMs (s) {
|
7594 |
+
return Number(s.slice(0, -1)) * 1000
|
7595 |
+
}
|
7596 |
+
|
7597 |
+
/* */
|
7598 |
+
|
7599 |
+
function enter (vnode, toggleDisplay) {
|
7600 |
+
var el = vnode.elm;
|
7601 |
+
|
7602 |
+
// call leave callback now
|
7603 |
+
if (isDef(el._leaveCb)) {
|
7604 |
+
el._leaveCb.cancelled = true;
|
7605 |
+
el._leaveCb();
|
7606 |
+
}
|
7607 |
+
|
7608 |
+
var data = resolveTransition(vnode.data.transition);
|
7609 |
+
if (isUndef(data)) {
|
7610 |
+
return
|
7611 |
+
}
|
7612 |
+
|
7613 |
+
/* istanbul ignore if */
|
7614 |
+
if (isDef(el._enterCb) || el.nodeType !== 1) {
|
7615 |
+
return
|
7616 |
+
}
|
7617 |
+
|
7618 |
+
var css = data.css;
|
7619 |
+
var type = data.type;
|
7620 |
+
var enterClass = data.enterClass;
|
7621 |
+
var enterToClass = data.enterToClass;
|
7622 |
+
var enterActiveClass = data.enterActiveClass;
|
7623 |
+
var appearClass = data.appearClass;
|
7624 |
+
var appearToClass = data.appearToClass;
|
7625 |
+
var appearActiveClass = data.appearActiveClass;
|
7626 |
+
var beforeEnter = data.beforeEnter;
|
7627 |
+
var enter = data.enter;
|
7628 |
+
var afterEnter = data.afterEnter;
|
7629 |
+
var enterCancelled = data.enterCancelled;
|
7630 |
+
var beforeAppear = data.beforeAppear;
|
7631 |
+
var appear = data.appear;
|
7632 |
+
var afterAppear = data.afterAppear;
|
7633 |
+
var appearCancelled = data.appearCancelled;
|
7634 |
+
var duration = data.duration;
|
7635 |
+
|
7636 |
+
// activeInstance will always be the <transition> component managing this
|
7637 |
+
// transition. One edge case to check is when the <transition> is placed
|
7638 |
+
// as the root node of a child component. In that case we need to check
|
7639 |
+
// <transition>'s parent for appear check.
|
7640 |
+
var context = activeInstance;
|
7641 |
+
var transitionNode = activeInstance.$vnode;
|
7642 |
+
while (transitionNode && transitionNode.parent) {
|
7643 |
+
transitionNode = transitionNode.parent;
|
7644 |
+
context = transitionNode.context;
|
7645 |
+
}
|
7646 |
+
|
7647 |
+
var isAppear = !context._isMounted || !vnode.isRootInsert;
|
7648 |
+
|
7649 |
+
if (isAppear && !appear && appear !== '') {
|
7650 |
+
return
|
7651 |
+
}
|
7652 |
+
|
7653 |
+
var startClass = isAppear && appearClass
|
7654 |
+
? appearClass
|
7655 |
+
: enterClass;
|
7656 |
+
var activeClass = isAppear && appearActiveClass
|
7657 |
+
? appearActiveClass
|
7658 |
+
: enterActiveClass;
|
7659 |
+
var toClass = isAppear && appearToClass
|
7660 |
+
? appearToClass
|
7661 |
+
: enterToClass;
|
7662 |
+
|
7663 |
+
var beforeEnterHook = isAppear
|
7664 |
+
? (beforeAppear || beforeEnter)
|
7665 |
+
: beforeEnter;
|
7666 |
+
var enterHook = isAppear
|
7667 |
+
? (typeof appear === 'function' ? appear : enter)
|
7668 |
+
: enter;
|
7669 |
+
var afterEnterHook = isAppear
|
7670 |
+
? (afterAppear || afterEnter)
|
7671 |
+
: afterEnter;
|
7672 |
+
var enterCancelledHook = isAppear
|
7673 |
+
? (appearCancelled || enterCancelled)
|
7674 |
+
: enterCancelled;
|
7675 |
+
|
7676 |
+
var explicitEnterDuration = toNumber(
|
7677 |
+
isObject(duration)
|
7678 |
+
? duration.enter
|
7679 |
+
: duration
|
7680 |
+
);
|
7681 |
+
|
7682 |
+
if ("development" !== 'production' && explicitEnterDuration != null) {
|
7683 |
+
checkDuration(explicitEnterDuration, 'enter', vnode);
|
7684 |
+
}
|
7685 |
+
|
7686 |
+
var expectsCSS = css !== false && !isIE9;
|
7687 |
+
var userWantsControl = getHookArgumentsLength(enterHook);
|
7688 |
+
|
7689 |
+
var cb = el._enterCb = once(function () {
|
7690 |
+
if (expectsCSS) {
|
7691 |
+
removeTransitionClass(el, toClass);
|
7692 |
+
removeTransitionClass(el, activeClass);
|
7693 |
+
}
|
7694 |
+
if (cb.cancelled) {
|
7695 |
+
if (expectsCSS) {
|
7696 |
+
removeTransitionClass(el, startClass);
|
7697 |
+
}
|
7698 |
+
enterCancelledHook && enterCancelledHook(el);
|
7699 |
+
} else {
|
7700 |
+
afterEnterHook && afterEnterHook(el);
|
7701 |
+
}
|
7702 |
+
el._enterCb = null;
|
7703 |
+
});
|
7704 |
+
|
7705 |
+
if (!vnode.data.show) {
|
7706 |
+
// remove pending leave element on enter by injecting an insert hook
|
7707 |
+
mergeVNodeHook(vnode, 'insert', function () {
|
7708 |
+
var parent = el.parentNode;
|
7709 |
+
var pendingNode = parent && parent._pending && parent._pending[vnode.key];
|
7710 |
+
if (pendingNode &&
|
7711 |
+
pendingNode.tag === vnode.tag &&
|
7712 |
+
pendingNode.elm._leaveCb
|
7713 |
+
) {
|
7714 |
+
pendingNode.elm._leaveCb();
|
7715 |
+
}
|
7716 |
+
enterHook && enterHook(el, cb);
|
7717 |
+
});
|
7718 |
+
}
|
7719 |
+
|
7720 |
+
// start enter transition
|
7721 |
+
beforeEnterHook && beforeEnterHook(el);
|
7722 |
+
if (expectsCSS) {
|
7723 |
+
addTransitionClass(el, startClass);
|
7724 |
+
addTransitionClass(el, activeClass);
|
7725 |
+
nextFrame(function () {
|
7726 |
+
removeTransitionClass(el, startClass);
|
7727 |
+
if (!cb.cancelled) {
|
7728 |
+
addTransitionClass(el, toClass);
|
7729 |
+
if (!userWantsControl) {
|
7730 |
+
if (isValidDuration(explicitEnterDuration)) {
|
7731 |
+
setTimeout(cb, explicitEnterDuration);
|
7732 |
+
} else {
|
7733 |
+
whenTransitionEnds(el, type, cb);
|
7734 |
+
}
|
7735 |
+
}
|
7736 |
+
}
|
7737 |
+
});
|
7738 |
+
}
|
7739 |
+
|
7740 |
+
if (vnode.data.show) {
|
7741 |
+
toggleDisplay && toggleDisplay();
|
7742 |
+
enterHook && enterHook(el, cb);
|
7743 |
+
}
|
7744 |
+
|
7745 |
+
if (!expectsCSS && !userWantsControl) {
|
7746 |
+
cb();
|
7747 |
+
}
|
7748 |
+
}
|
7749 |
+
|
7750 |
+
function leave (vnode, rm) {
|
7751 |
+
var el = vnode.elm;
|
7752 |
+
|
7753 |
+
// call enter callback now
|
7754 |
+
if (isDef(el._enterCb)) {
|
7755 |
+
el._enterCb.cancelled = true;
|
7756 |
+
el._enterCb();
|
7757 |
+
}
|
7758 |
+
|
7759 |
+
var data = resolveTransition(vnode.data.transition);
|
7760 |
+
if (isUndef(data) || el.nodeType !== 1) {
|
7761 |
+
return rm()
|
7762 |
+
}
|
7763 |
+
|
7764 |
+
/* istanbul ignore if */
|
7765 |
+
if (isDef(el._leaveCb)) {
|
7766 |
+
return
|
7767 |
+
}
|
7768 |
+
|
7769 |
+
var css = data.css;
|
7770 |
+
var type = data.type;
|
7771 |
+
var leaveClass = data.leaveClass;
|
7772 |
+
var leaveToClass = data.leaveToClass;
|
7773 |
+
var leaveActiveClass = data.leaveActiveClass;
|
7774 |
+
var beforeLeave = data.beforeLeave;
|
7775 |
+
var leave = data.leave;
|
7776 |
+
var afterLeave = data.afterLeave;
|
7777 |
+
var leaveCancelled = data.leaveCancelled;
|
7778 |
+
var delayLeave = data.delayLeave;
|
7779 |
+
var duration = data.duration;
|
7780 |
+
|
7781 |
+
var expectsCSS = css !== false && !isIE9;
|
7782 |
+
var userWantsControl = getHookArgumentsLength(leave);
|
7783 |
+
|
7784 |
+
var explicitLeaveDuration = toNumber(
|
7785 |
+
isObject(duration)
|
7786 |
+
? duration.leave
|
7787 |
+
: duration
|
7788 |
+
);
|
7789 |
+
|
7790 |
+
if ("development" !== 'production' && isDef(explicitLeaveDuration)) {
|
7791 |
+
checkDuration(explicitLeaveDuration, 'leave', vnode);
|
7792 |
+
}
|
7793 |
+
|
7794 |
+
var cb = el._leaveCb = once(function () {
|
7795 |
+
if (el.parentNode && el.parentNode._pending) {
|
7796 |
+
el.parentNode._pending[vnode.key] = null;
|
7797 |
+
}
|
7798 |
+
if (expectsCSS) {
|
7799 |
+
removeTransitionClass(el, leaveToClass);
|
7800 |
+
removeTransitionClass(el, leaveActiveClass);
|
7801 |
+
}
|
7802 |
+
if (cb.cancelled) {
|
7803 |
+
if (expectsCSS) {
|
7804 |
+
removeTransitionClass(el, leaveClass);
|
7805 |
+
}
|
7806 |
+
leaveCancelled && leaveCancelled(el);
|
7807 |
+
} else {
|
7808 |
+
rm();
|
7809 |
+
afterLeave && afterLeave(el);
|
7810 |
+
}
|
7811 |
+
el._leaveCb = null;
|
7812 |
+
});
|
7813 |
+
|
7814 |
+
if (delayLeave) {
|
7815 |
+
delayLeave(performLeave);
|
7816 |
+
} else {
|
7817 |
+
performLeave();
|
7818 |
+
}
|
7819 |
+
|
7820 |
+
function performLeave () {
|
7821 |
+
// the delayed leave may have already been cancelled
|
7822 |
+
if (cb.cancelled) {
|
7823 |
+
return
|
7824 |
+
}
|
7825 |
+
// record leaving element
|
7826 |
+
if (!vnode.data.show) {
|
7827 |
+
(el.parentNode._pending || (el.parentNode._pending = {}))[(vnode.key)] = vnode;
|
7828 |
+
}
|
7829 |
+
beforeLeave && beforeLeave(el);
|
7830 |
+
if (expectsCSS) {
|
7831 |
+
addTransitionClass(el, leaveClass);
|
7832 |
+
addTransitionClass(el, leaveActiveClass);
|
7833 |
+
nextFrame(function () {
|
7834 |
+
removeTransitionClass(el, leaveClass);
|
7835 |
+
if (!cb.cancelled) {
|
7836 |
+
addTransitionClass(el, leaveToClass);
|
7837 |
+
if (!userWantsControl) {
|
7838 |
+
if (isValidDuration(explicitLeaveDuration)) {
|
7839 |
+
setTimeout(cb, explicitLeaveDuration);
|
7840 |
+
} else {
|
7841 |
+
whenTransitionEnds(el, type, cb);
|
7842 |
+
}
|
7843 |
+
}
|
7844 |
+
}
|
7845 |
+
});
|
7846 |
+
}
|
7847 |
+
leave && leave(el, cb);
|
7848 |
+
if (!expectsCSS && !userWantsControl) {
|
7849 |
+
cb();
|
7850 |
+
}
|
7851 |
+
}
|
7852 |
+
}
|
7853 |
+
|
7854 |
+
// only used in dev mode
|
7855 |
+
function checkDuration (val, name, vnode) {
|
7856 |
+
if (typeof val !== 'number') {
|
7857 |
+
warn(
|
7858 |
+
"<transition> explicit " + name + " duration is not a valid number - " +
|
7859 |
+
"got " + (JSON.stringify(val)) + ".",
|
7860 |
+
vnode.context
|
7861 |
+
);
|
7862 |
+
} else if (isNaN(val)) {
|
7863 |
+
warn(
|
7864 |
+
"<transition> explicit " + name + " duration is NaN - " +
|
7865 |
+
'the duration expression might be incorrect.',
|
7866 |
+
vnode.context
|
7867 |
+
);
|
7868 |
+
}
|
7869 |
+
}
|
7870 |
+
|
7871 |
+
function isValidDuration (val) {
|
7872 |
+
return typeof val === 'number' && !isNaN(val)
|
7873 |
+
}
|
7874 |
+
|
7875 |
+
/**
|
7876 |
+
* Normalize a transition hook's argument length. The hook may be:
|
7877 |
+
* - a merged hook (invoker) with the original in .fns
|
7878 |
+
* - a wrapped component method (check ._length)
|
7879 |
+
* - a plain function (.length)
|
7880 |
+
*/
|
7881 |
+
function getHookArgumentsLength (fn) {
|
7882 |
+
if (isUndef(fn)) {
|
7883 |
+
return false
|
7884 |
+
}
|
7885 |
+
var invokerFns = fn.fns;
|
7886 |
+
if (isDef(invokerFns)) {
|
7887 |
+
// invoker
|
7888 |
+
return getHookArgumentsLength(
|
7889 |
+
Array.isArray(invokerFns)
|
7890 |
+
? invokerFns[0]
|
7891 |
+
: invokerFns
|
7892 |
+
)
|
7893 |
+
} else {
|
7894 |
+
return (fn._length || fn.length) > 1
|
7895 |
+
}
|
7896 |
+
}
|
7897 |
+
|
7898 |
+
function _enter (_, vnode) {
|
7899 |
+
if (vnode.data.show !== true) {
|
7900 |
+
enter(vnode);
|
7901 |
+
}
|
7902 |
+
}
|
7903 |
+
|
7904 |
+
var transition = inBrowser ? {
|
7905 |
+
create: _enter,
|
7906 |
+
activate: _enter,
|
7907 |
+
remove: function remove$$1 (vnode, rm) {
|
7908 |
+
/* istanbul ignore else */
|
7909 |
+
if (vnode.data.show !== true) {
|
7910 |
+
leave(vnode, rm);
|
7911 |
+
} else {
|
7912 |
+
rm();
|
7913 |
+
}
|
7914 |
+
}
|
7915 |
+
} : {}
|
7916 |
+
|
7917 |
+
var platformModules = [
|
7918 |
+
attrs,
|
7919 |
+
klass,
|
7920 |
+
events,
|
7921 |
+
domProps,
|
7922 |
+
style,
|
7923 |
+
transition
|
7924 |
+
]
|
7925 |
+
|
7926 |
+
/* */
|
7927 |
+
|
7928 |
+
// the directive module should be applied last, after all
|
7929 |
+
// built-in modules have been applied.
|
7930 |
+
var modules = platformModules.concat(baseModules);
|
7931 |
+
|
7932 |
+
var patch = createPatchFunction({ nodeOps: nodeOps, modules: modules });
|
7933 |
+
|
7934 |
+
/**
|
7935 |
+
* Not type checking this file because flow doesn't like attaching
|
7936 |
+
* properties to Elements.
|
7937 |
+
*/
|
7938 |
+
|
7939 |
+
/* istanbul ignore if */
|
7940 |
+
if (isIE9) {
|
7941 |
+
// http://www.matts411.com/post/internet-explorer-9-oninput/
|
7942 |
+
document.addEventListener('selectionchange', function () {
|
7943 |
+
var el = document.activeElement;
|
7944 |
+
if (el && el.vmodel) {
|
7945 |
+
trigger(el, 'input');
|
7946 |
+
}
|
7947 |
+
});
|
7948 |
+
}
|
7949 |
+
|
7950 |
+
var directive = {
|
7951 |
+
inserted: function inserted (el, binding, vnode, oldVnode) {
|
7952 |
+
if (vnode.tag === 'select') {
|
7953 |
+
// #6903
|
7954 |
+
if (oldVnode.elm && !oldVnode.elm._vOptions) {
|
7955 |
+
mergeVNodeHook(vnode, 'postpatch', function () {
|
7956 |
+
directive.componentUpdated(el, binding, vnode);
|
7957 |
+
});
|
7958 |
+
} else {
|
7959 |
+
setSelected(el, binding, vnode.context);
|
7960 |
+
}
|
7961 |
+
el._vOptions = [].map.call(el.options, getValue);
|
7962 |
+
} else if (vnode.tag === 'textarea' || isTextInputType(el.type)) {
|
7963 |
+
el._vModifiers = binding.modifiers;
|
7964 |
+
if (!binding.modifiers.lazy) {
|
7965 |
+
el.addEventListener('compositionstart', onCompositionStart);
|
7966 |
+
el.addEventListener('compositionend', onCompositionEnd);
|
7967 |
+
// Safari < 10.2 & UIWebView doesn't fire compositionend when
|
7968 |
+
// switching focus before confirming composition choice
|
7969 |
+
// this also fixes the issue where some browsers e.g. iOS Chrome
|
7970 |
+
// fires "change" instead of "input" on autocomplete.
|
7971 |
+
el.addEventListener('change', onCompositionEnd);
|
7972 |
+
/* istanbul ignore if */
|
7973 |
+
if (isIE9) {
|
7974 |
+
el.vmodel = true;
|
7975 |
+
}
|
7976 |
+
}
|
7977 |
+
}
|
7978 |
+
},
|
7979 |
+
|
7980 |
+
componentUpdated: function componentUpdated (el, binding, vnode) {
|
7981 |
+
if (vnode.tag === 'select') {
|
7982 |
+
setSelected(el, binding, vnode.context);
|
7983 |
+
// in case the options rendered by v-for have changed,
|
7984 |
+
// it's possible that the value is out-of-sync with the rendered options.
|
7985 |
+
// detect such cases and filter out values that no longer has a matching
|
7986 |
+
// option in the DOM.
|
7987 |
+
var prevOptions = el._vOptions;
|
7988 |
+
var curOptions = el._vOptions = [].map.call(el.options, getValue);
|
7989 |
+
if (curOptions.some(function (o, i) { return !looseEqual(o, prevOptions[i]); })) {
|
7990 |
+
// trigger change event if
|
7991 |
+
// no matching option found for at least one value
|
7992 |
+
var needReset = el.multiple
|
7993 |
+
? binding.value.some(function (v) { return hasNoMatchingOption(v, curOptions); })
|
7994 |
+
: binding.value !== binding.oldValue && hasNoMatchingOption(binding.value, curOptions);
|
7995 |
+
if (needReset) {
|
7996 |
+
trigger(el, 'change');
|
7997 |
+
}
|
7998 |
+
}
|
7999 |
+
}
|
8000 |
+
}
|
8001 |
+
};
|
8002 |
+
|
8003 |
+
function setSelected (el, binding, vm) {
|
8004 |
+
actuallySetSelected(el, binding, vm);
|
8005 |
+
/* istanbul ignore if */
|
8006 |
+
if (isIE || isEdge) {
|
8007 |
+
setTimeout(function () {
|
8008 |
+
actuallySetSelected(el, binding, vm);
|
8009 |
+
}, 0);
|
8010 |
+
}
|
8011 |
+
}
|
8012 |
+
|
8013 |
+
function actuallySetSelected (el, binding, vm) {
|
8014 |
+
var value = binding.value;
|
8015 |
+
var isMultiple = el.multiple;
|
8016 |
+
if (isMultiple && !Array.isArray(value)) {
|
8017 |
+
"development" !== 'production' && warn(
|
8018 |
+
"<select multiple v-model=\"" + (binding.expression) + "\"> " +
|
8019 |
+
"expects an Array value for its binding, but got " + (Object.prototype.toString.call(value).slice(8, -1)),
|
8020 |
+
vm
|
8021 |
+
);
|
8022 |
+
return
|
8023 |
+
}
|
8024 |
+
var selected, option;
|
8025 |
+
for (var i = 0, l = el.options.length; i < l; i++) {
|
8026 |
+
option = el.options[i];
|
8027 |
+
if (isMultiple) {
|
8028 |
+
selected = looseIndexOf(value, getValue(option)) > -1;
|
8029 |
+
if (option.selected !== selected) {
|
8030 |
+
option.selected = selected;
|
8031 |
+
}
|
8032 |
+
} else {
|
8033 |
+
if (looseEqual(getValue(option), value)) {
|
8034 |
+
if (el.selectedIndex !== i) {
|
8035 |
+
el.selectedIndex = i;
|
8036 |
+
}
|
8037 |
+
return
|
8038 |
+
}
|
8039 |
+
}
|
8040 |
+
}
|
8041 |
+
if (!isMultiple) {
|
8042 |
+
el.selectedIndex = -1;
|
8043 |
+
}
|
8044 |
+
}
|
8045 |
+
|
8046 |
+
function hasNoMatchingOption (value, options) {
|
8047 |
+
return options.every(function (o) { return !looseEqual(o, value); })
|
8048 |
+
}
|
8049 |
+
|
8050 |
+
function getValue (option) {
|
8051 |
+
return '_value' in option
|
8052 |
+
? option._value
|
8053 |
+
: option.value
|
8054 |
+
}
|
8055 |
+
|
8056 |
+
function onCompositionStart (e) {
|
8057 |
+
e.target.composing = true;
|
8058 |
+
}
|
8059 |
+
|
8060 |
+
function onCompositionEnd (e) {
|
8061 |
+
// prevent triggering an input event for no reason
|
8062 |
+
if (!e.target.composing) { return }
|
8063 |
+
e.target.composing = false;
|
8064 |
+
trigger(e.target, 'input');
|
8065 |
+
}
|
8066 |
+
|
8067 |
+
function trigger (el, type) {
|
8068 |
+
var e = document.createEvent('HTMLEvents');
|
8069 |
+
e.initEvent(type, true, true);
|
8070 |
+
el.dispatchEvent(e);
|
8071 |
+
}
|
8072 |
+
|
8073 |
+
/* */
|
8074 |
+
|
8075 |
+
// recursively search for possible transition defined inside the component root
|
8076 |
+
function locateNode (vnode) {
|
8077 |
+
return vnode.componentInstance && (!vnode.data || !vnode.data.transition)
|
8078 |
+
? locateNode(vnode.componentInstance._vnode)
|
8079 |
+
: vnode
|
8080 |
+
}
|
8081 |
+
|
8082 |
+
var show = {
|
8083 |
+
bind: function bind (el, ref, vnode) {
|
8084 |
+
var value = ref.value;
|
8085 |
+
|
8086 |
+
vnode = locateNode(vnode);
|
8087 |
+
var transition$$1 = vnode.data && vnode.data.transition;
|
8088 |
+
var originalDisplay = el.__vOriginalDisplay =
|
8089 |
+
el.style.display === 'none' ? '' : el.style.display;
|
8090 |
+
if (value && transition$$1) {
|
8091 |
+
vnode.data.show = true;
|
8092 |
+
enter(vnode, function () {
|
8093 |
+
el.style.display = originalDisplay;
|
8094 |
+
});
|
8095 |
+
} else {
|
8096 |
+
el.style.display = value ? originalDisplay : 'none';
|
8097 |
+
}
|
8098 |
+
},
|
8099 |
+
|
8100 |
+
update: function update (el, ref, vnode) {
|
8101 |
+
var value = ref.value;
|
8102 |
+
var oldValue = ref.oldValue;
|
8103 |
+
|
8104 |
+
/* istanbul ignore if */
|
8105 |
+
if (!value === !oldValue) { return }
|
8106 |
+
vnode = locateNode(vnode);
|
8107 |
+
var transition$$1 = vnode.data && vnode.data.transition;
|
8108 |
+
if (transition$$1) {
|
8109 |
+
vnode.data.show = true;
|
8110 |
+
if (value) {
|
8111 |
+
enter(vnode, function () {
|
8112 |
+
el.style.display = el.__vOriginalDisplay;
|
8113 |
+
});
|
8114 |
+
} else {
|
8115 |
+
leave(vnode, function () {
|
8116 |
+
el.style.display = 'none';
|
8117 |
+
});
|
8118 |
+
}
|
8119 |
+
} else {
|
8120 |
+
el.style.display = value ? el.__vOriginalDisplay : 'none';
|
8121 |
+
}
|
8122 |
+
},
|
8123 |
+
|
8124 |
+
unbind: function unbind (
|
8125 |
+
el,
|
8126 |
+
binding,
|
8127 |
+
vnode,
|
8128 |
+
oldVnode,
|
8129 |
+
isDestroy
|
8130 |
+
) {
|
8131 |
+
if (!isDestroy) {
|
8132 |
+
el.style.display = el.__vOriginalDisplay;
|
8133 |
+
}
|
8134 |
+
}
|
8135 |
+
}
|
8136 |
+
|
8137 |
+
var platformDirectives = {
|
8138 |
+
model: directive,
|
8139 |
+
show: show
|
8140 |
+
}
|
8141 |
+
|
8142 |
+
/* */
|
8143 |
+
|
8144 |
+
// Provides transition support for a single element/component.
|
8145 |
+
// supports transition mode (out-in / in-out)
|
8146 |
+
|
8147 |
+
var transitionProps = {
|
8148 |
+
name: String,
|
8149 |
+
appear: Boolean,
|
8150 |
+
css: Boolean,
|
8151 |
+
mode: String,
|
8152 |
+
type: String,
|
8153 |
+
enterClass: String,
|
8154 |
+
leaveClass: String,
|
8155 |
+
enterToClass: String,
|
8156 |
+
leaveToClass: String,
|
8157 |
+
enterActiveClass: String,
|
8158 |
+
leaveActiveClass: String,
|
8159 |
+
appearClass: String,
|
8160 |
+
appearActiveClass: String,
|
8161 |
+
appearToClass: String,
|
8162 |
+
duration: [Number, String, Object]
|
8163 |
+
};
|
8164 |
+
|
8165 |
+
// in case the child is also an abstract component, e.g. <keep-alive>
|
8166 |
+
// we want to recursively retrieve the real component to be rendered
|
8167 |
+
function getRealChild (vnode) {
|
8168 |
+
var compOptions = vnode && vnode.componentOptions;
|
8169 |
+
if (compOptions && compOptions.Ctor.options.abstract) {
|
8170 |
+
return getRealChild(getFirstComponentChild(compOptions.children))
|
8171 |
+
} else {
|
8172 |
+
return vnode
|
8173 |
+
}
|
8174 |
+
}
|
8175 |
+
|
8176 |
+
function extractTransitionData (comp) {
|
8177 |
+
var data = {};
|
8178 |
+
var options = comp.$options;
|
8179 |
+
// props
|
8180 |
+
for (var key in options.propsData) {
|
8181 |
+
data[key] = comp[key];
|
8182 |
+
}
|
8183 |
+
// events.
|
8184 |
+
// extract listeners and pass them directly to the transition methods
|
8185 |
+
var listeners = options._parentListeners;
|
8186 |
+
for (var key$1 in listeners) {
|
8187 |
+
data[camelize(key$1)] = listeners[key$1];
|
8188 |
+
}
|
8189 |
+
return data
|
8190 |
+
}
|
8191 |
+
|
8192 |
+
function placeholder (h, rawChild) {
|
8193 |
+
if (/\d-keep-alive$/.test(rawChild.tag)) {
|
8194 |
+
return h('keep-alive', {
|
8195 |
+
props: rawChild.componentOptions.propsData
|
8196 |
+
})
|
8197 |
+
}
|
8198 |
+
}
|
8199 |
+
|
8200 |
+
function hasParentTransition (vnode) {
|
8201 |
+
while ((vnode = vnode.parent)) {
|
8202 |
+
if (vnode.data.transition) {
|
8203 |
+
return true
|
8204 |
+
}
|
8205 |
+
}
|
8206 |
+
}
|
8207 |
+
|
8208 |
+
function isSameChild (child, oldChild) {
|
8209 |
+
return oldChild.key === child.key && oldChild.tag === child.tag
|
8210 |
+
}
|
8211 |
+
|
8212 |
+
var Transition = {
|
8213 |
+
name: 'transition',
|
8214 |
+
props: transitionProps,
|
8215 |
+
abstract: true,
|
8216 |
+
|
8217 |
+
render: function render (h) {
|
8218 |
+
var this$1 = this;
|
8219 |
+
|
8220 |
+
var children = this.$slots.default;
|
8221 |
+
if (!children) {
|
8222 |
+
return
|
8223 |
+
}
|
8224 |
+
|
8225 |
+
// filter out text nodes (possible whitespaces)
|
8226 |
+
children = children.filter(function (c) { return c.tag || isAsyncPlaceholder(c); });
|
8227 |
+
/* istanbul ignore if */
|
8228 |
+
if (!children.length) {
|
8229 |
+
return
|
8230 |
+
}
|
8231 |
+
|
8232 |
+
// warn multiple elements
|
8233 |
+
if ("development" !== 'production' && children.length > 1) {
|
8234 |
+
warn(
|
8235 |
+
'<transition> can only be used on a single element. Use ' +
|
8236 |
+
'<transition-group> for lists.',
|
8237 |
+
this.$parent
|
8238 |
+
);
|
8239 |
+
}
|
8240 |
+
|
8241 |
+
var mode = this.mode;
|
8242 |
+
|
8243 |
+
// warn invalid mode
|
8244 |
+
if ("development" !== 'production' &&
|
8245 |
+
mode && mode !== 'in-out' && mode !== 'out-in'
|
8246 |
+
) {
|
8247 |
+
warn(
|
8248 |
+
'invalid <transition> mode: ' + mode,
|
8249 |
+
this.$parent
|
8250 |
+
);
|
8251 |
+
}
|
8252 |
+
|
8253 |
+
var rawChild = children[0];
|
8254 |
+
|
8255 |
+
// if this is a component root node and the component's
|
8256 |
+
// parent container node also has transition, skip.
|
8257 |
+
if (hasParentTransition(this.$vnode)) {
|
8258 |
+
return rawChild
|
8259 |
+
}
|
8260 |
+
|
8261 |
+
// apply transition data to child
|
8262 |
+
// use getRealChild() to ignore abstract components e.g. keep-alive
|
8263 |
+
var child = getRealChild(rawChild);
|
8264 |
+
/* istanbul ignore if */
|
8265 |
+
if (!child) {
|
8266 |
+
return rawChild
|
8267 |
+
}
|
8268 |
+
|
8269 |
+
if (this._leaving) {
|
8270 |
+
return placeholder(h, rawChild)
|
8271 |
+
}
|
8272 |
+
|
8273 |
+
// ensure a key that is unique to the vnode type and to this transition
|
8274 |
+
// component instance. This key will be used to remove pending leaving nodes
|
8275 |
+
// during entering.
|
8276 |
+
var id = "__transition-" + (this._uid) + "-";
|
8277 |
+
child.key = child.key == null
|
8278 |
+
? child.isComment
|
8279 |
+
? id + 'comment'
|
8280 |
+
: id + child.tag
|
8281 |
+
: isPrimitive(child.key)
|
8282 |
+
? (String(child.key).indexOf(id) === 0 ? child.key : id + child.key)
|
8283 |
+
: child.key;
|
8284 |
+
|
8285 |
+
var data = (child.data || (child.data = {})).transition = extractTransitionData(this);
|
8286 |
+
var oldRawChild = this._vnode;
|
8287 |
+
var oldChild = getRealChild(oldRawChild);
|
8288 |
+
|
8289 |
+
// mark v-show
|
8290 |
+
// so that the transition module can hand over the control to the directive
|
8291 |
+
if (child.data.directives && child.data.directives.some(function (d) { return d.name === 'show'; })) {
|
8292 |
+
child.data.show = true;
|
8293 |
+
}
|
8294 |
+
|
8295 |
+
if (
|
8296 |
+
oldChild &&
|
8297 |
+
oldChild.data &&
|
8298 |
+
!isSameChild(child, oldChild) &&
|
8299 |
+
!isAsyncPlaceholder(oldChild) &&
|
8300 |
+
// #6687 component root is a comment node
|
8301 |
+
!(oldChild.componentInstance && oldChild.componentInstance._vnode.isComment)
|
8302 |
+
) {
|
8303 |
+
// replace old child transition data with fresh one
|
8304 |
+
// important for dynamic transitions!
|
8305 |
+
var oldData = oldChild.data.transition = extend({}, data);
|
8306 |
+
// handle transition mode
|
8307 |
+
if (mode === 'out-in') {
|
8308 |
+
// return placeholder node and queue update when leave finishes
|
8309 |
+
this._leaving = true;
|
8310 |
+
mergeVNodeHook(oldData, 'afterLeave', function () {
|
8311 |
+
this$1._leaving = false;
|
8312 |
+
this$1.$forceUpdate();
|
8313 |
+
});
|
8314 |
+
return placeholder(h, rawChild)
|
8315 |
+
} else if (mode === 'in-out') {
|
8316 |
+
if (isAsyncPlaceholder(child)) {
|
8317 |
+
return oldRawChild
|
8318 |
+
}
|
8319 |
+
var delayedLeave;
|
8320 |
+
var performLeave = function () { delayedLeave(); };
|
8321 |
+
mergeVNodeHook(data, 'afterEnter', performLeave);
|
8322 |
+
mergeVNodeHook(data, 'enterCancelled', performLeave);
|
8323 |
+
mergeVNodeHook(oldData, 'delayLeave', function (leave) { delayedLeave = leave; });
|
8324 |
+
}
|
8325 |
+
}
|
8326 |
+
|
8327 |
+
return rawChild
|
8328 |
+
}
|
8329 |
+
}
|
8330 |
+
|
8331 |
+
/* */
|
8332 |
+
|
8333 |
+
// Provides transition support for list items.
|
8334 |
+
// supports move transitions using the FLIP technique.
|
8335 |
+
|
8336 |
+
// Because the vdom's children update algorithm is "unstable" - i.e.
|
8337 |
+
// it doesn't guarantee the relative positioning of removed elements,
|
8338 |
+
// we force transition-group to update its children into two passes:
|
8339 |
+
// in the first pass, we remove all nodes that need to be removed,
|
8340 |
+
// triggering their leaving transition; in the second pass, we insert/move
|
8341 |
+
// into the final desired state. This way in the second pass removed
|
8342 |
+
// nodes will remain where they should be.
|
8343 |
+
|
8344 |
+
var props = extend({
|
8345 |
+
tag: String,
|
8346 |
+
moveClass: String
|
8347 |
+
}, transitionProps);
|
8348 |
+
|
8349 |
+
delete props.mode;
|
8350 |
+
|
8351 |
+
var TransitionGroup = {
|
8352 |
+
props: props,
|
8353 |
+
|
8354 |
+
render: function render (h) {
|
8355 |
+
var tag = this.tag || this.$vnode.data.tag || 'span';
|
8356 |
+
var map = Object.create(null);
|
8357 |
+
var prevChildren = this.prevChildren = this.children;
|
8358 |
+
var rawChildren = this.$slots.default || [];
|
8359 |
+
var children = this.children = [];
|
8360 |
+
var transitionData = extractTransitionData(this);
|
8361 |
+
|
8362 |
+
for (var i = 0; i < rawChildren.length; i++) {
|
8363 |
+
var c = rawChildren[i];
|
8364 |
+
if (c.tag) {
|
8365 |
+
if (c.key != null && String(c.key).indexOf('__vlist') !== 0) {
|
8366 |
+
children.push(c);
|
8367 |
+
map[c.key] = c
|
8368 |
+
;(c.data || (c.data = {})).transition = transitionData;
|
8369 |
+
} else {
|
8370 |
+
var opts = c.componentOptions;
|
8371 |
+
var name = opts ? (opts.Ctor.options.name || opts.tag || '') : c.tag;
|
8372 |
+
warn(("<transition-group> children must be keyed: <" + name + ">"));
|
8373 |
+
}
|
8374 |
+
}
|
8375 |
+
}
|
8376 |
+
|
8377 |
+
if (prevChildren) {
|
8378 |
+
var kept = [];
|
8379 |
+
var removed = [];
|
8380 |
+
for (var i$1 = 0; i$1 < prevChildren.length; i$1++) {
|
8381 |
+
var c$1 = prevChildren[i$1];
|
8382 |
+
c$1.data.transition = transitionData;
|
8383 |
+
c$1.data.pos = c$1.elm.getBoundingClientRect();
|
8384 |
+
if (map[c$1.key]) {
|
8385 |
+
kept.push(c$1);
|
8386 |
+
} else {
|
8387 |
+
removed.push(c$1);
|
8388 |
+
}
|
8389 |
+
}
|
8390 |
+
this.kept = h(tag, null, kept);
|
8391 |
+
this.removed = removed;
|
8392 |
+
}
|
8393 |
+
|
8394 |
+
return h(tag, null, children)
|
8395 |
+
},
|
8396 |
+
|
8397 |
+
beforeUpdate: function beforeUpdate () {
|
8398 |
+
// force removing pass
|
8399 |
+
this.__patch__(
|
8400 |
+
this._vnode,
|
8401 |
+
this.kept,
|
8402 |
+
false, // hydrating
|
8403 |
+
true // removeOnly (!important, avoids unnecessary moves)
|
8404 |
+
);
|
8405 |
+
this._vnode = this.kept;
|
8406 |
+
},
|
8407 |
+
|
8408 |
+
updated: function updated () {
|
8409 |
+
var children = this.prevChildren;
|
8410 |
+
var moveClass = this.moveClass || ((this.name || 'v') + '-move');
|
8411 |
+
if (!children.length || !this.hasMove(children[0].elm, moveClass)) {
|
8412 |
+
return
|
8413 |
+
}
|
8414 |
+
|
8415 |
+
// we divide the work into three loops to avoid mixing DOM reads and writes
|
8416 |
+
// in each iteration - which helps prevent layout thrashing.
|
8417 |
+
children.forEach(callPendingCbs);
|
8418 |
+
children.forEach(recordPosition);
|
8419 |
+
children.forEach(applyTranslation);
|
8420 |
+
|
8421 |
+
// force reflow to put everything in position
|
8422 |
+
// assign to this to avoid being removed in tree-shaking
|
8423 |
+
// $flow-disable-line
|
8424 |
+
this._reflow = document.body.offsetHeight;
|
8425 |
+
|
8426 |
+
children.forEach(function (c) {
|
8427 |
+
if (c.data.moved) {
|
8428 |
+
var el = c.elm;
|
8429 |
+
var s = el.style;
|
8430 |
+
addTransitionClass(el, moveClass);
|
8431 |
+
s.transform = s.WebkitTransform = s.transitionDuration = '';
|
8432 |
+
el.addEventListener(transitionEndEvent, el._moveCb = function cb (e) {
|
8433 |
+
if (!e || /transform$/.test(e.propertyName)) {
|
8434 |
+
el.removeEventListener(transitionEndEvent, cb);
|
8435 |
+
el._moveCb = null;
|
8436 |
+
removeTransitionClass(el, moveClass);
|
8437 |
+
}
|
8438 |
+
});
|
8439 |
+
}
|
8440 |
+
});
|
8441 |
+
},
|
8442 |
+
|
8443 |
+
methods: {
|
8444 |
+
hasMove: function hasMove (el, moveClass) {
|
8445 |
+
/* istanbul ignore if */
|
8446 |
+
if (!hasTransition) {
|
8447 |
+
return false
|
8448 |
+
}
|
8449 |
+
/* istanbul ignore if */
|
8450 |
+
if (this._hasMove) {
|
8451 |
+
return this._hasMove
|
8452 |
+
}
|
8453 |
+
// Detect whether an element with the move class applied has
|
8454 |
+
// CSS transitions. Since the element may be inside an entering
|
8455 |
+
// transition at this very moment, we make a clone of it and remove
|
8456 |
+
// all other transition classes applied to ensure only the move class
|
8457 |
+
// is applied.
|
8458 |
+
var clone = el.cloneNode();
|
8459 |
+
if (el._transitionClasses) {
|
8460 |
+
el._transitionClasses.forEach(function (cls) { removeClass(clone, cls); });
|
8461 |
+
}
|
8462 |
+
addClass(clone, moveClass);
|
8463 |
+
clone.style.display = 'none';
|
8464 |
+
this.$el.appendChild(clone);
|
8465 |
+
var info = getTransitionInfo(clone);
|
8466 |
+
this.$el.removeChild(clone);
|
8467 |
+
return (this._hasMove = info.hasTransform)
|
8468 |
+
}
|
8469 |
+
}
|
8470 |
+
}
|
8471 |
+
|
8472 |
+
function callPendingCbs (c) {
|
8473 |
+
/* istanbul ignore if */
|
8474 |
+
if (c.elm._moveCb) {
|
8475 |
+
c.elm._moveCb();
|
8476 |
+
}
|
8477 |
+
/* istanbul ignore if */
|
8478 |
+
if (c.elm._enterCb) {
|
8479 |
+
c.elm._enterCb();
|
8480 |
+
}
|
8481 |
+
}
|
8482 |
+
|
8483 |
+
function recordPosition (c) {
|
8484 |
+
c.data.newPos = c.elm.getBoundingClientRect();
|
8485 |
+
}
|
8486 |
+
|
8487 |
+
function applyTranslation (c) {
|
8488 |
+
var oldPos = c.data.pos;
|
8489 |
+
var newPos = c.data.newPos;
|
8490 |
+
var dx = oldPos.left - newPos.left;
|
8491 |
+
var dy = oldPos.top - newPos.top;
|
8492 |
+
if (dx || dy) {
|
8493 |
+
c.data.moved = true;
|
8494 |
+
var s = c.elm.style;
|
8495 |
+
s.transform = s.WebkitTransform = "translate(" + dx + "px," + dy + "px)";
|
8496 |
+
s.transitionDuration = '0s';
|
8497 |
+
}
|
8498 |
+
}
|
8499 |
+
|
8500 |
+
var platformComponents = {
|
8501 |
+
Transition: Transition,
|
8502 |
+
TransitionGroup: TransitionGroup
|
8503 |
+
}
|
8504 |
+
|
8505 |
+
/* */
|
8506 |
+
|
8507 |
+
// install platform specific utils
|
8508 |
+
Vue.config.mustUseProp = mustUseProp;
|
8509 |
+
Vue.config.isReservedTag = isReservedTag;
|
8510 |
+
Vue.config.isReservedAttr = isReservedAttr;
|
8511 |
+
Vue.config.getTagNamespace = getTagNamespace;
|
8512 |
+
Vue.config.isUnknownElement = isUnknownElement;
|
8513 |
+
|
8514 |
+
// install platform runtime directives & components
|
8515 |
+
extend(Vue.options.directives, platformDirectives);
|
8516 |
+
extend(Vue.options.components, platformComponents);
|
8517 |
+
|
8518 |
+
// install platform patch function
|
8519 |
+
Vue.prototype.__patch__ = inBrowser ? patch : noop;
|
8520 |
+
|
8521 |
+
// public mount method
|
8522 |
+
Vue.prototype.$mount = function (
|
8523 |
+
el,
|
8524 |
+
hydrating
|
8525 |
+
) {
|
8526 |
+
el = el && inBrowser ? query(el) : undefined;
|
8527 |
+
return mountComponent(this, el, hydrating)
|
8528 |
+
};
|
8529 |
+
|
8530 |
+
// devtools global hook
|
8531 |
+
/* istanbul ignore next */
|
8532 |
+
if (inBrowser) {
|
8533 |
+
setTimeout(function () {
|
8534 |
+
if (config.devtools) {
|
8535 |
+
if (devtools) {
|
8536 |
+
devtools.emit('init', Vue);
|
8537 |
+
} else if (
|
8538 |
+
"development" !== 'production' &&
|
8539 |
+
"development" !== 'test' &&
|
8540 |
+
isChrome
|
8541 |
+
) {
|
8542 |
+
console[console.info ? 'info' : 'log'](
|
8543 |
+
'Download the Vue Devtools extension for a better development experience:\n' +
|
8544 |
+
'https://github.com/vuejs/vue-devtools'
|
8545 |
+
);
|
8546 |
+
}
|
8547 |
+
}
|
8548 |
+
if ("development" !== 'production' &&
|
8549 |
+
"development" !== 'test' &&
|
8550 |
+
config.productionTip !== false &&
|
8551 |
+
typeof console !== 'undefined'
|
8552 |
+
) {
|
8553 |
+
console[console.info ? 'info' : 'log'](
|
8554 |
+
"You are running Vue in development mode.\n" +
|
8555 |
+
"Make sure to turn on production mode when deploying for production.\n" +
|
8556 |
+
"See more tips at https://vuejs.org/guide/deployment.html"
|
8557 |
+
);
|
8558 |
+
}
|
8559 |
+
}, 0);
|
8560 |
+
}
|
8561 |
+
|
8562 |
+
/* */
|
8563 |
+
|
8564 |
+
var defaultTagRE = /\{\{((?:.|\n)+?)\}\}/g;
|
8565 |
+
var regexEscapeRE = /[-.*+?^${}()|[\]\/\\]/g;
|
8566 |
+
|
8567 |
+
var buildRegex = cached(function (delimiters) {
|
8568 |
+
var open = delimiters[0].replace(regexEscapeRE, '\\$&');
|
8569 |
+
var close = delimiters[1].replace(regexEscapeRE, '\\$&');
|
8570 |
+
return new RegExp(open + '((?:.|\\n)+?)' + close, 'g')
|
8571 |
+
});
|
8572 |
+
|
8573 |
+
|
8574 |
+
|
8575 |
+
function parseText (
|
8576 |
+
text,
|
8577 |
+
delimiters
|
8578 |
+
) {
|
8579 |
+
var tagRE = delimiters ? buildRegex(delimiters) : defaultTagRE;
|
8580 |
+
if (!tagRE.test(text)) {
|
8581 |
+
return
|
8582 |
+
}
|
8583 |
+
var tokens = [];
|
8584 |
+
var rawTokens = [];
|
8585 |
+
var lastIndex = tagRE.lastIndex = 0;
|
8586 |
+
var match, index, tokenValue;
|
8587 |
+
while ((match = tagRE.exec(text))) {
|
8588 |
+
index = match.index;
|
8589 |
+
// push text token
|
8590 |
+
if (index > lastIndex) {
|
8591 |
+
rawTokens.push(tokenValue = text.slice(lastIndex, index));
|
8592 |
+
tokens.push(JSON.stringify(tokenValue));
|
8593 |
+
}
|
8594 |
+
// tag token
|
8595 |
+
var exp = parseFilters(match[1].trim());
|
8596 |
+
tokens.push(("_s(" + exp + ")"));
|
8597 |
+
rawTokens.push({ '@binding': exp });
|
8598 |
+
lastIndex = index + match[0].length;
|
8599 |
+
}
|
8600 |
+
if (lastIndex < text.length) {
|
8601 |
+
rawTokens.push(tokenValue = text.slice(lastIndex));
|
8602 |
+
tokens.push(JSON.stringify(tokenValue));
|
8603 |
+
}
|
8604 |
+
return {
|
8605 |
+
expression: tokens.join('+'),
|
8606 |
+
tokens: rawTokens
|
8607 |
+
}
|
8608 |
+
}
|
8609 |
+
|
8610 |
+
/* */
|
8611 |
+
|
8612 |
+
function transformNode (el, options) {
|
8613 |
+
var warn = options.warn || baseWarn;
|
8614 |
+
var staticClass = getAndRemoveAttr(el, 'class');
|
8615 |
+
if ("development" !== 'production' && staticClass) {
|
8616 |
+
var res = parseText(staticClass, options.delimiters);
|
8617 |
+
if (res) {
|
8618 |
+
warn(
|
8619 |
+
"class=\"" + staticClass + "\": " +
|
8620 |
+
'Interpolation inside attributes has been removed. ' +
|
8621 |
+
'Use v-bind or the colon shorthand instead. For example, ' +
|
8622 |
+
'instead of <div class="{{ val }}">, use <div :class="val">.'
|
8623 |
+
);
|
8624 |
+
}
|
8625 |
+
}
|
8626 |
+
if (staticClass) {
|
8627 |
+
el.staticClass = JSON.stringify(staticClass);
|
8628 |
+
}
|
8629 |
+
var classBinding = getBindingAttr(el, 'class', false /* getStatic */);
|
8630 |
+
if (classBinding) {
|
8631 |
+
el.classBinding = classBinding;
|
8632 |
+
}
|
8633 |
+
}
|
8634 |
+
|
8635 |
+
function genData (el) {
|
8636 |
+
var data = '';
|
8637 |
+
if (el.staticClass) {
|
8638 |
+
data += "staticClass:" + (el.staticClass) + ",";
|
8639 |
+
}
|
8640 |
+
if (el.classBinding) {
|
8641 |
+
data += "class:" + (el.classBinding) + ",";
|
8642 |
+
}
|
8643 |
+
return data
|
8644 |
+
}
|
8645 |
+
|
8646 |
+
var klass$1 = {
|
8647 |
+
staticKeys: ['staticClass'],
|
8648 |
+
transformNode: transformNode,
|
8649 |
+
genData: genData
|
8650 |
+
}
|
8651 |
+
|
8652 |
+
/* */
|
8653 |
+
|
8654 |
+
function transformNode$1 (el, options) {
|
8655 |
+
var warn = options.warn || baseWarn;
|
8656 |
+
var staticStyle = getAndRemoveAttr(el, 'style');
|
8657 |
+
if (staticStyle) {
|
8658 |
+
/* istanbul ignore if */
|
8659 |
+
{
|
8660 |
+
var res = parseText(staticStyle, options.delimiters);
|
8661 |
+
if (res) {
|
8662 |
+
warn(
|
8663 |
+
"style=\"" + staticStyle + "\": " +
|
8664 |
+
'Interpolation inside attributes has been removed. ' +
|
8665 |
+
'Use v-bind or the colon shorthand instead. For example, ' +
|
8666 |
+
'instead of <div style="{{ val }}">, use <div :style="val">.'
|
8667 |
+
);
|
8668 |
+
}
|
8669 |
+
}
|
8670 |
+
el.staticStyle = JSON.stringify(parseStyleText(staticStyle));
|
8671 |
+
}
|
8672 |
+
|
8673 |
+
var styleBinding = getBindingAttr(el, 'style', false /* getStatic */);
|
8674 |
+
if (styleBinding) {
|
8675 |
+
el.styleBinding = styleBinding;
|
8676 |
+
}
|
8677 |
+
}
|
8678 |
+
|
8679 |
+
function genData$1 (el) {
|
8680 |
+
var data = '';
|
8681 |
+
if (el.staticStyle) {
|
8682 |
+
data += "staticStyle:" + (el.staticStyle) + ",";
|
8683 |
+
}
|
8684 |
+
if (el.styleBinding) {
|
8685 |
+
data += "style:(" + (el.styleBinding) + "),";
|
8686 |
+
}
|
8687 |
+
return data
|
8688 |
+
}
|
8689 |
+
|
8690 |
+
var style$1 = {
|
8691 |
+
staticKeys: ['staticStyle'],
|
8692 |
+
transformNode: transformNode$1,
|
8693 |
+
genData: genData$1
|
8694 |
+
}
|
8695 |
+
|
8696 |
+
/* */
|
8697 |
+
|
8698 |
+
var decoder;
|
8699 |
+
|
8700 |
+
var he = {
|
8701 |
+
decode: function decode (html) {
|
8702 |
+
decoder = decoder || document.createElement('div');
|
8703 |
+
decoder.innerHTML = html;
|
8704 |
+
return decoder.textContent
|
8705 |
+
}
|
8706 |
+
}
|
8707 |
+
|
8708 |
+
/* */
|
8709 |
+
|
8710 |
+
var isUnaryTag = makeMap(
|
8711 |
+
'area,base,br,col,embed,frame,hr,img,input,isindex,keygen,' +
|
8712 |
+
'link,meta,param,source,track,wbr'
|
8713 |
+
);
|
8714 |
+
|
8715 |
+
// Elements that you can, intentionally, leave open
|
8716 |
+
// (and which close themselves)
|
8717 |
+
var canBeLeftOpenTag = makeMap(
|
8718 |
+
'colgroup,dd,dt,li,options,p,td,tfoot,th,thead,tr,source'
|
8719 |
+
);
|
8720 |
+
|
8721 |
+
// HTML5 tags https://html.spec.whatwg.org/multipage/indices.html#elements-3
|
8722 |
+
// Phrasing Content https://html.spec.whatwg.org/multipage/dom.html#phrasing-content
|
8723 |
+
var isNonPhrasingTag = makeMap(
|
8724 |
+
'address,article,aside,base,blockquote,body,caption,col,colgroup,dd,' +
|
8725 |
+
'details,dialog,div,dl,dt,fieldset,figcaption,figure,footer,form,' +
|
8726 |
+
'h1,h2,h3,h4,h5,h6,head,header,hgroup,hr,html,legend,li,menuitem,meta,' +
|
8727 |
+
'optgroup,option,param,rp,rt,source,style,summary,tbody,td,tfoot,th,thead,' +
|
8728 |
+
'title,tr,track'
|
8729 |
+
);
|
8730 |
+
|
8731 |
+
/**
|
8732 |
+
* Not type-checking this file because it's mostly vendor code.
|
8733 |
+
*/
|
8734 |
+
|
8735 |
+
/*!
|
8736 |
+
* HTML Parser By John Resig (ejohn.org)
|
8737 |
+
* Modified by Juriy "kangax" Zaytsev
|
8738 |
+
* Original code by Erik Arvidsson, Mozilla Public License
|
8739 |
+
* http://erik.eae.net/simplehtmlparser/simplehtmlparser.js
|
8740 |
+
*/
|
8741 |
+
|
8742 |
+
// Regular Expressions for parsing tags and attributes
|
8743 |
+
var attribute = /^\s*([^\s"'<>\/=]+)(?:\s*(=)\s*(?:"([^"]*)"+|'([^']*)'+|([^\s"'=<>`]+)))?/;
|
8744 |
+
// could use https://www.w3.org/TR/1999/REC-xml-names-19990114/#NT-QName
|
8745 |
+
// but for Vue templates we can enforce a simple charset
|
8746 |
+
var ncname = '[a-zA-Z_][\\w\\-\\.]*';
|
8747 |
+
var qnameCapture = "((?:" + ncname + "\\:)?" + ncname + ")";
|
8748 |
+
var startTagOpen = new RegExp(("^<" + qnameCapture));
|
8749 |
+
var startTagClose = /^\s*(\/?)>/;
|
8750 |
+
var endTag = new RegExp(("^<\\/" + qnameCapture + "[^>]*>"));
|
8751 |
+
var doctype = /^<!DOCTYPE [^>]+>/i;
|
8752 |
+
// #7298: escape - to avoid being pased as HTML comment when inlined in page
|
8753 |
+
var comment = /^<!\--/;
|
8754 |
+
var conditionalComment = /^<!\[/;
|
8755 |
+
|
8756 |
+
var IS_REGEX_CAPTURING_BROKEN = false;
|
8757 |
+
'x'.replace(/x(.)?/g, function (m, g) {
|
8758 |
+
IS_REGEX_CAPTURING_BROKEN = g === '';
|
8759 |
+
});
|
8760 |
+
|
8761 |
+
// Special Elements (can contain anything)
|
8762 |
+
var isPlainTextElement = makeMap('script,style,textarea', true);
|
8763 |
+
var reCache = {};
|
8764 |
+
|
8765 |
+
var decodingMap = {
|
8766 |
+
'<': '<',
|
8767 |
+
'>': '>',
|
8768 |
+
'"': '"',
|
8769 |
+
'&': '&',
|
8770 |
+
' ': '\n',
|
8771 |
+
'	': '\t'
|
8772 |
+
};
|
8773 |
+
var encodedAttr = /&(?:lt|gt|quot|amp);/g;
|
8774 |
+
var encodedAttrWithNewLines = /&(?:lt|gt|quot|amp|#10|#9);/g;
|
8775 |
+
|
8776 |
+
// #5992
|
8777 |
+
var isIgnoreNewlineTag = makeMap('pre,textarea', true);
|
8778 |
+
var shouldIgnoreFirstNewline = function (tag, html) { return tag && isIgnoreNewlineTag(tag) && html[0] === '\n'; };
|
8779 |
+
|
8780 |
+
function decodeAttr (value, shouldDecodeNewlines) {
|
8781 |
+
var re = shouldDecodeNewlines ? encodedAttrWithNewLines : encodedAttr;
|
8782 |
+
return value.replace(re, function (match) { return decodingMap[match]; })
|
8783 |
+
}
|
8784 |
+
|
8785 |
+
function parseHTML (html, options) {
|
8786 |
+
var stack = [];
|
8787 |
+
var expectHTML = options.expectHTML;
|
8788 |
+
var isUnaryTag$$1 = options.isUnaryTag || no;
|
8789 |
+
var canBeLeftOpenTag$$1 = options.canBeLeftOpenTag || no;
|
8790 |
+
var index = 0;
|
8791 |
+
var last, lastTag;
|
8792 |
+
while (html) {
|
8793 |
+
last = html;
|
8794 |
+
// Make sure we're not in a plaintext content element like script/style
|
8795 |
+
if (!lastTag || !isPlainTextElement(lastTag)) {
|
8796 |
+
var textEnd = html.indexOf('<');
|
8797 |
+
if (textEnd === 0) {
|
8798 |
+
// Comment:
|
8799 |
+
if (comment.test(html)) {
|
8800 |
+
var commentEnd = html.indexOf('-->');
|
8801 |
+
|
8802 |
+
if (commentEnd >= 0) {
|
8803 |
+
if (options.shouldKeepComment) {
|
8804 |
+
options.comment(html.substring(4, commentEnd));
|
8805 |
+
}
|
8806 |
+
advance(commentEnd + 3);
|
8807 |
+
continue
|
8808 |
+
}
|
8809 |
+
}
|
8810 |
+
|
8811 |
+
// http://en.wikipedia.org/wiki/Conditional_comment#Downlevel-revealed_conditional_comment
|
8812 |
+
if (conditionalComment.test(html)) {
|
8813 |
+
var conditionalEnd = html.indexOf(']>');
|
8814 |
+
|
8815 |
+
if (conditionalEnd >= 0) {
|
8816 |
+
advance(conditionalEnd + 2);
|
8817 |
+
continue
|
8818 |
+
}
|
8819 |
+
}
|
8820 |
+
|
8821 |
+
// Doctype:
|
8822 |
+
var doctypeMatch = html.match(doctype);
|
8823 |
+
if (doctypeMatch) {
|
8824 |
+
advance(doctypeMatch[0].length);
|
8825 |
+
continue
|
8826 |
+
}
|
8827 |
+
|
8828 |
+
// End tag:
|
8829 |
+
var endTagMatch = html.match(endTag);
|
8830 |
+
if (endTagMatch) {
|
8831 |
+
var curIndex = index;
|
8832 |
+
advance(endTagMatch[0].length);
|
8833 |
+
parseEndTag(endTagMatch[1], curIndex, index);
|
8834 |
+
continue
|
8835 |
+
}
|
8836 |
+
|
8837 |
+
// Start tag:
|
8838 |
+
var startTagMatch = parseStartTag();
|
8839 |
+
if (startTagMatch) {
|
8840 |
+
handleStartTag(startTagMatch);
|
8841 |
+
if (shouldIgnoreFirstNewline(lastTag, html)) {
|
8842 |
+
advance(1);
|
8843 |
+
}
|
8844 |
+
continue
|
8845 |
+
}
|
8846 |
+
}
|
8847 |
+
|
8848 |
+
var text = (void 0), rest = (void 0), next = (void 0);
|
8849 |
+
if (textEnd >= 0) {
|
8850 |
+
rest = html.slice(textEnd);
|
8851 |
+
while (
|
8852 |
+
!endTag.test(rest) &&
|
8853 |
+
!startTagOpen.test(rest) &&
|
8854 |
+
!comment.test(rest) &&
|
8855 |
+
!conditionalComment.test(rest)
|
8856 |
+
) {
|
8857 |
+
// < in plain text, be forgiving and treat it as text
|
8858 |
+
next = rest.indexOf('<', 1);
|
8859 |
+
if (next < 0) { break }
|
8860 |
+
textEnd += next;
|
8861 |
+
rest = html.slice(textEnd);
|
8862 |
+
}
|
8863 |
+
text = html.substring(0, textEnd);
|
8864 |
+
advance(textEnd);
|
8865 |
+
}
|
8866 |
+
|
8867 |
+
if (textEnd < 0) {
|
8868 |
+
text = html;
|
8869 |
+
html = '';
|
8870 |
+
}
|
8871 |
+
|
8872 |
+
if (options.chars && text) {
|
8873 |
+
options.chars(text);
|
8874 |
+
}
|
8875 |
+
} else {
|
8876 |
+
var endTagLength = 0;
|
8877 |
+
var stackedTag = lastTag.toLowerCase();
|
8878 |
+
var reStackedTag = reCache[stackedTag] || (reCache[stackedTag] = new RegExp('([\\s\\S]*?)(</' + stackedTag + '[^>]*>)', 'i'));
|
8879 |
+
var rest$1 = html.replace(reStackedTag, function (all, text, endTag) {
|
8880 |
+
endTagLength = endTag.length;
|
8881 |
+
if (!isPlainTextElement(stackedTag) && stackedTag !== 'noscript') {
|
8882 |
+
text = text
|
8883 |
+
.replace(/<!\--([\s\S]*?)-->/g, '$1') // #7298
|
8884 |
+
.replace(/<!\[CDATA\[([\s\S]*?)]]>/g, '$1');
|
8885 |
+
}
|
8886 |
+
if (shouldIgnoreFirstNewline(stackedTag, text)) {
|
8887 |
+
text = text.slice(1);
|
8888 |
+
}
|
8889 |
+
if (options.chars) {
|
8890 |
+
options.chars(text);
|
8891 |
+
}
|
8892 |
+
return ''
|
8893 |
+
});
|
8894 |
+
index += html.length - rest$1.length;
|
8895 |
+
html = rest$1;
|
8896 |
+
parseEndTag(stackedTag, index - endTagLength, index);
|
8897 |
+
}
|
8898 |
+
|
8899 |
+
if (html === last) {
|
8900 |
+
options.chars && options.chars(html);
|
8901 |
+
if ("development" !== 'production' && !stack.length && options.warn) {
|
8902 |
+
options.warn(("Mal-formatted tag at end of template: \"" + html + "\""));
|
8903 |
+
}
|
8904 |
+
break
|
8905 |
+
}
|
8906 |
+
}
|
8907 |
+
|
8908 |
+
// Clean up any remaining tags
|
8909 |
+
parseEndTag();
|
8910 |
+
|
8911 |
+
function advance (n) {
|
8912 |
+
index += n;
|
8913 |
+
html = html.substring(n);
|
8914 |
+
}
|
8915 |
+
|
8916 |
+
function parseStartTag () {
|
8917 |
+
var start = html.match(startTagOpen);
|
8918 |
+
if (start) {
|
8919 |
+
var match = {
|
8920 |
+
tagName: start[1],
|
8921 |
+
attrs: [],
|
8922 |
+
start: index
|
8923 |
+
};
|
8924 |
+
advance(start[0].length);
|
8925 |
+
var end, attr;
|
8926 |
+
while (!(end = html.match(startTagClose)) && (attr = html.match(attribute))) {
|
8927 |
+
advance(attr[0].length);
|
8928 |
+
match.attrs.push(attr);
|
8929 |
+
}
|
8930 |
+
if (end) {
|
8931 |
+
match.unarySlash = end[1];
|
8932 |
+
advance(end[0].length);
|
8933 |
+
match.end = index;
|
8934 |
+
return match
|
8935 |
+
}
|
8936 |
+
}
|
8937 |
+
}
|
8938 |
+
|
8939 |
+
function handleStartTag (match) {
|
8940 |
+
var tagName = match.tagName;
|
8941 |
+
var unarySlash = match.unarySlash;
|
8942 |
+
|
8943 |
+
if (expectHTML) {
|
8944 |
+
if (lastTag === 'p' && isNonPhrasingTag(tagName)) {
|
8945 |
+
parseEndTag(lastTag);
|
8946 |
+
}
|
8947 |
+
if (canBeLeftOpenTag$$1(tagName) && lastTag === tagName) {
|
8948 |
+
parseEndTag(tagName);
|
8949 |
+
}
|
8950 |
+
}
|
8951 |
+
|
8952 |
+
var unary = isUnaryTag$$1(tagName) || !!unarySlash;
|
8953 |
+
|
8954 |
+
var l = match.attrs.length;
|
8955 |
+
var attrs = new Array(l);
|
8956 |
+
for (var i = 0; i < l; i++) {
|
8957 |
+
var args = match.attrs[i];
|
8958 |
+
// hackish work around FF bug https://bugzilla.mozilla.org/show_bug.cgi?id=369778
|
8959 |
+
if (IS_REGEX_CAPTURING_BROKEN && args[0].indexOf('""') === -1) {
|
8960 |
+
if (args[3] === '') { delete args[3]; }
|
8961 |
+
if (args[4] === '') { delete args[4]; }
|
8962 |
+
if (args[5] === '') { delete args[5]; }
|
8963 |
+
}
|
8964 |
+
var value = args[3] || args[4] || args[5] || '';
|
8965 |
+
var shouldDecodeNewlines = tagName === 'a' && args[1] === 'href'
|
8966 |
+
? options.shouldDecodeNewlinesForHref
|
8967 |
+
: options.shouldDecodeNewlines;
|
8968 |
+
attrs[i] = {
|
8969 |
+
name: args[1],
|
8970 |
+
value: decodeAttr(value, shouldDecodeNewlines)
|
8971 |
+
};
|
8972 |
+
}
|
8973 |
+
|
8974 |
+
if (!unary) {
|
8975 |
+
stack.push({ tag: tagName, lowerCasedTag: tagName.toLowerCase(), attrs: attrs });
|
8976 |
+
lastTag = tagName;
|
8977 |
+
}
|
8978 |
+
|
8979 |
+
if (options.start) {
|
8980 |
+
options.start(tagName, attrs, unary, match.start, match.end);
|
8981 |
+
}
|
8982 |
+
}
|
8983 |
+
|
8984 |
+
function parseEndTag (tagName, start, end) {
|
8985 |
+
var pos, lowerCasedTagName;
|
8986 |
+
if (start == null) { start = index; }
|
8987 |
+
if (end == null) { end = index; }
|
8988 |
+
|
8989 |
+
if (tagName) {
|
8990 |
+
lowerCasedTagName = tagName.toLowerCase();
|
8991 |
+
}
|
8992 |
+
|
8993 |
+
// Find the closest opened tag of the same type
|
8994 |
+
if (tagName) {
|
8995 |
+
for (pos = stack.length - 1; pos >= 0; pos--) {
|
8996 |
+
if (stack[pos].lowerCasedTag === lowerCasedTagName) {
|
8997 |
+
break
|
8998 |
+
}
|
8999 |
+
}
|
9000 |
+
} else {
|
9001 |
+
// If no tag name is provided, clean shop
|
9002 |
+
pos = 0;
|
9003 |
+
}
|
9004 |
+
|
9005 |
+
if (pos >= 0) {
|
9006 |
+
// Close all the open elements, up the stack
|
9007 |
+
for (var i = stack.length - 1; i >= pos; i--) {
|
9008 |
+
if ("development" !== 'production' &&
|
9009 |
+
(i > pos || !tagName) &&
|
9010 |
+
options.warn
|
9011 |
+
) {
|
9012 |
+
options.warn(
|
9013 |
+
("tag <" + (stack[i].tag) + "> has no matching end tag.")
|
9014 |
+
);
|
9015 |
+
}
|
9016 |
+
if (options.end) {
|
9017 |
+
options.end(stack[i].tag, start, end);
|
9018 |
+
}
|
9019 |
+
}
|
9020 |
+
|
9021 |
+
// Remove the open elements from the stack
|
9022 |
+
stack.length = pos;
|
9023 |
+
lastTag = pos && stack[pos - 1].tag;
|
9024 |
+
} else if (lowerCasedTagName === 'br') {
|
9025 |
+
if (options.start) {
|
9026 |
+
options.start(tagName, [], true, start, end);
|
9027 |
+
}
|
9028 |
+
} else if (lowerCasedTagName === 'p') {
|
9029 |
+
if (options.start) {
|
9030 |
+
options.start(tagName, [], false, start, end);
|
9031 |
+
}
|
9032 |
+
if (options.end) {
|
9033 |
+
options.end(tagName, start, end);
|
9034 |
+
}
|
9035 |
+
}
|
9036 |
+
}
|
9037 |
+
}
|
9038 |
+
|
9039 |
+
/* */
|
9040 |
+
|
9041 |
+
var onRE = /^@|^v-on:/;
|
9042 |
+
var dirRE = /^v-|^@|^:/;
|
9043 |
+
var forAliasRE = /([^]*?)\s+(?:in|of)\s+([^]*)/;
|
9044 |
+
var forIteratorRE = /,([^,\}\]]*)(?:,([^,\}\]]*))?$/;
|
9045 |
+
var stripParensRE = /^\(|\)$/g;
|
9046 |
+
|
9047 |
+
var argRE = /:(.*)$/;
|
9048 |
+
var bindRE = /^:|^v-bind:/;
|
9049 |
+
var modifierRE = /\.[^.]+/g;
|
9050 |
+
|
9051 |
+
var decodeHTMLCached = cached(he.decode);
|
9052 |
+
|
9053 |
+
// configurable state
|
9054 |
+
var warn$2;
|
9055 |
+
var delimiters;
|
9056 |
+
var transforms;
|
9057 |
+
var preTransforms;
|
9058 |
+
var postTransforms;
|
9059 |
+
var platformIsPreTag;
|
9060 |
+
var platformMustUseProp;
|
9061 |
+
var platformGetTagNamespace;
|
9062 |
+
|
9063 |
+
|
9064 |
+
|
9065 |
+
function createASTElement (
|
9066 |
+
tag,
|
9067 |
+
attrs,
|
9068 |
+
parent
|
9069 |
+
) {
|
9070 |
+
return {
|
9071 |
+
type: 1,
|
9072 |
+
tag: tag,
|
9073 |
+
attrsList: attrs,
|
9074 |
+
attrsMap: makeAttrsMap(attrs),
|
9075 |
+
parent: parent,
|
9076 |
+
children: []
|
9077 |
+
}
|
9078 |
+
}
|
9079 |
+
|
9080 |
+
/**
|
9081 |
+
* Convert HTML string to AST.
|
9082 |
+
*/
|
9083 |
+
function parse (
|
9084 |
+
template,
|
9085 |
+
options
|
9086 |
+
) {
|
9087 |
+
warn$2 = options.warn || baseWarn;
|
9088 |
+
|
9089 |
+
platformIsPreTag = options.isPreTag || no;
|
9090 |
+
platformMustUseProp = options.mustUseProp || no;
|
9091 |
+
platformGetTagNamespace = options.getTagNamespace || no;
|
9092 |
+
|
9093 |
+
transforms = pluckModuleFunction(options.modules, 'transformNode');
|
9094 |
+
preTransforms = pluckModuleFunction(options.modules, 'preTransformNode');
|
9095 |
+
postTransforms = pluckModuleFunction(options.modules, 'postTransformNode');
|
9096 |
+
|
9097 |
+
delimiters = options.delimiters;
|
9098 |
+
|
9099 |
+
var stack = [];
|
9100 |
+
var preserveWhitespace = options.preserveWhitespace !== false;
|
9101 |
+
var root;
|
9102 |
+
var currentParent;
|
9103 |
+
var inVPre = false;
|
9104 |
+
var inPre = false;
|
9105 |
+
var warned = false;
|
9106 |
+
|
9107 |
+
function warnOnce (msg) {
|
9108 |
+
if (!warned) {
|
9109 |
+
warned = true;
|
9110 |
+
warn$2(msg);
|
9111 |
+
}
|
9112 |
+
}
|
9113 |
+
|
9114 |
+
function closeElement (element) {
|
9115 |
+
// check pre state
|
9116 |
+
if (element.pre) {
|
9117 |
+
inVPre = false;
|
9118 |
+
}
|
9119 |
+
if (platformIsPreTag(element.tag)) {
|
9120 |
+
inPre = false;
|
9121 |
+
}
|
9122 |
+
// apply post-transforms
|
9123 |
+
for (var i = 0; i < postTransforms.length; i++) {
|
9124 |
+
postTransforms[i](element, options);
|
9125 |
+
}
|
9126 |
+
}
|
9127 |
+
|
9128 |
+
parseHTML(template, {
|
9129 |
+
warn: warn$2,
|
9130 |
+
expectHTML: options.expectHTML,
|
9131 |
+
isUnaryTag: options.isUnaryTag,
|
9132 |
+
canBeLeftOpenTag: options.canBeLeftOpenTag,
|
9133 |
+
shouldDecodeNewlines: options.shouldDecodeNewlines,
|
9134 |
+
shouldDecodeNewlinesForHref: options.shouldDecodeNewlinesForHref,
|
9135 |
+
shouldKeepComment: options.comments,
|
9136 |
+
start: function start (tag, attrs, unary) {
|
9137 |
+
// check namespace.
|
9138 |
+
// inherit parent ns if there is one
|
9139 |
+
var ns = (currentParent && currentParent.ns) || platformGetTagNamespace(tag);
|
9140 |
+
|
9141 |
+
// handle IE svg bug
|
9142 |
+
/* istanbul ignore if */
|
9143 |
+
if (isIE && ns === 'svg') {
|
9144 |
+
attrs = guardIESVGBug(attrs);
|
9145 |
+
}
|
9146 |
+
|
9147 |
+
var element = createASTElement(tag, attrs, currentParent);
|
9148 |
+
if (ns) {
|
9149 |
+
element.ns = ns;
|
9150 |
+
}
|
9151 |
+
|
9152 |
+
if (isForbiddenTag(element) && !isServerRendering()) {
|
9153 |
+
element.forbidden = true;
|
9154 |
+
"development" !== 'production' && warn$2(
|
9155 |
+
'Templates should only be responsible for mapping the state to the ' +
|
9156 |
+
'UI. Avoid placing tags with side-effects in your templates, such as ' +
|
9157 |
+
"<" + tag + ">" + ', as they will not be parsed.'
|
9158 |
+
);
|
9159 |
+
}
|
9160 |
+
|
9161 |
+
// apply pre-transforms
|
9162 |
+
for (var i = 0; i < preTransforms.length; i++) {
|
9163 |
+
element = preTransforms[i](element, options) || element;
|
9164 |
+
}
|
9165 |
+
|
9166 |
+
if (!inVPre) {
|
9167 |
+
processPre(element);
|
9168 |
+
if (element.pre) {
|
9169 |
+
inVPre = true;
|
9170 |
+
}
|
9171 |
+
}
|
9172 |
+
if (platformIsPreTag(element.tag)) {
|
9173 |
+
inPre = true;
|
9174 |
+
}
|
9175 |
+
if (inVPre) {
|
9176 |
+
processRawAttrs(element);
|
9177 |
+
} else if (!element.processed) {
|
9178 |
+
// structural directives
|
9179 |
+
processFor(element);
|
9180 |
+
processIf(element);
|
9181 |
+
processOnce(element);
|
9182 |
+
// element-scope stuff
|
9183 |
+
processElement(element, options);
|
9184 |
+
}
|
9185 |
+
|
9186 |
+
function checkRootConstraints (el) {
|
9187 |
+
{
|
9188 |
+
if (el.tag === 'slot' || el.tag === 'template') {
|
9189 |
+
warnOnce(
|
9190 |
+
"Cannot use <" + (el.tag) + "> as component root element because it may " +
|
9191 |
+
'contain multiple nodes.'
|
9192 |
+
);
|
9193 |
+
}
|
9194 |
+
if (el.attrsMap.hasOwnProperty('v-for')) {
|
9195 |
+
warnOnce(
|
9196 |
+
'Cannot use v-for on stateful component root element because ' +
|
9197 |
+
'it renders multiple elements.'
|
9198 |
+
);
|
9199 |
+
}
|
9200 |
+
}
|
9201 |
+
}
|
9202 |
+
|
9203 |
+
// tree management
|
9204 |
+
if (!root) {
|
9205 |
+
root = element;
|
9206 |
+
checkRootConstraints(root);
|
9207 |
+
} else if (!stack.length) {
|
9208 |
+
// allow root elements with v-if, v-else-if and v-else
|
9209 |
+
if (root.if && (element.elseif || element.else)) {
|
9210 |
+
checkRootConstraints(element);
|
9211 |
+
addIfCondition(root, {
|
9212 |
+
exp: element.elseif,
|
9213 |
+
block: element
|
9214 |
+
});
|
9215 |
+
} else {
|
9216 |
+
warnOnce(
|
9217 |
+
"Component template should contain exactly one root element. " +
|
9218 |
+
"If you are using v-if on multiple elements, " +
|
9219 |
+
"use v-else-if to chain them instead."
|
9220 |
+
);
|
9221 |
+
}
|
9222 |
+
}
|
9223 |
+
if (currentParent && !element.forbidden) {
|
9224 |
+
if (element.elseif || element.else) {
|
9225 |
+
processIfConditions(element, currentParent);
|
9226 |
+
} else if (element.slotScope) { // scoped slot
|
9227 |
+
currentParent.plain = false;
|
9228 |
+
var name = element.slotTarget || '"default"';(currentParent.scopedSlots || (currentParent.scopedSlots = {}))[name] = element;
|
9229 |
+
} else {
|
9230 |
+
currentParent.children.push(element);
|
9231 |
+
element.parent = currentParent;
|
9232 |
+
}
|
9233 |
+
}
|
9234 |
+
if (!unary) {
|
9235 |
+
currentParent = element;
|
9236 |
+
stack.push(element);
|
9237 |
+
} else {
|
9238 |
+
closeElement(element);
|
9239 |
+
}
|
9240 |
+
},
|
9241 |
+
|
9242 |
+
end: function end () {
|
9243 |
+
// remove trailing whitespace
|
9244 |
+
var element = stack[stack.length - 1];
|
9245 |
+
var lastNode = element.children[element.children.length - 1];
|
9246 |
+
if (lastNode && lastNode.type === 3 && lastNode.text === ' ' && !inPre) {
|
9247 |
+
element.children.pop();
|
9248 |
+
}
|
9249 |
+
// pop stack
|
9250 |
+
stack.length -= 1;
|
9251 |
+
currentParent = stack[stack.length - 1];
|
9252 |
+
closeElement(element);
|
9253 |
+
},
|
9254 |
+
|
9255 |
+
chars: function chars (text) {
|
9256 |
+
if (!currentParent) {
|
9257 |
+
{
|
9258 |
+
if (text === template) {
|
9259 |
+
warnOnce(
|
9260 |
+
'Component template requires a root element, rather than just text.'
|
9261 |
+
);
|
9262 |
+
} else if ((text = text.trim())) {
|
9263 |
+
warnOnce(
|
9264 |
+
("text \"" + text + "\" outside root element will be ignored.")
|
9265 |
+
);
|
9266 |
+
}
|
9267 |
+
}
|
9268 |
+
return
|
9269 |
+
}
|
9270 |
+
// IE textarea placeholder bug
|
9271 |
+
/* istanbul ignore if */
|
9272 |
+
if (isIE &&
|
9273 |
+
currentParent.tag === 'textarea' &&
|
9274 |
+
currentParent.attrsMap.placeholder === text
|
9275 |
+
) {
|
9276 |
+
return
|
9277 |
+
}
|
9278 |
+
var children = currentParent.children;
|
9279 |
+
text = inPre || text.trim()
|
9280 |
+
? isTextTag(currentParent) ? text : decodeHTMLCached(text)
|
9281 |
+
// only preserve whitespace if its not right after a starting tag
|
9282 |
+
: preserveWhitespace && children.length ? ' ' : '';
|
9283 |
+
if (text) {
|
9284 |
+
var res;
|
9285 |
+
if (!inVPre && text !== ' ' && (res = parseText(text, delimiters))) {
|
9286 |
+
children.push({
|
9287 |
+
type: 2,
|
9288 |
+
expression: res.expression,
|
9289 |
+
tokens: res.tokens,
|
9290 |
+
text: text
|
9291 |
+
});
|
9292 |
+
} else if (text !== ' ' || !children.length || children[children.length - 1].text !== ' ') {
|
9293 |
+
children.push({
|
9294 |
+
type: 3,
|
9295 |
+
text: text
|
9296 |
+
});
|
9297 |
+
}
|
9298 |
+
}
|
9299 |
+
},
|
9300 |
+
comment: function comment (text) {
|
9301 |
+
currentParent.children.push({
|
9302 |
+
type: 3,
|
9303 |
+
text: text,
|
9304 |
+
isComment: true
|
9305 |
+
});
|
9306 |
+
}
|
9307 |
+
});
|
9308 |
+
return root
|
9309 |
+
}
|
9310 |
+
|
9311 |
+
function processPre (el) {
|
9312 |
+
if (getAndRemoveAttr(el, 'v-pre') != null) {
|
9313 |
+
el.pre = true;
|
9314 |
+
}
|
9315 |
+
}
|
9316 |
+
|
9317 |
+
function processRawAttrs (el) {
|
9318 |
+
var l = el.attrsList.length;
|
9319 |
+
if (l) {
|
9320 |
+
var attrs = el.attrs = new Array(l);
|
9321 |
+
for (var i = 0; i < l; i++) {
|
9322 |
+
attrs[i] = {
|
9323 |
+
name: el.attrsList[i].name,
|
9324 |
+
value: JSON.stringify(el.attrsList[i].value)
|
9325 |
+
};
|
9326 |
+
}
|
9327 |
+
} else if (!el.pre) {
|
9328 |
+
// non root node in pre blocks with no attributes
|
9329 |
+
el.plain = true;
|
9330 |
+
}
|
9331 |
+
}
|
9332 |
+
|
9333 |
+
function processElement (element, options) {
|
9334 |
+
processKey(element);
|
9335 |
+
|
9336 |
+
// determine whether this is a plain element after
|
9337 |
+
// removing structural attributes
|
9338 |
+
element.plain = !element.key && !element.attrsList.length;
|
9339 |
+
|
9340 |
+
processRef(element);
|
9341 |
+
processSlot(element);
|
9342 |
+
processComponent(element);
|
9343 |
+
for (var i = 0; i < transforms.length; i++) {
|
9344 |
+
element = transforms[i](element, options) || element;
|
9345 |
+
}
|
9346 |
+
processAttrs(element);
|
9347 |
+
}
|
9348 |
+
|
9349 |
+
function processKey (el) {
|
9350 |
+
var exp = getBindingAttr(el, 'key');
|
9351 |
+
if (exp) {
|
9352 |
+
if ("development" !== 'production' && el.tag === 'template') {
|
9353 |
+
warn$2("<template> cannot be keyed. Place the key on real elements instead.");
|
9354 |
+
}
|
9355 |
+
el.key = exp;
|
9356 |
+
}
|
9357 |
+
}
|
9358 |
+
|
9359 |
+
function processRef (el) {
|
9360 |
+
var ref = getBindingAttr(el, 'ref');
|
9361 |
+
if (ref) {
|
9362 |
+
el.ref = ref;
|
9363 |
+
el.refInFor = checkInFor(el);
|
9364 |
+
}
|
9365 |
+
}
|
9366 |
+
|
9367 |
+
function processFor (el) {
|
9368 |
+
var exp;
|
9369 |
+
if ((exp = getAndRemoveAttr(el, 'v-for'))) {
|
9370 |
+
var res = parseFor(exp);
|
9371 |
+
if (res) {
|
9372 |
+
extend(el, res);
|
9373 |
+
} else {
|
9374 |
+
warn$2(
|
9375 |
+
("Invalid v-for expression: " + exp)
|
9376 |
+
);
|
9377 |
+
}
|
9378 |
+
}
|
9379 |
+
}
|
9380 |
+
|
9381 |
+
|
9382 |
+
|
9383 |
+
function parseFor (exp) {
|
9384 |
+
var inMatch = exp.match(forAliasRE);
|
9385 |
+
if (!inMatch) { return }
|
9386 |
+
var res = {};
|
9387 |
+
res.for = inMatch[2].trim();
|
9388 |
+
var alias = inMatch[1].trim().replace(stripParensRE, '');
|
9389 |
+
var iteratorMatch = alias.match(forIteratorRE);
|
9390 |
+
if (iteratorMatch) {
|
9391 |
+
res.alias = alias.replace(forIteratorRE, '');
|
9392 |
+
res.iterator1 = iteratorMatch[1].trim();
|
9393 |
+
if (iteratorMatch[2]) {
|
9394 |
+
res.iterator2 = iteratorMatch[2].trim();
|
9395 |
+
}
|
9396 |
+
} else {
|
9397 |
+
res.alias = alias;
|
9398 |
+
}
|
9399 |
+
return res
|
9400 |
+
}
|
9401 |
+
|
9402 |
+
function processIf (el) {
|
9403 |
+
var exp = getAndRemoveAttr(el, 'v-if');
|
9404 |
+
if (exp) {
|
9405 |
+
el.if = exp;
|
9406 |
+
addIfCondition(el, {
|
9407 |
+
exp: exp,
|
9408 |
+
block: el
|
9409 |
+
});
|
9410 |
+
} else {
|
9411 |
+
if (getAndRemoveAttr(el, 'v-else') != null) {
|
9412 |
+
el.else = true;
|
9413 |
+
}
|
9414 |
+
var elseif = getAndRemoveAttr(el, 'v-else-if');
|
9415 |
+
if (elseif) {
|
9416 |
+
el.elseif = elseif;
|
9417 |
+
}
|
9418 |
+
}
|
9419 |
+
}
|
9420 |
+
|
9421 |
+
function processIfConditions (el, parent) {
|
9422 |
+
var prev = findPrevElement(parent.children);
|
9423 |
+
if (prev && prev.if) {
|
9424 |
+
addIfCondition(prev, {
|
9425 |
+
exp: el.elseif,
|
9426 |
+
block: el
|
9427 |
+
});
|
9428 |
+
} else {
|
9429 |
+
warn$2(
|
9430 |
+
"v-" + (el.elseif ? ('else-if="' + el.elseif + '"') : 'else') + " " +
|
9431 |
+
"used on element <" + (el.tag) + "> without corresponding v-if."
|
9432 |
+
);
|
9433 |
+
}
|
9434 |
+
}
|
9435 |
+
|
9436 |
+
function findPrevElement (children) {
|
9437 |
+
var i = children.length;
|
9438 |
+
while (i--) {
|
9439 |
+
if (children[i].type === 1) {
|
9440 |
+
return children[i]
|
9441 |
+
} else {
|
9442 |
+
if ("development" !== 'production' && children[i].text !== ' ') {
|
9443 |
+
warn$2(
|
9444 |
+
"text \"" + (children[i].text.trim()) + "\" between v-if and v-else(-if) " +
|
9445 |
+
"will be ignored."
|
9446 |
+
);
|
9447 |
+
}
|
9448 |
+
children.pop();
|
9449 |
+
}
|
9450 |
+
}
|
9451 |
+
}
|
9452 |
+
|
9453 |
+
function addIfCondition (el, condition) {
|
9454 |
+
if (!el.ifConditions) {
|
9455 |
+
el.ifConditions = [];
|
9456 |
+
}
|
9457 |
+
el.ifConditions.push(condition);
|
9458 |
+
}
|
9459 |
+
|
9460 |
+
function processOnce (el) {
|
9461 |
+
var once$$1 = getAndRemoveAttr(el, 'v-once');
|
9462 |
+
if (once$$1 != null) {
|
9463 |
+
el.once = true;
|
9464 |
+
}
|
9465 |
+
}
|
9466 |
+
|
9467 |
+
function processSlot (el) {
|
9468 |
+
if (el.tag === 'slot') {
|
9469 |
+
el.slotName = getBindingAttr(el, 'name');
|
9470 |
+
if ("development" !== 'production' && el.key) {
|
9471 |
+
warn$2(
|
9472 |
+
"`key` does not work on <slot> because slots are abstract outlets " +
|
9473 |
+
"and can possibly expand into multiple elements. " +
|
9474 |
+
"Use the key on a wrapping element instead."
|
9475 |
+
);
|
9476 |
+
}
|
9477 |
+
} else {
|
9478 |
+
var slotScope;
|
9479 |
+
if (el.tag === 'template') {
|
9480 |
+
slotScope = getAndRemoveAttr(el, 'scope');
|
9481 |
+
/* istanbul ignore if */
|
9482 |
+
if ("development" !== 'production' && slotScope) {
|
9483 |
+
warn$2(
|
9484 |
+
"the \"scope\" attribute for scoped slots have been deprecated and " +
|
9485 |
+
"replaced by \"slot-scope\" since 2.5. The new \"slot-scope\" attribute " +
|
9486 |
+
"can also be used on plain elements in addition to <template> to " +
|
9487 |
+
"denote scoped slots.",
|
9488 |
+
true
|
9489 |
+
);
|
9490 |
+
}
|
9491 |
+
el.slotScope = slotScope || getAndRemoveAttr(el, 'slot-scope');
|
9492 |
+
} else if ((slotScope = getAndRemoveAttr(el, 'slot-scope'))) {
|
9493 |
+
/* istanbul ignore if */
|
9494 |
+
if ("development" !== 'production' && el.attrsMap['v-for']) {
|
9495 |
+
warn$2(
|
9496 |
+
"Ambiguous combined usage of slot-scope and v-for on <" + (el.tag) + "> " +
|
9497 |
+
"(v-for takes higher priority). Use a wrapper <template> for the " +
|
9498 |
+
"scoped slot to make it clearer.",
|
9499 |
+
true
|
9500 |
+
);
|
9501 |
+
}
|
9502 |
+
el.slotScope = slotScope;
|
9503 |
+
}
|
9504 |
+
var slotTarget = getBindingAttr(el, 'slot');
|
9505 |
+
if (slotTarget) {
|
9506 |
+
el.slotTarget = slotTarget === '""' ? '"default"' : slotTarget;
|
9507 |
+
// preserve slot as an attribute for native shadow DOM compat
|
9508 |
+
// only for non-scoped slots.
|
9509 |
+
if (el.tag !== 'template' && !el.slotScope) {
|
9510 |
+
addAttr(el, 'slot', slotTarget);
|
9511 |
+
}
|
9512 |
+
}
|
9513 |
+
}
|
9514 |
+
}
|
9515 |
+
|
9516 |
+
function processComponent (el) {
|
9517 |
+
var binding;
|
9518 |
+
if ((binding = getBindingAttr(el, 'is'))) {
|
9519 |
+
el.component = binding;
|
9520 |
+
}
|
9521 |
+
if (getAndRemoveAttr(el, 'inline-template') != null) {
|
9522 |
+
el.inlineTemplate = true;
|
9523 |
+
}
|
9524 |
+
}
|
9525 |
+
|
9526 |
+
function processAttrs (el) {
|
9527 |
+
var list = el.attrsList;
|
9528 |
+
var i, l, name, rawName, value, modifiers, isProp;
|
9529 |
+
for (i = 0, l = list.length; i < l; i++) {
|
9530 |
+
name = rawName = list[i].name;
|
9531 |
+
value = list[i].value;
|
9532 |
+
if (dirRE.test(name)) {
|
9533 |
+
// mark element as dynamic
|
9534 |
+
el.hasBindings = true;
|
9535 |
+
// modifiers
|
9536 |
+
modifiers = parseModifiers(name);
|
9537 |
+
if (modifiers) {
|
9538 |
+
name = name.replace(modifierRE, '');
|
9539 |
+
}
|
9540 |
+
if (bindRE.test(name)) { // v-bind
|
9541 |
+
name = name.replace(bindRE, '');
|
9542 |
+
value = parseFilters(value);
|
9543 |
+
isProp = false;
|
9544 |
+
if (modifiers) {
|
9545 |
+
if (modifiers.prop) {
|
9546 |
+
isProp = true;
|
9547 |
+
name = camelize(name);
|
9548 |
+
if (name === 'innerHtml') { name = 'innerHTML'; }
|
9549 |
+
}
|
9550 |
+
if (modifiers.camel) {
|
9551 |
+
name = camelize(name);
|
9552 |
+
}
|
9553 |
+
if (modifiers.sync) {
|
9554 |
+
addHandler(
|
9555 |
+
el,
|
9556 |
+
("update:" + (camelize(name))),
|
9557 |
+
genAssignmentCode(value, "$event")
|
9558 |
+
);
|
9559 |
+
}
|
9560 |
+
}
|
9561 |
+
if (isProp || (
|
9562 |
+
!el.component && platformMustUseProp(el.tag, el.attrsMap.type, name)
|
9563 |
+
)) {
|
9564 |
+
addProp(el, name, value);
|
9565 |
+
} else {
|
9566 |
+
addAttr(el, name, value);
|
9567 |
+
}
|
9568 |
+
} else if (onRE.test(name)) { // v-on
|
9569 |
+
name = name.replace(onRE, '');
|
9570 |
+
addHandler(el, name, value, modifiers, false, warn$2);
|
9571 |
+
} else { // normal directives
|
9572 |
+
name = name.replace(dirRE, '');
|
9573 |
+
// parse arg
|
9574 |
+
var argMatch = name.match(argRE);
|
9575 |
+
var arg = argMatch && argMatch[1];
|
9576 |
+
if (arg) {
|
9577 |
+
name = name.slice(0, -(arg.length + 1));
|
9578 |
+
}
|
9579 |
+
addDirective(el, name, rawName, value, arg, modifiers);
|
9580 |
+
if ("development" !== 'production' && name === 'model') {
|
9581 |
+
checkForAliasModel(el, value);
|
9582 |
+
}
|
9583 |
+
}
|
9584 |
+
} else {
|
9585 |
+
// literal attribute
|
9586 |
+
{
|
9587 |
+
var res = parseText(value, delimiters);
|
9588 |
+
if (res) {
|
9589 |
+
warn$2(
|
9590 |
+
name + "=\"" + value + "\": " +
|
9591 |
+
'Interpolation inside attributes has been removed. ' +
|
9592 |
+
'Use v-bind or the colon shorthand instead. For example, ' +
|
9593 |
+
'instead of <div id="{{ val }}">, use <div :id="val">.'
|
9594 |
+
);
|
9595 |
+
}
|
9596 |
+
}
|
9597 |
+
addAttr(el, name, JSON.stringify(value));
|
9598 |
+
// #6887 firefox doesn't update muted state if set via attribute
|
9599 |
+
// even immediately after element creation
|
9600 |
+
if (!el.component &&
|
9601 |
+
name === 'muted' &&
|
9602 |
+
platformMustUseProp(el.tag, el.attrsMap.type, name)) {
|
9603 |
+
addProp(el, name, 'true');
|
9604 |
+
}
|
9605 |
+
}
|
9606 |
+
}
|
9607 |
+
}
|
9608 |
+
|
9609 |
+
function checkInFor (el) {
|
9610 |
+
var parent = el;
|
9611 |
+
while (parent) {
|
9612 |
+
if (parent.for !== undefined) {
|
9613 |
+
return true
|
9614 |
+
}
|
9615 |
+
parent = parent.parent;
|
9616 |
+
}
|
9617 |
+
return false
|
9618 |
+
}
|
9619 |
+
|
9620 |
+
function parseModifiers (name) {
|
9621 |
+
var match = name.match(modifierRE);
|
9622 |
+
if (match) {
|
9623 |
+
var ret = {};
|
9624 |
+
match.forEach(function (m) { ret[m.slice(1)] = true; });
|
9625 |
+
return ret
|
9626 |
+
}
|
9627 |
+
}
|
9628 |
+
|
9629 |
+
function makeAttrsMap (attrs) {
|
9630 |
+
var map = {};
|
9631 |
+
for (var i = 0, l = attrs.length; i < l; i++) {
|
9632 |
+
if (
|
9633 |
+
"development" !== 'production' &&
|
9634 |
+
map[attrs[i].name] && !isIE && !isEdge
|
9635 |
+
) {
|
9636 |
+
warn$2('duplicate attribute: ' + attrs[i].name);
|
9637 |
+
}
|
9638 |
+
map[attrs[i].name] = attrs[i].value;
|
9639 |
+
}
|
9640 |
+
return map
|
9641 |
+
}
|
9642 |
+
|
9643 |
+
// for script (e.g. type="x/template") or style, do not decode content
|
9644 |
+
function isTextTag (el) {
|
9645 |
+
return el.tag === 'script' || el.tag === 'style'
|
9646 |
+
}
|
9647 |
+
|
9648 |
+
function isForbiddenTag (el) {
|
9649 |
+
return (
|
9650 |
+
el.tag === 'style' ||
|
9651 |
+
(el.tag === 'script' && (
|
9652 |
+
!el.attrsMap.type ||
|
9653 |
+
el.attrsMap.type === 'text/javascript'
|
9654 |
+
))
|
9655 |
+
)
|
9656 |
+
}
|
9657 |
+
|
9658 |
+
var ieNSBug = /^xmlns:NS\d+/;
|
9659 |
+
var ieNSPrefix = /^NS\d+:/;
|
9660 |
+
|
9661 |
+
/* istanbul ignore next */
|
9662 |
+
function guardIESVGBug (attrs) {
|
9663 |
+
var res = [];
|
9664 |
+
for (var i = 0; i < attrs.length; i++) {
|
9665 |
+
var attr = attrs[i];
|
9666 |
+
if (!ieNSBug.test(attr.name)) {
|
9667 |
+
attr.name = attr.name.replace(ieNSPrefix, '');
|
9668 |
+
res.push(attr);
|
9669 |
+
}
|
9670 |
+
}
|
9671 |
+
return res
|
9672 |
+
}
|
9673 |
+
|
9674 |
+
function checkForAliasModel (el, value) {
|
9675 |
+
var _el = el;
|
9676 |
+
while (_el) {
|
9677 |
+
if (_el.for && _el.alias === value) {
|
9678 |
+
warn$2(
|
9679 |
+
"<" + (el.tag) + " v-model=\"" + value + "\">: " +
|
9680 |
+
"You are binding v-model directly to a v-for iteration alias. " +
|
9681 |
+
"This will not be able to modify the v-for source array because " +
|
9682 |
+
"writing to the alias is like modifying a function local variable. " +
|
9683 |
+
"Consider using an array of objects and use v-model on an object property instead."
|
9684 |
+
);
|
9685 |
+
}
|
9686 |
+
_el = _el.parent;
|
9687 |
+
}
|
9688 |
+
}
|
9689 |
+
|
9690 |
+
/* */
|
9691 |
+
|
9692 |
+
/**
|
9693 |
+
* Expand input[v-model] with dyanmic type bindings into v-if-else chains
|
9694 |
+
* Turn this:
|
9695 |
+
* <input v-model="data[type]" :type="type">
|
9696 |
+
* into this:
|
9697 |
+
* <input v-if="type === 'checkbox'" type="checkbox" v-model="data[type]">
|
9698 |
+
* <input v-else-if="type === 'radio'" type="radio" v-model="data[type]">
|
9699 |
+
* <input v-else :type="type" v-model="data[type]">
|
9700 |
+
*/
|
9701 |
+
|
9702 |
+
function preTransformNode (el, options) {
|
9703 |
+
if (el.tag === 'input') {
|
9704 |
+
var map = el.attrsMap;
|
9705 |
+
if (!map['v-model']) {
|
9706 |
+
return
|
9707 |
+
}
|
9708 |
+
|
9709 |
+
var typeBinding;
|
9710 |
+
if (map[':type'] || map['v-bind:type']) {
|
9711 |
+
typeBinding = getBindingAttr(el, 'type');
|
9712 |
+
}
|
9713 |
+
if (!map.type && !typeBinding && map['v-bind']) {
|
9714 |
+
typeBinding = "(" + (map['v-bind']) + ").type";
|
9715 |
+
}
|
9716 |
+
|
9717 |
+
if (typeBinding) {
|
9718 |
+
var ifCondition = getAndRemoveAttr(el, 'v-if', true);
|
9719 |
+
var ifConditionExtra = ifCondition ? ("&&(" + ifCondition + ")") : "";
|
9720 |
+
var hasElse = getAndRemoveAttr(el, 'v-else', true) != null;
|
9721 |
+
var elseIfCondition = getAndRemoveAttr(el, 'v-else-if', true);
|
9722 |
+
// 1. checkbox
|
9723 |
+
var branch0 = cloneASTElement(el);
|
9724 |
+
// process for on the main node
|
9725 |
+
processFor(branch0);
|
9726 |
+
addRawAttr(branch0, 'type', 'checkbox');
|
9727 |
+
processElement(branch0, options);
|
9728 |
+
branch0.processed = true; // prevent it from double-processed
|
9729 |
+
branch0.if = "(" + typeBinding + ")==='checkbox'" + ifConditionExtra;
|
9730 |
+
addIfCondition(branch0, {
|
9731 |
+
exp: branch0.if,
|
9732 |
+
block: branch0
|
9733 |
+
});
|
9734 |
+
// 2. add radio else-if condition
|
9735 |
+
var branch1 = cloneASTElement(el);
|
9736 |
+
getAndRemoveAttr(branch1, 'v-for', true);
|
9737 |
+
addRawAttr(branch1, 'type', 'radio');
|
9738 |
+
processElement(branch1, options);
|
9739 |
+
addIfCondition(branch0, {
|
9740 |
+
exp: "(" + typeBinding + ")==='radio'" + ifConditionExtra,
|
9741 |
+
block: branch1
|
9742 |
+
});
|
9743 |
+
// 3. other
|
9744 |
+
var branch2 = cloneASTElement(el);
|
9745 |
+
getAndRemoveAttr(branch2, 'v-for', true);
|
9746 |
+
addRawAttr(branch2, ':type', typeBinding);
|
9747 |
+
processElement(branch2, options);
|
9748 |
+
addIfCondition(branch0, {
|
9749 |
+
exp: ifCondition,
|
9750 |
+
block: branch2
|
9751 |
+
});
|
9752 |
+
|
9753 |
+
if (hasElse) {
|
9754 |
+
branch0.else = true;
|
9755 |
+
} else if (elseIfCondition) {
|
9756 |
+
branch0.elseif = elseIfCondition;
|
9757 |
+
}
|
9758 |
+
|
9759 |
+
return branch0
|
9760 |
+
}
|
9761 |
+
}
|
9762 |
+
}
|
9763 |
+
|
9764 |
+
function cloneASTElement (el) {
|
9765 |
+
return createASTElement(el.tag, el.attrsList.slice(), el.parent)
|
9766 |
+
}
|
9767 |
+
|
9768 |
+
var model$2 = {
|
9769 |
+
preTransformNode: preTransformNode
|
9770 |
+
}
|
9771 |
+
|
9772 |
+
var modules$1 = [
|
9773 |
+
klass$1,
|
9774 |
+
style$1,
|
9775 |
+
model$2
|
9776 |
+
]
|
9777 |
+
|
9778 |
+
/* */
|
9779 |
+
|
9780 |
+
function text (el, dir) {
|
9781 |
+
if (dir.value) {
|
9782 |
+
addProp(el, 'textContent', ("_s(" + (dir.value) + ")"));
|
9783 |
+
}
|
9784 |
+
}
|
9785 |
+
|
9786 |
+
/* */
|
9787 |
+
|
9788 |
+
function html (el, dir) {
|
9789 |
+
if (dir.value) {
|
9790 |
+
addProp(el, 'innerHTML', ("_s(" + (dir.value) + ")"));
|
9791 |
+
}
|
9792 |
+
}
|
9793 |
+
|
9794 |
+
var directives$1 = {
|
9795 |
+
model: model,
|
9796 |
+
text: text,
|
9797 |
+
html: html
|
9798 |
+
}
|
9799 |
+
|
9800 |
+
/* */
|
9801 |
+
|
9802 |
+
var baseOptions = {
|
9803 |
+
expectHTML: true,
|
9804 |
+
modules: modules$1,
|
9805 |
+
directives: directives$1,
|
9806 |
+
isPreTag: isPreTag,
|
9807 |
+
isUnaryTag: isUnaryTag,
|
9808 |
+
mustUseProp: mustUseProp,
|
9809 |
+
canBeLeftOpenTag: canBeLeftOpenTag,
|
9810 |
+
isReservedTag: isReservedTag,
|
9811 |
+
getTagNamespace: getTagNamespace,
|
9812 |
+
staticKeys: genStaticKeys(modules$1)
|
9813 |
+
};
|
9814 |
+
|
9815 |
+
/* */
|
9816 |
+
|
9817 |
+
var isStaticKey;
|
9818 |
+
var isPlatformReservedTag;
|
9819 |
+
|
9820 |
+
var genStaticKeysCached = cached(genStaticKeys$1);
|
9821 |
+
|
9822 |
+
/**
|
9823 |
+
* Goal of the optimizer: walk the generated template AST tree
|
9824 |
+
* and detect sub-trees that are purely static, i.e. parts of
|
9825 |
+
* the DOM that never needs to change.
|
9826 |
+
*
|
9827 |
+
* Once we detect these sub-trees, we can:
|
9828 |
+
*
|
9829 |
+
* 1. Hoist them into constants, so that we no longer need to
|
9830 |
+
* create fresh nodes for them on each re-render;
|
9831 |
+
* 2. Completely skip them in the patching process.
|
9832 |
+
*/
|
9833 |
+
function optimize (root, options) {
|
9834 |
+
if (!root) { return }
|
9835 |
+
isStaticKey = genStaticKeysCached(options.staticKeys || '');
|
9836 |
+
isPlatformReservedTag = options.isReservedTag || no;
|
9837 |
+
// first pass: mark all non-static nodes.
|
9838 |
+
markStatic$1(root);
|
9839 |
+
// second pass: mark static roots.
|
9840 |
+
markStaticRoots(root, false);
|
9841 |
+
}
|
9842 |
+
|
9843 |
+
function genStaticKeys$1 (keys) {
|
9844 |
+
return makeMap(
|
9845 |
+
'type,tag,attrsList,attrsMap,plain,parent,children,attrs' +
|
9846 |
+
(keys ? ',' + keys : '')
|
9847 |
+
)
|
9848 |
+
}
|
9849 |
+
|
9850 |
+
function markStatic$1 (node) {
|
9851 |
+
node.static = isStatic(node);
|
9852 |
+
if (node.type === 1) {
|
9853 |
+
// do not make component slot content static. this avoids
|
9854 |
+
// 1. components not able to mutate slot nodes
|
9855 |
+
// 2. static slot content fails for hot-reloading
|
9856 |
+
if (
|
9857 |
+
!isPlatformReservedTag(node.tag) &&
|
9858 |
+
node.tag !== 'slot' &&
|
9859 |
+
node.attrsMap['inline-template'] == null
|
9860 |
+
) {
|
9861 |
+
return
|
9862 |
+
}
|
9863 |
+
for (var i = 0, l = node.children.length; i < l; i++) {
|
9864 |
+
var child = node.children[i];
|
9865 |
+
markStatic$1(child);
|
9866 |
+
if (!child.static) {
|
9867 |
+
node.static = false;
|
9868 |
+
}
|
9869 |
+
}
|
9870 |
+
if (node.ifConditions) {
|
9871 |
+
for (var i$1 = 1, l$1 = node.ifConditions.length; i$1 < l$1; i$1++) {
|
9872 |
+
var block = node.ifConditions[i$1].block;
|
9873 |
+
markStatic$1(block);
|
9874 |
+
if (!block.static) {
|
9875 |
+
node.static = false;
|
9876 |
+
}
|
9877 |
+
}
|
9878 |
+
}
|
9879 |
+
}
|
9880 |
+
}
|
9881 |
+
|
9882 |
+
function markStaticRoots (node, isInFor) {
|
9883 |
+
if (node.type === 1) {
|
9884 |
+
if (node.static || node.once) {
|
9885 |
+
node.staticInFor = isInFor;
|
9886 |
+
}
|
9887 |
+
// For a node to qualify as a static root, it should have children that
|
9888 |
+
// are not just static text. Otherwise the cost of hoisting out will
|
9889 |
+
// outweigh the benefits and it's better off to just always render it fresh.
|
9890 |
+
if (node.static && node.children.length && !(
|
9891 |
+
node.children.length === 1 &&
|
9892 |
+
node.children[0].type === 3
|
9893 |
+
)) {
|
9894 |
+
node.staticRoot = true;
|
9895 |
+
return
|
9896 |
+
} else {
|
9897 |
+
node.staticRoot = false;
|
9898 |
+
}
|
9899 |
+
if (node.children) {
|
9900 |
+
for (var i = 0, l = node.children.length; i < l; i++) {
|
9901 |
+
markStaticRoots(node.children[i], isInFor || !!node.for);
|
9902 |
+
}
|
9903 |
+
}
|
9904 |
+
if (node.ifConditions) {
|
9905 |
+
for (var i$1 = 1, l$1 = node.ifConditions.length; i$1 < l$1; i$1++) {
|
9906 |
+
markStaticRoots(node.ifConditions[i$1].block, isInFor);
|
9907 |
+
}
|
9908 |
+
}
|
9909 |
+
}
|
9910 |
+
}
|
9911 |
+
|
9912 |
+
function isStatic (node) {
|
9913 |
+
if (node.type === 2) { // expression
|
9914 |
+
return false
|
9915 |
+
}
|
9916 |
+
if (node.type === 3) { // text
|
9917 |
+
return true
|
9918 |
+
}
|
9919 |
+
return !!(node.pre || (
|
9920 |
+
!node.hasBindings && // no dynamic bindings
|
9921 |
+
!node.if && !node.for && // not v-if or v-for or v-else
|
9922 |
+
!isBuiltInTag(node.tag) && // not a built-in
|
9923 |
+
isPlatformReservedTag(node.tag) && // not a component
|
9924 |
+
!isDirectChildOfTemplateFor(node) &&
|
9925 |
+
Object.keys(node).every(isStaticKey)
|
9926 |
+
))
|
9927 |
+
}
|
9928 |
+
|
9929 |
+
function isDirectChildOfTemplateFor (node) {
|
9930 |
+
while (node.parent) {
|
9931 |
+
node = node.parent;
|
9932 |
+
if (node.tag !== 'template') {
|
9933 |
+
return false
|
9934 |
+
}
|
9935 |
+
if (node.for) {
|
9936 |
+
return true
|
9937 |
+
}
|
9938 |
+
}
|
9939 |
+
return false
|
9940 |
+
}
|
9941 |
+
|
9942 |
+
/* */
|
9943 |
+
|
9944 |
+
var fnExpRE = /^([\w$_]+|\([^)]*?\))\s*=>|^function\s*\(/;
|
9945 |
+
var simplePathRE = /^[A-Za-z_$][\w$]*(?:\.[A-Za-z_$][\w$]*|\['[^']*?']|\["[^"]*?"]|\[\d+]|\[[A-Za-z_$][\w$]*])*$/;
|
9946 |
+
|
9947 |
+
// KeyboardEvent.keyCode aliases
|
9948 |
+
var keyCodes = {
|
9949 |
+
esc: 27,
|
9950 |
+
tab: 9,
|
9951 |
+
enter: 13,
|
9952 |
+
space: 32,
|
9953 |
+
up: 38,
|
9954 |
+
left: 37,
|
9955 |
+
right: 39,
|
9956 |
+
down: 40,
|
9957 |
+
'delete': [8, 46]
|
9958 |
+
};
|
9959 |
+
|
9960 |
+
// KeyboardEvent.key aliases
|
9961 |
+
var keyNames = {
|
9962 |
+
esc: 'Escape',
|
9963 |
+
tab: 'Tab',
|
9964 |
+
enter: 'Enter',
|
9965 |
+
space: ' ',
|
9966 |
+
// #7806: IE11 uses key names without `Arrow` prefix for arrow keys.
|
9967 |
+
up: ['Up', 'ArrowUp'],
|
9968 |
+
left: ['Left', 'ArrowLeft'],
|
9969 |
+
right: ['Right', 'ArrowRight'],
|
9970 |
+
down: ['Down', 'ArrowDown'],
|
9971 |
+
'delete': ['Backspace', 'Delete']
|
9972 |
+
};
|
9973 |
+
|
9974 |
+
// #4868: modifiers that prevent the execution of the listener
|
9975 |
+
// need to explicitly return null so that we can determine whether to remove
|
9976 |
+
// the listener for .once
|
9977 |
+
var genGuard = function (condition) { return ("if(" + condition + ")return null;"); };
|
9978 |
+
|
9979 |
+
var modifierCode = {
|
9980 |
+
stop: '$event.stopPropagation();',
|
9981 |
+
prevent: '$event.preventDefault();',
|
9982 |
+
self: genGuard("$event.target !== $event.currentTarget"),
|
9983 |
+
ctrl: genGuard("!$event.ctrlKey"),
|
9984 |
+
shift: genGuard("!$event.shiftKey"),
|
9985 |
+
alt: genGuard("!$event.altKey"),
|
9986 |
+
meta: genGuard("!$event.metaKey"),
|
9987 |
+
left: genGuard("'button' in $event && $event.button !== 0"),
|
9988 |
+
middle: genGuard("'button' in $event && $event.button !== 1"),
|
9989 |
+
right: genGuard("'button' in $event && $event.button !== 2")
|
9990 |
+
};
|
9991 |
+
|
9992 |
+
function genHandlers (
|
9993 |
+
events,
|
9994 |
+
isNative,
|
9995 |
+
warn
|
9996 |
+
) {
|
9997 |
+
var res = isNative ? 'nativeOn:{' : 'on:{';
|
9998 |
+
for (var name in events) {
|
9999 |
+
res += "\"" + name + "\":" + (genHandler(name, events[name])) + ",";
|
10000 |
+
}
|
10001 |
+
return res.slice(0, -1) + '}'
|
10002 |
+
}
|
10003 |
+
|
10004 |
+
function genHandler (
|
10005 |
+
name,
|
10006 |
+
handler
|
10007 |
+
) {
|
10008 |
+
if (!handler) {
|
10009 |
+
return 'function(){}'
|
10010 |
+
}
|
10011 |
+
|
10012 |
+
if (Array.isArray(handler)) {
|
10013 |
+
return ("[" + (handler.map(function (handler) { return genHandler(name, handler); }).join(',')) + "]")
|
10014 |
+
}
|
10015 |
+
|
10016 |
+
var isMethodPath = simplePathRE.test(handler.value);
|
10017 |
+
var isFunctionExpression = fnExpRE.test(handler.value);
|
10018 |
+
|
10019 |
+
if (!handler.modifiers) {
|
10020 |
+
if (isMethodPath || isFunctionExpression) {
|
10021 |
+
return handler.value
|
10022 |
+
}
|
10023 |
+
/* istanbul ignore if */
|
10024 |
+
return ("function($event){" + (handler.value) + "}") // inline statement
|
10025 |
+
} else {
|
10026 |
+
var code = '';
|
10027 |
+
var genModifierCode = '';
|
10028 |
+
var keys = [];
|
10029 |
+
for (var key in handler.modifiers) {
|
10030 |
+
if (modifierCode[key]) {
|
10031 |
+
genModifierCode += modifierCode[key];
|
10032 |
+
// left/right
|
10033 |
+
if (keyCodes[key]) {
|
10034 |
+
keys.push(key);
|
10035 |
+
}
|
10036 |
+
} else if (key === 'exact') {
|
10037 |
+
var modifiers = (handler.modifiers);
|
10038 |
+
genModifierCode += genGuard(
|
10039 |
+
['ctrl', 'shift', 'alt', 'meta']
|
10040 |
+
.filter(function (keyModifier) { return !modifiers[keyModifier]; })
|
10041 |
+
.map(function (keyModifier) { return ("$event." + keyModifier + "Key"); })
|
10042 |
+
.join('||')
|
10043 |
+
);
|
10044 |
+
} else {
|
10045 |
+
keys.push(key);
|
10046 |
+
}
|
10047 |
+
}
|
10048 |
+
if (keys.length) {
|
10049 |
+
code += genKeyFilter(keys);
|
10050 |
+
}
|
10051 |
+
// Make sure modifiers like prevent and stop get executed after key filtering
|
10052 |
+
if (genModifierCode) {
|
10053 |
+
code += genModifierCode;
|
10054 |
+
}
|
10055 |
+
var handlerCode = isMethodPath
|
10056 |
+
? ("return " + (handler.value) + "($event)")
|
10057 |
+
: isFunctionExpression
|
10058 |
+
? ("return (" + (handler.value) + ")($event)")
|
10059 |
+
: handler.value;
|
10060 |
+
/* istanbul ignore if */
|
10061 |
+
return ("function($event){" + code + handlerCode + "}")
|
10062 |
+
}
|
10063 |
+
}
|
10064 |
+
|
10065 |
+
function genKeyFilter (keys) {
|
10066 |
+
return ("if(!('button' in $event)&&" + (keys.map(genFilterCode).join('&&')) + ")return null;")
|
10067 |
+
}
|
10068 |
+
|
10069 |
+
function genFilterCode (key) {
|
10070 |
+
var keyVal = parseInt(key, 10);
|
10071 |
+
if (keyVal) {
|
10072 |
+
return ("$event.keyCode!==" + keyVal)
|
10073 |
+
}
|
10074 |
+
var keyCode = keyCodes[key];
|
10075 |
+
var keyName = keyNames[key];
|
10076 |
+
return (
|
10077 |
+
"_k($event.keyCode," +
|
10078 |
+
(JSON.stringify(key)) + "," +
|
10079 |
+
(JSON.stringify(keyCode)) + "," +
|
10080 |
+
"$event.key," +
|
10081 |
+
"" + (JSON.stringify(keyName)) +
|
10082 |
+
")"
|
10083 |
+
)
|
10084 |
+
}
|
10085 |
+
|
10086 |
+
/* */
|
10087 |
+
|
10088 |
+
function on (el, dir) {
|
10089 |
+
if ("development" !== 'production' && dir.modifiers) {
|
10090 |
+
warn("v-on without argument does not support modifiers.");
|
10091 |
+
}
|
10092 |
+
el.wrapListeners = function (code) { return ("_g(" + code + "," + (dir.value) + ")"); };
|
10093 |
+
}
|
10094 |
+
|
10095 |
+
/* */
|
10096 |
+
|
10097 |
+
function bind$1 (el, dir) {
|
10098 |
+
el.wrapData = function (code) {
|
10099 |
+
return ("_b(" + code + ",'" + (el.tag) + "'," + (dir.value) + "," + (dir.modifiers && dir.modifiers.prop ? 'true' : 'false') + (dir.modifiers && dir.modifiers.sync ? ',true' : '') + ")")
|
10100 |
+
};
|
10101 |
+
}
|
10102 |
+
|
10103 |
+
/* */
|
10104 |
+
|
10105 |
+
var baseDirectives = {
|
10106 |
+
on: on,
|
10107 |
+
bind: bind$1,
|
10108 |
+
cloak: noop
|
10109 |
+
}
|
10110 |
+
|
10111 |
+
/* */
|
10112 |
+
|
10113 |
+
var CodegenState = function CodegenState (options) {
|
10114 |
+
this.options = options;
|
10115 |
+
this.warn = options.warn || baseWarn;
|
10116 |
+
this.transforms = pluckModuleFunction(options.modules, 'transformCode');
|
10117 |
+
this.dataGenFns = pluckModuleFunction(options.modules, 'genData');
|
10118 |
+
this.directives = extend(extend({}, baseDirectives), options.directives);
|
10119 |
+
var isReservedTag = options.isReservedTag || no;
|
10120 |
+
this.maybeComponent = function (el) { return !isReservedTag(el.tag); };
|
10121 |
+
this.onceId = 0;
|
10122 |
+
this.staticRenderFns = [];
|
10123 |
+
};
|
10124 |
+
|
10125 |
+
|
10126 |
+
|
10127 |
+
function generate (
|
10128 |
+
ast,
|
10129 |
+
options
|
10130 |
+
) {
|
10131 |
+
var state = new CodegenState(options);
|
10132 |
+
var code = ast ? genElement(ast, state) : '_c("div")';
|
10133 |
+
return {
|
10134 |
+
render: ("with(this){return " + code + "}"),
|
10135 |
+
staticRenderFns: state.staticRenderFns
|
10136 |
+
}
|
10137 |
+
}
|
10138 |
+
|
10139 |
+
function genElement (el, state) {
|
10140 |
+
if (el.staticRoot && !el.staticProcessed) {
|
10141 |
+
return genStatic(el, state)
|
10142 |
+
} else if (el.once && !el.onceProcessed) {
|
10143 |
+
return genOnce(el, state)
|
10144 |
+
} else if (el.for && !el.forProcessed) {
|
10145 |
+
return genFor(el, state)
|
10146 |
+
} else if (el.if && !el.ifProcessed) {
|
10147 |
+
return genIf(el, state)
|
10148 |
+
} else if (el.tag === 'template' && !el.slotTarget) {
|
10149 |
+
return genChildren(el, state) || 'void 0'
|
10150 |
+
} else if (el.tag === 'slot') {
|
10151 |
+
return genSlot(el, state)
|
10152 |
+
} else {
|
10153 |
+
// component or element
|
10154 |
+
var code;
|
10155 |
+
if (el.component) {
|
10156 |
+
code = genComponent(el.component, el, state);
|
10157 |
+
} else {
|
10158 |
+
var data = el.plain ? undefined : genData$2(el, state);
|
10159 |
+
|
10160 |
+
var children = el.inlineTemplate ? null : genChildren(el, state, true);
|
10161 |
+
code = "_c('" + (el.tag) + "'" + (data ? ("," + data) : '') + (children ? ("," + children) : '') + ")";
|
10162 |
+
}
|
10163 |
+
// module transforms
|
10164 |
+
for (var i = 0; i < state.transforms.length; i++) {
|
10165 |
+
code = state.transforms[i](el, code);
|
10166 |
+
}
|
10167 |
+
return code
|
10168 |
+
}
|
10169 |
+
}
|
10170 |
+
|
10171 |
+
// hoist static sub-trees out
|
10172 |
+
function genStatic (el, state) {
|
10173 |
+
el.staticProcessed = true;
|
10174 |
+
state.staticRenderFns.push(("with(this){return " + (genElement(el, state)) + "}"));
|
10175 |
+
return ("_m(" + (state.staticRenderFns.length - 1) + (el.staticInFor ? ',true' : '') + ")")
|
10176 |
+
}
|
10177 |
+
|
10178 |
+
// v-once
|
10179 |
+
function genOnce (el, state) {
|
10180 |
+
el.onceProcessed = true;
|
10181 |
+
if (el.if && !el.ifProcessed) {
|
10182 |
+
return genIf(el, state)
|
10183 |
+
} else if (el.staticInFor) {
|
10184 |
+
var key = '';
|
10185 |
+
var parent = el.parent;
|
10186 |
+
while (parent) {
|
10187 |
+
if (parent.for) {
|
10188 |
+
key = parent.key;
|
10189 |
+
break
|
10190 |
+
}
|
10191 |
+
parent = parent.parent;
|
10192 |
+
}
|
10193 |
+
if (!key) {
|
10194 |
+
"development" !== 'production' && state.warn(
|
10195 |
+
"v-once can only be used inside v-for that is keyed. "
|
10196 |
+
);
|
10197 |
+
return genElement(el, state)
|
10198 |
+
}
|
10199 |
+
return ("_o(" + (genElement(el, state)) + "," + (state.onceId++) + "," + key + ")")
|
10200 |
+
} else {
|
10201 |
+
return genStatic(el, state)
|
10202 |
+
}
|
10203 |
+
}
|
10204 |
+
|
10205 |
+
function genIf (
|
10206 |
+
el,
|
10207 |
+
state,
|
10208 |
+
altGen,
|
10209 |
+
altEmpty
|
10210 |
+
) {
|
10211 |
+
el.ifProcessed = true; // avoid recursion
|
10212 |
+
return genIfConditions(el.ifConditions.slice(), state, altGen, altEmpty)
|
10213 |
+
}
|
10214 |
+
|
10215 |
+
function genIfConditions (
|
10216 |
+
conditions,
|
10217 |
+
state,
|
10218 |
+
altGen,
|
10219 |
+
altEmpty
|
10220 |
+
) {
|
10221 |
+
if (!conditions.length) {
|
10222 |
+
return altEmpty || '_e()'
|
10223 |
+
}
|
10224 |
+
|
10225 |
+
var condition = conditions.shift();
|
10226 |
+
if (condition.exp) {
|
10227 |
+
return ("(" + (condition.exp) + ")?" + (genTernaryExp(condition.block)) + ":" + (genIfConditions(conditions, state, altGen, altEmpty)))
|
10228 |
+
} else {
|
10229 |
+
return ("" + (genTernaryExp(condition.block)))
|
10230 |
+
}
|
10231 |
+
|
10232 |
+
// v-if with v-once should generate code like (a)?_m(0):_m(1)
|
10233 |
+
function genTernaryExp (el) {
|
10234 |
+
return altGen
|
10235 |
+
? altGen(el, state)
|
10236 |
+
: el.once
|
10237 |
+
? genOnce(el, state)
|
10238 |
+
: genElement(el, state)
|
10239 |
+
}
|
10240 |
+
}
|
10241 |
+
|
10242 |
+
function genFor (
|
10243 |
+
el,
|
10244 |
+
state,
|
10245 |
+
altGen,
|
10246 |
+
altHelper
|
10247 |
+
) {
|
10248 |
+
var exp = el.for;
|
10249 |
+
var alias = el.alias;
|
10250 |
+
var iterator1 = el.iterator1 ? ("," + (el.iterator1)) : '';
|
10251 |
+
var iterator2 = el.iterator2 ? ("," + (el.iterator2)) : '';
|
10252 |
+
|
10253 |
+
if ("development" !== 'production' &&
|
10254 |
+
state.maybeComponent(el) &&
|
10255 |
+
el.tag !== 'slot' &&
|
10256 |
+
el.tag !== 'template' &&
|
10257 |
+
!el.key
|
10258 |
+
) {
|
10259 |
+
state.warn(
|
10260 |
+
"<" + (el.tag) + " v-for=\"" + alias + " in " + exp + "\">: component lists rendered with " +
|
10261 |
+
"v-for should have explicit keys. " +
|
10262 |
+
"See https://vuejs.org/guide/list.html#key for more info.",
|
10263 |
+
true /* tip */
|
10264 |
+
);
|
10265 |
+
}
|
10266 |
+
|
10267 |
+
el.forProcessed = true; // avoid recursion
|
10268 |
+
return (altHelper || '_l') + "((" + exp + ")," +
|
10269 |
+
"function(" + alias + iterator1 + iterator2 + "){" +
|
10270 |
+
"return " + ((altGen || genElement)(el, state)) +
|
10271 |
+
'})'
|
10272 |
+
}
|
10273 |
+
|
10274 |
+
function genData$2 (el, state) {
|
10275 |
+
var data = '{';
|
10276 |
+
|
10277 |
+
// directives first.
|
10278 |
+
// directives may mutate the el's other properties before they are generated.
|
10279 |
+
var dirs = genDirectives(el, state);
|
10280 |
+
if (dirs) { data += dirs + ','; }
|
10281 |
+
|
10282 |
+
// key
|
10283 |
+
if (el.key) {
|
10284 |
+
data += "key:" + (el.key) + ",";
|
10285 |
+
}
|
10286 |
+
// ref
|
10287 |
+
if (el.ref) {
|
10288 |
+
data += "ref:" + (el.ref) + ",";
|
10289 |
+
}
|
10290 |
+
if (el.refInFor) {
|
10291 |
+
data += "refInFor:true,";
|
10292 |
+
}
|
10293 |
+
// pre
|
10294 |
+
if (el.pre) {
|
10295 |
+
data += "pre:true,";
|
10296 |
+
}
|
10297 |
+
// record original tag name for components using "is" attribute
|
10298 |
+
if (el.component) {
|
10299 |
+
data += "tag:\"" + (el.tag) + "\",";
|
10300 |
+
}
|
10301 |
+
// module data generation functions
|
10302 |
+
for (var i = 0; i < state.dataGenFns.length; i++) {
|
10303 |
+
data += state.dataGenFns[i](el);
|
10304 |
+
}
|
10305 |
+
// attributes
|
10306 |
+
if (el.attrs) {
|
10307 |
+
data += "attrs:{" + (genProps(el.attrs)) + "},";
|
10308 |
+
}
|
10309 |
+
// DOM props
|
10310 |
+
if (el.props) {
|
10311 |
+
data += "domProps:{" + (genProps(el.props)) + "},";
|
10312 |
+
}
|
10313 |
+
// event handlers
|
10314 |
+
if (el.events) {
|
10315 |
+
data += (genHandlers(el.events, false, state.warn)) + ",";
|
10316 |
+
}
|
10317 |
+
if (el.nativeEvents) {
|
10318 |
+
data += (genHandlers(el.nativeEvents, true, state.warn)) + ",";
|
10319 |
+
}
|
10320 |
+
// slot target
|
10321 |
+
// only for non-scoped slots
|
10322 |
+
if (el.slotTarget && !el.slotScope) {
|
10323 |
+
data += "slot:" + (el.slotTarget) + ",";
|
10324 |
+
}
|
10325 |
+
// scoped slots
|
10326 |
+
if (el.scopedSlots) {
|
10327 |
+
data += (genScopedSlots(el.scopedSlots, state)) + ",";
|
10328 |
+
}
|
10329 |
+
// component v-model
|
10330 |
+
if (el.model) {
|
10331 |
+
data += "model:{value:" + (el.model.value) + ",callback:" + (el.model.callback) + ",expression:" + (el.model.expression) + "},";
|
10332 |
+
}
|
10333 |
+
// inline-template
|
10334 |
+
if (el.inlineTemplate) {
|
10335 |
+
var inlineTemplate = genInlineTemplate(el, state);
|
10336 |
+
if (inlineTemplate) {
|
10337 |
+
data += inlineTemplate + ",";
|
10338 |
+
}
|
10339 |
+
}
|
10340 |
+
data = data.replace(/,$/, '') + '}';
|
10341 |
+
// v-bind data wrap
|
10342 |
+
if (el.wrapData) {
|
10343 |
+
data = el.wrapData(data);
|
10344 |
+
}
|
10345 |
+
// v-on data wrap
|
10346 |
+
if (el.wrapListeners) {
|
10347 |
+
data = el.wrapListeners(data);
|
10348 |
+
}
|
10349 |
+
return data
|
10350 |
+
}
|
10351 |
+
|
10352 |
+
function genDirectives (el, state) {
|
10353 |
+
var dirs = el.directives;
|
10354 |
+
if (!dirs) { return }
|
10355 |
+
var res = 'directives:[';
|
10356 |
+
var hasRuntime = false;
|
10357 |
+
var i, l, dir, needRuntime;
|
10358 |
+
for (i = 0, l = dirs.length; i < l; i++) {
|
10359 |
+
dir = dirs[i];
|
10360 |
+
needRuntime = true;
|
10361 |
+
var gen = state.directives[dir.name];
|
10362 |
+
if (gen) {
|
10363 |
+
// compile-time directive that manipulates AST.
|
10364 |
+
// returns true if it also needs a runtime counterpart.
|
10365 |
+
needRuntime = !!gen(el, dir, state.warn);
|
10366 |
+
}
|
10367 |
+
if (needRuntime) {
|
10368 |
+
hasRuntime = true;
|
10369 |
+
res += "{name:\"" + (dir.name) + "\",rawName:\"" + (dir.rawName) + "\"" + (dir.value ? (",value:(" + (dir.value) + "),expression:" + (JSON.stringify(dir.value))) : '') + (dir.arg ? (",arg:\"" + (dir.arg) + "\"") : '') + (dir.modifiers ? (",modifiers:" + (JSON.stringify(dir.modifiers))) : '') + "},";
|
10370 |
+
}
|
10371 |
+
}
|
10372 |
+
if (hasRuntime) {
|
10373 |
+
return res.slice(0, -1) + ']'
|
10374 |
+
}
|
10375 |
+
}
|
10376 |
+
|
10377 |
+
function genInlineTemplate (el, state) {
|
10378 |
+
var ast = el.children[0];
|
10379 |
+
if ("development" !== 'production' && (
|
10380 |
+
el.children.length !== 1 || ast.type !== 1
|
10381 |
+
)) {
|
10382 |
+
state.warn('Inline-template components must have exactly one child element.');
|
10383 |
+
}
|
10384 |
+
if (ast.type === 1) {
|
10385 |
+
var inlineRenderFns = generate(ast, state.options);
|
10386 |
+
return ("inlineTemplate:{render:function(){" + (inlineRenderFns.render) + "},staticRenderFns:[" + (inlineRenderFns.staticRenderFns.map(function (code) { return ("function(){" + code + "}"); }).join(',')) + "]}")
|
10387 |
+
}
|
10388 |
+
}
|
10389 |
+
|
10390 |
+
function genScopedSlots (
|
10391 |
+
slots,
|
10392 |
+
state
|
10393 |
+
) {
|
10394 |
+
return ("scopedSlots:_u([" + (Object.keys(slots).map(function (key) {
|
10395 |
+
return genScopedSlot(key, slots[key], state)
|
10396 |
+
}).join(',')) + "])")
|
10397 |
+
}
|
10398 |
+
|
10399 |
+
function genScopedSlot (
|
10400 |
+
key,
|
10401 |
+
el,
|
10402 |
+
state
|
10403 |
+
) {
|
10404 |
+
if (el.for && !el.forProcessed) {
|
10405 |
+
return genForScopedSlot(key, el, state)
|
10406 |
+
}
|
10407 |
+
var fn = "function(" + (String(el.slotScope)) + "){" +
|
10408 |
+
"return " + (el.tag === 'template'
|
10409 |
+
? el.if
|
10410 |
+
? ((el.if) + "?" + (genChildren(el, state) || 'undefined') + ":undefined")
|
10411 |
+
: genChildren(el, state) || 'undefined'
|
10412 |
+
: genElement(el, state)) + "}";
|
10413 |
+
return ("{key:" + key + ",fn:" + fn + "}")
|
10414 |
+
}
|
10415 |
+
|
10416 |
+
function genForScopedSlot (
|
10417 |
+
key,
|
10418 |
+
el,
|
10419 |
+
state
|
10420 |
+
) {
|
10421 |
+
var exp = el.for;
|
10422 |
+
var alias = el.alias;
|
10423 |
+
var iterator1 = el.iterator1 ? ("," + (el.iterator1)) : '';
|
10424 |
+
var iterator2 = el.iterator2 ? ("," + (el.iterator2)) : '';
|
10425 |
+
el.forProcessed = true; // avoid recursion
|
10426 |
+
return "_l((" + exp + ")," +
|
10427 |
+
"function(" + alias + iterator1 + iterator2 + "){" +
|
10428 |
+
"return " + (genScopedSlot(key, el, state)) +
|
10429 |
+
'})'
|
10430 |
+
}
|
10431 |
+
|
10432 |
+
function genChildren (
|
10433 |
+
el,
|
10434 |
+
state,
|
10435 |
+
checkSkip,
|
10436 |
+
altGenElement,
|
10437 |
+
altGenNode
|
10438 |
+
) {
|
10439 |
+
var children = el.children;
|
10440 |
+
if (children.length) {
|
10441 |
+
var el$1 = children[0];
|
10442 |
+
// optimize single v-for
|
10443 |
+
if (children.length === 1 &&
|
10444 |
+
el$1.for &&
|
10445 |
+
el$1.tag !== 'template' &&
|
10446 |
+
el$1.tag !== 'slot'
|
10447 |
+
) {
|
10448 |
+
return (altGenElement || genElement)(el$1, state)
|
10449 |
+
}
|
10450 |
+
var normalizationType = checkSkip
|
10451 |
+
? getNormalizationType(children, state.maybeComponent)
|
10452 |
+
: 0;
|
10453 |
+
var gen = altGenNode || genNode;
|
10454 |
+
return ("[" + (children.map(function (c) { return gen(c, state); }).join(',')) + "]" + (normalizationType ? ("," + normalizationType) : ''))
|
10455 |
+
}
|
10456 |
+
}
|
10457 |
+
|
10458 |
+
// determine the normalization needed for the children array.
|
10459 |
+
// 0: no normalization needed
|
10460 |
+
// 1: simple normalization needed (possible 1-level deep nested array)
|
10461 |
+
// 2: full normalization needed
|
10462 |
+
function getNormalizationType (
|
10463 |
+
children,
|
10464 |
+
maybeComponent
|
10465 |
+
) {
|
10466 |
+
var res = 0;
|
10467 |
+
for (var i = 0; i < children.length; i++) {
|
10468 |
+
var el = children[i];
|
10469 |
+
if (el.type !== 1) {
|
10470 |
+
continue
|
10471 |
+
}
|
10472 |
+
if (needsNormalization(el) ||
|
10473 |
+
(el.ifConditions && el.ifConditions.some(function (c) { return needsNormalization(c.block); }))) {
|
10474 |
+
res = 2;
|
10475 |
+
break
|
10476 |
+
}
|
10477 |
+
if (maybeComponent(el) ||
|
10478 |
+
(el.ifConditions && el.ifConditions.some(function (c) { return maybeComponent(c.block); }))) {
|
10479 |
+
res = 1;
|
10480 |
+
}
|
10481 |
+
}
|
10482 |
+
return res
|
10483 |
+
}
|
10484 |
+
|
10485 |
+
function needsNormalization (el) {
|
10486 |
+
return el.for !== undefined || el.tag === 'template' || el.tag === 'slot'
|
10487 |
+
}
|
10488 |
+
|
10489 |
+
function genNode (node, state) {
|
10490 |
+
if (node.type === 1) {
|
10491 |
+
return genElement(node, state)
|
10492 |
+
} if (node.type === 3 && node.isComment) {
|
10493 |
+
return genComment(node)
|
10494 |
+
} else {
|
10495 |
+
return genText(node)
|
10496 |
+
}
|
10497 |
+
}
|
10498 |
+
|
10499 |
+
function genText (text) {
|
10500 |
+
return ("_v(" + (text.type === 2
|
10501 |
+
? text.expression // no need for () because already wrapped in _s()
|
10502 |
+
: transformSpecialNewlines(JSON.stringify(text.text))) + ")")
|
10503 |
+
}
|
10504 |
+
|
10505 |
+
function genComment (comment) {
|
10506 |
+
return ("_e(" + (JSON.stringify(comment.text)) + ")")
|
10507 |
+
}
|
10508 |
+
|
10509 |
+
function genSlot (el, state) {
|
10510 |
+
var slotName = el.slotName || '"default"';
|
10511 |
+
var children = genChildren(el, state);
|
10512 |
+
var res = "_t(" + slotName + (children ? ("," + children) : '');
|
10513 |
+
var attrs = el.attrs && ("{" + (el.attrs.map(function (a) { return ((camelize(a.name)) + ":" + (a.value)); }).join(',')) + "}");
|
10514 |
+
var bind$$1 = el.attrsMap['v-bind'];
|
10515 |
+
if ((attrs || bind$$1) && !children) {
|
10516 |
+
res += ",null";
|
10517 |
+
}
|
10518 |
+
if (attrs) {
|
10519 |
+
res += "," + attrs;
|
10520 |
+
}
|
10521 |
+
if (bind$$1) {
|
10522 |
+
res += (attrs ? '' : ',null') + "," + bind$$1;
|
10523 |
+
}
|
10524 |
+
return res + ')'
|
10525 |
+
}
|
10526 |
+
|
10527 |
+
// componentName is el.component, take it as argument to shun flow's pessimistic refinement
|
10528 |
+
function genComponent (
|
10529 |
+
componentName,
|
10530 |
+
el,
|
10531 |
+
state
|
10532 |
+
) {
|
10533 |
+
var children = el.inlineTemplate ? null : genChildren(el, state, true);
|
10534 |
+
return ("_c(" + componentName + "," + (genData$2(el, state)) + (children ? ("," + children) : '') + ")")
|
10535 |
+
}
|
10536 |
+
|
10537 |
+
function genProps (props) {
|
10538 |
+
var res = '';
|
10539 |
+
for (var i = 0; i < props.length; i++) {
|
10540 |
+
var prop = props[i];
|
10541 |
+
/* istanbul ignore if */
|
10542 |
+
{
|
10543 |
+
res += "\"" + (prop.name) + "\":" + (transformSpecialNewlines(prop.value)) + ",";
|
10544 |
+
}
|
10545 |
+
}
|
10546 |
+
return res.slice(0, -1)
|
10547 |
+
}
|
10548 |
+
|
10549 |
+
// #3895, #4268
|
10550 |
+
function transformSpecialNewlines (text) {
|
10551 |
+
return text
|
10552 |
+
.replace(/\u2028/g, '\\u2028')
|
10553 |
+
.replace(/\u2029/g, '\\u2029')
|
10554 |
+
}
|
10555 |
+
|
10556 |
+
/* */
|
10557 |
+
|
10558 |
+
// these keywords should not appear inside expressions, but operators like
|
10559 |
+
// typeof, instanceof and in are allowed
|
10560 |
+
var prohibitedKeywordRE = new RegExp('\\b' + (
|
10561 |
+
'do,if,for,let,new,try,var,case,else,with,await,break,catch,class,const,' +
|
10562 |
+
'super,throw,while,yield,delete,export,import,return,switch,default,' +
|
10563 |
+
'extends,finally,continue,debugger,function,arguments'
|
10564 |
+
).split(',').join('\\b|\\b') + '\\b');
|
10565 |
+
|
10566 |
+
// these unary operators should not be used as property/method names
|
10567 |
+
var unaryOperatorsRE = new RegExp('\\b' + (
|
10568 |
+
'delete,typeof,void'
|
10569 |
+
).split(',').join('\\s*\\([^\\)]*\\)|\\b') + '\\s*\\([^\\)]*\\)');
|
10570 |
+
|
10571 |
+
// strip strings in expressions
|
10572 |
+
var stripStringRE = /'(?:[^'\\]|\\.)*'|"(?:[^"\\]|\\.)*"|`(?:[^`\\]|\\.)*\$\{|\}(?:[^`\\]|\\.)*`|`(?:[^`\\]|\\.)*`/g;
|
10573 |
+
|
10574 |
+
// detect problematic expressions in a template
|
10575 |
+
function detectErrors (ast) {
|
10576 |
+
var errors = [];
|
10577 |
+
if (ast) {
|
10578 |
+
checkNode(ast, errors);
|
10579 |
+
}
|
10580 |
+
return errors
|
10581 |
+
}
|
10582 |
+
|
10583 |
+
function checkNode (node, errors) {
|
10584 |
+
if (node.type === 1) {
|
10585 |
+
for (var name in node.attrsMap) {
|
10586 |
+
if (dirRE.test(name)) {
|
10587 |
+
var value = node.attrsMap[name];
|
10588 |
+
if (value) {
|
10589 |
+
if (name === 'v-for') {
|
10590 |
+
checkFor(node, ("v-for=\"" + value + "\""), errors);
|
10591 |
+
} else if (onRE.test(name)) {
|
10592 |
+
checkEvent(value, (name + "=\"" + value + "\""), errors);
|
10593 |
+
} else {
|
10594 |
+
checkExpression(value, (name + "=\"" + value + "\""), errors);
|
10595 |
+
}
|
10596 |
+
}
|
10597 |
+
}
|
10598 |
+
}
|
10599 |
+
if (node.children) {
|
10600 |
+
for (var i = 0; i < node.children.length; i++) {
|
10601 |
+
checkNode(node.children[i], errors);
|
10602 |
+
}
|
10603 |
+
}
|
10604 |
+
} else if (node.type === 2) {
|
10605 |
+
checkExpression(node.expression, node.text, errors);
|
10606 |
+
}
|
10607 |
+
}
|
10608 |
+
|
10609 |
+
function checkEvent (exp, text, errors) {
|
10610 |
+
var stipped = exp.replace(stripStringRE, '');
|
10611 |
+
var keywordMatch = stipped.match(unaryOperatorsRE);
|
10612 |
+
if (keywordMatch && stipped.charAt(keywordMatch.index - 1) !== '$') {
|
10613 |
+
errors.push(
|
10614 |
+
"avoid using JavaScript unary operator as property name: " +
|
10615 |
+
"\"" + (keywordMatch[0]) + "\" in expression " + (text.trim())
|
10616 |
+
);
|
10617 |
+
}
|
10618 |
+
checkExpression(exp, text, errors);
|
10619 |
+
}
|
10620 |
+
|
10621 |
+
function checkFor (node, text, errors) {
|
10622 |
+
checkExpression(node.for || '', text, errors);
|
10623 |
+
checkIdentifier(node.alias, 'v-for alias', text, errors);
|
10624 |
+
checkIdentifier(node.iterator1, 'v-for iterator', text, errors);
|
10625 |
+
checkIdentifier(node.iterator2, 'v-for iterator', text, errors);
|
10626 |
+
}
|
10627 |
+
|
10628 |
+
function checkIdentifier (
|
10629 |
+
ident,
|
10630 |
+
type,
|
10631 |
+
text,
|
10632 |
+
errors
|
10633 |
+
) {
|
10634 |
+
if (typeof ident === 'string') {
|
10635 |
+
try {
|
10636 |
+
new Function(("var " + ident + "=_"));
|
10637 |
+
} catch (e) {
|
10638 |
+
errors.push(("invalid " + type + " \"" + ident + "\" in expression: " + (text.trim())));
|
10639 |
+
}
|
10640 |
+
}
|
10641 |
+
}
|
10642 |
+
|
10643 |
+
function checkExpression (exp, text, errors) {
|
10644 |
+
try {
|
10645 |
+
new Function(("return " + exp));
|
10646 |
+
} catch (e) {
|
10647 |
+
var keywordMatch = exp.replace(stripStringRE, '').match(prohibitedKeywordRE);
|
10648 |
+
if (keywordMatch) {
|
10649 |
+
errors.push(
|
10650 |
+
"avoid using JavaScript keyword as property name: " +
|
10651 |
+
"\"" + (keywordMatch[0]) + "\"\n Raw expression: " + (text.trim())
|
10652 |
+
);
|
10653 |
+
} else {
|
10654 |
+
errors.push(
|
10655 |
+
"invalid expression: " + (e.message) + " in\n\n" +
|
10656 |
+
" " + exp + "\n\n" +
|
10657 |
+
" Raw expression: " + (text.trim()) + "\n"
|
10658 |
+
);
|
10659 |
+
}
|
10660 |
+
}
|
10661 |
+
}
|
10662 |
+
|
10663 |
+
/* */
|
10664 |
+
|
10665 |
+
function createFunction (code, errors) {
|
10666 |
+
try {
|
10667 |
+
return new Function(code)
|
10668 |
+
} catch (err) {
|
10669 |
+
errors.push({ err: err, code: code });
|
10670 |
+
return noop
|
10671 |
+
}
|
10672 |
+
}
|
10673 |
+
|
10674 |
+
function createCompileToFunctionFn (compile) {
|
10675 |
+
var cache = Object.create(null);
|
10676 |
+
|
10677 |
+
return function compileToFunctions (
|
10678 |
+
template,
|
10679 |
+
options,
|
10680 |
+
vm
|
10681 |
+
) {
|
10682 |
+
options = extend({}, options);
|
10683 |
+
var warn$$1 = options.warn || warn;
|
10684 |
+
delete options.warn;
|
10685 |
+
|
10686 |
+
/* istanbul ignore if */
|
10687 |
+
{
|
10688 |
+
// detect possible CSP restriction
|
10689 |
+
try {
|
10690 |
+
new Function('return 1');
|
10691 |
+
} catch (e) {
|
10692 |
+
if (e.toString().match(/unsafe-eval|CSP/)) {
|
10693 |
+
warn$$1(
|
10694 |
+
'It seems you are using the standalone build of Vue.js in an ' +
|
10695 |
+
'environment with Content Security Policy that prohibits unsafe-eval. ' +
|
10696 |
+
'The template compiler cannot work in this environment. Consider ' +
|
10697 |
+
'relaxing the policy to allow unsafe-eval or pre-compiling your ' +
|
10698 |
+
'templates into render functions.'
|
10699 |
+
);
|
10700 |
+
}
|
10701 |
+
}
|
10702 |
+
}
|
10703 |
+
|
10704 |
+
// check cache
|
10705 |
+
var key = options.delimiters
|
10706 |
+
? String(options.delimiters) + template
|
10707 |
+
: template;
|
10708 |
+
if (cache[key]) {
|
10709 |
+
return cache[key]
|
10710 |
+
}
|
10711 |
+
|
10712 |
+
// compile
|
10713 |
+
var compiled = compile(template, options);
|
10714 |
+
|
10715 |
+
// check compilation errors/tips
|
10716 |
+
{
|
10717 |
+
if (compiled.errors && compiled.errors.length) {
|
10718 |
+
warn$$1(
|
10719 |
+
"Error compiling template:\n\n" + template + "\n\n" +
|
10720 |
+
compiled.errors.map(function (e) { return ("- " + e); }).join('\n') + '\n',
|
10721 |
+
vm
|
10722 |
+
);
|
10723 |
+
}
|
10724 |
+
if (compiled.tips && compiled.tips.length) {
|
10725 |
+
compiled.tips.forEach(function (msg) { return tip(msg, vm); });
|
10726 |
+
}
|
10727 |
+
}
|
10728 |
+
|
10729 |
+
// turn code into functions
|
10730 |
+
var res = {};
|
10731 |
+
var fnGenErrors = [];
|
10732 |
+
res.render = createFunction(compiled.render, fnGenErrors);
|
10733 |
+
res.staticRenderFns = compiled.staticRenderFns.map(function (code) {
|
10734 |
+
return createFunction(code, fnGenErrors)
|
10735 |
+
});
|
10736 |
+
|
10737 |
+
// check function generation errors.
|
10738 |
+
// this should only happen if there is a bug in the compiler itself.
|
10739 |
+
// mostly for codegen development use
|
10740 |
+
/* istanbul ignore if */
|
10741 |
+
{
|
10742 |
+
if ((!compiled.errors || !compiled.errors.length) && fnGenErrors.length) {
|
10743 |
+
warn$$1(
|
10744 |
+
"Failed to generate render function:\n\n" +
|
10745 |
+
fnGenErrors.map(function (ref) {
|
10746 |
+
var err = ref.err;
|
10747 |
+
var code = ref.code;
|
10748 |
+
|
10749 |
+
return ((err.toString()) + " in\n\n" + code + "\n");
|
10750 |
+
}).join('\n'),
|
10751 |
+
vm
|
10752 |
+
);
|
10753 |
+
}
|
10754 |
+
}
|
10755 |
+
|
10756 |
+
return (cache[key] = res)
|
10757 |
+
}
|
10758 |
+
}
|
10759 |
+
|
10760 |
+
/* */
|
10761 |
+
|
10762 |
+
function createCompilerCreator (baseCompile) {
|
10763 |
+
return function createCompiler (baseOptions) {
|
10764 |
+
function compile (
|
10765 |
+
template,
|
10766 |
+
options
|
10767 |
+
) {
|
10768 |
+
var finalOptions = Object.create(baseOptions);
|
10769 |
+
var errors = [];
|
10770 |
+
var tips = [];
|
10771 |
+
finalOptions.warn = function (msg, tip) {
|
10772 |
+
(tip ? tips : errors).push(msg);
|
10773 |
+
};
|
10774 |
+
|
10775 |
+
if (options) {
|
10776 |
+
// merge custom modules
|
10777 |
+
if (options.modules) {
|
10778 |
+
finalOptions.modules =
|
10779 |
+
(baseOptions.modules || []).concat(options.modules);
|
10780 |
+
}
|
10781 |
+
// merge custom directives
|
10782 |
+
if (options.directives) {
|
10783 |
+
finalOptions.directives = extend(
|
10784 |
+
Object.create(baseOptions.directives || null),
|
10785 |
+
options.directives
|
10786 |
+
);
|
10787 |
+
}
|
10788 |
+
// copy other options
|
10789 |
+
for (var key in options) {
|
10790 |
+
if (key !== 'modules' && key !== 'directives') {
|
10791 |
+
finalOptions[key] = options[key];
|
10792 |
+
}
|
10793 |
+
}
|
10794 |
+
}
|
10795 |
+
|
10796 |
+
var compiled = baseCompile(template, finalOptions);
|
10797 |
+
{
|
10798 |
+
errors.push.apply(errors, detectErrors(compiled.ast));
|
10799 |
+
}
|
10800 |
+
compiled.errors = errors;
|
10801 |
+
compiled.tips = tips;
|
10802 |
+
return compiled
|
10803 |
+
}
|
10804 |
+
|
10805 |
+
return {
|
10806 |
+
compile: compile,
|
10807 |
+
compileToFunctions: createCompileToFunctionFn(compile)
|
10808 |
+
}
|
10809 |
+
}
|
10810 |
+
}
|
10811 |
+
|
10812 |
+
/* */
|
10813 |
+
|
10814 |
+
// `createCompilerCreator` allows creating compilers that use alternative
|
10815 |
+
// parser/optimizer/codegen, e.g the SSR optimizing compiler.
|
10816 |
+
// Here we just export a default compiler using the default parts.
|
10817 |
+
var createCompiler = createCompilerCreator(function baseCompile (
|
10818 |
+
template,
|
10819 |
+
options
|
10820 |
+
) {
|
10821 |
+
var ast = parse(template.trim(), options);
|
10822 |
+
if (options.optimize !== false) {
|
10823 |
+
optimize(ast, options);
|
10824 |
+
}
|
10825 |
+
var code = generate(ast, options);
|
10826 |
+
return {
|
10827 |
+
ast: ast,
|
10828 |
+
render: code.render,
|
10829 |
+
staticRenderFns: code.staticRenderFns
|
10830 |
+
}
|
10831 |
+
});
|
10832 |
+
|
10833 |
+
/* */
|
10834 |
+
|
10835 |
+
var ref$1 = createCompiler(baseOptions);
|
10836 |
+
var compileToFunctions = ref$1.compileToFunctions;
|
10837 |
+
|
10838 |
+
/* */
|
10839 |
+
|
10840 |
+
// check whether current browser encodes a char inside attribute values
|
10841 |
+
var div;
|
10842 |
+
function getShouldDecode (href) {
|
10843 |
+
div = div || document.createElement('div');
|
10844 |
+
div.innerHTML = href ? "<a href=\"\n\"/>" : "<div a=\"\n\"/>";
|
10845 |
+
return div.innerHTML.indexOf(' ') > 0
|
10846 |
+
}
|
10847 |
+
|
10848 |
+
// #3663: IE encodes newlines inside attribute values while other browsers don't
|
10849 |
+
var shouldDecodeNewlines = inBrowser ? getShouldDecode(false) : false;
|
10850 |
+
// #6828: chrome encodes content in a[href]
|
10851 |
+
var shouldDecodeNewlinesForHref = inBrowser ? getShouldDecode(true) : false;
|
10852 |
+
|
10853 |
+
/* */
|
10854 |
+
|
10855 |
+
var idToTemplate = cached(function (id) {
|
10856 |
+
var el = query(id);
|
10857 |
+
return el && el.innerHTML
|
10858 |
+
});
|
10859 |
+
|
10860 |
+
var mount = Vue.prototype.$mount;
|
10861 |
+
Vue.prototype.$mount = function (
|
10862 |
+
el,
|
10863 |
+
hydrating
|
10864 |
+
) {
|
10865 |
+
el = el && query(el);
|
10866 |
+
|
10867 |
+
/* istanbul ignore if */
|
10868 |
+
if (el === document.body || el === document.documentElement) {
|
10869 |
+
"development" !== 'production' && warn(
|
10870 |
+
"Do not mount Vue to <html> or <body> - mount to normal elements instead."
|
10871 |
+
);
|
10872 |
+
return this
|
10873 |
+
}
|
10874 |
+
|
10875 |
+
var options = this.$options;
|
10876 |
+
// resolve template/el and convert to render function
|
10877 |
+
if (!options.render) {
|
10878 |
+
var template = options.template;
|
10879 |
+
if (template) {
|
10880 |
+
if (typeof template === 'string') {
|
10881 |
+
if (template.charAt(0) === '#') {
|
10882 |
+
template = idToTemplate(template);
|
10883 |
+
/* istanbul ignore if */
|
10884 |
+
if ("development" !== 'production' && !template) {
|
10885 |
+
warn(
|
10886 |
+
("Template element not found or is empty: " + (options.template)),
|
10887 |
+
this
|
10888 |
+
);
|
10889 |
+
}
|
10890 |
+
}
|
10891 |
+
} else if (template.nodeType) {
|
10892 |
+
template = template.innerHTML;
|
10893 |
+
} else {
|
10894 |
+
{
|
10895 |
+
warn('invalid template option:' + template, this);
|
10896 |
+
}
|
10897 |
+
return this
|
10898 |
+
}
|
10899 |
+
} else if (el) {
|
10900 |
+
template = getOuterHTML(el);
|
10901 |
+
}
|
10902 |
+
if (template) {
|
10903 |
+
/* istanbul ignore if */
|
10904 |
+
if ("development" !== 'production' && config.performance && mark) {
|
10905 |
+
mark('compile');
|
10906 |
+
}
|
10907 |
+
|
10908 |
+
var ref = compileToFunctions(template, {
|
10909 |
+
shouldDecodeNewlines: shouldDecodeNewlines,
|
10910 |
+
shouldDecodeNewlinesForHref: shouldDecodeNewlinesForHref,
|
10911 |
+
delimiters: options.delimiters,
|
10912 |
+
comments: options.comments
|
10913 |
+
}, this);
|
10914 |
+
var render = ref.render;
|
10915 |
+
var staticRenderFns = ref.staticRenderFns;
|
10916 |
+
options.render = render;
|
10917 |
+
options.staticRenderFns = staticRenderFns;
|
10918 |
+
|
10919 |
+
/* istanbul ignore if */
|
10920 |
+
if ("development" !== 'production' && config.performance && mark) {
|
10921 |
+
mark('compile end');
|
10922 |
+
measure(("vue " + (this._name) + " compile"), 'compile', 'compile end');
|
10923 |
+
}
|
10924 |
+
}
|
10925 |
+
}
|
10926 |
+
return mount.call(this, el, hydrating)
|
10927 |
+
};
|
10928 |
+
|
10929 |
+
/**
|
10930 |
+
* Get outerHTML of elements, taking care
|
10931 |
+
* of SVG elements in IE as well.
|
10932 |
+
*/
|
10933 |
+
function getOuterHTML (el) {
|
10934 |
+
if (el.outerHTML) {
|
10935 |
+
return el.outerHTML
|
10936 |
+
} else {
|
10937 |
+
var container = document.createElement('div');
|
10938 |
+
container.appendChild(el.cloneNode(true));
|
10939 |
+
return container.innerHTML
|
10940 |
+
}
|
10941 |
+
}
|
10942 |
+
|
10943 |
+
Vue.compile = compileToFunctions;
|
10944 |
+
|
10945 |
+
return Vue;
|
10946 |
+
|
10947 |
+
})));
|
admin/assets/js/solo/vue/vue.min.js
ADDED
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/*!
|
2 |
+
* Vue.js v2.5.16
|
3 |
+
* (c) 2014-2018 Evan You
|
4 |
+
* Released under the MIT License.
|
5 |
+
*/
|
6 |
+
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):e.Vue=t()}(this,function(){"use strict";var y=Object.freeze({});function M(e){return null==e}function D(e){return null!=e}function S(e){return!0===e}function T(e){return"string"==typeof e||"number"==typeof e||"symbol"==typeof e||"boolean"==typeof e}function P(e){return null!==e&&"object"==typeof e}var r=Object.prototype.toString;function l(e){return"[object Object]"===r.call(e)}function i(e){var t=parseFloat(String(e));return 0<=t&&Math.floor(t)===t&&isFinite(e)}function t(e){return null==e?"":"object"==typeof e?JSON.stringify(e,null,2):String(e)}function F(e){var t=parseFloat(e);return isNaN(t)?e:t}function s(e,t){for(var n=Object.create(null),r=e.split(","),i=0;i<r.length;i++)n[r[i]]=!0;return t?function(e){return n[e.toLowerCase()]}:function(e){return n[e]}}var c=s("slot,component",!0),u=s("key,ref,slot,slot-scope,is");function f(e,t){if(e.length){var n=e.indexOf(t);if(-1<n)return e.splice(n,1)}}var n=Object.prototype.hasOwnProperty;function p(e,t){return n.call(e,t)}function e(t){var n=Object.create(null);return function(e){return n[e]||(n[e]=t(e))}}var o=/-(\w)/g,g=e(function(e){return e.replace(o,function(e,t){return t?t.toUpperCase():""})}),d=e(function(e){return e.charAt(0).toUpperCase()+e.slice(1)}),a=/\B([A-Z])/g,_=e(function(e){return e.replace(a,"-$1").toLowerCase()});var v=Function.prototype.bind?function(e,t){return e.bind(t)}:function(n,r){function e(e){var t=arguments.length;return t?1<t?n.apply(r,arguments):n.call(r,e):n.call(r)}return e._length=n.length,e};function h(e,t){t=t||0;for(var n=e.length-t,r=new Array(n);n--;)r[n]=e[n+t];return r}function m(e,t){for(var n in t)e[n]=t[n];return e}function b(e){for(var t={},n=0;n<e.length;n++)e[n]&&m(t,e[n]);return t}function $(e,t,n){}var O=function(e,t,n){return!1},w=function(e){return e};function C(t,n){if(t===n)return!0;var e=P(t),r=P(n);if(!e||!r)return!e&&!r&&String(t)===String(n);try{var i=Array.isArray(t),o=Array.isArray(n);if(i&&o)return t.length===n.length&&t.every(function(e,t){return C(e,n[t])});if(i||o)return!1;var a=Object.keys(t),s=Object.keys(n);return a.length===s.length&&a.every(function(e){return C(t[e],n[e])})}catch(e){return!1}}function x(e,t){for(var n=0;n<e.length;n++)if(C(e[n],t))return n;return-1}function R(e){var t=!1;return function(){t||(t=!0,e.apply(this,arguments))}}var E="data-server-rendered",k=["component","directive","filter"],A=["beforeCreate","created","beforeMount","mounted","beforeUpdate","updated","beforeDestroy","destroyed","activated","deactivated","errorCaptured"],j={optionMergeStrategies:Object.create(null),silent:!1,productionTip:!1,devtools:!1,performance:!1,errorHandler:null,warnHandler:null,ignoredElements:[],keyCodes:Object.create(null),isReservedTag:O,isReservedAttr:O,isUnknownElement:O,getTagNamespace:$,parsePlatformTagName:w,mustUseProp:O,_lifecycleHooks:A};function N(e,t,n,r){Object.defineProperty(e,t,{value:n,enumerable:!!r,writable:!0,configurable:!0})}var L=/[^\w.$]/;var I,H="__proto__"in{},B="undefined"!=typeof window,U="undefined"!=typeof WXEnvironment&&!!WXEnvironment.platform,V=U&&WXEnvironment.platform.toLowerCase(),z=B&&window.navigator.userAgent.toLowerCase(),K=z&&/msie|trident/.test(z),J=z&&0<z.indexOf("msie 9.0"),q=z&&0<z.indexOf("edge/"),W=(z&&z.indexOf("android"),z&&/iphone|ipad|ipod|ios/.test(z)||"ios"===V),G=(z&&/chrome\/\d+/.test(z),{}.watch),Z=!1;if(B)try{var X={};Object.defineProperty(X,"passive",{get:function(){Z=!0}}),window.addEventListener("test-passive",null,X)}catch(e){}var Y=function(){return void 0===I&&(I=!B&&!U&&"undefined"!=typeof global&&"server"===global.process.env.VUE_ENV),I},Q=B&&window.__VUE_DEVTOOLS_GLOBAL_HOOK__;function ee(e){return"function"==typeof e&&/native code/.test(e.toString())}var te,ne="undefined"!=typeof Symbol&&ee(Symbol)&&"undefined"!=typeof Reflect&&ee(Reflect.ownKeys);te="undefined"!=typeof Set&&ee(Set)?Set:function(){function e(){this.set=Object.create(null)}return e.prototype.has=function(e){return!0===this.set[e]},e.prototype.add=function(e){this.set[e]=!0},e.prototype.clear=function(){this.set=Object.create(null)},e}();var re=$,ie=0,oe=function(){this.id=ie++,this.subs=[]};oe.prototype.addSub=function(e){this.subs.push(e)},oe.prototype.removeSub=function(e){f(this.subs,e)},oe.prototype.depend=function(){oe.target&&oe.target.addDep(this)},oe.prototype.notify=function(){for(var e=this.subs.slice(),t=0,n=e.length;t<n;t++)e[t].update()},oe.target=null;var ae=[];function se(e){oe.target&&ae.push(oe.target),oe.target=e}function ce(){oe.target=ae.pop()}var le=function(e,t,n,r,i,o,a,s){this.tag=e,this.data=t,this.children=n,this.text=r,this.elm=i,this.ns=void 0,this.context=o,this.fnContext=void 0,this.fnOptions=void 0,this.fnScopeId=void 0,this.key=t&&t.key,this.componentOptions=a,this.componentInstance=void 0,this.parent=void 0,this.raw=!1,this.isStatic=!1,this.isRootInsert=!0,this.isComment=!1,this.isCloned=!1,this.isOnce=!1,this.asyncFactory=s,this.asyncMeta=void 0,this.isAsyncPlaceholder=!1},ue={child:{configurable:!0}};ue.child.get=function(){return this.componentInstance},Object.defineProperties(le.prototype,ue);var fe=function(e){void 0===e&&(e="");var t=new le;return t.text=e,t.isComment=!0,t};function pe(e){return new le(void 0,void 0,void 0,String(e))}function de(e){var t=new le(e.tag,e.data,e.children,e.text,e.elm,e.context,e.componentOptions,e.asyncFactory);return t.ns=e.ns,t.isStatic=e.isStatic,t.key=e.key,t.isComment=e.isComment,t.fnContext=e.fnContext,t.fnOptions=e.fnOptions,t.fnScopeId=e.fnScopeId,t.isCloned=!0,t}var ve=Array.prototype,he=Object.create(ve);["push","pop","shift","unshift","splice","sort","reverse"].forEach(function(o){var a=ve[o];N(he,o,function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];var n,r=a.apply(this,e),i=this.__ob__;switch(o){case"push":case"unshift":n=e;break;case"splice":n=e.slice(2)}return n&&i.observeArray(n),i.dep.notify(),r})});var me=Object.getOwnPropertyNames(he),ye=!0;function ge(e){ye=e}var _e=function(e){(this.value=e,this.dep=new oe,this.vmCount=0,N(e,"__ob__",this),Array.isArray(e))?((H?be:$e)(e,he,me),this.observeArray(e)):this.walk(e)};function be(e,t,n){e.__proto__=t}function $e(e,t,n){for(var r=0,i=n.length;r<i;r++){var o=n[r];N(e,o,t[o])}}function we(e,t){var n;if(P(e)&&!(e instanceof le))return p(e,"__ob__")&&e.__ob__ instanceof _e?n=e.__ob__:ye&&!Y()&&(Array.isArray(e)||l(e))&&Object.isExtensible(e)&&!e._isVue&&(n=new _e(e)),t&&n&&n.vmCount++,n}function Ce(n,e,r,t,i){var o=new oe,a=Object.getOwnPropertyDescriptor(n,e);if(!a||!1!==a.configurable){var s=a&&a.get;s||2!==arguments.length||(r=n[e]);var c=a&&a.set,l=!i&&we(r);Object.defineProperty(n,e,{enumerable:!0,configurable:!0,get:function(){var e=s?s.call(n):r;return oe.target&&(o.depend(),l&&(l.dep.depend(),Array.isArray(e)&&function e(t){for(var n=void 0,r=0,i=t.length;r<i;r++)(n=t[r])&&n.__ob__&&n.__ob__.dep.depend(),Array.isArray(n)&&e(n)}(e))),e},set:function(e){var t=s?s.call(n):r;e===t||e!=e&&t!=t||(c?c.call(n,e):r=e,l=!i&&we(e),o.notify())}})}}function xe(e,t,n){if(Array.isArray(e)&&i(t))return e.length=Math.max(e.length,t),e.splice(t,1,n),n;if(t in e&&!(t in Object.prototype))return e[t]=n;var r=e.__ob__;return e._isVue||r&&r.vmCount?n:r?(Ce(r.value,t,n),r.dep.notify(),n):e[t]=n}function ke(e,t){if(Array.isArray(e)&&i(t))e.splice(t,1);else{var n=e.__ob__;e._isVue||n&&n.vmCount||p(e,t)&&(delete e[t],n&&n.dep.notify())}}_e.prototype.walk=function(e){for(var t=Object.keys(e),n=0;n<t.length;n++)Ce(e,t[n])},_e.prototype.observeArray=function(e){for(var t=0,n=e.length;t<n;t++)we(e[t])};var Ae=j.optionMergeStrategies;function Oe(e,t){if(!t)return e;for(var n,r,i,o=Object.keys(t),a=0;a<o.length;a++)r=e[n=o[a]],i=t[n],p(e,n)?l(r)&&l(i)&&Oe(r,i):xe(e,n,i);return e}function Se(n,r,i){return i?function(){var e="function"==typeof r?r.call(i,i):r,t="function"==typeof n?n.call(i,i):n;return e?Oe(e,t):t}:r?n?function(){return Oe("function"==typeof r?r.call(this,this):r,"function"==typeof n?n.call(this,this):n)}:r:n}function Te(e,t){return t?e?e.concat(t):Array.isArray(t)?t:[t]:e}function Ee(e,t,n,r){var i=Object.create(e||null);return t?m(i,t):i}Ae.data=function(e,t,n){return n?Se(e,t,n):t&&"function"!=typeof t?e:Se(e,t)},A.forEach(function(e){Ae[e]=Te}),k.forEach(function(e){Ae[e+"s"]=Ee}),Ae.watch=function(e,t,n,r){if(e===G&&(e=void 0),t===G&&(t=void 0),!t)return Object.create(e||null);if(!e)return t;var i={};for(var o in m(i,e),t){var a=i[o],s=t[o];a&&!Array.isArray(a)&&(a=[a]),i[o]=a?a.concat(s):Array.isArray(s)?s:[s]}return i},Ae.props=Ae.methods=Ae.inject=Ae.computed=function(e,t,n,r){if(!e)return t;var i=Object.create(null);return m(i,e),t&&m(i,t),i},Ae.provide=Se;var je=function(e,t){return void 0===t?e:t};function Ne(n,r,i){"function"==typeof r&&(r=r.options),function(e,t){var n=e.props;if(n){var r,i,o={};if(Array.isArray(n))for(r=n.length;r--;)"string"==typeof(i=n[r])&&(o[g(i)]={type:null});else if(l(n))for(var a in n)i=n[a],o[g(a)]=l(i)?i:{type:i};e.props=o}}(r),function(e,t){var n=e.inject;if(n){var r=e.inject={};if(Array.isArray(n))for(var i=0;i<n.length;i++)r[n[i]]={from:n[i]};else if(l(n))for(var o in n){var a=n[o];r[o]=l(a)?m({from:o},a):{from:a}}}}(r),function(e){var t=e.directives;if(t)for(var n in t){var r=t[n];"function"==typeof r&&(t[n]={bind:r,update:r})}}(r);var e=r.extends;if(e&&(n=Ne(n,e,i)),r.mixins)for(var t=0,o=r.mixins.length;t<o;t++)n=Ne(n,r.mixins[t],i);var a,s={};for(a in n)c(a);for(a in r)p(n,a)||c(a);function c(e){var t=Ae[e]||je;s[e]=t(n[e],r[e],i,e)}return s}function Le(e,t,n,r){if("string"==typeof n){var i=e[t];if(p(i,n))return i[n];var o=g(n);if(p(i,o))return i[o];var a=d(o);return p(i,a)?i[a]:i[n]||i[o]||i[a]}}function Ie(e,t,n,r){var i=t[e],o=!p(n,e),a=n[e],s=Pe(Boolean,i.type);if(-1<s)if(o&&!p(i,"default"))a=!1;else if(""===a||a===_(e)){var c=Pe(String,i.type);(c<0||s<c)&&(a=!0)}if(void 0===a){a=function(e,t,n){if(!p(t,"default"))return;var r=t.default;if(e&&e.$options.propsData&&void 0===e.$options.propsData[n]&&void 0!==e._props[n])return e._props[n];return"function"==typeof r&&"Function"!==Me(t.type)?r.call(e):r}(r,i,e);var l=ye;ge(!0),we(a),ge(l)}return a}function Me(e){var t=e&&e.toString().match(/^\s*function (\w+)/);return t?t[1]:""}function De(e,t){return Me(e)===Me(t)}function Pe(e,t){if(!Array.isArray(t))return De(t,e)?0:-1;for(var n=0,r=t.length;n<r;n++)if(De(t[n],e))return n;return-1}function Fe(e,t,n){if(t)for(var r=t;r=r.$parent;){var i=r.$options.errorCaptured;if(i)for(var o=0;o<i.length;o++)try{if(!1===i[o].call(r,e,t,n))return}catch(e){Re(e,r,"errorCaptured hook")}}Re(e,t,n)}function Re(e,t,n){if(j.errorHandler)try{return j.errorHandler.call(null,e,t,n)}catch(e){He(e,null,"config.errorHandler")}He(e,t,n)}function He(e,t,n){if(!B&&!U||"undefined"==typeof console)throw e;console.error(e)}var Be,Ue,Ve=[],ze=!1;function Ke(){ze=!1;for(var e=Ve.slice(0),t=Ve.length=0;t<e.length;t++)e[t]()}var Je=!1;if("undefined"!=typeof setImmediate&&ee(setImmediate))Ue=function(){setImmediate(Ke)};else if("undefined"==typeof MessageChannel||!ee(MessageChannel)&&"[object MessageChannelConstructor]"!==MessageChannel.toString())Ue=function(){setTimeout(Ke,0)};else{var qe=new MessageChannel,We=qe.port2;qe.port1.onmessage=Ke,Ue=function(){We.postMessage(1)}}if("undefined"!=typeof Promise&&ee(Promise)){var Ge=Promise.resolve();Be=function(){Ge.then(Ke),W&&setTimeout($)}}else Be=Ue;function Ze(e,t){var n;if(Ve.push(function(){if(e)try{e.call(t)}catch(e){Fe(e,t,"nextTick")}else n&&n(t)}),ze||(ze=!0,Je?Ue():Be()),!e&&"undefined"!=typeof Promise)return new Promise(function(e){n=e})}var Xe=new te;function Ye(e){!function e(t,n){var r,i;var o=Array.isArray(t);if(!o&&!P(t)||Object.isFrozen(t)||t instanceof le)return;if(t.__ob__){var a=t.__ob__.dep.id;if(n.has(a))return;n.add(a)}if(o)for(r=t.length;r--;)e(t[r],n);else for(i=Object.keys(t),r=i.length;r--;)e(t[i[r]],n)}(e,Xe),Xe.clear()}var Qe,et=e(function(e){var t="&"===e.charAt(0),n="~"===(e=t?e.slice(1):e).charAt(0),r="!"===(e=n?e.slice(1):e).charAt(0);return{name:e=r?e.slice(1):e,once:n,capture:r,passive:t}});function tt(e){function i(){var e=arguments,t=i.fns;if(!Array.isArray(t))return t.apply(null,arguments);for(var n=t.slice(),r=0;r<n.length;r++)n[r].apply(null,e)}return i.fns=e,i}function nt(e,t,n,r,i){var o,a,s,c;for(o in e)a=e[o],s=t[o],c=et(o),M(a)||(M(s)?(M(a.fns)&&(a=e[o]=tt(a)),n(c.name,a,c.once,c.capture,c.passive,c.params)):a!==s&&(s.fns=a,e[o]=s));for(o in t)M(e[o])&&r((c=et(o)).name,t[o],c.capture)}function rt(e,t,n){var r;e instanceof le&&(e=e.data.hook||(e.data.hook={}));var i=e[t];function o(){n.apply(this,arguments),f(r.fns,o)}M(i)?r=tt([o]):D(i.fns)&&S(i.merged)?(r=i).fns.push(o):r=tt([i,o]),r.merged=!0,e[t]=r}function it(e,t,n,r,i){if(D(t)){if(p(t,n))return e[n]=t[n],i||delete t[n],!0;if(p(t,r))return e[n]=t[r],i||delete t[r],!0}return!1}function ot(e){return T(e)?[pe(e)]:Array.isArray(e)?function e(t,n){var r=[];var i,o,a,s;for(i=0;i<t.length;i++)M(o=t[i])||"boolean"==typeof o||(a=r.length-1,s=r[a],Array.isArray(o)?0<o.length&&(at((o=e(o,(n||"")+"_"+i))[0])&&at(s)&&(r[a]=pe(s.text+o[0].text),o.shift()),r.push.apply(r,o)):T(o)?at(s)?r[a]=pe(s.text+o):""!==o&&r.push(pe(o)):at(o)&&at(s)?r[a]=pe(s.text+o.text):(S(t._isVList)&&D(o.tag)&&M(o.key)&&D(n)&&(o.key="__vlist"+n+"_"+i+"__"),r.push(o)));return r}(e):void 0}function at(e){return D(e)&&D(e.text)&&!1===e.isComment}function st(e,t){return(e.__esModule||ne&&"Module"===e[Symbol.toStringTag])&&(e=e.default),P(e)?t.extend(e):e}function ct(e){return e.isComment&&e.asyncFactory}function lt(e){if(Array.isArray(e))for(var t=0;t<e.length;t++){var n=e[t];if(D(n)&&(D(n.componentOptions)||ct(n)))return n}}function ut(e,t,n){n?Qe.$once(e,t):Qe.$on(e,t)}function ft(e,t){Qe.$off(e,t)}function pt(e,t,n){Qe=e,nt(t,n||{},ut,ft),Qe=void 0}function dt(e,t){var n={};if(!e)return n;for(var r=0,i=e.length;r<i;r++){var o=e[r],a=o.data;if(a&&a.attrs&&a.attrs.slot&&delete a.attrs.slot,o.context!==t&&o.fnContext!==t||!a||null==a.slot)(n.default||(n.default=[])).push(o);else{var s=a.slot,c=n[s]||(n[s]=[]);"template"===o.tag?c.push.apply(c,o.children||[]):c.push(o)}}for(var l in n)n[l].every(vt)&&delete n[l];return n}function vt(e){return e.isComment&&!e.asyncFactory||" "===e.text}function ht(e,t){t=t||{};for(var n=0;n<e.length;n++)Array.isArray(e[n])?ht(e[n],t):t[e[n].key]=e[n].fn;return t}var mt=null;function yt(e){for(;e&&(e=e.$parent);)if(e._inactive)return!0;return!1}function gt(e,t){if(t){if(e._directInactive=!1,yt(e))return}else if(e._directInactive)return;if(e._inactive||null===e._inactive){e._inactive=!1;for(var n=0;n<e.$children.length;n++)gt(e.$children[n]);_t(e,"activated")}}function _t(t,n){se();var e=t.$options[n];if(e)for(var r=0,i=e.length;r<i;r++)try{e[r].call(t)}catch(e){Fe(e,t,n+" hook")}t._hasHookEvent&&t.$emit("hook:"+n),ce()}var bt=[],$t=[],wt={},Ct=!1,xt=!1,kt=0;function At(){var e,t;for(xt=!0,bt.sort(function(e,t){return e.id-t.id}),kt=0;kt<bt.length;kt++)t=(e=bt[kt]).id,wt[t]=null,e.run();var n=$t.slice(),r=bt.slice();kt=bt.length=$t.length=0,wt={},Ct=xt=!1,function(e){for(var t=0;t<e.length;t++)e[t]._inactive=!0,gt(e[t],!0)}(n),function(e){var t=e.length;for(;t--;){var n=e[t],r=n.vm;r._watcher===n&&r._isMounted&&_t(r,"updated")}}(r),Q&&j.devtools&&Q.emit("flush")}var Ot=0,St=function(e,t,n,r,i){this.vm=e,i&&(e._watcher=this),e._watchers.push(this),r?(this.deep=!!r.deep,this.user=!!r.user,this.lazy=!!r.lazy,this.sync=!!r.sync):this.deep=this.user=this.lazy=this.sync=!1,this.cb=n,this.id=++Ot,this.active=!0,this.dirty=this.lazy,this.deps=[],this.newDeps=[],this.depIds=new te,this.newDepIds=new te,this.expression="","function"==typeof t?this.getter=t:(this.getter=function(e){if(!L.test(e)){var n=e.split(".");return function(e){for(var t=0;t<n.length;t++){if(!e)return;e=e[n[t]]}return e}}}(t),this.getter||(this.getter=function(){})),this.value=this.lazy?void 0:this.get()};St.prototype.get=function(){var e;se(this);var t=this.vm;try{e=this.getter.call(t,t)}catch(e){if(!this.user)throw e;Fe(e,t,'getter for watcher "'+this.expression+'"')}finally{this.deep&&Ye(e),ce(),this.cleanupDeps()}return e},St.prototype.addDep=function(e){var t=e.id;this.newDepIds.has(t)||(this.newDepIds.add(t),this.newDeps.push(e),this.depIds.has(t)||e.addSub(this))},St.prototype.cleanupDeps=function(){for(var e=this.deps.length;e--;){var t=this.deps[e];this.newDepIds.has(t.id)||t.removeSub(this)}var n=this.depIds;this.depIds=this.newDepIds,this.newDepIds=n,this.newDepIds.clear(),n=this.deps,this.deps=this.newDeps,this.newDeps=n,this.newDeps.length=0},St.prototype.update=function(){this.lazy?this.dirty=!0:this.sync?this.run():function(e){var t=e.id;if(null==wt[t]){if(wt[t]=!0,xt){for(var n=bt.length-1;kt<n&&bt[n].id>e.id;)n--;bt.splice(n+1,0,e)}else bt.push(e);Ct||(Ct=!0,Ze(At))}}(this)},St.prototype.run=function(){if(this.active){var e=this.get();if(e!==this.value||P(e)||this.deep){var t=this.value;if(this.value=e,this.user)try{this.cb.call(this.vm,e,t)}catch(e){Fe(e,this.vm,'callback for watcher "'+this.expression+'"')}else this.cb.call(this.vm,e,t)}}},St.prototype.evaluate=function(){this.value=this.get(),this.dirty=!1},St.prototype.depend=function(){for(var e=this.deps.length;e--;)this.deps[e].depend()},St.prototype.teardown=function(){if(this.active){this.vm._isBeingDestroyed||f(this.vm._watchers,this);for(var e=this.deps.length;e--;)this.deps[e].removeSub(this);this.active=!1}};var Tt={enumerable:!0,configurable:!0,get:$,set:$};function Et(e,t,n){Tt.get=function(){return this[t][n]},Tt.set=function(e){this[t][n]=e},Object.defineProperty(e,n,Tt)}function jt(e){e._watchers=[];var t=e.$options;t.props&&function(n,r){var i=n.$options.propsData||{},o=n._props={},a=n.$options._propKeys=[];n.$parent&&ge(!1);var e=function(e){a.push(e);var t=Ie(e,r,i,n);Ce(o,e,t),e in n||Et(n,"_props",e)};for(var t in r)e(t);ge(!0)}(e,t.props),t.methods&&function(e,t){e.$options.props;for(var n in t)e[n]=null==t[n]?$:v(t[n],e)}(e,t.methods),t.data?function(e){var t=e.$options.data;l(t=e._data="function"==typeof t?function(e,t){se();try{return e.call(t,t)}catch(e){return Fe(e,t,"data()"),{}}finally{ce()}}(t,e):t||{})||(t={});var n=Object.keys(t),r=e.$options.props,i=(e.$options.methods,n.length);for(;i--;){var o=n[i];r&&p(r,o)||(void 0,36!==(a=(o+"").charCodeAt(0))&&95!==a&&Et(e,"_data",o))}var a;we(t,!0)}(e):we(e._data={},!0),t.computed&&function(e,t){var n=e._computedWatchers=Object.create(null),r=Y();for(var i in t){var o=t[i],a="function"==typeof o?o:o.get;r||(n[i]=new St(e,a||$,$,Nt)),i in e||Lt(e,i,o)}}(e,t.computed),t.watch&&t.watch!==G&&function(e,t){for(var n in t){var r=t[n];if(Array.isArray(r))for(var i=0;i<r.length;i++)Mt(e,n,r[i]);else Mt(e,n,r)}}(e,t.watch)}var Nt={lazy:!0};function Lt(e,t,n){var r=!Y();"function"==typeof n?(Tt.get=r?It(t):n,Tt.set=$):(Tt.get=n.get?r&&!1!==n.cache?It(t):n.get:$,Tt.set=n.set?n.set:$),Object.defineProperty(e,t,Tt)}function It(t){return function(){var e=this._computedWatchers&&this._computedWatchers[t];if(e)return e.dirty&&e.evaluate(),oe.target&&e.depend(),e.value}}function Mt(e,t,n,r){return l(n)&&(n=(r=n).handler),"string"==typeof n&&(n=e[n]),e.$watch(t,n,r)}function Dt(t,e){if(t){for(var n=Object.create(null),r=ne?Reflect.ownKeys(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}):Object.keys(t),i=0;i<r.length;i++){for(var o=r[i],a=t[o].from,s=e;s;){if(s._provided&&p(s._provided,a)){n[o]=s._provided[a];break}s=s.$parent}if(!s&&"default"in t[o]){var c=t[o].default;n[o]="function"==typeof c?c.call(e):c}}return n}}function Pt(e,t){var n,r,i,o,a;if(Array.isArray(e)||"string"==typeof e)for(n=new Array(e.length),r=0,i=e.length;r<i;r++)n[r]=t(e[r],r);else if("number"==typeof e)for(n=new Array(e),r=0;r<e;r++)n[r]=t(r+1,r);else if(P(e))for(o=Object.keys(e),n=new Array(o.length),r=0,i=o.length;r<i;r++)a=o[r],n[r]=t(e[a],a,r);return D(n)&&(n._isVList=!0),n}function Ft(e,t,n,r){var i,o=this.$scopedSlots[e];if(o)n=n||{},r&&(n=m(m({},r),n)),i=o(n)||t;else{var a=this.$slots[e];a&&(a._rendered=!0),i=a||t}var s=n&&n.slot;return s?this.$createElement("template",{slot:s},i):i}function Rt(e){return Le(this.$options,"filters",e)||w}function Ht(e,t){return Array.isArray(e)?-1===e.indexOf(t):e!==t}function Bt(e,t,n,r,i){var o=j.keyCodes[t]||n;return i&&r&&!j.keyCodes[t]?Ht(i,r):o?Ht(o,e):r?_(r)!==t:void 0}function Ut(n,r,i,o,a){if(i)if(P(i)){var s;Array.isArray(i)&&(i=b(i));var e=function(t){if("class"===t||"style"===t||u(t))s=n;else{var e=n.attrs&&n.attrs.type;s=o||j.mustUseProp(r,e,t)?n.domProps||(n.domProps={}):n.attrs||(n.attrs={})}t in s||(s[t]=i[t],a&&((n.on||(n.on={}))["update:"+t]=function(e){i[t]=e}))};for(var t in i)e(t)}else;return n}function Vt(e,t){var n=this._staticTrees||(this._staticTrees=[]),r=n[e];return r&&!t||Kt(r=n[e]=this.$options.staticRenderFns[e].call(this._renderProxy,null,this),"__static__"+e,!1),r}function zt(e,t,n){return Kt(e,"__once__"+t+(n?"_"+n:""),!0),e}function Kt(e,t,n){if(Array.isArray(e))for(var r=0;r<e.length;r++)e[r]&&"string"!=typeof e[r]&&Jt(e[r],t+"_"+r,n);else Jt(e,t,n)}function Jt(e,t,n){e.isStatic=!0,e.key=t,e.isOnce=n}function qt(e,t){if(t)if(l(t)){var n=e.on=e.on?m({},e.on):{};for(var r in t){var i=n[r],o=t[r];n[r]=i?[].concat(i,o):o}}else;return e}function Wt(e){e._o=zt,e._n=F,e._s=t,e._l=Pt,e._t=Ft,e._q=C,e._i=x,e._m=Vt,e._f=Rt,e._k=Bt,e._b=Ut,e._v=pe,e._e=fe,e._u=ht,e._g=qt}function Gt(e,t,n,o,r){var a,s=r.options;p(o,"_uid")?(a=Object.create(o))._original=o:o=(a=o)._original;var i=S(s._compiled),c=!i;this.data=e,this.props=t,this.children=n,this.parent=o,this.listeners=e.on||y,this.injections=Dt(s.inject,o),this.slots=function(){return dt(n,o)},i&&(this.$options=s,this.$slots=this.slots(),this.$scopedSlots=e.scopedSlots||y),s._scopeId?this._c=function(e,t,n,r){var i=rn(a,e,t,n,r,c);return i&&!Array.isArray(i)&&(i.fnScopeId=s._scopeId,i.fnContext=o),i}:this._c=function(e,t,n,r){return rn(a,e,t,n,r,c)}}function Zt(e,t,n,r){var i=de(e);return i.fnContext=n,i.fnOptions=r,t.slot&&((i.data||(i.data={})).slot=t.slot),i}function Xt(e,t){for(var n in t)e[g(n)]=t[n]}Wt(Gt.prototype);var Yt={init:function(e,t,n,r){if(e.componentInstance&&!e.componentInstance._isDestroyed&&e.data.keepAlive){var i=e;Yt.prepatch(i,i)}else{(e.componentInstance=function(e,t,n,r){var i={_isComponent:!0,parent:t,_parentVnode:e,_parentElm:n||null,_refElm:r||null},o=e.data.inlineTemplate;D(o)&&(i.render=o.render,i.staticRenderFns=o.staticRenderFns);return new e.componentOptions.Ctor(i)}(e,mt,n,r)).$mount(t?e.elm:void 0,t)}},prepatch:function(e,t){var n=t.componentOptions;!function(e,t,n,r,i){var o=!!(i||e.$options._renderChildren||r.data.scopedSlots||e.$scopedSlots!==y);if(e.$options._parentVnode=r,e.$vnode=r,e._vnode&&(e._vnode.parent=r),e.$options._renderChildren=i,e.$attrs=r.data.attrs||y,e.$listeners=n||y,t&&e.$options.props){ge(!1);for(var a=e._props,s=e.$options._propKeys||[],c=0;c<s.length;c++){var l=s[c],u=e.$options.props;a[l]=Ie(l,u,t,e)}ge(!0),e.$options.propsData=t}n=n||y;var f=e.$options._parentListeners;e.$options._parentListeners=n,pt(e,n,f),o&&(e.$slots=dt(i,r.context),e.$forceUpdate())}(t.componentInstance=e.componentInstance,n.propsData,n.listeners,t,n.children)},insert:function(e){var t,n=e.context,r=e.componentInstance;r._isMounted||(r._isMounted=!0,_t(r,"mounted")),e.data.keepAlive&&(n._isMounted?((t=r)._inactive=!1,$t.push(t)):gt(r,!0))},destroy:function(e){var t=e.componentInstance;t._isDestroyed||(e.data.keepAlive?function e(t,n){if(!(n&&(t._directInactive=!0,yt(t))||t._inactive)){t._inactive=!0;for(var r=0;r<t.$children.length;r++)e(t.$children[r]);_t(t,"deactivated")}}(t,!0):t.$destroy())}},Qt=Object.keys(Yt);function en(e,t,n,r,i){if(!M(e)){var o=n.$options._base;if(P(e)&&(e=o.extend(e)),"function"==typeof e){var a,s,c,l,u,f,p;if(M(e.cid)&&void 0===(e=function(t,n,e){if(S(t.error)&&D(t.errorComp))return t.errorComp;if(D(t.resolved))return t.resolved;if(S(t.loading)&&D(t.loadingComp))return t.loadingComp;if(!D(t.contexts)){var r=t.contexts=[e],i=!0,o=function(){for(var e=0,t=r.length;e<t;e++)r[e].$forceUpdate()},a=R(function(e){t.resolved=st(e,n),i||o()}),s=R(function(e){D(t.errorComp)&&(t.error=!0,o())}),c=t(a,s);return P(c)&&("function"==typeof c.then?M(t.resolved)&&c.then(a,s):D(c.component)&&"function"==typeof c.component.then&&(c.component.then(a,s),D(c.error)&&(t.errorComp=st(c.error,n)),D(c.loading)&&(t.loadingComp=st(c.loading,n),0===c.delay?t.loading=!0:setTimeout(function(){M(t.resolved)&&M(t.error)&&(t.loading=!0,o())},c.delay||200)),D(c.timeout)&&setTimeout(function(){M(t.resolved)&&s(null)},c.timeout))),i=!1,t.loading?t.loadingComp:t.resolved}t.contexts.push(e)}(a=e,o,n)))return s=a,c=t,l=n,u=r,f=i,(p=fe()).asyncFactory=s,p.asyncMeta={data:c,context:l,children:u,tag:f},p;t=t||{},dn(e),D(t.model)&&function(e,t){var n=e.model&&e.model.prop||"value",r=e.model&&e.model.event||"input";(t.props||(t.props={}))[n]=t.model.value;var i=t.on||(t.on={});D(i[r])?i[r]=[t.model.callback].concat(i[r]):i[r]=t.model.callback}(e.options,t);var d=function(e,t,n){var r=t.options.props;if(!M(r)){var i={},o=e.attrs,a=e.props;if(D(o)||D(a))for(var s in r){var c=_(s);it(i,a,s,c,!0)||it(i,o,s,c,!1)}return i}}(t,e);if(S(e.options.functional))return function(e,t,n,r,i){var o=e.options,a={},s=o.props;if(D(s))for(var c in s)a[c]=Ie(c,s,t||y);else D(n.attrs)&&Xt(a,n.attrs),D(n.props)&&Xt(a,n.props);var l=new Gt(n,a,i,r,e),u=o.render.call(null,l._c,l);if(u instanceof le)return Zt(u,n,l.parent,o);if(Array.isArray(u)){for(var f=ot(u)||[],p=new Array(f.length),d=0;d<f.length;d++)p[d]=Zt(f[d],n,l.parent,o);return p}}(e,d,t,n,r);var v=t.on;if(t.on=t.nativeOn,S(e.options.abstract)){var h=t.slot;t={},h&&(t.slot=h)}!function(e){for(var t=e.hook||(e.hook={}),n=0;n<Qt.length;n++){var r=Qt[n];t[r]=Yt[r]}}(t);var m=e.options.name||i;return new le("vue-component-"+e.cid+(m?"-"+m:""),t,void 0,void 0,void 0,n,{Ctor:e,propsData:d,listeners:v,tag:i,children:r},a)}}}var tn=1,nn=2;function rn(e,t,n,r,i,o){return(Array.isArray(n)||T(n))&&(i=r,r=n,n=void 0),S(o)&&(i=nn),function(e,t,n,r,i){if(D(n)&&D(n.__ob__))return fe();D(n)&&D(n.is)&&(t=n.is);if(!t)return fe();Array.isArray(r)&&"function"==typeof r[0]&&((n=n||{}).scopedSlots={default:r[0]},r.length=0);i===nn?r=ot(r):i===tn&&(r=function(e){for(var t=0;t<e.length;t++)if(Array.isArray(e[t]))return Array.prototype.concat.apply([],e);return e}(r));var o,a;if("string"==typeof t){var s;a=e.$vnode&&e.$vnode.ns||j.getTagNamespace(t),o=j.isReservedTag(t)?new le(j.parsePlatformTagName(t),n,r,void 0,void 0,e):D(s=Le(e.$options,"components",t))?en(s,n,e,r,t):new le(t,n,r,void 0,void 0,e)}else o=en(t,n,e,r);return Array.isArray(o)?o:D(o)?(D(a)&&function e(t,n,r){t.ns=n;"foreignObject"===t.tag&&(n=void 0,r=!0);if(D(t.children))for(var i=0,o=t.children.length;i<o;i++){var a=t.children[i];D(a.tag)&&(M(a.ns)||S(r)&&"svg"!==a.tag)&&e(a,n,r)}}(o,a),D(n)&&function(e){P(e.style)&&Ye(e.style);P(e.class)&&Ye(e.class)}(n),o):fe()}(e,t,n,r,i)}var on,an,sn,cn,ln,un,fn,pn=0;function dn(e){var t=e.options;if(e.super){var n=dn(e.super);if(n!==e.superOptions){e.superOptions=n;var r=function(e){var t,n=e.options,r=e.extendOptions,i=e.sealedOptions;for(var o in n)n[o]!==i[o]&&(t||(t={}),t[o]=vn(n[o],r[o],i[o]));return t}(e);r&&m(e.extendOptions,r),(t=e.options=Ne(n,e.extendOptions)).name&&(t.components[t.name]=e)}}return t}function vn(e,t,n){if(Array.isArray(e)){var r=[];n=Array.isArray(n)?n:[n],t=Array.isArray(t)?t:[t];for(var i=0;i<e.length;i++)(0<=t.indexOf(e[i])||n.indexOf(e[i])<0)&&r.push(e[i]);return r}return e}function hn(e){this._init(e)}function mn(e){e.cid=0;var a=1;e.extend=function(e){e=e||{};var t=this,n=t.cid,r=e._Ctor||(e._Ctor={});if(r[n])return r[n];var i=e.name||t.options.name,o=function(e){this._init(e)};return((o.prototype=Object.create(t.prototype)).constructor=o).cid=a++,o.options=Ne(t.options,e),o.super=t,o.options.props&&function(e){var t=e.options.props;for(var n in t)Et(e.prototype,"_props",n)}(o),o.options.computed&&function(e){var t=e.options.computed;for(var n in t)Lt(e.prototype,n,t[n])}(o),o.extend=t.extend,o.mixin=t.mixin,o.use=t.use,k.forEach(function(e){o[e]=t[e]}),i&&(o.options.components[i]=o),o.superOptions=t.options,o.extendOptions=e,o.sealedOptions=m({},o.options),r[n]=o}}function yn(e){return e&&(e.Ctor.options.name||e.tag)}function gn(e,t){return Array.isArray(e)?-1<e.indexOf(t):"string"==typeof e?-1<e.split(",").indexOf(t):(n=e,"[object RegExp]"===r.call(n)&&e.test(t));var n}function _n(e,t){var n=e.cache,r=e.keys,i=e._vnode;for(var o in n){var a=n[o];if(a){var s=yn(a.componentOptions);s&&!t(s)&&bn(n,o,r,i)}}}function bn(e,t,n,r){var i=e[t];!i||r&&i.tag===r.tag||i.componentInstance.$destroy(),e[t]=null,f(n,t)}hn.prototype._init=function(e){var t,n,r,i,o=this;o._uid=pn++,o._isVue=!0,e&&e._isComponent?function(e,t){var n=e.$options=Object.create(e.constructor.options),r=t._parentVnode;n.parent=t.parent,n._parentVnode=r,n._parentElm=t._parentElm,n._refElm=t._refElm;var i=r.componentOptions;n.propsData=i.propsData,n._parentListeners=i.listeners,n._renderChildren=i.children,n._componentTag=i.tag,t.render&&(n.render=t.render,n.staticRenderFns=t.staticRenderFns)}(o,e):o.$options=Ne(dn(o.constructor),e||{},o),function(e){var t=e.$options,n=t.parent;if(n&&!t.abstract){for(;n.$options.abstract&&n.$parent;)n=n.$parent;n.$children.push(e)}e.$parent=n,e.$root=n?n.$root:e,e.$children=[],e.$refs={},e._watcher=null,e._inactive=null,e._directInactive=!1,e._isMounted=!1,e._isDestroyed=!1,e._isBeingDestroyed=!1}((o._renderProxy=o)._self=o),function(e){e._events=Object.create(null),e._hasHookEvent=!1;var t=e.$options._parentListeners;t&&pt(e,t)}(o),function(i){i._vnode=null,i._staticTrees=null;var e=i.$options,t=i.$vnode=e._parentVnode,n=t&&t.context;i.$slots=dt(e._renderChildren,n),i.$scopedSlots=y,i._c=function(e,t,n,r){return rn(i,e,t,n,r,!1)},i.$createElement=function(e,t,n,r){return rn(i,e,t,n,r,!0)};var r=t&&t.data;Ce(i,"$attrs",r&&r.attrs||y,null,!0),Ce(i,"$listeners",e._parentListeners||y,null,!0)}(o),_t(o,"beforeCreate"),(n=Dt((t=o).$options.inject,t))&&(ge(!1),Object.keys(n).forEach(function(e){Ce(t,e,n[e])}),ge(!0)),jt(o),(i=(r=o).$options.provide)&&(r._provided="function"==typeof i?i.call(r):i),_t(o,"created"),o.$options.el&&o.$mount(o.$options.el)},on=hn,an={get:function(){return this._data}},sn={get:function(){return this._props}},Object.defineProperty(on.prototype,"$data",an),Object.defineProperty(on.prototype,"$props",sn),on.prototype.$set=xe,on.prototype.$delete=ke,on.prototype.$watch=function(e,t,n){if(l(t))return Mt(this,e,t,n);(n=n||{}).user=!0;var r=new St(this,e,t,n);return n.immediate&&t.call(this,r.value),function(){r.teardown()}},ln=/^hook:/,(cn=hn).prototype.$on=function(e,t){if(Array.isArray(e))for(var n=0,r=e.length;n<r;n++)this.$on(e[n],t);else(this._events[e]||(this._events[e]=[])).push(t),ln.test(e)&&(this._hasHookEvent=!0);return this},cn.prototype.$once=function(e,t){var n=this;function r(){n.$off(e,r),t.apply(n,arguments)}return r.fn=t,n.$on(e,r),n},cn.prototype.$off=function(e,t){var n=this;if(!arguments.length)return n._events=Object.create(null),n;if(Array.isArray(e)){for(var r=0,i=e.length;r<i;r++)this.$off(e[r],t);return n}var o=n._events[e];if(!o)return n;if(!t)return n._events[e]=null,n;if(t)for(var a,s=o.length;s--;)if((a=o[s])===t||a.fn===t){o.splice(s,1);break}return n},cn.prototype.$emit=function(t){var n=this,e=n._events[t];if(e){e=1<e.length?h(e):e;for(var r=h(arguments,1),i=0,o=e.length;i<o;i++)try{e[i].apply(n,r)}catch(e){Fe(e,n,'event handler for "'+t+'"')}}return n},(un=hn).prototype._update=function(e,t){var n=this;n._isMounted&&_t(n,"beforeUpdate");var r=n.$el,i=n._vnode,o=mt;(mt=n)._vnode=e,i?n.$el=n.__patch__(i,e):(n.$el=n.__patch__(n.$el,e,t,!1,n.$options._parentElm,n.$options._refElm),n.$options._parentElm=n.$options._refElm=null),mt=o,r&&(r.__vue__=null),n.$el&&(n.$el.__vue__=n),n.$vnode&&n.$parent&&n.$vnode===n.$parent._vnode&&(n.$parent.$el=n.$el)},un.prototype.$forceUpdate=function(){this._watcher&&this._watcher.update()},un.prototype.$destroy=function(){var e=this;if(!e._isBeingDestroyed){_t(e,"beforeDestroy"),e._isBeingDestroyed=!0;var t=e.$parent;!t||t._isBeingDestroyed||e.$options.abstract||f(t.$children,e),e._watcher&&e._watcher.teardown();for(var n=e._watchers.length;n--;)e._watchers[n].teardown();e._data.__ob__&&e._data.__ob__.vmCount--,e._isDestroyed=!0,e.__patch__(e._vnode,null),_t(e,"destroyed"),e.$off(),e.$el&&(e.$el.__vue__=null),e.$vnode&&(e.$vnode.parent=null)}},Wt((fn=hn).prototype),fn.prototype.$nextTick=function(e){return Ze(e,this)},fn.prototype._render=function(){var t,n=this,e=n.$options,r=e.render,i=e._parentVnode;i&&(n.$scopedSlots=i.data.scopedSlots||y),n.$vnode=i;try{t=r.call(n._renderProxy,n.$createElement)}catch(e){Fe(e,n,"render"),t=n._vnode}return t instanceof le||(t=fe()),t.parent=i,t};var $n,wn,Cn,xn=[String,RegExp,Array],kn={KeepAlive:{name:"keep-alive",abstract:!0,props:{include:xn,exclude:xn,max:[String,Number]},created:function(){this.cache=Object.create(null),this.keys=[]},destroyed:function(){for(var e in this.cache)bn(this.cache,e,this.keys)},mounted:function(){var e=this;this.$watch("include",function(t){_n(e,function(e){return gn(t,e)})}),this.$watch("exclude",function(t){_n(e,function(e){return!gn(t,e)})})},render:function(){var e=this.$slots.default,t=lt(e),n=t&&t.componentOptions;if(n){var r=yn(n),i=this.include,o=this.exclude;if(i&&(!r||!gn(i,r))||o&&r&&gn(o,r))return t;var a=this.cache,s=this.keys,c=null==t.key?n.Ctor.cid+(n.tag?"::"+n.tag:""):t.key;a[c]?(t.componentInstance=a[c].componentInstance,f(s,c),s.push(c)):(a[c]=t,s.push(c),this.max&&s.length>parseInt(this.max)&&bn(a,s[0],s,this._vnode)),t.data.keepAlive=!0}return t||e&&e[0]}}};$n=hn,Cn={get:function(){return j}},Object.defineProperty($n,"config",Cn),$n.util={warn:re,extend:m,mergeOptions:Ne,defineReactive:Ce},$n.set=xe,$n.delete=ke,$n.nextTick=Ze,$n.options=Object.create(null),k.forEach(function(e){$n.options[e+"s"]=Object.create(null)}),m(($n.options._base=$n).options.components,kn),$n.use=function(e){var t=this._installedPlugins||(this._installedPlugins=[]);if(-1<t.indexOf(e))return this;var n=h(arguments,1);return n.unshift(this),"function"==typeof e.install?e.install.apply(e,n):"function"==typeof e&&e.apply(null,n),t.push(e),this},$n.mixin=function(e){return this.options=Ne(this.options,e),this},mn($n),wn=$n,k.forEach(function(n){wn[n]=function(e,t){return t?("component"===n&&l(t)&&(t.name=t.name||e,t=this.options._base.extend(t)),"directive"===n&&"function"==typeof t&&(t={bind:t,update:t}),this.options[n+"s"][e]=t):this.options[n+"s"][e]}}),Object.defineProperty(hn.prototype,"$isServer",{get:Y}),Object.defineProperty(hn.prototype,"$ssrContext",{get:function(){return this.$vnode&&this.$vnode.ssrContext}}),Object.defineProperty(hn,"FunctionalRenderContext",{value:Gt}),hn.version="2.5.16";var An=s("style,class"),On=s("input,textarea,option,select,progress"),Sn=function(e,t,n){return"value"===n&&On(e)&&"button"!==t||"selected"===n&&"option"===e||"checked"===n&&"input"===e||"muted"===n&&"video"===e},Tn=s("contenteditable,draggable,spellcheck"),En=s("allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,default,defaultchecked,defaultmuted,defaultselected,defer,disabled,enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,required,reversed,scoped,seamless,selected,sortable,translate,truespeed,typemustmatch,visible"),jn="http://www.w3.org/1999/xlink",Nn=function(e){return":"===e.charAt(5)&&"xlink"===e.slice(0,5)},Ln=function(e){return Nn(e)?e.slice(6,e.length):""},In=function(e){return null==e||!1===e};function Mn(e){for(var t=e.data,n=e,r=e;D(r.componentInstance);)(r=r.componentInstance._vnode)&&r.data&&(t=Dn(r.data,t));for(;D(n=n.parent);)n&&n.data&&(t=Dn(t,n.data));return function(e,t){if(D(e)||D(t))return Pn(e,Fn(t));return""}(t.staticClass,t.class)}function Dn(e,t){return{staticClass:Pn(e.staticClass,t.staticClass),class:D(e.class)?[e.class,t.class]:t.class}}function Pn(e,t){return e?t?e+" "+t:e:t||""}function Fn(e){return Array.isArray(e)?function(e){for(var t,n="",r=0,i=e.length;r<i;r++)D(t=Fn(e[r]))&&""!==t&&(n&&(n+=" "),n+=t);return n}(e):P(e)?function(e){var t="";for(var n in e)e[n]&&(t&&(t+=" "),t+=n);return t}(e):"string"==typeof e?e:""}var Rn={svg:"http://www.w3.org/2000/svg",math:"http://www.w3.org/1998/Math/MathML"},Hn=s("html,body,base,head,link,meta,style,title,address,article,aside,footer,header,h1,h2,h3,h4,h5,h6,hgroup,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,rtc,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,menuitem,summary,content,element,shadow,template,blockquote,iframe,tfoot"),Bn=s("svg,animate,circle,clippath,cursor,defs,desc,ellipse,filter,font-face,foreignObject,g,glyph,image,line,marker,mask,missing-glyph,path,pattern,polygon,polyline,rect,switch,symbol,text,textpath,tspan,use,view",!0),Un=function(e){return Hn(e)||Bn(e)};function Vn(e){return Bn(e)?"svg":"math"===e?"math":void 0}var zn=Object.create(null);var Kn=s("text,number,password,search,email,tel,url");function Jn(e){if("string"==typeof e){var t=document.querySelector(e);return t||document.createElement("div")}return e}var qn=Object.freeze({createElement:function(e,t){var n=document.createElement(e);return"select"!==e||t.data&&t.data.attrs&&void 0!==t.data.attrs.multiple&&n.setAttribute("multiple","multiple"),n},createElementNS:function(e,t){return document.createElementNS(Rn[e],t)},createTextNode:function(e){return document.createTextNode(e)},createComment:function(e){return document.createComment(e)},insertBefore:function(e,t,n){e.insertBefore(t,n)},removeChild:function(e,t){e.removeChild(t)},appendChild:function(e,t){e.appendChild(t)},parentNode:function(e){return e.parentNode},nextSibling:function(e){return e.nextSibling},tagName:function(e){return e.tagName},setTextContent:function(e,t){e.textContent=t},setStyleScope:function(e,t){e.setAttribute(t,"")}}),Wn={create:function(e,t){Gn(t)},update:function(e,t){e.data.ref!==t.data.ref&&(Gn(e,!0),Gn(t))},destroy:function(e){Gn(e,!0)}};function Gn(e,t){var n=e.data.ref;if(D(n)){var r=e.context,i=e.componentInstance||e.elm,o=r.$refs;t?Array.isArray(o[n])?f(o[n],i):o[n]===i&&(o[n]=void 0):e.data.refInFor?Array.isArray(o[n])?o[n].indexOf(i)<0&&o[n].push(i):o[n]=[i]:o[n]=i}}var Zn=new le("",{},[]),Xn=["create","activate","update","remove","destroy"];function Yn(e,t){return e.key===t.key&&(e.tag===t.tag&&e.isComment===t.isComment&&D(e.data)===D(t.data)&&function(e,t){if("input"!==e.tag)return!0;var n,r=D(n=e.data)&&D(n=n.attrs)&&n.type,i=D(n=t.data)&&D(n=n.attrs)&&n.type;return r===i||Kn(r)&&Kn(i)}(e,t)||S(e.isAsyncPlaceholder)&&e.asyncFactory===t.asyncFactory&&M(t.asyncFactory.error))}function Qn(e,t,n){var r,i,o={};for(r=t;r<=n;++r)D(i=e[r].key)&&(o[i]=r);return o}var er={create:tr,update:tr,destroy:function(e){tr(e,Zn)}};function tr(e,t){(e.data.directives||t.data.directives)&&function(t,n){var e,r,i,o=t===Zn,a=n===Zn,s=rr(t.data.directives,t.context),c=rr(n.data.directives,n.context),l=[],u=[];for(e in c)r=s[e],i=c[e],r?(i.oldValue=r.value,ir(i,"update",n,t),i.def&&i.def.componentUpdated&&u.push(i)):(ir(i,"bind",n,t),i.def&&i.def.inserted&&l.push(i));if(l.length){var f=function(){for(var e=0;e<l.length;e++)ir(l[e],"inserted",n,t)};o?rt(n,"insert",f):f()}u.length&&rt(n,"postpatch",function(){for(var e=0;e<u.length;e++)ir(u[e],"componentUpdated",n,t)});if(!o)for(e in s)c[e]||ir(s[e],"unbind",t,t,a)}(e,t)}var nr=Object.create(null);function rr(e,t){var n,r,i,o=Object.create(null);if(!e)return o;for(n=0;n<e.length;n++)(r=e[n]).modifiers||(r.modifiers=nr),(o[(i=r,i.rawName||i.name+"."+Object.keys(i.modifiers||{}).join("."))]=r).def=Le(t.$options,"directives",r.name);return o}function ir(t,n,r,e,i){var o=t.def&&t.def[n];if(o)try{o(r.elm,t,r,e,i)}catch(e){Fe(e,r.context,"directive "+t.name+" "+n+" hook")}}var or=[Wn,er];function ar(e,t){var n=t.componentOptions;if(!(D(n)&&!1===n.Ctor.options.inheritAttrs||M(e.data.attrs)&&M(t.data.attrs))){var r,i,o=t.elm,a=e.data.attrs||{},s=t.data.attrs||{};for(r in D(s.__ob__)&&(s=t.data.attrs=m({},s)),s)i=s[r],a[r]!==i&&sr(o,r,i);for(r in(K||q)&&s.value!==a.value&&sr(o,"value",s.value),a)M(s[r])&&(Nn(r)?o.removeAttributeNS(jn,Ln(r)):Tn(r)||o.removeAttribute(r))}}function sr(e,t,n){-1<e.tagName.indexOf("-")?cr(e,t,n):En(t)?In(n)?e.removeAttribute(t):(n="allowfullscreen"===t&&"EMBED"===e.tagName?"true":t,e.setAttribute(t,n)):Tn(t)?e.setAttribute(t,In(n)||"false"===n?"false":"true"):Nn(t)?In(n)?e.removeAttributeNS(jn,Ln(t)):e.setAttributeNS(jn,t,n):cr(e,t,n)}function cr(t,e,n){if(In(n))t.removeAttribute(e);else{if(K&&!J&&"TEXTAREA"===t.tagName&&"placeholder"===e&&!t.__ieph){var r=function(e){e.stopImmediatePropagation(),t.removeEventListener("input",r)};t.addEventListener("input",r),t.__ieph=!0}t.setAttribute(e,n)}}var lr={create:ar,update:ar};function ur(e,t){var n=t.elm,r=t.data,i=e.data;if(!(M(r.staticClass)&&M(r.class)&&(M(i)||M(i.staticClass)&&M(i.class)))){var o=Mn(t),a=n._transitionClasses;D(a)&&(o=Pn(o,Fn(a))),o!==n._prevClass&&(n.setAttribute("class",o),n._prevClass=o)}}var fr,pr,dr,vr,hr,mr,yr={create:ur,update:ur},gr=/[\w).+\-_$\]]/;function _r(e){var t,n,r,i,o,a=!1,s=!1,c=!1,l=!1,u=0,f=0,p=0,d=0;for(r=0;r<e.length;r++)if(n=t,t=e.charCodeAt(r),a)39===t&&92!==n&&(a=!1);else if(s)34===t&&92!==n&&(s=!1);else if(c)96===t&&92!==n&&(c=!1);else if(l)47===t&&92!==n&&(l=!1);else if(124!==t||124===e.charCodeAt(r+1)||124===e.charCodeAt(r-1)||u||f||p){switch(t){case 34:s=!0;break;case 39:a=!0;break;case 96:c=!0;break;case 40:p++;break;case 41:p--;break;case 91:f++;break;case 93:f--;break;case 123:u++;break;case 125:u--}if(47===t){for(var v=r-1,h=void 0;0<=v&&" "===(h=e.charAt(v));v--);h&&gr.test(h)||(l=!0)}}else void 0===i?(d=r+1,i=e.slice(0,r).trim()):m();function m(){(o||(o=[])).push(e.slice(d,r).trim()),d=r+1}if(void 0===i?i=e.slice(0,r).trim():0!==d&&m(),o)for(r=0;r<o.length;r++)i=br(i,o[r]);return i}function br(e,t){var n=t.indexOf("(");if(n<0)return'_f("'+t+'")('+e+")";var r=t.slice(0,n),i=t.slice(n+1);return'_f("'+r+'")('+e+(")"!==i?","+i:i)}function $r(e){console.error("[Vue compiler]: "+e)}function wr(e,t){return e?e.map(function(e){return e[t]}).filter(function(e){return e}):[]}function Cr(e,t,n){(e.props||(e.props=[])).push({name:t,value:n}),e.plain=!1}function xr(e,t,n){(e.attrs||(e.attrs=[])).push({name:t,value:n}),e.plain=!1}function kr(e,t,n){e.attrsMap[t]=n,e.attrsList.push({name:t,value:n})}function Ar(e,t,n,r,i,o){var a;(r=r||y).capture&&(delete r.capture,t="!"+t),r.once&&(delete r.once,t="~"+t),r.passive&&(delete r.passive,t="&"+t),"click"===t&&(r.right?(t="contextmenu",delete r.right):r.middle&&(t="mouseup")),r.native?(delete r.native,a=e.nativeEvents||(e.nativeEvents={})):a=e.events||(e.events={});var s={value:n.trim()};r!==y&&(s.modifiers=r);var c=a[t];Array.isArray(c)?i?c.unshift(s):c.push(s):a[t]=c?i?[s,c]:[c,s]:s,e.plain=!1}function Or(e,t,n){var r=Sr(e,":"+t)||Sr(e,"v-bind:"+t);if(null!=r)return _r(r);if(!1!==n){var i=Sr(e,t);if(null!=i)return JSON.stringify(i)}}function Sr(e,t,n){var r;if(null!=(r=e.attrsMap[t]))for(var i=e.attrsList,o=0,a=i.length;o<a;o++)if(i[o].name===t){i.splice(o,1);break}return n&&delete e.attrsMap[t],r}function Tr(e,t,n){var r=n||{},i=r.number,o="$$v",a=o;r.trim&&(a="(typeof $$v === 'string'? $$v.trim(): $$v)"),i&&(a="_n("+a+")");var s=Er(t,a);e.model={value:"("+t+")",expression:'"'+t+'"',callback:"function ($$v) {"+s+"}"}}function Er(e,t){var n=function(e){if(e=e.trim(),fr=e.length,e.indexOf("[")<0||e.lastIndexOf("]")<fr-1)return-1<(vr=e.lastIndexOf("."))?{exp:e.slice(0,vr),key:'"'+e.slice(vr+1)+'"'}:{exp:e,key:null};pr=e,vr=hr=mr=0;for(;!Nr();)Lr(dr=jr())?Mr(dr):91===dr&&Ir(dr);return{exp:e.slice(0,hr),key:e.slice(hr+1,mr)}}(e);return null===n.key?e+"="+t:"$set("+n.exp+", "+n.key+", "+t+")"}function jr(){return pr.charCodeAt(++vr)}function Nr(){return fr<=vr}function Lr(e){return 34===e||39===e}function Ir(e){var t=1;for(hr=vr;!Nr();)if(Lr(e=jr()))Mr(e);else if(91===e&&t++,93===e&&t--,0===t){mr=vr;break}}function Mr(e){for(var t=e;!Nr()&&(e=jr())!==t;);}var Dr,Pr="__r",Fr="__c";function Rr(e,t,n,r,i){var o,a,s,c,l;t=(o=t)._withTask||(o._withTask=function(){Je=!0;var e=o.apply(null,arguments);return Je=!1,e}),n&&(a=t,s=e,c=r,l=Dr,t=function e(){null!==a.apply(null,arguments)&&Hr(s,e,c,l)}),Dr.addEventListener(e,t,Z?{capture:r,passive:i}:r)}function Hr(e,t,n,r){(r||Dr).removeEventListener(e,t._withTask||t,n)}function Br(e,t){if(!M(e.data.on)||!M(t.data.on)){var n=t.data.on||{},r=e.data.on||{};Dr=t.elm,function(e){if(D(e[Pr])){var t=K?"change":"input";e[t]=[].concat(e[Pr],e[t]||[]),delete e[Pr]}D(e[Fr])&&(e.change=[].concat(e[Fr],e.change||[]),delete e[Fr])}(n),nt(n,r,Rr,Hr,t.context),Dr=void 0}}var Ur={create:Br,update:Br};function Vr(e,t){if(!M(e.data.domProps)||!M(t.data.domProps)){var n,r,i,o,a=t.elm,s=e.data.domProps||{},c=t.data.domProps||{};for(n in D(c.__ob__)&&(c=t.data.domProps=m({},c)),s)M(c[n])&&(a[n]="");for(n in c){if(r=c[n],"textContent"===n||"innerHTML"===n){if(t.children&&(t.children.length=0),r===s[n])continue;1===a.childNodes.length&&a.removeChild(a.childNodes[0])}if("value"===n){var l=M(a._value=r)?"":String(r);o=l,(i=a).composing||"OPTION"!==i.tagName&&!function(e,t){var n=!0;try{n=document.activeElement!==e}catch(e){}return n&&e.value!==t}(i,o)&&!function(e,t){var n=e.value,r=e._vModifiers;if(D(r)){if(r.lazy)return!1;if(r.number)return F(n)!==F(t);if(r.trim)return n.trim()!==t.trim()}return n!==t}(i,o)||(a.value=l)}else a[n]=r}}}var zr={create:Vr,update:Vr},Kr=e(function(e){var n={},r=/:(.+)/;return e.split(/;(?![^(]*\))/g).forEach(function(e){if(e){var t=e.split(r);1<t.length&&(n[t[0].trim()]=t[1].trim())}}),n});function Jr(e){var t=qr(e.style);return e.staticStyle?m(e.staticStyle,t):t}function qr(e){return Array.isArray(e)?b(e):"string"==typeof e?Kr(e):e}var Wr,Gr=/^--/,Zr=/\s*!important$/,Xr=function(e,t,n){if(Gr.test(t))e.style.setProperty(t,n);else if(Zr.test(n))e.style.setProperty(t,n.replace(Zr,""),"important");else{var r=Qr(t);if(Array.isArray(n))for(var i=0,o=n.length;i<o;i++)e.style[r]=n[i];else e.style[r]=n}},Yr=["Webkit","Moz","ms"],Qr=e(function(e){if(Wr=Wr||document.createElement("div").style,"filter"!==(e=g(e))&&e in Wr)return e;for(var t=e.charAt(0).toUpperCase()+e.slice(1),n=0;n<Yr.length;n++){var r=Yr[n]+t;if(r in Wr)return r}});function ei(e,t){var n=t.data,r=e.data;if(!(M(n.staticStyle)&&M(n.style)&&M(r.staticStyle)&&M(r.style))){var i,o,a=t.elm,s=r.staticStyle,c=r.normalizedStyle||r.style||{},l=s||c,u=qr(t.data.style)||{};t.data.normalizedStyle=D(u.__ob__)?m({},u):u;var f=function(e,t){var n,r={};if(t)for(var i=e;i.componentInstance;)(i=i.componentInstance._vnode)&&i.data&&(n=Jr(i.data))&&m(r,n);(n=Jr(e.data))&&m(r,n);for(var o=e;o=o.parent;)o.data&&(n=Jr(o.data))&&m(r,n);return r}(t,!0);for(o in l)M(f[o])&&Xr(a,o,"");for(o in f)(i=f[o])!==l[o]&&Xr(a,o,null==i?"":i)}}var ti={create:ei,update:ei};function ni(t,e){if(e&&(e=e.trim()))if(t.classList)-1<e.indexOf(" ")?e.split(/\s+/).forEach(function(e){return t.classList.add(e)}):t.classList.add(e);else{var n=" "+(t.getAttribute("class")||"")+" ";n.indexOf(" "+e+" ")<0&&t.setAttribute("class",(n+e).trim())}}function ri(t,e){if(e&&(e=e.trim()))if(t.classList)-1<e.indexOf(" ")?e.split(/\s+/).forEach(function(e){return t.classList.remove(e)}):t.classList.remove(e),t.classList.length||t.removeAttribute("class");else{for(var n=" "+(t.getAttribute("class")||"")+" ",r=" "+e+" ";0<=n.indexOf(r);)n=n.replace(r," ");(n=n.trim())?t.setAttribute("class",n):t.removeAttribute("class")}}function ii(e){if(e){if("object"==typeof e){var t={};return!1!==e.css&&m(t,oi(e.name||"v")),m(t,e),t}return"string"==typeof e?oi(e):void 0}}var oi=e(function(e){return{enterClass:e+"-enter",enterToClass:e+"-enter-to",enterActiveClass:e+"-enter-active",leaveClass:e+"-leave",leaveToClass:e+"-leave-to",leaveActiveClass:e+"-leave-active"}}),ai=B&&!J,si="transition",ci="animation",li="transition",ui="transitionend",fi="animation",pi="animationend";ai&&(void 0===window.ontransitionend&&void 0!==window.onwebkittransitionend&&(li="WebkitTransition",ui="webkitTransitionEnd"),void 0===window.onanimationend&&void 0!==window.onwebkitanimationend&&(fi="WebkitAnimation",pi="webkitAnimationEnd"));var di=B?window.requestAnimationFrame?window.requestAnimationFrame.bind(window):setTimeout:function(e){return e()};function vi(e){di(function(){di(e)})}function hi(e,t){var n=e._transitionClasses||(e._transitionClasses=[]);n.indexOf(t)<0&&(n.push(t),ni(e,t))}function mi(e,t){e._transitionClasses&&f(e._transitionClasses,t),ri(e,t)}function yi(t,e,n){var r=_i(t,e),i=r.type,o=r.timeout,a=r.propCount;if(!i)return n();var s=i===si?ui:pi,c=0,l=function(){t.removeEventListener(s,u),n()},u=function(e){e.target===t&&++c>=a&&l()};setTimeout(function(){c<a&&l()},o+1),t.addEventListener(s,u)}var gi=/\b(transform|all)(,|$)/;function _i(e,t){var n,r=window.getComputedStyle(e),i=r[li+"Delay"].split(", "),o=r[li+"Duration"].split(", "),a=bi(i,o),s=r[fi+"Delay"].split(", "),c=r[fi+"Duration"].split(", "),l=bi(s,c),u=0,f=0;return t===si?0<a&&(n=si,u=a,f=o.length):t===ci?0<l&&(n=ci,u=l,f=c.length):f=(n=0<(u=Math.max(a,l))?l<a?si:ci:null)?n===si?o.length:c.length:0,{type:n,timeout:u,propCount:f,hasTransform:n===si&&gi.test(r[li+"Property"])}}function bi(n,e){for(;n.length<e.length;)n=n.concat(n);return Math.max.apply(null,e.map(function(e,t){return $i(e)+$i(n[t])}))}function $i(e){return 1e3*Number(e.slice(0,-1))}function wi(n,e){var r=n.elm;D(r._leaveCb)&&(r._leaveCb.cancelled=!0,r._leaveCb());var t=ii(n.data.transition);if(!M(t)&&!D(r._enterCb)&&1===r.nodeType){for(var i=t.css,o=t.type,a=t.enterClass,s=t.enterToClass,c=t.enterActiveClass,l=t.appearClass,u=t.appearToClass,f=t.appearActiveClass,p=t.beforeEnter,d=t.enter,v=t.afterEnter,h=t.enterCancelled,m=t.beforeAppear,y=t.appear,g=t.afterAppear,_=t.appearCancelled,b=t.duration,$=mt,w=mt.$vnode;w&&w.parent;)$=(w=w.parent).context;var C=!$._isMounted||!n.isRootInsert;if(!C||y||""===y){var x=C&&l?l:a,k=C&&f?f:c,A=C&&u?u:s,O=C&&m||p,S=C&&"function"==typeof y?y:d,T=C&&g||v,E=C&&_||h,j=F(P(b)?b.enter:b),N=!1!==i&&!J,L=ki(S),I=r._enterCb=R(function(){N&&(mi(r,A),mi(r,k)),I.cancelled?(N&&mi(r,x),E&&E(r)):T&&T(r),r._enterCb=null});n.data.show||rt(n,"insert",function(){var e=r.parentNode,t=e&&e._pending&&e._pending[n.key];t&&t.tag===n.tag&&t.elm._leaveCb&&t.elm._leaveCb(),S&&S(r,I)}),O&&O(r),N&&(hi(r,x),hi(r,k),vi(function(){mi(r,x),I.cancelled||(hi(r,A),L||(xi(j)?setTimeout(I,j):yi(r,o,I)))})),n.data.show&&(e&&e(),S&&S(r,I)),N||L||I()}}}function Ci(e,t){var n=e.elm;D(n._enterCb)&&(n._enterCb.cancelled=!0,n._enterCb());var r=ii(e.data.transition);if(M(r)||1!==n.nodeType)return t();if(!D(n._leaveCb)){var i=r.css,o=r.type,a=r.leaveClass,s=r.leaveToClass,c=r.leaveActiveClass,l=r.beforeLeave,u=r.leave,f=r.afterLeave,p=r.leaveCancelled,d=r.delayLeave,v=r.duration,h=!1!==i&&!J,m=ki(u),y=F(P(v)?v.leave:v),g=n._leaveCb=R(function(){n.parentNode&&n.parentNode._pending&&(n.parentNode._pending[e.key]=null),h&&(mi(n,s),mi(n,c)),g.cancelled?(h&&mi(n,a),p&&p(n)):(t(),f&&f(n)),n._leaveCb=null});d?d(_):_()}function _(){g.cancelled||(e.data.show||((n.parentNode._pending||(n.parentNode._pending={}))[e.key]=e),l&&l(n),h&&(hi(n,a),hi(n,c),vi(function(){mi(n,a),g.cancelled||(hi(n,s),m||(xi(y)?setTimeout(g,y):yi(n,o,g)))})),u&&u(n,g),h||m||g())}}function xi(e){return"number"==typeof e&&!isNaN(e)}function ki(e){if(M(e))return!1;var t=e.fns;return D(t)?ki(Array.isArray(t)?t[0]:t):1<(e._length||e.length)}function Ai(e,t){!0!==t.data.show&&wi(t)}var Oi=function(e){var r,t,g={},n=e.modules,_=e.nodeOps;for(r=0;r<Xn.length;++r)for(g[Xn[r]]=[],t=0;t<n.length;++t)D(n[t][Xn[r]])&&g[Xn[r]].push(n[t][Xn[r]]);function o(e){var t=_.parentNode(e);D(t)&&_.removeChild(t,e)}function b(e,t,n,r,i,o,a){if(D(e.elm)&&D(o)&&(e=o[a]=de(e)),e.isRootInsert=!i,!function(e,t,n,r){var i=e.data;if(D(i)){var o=D(e.componentInstance)&&i.keepAlive;if(D(i=i.hook)&&D(i=i.init)&&i(e,!1,n,r),D(e.componentInstance))return d(e,t),S(o)&&function(e,t,n,r){for(var i,o=e;o.componentInstance;)if(o=o.componentInstance._vnode,D(i=o.data)&&D(i=i.transition)){for(i=0;i<g.activate.length;++i)g.activate[i](Zn,o);t.push(o);break}u(n,e.elm,r)}(e,t,n,r),!0}}(e,t,n,r)){var s=e.data,c=e.children,l=e.tag;D(l)?(e.elm=e.ns?_.createElementNS(e.ns,l):_.createElement(l,e),f(e),v(e,c,t),D(s)&&h(e,t)):S(e.isComment)?e.elm=_.createComment(e.text):e.elm=_.createTextNode(e.text),u(n,e.elm,r)}}function d(e,t){D(e.data.pendingInsert)&&(t.push.apply(t,e.data.pendingInsert),e.data.pendingInsert=null),e.elm=e.componentInstance.$el,$(e)?(h(e,t),f(e)):(Gn(e),t.push(e))}function u(e,t,n){D(e)&&(D(n)?n.parentNode===e&&_.insertBefore(e,t,n):_.appendChild(e,t))}function v(e,t,n){if(Array.isArray(t))for(var r=0;r<t.length;++r)b(t[r],n,e.elm,null,!0,t,r);else T(e.text)&&_.appendChild(e.elm,_.createTextNode(String(e.text)))}function $(e){for(;e.componentInstance;)e=e.componentInstance._vnode;return D(e.tag)}function h(e,t){for(var n=0;n<g.create.length;++n)g.create[n](Zn,e);D(r=e.data.hook)&&(D(r.create)&&r.create(Zn,e),D(r.insert)&&t.push(e))}function f(e){var t;if(D(t=e.fnScopeId))_.setStyleScope(e.elm,t);else for(var n=e;n;)D(t=n.context)&&D(t=t.$options._scopeId)&&_.setStyleScope(e.elm,t),n=n.parent;D(t=mt)&&t!==e.context&&t!==e.fnContext&&D(t=t.$options._scopeId)&&_.setStyleScope(e.elm,t)}function y(e,t,n,r,i,o){for(;r<=i;++r)b(n[r],o,e,t,!1,n,r)}function w(e){var t,n,r=e.data;if(D(r))for(D(t=r.hook)&&D(t=t.destroy)&&t(e),t=0;t<g.destroy.length;++t)g.destroy[t](e);if(D(t=e.children))for(n=0;n<e.children.length;++n)w(e.children[n])}function C(e,t,n,r){for(;n<=r;++n){var i=t[n];D(i)&&(D(i.tag)?(a(i),w(i)):o(i.elm))}}function a(e,t){if(D(t)||D(e.data)){var n,r=g.remove.length+1;for(D(t)?t.listeners+=r:t=function(e,t){function n(){0==--n.listeners&&o(e)}return n.listeners=t,n}(e.elm,r),D(n=e.componentInstance)&&D(n=n._vnode)&&D(n.data)&&a(n,t),n=0;n<g.remove.length;++n)g.remove[n](e,t);D(n=e.data.hook)&&D(n=n.remove)?n(e,t):t()}else o(e.elm)}function x(e,t,n,r){for(var i=n;i<r;i++){var o=t[i];if(D(o)&&Yn(e,o))return i}}function k(e,t,n,r){if(e!==t){var i=t.elm=e.elm;if(S(e.isAsyncPlaceholder))D(t.asyncFactory.resolved)?O(e.elm,t,n):t.isAsyncPlaceholder=!0;else if(S(t.isStatic)&&S(e.isStatic)&&t.key===e.key&&(S(t.isCloned)||S(t.isOnce)))t.componentInstance=e.componentInstance;else{var o,a=t.data;D(a)&&D(o=a.hook)&&D(o=o.prepatch)&&o(e,t);var s=e.children,c=t.children;if(D(a)&&$(t)){for(o=0;o<g.update.length;++o)g.update[o](e,t);D(o=a.hook)&&D(o=o.update)&&o(e,t)}M(t.text)?D(s)&&D(c)?s!==c&&function(e,t,n,r,i){for(var o,a,s,c=0,l=0,u=t.length-1,f=t[0],p=t[u],d=n.length-1,v=n[0],h=n[d],m=!i;c<=u&&l<=d;)M(f)?f=t[++c]:M(p)?p=t[--u]:Yn(f,v)?(k(f,v,r),f=t[++c],v=n[++l]):Yn(p,h)?(k(p,h,r),p=t[--u],h=n[--d]):Yn(f,h)?(k(f,h,r),m&&_.insertBefore(e,f.elm,_.nextSibling(p.elm)),f=t[++c],h=n[--d]):(Yn(p,v)?(k(p,v,r),m&&_.insertBefore(e,p.elm,f.elm),p=t[--u]):(M(o)&&(o=Qn(t,c,u)),M(a=D(v.key)?o[v.key]:x(v,t,c,u))?b(v,r,e,f.elm,!1,n,l):Yn(s=t[a],v)?(k(s,v,r),t[a]=void 0,m&&_.insertBefore(e,s.elm,f.elm)):b(v,r,e,f.elm,!1,n,l)),v=n[++l]);u<c?y(e,M(n[d+1])?null:n[d+1].elm,n,l,d,r):d<l&&C(0,t,c,u)}(i,s,c,n,r):D(c)?(D(e.text)&&_.setTextContent(i,""),y(i,null,c,0,c.length-1,n)):D(s)?C(0,s,0,s.length-1):D(e.text)&&_.setTextContent(i,""):e.text!==t.text&&_.setTextContent(i,t.text),D(a)&&D(o=a.hook)&&D(o=o.postpatch)&&o(e,t)}}}function A(e,t,n){if(S(n)&&D(e.parent))e.parent.data.pendingInsert=t;else for(var r=0;r<t.length;++r)t[r].data.hook.insert(t[r])}var m=s("attrs,class,staticClass,staticStyle,key");function O(e,t,n,r){var i,o=t.tag,a=t.data,s=t.children;if(r=r||a&&a.pre,t.elm=e,S(t.isComment)&&D(t.asyncFactory))return t.isAsyncPlaceholder=!0;if(D(a)&&(D(i=a.hook)&&D(i=i.init)&&i(t,!0),D(i=t.componentInstance)))return d(t,n),!0;if(D(o)){if(D(s))if(e.hasChildNodes())if(D(i=a)&&D(i=i.domProps)&&D(i=i.innerHTML)){if(i!==e.innerHTML)return!1}else{for(var c=!0,l=e.firstChild,u=0;u<s.length;u++){if(!l||!O(l,s[u],n,r)){c=!1;break}l=l.nextSibling}if(!c||l)return!1}else v(t,s,n);if(D(a)){var f=!1;for(var p in a)if(!m(p)){f=!0,h(t,n);break}!f&&a.class&&Ye(a.class)}}else e.data!==t.text&&(e.data=t.text);return!0}return function(e,t,n,r,i,o){if(!M(t)){var a,s=!1,c=[];if(M(e))s=!0,b(t,c,i,o);else{var l=D(e.nodeType);if(!l&&Yn(e,t))k(e,t,c,r);else{if(l){if(1===e.nodeType&&e.hasAttribute(E)&&(e.removeAttribute(E),n=!0),S(n)&&O(e,t,c))return A(t,c,!0),e;a=e,e=new le(_.tagName(a).toLowerCase(),{},[],void 0,a)}var u=e.elm,f=_.parentNode(u);if(b(t,c,u._leaveCb?null:f,_.nextSibling(u)),D(t.parent))for(var p=t.parent,d=$(t);p;){for(var v=0;v<g.destroy.length;++v)g.destroy[v](p);if(p.elm=t.elm,d){for(var h=0;h<g.create.length;++h)g.create[h](Zn,p);var m=p.data.hook.insert;if(m.merged)for(var y=1;y<m.fns.length;y++)m.fns[y]()}else Gn(p);p=p.parent}D(f)?C(0,[e],0,0):D(e.tag)&&w(e)}}return A(t,c,s),t.elm}D(e)&&w(e)}}({nodeOps:qn,modules:[lr,yr,Ur,zr,ti,B?{create:Ai,activate:Ai,remove:function(e,t){!0!==e.data.show?Ci(e,t):t()}}:{}].concat(or)});J&&document.addEventListener("selectionchange",function(){var e=document.activeElement;e&&e.vmodel&&Mi(e,"input")});var Si={inserted:function(e,t,n,r){"select"===n.tag?(r.elm&&!r.elm._vOptions?rt(n,"postpatch",function(){Si.componentUpdated(e,t,n)}):Ti(e,t,n.context),e._vOptions=[].map.call(e.options,Ni)):("textarea"===n.tag||Kn(e.type))&&(e._vModifiers=t.modifiers,t.modifiers.lazy||(e.addEventListener("compositionstart",Li),e.addEventListener("compositionend",Ii),e.addEventListener("change",Ii),J&&(e.vmodel=!0)))},componentUpdated:function(e,t,n){if("select"===n.tag){Ti(e,t,n.context);var r=e._vOptions,i=e._vOptions=[].map.call(e.options,Ni);if(i.some(function(e,t){return!C(e,r[t])}))(e.multiple?t.value.some(function(e){return ji(e,i)}):t.value!==t.oldValue&&ji(t.value,i))&&Mi(e,"change")}}};function Ti(e,t,n){Ei(e,t,n),(K||q)&&setTimeout(function(){Ei(e,t,n)},0)}function Ei(e,t,n){var r=t.value,i=e.multiple;if(!i||Array.isArray(r)){for(var o,a,s=0,c=e.options.length;s<c;s++)if(a=e.options[s],i)o=-1<x(r,Ni(a)),a.selected!==o&&(a.selected=o);else if(C(Ni(a),r))return void(e.selectedIndex!==s&&(e.selectedIndex=s));i||(e.selectedIndex=-1)}}function ji(t,e){return e.every(function(e){return!C(e,t)})}function Ni(e){return"_value"in e?e._value:e.value}function Li(e){e.target.composing=!0}function Ii(e){e.target.composing&&(e.target.composing=!1,Mi(e.target,"input"))}function Mi(e,t){var n=document.createEvent("HTMLEvents");n.initEvent(t,!0,!0),e.dispatchEvent(n)}function Di(e){return!e.componentInstance||e.data&&e.data.transition?e:Di(e.componentInstance._vnode)}var Pi={model:Si,show:{bind:function(e,t,n){var r=t.value,i=(n=Di(n)).data&&n.data.transition,o=e.__vOriginalDisplay="none"===e.style.display?"":e.style.display;r&&i?(n.data.show=!0,wi(n,function(){e.style.display=o})):e.style.display=r?o:"none"},update:function(e,t,n){var r=t.value;!r!=!t.oldValue&&((n=Di(n)).data&&n.data.transition?(n.data.show=!0,r?wi(n,function(){e.style.display=e.__vOriginalDisplay}):Ci(n,function(){e.style.display="none"})):e.style.display=r?e.__vOriginalDisplay:"none")},unbind:function(e,t,n,r,i){i||(e.style.display=e.__vOriginalDisplay)}}},Fi={name:String,appear:Boolean,css:Boolean,mode:String,type:String,enterClass:String,leaveClass:String,enterToClass:String,leaveToClass:String,enterActiveClass:String,leaveActiveClass:String,appearClass:String,appearActiveClass:String,appearToClass:String,duration:[Number,String,Object]};function Ri(e){var t=e&&e.componentOptions;return t&&t.Ctor.options.abstract?Ri(lt(t.children)):e}function Hi(e){var t={},n=e.$options;for(var r in n.propsData)t[r]=e[r];var i=n._parentListeners;for(var o in i)t[g(o)]=i[o];return t}function Bi(e,t){if(/\d-keep-alive$/.test(t.tag))return e("keep-alive",{props:t.componentOptions.propsData})}var Ui={name:"transition",props:Fi,abstract:!0,render:function(e){var t=this,n=this.$slots.default;if(n&&(n=n.filter(function(e){return e.tag||ct(e)})).length){var r=this.mode,i=n[0];if(function(e){for(;e=e.parent;)if(e.data.transition)return!0}(this.$vnode))return i;var o=Ri(i);if(!o)return i;if(this._leaving)return Bi(e,i);var a="__transition-"+this._uid+"-";o.key=null==o.key?o.isComment?a+"comment":a+o.tag:T(o.key)?0===String(o.key).indexOf(a)?o.key:a+o.key:o.key;var s,c,l=(o.data||(o.data={})).transition=Hi(this),u=this._vnode,f=Ri(u);if(o.data.directives&&o.data.directives.some(function(e){return"show"===e.name})&&(o.data.show=!0),f&&f.data&&(s=o,(c=f).key!==s.key||c.tag!==s.tag)&&!ct(f)&&(!f.componentInstance||!f.componentInstance._vnode.isComment)){var p=f.data.transition=m({},l);if("out-in"===r)return this._leaving=!0,rt(p,"afterLeave",function(){t._leaving=!1,t.$forceUpdate()}),Bi(e,i);if("in-out"===r){if(ct(o))return u;var d,v=function(){d()};rt(l,"afterEnter",v),rt(l,"enterCancelled",v),rt(p,"delayLeave",function(e){d=e})}}return i}}},Vi=m({tag:String,moveClass:String},Fi);function zi(e){e.elm._moveCb&&e.elm._moveCb(),e.elm._enterCb&&e.elm._enterCb()}function Ki(e){e.data.newPos=e.elm.getBoundingClientRect()}function Ji(e){var t=e.data.pos,n=e.data.newPos,r=t.left-n.left,i=t.top-n.top;if(r||i){e.data.moved=!0;var o=e.elm.style;o.transform=o.WebkitTransform="translate("+r+"px,"+i+"px)",o.transitionDuration="0s"}}delete Vi.mode;var qi={Transition:Ui,TransitionGroup:{props:Vi,render:function(e){for(var t=this.tag||this.$vnode.data.tag||"span",n=Object.create(null),r=this.prevChildren=this.children,i=this.$slots.default||[],o=this.children=[],a=Hi(this),s=0;s<i.length;s++){var c=i[s];c.tag&&null!=c.key&&0!==String(c.key).indexOf("__vlist")&&(o.push(c),((n[c.key]=c).data||(c.data={})).transition=a)}if(r){for(var l=[],u=[],f=0;f<r.length;f++){var p=r[f];p.data.transition=a,p.data.pos=p.elm.getBoundingClientRect(),n[p.key]?l.push(p):u.push(p)}this.kept=e(t,null,l),this.removed=u}return e(t,null,o)},beforeUpdate:function(){this.__patch__(this._vnode,this.kept,!1,!0),this._vnode=this.kept},updated:function(){var e=this.prevChildren,r=this.moveClass||(this.name||"v")+"-move";e.length&&this.hasMove(e[0].elm,r)&&(e.forEach(zi),e.forEach(Ki),e.forEach(Ji),this._reflow=document.body.offsetHeight,e.forEach(function(e){if(e.data.moved){var n=e.elm,t=n.style;hi(n,r),t.transform=t.WebkitTransform=t.transitionDuration="",n.addEventListener(ui,n._moveCb=function e(t){t&&!/transform$/.test(t.propertyName)||(n.removeEventListener(ui,e),n._moveCb=null,mi(n,r))})}}))},methods:{hasMove:function(e,t){if(!ai)return!1;if(this._hasMove)return this._hasMove;var n=e.cloneNode();e._transitionClasses&&e._transitionClasses.forEach(function(e){ri(n,e)}),ni(n,t),n.style.display="none",this.$el.appendChild(n);var r=_i(n);return this.$el.removeChild(n),this._hasMove=r.hasTransform}}}};hn.config.mustUseProp=Sn,hn.config.isReservedTag=Un,hn.config.isReservedAttr=An,hn.config.getTagNamespace=Vn,hn.config.isUnknownElement=function(e){if(!B)return!0;if(Un(e))return!1;if(e=e.toLowerCase(),null!=zn[e])return zn[e];var t=document.createElement(e);return-1<e.indexOf("-")?zn[e]=t.constructor===window.HTMLUnknownElement||t.constructor===window.HTMLElement:zn[e]=/HTMLUnknownElement/.test(t.toString())},m(hn.options.directives,Pi),m(hn.options.components,qi),hn.prototype.__patch__=B?Oi:$,hn.prototype.$mount=function(e,t){return e=e&&B?Jn(e):void 0,r=e,i=t,(n=this).$el=r,n.$options.render||(n.$options.render=fe),_t(n,"beforeMount"),new St(n,function(){n._update(n._render(),i)},$,null,!0),i=!1,null==n.$vnode&&(n._isMounted=!0,_t(n,"mounted")),n;var n,r,i},B&&setTimeout(function(){j.devtools&&Q&&Q.emit("init",hn)},0);var Wi=/\{\{((?:.|\n)+?)\}\}/g,Gi=/[-.*+?^${}()|[\]\/\\]/g,Zi=e(function(e){var t=e[0].replace(Gi,"\\$&"),n=e[1].replace(Gi,"\\$&");return new RegExp(t+"((?:.|\\n)+?)"+n,"g")});var Xi={staticKeys:["staticClass"],transformNode:function(e,t){t.warn;var n=Sr(e,"class");n&&(e.staticClass=JSON.stringify(n));var r=Or(e,"class",!1);r&&(e.classBinding=r)},genData:function(e){var t="";return e.staticClass&&(t+="staticClass:"+e.staticClass+","),e.classBinding&&(t+="class:"+e.classBinding+","),t}};var Yi,Qi={staticKeys:["staticStyle"],transformNode:function(e,t){t.warn;var n=Sr(e,"style");n&&(e.staticStyle=JSON.stringify(Kr(n)));var r=Or(e,"style",!1);r&&(e.styleBinding=r)},genData:function(e){var t="";return e.staticStyle&&(t+="staticStyle:"+e.staticStyle+","),e.styleBinding&&(t+="style:("+e.styleBinding+"),"),t}},eo=function(e){return(Yi=Yi||document.createElement("div")).innerHTML=e,Yi.textContent},to=s("area,base,br,col,embed,frame,hr,img,input,isindex,keygen,link,meta,param,source,track,wbr"),no=s("colgroup,dd,dt,li,options,p,td,tfoot,th,thead,tr,source"),ro=s("address,article,aside,base,blockquote,body,caption,col,colgroup,dd,details,dialog,div,dl,dt,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,head,header,hgroup,hr,html,legend,li,menuitem,meta,optgroup,option,param,rp,rt,source,style,summary,tbody,td,tfoot,th,thead,title,tr,track"),io=/^\s*([^\s"'<>\/=]+)(?:\s*(=)\s*(?:"([^"]*)"+|'([^']*)'+|([^\s"'=<>`]+)))?/,oo="[a-zA-Z_][\\w\\-\\.]*",ao="((?:"+oo+"\\:)?"+oo+")",so=new RegExp("^<"+ao),co=/^\s*(\/?)>/,lo=new RegExp("^<\\/"+ao+"[^>]*>"),uo=/^<!DOCTYPE [^>]+>/i,fo=/^<!\--/,po=/^<!\[/,vo=!1;"x".replace(/x(.)?/g,function(e,t){vo=""===t});var ho=s("script,style,textarea",!0),mo={},yo={"<":"<",">":">",""":'"',"&":"&"," ":"\n","	":"\t"},go=/&(?:lt|gt|quot|amp);/g,_o=/&(?:lt|gt|quot|amp|#10|#9);/g,bo=s("pre,textarea",!0),$o=function(e,t){return e&&bo(e)&&"\n"===t[0]};var wo,Co,xo,ko,Ao,Oo,So,To,Eo=/^@|^v-on:/,jo=/^v-|^@|^:/,No=/([^]*?)\s+(?:in|of)\s+([^]*)/,Lo=/,([^,\}\]]*)(?:,([^,\}\]]*))?$/,Io=/^\(|\)$/g,Mo=/:(.*)$/,Do=/^:|^v-bind:/,Po=/\.[^.]+/g,Fo=e(eo);function Ro(e,t,n){return{type:1,tag:e,attrsList:t,attrsMap:function(e){for(var t={},n=0,r=e.length;n<r;n++)t[e[n].name]=e[n].value;return t}(t),parent:n,children:[]}}function Ho(e,p){wo=p.warn||$r,Oo=p.isPreTag||O,So=p.mustUseProp||O,To=p.getTagNamespace||O,xo=wr(p.modules,"transformNode"),ko=wr(p.modules,"preTransformNode"),Ao=wr(p.modules,"postTransformNode"),Co=p.delimiters;var d,v,h=[],i=!1!==p.preserveWhitespace,m=!1,y=!1;function g(e){e.pre&&(m=!1),Oo(e.tag)&&(y=!1);for(var t=0;t<Ao.length;t++)Ao[t](e,p)}return function(i,d){for(var e,v,h=[],m=d.expectHTML,y=d.isUnaryTag||O,g=d.canBeLeftOpenTag||O,a=0;i;){if(e=i,v&&ho(v)){var r=0,o=v.toLowerCase(),t=mo[o]||(mo[o]=new RegExp("([\\s\\S]*?)(</"+o+"[^>]*>)","i")),n=i.replace(t,function(e,t,n){return r=n.length,ho(o)||"noscript"===o||(t=t.replace(/<!\--([\s\S]*?)-->/g,"$1").replace(/<!\[CDATA\[([\s\S]*?)]]>/g,"$1")),$o(o,t)&&(t=t.slice(1)),d.chars&&d.chars(t),""});a+=i.length-n.length,i=n,A(o,a-r,a)}else{var s=i.indexOf("<");if(0===s){if(fo.test(i)){var c=i.indexOf("--\x3e");if(0<=c){d.shouldKeepComment&&d.comment(i.substring(4,c)),C(c+3);continue}}if(po.test(i)){var l=i.indexOf("]>");if(0<=l){C(l+2);continue}}var u=i.match(uo);if(u){C(u[0].length);continue}var f=i.match(lo);if(f){var p=a;C(f[0].length),A(f[1],p,a);continue}var _=x();if(_){k(_),$o(v,i)&&C(1);continue}}var b=void 0,$=void 0,w=void 0;if(0<=s){for($=i.slice(s);!(lo.test($)||so.test($)||fo.test($)||po.test($)||(w=$.indexOf("<",1))<0);)s+=w,$=i.slice(s);b=i.substring(0,s),C(s)}s<0&&(b=i,i=""),d.chars&&b&&d.chars(b)}if(i===e){d.chars&&d.chars(i);break}}function C(e){a+=e,i=i.substring(e)}function x(){var e=i.match(so);if(e){var t,n,r={tagName:e[1],attrs:[],start:a};for(C(e[0].length);!(t=i.match(co))&&(n=i.match(io));)C(n[0].length),r.attrs.push(n);if(t)return r.unarySlash=t[1],C(t[0].length),r.end=a,r}}function k(e){var t=e.tagName,n=e.unarySlash;m&&("p"===v&&ro(t)&&A(v),g(t)&&v===t&&A(t));for(var r,i,o,a=y(t)||!!n,s=e.attrs.length,c=new Array(s),l=0;l<s;l++){var u=e.attrs[l];vo&&-1===u[0].indexOf('""')&&(""===u[3]&&delete u[3],""===u[4]&&delete u[4],""===u[5]&&delete u[5]);var f=u[3]||u[4]||u[5]||"",p="a"===t&&"href"===u[1]?d.shouldDecodeNewlinesForHref:d.shouldDecodeNewlines;c[l]={name:u[1],value:(r=f,i=p,o=i?_o:go,r.replace(o,function(e){return yo[e]}))}}a||(h.push({tag:t,lowerCasedTag:t.toLowerCase(),attrs:c}),v=t),d.start&&d.start(t,c,a,e.start,e.end)}function A(e,t,n){var r,i;if(null==t&&(t=a),null==n&&(n=a),e&&(i=e.toLowerCase()),e)for(r=h.length-1;0<=r&&h[r].lowerCasedTag!==i;r--);else r=0;if(0<=r){for(var o=h.length-1;r<=o;o--)d.end&&d.end(h[o].tag,t,n);h.length=r,v=r&&h[r-1].tag}else"br"===i?d.start&&d.start(e,[],!0,t,n):"p"===i&&(d.start&&d.start(e,[],!1,t,n),d.end&&d.end(e,t,n))}A()}(e,{warn:wo,expectHTML:p.expectHTML,isUnaryTag:p.isUnaryTag,canBeLeftOpenTag:p.canBeLeftOpenTag,shouldDecodeNewlines:p.shouldDecodeNewlines,shouldDecodeNewlinesForHref:p.shouldDecodeNewlinesForHref,shouldKeepComment:p.comments,start:function(e,t,n){var r=v&&v.ns||To(e);K&&"svg"===r&&(t=function(e){for(var t=[],n=0;n<e.length;n++){var r=e[n];Ko.test(r.name)||(r.name=r.name.replace(Jo,""),t.push(r))}return t}(t));var i,o,a,s,c,l=Ro(e,t,v);r&&(l.ns=r),"style"!==(i=l).tag&&("script"!==i.tag||i.attrsMap.type&&"text/javascript"!==i.attrsMap.type)||Y()||(l.forbidden=!0);for(var u=0;u<ko.length;u++)l=ko[u](l,p)||l;if(m||(null!=Sr(o=l,"v-pre")&&(o.pre=!0),l.pre&&(m=!0)),Oo(l.tag)&&(y=!0),m?function(e){var t=e.attrsList.length;if(t)for(var n=e.attrs=new Array(t),r=0;r<t;r++)n[r]={name:e.attrsList[r].name,value:JSON.stringify(e.attrsList[r].value)};else e.pre||(e.plain=!0)}(l):l.processed||(Uo(l),function(e){var t=Sr(e,"v-if");if(t)e.if=t,Vo(e,{exp:t,block:e});else{null!=Sr(e,"v-else")&&(e.else=!0);var n=Sr(e,"v-else-if");n&&(e.elseif=n)}}(l),null!=Sr(a=l,"v-once")&&(a.once=!0),Bo(l,p)),d?h.length||d.if&&(l.elseif||l.else)&&Vo(d,{exp:l.elseif,block:l}):d=l,v&&!l.forbidden)if(l.elseif||l.else)s=l,(c=function(e){var t=e.length;for(;t--;){if(1===e[t].type)return e[t];e.pop()}}(v.children))&&c.if&&Vo(c,{exp:s.elseif,block:s});else if(l.slotScope){v.plain=!1;var f=l.slotTarget||'"default"';(v.scopedSlots||(v.scopedSlots={}))[f]=l}else v.children.push(l),l.parent=v;n?g(l):(v=l,h.push(l))},end:function(){var e=h[h.length-1],t=e.children[e.children.length-1];t&&3===t.type&&" "===t.text&&!y&&e.children.pop(),h.length-=1,v=h[h.length-1],g(e)},chars:function(e){if(v&&(!K||"textarea"!==v.tag||v.attrsMap.placeholder!==e)){var t,n,r=v.children;if(e=y||e.trim()?"script"===(t=v).tag||"style"===t.tag?e:Fo(e):i&&r.length?" ":"")!m&&" "!==e&&(n=function(e,t){var n=t?Zi(t):Wi;if(n.test(e)){for(var r,i,o,a=[],s=[],c=n.lastIndex=0;r=n.exec(e);){c<(i=r.index)&&(s.push(o=e.slice(c,i)),a.push(JSON.stringify(o)));var l=_r(r[1].trim());a.push("_s("+l+")"),s.push({"@binding":l}),c=i+r[0].length}return c<e.length&&(s.push(o=e.slice(c)),a.push(JSON.stringify(o))),{expression:a.join("+"),tokens:s}}}(e,Co))?r.push({type:2,expression:n.expression,tokens:n.tokens,text:e}):" "===e&&r.length&&" "===r[r.length-1].text||r.push({type:3,text:e})}},comment:function(e){v.children.push({type:3,text:e,isComment:!0})}}),d}function Bo(e,t){var n,r,i,o;(r=Or(n=e,"key"))&&(n.key=r),e.plain=!e.key&&!e.attrsList.length,(o=Or(i=e,"ref"))&&(i.ref=o,i.refInFor=function(e){for(var t=e;t;){if(void 0!==t.for)return!0;t=t.parent}return!1}(i)),function(e){if("slot"===e.tag)e.slotName=Or(e,"name");else{var t;"template"===e.tag?(t=Sr(e,"scope"),e.slotScope=t||Sr(e,"slot-scope")):(t=Sr(e,"slot-scope"))&&(e.slotScope=t);var n=Or(e,"slot");n&&(e.slotTarget='""'===n?'"default"':n,"template"===e.tag||e.slotScope||xr(e,"slot",n))}}(e),function(e){var t;(t=Or(e,"is"))&&(e.component=t);null!=Sr(e,"inline-template")&&(e.inlineTemplate=!0)}(e);for(var a=0;a<xo.length;a++)e=xo[a](e,t)||e;!function(e){var t,n,r,i,o,a,s,c=e.attrsList;for(t=0,n=c.length;t<n;t++)if(r=i=c[t].name,o=c[t].value,jo.test(r))if(e.hasBindings=!0,(a=zo(r))&&(r=r.replace(Po,"")),Do.test(r))r=r.replace(Do,""),o=_r(o),s=!1,a&&(a.prop&&(s=!0,"innerHtml"===(r=g(r))&&(r="innerHTML")),a.camel&&(r=g(r)),a.sync&&Ar(e,"update:"+g(r),Er(o,"$event"))),s||!e.component&&So(e.tag,e.attrsMap.type,r)?Cr(e,r,o):xr(e,r,o);else if(Eo.test(r))r=r.replace(Eo,""),Ar(e,r,o,a,!1);else{var l=(r=r.replace(jo,"")).match(Mo),u=l&&l[1];u&&(r=r.slice(0,-(u.length+1))),p=r,d=i,v=o,h=u,m=a,((f=e).directives||(f.directives=[])).push({name:p,rawName:d,value:v,arg:h,modifiers:m}),f.plain=!1}else xr(e,r,JSON.stringify(o)),!e.component&&"muted"===r&&So(e.tag,e.attrsMap.type,r)&&Cr(e,r,"true");var f,p,d,v,h,m}(e)}function Uo(e){var t;if(t=Sr(e,"v-for")){var n=function(e){var t=e.match(No);if(!t)return;var n={};n.for=t[2].trim();var r=t[1].trim().replace(Io,""),i=r.match(Lo);i?(n.alias=r.replace(Lo,""),n.iterator1=i[1].trim(),i[2]&&(n.iterator2=i[2].trim())):n.alias=r;return n}(t);n&&m(e,n)}}function Vo(e,t){e.ifConditions||(e.ifConditions=[]),e.ifConditions.push(t)}function zo(e){var t=e.match(Po);if(t){var n={};return t.forEach(function(e){n[e.slice(1)]=!0}),n}}var Ko=/^xmlns:NS\d+/,Jo=/^NS\d+:/;function qo(e){return Ro(e.tag,e.attrsList.slice(),e.parent)}var Wo=[Xi,Qi,{preTransformNode:function(e,t){if("input"===e.tag){var n,r=e.attrsMap;if(!r["v-model"])return;if((r[":type"]||r["v-bind:type"])&&(n=Or(e,"type")),r.type||n||!r["v-bind"]||(n="("+r["v-bind"]+").type"),n){var i=Sr(e,"v-if",!0),o=i?"&&("+i+")":"",a=null!=Sr(e,"v-else",!0),s=Sr(e,"v-else-if",!0),c=qo(e);Uo(c),kr(c,"type","checkbox"),Bo(c,t),c.processed=!0,c.if="("+n+")==='checkbox'"+o,Vo(c,{exp:c.if,block:c});var l=qo(e);Sr(l,"v-for",!0),kr(l,"type","radio"),Bo(l,t),Vo(c,{exp:"("+n+")==='radio'"+o,block:l});var u=qo(e);return Sr(u,"v-for",!0),kr(u,":type",n),Bo(u,t),Vo(c,{exp:i,block:u}),a?c.else=!0:s&&(c.elseif=s),c}}}}];var Go,Zo,Xo,Yo={expectHTML:!0,modules:Wo,directives:{model:function(e,t,n){var r,i,o,a,s,c,l,u,f,p,d,v,h,m,y,g,_=t.value,b=t.modifiers,$=e.tag,w=e.attrsMap.type;if(e.component)return Tr(e,_,b),!1;if("select"===$)h=e,m=_,g=(g='var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = "_value" in o ? o._value : o.value;return '+((y=b)&&y.number?"_n(val)":"val")+"});")+" "+Er(m,"$event.target.multiple ? $$selectedVal : $$selectedVal[0]"),Ar(h,"change",g,null,!0);else if("input"===$&&"checkbox"===w)c=e,l=_,f=(u=b)&&u.number,p=Or(c,"value")||"null",d=Or(c,"true-value")||"true",v=Or(c,"false-value")||"false",Cr(c,"checked","Array.isArray("+l+")?_i("+l+","+p+")>-1"+("true"===d?":("+l+")":":_q("+l+","+d+")")),Ar(c,"change","var $$a="+l+",$$el=$event.target,$$c=$$el.checked?("+d+"):("+v+");if(Array.isArray($$a)){var $$v="+(f?"_n("+p+")":p)+",$$i=_i($$a,$$v);if($$el.checked){$$i<0&&("+Er(l,"$$a.concat([$$v])")+")}else{$$i>-1&&("+Er(l,"$$a.slice(0,$$i).concat($$a.slice($$i+1))")+")}}else{"+Er(l,"$$c")+"}",null,!0);else if("input"===$&&"radio"===w)r=e,i=_,a=(o=b)&&o.number,s=Or(r,"value")||"null",Cr(r,"checked","_q("+i+","+(s=a?"_n("+s+")":s)+")"),Ar(r,"change",Er(i,s),null,!0);else if("input"===$||"textarea"===$)!function(e,t,n){var r=e.attrsMap.type,i=n||{},o=i.lazy,a=i.number,s=i.trim,c=!o&&"range"!==r,l=o?"change":"range"===r?Pr:"input",u="$event.target.value";s&&(u="$event.target.value.trim()"),a&&(u="_n("+u+")");var f=Er(t,u);c&&(f="if($event.target.composing)return;"+f),Cr(e,"value","("+t+")"),Ar(e,l,f,null,!0),(s||a)&&Ar(e,"blur","$forceUpdate()")}(e,_,b);else if(!j.isReservedTag($))return Tr(e,_,b),!1;return!0},text:function(e,t){t.value&&Cr(e,"textContent","_s("+t.value+")")},html:function(e,t){t.value&&Cr(e,"innerHTML","_s("+t.value+")")}},isPreTag:function(e){return"pre"===e},isUnaryTag:to,mustUseProp:Sn,canBeLeftOpenTag:no,isReservedTag:Un,getTagNamespace:Vn,staticKeys:(Go=Wo,Go.reduce(function(e,t){return e.concat(t.staticKeys||[])},[]).join(","))},Qo=e(function(e){return s("type,tag,attrsList,attrsMap,plain,parent,children,attrs"+(e?","+e:""))});function ea(e,t){e&&(Zo=Qo(t.staticKeys||""),Xo=t.isReservedTag||O,function e(t){t.static=function(e){if(2===e.type)return!1;if(3===e.type)return!0;return!(!e.pre&&(e.hasBindings||e.if||e.for||c(e.tag)||!Xo(e.tag)||function(e){for(;e.parent;){if("template"!==(e=e.parent).tag)return!1;if(e.for)return!0}return!1}(e)||!Object.keys(e).every(Zo)))}(t);if(1===t.type){if(!Xo(t.tag)&&"slot"!==t.tag&&null==t.attrsMap["inline-template"])return;for(var n=0,r=t.children.length;n<r;n++){var i=t.children[n];e(i),i.static||(t.static=!1)}if(t.ifConditions)for(var o=1,a=t.ifConditions.length;o<a;o++){var s=t.ifConditions[o].block;e(s),s.static||(t.static=!1)}}}(e),function e(t,n){if(1===t.type){if((t.static||t.once)&&(t.staticInFor=n),t.static&&t.children.length&&(1!==t.children.length||3!==t.children[0].type))return void(t.staticRoot=!0);if(t.staticRoot=!1,t.children)for(var r=0,i=t.children.length;r<i;r++)e(t.children[r],n||!!t.for);if(t.ifConditions)for(var o=1,a=t.ifConditions.length;o<a;o++)e(t.ifConditions[o].block,n)}}(e,!1))}var ta=/^([\w$_]+|\([^)]*?\))\s*=>|^function\s*\(/,na=/^[A-Za-z_$][\w$]*(?:\.[A-Za-z_$][\w$]*|\['[^']*?']|\["[^"]*?"]|\[\d+]|\[[A-Za-z_$][\w$]*])*$/,ra={esc:27,tab:9,enter:13,space:32,up:38,left:37,right:39,down:40,delete:[8,46]},ia={esc:"Escape",tab:"Tab",enter:"Enter",space:" ",up:["Up","ArrowUp"],left:["Left","ArrowLeft"],right:["Right","ArrowRight"],down:["Down","ArrowDown"],delete:["Backspace","Delete"]},oa=function(e){return"if("+e+")return null;"},aa={stop:"$event.stopPropagation();",prevent:"$event.preventDefault();",self:oa("$event.target !== $event.currentTarget"),ctrl:oa("!$event.ctrlKey"),shift:oa("!$event.shiftKey"),alt:oa("!$event.altKey"),meta:oa("!$event.metaKey"),left:oa("'button' in $event && $event.button !== 0"),middle:oa("'button' in $event && $event.button !== 1"),right:oa("'button' in $event && $event.button !== 2")};function sa(e,t,n){var r=t?"nativeOn:{":"on:{";for(var i in e)r+='"'+i+'":'+ca(i,e[i])+",";return r.slice(0,-1)+"}"}function ca(t,e){if(!e)return"function(){}";if(Array.isArray(e))return"["+e.map(function(e){return ca(t,e)}).join(",")+"]";var n=na.test(e.value),r=ta.test(e.value);if(e.modifiers){var i="",o="",a=[];for(var s in e.modifiers)if(aa[s])o+=aa[s],ra[s]&&a.push(s);else if("exact"===s){var c=e.modifiers;o+=oa(["ctrl","shift","alt","meta"].filter(function(e){return!c[e]}).map(function(e){return"$event."+e+"Key"}).join("||"))}else a.push(s);return a.length&&(i+="if(!('button' in $event)&&"+a.map(la).join("&&")+")return null;"),o&&(i+=o),"function($event){"+i+(n?"return "+e.value+"($event)":r?"return ("+e.value+")($event)":e.value)+"}"}return n||r?e.value:"function($event){"+e.value+"}"}function la(e){var t=parseInt(e,10);if(t)return"$event.keyCode!=="+t;var n=ra[e],r=ia[e];return"_k($event.keyCode,"+JSON.stringify(e)+","+JSON.stringify(n)+",$event.key,"+JSON.stringify(r)+")"}var ua={on:function(e,t){e.wrapListeners=function(e){return"_g("+e+","+t.value+")"}},bind:function(t,n){t.wrapData=function(e){return"_b("+e+",'"+t.tag+"',"+n.value+","+(n.modifiers&&n.modifiers.prop?"true":"false")+(n.modifiers&&n.modifiers.sync?",true":"")+")"}},cloak:$},fa=function(e){this.options=e,this.warn=e.warn||$r,this.transforms=wr(e.modules,"transformCode"),this.dataGenFns=wr(e.modules,"genData"),this.directives=m(m({},ua),e.directives);var t=e.isReservedTag||O;this.maybeComponent=function(e){return!t(e.tag)},this.onceId=0,this.staticRenderFns=[]};function pa(e,t){var n=new fa(t);return{render:"with(this){return "+(e?da(e,n):'_c("div")')+"}",staticRenderFns:n.staticRenderFns}}function da(e,t){if(e.staticRoot&&!e.staticProcessed)return va(e,t);if(e.once&&!e.onceProcessed)return ha(e,t);if(e.for&&!e.forProcessed)return f=t,v=(u=e).for,h=u.alias,m=u.iterator1?","+u.iterator1:"",y=u.iterator2?","+u.iterator2:"",u.forProcessed=!0,(d||"_l")+"(("+v+"),function("+h+m+y+"){return "+(p||da)(u,f)+"})";if(e.if&&!e.ifProcessed)return ma(e,t);if("template"!==e.tag||e.slotTarget){if("slot"===e.tag)return function(e,t){var n=e.slotName||'"default"',r=_a(e,t),i="_t("+n+(r?","+r:""),o=e.attrs&&"{"+e.attrs.map(function(e){return g(e.name)+":"+e.value}).join(",")+"}",a=e.attrsMap["v-bind"];!o&&!a||r||(i+=",null");o&&(i+=","+o);a&&(i+=(o?"":",null")+","+a);return i+")"}(e,t);var n;if(e.component)a=e.component,c=t,l=(s=e).inlineTemplate?null:_a(s,c,!0),n="_c("+a+","+ya(s,c)+(l?","+l:"")+")";else{var r=e.plain?void 0:ya(e,t),i=e.inlineTemplate?null:_a(e,t,!0);n="_c('"+e.tag+"'"+(r?","+r:"")+(i?","+i:"")+")"}for(var o=0;o<t.transforms.length;o++)n=t.transforms[o](e,n);return n}return _a(e,t)||"void 0";var a,s,c,l,u,f,p,d,v,h,m,y}function va(e,t){return e.staticProcessed=!0,t.staticRenderFns.push("with(this){return "+da(e,t)+"}"),"_m("+(t.staticRenderFns.length-1)+(e.staticInFor?",true":"")+")"}function ha(e,t){if(e.onceProcessed=!0,e.if&&!e.ifProcessed)return ma(e,t);if(e.staticInFor){for(var n="",r=e.parent;r;){if(r.for){n=r.key;break}r=r.parent}return n?"_o("+da(e,t)+","+t.onceId+++","+n+")":da(e,t)}return va(e,t)}function ma(e,t,n,r){return e.ifProcessed=!0,function e(t,n,r,i){if(!t.length)return i||"_e()";var o=t.shift();return o.exp?"("+o.exp+")?"+a(o.block)+":"+e(t,n,r,i):""+a(o.block);function a(e){return r?r(e,n):e.once?ha(e,n):da(e,n)}}(e.ifConditions.slice(),t,n,r)}function ya(e,t){var n,r,i="{",o=function(e,t){var n=e.directives;if(!n)return;var r,i,o,a,s="directives:[",c=!1;for(r=0,i=n.length;r<i;r++){o=n[r],a=!0;var l=t.directives[o.name];l&&(a=!!l(e,o,t.warn)),a&&(c=!0,s+='{name:"'+o.name+'",rawName:"'+o.rawName+'"'+(o.value?",value:("+o.value+"),expression:"+JSON.stringify(o.value):"")+(o.arg?',arg:"'+o.arg+'"':"")+(o.modifiers?",modifiers:"+JSON.stringify(o.modifiers):"")+"},")}if(c)return s.slice(0,-1)+"]"}(e,t);o&&(i+=o+","),e.key&&(i+="key:"+e.key+","),e.ref&&(i+="ref:"+e.ref+","),e.refInFor&&(i+="refInFor:true,"),e.pre&&(i+="pre:true,"),e.component&&(i+='tag:"'+e.tag+'",');for(var a=0;a<t.dataGenFns.length;a++)i+=t.dataGenFns[a](e);if(e.attrs&&(i+="attrs:{"+wa(e.attrs)+"},"),e.props&&(i+="domProps:{"+wa(e.props)+"},"),e.events&&(i+=sa(e.events,!1,t.warn)+","),e.nativeEvents&&(i+=sa(e.nativeEvents,!0,t.warn)+","),e.slotTarget&&!e.slotScope&&(i+="slot:"+e.slotTarget+","),e.scopedSlots&&(i+=(n=e.scopedSlots,r=t,"scopedSlots:_u(["+Object.keys(n).map(function(e){return ga(e,n[e],r)}).join(",")+"]),")),e.model&&(i+="model:{value:"+e.model.value+",callback:"+e.model.callback+",expression:"+e.model.expression+"},"),e.inlineTemplate){var s=function(e,t){var n=e.children[0];if(1===n.type){var r=pa(n,t.options);return"inlineTemplate:{render:function(){"+r.render+"},staticRenderFns:["+r.staticRenderFns.map(function(e){return"function(){"+e+"}"}).join(",")+"]}"}}(e,t);s&&(i+=s+",")}return i=i.replace(/,$/,"")+"}",e.wrapData&&(i=e.wrapData(i)),e.wrapListeners&&(i=e.wrapListeners(i)),i}function ga(e,t,n){return t.for&&!t.forProcessed?(r=e,o=n,a=(i=t).for,s=i.alias,c=i.iterator1?","+i.iterator1:"",l=i.iterator2?","+i.iterator2:"",i.forProcessed=!0,"_l(("+a+"),function("+s+c+l+"){return "+ga(r,i,o)+"})"):"{key:"+e+",fn:"+("function("+String(t.slotScope)+"){return "+("template"===t.tag?t.if?t.if+"?"+(_a(t,n)||"undefined")+":undefined":_a(t,n)||"undefined":da(t,n))+"}")+"}";var r,i,o,a,s,c,l}function _a(e,t,n,r,i){var o=e.children;if(o.length){var a=o[0];if(1===o.length&&a.for&&"template"!==a.tag&&"slot"!==a.tag)return(r||da)(a,t);var s=n?function(e,t){for(var n=0,r=0;r<e.length;r++){var i=e[r];if(1===i.type){if(ba(i)||i.ifConditions&&i.ifConditions.some(function(e){return ba(e.block)})){n=2;break}(t(i)||i.ifConditions&&i.ifConditions.some(function(e){return t(e.block)}))&&(n=1)}}return n}(o,t.maybeComponent):0,c=i||$a;return"["+o.map(function(e){return c(e,t)}).join(",")+"]"+(s?","+s:"")}}function ba(e){return void 0!==e.for||"template"===e.tag||"slot"===e.tag}function $a(e,t){return 1===e.type?da(e,t):3===e.type&&e.isComment?(r=e,"_e("+JSON.stringify(r.text)+")"):"_v("+(2===(n=e).type?n.expression:Ca(JSON.stringify(n.text)))+")";var n,r}function wa(e){for(var t="",n=0;n<e.length;n++){var r=e[n];t+='"'+r.name+'":'+Ca(r.value)+","}return t.slice(0,-1)}function Ca(e){return e.replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}new RegExp("\\b"+"do,if,for,let,new,try,var,case,else,with,await,break,catch,class,const,super,throw,while,yield,delete,export,import,return,switch,default,extends,finally,continue,debugger,function,arguments".split(",").join("\\b|\\b")+"\\b"),new RegExp("\\b"+"delete,typeof,void".split(",").join("\\s*\\([^\\)]*\\)|\\b")+"\\s*\\([^\\)]*\\)");function xa(t,n){try{return new Function(t)}catch(e){return n.push({err:e,code:t}),$}}var ka,Aa,Oa=(ka=function(e,t){var n=Ho(e.trim(),t);!1!==t.optimize&&ea(n,t);var r=pa(n,t);return{ast:n,render:r.render,staticRenderFns:r.staticRenderFns}},function(s){function e(e,t){var n=Object.create(s),r=[],i=[];if(n.warn=function(e,t){(t?i:r).push(e)},t)for(var o in t.modules&&(n.modules=(s.modules||[]).concat(t.modules)),t.directives&&(n.directives=m(Object.create(s.directives||null),t.directives)),t)"modules"!==o&&"directives"!==o&&(n[o]=t[o]);var a=ka(e,n);return a.errors=r,a.tips=i,a}return{compile:e,compileToFunctions:(c=e,l=Object.create(null),function(e,t,n){(t=m({},t)).warn,delete t.warn;var r=t.delimiters?String(t.delimiters)+e:e;if(l[r])return l[r];var i=c(e,t),o={},a=[];return o.render=xa(i.render,a),o.staticRenderFns=i.staticRenderFns.map(function(e){return xa(e,a)}),l[r]=o})};var c,l})(Yo).compileToFunctions;function Sa(e){return(Aa=Aa||document.createElement("div")).innerHTML=e?'<a href="\n"/>':'<div a="\n"/>',0<Aa.innerHTML.indexOf(" ")}var Ta=!!B&&Sa(!1),Ea=!!B&&Sa(!0),ja=e(function(e){var t=Jn(e);return t&&t.innerHTML}),Na=hn.prototype.$mount;return hn.prototype.$mount=function(e,t){if((e=e&&Jn(e))===document.body||e===document.documentElement)return this;var n=this.$options;if(!n.render){var r=n.template;if(r)if("string"==typeof r)"#"===r.charAt(0)&&(r=ja(r));else{if(!r.nodeType)return this;r=r.innerHTML}else e&&(r=function(e){{if(e.outerHTML)return e.outerHTML;var t=document.createElement("div");return t.appendChild(e.cloneNode(!0)),t.innerHTML}}(e));if(r){var i=Oa(r,{shouldDecodeNewlines:Ta,shouldDecodeNewlinesForHref:Ea,delimiters:n.delimiters,comments:n.comments},this),o=i.render,a=i.staticRenderFns;n.render=o,n.staticRenderFns=a}}return Na.call(this,e,t)},hn.compile=Oa,hn});
|
admin/classes/class-wp-ulike-admin-assets.php
ADDED
@@ -0,0 +1,103 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Wp ULike Admin Scripts Class.
|
4 |
+
*
|
5 |
+
* @package wp-ulike
|
6 |
+
* @author Alimir 2018
|
7 |
+
* @link https://wpulike.com
|
8 |
+
*/
|
9 |
+
|
10 |
+
// no direct access allowed
|
11 |
+
if ( ! defined('ABSPATH') ) {
|
12 |
+
die();
|
13 |
+
}
|
14 |
+
|
15 |
+
if ( ! class_exists( 'wp_ulike_admin_assets' ) ) {
|
16 |
+
/**
|
17 |
+
* Class to load and print master slider panel scripts
|
18 |
+
*/
|
19 |
+
class wp_ulike_admin_assets {
|
20 |
+
|
21 |
+
private $hook;
|
22 |
+
|
23 |
+
/**
|
24 |
+
* __construct
|
25 |
+
*/
|
26 |
+
function __construct( $hook ) {
|
27 |
+
$this->hook = $hook;
|
28 |
+
// general assets
|
29 |
+
$this->load_styles();
|
30 |
+
$this->load_scripts();
|
31 |
+
}
|
32 |
+
|
33 |
+
|
34 |
+
/**
|
35 |
+
* Styles for admin
|
36 |
+
*
|
37 |
+
* @return void
|
38 |
+
*/
|
39 |
+
public function load_styles() {
|
40 |
+
// Enqueue admin styles
|
41 |
+
wp_enqueue_style(
|
42 |
+
'wp-ulike-admin',
|
43 |
+
WP_ULIKE_ADMIN_URL . '/assets/css/admin.css'
|
44 |
+
);
|
45 |
+
|
46 |
+
}
|
47 |
+
|
48 |
+
/**
|
49 |
+
* Scripts for admin
|
50 |
+
*
|
51 |
+
* @return void
|
52 |
+
*/
|
53 |
+
public function load_scripts() {
|
54 |
+
|
55 |
+
// Scripts is only can be load on ulike pages.
|
56 |
+
if ( strpos( $this->hook, 'wp-ulike' ) === false ) {
|
57 |
+
return;
|
58 |
+
}
|
59 |
+
|
60 |
+
// Remove all notices in wp ulike pages.
|
61 |
+
// remove_all_actions( 'admin_notices' );
|
62 |
+
|
63 |
+
// Enqueue vueJS
|
64 |
+
wp_enqueue_script(
|
65 |
+
'wp_ulike_vuejs',
|
66 |
+
WP_ULIKE_ADMIN_URL . '/assets/js/solo/vue/vue.min.js',
|
67 |
+
array(),
|
68 |
+
null,
|
69 |
+
false
|
70 |
+
);
|
71 |
+
|
72 |
+
// Enqueue admin plugins
|
73 |
+
wp_enqueue_script(
|
74 |
+
'wp_ulike_admin_plugins',
|
75 |
+
WP_ULIKE_ADMIN_URL . '/assets/js/plugins.js',
|
76 |
+
array( 'jquery' ),
|
77 |
+
false,
|
78 |
+
true
|
79 |
+
);
|
80 |
+
|
81 |
+
// Enqueue admin scripts
|
82 |
+
wp_enqueue_script(
|
83 |
+
'wp_ulike_admin_scripts',
|
84 |
+
WP_ULIKE_ADMIN_URL . '/assets/js/scripts.js',
|
85 |
+
array( 'wp_ulike_admin_plugins', 'wp_ulike_vuejs'),
|
86 |
+
false,
|
87 |
+
true
|
88 |
+
);
|
89 |
+
|
90 |
+
// Localize scripts
|
91 |
+
wp_localize_script( 'wp_ulike_admin_scripts', 'wp_ulike_admin', array(
|
92 |
+
'hook_address' => esc_html( $this->hook ),
|
93 |
+
'nonce_field' => wp_create_nonce( 'wp-ulike-ajax-nonce' ),
|
94 |
+
'logs_notif' => __('Are you sure to remove this item?!',WP_ULIKE_SLUG),
|
95 |
+
'not_found_notif' => __('No information was found in this database!',WP_ULIKE_SLUG),
|
96 |
+
'spinner' => admin_url( 'images/spinner.gif' )
|
97 |
+
));
|
98 |
+
|
99 |
+
}
|
100 |
+
|
101 |
+
}
|
102 |
+
|
103 |
+
}
|
admin/classes/class-wp-ulike-admin-pages.php
ADDED
@@ -0,0 +1,153 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Wp ULike Admin Pages Class.
|
4 |
+
*
|
5 |
+
* @package wp-ulike
|
6 |
+
* @author Alimir 2018
|
7 |
+
* @link https://wpulike.com
|
8 |
+
*/
|
9 |
+
|
10 |
+
// no direct access allowed
|
11 |
+
if ( ! defined('ABSPATH') ) {
|
12 |
+
die();
|
13 |
+
}
|
14 |
+
|
15 |
+
if ( ! class_exists( 'wp_ulike_admin_pages' ) ) {
|
16 |
+
/**
|
17 |
+
* Class to load and print master slider panel scripts
|
18 |
+
*/
|
19 |
+
class wp_ulike_admin_pages {
|
20 |
+
|
21 |
+
private $submenus, $views;
|
22 |
+
|
23 |
+
/**
|
24 |
+
* __construct
|
25 |
+
*/
|
26 |
+
function __construct() {
|
27 |
+
|
28 |
+
$this->submenus = array(
|
29 |
+
'posts_logs' => array(
|
30 |
+
'title' => __( 'Post Likes Logs', WP_ULIKE_SLUG ),
|
31 |
+
'parent_slug' => NULL,
|
32 |
+
'capability' => 'manage_options',
|
33 |
+
'path' => '/includes/templates/posts-logs.php',
|
34 |
+
'menu_slug' => 'wp-ulike-posts-logs',
|
35 |
+
'load_screen' => true
|
36 |
+
),
|
37 |
+
'comments_logs' => array(
|
38 |
+
'title' => __( 'Comment Likes Logs', WP_ULIKE_SLUG ),
|
39 |
+
'parent_slug' => NULL,
|
40 |
+
'capability' => 'manage_options',
|
41 |
+
'path' => '/includes/templates/comments-logs.php',
|
42 |
+
'menu_slug' => 'wp-ulike-comments-logs',
|
43 |
+
'load_screen' => true
|
44 |
+
),
|
45 |
+
'activities_logs' => array(
|
46 |
+
'title' => __( 'Activity Likes Logs', WP_ULIKE_SLUG ),
|
47 |
+
'parent_slug' => NULL,
|
48 |
+
'capability' => 'manage_options',
|
49 |
+
'path' => '/includes/templates/activities-logs.php',
|
50 |
+
'menu_slug' => 'wp-ulike-activities-logs',
|
51 |
+
'load_screen' => true
|
52 |
+
),
|
53 |
+
'topics_logs' => array(
|
54 |
+
'title' => __( 'Topics Likes Logs', WP_ULIKE_SLUG ),
|
55 |
+
'parent_slug' => NULL,
|
56 |
+
'capability' => 'manage_options',
|
57 |
+
'path' => '/includes/templates/topics-logs.php',
|
58 |
+
'menu_slug' => 'wp-ulike-topics-logs',
|
59 |
+
'load_screen' => true
|
60 |
+
),
|
61 |
+
'statistics' => array(
|
62 |
+
'title' => __( 'WP ULike Statistics', WP_ULIKE_SLUG ),
|
63 |
+
'parent_slug' => 'wp-ulike-settings',
|
64 |
+
'capability' => 'manage_options',
|
65 |
+
'path' => '/includes/templates/statistics.php',
|
66 |
+
'menu_slug' => 'wp-ulike-statistics',
|
67 |
+
'load_screen' => false
|
68 |
+
),
|
69 |
+
'about' => array(
|
70 |
+
'title' => __( 'About WP ULike', WP_ULIKE_SLUG ),
|
71 |
+
'parent_slug' => 'wp-ulike-settings',
|
72 |
+
'capability' => 'manage_options',
|
73 |
+
'path' => '/includes/templates/about.php',
|
74 |
+
'menu_slug' => 'wp-ulike-about',
|
75 |
+
'load_screen' => false
|
76 |
+
)
|
77 |
+
);
|
78 |
+
|
79 |
+
add_action( 'admin_menu', array( $this, 'menus' ) );
|
80 |
+
}
|
81 |
+
|
82 |
+
/**
|
83 |
+
* register admin menus
|
84 |
+
*
|
85 |
+
* @return void
|
86 |
+
*/
|
87 |
+
public function menus() {
|
88 |
+
|
89 |
+
// Register submenus
|
90 |
+
foreach ( $this->submenus as $key => $args) {
|
91 |
+
// extract variables
|
92 |
+
extract( $args );
|
93 |
+
|
94 |
+
$hook_suffix = add_submenu_page(
|
95 |
+
$parent_slug,
|
96 |
+
$title,
|
97 |
+
$title,
|
98 |
+
$capability,
|
99 |
+
$menu_slug,
|
100 |
+
array( &$this, 'load_template' )
|
101 |
+
);
|
102 |
+
|
103 |
+
$this->views[ $hook_suffix ] = $path;
|
104 |
+
|
105 |
+
if( $load_screen ) {
|
106 |
+
add_action( "load-$hook_suffix", array( $this, 'add_screen_option' ) );
|
107 |
+
}
|
108 |
+
}
|
109 |
+
|
110 |
+
$this->menu_badge();
|
111 |
+
}
|
112 |
+
|
113 |
+
/**
|
114 |
+
* Add custom badges to a menu name
|
115 |
+
*
|
116 |
+
* @return void
|
117 |
+
*/
|
118 |
+
public function menu_badge(){
|
119 |
+
global $menu;
|
120 |
+
|
121 |
+
if( 0 !== ( $new_votes = wp_ulike_get_number_of_new_likes() ) ) {
|
122 |
+
$menu[313][0] .= sprintf( "<span class='update-plugins count-1'><span class='update-count'>%s</span></span>",
|
123 |
+
number_format_i18n( $new_votes )
|
124 |
+
);
|
125 |
+
}
|
126 |
+
}
|
127 |
+
|
128 |
+
/**
|
129 |
+
* Add screen options
|
130 |
+
*
|
131 |
+
* @return void
|
132 |
+
*/
|
133 |
+
public function add_screen_option(){
|
134 |
+
add_screen_option( 'per_page', array(
|
135 |
+
'label' => __('Logs',WP_ULIKE_SLUG),
|
136 |
+
'default' => 30,
|
137 |
+
'option' => 'wp_ulike_logs_per_page'
|
138 |
+
)
|
139 |
+
);
|
140 |
+
}
|
141 |
+
|
142 |
+
/**
|
143 |
+
* Load admin templates
|
144 |
+
*
|
145 |
+
* @return void
|
146 |
+
*/
|
147 |
+
public function load_template(){
|
148 |
+
load_template( WP_ULIKE_ADMIN_DIR . $this->views[ current_filter() ] );
|
149 |
+
}
|
150 |
+
|
151 |
+
}
|
152 |
+
|
153 |
+
}
|
admin/classes/class-wp-ulike-pagination.php
CHANGED
@@ -7,6 +7,11 @@
|
|
7 |
* @link https://wpulike.com
|
8 |
*/
|
9 |
|
|
|
|
|
|
|
|
|
|
|
10 |
if ( ! class_exists( 'wp_ulike_pagination' ) ) {
|
11 |
|
12 |
class wp_ulike_pagination{
|
@@ -141,13 +146,13 @@ if ( ! class_exists( 'wp_ulike_pagination' ) ) {
|
|
141 |
if($this->page > 1)
|
142 |
$this->pagination .= "<a href=\"".$this->get_pagenum_link($prev)."\" class=\"prev\">$p</a>";
|
143 |
else
|
144 |
-
$this->pagination .= "<span class=\"
|
145 |
}
|
146 |
//pages
|
147 |
if ($lastpage < 7 + ($this->adjacents * 2)){//not enough pages to bother breaking it up
|
148 |
for ($counter = 1; $counter <= $lastpage; $counter++){
|
149 |
if ($counter == $this->page)
|
150 |
-
$this->pagination .= "<span class=\"
|
151 |
else
|
152 |
$this->pagination .= "<a href=\"".$this->get_pagenum_link($counter)."\">$counter</a>";
|
153 |
}
|
@@ -157,46 +162,46 @@ if ( ! class_exists( 'wp_ulike_pagination' ) ) {
|
|
157 |
if($this->page < 1 + ($this->adjacents * 2)){
|
158 |
for ($counter = 1; $counter < 4 + ($this->adjacents * 2); $counter++){
|
159 |
if ($counter == $this->page)
|
160 |
-
$this->pagination .= "<span class=\"
|
161 |
else
|
162 |
-
$this->pagination .= "<a href=\"".$this->get_pagenum_link($counter)."\">$counter</a>";
|
163 |
}
|
164 |
-
$this->pagination .= "...";
|
165 |
-
$this->pagination .= "<a href=\"".$this->get_pagenum_link($lpm1)."\">$lpm1</a>";
|
166 |
-
$this->pagination .= "<a href=\"".$this->get_pagenum_link($lastpage)."\">$lastpage</a>";
|
167 |
}
|
168 |
//in middle; hide some front and some back
|
169 |
elseif($lastpage - ($this->adjacents * 2) > $this->page && $this->page > ($this->adjacents * 2)){
|
170 |
-
$this->pagination .= "<a href=\"".$this->get_pagenum_link(1)."\">1</a>";
|
171 |
-
$this->pagination .= "<a href=\"".$this->get_pagenum_link(2)."\">2</a>";
|
172 |
-
$this->pagination .= "...";
|
173 |
for ($counter = $this->page - $this->adjacents; $counter <= $this->page + $this->adjacents; $counter++)
|
174 |
if ($counter == $this->page)
|
175 |
-
$this->pagination .= "<span class=\"
|
176 |
else
|
177 |
-
$this->pagination .= "<a href=\"".$this->get_pagenum_link($counter)."\">$counter</a>";
|
178 |
-
$this->pagination .= "...";
|
179 |
-
$this->pagination .= "<a href=\"".$this->get_pagenum_link($lpm1)."\">$lpm1</a>";
|
180 |
-
$this->pagination .= "<a href=\"".$this->get_pagenum_link($lastpage)."\">$lastpage</a>";
|
181 |
}
|
182 |
//close to end; only hide early pages
|
183 |
else{
|
184 |
-
$this->pagination .= "<a href=\"".$this->get_pagenum_link(1)."\">1</a>";
|
185 |
-
$this->pagination .= "<a href=\"".$this->get_pagenum_link(2)."\">2</a>";
|
186 |
-
$this->pagination .= "...";
|
187 |
for ($counter = $lastpage - (2 + ($this->adjacents * 2)); $counter <= $lastpage; $counter++)
|
188 |
if ($counter == $this->page)
|
189 |
-
$this->pagination .= "<span class=\"
|
190 |
else
|
191 |
-
$this->pagination .= "<a href=\"".$this->get_pagenum_link($counter)."\">$counter</a>";
|
192 |
}
|
193 |
}
|
194 |
if($this->page){
|
195 |
//siguiente button
|
196 |
if ($this->page < $counter - 1)
|
197 |
-
$this->pagination .= "<a href=\"".$this->get_pagenum_link($next)."\" class=\"next\">$n</a>";
|
198 |
else
|
199 |
-
$this->pagination .= "<span class=\"
|
200 |
if($this->showCounter)$this->pagination .= "<span class=\"pagination_data\">($this->total_pages Pages)</span>";
|
201 |
}
|
202 |
}
|
7 |
* @link https://wpulike.com
|
8 |
*/
|
9 |
|
10 |
+
// no direct access allowed
|
11 |
+
if ( ! defined('ABSPATH') ) {
|
12 |
+
die();
|
13 |
+
}
|
14 |
+
|
15 |
if ( ! class_exists( 'wp_ulike_pagination' ) ) {
|
16 |
|
17 |
class wp_ulike_pagination{
|
146 |
if($this->page > 1)
|
147 |
$this->pagination .= "<a href=\"".$this->get_pagenum_link($prev)."\" class=\"prev\">$p</a>";
|
148 |
else
|
149 |
+
$this->pagination .= "<span class=\"tablenav-pages-navspan\">$p</span> ";
|
150 |
}
|
151 |
//pages
|
152 |
if ($lastpage < 7 + ($this->adjacents * 2)){//not enough pages to bother breaking it up
|
153 |
for ($counter = 1; $counter <= $lastpage; $counter++){
|
154 |
if ($counter == $this->page)
|
155 |
+
$this->pagination .= "<span class=\"tablenav-pages-navspan\">$counter</span> ";
|
156 |
else
|
157 |
$this->pagination .= "<a href=\"".$this->get_pagenum_link($counter)."\">$counter</a>";
|
158 |
}
|
162 |
if($this->page < 1 + ($this->adjacents * 2)){
|
163 |
for ($counter = 1; $counter < 4 + ($this->adjacents * 2); $counter++){
|
164 |
if ($counter == $this->page)
|
165 |
+
$this->pagination .= "<span class=\"tablenav-pages-navspan\">$counter</span> ";
|
166 |
else
|
167 |
+
$this->pagination .= "<a href=\"".$this->get_pagenum_link($counter)."\">$counter</a> ";
|
168 |
}
|
169 |
+
$this->pagination .= "... ";
|
170 |
+
$this->pagination .= "<a href=\"".$this->get_pagenum_link($lpm1)."\">$lpm1</a> ";
|
171 |
+
$this->pagination .= "<a href=\"".$this->get_pagenum_link($lastpage)."\">$lastpage</a> ";
|
172 |
}
|
173 |
//in middle; hide some front and some back
|
174 |
elseif($lastpage - ($this->adjacents * 2) > $this->page && $this->page > ($this->adjacents * 2)){
|
175 |
+
$this->pagination .= "<a href=\"".$this->get_pagenum_link(1)."\">1</a> ";
|
176 |
+
$this->pagination .= "<a href=\"".$this->get_pagenum_link(2)."\">2</a> ";
|
177 |
+
$this->pagination .= "... ";
|
178 |
for ($counter = $this->page - $this->adjacents; $counter <= $this->page + $this->adjacents; $counter++)
|
179 |
if ($counter == $this->page)
|
180 |
+
$this->pagination .= "<span class=\"tablenav-pages-navspan\">$counter</span> ";
|
181 |
else
|
182 |
+
$this->pagination .= "<a href=\"".$this->get_pagenum_link($counter)."\">$counter</a> ";
|
183 |
+
$this->pagination .= "... ";
|
184 |
+
$this->pagination .= "<a href=\"".$this->get_pagenum_link($lpm1)."\">$lpm1</a> ";
|
185 |
+
$this->pagination .= "<a href=\"".$this->get_pagenum_link($lastpage)."\">$lastpage</a> ";
|
186 |
}
|
187 |
//close to end; only hide early pages
|
188 |
else{
|
189 |
+
$this->pagination .= "<a href=\"".$this->get_pagenum_link(1)."\">1</a> ";
|
190 |
+
$this->pagination .= "<a href=\"".$this->get_pagenum_link(2)."\">2</a> ";
|
191 |
+
$this->pagination .= "... ";
|
192 |
for ($counter = $lastpage - (2 + ($this->adjacents * 2)); $counter <= $lastpage; $counter++)
|
193 |
if ($counter == $this->page)
|
194 |
+
$this->pagination .= "<span class=\"tablenav-pages-navspan\">$counter</span> ";
|
195 |
else
|
196 |
+
$this->pagination .= "<a href=\"".$this->get_pagenum_link($counter)."\">$counter</a> ";
|
197 |
}
|
198 |
}
|
199 |
if($this->page){
|
200 |
//siguiente button
|
201 |
if ($this->page < $counter - 1)
|
202 |
+
$this->pagination .= "<a href=\"".$this->get_pagenum_link($next)."\" class=\"next\">$n</a> ";
|
203 |
else
|
204 |
+
$this->pagination .= "<span class=\"tablenav-pages-navspan\">$n</span> ";
|
205 |
if($this->showCounter)$this->pagination .= "<span class=\"pagination_data\">($this->total_pages Pages)</span>";
|
206 |
}
|
207 |
}
|
admin/classes/class-wp-ulike-settings.php
CHANGED
@@ -7,6 +7,11 @@
|
|
7 |
* @link https://wpulike.com
|
8 |
*/
|
9 |
|
|
|
|
|
|
|
|
|
|
|
10 |
if ( !class_exists( 'wp_ulike_settings' ) ) {
|
11 |
|
12 |
class wp_ulike_settings {
|
@@ -200,16 +205,6 @@ if ( !class_exists( 'wp_ulike_settings' ) ) {
|
|
200 |
|
201 |
public static function admin_enqueue_scripts() {
|
202 |
wp_enqueue_media();
|
203 |
-
wp_enqueue_script( 'wp-ulike-settings', WP_ULIKE_ADMIN_URL . '/assets/js/settings.js', array(
|
204 |
-
'jquery',
|
205 |
-
'wp-color-picker'
|
206 |
-
) );
|
207 |
-
wp_enqueue_script( "jquery-effects-core" );
|
208 |
-
wp_localize_script( 'wp-ulike-settings', 'ajax', array(
|
209 |
-
'url' => admin_url( 'admin-ajax.php' ),
|
210 |
-
'spinner' => admin_url( 'images/spinner.gif' )
|
211 |
-
) );
|
212 |
-
wp_enqueue_style( 'wp-color-picker' );
|
213 |
}
|
214 |
|
215 |
public function do_page() {
|
@@ -425,7 +420,7 @@ if ( !class_exists( 'wp_ulike_settings' ) ) {
|
|
425 |
break;
|
426 |
|
427 |
case 'color':
|
428 |
-
$values[$name] =
|
429 |
break;
|
430 |
|
431 |
case 'textarea':
|
7 |
* @link https://wpulike.com
|
8 |
*/
|
9 |
|
10 |
+
// no direct access allowed
|
11 |
+
if ( ! defined('ABSPATH') ) {
|
12 |
+
die();
|
13 |
+
}
|
14 |
+
|
15 |
if ( !class_exists( 'wp_ulike_settings' ) ) {
|
16 |
|
17 |
class wp_ulike_settings {
|
205 |
|
206 |
public static function admin_enqueue_scripts() {
|
207 |
wp_enqueue_media();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
208 |
}
|
209 |
|
210 |
public function do_page() {
|
420 |
break;
|
421 |
|
422 |
case 'color':
|
423 |
+
$values[$name] = $input;
|
424 |
break;
|
425 |
|
426 |
case 'textarea':
|
admin/classes/class-wp-ulike-stats.php
CHANGED
@@ -7,10 +7,17 @@
|
|
7 |
* @link https://wpulike.com
|
8 |
*/
|
9 |
|
|
|
|
|
|
|
|
|
|
|
10 |
if ( ! class_exists( 'wp_ulike_stats' ) ) {
|
11 |
|
12 |
class wp_ulike_stats extends wp_ulike_widget{
|
13 |
-
|
|
|
|
|
14 |
|
15 |
/**
|
16 |
* Instance of this class.
|
@@ -22,141 +29,116 @@ if ( ! class_exists( 'wp_ulike_stats' ) ) {
|
|
22 |
/**
|
23 |
* Constructor
|
24 |
*/
|
25 |
-
|
26 |
-
{
|
27 |
global $wpdb;
|
28 |
-
$this->wpdb
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
*
|
35 |
-
* @author Alimir
|
36 |
-
* @since 2.0
|
37 |
-
* @updated 2.3
|
38 |
-
* @updated 3.0
|
39 |
-
* @return Void
|
40 |
-
*/
|
41 |
-
public function enqueue_script($hook)
|
42 |
-
{
|
43 |
-
// $currentScreen = get_current_screen();
|
44 |
-
$get_option = get_option( 'wp_ulike_statistics_screen' );
|
45 |
-
|
46 |
-
// if ( $currentScreen->id != $hook ) {
|
47 |
-
// return;
|
48 |
-
// }
|
49 |
-
|
50 |
-
// Register Script
|
51 |
-
wp_enqueue_script(
|
52 |
-
'wp_ulike_stats',
|
53 |
-
WP_ULIKE_ADMIN_URL . '/assets/js/statistics.js',
|
54 |
-
array('jquery'),
|
55 |
-
null,
|
56 |
-
true
|
57 |
);
|
58 |
-
|
59 |
-
wp_localize_script( 'wp_ulike_stats', 'wp_ulike_statistics', array(
|
60 |
-
'posts_date_labels' => $this->posts_dataset('label'),
|
61 |
-
'comments_date_labels' => $this->comments_dataset('label'),
|
62 |
-
'activities_date_labels' => $this->activities_dataset('label'),
|
63 |
-
'topics_date_labels' => $this->topics_dataset('label'),
|
64 |
-
'posts_dataset' => $this->posts_dataset('dataset'),
|
65 |
-
'comments_dataset' => $this->comments_dataset('dataset'),
|
66 |
-
'activities_dataset' => $this->activities_dataset('dataset'),
|
67 |
-
'topics_dataset' => $this->topics_dataset('dataset'),
|
68 |
-
'data_map' => $get_option['likers_map'] == 1 ? $this->data_map() : null
|
69 |
-
));
|
70 |
-
|
71 |
-
wp_enqueue_script('postbox');
|
72 |
}
|
73 |
|
74 |
/**
|
75 |
-
*
|
76 |
*
|
77 |
* @author Alimir
|
78 |
* @since 2.0
|
79 |
-
* @
|
80 |
-
* @return JSON Array
|
81 |
*/
|
82 |
-
public function
|
83 |
-
|
84 |
-
$
|
85 |
-
$return_val = $this->select_data('ulike');
|
86 |
-
foreach($return_val as $val){
|
87 |
-
if($return_type == 'new_date_time'){
|
88 |
-
$newarray[] = date_i18n("M j, Y", strtotime($val->$return_type) );
|
89 |
-
}
|
90 |
-
else
|
91 |
-
$newarray[] = $val->$return_type;
|
92 |
-
}
|
93 |
-
return json_encode($newarray);
|
94 |
-
}
|
95 |
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
* @updated 2.2
|
102 |
-
* @return JSON Array
|
103 |
-
*/
|
104 |
-
public function comments_dataset($type){
|
105 |
-
$newarray = array();
|
106 |
-
$return_type = $type != 'dataset' ? 'new_date_time' : 'count_date_time';
|
107 |
-
$return_val = $this->select_data('ulike_comments');
|
108 |
-
foreach($return_val as $val){
|
109 |
-
if($return_type == 'new_date_time'){
|
110 |
-
$newarray[] = date_i18n("M j, Y", strtotime($val->$return_type) );
|
111 |
}
|
112 |
-
|
113 |
-
$newarray[] = $val->$return_type;
|
114 |
}
|
115 |
-
|
|
|
116 |
}
|
117 |
|
118 |
/**
|
119 |
-
* Get
|
120 |
*
|
121 |
* @author Alimir
|
122 |
* @since 2.0
|
123 |
-
* @updated 2.2
|
124 |
* @return JSON Array
|
125 |
*/
|
126 |
-
public function
|
127 |
-
$
|
128 |
-
|
129 |
-
$
|
130 |
-
|
131 |
-
|
132 |
-
$
|
133 |
-
|
134 |
-
|
135 |
-
|
|
|
|
|
136 |
}
|
137 |
-
|
|
|
138 |
}
|
139 |
|
140 |
/**
|
141 |
-
*
|
142 |
*
|
143 |
* @author Alimir
|
144 |
-
* @since
|
145 |
-
* @
|
146 |
-
* @return JSON Array
|
147 |
*/
|
148 |
-
public function
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
-
|
153 |
-
|
154 |
-
|
155 |
-
|
156 |
-
|
157 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
158 |
}
|
159 |
-
|
|
|
160 |
}
|
161 |
|
162 |
/**
|
@@ -166,16 +148,25 @@ if ( ! class_exists( 'wp_ulike_stats' ) ) {
|
|
166 |
* @since 2.0
|
167 |
* @return String
|
168 |
*/
|
169 |
-
public function select_data($table){
|
170 |
-
|
171 |
-
$
|
172 |
-
|
173 |
-
|
174 |
-
|
175 |
-
|
176 |
-
|
177 |
-
|
178 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
179 |
}
|
180 |
|
181 |
/**
|
@@ -185,96 +176,106 @@ if ( ! class_exists( 'wp_ulike_stats' ) ) {
|
|
185 |
* @since 2.0
|
186 |
* @return Integer
|
187 |
*/
|
188 |
-
public function get_data_date($table
|
189 |
-
|
190 |
-
$
|
191 |
-
else if($time == 'yesterday')
|
192 |
-
$where_val = "DATE(date_time) = DATE(subdate(current_date, 1))";
|
193 |
-
else if($time == 'week')
|
194 |
-
$where_val = "week(DATE(date_time)) = week(DATE(NOW()))";
|
195 |
-
else
|
196 |
-
$where_val = "month(DATE(date_time)) = month(DATE(NOW()))";
|
197 |
-
|
198 |
-
$return_val = $this->wpdb->get_var(
|
199 |
-
"
|
200 |
-
SELECT COUNT(*)
|
201 |
-
FROM ".$this->wpdb->prefix."$table
|
202 |
-
WHERE $where_val
|
203 |
-
");
|
204 |
-
return $return_val;
|
205 |
}
|
206 |
|
207 |
/**
|
208 |
-
*
|
209 |
*
|
210 |
* @author Alimir
|
211 |
-
* @since
|
212 |
-
* @updated 2.1
|
213 |
* @return Integer
|
214 |
*/
|
215 |
-
public function
|
216 |
-
|
217 |
-
|
218 |
-
|
219 |
-
|
220 |
-
|
221 |
-
WHERE meta_key LIKE '$name'
|
222 |
-
" );
|
223 |
-
}
|
224 |
-
else {
|
225 |
-
return ;
|
226 |
}
|
227 |
-
}
|
228 |
|
|
|
|
|
229 |
|
230 |
/**
|
231 |
-
*
|
232 |
*
|
233 |
* @author Alimir
|
234 |
-
* @since
|
235 |
-
* @
|
236 |
-
|
237 |
-
|
238 |
-
*/
|
239 |
-
public function data_map( $country_data = array() ){
|
240 |
|
241 |
-
|
242 |
-
|
243 |
-
|
244 |
-
|
245 |
-
|
246 |
-
SELECT ip AS user_ip, count(ip) AS count_user_ip
|
247 |
-
FROM ".$this->wpdb->prefix."ulike
|
248 |
-
GROUP BY user_ip
|
249 |
-
UNION ALL
|
250 |
-
SELECT ip AS user_ip, count(ip) AS count_user_ip
|
251 |
-
FROM ".$this->wpdb->prefix."ulike_activities
|
252 |
-
GROUP BY user_ip
|
253 |
-
UNION ALL
|
254 |
-
SELECT ip AS user_ip, count(ip) AS count_user_ip
|
255 |
-
FROM ".$this->wpdb->prefix."ulike_comments
|
256 |
-
GROUP BY user_ip
|
257 |
-
UNION ALL
|
258 |
-
SELECT ip AS user_ip, count(ip) AS count_user_ip
|
259 |
-
FROM ".$this->wpdb->prefix."ulike_forums
|
260 |
-
GROUP BY user_ip
|
261 |
-
) AS T
|
262 |
-
GROUP BY get_user_ip
|
263 |
-
" );
|
264 |
-
// Set transient
|
265 |
-
set_transient( 'wp_ulike_get_likers_dispersal_statistics', $return_val, 24 * HOUR_IN_SECONDS );
|
266 |
-
}
|
267 |
|
268 |
-
|
269 |
-
|
270 |
-
|
271 |
-
|
272 |
-
|
273 |
-
|
274 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
275 |
}
|
276 |
|
277 |
-
return
|
278 |
}
|
279 |
|
280 |
/**
|
@@ -289,30 +290,36 @@ if ( ! class_exists( 'wp_ulike_stats' ) ) {
|
|
289 |
|
290 |
if ( false === ( $result = get_transient( 'wp_ulike_get_top_likers' ) ) ) {
|
291 |
// Make new sql request
|
292 |
-
$
|
293 |
-
|
294 |
-
|
295 |
-
|
296 |
-
|
297 |
-
|
298 |
-
|
299 |
-
|
300 |
-
|
301 |
-
|
302 |
-
|
303 |
-
|
304 |
-
|
305 |
-
|
306 |
-
|
307 |
-
|
308 |
-
|
309 |
-
|
310 |
-
|
311 |
-
|
312 |
-
|
313 |
-
|
314 |
-
|
315 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
316 |
}
|
317 |
|
318 |
return $result;
|
@@ -322,22 +329,33 @@ if ( ! class_exists( 'wp_ulike_stats' ) ) {
|
|
322 |
* Tops Summaries
|
323 |
*
|
324 |
* @author Alimir
|
325 |
-
* @since 2.
|
326 |
-
* @
|
327 |
-
* @return Array
|
328 |
*/
|
329 |
public function get_tops( $type ){
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
330 |
switch( $type ){
|
331 |
-
case '
|
332 |
return parent::most_liked_posts();
|
333 |
break;
|
334 |
-
case '
|
335 |
return parent::most_liked_comments();
|
336 |
break;
|
337 |
-
case '
|
338 |
return parent::most_liked_activities();
|
339 |
break;
|
340 |
-
case '
|
341 |
return parent::most_liked_topics();
|
342 |
break;
|
343 |
default:
|
7 |
* @link https://wpulike.com
|
8 |
*/
|
9 |
|
10 |
+
// no direct access allowed
|
11 |
+
if ( ! defined('ABSPATH') ) {
|
12 |
+
die();
|
13 |
+
}
|
14 |
+
|
15 |
if ( ! class_exists( 'wp_ulike_stats' ) ) {
|
16 |
|
17 |
class wp_ulike_stats extends wp_ulike_widget{
|
18 |
+
|
19 |
+
// Private variables
|
20 |
+
private $wpdb, $tables;
|
21 |
|
22 |
/**
|
23 |
* Instance of this class.
|
29 |
/**
|
30 |
* Constructor
|
31 |
*/
|
32 |
+
function __construct(){
|
|
|
33 |
global $wpdb;
|
34 |
+
$this->wpdb = $wpdb;
|
35 |
+
$this->tables = array(
|
36 |
+
'posts' => 'ulike',
|
37 |
+
'comments' => 'ulike_comments',
|
38 |
+
'activities' => 'ulike_activities',
|
39 |
+
'topics' => 'ulike_forums',
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
40 |
);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
41 |
}
|
42 |
|
43 |
/**
|
44 |
+
* Return tables which has any data inside
|
45 |
*
|
46 |
* @author Alimir
|
47 |
* @since 2.0
|
48 |
+
* @return Array
|
|
|
49 |
*/
|
50 |
+
public function get_tables(){
|
51 |
+
// Tables buffer
|
52 |
+
$get_tables = $this->tables;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
53 |
|
54 |
+
foreach ( $get_tables as $type => $table) {
|
55 |
+
// If this table has no data, then unset it and continue...
|
56 |
+
if( ! $this->count_logs( array ( "table" => $table ) ) ) {
|
57 |
+
unset( $get_tables[ $type ] );
|
58 |
+
continue;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
59 |
}
|
60 |
+
|
|
|
61 |
}
|
62 |
+
|
63 |
+
return $get_tables;
|
64 |
}
|
65 |
|
66 |
/**
|
67 |
+
* Get posts datasets
|
68 |
*
|
69 |
* @author Alimir
|
70 |
* @since 2.0
|
|
|
71 |
* @return JSON Array
|
72 |
*/
|
73 |
+
public function dataset( $table ){
|
74 |
+
$output = array();
|
75 |
+
// Get data
|
76 |
+
$results = $this->select_data( $table );
|
77 |
+
// Create chart dataset
|
78 |
+
foreach( $results as $result ){
|
79 |
+
$output['label'][] = date_i18n( "M j, Y", strtotime( $result->labels ) );
|
80 |
+
$output['data'][] = $result->counts;
|
81 |
+
}
|
82 |
+
// Add chart options
|
83 |
+
if( ! empty( $output['data'] ) ){
|
84 |
+
$output['options'] = $this->charts( $table );
|
85 |
}
|
86 |
+
|
87 |
+
return $output;
|
88 |
}
|
89 |
|
90 |
/**
|
91 |
+
* Set custom options for charts
|
92 |
*
|
93 |
* @author Alimir
|
94 |
+
* @since 3.5
|
95 |
+
* @return Array
|
|
|
96 |
*/
|
97 |
+
public function charts( $table, $options = array() ){
|
98 |
+
|
99 |
+
switch ( $table ) {
|
100 |
+
case 'ulike':
|
101 |
+
$options = array(
|
102 |
+
'label' => __( "Posts Stats", WP_ULIKE_SLUG ),
|
103 |
+
'backgroundColor' => "rgba(66, 165, 245,0.8)",
|
104 |
+
'borderColor' => "rgba(21, 101, 192,1)",
|
105 |
+
'pointBackgroundColor' => "rgba(255,255,255,1)",
|
106 |
+
'borderWidth' => 1
|
107 |
+
);
|
108 |
+
break;
|
109 |
+
|
110 |
+
case 'ulike_comments':
|
111 |
+
$options = array(
|
112 |
+
'label' => __( "Comments Stats", WP_ULIKE_SLUG ),
|
113 |
+
'backgroundColor' => "rgba(255, 202, 40,0.8)",
|
114 |
+
'borderColor' => "rgba(255, 143, 0,1)",
|
115 |
+
'pointBackgroundColor' => "rgba(255,255,255,1)",
|
116 |
+
'borderWidth' => 1
|
117 |
+
);
|
118 |
+
break;
|
119 |
+
|
120 |
+
case 'ulike_activities':
|
121 |
+
$options = array(
|
122 |
+
'label' => __( "Activities Stats", WP_ULIKE_SLUG ),
|
123 |
+
'backgroundColor' => "rgba(239, 83, 80,0.8)",
|
124 |
+
'borderColor' => "rgba(198, 40, 40,1)",
|
125 |
+
'pointBackgroundColor' => "rgba(255,255,255,1)",
|
126 |
+
'borderWidth' => 1
|
127 |
+
);
|
128 |
+
break;
|
129 |
+
|
130 |
+
case 'ulike_forums':
|
131 |
+
$options = array(
|
132 |
+
'label' => __( "Topics Stats", WP_ULIKE_SLUG ),
|
133 |
+
'backgroundColor' => "rgba(102, 187, 106,0.8)",
|
134 |
+
'borderColor' => "rgba(27, 94, 32,1)",
|
135 |
+
'pointBackgroundColor' => "rgba(255,255,255,1)",
|
136 |
+
'borderWidth' => 1
|
137 |
+
);
|
138 |
+
break;
|
139 |
}
|
140 |
+
|
141 |
+
return $options;
|
142 |
}
|
143 |
|
144 |
/**
|
148 |
* @since 2.0
|
149 |
* @return String
|
150 |
*/
|
151 |
+
public function select_data( $table ){
|
152 |
+
|
153 |
+
$query = sprintf( "
|
154 |
+
SELECT DATE(date_time) AS labels,
|
155 |
+
count(date_time) AS counts
|
156 |
+
FROM %s
|
157 |
+
GROUP BY labels
|
158 |
+
DESC LIMIT %d",
|
159 |
+
$this->wpdb->prefix . $table,
|
160 |
+
30
|
161 |
+
);
|
162 |
+
|
163 |
+
$result = $this->wpdb->get_results( $query );
|
164 |
+
|
165 |
+
if( empty( $result ) ) {
|
166 |
+
$result->labels = $result->counts = NULL;
|
167 |
+
}
|
168 |
+
|
169 |
+
return $result;
|
170 |
}
|
171 |
|
172 |
/**
|
176 |
* @since 2.0
|
177 |
* @return Integer
|
178 |
*/
|
179 |
+
public function get_data_date( $table, $date ){
|
180 |
+
_deprecated_function( 'get_data_date', '3.5', 'count_logs' );
|
181 |
+
return $this->count_logs( array( "table" => $table, "date" => $date ) );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
182 |
}
|
183 |
|
184 |
/**
|
185 |
+
* Count all logs from the tables
|
186 |
*
|
187 |
* @author Alimir
|
188 |
+
* @since 3.5
|
|
|
189 |
* @return Integer
|
190 |
*/
|
191 |
+
public function count_all_logs( $date = 'all' ){
|
192 |
+
// Result
|
193 |
+
$result = 0;
|
194 |
+
|
195 |
+
foreach ( $this->tables as $key => $table ) {
|
196 |
+
$result += $this->count_logs( array( "table" => $table, "date" => $date ) );
|
|
|
|
|
|
|
|
|
|
|
197 |
}
|
|
|
198 |
|
199 |
+
return $result;
|
200 |
+
}
|
201 |
|
202 |
/**
|
203 |
+
* Count logs by table
|
204 |
*
|
205 |
* @author Alimir
|
206 |
+
* @since 3.5
|
207 |
+
* @return Integer
|
208 |
+
*/
|
209 |
+
public function count_logs( $args = array() ){
|
|
|
|
|
210 |
|
211 |
+
//Main Data
|
212 |
+
$defaults = array(
|
213 |
+
"table" => 'ulike',
|
214 |
+
"date" => 'all'
|
215 |
+
);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
216 |
|
217 |
+
$parsed_args = wp_parse_args( $args, $defaults );
|
218 |
+
|
219 |
+
// Extract variables
|
220 |
+
extract( $parsed_args );
|
221 |
+
|
222 |
+
$query = sprintf( "SELECT COUNT(*) FROM %s WHERE 1=1", $this->wpdb->prefix . $table );
|
223 |
+
|
224 |
+
switch ( $date ) {
|
225 |
+
case 'today':
|
226 |
+
$query .= ' AND DATE( date_time ) = DATE( NOW() )';
|
227 |
+
break;
|
228 |
+
|
229 |
+
case 'yesterday':
|
230 |
+
$query .= ' AND DATE( date_time ) = DATE( subdate( current_date, 1 ) )';
|
231 |
+
break;
|
232 |
+
|
233 |
+
case 'week':
|
234 |
+
$query .= ' AND WEEK( DATE( date_time ) ) = WEEK( DATE( NOW() ) )';
|
235 |
+
break;
|
236 |
+
|
237 |
+
case 'month':
|
238 |
+
$query .= ' AND MONTH( DATE( date_time ) ) = MONTH( DATE( NOW() ) )';
|
239 |
+
break;
|
240 |
+
|
241 |
+
case 'year':
|
242 |
+
$query .= ' AND YEAR( DATE( date_time ) ) = YEAR( DATE( NOW() ) )';
|
243 |
+
break;
|
244 |
+
}
|
245 |
+
|
246 |
+
$result = $this->wpdb->get_var( $query );
|
247 |
+
|
248 |
+
return empty( $result ) ? 0 : $result;
|
249 |
+
|
250 |
+
}
|
251 |
+
|
252 |
+
public function display_top_likers(){
|
253 |
+
$top_likers = $this->get_top_likers();
|
254 |
+
$result = '';
|
255 |
+
$counter = 1;
|
256 |
+
foreach ( $top_likers as $user ) {
|
257 |
+
$user_ID = stripslashes( $user->user_id );
|
258 |
+
$userdata = get_userdata( $user_ID );
|
259 |
+
$username = empty( $userdata ) ? __('Guest User',WP_ULIKE_SLUG) : $userdata->display_name;
|
260 |
+
|
261 |
+
$result .= '
|
262 |
+
<div class="wp-ulike-flex wp-ulike-users-list">
|
263 |
+
<div class="wp-ulike-counter">
|
264 |
+
<i class="wp-ulike-icons-trophy"></i>
|
265 |
+
<span class="aux-wp-ulike-counter">'.$counter++.'th</span>
|
266 |
+
</div>
|
267 |
+
<div class="wp-ulike-info">
|
268 |
+
<i class="wp-ulike-icons-profile-male"></i>
|
269 |
+
<span class="wp-ulike-user-name">'.$username.'</span>
|
270 |
+
</div>
|
271 |
+
<div class="wp-ulike-total">
|
272 |
+
<i class="wp-ulike-icons-heart"></i>
|
273 |
+
<span class="wp-ulike-user-name">'.$user->SumUser.'</span>
|
274 |
+
</div>
|
275 |
+
</div>';
|
276 |
}
|
277 |
|
278 |
+
return $result;
|
279 |
}
|
280 |
|
281 |
/**
|
290 |
|
291 |
if ( false === ( $result = get_transient( 'wp_ulike_get_top_likers' ) ) ) {
|
292 |
// Make new sql request
|
293 |
+
$query = sprintf( '
|
294 |
+
SELECT T.user_id, SUM(T.CountUser) AS SumUser, T.ip
|
295 |
+
FROM(
|
296 |
+
SELECT user_id, count(user_id) AS CountUser, ip
|
297 |
+
FROM `%1$sulike`
|
298 |
+
GROUP BY user_id
|
299 |
+
UNION ALL
|
300 |
+
SELECT user_id, count(user_id) AS CountUser, ip
|
301 |
+
FROM `%1$sulike_activities`
|
302 |
+
GROUP BY user_id
|
303 |
+
UNION ALL
|
304 |
+
SELECT user_id, count(user_id) AS CountUser, ip
|
305 |
+
FROM `%1$sulike_comments`
|
306 |
+
GROUP BY user_id
|
307 |
+
UNION ALL
|
308 |
+
SELECT user_id, count(user_id) AS CountUser, ip
|
309 |
+
FROM `%1$sulike_forums`
|
310 |
+
GROUP BY user_id
|
311 |
+
) AS T
|
312 |
+
GROUP BY T.user_id
|
313 |
+
ORDER BY SumUser DESC LIMIT %2$d',
|
314 |
+
$this->wpdb->prefix,
|
315 |
+
5
|
316 |
+
);
|
317 |
+
$result = $this->wpdb->get_results( $query );
|
318 |
+
|
319 |
+
if( !empty( $result ) ) {
|
320 |
+
// Set transient
|
321 |
+
set_transient( 'wp_ulike_get_top_likers', $result, 24 * HOUR_IN_SECONDS );
|
322 |
+
}
|
323 |
}
|
324 |
|
325 |
return $result;
|
329 |
* Tops Summaries
|
330 |
*
|
331 |
* @author Alimir
|
332 |
+
* @since 2.0
|
333 |
+
* @return Integer
|
|
|
334 |
*/
|
335 |
public function get_tops( $type ){
|
336 |
+
_deprecated_function( 'get_tops', '3.5', 'get_top' );
|
337 |
+
return $this->get_top( $type );
|
338 |
+
}
|
339 |
+
|
340 |
+
/**
|
341 |
+
* Tops Summaries
|
342 |
+
*
|
343 |
+
* @author Alimir
|
344 |
+
* @since 3.5
|
345 |
+
* @return Array
|
346 |
+
*/
|
347 |
+
public function get_top( $type ){
|
348 |
switch( $type ){
|
349 |
+
case 'posts':
|
350 |
return parent::most_liked_posts();
|
351 |
break;
|
352 |
+
case 'comments':
|
353 |
return parent::most_liked_comments();
|
354 |
break;
|
355 |
+
case 'activities':
|
356 |
return parent::most_liked_activities();
|
357 |
break;
|
358 |
+
case 'topics':
|
359 |
return parent::most_liked_topics();
|
360 |
break;
|
361 |
default:
|
admin/classes/class-wp-ulike-widget.php
CHANGED
@@ -7,6 +7,11 @@
|
|
7 |
* @link https://wpulike.com
|
8 |
*/
|
9 |
|
|
|
|
|
|
|
|
|
|
|
10 |
if ( ! class_exists( 'wp_ulike_widget' ) ) {
|
11 |
|
12 |
class wp_ulike_widget extends WP_Widget {
|
@@ -136,8 +141,10 @@ if ( ! class_exists( 'wp_ulike_widget' ) ) {
|
|
136 |
|
137 |
$result .= $before_item;
|
138 |
$result .= $show_thumb ? get_avatar( $comment->comment_author_email, $sizeOf ) : '';
|
|
|
139 |
$result .= '<span class="comment-author-link">' . $comment_author . '</span> ' . __('on',WP_ULIKE_SLUG);
|
140 |
$result .= ' <a href="' . $post_permalink . '#comment-' . $comment->comment_ID . '" title="' . $post_title.'" rel="nofollow">' . wp_trim_words( $post_title, $num_words = $trim, $more = null ) . '</a>';
|
|
|
141 |
$result .= $show_count ? ' <span class="wp_counter_span">'.wp_ulike_format_number($comment_likes_count).'</span>' : '';
|
142 |
$result .= $after_item;
|
143 |
}
|
7 |
* @link https://wpulike.com
|
8 |
*/
|
9 |
|
10 |
+
// no direct access allowed
|
11 |
+
if ( ! defined('ABSPATH') ) {
|
12 |
+
die();
|
13 |
+
}
|
14 |
+
|
15 |
if ( ! class_exists( 'wp_ulike_widget' ) ) {
|
16 |
|
17 |
class wp_ulike_widget extends WP_Widget {
|
141 |
|
142 |
$result .= $before_item;
|
143 |
$result .= $show_thumb ? get_avatar( $comment->comment_author_email, $sizeOf ) : '';
|
144 |
+
$result .= '<span class="comment-info">';
|
145 |
$result .= '<span class="comment-author-link">' . $comment_author . '</span> ' . __('on',WP_ULIKE_SLUG);
|
146 |
$result .= ' <a href="' . $post_permalink . '#comment-' . $comment->comment_ID . '" title="' . $post_title.'" rel="nofollow">' . wp_trim_words( $post_title, $num_words = $trim, $more = null ) . '</a>';
|
147 |
+
$result .= '</span>';
|
148 |
$result .= $show_count ? ' <span class="wp_counter_span">'.wp_ulike_format_number($comment_likes_count).'</span>' : '';
|
149 |
$result .= $after_item;
|
150 |
}
|
admin/includes/geoiploc.php
DELETED
@@ -1,2549 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
/*
|
4 |
-
|
5 |
-
+-----------------------------------------------------------------+
|
6 |
-
| Created by Chirag Mehta - http://chir.ag/projects/geoiploc |
|
7 |
-
|-----------------------------------------------------------------|
|
8 |
-
| For PHP GeoIPLocation Library |
|
9 |
-
+-----------------------------------------------------------------+
|
10 |
-
|
11 |
-
All the functions, data conversion etc. have been written specifically
|
12 |
-
for the PHP GeoIPLocation Library by Chirag Mehta.
|
13 |
-
|
14 |
-
GeoIPLoc code & data last updated: Sat Apr 25 0:02:05 PDT 2015.
|
15 |
-
Note: This library is updated automatically once a day.
|
16 |
-
|
17 |
-
This library is released under the: Creative Commons License: Attribution 2.5
|
18 |
-
http://creativecommons.org/licenses/by/2.5/
|
19 |
-
|
20 |
-
The IP Country data is from: http://Software77.net (A Webnet77.com Company)
|
21 |
-
|
22 |
-
Please review the following copy of license for more information:
|
23 |
-
|
24 |
-
# INFORMATION AND NOTES ON IpToCountry.csv.gz
|
25 |
-
# ===========================================
|
26 |
-
#
|
27 |
-
# ------------------------------------------------------------------------------
|
28 |
-
# LICENSE
|
29 |
-
# =======
|
30 |
-
# This database is provided FREE under the terms of the
|
31 |
-
# GENERAL PUBLIC LICENSE, June 1991
|
32 |
-
# ------------------------------------------------------------------------------
|
33 |
-
#
|
34 |
-
# Generator : ip.pl on http://Software77.net (A Webnet77.com Company)
|
35 |
-
# Software Author : BRM
|
36 |
-
# Contact : http://Webnet77.com/contact.html
|
37 |
-
# Download : http://software77.net/cgi-bin/ip-country/geo-ip.pl
|
38 |
-
#
|
39 |
-
# IMPORTANT NOTES
|
40 |
-
# ===============
|
41 |
-
# If you discover a bug in the database, please let us know at the contact
|
42 |
-
# address above.
|
43 |
-
#
|
44 |
-
# What this database is
|
45 |
-
# =====================
|
46 |
-
#
|
47 |
-
# This Database is operated and maintained by Webnet77 and updated every 1
|
48 |
-
# days and represents [almost] all 2 billion IP numbers [approximately] in use on the
|
49 |
-
# internet today.
|
50 |
-
#
|
51 |
-
# This Database is automatically reconstituted every 1 days by special
|
52 |
-
# software running on our servers. The bottom of the main page shows how long ago
|
53 |
-
# it was updated as well as giving an indication of when the next update will
|
54 |
-
# take place.
|
55 |
-
# ------------------------------------------------------------------------------
|
56 |
-
#
|
57 |
-
# FILE FORMAT
|
58 |
-
# ===========
|
59 |
-
#
|
60 |
-
# --------------------------------------------------------------
|
61 |
-
# All lines beginning with either "#" or whitespace are comments
|
62 |
-
# --------------------------------------------------------------
|
63 |
-
#
|
64 |
-
# IP FROM IP TO REGISTRY ASSIGNED CTRY CNTRY COUNTRY
|
65 |
-
# "1346797568","1346801663","ripencc","20010601","IL","ISR","ISRAEL"
|
66 |
-
#
|
67 |
-
# IP FROM : Numerical representation of IP address.
|
68 |
-
# Example: (from Right to Left)
|
69 |
-
# 1.2.3.4 = 4 + (3 * 256) + (2 * 256 * 256) + (1 * 256 * 256 * 256)
|
70 |
-
# is 4 + 768 + 13,1072 + 16,777,216 = 16,909,060
|
71 |
-
#
|
72 |
-
# REGISTRY : apcnic, arin, lacnic, ripencc and afrinic
|
73 |
-
# Also included as of April 22, 2005 are the IANA IETF Reserved
|
74 |
-
# address numbers. These are important since any source claiming
|
75 |
-
# to be from one of these IP's must be spoofed.
|
76 |
-
#
|
77 |
-
# ASSIGNED : The date this IP or block was assigned. (In Epoch seconds)
|
78 |
-
# NOTE: Where the allocation or assignment has been transferred from
|
79 |
-
# one registry to another, the date represents the date of first
|
80 |
-
# assignment or allocation as received in from the original RIR.
|
81 |
-
# It is noted that where records do not show a date of first
|
82 |
-
# assignment, the date is given as "0".
|
83 |
-
#
|
84 |
-
# CTRY : 2 character international country code
|
85 |
-
# NOTE: ISO 3166 2-letter code of the organisation to which the
|
86 |
-
# allocation or assignment was made, and the enumerated variances of:
|
87 |
-
# AP - non-specific Asia-Pacific location
|
88 |
-
# CS - Serbia and Montenegro (Formally Czechoslovakia)
|
89 |
-
# YU - Serbia and Montenegro (Formally Yugoslavia) (Being phased out)
|
90 |
-
# EU - non-specific European Union location
|
91 |
-
# FX - France, Metropolitan
|
92 |
-
# PS - Palestinian Territory, Occupied
|
93 |
-
# UK - United Kingdom (standard says GB)
|
94 |
-
# * ZZ - IETF RESERVED address space.
|
95 |
-
#
|
96 |
-
# These values are not defined in ISO 3166 but are widely used.
|
97 |
-
# * IANA Reserved Address space
|
98 |
-
#
|
99 |
-
# CNTRY : Country Abbreviation. Usually 3 Character representation
|
100 |
-
#
|
101 |
-
# COUNTRY : Country Name. Full Country Name.
|
102 |
-
#
|
103 |
-
# Countries falling under AFRINIC now show correctly (June 27, 2005)
|
104 |
-
# ------------------------------------------------------------------------------
|
105 |
-
# THIS DATABSE IS PROVIDED WITHOUT ANY WARRANTY WHATSOEVER. USE ENTIRELY AT YOUR
|
106 |
-
# OWN RISK. NO LIABILITY WHATSOEVER, OF ANY NATURE, WILL BE ASSUMEND BY
|
107 |
-
# Webnet77.com, IT'S DISTRIBUTORS, RESELLERS OR AGENTS. SHOULD THE DATABASE
|
108 |
-
# PROVE TO BE FAULTY, CAUSE YOU LOSS OR OTHER FINANCIAL DAMAGE, YOU AGREE YOU
|
109 |
-
# HAVE NO CLAIM AGINST Webnet77.com IT'S DISTRIBUTORS, RESELLERS OR AGENTS. IF
|
110 |
-
# YOU DO NOT ACCEPT THESE TERMS YOU MAY NOT USE THIS DATABASE.
|
111 |
-
# ------------------------------------------------------------------------------
|
112 |
-
#
|
113 |
-
# � 2002-12:08:03 Webnet77.com
|
114 |
-
#
|
115 |
-
#
|
116 |
-
#
|
117 |
-
#
|
118 |
-
|
119 |
-
*/
|
120 |
-
|
121 |
-
|
122 |
-
/* usage:
|
123 |
-
|
124 |
-
$cCode = getCountryFromIP($ip); // returns country code by default
|
125 |
-
$cCode = getCountryFromIP($ip, "code"); // you can specify code - optional
|
126 |
-
$cAbbr = getCountryFromIP($ip, "AbBr"); // returns country abbreviation - case insensitive
|
127 |
-
$cName = getCountryFromIP($ip, " NamE "); // full name of country - spaces are trimmed
|
128 |
-
|
129 |
-
$ip must be of the form "192.168.1.100"
|
130 |
-
$type can be "code", "abbr", "name", or omitted
|
131 |
-
|
132 |
-
ip cacheing:
|
133 |
-
|
134 |
-
this function has a simple cache that works pretty well when you are calling
|
135 |
-
getCountryFromIP thousands of times in the same script and IPs are repeated e.g.
|
136 |
-
while parsing access logs. Without caching, each IP would be searched everytime
|
137 |
-
you called this function. The only time caching would slow down performance
|
138 |
-
is if you have 100k+ unique IP addresses. But then you should use a dedicated
|
139 |
-
box for GeoLocation anyway and of course feel free to optimize this script.
|
140 |
-
*/
|
141 |
-
|
142 |
-
function getCountryFromIP($ip, $type = "code")
|
143 |
-
{
|
144 |
-
global $geoipaddrfrom, $geoipaddrupto;
|
145 |
-
global $geoipctry, $geoipcntry, $geoipcountry;
|
146 |
-
global $geoipcount, $geoipcache;
|
147 |
-
|
148 |
-
if(strpos($ip, ".") === false)
|
149 |
-
return "";
|
150 |
-
|
151 |
-
$ip = substr("0000000000" . sprintf("%u", ip2long($ip)), -10);
|
152 |
-
$ipn = base64_encode($ip);
|
153 |
-
|
154 |
-
if(isset($geoipcache[$ipn])) // search in cache
|
155 |
-
{
|
156 |
-
$ct = $geoipcache[$ipn];
|
157 |
-
}
|
158 |
-
else // search in IP Address array
|
159 |
-
{
|
160 |
-
$from = 0;
|
161 |
-
$upto = $geoipcount;
|
162 |
-
$ct = "ZZ"; // default: Reserved or Not Found
|
163 |
-
|
164 |
-
// simple binary search within the array for given text-string within IP range
|
165 |
-
while($upto > $from)
|
166 |
-
{
|
167 |
-
$idx = $from + intval(($upto - $from)/2);
|
168 |
-
$loip = substr("0000000000" . $geoipaddrfrom[$idx], -10);
|
169 |
-
$hiip = substr("0000000000" . $geoipaddrupto[$idx], -10);
|
170 |
-
|
171 |
-
if($loip <= $ip && $hiip >= $ip)
|
172 |
-
{
|
173 |
-
$ct = $geoipctry[$idx];
|
174 |
-
break;
|
175 |
-
}
|
176 |
-
else if($loip > $ip)
|
177 |
-
{
|
178 |
-
if($upto == $idx)
|
179 |
-
break;
|
180 |
-
$upto = $idx;
|
181 |
-
}
|
182 |
-
else if($hiip < $ip)
|
183 |
-
{
|
184 |
-
if($from == $idx)
|
185 |
-
break;
|
186 |
-
$from = $idx;
|
187 |
-
}
|
188 |
-
}
|
189 |
-
|
190 |
-
// cache the country code
|
191 |
-
$geoipcache[$ipn] = $ct;
|
192 |
-
}
|
193 |
-
|
194 |
-
$type = trim(strtolower($type));
|
195 |
-
|
196 |
-
if($type == "abbr")
|
197 |
-
$ct = $geoipcntry[$ct];
|
198 |
-
else if($type == "name")
|
199 |
-
$ct = $geoipcountry[$ct];
|
200 |
-
|
201 |
-
return $ct;
|
202 |
-
}
|
203 |
-
|
204 |
-
$GLOBALS['geoipaddrfrom'] = array('0','16777216','16777472','16778240','16779264','16781312','16785408','16793600','16809984','16842752','16843008','16843264','16859136','16875520','16908288','16909056','16909312','16941056','16973824','17039360','17039616','17072128','17104896','17170432','17301504','17367040','17432576','17435136','17435392','17465344','17498112','17563648','17825792','18087936','18153472','18219008','18350080','18874368','18907136','18923520','18939904','19005440','19136512','19202048','19267584','19398656','19726336','19791872','19922944','20185088','20447232','20971520','21102592','21233664','21495808','22020096','23068672','24117248','24379392','24641536','27262976','28311552','28442624','28540928',
|
205 |
-
'28573696','28966912','29097984','29884416','29949952','30015488','30408704','33554432','34603008','35127296','35651584','36700160','36962304','37486592','37748736','38273024','38797312','39059456','39321600','39583744','39845888','40370176','40894464','41418752','41943040','42205184','42467328','42991616','43253760','43515904','43778048','44040192','45088768','46137344','46661632','47710208','48234496','49283072','49807360','50331648','83886080','83951616','83959808','83961856','83963904','83965952','83968000','83976192','83978240','83980288','83982336','84017152','84021248','84023296','84025344','84033536','84037632','84039680','84041728','84049920','84082688','84148224','84410368','84434944','84443136','84451328','84457472','84459520','84471808','84475904','84545536','84549632','84551680','84557824','84574208','84576256','84582400','84590592','84592640','84594688','84598784','84600832','84602880','84606976','84609024','84615168','84617216','84619264','84621312','84623360','84627456','84631552','84639744','84672512','84934656','85196800','85262336','85327872','85360640','85362688','85364736','85366784','85368832','85377024','85385216','85387264','85389312','85391360','85393408','85401600','85403648','85405696','85407744','85409792','85417984','85422080','85424128','85426176','85458944','85721088','85723136','85725184','85729280','85731328','85733376','85737472','85753856','85770240','85786624','85852160','86016000','86018048','86020096','86022144','86024192','86026240','86028288','86030336','86032384','86048768','86114304','86147072','86155264','86157312','86159360','86161408','86163456','86171648','86173696','86175744','86177792','86179840','86224896','86226944','86228992','86231040','86233088','86235136','86237184','86245376','86376448','86409216','86441984','86474752','86482944','86484992','86487040','86489088','86491136','86493184','86495232','86497280','86499328','86503424','86505472','86507520',
|
206 |
-
'86573056','86638592','86671360','86673408','86675456','86677504','86687744','86695936','86704128','86720512','86736896','86745088','86753280','86761472','86763520','86765568','86767616','86769664','86773760','86777856','86779904','86786048','86788096','86790144','86794240','86798336','86802432','86804480','86806528','86810624','86812672','86814720','86816768','86818816','86822912','86824960','86827008','86831104','86833152','86835200','86837248','86839296','86847488','86849536','86851584','86859776','86863872','86867968','86872064','86874112','86876160','86880256','86882304','86884352','86900736','87031808','87293952','87359488','87361536','87363584','87367680','87375872','87384064','87386112','87388160','87390208','87392256','87425024','87556096','87558144','87560192','87562240','87564288','87566336','87568384','87570432','87572480','87588864','87590912','87592960','87597056','87599104','87601152','87621632','87623680','87625728','87627776','87629824','87631872','87633920','87635968','87638016','87640064','87642112','87646208',
|
207 |
-
'87654400','87670784','87672832','87674880','87676928','87678976','87681024','87683072','87685120','87687168','87752704','87818240','87883776','87885824','87889920','87891968','87900160','87902208','87904256','87906304','87908352','87912448','87914496','87916544','87932928','87934976','87939072','87941120','87943168','87945216','87947264','87949312','87965696','87967744','87969792','87973888','87982080','88014848','88016896','88018944','88020992','88023040','88031232','88047616','88049664','88051712','88053760','88055808','88057856','88059904','88061952','88064000','88080384','88604672','88866816','88932352','88940544','88948736','88965120','88997888','89063424','89079808','89096192','89128960','89260032','89325568','89327616','89329664','89331712','89333760','89337856','89339904','89341952','89350144','89352192','89354240','89356288','89358336','89374720','89382912','89384960','89387008','89391104','90439680','90456064','90472448','90476544','90478592','90480640','90482688','90484736','90488832','90497024','90499072','90503168','90505216','90529792','90533888','90537984','90540032','90544128','90546176','90548224','90550272','90554368','90570752','90578944','90583040','90587136','90589184','90591232','90595328','90603520','90605568','90607616','90609664','90611712','90613760','90615808','90617856','90619904','90636288','90701824','90705920','90707968','90710016','90718208','90720256','90722304','90724352','90726400','90728448','90730496','90734592','90736640','90738688','90740736','90742784','90750976','90753024','90755072','90757120','90759168','90761216','90763264','90765312','90767360','90832896','90898432','90963968','91226112','92274688','92536832','92569600','92585984','92602368','92604416','92606464','92608512','92610560','92612608','92614656','92635136','92643328','92645376','92651520','92659712','92663808','92665856','92667904','92669952','92672000','92674048','92676096','92680192','92684288','92688384','92690432','92692480','92694528','92696576','92698624','92700672','92717056','92719104','92721152','92723200','92725248','92733440',
|
208 |
-
'92798976','93323264','93335552','93339648','93343744','93347840','93356032','93358080','93360128','93362176','93364224','93368320','93370368','93372416','93388800','93415424','93417472','93419520','93421568','93425664','93427712','93429760','93431808','93433856','93437952','93454336','93585408','93626368','93634560','93650944','93652992','93655040','93667328','93675520','93679616','93681664','93683712','93685760','93687808','93689856','93691904','93693952','93696000','93700096','93702144','93704192','93708288','93712384','93714432','93749248','93753344','93755392','93765632','93782016','93847552','93880320','93888512','93890560','93892608','93894656','93896704','93904896','93906944','93908992','93911040','93913088','93929472','93939712','93941760','93945856','93962240','93972480','93974528','93976576','93978624','94011392','94019584','94027776','94035968','94109696','94175232','94191616','94193664',
|
209 |
-
'94195712','94199808','94208000','94240768','94257152','94261248','94263296','94265344','94273536','94289920','94291968','94294016','94296064','94298112','94300160','94302208','94306304','94308352','94310400','94312448','94314496','94316544','94318592','94320640','94330880','94337024','94339072','94355456','94357504','94361600','94363648','94365696','94367744','94369792','94371840','94502912','94568448','94633984','94896128','95158272','95166464','95168512','95170560','95174656','95191040','95195136','95197184','95203328','95205376','95207424','95211520','95213568','95215616','95354880','95363072','95365120','95367168','95369216','95371264','95375360','95377408','95387648','95420416','95551488','95555584','95557632','95559680','95561728','95563776','95567872','95569920','95571968','95574016','95576064','95580160','95582208','95584256','95617024','95625216','95635456','95637504','95641600','95645696','95647744','95649792','95666176','95668224','95944704','96075776','96141312','96143360','96145408','96149504','96151552','96153600','96155648','96157696','96165888','96174080','96206848','96305152','96321536','96337920','96403456','96468992','96731136','96796672','96862208','96894976','96897024','96899072','96903168','96911360','96919552','96923648','96925696','96927744','96960512','96964608','96968704','96972800','96976896','96985088','96987136','96989184','96993280','97001472','97009664','97058816','97091584','97189888','97255424','97320960','97386496','97419264','97435648','97437696','97439744','97443840','97445888','97447936','97452032','97517568','98566144','98697216','98701312','98705408','98707456','98709504','98711552','98713600','98732032','98734080','98736128','98738176','98740224','98742272','98744320','98746368','98762752','98893824','98959360','99090432','99614720','99876864',
|
210 |
-
'100139008','100204544','100237312','100245504','100247552','100249600','100253696','100261888','100270080','100302848','100311040','100313088','100315136','100319232','100327424','100329472','100331520','100335616','100532224','100564992','100573184','100575232','100577280','100579328','100581376','100589568','100597760','100614144','100630528','100632576','100634624','100636672','100638720','100646912','100663296','167772160','184549376','234881024','234883072','234884096','234885120','234889216','234913792','234946560','234947584','234950656','234951680','234954752','234979328','235012096','235077632','235143168','235405312','235929600','236978176','241172480','241434624','241500160','241565696','241598464','241599488','241600512','241602560','241604608','241605632','241614848','241623040','241627136','241631232','243269632','243270656','243271680','243272704','243273728','243277824','243286016','243302400','243400704','243531776',
|
211 |
-
'243662848','243793920','243859456','243916800','243924992','243990528','244318208','245366784','247472128','247479296','247480320','247482368','247483392','247484416','247488512','247496704','247504896','247513088','247529472','247595008','247726080','247857152','247988224','248250368','248381440','248446976','248512512','249561088','251658240','386924544','387055616','387825664','387833856','391872512','391888896','391897088','391905280','391938048','391946240','394264576','394264832','394270720','394271232','394296320','394296832','398458880','400715776','400719872','400760832','400769024','400805888','400809984','401145856','401211392','401293312','401297408','401342464','401346560','401547264','401555456','402128896','402169856','402223104','402227200','402243584','402247680','402366464','402374656','402399232','402403328','402415616','402419712','402448384','402452480','405012480','405143552','405180416','405184512','405364736','405372928','405422080','405798912','405831680','405843968','405848064','405864448','405921792','405929984','405938176','405962752','405970944','405979136','405995520','406003712','406011904','406028288','406052864','406061056','406110208','406142976','406147072','406159360','406175744','406216704','406241280','406257664','406274048','406290432','406298624','406306816','406323200','406388736','406454272','406847488','407408640','407613440','407617536','407633920','408420352','408502272','408518656','408535040','408551424','408719360','408723456','409255936','409272320','409337856','409354240','409509888','409518080','409550848','409567232','409731072','409862144','410124288','410189824','410648576','410714112','411156480','411160576','411164672','411168768','411303936','411369472','411435008','411500544','411566080','411639808','411664384','411680768','411688960','411697152','411746304','411762688','411770880','411779072','411828224','411885568','411975680','411979776','411983872','412057600','412073984','412221440','412254208','412483584','412549120','412647424','412680192','412688384','412704768','412708864','412909568','412942336','412946432','412950528','412958720','413007872','413908992','413925376','415760384','416022528','416059392','416088064','416153600','416161792','416219136','416251904','416546816','416612352','416628736','416636928','416743424','416776192','417202176','417267712','417366016','417398784','417431552','417529856','417538048','417726464','417734656','417775616','417796096','417800192','417808384','417816576','417820672','417857536','417923072','418062336','418070528','418078720','418119680','418316288',
|
212 |
-
'418320384','418643968','418668544','418672640','418676736','418693120','418709504','418766848','418770944','418775040','418799616','419430400','436207616','452984832','452985856','452986880','452987904','452988928','452997120','453001216','453009408','453050368','453115904','453246976','453509120','455081984','455213056','455245824','455258112','455262208','455270400','455272448','455274496','455278592','455344128','456130560','456261632','456262656','456263680','456264704','456265728','456269824','456271872','456273920','456286208','456294400','456327168','456523776','456540160','456542208','456544256','456548352','456554496','456555520','456556544','456562688','456564736','456572928','456589312','456654848','457179136','458227712','459282432',
|
213 |
-
'459284480','459292672','459293696','459297792','459300864','459309056','459325440','459333632','459341824','459407360','459456512','459460608','459472896','459505664','459538432','459540480','459541504','459542528','459545600','459548672','459550720','459554816','459571200','459735040','459800576','459866112','459931648','459964416','459980800','459983872','459984896','459986944','459988992','459997184','460062720','460128256','460136448','460144640','460152832','460154880','460155904','460156928','460158976','460161024','460193792','460210176','460214272','460218368','460224512','460226560','460259328','460261376','460262400','460263424','460267520','460275712','460278784','460279808','460283904','460292096','460300288','460312576','460320768','460324864','460341248','460343296','460344320','460345344','460349440','460351488','460356608','460357632','460423168','460439552','460451840','460453888','460454912','460455936','460488704','460505088','460521472','460554240',
|
214 |
-
'460587008','460591104','460593152','460595200','460596224','460598272','460599296','460601344','460602368','460603392','460718080','460722176','460726272','460734464','460865536','460931072','460933120','460935168','460937216','460938240','460939264','460940288','460941312','460942336','460943360','460945408','460947456','460980224','460981248','460983296','460984320','460988416','460994560','460996608','461008896','461012992','461045760','461047808','461049856','461050880','461051904','461053952','461062144','461078528','461094912','461099008','461100032','461101056','461102080','461103104','461111296','461127680','461131776','461135872','461144064','461209600','461225984','461227008','461228032','461229056','461230080','461234176','461242368','461258752','461279232','461281280','461282304','461283328','461287424','461307904','461357056','461369344','461373440',
|
215 |
-
'461504512','461570048','461572096','461573120','461574144','461578240','461586432','461602816','461619200','461623296','461625344','461626368','461627392','461633536','461635584','462422016','462487552','462553088','462618624','462635008','462651392','462684160','463470592','465043456','467927040','468189184','468713472','469237760','469499904','469565440','469598208','469630976','469696512','469712896','469729280','469762048','520093696','520257536','520290304','520292352','520294400','520296448','520298496','520306688','520308736','520310784','520312832','520314880','520318976','520323072','520325120','520327168','520329216','520331264','520339456','520343552','520355840','520421376','520486912','520503296','520505344','520507392','520511488','520519680',
|
216 |
-
'520552448','520554496','520556544','520560640','520562688','520564736','520566784','520568832','520589312','520593408','520595456','520597504','520601600','520609792','520613888','520615936','520617984','520683520','520749056','520753152','520757248','520761344','520763392','520765440','520781824','520822784','520824832','520826880','520828928','520830976','520847360','520880128','520882176','520884224','520888320','520896512','520898560','520912896','520945664','520947712','520949760','520951808','520953856','520962048','520978432','520980480','520982528','520984576','520986624','520988672','520990720','520994816','521011200','521014016','521014272','521019392','521019648','521022464','521022720','521023488','521023744','521027840','521028608','521029632','521031680','521035776','521039872','521043968','521048064','521052160','521054208','521056256','521057280','521058304','521060352','521064448','521066496','521072640','521074688','521076736','521078784','521080832','521082880','521084928','521093120','521095168','521097216','521101312','521103360','521105408','521107456','521109504','521142272','521404416','521535488','521539584','521541632','521543680','521545728','521547776','521551872','521553920','521555968','521558016','521560064','521562112','521564160','521566208','521568256','521601024','521666560','521668608','521670656','521672704','521674752','521676800','521678848','521680896','521682944','521687040','521689088','521691136','521693184','521695232','521697280','521699328','521701376','521703424','521705472','521707520','521709568','521711616','521713664','521715712','521717760','521719808','521721856','521723904','521725952','521728000','521732096','521736192','521738240','521740288','521742336','521746432','521748480','521750528','521752576','521754624','521756672','521758720','521760768','521762816','521764864','521766912','521768960','521771008','521773056','521775104','521777152','521779200','521783296','521785344','521787392','521789440',
|
217 |
-
'521791488','521793536','521795584','521797632','521928704','521945088','521953280','521961472','521969664','521977856','521986048','521994240','522002432','522010624','522018816','522027008','522059776','522125312','522133504','522135552','522137600','522141696','522143744','522145792','522147840','522149888','522158080','522166272','522168320','522170368','522174464','522178560','522180608','522182656','522190848','522715136','522717184','522719232','522721280','522741760','522743808','522747904','522780672','522782720','522784768','522786816','522788864','522792960','522795008','522797056','522801152','522803200','522805248','522807296','522811392','522813440','522815488','522819584','522821632','522823680','522827776','522831872','522833920','522835968','522838016','522840064','522842112','522846208','522854400','522858496','522866688','522870784','522874880','522878976','522887168','522895360','522911744','522960896','522969088','522977280','522981376',
|
218 |
-
'522985472','522989568','522993664','522997760','523001856','523005952','523010048','523014144','523018240','523022336','523026432','523030528','523034624','523038720','523042816','523075584','523108352','523173888','523182080','523190272','523192320','523194368','523196416','523198464','523202560','523223040','523225088','523227136','523229184','523231232','523239424','523763712','524025856','524288000','528482304','528490496','528498688','528515072','528523264','528531456','528539648','528547840','528564224','528580608','528588800','528596992','528605184','528613376','528637952','528642048','528654336','528656384','528658432','528662528','528664576','528666624','528668672','528670720','528674816','528676864','528678912','528680960','528683008','528689152','528691200','528695296','528699392','528703488','528715776','528719872','528721920','528723968','528726016','528736256','528740352','528742400','528744448','528748544','528760832','528762880','528764928','528769024','528793600','528795648','528797696','528809984','528812032','528814080','528816128','528818176','528836608','528838656','528840704','528842752','528859136','528861184','528863232','528867328','528887808','528891904','528900096','528902144','528908288','528926720','528928768','528930816','528932864','528941056','528943104','528945152','528949248','528973824','528982016','528986112','528988160','528990208','528994304','528996352','528998400','529002496','529006592','529268736','529530880','529596416','529661952','529727488','529793024','529858560','529924096','529989632','530055168','530120704','530186240','530251776','530317312','530579456','530710528','530841600','530972672','531103744','531169280','531177472','531179520','531181568','531183616','531185664','531193856','531195904','531197952','531200000','531202048','531234816','531236864','531238912','531240960','531243008','531245056','531247104','531251200','531259392','531261440','531263488','531265536','531267584','531275776','531277824','531279872','531281920',
|
219 |
-
'531283968','531292160','531333120','531335168','531337216','531339264','531341312','531349504','531351552','531355648','531357696','531361792','531365888','531398656','531400704','531402752','531404800','531406848','531410944','531415040','531425280','531427328','531431424','531496960','531628032','531660800','531693568','531695616','531697664','531699712','531701760','531703808','531705856','531707904','531709952','531718144','531720192','531722240','531724288','531726336','531759104','531890176','532021248','532152320','532168704','532185088','532201472','532221952','532224000','532226048','532234240','532242432','532244480','532246528','532250624','532283392','532291584','532293632','532295680','532297728','532303872','532305920','532307968','532310016','532312064','532314112','532316160','532324352','532328448','532330496','532332544','532340736','532348928','532365312','532372480','532373504','532375552','532377600','532381696','532414464','532676608','532692992','532701184','532703232','532705280','532709376','532725760',
|
220 |
-
'532729856','532731904','532733952','532736000','532738048','532740096','532742144','532746240','532750336','532752384','532754432','532756480','532758528','532762624','532766720','532768768','532770816','532772864','532774912','532779008','532783104','532785152','532787200','532789248','532791296','532793344','532795392','532797440','532799488','532801536','532803584','532805632','532807680','533200896','533233664','533250048','533254144','533256192','533262336','533264384','533266432','533331968','533397504','533463040','533479424','533481472','533483520','533485568','533487616','533491712','533495808','533504000','533512192','533528576','533594112','533659648','533676032','533680128','533682176','533684224','533692416','533725184','533807104','533811200','533815296','533819392','533823488','533825536','533831680','533835776','533837824','533839872','533856256','533858304','533862400','533864448','533889024','533891072','533893120','533895168','533897216','533899264','533901312','533905408','533913600','533915648','533919744','533921792','533954560','533962752','533964800','533966848','533968896','533970944',
|
221 |
-
'533987328','534118400','534151168','534163456','534167552','534183936','534249472','534253568','534257664','534259712','534261760','534263808','534265856','534282240','534284288','534286336','534288384','534290432','534296576','534298624','534306816','534308864','534310912','534315008','534347776','534355968','534364160','534366208','534368256','534370304','534372352','534374400','534376448','534380544','534511616','534515712','534517760','534530048','534538240','534540288','534544384','534546432','534548480','534550528','534560768','534609920','534642688','534646784','534648832','534650880','534652928','534654976','534663168','534675456','534691840','534693888','534700032','534708224','534740992','534749184','534753280','534757376','534761472','534765568','534767616','534769664','534773760',
|
222 |
-
'536870912','603979776','603980800','603981824','604110848','604241920','604504064','605028352','606412800','606413824','606414336','606414592','606420992','606437376','606470144','606601216','607322112','607387648','607649792','608174080','610271232','618659840','619708416','620232704','620494848','620625920','620756992','620759040','620763136','620765184','620773376','620775424','620777472','620781568','620783616','620785664','620787712','620789760','620822528','620845056','620849152','620851200','620855296','620859392','620861440','620863488','620865536','620867584','620869632','620871680','620879872','620881920','620888064','621019136','621150208','621215744','621281280','621314048','621318144','621322240','621330432','621346816','621361152','621363200','621381632','621383680','621387776','621389824','621391872','621393920','621395968','621398016','621400064','621402112','621404160','621408256','621410304','621412352','621428736','621430784','621432832','621436928','621445120','621805568','621813760','621821952','621824000','621826048','621830144','621838336','621871104','621903872','621912064','621916160','621918208','621920256','621924352','621928448','621932544','621934592','621936640','621971456','621973504','621975552','621977600','621981696','621983744','621985792','621993984','621998080','622000128','622004224','622006272','622008320','622010368','622018560','622020608','622022656','622026752','622028800','622030848','622034944','622067712','622329856','622395392','622405632','622406656','622407680','622409728','622411776','622413824','622415872','622417920','622419968','622428160','622460928','622477312','622479360','622481408','622483456','622485504','622487552','622489600','622493696','622497792','622499840','622501888','622503936','622505984',
|
223 |
-
'622510080','622512128','622514176','622518272','622520320','622522368','622524416','622526464','622592000','622624768','622626816','622630912','622632960','622641152','622657536','622690304','622723072','622854144','622866432','622868480','622870528','622874624','622880768','622882816','622886912','622919680','622985216','622993408','622997504','623001600','623003648','623005696','623009792','623017984','623050752','623052800','623054848','623058944','623067136','623069184','623071232','623073280','623075328','623077376','623083520','623116288','623378432','623509504','623640576','623642624','623644672','623648768','623650816','623652864','623654912','623656960','623673344','623689728','623706112','623771648','623775744','623777792','623779840','623783936','623788032','623790080','623792128','623794176','623796224','623798272','623800320','623804416','623806464','623810560','623812608','623820800','623822848','623824896','623826944','623837184','623902720','623919104','623935488','623960064','623962112','623964160','623966208','623968256','624001024',
|
224 |
-
'624005120','624007168','624009216','624025600','624027648','624029696','624033792','624164864','624427008','624492544','624558080','624562176','624564224','624566272','624568320','624570368','624574464','624590848','624689152','624691200','624693248','624695296','624697344','624699392','624701440','624705536','624721920','624723968','624726016','624728064','624730112','624732160','624734208','624736256','624738304','624740352','624742400','624746496','624754688','624787456','624791552','624795648','624799744','624801792','624803840','624812032','624814080','624816128','624818176','624820224','624885760','624918528','624951296','625475584','625483776','625485824','625487872','625491968','625500160','625504256','625506304','625508352','625512448','625514496','625516544','625518592','625520640','625522688','625524736','625541120','625606656','625672192','625674240','625676288','625680384','625688576','625704960','625707008','625709056','625711104','625713152','625721344','625725440','625727488','625729536','625731584','625733632','625735680','625737728','625770496','625786880','625795072','625803264','625811456','625815552','625817600','625819648',
|
225 |
-
'625823744','625827840','625829888','625831936','625836032','625838080','625840128','625842176','625844224','625846272','625848320','625854464','625856512','625860608','625868800','625999872','627048448','627130368','627142656','627145728','627146752','627179520','627212288','627216384','627218432','627220480','627228672','627230720','627232768','627236864','627238912','627240960','627245056','627277824','627294208','627296256','627298304','627300352','627302400','627572736','627834880','627965952','628006912','628015104','628017152','628019200','628021248','628023296','628029440','628031488','628097024','628230144','628232192','628236288','628244480','628246528','628248576','628250624','628252672','628260864','628277248','628293632','628359168','628621312','628654080','628662272','628670464','628686848','628752384','628785152','628787200','628789248','628791296','628793344','628801536','628803584','628805632','628809728','628813824','628815872','628817920','628834304','628842496','628844544','628846592','628848640','628850688','628867072','628869120','628871168',
|
226 |
-
'628873216','628875264','628877312','628879360','628881408','628883456','629145600','629178368','629180416','629182464','629184512','629188608','629190656','629192704','629194752','629196800','629198848','629202944','629207040','629276672','629293056','629309440','629313536','629315584','629317632','629325824','629327872','629329920','629331968','629334016','629338112','629340160','629342208','629374976','629387264','629389312','629391360','629399552','629401600','629405696','629407744','629669888','629735424','629800960','629866496','629874688','629882880','629884928','629886976','629889024','629891072','629895168','629897216','629901312','629903360','629905408','629907456','629915648','629983232','629985280','629987328','629989376','629991424','629993472','629997568','630063104','630128640','630130688','630136832','630138880','630145024','630147072','630149120','630151168','630153216','630157312','630159360','630161408','630163456','630165504','630167552','630169600','630173696','630177792','630194176','630456320','630489088','630491136','630493184','630495232',
|
227 |
-
'630497280','630499328','630501376','630503424','630509568','630511616','630513664','630515712','630517760','630521856','630587392','630718464','630720512','630722560','630726656','630732800','630734848','630736896','630738944','630743040','630751232','630759424','630767616','630784000','630802432','630804480','630806528','630808576','630816768','630818304','630818560','630819328','630819840','630820864','630822912','630824960','630827008','630828032','630828544','630829056','630833152','630849536','630980608','630981632','630982144','630982400','630982656','630984704','630988800','630990336','630990848','630992896','630996992','630997504','631005184','631006208','631007232','631009280','631017472','631018496','631019520','631023616','631024640','631024896','631025152','631029760','631033856','631034880','631035904','631037952','631040000','631043072','631044096','631045120','631046144',
|
228 |
-
'631048192','631050240','631054336','631056384','631058432','631060480','631062528','631078912','631080960','631083008','631085056','631087104','631095296','631097344','631099392','631103488','631105536','631107584','631109632','631111680','631177216','631242752','632291328','632815616','632946688','632963072','632979456','633012224','633077760','633094144','633098240','633100288','633102336','633110528','633143296','633208832','633241600','633274368','633290752','633298944','633307136','633339904','633602048','633864192','633880576','633884672','633886720','633888768','633890816','633892864','633894912','633896960','633929728','633997312','633999360','634001408','634003456','634007552','634009600','634011648','634028032','634060800','634068992','634071040','634073088','634075136','634077184','634093568','634109952','634112000','634114048','634116096','634118144','634122240','634124288','634126336','634191872','634193920','634195968','634198016','634200064','634202112','634204160','634206208','634208256','634216448','634220544','634222592','634224640','634388480','634396672','634398720','634400768','634402816','634404864',
|
229 |
-
'634408960','634411008','634413056','634415104','634417152','634419200','634421248','634454016','634486784','634494976','634497024','634499072','634503168','634505216','634507264','634511360','634517504','634519552','634650624','634912768','635043840','635076608','635092992','635097088','635101184','635103232','635105280','635107328','635109376','635174912','635183104','635185152','635187200','635191296','635195392','635197440','635203584','635207680','635211776','635213824','635217920','635219968','635224064','635240448','635273216','635281408','635285504','635287552','635289600','635291648','635293696','635295744','635297792','635299840','635301888','635305984','635437056','635502592','635568128','635699200','635715584','635717632','635719680','635723776','635725824','635727872','635729920','635748352','635764736','635830272','635842560','635846656','635854848','635856896','635858944','635860992','635863040','635895808','635961344','635994112','636026880','636043264','636047360','636049408','636051456','636055552','636057600','636059648',
|
230 |
-
'636092416','636157952','636160000','636162048','636166144','636168192','636170240','636174336','636176384','636178432','636180480','636182528','636186624','636188672','636190720','636223488','636485632','636747776','636780544','636813312','636878848','636944384','636952576','636956672','636958720','636960768','636968960','636975104','636977152','637140992','637206528','637239296','637272064','637276160','637278208','637288448','637296640','637298688','637300736','637302784','637304832','637313024','637317120','637319168','637321216','637323264','637325312','637329408','637337600','637403136','637534208','654311424','654311680','654311936','654376960','654442496','654573568','654835712','655360000','656408576','658505728','661454848','661487616','661520384','661651456','662700032','666894336','671088640','687865856','689963008','691011584','691617792','691621888','691625984','691630080','691631104','691632128','691633152','691634176','691650560','691666944',
|
231 |
-
'691732480','691798016','691863552','691994624','692011008','692027392','692035584','692043776','692060160','692191232','692207616','692240384','692256768','692273152','692289536','692305920','692322304','692453376','692486144','692518912','692551680','692584448','692600832','692609024','692617216','692625408','692633600','692641792','692658176','692666368','692674560','692682752','692690944','692707328','692715520','692719616','692723712','692727808','692731904','692736000','692744192','692748288','692752384','692756480','692760576','692768768','692772864','692776960','692781056','692789248','692793344','692797440','692801536','692805632','692809728','692813824','692817920','692822016','692826112','692830208','692834304','692838400','692842496','692846592','692848640','692850688','692852736','692854784','692856832','692860928','692862976','692869120','692871168','692877312','692879360','692881408','692883456','692885504','692889600','692891648','692893696','692895744','692897792','692908032','692910080','692912128','692914176','692916224','692918272','692920320',
|
232 |
-
'692922368','692924416','692928512','692930560','692932608','692934656','692936704','692940800','692942848','692944896','692946944','692948992','692951040','692955136','692957184','692959232','692961280','692963328','692965376','692968448','692969472','692971520','692973568','692977664','692978688','692979712','692981760','692982784','692983808','692984832','692987904','692989952','692992000','692993024','692994048','692996096','692997120','692998144','692999168','693000192','693001216','693002240','693003264','693004288','693005312','693006336','693007360','693008384','693009408','693010432','693012480','693013504','693014528','693015552','693016576','693017600','693019648','693020672','693021696','693022720','693024768','693026816','693028864','693029888','693030912','693031936','693032960','693033984','693035008','693036032','693039104','693040128','693041152','693042176','693044224','693045248','693046272','693047296','693049344','693050368','693051392','693052416','693054464','693055488','693056512','693057536','693058560','693059584','693060608','693061632','693065728','693066752','693067776','693068800','693069824','693071872','693072896','693073920','693074944','693075968','693076992','693078016','693080064','693081088','693082112','693083136','693086208','693087232','693088256','693089280','693090304','693091328','693092352','693093376','693094400','693095424','693096448','693097472','693098496','693099520','693100544','693101568','693102592','693103616','693104640','693105664','693106688','693107712','693239808','693370880','693403648','693411840','693420032','693428224','693436416','693477376','693485568','693493760','693501952','693510144','693518336','693534720','693542912','693551104','693559296','693567488','693583872','693592064','693600256','693608448','693616640','693633024','693698560','693829632','693895168','693927936','693960704','693993472','694026240','694091776','694157312','695205888','696254464','696516608','696778752','696844288','696909824','696918016','696926208','696928256','696930304','696932352','696933376','696934400','696942592','696950784','696958976','696963072','696967168','696971264',
|
233 |
-
'696975360','696991744','697008128','697040896','697303040','697827328','697958400','698023936','698056704','698089472','698220544','698351616','699400192','699465728','699531264','699662336','699793408','699858944','699924480','699990016','700055552','700121088','700186624','700203008','700219392','700235776','700252160','700260352','700268544','700293120','700301312','700309504','700317696','700325888','700334080','700335104','700336128','700337152','700338176','700339200','700340224','700341248','700342272','700350464','700358656','700366848','700375040','700376064','700377088','700378112','700380160','700381184','700382208','700383232','700400640','700401664','700402688','700403712','700404736','700405760','700407808','700408832','700409856','700412928','700413952','700414976','700432384','700434432','700436480','700437504','700438528','700439552','700440576','700442624','700444672','700446720','700447744','700448768','700710912','700776448','700841984','700907520','700973056','701104128','701112320','701120512','701145088','701153280','701161472','701169664','701186048','701202432','701210624','701214720','701218816','701222912','701227008','701231104','701235200','701243392','701251584','701259776','701267968','701276160','701284352','701292544','701300736','701308928','701317120','701325312','701333504','701341696','701349888','701358080','701366272','701374464','701382656','701390848','701399040','701407232','701431808','701440000','701448192','701464576','701472768','701480960','701490176','701491200','701492224','701493248','701495296','701496320','701497344','701513728','701530112','701546496','701562880','701579264','701612032','701628416','701644800','701661184','701677568','701693952','701702144','701710336','701718528','701726720','701743104','701759488','701792256','701825024','701857792','701890560','701923328','701956096','701992960','701997056','702001152','702005248','702009344','702013440','702015488','702017536','702018560','702019584','702020608','702021632','702029824','702038016','702046208','702054400','702058496','702062592','702070784','702074880','702076928','702078976','702080000','702081024','702082048','702119936','702128128','702136320','702138368','702139392','702140416',
|
234 |
-
'702141440','702142464','702143488','702144512','702146560','702148608','702152704','702169088','702185472','702201856','702218240','702234624','702251008','702283776','702287872','702291968','702296064','702300160','702308352','702312448','702316544','702320640','702324736','702328832','702332928','702337024','702341120','702349312','702353408','702357504','702365696','702369792','702373888','702382080','702386176','702390272','702394368','702398464','702402560','702410752','702414848','702416896','702418944','702420992','702423040','702425088','702427136','702429184','702431232','702433280','702434304','702437376','702439424','702441472','702443520','702445568','702447616','702449664','702451712','702455808','702457856','702459904','702461952','702464000','702465024','702466048','702467072','702468096','702469120','702470144','702471168','702474240','702475264','702476288','702477312','702478336','702481408','702482432','702484480','702485504','702486528','702487552','702488576','702490624','702491648','702492672','702493696','702494720','702495744','702496768','702498816','702499840',
|
235 |
-
'702500864','702501888','702502912','702503936','702504960','702505984','702507008','702508032','702509056','702510080','702511104','702512128','702513152','702514176','702515200','702516224','702517248','702518272','702519296','702520320','702521344','702522368','702523392','702524416','702525440','702526464','702527488','702528512','702529536','702530560','702531584','702532608','702534656','702535680','702536704','702538752','702539776','702540800','702541824','702542848','702543872','702544896','702545920','703070208','703594496','703725568','703727616','703728640','703733760','703735808','703737856','703746048','703747072','703748096','703749120','703750144','703754240','703755264','703756288','703757312','703758336','703760384','703761408','703762432','703766528','703770624','703774720','703791104','703856640','703987712','704118784','704380928','704643072','704644096','704645120','704650240','704651264','704659456','704675840','704723968','704724992','704741376','704774144','704905216','705167360','707788800','708575232','708706304','708751360','708752384','708755456','708771840','708837376','709885952','710017024','710082560','710098944','710104064','710105088','710934528','710950912','710961152','710962176','711065600','711131136','711160832','711161856','711163904','711196672','711458816','711983104','712507392','712712192','712713216','712769536','713031680','714080256','714604544','714866688','714874880','714875904','716930048','716931072','716963840','717225984','717750272',
|
236 |
-
'717815808','717848576','717881344','720437248','720502784','721420288','736100352','736101376','736102400','736103424','736104448','736105472','736106496','736107520','736108544','736109568','736110592','736111616','736112640','736113664','736115712','736116736','736119808','736120832','736121856','736122880','736123904','736124928','736125952','736126976','736128000','736131072','736132096','736133120','736136192','736138240','736139264','736140288','736141312','736142336','736143360','736144384','736145408','736146432','736147456','736148480','736149504','736150528','736151552','736156672','736157696','736158720','736160768','736161792','736162816','736163840','736164352','736164864','736166912','736167936','736168960','736169984','736173056','736174080','736175104','736176128','736177152','736178176','736179200','736180224','736181248','736182272','736183296','736185344',
|
237 |
-
'736186368','736187392','736188416','736189440','736190464','736191488','736193536','736194560','736195584','736196608','736198656','736199680','736200704','736201728','736202752','736203776','736204800','736205824','736206848','736209920','736210944','736211968','736214016','736216064','736217088','736218112','736219136','736220160','736221184','736229376','736230400','736231424','736231936','736232448','736233472','736234496','736235520','736237568','736239616','736263168','736264192','736286720',
|
238 |
-
'736287744','736288768','736289792','736290816','736291840','736300032','736301056','736303104','736304128','736324608','736325632','736326656','736328704','736329728','736331776','736334848','736335872','736344064','736345088','736354304','736355328','736356352','736357376','736358400','736359424','736360448','736380928','736381952','736382976','736384000','736385024','736386048','736388096','736389120',
|
239 |
-
'736390144','736391168','736392192','736394240','736395264','736396288','736398336','736400384','736402432','736403456','736405504','736408576','736409600','736410624','736411648','736412672','736413696','736414720','736415744','736416768','736417792','736418816','736421888','736422912','736423936','736424960','736425984','736428032','736429056','736430080','736431104','736432128','736433152','736434176','736435200','736436224','736437248','736438272','736439296','736440320','736441344','736442368','736443392','736445440','736446464','736447488','736448512','736449536','736450560','736452608','736453632','736455680','736456704','736458752','736459776','736460800','736461824','736462848','736465920','736466944','736467968','736468992','736470016','736471040','736479232','736480256','736481280','736482304','736483328','736485376','736486400','736487424','736489472','736491520',
|
240 |
-
'736493568','736494592','736495104','736495360','736495616','736498688','736499712','736500736','736501760','736502784','736505856','736506880','736507904','736508928','736509952','736510976','736513024','736515072','736516096','736517120','736518144','736519168','736520192','736521216','736522240','736524288','736525312','736526336','736527360','736528384','736529408','736531456','736532480','736533504','736535552','736536576','736537600','736538624','736539648','736540672','736541696','736542720','736543744','736545792','736546816','736547840','736548864','736549888','736559104','736560128','736561152','736562176','736563200','736564224','736565248','736566272','736567296','736571392','736574464','736575488','736576512','736577536','736578560','736579584','736587776','736588800','736591872',
|
241 |
-
'736592384','736592640','736592896','736593920','736606208','736607232','736608256','736609280','736610304','736611328','736612352','736613376','736615424','736616448','736617472','736618496','736621568','736622592','736624640','736886784','737148928','737149952','737152000','737154048','737155072','737156096','737157120','737158144','737159168','737160192','737161216','737162240','737163264','737165312','737166336','737169408','737170432','737171456','737172480','737173504','737174528','737175552','737177600','737178624','737179648','737180672','737184768','737185792','737186816','737187840','737188864','737206272','737208320','737209344','737220608','737222656','737223680','737225728','737226752','737227776','737228800','737229824','737232896','737233920','737239040','737240064','737241088','737243136','737244160','737249280','737250304','737253376','737255424','737256448','737257472','737262592','737263616','737264640','737265664','737266688','737267712','737276928','737277952','737280000','737281024','737282048','737288192','737289216','737290240','737291264','737297408','737298432','737305600','737306624','737307648','737308672','737309696','737312768','737313792','737315840','737316864','737324032','737325056','737326080','737327104','737328128','737331200','737332224','737333248','737335296','737337344','737339392','737341440','737342464','737344512','737345536','737346560','737350656','737350912','737351680','737352704','737354752','737355776','737359872','737361920','737364992','737368064','737369088','737370112','737371136','737375232','737376256','737377280','737378304','737380352','737381376','737382400','737384448','737385472','737386496','737387520','737388544','737389568','737390592','737391616','737392640','737393664','737394688','737395712','737396736','737397760','737398784','737399808','737400832','737401856','737403904','737405952','737406976','737408000','737409024','737410048','737411072','737476608','737478656','737479680',
|
242 |
-
'737480704','737481728','737482752','737484800','737485824','737487872','737488896','737489920','737490944','737491968','737492992','737497088','737498112','737499136','737500160','737501184','737502208','737503232','737505280','737506304','737507328','737508352','737509376','737510400','737511424','737512448','737513472','737514496','737515520','737516544','737517568','737520640','737521664','737522688','737525760','737526784','737527808','737528832','737529856','737530880','737531904','737533952','737534976','737536000','737537024','737538048','737539072','737540096','737541120','737542144','737607680','737608704','737610752','737611776','737612800','737613824','737614848','737615872','737617920','737618944','737620992','737622016','737623040',
|
243 |
-
'737624064','737625088','737626112','737627136','737628160','737629184','737634304','737635328','737637376','737638400','737639424','737640448','737641472','737642496','737645568','737647616','737649664','737650688','737651712','737652736','737656832','737657856','737675264','737676288','737677312','737678336','737679360','737680384','737681408','737683456','737685504','737686528','737687552','737688576','737690624','737692672','737712128','737713152','737714176','737715200','737718272','737727488','737728512','737729536','737730560','737731584','737733632','737735680','737736704','737737728','737738752','737741824','737742848','737744896','737745920','737746944','737747968','737748992','737750016','737751040','737753088','737757184','737758208','737760256','737761280','737762304','737763328','737765376','737768448','737769472','737770496','737771520','737772544','737774592','737775616','737782784','737783808','737784832','737787904','737788928','737790976','737792000','737793024','737794048','737795072','737796096','737799168','737800192','737802240','737803264','737804288','737805312','737806336','737807360','737810432','737811456','737814528','737815552','737816576','737817600','737818624','737821696','737822720','737824768','737825792','737826816','737827840','737828864','737835008','737836032','737837056','737838080','737839104','737840128','737841152','737843200','737844224','737845248','737846272','737847296','737850368','737851392','737853440','737854464','737855488','737856512','737857536','737858560','737861632','737862656','737863680','737864448','737864704','737865728','737866752','737867776','737868800','737870848','737874432','737874944','737876992','737878016','737879040','737880064','737881088','737882112','737883136','737884160','737886208','737887232','737888256','737889280','737890304','737894400','737895424','737896448','737897472','737898496','737899520','737900544','737901568','737902592','737903616','737904640','737905664','737906688','737908736','737909760','737910784','737911808','737912832','737915904','737916928','737917952','737918976','737920000','737921024','737922048','737923072','737924096','737927168',
|
244 |
-
'737929216','737931264','737932288','737933312','737934336','737935360','737936384','737937408','737938432','737939456','737940480','737941504','737944576','737945600','737946624','737947648','737948672','737949696','737950720','737951744','737953792','737954816','737955840','737956864','737957888','737959936','737960960','737961984','737963008','737965056','737966080','737967104','737969152','737970176','737971200','737972224','737973248','737974272','737975296','737976320','737981440','737982464','737983488','737986560','737987584','737988608','737989632','737991680','737992192','737992704','737993728','737994752','737995776','737996800','737997824','737998848','737999872','738000896','738066432','738069504','738070528','738071552','738072576','738073600','738075648','738076672','738077696','738078720','738079744','738080768','738081792','738082816','738083840','738084864','738085888','738086912','738087936','738091008','738092032',
|
245 |
-
'738094080','738095104','738097152','738098176','738099200','738100224','738101248','738107392','738108416','738109440','738111488','738112512','738118656','738119680','738120704','738121728','738122752','738128896','738129920','738135040','738136064','738137088','738138112','738139136','738140160','738141184','738142208','738143232','738144256','738145280','738146304','738147328','738152448','738153472','738154496','738156544','738157568','738158592','738159616','738160640','738161664','738163712','738164736','738165760','738166784','738167808','738168832','738169856','738170880','738171904','738172928','738173952','738174976','738176000','738177024','738178048','738179072','738180096','738181120','738182144','738183168','738187264','738188288','738189312','738192384','738193408','738194432','738195456','738197504','756023296','757186560','757190656','757600256','757604352','757612544','757616640','757686272','757694464','757729280','757731328','757733376','757734400','757736448','757737472','757745664','757747712','757751808','757760000','757858304','757956608','758779904','758784000','758796288','758804480','758824960','758841344','758972416','758976512','758984704','758988800','759054336','759070720','759087104','759103488','759169024','759171072','759174144','759175168','759176192','759178240','759179264','759180288','759181312','759182336','759183360','759184384','759185408','759186432','759187456','759187968','759188480','759189504','759190528','759193600','759195648','759196672','759197696','759198208','759198720','759199744','759200768','759201792','759202816','759204864','759206912','759207936','759208960','759209984','759211008','759212032','759213056','759214080','759215104','759216128','759217152','759220224','759221248','759227392','759229440','759230464','759232512','759233536','759234560','759235584','759236608','759237632','759693312','759726080','759791616','759840768','759857152','759889920','759955456','760086528','761266176','762314752','762315776','762316800','762320896','762321920','762323968','762324992','762330112','762331136','762332160','762333184','762334208','762335744','762336256','762337280','762345472','762346496','762347520','762348544','762349568','762350592','762351616','762353664','762358784','762359808','762360832','762362880','762363904','762364928','762365952','762366976','762368000','762372096','762373120','762376192','762377216','762378240','762380288','762381312','762382336','762383360','762388480','762389504','762390528','762391552','762393600','762395648','762396160','762397696','762398720','762399744','762400768','762401792','762402816','762403840','762404864','762407936','762408960','762409984','762411008','762412032','762413056','762414080','762415104','762416128','762417152','762419200',
|
246 |
-
'762420224','762421248','762422272','762423296','762424320','762425344','762426368','762427392','762428416','762429440','762430464','762431488','762437632','762438656','762439680','762440704','762441728','762442752','762443776','762444800','762447872','762448896','762449920','762450944','762451968','762452992','762454016','762455040','762456064','762457088','762458112','762459136','762460160','762467328','762469376','762470400','762471424','762472448','762473472','762475520','762476544','762478592','762479616','762480640','762481664','762486784','762487808','762490880','762491904','762492928','762493952','762494976','762496000','762498048','762499072','762500096','762502144','762503168','762504192','762505216','762506240','762507264','762510336','762511360','762514432','762515456','762516480','762517504','762519552','762520576','762522624',
|
247 |
-
'762523648','762523904','762524160','762524672','762527744','762528768','762529792','762530816','762532864','762533888','762536960','762537984','762540032','762541056','762541568','762542080','762543104','762544128','762545152','762546176','762547200','762548224','762549248','762550272','762551296','762552320','762553344','762554368','762560512','762561536','762562560','762563584','762564608','762565632','762567680','767557632','769130496','771751936','771817472','771948544','772014080','772145152','772210688','772276224','772341760','772407296','772472832','772538368','772603904','772669440','772734976','772800512','772802560','772804608','772806656','772808704','772810752','772812800','772814848','772816896','772818944','772820992','772823040','772825088','772827136','772829184','772831232','772833280','772835328','772837376','772839424','772841472','772843520','772845568','772847616','772849664','772851712','772853760','772855808','772857856','772859904','772861952','772864000','772870144',
|
248 |
-
'772872192','772874240','772876288','772880384','772882432','772884480','772886528','772888576','772890624','772892672','772894720','772896768','772898816','772900864','772902912','772904960','772907008','772909056','772911104','772913152','772915200','772917248','772919296','772923392','772925440','772927488','772929536','772931584','772933632','772935680','772937728','772939776','772941824','772943872','772945920','772947968','772950016','772952064','772954112','772958208','772962304','772966400','772968448','772970496','772972544','772974592','772978688','772980736','772982784','772984832','772986880','772988928','772990976','772993024','772995072','772997120','772999168','773001216','773003264','773005312','773007360','773009408','773011456','773013504','773015552','773017600','773019648','773021696','773023744','773025792','773027840','773031936','773033984','773036032','773038080','773040128','773042176','773044224','773046272','773048320','773050368','773052416','773054464','773056512','773058560','773060608','773062656','773066752','773070848','773074944','773079040','773083136','773087232',
|
249 |
-
'773091328','773095424','773099520','773103616','773107712','773111808','773115904','773120000','773124096','773128192','773132288','773136384','773140480','773144576','773148672','773152768','773156864','773165056','773173248','773177344','773181440','773185536','773189632','773197824','773201920','773206016','773210112','773214208','773218304','773222400','773226496','773230592','773234688','773238784','773242880','773246976','773251072','773255168','773259264','773263360','773267456','773271552','773275648','773279744','773283840','773287936','773292032','773296128','773300224','773304320','773308416','773312512','773316608','773318656','773320704','773324800','773586944','773588992','773591040','773593088','773595136','773597184','773599232','773601280','773603328','773605376','773607424','773609472','773611520','773613568','773615616','773617664','773619712','773621760','773623808','773625856','773627904','773629952','773632000','773634048','773636096','773638144','773640192','773642240','773644288','773646336','773648384','773650432','773652480','773654528','773656576','773660672','773662720','773664768','773666816','773668864','773670912',
|
250 |
-
'773672960','773675008','773677056','773679104','773681152','773683200','773685248','773687296','773689344','773691392','773695488','773697536','773699584','773701632','773703680','773705728','773707776','773709824','773711872','773713920','773715968','773718016','773720064','773722112','773724160','773726208','773730304','773732352','773734400','773736448','773740544','773742592','773744640','773746688','773748736','773750784','773752832','773754880','773756928','773758976','773761024','773763072','773767168','773769216','773771264','773773312','773775360','773777408','773779456','773783552','773785600','773787648','773789696','773791744','773793792','773795840','773797888','773799936','773801984','773804032','773806080','773808128','773810176','773812224','773814272','773816320','773818368','773820416','773822464','773824512','773826560','773828608','773830656','773832704','773834752','773836800','773838848','773840896','773842944','773844992','773847040','773849088','773857280','773865472','773873664','773881856','773890048','773898240','773906432','773922816','773931008','773939200','773947392','773955584','773963776',
|
251 |
-
'773971968','773980160','773988352','774004736','774012928','774021120','774029312','774037504','774045696','774053888','774062080','774070272','774078464','774086656','774094848','774103040','774111232','774119424','774127616','774135808','774144000','774152192','774160384','774163456','774166528','774168576','774176768','774184960','774193152','774209536','774217728','774225920','774234112','774242304','774258688','774266880','774275072','774283264','774291456','774299648','774307840','774324224','774332416','774340608','774348800','774356992','774365184','774373376','774389760','774406144','774422528','774438912','774455296','774471680','774488064','774504448','774520832','774537216','774553600','774569984','774586368','774602752','774619136','774651904','774668288','774684672','774701056','774717440','774733824','774750208','774782976','774799360','774815744','774832128','774848512','774864896','774881280','774963200','774995968','775028736','775061504','775094272','775127040','775159808','775192576','775225344','775258112',
|
252 |
-
'775290880','775323648','775356416','775389184','775421952','775487488','775520256','775553024','775585792','775618560','775651328','775684096','775716864','775749632','775847936','775880704','775913472','775946240','776077312','776208384','776339456','776470528','776601600','776732672','776863744','778043392','778108928','778174464','778240000','778305536','778371072','778436608','778461184','778463232','778467328','778473472','778475520','778475776','778477568','778479616','778481920','778482944','778484736','778485248','778485760','778493952','778497792','778498048','778500864','778501120','778502144','778567680','778633216','778698752','778764288','778829824','778895360','778960896','779026432','779091968','779223040','779354112','779485184','779616256','779747328','779878400','780009472','780140544','780206080','780271616','780337152','780402688','780468224','780533760','780599296','780664832','780730368','780795904','780861440',
|
253 |
-
'780926976','780992512','781058048','781123584','781189120','781320192','781451264','781455360','781459456','781463552','781467648','781475840','781479936','781484032','781488128','781496320','781516800','781520896','781524992','781529088','781533184','781537280','781545472','781549568','781553664','781557760','781565952','781570048','781574144','781578240','781582336','781590528','781598720','781615104','781631488','781639680','781651968','781654016','781656064','781658112','781662208','781664256','781666304','781668352','781670400','781672448','781674496','781676544','781678592','781682688','781684736','781686784','781688832','781690880','781692928','781694976','781697024','781699072','781701120','781703168','781705216','781707264','781709312','781711360','781713408','781844480','781975552','782106624','782254080','782270464','782319616','782336000','782352384','782368768','782385152','782401536','782417920','782434304','782450688','782467072',
|
254 |
-
'782483456','782499840','782516224','782532608','782548992','782581760','782598144','782630912','782647296','782663680','782671872','782675968','782680064','782696448','782712832','782729216','782745600','782761984','783024128','783040512','783048704','783056896','783065088','783073280','783089664','783106048','783134720','783138816','783142912','783147008','783151104','783155200','783157248','783159296','783161344','783163392','783165440','783167488','783169536','783171584','783173632','783175680','783179776','783181824','783185920','783187968','783190016','783194112','783196160','783198208','783202304','783204352','783206400','783208448','783210496','783212544','783216640','783218688','783220736','783222784','783223808','783224064','783224320','783224832','783226880','783230976','783233024','783235072','783237120','783243264','783245312','783247360','783251456','783255552','783259648','783261696','783263744','783265792','783267840',
|
255 |
-
'783269888','783278080','783282176','783286272','783417344','783548416','783679488','783681536','783683584','783685632','783687680','783689728','783691776','783693824','783695872','783697920','783699968','783702016','783704064','783706112','783708160','783710208','783712256','783714304','783718400','783720448','783722496','783724544','783726592','783728640','783730688','783732736','783734784','783736832','783738880','783740928','783745024','783747072','783749120','783751168','783753216','783755264','783757312','783759360','783763456','783765504','783767552','783769600','783771648','783773696','783775744','783777792','783779840','783781888','783783936','783785984','783788032','783790080','783794176','783798272','783800320','783802368','783804416','783806464','783810560','783843328','783876096','783908864','783941632','783974400','784007168','784039936','784072704','784105472','784138240','784171008','784203776','784236544','784269312','784302080','784334848','784465920','784596992','784728064','784859136','785121280','785252352','785383424','785448960','785514496','785580032','785645568','785711104',
|
256 |
-
'785776640','785842176','785907712','785973248','786038784','786104320','786169856','786235392','786300928','786366464','786432000','786563072','786565120','786567168','786569216','786571264','786575360','786577408','786579456','786581504','786583552','786585600','786587648','786589696','786591744','786593792','786595840','786597888','786599936','786601984','786604032','786606080','786608128','786610176','786612224','786614272','786616320','786618368','786620416','786622464','786624512','786626560','786628608','786630656','786632704','786634752','786636800','786638848','786642944','786644992','786649088','786651136','786655232','786657280','786659328','786661376','786663424','786665472','786667520','786669568','786671616','786673664','786675712','786677760','786679808','786681856','786683904','786685952','786688000','786690048','786692096','786694144','786698240','786702336','786706432','786710528','786714624','786718720','786726912','786731008','786735104','786739200','786743296','786747392','786751488','786755584','786759680','786771968','786776064','786780160','786784256','786788352','786792448',
|
257 |
-
'786796544','786800640','786804736','786808832','786812928','786817024','786821120','786825216','786857984','786890752','786892800','786894848','786896896','786900992','786905088','786907136','786909184','786911232','786913280','786915328','786917376','786919424','786921472','786923520','786925568','786927616','786929664','786931712','786933760','786935808','786937856','786939904','786941952','786944000','786946048','786948096','786950144','786952192','786954240','786956288','786989056','786991104','786995200','786997248','786999296','787001344','787003392','787005440','787007488','787009536','787011584','787013632','787015680','787017728','787021824','787038208','787054592','787070976','787087360','787095552','787103744','787111936','787120128','787128320','787136512','787152896','787154944','787156992','787159040','787161088','787163136','787165184','787167232','787169280','787171328','787173376','787175424','787177472','787179520','787183616','787185664','787187712','787189760','787191808','787193856','787195904','787197952','787200000','787202048','787206144','787208192','787210240',
|
258 |
-
'787212288','787214336','787216384','787218432','787234816','787251200','787267584','787283968','787300352','787316736','787333120','787349504','787365888','787382272','787398656','787415040','787431424','787447808','787464192','787480576','787513344','787546112','787578880','787611648','787644416','787677184','787679232','787681280','787683328','787685376','787687424','787689472','787693568','787695616','787697664','787701760','787703808','787705856','787707904','787709952','787718144','787742720','787750912','787755008','787759104','787767296','787775488','787808256','787841024','787843072','787845120','787847168','787849216','787851264','787853312','787855360','787857408','787859456','787861504','787863552','787865600','787869696','787873792','787906560','787939328','787972096','788004864','788013056','788021248','788029440','788045824','788054016','788062208','788070400','788078592','788086784','788094976','788103168','788111360','788119552','788127744','788135936','788144128','788160512','788168704','788176896','788185088','788193280','788201472','788209664','788217856','788226048','788234240','788242432',
|
259 |
-
'788250624','788258816','788267008','788271104','788275200','788279296','788283392','788291584','788295680','788299776','788303872','788307968','788312064','788316160','788320256','788324352','788328448','788332544','788336640','788340736','788344832','788353024','788357120','788361216','788365312','788369408','788373504','788377600','788381696','788385792','788389888','788393984','788398080','788400128','788402176','788406272','788410368','788412416','788414464','788416512','788418560','788422656','788424704','788426752','788428800','788430848','788432896','788434944','788436992','788439040','788441088','788443136','788445184','788451328','788453376','788455424','788457472','788459520','788461568','788465664','788467712','788469760','788471808','788473856','788475904','788477952','788480000','788482048','788484096','788486144','788488192','788490240','788492288','788494336','788496384','788498432','788500480','788502528','788504576','788506624','788508672','788510720','788512768','788514816','788516864','788518912','788520960',
|
260 |
-
'788523008','788525056','788527104','788529152','789577728','790102016','790626304','791937024','792002560','792068096','792330240','793378816','794558464','795934720','805306368','822083584','822085632','822087680','822089728','822090752','822091776','822099968','822116352','822149120','822214656','822345728','822607872','822870016','823132160','824180736','825229312','825360384','825361408','825363456','825364480','825376768','825393152','825409536','825419776','825420800','825421824','825425920','825753600','826277888','828375040','829423616','830210048','830341120','830406656','830472192','830472448','830472704','830474240','830475264','830476288','830480384','830488576','830496768','830498816','830499840','830500864','830504960','830513152','830517248','830521344','830529536','830537728','830603264','830734336','830996480','831258624','831389696','831512576','831513600','831514624','831515648','831516672','831518720','831519744','831520768','832045056','832308224','832311296','832313344','832315392','832319488','832320512','832321536','832323584','832348160','832372736','832438272','832569344','833617920','835190784','835715072','835977216','836042752','836046848','836050944','836059136','836075520','836501504','836763648','837025792','837287936','837550080','837566464','837599232','837603328','837604352','837605376','837607424','837611520','837615616','837681152','837689344','837697536','837746688','837763072','837779456','837795840','837812224','838074368','838139904','838205440','838238208','838262784','838270976','838336512','838467584',
|
261 |
-
'838729728','838795264','838860800','840269824','840273920','840278016','840282112','840294400','840298496','843055104','843644928','844890112','844988416','845283328','845545472','846442496','846446592','846561280','846594048','855638016','872415232','889192448','905969664','920518656','920649728','956301312','973078528','973209600','973275136','973471744','973602816','973864960','973996032','974782464','974880768','974913536','974979072','975044608','977272832','977305600','977338368','977346560','977354752','977371136','977395712','977397760','977399808','977401856','977403904','977534976','977567744','977600512','977666048','977731584','977764352','977797120','978321408','978452480','978485248','978501632','978518016','978599936',
|
262 |
-
'978640896','978644992','978714624','978780160','978784256','978788352','978796544','978812928','979369984','979410944','979419136','979435520','979468288','979501056','979566592','979599360','979763200','979894272','980418560','980549632','980680704','980942848','981467136','981991424','982122496','982171648','982188032','982253568','982515712','982581248','982614016','982622208','982624256','982626304','982628352','982630400','982671360','982679552','982695936','982712320','982745088','982753280','982755328','982757376','982759424','982761472','982777856','983040000','983171072','983302144','983564288','984612864','984743936','984875008','984956928','984965120','984973312','985006080','985071616','985137152','985202688','985268224','985399296','985661440','987758592','988807168',
|
263 |
-
'989855744','991952896','995360768','995532800','995540992','995557376','995622912','996409344','996573184','996605952','996671488','996802560','996868096','997195776','998244352','999292928','999424000','999555072','999686144','999751680','999784448','999800832','999817216','999839744','999849984','999866368','999948288','1000013824','1000079360','1000341504','1000734720','1000800256','1000865792','1001127936','1001390080','1002045440','1002176512','1002242048','1002307584','1002373120','1002405888','1002422272','1002434560','1008730112','1009778688','1010237440','1010302976','1010761728','1010827264','1017118720','1019215872','1019346944','1019478016','1019609088','1019740160','1021313024','1021837312','1021968384','1022033920','1022099456','1022361600','1022558208','1022623744','1022722048','1022754816','1022820352','1022885888','1023148032','1023213568','1023238144','1023246336','1023279104','1023311872','1023328256','1023344640','1023410176','1023672320','1023688704','1023692800','1023696896','1023705088','1023717376','1023721472','1023737856','1023770624','1023778816','1023787008','1023791104','1023795200','1023803392','1023852544','1023868928','1023901696','1023934464','1023950848','1023954944','1023959040','1023967232','1023975424','1023979520','1023983616','1024000000','1024032768','1024065536','1024131072','1024163840','1024184320','1024188416','1024196608','1024229376','1024262144','1024327680','1024344064','1024352256','1024360448','1024376832','1024393216','1024458752','1024491520','1024589824','1024655360','1024720896','1024786432','1025245184','1025277952','1025294336','1025302528','1025310720','1025343488','1025376256','1025507328','1026293760','1026392064','1026408448','1026416640','1026420736','1026422784','1026424832','1026523136','1026539520','1026555904','1027080192','1027866624','1027997696','1028128768','1029046272','1029160960','1029177344','1029242880','1029308416','1029439488','1029570560',
|
264 |
-
'1029636096','1029668864','1029701632','1030750208','1031798784','1035993088','1037565952','1038614528','1039007744','1039138816','1039400960','1039466496','1039499264','1039507456','1039511552','1039515648','1039523840','1039532032','1039597568','1039613952',
|
265 |
-
'1039638528','1039642624','1039646720','1039654912','1039663104','1040187392','1040252928','1040318464','1040384000','1040400384','1040416768','1040424960','1040433152','1040449536','1040457728','1040465920','1040474112','1040482304','1040515072','1040547840','1040580608','1040711680','1040719872','1040728064','1040736256','1040744448','1040777216','1040842752','1040973824','1040982016','1040990208','1041006592','1041039360','1041072128','1041080320','1041088512','1041096704','1041235968','1041244160','1041268736','1041301504','1041367040','1041498112','1041563648','1041596416','1041629184','1041694720','1041760256','1041768448','1041776640','1041784832','1041793024','1041825792','1041842176','1041891328','1042022400','1042087936','1042120704','1042153472','1042284544','1042292736','1042300928','1042309120','1042317312','1042350080','1042415616','1042546688','1042677760','1042743296','1042808832','1042817024','1042825216','1042833408','1042841600','1042874368','1042939904','1043070976','1043079168','1043087360','1043095552','1043103744','1043120128',
|
266 |
-
'1043136512','1043202048','1043333120','1043341312','1043349504','1043357696','1043365888','1043398656','1043488768','1043496960','1043505152','1043513344','1043529728','1043595264','1043857408','1043922944','1043988480','1044119552','1044152320','1044185088','1044193280','1044201472','1044217856','1044226048','1044234240','1044250624','1044283392','1044316160','1044332544','1044348928','1044365312','1044381696','1044389888','1044398080','1044414464','1044447232','1044455424','1044463616','1044480000','1044488192','1044496384','1044512768','1044578304','1044643840','1044652032','1044660224','1044668416','1044676608','1044684800','1044692992','1044701184','1044709376','1044717568','1044742144','1044744192','1044746240','1044748288','1044750336','1044758528','1044774912','1044840448','1044905984','1044930560','1044946944','1044955136','1044963328','1044971520','1044979712','1044987904','1045004288','1045020672','1045037056','1045135360','1045168128','1045233664','1045241856','1045250048','1045266432','1045274624','1045282816','1045299200','1045307392','1045315584','1045319680',
|
267 |
-
'1045323776','1045364736','1045430272','1045446656','1045454848','1045463040','1045471232','1045479424','1045487616','1045495808','1045692416','1045700608','1045708800','1045716992','1045725184','1045733376','1045749760','1045753856','1045755904','1045757952','1045790720','1045798912','1045889024','1045921792','1045954560','1045987328','1046020096','1046028288','1046036480','1046052864','1046061056','1046069248','1046085632','1046151168','1046216704','1046282240','1046290432','1046298624','1046315008','1046323200','1046331392','1046347776','1046413312','1046446080','1046478848','1046544384','1046560768','1046585344','1046609920','1046675456','1046708224','1046740992','1046757376','1046765568','1046773760','1046781952','1046798336','1046806528','1046814720','1046822912','1046839296','1046847488','1046855680','1046872064','1046904832','1046908928','1046910976','1046913024','1046921216','1046929408','1046937600','1047003136','1047068672','1047085056','1047101440','1047109632','1047117824','1047134208','1047150592','1047158784','1047166976','1047199744',
|
268 |
-
'1047265280','1047273472','1047281664','1047289856','1047298048','1047306240','1047314432','1047322624','1047330816','1047339008','1047347200','1047363584','1047371776','1047379968','1047396352','1047461888','1047494656','1047527424','1047535616','1047552000','1047560192','1047568384','1047576576','1047584768','1047592960','1047601152','1047625728','1047633920','1047642112','1047658496','1047724032','1047789568','1047822336','1047838720','1047846912','1047855104','1047863296','1047871488','1047887872','1047920640','1047986176','1048051712','1048117248','1048125440','1048133632','1048158208','1048166400','1048182784','1048184832','1048186880','1048193024','1048195072','1048197120','1048203264','1048205312','1048209408','1048211456','1048215552','1048221696','1048223744','1048225792','1048227840','1048233984','1048236032','1048242176','1048244224','1048246272','1048248320','1048313856','1048510464','1048576000','1048584192','1048592384','1048600576','1048608768','1048616960','1048625152','1048633344','1048641536','1048649728','1048657920','1048674304',
|
269 |
-
'1048682496','1048690688','1048707072','1048772608','1048838144','1048903680','1048920064','1048936448','1048944640','1048952832','1048969216','1049034752','1049067520','1049100288','1049231360','1049296896','1049362432','1049370624','1049378816','1049395200','1049411584','1049419776','1049427968','1049436160','1049444352','1049460736','1049468928','1049477120','1049493504','1049559040','1049698304','1049722880','1049731072','1049739264','1049755648','1049821184','1049886720','1049894912','1049903104','1049911296','1049919488','1049927680','1049935872','1049944064','1049952256','1049960448','1049968640','1049985024','1050017792','1050083328','1050148864','1050157056','1050173440','1050181632','1050189824','1050198016','1050206208','1050214400','1050673152','1050804224','1050869760','1050935296','1050968064','1051000832','1051017216','1051033600','1051049984','1051066368','1051131904','1051197440','1051213824','1051230208','1051238400','1051246592','1051254784','1051262976',
|
270 |
-
'1051271168','1051279360','1051295744','1051303936','1051312128','1051328512','1051525120','1051533312','1051541504','1051557888','1051566080','1051574272','1051590656','1051721728','1051729920','1051738112','1051754496','1051762688','1051770880','1051779072','1051787264','1051795456','1051803648','1051820032','1051852800','1051983872','1052049408','1052057600','1052065792','1052082176','1052090368','1052098560','1052116992','1052119040','1052121088','1052127232','1052129280','1052131328','1052133376','1052135424','1052137472','1052141056','1052141568','1052143616','1052145664','1052147712','1052151808','1052153856','1052157952','1052160000','1052162048','1052164096','1052168192','1052170240','1052172288','1052174336','1052176384','1052178432','1052180480','1052213248','1052246016','1052508160','1052770304','1052778496','1052786688','1052803072','1052811264','1052819456','1052827648','1052835840','1052844032','1052852224','1052868608','1052884992','1052901376','1053032448','1053097984','1053106176',
|
271 |
-
'1053114368','1053130752','1053138944','1053147136','1053163520','1053294592','1053360128','1053364224','1053368320','1053376512','1053392896','1053401088','1053409280','1053425664','1053556736','1053564928','1053573120','1053581312','1053589504','1053597696','1053605888','1053614080','1053622272','1053630464','1053638656','1053655040','1053663232','1053671424','1053687808','1053753344','1053818880','1053884416','1053892608','1053900800','1053917184','1053925376','1053933568','1053949952','1054015488','1054089216','1054097408','1054105600','1054113792','1054121984','1054130176','1054138368','1054146560','1054179328','1054187520','1054195712','1054212096','1054277632','1054343168','1054351360','1054359552','1054367744','1054375936','1054384128','1054400512','1054408704','1054416896','1054425088','1054441472','1054449664','1054457856','1054474240','1054539776','1054605312','1054613504','1054621696','1054629888','1054638080','1054646272','1054654464','1054662656','1054670848','1054679040','1054687232','1054703616','1054711808','1054720000','1054867456','1055129600','1055195136','1055326208','1055334400','1055342592','1055358976','1055367168','1055375360',
|
272 |
-
'1055391744','1055457280','1055465472','1055473664','1055490048','1055522816','1055588352','1055653888','1055784960','1055850496','1055916032','1055924224','1055932416','1055940608','1055948800','1055956992','1055965184','1055973376','1055981568','1055989760','1055997952','1056014336','1056022528','1056030720','1056047104','1056178176','1056194560','1056210944','1056219136','1056227328','1056243712','1056251904','1056260096','1056276480','1056374784','1056440320','1056473088','1056505856','1056514048','1056522240','1056538624','1056546816','1056555008','1056571392','1056669696','1056702464','1056964608','1065611264','1065615360','1065811968','1065820160','1065873408','1065877504','1065906176','1065908224','1066311680','1066315776','1066352640','1066369024','1073373184','1073381376','1074020352','1074028544','1074118656','1074135040','1074184192','1074188288','1074233344','1074241536','1074733056','1074737152','1074745344','1074757632','1074765824','1074937856','1074946048','1074962432','1074970624','1075421184','1075429376','1075478528','1075494912','1075576832','1075585024','1075609600','1075613696','1075855360','1075871744','1076174848','1076178944','1076338688','1076346880','1076387840','1076396032','1076408320','1076412416','1076424704','1076428800','1076543488','1076559872','1076625408','1076690944','1076756480','1076772864','1077055488','1077059584','1077444608','1077452800','1077460992','1077469184','1077477376','1077506048','1077510144','1077641216','1077657600','1077977088','1077985280','1077993472','1078001664','1078067200','1078071296','1078075392','1078124544','1078128640','1078247424','1078251520','1078456320','1078460416','1078517760','1078525952','1079320576','1079328768','1079459840','1079508992','1079574528','1079578624','1079623680','1079627776','1079664640','1079668736','1079861248','1079865344','1080033280','1080164352',
|
273 |
-
'1080295424','1080957952','1080963840','1080967168','1080983552','1080987648','1080988672','1080989952','1080990208','1080999936','1081016320','1081081856','1081131008','1081212928','1081278464','1081479168','1081483264','1081565184','1081573376','1081589760','1081593856','1081597952','1082314752','1082318848','1082679808','1082680320','1082683392','1082687488','1082753024','1082785792','1082945536','1082949632','1082982400','1083015168','1083396096','1083400192','1083437056','1083441152','1083621376','1083637760','1083686912','1083703296','1085440000','1085448192','1085456384','1085464576','1085526016','1085530112','1085538304','1085603840','1085849600','1085857792','1085915136','1085923328','1085997056','1086013440','1086042112','1086046208','1086050816','1086051328','1086922752','1086930944','1086955520','1086971904','1087016960','1087021056','1088684032','1088946176','1089167360','1089171456','1089191936','1089200128','1089306624','1089339392','1089961984','1089970176','1089974272','1090146304','1090150400','1090207744','1090215936','1090355200','1090363392','1090387968','1090396160','1090445312','1090453504','1091960832','1092026368','1092075520','1092091904','1093017600','1093021696','1093025792','1093033984','1093058560','1093066752','1093074944','1093091328','1093697536','1093730304','1094565888','1094582272','1095450624','1095467008','1095483392','1095491584','1096278016','1096286208','1096548352','1096810496','1096884224','1096888320','1096925184','1096941568','1097728000','1097736192','1097768960','1097785344',
|
274 |
-
'1097793536','1097801728','1097830400','1097834496','1102389248','1102393344','1102512128','1102516224','1107243008','1107247104','1107275776','1107279872','1107288064','1107292160','1107701760','1107705856','1107820544','1107853312','1108025344','1108029440','1108033536','1108041728','1108054016','1108066304','1108492288','1108500480','1108525056','1108541440','1109688320','1109696512','1109819392','1109852160','1110126592','1110130688','1110310912','1110376448','1110540288','1110573056','1110638592','1110663168','1110675456','1110679552','1110683648','1110700032','1110704128','1110863872','1110867968','1110929408','1110933504','1111195648','1111212032','1111228416','1111244800','1112424448','1112432640','1112440832','1112530944','1112539136','1112867072','1112871936','1112872192','1112872960','1112873216','1112873984','1112875008','1112875520','1112875776','1112877312','1112877568','1112877824','1112878080','1112881152','1112881664','1112881920','1112882432','1112882688','1112883712','1112883968','1112884224','1112884480','1112885248','1112887296','1112888320','1112889344','1112890368','1112931328','1112932352','1113591808','1113595904','1113657344','1113661440','1113669632','1113677824','1113718784','1113743360','1113997312','1114005504','1114054656','1114062848','1114095616','1114103808','1114537984','1114550272','1114681344','1114685440','1114730496','1114734592','1115127808','1115131904','1115136000','1115144192','1115693056','1115697152','1115705344','1115709440','1115783168','1115791360','1115795456','1115799552','1115815936','1115947008','1116014080','1116014336','1116014592','1116014848','1116015872','1116016128','1116027136','1116027904','1116168192','1116176384','1116897280','1116905472','1117274112','1117282304','1117413376','1117421568','1117683712','1117691904','1117724672','1117728768','1117744128','1117749248','1117978624','1117986816','1117995008','1117999104','1118027776','1118031872','1118158848','1118167040','1118474240','1118478336','1118483456','1118484480','1118515200','1118519296','1118527488','1118531584','1118535680','1118539776','1118543872','1118547968','1119109120','1119110144','1119111168','1119211520','1119215616','1119289344','1119354880','1119428608','1119432704','1119436800','1119440896','1119444992','1119469568','1119477760','1119502336','1119510528','1119571968','1119576064','1119580160','1119584256','1119612928','1119617024','1120149504','1120153600','1120346112','1120350208','1120518144','1120534528','1120641024','1120657408','1120788480','1120796672','1120854016','1120862208','1120886784','1120894976','1120911360','1120919552','1121005568','1121009664','1121038336','1121042432','1121230848','1121239040','1121247232','1121255424','1121617408','1121763328','1121767424','1121878016','1121910784','1122074624','1122091008','1122140160','1122148352','1122156544','1122433024','1122434048','1122451456','1122455552','1122476032','1122480128','1122635776','1122639872','1123123200','1123127296','1123180544','1123184640','1123336192','1123352576','1123590144','1123598336','1123606528','1123651584','1123655680','1123794944','1123848192','1123852288','1123950592','1123958784','1125459456','1125459968','1125474304','1125478400','1125486592','1125490688','1125498880','1125515264','1125531648','1125543936','1125545984','1125552128','1125572608','1125576704','1125613568','1125617664','1126924288','1126928384','1126948864','1126952960','1127677952','1127694336','1127923712','1127931904','1128529920','1128792064','1134444544','1134448640','1134546944','1134551040','1136721920','1136787456','1137278976','1137295360','1137426432','1137442816','1137459200','1137491968','1137508352','1137524736','1137541120','1137623040','1137639424','1137704960','1137713152','1137836032','1137840128','1137868800','1137872896','1137876992','1137881088','1137889280','1137893376','1137917952','1137922048','1137926144','1137934336','1137950720','1137954816','1137963008','1137967104','1137975296','1137983488','1137991680','1138049024','1138061312','1138069504','1138073600','1138163712','1138167808','1138176000','1138180096','1138188288','1138191360','1138196480','1138204672','1138212864','1138216960','1138499584','1138503680','1138593792','1138597888','1138704384','1138716672','1138720768','1138728960','1138774016','1138778112','1138786304','1138819072','1138851840','1138917376','1138937856',
|
275 |
-
'1138941952','1138950144','1139179520','1139195904','1139216384','1139220480','1139265536','1139269632','1145142272','1145142784','1145188352','1145192448','1145249792','1145257984','1145307136','1145311232','1145376768','1145380864','1145405440','1145413632','1145421824','1145430016','1145475072','1145479168','1145503744','1145520128','1150287872','1150812160','1151889408','1151897600','1152073728','1152077824','1152114688','1152122880','1152581632','1152614400','1152778240','1152843776','1156071424','1156079616','1156296704','1156300800','1157931008','1157935104','1157943296','1157947392','1158148096','1158152192','1158316032','1158324224','1158340608','1158344704','1158348800','1158381568','1158414592','1158415360','1158416384','1158416896','1158417152','1158417408','1158420736','1158421504','1158422528','1158423552','1158423808','1158424064','1158424320','1158424832','1158425600','1158427648','1158428160','1158428416','1158428672','1158440960','1158441216','1158441472','1158441984','1158443008','1158774784','1158791168','1158799360','1158807552','1158995968','1159004160','1159213056','1159217152','1159348224','1159356416','1159421952','1159430144','1159700480','1159725056','1160011776','1160019968','1160364032','1160368128','1160392704','1160396800','1160425472','1160429568','1160667136','1160675328','1160683520','1160691712','1160847360',
|
276 |
-
'1160855552','1160921088','1160925184','1160945664','1160953856','1161019392','1161035776','1161293824','1161297920','1161363456','1161367552','1161416704','1161420800','1161428992','1161433088','1161437184','1161453568','1161457664','1161576448','1161580544','1161617408','1161625600','1161764864','1161773056','1161777152','1161818112','1161822208','1162018816','1162022912','1162027008','1162031104','1162059776','1162067968','1162215424','1162280960','1162297344','1162305536','1162461184','1162477568','1162715136','1162723328','1162870784','1162887168','1163407360','1163411456','1167851520','1168113664','1168138240','1168146432','1168211968','1168220160','1168420864','1168424960','1168461824','1168465920','1168474112','1168506880','1168508928','1168509440','1168510976','1168515072','1168535552','1168539648','1168670720','1168687104','1168859136','1168863232','1168867328','1168875520','1168916480','1168932864','1168936960','1168949248','1168973824','1168982016','1169203200','1169211392','1170472960','1170481152','1170489344','1170497536','1170505728','1170522112','1175977984','1176502272','1176702976','1176707072','1176731648','1176735744','1176739840','1176743936','1176752128','1176756224','1176764416','1176768512','1176776704','1176780800','1176895488','1176928256','1177354240','1177419776','1177550848','1178075136','1178599424','1179910144','1191673856','1191706624','1192296448','1192361984','1192427520','1192460288','1192464384','1192468480','1192476672','1192488960','1192493056','1207975936','1207980032','1208008704','1208016896','1208020992',
|
277 |
-
'1208025088','1208074240','1208082432','1208090624','1208107008','1208590336','1208598528','1208647680','1208659968','1208721408','1208729600','1208770560','1208774656','1208778752','1208795136','1208852480','1208860672','1208918016','1208922112','1208954880','1208958976','1208975360','1208983552','1209204736','1209212928','1209434112','1209442304','1209647104','1209663488','1209729024','1209786368','1209810944','1209819136','1209917440','1209925632','1210449920','1210580992','1210851328','1210925056','1210941440','1211236352','1211269120','1211318272','1211334656','1211432960','1211473920','1211596800','1211613184','1216872448','1217396736','1219256320','1219264512','1219272704','1219276800','1241743360','1241759744','1242300416','1242562560','1244659712','1244790784','1244831744','1244839936','1244848128','1244852224','1244864512',
|
278 |
-
'1244872704','1245184000','1245446144','1246904320','1246912512','1246937088','1246945280','1247494144','1248864256','1248866304','1248879616','1248880640','1248885760','1248886784','1248899072','1248900096','1248902144','1248902656','1248902912','1248903168','1248913408','1248915456','1248919552','1248920576','1248921600','1248922624','1248923648','1248924672','1248925696','1248937984','1248939008','1248946176','1248947200','1248956416','1248957440','1248958464','1248959488','1248964608','1248966656','1248970752','1248971776','1248998400','1248999424','1249003520','1249005568','1249010688','1249011712','1249019904','1249020928',
|
279 |
-
'1249029120','1249030144','1249032192','1249033216','1249036288','1249037312','1249038336','1249040384','1249046528','1249047552','1249082368','1249083392','1249099776','1249101824','1249102848','1249103872','1249106944','1249107968','1249130496','1249131520','1249139712','1249140736','1249146880','1249147904','1249163264',
|
280 |
-
'1249165312','1249171456','1249173504','1249191936','1249193984','1249195008','1249196032','1249203200','1249204224','1249210368','1249212416','1249217536','1249218560','1249236992','1249239040','1249245184','1249247232','1249256448','1249257472','1249260544','1249261568','1249267712','1249268736','1249272832','1249273856','1249281024','1249282048','1249310720','1249311744','1249312768','1249313792','1249335296','1249337344','1249359872','1249361920','1249373184','1249374208','1249379328','1249380352','1249383424','1249384448','1249386496','1249391616','1249392640','1249396736','1249397760','1249398784','1249409024','1249410048','1249434624',
|
281 |
-
'1249435648','1249449984','1249451008','1249452032','1249453056','1249474560','1249475584','1249481728','1249482752','1249484800','1249486848','1249506304','1249507328','1249522688','1249523712','1249531904','1249533952','1249542144','1249544192','1249562624','1249564672','1249571840',
|
282 |
-
'1249572864','1249576960','1249577984','1249592320','1249593344','1249598464','1249599488','1249609728','1249611776','1249796096','1249804288','1249886208','1249902592','1254490112','1254555648','1254621184','1254629376','1254989824','1254998016','1255002112','1255006208','1255047168','1255055360','1255276544','1255342080','1255489536','1255505920','1255514112','1255522304','1255571456','1255579648','1255669760','1255735296','1255972864','1255981056','1256001536','1256005632','1256030208','1256034304','1256079360','1256087552','1264746496','1264750592','1264762880','1264766976','1266147328','1266155520','1268252672','1268776960','1275600896','1275604992','1275621376','1275625472','1275666432','1275674624','1275707392','1275715584','1275756544','1275772928','1275789312','1275822080','1279262720','1279787008','1279848448','1279852544','1280000000','1280032768','1280040960','1280049152','1280073728','1280081920','1280090112','1280098304','1280102400','1280126976','1280131072','1280139264','1291845632','1292894208','1293156352','1293549568','1293680640','1293811712','1293942784','1294073856','1294204928','1294237696','1294270464','1294303232','1294336000','1294368768','1294401536','1294434304','1294467072','1294499840','1294532608','1294598144','1294630912','1294663680','1294696448','1294729216','1294761984','1294794752','1294827520','1294860288','1294893056','1294925824','1294958592','1294991360','1295056896','1295122432','1295253504','1295319040','1295384576','1295450112','1295515648','1295777792','1296039936','1296072704','1296105472','1296171008','1296203776','1296236544','1296269312','1296302080','1296334848','1296367616','1296400384','1296433152','1296465920','1296498688','1296531456','1296564224','1296566272','1296568320',
|
283 |
-
'1296570368','1296574464','1296576512','1296578560','1296580608','1296582656','1296584704','1296586752','1296588800','1296590848','1296592896','1296594944','1296596992','1296599040','1296601088','1296605184','1296607232','1296609280','1296611328','1296613376','1296615424','1296617472','1296619520','1296621568','1296623616','1296625664','1296629760','1296635904','1296637952','1296640000','1296642048','1296644096','1296646144','1296648192','1296650240','1296652288','1296654336','1296656384','1296658432','1296662528','1296664576','1296666624','1296670720','1296672768','1296674816','1296676864','1296678912','1296680960','1296683008','1296685056','1296687104','1296689152','1296691200','1296693248','1296695296','1296697344','1296699392','1296701440','1296703488','1296705536','1296707584','1296709632','1296711680','1296713728','1296715776','1296717824','1296719872','1296721920','1296723968','1296726016','1296728064','1296730112','1296732160','1296734208','1296736256','1296738304','1296740352','1296744448','1296748544','1296750592','1296752640','1296754688','1296756736','1296758784','1296760832','1296764928','1296769024','1296771072','1296773120','1296775168',
|
284 |
-
'1296779264','1296781312','1296783360','1296785408','1296787456','1296789504','1296791552','1296793600','1296795648','1296797696','1296799744','1296801792','1296803840','1296805888','1296807936','1296812032','1296814080','1296816128','1296818176','1296820224','1296822272','1296824320','1296826368','1296842752','1296859136','1296875520','1296891904','1296908288','1296924672','1296941056','1296957440','1296973824','1296990208','1297006592','1297022976','1297039360','1297055744','1297072128','1297088512','1297121280','1297154048','1297168384','1297170432','1297170944','1297171456','1297172480','1297172992','1297173504','1297175552','1297176320','1297176832','1297177600','1297182720','1297184768','1297185280','1297190144','1297190400','1297203200','1297211392','1297217536','1297219584','1297350656','1297416192','1297481728','1297514496','1297547264','1297549312','1297551360','1297553408','1297555456','1297559552','1297561600','1297563648','1297565696','1297567744','1297569792','1297571840','1297573888','1297575936',
|
285 |
-
'1297577984','1297580032','1297582080','1297584128','1297588224','1297590272','1297592320','1297594368','1297596416','1297598464','1297602560','1297604608','1297606656','1297610752','1297612800','1297629184','1297645568','1297661952','1297678336','1297694720','1297711104','1297727488','1297743872','1297760256','1297776640','1297793024','1297809408','1297825792','1297842176','1297858560','1297860608','1297862656','1297864704','1297866752','1297868800','1297870848','1297872896','1297874944','1297883136','1297891328','1297899520','1297915904','1297924096','1297932288','1297940480','1297948672','1297956864','1297965056','1297973248','1297981440','1297989632','1297997824','1298006016','1298022400','1298030592','1298038784','1298046976','1298063360','1298065408','1298067456','1298071552','1298073600','1298075648','1298077696','1298079744','1298081792','1298083840','1298085888','1298087936','1298089984','1298092032','1298094080','1298096128','1298098176','1298100224','1298102272','1298104320','1298106368','1298108416','1298110464','1298112512','1298114560','1298116608','1298118656','1298120704','1298122752','1298124800','1298126848','1298128896',
|
286 |
-
'1298130944','1298132992','1298135040','1298137088','1298661376','1298677760','1298694144','1298710528','1298726912','1298743296','1298759680','1298776064','1298792448','1298825216','1298841600','1298857984','1298874368','1298907136','1298923520','1298939904','1298956288','1298972672','1298989056','1299005440','1299021824','1299038208','1299054592','1299070976','1299087360','1299103744','1299120128','1299136512','1299169280','1299174400','1299178496','1299185664','1299447808','1299709952','1299972096','1300234240','1302331392','1303379968','1304428544','1305477120','1305739264','1306001408','1306263552','1306271744','1306279936','1306288128','1306296320','1306312704','1306320896','1306329088','1306337280','1306345472','1306353664','1306361856','1306370048','1306378240','1306386432','1306394624','1306402816','1306411008','1306419200','1306427392','1306435584','1306451968','1306460160','1306468352','1306476544','1306492928','1306501120','1306509312','1306525696','1307049984','1307066368','1307074560','1307082752','1307092992','1307095040','1307097088','1307099136','1307107328','1307115520','1307123712',
|
287 |
-
'1307131904','1307140096','1307148288','1307156480','1307172864','1307181056','1307189248','1307191296','1307193344','1307195392','1307197440','1307205632','1307213824','1307222016','1307230208','1307238400','1307246592','1307254784','1307262976','1307271168','1307279360','1307287552','1307295744','1307303936','1307312128','1307320320','1307336704','1307344896','1307353088','1307361280','1307369472','1307377664','1307385856','1307394048','1307402240','1307410432','1307418624','1307426816','1307435008','1307437056','1307441152','1307443200','1307451392','1307459584','1307467776','1307484160','1307492352','1307500544','1307508736','1307516928','1307525120','1307533312','1307541504','1307549696','1307557888','1307574272','1307578368','1307582464','1307586560','1307590656','1307594752','1307598848','1307602944','1307607040','1307611136','1307619328','1307623424','1307627520','1307631616','1307635712','1307639808','1307643904','1307652096','1307656192','1307660288','1307664384','1307668480','1307672576','1307676672','1307680768','1307684864','1307688960','1307693056','1307697152','1307701248','1307709440','1307713536','1307717632','1307721728','1307725824','1307729920',
|
288 |
-
'1307734016','1307738112','1307742208','1307746304','1307750400','1307754496','1307758592','1307762688','1307766784','1307770880','1307774976','1307779072','1307787264','1307795456','1307803648','1307807744','1307811840','1307815936','1307820032','1307824128','1307828224','1307832320','1307836416','1307840512','1307844608','1307848704','1307852800','1307856896','1307860992','1307865088','1307869184','1307873280','1307877376','1307881472','1307885568','1307889664','1307893760','1307897856','1307901952','1307906048','1307910144','1307914240','1307918336','1307922432','1307926528','1307930624','1307934720','1307938816','1307942912','1307947008','1307951104','1307959296','1307963392','1307967488','1307971584','1307983872','1307987968','1307992064','1307996160','1308000256','1308004352','1308008448','1308012544','1308016640','1308020736','1308024832','1308033024','1308037120','1308041216','1308049408','1308053504','1308055552','1308065792','1308069888','1308073984','1308078080','1308080128','1308082176','1308084224','1308086272','1308088320','1308090368','1308092416','1308096512','1308098560','1308360704','1308622848','1308884992','1309147136','1309409280','1309671424','1309933568',
|
289 |
-
'1310195712','1310197760','1310199808','1310201856','1310203904','1310205952','1310208000','1310210048','1310212096','1310214144','1310216192','1310222336','1310224384','1310226432','1310228480','1310230528','1310232576','1310234624','1310236672','1310238720','1310240768','1310242816','1310244864','1310246912','1310248960','1310251008','1310255104','1310257152','1310259200','1310261248','1310277632','1310310400','1310326784','1310343168','1310359552','1310392320','1310408704','1310425088','1310457856','1310474240','1310490624','1310507008','1310523392','1310556160','1310572544','1310588928','1310605312','1310621696','1310638080','1310654464','1310656512','1310658560','1310660608','1310662656','1310664704','1310666752','1310668800','1310670848','1310672896','1310674944','1310676992','1310679040','1310681088','1310683136','1310685184','1310687232','1310689280','1310695424','1310695936','1310696448','1310696704','1310696960','1310697472','1310699520','1310705664','1310707712','1310707968','1310708224','1310708480','1310708736','1310709248','1310709760','1310711808','1310713856','1310715904','1310717952','1310720000','1310851072','1310982144','1311113216','1311244288',
|
290 |
-
'1311246336','1311248384','1311250432','1311252480','1311254528','1311256576','1311258624','1311262720','1311264768','1311266816','1311268864','1311270912','1311272960','1311275008','1311277056','1311279104','1311281152','1311285248','1311289344','1311291392','1311293440','1311295488','1311297536','1311299584','1311301632','1311303680','1311307776','1311309824','1311311872','1311315968','1311318016','1311320064','1311324160','1311326208','1311328256','1311332352','1311338496','1311340544','1311342592','1311344640','1311346688','1311348736','1311350784','1311352832','1311354880','1311356928','1311358976','1311361024','1311363072','1311365120','1311367168','1311369216','1311371264','1311373312','1311375360','1311506432','1311637504','1312292864','1312817152','1313865728','1313931264','1313996800','1314062336','1314127872','1314193408','1314258944','1314324480','1314390016','1314455552','1314521088','1314586624','1314652160','1314717696','1314783232','1314848768','1314914304','1315045376','1315176448','1315307520','1315438592','1315504128','1315569664','1315700736','1315704832','1315708928','1315713024','1315717120','1315725312','1315729408',
|
291 |
-
'1315733504','1315737600','1315741696','1315745792','1315749888','1315758080','1315762176','1315766272','1315770368','1315774464','1315778560','1315780608','1315782656','1315786752','1315790848','1315794944','1315803136','1315807232','1315815424','1315819520','1315823616','1315827712','1315831808','1315835904','1315840000','1315844096','1315848192','1315852288','1315856384','1315860480','1315864576','1315868672','1315872768','1315876864','1315880960','1315885056','1315889152','1315893248','1315897344','1315901440','1315905536','1315909632','1315913728','1315917824','1315921920','1315926016','1315930112','1315934208','1315938304','1315942400','1315946496','1315950592','1315954688','1315958784','1315962880','1317011456','1317044224','1317076992','1317109760','1317142528','1317175296','1317208064','1317240832','1317273600','1317306368','1317339136','1317371904','1317404672','1317437440','1317470208','1317502976','1317535744','1317552128','1317568512','1317584896','1317601280','1317617664','1317625856','1317627904','1317629952','1317634048','1317650432','1317666816','1317683200','1317699584','1317715968','1317732352','1317748736','1317765120','1317781504','1317814272','1317830656',
|
292 |
-
'1317847040','1317863424','1317879808','1317896192','1317912576','1317928960','1317945344','1317978112','1317994496','1318010880','1318027264','1318043648','1318584320','1318592512','1318600704','1318608896','1318617088','1318625280','1318633472','1318649856','1318658048','1318666240','1318674432','1318682624','1318690816','1318699008','1318707200','1318715392','1318723584','1318731776','1318739968','1318748160','1318756352','1318764544','1318780928','1318789120','1318797312','1318805504','1318813696','1318821888','1318838272','1318846464','1318854656','1318862848','1318871040','1318879232','1318887424','1318895616','1318903808','1318912000','1318920192','1318928384','1318936576','1318944768','1318961152','1318969344','1318977536','1318985728','1319002112','1319010304','1319018496','1319026688','1319034880','1319043072','1319051264','1319059456','1319067648','1319075840','1319084032','1319092224','1319100416','1319108608','1321205760','1325400064','1329594368','1330642944','1331691520','1331757056','1331822592','1331824640','1331826688','1331828736','1331830784',
|
293 |
-
'1331832832','1331834880','1331836928','1331838976','1331841024','1331843072','1331845120','1331847168','1331849216','1331851264','1331853312','1331855360','1331857408','1331859456','1331861504','1331863552','1331865600','1331871744','1331873792','1331877888','1331879936','1331881984','1331886080','1331888128','1331890176','1331892224','1331894272','1331896320','1331898368','1331900416','1331902464','1331904512','1331908608','1331912704','1331914752','1331916800','1331918848','1331920896','1331922944','1331924992','1331927040','1331929088','1331931136','1331933184','1331935232','1331937280','1331939328','1331941376','1331943424','1331945472','1331947520','1331949568','1331951616','1331953664','1332019200','1332084736','1332150272','1332215808','1332346880','1332412416','1332477952','1332609024','1332613120','1332617216','1332625408','1332629504','1332633600','1332637696','1332641792','1332645888','1332654080','1332658176','1332662272','1332670464','1332740096','1333264384','1333297152','1333362688','1333395456','1333428224','1333460992','1333493760','1333526528','1333551104','1333559296','1333592064','1333624832','1333657600','1333690368','1333723136','1333755904',
|
294 |
-
'1333788672','1334050816','1334059008','1334067200','1334075392','1334083584','1334091776','1334099968','1334108160','1334116352','1334124544','1334132736','1334165504','1334173696','1334181888','1334190080','1334198272','1334206464','1334214656','1334222848','1334231040','1334239232','1334247424','1334255616','1334263808','1334272000','1334280192','1334288384','1334296576','1334304768','1334312960','1334345728','1334378496','1334411264','1334444032','1334509568','1334542336','1334575104','1334579200','1334583296','1334591488','1334595584','1334599680','1334603776','1334607872','1334611968','1334616064','1334620160','1334624256','1334628352','1334632448','1334636544','1334640640','1334644736','1334648832','1334652928','1334661120','1334665216','1334669312','1334673408','1334677504','1334681600','1334685696','1334689792','1334693888','1334702080','1334706176','1334710272','1334714368','1334718464','1334722560','1334726656','1334734848','1334738944','1334743040','1334747136','1334755328','1334759424','1334763520','1334767616','1334771712','1334779904','1334784000','1334788096','1334792192','1334794240','1334796288','1334800384','1334804480','1334808576',
|
295 |
-
'1334812672','1334816768','1334820864','1334824960','1334829056','1334833152','1334837248','1335885824','1336016896','1336147968','1336279040','1336410112','1336541184','1336543232','1336545280','1336547328','1336549376','1336551424','1336553472','1336555520','1336557568','1336559616','1336561664','1336563712','1336567808','1336569856','1336571904','1336573952','1336576000','1336580096','1336584192','1336586240','1336588288','1336590336','1336592384','1336594432','1336596480','1336598528','1336600576','1336602624','1336604672','1336606720','1336608768','1336610816','1336612864','1336614912','1336616960','1336619008','1336621056','1336623104','1336625152','1336627200','1336629248','1336631296','1336633344','1336635392','1336637440','1336639488','1336643584','1336645632','1336647680','1336649728','1336651776','1336653824','1336655872','1336657920','1336659968','1336662016','1336664064','1336668160','1336670208','1336672256','1336705024','1336721408','1336737792','1336754176','1336770560','1336786944','1336811520','1336827904','1336836096','1336838144','1336842240','1336844288','1336846336','1336848384','1336850432','1336852480','1336868864','1336885248','1336901632','1336918016','1336934400',
|
296 |
-
'1337458688','1337982976','1342177280','1342701568','1343225856','1343750144','1344798720','1345323008','1345847296','1345978368','1346109440','1346240512','1346371584','1346375680','1346379776','1346383872','1346387968','1346392064','1346396160','1346400256','1346404352','1346408448','1346412544','1346416640','1346420736','1346428928','1346433024','1346441216','1346445312','1346449408','1346453504','1346461696','1346469888','1346473984','1346478080','1346482176','1346486272','1346494464','1346498560','1346502656','1346510848','1346519040','1346527232','1346531328','1346535424','1346539520','1346543616','1346547712','1346555904','1346560000','1346564096','1346568192','1346572288','1346580480','1346584576','1346592768','1346596864','1346600960','1346605056','1346609152','1346617344','1346621440','1346625536','1346629632','1346637824','1346650112','1346654208','1346658304','1346666496','1346670592','1346674688','1346678784','1346686976','1346691072','1346695168','1346699264','1346707456','1346711552','1346715648','1346723840','1346732032',
|
297 |
-
'1346736128','1346740224','1346744320','1346748416','1346752512','1346756608','1346760704','1346764800','1346768896','1346772992','1346777088','1346781184','1346789376','1346793472','1346797568','1346801664','1346805760','1346818048','1346822144','1346826240','1346830336','1346838528','1346842624','1346846720','1346854912','1346859008','1346863104','1346867200','1346871296','1346879488','1346883584','1346887680','1346891776','1346895872','1346899968','1346904064','1346908160','1346912256','1346920448','1346924544','1346928640','1346932736','1346936832','1346940928','1346945024','1346949120','1346957312','1346961408','1346965504','1346969600','1346973696','1346977792','1346985984','1346994176','1346998272','1347002368','1347006464','1347010560','1347014656','1347018752','1347022848','1347026944','1347035136','1347039232','1347043328','1347047424','1347051520','1347059712','1347067904','1347072000','1347076096','1347084288','1347092480','1347096576','1347100672','1347108864','1347112960','1347117056','1347121152','1347125248','1347129344','1347133440','1347141632','1347145728','1347149824','1347153920','1347158016','1347162112','1347166208','1347174400','1347182592','1347186688','1347190784','1347194880','1347198976','1347203072','1347207168','1347215360','1347223552','1347227648','1347231744','1347235840','1347239936','1347244032','1347248128','1347252224','1347256320','1347260416','1347264512','1347268608','1347272704','1347276800','1347280896','1347284992','1347289088','1347293184','1347297280','1347305472','1347309568','1347313664','1347325952','1347330048','1347338240','1347342336','1347346432','1347350528','1347354624','1347358720','1347362816','1347366912','1347371008','1347375104','1347379200','1347383296','1347387392','1347391488','1347395584','1347399680','1347403776','1347407872','1347411968','1347416064','1347420160','1347428352','1347432448','1347436544','1347440640','1347444736','1347452928','1347461120','1347465216','1347469312','1347473408','1347477504','1347481600','1347485696','1347493888','1347502080','1347518464','1347522560','1347526656','1347534848','1347538944','1347543040','1347547136',
|
298 |
-
'1347551232','1347555328','1347559424','1347567616','1347571712','1347575808','1347579904','1347588096','1347592192','1347600384','1347602432','1347608576','1347612672','1347616768','1347620864','1347624960','1347633152','1347637248','1347641344','1347649536','1347653632','1347657728','1347661824','1347665920','1347670016','1347674112','1347682304','1347686400','1347690496','1347694592','1347706880','1347710976','1347715072','1347723264','1347727360','1347731456','1347739648','1347747840','1347751936','1347756032','1347760128','1347764224','1347772416','1347776512','1347780608','1347784704','1347788800','1347792896','1347796992','1347801088','1347805184','1347809280','1347813376','1347817472','1347821568','1347825664','1347829760','1347833856','1347837952','1347846144','1347850240','1347854336','1347862528','1347866624','1347870720','1347874816','1347878912','1347887104','1347891200','1347895296','1347903488','1347907584','1347911680','1347915776','1347919872','1347923968','1347928064',
|
299 |
-
'1347932160','1347936256','1347940352','1347945472','1347947520','1347948544','1347952640','1347956736','1347960832','1347964928','1347969024','1347977216','1347985408','1347989504','1347993600','1348001792','1348005888','1348009984','1348014080','1348018176','1348026368','1348030464','1348034560','1348038656','1348042752','1348050944','1348055040','1348059136','1348063232','1348067328','1348071424','1348075520','1348083712','1348091904','1348096000','1348100096','1348104192','1348108288','1348112384','1348116480','1348120576','1348124672','1348128768','1348132864','1348136960','1348141056','1348145152','1348149248','1348153344','1348157440','1348165632','1348169728','1348173824','1348177920','1348182016','1348190208','1348194304','1348198400','1348202496','1348206592','1348218880','1348222976','1348231168','1348235264','1348239360','1348243456','1348247552','1348251648','1348255744','1348263936','1348268032','1348272128','1348280320','1348284416','1348288512','1348292608','1348296704','1348300800','1348304896','1348308992','1348313088','1348317184','1348321280','1348325376','1348329472',
|
300 |
-
'1348337664','1348341760','1348345856','1348349952','1348354048','1348358144','1348362240','1348366336','1348370432','1348374528','1348378624','1348382720','1348386816','1348390912','1348395008','1348399104','1348403200','1348407296','1348411392','1348415488','1348419584','1348427776','1348435968','1348440064','1348444160','1348448256','1348456448','1348460544','1348464640','1348468736','1348599808','1348730880','1348861952','1348993024','1349124096','1349255168','1349517312','1349763072','1349771264','1349779456','1349910528','1350041600','1350303744','1350434816','1350565888','1352663040','1353187328','1353318400','1353383936','1353449472','1353515008','1353646080','1353842688','1353973760','1354235904','1354301440','1354366976','1354432512','1354498048','1354563584','1354629120','1354694656','1354760192','1355022336','1355284480','1355415552','1355546624','1355808768','1356070912','1356201984','1356333056','1356464128','1356595200','1356857344',
|
301 |
-
'1356922880','1356988416','1357053952','1357119488','1357185024','1357250560','1357316096','1357381632','1357414400','1357447168','1357479936','1357512704','1357545472','1357578240','1357611008','1357643776','1357676544','1357709312','1357742080','1357774848','1357791232','1357807616','1357840384','1357873152','1357905920','1357910016','1357914112','1357922304','1357926400','1357930496','1357938688','1357942784','1357946880','1357955072','1357959168','1357963264','1357967360','1357971456','1357975552','1357979648','1357983744','1357985792','1357987840','1357991936','1357996032','1358000128','1358004224','1358008320','1358012416','1358016512','1358020608','1358028800','1358032896','1358036992','1358041088','1358045184','1358049280','1358061568','1358065664','1358069760','1358086144','1358090240','1358094336','1358102528','1358106624','1358110720','1358118912','1358123008','1358127104','1358131200','1358135296','1358139392','1358143488','1358147584','1358151680','1358155776','1358163968','1358168064','1358172160',
|
302 |
-
'1358176256','1358180352','1358184448','1358192640','1358196736','1358200832','1358209024','1358213120','1358217216','1358221312','1358225408','1358229504','1358233600','1358237696','1358249984','1358254080','1358262272','1358266368','1358274560','1358278656','1358282752','1358286848','1358290944','1358295040','1358299136','1358303232','1358307328','1358315520','1358323712','1358327808','1358331904','1358336000','1358344192','1358352384','1358356480','1358360576','1358364672','1358372864','1358376960','1358381056','1358385152','1358389248','1358397440','1358405632','1358409728','1358413824','1358422016','1358426112','1358430208','1358434304','1358438400','1358442496','1358446592','1358450688','1358454784','1358462976','1358467072','1358471168','1358475264','1358479360','1358483456','1358487552','1358491648','1358495744','1358499840','1358503936','1358508032','1358512128','1358516224','1358520320','1358528512','1358536704','1358540800','1358548992','1358551040','1358553088','1358557184','1358561280','1358573568','1358577664','1358585856','1358589952',
|
303 |
-
'1358594048','1358598144','1358602240','1358610432','1358614528','1358622720','1358626816','1358635008','1358639104','1358643200','1358647296','1358651392','1358655488','1358667776','1358675968','1358680064','1358688256','1358692352','1358696448','1358700544','1358704640','1358708736','1358712832','1358716928','1358721024','1358725120','1358733312','1358741504','1358745600','1358749696','1358753792','1358757888','1358766080','1358770176','1358774272','1358778368','1358782464','1358794752','1358798848','1358802944','1358807040','1358811136','1358815232','1358819328','1358823424','1358827520','1358831616','1358835712','1358839808','1358843904','1358848000','1358856192','1358860288','1358864384','1358872576','1358876672','1358884864','1358888960','1358893056','1358897152','1358905344','1358909440','1358913536','1358917632','1358921728','1358929920','1358934016','1358938112','1358946304','1358950400','1358954496','1358970880','1358987264','1359003648','1359020032','1359036416','1359052800','1359101952','1359118336','1359134720','1359151104',
|
304 |
-
'1359167488','1359183872','1359200256','1359216640','1359233024','1359249408','1359265792','1359282176','1359298560','1359314944','1359331328','1359347712','1359364096','1359380480','1359396864','1359413248','1359429632','1359446016','1359462400','1359470592','1359478784','1359511552','1359544320','1359577088','1359609856','1359642624','1359675392','1359708160','1359740928','1359773696','1359806464','1359839232','1359872000','1359904768','1359937536','1359970304','1360003072','1360011264','1360015360','1360019456','1360023552','1360027648','1360031744','1360039936','1360044032','1360048128','1360052224','1360056320','1360060416','1360064512','1360068608','1360072704','1360076800','1360084992','1360089088','1360093184','1360101376','1360105472','1360109568','1360113664','1360117760','1360121856','1360125952','1360130048','1360134144','1360138240','1360142336','1360146432','1360150528','1360158720','1360162816','1360175104','1360179200','1360183296','1360191488','1360195584','1360199680','1360203776','1360207872','1360211968','1360216064','1360224256','1360228352','1360232448','1360236544','1360240640','1360244736','1360257024','1360265216',
|
305 |
-
'1360269312','1360273408','1360281600','1360285696','1360289792','1360293888','1360302080','1360306176','1360310272','1360314368','1360318464','1360322560','1360326656','1360330752','1360334848','1360338944','1360343040','1360347136','1360351232','1360355328','1360359424','1360363520','1360365568','1360367616','1360371712','1360375808','1360379904','1360384000','1360388096','1360392192','1360396288','1360400384','1360404480','1360408576','1360420864','1360424960','1360429056','1360433152','1360437248','1360441344','1360445440','1360453632','1360457728','1360461824','1360465920','1360470016','1360474112','1360478208','1360482304','1360486400','1360494592','1360498688','1360515072','1360519168','1360531456','1360535552','1360539648','1360543744','1360547840','1360551936','1360556032','1360564224','1360568320','1360572416','1360576512','1360580608','1360584704','1360588800','1360590848','1360592896','1360596992','1360601088','1360605184','1360613376','1360617472','1360621568','1360625664','1360629760','1360633856','1360637952','1360642048','1360646144','1360650240','1360654336','1360658432','1360666624',
|
306 |
-
'1360674816','1360676864','1360678912','1360683008','1360691200','1360698880','1360699392','1360703488','1360707584','1360709632','1360711680','1360715776','1360728064','1360732160','1360736256','1360740352','1360752640','1360756736','1360760832','1360764928','1360769024','1360773120','1360777216','1360781312','1360785408','1360793600','1360797696','1360805888','1360809984','1360814080','1360818176','1360822272','1360826368','1360830464','1360838656','1360842752','1360846848','1360855040','1360859136','1360863232','1360867328','1360879616','1360883712','1360887808','1360891904','1360896000','1360900096','1360916480','1360920576','1360928768','1360932864','1360936960','1360941056','1360945152','1360949248','1360953344','1360957440','1360961536','1360965632','1360977920','1360986112','1360994304','1360998400','1361002496','1361006592','1361010688','1361018880','1361022976','1361027072','1361039360','1361041408','1361043456','1361051648','1362100224','1362755584','1362886656','1363017728',
|
307 |
-
'1363148800','1363410944','1363673088','1363935232','1364197376','1364262912','1364328448','1364459520','1364525056','1364590592','1364721664','1364725760','1364733952','1364738048','1364742144','1364746240','1364750336','1364754432','1364758528','1364762624','1364766720','1364770816','1364774912','1364779008','1364787200','1364795392','1364799488','1364803584','1364809728','1364815872','1364819968','1364824064','1364828160','1364832256','1364836352','1364840448','1364844544','1364852736','1364856832','1364860928','1364865024','1364869120','1364873216','1364877312','1364881408','1364885504','1364889600','1364893696','1364897792','1364901888','1364905984','1364910080','1364914176','1364918272','1364922368','1364924416','1364926464','1364934656','1364938752','1364942848','1364946944','1364951040','1364959232','1364963328','1364967424','1364971520','1364975616','1364979712','1364983808','1364992000','1364996096','1365000192','1365004288','1365008384','1365012480','1365016576','1365020672','1365024768','1365028864','1365032960','1365041152','1365045248','1365049344','1365057536','1365061632','1365065728',
|
308 |
-
'1365073920','1365078016','1365082112','1365090304','1365094400','1365098496','1365102592','1365106688','1365110784','1365114880','1365118976','1365127168','1365131264','1365139456','1365147648','1365155840','1365159936','1365164032','1365172224','1365176320','1365180416','1365184512','1365192704','1365196800','1365200896','1365204992','1365209088','1365213184','1365217280','1365221376','1365225472','1365229568','1365233664','1365237760','1365241856','1365245952','1366294528','1367343104','1369440256','1369473024','1369505792','1369509888','1369518080','1369520128','1369520640','1369520896','1369521152','1369521664','1369521920','1369522176','1369530368','1369530880','1369531392','1369534976','1369535232','1369535488','1369538560','1369554944','1369559040','1369567232','1369571328','1369585664','1369591808','1369595904','1369604096','1369620480','1369624576','1369626624','1369636864','1369638912','1369640960','1369655296','1369657344','1369659392','1369661440','1369665536','1369677824',
|
309 |
-
'1369686016','1369690112','1369694208','1369702400','1369833472','1369964544','1369997312','1370030080','1370062848','1370095616','1370128384','1370161152','1370193920','1370226688','1370259456','1370292224','1370324992','1370357760','1370390528','1370423296','1370439680','1370456064','1370488832','1370619904','1370750976','1370882048','1371013120','1371078656','1371144192','1371201536','1371205632','1371209728','1371275264','1371340800','1371406336','1371471872','1371537408','1371602944','1371668480','1371734016','1371799552','1371865088','1371930624','1371996160','1372061696','1372069888','1372073984','1372078080','1372082176','1372086272','1372090368','1372094464','1372098560','1372102656','1372106752','1372110848','1372114944','1372119040','1372123136','1372127232','1372131328','1372135424','1372139520','1372143616','1372147712','1372151808','1372160000','1372164096','1372168192','1372172288','1372176384','1372180480','1372184576','1372188672','1372192768','1372323840','1372585984','1372618752','1372651520',
|
310 |
-
'1372684288','1372717056','1372749824','1372782592','1372815360','1372848128','1373110272','1373175808','1373241344','1373306880','1373372416','1373437952','1373503488','1373569024','1373634560','1374683136','1375207424','1375731712','1378877440','1379926016','1380188160','1380450304','1380712448','1380974592','1381105664','1381236736','1381367808','1381498880','1381761024','1382023168','1382039552','1382055936','1382072320','1382088704','1382105088','1382137856','1382154240','1382170624','1382187008','1382203392','1382205440','1382213632','1382219776','1382252544','1382268928','1382285312','1382301696','1382318080','1382334464','1382350848','1382367232','1382400000','1382416384','1382432768','1382449152','1382465536','1382481920','1382498304','1382514688','1382531072','1382547456','1382809600','1383071744','1383088128','1383096320','1383104512','1383112704','1383114752','1383116800','1383120896','1383129088','1383137280','1383145472','1383153664','1383161856','1383170048','1383186432','1383194624','1383202816','1383211008','1383219200','1383227392','1383243776','1383251968','1383260160','1383268352','1383272192','1383272448','1383276544','1383284736','1383292928','1383301120','1383309312','1383317504','1383325696','1383333888','1383350272','1383358464','1383374848','1383383040','1383391232','1383399424','1383407616','1383415808','1383424000','1383432192','1383440384','1383448576','1383456768','1383464960','1383469056','1383471104','1383473152','1383481344','1383497728','1383505920','1383514112','1383522304','1383530496','1383538688','1383546880','1383555072','1383563264','1383571456','1383579648','1383587840','1383591936','1383596032','1384120320','1384153088','1384185856','1384218624','1384251392','1384267776','1384284160','1384316928','1384349696','1384382464','1384415232','1384480768','1384513536','1384546304','1384579072','1384611840','1384644608','1384660992','1384677376','1384693760','1384710144','1384726528','1384742912','1384759296','1384775680','1384792064','1384808448','1384824832','1384841216','1384857600','1384873984','1384890368','1384923136','1384939520','1384955904','1384972288','1384988672','1385005056','1385021440','1385037824','1385054208','1385070592','1385086976','1385103360','1385119744',
|
311 |
-
'1385136128','1385152512','1385168896','1385177088','1385185280','1385193472','1385201664','1385209856','1385218048','1385226240','1385234432','1385242624','1385250816','1385259008','1385267200','1385275392','1385283584','1385287680','1385291776','1385299968','1385308160','1385316352','1385324544','1385332736','1385340928','1385349120','1385357312','1385365504','1385373696','1385381888','1385398272','1385406464','1385414656','1385422848','1385431040','1385439232','1385447424','1385455616','1385463808','1385480192','1385488384','1385496576','1385504768','1385512960','1385521152','1385529344','1385537536','1385545728','1385553920','1385562112','1385570304','1385578496','1385586688','1385594880','1385603072','1385611264','1385619456','1385627648','1385635840','1385644032','1385652224','1385660416','1385668608','1385676800','1385684992','1385824256','1385955328','1386086400','1386217472','1386283008','1386348544','1386414080','1386479616','1386545152','1386610688','1386676224','1386741760','1387331584','1387397120',
|
312 |
-
'1387462656','1387528192','1387593728','1387659264','1387790336','1388314624','1388322816','1388331008','1388339200','1388347392','1388363776','1388371968','1388380160','1388396544','1388404736','1388412928','1388421120','1388429312','1388437504','1388445696','1388453888','1388462080','1388470272','1388478464','1388486656','1388494848','1388503040','1388519424','1388527616','1388535808','1388544000','1388552192','1388560384','1388568576','1388576768','1388580864','1388584960','1388593152','1388601344','1388609536','1388617728','1388625920','1388634112','1388642304','1388650496','1388658688','1388666880','1388675072','1388683264','1388691456','1388699648','1388707840','1388716032','1388724224','1388732416','1388740608','1388748800','1388756992','1388765184','1388773376','1388781568','1388789760','1388797952','1388806144','1388814336','1388822528','1388830720','1388838912','1388871680','1388904448','1388937216','1388969984','1389002752','1389035520','1389068288','1389101056','1389133824','1389166592','1389199360','1389232128','1389264896','1389297664','1389330432','1389363200','1389379584','1389395968','1389412352','1389428736','1389445120','1389461504','1389477888','1389494272',
|
313 |
-
'1389510656','1389527040','1389543424','1389576192','1389592576','1389608960','1389625344','1389641728','1389658112','1389674496','1389690880','1389707264','1389723648','1389756416','1389772800','1389789184','1389805568','1389821952','1389838336','1389854720','1389871104','1389887488','1389953024','1390018560','1390084096','1390149632','1390215168','1390280704','1390346240','1390411776','1392508928','1394606080','1396703232','1396834304','1396899840','1396965376','1396973568','1396981760','1396989952','1396998144','1397006336','1397014528','1397022720','1397030912','1397039104','1397047296','1397063680','1397071872','1397096448','1397227520','1397489664','1397751808','1398276096','1398800384','1398833152','1398865920','1398867968','1398872064','1398874112','1398876160','1398880256','1398882304','1398884352','1398886400','1398888448','1398890496','1398892544','1398896640','1398898688','1398931456','1398964224','1398996992','1399029760','1399062528','1399095296','1399128064','1399160832','1399193600','1399226368','1399259136','1399291904','1399324672','1399586816','1399717888','1399848960','1400111104','1400373248','1400635392','1400897536',
|
314 |
-
'1400963072','1401028608','1401094144','1401159680','1401225216','1401290752','1401356288','1401421824','1401423872','1401425920','1401427968','1401430016','1401432064','1401436160','1401438208','1401440256','1401444352','1401446400','1401448448','1401450496','1401452544','1401454592','1401456640','1401460736','1401462784','1401464832','1401466880','1401468928','1401470976','1401473024','1401475072','1401477120','1401479168','1401481216','1401485312','1401487360','1401489408','1401491456','1401493504','1401495552','1401497600','1401499648','1401501696','1401503744','1401505792','1401509888','1401511936','1401513984','1401516032','1401518080','1401520128','1401522176','1401526272','1401528320','1401530368','1401532416','1401534464','1401536512','1401538560','1401540608','1401542656','1401544704','1401546752','1401548800','1401550848','1401552896','1401554944','1401556992','1401563136','1401565184','1401567232','1401569280','1401585664','1401602048','1401618432','1401634816','1401651200','1401667584','1401683968','1401749504','1401765888','1401782272','1401815040','1401817088','1401819136','1401821184','1401825280','1401829376','1401831424','1401833472','1401835520','1401837568','1401839616',
|
315 |
-
'1401841664','1401843712','1401847808','1401849856','1401851904','1401853952','1401856000','1401858048','1401868288','1401870336','1401872384','1401874432','1401876480','1401878528','1401880576','1401882624','1401884672','1401886720','1401888768','1401890816','1401892864','1401894912','1401896960','1401901056','1401903104','1401905152','1401911296','1401913344','1401917440','1401919488','1401921536','1401923584','1401925632','1401927680','1401929728','1401931776','1401933824','1401935872','1401937920','1401939968','1401942016','1401944064','1401946112','1401962496','1401978880','1401995264','1402011648','1402028032','1402044416','1402060800','1402077184','1402093568','1402109952','1402142720','1402159104','1402175488','1402191872','1402208256','1402224640','1402241024','1402257408','1402273792','1402290176','1402306560','1402322944','1402339328','1402355712','1402372096','1402388480','1402404864','1402408960','1402413056','1402417152','1402421248','1402437632','1402454016','1402470400','1402994688','1403256832','1403322368','1403387904','1403396096','1403404288','1403412480','1403420672','1403428864','1403437056','1403445248','1403461632','1403469824','1403486208','1403494400','1403502592','1403510784','1403518976','1403535360','1403551744','1403568128','1403584512','1403600896','1403617280','1403633664','1403650048','1403666432','1403699200','1403715584','1403731968','1403748352','1403764736','1403781120','1403797504','1403813888','1403830272','1403846656','1403863040','1403879424','1403895808','1403912192','1403928576','1403944960','1403953152','1403961344','1403977728','1403994112','1404010496','1404026880','1404043264','1405091840','1406140416','1406205952','1406271488','1406337024','1406402560','1406468096','1406533632','1406599168','1406664704','1406672896','1406681088','1406689280','1406697472','1406705664','1406713856','1406722048','1406730240','1406746624','1406754816','1406763008','1406771200','1406779392','1406787584','1406795776','1406803968','1406812160','1406820352','1406828544','1406836736','1406844928','1406853120','1406861312','1406869504','1406877696','1406887936','1406889984','1406894080','1406902272','1406910464','1406918656','1406926848','1406935040','1406951424','1406959616','1406967808','1406976000','1406984192','1407000576',
|
316 |
-
'1407016960','1407025152','1407033344','1407049728','1407057920','1407066112','1407074304','1407090688','1407098880','1407107072','1407115264','1407123456','1407131648','1407139840','1407148032','1407156224','1407164416','1407172608','1407180800','1407188992','1407320064','1407451136','1407483904','1407516672','1407549440','1407582208','1407614976','1407680512','1407713280','1407778816','1407844352','1407909888','1407975424','1408040960','1408106496','1408172032','1408237568','1408270336','1408303104','1408335872','1408368640','1408376832','1408385024','1408393216','1408397312','1408401408','1408434176','1408436224','1408438272','1408440320','1408442368','1408444416','1408450560','1408454656','1408456704','1408458752','1408460800','1408462848','1408466944','1408499712','1408532480','1408598016','1408630784','1408663552','1408696320','1408729088','1408761856','1409286144','1409548288','1409810432','1409941504','1410007040','1410072576','1410203648','1410269184','1410334720','1410342912','1410351104','1410359296','1410367488','1410375680','1410383872','1410392064','1410400256','1410408448','1410416640','1410424832','1410433024','1410441216','1410449408','1410457600',
|
317 |
-
'1410465792','1410473984','1410490368','1410498560','1410506752','1410514944','1410523136','1410531328','1410539520','1410547712','1410555904','1410564096','1410572288','1410588672','1410596864','1410605056','1410613248','1410621440','1410629632','1410637824','1410646016','1410654208','1410662400','1410670592','1410678784','1410686976','1410695168','1410711552','1410719744','1410727936','1410736128','1410744320','1410752512','1410760704','1410768896','1410777088','1410785280','1410793472','1410801664','1410809856','1410818048','1410826240','1410834432','1410842624','1410850816','1410859008','1411383296','1411448832','1411514368','1411579904','1411645440','1411710976','1411776512','1411778560','1411780608','1411784704','1411788800','1411792896','1411796992','1411805184','1411809280','1411813376','1411817472','1411821568','1411825664','1411829760','1411833856','1411837952','1411842048','1411850240','1411858432','1411870720','1411872768','1411874816','1411876864','1411878912','1411880960','1411883008','1411887104','1411889152','1411895296','1411899392','1411901440','1411903488','1411907584','1411923968','1411940352','1411973120',
|
318 |
-
'1412005888','1412038656','1412071424','1412104192','1412136960','1412169728','1412202496','1412235264','1412300800','1412333568','1412366336','1412399104','1412400128','1412400640','1412403712','1412403968','1412405760','1412406272','1412408832','1412409344','1412412160','1412412672','1412413440','1412413952','1412414720','1412414976','1412415488','1412431872','1412562944','1412628480','1412644864','1412661248','1412677632','1412685824','1412694016','1412710400','1412726784','1412743168','1412775936','1412792320','1412808704','1412825088','1412841472','1412857856','1412874240','1412890624','1412907008','1412923392','1412939776','1412956160','1413480448','1414004736','1414266880','1414529024','1415053312','1415184384','1415315456','1415446528','1415577600','1416101888','1416364032','1416626176','1417150464','1417674752','1421869056','1422393344','1422491648','1422508032','1422512128','1422516224','1422520320','1422524416','1422589952','1422655488','1422721024','1422729216','1422737408','1422745600','1422753792','1422761984','1422770176','1422786560','1422852096','1422917632',
|
319 |
-
'1423441920','1423704064','1423966208','1424097280','1424228352','1424359424','1424490496','1424523264','1424556032','1424588800','1424621568','1424625664','1424629760','1424633856','1424637952','1424642048','1424646144','1424650240','1424654336','1424687104','1424719872','1424752640','1424785408','1424818176','1424850944','1424883712','1424916480','1424949248','1424965632','1424982016','1425014784','1425031168','1425047552','1425063936','1425080320','1425096704','1425113088','1425145856','1425162240','1425178624','1425195008','1425211392','1425227776','1425244160','1425260544','1425276928','1425293312','1425309696','1425326080','1425342464','1425358848','1425375232','1425391616','1425408000','1425424384','1425426432','1425428480','1425430528','1425432576','1425434624','1425436672','1425438720','1425440768','1425442816','1425444864','1425446912','1425448960','1425451008','1425461248','1425463296','1425467392','1425469440','1425471488',
|
320 |
-
'1425473536','1425474560','1425475584','1425481728','1425483776','1425484800','1425485824','1425506304','1425522688','1425539072','1425801216','1425833984','1425850368','1425866752','1425883136','1425899520','1425915904','1425932288','1425948672','1425965056','1425981440','1425997824','1426014208','1426030592','1426046976','1426063360','1426587648','1426604032','1426636800','1426653184','1426669568','1426685952','1426702336','1426718720','1426731008','1426735104','1426751488','1426767872','1426784256','1426800640','1426817024','1426833408','1426849792','1426866176','1426882560','1426898944','1426915328','1426931712','1426948096','1426964480','1426980864','1426997248','1427013632','1427030016','1427046400','1427062784','1427095552','1427111936','1427177472','1427243008','1427308544','1427374080','1427439616','1427505152','1427570688','1427636224','1427668992','1427701760','1427767296','1427800064','1427832832','1427865600','1427898368','1427914752','1427931136','1427947520','1427963904','1427980288','1427996672','1428013056','1428029440','1428045824','1428062208','1428078592','1428094976','1428103168','1428119552','1428121600','1428123648','1428127744','1428129792','1428131840','1428133888','1428135936','1428137984','1428140032','1428142080','1428144128','1428152320','1428160512','1429209088','1430257664','1430388736','1430519808','1430650880','1430781952','1431044096','1431306240','1431568384','1431830528','1431838720','1431846912','1431855104','1431863296','1431871488','1431879680','1431887872','1431896064','1431904256','1431912448','1431920640','1431928832','1431937024','1431945216','1431953408','1431961600','1431969792','1431977984','1431986176','1431994368','1432002560','1432010752','1432018944','1432024064','1432025088','1432027136','1432035328','1432043520','1432051712','1432054016','1432054272','1432054528','1432055808','1432056832','1432057344','1432058624','1432059904','1432068096','1432076288','1432084480','1432092672','1432100864','1432109056','1432125440','1432133632','1432150016','1432158208','1432166400','1432174592','1432182784','1432190976','1432199168','1432207360','1432215552','1432223744','1432240128','1432248320','1432256512','1432264704','1432272896','1432281088','1432289280','1432297472','1432305664','1432313856',
|
321 |
-
'1432322048','1432338432','1432346624','1433403392','1433411584','1433419776','1433427968','1433436160','1433444352','1433452544','1433460736','1433468928','1433477120','1433485312','1433493504','1433501696','1433509888','1433518080','1433526272','1433534464','1433542656','1433550848','1433559040','1433567232','1433575424','1433583616','1433591808','1433600000','1433608192','1433616384','1433624576','1433632768','1433640960','1433649152','1433657344','1433665536','1433673728','1433681920','1433690112','1433698304','1433706496','1433714688','1433722880','1433731072','1433739264','1433747456','1433755648','1433763840','1433772032','1433796608','1433804800','1433812992','1433821184','1433829376','1433831424','1433833472','1433835520','1433837568','1433839616','1433841664','1433843712','1433845760','1433847808','1433849856','1433851904','1433853952','1433856000','1433858048','1433860096','1433862144','1433864192','1433866240','1433870336','1433872384','1433874432','1433876480','1433878528','1433880576','1433882624','1433884672','1433886720','1433888768','1433890816','1433892864','1433894912','1433896960','1433899008','1433901056','1433905152','1433907200','1433909248','1433911296','1433913344','1433915392','1433917440',
|
322 |
-
'1433919488','1433921536','1433923584','1433925632','1433927680','1434189824','1434451968','1434517504','1434550272','1434583040','1434615808','1434648576','1434681344','1434714112','1434746880','1434779648','1434812416','1434845184','1434877952','1434910720','1434943488','1434976256','1435107328','1435238400','1435500544','1436024832','1436090368','1436155904','1436221440','1436286976','1436418048','1436422144','1436424192','1436426240','1436428288','1436430336','1436432384','1436436480','1436438528','1436440576','1436442624','1436444672','1436446720','1436450816','1436452864','1436454912','1436456960','1436459008','1436461056','1436463104','1436465152','1436467200','1436469248','1436471296','1436473344','1436475392','1436477440','1436479488','1436481536','1436483584','1436485632','1436487680','1436489728','1436491776','1436495872','1436497920','1436499968','1436504064','1436508160','1436510208','1436512256','1436514304','1436516352','1436520448','1436522496','1436524544','1436526592','1436528640','1436530688','1436532736','1436536832','1436538880','1436540928','1436542976','1436545024','1436547072','1436549120','1436811264','1437073408','1437335552',
|
323 |
-
'1437597696','1438121984','1438187520','1438253056','1438318592','1438384128','1438400512','1438433280','1438515200','1438580736','1438646272','1438662656','1438679040','1438695424','1438711808','1438728192','1438744576','1438748672','1438752768','1438760960','1438777344','1438793728','1438810112','1438826496','1438838784','1438840832','1438841856','1438842368','1438842880','1438859264','1438875648','1438892032','1438908416','1438924800','1438941184','1438957568','1438973952','1439006720','1439023104','1439039488','1439055872','1439072256','1439088640','1439105024','1439121408','1439154176','1439170560','1439236096','1439301632','1439305728','1439309824','1439318016','1439326208','1439330304','1439334400','1439338496','1439346688','1439354880','1439358976','1439367168','1439383552','1439399936','1439432704','1439437824','1439438336','1439438848','1439439360','1439440384','1439440896','1439441920','1439442944','1439446528','1439447040','1439449088','1439450112','1439451648','1439451904','1439452160','1439452672','1439453184','1439457280','1439457792','1439459328','1439459840','1439461376','1439462400','1439463424','1439463936','1439466496','1439467008','1439467520','1439468032','1439470592','1439471616','1439473664','1439474688','1439482368','1439482880','1439485952','1439490048','1439498240','1439563776','1439629312','1439694848','1439825920','1439956992','1440251904','1440284672','1440317440','1440350208','1440382976','1440415744','1440448512','1440481280','1440514048','1440546816','1440579584','1440645120','1440653312','1440669696','1440671744','1440672768','1440710656','1440743424','1441267712','1441275904','1441284096','1441292288','1441300480','1441308672','1441316864','1441325056','1441333248','1441349632',
|
324 |
-
'1441357824','1441366016','1441374208','1441382400','1441390592','1441398784','1441415168','1441423360','1441431552','1441439744','1441447936','1441456128','1441464320','1441472512','1441480704','1441488896','1441497088','1441505280','1441521664','1441529856','1441538048','1441546240','1441554432','1441564672','1441566720','1441568768','1441570816','1441579008','1441587200','1441603584','1441611776','1441619968','1441628160','1441636352','1441644544','1441652736','1441660928','1441669120','1441677312','1441685504','1441693696','1441701888','1441710080','1441718272','1441726464','1441734656','1441742848','1441751040','1441759232','1441767424','1441775616','1441783808','1441792000','1442316288','1442381824','1442447360','1442512896','1442578432','1442643968','1442709504','1442775040','1442779136','1442783232','1442787328','1442791424','1442799616','1442803712','1442807808','1442811904','1442816000','1442820096','1442822144','1442824192','1442828288','1442832384','1442836480','1442840576','1444937728','1445068800','1445199872','1445330944','1445396480','1445462016','1445986304','1446051840','1446117376','1446182912','1446248448','1446313984','1446445056','1446510592',
|
325 |
-
'1446543360','1446576128','1446608896','1446641664','1446674432','1446707200','1446739968','1446772736','1446805504','1446838272','1446871040','1446920192','1446936576','1446952960','1446969344','1446985728','1447010304','1447018496','1447026688','1448083456','1449132032','1449394176','1449459712','1449525248','1449590784','1449656320','1449657088','1449660160','1449660416','1449661440','1449662464','1449664512','1449668608','1449672704','1449673728','1449674752','1449676800','1449684992','1449687040','1449688064','1449695232','1449697280','1449699328','1449707520','1449709568','1449710592','1449711104','1449713152','1449714176','1449715712','1449719808','1449720832','1449722112','1449722368','1449723136','1449723392','1449726976','1449728000','1449730048','1449732096','1449734144','1449736192','1449750528','1449752576','1449754624','1449758720','1449768960','1449769472','1449769984','1449771008','1449773056','1449774080','1449776128','1449776640','1449780480','1449780992','1449782016','1449782272','1449783296','1449783552','1449783808','1449784320','1449785344','1449786368','1449789440','1449790208','1449790720','1449791488','1449792512','1449793280','1449793536','1449811200','1449811456','1449811968','1449812992','1449813504','1449814272','1449815040','1449815296','1449816064','1449816576','1449817856','1449820928','1449821184','1449822720','1449823744','1449828352','1449830400','1449831936','1449832448','1449852928','1449857024','1449859584','1449860608','1449863680','1449863936','1449870848','1449871616','1449871872','1449872384','1449873408','1449877504','1449878528','1449879040','1449879296','1449883648','1449885696','1449889792','1449893888','1449901824','1449902080','1449902336','1449903104','1449906176','1449910272','1449918464','1449951232','1449984000','1449992192','1450000384','1450008576','1450016768','1450024960','1450033152','1450041344','1450049536','1450057728','1450065920','1450074112','1450082304','1450090496','1450106880','1450115072','1450123264','1450131456','1450139648','1450147840','1450151936','1450153984',
|
326 |
-
'1450156032','1450164224','1450166272','1450170368','1450172416','1450174464','1450176512','1450178560','1450180608','1450311680','1450442752','1450704896','1451229184','1455423488','1459617792','1461714944','1462763520','1463812096','1464074240','1464336384','1464467456','1464598528','1464602624','1464606720','1464614912','1464664064','1464860672','1465384960','1465647104','1465909248','1465942016','1465974784','1466007552','1466040320','1466073088','1466105856','1466122240','1466130432','1466138624','1466171392','1466204160','1466236928','1466241024','1466249216','1466253312','1466261504','1466265600','1466269696','1466302464','1466335232','1466368000','1466400768','1466433536','1466499072','1466564608','1466630144','1466695680','1466761216','1466826752','1466892288','1466957824','1467219968','1467236352','1467252736','1467269120','1467285504','1467301888','1467318272','1467334656','1467351040','1467367424','1467383808','1467400192','1467416576','1467432960','1467449344','1467457536',
|
327 |
-
'1467465728','1467473920','1467482112','1467613184','1467744256','1467875328','1467940864','1468006400','1472200704','1472266240','1472331776','1472397312','1472462848','1472528384','1472593920','1472659456','1472724992','1472856064','1472987136','1473249280','1473773568','1474297856','1474330624','1474396160','1474428928','1474461696','1474494464','1474527232','1474560000','1474592768','1474625536','1474658304','1474691072','1474723840','1474756608','1474822144','1474887680','1474953216','1475018752','1475084288','1475086336','1475092480','1475094528','1475096576','1475098624','1475102720','1475104768','1475106816','1475108864','1475110912','1475112960','1475115008','1475117056','1475119104','1475121152','1475123200','1475125248','1475127296','1475129344','1475131392','1475133440','1475135488','1475137536','1475139584','1475141632','1475143680','1475145728','1475147776','1475149824','1475151872','1475153920','1475155968','1475158016','1475160064','1475162112','1475170304','1475172352','1475174400','1475176448','1475178496','1475180544','1475184640','1475186688','1475188736','1475190784','1475192832','1475194880','1475196928','1475198976',
|
328 |
-
'1475201024','1475203072','1475205120','1475207168','1475209216','1475211264','1475213312','1475215360','1475223552','1475233792','1475235840','1475237888','1475239936','1475241984','1475244032','1475248128','1475250176','1475252224','1475254272','1475256320','1475258368','1475260416','1475262464','1475266560','1475268608','1475270656','1475272704','1475274752','1475276800','1475278848','1475280896','1475282944','1475284992','1475287040','1475291136','1475295232','1475297280','1475299328','1475301376','1475303424','1475305472','1475307520','1475309568','1475311616','1475313664','1475315712','1475317760','1475319808','1475321856','1475323904','1475328000','1475330048','1475332096','1475334144','1475336192','1475338240','1475340288','1475342336','1475344384','1475344640','1475345920','1475346432','1475362816','1475379200','1475395584','1475411968','1475428352','1475444736','1475461120','1475477504','1475493888','1475510272','1475543040','1475545088','1475559424','1475575808','1475592192','1475608576','1475624960','1475641344','1475657728','1475674112','1475690496','1475706880','1475723264','1475739648',
|
329 |
-
'1475756032','1475772416','1475788800','1475805184','1475821568','1475837952','1475846144','1475854336','1475862528','1475864576','1475866624','1475868672','1475870720','1475878912','1475887104','1475895296','1475903488','1475911680','1475919872','1475928064','1475952640','1475960832','1475969024','1475977216','1475985408','1476009984','1476018176','1476026368','1476034560','1476042752','1476050944','1476067328','1476075520','1476083712','1476116480','1476124672','1476132864','1476141056','1476149248','1476157440','1476165632','1476173824','1476182016','1476190208','1476198400','1476206592','1476214784','1476222976','1476231168','1476239360','1476247552','1476255744','1476257792','1476259840','1476263936','1476272128','1476280320','1476288512','1476296704','1476304896','1476313088','1476321280','1476329472','1476337664','1476345856','1476354048','1476362240','1476370432','1476378624','1476386816','1476395008','1478492160','1480589312','1481637888','1481646080','1481654272','1481662464','1481678848','1481684992','1481687040','1481695232','1481703424','1481711616','1481719808','1481728000','1481736192','1481744384','1481752576',
|
330 |
-
'1481760768','1481768960','1481777152','1481785344','1481793536','1481801728','1481809920','1481818112','1481826304','1481834496','1481842688','1481850880','1481859072','1481867264','1481875456','1481883648','1481891840','1481900032','1481908224','1481916416','1481924608','1481932800','1481940992','1481949184','1481957376','1481965568','1481973760','1481981952','1481990144','1481998336','1482006528','1482022912','1482031104','1482039296','1482047488','1482055680','1482063872','1482072064','1482080256','1482088448','1482096640','1482104832','1482113024','1482121216','1482129408','1482137600','1482145792','1482153984','1482162176','1482686464','1482948608','1483210752','1483735040','1483997184','1484128256','1484259328','1484783616','1484849152','1484914688','1484980224','1485045760','1485111296','1485148160','1485150208','1485242368','1485246464','1485250560','1485254656','1485258752','1485266944','1485271040','1485275136','1485283328','1485291520','1485307904','1485832192','1485963264','1486028800','1486061568','1486094336','1486127104','1486159872','1486192640','1486225408','1486258176','1486292992','1486295040','1486297088','1486299136','1486301184','1486303232','1486305280','1486307328','1486309376','1486311424','1486313472','1486315520','1486317568','1486321664','1486323712','1486325760','1486327808','1486329856','1486331904','1486333952','1486336000','1486338048','1486340096','1486342144','1486344192','1486346240','1486348288','1486350336','1486352384','1486354432','1486356480','1486487552','1486618624','1486684160','1486749696','1486815232','1486880768','1488977920','1489240064','1489305600','1489338368','1489371136','1489436672','1489502208','1489534976','1489567744','1489600512','1489633280','1489666048','1489674240','1489676288','1489698816','1489731584','1489764352','1489797120','1489829888','1489862656','1489928192','1489960960','1489993728','1490026496','1490042880','1490059264','1490075648','1490092032','1490108416','1490124800','1490157568','1490173952','1490190336','1490206720','1490223104','1490255872','1490272256','1490288640','1490305024','1490321408','1490337792','1490354176','1490386944','1490403328','1490419712','1490436096','1490452480','1490468864',
|
331 |
-
'1490501632','1490518016','1490534400','1490550784','1490616320','1490681856','1490747392','1490812928','1490878464','1490944000','1491075072','1493172224','1493303296','1493434368','1493565440','1493696512','1493958656','1494220800','1494228992','1494237184','1494245376','1494253568','1494261760','1494269952','1494278144','1494286336','1494294528','1494302720','1494310912','1494319104','1494327296','1494335488','1494343680','1494351872','1494360064','1494368256','1494376448','1494384640','1494392832','1494401024','1494409216','1494417408','1494433792','1494441984','1494450176','1494458368','1494474752','1494482944','1494499328','1494507520','1494523904','1494532096','1494540288','1494548480','1494556672','1494564864','1494573056','1494581248','1494589440','1494597632','1494605824','1494614016','1494616064','1494618112','1494622208','1494624256','1494626304','1494626560','1494626816','1494627072','1494627328','1494630400','1494638592','1494646784','1494663168','1494665216','1494667264','1494669312','1494675456','1494679552','1494695936','1494704128',
|
332 |
-
'1494736896','1494745088','1494810624','1494843392','1494876160','1494908928','1494941696','1494974464','1495007232','1495040000','1495042048','1495044096','1495046144','1495048192','1495050240','1495052288','1495054336','1495056384','1495058432','1495060480','1495062528','1495064576','1495066624','1495068672','1495070720','1495072768','1495105536','1495138304','1495171072','1495203840','1495205888','1495207936','1495212032','1495214080','1495216128','1495218176','1495220224','1495222272','1495224320','1495228416','1495230464','1495236608','1495238656','1495240704','1495242752','1495244800','1495246848','1495248896','1495250944','1495252992','1495255040','1495257088','1495259136','1495261184','1495263232','1495265280','1495267328','1495269376','1495277568','1495279616','1495279872','1495280384','1495280640','1495285760','1495287808','1495289856','1495293952','1495298048','1495300096','1495301120','1495312384','1495312896','1495313152','1495314432','1495316480','1495316992','1495317504','1495318528','1495319552',
|
333 |
-
'1495320064','1495322624','1495324672','1495332864','1495333888','1495336448','1495336960','1495339008','1495339264','1495339520','1495340032','1495345152','1495346176','1495346688','1495347200','1495351296','1495351552','1495351808','1495352320','1495353344','1495362560','1495363584','1495364608','1495364864','1495367680','1495368192','1495369216','1495369472','1495369728','1495371776','1495376896','1495377408','1495385600','1495386624','1495387136','1495387648','1495387904','1495388160','1495392256','1495394816','1495395328','1495396352','1495396864','1495398912','1495399424','1495399936','1495400448','1495405568','1495406080','1495408640','1495416832','1495419392','1495419904','1495422976','1495423488','1495424512','1495425024','1495426560','1495426816','1495427072','1495427584','1495428864','1495429120','1495433216','1495441408','1495442432','1495443456','1495443968','1495444480','1495444736','1495445504','1495446016','1495447552','1495449600','1495451648','1495452160','1495461888','1495463936','1495473152','1495474176','1495479808','1495480064','1495480832','1495481344','1495482368','1495482880','1495488768','1495489280','1495492608','1495494656','1495498240','1495498496','1495499776','1495500288','1495505920','1495506432','1495508992','1495510016','1495511040',
|
334 |
-
'1495511552','1495511808','1495515648','1495516160','1495517184','1495535616','1495536128','1495539712','1495540736','1495541248','1495541760','1495543808','1495547904','1495549952','1495556096','1495560192','1495566848','1495567360','1495576576','1495580672','1495581184','1495581696','1495589376','1495589888','1495591936','1495592960','1495596032','1495596544','1495597056','1495601152','1495603200','1495604736','1495605248','1495607296','1495607808','1495608320','1495613440','1495614464','1495617536','1495618560','1495620608','1495621376','1495623168','1495623680','1495630080','1495631360','1495642112','1495644160','1495647744','1495648256','1495652864','1495653376','1495655424','1495656448','1495657472','1495658496','1495662592','1495668736','1495669248','1495669760','1495670784','1495672832','1495674880','1495683072','1495687168','1495688192','1495688704','1495689216','1495703552','1495704576','1495717888','1495719936','1495724544','1495725056','1495745792','1495746048','1495754752','1495755776','1495759360','1495759616',
|
335 |
-
'1495760896','1495762944','1495764992','1495765760','1495766016','1495771136','1495772160','1495774208','1495775232','1495775744','1495776256','1495781376','1495782400','1495782656','1495783168','1495783424','1495789824','1495790080','1495790336','1495790848','1495793664','1495795712','1495803392','1495803904','1495805952','1495810048','1495813632','1495814144','1495815168','1495816192','1495816704','1495817216','1495817472','1495818240','1495820800','1495821312','1495821824','1495822336','1495826432','1495826944','1495829504','1495830016','1495837696','1495838720','1495846912','1495847424',
|
336 |
-
'1495855104','1495859200','1495861248','1495865344','1495866112','1495866880','1495867392','1495867904','1495870464','1495871488','1495871744','1495872512','1495873536','1495874048','1495874560','1495900160','1495902208','1495907584','1495908352','1495922688','1495926784','1495927040','1495927296','1495927552','1495932928','1495933440','1495939072','1495939584','1495942144','1495942656','1495963136','1495963648','1495964416','1495966720','1495967744','1495968768','1495977984','1495979008','1495983104','1495983616','1495985152','1495986176','1495990272','1495994368','1495998464','1495998720','1495999488','1496000000','1496004608','1496005632','1496005888','1496008192','1496008704','1496012800','1496016896','1496018944','1496020992','1496036864','1496037376','1496038400','1496038912','1496042496','1496043008','1496045568','1496049664','1496051712','1496055808','1496057856','1496058112','1496059904','1496064000','1496066048','1496067072','1496074240','1496075264','1496079360','1496081408','1496084480','1496084992','1496086016','1496086528','1496093184','1496093696','1496095744',
|
337 |
-
'1496096768','1496104448','1496104960','1496107520','1496108032','1496111104','1496113152','1496119296','1496121344','1496122368','1496130560','1496131584','1496133632','1496137728','1496138496','1496138752','1496139264','1496141824','1496142336','1496150016','1496152064','1496153088','1496153600','1496154112','1496180224','1496180736','1496182784','1496188928','1496189952','1496190976','1496193024','1496198144','1496198656','1496202240','1496202752','1496203264','1496205312','1496210944','1496211456','1496213504','1496215552','1496231936','1496233984','1496236032','1496238080','1496240128','1496256512','1496260608','1496263680','1496264704','1496268800','1496272896','1496285184','1496293376','1496299520','1496301568','1496317952','1497366528','1498415104','1499463680','1499594752','1499725824','1499856896','1499987968','1499996160','1500004352','1500020736','1500028928','1500037120','1500045312','1500061696','1500069888','1500078080','1500086272','1500094464','1500102656','1500110848','1500119040','1500127232','1500135424','1500143616','1500151808','1500153856','1500155904','1500157952','1500160000','1500162048','1500164096',
|
338 |
-
'1500166144','1500168192','1500170240','1500172288','1500174336','1500176384','1500178432','1500180480','1500182528','1500184576','1500186624','1500188672','1500192768','1500194816','1500196864','1500198912','1500200960','1500203008','1500205056','1500207104','1500209152','1500211200','1500213248','1500217344','1500219392','1500221440','1500223488','1500225536','1500227584','1500229632','1500231680','1500233728','1500237824','1500241920','1500243968','1500246016','1500248064','1500250112','1500266496','1500282880','1500299264','1500315648','1500332032','1500348416','1500397568','1500413952','1500430336','1500446720','1500463104','1500479488','1500495872','1500512256','1500643328','1500774400','1500905472','1501036544','1501298688','1501560832','1501822976','1502085120','1502216192','1502347264','1502478336','1502609408','1502625792','1502642176','1502658560','1502674944','1502691328','1502707712','1502715904','1502717952','1502720000','1502722048','1502724096','1502740480','1502756864','1502773248','1502789632','1502806016','1502822400','1502838784','1502855168','1502871552','1502887936','1502904320','1502920704','1502937088','1502953472','1502969856','1502986240','1503002624','1503006720','1503010816','1503019008',
|
339 |
-
'1503051776','1503068160','1503084544','1503100928','1503117312','1503133696','1503395840','1503657984','1503690752','1503723520','1503789056','1503821824','1503854592','1503887360','1503920128','1503985664','1504018432','1504051200','1504083968','1504116736','1504149504','1504247808','1504313344','1504378880','1504444416','1504509952','1504575488','1504641024','1504706560','1504837632','1504968704','1505099776','1505230848','1505239040','1505247232','1505255424','1505263616','1505271808','1505280000','1505288192','1505296384','1505304576','1505312768','1505320960','1505329152','1505337344','1505345536','1505353728','1505361920','1505370112','1505378304','1505386496','1505394688','1505402880','1505411072','1505413120','1505415168','1505417216','1505419264','1505427456','1505435648','1505443840','1505460224','1505478656','1505482752','1505484800','1505492992','1505501184','1505509376','1505511424','1505517568','1505525760','1505533952','1505542144','1505550336','1505566720','1505574912','1505583104','1505607680','1505615872','1505624064','1505632256','1505648640','1505665024','1505673216','1505681408',
|
340 |
-
'1505689600','1505697792','1505705984','1505714176','1505722368','1505738752','1505746944','1505755136','1506017280','1506082816','1506148352','1506279424','1506312192','1506316288','1506322432','1506324480','1506328576','1506330624','1506332672','1506334720','1506336768','1506338816','1506340864','1506342912','1506344960','1506377728','1506410496','1506443264','1506476032','1506508800','1506541568','1506574336','1506582528','1506607104','1506639872','1506672640','1506689024','1506705408','1506742272','1506744320','1506746368','1506750464','1506752512','1506754560','1506758656','1506760704','1506764800','1506766848','1506768896','1506770944','1506772992','1506775040','1506777088','1506785280','1506787328','1506789376','1506791424','1506793472','1506795520','1506799616','1506801664','1506803712','1506869248','1506934784','1507000320','1507065856','1507131392','1507196928','1507262464','1507328000','1507393536','1507459072','1507524608','1507525632',
|
341 |
-
'1507531776','1507540992','1507557376','1507573760','1507590144','1507655680','1507659776','1507663872','1507667968','1507672064','1507676160','1507680256','1507684352','1507688448','1507696640','1507700736','1507704832','1507708928','1507713024','1507717120','1507721216','1507753984','1507819520','1507852288','1508114432','1508376576','1508392960','1508442112','1508458496','1508466688','1508468736','1508470784','1508474880','1508491264','1508507648','1508524032','1508540416','1508556800','1508573184','1508589568','1508605952','1508622336','1508638720','1508655104','1508671488','1508687872','1508704256','1508720640','1508737024','1508753408','1508769792','1508786176','1508802560','1508818944','1508835328','1508851712','1508868096','1508884480','1508900864','1509163008','1509425152','1509429248','1509433344','1509437440','1509443584','1509445632','1509449728','1509453824','1509457920','1509462016','1509466112','1509470208','1509478400','1509482496','1509486592','1509490688','1509494784','1509498880','1509502976','1509507072','1509511168','1509515264','1509519360','1509535744','1509537792','1509539840','1509543936','1509548032','1509564416','1509568512','1509572608','1509576704','1509580800','1509584896','1509588992','1509593088','1509601280','1509605376','1509609472','1509617664','1509621760','1509625856','1509629952','1509634048','1509638144','1509642240','1509646336','1509650432','1509654528','1509658624','1509666816','1509670912','1509679104','1509683200','1509687296','1509703680','1509720064','1509736448','1509752832','1509769216','1509785600','1509801984','1509818368','1509851136','1509867520','1509883904','1509900288','1509916672','1509933056','1509937152','1509939200','1509941248','1509947392','1509949440','1518338048','1519452160','1519517696','1519583232','1519648768','1519714304','1519779840','1519910912','1519943680','1519976448','1520009216','1520041984','1520074752','1520107520','1520140288','1520173056','1520205824','1520271360','1520304128','1520435200','1521483776','1522008064','1522139136','1522270208','1522401280','1522532352','1524629504','1525678080','1526726656','1531183104','1531445248','1531707392','1531969536','1532100608','1532231680','1532362752','1532493824','1532559360','1532624896',
|
342 |
-
'1532626944','1532631040','1532633088','1532635136','1532637184','1532639232','1532641280','1532643328','1532647424','1532649472','1532651520','1532653568','1532655616','1532657664','1532661760','1532665856','1532674048','1532682240','1532690432','1532755968','1532821504','1532887040','1532952576','1533018112','1533149184','1533280256','1533411328','1533413376','1533415424','1533417472','1533419520','1533421568','1533423616','1533425664','1533429760','1533431808','1533433856','1533435904','1533437952','1533442048','1533444096','1533446144','1533448192','1533450240','1533452288','1533454336','1533456384','1533458432','1533460480','1533462528','1533464576','1533466624','1533468672','1533470720','1533472768','1533474816','1533476864','1533480960','1533483008','1533485056','1533487104','1533489152','1533491200','1533493248','1533499392','1533501440','1533503488','1533505536','1533507584','1533509632','1533511680','1533513728','1533515776','1533517824','1533519872','1533526016','1533532160','1533534208','1533536256','1533538304','1533540352','1533542400','1533607936','1533640704','1533659136','1533661184','1533663232','1533665280','1533667328',
|
343 |
-
'1533669376','1533671424','1533673472','1533677568','1533679616','1533681664','1533689856','1533698048','1533702144','1533704192','1533722624','1533724672','1533726720','1533728768','1533730816','1533732864','1533734912','1533739008','1533820928','1533837312','1533845504','1533847552','1533849600','1533851648','1533853696','1533870080','1533874176','1533878272','1533880320','1533882368','1533886464','1533894656','1533896704','1533900800','1533902848','1533911040','1533913088','1533915136','1533919232','1533921280','1533923328','1533925376','1533927424','1533929472','1533933568','1533935616','1534066688','1534328832','1534459904','1534590976','1534656512','1534722048','1534787584','1534791680','1534795776','1534803968','1534808064','1534812160','1534816256','1534820352','1534824448','1534828544','1534836736','1534840832','1534844928','1534849024','1534853120','1534918656','1534984192','1534988288','1535049728','1535115264','1535377408','1535442944','1535451136','1535459328','1535475712','1535508480','1535574016','1535578112','1535582208','1535590400','1535594496','1535598592','1535602688','1535606784','1535610880','1535614976','1535619072',
|
344 |
-
'1535623168','1535627264','1535631360','1535635456','1535639552','1535672320','1535737856','1535770624','1535803392','1535836160','1535868928','1535901696','1535934464','1535967232','1536000000','1536032768','1536036864','1536040960','1536045056','1536049152','1536051200','1536057344','1536061440','1536065536','1536065792','1536066304','1536067072','1536067328','1536067584','1536067840','1536068096','1536068352','1536068864','1536069120','1536069376','1536069632','1536073728','1536077824','1536081920','1536086016','1536090112','1536094208','1536098304','1536114688','1536118784','1536122880','1536126976','1536131072','1536143360','1536147456','1536151552','1536155648','1536159744','1536163840','1536180224','1536196608','1536212992','1536229376','1536245760','1536262144','1536278528','1536294912','1536311296','1536319488','1536321536','1536325632','1536327680','1536344064','1536360448','1536376832','1536393216','1536409600','1536425984','1536442368','1536458752','1536475136','1536491520','1536507904','1536524288','1536540672','1536557056','1536573440',
|
345 |
-
'1536589824','1536614400','1536622592','1536626688','1536630784','1536634880','1536643072','1536647168','1536651264','1536655360','1536659456','1536663552','1536667648','1536675840','1536679936','1536684032','1536688128','1537212416','1538260992','1538785280','1538793472','1538801664','1538809856','1538818048','1538826240','1538834432','1538842624','1538850816','1538859008','1538875392','1538883584','1538891776','1538897920','1538899968','1538908160','1538916352','1538924544','1538932736','1538940928','1538949120','1538957312','1538965504','1538973696','1538981888','1538990080','1538998272','1539006464','1539014656','1539022848','1539031040','1539039232','1539047424','1539055616','1539063808','1539072000','1539080192','1539088384','1539112960','1539115008','1539117056','1539123200','1539125248','1539127296','1539129344','1539131392','1539133440','1539135488','1539137536','1539139584','1539141632','1539143680','1539145728','1539147776','1539149824','1539151872','1539153920','1539155968','1539162112','1539164160','1539166208','1539168256','1539170304','1539172352','1539176448','1539178496','1539186688','1539194880',
|
346 |
-
'1539203072','1539207168','1539211264','1539213312','1539215360','1539219456','1539221504','1539223552','1539225600','1539227648','1539229696','1539231744','1539233792','1539235840','1539237888','1539239936','1539244032','1539260416','1539276800','1539280896','1539284992','1539289088','1539293184','1539297280','1539301376','1539309568','1539311616','1539312640','1539314688','1539316736','1539317760','1539318784','1539319808','1539320832','1539321856','1539322880','1539323904','1539324928','1539325952','1539326976','1539329024','1539330048','1539331072','1539332096','1539333120','1539335168','1539336192','1539337216','1539338240','1539339264','1539340288','1539341312','1539342336','1539345408','1539346432','1539347456','1539348480','1539351552','1539352576','1539355648','1539357696','1539358720','1539359744','1539360768','1539361280','1539361792','1539362816','1539363840','1539364864','1539365888','1539366912','1539368960','1539369984','1539371008','1539373056','1539374080','1539375104','1539377152','1539378176','1539380224','1539381248','1539382272','1539383296','1539384320','1539385344','1539385856','1539386368',
|
347 |
-
'1539387392','1539388416','1539389440','1539389952','1539391488','1539392512','1539393536','1539393792','1539394048','1539394304','1539394560','1539396608','1539397632','1539398144','1539398656','1539399680','1539401728','1539402240','1539402752','1539403264','1539405824','1539406848','1539408896','1539409920','1539410944','1539411968','1539412992','1539415040','1539416064','1539417088','1539418112','1539419136','1539420160','1539421184','1539422208','1539423232','1539425280','1539426304','1539427328','1539428352','1539429376','1539434496','1539435520','1539437568','1539439616','1539441152','1539441664','1539442176','1539442688','1539443200','1539444736','1539445248','1539445760','1539446272','1539447296','1539447808','1539448832','1539449344','1539449856','1539450368','1539450880','1539451392','1539452416','1539452928','1539453440','1539454976','1539455488','1539456000','1539456512','1539457024','1539457536','1539458048','1539459072','1539459584','1539460096','1539460608','1539461632','1539462144','1539462656','1539463168','1539463680','1539464192','1539464704','1539465216','1539466752','1539467776','1539468288',
|
348 |
-
'1539468800','1539469824','1539470336','1539471360','1539471872','1539472896','1539473408','1539473920','1539474432','1539474944','1539475456','1539475968','1539476992','1539477504','1539478016','1539478528','1539479040','1539480064','1539480576','1539481088','1539481600','1539482112','1539482624','1539483648','1539484672','1539485696','1539486208','1539486720','1539487744','1539488256','1539488768','1539489280','1539490816','1539491328','1539491840','1539492352','1539492864','1539493376','1539493888','1539494400','1539494912','1539495936','1539496448','1539496960','1539497472','1539497984','1539498496','1539499008','1539499520','1539500544','1539501056','1539501568','1539502592','1539503104','1539504128','1539504640','1539505152','1539506176','1539506688','1539507200','1539508224','1539508736','1539509760','1539510272','1539510784','1539511296','1539511808','1539512320','1539512832','1539513344','1539513856','1539514368','1539514880','1539515392','1539515904','1539516416','1539516928','1539517440','1539517952','1539518464','1539519488','1539520000','1539520512','1539521024','1539521536','1539522048','1539523584','1539524096','1539524608','1539525120','1539525632','1539526144',
|
349 |
-
'1539526656','1539527168','1539527680','1539528192','1539528704','1539529216','1539529728','1539530240','1539530752','1539531264','1539531776','1539532800','1539533312','1539533824','1539534336','1539534848','1539535360','1539535872','1539536384','1539536896','1539537408','1539537920','1539540480','1539540992','1539541504','1539542016','1539542528','1539543040','1539543552','1539544064','1539544576','1539545088','1539545600','1539546112','1539546624','1539547136','1539547648','1539548160','1539548672','1539549184','1539549696','1539550208','1539550720','1539551232','1539551744','1539552256','1539552768','1539553280','1539553792','1539554304','1539554816','1539555328','1539555840','1539556864','1539557376','1539557888','1539558400','1539558912','1539559424','1539560960','1539561472','1539561984','1539563008','1539563520','1539564032','1539564544','1539565056','1539565568','1539566080','1539567104','1539567616','1539568128','1539568640','1539569152','1539569664','1539570176','1539570688','1539571712','1539572736','1539573760','1539576832','1539577856','1539578880','1539579904','1539580928','1539582976','1539584000','1539585024','1539586048',
|
350 |
-
'1539587072','1539590144','1539591168','1539592192','1539593216','1539594240','1539598336','1539599360','1539600384','1539601408','1539602432','1539603456','1539604480','1539605504','1539606528','1539607552','1539609600','1539610624','1539611648','1539614720','1539615744','1539616768','1539618816','1539619840','1539620864','1539623936','1539624960','1539625984','1539627008','1539629056','1539630080','1539632128','1539633152','1539634176','1539638272','1539639296','1539640320','1539641344','1539642368','1539643392','1539644416','1539645440','1539648512','1539649024','1539649536','1539650560','1539651584','1539652608','1539653632','1539655680','1539656704','1539657728','1539658752','1539659776','1539660800','1539661824','1539662848','1539663872','1539664896','1539665920','1539666944','1539668992','1539670016','1539672064','1539673088','1539674112','1539675136','1539677184','1539678208','1539679232','1539680256','1539681280','1539684352','1539685376','1539689472','1539690496','1539691520','1539692544','1539694592','1539695616','1539696640','1539697664','1539699712',
|
351 |
-
'1539700736','1539701760','1539702784','1539703040','1539703296','1539703552','1539703808','1539704064','1539704320','1539704576','1539704832','1539705088','1539705344','1539705600','1539706112','1539706368','1539706624','1539707136','1539707392','1539707648','1539707904','1539708160','1539708416','1539708672','1539708928','1539709184','1539709440','1539709696','1539710208','1539710464','1539710720','1539710976','1539711232','1539711488','1539711744','1539712000','1539712512','1539713024','1539713536','1539713792','1539714048','1539714304','1539714560','1539714816','1539715328','1539715584','1539715840','1539716096','1539716352','1539716608','1539716864','1539717376','1539717632','1539717888','1539718144','1539718400','1539718656','1539718912','1539719168','1539719424','1539719680','1539720192','1539720704','1539720960','1539721216','1539721728','1539721984','1539722240','1539722752','1539723008','1539723264','1539723520','1539723776','1539724032','1539724288','1539724544','1539724800','1539725056','1539725312','1539725568','1539725824','1539726080','1539726336','1539726592','1539726848','1539727104','1539727360','1539727616','1539727872','1539728128','1539728384','1539728640','1539728896',
|
352 |
-
'1539729152','1539729408','1539729664','1539729920','1539730176','1539730944','1539731456','1539731712','1539732480','1539732736','1539732992','1539733248','1539733504','1539733760','1539734016','1539734272','1539734528','1539734784','1539735040','1539735296','1539735552','1539735808','1539736064','1539736320','1539736576','1539736832','1539737088','1539737344','1539737600','1539737856','1539738112','1539738368','1539738624','1539738880','1539739136','1539739392','1539739648','1539739904','1539740672','1539740928','1539741184','1539741440','1539741696','1539741952','1539742208','1539742464','1539742720','1539742976','1539743488','1539743744','1539744000','1539744256','1539744512','1539744768','1539745024','1539745280','1539745792','1539746560','1539746816','1539747072','1539747328','1539747584','1539747840','1539748096','1539748352','1539748608','1539748864','1539749120','1539749376','1539749632','1539749888','1539750400','1539750656','1539750912','1539751168','1539751424','1539751680','1539752192','1539752448','1539752704','1539753216','1539753472','1539753728','1539754240','1539754496','1539754752','1539755008','1539755264','1539755520','1539755776','1539756288','1539756800','1539757056','1539757568',
|
353 |
-
'1539757824','1539758080','1539758336','1539758848','1539759360','1539759616','1539759872','1539760128','1539760384','1539760640','1539760896','1539761152','1539761408','1539761920','1539762176','1539762432','1539762688','1539762944','1539763200','1539763456','1539763712','1539763968','1539764224','1539764480','1539764736','1539764992','1539765248','1539765504','1539766016','1539766272','1539766528','1539766784','1539767040','1539767296','1539767552','1539768064','1539768320','1539768576','1539768832','1539769088','1539769344','1539769600','1539769856','1539770112','1539770368','1539770880','1539771136','1539771392','1539771648','1539771904','1539772160','1539772416','1539772672','1539772928','1539773184','1539773440','1539773696','1539773952','1539774208','1539774464','1539774720','1539774976','1539775488','1539775744','1539776256','1539776768','1539777024','1539777280','1539777536','1539777792','1539778048','1539778304','1539778560','1539778816','1539779328','1539779840','1539780096','1539780608','1539780864','1539781120','1539781376','1539781632','1539781888','1539782144','1539782400','1539782656','1539782912','1539783168','1539783680','1539783936','1539784192','1539784448','1539784704','1539784960','1539785216','1539785472','1539785728','1539785984',
|
354 |
-
'1539786240','1539786496','1539786752','1539787008','1539787264','1539787520','1539787776','1539788032','1539788288','1539788544','1539788800','1539789568','1539789824','1539790080','1539790336','1539790848','1539791104','1539791616','1539792384','1539792640','1539792896','1539793152','1539793408','1539793664','1539794176','1539794688','1539794944','1539795200','1539795456','1539795712','1539795968','1539796224','1539796480','1539796736','1539796992','1539797248','1539797504','1539797760','1539798016','1539798272','1539798528','1539798784','1539799040','1539799296','1539799552','1539800064','1539800320','1539800576','1539800832','1539801088','1539801344','1539801856','1539802112','1539802368','1539802624','1539802880','1539803136','1539803392','1539803648','1539804160','1539804672','1539804928','1539805440','1539805696','1539806208','1539806464','1539806720','1539806976','1539807232','1539807488','1539807744','1539808000','1539808256','1539808512','1539808768','1539809024','1539809536','1539809792','1539810304','1539810560','1539810816','1539811072','1539811584','1539811840','1539812096','1539812608','1539812864','1539813120','1539813376','1539813632','1539813888','1539814400',
|
355 |
-
'1539814912','1539815168','1539815936','1539816192','1539816448','1539816704','1539816960','1539817216','1539817472','1539817984','1539818240','1539818496','1539819008','1539819264','1539819520','1539819776','1539820032','1539820288','1539820544','1539820800','1539821056','1539821312','1539821568','1539821824','1539822080','1539822592','1539822848','1539823104','1539823360','1539823616','1539823872','1539824128','1539824384','1539824640','1539824896','1539825152','1539825408','1539825920','1539826176','1539826432','1539826688','1539826944','1539827200','1539827456','1539827712','1539827968','1539828480','1539828736','1539828992','1539829248','1539829504','1539829760','1539830016','1539830272','1539830528','1539830784','1539831040','1539831296','1539831552','1539832064','1539832320','1539832576','1539832832','1539833088','1539833344','1539833856','1539837952','1539838976','1539840000','1539841024','1539842048','1539844096','1539846144','1539847168','1539849472','1539849728','1539850240','1539851264','1539852288','1539853312','1539854336','1539855360','1539857408','1539858432','1539860480',
|
356 |
-
'1539861504','1539862528','1539863552','1539864576','1539865600','1539866624','1539867648','1539868672','1539869696','1539870720','1539872768','1539873792','1539875840','1539876864','1539877888','1539879936','1539880960','1539883008','1539884032','1539885056','1539886080','1539887104','1539888128','1539889152','1539890176','1539891200','1539893248','1539894272','1539897344','1539899392','1539901440','1539902464','1539903488','1539904512','1539905536','1539908608','1539910656','1539911680','1539913728','1539914752','1539916800','1539917824','1539918848','1539920896','1539921920','1539922944','1539923968','1539924992','1539927040','1539928064','1539930112','1539932160','1539933184','1539934208','1539936256','1539937280','1539938304','1539939328','1539940352','1539941376','1539942400','1539943424','1539944448','1539946496','1539947520','1539948544','1539950592','1539950848','1539951104','1539951616','1539953664','1539954176','1539954688','1539956736','1539957760','1539958784','1539960064','1539960576','1539962880','1539964928','1539965952','1539966976','1539968000','1539974144','1539975168','1539976192','1539977216','1539978240','1539979264','1539980288','1539981312','1539982336','1539983360','1539984384','1539985408','1539986432','1539987456','1539988480','1539990528','1539991552','1539993600','1539994624','1539995648','1539996672','1539997696','1539999744','1540000768','1540001792','1540002816','1540003840','1540004864','1540005888','1540006912','1540007936','1540008960','1540011008','1540014080','1540015104','1540016128','1540017152','1540018176','1540020224','1540022272','1540023296','1540024320','1540025344','1540026368','1540029440','1540031488','1540032512','1540033536','1540034560','1540035584','1540036608','1540037632','1540038656','1540039680','1540040704','1540041728','1540042752','1540043776','1540044800','1540045824','1540046848','1540047872','1540048896','1540050944','1540052992','1540055040','1540057088','1540057344','1540057600','1540057856','1540058112','1540059136','1540060160','1540061184','1540062208','1540063232','1540064256','1540065280','1540068352','1540069376','1540070400','1540071424','1540072448','1540073472','1540074496','1540075520',
|
357 |
-
'1540077568','1540078592','1540081664','1540082688','1540083712','1540084736','1540085760','1540087808','1540089856','1540092928','1540094976','1540096000','1540097024','1540099072','1540100096','1540103168','1540105216','1540110336','1540111360','1540112384','1540113408','1540115456','1540116480','1540117504','1540118528','1540119552','1540120576','1540124672','1540125696','1540126720','1540127744','1540128768','1540129792','1540130816','1540131840','1540132864','1540134912','1540135936','1540136960','1540137984','1540139008','1540140032','1540141056','1540142080','1540143104','1540144128','1540145152','1540146176','1540147200','1540148224','1540149248','1540150272','1540151296','1540153344','1540156416','1540157440','1540158464','1540159488','1540160512','1540162560','1540163584','1540164608','1540165632','1540166656','1540167680','1540168704','1540169728','1540170752','1540171776','1540172800','1540173824','1540174848','1540175872','1540176896','1540177920','1540178944','1540179968','1540180992','1540182016','1540183040','1540184064','1540185088',
|
358 |
-
'1540186112','1540187136','1540190208','1540191232','1540192256','1540195328','1540198400','1540199424','1540200448','1540201472','1540202496','1540203520','1540204544','1540205568','1540206592','1540208640','1540210688','1540211456','1540212736','1540213760','1540214784','1540215808','1540216832','1540217856','1540218880','1540219904','1540220928','1540221952','1540224000','1540225024','1540226048','1540227072','1540227584','1540228096','1540228608','1540229120','1540229632','1540230144','1540232192','1540232704','1540233216','1540233728','1540234240','1540234752','1540235776','1540236288','1540236800','1540237312','1540238848','1540239360','1540239872','1540240384','1540240896','1540242432','1540242944','1540243456','1540243968','1540244992','1540245504','1540246016','1540246528','1540247552','1540248064','1540248576','1540249088','1540249600','1540250112','1540250368','1540251136','1540251648','1540252160','1540252672','1540253184','1540253696','1540254208','1540254720','1540255232','1540255744','1540256256','1540256768','1540257280','1540257792','1540258304','1540258816','1540259328','1540259840',
|
359 |
-
'1540260352','1540260864','1540261376','1540261888','1540262400','1540262912','1540263424','1540263936','1540264448','1540265984','1540266496','1540267008','1540267520','1540268544','1540269056','1540269568','1540270080','1540270592','1540271104','1540271616','1540272128','1540272640','1540273664','1540274176','1540274688','1540275200','1540275712','1540276224','1540276736','1540277248','1540277760','1540278272','1540278784','1540279808','1540280320','1540280832','1540281344','1540281856','1540282368','1540282880','1540283392','1540284416','1540284928','1540285440','1540285952','1540286464','1540286976','1540287488','1540288512','1540289536','1540290048','1540290560','1540291072','1540291584','1540292096','1540293120','1540293632','1540295168','1540296192','1540296704','1540297216','1540298240','1540298752','1540299264','1540299776','1540300288','1540300800','1540301312','1540301824','1540302848','1540303872','1540304896','1540305408','1540305920','1540306432','1540306944','1540307456','1540307968','1540308480','1540308992','1540309504','1540310016','1540311040','1540313088',
|
360 |
-
'1540313600','1540315136','1540315648','1540316160','1540316672','1540317696','1540318208','1540318720','1540319232','1540320768','1540321280','1540321792','1540322304','1540322816','1540323328','1540323840','1540324352','1540324864','1540325376','1540325888','1540326400','1540326912','1540327424','1540327936','1540328448','1540329984','1540330496','1540331008','1540331520','1540332544','1540333056','1540333568','1540334080','1540334592','1540335104','1540336128','1540337664','1540338688','1540339200','1540339712','1540340736','1540341248','1540341760','1540342272','1540343296','1540343808','1540344832','1540345344','1540345856','1540346368','1540346880','1540347392','1540347904','1540348416','1540348928','1540349952','1540350464','1540350976','1540352000','1540353024','1540353536','1540354048','1540354560','1540355072','1540355584','1540356608','1540357120','1540357632','1540358144','1540358400','1540358656','1540358912','1540359168','1540359424','1540359680','1540359936','1540360192','1540360448','1540360704','1540360960','1540361216','1540361472','1540361728','1540361984','1540362496','1540363264','1540363776','1540364032','1540364288','1540364544',
|
361 |
-
'1540364800','1540365056','1540365312','1540365568','1540365824','1540366336','1540366592','1540366848','1540367104','1540367360','1540367616','1540367872','1540368128','1540368384','1540368640','1540368896','1540369408','1540369664','1540370176','1540370432','1540370688','1540370944','1540371200','1540371456','1540371712','1540371968','1540372224','1540372480','1540372736','1540372992','1540373248','1540373504','1540373760','1540374016','1540374272','1540374528','1540374784','1540375040','1540375552','1540376064','1540376320','1540376576','1540376832','1540377088','1540377344','1540377600','1540377856','1540378112','1540378368','1540378624','1540378880','1540379136','1540379392','1540379648','1540379904','1540380160','1540380416','1540380672','1540380928','1540381184','1540381440','1540381696','1540381952','1540382208','1540382464','1540382720','1540382976','1540383232','1540383488','1540383744','1540384000','1540384256','1540384512','1540385024','1540385280','1540385536','1540385792','1540386304','1540386560','1540386816','1540387328','1540387584','1540388096','1540388352','1540388608','1540388864','1540389120','1540389376','1540389632','1540389888','1540390144','1540390400','1540390656','1540391168','1540391424','1540391680',
|
362 |
-
'1540391936','1540392192','1540392448','1540392704','1540392960','1540393472','1540393728','1540394240','1540394496','1540394752','1540395008','1540395264','1540395520','1540395776','1540396032','1540396288','1540396544','1540396800','1540397056','1540397312','1540397824','1540398080','1540398336','1540398592','1540399360','1540399872','1540400128','1540400384','1540400640','1540400896','1540401152','1540401408','1540401664','1540401920','1540402176','1540402432','1540402688','1540402944','1540403200','1540403456','1540403712','1540404224','1540404480','1540404736','1540404992','1540405248','1540405504','1540405760','1540406016','1540406272','1540406528','1540407040','1540407808','1540408064','1540408320','1540408832','1540409088','1540409344','1540409600','1540409856','1540410112','1540410368','1540410624','1540411136','1540411648','1540411904','1540412160','1540412416','1540412672','1540412928','1540413184','1540413440','1540413696','1540413952','1540414208','1540414464','1540414720','1540414976','1540415232','1540415488','1540415744','1540416000','1540416256','1540416768','1540417280','1540417536','1540417792','1540418048','1540418816','1540419072','1540419328',
|
363 |
-
'1540419840','1540420096','1540420608','1540420864','1540421376','1540421632','1540422144','1540422400','1540422656','1540422912','1540423424','1540423680','1540423936','1540424192','1540424448','1540424704','1540424960','1540425216','1540425472','1540425728','1540425984','1540426240','1540426496','1540426752','1540427520','1540427776','1540428288','1540428544','1540428800','1540429568','1540429824','1540430080','1540430336','1540430592','1540430848','1540431104','1540431360','1540431616','1540431872','1540432128','1540432384','1540432640','1540432896','1540433152','1540433408','1540433664','1540434176','1540434432','1540434688','1540434944','1540435200','1540435456','1540436224','1540436480','1540436736','1540436992','1540437248','1540437504','1540438016','1540438272','1540438784','1540439040','1540439296','1540440064','1540440320','1540440576','1540440832','1540441344','1540441856','1540442112','1540442368','1540442624','1540442880','1540443136','1540443648','1540443904','1540444160','1540444416','1540444672','1540445184','1540445440','1540445696','1540445952','1540446208','1540446464','1540446720','1540446976','1540447232','1540447488','1540447744',
|
364 |
-
'1540448000','1540448256','1540448512','1540448768','1540449536','1540449792','1540450048','1540450304','1540450560','1540450816','1540451072','1540451328','1540451584','1540451840','1540452096','1540452352','1540452608','1540452864','1540453376','1540453632','1540453888','1540454144','1540454400','1540454912','1540455168','1540455424','1540455680','1540455936','1540456192','1540457216','1540457472','1540457728','1540457984','1540458240','1540458496','1540458752','1540459008','1540459520','1540459776','1540460032','1540460288','1540460544','1540460800','1540461056','1540461312','1540462080','1540462592','1540463104','1540463360','1540463616','1540463872','1540464128','1540464384','1540464896','1540465664','1540465920','1540466176','1540466432','1540466688','1540466944','1540467456','1540467712','1540467968','1540468224','1540468736','1540468992','1540469248','1540469760','1540470016','1540470272','1540471040','1540471552','1540471808','1540472064','1540472320','1540472576','1540472832','1540473088','1540473344','1540473600','1540473856','1540474368','1540474624','1540474880','1540475136','1540475904','1540476160','1540476416','1540476672','1540476928',
|
365 |
-
'1540477440','1540477696','1540477952','1540478208','1540478464','1540478976','1540479232','1540479488','1540479744','1540480000','1540480256','1540480768','1540481280','1540481536','1540482048','1540482304','1540482816','1540483072','1540483328','1540483840','1540484096','1540484352','1540484608','1540484864','1540485120','1540485376','1540485632','1540485888','1540486144','1540486400','1540486656','1540486912','1540487168','1540487424','1540487680','1540487936','1540488192','1540488448','1540488704','1540488960','1540489216','1540491264','1540492288','1540493312','1540494336','1540495360','1540496384','1540499456','1540500480','1540501504','1540502528','1540504576','1540505600','1540506624','1540507648','1540508672','1540509696','1540510720','1540511744','1540512768','1540515840','1540516864','1540517888','1540518912','1540520960','1540521984','1540523008','1540524032','1540525056','1540526080','1540528128','1540529152','1540530176','1540531200','1540532224','1540533248','1540534272','1540535296','1540536320','1540537344','1540538368','1540542464','1540543488','1540544512','1540545536','1540546560','1540548608','1540549632','1540552704','1540553728','1540555776','1540556800','1540557824','1540559872','1540562944','1540563968','1540564992','1540566016','1540567040','1540568064','1540572160','1540573184','1540574208','1540576256','1540578304','1540579328','1540580352','1540581376','1540582400','1540583424','1540584448','1540586496','1540588544','1540589568','1540594688','1540596736','1540597760','1540598784','1540600832','1540602880','1540603904','1540605952','1540606976','1540608000','1540609024','1540610048','1540611072','1540613120','1540614144','1540615168','1540616192','1540617216','1540619264','1540620288','1540620544','1540620800','1540621056','1540621312','1540621568','1540621824','1540622336','1540622592','1540622848','1540623360','1540623616','1540624128','1540624384','1540624640','1540624896','1540625664','1540625920','1540626176','1540626432','1540626688','1540626944','1540627456','1540627712','1540627968','1540628224','1540628480','1540628736','1540628992','1540629248','1540629504','1540629760','1540630272','1540630528','1540631040','1540631296','1540631552','1540632064',
|
366 |
-
'1540632320','1540632576','1540633088','1540633600','1540633856','1540634624','1540634880','1540635136','1540635392','1540635648','1540636160','1540636416','1540636672','1540637184','1540637440','1540637696','1540637952','1540638208','1540638464','1540639232','1540639488','1540639744','1540640000','1540640256','1540640512','1540640768','1540641024','1540641536','1540641792','1540642048','1540642304','1540642560','1540642816','1540643072','1540643328','1540643584','1540643840','1540644096','1540644608','1540644864','1540645120','1540645376','1540645632','1540646144','1540646400','1540646656','1540646912','1540647168','1540647424','1540647936','1540648192','1540648448','1540648960','1540649216','1540649472','1540649728','1540649984','1540650240','1540650496','1540650752','1540651008','1540651264','1540651520','1540651776','1540652032','1540652544','1540652800','1540653056','1540653312','1540653568','1540653824','1540654080','1540654336','1540654592','1540654848','1540655104','1540655360','1540655616','1540655872','1540656640','1540656896','1540657152','1540657408','1540657664','1540657920','1540658176','1540658432','1540659200','1540659456','1540659968','1540660224',
|
367 |
-
'1540660480','1540660736','1540660992','1540661248','1540661504','1540662016','1540662272','1540662528','1540662784','1540663040','1540663296','1540663552','1540664064','1540664320','1540664576','1540665088','1540665344','1540665600','1540665856','1540666112','1540666368','1540666624','1540666880','1540667136','1540667648','1540668160','1540668416','1540668672','1540668928','1540669696','1540669952','1540670208','1540670464','1540670720','1540670976','1540671232','1540671488','1540671744','1540672000','1540672256','1540672512','1540672768','1540673024','1540673280','1540673536','1540673792','1540674048','1540674304','1540674560','1540674816','1540675072','1540675328','1540675584','1540675840','1540676352','1540676608','1540677120','1540677376','1540677632','1540677888','1540678400','1540678656','1540678912','1540679168','1540679680','1540679936','1540680192','1540680448','1540680
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|