Version Description
- Improved plugin performance
- Style-4 simplified
- Style-1 - default theme button
- Fixed some issues
Download this release
Release Info
Developer | bhvreddy |
Plugin | Click to Chat for WhatsApp Chat |
Version | 1.7 |
Comparing to | |
See all releases |
Code changes from version 1.6 to 1.7
- admin/class-ccw-add-styles-scripts-admin.php +7 -11
- admin/class-ccw-admin-page-customize-styles.php +30 -4
- admin/class-ccw-admin-page.php +97 -56
- admin/commons/admin-sidebar.php +7 -5
- admin/default-values.php +50 -11
- admin/settings_page.php +6 -38
- assets/css/admin_main.css +18 -0
- assets/css/admin_mainstyles.css +0 -4453
- assets/css/mainstyles.css +24 -0
- assets/css/materialize.min.css +33 -0
- assets/js/admin_app.js +149 -0
- assets/js/admin_mainstyles.js +0 -75
- assets/js/materialize.min.js +6 -0
- assets/js/required/admin_app-works.js +0 -13891
admin/class-ccw-add-styles-scripts-admin.php
CHANGED
@@ -21,21 +21,17 @@ class CCW_Add_Styles_Scripts_Admin {
|
|
21 |
|
22 |
if( 'toplevel_page_click-to-chat' == $hook || 'click-to-chat_page_ccw-edit-styles' == $hook ) {
|
23 |
|
24 |
-
wp_register_style('ccw_new_css_admin', plugins_url( 'assets/css/admin_mainstyles.css', HT_CCW_PLUGIN_FILE ) , '', HT_CCW_VERSION );
|
25 |
-
|
26 |
-
|
27 |
-
wp_enqueue_style('ccw_new_css_admin');
|
28 |
-
|
29 |
wp_enqueue_style( 'wp-color-picker' );
|
|
|
|
|
|
|
30 |
|
31 |
|
32 |
-
// wp_enqueue_script( '
|
33 |
-
wp_enqueue_script( '
|
34 |
-
|
35 |
-
|
36 |
|
37 |
-
// wp_enqueue_script( 'ccw_app_admin_dir', plugins_url( 'assets/js/dir.js', HT_CCW_PLUGIN_FILE ), '', '', true );
|
38 |
-
// return;
|
39 |
} else {
|
40 |
return;
|
41 |
}
|
21 |
|
22 |
if( 'toplevel_page_click-to-chat' == $hook || 'click-to-chat_page_ccw-edit-styles' == $hook ) {
|
23 |
|
|
|
|
|
|
|
|
|
|
|
24 |
wp_enqueue_style( 'wp-color-picker' );
|
25 |
+
|
26 |
+
wp_enqueue_style('ccw_admin_md_css', plugins_url( 'assets/css/materialize.min.css', HT_CCW_PLUGIN_FILE ) , '', HT_CCW_VERSION );
|
27 |
+
wp_enqueue_style('ccw_admin_main_css', plugins_url( 'assets/css/admin_main.css', HT_CCW_PLUGIN_FILE ) , '', HT_CCW_VERSION );
|
28 |
|
29 |
|
30 |
+
// wp_enqueue_script( 'ccw_admin_md_js', plugins_url( 'assets/js/admin_app.js', HT_CCW_PLUGIN_FILE ), array( 'wp-color-picker' ), HT_CCW_VERSION, true );
|
31 |
+
// wp_enqueue_script( 'ccw_admin_md_js', plugins_url( 'assets/js/required/admin_app-works.js', HT_CCW_PLUGIN_FILE ), array( 'wp-color-picker' ), HT_CCW_VERSION, true );
|
32 |
+
wp_enqueue_script( 'ccw_admin_md_js', plugins_url( 'assets/js/materialize.min.js', HT_CCW_PLUGIN_FILE ), array( 'jquery' ), HT_CCW_VERSION, true );
|
33 |
+
wp_enqueue_script( 'ccw_admin_app_js', plugins_url( 'assets/js/admin_app.js', HT_CCW_PLUGIN_FILE ), array( 'ccw_admin_md_js', 'jquery', 'wp-color-picker' ), HT_CCW_VERSION, true );
|
34 |
|
|
|
|
|
35 |
} else {
|
36 |
return;
|
37 |
}
|
admin/class-ccw-admin-page-customize-styles.php
CHANGED
@@ -28,6 +28,7 @@ class CCW_Admin_Page_Customize_Styles {
|
|
28 |
add_settings_section( 'ccw_settings_cs', '', array( $this, 'ccw_settings_section_cs_cb' ), 'ccw_options_settings_cs' );
|
29 |
|
30 |
add_settings_field( 'ccw_style_1_cs', 'Style 1', array( $this, 'ccw_style_1_cb' ), 'ccw_options_settings_cs', 'ccw_settings_cs' );
|
|
|
31 |
add_settings_field( 'ccw_style_2_cs', 'Style 2', array( $this, 'ccw_style_2_cb' ), 'ccw_options_settings_cs', 'ccw_settings_cs' );
|
32 |
add_settings_field( 'ccw_style_3_cs', 'Style 3', array( $this, 'ccw_style_3_cb' ), 'ccw_options_settings_cs', 'ccw_settings_cs' );
|
33 |
add_settings_field( 'ccw_style_4_cs', 'Style 4', array( $this, 'ccw_style_4_cb' ), 'ccw_options_settings_cs', 'ccw_settings_cs' );
|
@@ -49,9 +50,34 @@ class CCW_Admin_Page_Customize_Styles {
|
|
49 |
echo '<h1>Customize Styles</h1>';
|
50 |
}
|
51 |
|
52 |
-
|
53 |
-
// style - 1
|
54 |
function ccw_style_1_cb() {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
55 |
$ccw_style_1 = get_option('ccw_options_cs');
|
56 |
?>
|
57 |
<ul class="collapsible" data-collapsible="accordion">
|
@@ -224,7 +250,7 @@ class CCW_Admin_Page_Customize_Styles {
|
|
224 |
|
225 |
<div class="row">
|
226 |
<div class="col s6">
|
227 |
-
<p><?php _e( '
|
228 |
</div>
|
229 |
<div class="input-field col s4">
|
230 |
<input name="ccw_options_cs[s3_icon_size]" value="<?php echo esc_attr( $ccw_style_3['s3_icon_size'] ) ?>" type="text" class="" >
|
@@ -636,7 +662,7 @@ class CCW_Admin_Page_Customize_Styles {
|
|
636 |
|
637 |
<div class="row">
|
638 |
<div class="col s6">
|
639 |
-
<p><?php _e( '
|
640 |
</div>
|
641 |
<div class="input-field col s4">
|
642 |
<input name="ccw_options_cs[s9_icon_size]" value="<?php echo esc_attr( $ccw_style_9['s9_icon_size'] ) ?>" type="text" class="" >
|
28 |
add_settings_section( 'ccw_settings_cs', '', array( $this, 'ccw_settings_section_cs_cb' ), 'ccw_options_settings_cs' );
|
29 |
|
30 |
add_settings_field( 'ccw_style_1_cs', 'Style 1', array( $this, 'ccw_style_1_cb' ), 'ccw_options_settings_cs', 'ccw_settings_cs' );
|
31 |
+
// add_settings_field( 'ccw_style_1_cs', 'Style 1', array( $this, 'ccw_style_1_cb_prev' ), 'ccw_options_settings_cs', 'ccw_settings_cs' );
|
32 |
add_settings_field( 'ccw_style_2_cs', 'Style 2', array( $this, 'ccw_style_2_cb' ), 'ccw_options_settings_cs', 'ccw_settings_cs' );
|
33 |
add_settings_field( 'ccw_style_3_cs', 'Style 3', array( $this, 'ccw_style_3_cb' ), 'ccw_options_settings_cs', 'ccw_settings_cs' );
|
34 |
add_settings_field( 'ccw_style_4_cs', 'Style 4', array( $this, 'ccw_style_4_cb' ), 'ccw_options_settings_cs', 'ccw_settings_cs' );
|
50 |
echo '<h1>Customize Styles</h1>';
|
51 |
}
|
52 |
|
53 |
+
// style - 1 - new
|
|
|
54 |
function ccw_style_1_cb() {
|
55 |
+
?>
|
56 |
+
<ul class="collapsible" data-collapsible="accordion">
|
57 |
+
<li>
|
58 |
+
<div class="collapsible-header">Style 1</div>
|
59 |
+
<div class="collapsible-body">
|
60 |
+
|
61 |
+
<div class="row">
|
62 |
+
<p class="description"> Style-1 is the default theme button. (looks like currently activated Theme button).</p>
|
63 |
+
<br>
|
64 |
+
<p class="description">For customizable button, please select style-8</p>
|
65 |
+
<br><br>
|
66 |
+
<p class="description">changes made in style-1 since <a href="https://holithemes.com/whatsapp-chat/v-1-7">Version-1.7</a></p>
|
67 |
+
</div>
|
68 |
+
|
69 |
+
</div>
|
70 |
+
</div>
|
71 |
+
</li>
|
72 |
+
</ul>
|
73 |
+
|
74 |
+
<?php
|
75 |
+
|
76 |
+
}
|
77 |
+
|
78 |
+
|
79 |
+
// style - 1 - previous one .. created a new one..
|
80 |
+
function ccw_style_1_cb_prev() {
|
81 |
$ccw_style_1 = get_option('ccw_options_cs');
|
82 |
?>
|
83 |
<ul class="collapsible" data-collapsible="accordion">
|
250 |
|
251 |
<div class="row">
|
252 |
<div class="col s6">
|
253 |
+
<p><?php _e( 'Image size' , 'click-to-chat-for-whatsapp' ) ?></p>
|
254 |
</div>
|
255 |
<div class="input-field col s4">
|
256 |
<input name="ccw_options_cs[s3_icon_size]" value="<?php echo esc_attr( $ccw_style_3['s3_icon_size'] ) ?>" type="text" class="" >
|
662 |
|
663 |
<div class="row">
|
664 |
<div class="col s6">
|
665 |
+
<p><?php _e( 'Image size' , 'click-to-chat-for-whatsapp' ) ?></p>
|
666 |
</div>
|
667 |
<div class="input-field col s4">
|
668 |
<input name="ccw_options_cs[s9_icon_size]" value="<?php echo esc_attr( $ccw_style_9['s9_icon_size'] ) ?>" type="text" class="" >
|
admin/class-ccw-admin-page.php
CHANGED
@@ -117,7 +117,7 @@ class CCW_Admin_Page {
|
|
117 |
<option value="7" <?php echo $style_value == 7 ? 'SELECTED' : ''; ?> >Style-7</option>
|
118 |
<option value="8" <?php echo $style_value == 8 ? 'SELECTED' : ''; ?> >Style-8</option>
|
119 |
<option value="9" <?php echo $style_value == 9 ? 'SELECTED' : ''; ?> >Style-9</option>
|
120 |
-
<option value="99" <?php echo $style_value == 99 ? 'SELECTED' : ''; ?> >Style-99 own Image / GIF</option>
|
121 |
<option value="0" <?php echo $style_value == 0 ? 'SELECTED' : ''; ?> ><?php _e( 'Hide on Desktop Devices' , 'click-to-chat-for-whatsapp' ) ?></option>
|
122 |
</select>
|
123 |
<label><?php _e( 'Select Style for Destops' , 'click-to-chat-for-whatsapp' ) ?></label>
|
@@ -146,7 +146,7 @@ class CCW_Admin_Page {
|
|
146 |
<option value="7" <?php echo $style_mobile_value == 7 ? 'SELECTED' : ''; ?> >Style-7</option>
|
147 |
<option value="8" <?php echo $style_mobile_value == 8 ? 'SELECTED' : ''; ?> >Style-8</option>
|
148 |
<option value="9" <?php echo $style_mobile_value == 9 ? 'SELECTED' : ''; ?> >Style-9</option>
|
149 |
-
<option value="99" <?php echo $style_mobile_value == 99 ? 'SELECTED' : ''; ?> >Style-99 own Image / GIF</option>
|
150 |
<option value="0" <?php echo $style_mobile_value == 0 ? 'SELECTED' : ''; ?> ><?php _e( 'Hide on Mobile Devices' , 'click-to-chat-for-whatsapp' ) ?></option>
|
151 |
</select>
|
152 |
<label><?php _e( 'Select Style for Mobile Devices' , 'click-to-chat-for-whatsapp' ) ?></label>
|
@@ -161,7 +161,7 @@ class CCW_Admin_Page {
|
|
161 |
?>
|
162 |
<div class="row">
|
163 |
<div class="input-field col s12">
|
164 |
-
<input name="ccw_options[number]" value="<?php echo esc_attr( $ccw_number['number'] ) ?>" id="whatsapp_number" type="text" class="
|
165 |
<label for="whatsapp_number"><?php _e( 'Enter whatsapp number' , 'click-to-chat-for-whatsapp' ) ?> </label>
|
166 |
<p class="description"><?php _e( 'Enter whatsapp number with country code ( e.g. 916123456789 ) please dont include +, ( here in e.g. 91 is country code 6123456789 is mobile number' , 'click-to-chat-for-whatsapp' ) ?> - <a target="_blank" href="https://www.holithemes.com/whatsapp-chat/whatsapp-number/"><?php _e( 'more info' , 'click-to-chat-for-whatsapp' ) ?></a> ) </p>
|
167 |
</div>
|
@@ -176,7 +176,7 @@ class CCW_Admin_Page {
|
|
176 |
?>
|
177 |
<div class="row">
|
178 |
<div class="input-field col s12">
|
179 |
-
<input name="ccw_options[initial]" value="<?php echo esc_attr( $ccw_initial['initial'] ) ?>" id="whatsapp_initial" type="text" class="
|
180 |
<label for="whatsapp_initial"><?php _e( 'Initial Message' , 'click-to-chat-for-whatsapp' ) ?></label>
|
181 |
<p class="description"><?php _e( 'Initial message ( pre-filled ), placeholder {{url}} to add webpage url - ' , 'click-to-chat-for-whatsapp' ) ?> <a target="_blank" href="https://www.holithemes.com/whatsapp-chat/pre-filled-message/"><?php _e( 'more info' , 'click-to-chat-for-whatsapp' ) ?></a> </p>
|
182 |
</div>
|
@@ -191,7 +191,7 @@ class CCW_Admin_Page {
|
|
191 |
?>
|
192 |
<div class="row">
|
193 |
<div class="input-field col s12">
|
194 |
-
<input name="ccw_options[group_id]" value="<?php echo esc_attr( $ccw_group_id['group_id'] ) ?>" id="whatsapp_group_id" type="text" class="
|
195 |
<label for="whatsapp_group_id"><?php _e( 'whatsapp group ID Extenstion' , 'click-to-chat-for-whatsapp' ) ?> </label>
|
196 |
<p class="description"><?php _e( 'Enter whatsapp Group Id' , 'click-to-chat-for-whatsapp' ) ?> - <a target="_blank" href="https://www.holithemes.com/whatsapp-chat/find-whatsapp-group-id/"><?php _e( 'more info' , 'click-to-chat-for-whatsapp' ) ?></a> ) </p>
|
197 |
</div>
|
@@ -272,7 +272,7 @@ class CCW_Admin_Page {
|
|
272 |
?>
|
273 |
<div class="row">
|
274 |
<div class="input-field col s12">
|
275 |
-
<input name="ccw_options[input_placeholder]" value="<?php echo esc_attr( $ccw_placeholder['input_placeholder'] ) ?>" id="input_placeholder" type="text" class="
|
276 |
<label for="input_placeholder"><?php _e( 'placeholder value' , 'click-to-chat-for-whatsapp' ) ?></label>
|
277 |
<p class="description"> - <a target="_blank" href="https://www.holithemes.com/whatsapp-chat/text-to-display/"><?php _e( 'more info' , 'click-to-chat-for-whatsapp' ) ?></a> </p>
|
278 |
</div>
|
@@ -289,23 +289,27 @@ class CCW_Admin_Page {
|
|
289 |
if ( isset( $ccw_google_analytics['google_analytics'] ) ) {
|
290 |
?>
|
291 |
<p>
|
292 |
-
<
|
293 |
-
|
|
|
|
|
294 |
</p>
|
295 |
<?php
|
296 |
} else {
|
297 |
?>
|
298 |
<p>
|
299 |
-
<
|
300 |
-
|
|
|
|
|
301 |
</p>
|
302 |
<?php
|
303 |
}
|
304 |
?>
|
305 |
|
306 |
-
<p class="description"> <?php _e( 'If Google Analytics is installed - creates an Event at there' , '
|
307 |
-
<p class="description"> <?php _e( 'Customize Event Values' , '
|
308 |
-
<p class="description"> <?php _e( 'Using' , '
|
309 |
<?php
|
310 |
}
|
311 |
|
@@ -318,21 +322,25 @@ class CCW_Admin_Page {
|
|
318 |
if ( isset( $ccw_fb_analytics['fb_analytics'] ) ) {
|
319 |
?>
|
320 |
<p>
|
321 |
-
<
|
322 |
-
|
|
|
|
|
323 |
</p>
|
324 |
<?php
|
325 |
} else {
|
326 |
?>
|
327 |
<p>
|
328 |
-
<
|
329 |
-
|
|
|
|
|
330 |
</p>
|
331 |
<?php
|
332 |
}
|
333 |
?>
|
334 |
-
<p class="description"> <?php _e( 'If Facebook Analytics is installed - creates an Event at there' , '
|
335 |
-
<p class="description"> <?php _e( 'Customize Event Values' , '
|
336 |
<?php
|
337 |
}
|
338 |
|
@@ -347,15 +355,19 @@ class CCW_Admin_Page {
|
|
347 |
if ( isset( $ccw_checkbox['hideon_posts'] ) ) {
|
348 |
?>
|
349 |
<p>
|
350 |
-
<
|
351 |
-
|
|
|
|
|
352 |
</p>
|
353 |
<?php
|
354 |
} else {
|
355 |
?>
|
356 |
<p>
|
357 |
-
<
|
358 |
-
|
|
|
|
|
359 |
</p>
|
360 |
<?php
|
361 |
}
|
@@ -365,15 +377,19 @@ class CCW_Admin_Page {
|
|
365 |
if ( isset( $ccw_checkbox['hideon_page'] ) ) {
|
366 |
?>
|
367 |
<p>
|
368 |
-
<
|
369 |
-
|
|
|
|
|
370 |
</p>
|
371 |
<?php
|
372 |
} else {
|
373 |
?>
|
374 |
<p>
|
375 |
-
<
|
376 |
-
|
|
|
|
|
377 |
</p>
|
378 |
<?php
|
379 |
}
|
@@ -383,15 +399,19 @@ class CCW_Admin_Page {
|
|
383 |
if ( isset( $ccw_checkbox['hideon_homepage'] ) ) {
|
384 |
?>
|
385 |
<p>
|
386 |
-
<
|
387 |
-
|
|
|
|
|
388 |
</p>
|
389 |
<?php
|
390 |
} else {
|
391 |
?>
|
392 |
<p>
|
393 |
-
<
|
394 |
-
|
|
|
|
|
395 |
</p>
|
396 |
<?php
|
397 |
}
|
@@ -403,15 +423,19 @@ class CCW_Admin_Page {
|
|
403 |
if ( isset( $ccw_checkbox['hideon_frontpage'] ) ) {
|
404 |
?>
|
405 |
<p>
|
406 |
-
<
|
407 |
-
|
|
|
|
|
408 |
</p>
|
409 |
<?php
|
410 |
} else {
|
411 |
?>
|
412 |
<p>
|
413 |
-
<
|
414 |
-
|
|
|
|
|
415 |
</p>
|
416 |
<?php
|
417 |
}
|
@@ -420,15 +444,19 @@ class CCW_Admin_Page {
|
|
420 |
if ( isset( $ccw_checkbox['hideon_category'] ) ) {
|
421 |
?>
|
422 |
<p>
|
423 |
-
<
|
424 |
-
|
|
|
|
|
425 |
</p>
|
426 |
<?php
|
427 |
} else {
|
428 |
?>
|
429 |
<p>
|
430 |
-
<
|
431 |
-
|
|
|
|
|
432 |
</p>
|
433 |
<?php
|
434 |
}
|
@@ -437,15 +465,19 @@ class CCW_Admin_Page {
|
|
437 |
if ( isset( $ccw_checkbox['hideon_archive'] ) ) {
|
438 |
?>
|
439 |
<p>
|
440 |
-
<
|
441 |
-
|
|
|
|
|
442 |
</p>
|
443 |
<?php
|
444 |
} else {
|
445 |
?>
|
446 |
<p>
|
447 |
-
<
|
448 |
-
|
|
|
|
|
449 |
</p>
|
450 |
<?php
|
451 |
}
|
@@ -455,15 +487,19 @@ class CCW_Admin_Page {
|
|
455 |
if ( isset( $ccw_checkbox['hideon_404'] ) ) {
|
456 |
?>
|
457 |
<p>
|
458 |
-
<
|
459 |
-
|
|
|
|
|
460 |
</p>
|
461 |
<?php
|
462 |
} else {
|
463 |
?>
|
464 |
<p>
|
465 |
-
<
|
466 |
-
|
|
|
|
|
467 |
</p>
|
468 |
<?php
|
469 |
}
|
@@ -478,7 +514,7 @@ class CCW_Admin_Page {
|
|
478 |
?>
|
479 |
<div class="row">
|
480 |
<div class="input-field col s12">
|
481 |
-
<input name="ccw_options[list_hideon_pages]" value="<?php echo esc_attr( $ccw_list_id_tohide['list_hideon_pages'] ) ?>" id="ccw_list_id_tohide" type="text" class="
|
482 |
<label for="ccw_list_id_tohide">Id's list to Hide - add ',' after each id </label>
|
483 |
<p class="description"> Add Post, Pages, Media - ID's to hide, can add multiple id's separate with comma ( , ) - <a target="_blank" href="https://www.holithemes.com/whatsapp-chat/show-hide-styles-based-on-id/"><?php _e( 'more info' , 'click-to-chat-for-whatsapp' ) ?></a> </p>
|
484 |
</div>
|
@@ -492,7 +528,7 @@ class CCW_Admin_Page {
|
|
492 |
?>
|
493 |
<div class="row">
|
494 |
<div class="input-field col s12">
|
495 |
-
<input name="ccw_options[list_hideon_cat]" value="<?php echo esc_attr( $ccw_list_cat_tohide['list_hideon_cat'] ) ?>" id="ccw_list_cat_tohide" type="text" class="
|
496 |
<label for="ccw_list_cat_tohide"><?php _e( 'Category name\'s to Hide - add \',\' after each category name' , 'click-to-chat-for-whatsapp' ) ?> </label>
|
497 |
<p class="description"><?php _e( 'Category name\'s to hide, can add multiple Categories separate with comma ( , )' , 'click-to-chat-for-whatsapp' ) ?> - <a target="_blank" href="https://www.holithemes.com/whatsapp-chat/hide-styles-based-on-category/"><?php _e( 'more info' , 'click-to-chat-for-whatsapp' ) ?></a> </p>
|
498 |
</div>
|
@@ -506,7 +542,7 @@ class CCW_Admin_Page {
|
|
506 |
?>
|
507 |
<div class="row">
|
508 |
<div class="input-field col s12">
|
509 |
-
<input name="ccw_options[shortcode]" value="<?php echo esc_attr( $ccw_shortcode['shortcode'] ) ?>" id="shortcode" type="text" class="
|
510 |
<label for="shortcode"><?php _e( 'shortcode name' , 'click-to-chat-for-whatsapp' ) ?></label>
|
511 |
<?php
|
512 |
$shorcode_list = '';
|
@@ -516,7 +552,8 @@ class CCW_Admin_Page {
|
|
516 |
}
|
517 |
?>
|
518 |
<p class="description"> <?php _e( 'Default values is \'chat\', can customize shortcode name' , 'click-to-chat-for-whatsapp' ) ?> - <a target="_blank" href="https://www.holithemes.com/whatsapp-chat/change-shortcode-name/"><?php _e( 'more info' , 'click-to-chat-for-whatsapp' ) ?></a> </p>
|
519 |
-
<p class="description"> <?php _e( 'please dont add this already existing shorcode names' , 'click-to-chat-for-whatsapp' ) ?> - <?php echo $shorcode_list ?> </p>
|
|
|
520 |
</div>
|
521 |
</div>
|
522 |
<?php
|
@@ -533,20 +570,24 @@ class CCW_Admin_Page {
|
|
533 |
if ( isset( $ccw_app_first['app_first'] ) ) {
|
534 |
?>
|
535 |
<p>
|
536 |
-
<
|
537 |
-
|
|
|
|
|
538 |
</p>
|
539 |
<?php
|
540 |
} else {
|
541 |
?>
|
542 |
<p>
|
543 |
-
<
|
544 |
-
|
|
|
|
|
545 |
</p>
|
546 |
<?php
|
547 |
}
|
548 |
?>
|
549 |
-
<p class="description"> <?php _e( 'check this only if an issue with some cache
|
550 |
<?php
|
551 |
}
|
552 |
|
117 |
<option value="7" <?php echo $style_value == 7 ? 'SELECTED' : ''; ?> >Style-7</option>
|
118 |
<option value="8" <?php echo $style_value == 8 ? 'SELECTED' : ''; ?> >Style-8</option>
|
119 |
<option value="9" <?php echo $style_value == 9 ? 'SELECTED' : ''; ?> >Style-9</option>
|
120 |
+
<option value="99" <?php echo $style_value == 99 ? 'SELECTED' : ''; ?> >Style-99 ( Add your own Image / GIF )</option>
|
121 |
<option value="0" <?php echo $style_value == 0 ? 'SELECTED' : ''; ?> ><?php _e( 'Hide on Desktop Devices' , 'click-to-chat-for-whatsapp' ) ?></option>
|
122 |
</select>
|
123 |
<label><?php _e( 'Select Style for Destops' , 'click-to-chat-for-whatsapp' ) ?></label>
|
146 |
<option value="7" <?php echo $style_mobile_value == 7 ? 'SELECTED' : ''; ?> >Style-7</option>
|
147 |
<option value="8" <?php echo $style_mobile_value == 8 ? 'SELECTED' : ''; ?> >Style-8</option>
|
148 |
<option value="9" <?php echo $style_mobile_value == 9 ? 'SELECTED' : ''; ?> >Style-9</option>
|
149 |
+
<option value="99" <?php echo $style_mobile_value == 99 ? 'SELECTED' : ''; ?> >Style-99 ( Add your own Image / GIF )</option>
|
150 |
<option value="0" <?php echo $style_mobile_value == 0 ? 'SELECTED' : ''; ?> ><?php _e( 'Hide on Mobile Devices' , 'click-to-chat-for-whatsapp' ) ?></option>
|
151 |
</select>
|
152 |
<label><?php _e( 'Select Style for Mobile Devices' , 'click-to-chat-for-whatsapp' ) ?></label>
|
161 |
?>
|
162 |
<div class="row">
|
163 |
<div class="input-field col s12">
|
164 |
+
<input name="ccw_options[number]" value="<?php echo esc_attr( $ccw_number['number'] ) ?>" id="whatsapp_number" type="text" class="input-margin">
|
165 |
<label for="whatsapp_number"><?php _e( 'Enter whatsapp number' , 'click-to-chat-for-whatsapp' ) ?> </label>
|
166 |
<p class="description"><?php _e( 'Enter whatsapp number with country code ( e.g. 916123456789 ) please dont include +, ( here in e.g. 91 is country code 6123456789 is mobile number' , 'click-to-chat-for-whatsapp' ) ?> - <a target="_blank" href="https://www.holithemes.com/whatsapp-chat/whatsapp-number/"><?php _e( 'more info' , 'click-to-chat-for-whatsapp' ) ?></a> ) </p>
|
167 |
</div>
|
176 |
?>
|
177 |
<div class="row">
|
178 |
<div class="input-field col s12">
|
179 |
+
<input name="ccw_options[initial]" value="<?php echo esc_attr( $ccw_initial['initial'] ) ?>" id="whatsapp_initial" type="text" class="input-margin">
|
180 |
<label for="whatsapp_initial"><?php _e( 'Initial Message' , 'click-to-chat-for-whatsapp' ) ?></label>
|
181 |
<p class="description"><?php _e( 'Initial message ( pre-filled ), placeholder {{url}} to add webpage url - ' , 'click-to-chat-for-whatsapp' ) ?> <a target="_blank" href="https://www.holithemes.com/whatsapp-chat/pre-filled-message/"><?php _e( 'more info' , 'click-to-chat-for-whatsapp' ) ?></a> </p>
|
182 |
</div>
|
191 |
?>
|
192 |
<div class="row">
|
193 |
<div class="input-field col s12">
|
194 |
+
<input name="ccw_options[group_id]" value="<?php echo esc_attr( $ccw_group_id['group_id'] ) ?>" id="whatsapp_group_id" type="text" class="input-margin">
|
195 |
<label for="whatsapp_group_id"><?php _e( 'whatsapp group ID Extenstion' , 'click-to-chat-for-whatsapp' ) ?> </label>
|
196 |
<p class="description"><?php _e( 'Enter whatsapp Group Id' , 'click-to-chat-for-whatsapp' ) ?> - <a target="_blank" href="https://www.holithemes.com/whatsapp-chat/find-whatsapp-group-id/"><?php _e( 'more info' , 'click-to-chat-for-whatsapp' ) ?></a> ) </p>
|
197 |
</div>
|
272 |
?>
|
273 |
<div class="row">
|
274 |
<div class="input-field col s12">
|
275 |
+
<input name="ccw_options[input_placeholder]" value="<?php echo esc_attr( $ccw_placeholder['input_placeholder'] ) ?>" id="input_placeholder" type="text" class="input-margin">
|
276 |
<label for="input_placeholder"><?php _e( 'placeholder value' , 'click-to-chat-for-whatsapp' ) ?></label>
|
277 |
<p class="description"> - <a target="_blank" href="https://www.holithemes.com/whatsapp-chat/text-to-display/"><?php _e( 'more info' , 'click-to-chat-for-whatsapp' ) ?></a> </p>
|
278 |
</div>
|
289 |
if ( isset( $ccw_google_analytics['google_analytics'] ) ) {
|
290 |
?>
|
291 |
<p>
|
292 |
+
<label>
|
293 |
+
<input name="ccw_options[google_analytics]" type="checkbox" value="1" <?php checked( $ccw_google_analytics['google_analytics'], 1 ); ?> id="google_analytics" />
|
294 |
+
<span>Google Analytics</span>
|
295 |
+
</label>
|
296 |
</p>
|
297 |
<?php
|
298 |
} else {
|
299 |
?>
|
300 |
<p>
|
301 |
+
<label>
|
302 |
+
<input name="ccw_options[google_analytics]" type="checkbox" value="1" id="google_analytics" />
|
303 |
+
<span>Google Analytics</span>
|
304 |
+
</label>
|
305 |
</p>
|
306 |
<?php
|
307 |
}
|
308 |
?>
|
309 |
|
310 |
+
<p class="description"> <?php _e( 'If Google Analytics is installed - creates an Event at there' , 'click-to-chat-for-whatsapp' ) ?> - <a target="_blank" href="https://www.holithemes.com/whatsapp-chat/google-analytics/"><?php _e( 'more info' , 'click-to-chat-for-whatsapp' ) ?></a> </p>
|
311 |
+
<p class="description"> <?php _e( 'Customize Event Values' , 'click-to-chat-for-whatsapp' ) ?> - <a target="_blank" href="<?php echo admin_url( 'admin.php?page=ccw-edit-styles#ga-analytics' ); ?>"><?php _e( 'Customize Styles' , 'click-to-chat-for-whatsapp' ) ?></a> </p>
|
312 |
+
<p class="description"> <?php _e( 'Using' , 'click-to-chat-for-whatsapp' ) ?> - <a target="_blank" href="https://www.holithemes.com/google-analytics-for-click-to-chat-for-whatsapp-plugin/"><?php _e( 'Google Tag Manager' , 'click-to-chat-for-whatsapp' ) ?></a> </p>
|
313 |
<?php
|
314 |
}
|
315 |
|
322 |
if ( isset( $ccw_fb_analytics['fb_analytics'] ) ) {
|
323 |
?>
|
324 |
<p>
|
325 |
+
<label>
|
326 |
+
<input name="ccw_options[fb_analytics]" type="checkbox" value="1" <?php checked( $ccw_fb_analytics['fb_analytics'], 1 ); ?> id="fb_analytics" />
|
327 |
+
<span>Facebook Analytics</span>
|
328 |
+
</label>
|
329 |
</p>
|
330 |
<?php
|
331 |
} else {
|
332 |
?>
|
333 |
<p>
|
334 |
+
<label>
|
335 |
+
<input name="ccw_options[fb_analytics]" type="checkbox" value="1" id="fb_analytics" />
|
336 |
+
<span>Facebook Analytics</span>
|
337 |
+
</label>
|
338 |
</p>
|
339 |
<?php
|
340 |
}
|
341 |
?>
|
342 |
+
<p class="description"> <?php _e( 'If Facebook Analytics is installed - creates an Event at there' , 'click-to-chat-for-whatsapp' ) ?> - <a target="_blank" href="https://www.holithemes.com/whatsapp-chat/facebook-analytics/"><?php _e( 'more info' , 'click-to-chat-for-whatsapp' ) ?></a> </p>
|
343 |
+
<p class="description"> <?php _e( 'Customize Event Values' , 'click-to-chat-for-whatsapp' ) ?> - <a target="_blank" href="<?php echo admin_url( 'admin.php?page=ccw-edit-styles#fb-analytics' ); ?>"><?php _e( 'Customize Styles' , 'click-to-chat-for-whatsapp' ) ?></a> </p>
|
344 |
<?php
|
345 |
}
|
346 |
|
355 |
if ( isset( $ccw_checkbox['hideon_posts'] ) ) {
|
356 |
?>
|
357 |
<p>
|
358 |
+
<label>
|
359 |
+
<input name="ccw_options[hideon_posts]" type="checkbox" value="1" <?php checked( $ccw_checkbox['hideon_posts'], 1 ); ?> id="filled-in-box1" />
|
360 |
+
<span>Hide on - Posts</span>
|
361 |
+
</label>
|
362 |
</p>
|
363 |
<?php
|
364 |
} else {
|
365 |
?>
|
366 |
<p>
|
367 |
+
<label>
|
368 |
+
<input name="ccw_options[hideon_posts]" type="checkbox" value="1" id="filled-in-box1" />
|
369 |
+
<span>Hide on - Posts</span>
|
370 |
+
</label>
|
371 |
</p>
|
372 |
<?php
|
373 |
}
|
377 |
if ( isset( $ccw_checkbox['hideon_page'] ) ) {
|
378 |
?>
|
379 |
<p>
|
380 |
+
<label>
|
381 |
+
<input name="ccw_options[hideon_page]" type="checkbox" value="1" <?php checked( $ccw_checkbox['hideon_page'], 1 ); ?> id="filled-in-box2" />
|
382 |
+
<span>Hide on - Pages</span>
|
383 |
+
</label>
|
384 |
</p>
|
385 |
<?php
|
386 |
} else {
|
387 |
?>
|
388 |
<p>
|
389 |
+
<label>
|
390 |
+
<input name="ccw_options[hideon_page]" type="checkbox" value="1" id="filled-in-box2" />
|
391 |
+
<span>Hide on - Pages</span>
|
392 |
+
</label>
|
393 |
</p>
|
394 |
<?php
|
395 |
}
|
399 |
if ( isset( $ccw_checkbox['hideon_homepage'] ) ) {
|
400 |
?>
|
401 |
<p>
|
402 |
+
<label>
|
403 |
+
<input name="ccw_options[hideon_homepage]" type="checkbox" value="1" <?php checked( $ccw_checkbox['hideon_homepage'], 1 ); ?> id="filled-in-box3" />
|
404 |
+
<span>Hide on - Home Page</span>
|
405 |
+
</label>
|
406 |
</p>
|
407 |
<?php
|
408 |
} else {
|
409 |
?>
|
410 |
<p>
|
411 |
+
<label>
|
412 |
+
<input name="ccw_options[hideon_homepage]" type="checkbox" value="1" id="filled-in-box3" />
|
413 |
+
<span>Hide on - Home Page</span>
|
414 |
+
</label>
|
415 |
</p>
|
416 |
<?php
|
417 |
}
|
423 |
if ( isset( $ccw_checkbox['hideon_frontpage'] ) ) {
|
424 |
?>
|
425 |
<p>
|
426 |
+
<label>
|
427 |
+
<input name="ccw_options[hideon_frontpage]" type="checkbox" value="1" <?php checked( $ccw_checkbox['hideon_frontpage'], 1 ); ?> id="filled-in-box4" />
|
428 |
+
<span>Hide on - Front Page</span>
|
429 |
+
</label>
|
430 |
</p>
|
431 |
<?php
|
432 |
} else {
|
433 |
?>
|
434 |
<p>
|
435 |
+
<label>
|
436 |
+
<input name="ccw_options[hideon_frontpage]" type="checkbox" value="1" id="filled-in-box4" />
|
437 |
+
<span>Hide on - Front Page</span>
|
438 |
+
</label>
|
439 |
</p>
|
440 |
<?php
|
441 |
}
|
444 |
if ( isset( $ccw_checkbox['hideon_category'] ) ) {
|
445 |
?>
|
446 |
<p>
|
447 |
+
<label>
|
448 |
+
<input name="ccw_options[hideon_category]" type="checkbox" value="1" <?php checked( $ccw_checkbox['hideon_category'], 1 ); ?> id="filled-in-box5" />
|
449 |
+
<span>Hide on - Category</span>
|
450 |
+
</label>
|
451 |
</p>
|
452 |
<?php
|
453 |
} else {
|
454 |
?>
|
455 |
<p>
|
456 |
+
<label>
|
457 |
+
<input name="ccw_options[hideon_category]" type="checkbox" value="1" id="filled-in-box5" />
|
458 |
+
<span>Hide on - Category</span>
|
459 |
+
</label>
|
460 |
</p>
|
461 |
<?php
|
462 |
}
|
465 |
if ( isset( $ccw_checkbox['hideon_archive'] ) ) {
|
466 |
?>
|
467 |
<p>
|
468 |
+
<label>
|
469 |
+
<input name="ccw_options[hideon_archive]" type="checkbox" value="1" <?php checked( $ccw_checkbox['hideon_archive'], 1 ); ?> id="filled-in-box6" />
|
470 |
+
<span>Hide on - Archive</span>
|
471 |
+
</label>
|
472 |
</p>
|
473 |
<?php
|
474 |
} else {
|
475 |
?>
|
476 |
<p>
|
477 |
+
<label>
|
478 |
+
<input name="ccw_options[hideon_archive]" type="checkbox" value="1" id="filled-in-box6" />
|
479 |
+
<span>Hide on - Archive</span>
|
480 |
+
</label>
|
481 |
</p>
|
482 |
<?php
|
483 |
}
|
487 |
if ( isset( $ccw_checkbox['hideon_404'] ) ) {
|
488 |
?>
|
489 |
<p>
|
490 |
+
<label>
|
491 |
+
<input name="ccw_options[hideon_404]" type="checkbox" value="1" <?php checked( $ccw_checkbox['hideon_404'], 1 ); ?> id="filled-in-box7" />
|
492 |
+
<span>Hide on - 404 Page</span>
|
493 |
+
</label>
|
494 |
</p>
|
495 |
<?php
|
496 |
} else {
|
497 |
?>
|
498 |
<p>
|
499 |
+
<label>
|
500 |
+
<input name="ccw_options[hideon_404]" type="checkbox" value="1" id="filled-in-box7" />
|
501 |
+
<span>Hide on - 404 Page</span>
|
502 |
+
</label>
|
503 |
</p>
|
504 |
<?php
|
505 |
}
|
514 |
?>
|
515 |
<div class="row">
|
516 |
<div class="input-field col s12">
|
517 |
+
<input name="ccw_options[list_hideon_pages]" value="<?php echo esc_attr( $ccw_list_id_tohide['list_hideon_pages'] ) ?>" id="ccw_list_id_tohide" type="text" class="input-margin">
|
518 |
<label for="ccw_list_id_tohide">Id's list to Hide - add ',' after each id </label>
|
519 |
<p class="description"> Add Post, Pages, Media - ID's to hide, can add multiple id's separate with comma ( , ) - <a target="_blank" href="https://www.holithemes.com/whatsapp-chat/show-hide-styles-based-on-id/"><?php _e( 'more info' , 'click-to-chat-for-whatsapp' ) ?></a> </p>
|
520 |
</div>
|
528 |
?>
|
529 |
<div class="row">
|
530 |
<div class="input-field col s12">
|
531 |
+
<input name="ccw_options[list_hideon_cat]" value="<?php echo esc_attr( $ccw_list_cat_tohide['list_hideon_cat'] ) ?>" id="ccw_list_cat_tohide" type="text" class="input-margin">
|
532 |
<label for="ccw_list_cat_tohide"><?php _e( 'Category name\'s to Hide - add \',\' after each category name' , 'click-to-chat-for-whatsapp' ) ?> </label>
|
533 |
<p class="description"><?php _e( 'Category name\'s to hide, can add multiple Categories separate with comma ( , )' , 'click-to-chat-for-whatsapp' ) ?> - <a target="_blank" href="https://www.holithemes.com/whatsapp-chat/hide-styles-based-on-category/"><?php _e( 'more info' , 'click-to-chat-for-whatsapp' ) ?></a> </p>
|
534 |
</div>
|
542 |
?>
|
543 |
<div class="row">
|
544 |
<div class="input-field col s12">
|
545 |
+
<input name="ccw_options[shortcode]" value="<?php echo esc_attr( $ccw_shortcode['shortcode'] ) ?>" id="shortcode" type="text" class="input-margin">
|
546 |
<label for="shortcode"><?php _e( 'shortcode name' , 'click-to-chat-for-whatsapp' ) ?></label>
|
547 |
<?php
|
548 |
$shorcode_list = '';
|
552 |
}
|
553 |
?>
|
554 |
<p class="description"> <?php _e( 'Default values is \'chat\', can customize shortcode name' , 'click-to-chat-for-whatsapp' ) ?> - <a target="_blank" href="https://www.holithemes.com/whatsapp-chat/change-shortcode-name/"><?php _e( 'more info' , 'click-to-chat-for-whatsapp' ) ?></a> </p>
|
555 |
+
<!-- <p class="description"> <?php _e( 'please dont add this already existing shorcode names' , 'click-to-chat-for-whatsapp' ) ?> - <?php echo $shorcode_list ?> </p> -->
|
556 |
+
<p class="description"> <?php _e( 'please dont change to already existing shorcode name' , 'click-to-chat-for-whatsapp' ) ?> </p>
|
557 |
</div>
|
558 |
</div>
|
559 |
<?php
|
570 |
if ( isset( $ccw_app_first['app_first'] ) ) {
|
571 |
?>
|
572 |
<p>
|
573 |
+
<label>
|
574 |
+
<input name="ccw_options[app_first]" type="checkbox" value="1" <?php checked( $ccw_app_first['app_first'], 1 ); ?> id="app_first" />
|
575 |
+
<span>App First ( If Cache Issue )</span>
|
576 |
+
</label>
|
577 |
</p>
|
578 |
<?php
|
579 |
} else {
|
580 |
?>
|
581 |
<p>
|
582 |
+
<label>
|
583 |
+
<input name="ccw_options[app_first]" type="checkbox" value="1" id="app_first" />
|
584 |
+
<span>App First ( If Cache Issue )</span>
|
585 |
+
</label>
|
586 |
</p>
|
587 |
<?php
|
588 |
}
|
589 |
?>
|
590 |
+
<p class="description"> <?php _e( 'check this only if an issue with some cache plugin - api.whatsapp, web.whatsapp' , 'click-to-chat-for-whatsapp' ) ?> - <a target="_blank" href="https://www.holithemes.com/whatsapp-chat/app-first/"><?php _e( 'more info' , 'click-to-chat-for-whatsapp' ) ?></a> </p>
|
591 |
<?php
|
592 |
}
|
593 |
|
admin/commons/admin-sidebar.php
CHANGED
@@ -18,16 +18,18 @@ if ( ! defined( 'ABSPATH' ) ) exit;
|
|
18 |
<div class="col s10 offset-s2 offset-m3 offset-xl2">
|
19 |
<div class="card blue-grey darken-1" style="margin-bottom: 0;">
|
20 |
<div class="card-content white-text">
|
21 |
-
<span class="card-title"
|
22 |
<br>
|
23 |
-
<p
|
24 |
<br>
|
25 |
-
<p
|
|
|
26 |
<br>
|
27 |
-
|
28 |
</div>
|
29 |
<div class="card-action">
|
30 |
-
<a
|
|
|
31 |
</div>
|
32 |
</div>
|
33 |
<small class="admin_sidebar_hide_option" onclick="ccw_hide_admin_sidebar_card()" style="cursor: pointer;">Hide this card</small>
|
18 |
<div class="col s10 offset-s2 offset-m3 offset-xl2">
|
19 |
<div class="card blue-grey darken-1" style="margin-bottom: 0;">
|
20 |
<div class="card-content white-text">
|
21 |
+
<span class="card-title">Next Version - New interface - Beta</span>
|
22 |
<br>
|
23 |
+
<p>We developed a new Interface, plannnig to release soon. </p>
|
24 |
<br>
|
25 |
+
<p>Please <a href="https://www.holithemes.com/go/ctc-1-8">Download</a> the beta version</p><br>
|
26 |
+
<p>After downloading, please delete the current version and reinstall the latest version.</p><br>
|
27 |
<br>
|
28 |
+
|
29 |
</div>
|
30 |
<div class="card-action">
|
31 |
+
<a href="https://www.holithemes.com/go/ctc-1-8">Download</a>
|
32 |
+
<a target="_blank" href="https://holithemes.com/plugins/click-to-chat/">Documentation</a>
|
33 |
</div>
|
34 |
</div>
|
35 |
<small class="admin_sidebar_hide_option" onclick="ccw_hide_admin_sidebar_card()" style="cursor: pointer;">Hide this card</small>
|
admin/default-values.php
CHANGED
@@ -22,11 +22,13 @@ if ( ! defined( 'ABSPATH' ) ) exit;
|
|
22 |
* initial - default / inital text
|
23 |
*
|
24 |
* enable, enable_sc - 2 - enable, 1 - disable ..
|
|
|
|
|
25 |
*/
|
26 |
$values = array(
|
27 |
'enable' => '2',
|
28 |
'enable_sc' => '2',
|
29 |
-
'number' => '
|
30 |
'initial' => '',
|
31 |
'input_placeholder' => 'WhatsApp us',
|
32 |
'position' => '1',
|
@@ -116,7 +118,7 @@ $values_cs = array(
|
|
116 |
's1_border_color' => '#9e9e9e',
|
117 |
's1_border_color_onfocus' => '#26a69a',
|
118 |
's1_submit_btn_color' => '#26a69a',
|
119 |
-
's1_submit_btn_text_and_icon_color' => '#
|
120 |
's1_width' => 'auto',
|
121 |
's1_btn_text' => 'Submit',
|
122 |
|
@@ -135,7 +137,7 @@ $values_cs = array(
|
|
135 |
's5_hover_color' => '#00e51e',
|
136 |
's5_icon_size' => '24px',
|
137 |
|
138 |
-
's6_color' => '#
|
139 |
's6_hover_color' => '#000',
|
140 |
's6_icon_size' => '24px',
|
141 |
's6_circle_background_color' => '#25D366',
|
@@ -144,7 +146,7 @@ $values_cs = array(
|
|
144 |
's6_circle_width' => '48px',
|
145 |
's6_line_height' => '48px',
|
146 |
|
147 |
-
's7_color' => '#
|
148 |
's7_hover_color' => '#000',
|
149 |
's7_icon_size' => '24px',
|
150 |
's7_box_background_color' => '#25D366',
|
@@ -153,12 +155,12 @@ $values_cs = array(
|
|
153 |
's7_box_width' => '48px',
|
154 |
's7_line_height' => '48px',
|
155 |
|
156 |
-
's8_text_color' => '#
|
157 |
's8_background_color' => '#26a69a',
|
158 |
-
's8_icon_color' => '#
|
159 |
-
's8_text_color_onhover' => '#
|
160 |
's8_background_color_onhover' => '#26a69a',
|
161 |
-
's8_icon_color_onhover' => '#
|
162 |
's8_icon_float' => 'right',
|
163 |
's8_1_width' => '',
|
164 |
|
@@ -168,8 +170,8 @@ $values_cs = array(
|
|
168 |
's99_img_width_desktop' => '',
|
169 |
's99_img_height_mobile' => '50px',
|
170 |
's99_img_width_mobile' => '',
|
171 |
-
's99_desktop_img' => '
|
172 |
-
's99_mobile_img' => '
|
173 |
|
174 |
// 'an_enable' => 'no',
|
175 |
'an_on_load' => 'no-animation',
|
@@ -237,4 +239,41 @@ $plugin_details = array(
|
|
237 |
);
|
238 |
|
239 |
// Always use update_option - override new values .. don't preseve already existing values
|
240 |
-
update_option( 'ccw_plugin_details', $plugin_details );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
22 |
* initial - default / inital text
|
23 |
*
|
24 |
* enable, enable_sc - 2 - enable, 1 - disable ..
|
25 |
+
* new: 919908469612
|
26 |
+
* prev: 918897606725
|
27 |
*/
|
28 |
$values = array(
|
29 |
'enable' => '2',
|
30 |
'enable_sc' => '2',
|
31 |
+
'number' => '',
|
32 |
'initial' => '',
|
33 |
'input_placeholder' => 'WhatsApp us',
|
34 |
'position' => '1',
|
118 |
's1_border_color' => '#9e9e9e',
|
119 |
's1_border_color_onfocus' => '#26a69a',
|
120 |
's1_submit_btn_color' => '#26a69a',
|
121 |
+
's1_submit_btn_text_and_icon_color' => '#ffffff',
|
122 |
's1_width' => 'auto',
|
123 |
's1_btn_text' => 'Submit',
|
124 |
|
137 |
's5_hover_color' => '#00e51e',
|
138 |
's5_icon_size' => '24px',
|
139 |
|
140 |
+
's6_color' => '#ffffff',
|
141 |
's6_hover_color' => '#000',
|
142 |
's6_icon_size' => '24px',
|
143 |
's6_circle_background_color' => '#25D366',
|
146 |
's6_circle_width' => '48px',
|
147 |
's6_line_height' => '48px',
|
148 |
|
149 |
+
's7_color' => '#ffffff',
|
150 |
's7_hover_color' => '#000',
|
151 |
's7_icon_size' => '24px',
|
152 |
's7_box_background_color' => '#25D366',
|
155 |
's7_box_width' => '48px',
|
156 |
's7_line_height' => '48px',
|
157 |
|
158 |
+
's8_text_color' => '#ffffff',
|
159 |
's8_background_color' => '#26a69a',
|
160 |
+
's8_icon_color' => '#ffffff',
|
161 |
+
's8_text_color_onhover' => '#ffffff',
|
162 |
's8_background_color_onhover' => '#26a69a',
|
163 |
+
's8_icon_color_onhover' => '#ffffff',
|
164 |
's8_icon_float' => 'right',
|
165 |
's8_1_width' => '',
|
166 |
|
170 |
's99_img_width_desktop' => '',
|
171 |
's99_img_height_mobile' => '50px',
|
172 |
's99_img_width_mobile' => '',
|
173 |
+
's99_desktop_img' => '',
|
174 |
+
's99_mobile_img' => '',
|
175 |
|
176 |
// 'an_enable' => 'no',
|
177 |
'an_on_load' => 'no-animation',
|
239 |
);
|
240 |
|
241 |
// Always use update_option - override new values .. don't preseve already existing values
|
242 |
+
update_option( 'ccw_plugin_details', $plugin_details );
|
243 |
+
|
244 |
+
|
245 |
+
|
246 |
+
|
247 |
+
/**
|
248 |
+
* for new interface.. adding some values in advance..
|
249 |
+
* todo
|
250 |
+
*/
|
251 |
+
|
252 |
+
function new_options() {
|
253 |
+
|
254 |
+
|
255 |
+
$new_options = get_option( 'ht_ctc_chat_options' );
|
256 |
+
|
257 |
+
if ( ! isset( $new_options['number'] ) ) {
|
258 |
+
|
259 |
+
$options = get_option( 'ccw_options' );
|
260 |
+
$number = esc_attr( $options['number'] );
|
261 |
+
$pre_filled = esc_attr( $options['initial'] );
|
262 |
+
$call_to_action = esc_attr( $options['input_placeholder'] );
|
263 |
+
|
264 |
+
$ctc_values = array(
|
265 |
+
'number' => $number,
|
266 |
+
'pre_filled' => $pre_filled,
|
267 |
+
'call_to_action' => $call_to_action,
|
268 |
+
|
269 |
+
);
|
270 |
+
|
271 |
+
$db_ctc_values = get_option( 'ht_ctc_chat_options', array() );
|
272 |
+
$update_ctc_values = array_merge($ctc_values, $db_ctc_values);
|
273 |
+
update_option('ht_ctc_chat_options', $update_ctc_values);
|
274 |
+
|
275 |
+
}
|
276 |
+
|
277 |
+
}
|
278 |
+
|
279 |
+
new_options();
|
admin/settings_page.php
CHANGED
@@ -17,6 +17,7 @@ if ( ! defined( 'ABSPATH' ) ) exit;
|
|
17 |
<?php settings_errors(); ?>
|
18 |
|
19 |
<div class="row">
|
|
|
20 |
<div class="col s12 m12 xl6 options">
|
21 |
<form action="options.php" method="post" class="col s12">
|
22 |
<?php settings_fields( 'ccw_settings_group' ); ?>
|
@@ -24,11 +25,13 @@ if ( ! defined( 'ABSPATH' ) ) exit;
|
|
24 |
<?php submit_button() ?>
|
25 |
</form>
|
26 |
</div>
|
|
|
27 |
<div class="col s12 m12 xl6 admin_sidebar">
|
28 |
<div class="wca_card" style="display: none;">
|
29 |
<?php include_once 'commons/admin-sidebar.php'; ?>
|
30 |
</div>
|
31 |
-
</div>
|
|
|
32 |
</div>
|
33 |
|
34 |
<hr> <br> <br>
|
@@ -40,21 +43,7 @@ if ( ! defined( 'ABSPATH' ) ) exit;
|
|
40 |
|
41 |
<div class="row">
|
42 |
|
43 |
-
|
44 |
-
<div class="card blue-grey darken-1">
|
45 |
-
<div class="card-content white-text">
|
46 |
-
<span class="card-title"><?php _e( 'Issues / Support' , 'click-to-chat-for-whatsapp' ) ?></span>
|
47 |
-
<br>
|
48 |
-
<p><?php _e( 'In case any issue, please rise a ticket' , 'click-to-chat-for-whatsapp' ) ?> </p>
|
49 |
-
<br>
|
50 |
-
<p><?php _e( 'WordPress Support forum is Recommend' , 'click-to-chat-for-whatsapp' ) ?></p>
|
51 |
-
</div>
|
52 |
-
<div class="card-action">
|
53 |
-
<a target="_blank" href="https://wordpress.org/support/plugin/click-to-chat-for-whatsapp"><?php _e( '@WordPress' , 'click-to-chat-for-whatsapp' ) ?></a>
|
54 |
-
</div>
|
55 |
-
</div>
|
56 |
-
</div>
|
57 |
-
|
58 |
<div class="col s12 m6">
|
59 |
<div class="card blue-grey darken-1">
|
60 |
<div class="card-content white-text">
|
@@ -70,9 +59,6 @@ if ( ! defined( 'ABSPATH' ) ) exit;
|
|
70 |
</div>
|
71 |
</div>
|
72 |
|
73 |
-
</div>
|
74 |
-
|
75 |
-
<div class="row">
|
76 |
|
77 |
<div class="col s12 m6">
|
78 |
<div class="card blue-grey darken-1">
|
@@ -89,25 +75,7 @@ if ( ! defined( 'ABSPATH' ) ) exit;
|
|
89 |
</div>
|
90 |
</div>
|
91 |
|
92 |
-
|
93 |
-
<div class="card blue-grey darken-1">
|
94 |
-
<div class="card-content white-text">
|
95 |
-
<span class="card-title"><?php _e( 'Web / Social' , 'click-to-chat-for-whatsapp' ) ?></span>
|
96 |
-
<br>
|
97 |
-
<p><?php _e( 'HoliThemes on Web' , 'click-to-chat-for-whatsapp' ) ?></p>
|
98 |
-
<br>
|
99 |
-
<p><?php _e( 'Post new relases, tips, tricks, much more' , 'click-to-chat-for-whatsapp' ) ?></p>
|
100 |
-
</div>
|
101 |
-
<div class="card-action">
|
102 |
-
<a target="_blank" href="https://www.holithemes.com/">HoliThemes</a>
|
103 |
-
<a target="_blank" href="https://www.facebook.com/holithemes/">Facebook</a>
|
104 |
-
<a target="_blank" href="https://www.youtube.com/channel/UC2Tf_WB9PWffO2B3tswWCGw/">YouTube</a>
|
105 |
-
</div>
|
106 |
-
</div>
|
107 |
-
</div>
|
108 |
-
|
109 |
-
</div>
|
110 |
-
|
111 |
</div>
|
112 |
|
113 |
</div>
|
17 |
<?php settings_errors(); ?>
|
18 |
|
19 |
<div class="row">
|
20 |
+
|
21 |
<div class="col s12 m12 xl6 options">
|
22 |
<form action="options.php" method="post" class="col s12">
|
23 |
<?php settings_fields( 'ccw_settings_group' ); ?>
|
25 |
<?php submit_button() ?>
|
26 |
</form>
|
27 |
</div>
|
28 |
+
|
29 |
<div class="col s12 m12 xl6 admin_sidebar">
|
30 |
<div class="wca_card" style="display: none;">
|
31 |
<?php include_once 'commons/admin-sidebar.php'; ?>
|
32 |
</div>
|
33 |
+
</div>
|
34 |
+
|
35 |
</div>
|
36 |
|
37 |
<hr> <br> <br>
|
43 |
|
44 |
<div class="row">
|
45 |
|
46 |
+
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
47 |
<div class="col s12 m6">
|
48 |
<div class="card blue-grey darken-1">
|
49 |
<div class="card-content white-text">
|
59 |
</div>
|
60 |
</div>
|
61 |
|
|
|
|
|
|
|
62 |
|
63 |
<div class="col s12 m6">
|
64 |
<div class="card blue-grey darken-1">
|
75 |
</div>
|
76 |
</div>
|
77 |
|
78 |
+
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
79 |
</div>
|
80 |
|
81 |
</div>
|
assets/css/admin_main.css
ADDED
@@ -0,0 +1,18 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* Admin Styles */
|
2 |
+
|
3 |
+
.display-none {
|
4 |
+
display: none; }
|
5 |
+
|
6 |
+
.display-block {
|
7 |
+
display: block; }
|
8 |
+
|
9 |
+
input.input-margin {
|
10 |
+
margin: 0 0 3px 0 !important; }
|
11 |
+
|
12 |
+
.select-margin .select-1 input {
|
13 |
+
margin: 0 0 3px 0 !important; }
|
14 |
+
|
15 |
+
.options .submit {
|
16 |
+
position: sticky !important;
|
17 |
+
bottom: 1px;
|
18 |
+
float: right; }
|
assets/css/admin_mainstyles.css
DELETED
@@ -1,4453 +0,0 @@
|
|
1 |
-
/* Admin - CSS file */
|
2 |
-
/* Vendor files */
|
3 |
-
/* Materializecss */
|
4 |
-
.materialize-red {
|
5 |
-
background-color: #e51c23 !important; }
|
6 |
-
|
7 |
-
.materialize-red-text {
|
8 |
-
color: #e51c23 !important; }
|
9 |
-
|
10 |
-
.materialize-red.lighten-5 {
|
11 |
-
background-color: #fdeaeb !important; }
|
12 |
-
|
13 |
-
.materialize-red-text.text-lighten-5 {
|
14 |
-
color: #fdeaeb !important; }
|
15 |
-
|
16 |
-
.materialize-red.lighten-4 {
|
17 |
-
background-color: #f8c1c3 !important; }
|
18 |
-
|
19 |
-
.materialize-red-text.text-lighten-4 {
|
20 |
-
color: #f8c1c3 !important; }
|
21 |
-
|
22 |
-
.materialize-red.lighten-3 {
|
23 |
-
background-color: #f3989b !important; }
|
24 |
-
|
25 |
-
.materialize-red-text.text-lighten-3 {
|
26 |
-
color: #f3989b !important; }
|
27 |
-
|
28 |
-
.materialize-red.lighten-2 {
|
29 |
-
background-color: #ee6e73 !important; }
|
30 |
-
|
31 |
-
.materialize-red-text.text-lighten-2 {
|
32 |
-
color: #ee6e73 !important; }
|
33 |
-
|
34 |
-
.materialize-red.lighten-1 {
|
35 |
-
background-color: #ea454b !important; }
|
36 |
-
|
37 |
-
.materialize-red-text.text-lighten-1 {
|
38 |
-
color: #ea454b !important; }
|
39 |
-
|
40 |
-
.materialize-red.darken-1 {
|
41 |
-
background-color: #d0181e !important; }
|
42 |
-
|
43 |
-
.materialize-red-text.text-darken-1 {
|
44 |
-
color: #d0181e !important; }
|
45 |
-
|
46 |
-
.materialize-red.darken-2 {
|
47 |
-
background-color: #b9151b !important; }
|
48 |
-
|
49 |
-
.materialize-red-text.text-darken-2 {
|
50 |
-
color: #b9151b !important; }
|
51 |
-
|
52 |
-
.materialize-red.darken-3 {
|
53 |
-
background-color: #a21318 !important; }
|
54 |
-
|
55 |
-
.materialize-red-text.text-darken-3 {
|
56 |
-
color: #a21318 !important; }
|
57 |
-
|
58 |
-
.materialize-red.darken-4 {
|
59 |
-
background-color: #8b1014 !important; }
|
60 |
-
|
61 |
-
.materialize-red-text.text-darken-4 {
|
62 |
-
color: #8b1014 !important; }
|
63 |
-
|
64 |
-
.red {
|
65 |
-
background-color: #F44336 !important; }
|
66 |
-
|
67 |
-
.red-text {
|
68 |
-
color: #F44336 !important; }
|
69 |
-
|
70 |
-
.red.lighten-5 {
|
71 |
-
background-color: #FFEBEE !important; }
|
72 |
-
|
73 |
-
.red-text.text-lighten-5 {
|
74 |
-
color: #FFEBEE !important; }
|
75 |
-
|
76 |
-
.red.lighten-4 {
|
77 |
-
background-color: #FFCDD2 !important; }
|
78 |
-
|
79 |
-
.red-text.text-lighten-4 {
|
80 |
-
color: #FFCDD2 !important; }
|
81 |
-
|
82 |
-
.red.lighten-3 {
|
83 |
-
background-color: #EF9A9A !important; }
|
84 |
-
|
85 |
-
.red-text.text-lighten-3 {
|
86 |
-
color: #EF9A9A !important; }
|
87 |
-
|
88 |
-
.red.lighten-2 {
|
89 |
-
background-color: #E57373 !important; }
|
90 |
-
|
91 |
-
.red-text.text-lighten-2 {
|
92 |
-
color: #E57373 !important; }
|
93 |
-
|
94 |
-
.red.lighten-1 {
|
95 |
-
background-color: #EF5350 !important; }
|
96 |
-
|
97 |
-
.red-text.text-lighten-1 {
|
98 |
-
color: #EF5350 !important; }
|
99 |
-
|
100 |
-
.red.darken-1 {
|
101 |
-
background-color: #E53935 !important; }
|
102 |
-
|
103 |
-
.red-text.text-darken-1 {
|
104 |
-
color: #E53935 !important; }
|
105 |
-
|
106 |
-
.red.darken-2 {
|
107 |
-
background-color: #D32F2F !important; }
|
108 |
-
|
109 |
-
.red-text.text-darken-2 {
|
110 |
-
color: #D32F2F !important; }
|
111 |
-
|
112 |
-
.red.darken-3 {
|
113 |
-
background-color: #C62828 !important; }
|
114 |
-
|
115 |
-
.red-text.text-darken-3 {
|
116 |
-
color: #C62828 !important; }
|
117 |
-
|
118 |
-
.red.darken-4 {
|
119 |
-
background-color: #B71C1C !important; }
|
120 |
-
|
121 |
-
.red-text.text-darken-4 {
|
122 |
-
color: #B71C1C !important; }
|
123 |
-
|
124 |
-
.red.accent-1 {
|
125 |
-
background-color: #FF8A80 !important; }
|
126 |
-
|
127 |
-
.red-text.text-accent-1 {
|
128 |
-
color: #FF8A80 !important; }
|
129 |
-
|
130 |
-
.red.accent-2 {
|
131 |
-
background-color: #FF5252 !important; }
|
132 |
-
|
133 |
-
.red-text.text-accent-2 {
|
134 |
-
color: #FF5252 !important; }
|
135 |
-
|
136 |
-
.red.accent-3 {
|
137 |
-
background-color: #FF1744 !important; }
|
138 |
-
|
139 |
-
.red-text.text-accent-3 {
|
140 |
-
color: #FF1744 !important; }
|
141 |
-
|
142 |
-
.red.accent-4 {
|
143 |
-
background-color: #D50000 !important; }
|
144 |
-
|
145 |
-
.red-text.text-accent-4 {
|
146 |
-
color: #D50000 !important; }
|
147 |
-
|
148 |
-
.pink {
|
149 |
-
background-color: #e91e63 !important; }
|
150 |
-
|
151 |
-
.pink-text {
|
152 |
-
color: #e91e63 !important; }
|
153 |
-
|
154 |
-
.pink.lighten-5 {
|
155 |
-
background-color: #fce4ec !important; }
|
156 |
-
|
157 |
-
.pink-text.text-lighten-5 {
|
158 |
-
color: #fce4ec !important; }
|
159 |
-
|
160 |
-
.pink.lighten-4 {
|
161 |
-
background-color: #f8bbd0 !important; }
|
162 |
-
|
163 |
-
.pink-text.text-lighten-4 {
|
164 |
-
color: #f8bbd0 !important; }
|
165 |
-
|
166 |
-
.pink.lighten-3 {
|
167 |
-
background-color: #f48fb1 !important; }
|
168 |
-
|
169 |
-
.pink-text.text-lighten-3 {
|
170 |
-
color: #f48fb1 !important; }
|
171 |
-
|
172 |
-
.pink.lighten-2 {
|
173 |
-
background-color: #f06292 !important; }
|
174 |
-
|
175 |
-
.pink-text.text-lighten-2 {
|
176 |
-
color: #f06292 !important; }
|
177 |
-
|
178 |
-
.pink.lighten-1 {
|
179 |
-
background-color: #ec407a !important; }
|
180 |
-
|
181 |
-
.pink-text.text-lighten-1 {
|
182 |
-
color: #ec407a !important; }
|
183 |
-
|
184 |
-
.pink.darken-1 {
|
185 |
-
background-color: #d81b60 !important; }
|
186 |
-
|
187 |
-
.pink-text.text-darken-1 {
|
188 |
-
color: #d81b60 !important; }
|
189 |
-
|
190 |
-
.pink.darken-2 {
|
191 |
-
background-color: #c2185b !important; }
|
192 |
-
|
193 |
-
.pink-text.text-darken-2 {
|
194 |
-
color: #c2185b !important; }
|
195 |
-
|
196 |
-
.pink.darken-3 {
|
197 |
-
background-color: #ad1457 !important; }
|
198 |
-
|
199 |
-
.pink-text.text-darken-3 {
|
200 |
-
color: #ad1457 !important; }
|
201 |
-
|
202 |
-
.pink.darken-4 {
|
203 |
-
background-color: #880e4f !important; }
|
204 |
-
|
205 |
-
.pink-text.text-darken-4 {
|
206 |
-
color: #880e4f !important; }
|
207 |
-
|
208 |
-
.pink.accent-1 {
|
209 |
-
background-color: #ff80ab !important; }
|
210 |
-
|
211 |
-
.pink-text.text-accent-1 {
|
212 |
-
color: #ff80ab !important; }
|
213 |
-
|
214 |
-
.pink.accent-2 {
|
215 |
-
background-color: #ff4081 !important; }
|
216 |
-
|
217 |
-
.pink-text.text-accent-2 {
|
218 |
-
color: #ff4081 !important; }
|
219 |
-
|
220 |
-
.pink.accent-3 {
|
221 |
-
background-color: #f50057 !important; }
|
222 |
-
|
223 |
-
.pink-text.text-accent-3 {
|
224 |
-
color: #f50057 !important; }
|
225 |
-
|
226 |
-
.pink.accent-4 {
|
227 |
-
background-color: #c51162 !important; }
|
228 |
-
|
229 |
-
.pink-text.text-accent-4 {
|
230 |
-
color: #c51162 !important; }
|
231 |
-
|
232 |
-
.purple {
|
233 |
-
background-color: #9c27b0 !important; }
|
234 |
-
|
235 |
-
.purple-text {
|
236 |
-
color: #9c27b0 !important; }
|
237 |
-
|
238 |
-
.purple.lighten-5 {
|
239 |
-
background-color: #f3e5f5 !important; }
|
240 |
-
|
241 |
-
.purple-text.text-lighten-5 {
|
242 |
-
color: #f3e5f5 !important; }
|
243 |
-
|
244 |
-
.purple.lighten-4 {
|
245 |
-
background-color: #e1bee7 !important; }
|
246 |
-
|
247 |
-
.purple-text.text-lighten-4 {
|
248 |
-
color: #e1bee7 !important; }
|
249 |
-
|
250 |
-
.purple.lighten-3 {
|
251 |
-
background-color: #ce93d8 !important; }
|
252 |
-
|
253 |
-
.purple-text.text-lighten-3 {
|
254 |
-
color: #ce93d8 !important; }
|
255 |
-
|
256 |
-
.purple.lighten-2 {
|
257 |
-
background-color: #ba68c8 !important; }
|
258 |
-
|
259 |
-
.purple-text.text-lighten-2 {
|
260 |
-
color: #ba68c8 !important; }
|
261 |
-
|
262 |
-
.purple.lighten-1 {
|
263 |
-
background-color: #ab47bc !important; }
|
264 |
-
|
265 |
-
.purple-text.text-lighten-1 {
|
266 |
-
color: #ab47bc !important; }
|
267 |
-
|
268 |
-
.purple.darken-1 {
|
269 |
-
background-color: #8e24aa !important; }
|
270 |
-
|
271 |
-
.purple-text.text-darken-1 {
|
272 |
-
color: #8e24aa !important; }
|
273 |
-
|
274 |
-
.purple.darken-2 {
|
275 |
-
background-color: #7b1fa2 !important; }
|
276 |
-
|
277 |
-
.purple-text.text-darken-2 {
|
278 |
-
color: #7b1fa2 !important; }
|
279 |
-
|
280 |
-
.purple.darken-3 {
|
281 |
-
background-color: #6a1b9a !important; }
|
282 |
-
|
283 |
-
.purple-text.text-darken-3 {
|
284 |
-
color: #6a1b9a !important; }
|
285 |
-
|
286 |
-
.purple.darken-4 {
|
287 |
-
background-color: #4a148c !important; }
|
288 |
-
|
289 |
-
.purple-text.text-darken-4 {
|
290 |
-
color: #4a148c !important; }
|
291 |
-
|
292 |
-
.purple.accent-1 {
|
293 |
-
background-color: #ea80fc !important; }
|
294 |
-
|
295 |
-
.purple-text.text-accent-1 {
|
296 |
-
color: #ea80fc !important; }
|
297 |
-
|
298 |
-
.purple.accent-2 {
|
299 |
-
background-color: #e040fb !important; }
|
300 |
-
|
301 |
-
.purple-text.text-accent-2 {
|
302 |
-
color: #e040fb !important; }
|
303 |
-
|
304 |
-
.purple.accent-3 {
|
305 |
-
background-color: #d500f9 !important; }
|
306 |
-
|
307 |
-
.purple-text.text-accent-3 {
|
308 |
-
color: #d500f9 !important; }
|
309 |
-
|
310 |
-
.purple.accent-4 {
|
311 |
-
background-color: #aa00ff !important; }
|
312 |
-
|
313 |
-
.purple-text.text-accent-4 {
|
314 |
-
color: #aa00ff !important; }
|
315 |
-
|
316 |
-
.deep-purple {
|
317 |
-
background-color: #673ab7 !important; }
|
318 |
-
|
319 |
-
.deep-purple-text {
|
320 |
-
color: #673ab7 !important; }
|
321 |
-
|
322 |
-
.deep-purple.lighten-5 {
|
323 |
-
background-color: #ede7f6 !important; }
|
324 |
-
|
325 |
-
.deep-purple-text.text-lighten-5 {
|
326 |
-
color: #ede7f6 !important; }
|
327 |
-
|
328 |
-
.deep-purple.lighten-4 {
|
329 |
-
background-color: #d1c4e9 !important; }
|
330 |
-
|
331 |
-
.deep-purple-text.text-lighten-4 {
|
332 |
-
color: #d1c4e9 !important; }
|
333 |
-
|
334 |
-
.deep-purple.lighten-3 {
|
335 |
-
background-color: #b39ddb !important; }
|
336 |
-
|
337 |
-
.deep-purple-text.text-lighten-3 {
|
338 |
-
color: #b39ddb !important; }
|
339 |
-
|
340 |
-
.deep-purple.lighten-2 {
|
341 |
-
background-color: #9575cd !important; }
|
342 |
-
|
343 |
-
.deep-purple-text.text-lighten-2 {
|
344 |
-
color: #9575cd !important; }
|
345 |
-
|
346 |
-
.deep-purple.lighten-1 {
|
347 |
-
background-color: #7e57c2 !important; }
|
348 |
-
|
349 |
-
.deep-purple-text.text-lighten-1 {
|
350 |
-
color: #7e57c2 !important; }
|
351 |
-
|
352 |
-
.deep-purple.darken-1 {
|
353 |
-
background-color: #5e35b1 !important; }
|
354 |
-
|
355 |
-
.deep-purple-text.text-darken-1 {
|
356 |
-
color: #5e35b1 !important; }
|
357 |
-
|
358 |
-
.deep-purple.darken-2 {
|
359 |
-
background-color: #512da8 !important; }
|
360 |
-
|
361 |
-
.deep-purple-text.text-darken-2 {
|
362 |
-
color: #512da8 !important; }
|
363 |
-
|
364 |
-
.deep-purple.darken-3 {
|
365 |
-
background-color: #4527a0 !important; }
|
366 |
-
|
367 |
-
.deep-purple-text.text-darken-3 {
|
368 |
-
color: #4527a0 !important; }
|
369 |
-
|
370 |
-
.deep-purple.darken-4 {
|
371 |
-
background-color: #311b92 !important; }
|
372 |
-
|
373 |
-
.deep-purple-text.text-darken-4 {
|
374 |
-
color: #311b92 !important; }
|
375 |
-
|
376 |
-
.deep-purple.accent-1 {
|
377 |
-
background-color: #b388ff !important; }
|
378 |
-
|
379 |
-
.deep-purple-text.text-accent-1 {
|
380 |
-
color: #b388ff !important; }
|
381 |
-
|
382 |
-
.deep-purple.accent-2 {
|
383 |
-
background-color: #7c4dff !important; }
|
384 |
-
|
385 |
-
.deep-purple-text.text-accent-2 {
|
386 |
-
color: #7c4dff !important; }
|
387 |
-
|
388 |
-
.deep-purple.accent-3 {
|
389 |
-
background-color: #651fff !important; }
|
390 |
-
|
391 |
-
.deep-purple-text.text-accent-3 {
|
392 |
-
color: #651fff !important; }
|
393 |
-
|
394 |
-
.deep-purple.accent-4 {
|
395 |
-
background-color: #6200ea !important; }
|
396 |
-
|
397 |
-
.deep-purple-text.text-accent-4 {
|
398 |
-
color: #6200ea !important; }
|
399 |
-
|
400 |
-
.indigo {
|
401 |
-
background-color: #3f51b5 !important; }
|
402 |
-
|
403 |
-
.indigo-text {
|
404 |
-
color: #3f51b5 !important; }
|
405 |
-
|
406 |
-
.indigo.lighten-5 {
|
407 |
-
background-color: #e8eaf6 !important; }
|
408 |
-
|
409 |
-
.indigo-text.text-lighten-5 {
|
410 |
-
color: #e8eaf6 !important; }
|
411 |
-
|
412 |
-
.indigo.lighten-4 {
|
413 |
-
background-color: #c5cae9 !important; }
|
414 |
-
|
415 |
-
.indigo-text.text-lighten-4 {
|
416 |
-
color: #c5cae9 !important; }
|
417 |
-
|
418 |
-
.indigo.lighten-3 {
|
419 |
-
background-color: #9fa8da !important; }
|
420 |
-
|
421 |
-
.indigo-text.text-lighten-3 {
|
422 |
-
color: #9fa8da !important; }
|
423 |
-
|
424 |
-
.indigo.lighten-2 {
|
425 |
-
background-color: #7986cb !important; }
|
426 |
-
|
427 |
-
.indigo-text.text-lighten-2 {
|
428 |
-
color: #7986cb !important; }
|
429 |
-
|
430 |
-
.indigo.lighten-1 {
|
431 |
-
background-color: #5c6bc0 !important; }
|
432 |
-
|
433 |
-
.indigo-text.text-lighten-1 {
|
434 |
-
color: #5c6bc0 !important; }
|
435 |
-
|
436 |
-
.indigo.darken-1 {
|
437 |
-
background-color: #3949ab !important; }
|
438 |
-
|
439 |
-
.indigo-text.text-darken-1 {
|
440 |
-
color: #3949ab !important; }
|
441 |
-
|
442 |
-
.indigo.darken-2 {
|
443 |
-
background-color: #303f9f !important; }
|
444 |
-
|
445 |
-
.indigo-text.text-darken-2 {
|
446 |
-
color: #303f9f !important; }
|
447 |
-
|
448 |
-
.indigo.darken-3 {
|
449 |
-
background-color: #283593 !important; }
|
450 |
-
|
451 |
-
.indigo-text.text-darken-3 {
|
452 |
-
color: #283593 !important; }
|
453 |
-
|
454 |
-
.indigo.darken-4 {
|
455 |
-
background-color: #1a237e !important; }
|
456 |
-
|
457 |
-
.indigo-text.text-darken-4 {
|
458 |
-
color: #1a237e !important; }
|
459 |
-
|
460 |
-
.indigo.accent-1 {
|
461 |
-
background-color: #8c9eff !important; }
|
462 |
-
|
463 |
-
.indigo-text.text-accent-1 {
|
464 |
-
color: #8c9eff !important; }
|
465 |
-
|
466 |
-
.indigo.accent-2 {
|
467 |
-
background-color: #536dfe !important; }
|
468 |
-
|
469 |
-
.indigo-text.text-accent-2 {
|
470 |
-
color: #536dfe !important; }
|
471 |
-
|
472 |
-
.indigo.accent-3 {
|
473 |
-
background-color: #3d5afe !important; }
|
474 |
-
|
475 |
-
.indigo-text.text-accent-3 {
|
476 |
-
color: #3d5afe !important; }
|
477 |
-
|
478 |
-
.indigo.accent-4 {
|
479 |
-
background-color: #304ffe !important; }
|
480 |
-
|
481 |
-
.indigo-text.text-accent-4 {
|
482 |
-
color: #304ffe !important; }
|
483 |
-
|
484 |
-
.blue {
|
485 |
-
background-color: #2196F3 !important; }
|
486 |
-
|
487 |
-
.blue-text {
|
488 |
-
color: #2196F3 !important; }
|
489 |
-
|
490 |
-
.blue.lighten-5 {
|
491 |
-
background-color: #E3F2FD !important; }
|
492 |
-
|
493 |
-
.blue-text.text-lighten-5 {
|
494 |
-
color: #E3F2FD !important; }
|
495 |
-
|
496 |
-
.blue.lighten-4 {
|
497 |
-
background-color: #BBDEFB !important; }
|
498 |
-
|
499 |
-
.blue-text.text-lighten-4 {
|
500 |
-
color: #BBDEFB !important; }
|
501 |
-
|
502 |
-
.blue.lighten-3 {
|
503 |
-
background-color: #90CAF9 !important; }
|
504 |
-
|
505 |
-
.blue-text.text-lighten-3 {
|
506 |
-
color: #90CAF9 !important; }
|
507 |
-
|
508 |
-
.blue.lighten-2 {
|
509 |
-
background-color: #64B5F6 !important; }
|
510 |
-
|
511 |
-
.blue-text.text-lighten-2 {
|
512 |
-
color: #64B5F6 !important; }
|
513 |
-
|
514 |
-
.blue.lighten-1 {
|
515 |
-
background-color: #42A5F5 !important; }
|
516 |
-
|
517 |
-
.blue-text.text-lighten-1 {
|
518 |
-
color: #42A5F5 !important; }
|
519 |
-
|
520 |
-
.blue.darken-1 {
|
521 |
-
background-color: #1E88E5 !important; }
|
522 |
-
|
523 |
-
.blue-text.text-darken-1 {
|
524 |
-
color: #1E88E5 !important; }
|
525 |
-
|
526 |
-
.blue.darken-2 {
|
527 |
-
background-color: #1976D2 !important; }
|
528 |
-
|
529 |
-
.blue-text.text-darken-2 {
|
530 |
-
color: #1976D2 !important; }
|
531 |
-
|
532 |
-
.blue.darken-3 {
|
533 |
-
background-color: #1565C0 !important; }
|
534 |
-
|
535 |
-
.blue-text.text-darken-3 {
|
536 |
-
color: #1565C0 !important; }
|
537 |
-
|
538 |
-
.blue.darken-4 {
|
539 |
-
background-color: #0D47A1 !important; }
|
540 |
-
|
541 |
-
.blue-text.text-darken-4 {
|
542 |
-
color: #0D47A1 !important; }
|
543 |
-
|
544 |
-
.blue.accent-1 {
|
545 |
-
background-color: #82B1FF !important; }
|
546 |
-
|
547 |
-
.blue-text.text-accent-1 {
|
548 |
-
color: #82B1FF !important; }
|
549 |
-
|
550 |
-
.blue.accent-2 {
|
551 |
-
background-color: #448AFF !important; }
|
552 |
-
|
553 |
-
.blue-text.text-accent-2 {
|
554 |
-
color: #448AFF !important; }
|
555 |
-
|
556 |
-
.blue.accent-3 {
|
557 |
-
background-color: #2979FF !important; }
|
558 |
-
|
559 |
-
.blue-text.text-accent-3 {
|
560 |
-
color: #2979FF !important; }
|
561 |
-
|
562 |
-
.blue.accent-4 {
|
563 |
-
background-color: #2962FF !important; }
|
564 |
-
|
565 |
-
.blue-text.text-accent-4 {
|
566 |
-
color: #2962FF !important; }
|
567 |
-
|
568 |
-
.light-blue {
|
569 |
-
background-color: #03a9f4 !important; }
|
570 |
-
|
571 |
-
.light-blue-text {
|
572 |
-
color: #03a9f4 !important; }
|
573 |
-
|
574 |
-
.light-blue.lighten-5 {
|
575 |
-
background-color: #e1f5fe !important; }
|
576 |
-
|
577 |
-
.light-blue-text.text-lighten-5 {
|
578 |
-
color: #e1f5fe !important; }
|
579 |
-
|
580 |
-
.light-blue.lighten-4 {
|
581 |
-
background-color: #b3e5fc !important; }
|
582 |
-
|
583 |
-
.light-blue-text.text-lighten-4 {
|
584 |
-
color: #b3e5fc !important; }
|
585 |
-
|
586 |
-
.light-blue.lighten-3 {
|
587 |
-
background-color: #81d4fa !important; }
|
588 |
-
|
589 |
-
.light-blue-text.text-lighten-3 {
|
590 |
-
color: #81d4fa !important; }
|
591 |
-
|
592 |
-
.light-blue.lighten-2 {
|
593 |
-
background-color: #4fc3f7 !important; }
|
594 |
-
|
595 |
-
.light-blue-text.text-lighten-2 {
|
596 |
-
color: #4fc3f7 !important; }
|
597 |
-
|
598 |
-
.light-blue.lighten-1 {
|
599 |
-
background-color: #29b6f6 !important; }
|
600 |
-
|
601 |
-
.light-blue-text.text-lighten-1 {
|
602 |
-
color: #29b6f6 !important; }
|
603 |
-
|
604 |
-
.light-blue.darken-1 {
|
605 |
-
background-color: #039be5 !important; }
|
606 |
-
|
607 |
-
.light-blue-text.text-darken-1 {
|
608 |
-
color: #039be5 !important; }
|
609 |
-
|
610 |
-
.light-blue.darken-2 {
|
611 |
-
background-color: #0288d1 !important; }
|
612 |
-
|
613 |
-
.light-blue-text.text-darken-2 {
|
614 |
-
color: #0288d1 !important; }
|
615 |
-
|
616 |
-
.light-blue.darken-3 {
|
617 |
-
background-color: #0277bd !important; }
|
618 |
-
|
619 |
-
.light-blue-text.text-darken-3 {
|
620 |
-
color: #0277bd !important; }
|
621 |
-
|
622 |
-
.light-blue.darken-4 {
|
623 |
-
background-color: #01579b !important; }
|
624 |
-
|
625 |
-
.light-blue-text.text-darken-4 {
|
626 |
-
color: #01579b !important; }
|
627 |
-
|
628 |
-
.light-blue.accent-1 {
|
629 |
-
background-color: #80d8ff !important; }
|
630 |
-
|
631 |
-
.light-blue-text.text-accent-1 {
|
632 |
-
color: #80d8ff !important; }
|
633 |
-
|
634 |
-
.light-blue.accent-2 {
|
635 |
-
background-color: #40c4ff !important; }
|
636 |
-
|
637 |
-
.light-blue-text.text-accent-2 {
|
638 |
-
color: #40c4ff !important; }
|
639 |
-
|
640 |
-
.light-blue.accent-3 {
|
641 |
-
background-color: #00b0ff !important; }
|
642 |
-
|
643 |
-
.light-blue-text.text-accent-3 {
|
644 |
-
color: #00b0ff !important; }
|
645 |
-
|
646 |
-
.light-blue.accent-4 {
|
647 |
-
background-color: #0091ea !important; }
|
648 |
-
|
649 |
-
.light-blue-text.text-accent-4 {
|
650 |
-
color: #0091ea !important; }
|
651 |
-
|
652 |
-
.cyan {
|
653 |
-
background-color: #00bcd4 !important; }
|
654 |
-
|
655 |
-
.cyan-text {
|
656 |
-
color: #00bcd4 !important; }
|
657 |
-
|
658 |
-
.cyan.lighten-5 {
|
659 |
-
background-color: #e0f7fa !important; }
|
660 |
-
|
661 |
-
.cyan-text.text-lighten-5 {
|
662 |
-
color: #e0f7fa !important; }
|
663 |
-
|
664 |
-
.cyan.lighten-4 {
|
665 |
-
background-color: #b2ebf2 !important; }
|
666 |
-
|
667 |
-
.cyan-text.text-lighten-4 {
|
668 |
-
color: #b2ebf2 !important; }
|
669 |
-
|
670 |
-
.cyan.lighten-3 {
|
671 |
-
background-color: #80deea !important; }
|
672 |
-
|
673 |
-
.cyan-text.text-lighten-3 {
|
674 |
-
color: #80deea !important; }
|
675 |
-
|
676 |
-
.cyan.lighten-2 {
|
677 |
-
background-color: #4dd0e1 !important; }
|
678 |
-
|
679 |
-
.cyan-text.text-lighten-2 {
|
680 |
-
color: #4dd0e1 !important; }
|
681 |
-
|
682 |
-
.cyan.lighten-1 {
|
683 |
-
background-color: #26c6da !important; }
|
684 |
-
|
685 |
-
.cyan-text.text-lighten-1 {
|
686 |
-
color: #26c6da !important; }
|
687 |
-
|
688 |
-
.cyan.darken-1 {
|
689 |
-
background-color: #00acc1 !important; }
|
690 |
-
|
691 |
-
.cyan-text.text-darken-1 {
|
692 |
-
color: #00acc1 !important; }
|
693 |
-
|
694 |
-
.cyan.darken-2 {
|
695 |
-
background-color: #0097a7 !important; }
|
696 |
-
|
697 |
-
.cyan-text.text-darken-2 {
|
698 |
-
color: #0097a7 !important; }
|
699 |
-
|
700 |
-
.cyan.darken-3 {
|
701 |
-
background-color: #00838f !important; }
|
702 |
-
|
703 |
-
.cyan-text.text-darken-3 {
|
704 |
-
color: #00838f !important; }
|
705 |
-
|
706 |
-
.cyan.darken-4 {
|
707 |
-
background-color: #006064 !important; }
|
708 |
-
|
709 |
-
.cyan-text.text-darken-4 {
|
710 |
-
color: #006064 !important; }
|
711 |
-
|
712 |
-
.cyan.accent-1 {
|
713 |
-
background-color: #84ffff !important; }
|
714 |
-
|
715 |
-
.cyan-text.text-accent-1 {
|
716 |
-
color: #84ffff !important; }
|
717 |
-
|
718 |
-
.cyan.accent-2 {
|
719 |
-
background-color: #18ffff !important; }
|
720 |
-
|
721 |
-
.cyan-text.text-accent-2 {
|
722 |
-
color: #18ffff !important; }
|
723 |
-
|
724 |
-
.cyan.accent-3 {
|
725 |
-
background-color: #00e5ff !important; }
|
726 |
-
|
727 |
-
.cyan-text.text-accent-3 {
|
728 |
-
color: #00e5ff !important; }
|
729 |
-
|
730 |
-
.cyan.accent-4 {
|
731 |
-
background-color: #00b8d4 !important; }
|
732 |
-
|
733 |
-
.cyan-text.text-accent-4 {
|
734 |
-
color: #00b8d4 !important; }
|
735 |
-
|
736 |
-
.teal {
|
737 |
-
background-color: #009688 !important; }
|
738 |
-
|
739 |
-
.teal-text {
|
740 |
-
color: #009688 !important; }
|
741 |
-
|
742 |
-
.teal.lighten-5 {
|
743 |
-
background-color: #e0f2f1 !important; }
|
744 |
-
|
745 |
-
.teal-text.text-lighten-5 {
|
746 |
-
color: #e0f2f1 !important; }
|
747 |
-
|
748 |
-
.teal.lighten-4 {
|
749 |
-
background-color: #b2dfdb !important; }
|
750 |
-
|
751 |
-
.teal-text.text-lighten-4 {
|
752 |
-
color: #b2dfdb !important; }
|
753 |
-
|
754 |
-
.teal.lighten-3 {
|
755 |
-
background-color: #80cbc4 !important; }
|
756 |
-
|
757 |
-
.teal-text.text-lighten-3 {
|
758 |
-
color: #80cbc4 !important; }
|
759 |
-
|
760 |
-
.teal.lighten-2 {
|
761 |
-
background-color: #4db6ac !important; }
|
762 |
-
|
763 |
-
.teal-text.text-lighten-2 {
|
764 |
-
color: #4db6ac !important; }
|
765 |
-
|
766 |
-
.teal.lighten-1 {
|
767 |
-
background-color: #26a69a !important; }
|
768 |
-
|
769 |
-
.teal-text.text-lighten-1 {
|
770 |
-
color: #26a69a !important; }
|
771 |
-
|
772 |
-
.teal.darken-1 {
|
773 |
-
background-color: #00897b !important; }
|
774 |
-
|
775 |
-
.teal-text.text-darken-1 {
|
776 |
-
color: #00897b !important; }
|
777 |
-
|
778 |
-
.teal.darken-2 {
|
779 |
-
background-color: #00796b !important; }
|
780 |
-
|
781 |
-
.teal-text.text-darken-2 {
|
782 |
-
color: #00796b !important; }
|
783 |
-
|
784 |
-
.teal.darken-3 {
|
785 |
-
background-color: #00695c !important; }
|
786 |
-
|
787 |
-
.teal-text.text-darken-3 {
|
788 |
-
color: #00695c !important; }
|
789 |
-
|
790 |
-
.teal.darken-4 {
|
791 |
-
background-color: #004d40 !important; }
|
792 |
-
|
793 |
-
.teal-text.text-darken-4 {
|
794 |
-
color: #004d40 !important; }
|
795 |
-
|
796 |
-
.teal.accent-1 {
|
797 |
-
background-color: #a7ffeb !important; }
|
798 |
-
|
799 |
-
.teal-text.text-accent-1 {
|
800 |
-
color: #a7ffeb !important; }
|
801 |
-
|
802 |
-
.teal.accent-2 {
|
803 |
-
background-color: #64ffda !important; }
|
804 |
-
|
805 |
-
.teal-text.text-accent-2 {
|
806 |
-
color: #64ffda !important; }
|
807 |
-
|
808 |
-
.teal.accent-3 {
|
809 |
-
background-color: #1de9b6 !important; }
|
810 |
-
|
811 |
-
.teal-text.text-accent-3 {
|
812 |
-
color: #1de9b6 !important; }
|
813 |
-
|
814 |
-
.teal.accent-4 {
|
815 |
-
background-color: #00bfa5 !important; }
|
816 |
-
|
817 |
-
.teal-text.text-accent-4 {
|
818 |
-
color: #00bfa5 !important; }
|
819 |
-
|
820 |
-
.green {
|
821 |
-
background-color: #4CAF50 !important; }
|
822 |
-
|
823 |
-
.green-text {
|
824 |
-
color: #4CAF50 !important; }
|
825 |
-
|
826 |
-
.green.lighten-5 {
|
827 |
-
background-color: #E8F5E9 !important; }
|
828 |
-
|
829 |
-
.green-text.text-lighten-5 {
|
830 |
-
color: #E8F5E9 !important; }
|
831 |
-
|
832 |
-
.green.lighten-4 {
|
833 |
-
background-color: #C8E6C9 !important; }
|
834 |
-
|
835 |
-
.green-text.text-lighten-4 {
|
836 |
-
color: #C8E6C9 !important; }
|
837 |
-
|
838 |
-
.green.lighten-3 {
|
839 |
-
background-color: #A5D6A7 !important; }
|
840 |
-
|
841 |
-
.green-text.text-lighten-3 {
|
842 |
-
color: #A5D6A7 !important; }
|
843 |
-
|
844 |
-
.green.lighten-2 {
|
845 |
-
background-color: #81C784 !important; }
|
846 |
-
|
847 |
-
.green-text.text-lighten-2 {
|
848 |
-
color: #81C784 !important; }
|
849 |
-
|
850 |
-
.green.lighten-1 {
|
851 |
-
background-color: #66BB6A !important; }
|
852 |
-
|
853 |
-
.green-text.text-lighten-1 {
|
854 |
-
color: #66BB6A !important; }
|
855 |
-
|
856 |
-
.green.darken-1 {
|
857 |
-
background-color: #43A047 !important; }
|
858 |
-
|
859 |
-
.green-text.text-darken-1 {
|
860 |
-
color: #43A047 !important; }
|
861 |
-
|
862 |
-
.green.darken-2 {
|
863 |
-
background-color: #388E3C !important; }
|
864 |
-
|
865 |
-
.green-text.text-darken-2 {
|
866 |
-
color: #388E3C !important; }
|
867 |
-
|
868 |
-
.green.darken-3 {
|
869 |
-
background-color: #2E7D32 !important; }
|
870 |
-
|
871 |
-
.green-text.text-darken-3 {
|
872 |
-
color: #2E7D32 !important; }
|
873 |
-
|
874 |
-
.green.darken-4 {
|
875 |
-
background-color: #1B5E20 !important; }
|
876 |
-
|
877 |
-
.green-text.text-darken-4 {
|
878 |
-
color: #1B5E20 !important; }
|
879 |
-
|
880 |
-
.green.accent-1 {
|
881 |
-
background-color: #B9F6CA !important; }
|
882 |
-
|
883 |
-
.green-text.text-accent-1 {
|
884 |
-
color: #B9F6CA !important; }
|
885 |
-
|
886 |
-
.green.accent-2 {
|
887 |
-
background-color: #69F0AE !important; }
|
888 |
-
|
889 |
-
.green-text.text-accent-2 {
|
890 |
-
color: #69F0AE !important; }
|
891 |
-
|
892 |
-
.green.accent-3 {
|
893 |
-
background-color: #00E676 !important; }
|
894 |
-
|
895 |
-
.green-text.text-accent-3 {
|
896 |
-
color: #00E676 !important; }
|
897 |
-
|
898 |
-
.green.accent-4 {
|
899 |
-
background-color: #00C853 !important; }
|
900 |
-
|
901 |
-
.green-text.text-accent-4 {
|
902 |
-
color: #00C853 !important; }
|
903 |
-
|
904 |
-
.light-green {
|
905 |
-
background-color: #8bc34a !important; }
|
906 |
-
|
907 |
-
.light-green-text {
|
908 |
-
color: #8bc34a !important; }
|
909 |
-
|
910 |
-
.light-green.lighten-5 {
|
911 |
-
background-color: #f1f8e9 !important; }
|
912 |
-
|
913 |
-
.light-green-text.text-lighten-5 {
|
914 |
-
color: #f1f8e9 !important; }
|
915 |
-
|
916 |
-
.light-green.lighten-4 {
|
917 |
-
background-color: #dcedc8 !important; }
|
918 |
-
|
919 |
-
.light-green-text.text-lighten-4 {
|
920 |
-
color: #dcedc8 !important; }
|
921 |
-
|
922 |
-
.light-green.lighten-3 {
|
923 |
-
background-color: #c5e1a5 !important; }
|
924 |
-
|
925 |
-
.light-green-text.text-lighten-3 {
|
926 |
-
color: #c5e1a5 !important; }
|
927 |
-
|
928 |
-
.light-green.lighten-2 {
|
929 |
-
background-color: #aed581 !important; }
|
930 |
-
|
931 |
-
.light-green-text.text-lighten-2 {
|
932 |
-
color: #aed581 !important; }
|
933 |
-
|
934 |
-
.light-green.lighten-1 {
|
935 |
-
background-color: #9ccc65 !important; }
|
936 |
-
|
937 |
-
.light-green-text.text-lighten-1 {
|
938 |
-
color: #9ccc65 !important; }
|
939 |
-
|
940 |
-
.light-green.darken-1 {
|
941 |
-
background-color: #7cb342 !important; }
|
942 |
-
|
943 |
-
.light-green-text.text-darken-1 {
|
944 |
-
color: #7cb342 !important; }
|
945 |
-
|
946 |
-
.light-green.darken-2 {
|
947 |
-
background-color: #689f38 !important; }
|
948 |
-
|
949 |
-
.light-green-text.text-darken-2 {
|
950 |
-
color: #689f38 !important; }
|
951 |
-
|
952 |
-
.light-green.darken-3 {
|
953 |
-
background-color: #558b2f !important; }
|
954 |
-
|
955 |
-
.light-green-text.text-darken-3 {
|
956 |
-
color: #558b2f !important; }
|
957 |
-
|
958 |
-
.light-green.darken-4 {
|
959 |
-
background-color: #33691e !important; }
|
960 |
-
|
961 |
-
.light-green-text.text-darken-4 {
|
962 |
-
color: #33691e !important; }
|
963 |
-
|
964 |
-
.light-green.accent-1 {
|
965 |
-
background-color: #ccff90 !important; }
|
966 |
-
|
967 |
-
.light-green-text.text-accent-1 {
|
968 |
-
color: #ccff90 !important; }
|
969 |
-
|
970 |
-
.light-green.accent-2 {
|
971 |
-
background-color: #b2ff59 !important; }
|
972 |
-
|
973 |
-
.light-green-text.text-accent-2 {
|
974 |
-
color: #b2ff59 !important; }
|
975 |
-
|
976 |
-
.light-green.accent-3 {
|
977 |
-
background-color: #76ff03 !important; }
|
978 |
-
|
979 |
-
.light-green-text.text-accent-3 {
|
980 |
-
color: #76ff03 !important; }
|
981 |
-
|
982 |
-
.light-green.accent-4 {
|
983 |
-
background-color: #64dd17 !important; }
|
984 |
-
|
985 |
-
.light-green-text.text-accent-4 {
|
986 |
-
color: #64dd17 !important; }
|
987 |
-
|
988 |
-
.lime {
|
989 |
-
background-color: #cddc39 !important; }
|
990 |
-
|
991 |
-
.lime-text {
|
992 |
-
color: #cddc39 !important; }
|
993 |
-
|
994 |
-
.lime.lighten-5 {
|
995 |
-
background-color: #f9fbe7 !important; }
|
996 |
-
|
997 |
-
.lime-text.text-lighten-5 {
|
998 |
-
color: #f9fbe7 !important; }
|
999 |
-
|
1000 |
-
.lime.lighten-4 {
|
1001 |
-
background-color: #f0f4c3 !important; }
|
1002 |
-
|
1003 |
-
.lime-text.text-lighten-4 {
|
1004 |
-
color: #f0f4c3 !important; }
|
1005 |
-
|
1006 |
-
.lime.lighten-3 {
|
1007 |
-
background-color: #e6ee9c !important; }
|
1008 |
-
|
1009 |
-
.lime-text.text-lighten-3 {
|
1010 |
-
color: #e6ee9c !important; }
|
1011 |
-
|
1012 |
-
.lime.lighten-2 {
|
1013 |
-
background-color: #dce775 !important; }
|
1014 |
-
|
1015 |
-
.lime-text.text-lighten-2 {
|
1016 |
-
color: #dce775 !important; }
|
1017 |
-
|
1018 |
-
.lime.lighten-1 {
|
1019 |
-
background-color: #d4e157 !important; }
|
1020 |
-
|
1021 |
-
.lime-text.text-lighten-1 {
|
1022 |
-
color: #d4e157 !important; }
|
1023 |
-
|
1024 |
-
.lime.darken-1 {
|
1025 |
-
background-color: #c0ca33 !important; }
|
1026 |
-
|
1027 |
-
.lime-text.text-darken-1 {
|
1028 |
-
color: #c0ca33 !important; }
|
1029 |
-
|
1030 |
-
.lime.darken-2 {
|
1031 |
-
background-color: #afb42b !important; }
|
1032 |
-
|
1033 |
-
.lime-text.text-darken-2 {
|
1034 |
-
color: #afb42b !important; }
|
1035 |
-
|
1036 |
-
.lime.darken-3 {
|
1037 |
-
background-color: #9e9d24 !important; }
|
1038 |
-
|
1039 |
-
.lime-text.text-darken-3 {
|
1040 |
-
color: #9e9d24 !important; }
|
1041 |
-
|
1042 |
-
.lime.darken-4 {
|
1043 |
-
background-color: #827717 !important; }
|
1044 |
-
|
1045 |
-
.lime-text.text-darken-4 {
|
1046 |
-
color: #827717 !important; }
|
1047 |
-
|
1048 |
-
.lime.accent-1 {
|
1049 |
-
background-color: #f4ff81 !important; }
|
1050 |
-
|
1051 |
-
.lime-text.text-accent-1 {
|
1052 |
-
color: #f4ff81 !important; }
|
1053 |
-
|
1054 |
-
.lime.accent-2 {
|
1055 |
-
background-color: #eeff41 !important; }
|
1056 |
-
|
1057 |
-
.lime-text.text-accent-2 {
|
1058 |
-
color: #eeff41 !important; }
|
1059 |
-
|
1060 |
-
.lime.accent-3 {
|
1061 |
-
background-color: #c6ff00 !important; }
|
1062 |
-
|
1063 |
-
.lime-text.text-accent-3 {
|
1064 |
-
color: #c6ff00 !important; }
|
1065 |
-
|
1066 |
-
.lime.accent-4 {
|
1067 |
-
background-color: #aeea00 !important; }
|
1068 |
-
|
1069 |
-
.lime-text.text-accent-4 {
|
1070 |
-
color: #aeea00 !important; }
|
1071 |
-
|
1072 |
-
.yellow {
|
1073 |
-
background-color: #ffeb3b !important; }
|
1074 |
-
|
1075 |
-
.yellow-text {
|
1076 |
-
color: #ffeb3b !important; }
|
1077 |
-
|
1078 |
-
.yellow.lighten-5 {
|
1079 |
-
background-color: #fffde7 !important; }
|
1080 |
-
|
1081 |
-
.yellow-text.text-lighten-5 {
|
1082 |
-
color: #fffde7 !important; }
|
1083 |
-
|
1084 |
-
.yellow.lighten-4 {
|
1085 |
-
background-color: #fff9c4 !important; }
|
1086 |
-
|
1087 |
-
.yellow-text.text-lighten-4 {
|
1088 |
-
color: #fff9c4 !important; }
|
1089 |
-
|
1090 |
-
.yellow.lighten-3 {
|
1091 |
-
background-color: #fff59d !important; }
|
1092 |
-
|
1093 |
-
.yellow-text.text-lighten-3 {
|
1094 |
-
color: #fff59d !important; }
|
1095 |
-
|
1096 |
-
.yellow.lighten-2 {
|
1097 |
-
background-color: #fff176 !important; }
|
1098 |
-
|
1099 |
-
.yellow-text.text-lighten-2 {
|
1100 |
-
color: #fff176 !important; }
|
1101 |
-
|
1102 |
-
.yellow.lighten-1 {
|
1103 |
-
background-color: #ffee58 !important; }
|
1104 |
-
|
1105 |
-
.yellow-text.text-lighten-1 {
|
1106 |
-
color: #ffee58 !important; }
|
1107 |
-
|
1108 |
-
.yellow.darken-1 {
|
1109 |
-
background-color: #fdd835 !important; }
|
1110 |
-
|
1111 |
-
.yellow-text.text-darken-1 {
|
1112 |
-
color: #fdd835 !important; }
|
1113 |
-
|
1114 |
-
.yellow.darken-2 {
|
1115 |
-
background-color: #fbc02d !important; }
|
1116 |
-
|
1117 |
-
.yellow-text.text-darken-2 {
|
1118 |
-
color: #fbc02d !important; }
|
1119 |
-
|
1120 |
-
.yellow.darken-3 {
|
1121 |
-
background-color: #f9a825 !important; }
|
1122 |
-
|
1123 |
-
.yellow-text.text-darken-3 {
|
1124 |
-
color: #f9a825 !important; }
|
1125 |
-
|
1126 |
-
.yellow.darken-4 {
|
1127 |
-
background-color: #f57f17 !important; }
|
1128 |
-
|
1129 |
-
.yellow-text.text-darken-4 {
|
1130 |
-
color: #f57f17 !important; }
|
1131 |
-
|
1132 |
-
.yellow.accent-1 {
|
1133 |
-
background-color: #ffff8d !important; }
|
1134 |
-
|
1135 |
-
.yellow-text.text-accent-1 {
|
1136 |
-
color: #ffff8d !important; }
|
1137 |
-
|
1138 |
-
.yellow.accent-2 {
|
1139 |
-
background-color: #ffff00 !important; }
|
1140 |
-
|
1141 |
-
.yellow-text.text-accent-2 {
|
1142 |
-
color: #ffff00 !important; }
|
1143 |
-
|
1144 |
-
.yellow.accent-3 {
|
1145 |
-
background-color: #ffea00 !important; }
|
1146 |
-
|
1147 |
-
.yellow-text.text-accent-3 {
|
1148 |
-
color: #ffea00 !important; }
|
1149 |
-
|
1150 |
-
.yellow.accent-4 {
|
1151 |
-
background-color: #ffd600 !important; }
|
1152 |
-
|
1153 |
-
.yellow-text.text-accent-4 {
|
1154 |
-
color: #ffd600 !important; }
|
1155 |
-
|
1156 |
-
.amber {
|
1157 |
-
background-color: #ffc107 !important; }
|
1158 |
-
|
1159 |
-
.amber-text {
|
1160 |
-
color: #ffc107 !important; }
|
1161 |
-
|
1162 |
-
.amber.lighten-5 {
|
1163 |
-
background-color: #fff8e1 !important; }
|
1164 |
-
|
1165 |
-
.amber-text.text-lighten-5 {
|
1166 |
-
color: #fff8e1 !important; }
|
1167 |
-
|
1168 |
-
.amber.lighten-4 {
|
1169 |
-
background-color: #ffecb3 !important; }
|
1170 |
-
|
1171 |
-
.amber-text.text-lighten-4 {
|
1172 |
-
color: #ffecb3 !important; }
|
1173 |
-
|
1174 |
-
.amber.lighten-3 {
|
1175 |
-
background-color: #ffe082 !important; }
|
1176 |
-
|
1177 |
-
.amber-text.text-lighten-3 {
|
1178 |
-
color: #ffe082 !important; }
|
1179 |
-
|
1180 |
-
.amber.lighten-2 {
|
1181 |
-
background-color: #ffd54f !important; }
|
1182 |
-
|
1183 |
-
.amber-text.text-lighten-2 {
|
1184 |
-
color: #ffd54f !important; }
|
1185 |
-
|
1186 |
-
.amber.lighten-1 {
|
1187 |
-
background-color: #ffca28 !important; }
|
1188 |
-
|
1189 |
-
.amber-text.text-lighten-1 {
|
1190 |
-
color: #ffca28 !important; }
|
1191 |
-
|
1192 |
-
.amber.darken-1 {
|
1193 |
-
background-color: #ffb300 !important; }
|
1194 |
-
|
1195 |
-
.amber-text.text-darken-1 {
|
1196 |
-
color: #ffb300 !important; }
|
1197 |
-
|
1198 |
-
.amber.darken-2 {
|
1199 |
-
background-color: #ffa000 !important; }
|
1200 |
-
|
1201 |
-
.amber-text.text-darken-2 {
|
1202 |
-
color: #ffa000 !important; }
|
1203 |
-
|
1204 |
-
.amber.darken-3 {
|
1205 |
-
background-color: #ff8f00 !important; }
|
1206 |
-
|
1207 |
-
.amber-text.text-darken-3 {
|
1208 |
-
color: #ff8f00 !important; }
|
1209 |
-
|
1210 |
-
.amber.darken-4 {
|
1211 |
-
background-color: #ff6f00 !important; }
|
1212 |
-
|
1213 |
-
.amber-text.text-darken-4 {
|
1214 |
-
color: #ff6f00 !important; }
|
1215 |
-
|
1216 |
-
.amber.accent-1 {
|
1217 |
-
background-color: #ffe57f !important; }
|
1218 |
-
|
1219 |
-
.amber-text.text-accent-1 {
|
1220 |
-
color: #ffe57f !important; }
|
1221 |
-
|
1222 |
-
.amber.accent-2 {
|
1223 |
-
background-color: #ffd740 !important; }
|
1224 |
-
|
1225 |
-
.amber-text.text-accent-2 {
|
1226 |
-
color: #ffd740 !important; }
|
1227 |
-
|
1228 |
-
.amber.accent-3 {
|
1229 |
-
background-color: #ffc400 !important; }
|
1230 |
-
|
1231 |
-
.amber-text.text-accent-3 {
|
1232 |
-
color: #ffc400 !important; }
|
1233 |
-
|
1234 |
-
.amber.accent-4 {
|
1235 |
-
background-color: #ffab00 !important; }
|
1236 |
-
|
1237 |
-
.amber-text.text-accent-4 {
|
1238 |
-
color: #ffab00 !important; }
|
1239 |
-
|
1240 |
-
.orange {
|
1241 |
-
background-color: #ff9800 !important; }
|
1242 |
-
|
1243 |
-
.orange-text {
|
1244 |
-
color: #ff9800 !important; }
|
1245 |
-
|
1246 |
-
.orange.lighten-5 {
|
1247 |
-
background-color: #fff3e0 !important; }
|
1248 |
-
|
1249 |
-
.orange-text.text-lighten-5 {
|
1250 |
-
color: #fff3e0 !important; }
|
1251 |
-
|
1252 |
-
.orange.lighten-4 {
|
1253 |
-
background-color: #ffe0b2 !important; }
|
1254 |
-
|
1255 |
-
.orange-text.text-lighten-4 {
|
1256 |
-
color: #ffe0b2 !important; }
|
1257 |
-
|
1258 |
-
.orange.lighten-3 {
|
1259 |
-
background-color: #ffcc80 !important; }
|
1260 |
-
|
1261 |
-
.orange-text.text-lighten-3 {
|
1262 |
-
color: #ffcc80 !important; }
|
1263 |
-
|
1264 |
-
.orange.lighten-2 {
|
1265 |
-
background-color: #ffb74d !important; }
|
1266 |
-
|
1267 |
-
.orange-text.text-lighten-2 {
|
1268 |
-
color: #ffb74d !important; }
|
1269 |
-
|
1270 |
-
.orange.lighten-1 {
|
1271 |
-
background-color: #ffa726 !important; }
|
1272 |
-
|
1273 |
-
.orange-text.text-lighten-1 {
|
1274 |
-
color: #ffa726 !important; }
|
1275 |
-
|
1276 |
-
.orange.darken-1 {
|
1277 |
-
background-color: #fb8c00 !important; }
|
1278 |
-
|
1279 |
-
.orange-text.text-darken-1 {
|
1280 |
-
color: #fb8c00 !important; }
|
1281 |
-
|
1282 |
-
.orange.darken-2 {
|
1283 |
-
background-color: #f57c00 !important; }
|
1284 |
-
|
1285 |
-
.orange-text.text-darken-2 {
|
1286 |
-
color: #f57c00 !important; }
|
1287 |
-
|
1288 |
-
.orange.darken-3 {
|
1289 |
-
background-color: #ef6c00 !important; }
|
1290 |
-
|
1291 |
-
.orange-text.text-darken-3 {
|
1292 |
-
color: #ef6c00 !important; }
|
1293 |
-
|
1294 |
-
.orange.darken-4 {
|
1295 |
-
background-color: #e65100 !important; }
|
1296 |
-
|
1297 |
-
.orange-text.text-darken-4 {
|
1298 |
-
color: #e65100 !important; }
|
1299 |
-
|
1300 |
-
.orange.accent-1 {
|
1301 |
-
background-color: #ffd180 !important; }
|
1302 |
-
|
1303 |
-
.orange-text.text-accent-1 {
|
1304 |
-
color: #ffd180 !important; }
|
1305 |
-
|
1306 |
-
.orange.accent-2 {
|
1307 |
-
background-color: #ffab40 !important; }
|
1308 |
-
|
1309 |
-
.orange-text.text-accent-2 {
|
1310 |
-
color: #ffab40 !important; }
|
1311 |
-
|
1312 |
-
.orange.accent-3 {
|
1313 |
-
background-color: #ff9100 !important; }
|
1314 |
-
|
1315 |
-
.orange-text.text-accent-3 {
|
1316 |
-
color: #ff9100 !important; }
|
1317 |
-
|
1318 |
-
.orange.accent-4 {
|
1319 |
-
background-color: #ff6d00 !important; }
|
1320 |
-
|
1321 |
-
.orange-text.text-accent-4 {
|
1322 |
-
color: #ff6d00 !important; }
|
1323 |
-
|
1324 |
-
.deep-orange {
|
1325 |
-
background-color: #ff5722 !important; }
|
1326 |
-
|
1327 |
-
.deep-orange-text {
|
1328 |
-
color: #ff5722 !important; }
|
1329 |
-
|
1330 |
-
.deep-orange.lighten-5 {
|
1331 |
-
background-color: #fbe9e7 !important; }
|
1332 |
-
|
1333 |
-
.deep-orange-text.text-lighten-5 {
|
1334 |
-
color: #fbe9e7 !important; }
|
1335 |
-
|
1336 |
-
.deep-orange.lighten-4 {
|
1337 |
-
background-color: #ffccbc !important; }
|
1338 |
-
|
1339 |
-
.deep-orange-text.text-lighten-4 {
|
1340 |
-
color: #ffccbc !important; }
|
1341 |
-
|
1342 |
-
.deep-orange.lighten-3 {
|
1343 |
-
background-color: #ffab91 !important; }
|
1344 |
-
|
1345 |
-
.deep-orange-text.text-lighten-3 {
|
1346 |
-
color: #ffab91 !important; }
|
1347 |
-
|
1348 |
-
.deep-orange.lighten-2 {
|
1349 |
-
background-color: #ff8a65 !important; }
|
1350 |
-
|
1351 |
-
.deep-orange-text.text-lighten-2 {
|
1352 |
-
color: #ff8a65 !important; }
|
1353 |
-
|
1354 |
-
.deep-orange.lighten-1 {
|
1355 |
-
background-color: #ff7043 !important; }
|
1356 |
-
|
1357 |
-
.deep-orange-text.text-lighten-1 {
|
1358 |
-
color: #ff7043 !important; }
|
1359 |
-
|
1360 |
-
.deep-orange.darken-1 {
|
1361 |
-
background-color: #f4511e !important; }
|
1362 |
-
|
1363 |
-
.deep-orange-text.text-darken-1 {
|
1364 |
-
color: #f4511e !important; }
|
1365 |
-
|
1366 |
-
.deep-orange.darken-2 {
|
1367 |
-
background-color: #e64a19 !important; }
|
1368 |
-
|
1369 |
-
.deep-orange-text.text-darken-2 {
|
1370 |
-
color: #e64a19 !important; }
|
1371 |
-
|
1372 |
-
.deep-orange.darken-3 {
|
1373 |
-
background-color: #d84315 !important; }
|
1374 |
-
|
1375 |
-
.deep-orange-text.text-darken-3 {
|
1376 |
-
color: #d84315 !important; }
|
1377 |
-
|
1378 |
-
.deep-orange.darken-4 {
|
1379 |
-
background-color: #bf360c !important; }
|
1380 |
-
|
1381 |
-
.deep-orange-text.text-darken-4 {
|
1382 |
-
color: #bf360c !important; }
|
1383 |
-
|
1384 |
-
.deep-orange.accent-1 {
|
1385 |
-
background-color: #ff9e80 !important; }
|
1386 |
-
|
1387 |
-
.deep-orange-text.text-accent-1 {
|
1388 |
-
color: #ff9e80 !important; }
|
1389 |
-
|
1390 |
-
.deep-orange.accent-2 {
|
1391 |
-
background-color: #ff6e40 !important; }
|
1392 |
-
|
1393 |
-
.deep-orange-text.text-accent-2 {
|
1394 |
-
color: #ff6e40 !important; }
|
1395 |
-
|
1396 |
-
.deep-orange.accent-3 {
|
1397 |
-
background-color: #ff3d00 !important; }
|
1398 |
-
|
1399 |
-
.deep-orange-text.text-accent-3 {
|
1400 |
-
color: #ff3d00 !important; }
|
1401 |
-
|
1402 |
-
.deep-orange.accent-4 {
|
1403 |
-
background-color: #dd2c00 !important; }
|
1404 |
-
|
1405 |
-
.deep-orange-text.text-accent-4 {
|
1406 |
-
color: #dd2c00 !important; }
|
1407 |
-
|
1408 |
-
.brown {
|
1409 |
-
background-color: #795548 !important; }
|
1410 |
-
|
1411 |
-
.brown-text {
|
1412 |
-
color: #795548 !important; }
|
1413 |
-
|
1414 |
-
.brown.lighten-5 {
|
1415 |
-
background-color: #efebe9 !important; }
|
1416 |
-
|
1417 |
-
.brown-text.text-lighten-5 {
|
1418 |
-
color: #efebe9 !important; }
|
1419 |
-
|
1420 |
-
.brown.lighten-4 {
|
1421 |
-
background-color: #d7ccc8 !important; }
|
1422 |
-
|
1423 |
-
.brown-text.text-lighten-4 {
|
1424 |
-
color: #d7ccc8 !important; }
|
1425 |
-
|
1426 |
-
.brown.lighten-3 {
|
1427 |
-
background-color: #bcaaa4 !important; }
|
1428 |
-
|
1429 |
-
.brown-text.text-lighten-3 {
|
1430 |
-
color: #bcaaa4 !important; }
|
1431 |
-
|
1432 |
-
.brown.lighten-2 {
|
1433 |
-
background-color: #a1887f !important; }
|
1434 |
-
|
1435 |
-
.brown-text.text-lighten-2 {
|
1436 |
-
color: #a1887f !important; }
|
1437 |
-
|
1438 |
-
.brown.lighten-1 {
|
1439 |
-
background-color: #8d6e63 !important; }
|
1440 |
-
|
1441 |
-
.brown-text.text-lighten-1 {
|
1442 |
-
color: #8d6e63 !important; }
|
1443 |
-
|
1444 |
-
.brown.darken-1 {
|
1445 |
-
background-color: #6d4c41 !important; }
|
1446 |
-
|
1447 |
-
.brown-text.text-darken-1 {
|
1448 |
-
color: #6d4c41 !important; }
|
1449 |
-
|
1450 |
-
.brown.darken-2 {
|
1451 |
-
background-color: #5d4037 !important; }
|
1452 |
-
|
1453 |
-
.brown-text.text-darken-2 {
|
1454 |
-
color: #5d4037 !important; }
|
1455 |
-
|
1456 |
-
.brown.darken-3 {
|
1457 |
-
background-color: #4e342e !important; }
|
1458 |
-
|
1459 |
-
.brown-text.text-darken-3 {
|
1460 |
-
color: #4e342e !important; }
|
1461 |
-
|
1462 |
-
.brown.darken-4 {
|
1463 |
-
background-color: #3e2723 !important; }
|
1464 |
-
|
1465 |
-
.brown-text.text-darken-4 {
|
1466 |
-
color: #3e2723 !important; }
|
1467 |
-
|
1468 |
-
.blue-grey {
|
1469 |
-
background-color: #607d8b !important; }
|
1470 |
-
|
1471 |
-
.blue-grey-text {
|
1472 |
-
color: #607d8b !important; }
|
1473 |
-
|
1474 |
-
.blue-grey.lighten-5 {
|
1475 |
-
background-color: #eceff1 !important; }
|
1476 |
-
|
1477 |
-
.blue-grey-text.text-lighten-5 {
|
1478 |
-
color: #eceff1 !important; }
|
1479 |
-
|
1480 |
-
.blue-grey.lighten-4 {
|
1481 |
-
background-color: #cfd8dc !important; }
|
1482 |
-
|
1483 |
-
.blue-grey-text.text-lighten-4 {
|
1484 |
-
color: #cfd8dc !important; }
|
1485 |
-
|
1486 |
-
.blue-grey.lighten-3 {
|
1487 |
-
background-color: #b0bec5 !important; }
|
1488 |
-
|
1489 |
-
.blue-grey-text.text-lighten-3 {
|
1490 |
-
color: #b0bec5 !important; }
|
1491 |
-
|
1492 |
-
.blue-grey.lighten-2 {
|
1493 |
-
background-color: #90a4ae !important; }
|
1494 |
-
|
1495 |
-
.blue-grey-text.text-lighten-2 {
|
1496 |
-
color: #90a4ae !important; }
|
1497 |
-
|
1498 |
-
.blue-grey.lighten-1 {
|
1499 |
-
background-color: #78909c !important; }
|
1500 |
-
|
1501 |
-
.blue-grey-text.text-lighten-1 {
|
1502 |
-
color: #78909c !important; }
|
1503 |
-
|
1504 |
-
.blue-grey.darken-1 {
|
1505 |
-
background-color: #546e7a !important; }
|
1506 |
-
|
1507 |
-
.blue-grey-text.text-darken-1 {
|
1508 |
-
color: #546e7a !important; }
|
1509 |
-
|
1510 |
-
.blue-grey.darken-2 {
|
1511 |
-
background-color: #455a64 !important; }
|
1512 |
-
|
1513 |
-
.blue-grey-text.text-darken-2 {
|
1514 |
-
color: #455a64 !important; }
|
1515 |
-
|
1516 |
-
.blue-grey.darken-3 {
|
1517 |
-
background-color: #37474f !important; }
|
1518 |
-
|
1519 |
-
.blue-grey-text.text-darken-3 {
|
1520 |
-
color: #37474f !important; }
|
1521 |
-
|
1522 |
-
.blue-grey.darken-4 {
|
1523 |
-
background-color: #263238 !important; }
|
1524 |
-
|
1525 |
-
.blue-grey-text.text-darken-4 {
|
1526 |
-
color: #263238 !important; }
|
1527 |
-
|
1528 |
-
.grey {
|
1529 |
-
background-color: #9e9e9e !important; }
|
1530 |
-
|
1531 |
-
.grey-text {
|
1532 |
-
color: #9e9e9e !important; }
|
1533 |
-
|
1534 |
-
.grey.lighten-5 {
|
1535 |
-
background-color: #fafafa !important; }
|
1536 |
-
|
1537 |
-
.grey-text.text-lighten-5 {
|
1538 |
-
color: #fafafa !important; }
|
1539 |
-
|
1540 |
-
.grey.lighten-4 {
|
1541 |
-
background-color: #f5f5f5 !important; }
|
1542 |
-
|
1543 |
-
.grey-text.text-lighten-4 {
|
1544 |
-
color: #f5f5f5 !important; }
|
1545 |
-
|
1546 |
-
.grey.lighten-3 {
|
1547 |
-
background-color: #eeeeee !important; }
|
1548 |
-
|
1549 |
-
.grey-text.text-lighten-3 {
|
1550 |
-
color: #eeeeee !important; }
|
1551 |
-
|
1552 |
-
.grey.lighten-2 {
|
1553 |
-
background-color: #e0e0e0 !important; }
|
1554 |
-
|
1555 |
-
.grey-text.text-lighten-2 {
|
1556 |
-
color: #e0e0e0 !important; }
|
1557 |
-
|
1558 |
-
.grey.lighten-1 {
|
1559 |
-
background-color: #bdbdbd !important; }
|
1560 |
-
|
1561 |
-
.grey-text.text-lighten-1 {
|
1562 |
-
color: #bdbdbd !important; }
|
1563 |
-
|
1564 |
-
.grey.darken-1 {
|
1565 |
-
background-color: #757575 !important; }
|
1566 |
-
|
1567 |
-
.grey-text.text-darken-1 {
|
1568 |
-
color: #757575 !important; }
|
1569 |
-
|
1570 |
-
.grey.darken-2 {
|
1571 |
-
background-color: #616161 !important; }
|
1572 |
-
|
1573 |
-
.grey-text.text-darken-2 {
|
1574 |
-
color: #616161 !important; }
|
1575 |
-
|
1576 |
-
.grey.darken-3 {
|
1577 |
-
background-color: #424242 !important; }
|
1578 |
-
|
1579 |
-
.grey-text.text-darken-3 {
|
1580 |
-
color: #424242 !important; }
|
1581 |
-
|
1582 |
-
.grey.darken-4 {
|
1583 |
-
background-color: #212121 !important; }
|
1584 |
-
|
1585 |
-
.grey-text.text-darken-4 {
|
1586 |
-
color: #212121 !important; }
|
1587 |
-
|
1588 |
-
.black {
|
1589 |
-
background-color: #000000 !important; }
|
1590 |
-
|
1591 |
-
.black-text {
|
1592 |
-
color: #000000 !important; }
|
1593 |
-
|
1594 |
-
.white {
|
1595 |
-
background-color: #FFFFFF !important; }
|
1596 |
-
|
1597 |
-
.white-text {
|
1598 |
-
color: #FFFFFF !important; }
|
1599 |
-
|
1600 |
-
.transparent {
|
1601 |
-
background-color: transparent !important; }
|
1602 |
-
|
1603 |
-
.transparent-text {
|
1604 |
-
color: transparent !important; }
|
1605 |
-
|
1606 |
-
/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */
|
1607 |
-
/**
|
1608 |
-
* 1. Set default font family to sans-serif.
|
1609 |
-
* 2. Prevent iOS and IE text size adjust after device orientation change,
|
1610 |
-
* without disabling user zoom.
|
1611 |
-
*/
|
1612 |
-
html {
|
1613 |
-
font-family: sans-serif;
|
1614 |
-
/* 1 */
|
1615 |
-
-ms-text-size-adjust: 100%;
|
1616 |
-
/* 2 */
|
1617 |
-
-webkit-text-size-adjust: 100%;
|
1618 |
-
/* 2 */ }
|
1619 |
-
|
1620 |
-
/**
|
1621 |
-
* Remove default margin.
|
1622 |
-
*/
|
1623 |
-
body {
|
1624 |
-
margin: 0; }
|
1625 |
-
|
1626 |
-
/* HTML5 display definitions
|
1627 |
-
========================================================================== */
|
1628 |
-
/**
|
1629 |
-
* Correct `block` display not defined for any HTML5 element in IE 8/9.
|
1630 |
-
* Correct `block` display not defined for `details` or `summary` in IE 10/11
|
1631 |
-
* and Firefox.
|
1632 |
-
* Correct `block` display not defined for `main` in IE 11.
|
1633 |
-
*/
|
1634 |
-
article,
|
1635 |
-
aside,
|
1636 |
-
details,
|
1637 |
-
figcaption,
|
1638 |
-
figure,
|
1639 |
-
footer,
|
1640 |
-
header,
|
1641 |
-
hgroup,
|
1642 |
-
main,
|
1643 |
-
menu,
|
1644 |
-
nav,
|
1645 |
-
section,
|
1646 |
-
summary {
|
1647 |
-
display: block; }
|
1648 |
-
|
1649 |
-
/**
|
1650 |
-
* 1. Correct `inline-block` display not defined in IE 8/9.
|
1651 |
-
* 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.
|
1652 |
-
*/
|
1653 |
-
audio,
|
1654 |
-
canvas,
|
1655 |
-
progress,
|
1656 |
-
video {
|
1657 |
-
display: inline-block;
|
1658 |
-
/* 1 */
|
1659 |
-
vertical-align: baseline;
|
1660 |
-
/* 2 */ }
|
1661 |
-
|
1662 |
-
/**
|
1663 |
-
* Prevent modern browsers from displaying `audio` without controls.
|
1664 |
-
* Remove excess height in iOS 5 devices.
|
1665 |
-
*/
|
1666 |
-
audio:not([controls]) {
|
1667 |
-
display: none;
|
1668 |
-
height: 0; }
|
1669 |
-
|
1670 |
-
/**
|
1671 |
-
* Address `[hidden]` styling not present in IE 8/9/10.
|
1672 |
-
* Hide the `template` element in IE 8/9/10/11, Safari, and Firefox < 22.
|
1673 |
-
*/
|
1674 |
-
[hidden],
|
1675 |
-
template {
|
1676 |
-
display: none; }
|
1677 |
-
|
1678 |
-
/* Links
|
1679 |
-
========================================================================== */
|
1680 |
-
/**
|
1681 |
-
* Remove the gray background color from active links in IE 10.
|
1682 |
-
*/
|
1683 |
-
a {
|
1684 |
-
background-color: transparent; }
|
1685 |
-
|
1686 |
-
/**
|
1687 |
-
* Improve readability of focused elements when they are also in an
|
1688 |
-
* active/hover state.
|
1689 |
-
*/
|
1690 |
-
a:active,
|
1691 |
-
a:hover {
|
1692 |
-
outline: 0; }
|
1693 |
-
|
1694 |
-
/* Text-level semantics
|
1695 |
-
========================================================================== */
|
1696 |
-
/**
|
1697 |
-
* Address styling not present in IE 8/9/10/11, Safari, and Chrome.
|
1698 |
-
*/
|
1699 |
-
abbr[title] {
|
1700 |
-
border-bottom: 1px dotted; }
|
1701 |
-
|
1702 |
-
/**
|
1703 |
-
* Address style set to `bolder` in Firefox 4+, Safari, and Chrome.
|
1704 |
-
*/
|
1705 |
-
b,
|
1706 |
-
strong {
|
1707 |
-
font-weight: bold; }
|
1708 |
-
|
1709 |
-
/**
|
1710 |
-
* Address styling not present in Safari and Chrome.
|
1711 |
-
*/
|
1712 |
-
dfn {
|
1713 |
-
font-style: italic; }
|
1714 |
-
|
1715 |
-
/**
|
1716 |
-
* Address variable `h1` font-size and margin within `section` and `article`
|
1717 |
-
* contexts in Firefox 4+, Safari, and Chrome.
|
1718 |
-
*/
|
1719 |
-
h1 {
|
1720 |
-
font-size: 2em;
|
1721 |
-
margin: 0.67em 0; }
|
1722 |
-
|
1723 |
-
/**
|
1724 |
-
* Address styling not present in IE 8/9.
|
1725 |
-
*/
|
1726 |
-
mark {
|
1727 |
-
background: #ff0;
|
1728 |
-
color: #000; }
|
1729 |
-
|
1730 |
-
/**
|
1731 |
-
* Address inconsistent and variable font size in all browsers.
|
1732 |
-
*/
|
1733 |
-
small {
|
1734 |
-
font-size: 80%; }
|
1735 |
-
|
1736 |
-
/**
|
1737 |
-
* Prevent `sub` and `sup` affecting `line-height` in all browsers.
|
1738 |
-
*/
|
1739 |
-
sub,
|
1740 |
-
sup {
|
1741 |
-
font-size: 75%;
|
1742 |
-
line-height: 0;
|
1743 |
-
position: relative;
|
1744 |
-
vertical-align: baseline; }
|
1745 |
-
|
1746 |
-
sup {
|
1747 |
-
top: -0.5em; }
|
1748 |
-
|
1749 |
-
sub {
|
1750 |
-
bottom: -0.25em; }
|
1751 |
-
|
1752 |
-
/* Embedded content
|
1753 |
-
========================================================================== */
|
1754 |
-
/**
|
1755 |
-
* Remove border when inside `a` element in IE 8/9/10.
|
1756 |
-
*/
|
1757 |
-
img {
|
1758 |
-
border: 0; }
|
1759 |
-
|
1760 |
-
/**
|
1761 |
-
* Correct overflow not hidden in IE 9/10/11.
|
1762 |
-
*/
|
1763 |
-
svg:not(:root) {
|
1764 |
-
overflow: hidden; }
|
1765 |
-
|
1766 |
-
/* Grouping content
|
1767 |
-
========================================================================== */
|
1768 |
-
/**
|
1769 |
-
* Address margin not present in IE 8/9 and Safari.
|
1770 |
-
*/
|
1771 |
-
figure {
|
1772 |
-
margin: 1em 40px; }
|
1773 |
-
|
1774 |
-
/**
|
1775 |
-
* Address differences between Firefox and other browsers.
|
1776 |
-
*/
|
1777 |
-
hr {
|
1778 |
-
box-sizing: content-box;
|
1779 |
-
height: 0; }
|
1780 |
-
|
1781 |
-
/**
|
1782 |
-
* Contain overflow in all browsers.
|
1783 |
-
*/
|
1784 |
-
pre {
|
1785 |
-
overflow: auto; }
|
1786 |
-
|
1787 |
-
/**
|
1788 |
-
* Address odd `em`-unit font size rendering in all browsers.
|
1789 |
-
*/
|
1790 |
-
code,
|
1791 |
-
kbd,
|
1792 |
-
pre,
|
1793 |
-
samp {
|
1794 |
-
font-family: monospace, monospace;
|
1795 |
-
font-size: 1em; }
|
1796 |
-
|
1797 |
-
/* Forms
|
1798 |
-
========================================================================== */
|
1799 |
-
/**
|
1800 |
-
* Known limitation: by default, Chrome and Safari on OS X allow very limited
|
1801 |
-
* styling of `select`, unless a `border` property is set.
|
1802 |
-
*/
|
1803 |
-
/**
|
1804 |
-
* 1. Correct color not being inherited.
|
1805 |
-
* Known issue: affects color of disabled elements.
|
1806 |
-
* 2. Correct font properties not being inherited.
|
1807 |
-
* 3. Address margins set differently in Firefox 4+, Safari, and Chrome.
|
1808 |
-
*/
|
1809 |
-
button,
|
1810 |
-
input,
|
1811 |
-
optgroup,
|
1812 |
-
select,
|
1813 |
-
textarea {
|
1814 |
-
color: inherit;
|
1815 |
-
/* 1 */
|
1816 |
-
font: inherit;
|
1817 |
-
/* 2 */
|
1818 |
-
margin: 0;
|
1819 |
-
/* 3 */ }
|
1820 |
-
|
1821 |
-
/**
|
1822 |
-
* Address `overflow` set to `hidden` in IE 8/9/10/11.
|
1823 |
-
*/
|
1824 |
-
button {
|
1825 |
-
overflow: visible; }
|
1826 |
-
|
1827 |
-
/**
|
1828 |
-
* Address inconsistent `text-transform` inheritance for `button` and `select`.
|
1829 |
-
* All other form control elements do not inherit `text-transform` values.
|
1830 |
-
* Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.
|
1831 |
-
* Correct `select` style inheritance in Firefox.
|
1832 |
-
*/
|
1833 |
-
button,
|
1834 |
-
select {
|
1835 |
-
text-transform: none; }
|
1836 |
-
|
1837 |
-
/**
|
1838 |
-
* 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
|
1839 |
-
* and `video` controls.
|
1840 |
-
* 2. Correct inability to style clickable `input` types in iOS.
|
1841 |
-
* 3. Improve usability and consistency of cursor style between image-type
|
1842 |
-
* `input` and others.
|
1843 |
-
*/
|
1844 |
-
button,
|
1845 |
-
html input[type="button"],
|
1846 |
-
input[type="reset"],
|
1847 |
-
input[type="submit"] {
|
1848 |
-
-webkit-appearance: button;
|
1849 |
-
/* 2 */
|
1850 |
-
cursor: pointer;
|
1851 |
-
/* 3 */ }
|
1852 |
-
|
1853 |
-
/**
|
1854 |
-
* Re-set default cursor for disabled elements.
|
1855 |
-
*/
|
1856 |
-
button[disabled],
|
1857 |
-
html input[disabled] {
|
1858 |
-
cursor: default; }
|
1859 |
-
|
1860 |
-
/**
|
1861 |
-
* Remove inner padding and border in Firefox 4+.
|
1862 |
-
*/
|
1863 |
-
button::-moz-focus-inner,
|
1864 |
-
input::-moz-focus-inner {
|
1865 |
-
border: 0;
|
1866 |
-
padding: 0; }
|
1867 |
-
|
1868 |
-
/**
|
1869 |
-
* Address Firefox 4+ setting `line-height` on `input` using `!important` in
|
1870 |
-
* the UA stylesheet.
|
1871 |
-
*/
|
1872 |
-
input {
|
1873 |
-
line-height: normal; }
|
1874 |
-
|
1875 |
-
/**
|
1876 |
-
* It's recommended that you don't attempt to style these elements.
|
1877 |
-
* Firefox's implementation doesn't respect box-sizing, padding, or width.
|
1878 |
-
*
|
1879 |
-
* 1. Address box sizing set to `content-box` in IE 8/9/10.
|
1880 |
-
* 2. Remove excess padding in IE 8/9/10.
|
1881 |
-
*/
|
1882 |
-
input[type="checkbox"],
|
1883 |
-
input[type="radio"] {
|
1884 |
-
box-sizing: border-box;
|
1885 |
-
/* 1 */
|
1886 |
-
padding: 0;
|
1887 |
-
/* 2 */ }
|
1888 |
-
|
1889 |
-
/**
|
1890 |
-
* Fix the cursor style for Chrome's increment/decrement buttons. For certain
|
1891 |
-
* `font-size` values of the `input`, it causes the cursor style of the
|
1892 |
-
* decrement button to change from `default` to `text`.
|
1893 |
-
*/
|
1894 |
-
input[type="number"]::-webkit-inner-spin-button,
|
1895 |
-
input[type="number"]::-webkit-outer-spin-button {
|
1896 |
-
height: auto; }
|
1897 |
-
|
1898 |
-
/**
|
1899 |
-
* 1. Address `appearance` set to `searchfield` in Safari and Chrome.
|
1900 |
-
* 2. Address `box-sizing` set to `border-box` in Safari and Chrome.
|
1901 |
-
*/
|
1902 |
-
input[type="search"] {
|
1903 |
-
-webkit-appearance: textfield;
|
1904 |
-
/* 1 */
|
1905 |
-
box-sizing: content-box;
|
1906 |
-
/* 2 */ }
|
1907 |
-
|
1908 |
-
/**
|
1909 |
-
* Remove inner padding and search cancel button in Safari and Chrome on OS X.
|
1910 |
-
* Safari (but not Chrome) clips the cancel button when the search input has
|
1911 |
-
* padding (and `textfield` appearance).
|
1912 |
-
*/
|
1913 |
-
input[type="search"]::-webkit-search-cancel-button,
|
1914 |
-
input[type="search"]::-webkit-search-decoration {
|
1915 |
-
-webkit-appearance: none; }
|
1916 |
-
|
1917 |
-
/**
|
1918 |
-
* Define consistent border, margin, and padding.
|
1919 |
-
*/
|
1920 |
-
fieldset {
|
1921 |
-
border: 1px solid #c0c0c0;
|
1922 |
-
margin: 0 2px;
|
1923 |
-
padding: 0.35em 0.625em 0.75em; }
|
1924 |
-
|
1925 |
-
/**
|
1926 |
-
* 1. Correct `color` not being inherited in IE 8/9/10/11.
|
1927 |
-
* 2. Remove padding so people aren't caught out if they zero out fieldsets.
|
1928 |
-
*/
|
1929 |
-
legend {
|
1930 |
-
border: 0;
|
1931 |
-
/* 1 */
|
1932 |
-
padding: 0;
|
1933 |
-
/* 2 */ }
|
1934 |
-
|
1935 |
-
/**
|
1936 |
-
* Remove default vertical scrollbar in IE 8/9/10/11.
|
1937 |
-
*/
|
1938 |
-
textarea {
|
1939 |
-
overflow: auto; }
|
1940 |
-
|
1941 |
-
/**
|
1942 |
-
* Don't inherit the `font-weight` (applied by a rule above).
|
1943 |
-
* NOTE: the default cannot safely be changed in Chrome and Safari on OS X.
|
1944 |
-
*/
|
1945 |
-
optgroup {
|
1946 |
-
font-weight: bold; }
|
1947 |
-
|
1948 |
-
/* Tables
|
1949 |
-
========================================================================== */
|
1950 |
-
/**
|
1951 |
-
* Remove most spacing between table cells.
|
1952 |
-
*/
|
1953 |
-
table {
|
1954 |
-
border-collapse: collapse;
|
1955 |
-
border-spacing: 0; }
|
1956 |
-
|
1957 |
-
td,
|
1958 |
-
th {
|
1959 |
-
padding: 0; }
|
1960 |
-
|
1961 |
-
html {
|
1962 |
-
box-sizing: border-box; }
|
1963 |
-
|
1964 |
-
*, *:before, *:after {
|
1965 |
-
box-sizing: inherit; }
|
1966 |
-
|
1967 |
-
ul:not(.browser-default) {
|
1968 |
-
padding-left: 0;
|
1969 |
-
list-style-type: none; }
|
1970 |
-
ul:not(.browser-default) > li {
|
1971 |
-
list-style-type: none; }
|
1972 |
-
|
1973 |
-
a {
|
1974 |
-
color: #039be5;
|
1975 |
-
text-decoration: none;
|
1976 |
-
-webkit-tap-highlight-color: transparent; }
|
1977 |
-
|
1978 |
-
.valign-wrapper {
|
1979 |
-
display: flex;
|
1980 |
-
align-items: center; }
|
1981 |
-
|
1982 |
-
.clearfix {
|
1983 |
-
clear: both; }
|
1984 |
-
|
1985 |
-
.z-depth-0 {
|
1986 |
-
box-shadow: none !important; }
|
1987 |
-
|
1988 |
-
.z-depth-1, .card-panel, .card, .btn, .btn-large, .btn-floating, .dropdown-content, .collapsible {
|
1989 |
-
box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12), 0 3px 1px -2px rgba(0, 0, 0, 0.2); }
|
1990 |
-
|
1991 |
-
.z-depth-1-half, .btn:hover, .btn-large:hover, .btn-floating:hover {
|
1992 |
-
box-shadow: 0 3px 3px 0 rgba(0, 0, 0, 0.14), 0 1px 7px 0 rgba(0, 0, 0, 0.12), 0 3px 1px -1px rgba(0, 0, 0, 0.2); }
|
1993 |
-
|
1994 |
-
.z-depth-2 {
|
1995 |
-
box-shadow: 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12), 0 2px 4px -1px rgba(0, 0, 0, 0.3); }
|
1996 |
-
|
1997 |
-
.z-depth-3 {
|
1998 |
-
box-shadow: 0 6px 10px 0 rgba(0, 0, 0, 0.14), 0 1px 18px 0 rgba(0, 0, 0, 0.12), 0 3px 5px -1px rgba(0, 0, 0, 0.3); }
|
1999 |
-
|
2000 |
-
.z-depth-4 {
|
2001 |
-
box-shadow: 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12), 0 5px 5px -3px rgba(0, 0, 0, 0.3); }
|
2002 |
-
|
2003 |
-
.z-depth-5 {
|
2004 |
-
box-shadow: 0 16px 24px 2px rgba(0, 0, 0, 0.14), 0 6px 30px 5px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(0, 0, 0, 0.3); }
|
2005 |
-
|
2006 |
-
.hoverable {
|
2007 |
-
transition: box-shadow .25s; }
|
2008 |
-
.hoverable:hover {
|
2009 |
-
box-shadow: 0 8px 17px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19); }
|
2010 |
-
|
2011 |
-
.divider {
|
2012 |
-
height: 1px;
|
2013 |
-
overflow: hidden;
|
2014 |
-
background-color: #e0e0e0; }
|
2015 |
-
|
2016 |
-
blockquote {
|
2017 |
-
margin: 20px 0;
|
2018 |
-
padding-left: 1.5rem;
|
2019 |
-
border-left: 5px solid #ee6e73; }
|
2020 |
-
|
2021 |
-
i {
|
2022 |
-
line-height: inherit; }
|
2023 |
-
i.left {
|
2024 |
-
float: left;
|
2025 |
-
margin-right: 15px; }
|
2026 |
-
i.right {
|
2027 |
-
float: right;
|
2028 |
-
margin-left: 15px; }
|
2029 |
-
i.tiny {
|
2030 |
-
font-size: 1rem; }
|
2031 |
-
i.small {
|
2032 |
-
font-size: 2rem; }
|
2033 |
-
i.medium {
|
2034 |
-
font-size: 4rem; }
|
2035 |
-
i.large {
|
2036 |
-
font-size: 6rem; }
|
2037 |
-
|
2038 |
-
img.responsive-img,
|
2039 |
-
video.responsive-video {
|
2040 |
-
max-width: 100%;
|
2041 |
-
height: auto; }
|
2042 |
-
|
2043 |
-
.pagination li {
|
2044 |
-
display: inline-block;
|
2045 |
-
border-radius: 2px;
|
2046 |
-
text-align: center;
|
2047 |
-
vertical-align: top;
|
2048 |
-
height: 30px; }
|
2049 |
-
.pagination li a {
|
2050 |
-
color: #444;
|
2051 |
-
display: inline-block;
|
2052 |
-
font-size: 1.2rem;
|
2053 |
-
padding: 0 10px;
|
2054 |
-
line-height: 30px; }
|
2055 |
-
.pagination li.active a {
|
2056 |
-
color: #fff; }
|
2057 |
-
.pagination li.active {
|
2058 |
-
background-color: #ee6e73; }
|
2059 |
-
.pagination li.disabled a {
|
2060 |
-
cursor: default;
|
2061 |
-
color: #999; }
|
2062 |
-
.pagination li i {
|
2063 |
-
font-size: 2rem; }
|
2064 |
-
|
2065 |
-
.pagination li.pages ul li {
|
2066 |
-
display: inline-block;
|
2067 |
-
float: none; }
|
2068 |
-
|
2069 |
-
@media only screen and (max-width: 992px) {
|
2070 |
-
.pagination {
|
2071 |
-
width: 100%; }
|
2072 |
-
.pagination li.prev,
|
2073 |
-
.pagination li.next {
|
2074 |
-
width: 10%; }
|
2075 |
-
.pagination li.pages {
|
2076 |
-
width: 80%;
|
2077 |
-
overflow: hidden;
|
2078 |
-
white-space: nowrap; } }
|
2079 |
-
|
2080 |
-
.breadcrumb {
|
2081 |
-
font-size: 18px;
|
2082 |
-
color: rgba(255, 255, 255, 0.7); }
|
2083 |
-
.breadcrumb i,
|
2084 |
-
.breadcrumb [class^="mdi-"], .breadcrumb [class*="mdi-"],
|
2085 |
-
.breadcrumb i.material-icons {
|
2086 |
-
display: inline-block;
|
2087 |
-
float: left;
|
2088 |
-
font-size: 24px; }
|
2089 |
-
.breadcrumb:before {
|
2090 |
-
content: '\E5CC';
|
2091 |
-
color: rgba(255, 255, 255, 0.7);
|
2092 |
-
vertical-align: top;
|
2093 |
-
display: inline-block;
|
2094 |
-
font-family: 'Material Icons';
|
2095 |
-
font-weight: normal;
|
2096 |
-
font-style: normal;
|
2097 |
-
font-size: 25px;
|
2098 |
-
margin: 0 10px 0 8px;
|
2099 |
-
-webkit-font-smoothing: antialiased; }
|
2100 |
-
.breadcrumb:first-child:before {
|
2101 |
-
display: none; }
|
2102 |
-
.breadcrumb:last-child {
|
2103 |
-
color: #fff; }
|
2104 |
-
|
2105 |
-
.parallax-container {
|
2106 |
-
position: relative;
|
2107 |
-
overflow: hidden;
|
2108 |
-
height: 500px; }
|
2109 |
-
.parallax-container .parallax {
|
2110 |
-
position: absolute;
|
2111 |
-
top: 0;
|
2112 |
-
left: 0;
|
2113 |
-
right: 0;
|
2114 |
-
bottom: 0;
|
2115 |
-
z-index: -1; }
|
2116 |
-
.parallax-container .parallax img {
|
2117 |
-
display: none;
|
2118 |
-
position: absolute;
|
2119 |
-
left: 50%;
|
2120 |
-
bottom: 0;
|
2121 |
-
min-width: 100%;
|
2122 |
-
min-height: 100%;
|
2123 |
-
transform: translate3d(0, 0, 0);
|
2124 |
-
transform: translateX(-50%); }
|
2125 |
-
|
2126 |
-
.pin-top, .pin-bottom {
|
2127 |
-
position: relative; }
|
2128 |
-
|
2129 |
-
.pinned {
|
2130 |
-
position: fixed !important; }
|
2131 |
-
|
2132 |
-
/*********************
|
2133 |
-
Transition Classes
|
2134 |
-
**********************/
|
2135 |
-
ul.staggered-list li {
|
2136 |
-
opacity: 0; }
|
2137 |
-
|
2138 |
-
.fade-in {
|
2139 |
-
opacity: 0;
|
2140 |
-
transform-origin: 0 50%; }
|
2141 |
-
|
2142 |
-
/*********************
|
2143 |
-
Media Query Classes
|
2144 |
-
**********************/
|
2145 |
-
@media only screen and (max-width: 600px) {
|
2146 |
-
.hide-on-small-only, .hide-on-small-and-down {
|
2147 |
-
display: none !important; } }
|
2148 |
-
|
2149 |
-
@media only screen and (max-width: 992px) {
|
2150 |
-
.hide-on-med-and-down {
|
2151 |
-
display: none !important; } }
|
2152 |
-
|
2153 |
-
@media only screen and (min-width: 601px) {
|
2154 |
-
.hide-on-med-and-up {
|
2155 |
-
display: none !important; } }
|
2156 |
-
|
2157 |
-
@media only screen and (min-width: 600px) and (max-width: 992px) {
|
2158 |
-
.hide-on-med-only {
|
2159 |
-
display: none !important; } }
|
2160 |
-
|
2161 |
-
@media only screen and (min-width: 993px) {
|
2162 |
-
.hide-on-large-only {
|
2163 |
-
display: none !important; } }
|
2164 |
-
|
2165 |
-
@media only screen and (min-width: 993px) {
|
2166 |
-
.show-on-large {
|
2167 |
-
display: block !important; } }
|
2168 |
-
|
2169 |
-
@media only screen and (min-width: 600px) and (max-width: 992px) {
|
2170 |
-
.show-on-medium {
|
2171 |
-
display: block !important; } }
|
2172 |
-
|
2173 |
-
@media only screen and (max-width: 600px) {
|
2174 |
-
.show-on-small {
|
2175 |
-
display: block !important; } }
|
2176 |
-
|
2177 |
-
@media only screen and (min-width: 601px) {
|
2178 |
-
.show-on-medium-and-up {
|
2179 |
-
display: block !important; } }
|
2180 |
-
|
2181 |
-
@media only screen and (max-width: 992px) {
|
2182 |
-
.show-on-medium-and-down {
|
2183 |
-
display: block !important; } }
|
2184 |
-
|
2185 |
-
@media only screen and (max-width: 600px) {
|
2186 |
-
.center-on-small-only {
|
2187 |
-
text-align: center; } }
|
2188 |
-
|
2189 |
-
.page-footer {
|
2190 |
-
padding-top: 20px;
|
2191 |
-
color: #fff;
|
2192 |
-
background-color: #ee6e73; }
|
2193 |
-
.page-footer .footer-copyright {
|
2194 |
-
overflow: hidden;
|
2195 |
-
min-height: 50px;
|
2196 |
-
display: flex;
|
2197 |
-
align-items: center;
|
2198 |
-
padding: 10px 0px;
|
2199 |
-
color: rgba(255, 255, 255, 0.8);
|
2200 |
-
background-color: rgba(51, 51, 51, 0.08); }
|
2201 |
-
|
2202 |
-
table, th, td {
|
2203 |
-
border: none; }
|
2204 |
-
|
2205 |
-
table {
|
2206 |
-
width: 100%;
|
2207 |
-
display: table; }
|
2208 |
-
table.bordered > thead > tr,
|
2209 |
-
table.bordered > tbody > tr {
|
2210 |
-
border-bottom: 1px solid #d0d0d0; }
|
2211 |
-
table.striped > tbody > tr:nth-child(odd) {
|
2212 |
-
background-color: #f2f2f2; }
|
2213 |
-
table.striped > tbody > tr > td {
|
2214 |
-
border-radius: 0; }
|
2215 |
-
table.highlight > tbody > tr {
|
2216 |
-
transition: background-color .25s ease; }
|
2217 |
-
table.highlight > tbody > tr:hover {
|
2218 |
-
background-color: #f2f2f2; }
|
2219 |
-
table.centered thead tr th, table.centered tbody tr td {
|
2220 |
-
text-align: center; }
|
2221 |
-
|
2222 |
-
thead {
|
2223 |
-
border-bottom: 1px solid #d0d0d0; }
|
2224 |
-
|
2225 |
-
td, th {
|
2226 |
-
padding: 15px 5px;
|
2227 |
-
display: table-cell;
|
2228 |
-
text-align: left;
|
2229 |
-
vertical-align: middle;
|
2230 |
-
border-radius: 2px; }
|
2231 |
-
|
2232 |
-
@media only screen and (max-width: 992px) {
|
2233 |
-
table.responsive-table {
|
2234 |
-
width: 100%;
|
2235 |
-
border-collapse: collapse;
|
2236 |
-
border-spacing: 0;
|
2237 |
-
display: block;
|
2238 |
-
position: relative;
|
2239 |
-
/* sort out borders */ }
|
2240 |
-
table.responsive-table td:empty:before {
|
2241 |
-
content: '\A0'; }
|
2242 |
-
table.responsive-table th,
|
2243 |
-
table.responsive-table td {
|
2244 |
-
margin: 0;
|
2245 |
-
vertical-align: top; }
|
2246 |
-
table.responsive-table th {
|
2247 |
-
text-align: left; }
|
2248 |
-
table.responsive-table thead {
|
2249 |
-
display: block;
|
2250 |
-
float: left; }
|
2251 |
-
table.responsive-table thead tr {
|
2252 |
-
display: block;
|
2253 |
-
padding: 0 10px 0 0; }
|
2254 |
-
table.responsive-table thead tr th::before {
|
2255 |
-
content: "\A0"; }
|
2256 |
-
table.responsive-table tbody {
|
2257 |
-
display: block;
|
2258 |
-
width: auto;
|
2259 |
-
position: relative;
|
2260 |
-
overflow-x: auto;
|
2261 |
-
white-space: nowrap; }
|
2262 |
-
table.responsive-table tbody tr {
|
2263 |
-
display: inline-block;
|
2264 |
-
vertical-align: top; }
|
2265 |
-
table.responsive-table th {
|
2266 |
-
display: block;
|
2267 |
-
text-align: right; }
|
2268 |
-
table.responsive-table td {
|
2269 |
-
display: block;
|
2270 |
-
min-height: 1.25em;
|
2271 |
-
text-align: left; }
|
2272 |
-
table.responsive-table tr {
|
2273 |
-
padding: 0 10px; }
|
2274 |
-
table.responsive-table thead {
|
2275 |
-
border: 0;
|
2276 |
-
border-right: 1px solid #d0d0d0; }
|
2277 |
-
table.responsive-table.bordered th {
|
2278 |
-
border-bottom: 0;
|
2279 |
-
border-left: 0; }
|
2280 |
-
table.responsive-table.bordered td {
|
2281 |
-
border-left: 0;
|
2282 |
-
border-right: 0;
|
2283 |
-
border-bottom: 0; }
|
2284 |
-
table.responsive-table.bordered tr {
|
2285 |
-
border: 0; }
|
2286 |
-
table.responsive-table.bordered tbody tr {
|
2287 |
-
border-right: 1px solid #d0d0d0; } }
|
2288 |
-
|
2289 |
-
.collection {
|
2290 |
-
margin: 0.5rem 0 1rem 0;
|
2291 |
-
border: 1px solid #e0e0e0;
|
2292 |
-
border-radius: 2px;
|
2293 |
-
overflow: hidden;
|
2294 |
-
position: relative; }
|
2295 |
-
.collection .collection-item {
|
2296 |
-
background-color: #fff;
|
2297 |
-
line-height: 1.5rem;
|
2298 |
-
padding: 10px 20px;
|
2299 |
-
margin: 0;
|
2300 |
-
border-bottom: 1px solid #e0e0e0; }
|
2301 |
-
.collection .collection-item.avatar {
|
2302 |
-
min-height: 84px;
|
2303 |
-
padding-left: 72px;
|
2304 |
-
position: relative; }
|
2305 |
-
.collection .collection-item.avatar:not(.circle-clipper) > .circle,
|
2306 |
-
.collection .collection-item.avatar :not(.circle-clipper) > .circle {
|
2307 |
-
position: absolute;
|
2308 |
-
width: 42px;
|
2309 |
-
height: 42px;
|
2310 |
-
overflow: hidden;
|
2311 |
-
left: 15px;
|
2312 |
-
display: inline-block;
|
2313 |
-
vertical-align: middle; }
|
2314 |
-
.collection .collection-item.avatar i.circle {
|
2315 |
-
font-size: 18px;
|
2316 |
-
line-height: 42px;
|
2317 |
-
color: #fff;
|
2318 |
-
background-color: #999;
|
2319 |
-
text-align: center; }
|
2320 |
-
.collection .collection-item.avatar .title {
|
2321 |
-
font-size: 16px; }
|
2322 |
-
.collection .collection-item.avatar p {
|
2323 |
-
margin: 0; }
|
2324 |
-
.collection .collection-item.avatar .secondary-content {
|
2325 |
-
position: absolute;
|
2326 |
-
top: 16px;
|
2327 |
-
right: 16px; }
|
2328 |
-
.collection .collection-item:last-child {
|
2329 |
-
border-bottom: none; }
|
2330 |
-
.collection .collection-item.active {
|
2331 |
-
background-color: #26a69a;
|
2332 |
-
color: #eafaf9; }
|
2333 |
-
.collection .collection-item.active .secondary-content {
|
2334 |
-
color: #fff; }
|
2335 |
-
.collection a.collection-item {
|
2336 |
-
display: block;
|
2337 |
-
transition: .25s;
|
2338 |
-
color: #26a69a; }
|
2339 |
-
.collection a.collection-item:not(.active):hover {
|
2340 |
-
background-color: #ddd; }
|
2341 |
-
.collection.with-header .collection-header {
|
2342 |
-
background-color: #fff;
|
2343 |
-
border-bottom: 1px solid #e0e0e0;
|
2344 |
-
padding: 10px 20px; }
|
2345 |
-
.collection.with-header .collection-item {
|
2346 |
-
padding-left: 30px; }
|
2347 |
-
.collection.with-header .collection-item.avatar {
|
2348 |
-
padding-left: 72px; }
|
2349 |
-
|
2350 |
-
.secondary-content {
|
2351 |
-
float: right;
|
2352 |
-
color: #26a69a; }
|
2353 |
-
|
2354 |
-
.collapsible .collection {
|
2355 |
-
margin: 0;
|
2356 |
-
border: none; }
|
2357 |
-
|
2358 |
-
.video-container {
|
2359 |
-
position: relative;
|
2360 |
-
padding-bottom: 56.25%;
|
2361 |
-
height: 0;
|
2362 |
-
overflow: hidden; }
|
2363 |
-
.video-container iframe, .video-container object, .video-container embed {
|
2364 |
-
position: absolute;
|
2365 |
-
top: 0;
|
2366 |
-
left: 0;
|
2367 |
-
width: 100%;
|
2368 |
-
height: 100%; }
|
2369 |
-
|
2370 |
-
.progress {
|
2371 |
-
position: relative;
|
2372 |
-
height: 4px;
|
2373 |
-
display: block;
|
2374 |
-
width: 100%;
|
2375 |
-
background-color: #acece6;
|
2376 |
-
border-radius: 2px;
|
2377 |
-
margin: 0.5rem 0 1rem 0;
|
2378 |
-
overflow: hidden; }
|
2379 |
-
.progress .determinate {
|
2380 |
-
position: absolute;
|
2381 |
-
top: 0;
|
2382 |
-
left: 0;
|
2383 |
-
bottom: 0;
|
2384 |
-
background-color: #26a69a;
|
2385 |
-
transition: width .3s linear; }
|
2386 |
-
.progress .indeterminate {
|
2387 |
-
background-color: #26a69a; }
|
2388 |
-
.progress .indeterminate:before {
|
2389 |
-
content: '';
|
2390 |
-
position: absolute;
|
2391 |
-
background-color: inherit;
|
2392 |
-
top: 0;
|
2393 |
-
left: 0;
|
2394 |
-
bottom: 0;
|
2395 |
-
will-change: left, right;
|
2396 |
-
animation: indeterminate 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite; }
|
2397 |
-
.progress .indeterminate:after {
|
2398 |
-
content: '';
|
2399 |
-
position: absolute;
|
2400 |
-
background-color: inherit;
|
2401 |
-
top: 0;
|
2402 |
-
left: 0;
|
2403 |
-
bottom: 0;
|
2404 |
-
will-change: left, right;
|
2405 |
-
animation: indeterminate-short 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) infinite;
|
2406 |
-
animation-delay: 1.15s; }
|
2407 |
-
|
2408 |
-
@keyframes indeterminate {
|
2409 |
-
0% {
|
2410 |
-
left: -35%;
|
2411 |
-
right: 100%; }
|
2412 |
-
60% {
|
2413 |
-
left: 100%;
|
2414 |
-
right: -90%; }
|
2415 |
-
100% {
|
2416 |
-
left: 100%;
|
2417 |
-
right: -90%; } }
|
2418 |
-
|
2419 |
-
@keyframes indeterminate-short {
|
2420 |
-
0% {
|
2421 |
-
left: -200%;
|
2422 |
-
right: 100%; }
|
2423 |
-
60% {
|
2424 |
-
left: 107%;
|
2425 |
-
right: -8%; }
|
2426 |
-
100% {
|
2427 |
-
left: 107%;
|
2428 |
-
right: -8%; } }
|
2429 |
-
|
2430 |
-
/*******************
|
2431 |
-
Utility Classes
|
2432 |
-
*******************/
|
2433 |
-
.hide {
|
2434 |
-
display: none !important; }
|
2435 |
-
|
2436 |
-
.left-align {
|
2437 |
-
text-align: left; }
|
2438 |
-
|
2439 |
-
.right-align {
|
2440 |
-
text-align: right; }
|
2441 |
-
|
2442 |
-
.center, .center-align {
|
2443 |
-
text-align: center; }
|
2444 |
-
|
2445 |
-
.left {
|
2446 |
-
float: left !important; }
|
2447 |
-
|
2448 |
-
.right {
|
2449 |
-
float: right !important; }
|
2450 |
-
|
2451 |
-
.no-select {
|
2452 |
-
user-select: none; }
|
2453 |
-
|
2454 |
-
.circle {
|
2455 |
-
border-radius: 50%; }
|
2456 |
-
|
2457 |
-
.center-block {
|
2458 |
-
display: block;
|
2459 |
-
margin-left: auto;
|
2460 |
-
margin-right: auto; }
|
2461 |
-
|
2462 |
-
.truncate {
|
2463 |
-
display: block;
|
2464 |
-
white-space: nowrap;
|
2465 |
-
overflow: hidden;
|
2466 |
-
text-overflow: ellipsis; }
|
2467 |
-
|
2468 |
-
.no-padding {
|
2469 |
-
padding: 0 !important; }
|
2470 |
-
|
2471 |
-
.container {
|
2472 |
-
margin: 0 auto;
|
2473 |
-
max-width: 1280px;
|
2474 |
-
width: 90%; }
|
2475 |
-
|
2476 |
-
@media only screen and (min-width: 601px) {
|
2477 |
-
.container {
|
2478 |
-
width: 85%; } }
|
2479 |
-
|
2480 |
-
@media only screen and (min-width: 993px) {
|
2481 |
-
.container {
|
2482 |
-
width: 70%; } }
|
2483 |
-
|
2484 |
-
.container .row {
|
2485 |
-
margin-left: -0.75rem;
|
2486 |
-
margin-right: -0.75rem; }
|
2487 |
-
|
2488 |
-
.section {
|
2489 |
-
padding-top: 1rem;
|
2490 |
-
padding-bottom: 1rem; }
|
2491 |
-
.section.no-pad {
|
2492 |
-
padding: 0; }
|
2493 |
-
.section.no-pad-bot {
|
2494 |
-
padding-bottom: 0; }
|
2495 |
-
.section.no-pad-top {
|
2496 |
-
padding-top: 0; }
|
2497 |
-
|
2498 |
-
.row {
|
2499 |
-
margin-left: auto;
|
2500 |
-
margin-right: auto;
|
2501 |
-
margin-bottom: 20px; }
|
2502 |
-
.row:after {
|
2503 |
-
content: "";
|
2504 |
-
display: table;
|
2505 |
-
clear: both; }
|
2506 |
-
.row .col {
|
2507 |
-
float: left;
|
2508 |
-
box-sizing: border-box;
|
2509 |
-
padding: 0 0.75rem;
|
2510 |
-
min-height: 1px; }
|
2511 |
-
.row .col[class*="push-"], .row .col[class*="pull-"] {
|
2512 |
-
position: relative; }
|
2513 |
-
.row .col.s1 {
|
2514 |
-
width: 8.33333%;
|
2515 |
-
margin-left: auto;
|
2516 |
-
left: auto;
|
2517 |
-
right: auto; }
|
2518 |
-
.row .col.s2 {
|
2519 |
-
width: 16.66667%;
|
2520 |
-
margin-left: auto;
|
2521 |
-
left: auto;
|
2522 |
-
right: auto; }
|
2523 |
-
.row .col.s3 {
|
2524 |
-
width: 25%;
|
2525 |
-
margin-left: auto;
|
2526 |
-
left: auto;
|
2527 |
-
right: auto; }
|
2528 |
-
.row .col.s4 {
|
2529 |
-
width: 33.33333%;
|
2530 |
-
margin-left: auto;
|
2531 |
-
left: auto;
|
2532 |
-
right: auto; }
|
2533 |
-
.row .col.s5 {
|
2534 |
-
width: 41.66667%;
|
2535 |
-
margin-left: auto;
|
2536 |
-
left: auto;
|
2537 |
-
right: auto; }
|
2538 |
-
.row .col.s6 {
|
2539 |
-
width: 50%;
|
2540 |
-
margin-left: auto;
|
2541 |
-
left: auto;
|
2542 |
-
right: auto; }
|
2543 |
-
.row .col.s7 {
|
2544 |
-
width: 58.33333%;
|
2545 |
-
margin-left: auto;
|
2546 |
-
left: auto;
|
2547 |
-
right: auto; }
|
2548 |
-
.row .col.s8 {
|
2549 |
-
width: 66.66667%;
|
2550 |
-
margin-left: auto;
|
2551 |
-
left: auto;
|
2552 |
-
right: auto; }
|
2553 |
-
.row .col.s9 {
|
2554 |
-
width: 75%;
|
2555 |
-
margin-left: auto;
|
2556 |
-
left: auto;
|
2557 |
-
right: auto; }
|
2558 |
-
.row .col.s10 {
|
2559 |
-
width: 83.33333%;
|
2560 |
-
margin-left: auto;
|
2561 |
-
left: auto;
|
2562 |
-
right: auto; }
|
2563 |
-
.row .col.s11 {
|
2564 |
-
width: 91.66667%;
|
2565 |
-
margin-left: auto;
|
2566 |
-
left: auto;
|
2567 |
-
right: auto; }
|
2568 |
-
.row .col.s12 {
|
2569 |
-
width: 100%;
|
2570 |
-
margin-left: auto;
|
2571 |
-
left: auto;
|
2572 |
-
right: auto; }
|
2573 |
-
.row .col.offset-s1 {
|
2574 |
-
margin-left: 8.33333%; }
|
2575 |
-
.row .col.pull-s1 {
|
2576 |
-
right: 8.33333%; }
|
2577 |
-
.row .col.push-s1 {
|
2578 |
-
left: 8.33333%; }
|
2579 |
-
.row .col.offset-s2 {
|
2580 |
-
margin-left: 16.66667%; }
|
2581 |
-
.row .col.pull-s2 {
|
2582 |
-
right: 16.66667%; }
|
2583 |
-
.row .col.push-s2 {
|
2584 |
-
left: 16.66667%; }
|
2585 |
-
.row .col.offset-s3 {
|
2586 |
-
margin-left: 25%; }
|
2587 |
-
.row .col.pull-s3 {
|
2588 |
-
right: 25%; }
|
2589 |
-
.row .col.push-s3 {
|
2590 |
-
left: 25%; }
|
2591 |
-
.row .col.offset-s4 {
|
2592 |
-
margin-left: 33.33333%; }
|
2593 |
-
.row .col.pull-s4 {
|
2594 |
-
right: 33.33333%; }
|
2595 |
-
.row .col.push-s4 {
|
2596 |
-
left: 33.33333%; }
|
2597 |
-
.row .col.offset-s5 {
|
2598 |
-
margin-left: 41.66667%; }
|
2599 |
-
.row .col.pull-s5 {
|
2600 |
-
right: 41.66667%; }
|
2601 |
-
.row .col.push-s5 {
|
2602 |
-
left: 41.66667%; }
|
2603 |
-
.row .col.offset-s6 {
|
2604 |
-
margin-left: 50%; }
|
2605 |
-
.row .col.pull-s6 {
|
2606 |
-
right: 50%; }
|
2607 |
-
.row .col.push-s6 {
|
2608 |
-
left: 50%; }
|
2609 |
-
.row .col.offset-s7 {
|
2610 |
-
margin-left: 58.33333%; }
|
2611 |
-
.row .col.pull-s7 {
|
2612 |
-
right: 58.33333%; }
|
2613 |
-
.row .col.push-s7 {
|
2614 |
-
left: 58.33333%; }
|
2615 |
-
.row .col.offset-s8 {
|
2616 |
-
margin-left: 66.66667%; }
|
2617 |
-
.row .col.pull-s8 {
|
2618 |
-
right: 66.66667%; }
|
2619 |
-
.row .col.push-s8 {
|
2620 |
-
left: 66.66667%; }
|
2621 |
-
.row .col.offset-s9 {
|
2622 |
-
margin-left: 75%; }
|
2623 |
-
.row .col.pull-s9 {
|
2624 |
-
right: 75%; }
|
2625 |
-
.row .col.push-s9 {
|
2626 |
-
left: 75%; }
|
2627 |
-
.row .col.offset-s10 {
|
2628 |
-
margin-left: 83.33333%; }
|
2629 |
-
.row .col.pull-s10 {
|
2630 |
-
right: 83.33333%; }
|
2631 |
-
.row .col.push-s10 {
|
2632 |
-
left: 83.33333%; }
|
2633 |
-
.row .col.offset-s11 {
|
2634 |
-
margin-left: 91.66667%; }
|
2635 |
-
.row .col.pull-s11 {
|
2636 |
-
right: 91.66667%; }
|
2637 |
-
.row .col.push-s11 {
|
2638 |
-
left: 91.66667%; }
|
2639 |
-
.row .col.offset-s12 {
|
2640 |
-
margin-left: 100%; }
|
2641 |
-
.row .col.pull-s12 {
|
2642 |
-
right: 100%; }
|
2643 |
-
.row .col.push-s12 {
|
2644 |
-
left: 100%; }
|
2645 |
-
@media only screen and (min-width: 601px) {
|
2646 |
-
.row .col.m1 {
|
2647 |
-
width: 8.33333%;
|
2648 |
-
margin-left: auto;
|
2649 |
-
left: auto;
|
2650 |
-
right: auto; }
|
2651 |
-
.row .col.m2 {
|
2652 |
-
width: 16.66667%;
|
2653 |
-
margin-left: auto;
|
2654 |
-
left: auto;
|
2655 |
-
right: auto; }
|
2656 |
-
.row .col.m3 {
|
2657 |
-
width: 25%;
|
2658 |
-
margin-left: auto;
|
2659 |
-
left: auto;
|
2660 |
-
right: auto; }
|
2661 |
-
.row .col.m4 {
|
2662 |
-
width: 33.33333%;
|
2663 |
-
margin-left: auto;
|
2664 |
-
left: auto;
|
2665 |
-
right: auto; }
|
2666 |
-
.row .col.m5 {
|
2667 |
-
width: 41.66667%;
|
2668 |
-
margin-left: auto;
|
2669 |
-
left: auto;
|
2670 |
-
right: auto; }
|
2671 |
-
.row .col.m6 {
|
2672 |
-
width: 50%;
|
2673 |
-
margin-left: auto;
|
2674 |
-
left: auto;
|
2675 |
-
right: auto; }
|
2676 |
-
.row .col.m7 {
|
2677 |
-
width: 58.33333%;
|
2678 |
-
margin-left: auto;
|
2679 |
-
left: auto;
|
2680 |
-
right: auto; }
|
2681 |
-
.row .col.m8 {
|
2682 |
-
width: 66.66667%;
|
2683 |
-
margin-left: auto;
|
2684 |
-
left: auto;
|
2685 |
-
right: auto; }
|
2686 |
-
.row .col.m9 {
|
2687 |
-
width: 75%;
|
2688 |
-
margin-left: auto;
|
2689 |
-
left: auto;
|
2690 |
-
right: auto; }
|
2691 |
-
.row .col.m10 {
|
2692 |
-
width: 83.33333%;
|
2693 |
-
margin-left: auto;
|
2694 |
-
left: auto;
|
2695 |
-
right: auto; }
|
2696 |
-
.row .col.m11 {
|
2697 |
-
width: 91.66667%;
|
2698 |
-
margin-left: auto;
|
2699 |
-
left: auto;
|
2700 |
-
right: auto; }
|
2701 |
-
.row .col.m12 {
|
2702 |
-
width: 100%;
|
2703 |
-
margin-left: auto;
|
2704 |
-
left: auto;
|
2705 |
-
right: auto; }
|
2706 |
-
.row .col.offset-m1 {
|
2707 |
-
margin-left: 8.33333%; }
|
2708 |
-
.row .col.pull-m1 {
|
2709 |
-
right: 8.33333%; }
|
2710 |
-
.row .col.push-m1 {
|
2711 |
-
left: 8.33333%; }
|
2712 |
-
.row .col.offset-m2 {
|
2713 |
-
margin-left: 16.66667%; }
|
2714 |
-
.row .col.pull-m2 {
|
2715 |
-
right: 16.66667%; }
|
2716 |
-
.row .col.push-m2 {
|
2717 |
-
left: 16.66667%; }
|
2718 |
-
.row .col.offset-m3 {
|
2719 |
-
margin-left: 25%; }
|
2720 |
-
.row .col.pull-m3 {
|
2721 |
-
right: 25%; }
|
2722 |
-
.row .col.push-m3 {
|
2723 |
-
left: 25%; }
|
2724 |
-
.row .col.offset-m4 {
|
2725 |
-
margin-left: 33.33333%; }
|
2726 |
-
.row .col.pull-m4 {
|
2727 |
-
right: 33.33333%; }
|
2728 |
-
.row .col.push-m4 {
|
2729 |
-
left: 33.33333%; }
|
2730 |
-
.row .col.offset-m5 {
|
2731 |
-
margin-left: 41.66667%; }
|
2732 |
-
.row .col.pull-m5 {
|
2733 |
-
right: 41.66667%; }
|
2734 |
-
.row .col.push-m5 {
|
2735 |
-
left: 41.66667%; }
|
2736 |
-
.row .col.offset-m6 {
|
2737 |
-
margin-left: 50%; }
|
2738 |
-
.row .col.pull-m6 {
|
2739 |
-
right: 50%; }
|
2740 |
-
.row .col.push-m6 {
|
2741 |
-
left: 50%; }
|
2742 |
-
.row .col.offset-m7 {
|
2743 |
-
margin-left: 58.33333%; }
|
2744 |
-
.row .col.pull-m7 {
|
2745 |
-
right: 58.33333%; }
|
2746 |
-
.row .col.push-m7 {
|
2747 |
-
left: 58.33333%; }
|
2748 |
-
.row .col.offset-m8 {
|
2749 |
-
margin-left: 66.66667%; }
|
2750 |
-
.row .col.pull-m8 {
|
2751 |
-
right: 66.66667%; }
|
2752 |
-
.row .col.push-m8 {
|
2753 |
-
left: 66.66667%; }
|
2754 |
-
.row .col.offset-m9 {
|
2755 |
-
margin-left: 75%; }
|
2756 |
-
.row .col.pull-m9 {
|
2757 |
-
right: 75%; }
|
2758 |
-
.row .col.push-m9 {
|
2759 |
-
left: 75%; }
|
2760 |
-
.row .col.offset-m10 {
|
2761 |
-
margin-left: 83.33333%; }
|
2762 |
-
.row .col.pull-m10 {
|
2763 |
-
right: 83.33333%; }
|
2764 |
-
.row .col.push-m10 {
|
2765 |
-
left: 83.33333%; }
|
2766 |
-
.row .col.offset-m11 {
|
2767 |
-
margin-left: 91.66667%; }
|
2768 |
-
.row .col.pull-m11 {
|
2769 |
-
right: 91.66667%; }
|
2770 |
-
.row .col.push-m11 {
|
2771 |
-
left: 91.66667%; }
|
2772 |
-
.row .col.offset-m12 {
|
2773 |
-
margin-left: 100%; }
|
2774 |
-
.row .col.pull-m12 {
|
2775 |
-
right: 100%; }
|
2776 |
-
.row .col.push-m12 {
|
2777 |
-
left: 100%; } }
|
2778 |
-
@media only screen and (min-width: 993px) {
|
2779 |
-
.row .col.l1 {
|
2780 |
-
width: 8.33333%;
|
2781 |
-
margin-left: auto;
|
2782 |
-
left: auto;
|
2783 |
-
right: auto; }
|
2784 |
-
.row .col.l2 {
|
2785 |
-
width: 16.66667%;
|
2786 |
-
margin-left: auto;
|
2787 |
-
left: auto;
|
2788 |
-
right: auto; }
|
2789 |
-
.row .col.l3 {
|
2790 |
-
width: 25%;
|
2791 |
-
margin-left: auto;
|
2792 |
-
left: auto;
|
2793 |
-
right: auto; }
|
2794 |
-
.row .col.l4 {
|
2795 |
-
width: 33.33333%;
|
2796 |
-
margin-left: auto;
|
2797 |
-
left: auto;
|
2798 |
-
right: auto; }
|
2799 |
-
.row .col.l5 {
|
2800 |
-
width: 41.66667%;
|
2801 |
-
margin-left: auto;
|
2802 |
-
left: auto;
|
2803 |
-
right: auto; }
|
2804 |
-
.row .col.l6 {
|
2805 |
-
width: 50%;
|
2806 |
-
margin-left: auto;
|
2807 |
-
left: auto;
|
2808 |
-
right: auto; }
|
2809 |
-
.row .col.l7 {
|
2810 |
-
width: 58.33333%;
|
2811 |
-
margin-left: auto;
|
2812 |
-
left: auto;
|
2813 |
-
right: auto; }
|
2814 |
-
.row .col.l8 {
|
2815 |
-
width: 66.66667%;
|
2816 |
-
margin-left: auto;
|
2817 |
-
left: auto;
|
2818 |
-
right: auto; }
|
2819 |
-
.row .col.l9 {
|
2820 |
-
width: 75%;
|
2821 |
-
margin-left: auto;
|
2822 |
-
left: auto;
|
2823 |
-
right: auto; }
|
2824 |
-
.row .col.l10 {
|
2825 |
-
width: 83.33333%;
|
2826 |
-
margin-left: auto;
|
2827 |
-
left: auto;
|
2828 |
-
right: auto; }
|
2829 |
-
.row .col.l11 {
|
2830 |
-
width: 91.66667%;
|
2831 |
-
margin-left: auto;
|
2832 |
-
left: auto;
|
2833 |
-
right: auto; }
|
2834 |
-
.row .col.l12 {
|
2835 |
-
width: 100%;
|
2836 |
-
margin-left: auto;
|
2837 |
-
left: auto;
|
2838 |
-
right: auto; }
|
2839 |
-
.row .col.offset-l1 {
|
2840 |
-
margin-left: 8.33333%; }
|
2841 |
-
.row .col.pull-l1 {
|
2842 |
-
right: 8.33333%; }
|
2843 |
-
.row .col.push-l1 {
|
2844 |
-
left: 8.33333%; }
|
2845 |
-
.row .col.offset-l2 {
|
2846 |
-
margin-left: 16.66667%; }
|
2847 |
-
.row .col.pull-l2 {
|
2848 |
-
right: 16.66667%; }
|
2849 |
-
.row .col.push-l2 {
|
2850 |
-
left: 16.66667%; }
|
2851 |
-
.row .col.offset-l3 {
|
2852 |
-
margin-left: 25%; }
|
2853 |
-
.row .col.pull-l3 {
|
2854 |
-
right: 25%; }
|
2855 |
-
.row .col.push-l3 {
|
2856 |
-
left: 25%; }
|
2857 |
-
.row .col.offset-l4 {
|
2858 |
-
margin-left: 33.33333%; }
|
2859 |
-
.row .col.pull-l4 {
|
2860 |
-
right: 33.33333%; }
|
2861 |
-
.row .col.push-l4 {
|
2862 |
-
left: 33.33333%; }
|
2863 |
-
.row .col.offset-l5 {
|
2864 |
-
margin-left: 41.66667%; }
|
2865 |
-
.row .col.pull-l5 {
|
2866 |
-
right: 41.66667%; }
|
2867 |
-
.row .col.push-l5 {
|
2868 |
-
left: 41.66667%; }
|
2869 |
-
.row .col.offset-l6 {
|
2870 |
-
margin-left: 50%; }
|
2871 |
-
.row .col.pull-l6 {
|
2872 |
-
right: 50%; }
|
2873 |
-
.row .col.push-l6 {
|
2874 |
-
left: 50%; }
|
2875 |
-
.row .col.offset-l7 {
|
2876 |
-
margin-left: 58.33333%; }
|
2877 |
-
.row .col.pull-l7 {
|
2878 |
-
right: 58.33333%; }
|
2879 |
-
.row .col.push-l7 {
|
2880 |
-
left: 58.33333%; }
|
2881 |
-
.row .col.offset-l8 {
|
2882 |
-
margin-left: 66.66667%; }
|
2883 |
-
.row .col.pull-l8 {
|
2884 |
-
right: 66.66667%; }
|
2885 |
-
.row .col.push-l8 {
|
2886 |
-
left: 66.66667%; }
|
2887 |
-
.row .col.offset-l9 {
|
2888 |
-
margin-left: 75%; }
|
2889 |
-
.row .col.pull-l9 {
|
2890 |
-
right: 75%; }
|
2891 |
-
.row .col.push-l9 {
|
2892 |
-
left: 75%; }
|
2893 |
-
.row .col.offset-l10 {
|
2894 |
-
margin-left: 83.33333%; }
|
2895 |
-
.row .col.pull-l10 {
|
2896 |
-
right: 83.33333%; }
|
2897 |
-
.row .col.push-l10 {
|
2898 |
-
left: 83.33333%; }
|
2899 |
-
.row .col.offset-l11 {
|
2900 |
-
margin-left: 91.66667%; }
|
2901 |
-
.row .col.pull-l11 {
|
2902 |
-
right: 91.66667%; }
|
2903 |
-
.row .col.push-l11 {
|
2904 |
-
left: 91.66667%; }
|
2905 |
-
.row .col.offset-l12 {
|
2906 |
-
margin-left: 100%; }
|
2907 |
-
.row .col.pull-l12 {
|
2908 |
-
right: 100%; }
|
2909 |
-
.row .col.push-l12 {
|
2910 |
-
left: 100%; } }
|
2911 |
-
@media only screen and (min-width: 1201px) {
|
2912 |
-
.row .col.xl1 {
|
2913 |
-
width: 8.33333%;
|
2914 |
-
margin-left: auto;
|
2915 |
-
left: auto;
|
2916 |
-
right: auto; }
|
2917 |
-
.row .col.xl2 {
|
2918 |
-
width: 16.66667%;
|
2919 |
-
margin-left: auto;
|
2920 |
-
left: auto;
|
2921 |
-
right: auto; }
|
2922 |
-
.row .col.xl3 {
|
2923 |
-
width: 25%;
|
2924 |
-
margin-left: auto;
|
2925 |
-
left: auto;
|
2926 |
-
right: auto; }
|
2927 |
-
.row .col.xl4 {
|
2928 |
-
width: 33.33333%;
|
2929 |
-
margin-left: auto;
|
2930 |
-
left: auto;
|
2931 |
-
right: auto; }
|
2932 |
-
.row .col.xl5 {
|
2933 |
-
width: 41.66667%;
|
2934 |
-
margin-left: auto;
|
2935 |
-
left: auto;
|
2936 |
-
right: auto; }
|
2937 |
-
.row .col.xl6 {
|
2938 |
-
width: 50%;
|
2939 |
-
margin-left: auto;
|
2940 |
-
left: auto;
|
2941 |
-
right: auto; }
|
2942 |
-
.row .col.xl7 {
|
2943 |
-
width: 58.33333%;
|
2944 |
-
margin-left: auto;
|
2945 |
-
left: auto;
|
2946 |
-
right: auto; }
|
2947 |
-
.row .col.xl8 {
|
2948 |
-
width: 66.66667%;
|
2949 |
-
margin-left: auto;
|
2950 |
-
left: auto;
|
2951 |
-
right: auto; }
|
2952 |
-
.row .col.xl9 {
|
2953 |
-
width: 75%;
|
2954 |
-
margin-left: auto;
|
2955 |
-
left: auto;
|
2956 |
-
right: auto; }
|
2957 |
-
.row .col.xl10 {
|
2958 |
-
width: 83.33333%;
|
2959 |
-
margin-left: auto;
|
2960 |
-
left: auto;
|
2961 |
-
right: auto; }
|
2962 |
-
.row .col.xl11 {
|
2963 |
-
width: 91.66667%;
|
2964 |
-
margin-left: auto;
|
2965 |
-
left: auto;
|
2966 |
-
right: auto; }
|
2967 |
-
.row .col.xl12 {
|
2968 |
-
width: 100%;
|
2969 |
-
margin-left: auto;
|
2970 |
-
left: auto;
|
2971 |
-
right: auto; }
|
2972 |
-
.row .col.offset-xl1 {
|
2973 |
-
margin-left: 8.33333%; }
|
2974 |
-
.row .col.pull-xl1 {
|
2975 |
-
right: 8.33333%; }
|
2976 |
-
.row .col.push-xl1 {
|
2977 |
-
left: 8.33333%; }
|
2978 |
-
.row .col.offset-xl2 {
|
2979 |
-
margin-left: 16.66667%; }
|
2980 |
-
.row .col.pull-xl2 {
|
2981 |
-
right: 16.66667%; }
|
2982 |
-
.row .col.push-xl2 {
|
2983 |
-
left: 16.66667%; }
|
2984 |
-
.row .col.offset-xl3 {
|
2985 |
-
margin-left: 25%; }
|
2986 |
-
.row .col.pull-xl3 {
|
2987 |
-
right: 25%; }
|
2988 |
-
.row .col.push-xl3 {
|
2989 |
-
left: 25%; }
|
2990 |
-
.row .col.offset-xl4 {
|
2991 |
-
margin-left: 33.33333%; }
|
2992 |
-
.row .col.pull-xl4 {
|
2993 |
-
right: 33.33333%; }
|
2994 |
-
.row .col.push-xl4 {
|
2995 |
-
left: 33.33333%; }
|
2996 |
-
.row .col.offset-xl5 {
|
2997 |
-
margin-left: 41.66667%; }
|
2998 |
-
.row .col.pull-xl5 {
|
2999 |
-
right: 41.66667%; }
|
3000 |
-
.row .col.push-xl5 {
|
3001 |
-
left: 41.66667%; }
|
3002 |
-
.row .col.offset-xl6 {
|
3003 |
-
margin-left: 50%; }
|
3004 |
-
.row .col.pull-xl6 {
|
3005 |
-
right: 50%; }
|
3006 |
-
.row .col.push-xl6 {
|
3007 |
-
left: 50%; }
|
3008 |
-
.row .col.offset-xl7 {
|
3009 |
-
margin-left: 58.33333%; }
|
3010 |
-
.row .col.pull-xl7 {
|
3011 |
-
right: 58.33333%; }
|
3012 |
-
.row .col.push-xl7 {
|
3013 |
-
left: 58.33333%; }
|
3014 |
-
.row .col.offset-xl8 {
|
3015 |
-
margin-left: 66.66667%; }
|
3016 |
-
.row .col.pull-xl8 {
|
3017 |
-
right: 66.66667%; }
|
3018 |
-
.row .col.push-xl8 {
|
3019 |
-
left: 66.66667%; }
|
3020 |
-
.row .col.offset-xl9 {
|
3021 |
-
margin-left: 75%; }
|
3022 |
-
.row .col.pull-xl9 {
|
3023 |
-
right: 75%; }
|
3024 |
-
.row .col.push-xl9 {
|
3025 |
-
left: 75%; }
|
3026 |
-
.row .col.offset-xl10 {
|
3027 |
-
margin-left: 83.33333%; }
|
3028 |
-
.row .col.pull-xl10 {
|
3029 |
-
right: 83.33333%; }
|
3030 |
-
.row .col.push-xl10 {
|
3031 |
-
left: 83.33333%; }
|
3032 |
-
.row .col.offset-xl11 {
|
3033 |
-
margin-left: 91.66667%; }
|
3034 |
-
.row .col.pull-xl11 {
|
3035 |
-
right: 91.66667%; }
|
3036 |
-
.row .col.push-xl11 {
|
3037 |
-
left: 91.66667%; }
|
3038 |
-
.row .col.offset-xl12 {
|
3039 |
-
margin-left: 100%; }
|
3040 |
-
.row .col.pull-xl12 {
|
3041 |
-
right: 100%; }
|
3042 |
-
.row .col.push-xl12 {
|
3043 |
-
left: 100%; } }
|
3044 |
-
|
3045 |
-
a {
|
3046 |
-
text-decoration: none; }
|
3047 |
-
|
3048 |
-
html {
|
3049 |
-
line-height: 1.5;
|
3050 |
-
font-family: "Roboto", sans-serif;
|
3051 |
-
font-weight: normal;
|
3052 |
-
color: rgba(0, 0, 0, 0.87); }
|
3053 |
-
@media only screen and (min-width: 0) {
|
3054 |
-
html {
|
3055 |
-
font-size: 14px; } }
|
3056 |
-
@media only screen and (min-width: 992px) {
|
3057 |
-
html {
|
3058 |
-
font-size: 14.5px; } }
|
3059 |
-
@media only screen and (min-width: 1200px) {
|
3060 |
-
html {
|
3061 |
-
font-size: 15px; } }
|
3062 |
-
|
3063 |
-
h1, h2, h3, h4, h5, h6 {
|
3064 |
-
font-weight: 400;
|
3065 |
-
line-height: 1.1; }
|
3066 |
-
|
3067 |
-
h1 a, h2 a, h3 a, h4 a, h5 a, h6 a {
|
3068 |
-
font-weight: inherit; }
|
3069 |
-
|
3070 |
-
h1 {
|
3071 |
-
font-size: 4.2rem;
|
3072 |
-
line-height: 110%;
|
3073 |
-
margin: 2.1rem 0 1.68rem 0; }
|
3074 |
-
|
3075 |
-
h2 {
|
3076 |
-
font-size: 3.56rem;
|
3077 |
-
line-height: 110%;
|
3078 |
-
margin: 1.78rem 0 1.424rem 0; }
|
3079 |
-
|
3080 |
-
h3 {
|
3081 |
-
font-size: 2.92rem;
|
3082 |
-
line-height: 110%;
|
3083 |
-
margin: 1.46rem 0 1.168rem 0; }
|
3084 |
-
|
3085 |
-
h4 {
|
3086 |
-
font-size: 2.28rem;
|
3087 |
-
line-height: 110%;
|
3088 |
-
margin: 1.14rem 0 0.912rem 0; }
|
3089 |
-
|
3090 |
-
h5 {
|
3091 |
-
font-size: 1.64rem;
|
3092 |
-
line-height: 110%;
|
3093 |
-
margin: 0.82rem 0 0.656rem 0; }
|
3094 |
-
|
3095 |
-
h6 {
|
3096 |
-
font-size: 1rem;
|
3097 |
-
line-height: 110%;
|
3098 |
-
margin: 0.5rem 0 0.4rem 0; }
|
3099 |
-
|
3100 |
-
em {
|
3101 |
-
font-style: italic; }
|
3102 |
-
|
3103 |
-
strong {
|
3104 |
-
font-weight: 500; }
|
3105 |
-
|
3106 |
-
small {
|
3107 |
-
font-size: 75%; }
|
3108 |
-
|
3109 |
-
.light, .page-footer .footer-copyright {
|
3110 |
-
font-weight: 300; }
|
3111 |
-
|
3112 |
-
.thin {
|
3113 |
-
font-weight: 200; }
|
3114 |
-
|
3115 |
-
.flow-text {
|
3116 |
-
font-weight: 300; }
|
3117 |
-
@media only screen and (min-width: 360px) {
|
3118 |
-
.flow-text {
|
3119 |
-
font-size: 1.2rem; } }
|
3120 |
-
@media only screen and (min-width: 390px) {
|
3121 |
-
.flow-text {
|
3122 |
-
font-size: 1.224rem; } }
|
3123 |
-
@media only screen and (min-width: 420px) {
|
3124 |
-
.flow-text {
|
3125 |
-
font-size: 1.248rem; } }
|
3126 |
-
@media only screen and (min-width: 450px) {
|
3127 |
-
.flow-text {
|
3128 |
-
font-size: 1.272rem; } }
|
3129 |
-
@media only screen and (min-width: 480px) {
|
3130 |
-
.flow-text {
|
3131 |
-
font-size: 1.296rem; } }
|
3132 |
-
@media only screen and (min-width: 510px) {
|
3133 |
-
.flow-text {
|
3134 |
-
font-size: 1.32rem; } }
|
3135 |
-
@media only screen and (min-width: 540px) {
|
3136 |
-
.flow-text {
|
3137 |
-
font-size: 1.344rem; } }
|
3138 |
-
@media only screen and (min-width: 570px) {
|
3139 |
-
.flow-text {
|
3140 |
-
font-size: 1.368rem; } }
|
3141 |
-
@media only screen and (min-width: 600px) {
|
3142 |
-
.flow-text {
|
3143 |
-
font-size: 1.392rem; } }
|
3144 |
-
@media only screen and (min-width: 630px) {
|
3145 |
-
.flow-text {
|
3146 |
-
font-size: 1.416rem; } }
|
3147 |
-
@media only screen and (min-width: 660px) {
|
3148 |
-
.flow-text {
|
3149 |
-
font-size: 1.44rem; } }
|
3150 |
-
@media only screen and (min-width: 690px) {
|
3151 |
-
.flow-text {
|
3152 |
-
font-size: 1.464rem; } }
|
3153 |
-
@media only screen and (min-width: 720px) {
|
3154 |
-
.flow-text {
|
3155 |
-
font-size: 1.488rem; } }
|
3156 |
-
@media only screen and (min-width: 750px) {
|
3157 |
-
.flow-text {
|
3158 |
-
font-size: 1.512rem; } }
|
3159 |
-
@media only screen and (min-width: 780px) {
|
3160 |
-
.flow-text {
|
3161 |
-
font-size: 1.536rem; } }
|
3162 |
-
@media only screen and (min-width: 810px) {
|
3163 |
-
.flow-text {
|
3164 |
-
font-size: 1.56rem; } }
|
3165 |
-
@media only screen and (min-width: 840px) {
|
3166 |
-
.flow-text {
|
3167 |
-
font-size: 1.584rem; } }
|
3168 |
-
@media only screen and (min-width: 870px) {
|
3169 |
-
.flow-text {
|
3170 |
-
font-size: 1.608rem; } }
|
3171 |
-
@media only screen and (min-width: 900px) {
|
3172 |
-
.flow-text {
|
3173 |
-
font-size: 1.632rem; } }
|
3174 |
-
@media only screen and (min-width: 930px) {
|
3175 |
-
.flow-text {
|
3176 |
-
font-size: 1.656rem; } }
|
3177 |
-
@media only screen and (min-width: 960px) {
|
3178 |
-
.flow-text {
|
3179 |
-
font-size: 1.68rem; } }
|
3180 |
-
@media only screen and (max-width: 360px) {
|
3181 |
-
.flow-text {
|
3182 |
-
font-size: 1.2rem; } }
|
3183 |
-
|
3184 |
-
.scale-transition {
|
3185 |
-
transition: transform 0.3s cubic-bezier(0.53, 0.01, 0.36, 1.63) !important; }
|
3186 |
-
.scale-transition.scale-out {
|
3187 |
-
transform: scale(0);
|
3188 |
-
transition: transform .2s !important; }
|
3189 |
-
.scale-transition.scale-in {
|
3190 |
-
transform: scale(1); }
|
3191 |
-
|
3192 |
-
.card-panel {
|
3193 |
-
transition: box-shadow .25s;
|
3194 |
-
padding: 24px;
|
3195 |
-
margin: 0.5rem 0 1rem 0;
|
3196 |
-
border-radius: 2px;
|
3197 |
-
background-color: #fff; }
|
3198 |
-
|
3199 |
-
.card {
|
3200 |
-
position: relative;
|
3201 |
-
margin: 0.5rem 0 1rem 0;
|
3202 |
-
background-color: #fff;
|
3203 |
-
transition: box-shadow .25s;
|
3204 |
-
border-radius: 2px; }
|
3205 |
-
.card .card-title {
|
3206 |
-
font-size: 24px;
|
3207 |
-
font-weight: 300; }
|
3208 |
-
.card .card-title.activator {
|
3209 |
-
cursor: pointer; }
|
3210 |
-
.card.small, .card.medium, .card.large {
|
3211 |
-
position: relative; }
|
3212 |
-
.card.small .card-image, .card.medium .card-image, .card.large .card-image {
|
3213 |
-
max-height: 60%;
|
3214 |
-
overflow: hidden; }
|
3215 |
-
.card.small .card-image + .card-content, .card.medium .card-image + .card-content, .card.large .card-image + .card-content {
|
3216 |
-
max-height: 40%; }
|
3217 |
-
.card.small .card-content, .card.medium .card-content, .card.large .card-content {
|
3218 |
-
max-height: 100%;
|
3219 |
-
overflow: hidden; }
|
3220 |
-
.card.small .card-action, .card.medium .card-action, .card.large .card-action {
|
3221 |
-
position: absolute;
|
3222 |
-
bottom: 0;
|
3223 |
-
left: 0;
|
3224 |
-
right: 0; }
|
3225 |
-
.card.small {
|
3226 |
-
height: 300px; }
|
3227 |
-
.card.medium {
|
3228 |
-
height: 400px; }
|
3229 |
-
.card.large {
|
3230 |
-
height: 500px; }
|
3231 |
-
.card.horizontal {
|
3232 |
-
display: flex; }
|
3233 |
-
.card.horizontal.small .card-image, .card.horizontal.medium .card-image, .card.horizontal.large .card-image {
|
3234 |
-
height: 100%;
|
3235 |
-
max-height: none;
|
3236 |
-
overflow: visible; }
|
3237 |
-
.card.horizontal.small .card-image img, .card.horizontal.medium .card-image img, .card.horizontal.large .card-image img {
|
3238 |
-
height: 100%; }
|
3239 |
-
.card.horizontal .card-image {
|
3240 |
-
max-width: 50%; }
|
3241 |
-
.card.horizontal .card-image img {
|
3242 |
-
border-radius: 2px 0 0 2px;
|
3243 |
-
max-width: 100%;
|
3244 |
-
width: auto; }
|
3245 |
-
.card.horizontal .card-stacked {
|
3246 |
-
display: flex;
|
3247 |
-
flex-direction: column;
|
3248 |
-
flex: 1;
|
3249 |
-
position: relative; }
|
3250 |
-
.card.horizontal .card-stacked .card-content {
|
3251 |
-
flex-grow: 1; }
|
3252 |
-
.card.sticky-action .card-action {
|
3253 |
-
z-index: 2; }
|
3254 |
-
.card.sticky-action .card-reveal {
|
3255 |
-
z-index: 1;
|
3256 |
-
padding-bottom: 64px; }
|
3257 |
-
.card .card-image {
|
3258 |
-
position: relative; }
|
3259 |
-
.card .card-image img {
|
3260 |
-
display: block;
|
3261 |
-
border-radius: 2px 2px 0 0;
|
3262 |
-
position: relative;
|
3263 |
-
left: 0;
|
3264 |
-
right: 0;
|
3265 |
-
top: 0;
|
3266 |
-
bottom: 0;
|
3267 |
-
width: 100%; }
|
3268 |
-
.card .card-image .card-title {
|
3269 |
-
color: #fff;
|
3270 |
-
position: absolute;
|
3271 |
-
bottom: 0;
|
3272 |
-
left: 0;
|
3273 |
-
max-width: 100%;
|
3274 |
-
padding: 24px; }
|
3275 |
-
.card .card-content {
|
3276 |
-
padding: 24px;
|
3277 |
-
border-radius: 0 0 2px 2px; }
|
3278 |
-
.card .card-content p {
|
3279 |
-
margin: 0;
|
3280 |
-
color: inherit; }
|
3281 |
-
.card .card-content .card-title {
|
3282 |
-
display: block;
|
3283 |
-
line-height: 32px;
|
3284 |
-
margin-bottom: 8px; }
|
3285 |
-
.card .card-content .card-title i {
|
3286 |
-
line-height: 32px; }
|
3287 |
-
.card .card-action {
|
3288 |
-
position: relative;
|
3289 |
-
background-color: inherit;
|
3290 |
-
border-top: 1px solid rgba(160, 160, 160, 0.2);
|
3291 |
-
padding: 16px 24px; }
|
3292 |
-
.card .card-action:last-child {
|
3293 |
-
border-radius: 0 0 2px 2px; }
|
3294 |
-
.card .card-action a:not(.btn):not(.btn-large):not(.btn-large):not(.btn-floating) {
|
3295 |
-
color: #ffab40;
|
3296 |
-
margin-right: 24px;
|
3297 |
-
transition: color .3s ease;
|
3298 |
-
text-transform: uppercase; }
|
3299 |
-
.card .card-action a:not(.btn):not(.btn-large):not(.btn-large):not(.btn-floating):hover {
|
3300 |
-
color: #ffd8a6; }
|
3301 |
-
.card .card-reveal {
|
3302 |
-
padding: 24px;
|
3303 |
-
position: absolute;
|
3304 |
-
background-color: #fff;
|
3305 |
-
width: 100%;
|
3306 |
-
overflow-y: auto;
|
3307 |
-
left: 0;
|
3308 |
-
top: 100%;
|
3309 |
-
height: 100%;
|
3310 |
-
z-index: 3;
|
3311 |
-
display: none; }
|
3312 |
-
.card .card-reveal .card-title {
|
3313 |
-
cursor: pointer;
|
3314 |
-
display: block; }
|
3315 |
-
|
3316 |
-
.btn, .btn-large,
|
3317 |
-
.btn-flat {
|
3318 |
-
border: none;
|
3319 |
-
border-radius: 2px;
|
3320 |
-
display: inline-block;
|
3321 |
-
height: 36px;
|
3322 |
-
line-height: 36px;
|
3323 |
-
padding: 0 2rem;
|
3324 |
-
text-transform: uppercase;
|
3325 |
-
vertical-align: middle;
|
3326 |
-
-webkit-tap-highlight-color: transparent; }
|
3327 |
-
|
3328 |
-
.btn.disabled, .disabled.btn-large,
|
3329 |
-
.btn-floating.disabled,
|
3330 |
-
.btn-large.disabled,
|
3331 |
-
.btn-flat.disabled,
|
3332 |
-
.btn:disabled,
|
3333 |
-
.btn-large:disabled,
|
3334 |
-
.btn-floating:disabled,
|
3335 |
-
.btn-large:disabled,
|
3336 |
-
.btn-flat:disabled,
|
3337 |
-
.btn[disabled],
|
3338 |
-
[disabled].btn-large,
|
3339 |
-
.btn-floating[disabled],
|
3340 |
-
.btn-large[disabled],
|
3341 |
-
.btn-flat[disabled] {
|
3342 |
-
pointer-events: none;
|
3343 |
-
background-color: #DFDFDF !important;
|
3344 |
-
box-shadow: none;
|
3345 |
-
color: #9F9F9F !important;
|
3346 |
-
cursor: default; }
|
3347 |
-
.btn.disabled:hover, .disabled.btn-large:hover,
|
3348 |
-
.btn-floating.disabled:hover,
|
3349 |
-
.btn-large.disabled:hover,
|
3350 |
-
.btn-flat.disabled:hover,
|
3351 |
-
.btn:disabled:hover,
|
3352 |
-
.btn-large:disabled:hover,
|
3353 |
-
.btn-floating:disabled:hover,
|
3354 |
-
.btn-large:disabled:hover,
|
3355 |
-
.btn-flat:disabled:hover,
|
3356 |
-
.btn[disabled]:hover,
|
3357 |
-
[disabled].btn-large:hover,
|
3358 |
-
.btn-floating[disabled]:hover,
|
3359 |
-
.btn-large[disabled]:hover,
|
3360 |
-
.btn-flat[disabled]:hover {
|
3361 |
-
background-color: #DFDFDF !important;
|
3362 |
-
color: #9F9F9F !important; }
|
3363 |
-
|
3364 |
-
.btn, .btn-large,
|
3365 |
-
.btn-floating,
|
3366 |
-
.btn-large,
|
3367 |
-
.btn-flat {
|
3368 |
-
font-size: 1rem;
|
3369 |
-
outline: 0; }
|
3370 |
-
.btn i, .btn-large i,
|
3371 |
-
.btn-floating i,
|
3372 |
-
.btn-large i,
|
3373 |
-
.btn-flat i {
|
3374 |
-
font-size: 1.3rem;
|
3375 |
-
line-height: inherit; }
|
3376 |
-
|
3377 |
-
.btn:focus, .btn-large:focus,
|
3378 |
-
.btn-floating:focus {
|
3379 |
-
background-color: #1d7d74; }
|
3380 |
-
|
3381 |
-
.btn, .btn-large {
|
3382 |
-
text-decoration: none;
|
3383 |
-
color: #fff;
|
3384 |
-
background-color: #26a69a;
|
3385 |
-
text-align: center;
|
3386 |
-
letter-spacing: .5px;
|
3387 |
-
transition: .2s ease-out;
|
3388 |
-
cursor: pointer; }
|
3389 |
-
.btn:hover, .btn-large:hover {
|
3390 |
-
background-color: #2bbbad; }
|
3391 |
-
|
3392 |
-
.btn-floating {
|
3393 |
-
display: inline-block;
|
3394 |
-
color: #fff;
|
3395 |
-
position: relative;
|
3396 |
-
overflow: hidden;
|
3397 |
-
z-index: 1;
|
3398 |
-
width: 40px;
|
3399 |
-
height: 40px;
|
3400 |
-
line-height: 40px;
|
3401 |
-
padding: 0;
|
3402 |
-
background-color: #26a69a;
|
3403 |
-
border-radius: 50%;
|
3404 |
-
transition: .3s;
|
3405 |
-
cursor: pointer;
|
3406 |
-
vertical-align: middle; }
|
3407 |
-
.btn-floating:hover {
|
3408 |
-
background-color: #26a69a; }
|
3409 |
-
.btn-floating:before {
|
3410 |
-
border-radius: 0; }
|
3411 |
-
.btn-floating.btn-large {
|
3412 |
-
width: 56px;
|
3413 |
-
height: 56px; }
|
3414 |
-
.btn-floating.btn-large.halfway-fab {
|
3415 |
-
bottom: -28px; }
|
3416 |
-
.btn-floating.btn-large i {
|
3417 |
-
line-height: 56px; }
|
3418 |
-
.btn-floating.halfway-fab {
|
3419 |
-
position: absolute;
|
3420 |
-
right: 24px;
|
3421 |
-
bottom: -20px; }
|
3422 |
-
.btn-floating.halfway-fab.left {
|
3423 |
-
right: auto;
|
3424 |
-
left: 24px; }
|
3425 |
-
.btn-floating i {
|
3426 |
-
width: inherit;
|
3427 |
-
display: inline-block;
|
3428 |
-
text-align: center;
|
3429 |
-
color: #fff;
|
3430 |
-
font-size: 1.6rem;
|
3431 |
-
line-height: 40px; }
|
3432 |
-
|
3433 |
-
button.btn-floating {
|
3434 |
-
border: none; }
|
3435 |
-
|
3436 |
-
.fixed-action-btn {
|
3437 |
-
position: fixed;
|
3438 |
-
right: 23px;
|
3439 |
-
bottom: 23px;
|
3440 |
-
padding-top: 15px;
|
3441 |
-
margin-bottom: 0;
|
3442 |
-
z-index: 997; }
|
3443 |
-
.fixed-action-btn.active ul {
|
3444 |
-
visibility: visible; }
|
3445 |
-
.fixed-action-btn.horizontal {
|
3446 |
-
padding: 0 0 0 15px; }
|
3447 |
-
.fixed-action-btn.horizontal ul {
|
3448 |
-
text-align: right;
|
3449 |
-
right: 64px;
|
3450 |
-
top: 50%;
|
3451 |
-
transform: translateY(-50%);
|
3452 |
-
height: 100%;
|
3453 |
-
left: auto;
|
3454 |
-
width: 500px;
|
3455 |
-
/*width 100% only goes to width of button container */ }
|
3456 |
-
.fixed-action-btn.horizontal ul li {
|
3457 |
-
display: inline-block;
|
3458 |
-
margin: 15px 15px 0 0; }
|
3459 |
-
.fixed-action-btn.toolbar {
|
3460 |
-
padding: 0;
|
3461 |
-
height: 56px; }
|
3462 |
-
.fixed-action-btn.toolbar.active > a i {
|
3463 |
-
opacity: 0; }
|
3464 |
-
.fixed-action-btn.toolbar ul {
|
3465 |
-
display: flex;
|
3466 |
-
top: 0;
|
3467 |
-
bottom: 0;
|
3468 |
-
z-index: 1; }
|
3469 |
-
.fixed-action-btn.toolbar ul li {
|
3470 |
-
flex: 1;
|
3471 |
-
display: inline-block;
|
3472 |
-
margin: 0;
|
3473 |
-
height: 100%;
|
3474 |
-
transition: none; }
|
3475 |
-
.fixed-action-btn.toolbar ul li a {
|
3476 |
-
display: block;
|
3477 |
-
overflow: hidden;
|
3478 |
-
position: relative;
|
3479 |
-
width: 100%;
|
3480 |
-
height: 100%;
|
3481 |
-
background-color: transparent;
|
3482 |
-
box-shadow: none;
|
3483 |
-
color: #fff;
|
3484 |
-
line-height: 56px;
|
3485 |
-
z-index: 1; }
|
3486 |
-
.fixed-action-btn.toolbar ul li a i {
|
3487 |
-
line-height: inherit; }
|
3488 |
-
.fixed-action-btn ul {
|
3489 |
-
left: 0;
|
3490 |
-
right: 0;
|
3491 |
-
text-align: center;
|
3492 |
-
position: absolute;
|
3493 |
-
bottom: 64px;
|
3494 |
-
margin: 0;
|
3495 |
-
visibility: hidden; }
|
3496 |
-
.fixed-action-btn ul li {
|
3497 |
-
margin-bottom: 15px; }
|
3498 |
-
.fixed-action-btn ul a.btn-floating {
|
3499 |
-
opacity: 0; }
|
3500 |
-
.fixed-action-btn .fab-backdrop {
|
3501 |
-
position: absolute;
|
3502 |
-
top: 0;
|
3503 |
-
left: 0;
|
3504 |
-
z-index: -1;
|
3505 |
-
width: 40px;
|
3506 |
-
height: 40px;
|
3507 |
-
background-color: #26a69a;
|
3508 |
-
border-radius: 50%;
|
3509 |
-
transform: scale(0); }
|
3510 |
-
|
3511 |
-
.btn-flat {
|
3512 |
-
box-shadow: none;
|
3513 |
-
background-color: transparent;
|
3514 |
-
color: #343434;
|
3515 |
-
cursor: pointer;
|
3516 |
-
transition: background-color .2s; }
|
3517 |
-
.btn-flat:focus, .btn-flat:hover {
|
3518 |
-
box-shadow: none; }
|
3519 |
-
.btn-flat:focus {
|
3520 |
-
background-color: rgba(0, 0, 0, 0.1); }
|
3521 |
-
.btn-flat.disabled {
|
3522 |
-
background-color: transparent !important;
|
3523 |
-
color: #b3b3b3 !important;
|
3524 |
-
cursor: default; }
|
3525 |
-
|
3526 |
-
.btn-large {
|
3527 |
-
height: 54px;
|
3528 |
-
line-height: 54px; }
|
3529 |
-
.btn-large i {
|
3530 |
-
font-size: 1.6rem; }
|
3531 |
-
|
3532 |
-
.btn-block {
|
3533 |
-
display: block; }
|
3534 |
-
|
3535 |
-
.dropdown-content {
|
3536 |
-
background-color: #fff;
|
3537 |
-
margin: 0;
|
3538 |
-
display: none;
|
3539 |
-
min-width: 100px;
|
3540 |
-
max-height: 650px;
|
3541 |
-
overflow-y: auto;
|
3542 |
-
opacity: 0;
|
3543 |
-
position: absolute;
|
3544 |
-
z-index: 999;
|
3545 |
-
will-change: width, height; }
|
3546 |
-
.dropdown-content li {
|
3547 |
-
clear: both;
|
3548 |
-
color: rgba(0, 0, 0, 0.87);
|
3549 |
-
cursor: pointer;
|
3550 |
-
min-height: 50px;
|
3551 |
-
line-height: 1.5rem;
|
3552 |
-
width: 100%;
|
3553 |
-
text-align: left;
|
3554 |
-
text-transform: none; }
|
3555 |
-
.dropdown-content li:hover, .dropdown-content li.active, .dropdown-content li.selected {
|
3556 |
-
background-color: #eee; }
|
3557 |
-
.dropdown-content li.active.selected {
|
3558 |
-
background-color: #e1e1e1; }
|
3559 |
-
.dropdown-content li.divider {
|
3560 |
-
min-height: 0;
|
3561 |
-
height: 1px; }
|
3562 |
-
.dropdown-content li > a, .dropdown-content li > span {
|
3563 |
-
font-size: 16px;
|
3564 |
-
color: #26a69a;
|
3565 |
-
display: block;
|
3566 |
-
line-height: 22px;
|
3567 |
-
padding: 14px 16px; }
|
3568 |
-
.dropdown-content li > span > label {
|
3569 |
-
top: 1px;
|
3570 |
-
left: 0;
|
3571 |
-
height: 18px; }
|
3572 |
-
.dropdown-content li > a > i {
|
3573 |
-
height: inherit;
|
3574 |
-
line-height: inherit;
|
3575 |
-
float: left;
|
3576 |
-
margin: 0 24px 0 0;
|
3577 |
-
width: 24px; }
|
3578 |
-
|
3579 |
-
.input-field.col .dropdown-content [type="checkbox"] + label {
|
3580 |
-
top: 1px;
|
3581 |
-
left: 0;
|
3582 |
-
height: 18px; }
|
3583 |
-
|
3584 |
-
.collapsible {
|
3585 |
-
border-top: 1px solid #ddd;
|
3586 |
-
border-right: 1px solid #ddd;
|
3587 |
-
border-left: 1px solid #ddd;
|
3588 |
-
margin: 0.5rem 0 1rem 0; }
|
3589 |
-
|
3590 |
-
.collapsible-header {
|
3591 |
-
display: flex;
|
3592 |
-
cursor: pointer;
|
3593 |
-
-webkit-tap-highlight-color: transparent;
|
3594 |
-
line-height: 1.5;
|
3595 |
-
padding: 1rem;
|
3596 |
-
background-color: #fff;
|
3597 |
-
border-bottom: 1px solid #ddd; }
|
3598 |
-
.collapsible-header i {
|
3599 |
-
width: 2rem;
|
3600 |
-
font-size: 1.6rem;
|
3601 |
-
display: inline-block;
|
3602 |
-
text-align: center;
|
3603 |
-
margin-right: 1rem; }
|
3604 |
-
|
3605 |
-
.collapsible-body {
|
3606 |
-
display: none;
|
3607 |
-
border-bottom: 1px solid #ddd;
|
3608 |
-
box-sizing: border-box;
|
3609 |
-
padding: 2rem; }
|
3610 |
-
|
3611 |
-
.side-nav .collapsible,
|
3612 |
-
.side-nav.fixed .collapsible {
|
3613 |
-
border: none;
|
3614 |
-
box-shadow: none; }
|
3615 |
-
.side-nav .collapsible li,
|
3616 |
-
.side-nav.fixed .collapsible li {
|
3617 |
-
padding: 0; }
|
3618 |
-
|
3619 |
-
.side-nav .collapsible-header,
|
3620 |
-
.side-nav.fixed .collapsible-header {
|
3621 |
-
background-color: transparent;
|
3622 |
-
border: none;
|
3623 |
-
line-height: inherit;
|
3624 |
-
height: inherit;
|
3625 |
-
padding: 0 16px; }
|
3626 |
-
.side-nav .collapsible-header:hover,
|
3627 |
-
.side-nav.fixed .collapsible-header:hover {
|
3628 |
-
background-color: rgba(0, 0, 0, 0.05); }
|
3629 |
-
.side-nav .collapsible-header i,
|
3630 |
-
.side-nav.fixed .collapsible-header i {
|
3631 |
-
line-height: inherit; }
|
3632 |
-
|
3633 |
-
.side-nav .collapsible-body,
|
3634 |
-
.side-nav.fixed .collapsible-body {
|
3635 |
-
border: 0;
|
3636 |
-
background-color: #fff; }
|
3637 |
-
.side-nav .collapsible-body li a,
|
3638 |
-
.side-nav.fixed .collapsible-body li a {
|
3639 |
-
padding: 0 23.5px 0 31px; }
|
3640 |
-
|
3641 |
-
.collapsible.popout {
|
3642 |
-
border: none;
|
3643 |
-
box-shadow: none; }
|
3644 |
-
.collapsible.popout > li {
|
3645 |
-
box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.16), 0 2px 10px 0 rgba(0, 0, 0, 0.12);
|
3646 |
-
margin: 0 24px;
|
3647 |
-
transition: margin 0.35s cubic-bezier(0.25, 0.46, 0.45, 0.94); }
|
3648 |
-
.collapsible.popout > li.active {
|
3649 |
-
box-shadow: 0 5px 11px 0 rgba(0, 0, 0, 0.18), 0 4px 15px 0 rgba(0, 0, 0, 0.15);
|
3650 |
-
margin: 16px 0; }
|
3651 |
-
|
3652 |
-
.materialboxed {
|
3653 |
-
display: block;
|
3654 |
-
cursor: zoom-in;
|
3655 |
-
position: relative;
|
3656 |
-
transition: opacity .4s;
|
3657 |
-
-webkit-backface-visibility: hidden; }
|
3658 |
-
.materialboxed:hover:not(.active) {
|
3659 |
-
opacity: .8; }
|
3660 |
-
.materialboxed.active {
|
3661 |
-
cursor: zoom-out; }
|
3662 |
-
|
3663 |
-
#materialbox-overlay {
|
3664 |
-
position: fixed;
|
3665 |
-
top: 0;
|
3666 |
-
right: 0;
|
3667 |
-
bottom: 0;
|
3668 |
-
left: 0;
|
3669 |
-
background-color: #292929;
|
3670 |
-
z-index: 1000;
|
3671 |
-
will-change: opacity; }
|
3672 |
-
|
3673 |
-
.materialbox-caption {
|
3674 |
-
position: fixed;
|
3675 |
-
display: none;
|
3676 |
-
color: #fff;
|
3677 |
-
line-height: 50px;
|
3678 |
-
bottom: 0;
|
3679 |
-
left: 0;
|
3680 |
-
width: 100%;
|
3681 |
-
text-align: center;
|
3682 |
-
padding: 0% 15%;
|
3683 |
-
height: 50px;
|
3684 |
-
z-index: 1000;
|
3685 |
-
-webkit-font-smoothing: antialiased; }
|
3686 |
-
|
3687 |
-
select:focus {
|
3688 |
-
outline: 1px solid #c9f3ef; }
|
3689 |
-
|
3690 |
-
button:focus {
|
3691 |
-
outline: none;
|
3692 |
-
background-color: #2ab7a9; }
|
3693 |
-
|
3694 |
-
label {
|
3695 |
-
font-size: 0.8rem;
|
3696 |
-
color: #9e9e9e; }
|
3697 |
-
|
3698 |
-
/* Text Inputs + Textarea
|
3699 |
-
========================================================================== */
|
3700 |
-
/* Style Placeholders */
|
3701 |
-
::placeholder {
|
3702 |
-
color: #d1d1d1; }
|
3703 |
-
|
3704 |
-
/* Text inputs */
|
3705 |
-
input:not([type]),
|
3706 |
-
input[type=text]:not(.browser-default),
|
3707 |
-
input[type=password]:not(.browser-default),
|
3708 |
-
input[type=email]:not(.browser-default),
|
3709 |
-
input[type=url]:not(.browser-default),
|
3710 |
-
input[type=time]:not(.browser-default),
|
3711 |
-
input[type=date]:not(.browser-default),
|
3712 |
-
input[type=datetime]:not(.browser-default),
|
3713 |
-
input[type=datetime-local]:not(.browser-default),
|
3714 |
-
input[type=tel]:not(.browser-default),
|
3715 |
-
input[type=number]:not(.browser-default),
|
3716 |
-
input[type=search]:not(.browser-default),
|
3717 |
-
textarea.materialize-textarea {
|
3718 |
-
background-color: transparent;
|
3719 |
-
border: none;
|
3720 |
-
border-bottom: 1px solid #9e9e9e;
|
3721 |
-
border-radius: 0;
|
3722 |
-
outline: none;
|
3723 |
-
height: 3rem;
|
3724 |
-
width: 100%;
|
3725 |
-
font-size: 1rem;
|
3726 |
-
margin: 0 0 20px 0;
|
3727 |
-
padding: 0;
|
3728 |
-
box-shadow: none;
|
3729 |
-
box-sizing: content-box;
|
3730 |
-
transition: all 0.3s; }
|
3731 |
-
input:not([type]):disabled, input:not([type])[readonly="readonly"],
|
3732 |
-
input[type=text]:not(.browser-default):disabled,
|
3733 |
-
input[type=text]:not(.browser-default)[readonly="readonly"],
|
3734 |
-
input[type=password]:not(.browser-default):disabled,
|
3735 |
-
input[type=password]:not(.browser-default)[readonly="readonly"],
|
3736 |
-
input[type=email]:not(.browser-default):disabled,
|
3737 |
-
input[type=email]:not(.browser-default)[readonly="readonly"],
|
3738 |
-
input[type=url]:not(.browser-default):disabled,
|
3739 |
-
input[type=url]:not(.browser-default)[readonly="readonly"],
|
3740 |
-
input[type=time]:not(.browser-default):disabled,
|
3741 |
-
input[type=time]:not(.browser-default)[readonly="readonly"],
|
3742 |
-
input[type=date]:not(.browser-default):disabled,
|
3743 |
-
input[type=date]:not(.browser-default)[readonly="readonly"],
|
3744 |
-
input[type=datetime]:not(.browser-default):disabled,
|
3745 |
-
input[type=datetime]:not(.browser-default)[readonly="readonly"],
|
3746 |
-
input[type=datetime-local]:not(.browser-default):disabled,
|
3747 |
-
input[type=datetime-local]:not(.browser-default)[readonly="readonly"],
|
3748 |
-
input[type=tel]:not(.browser-default):disabled,
|
3749 |
-
input[type=tel]:not(.browser-default)[readonly="readonly"],
|
3750 |
-
input[type=number]:not(.browser-default):disabled,
|
3751 |
-
input[type=number]:not(.browser-default)[readonly="readonly"],
|
3752 |
-
input[type=search]:not(.browser-default):disabled,
|
3753 |
-
input[type=search]:not(.browser-default)[readonly="readonly"],
|
3754 |
-
textarea.materialize-textarea:disabled,
|
3755 |
-
textarea.materialize-textarea[readonly="readonly"] {
|
3756 |
-
color: rgba(0, 0, 0, 0.42);
|
3757 |
-
border-bottom: 1px dotted rgba(0, 0, 0, 0.42); }
|
3758 |
-
input:not([type]):disabled + label,
|
3759 |
-
input:not([type])[readonly="readonly"] + label,
|
3760 |
-
input[type=text]:not(.browser-default):disabled + label,
|
3761 |
-
input[type=text]:not(.browser-default)[readonly="readonly"] + label,
|
3762 |
-
input[type=password]:not(.browser-default):disabled + label,
|
3763 |
-
input[type=password]:not(.browser-default)[readonly="readonly"] + label,
|
3764 |
-
input[type=email]:not(.browser-default):disabled + label,
|
3765 |
-
input[type=email]:not(.browser-default)[readonly="readonly"] + label,
|
3766 |
-
input[type=url]:not(.browser-default):disabled + label,
|
3767 |
-
input[type=url]:not(.browser-default)[readonly="readonly"] + label,
|
3768 |
-
input[type=time]:not(.browser-default):disabled + label,
|
3769 |
-
input[type=time]:not(.browser-default)[readonly="readonly"] + label,
|
3770 |
-
input[type=date]:not(.browser-default):disabled + label,
|
3771 |
-
input[type=date]:not(.browser-default)[readonly="readonly"] + label,
|
3772 |
-
input[type=datetime]:not(.browser-default):disabled + label,
|
3773 |
-
input[type=datetime]:not(.browser-default)[readonly="readonly"] + label,
|
3774 |
-
input[type=datetime-local]:not(.browser-default):disabled + label,
|
3775 |
-
input[type=datetime-local]:not(.browser-default)[readonly="readonly"] + label,
|
3776 |
-
input[type=tel]:not(.browser-default):disabled + label,
|
3777 |
-
input[type=tel]:not(.browser-default)[readonly="readonly"] + label,
|
3778 |
-
input[type=number]:not(.browser-default):disabled + label,
|
3779 |
-
input[type=number]:not(.browser-default)[readonly="readonly"] + label,
|
3780 |
-
input[type=search]:not(.browser-default):disabled + label,
|
3781 |
-
input[type=search]:not(.browser-default)[readonly="readonly"] + label,
|
3782 |
-
textarea.materialize-textarea:disabled + label,
|
3783 |
-
textarea.materialize-textarea[readonly="readonly"] + label {
|
3784 |
-
color: rgba(0, 0, 0, 0.42); }
|
3785 |
-
input:not([type]):focus:not([readonly]),
|
3786 |
-
input[type=text]:not(.browser-default):focus:not([readonly]),
|
3787 |
-
input[type=password]:not(.browser-default):focus:not([readonly]),
|
3788 |
-
input[type=email]:not(.browser-default):focus:not([readonly]),
|
3789 |
-
input[type=url]:not(.browser-default):focus:not([readonly]),
|
3790 |
-
input[type=time]:not(.browser-default):focus:not([readonly]),
|
3791 |
-
input[type=date]:not(.browser-default):focus:not([readonly]),
|
3792 |
-
input[type=datetime]:not(.browser-default):focus:not([readonly]),
|
3793 |
-
input[type=datetime-local]:not(.browser-default):focus:not([readonly]),
|
3794 |
-
input[type=tel]:not(.browser-default):focus:not([readonly]),
|
3795 |
-
input[type=number]:not(.browser-default):focus:not([readonly]),
|
3796 |
-
input[type=search]:not(.browser-default):focus:not([readonly]),
|
3797 |
-
textarea.materialize-textarea:focus:not([readonly]) {
|
3798 |
-
border-bottom: 1px solid #26a69a;
|
3799 |
-
box-shadow: 0 1px 0 0 #26a69a; }
|
3800 |
-
input:not([type]):focus:not([readonly]) + label,
|
3801 |
-
input[type=text]:not(.browser-default):focus:not([readonly]) + label,
|
3802 |
-
input[type=password]:not(.browser-default):focus:not([readonly]) + label,
|
3803 |
-
input[type=email]:not(.browser-default):focus:not([readonly]) + label,
|
3804 |
-
input[type=url]:not(.browser-default):focus:not([readonly]) + label,
|
3805 |
-
input[type=time]:not(.browser-default):focus:not([readonly]) + label,
|
3806 |
-
input[type=date]:not(.browser-default):focus:not([readonly]) + label,
|
3807 |
-
input[type=datetime]:not(.browser-default):focus:not([readonly]) + label,
|
3808 |
-
input[type=datetime-local]:not(.browser-default):focus:not([readonly]) + label,
|
3809 |
-
input[type=tel]:not(.browser-default):focus:not([readonly]) + label,
|
3810 |
-
input[type=number]:not(.browser-default):focus:not([readonly]) + label,
|
3811 |
-
input[type=search]:not(.browser-default):focus:not([readonly]) + label,
|
3812 |
-
textarea.materialize-textarea:focus:not([readonly]) + label {
|
3813 |
-
color: #26a69a; }
|
3814 |
-
input:not([type]).validate + label,
|
3815 |
-
input[type=text]:not(.browser-default).validate + label,
|
3816 |
-
input[type=password]:not(.browser-default).validate + label,
|
3817 |
-
input[type=email]:not(.browser-default).validate + label,
|
3818 |
-
input[type=url]:not(.browser-default).validate + label,
|
3819 |
-
input[type=time]:not(.browser-default).validate + label,
|
3820 |
-
input[type=date]:not(.browser-default).validate + label,
|
3821 |
-
input[type=datetime]:not(.browser-default).validate + label,
|
3822 |
-
input[type=datetime-local]:not(.browser-default).validate + label,
|
3823 |
-
input[type=tel]:not(.browser-default).validate + label,
|
3824 |
-
input[type=number]:not(.browser-default).validate + label,
|
3825 |
-
input[type=search]:not(.browser-default).validate + label,
|
3826 |
-
textarea.materialize-textarea.validate + label {
|
3827 |
-
width: 100%; }
|
3828 |
-
input:not([type]).invalid + label:after,
|
3829 |
-
input:not([type]).valid + label:after,
|
3830 |
-
input[type=text]:not(.browser-default).invalid + label:after,
|
3831 |
-
input[type=text]:not(.browser-default).valid + label:after,
|
3832 |
-
input[type=password]:not(.browser-default).invalid + label:after,
|
3833 |
-
input[type=password]:not(.browser-default).valid + label:after,
|
3834 |
-
input[type=email]:not(.browser-default).invalid + label:after,
|
3835 |
-
input[type=email]:not(.browser-default).valid + label:after,
|
3836 |
-
input[type=url]:not(.browser-default).invalid + label:after,
|
3837 |
-
input[type=url]:not(.browser-default).valid + label:after,
|
3838 |
-
input[type=time]:not(.browser-default).invalid + label:after,
|
3839 |
-
input[type=time]:not(.browser-default).valid + label:after,
|
3840 |
-
input[type=date]:not(.browser-default).invalid + label:after,
|
3841 |
-
input[type=date]:not(.browser-default).valid + label:after,
|
3842 |
-
input[type=datetime]:not(.browser-default).invalid + label:after,
|
3843 |
-
input[type=datetime]:not(.browser-default).valid + label:after,
|
3844 |
-
input[type=datetime-local]:not(.browser-default).invalid + label:after,
|
3845 |
-
input[type=datetime-local]:not(.browser-default).valid + label:after,
|
3846 |
-
input[type=tel]:not(.browser-default).invalid + label:after,
|
3847 |
-
input[type=tel]:not(.browser-default).valid + label:after,
|
3848 |
-
input[type=number]:not(.browser-default).invalid + label:after,
|
3849 |
-
input[type=number]:not(.browser-default).valid + label:after,
|
3850 |
-
input[type=search]:not(.browser-default).invalid + label:after,
|
3851 |
-
input[type=search]:not(.browser-default).valid + label:after,
|
3852 |
-
textarea.materialize-textarea.invalid + label:after,
|
3853 |
-
textarea.materialize-textarea.valid + label:after {
|
3854 |
-
display: none; }
|
3855 |
-
input:not([type]).invalid + label.active:after,
|
3856 |
-
input:not([type]).valid + label.active:after,
|
3857 |
-
input[type=text]:not(.browser-default).invalid + label.active:after,
|
3858 |
-
input[type=text]:not(.browser-default).valid + label.active:after,
|
3859 |
-
input[type=password]:not(.browser-default).invalid + label.active:after,
|
3860 |
-
input[type=password]:not(.browser-default).valid + label.active:after,
|
3861 |
-
input[type=email]:not(.browser-default).invalid + label.active:after,
|
3862 |
-
input[type=email]:not(.browser-default).valid + label.active:after,
|
3863 |
-
input[type=url]:not(.browser-default).invalid + label.active:after,
|
3864 |
-
input[type=url]:not(.browser-default).valid + label.active:after,
|
3865 |
-
input[type=time]:not(.browser-default).invalid + label.active:after,
|
3866 |
-
input[type=time]:not(.browser-default).valid + label.active:after,
|
3867 |
-
input[type=date]:not(.browser-default).invalid + label.active:after,
|
3868 |
-
input[type=date]:not(.browser-default).valid + label.active:after,
|
3869 |
-
input[type=datetime]:not(.browser-default).invalid + label.active:after,
|
3870 |
-
input[type=datetime]:not(.browser-default).valid + label.active:after,
|
3871 |
-
input[type=datetime-local]:not(.browser-default).invalid + label.active:after,
|
3872 |
-
input[type=datetime-local]:not(.browser-default).valid + label.active:after,
|
3873 |
-
input[type=tel]:not(.browser-default).invalid + label.active:after,
|
3874 |
-
input[type=tel]:not(.browser-default).valid + label.active:after,
|
3875 |
-
input[type=number]:not(.browser-default).invalid + label.active:after,
|
3876 |
-
input[type=number]:not(.browser-default).valid + label.active:after,
|
3877 |
-
input[type=search]:not(.browser-default).invalid + label.active:after,
|
3878 |
-
input[type=search]:not(.browser-default).valid + label.active:after,
|
3879 |
-
textarea.materialize-textarea.invalid + label.active:after,
|
3880 |
-
textarea.materialize-textarea.valid + label.active:after {
|
3881 |
-
display: block; }
|
3882 |
-
|
3883 |
-
/* Validation Sass Placeholders */
|
3884 |
-
input.valid:not([type]), input.valid:not([type]):focus,
|
3885 |
-
input[type=text].valid:not(.browser-default),
|
3886 |
-
input[type=text].valid:not(.browser-default):focus,
|
3887 |
-
input[type=password].valid:not(.browser-default),
|
3888 |
-
input[type=password].valid:not(.browser-default):focus,
|
3889 |
-
input[type=email].valid:not(.browser-default),
|
3890 |
-
input[type=email].valid:not(.browser-default):focus,
|
3891 |
-
input[type=url].valid:not(.browser-default),
|
3892 |
-
input[type=url].valid:not(.browser-default):focus,
|
3893 |
-
input[type=time].valid:not(.browser-default),
|
3894 |
-
input[type=time].valid:not(.browser-default):focus,
|
3895 |
-
input[type=date].valid:not(.browser-default),
|
3896 |
-
input[type=date].valid:not(.browser-default):focus,
|
3897 |
-
input[type=datetime].valid:not(.browser-default),
|
3898 |
-
input[type=datetime].valid:not(.browser-default):focus,
|
3899 |
-
input[type=datetime-local].valid:not(.browser-default),
|
3900 |
-
input[type=datetime-local].valid:not(.browser-default):focus,
|
3901 |
-
input[type=tel].valid:not(.browser-default),
|
3902 |
-
input[type=tel].valid:not(.browser-default):focus,
|
3903 |
-
input[type=number].valid:not(.browser-default),
|
3904 |
-
input[type=number].valid:not(.browser-default):focus,
|
3905 |
-
input[type=search].valid:not(.browser-default),
|
3906 |
-
input[type=search].valid:not(.browser-default):focus,
|
3907 |
-
textarea.materialize-textarea.valid,
|
3908 |
-
textarea.materialize-textarea.valid:focus, .select-wrapper.valid > input.select-dropdown {
|
3909 |
-
border-bottom: 1px solid #4CAF50;
|
3910 |
-
box-shadow: 0 1px 0 0 #4CAF50; }
|
3911 |
-
|
3912 |
-
input.invalid:not([type]), input.invalid:not([type]):focus,
|
3913 |
-
input[type=text].invalid:not(.browser-default),
|
3914 |
-
input[type=text].invalid:not(.browser-default):focus,
|
3915 |
-
input[type=password].invalid:not(.browser-default),
|
3916 |
-
input[type=password].invalid:not(.browser-default):focus,
|
3917 |
-
input[type=email].invalid:not(.browser-default),
|
3918 |
-
input[type=email].invalid:not(.browser-default):focus,
|
3919 |
-
input[type=url].invalid:not(.browser-default),
|
3920 |
-
input[type=url].invalid:not(.browser-default):focus,
|
3921 |
-
input[type=time].invalid:not(.browser-default),
|
3922 |
-
input[type=time].invalid:not(.browser-default):focus,
|
3923 |
-
input[type=date].invalid:not(.browser-default),
|
3924 |
-
input[type=date].invalid:not(.browser-default):focus,
|
3925 |
-
input[type=datetime].invalid:not(.browser-default),
|
3926 |
-
input[type=datetime].invalid:not(.browser-default):focus,
|
3927 |
-
input[type=datetime-local].invalid:not(.browser-default),
|
3928 |
-
input[type=datetime-local].invalid:not(.browser-default):focus,
|
3929 |
-
input[type=tel].invalid:not(.browser-default),
|
3930 |
-
input[type=tel].invalid:not(.browser-default):focus,
|
3931 |
-
input[type=number].invalid:not(.browser-default),
|
3932 |
-
input[type=number].invalid:not(.browser-default):focus,
|
3933 |
-
input[type=search].invalid:not(.browser-default),
|
3934 |
-
input[type=search].invalid:not(.browser-default):focus,
|
3935 |
-
textarea.materialize-textarea.invalid,
|
3936 |
-
textarea.materialize-textarea.invalid:focus, .select-wrapper.invalid > input.select-dropdown {
|
3937 |
-
border-bottom: 1px solid #F44336;
|
3938 |
-
box-shadow: 0 1px 0 0 #F44336; }
|
3939 |
-
|
3940 |
-
input:not([type]).valid + label:after,
|
3941 |
-
input:not([type]):focus.valid + label:after,
|
3942 |
-
input[type=text]:not(.browser-default).valid + label:after,
|
3943 |
-
input[type=text]:not(.browser-default):focus.valid + label:after,
|
3944 |
-
input[type=password]:not(.browser-default).valid + label:after,
|
3945 |
-
input[type=password]:not(.browser-default):focus.valid + label:after,
|
3946 |
-
input[type=email]:not(.browser-default).valid + label:after,
|
3947 |
-
input[type=email]:not(.browser-default):focus.valid + label:after,
|
3948 |
-
input[type=url]:not(.browser-default).valid + label:after,
|
3949 |
-
input[type=url]:not(.browser-default):focus.valid + label:after,
|
3950 |
-
input[type=time]:not(.browser-default).valid + label:after,
|
3951 |
-
input[type=time]:not(.browser-default):focus.valid + label:after,
|
3952 |
-
input[type=date]:not(.browser-default).valid + label:after,
|
3953 |
-
input[type=date]:not(.browser-default):focus.valid + label:after,
|
3954 |
-
input[type=datetime]:not(.browser-default).valid + label:after,
|
3955 |
-
input[type=datetime]:not(.browser-default):focus.valid + label:after,
|
3956 |
-
input[type=datetime-local]:not(.browser-default).valid + label:after,
|
3957 |
-
input[type=datetime-local]:not(.browser-default):focus.valid + label:after,
|
3958 |
-
input[type=tel]:not(.browser-default).valid + label:after,
|
3959 |
-
input[type=tel]:not(.browser-default):focus.valid + label:after,
|
3960 |
-
input[type=number]:not(.browser-default).valid + label:after,
|
3961 |
-
input[type=number]:not(.browser-default):focus.valid + label:after,
|
3962 |
-
input[type=search]:not(.browser-default).valid + label:after,
|
3963 |
-
input[type=search]:not(.browser-default):focus.valid + label:after,
|
3964 |
-
textarea.materialize-textarea.valid + label:after,
|
3965 |
-
textarea.materialize-textarea:focus.valid + label:after, .select-wrapper.valid + label:after {
|
3966 |
-
content: attr(data-success);
|
3967 |
-
color: #4CAF50;
|
3968 |
-
opacity: 1;
|
3969 |
-
transform: translateY(9px); }
|
3970 |
-
|
3971 |
-
input:not([type]).invalid + label:after,
|
3972 |
-
input:not([type]):focus.invalid + label:after,
|
3973 |
-
input[type=text]:not(.browser-default).invalid + label:after,
|
3974 |
-
input[type=text]:not(.browser-default):focus.invalid + label:after,
|
3975 |
-
input[type=password]:not(.browser-default).invalid + label:after,
|
3976 |
-
input[type=password]:not(.browser-default):focus.invalid + label:after,
|
3977 |
-
input[type=email]:not(.browser-default).invalid + label:after,
|
3978 |
-
input[type=email]:not(.browser-default):focus.invalid + label:after,
|
3979 |
-
input[type=url]:not(.browser-default).invalid + label:after,
|
3980 |
-
input[type=url]:not(.browser-default):focus.invalid + label:after,
|
3981 |
-
input[type=time]:not(.browser-default).invalid + label:after,
|
3982 |
-
input[type=time]:not(.browser-default):focus.invalid + label:after,
|
3983 |
-
input[type=date]:not(.browser-default).invalid + label:after,
|
3984 |
-
input[type=date]:not(.browser-default):focus.invalid + label:after,
|
3985 |
-
input[type=datetime]:not(.browser-default).invalid + label:after,
|
3986 |
-
input[type=datetime]:not(.browser-default):focus.invalid + label:after,
|
3987 |
-
input[type=datetime-local]:not(.browser-default).invalid + label:after,
|
3988 |
-
input[type=datetime-local]:not(.browser-default):focus.invalid + label:after,
|
3989 |
-
input[type=tel]:not(.browser-default).invalid + label:after,
|
3990 |
-
input[type=tel]:not(.browser-default):focus.invalid + label:after,
|
3991 |
-
input[type=number]:not(.browser-default).invalid + label:after,
|
3992 |
-
input[type=number]:not(.browser-default):focus.invalid + label:after,
|
3993 |
-
input[type=search]:not(.browser-default).invalid + label:after,
|
3994 |
-
input[type=search]:not(.browser-default):focus.invalid + label:after,
|
3995 |
-
textarea.materialize-textarea.invalid + label:after,
|
3996 |
-
textarea.materialize-textarea:focus.invalid + label:after, .select-wrapper.invalid + label:after {
|
3997 |
-
content: attr(data-error);
|
3998 |
-
color: #F44336;
|
3999 |
-
opacity: 1;
|
4000 |
-
transform: translateY(9px); }
|
4001 |
-
|
4002 |
-
input:not([type]) + label:after,
|
4003 |
-
input[type=text]:not(.browser-default) + label:after,
|
4004 |
-
input[type=password]:not(.browser-default) + label:after,
|
4005 |
-
input[type=email]:not(.browser-default) + label:after,
|
4006 |
-
input[type=url]:not(.browser-default) + label:after,
|
4007 |
-
input[type=time]:not(.browser-default) + label:after,
|
4008 |
-
input[type=date]:not(.browser-default) + label:after,
|
4009 |
-
input[type=datetime]:not(.browser-default) + label:after,
|
4010 |
-
input[type=datetime-local]:not(.browser-default) + label:after,
|
4011 |
-
input[type=tel]:not(.browser-default) + label:after,
|
4012 |
-
input[type=number]:not(.browser-default) + label:after,
|
4013 |
-
input[type=search]:not(.browser-default) + label:after,
|
4014 |
-
textarea.materialize-textarea + label:after, .select-wrapper + label:after {
|
4015 |
-
display: block;
|
4016 |
-
content: "";
|
4017 |
-
position: absolute;
|
4018 |
-
top: 100%;
|
4019 |
-
left: 0;
|
4020 |
-
opacity: 0;
|
4021 |
-
transition: .2s opacity ease-out, .2s color ease-out; }
|
4022 |
-
|
4023 |
-
.input-field {
|
4024 |
-
position: relative;
|
4025 |
-
margin-top: 1rem; }
|
4026 |
-
.input-field.inline {
|
4027 |
-
display: inline-block;
|
4028 |
-
vertical-align: middle;
|
4029 |
-
margin-left: 5px; }
|
4030 |
-
.input-field.inline input,
|
4031 |
-
.input-field.inline .select-dropdown {
|
4032 |
-
margin-bottom: 1rem; }
|
4033 |
-
.input-field.col label {
|
4034 |
-
left: 0.75rem; }
|
4035 |
-
.input-field.col .prefix ~ label,
|
4036 |
-
.input-field.col .prefix ~ .validate ~ label {
|
4037 |
-
width: calc(100% - 3rem - 1.5rem); }
|
4038 |
-
.input-field label {
|
4039 |
-
color: #9e9e9e;
|
4040 |
-
position: absolute;
|
4041 |
-
top: 0;
|
4042 |
-
left: 0;
|
4043 |
-
height: 100%;
|
4044 |
-
font-size: 1rem;
|
4045 |
-
cursor: text;
|
4046 |
-
transition: transform .2s ease-out;
|
4047 |
-
transform-origin: 0% 100%;
|
4048 |
-
text-align: initial;
|
4049 |
-
transform: translateY(12px);
|
4050 |
-
pointer-events: none; }
|
4051 |
-
.input-field label:not(.label-icon).active {
|
4052 |
-
transform: translateY(-14px) scale(0.8);
|
4053 |
-
transform-origin: 0 0; }
|
4054 |
-
.input-field .prefix {
|
4055 |
-
position: absolute;
|
4056 |
-
width: 3rem;
|
4057 |
-
font-size: 2rem;
|
4058 |
-
transition: color .2s; }
|
4059 |
-
.input-field .prefix.active {
|
4060 |
-
color: #26a69a; }
|
4061 |
-
.input-field .prefix ~ input,
|
4062 |
-
.input-field .prefix ~ textarea,
|
4063 |
-
.input-field .prefix ~ label,
|
4064 |
-
.input-field .prefix ~ .validate ~ label,
|
4065 |
-
.input-field .prefix ~ .autocomplete-content {
|
4066 |
-
margin-left: 3rem;
|
4067 |
-
width: 92%;
|
4068 |
-
width: calc(100% - 3rem); }
|
4069 |
-
.input-field .prefix ~ label {
|
4070 |
-
margin-left: 3rem; }
|
4071 |
-
@media only screen and (max-width: 992px) {
|
4072 |
-
.input-field .prefix ~ input {
|
4073 |
-
width: 86%;
|
4074 |
-
width: calc(100% - 3rem); } }
|
4075 |
-
@media only screen and (max-width: 600px) {
|
4076 |
-
.input-field .prefix ~ input {
|
4077 |
-
width: 80%;
|
4078 |
-
width: calc(100% - 3rem); } }
|
4079 |
-
|
4080 |
-
/* Search Field */
|
4081 |
-
.input-field input[type=search] {
|
4082 |
-
display: block;
|
4083 |
-
line-height: inherit; }
|
4084 |
-
.nav-wrapper .input-field input[type=search] {
|
4085 |
-
height: inherit;
|
4086 |
-
padding-left: 4rem;
|
4087 |
-
width: calc(100% - 4rem);
|
4088 |
-
border: 0;
|
4089 |
-
box-shadow: none; }
|
4090 |
-
.input-field input[type=search]:focus {
|
4091 |
-
background-color: #fff;
|
4092 |
-
border: 0;
|
4093 |
-
box-shadow: none;
|
4094 |
-
color: #444; }
|
4095 |
-
.input-field input[type=search]:focus + label i,
|
4096 |
-
.input-field input[type=search]:focus ~ .mdi-navigation-close,
|
4097 |
-
.input-field input[type=search]:focus ~ .material-icons {
|
4098 |
-
color: #444; }
|
4099 |
-
.input-field input[type=search] + label {
|
4100 |
-
left: 1rem; }
|
4101 |
-
.input-field input[type=search] ~ .mdi-navigation-close,
|
4102 |
-
.input-field input[type=search] ~ .material-icons {
|
4103 |
-
position: absolute;
|
4104 |
-
top: 0;
|
4105 |
-
right: 1rem;
|
4106 |
-
color: transparent;
|
4107 |
-
cursor: pointer;
|
4108 |
-
font-size: 2rem;
|
4109 |
-
transition: .3s color; }
|
4110 |
-
|
4111 |
-
/* Textarea */
|
4112 |
-
textarea {
|
4113 |
-
width: 100%;
|
4114 |
-
height: 3rem;
|
4115 |
-
background-color: transparent; }
|
4116 |
-
textarea.materialize-textarea {
|
4117 |
-
overflow-y: hidden;
|
4118 |
-
/* prevents scroll bar flash */
|
4119 |
-
padding: .8rem 0 1.6rem 0;
|
4120 |
-
/* prevents text jump on Enter keypress */
|
4121 |
-
resize: none;
|
4122 |
-
min-height: 3rem; }
|
4123 |
-
textarea.materialize-textarea.validate + label {
|
4124 |
-
height: 100%; }
|
4125 |
-
textarea.materialize-textarea.validate + label::after {
|
4126 |
-
top: calc(100% - 12px); }
|
4127 |
-
textarea.materialize-textarea.validate + label:not(.label-icon).active {
|
4128 |
-
transform: translateY(-25px); }
|
4129 |
-
|
4130 |
-
.hiddendiv {
|
4131 |
-
display: none;
|
4132 |
-
white-space: pre-wrap;
|
4133 |
-
word-wrap: break-word;
|
4134 |
-
overflow-wrap: break-word;
|
4135 |
-
/* future version of deprecated 'word-wrap' */
|
4136 |
-
padding-top: 1.2rem;
|
4137 |
-
/* prevents text jump on Enter keypress */
|
4138 |
-
position: absolute;
|
4139 |
-
top: 0; }
|
4140 |
-
|
4141 |
-
/* Autocomplete */
|
4142 |
-
.autocomplete-content {
|
4143 |
-
margin-top: -20px;
|
4144 |
-
margin-bottom: 20px;
|
4145 |
-
display: block;
|
4146 |
-
opacity: 1;
|
4147 |
-
position: static; }
|
4148 |
-
.autocomplete-content li .highlight {
|
4149 |
-
color: #444; }
|
4150 |
-
.autocomplete-content li img {
|
4151 |
-
height: 40px;
|
4152 |
-
width: 40px;
|
4153 |
-
margin: 5px 15px; }
|
4154 |
-
|
4155 |
-
/* Checkboxes
|
4156 |
-
========================================================================== */
|
4157 |
-
/* CUSTOM CSS CHECKBOXES */
|
4158 |
-
form p {
|
4159 |
-
margin-bottom: 10px;
|
4160 |
-
text-align: left; }
|
4161 |
-
|
4162 |
-
form p:last-child {
|
4163 |
-
margin-bottom: 0; }
|
4164 |
-
|
4165 |
-
/* Remove default checkbox */
|
4166 |
-
[type="checkbox"]:not(:checked),
|
4167 |
-
[type="checkbox"]:checked {
|
4168 |
-
position: absolute;
|
4169 |
-
opacity: 0;
|
4170 |
-
pointer-events: none; }
|
4171 |
-
|
4172 |
-
[type="checkbox"] {
|
4173 |
-
/* checkbox aspect */ }
|
4174 |
-
[type="checkbox"] + label {
|
4175 |
-
position: relative;
|
4176 |
-
padding-left: 35px;
|
4177 |
-
cursor: pointer;
|
4178 |
-
display: inline-block;
|
4179 |
-
height: 25px;
|
4180 |
-
line-height: 25px;
|
4181 |
-
font-size: 1rem;
|
4182 |
-
user-select: none; }
|
4183 |
-
[type="checkbox"] + label:before,
|
4184 |
-
[type="checkbox"]:not(.filled-in) + label:after {
|
4185 |
-
content: '';
|
4186 |
-
position: absolute;
|
4187 |
-
top: 0;
|
4188 |
-
left: 0;
|
4189 |
-
width: 18px;
|
4190 |
-
height: 18px;
|
4191 |
-
z-index: 0;
|
4192 |
-
border: 2px solid #5a5a5a;
|
4193 |
-
border-radius: 1px;
|
4194 |
-
margin-top: 2px;
|
4195 |
-
transition: .2s; }
|
4196 |
-
[type="checkbox"]:not(.filled-in) + label:after {
|
4197 |
-
border: 0;
|
4198 |
-
transform: scale(0); }
|
4199 |
-
[type="checkbox"]:not(:checked):disabled + label:before {
|
4200 |
-
border: none;
|
4201 |
-
background-color: rgba(0, 0, 0, 0.42); }
|
4202 |
-
[type="checkbox"].tabbed:focus + label:after {
|
4203 |
-
transform: scale(1);
|
4204 |
-
border: 0;
|
4205 |
-
border-radius: 50%;
|
4206 |
-
box-shadow: 0 0 0 10px rgba(0, 0, 0, 0.1);
|
4207 |
-
background-color: rgba(0, 0, 0, 0.1); }
|
4208 |
-
|
4209 |
-
[type="checkbox"]:checked + label:before {
|
4210 |
-
top: -4px;
|
4211 |
-
left: -5px;
|
4212 |
-
width: 12px;
|
4213 |
-
height: 22px;
|
4214 |
-
border-top: 2px solid transparent;
|
4215 |
-
border-left: 2px solid transparent;
|
4216 |
-
border-right: 2px solid #26a69a;
|
4217 |
-
border-bottom: 2px solid #26a69a;
|
4218 |
-
transform: rotate(40deg);
|
4219 |
-
backface-visibility: hidden;
|
4220 |
-
transform-origin: 100% 100%; }
|
4221 |
-
|
4222 |
-
[type="checkbox"]:checked:disabled + label:before {
|
4223 |
-
border-right: 2px solid rgba(0, 0, 0, 0.42);
|
4224 |
-
border-bottom: 2px solid rgba(0, 0, 0, 0.42); }
|
4225 |
-
|
4226 |
-
/* Indeterminate checkbox */
|
4227 |
-
[type="checkbox"]:indeterminate + label:before {
|
4228 |
-
top: -11px;
|
4229 |
-
left: -12px;
|
4230 |
-
width: 10px;
|
4231 |
-
height: 22px;
|
4232 |
-
border-top: none;
|
4233 |
-
border-left: none;
|
4234 |
-
border-right: 2px solid #26a69a;
|
4235 |
-
border-bottom: none;
|
4236 |
-
transform: rotate(90deg);
|
4237 |
-
backface-visibility: hidden;
|
4238 |
-
transform-origin: 100% 100%; }
|
4239 |
-
|
4240 |
-
[type="checkbox"]:indeterminate:disabled + label:before {
|
4241 |
-
border-right: 2px solid rgba(0, 0, 0, 0.42);
|
4242 |
-
background-color: transparent; }
|
4243 |
-
|
4244 |
-
[type="checkbox"].filled-in + label:after {
|
4245 |
-
border-radius: 2px; }
|
4246 |
-
|
4247 |
-
[type="checkbox"].filled-in + label:before,
|
4248 |
-
[type="checkbox"].filled-in + label:after {
|
4249 |
-
content: '';
|
4250 |
-
left: 0;
|
4251 |
-
position: absolute;
|
4252 |
-
/* .1s delay is for check animation */
|
4253 |
-
transition: border .25s, background-color .25s, width .20s .1s, height .20s .1s, top .20s .1s, left .20s .1s;
|
4254 |
-
z-index: 1; }
|
4255 |
-
|
4256 |
-
[type="checkbox"].filled-in:not(:checked) + label:before {
|
4257 |
-
width: 0;
|
4258 |
-
height: 0;
|
4259 |
-
border: 3px solid transparent;
|
4260 |
-
left: 6px;
|
4261 |
-
top: 10px;
|
4262 |
-
transform: rotateZ(37deg);
|
4263 |
-
transform-origin: 100% 100%; }
|
4264 |
-
|
4265 |
-
[type="checkbox"].filled-in:not(:checked) + label:after {
|
4266 |
-
height: 20px;
|
4267 |
-
width: 20px;
|
4268 |
-
background-color: transparent;
|
4269 |
-
border: 2px solid #5a5a5a;
|
4270 |
-
top: 0px;
|
4271 |
-
z-index: 0; }
|
4272 |
-
|
4273 |
-
[type="checkbox"].filled-in:checked + label:before {
|
4274 |
-
top: 0;
|
4275 |
-
left: 1px;
|
4276 |
-
width: 8px;
|
4277 |
-
height: 13px;
|
4278 |
-
border-top: 2px solid transparent;
|
4279 |
-
border-left: 2px solid transparent;
|
4280 |
-
border-right: 2px solid #fff;
|
4281 |
-
border-bottom: 2px solid #fff;
|
4282 |
-
transform: rotateZ(37deg);
|
4283 |
-
transform-origin: 100% 100%; }
|
4284 |
-
|
4285 |
-
[type="checkbox"].filled-in:checked + label:after {
|
4286 |
-
top: 0;
|
4287 |
-
width: 20px;
|
4288 |
-
height: 20px;
|
4289 |
-
border: 2px solid #26a69a;
|
4290 |
-
background-color: #26a69a;
|
4291 |
-
z-index: 0; }
|
4292 |
-
|
4293 |
-
[type="checkbox"].filled-in.tabbed:focus + label:after {
|
4294 |
-
border-radius: 2px;
|
4295 |
-
border-color: #5a5a5a;
|
4296 |
-
background-color: rgba(0, 0, 0, 0.1); }
|
4297 |
-
|
4298 |
-
[type="checkbox"].filled-in.tabbed:checked:focus + label:after {
|
4299 |
-
border-radius: 2px;
|
4300 |
-
background-color: #26a69a;
|
4301 |
-
border-color: #26a69a; }
|
4302 |
-
|
4303 |
-
[type="checkbox"].filled-in:disabled:not(:checked) + label:before {
|
4304 |
-
background-color: transparent;
|
4305 |
-
border: 2px solid transparent; }
|
4306 |
-
|
4307 |
-
[type="checkbox"].filled-in:disabled:not(:checked) + label:after {
|
4308 |
-
border-color: transparent;
|
4309 |
-
background-color: #949494; }
|
4310 |
-
|
4311 |
-
[type="checkbox"].filled-in:disabled:checked + label:before {
|
4312 |
-
background-color: transparent; }
|
4313 |
-
|
4314 |
-
[type="checkbox"].filled-in:disabled:checked + label:after {
|
4315 |
-
background-color: #949494;
|
4316 |
-
border-color: #949494; }
|
4317 |
-
|
4318 |
-
/* Select Field
|
4319 |
-
========================================================================== */
|
4320 |
-
select {
|
4321 |
-
display: none; }
|
4322 |
-
|
4323 |
-
select.browser-default {
|
4324 |
-
display: block; }
|
4325 |
-
|
4326 |
-
select {
|
4327 |
-
background-color: rgba(255, 255, 255, 0.9);
|
4328 |
-
width: 100%;
|
4329 |
-
padding: 5px;
|
4330 |
-
border: 1px solid #f2f2f2;
|
4331 |
-
border-radius: 2px;
|
4332 |
-
height: 3rem; }
|
4333 |
-
|
4334 |
-
.input-field > select {
|
4335 |
-
display: block;
|
4336 |
-
position: absolute;
|
4337 |
-
width: 0;
|
4338 |
-
pointer-events: none;
|
4339 |
-
height: 0;
|
4340 |
-
top: 0;
|
4341 |
-
left: 0;
|
4342 |
-
opacity: 0; }
|
4343 |
-
|
4344 |
-
.select-label {
|
4345 |
-
position: absolute; }
|
4346 |
-
|
4347 |
-
.select-wrapper {
|
4348 |
-
position: relative; }
|
4349 |
-
.select-wrapper.valid + label,
|
4350 |
-
.select-wrapper.invalid + label {
|
4351 |
-
width: 100%;
|
4352 |
-
pointer-events: none; }
|
4353 |
-
.select-wrapper input.select-dropdown {
|
4354 |
-
position: relative;
|
4355 |
-
cursor: pointer;
|
4356 |
-
background-color: transparent;
|
4357 |
-
border: none;
|
4358 |
-
border-bottom: 1px solid #9e9e9e;
|
4359 |
-
outline: none;
|
4360 |
-
height: 3rem;
|
4361 |
-
line-height: 3rem;
|
4362 |
-
width: 100%;
|
4363 |
-
font-size: 1rem;
|
4364 |
-
margin: 0 0 20px 0;
|
4365 |
-
padding: 0;
|
4366 |
-
display: block;
|
4367 |
-
user-select: none; }
|
4368 |
-
.select-wrapper span.caret {
|
4369 |
-
color: initial;
|
4370 |
-
position: absolute;
|
4371 |
-
right: 0;
|
4372 |
-
top: 0;
|
4373 |
-
bottom: 0;
|
4374 |
-
height: 10px;
|
4375 |
-
margin: auto 0;
|
4376 |
-
font-size: 10px;
|
4377 |
-
line-height: 10px; }
|
4378 |
-
.select-wrapper + label {
|
4379 |
-
position: absolute;
|
4380 |
-
top: -26px;
|
4381 |
-
font-size: 0.8rem; }
|
4382 |
-
|
4383 |
-
select:disabled {
|
4384 |
-
color: rgba(0, 0, 0, 0.42); }
|
4385 |
-
|
4386 |
-
.select-wrapper.disabled span.caret,
|
4387 |
-
.select-wrapper.disabled + label {
|
4388 |
-
color: rgba(0, 0, 0, 0.42); }
|
4389 |
-
|
4390 |
-
.select-wrapper input.select-dropdown:disabled {
|
4391 |
-
color: rgba(0, 0, 0, 0.42);
|
4392 |
-
cursor: default;
|
4393 |
-
user-select: none; }
|
4394 |
-
|
4395 |
-
.select-wrapper i {
|
4396 |
-
color: rgba(0, 0, 0, 0.3); }
|
4397 |
-
|
4398 |
-
.select-dropdown li.disabled,
|
4399 |
-
.select-dropdown li.disabled > span,
|
4400 |
-
.select-dropdown li.optgroup {
|
4401 |
-
color: rgba(0, 0, 0, 0.3);
|
4402 |
-
background-color: transparent; }
|
4403 |
-
|
4404 |
-
.select-dropdown.dropdown-content li.active {
|
4405 |
-
background-color: transparent; }
|
4406 |
-
|
4407 |
-
.select-dropdown.dropdown-content li:hover {
|
4408 |
-
background-color: rgba(0, 0, 0, 0.06); }
|
4409 |
-
|
4410 |
-
.select-dropdown.dropdown-content li.selected {
|
4411 |
-
background-color: rgba(0, 0, 0, 0.03); }
|
4412 |
-
|
4413 |
-
.prefix ~ .select-wrapper {
|
4414 |
-
margin-left: 3rem;
|
4415 |
-
width: 92%;
|
4416 |
-
width: calc(100% - 3rem); }
|
4417 |
-
|
4418 |
-
.prefix ~ label {
|
4419 |
-
margin-left: 3rem; }
|
4420 |
-
|
4421 |
-
.select-dropdown li img {
|
4422 |
-
height: 40px;
|
4423 |
-
width: 40px;
|
4424 |
-
margin: 5px 15px;
|
4425 |
-
float: right; }
|
4426 |
-
|
4427 |
-
.select-dropdown li.optgroup {
|
4428 |
-
border-top: 1px solid #eee; }
|
4429 |
-
.select-dropdown li.optgroup.selected > span {
|
4430 |
-
color: rgba(0, 0, 0, 0.7); }
|
4431 |
-
.select-dropdown li.optgroup > span {
|
4432 |
-
color: rgba(0, 0, 0, 0.4); }
|
4433 |
-
.select-dropdown li.optgroup ~ li.optgroup-option {
|
4434 |
-
padding-left: 1rem; }
|
4435 |
-
|
4436 |
-
/* material icons font */
|
4437 |
-
/* custom styles */
|
4438 |
-
.display-none {
|
4439 |
-
display: none; }
|
4440 |
-
|
4441 |
-
.display-block {
|
4442 |
-
display: block; }
|
4443 |
-
|
4444 |
-
input.input-margin {
|
4445 |
-
margin: 0 0 3px 0 !important; }
|
4446 |
-
|
4447 |
-
.select-margin .select-1 input {
|
4448 |
-
margin: 0 0 3px 0 !important; }
|
4449 |
-
|
4450 |
-
.options .submit {
|
4451 |
-
position: sticky !important;
|
4452 |
-
bottom: 1px;
|
4453 |
-
float: right; }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
assets/css/mainstyles.css
CHANGED
@@ -169,3 +169,27 @@ div.ccw_plugin,
|
|
169 |
|
170 |
.ccw_plugin .tada {
|
171 |
animation-name: tada; }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
169 |
|
170 |
.ccw_plugin .tada {
|
171 |
animation-name: tada; }
|
172 |
+
|
173 |
+
|
174 |
+
|
175 |
+
|
176 |
+
/* style-4 - chip style - added modified .. since v1.6+ silent release */
|
177 |
+
.ccw_plugin .style-4.chip {
|
178 |
+
display: inline-block;
|
179 |
+
padding-left: 12px;
|
180 |
+
padding-right: 12px;
|
181 |
+
padding-top: 0px;
|
182 |
+
padding-bottom: 0px;
|
183 |
+
border-radius: 25px;
|
184 |
+
font-size: 13px;
|
185 |
+
line-height: 32px;
|
186 |
+
}
|
187 |
+
|
188 |
+
/* Image */
|
189 |
+
.ccw_plugin .style-4.chip img {
|
190 |
+
float: left;
|
191 |
+
margin: 0 8px 0 -12px;
|
192 |
+
height: 32px;
|
193 |
+
width: 32px;
|
194 |
+
border-radius: 50%;
|
195 |
+
}
|
assets/css/materialize.min.css
ADDED
@@ -0,0 +1,33 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/*!
|
2 |
+
* Materialize v1.0.0 (http://materializecss.com)
|
3 |
+
* Copyright 2014-2017 Materialize
|
4 |
+
* MIT License (https://raw.githubusercontent.com/Dogfalo/materialize/master/LICENSE)
|
5 |
+
*/
|
6 |
+
.materialize-red{background-color:#e51c23 !important}.materialize-red-text{color:#e51c23 !important}.materialize-red.lighten-5{background-color:#fdeaeb !important}.materialize-red-text.text-lighten-5{color:#fdeaeb !important}.materialize-red.lighten-4{background-color:#f8c1c3 !important}.materialize-red-text.text-lighten-4{color:#f8c1c3 !important}.materialize-red.lighten-3{background-color:#f3989b !important}.materialize-red-text.text-lighten-3{color:#f3989b !important}.materialize-red.lighten-2{background-color:#ee6e73 !important}.materialize-red-text.text-lighten-2{color:#ee6e73 !important}.materialize-red.lighten-1{background-color:#ea454b !important}.materialize-red-text.text-lighten-1{color:#ea454b !important}.materialize-red.darken-1{background-color:#d0181e !important}.materialize-red-text.text-darken-1{color:#d0181e !important}.materialize-red.darken-2{background-color:#b9151b !important}.materialize-red-text.text-darken-2{color:#b9151b !important}.materialize-red.darken-3{background-color:#a21318 !important}.materialize-red-text.text-darken-3{color:#a21318 !important}.materialize-red.darken-4{background-color:#8b1014 !important}.materialize-red-text.text-darken-4{color:#8b1014 !important}.red{background-color:#F44336 !important}.red-text{color:#F44336 !important}.red.lighten-5{background-color:#FFEBEE !important}.red-text.text-lighten-5{color:#FFEBEE !important}.red.lighten-4{background-color:#FFCDD2 !important}.red-text.text-lighten-4{color:#FFCDD2 !important}.red.lighten-3{background-color:#EF9A9A !important}.red-text.text-lighten-3{color:#EF9A9A !important}.red.lighten-2{background-color:#E57373 !important}.red-text.text-lighten-2{color:#E57373 !important}.red.lighten-1{background-color:#EF5350 !important}.red-text.text-lighten-1{color:#EF5350 !important}.red.darken-1{background-color:#E53935 !important}.red-text.text-darken-1{color:#E53935 !important}.red.darken-2{background-color:#D32F2F !important}.red-text.text-darken-2{color:#D32F2F !important}.red.darken-3{background-color:#C62828 !important}.red-text.text-darken-3{color:#C62828 !important}.red.darken-4{background-color:#B71C1C !important}.red-text.text-darken-4{color:#B71C1C !important}.red.accent-1{background-color:#FF8A80 !important}.red-text.text-accent-1{color:#FF8A80 !important}.red.accent-2{background-color:#FF5252 !important}.red-text.text-accent-2{color:#FF5252 !important}.red.accent-3{background-color:#FF1744 !important}.red-text.text-accent-3{color:#FF1744 !important}.red.accent-4{background-color:#D50000 !important}.red-text.text-accent-4{color:#D50000 !important}.pink{background-color:#e91e63 !important}.pink-text{color:#e91e63 !important}.pink.lighten-5{background-color:#fce4ec !important}.pink-text.text-lighten-5{color:#fce4ec !important}.pink.lighten-4{background-color:#f8bbd0 !important}.pink-text.text-lighten-4{color:#f8bbd0 !important}.pink.lighten-3{background-color:#f48fb1 !important}.pink-text.text-lighten-3{color:#f48fb1 !important}.pink.lighten-2{background-color:#f06292 !important}.pink-text.text-lighten-2{color:#f06292 !important}.pink.lighten-1{background-color:#ec407a !important}.pink-text.text-lighten-1{color:#ec407a !important}.pink.darken-1{background-color:#d81b60 !important}.pink-text.text-darken-1{color:#d81b60 !important}.pink.darken-2{background-color:#c2185b !important}.pink-text.text-darken-2{color:#c2185b !important}.pink.darken-3{background-color:#ad1457 !important}.pink-text.text-darken-3{color:#ad1457 !important}.pink.darken-4{background-color:#880e4f !important}.pink-text.text-darken-4{color:#880e4f !important}.pink.accent-1{background-color:#ff80ab !important}.pink-text.text-accent-1{color:#ff80ab !important}.pink.accent-2{background-color:#ff4081 !important}.pink-text.text-accent-2{color:#ff4081 !important}.pink.accent-3{background-color:#f50057 !important}.pink-text.text-accent-3{color:#f50057 !important}.pink.accent-4{background-color:#c51162 !important}.pink-text.text-accent-4{color:#c51162 !important}.purple{background-color:#9c27b0 !important}.purple-text{color:#9c27b0 !important}.purple.lighten-5{background-color:#f3e5f5 !important}.purple-text.text-lighten-5{color:#f3e5f5 !important}.purple.lighten-4{background-color:#e1bee7 !important}.purple-text.text-lighten-4{color:#e1bee7 !important}.purple.lighten-3{background-color:#ce93d8 !important}.purple-text.text-lighten-3{color:#ce93d8 !important}.purple.lighten-2{background-color:#ba68c8 !important}.purple-text.text-lighten-2{color:#ba68c8 !important}.purple.lighten-1{background-color:#ab47bc !important}.purple-text.text-lighten-1{color:#ab47bc !important}.purple.darken-1{background-color:#8e24aa !important}.purple-text.text-darken-1{color:#8e24aa !important}.purple.darken-2{background-color:#7b1fa2 !important}.purple-text.text-darken-2{color:#7b1fa2 !important}.purple.darken-3{background-color:#6a1b9a !important}.purple-text.text-darken-3{color:#6a1b9a !important}.purple.darken-4{background-color:#4a148c !important}.purple-text.text-darken-4{color:#4a148c !important}.purple.accent-1{background-color:#ea80fc !important}.purple-text.text-accent-1{color:#ea80fc !important}.purple.accent-2{background-color:#e040fb !important}.purple-text.text-accent-2{color:#e040fb !important}.purple.accent-3{background-color:#d500f9 !important}.purple-text.text-accent-3{color:#d500f9 !important}.purple.accent-4{background-color:#a0f !important}.purple-text.text-accent-4{color:#a0f !important}.deep-purple{background-color:#673ab7 !important}.deep-purple-text{color:#673ab7 !important}.deep-purple.lighten-5{background-color:#ede7f6 !important}.deep-purple-text.text-lighten-5{color:#ede7f6 !important}.deep-purple.lighten-4{background-color:#d1c4e9 !important}.deep-purple-text.text-lighten-4{color:#d1c4e9 !important}.deep-purple.lighten-3{background-color:#b39ddb !important}.deep-purple-text.text-lighten-3{color:#b39ddb !important}.deep-purple.lighten-2{background-color:#9575cd !important}.deep-purple-text.text-lighten-2{color:#9575cd !important}.deep-purple.lighten-1{background-color:#7e57c2 !important}.deep-purple-text.text-lighten-1{color:#7e57c2 !important}.deep-purple.darken-1{background-color:#5e35b1 !important}.deep-purple-text.text-darken-1{color:#5e35b1 !important}.deep-purple.darken-2{background-color:#512da8 !important}.deep-purple-text.text-darken-2{color:#512da8 !important}.deep-purple.darken-3{background-color:#4527a0 !important}.deep-purple-text.text-darken-3{color:#4527a0 !important}.deep-purple.darken-4{background-color:#311b92 !important}.deep-purple-text.text-darken-4{color:#311b92 !important}.deep-purple.accent-1{background-color:#b388ff !important}.deep-purple-text.text-accent-1{color:#b388ff !important}.deep-purple.accent-2{background-color:#7c4dff !important}.deep-purple-text.text-accent-2{color:#7c4dff !important}.deep-purple.accent-3{background-color:#651fff !important}.deep-purple-text.text-accent-3{color:#651fff !important}.deep-purple.accent-4{background-color:#6200ea !important}.deep-purple-text.text-accent-4{color:#6200ea !important}.indigo{background-color:#3f51b5 !important}.indigo-text{color:#3f51b5 !important}.indigo.lighten-5{background-color:#e8eaf6 !important}.indigo-text.text-lighten-5{color:#e8eaf6 !important}.indigo.lighten-4{background-color:#c5cae9 !important}.indigo-text.text-lighten-4{color:#c5cae9 !important}.indigo.lighten-3{background-color:#9fa8da !important}.indigo-text.text-lighten-3{color:#9fa8da !important}.indigo.lighten-2{background-color:#7986cb !important}.indigo-text.text-lighten-2{color:#7986cb !important}.indigo.lighten-1{background-color:#5c6bc0 !important}.indigo-text.text-lighten-1{color:#5c6bc0 !important}.indigo.darken-1{background-color:#3949ab !important}.indigo-text.text-darken-1{color:#3949ab !important}.indigo.darken-2{background-color:#303f9f !important}.indigo-text.text-darken-2{color:#303f9f !important}.indigo.darken-3{background-color:#283593 !important}.indigo-text.text-darken-3{color:#283593 !important}.indigo.darken-4{background-color:#1a237e !important}.indigo-text.text-darken-4{color:#1a237e !important}.indigo.accent-1{background-color:#8c9eff !important}.indigo-text.text-accent-1{color:#8c9eff !important}.indigo.accent-2{background-color:#536dfe !important}.indigo-text.text-accent-2{color:#536dfe !important}.indigo.accent-3{background-color:#3d5afe !important}.indigo-text.text-accent-3{color:#3d5afe !important}.indigo.accent-4{background-color:#304ffe !important}.indigo-text.text-accent-4{color:#304ffe !important}.blue{background-color:#2196F3 !important}.blue-text{color:#2196F3 !important}.blue.lighten-5{background-color:#E3F2FD !important}.blue-text.text-lighten-5{color:#E3F2FD !important}.blue.lighten-4{background-color:#BBDEFB !important}.blue-text.text-lighten-4{color:#BBDEFB !important}.blue.lighten-3{background-color:#90CAF9 !important}.blue-text.text-lighten-3{color:#90CAF9 !important}.blue.lighten-2{background-color:#64B5F6 !important}.blue-text.text-lighten-2{color:#64B5F6 !important}.blue.lighten-1{background-color:#42A5F5 !important}.blue-text.text-lighten-1{color:#42A5F5 !important}.blue.darken-1{background-color:#1E88E5 !important}.blue-text.text-darken-1{color:#1E88E5 !important}.blue.darken-2{background-color:#1976D2 !important}.blue-text.text-darken-2{color:#1976D2 !important}.blue.darken-3{background-color:#1565C0 !important}.blue-text.text-darken-3{color:#1565C0 !important}.blue.darken-4{background-color:#0D47A1 !important}.blue-text.text-darken-4{color:#0D47A1 !important}.blue.accent-1{background-color:#82B1FF !important}.blue-text.text-accent-1{color:#82B1FF !important}.blue.accent-2{background-color:#448AFF !important}.blue-text.text-accent-2{color:#448AFF !important}.blue.accent-3{background-color:#2979FF !important}.blue-text.text-accent-3{color:#2979FF !important}.blue.accent-4{background-color:#2962FF !important}.blue-text.text-accent-4{color:#2962FF !important}.light-blue{background-color:#03a9f4 !important}.light-blue-text{color:#03a9f4 !important}.light-blue.lighten-5{background-color:#e1f5fe !important}.light-blue-text.text-lighten-5{color:#e1f5fe !important}.light-blue.lighten-4{background-color:#b3e5fc !important}.light-blue-text.text-lighten-4{color:#b3e5fc !important}.light-blue.lighten-3{background-color:#81d4fa !important}.light-blue-text.text-lighten-3{color:#81d4fa !important}.light-blue.lighten-2{background-color:#4fc3f7 !important}.light-blue-text.text-lighten-2{color:#4fc3f7 !important}.light-blue.lighten-1{background-color:#29b6f6 !important}.light-blue-text.text-lighten-1{color:#29b6f6 !important}.light-blue.darken-1{background-color:#039be5 !important}.light-blue-text.text-darken-1{color:#039be5 !important}.light-blue.darken-2{background-color:#0288d1 !important}.light-blue-text.text-darken-2{color:#0288d1 !important}.light-blue.darken-3{background-color:#0277bd !important}.light-blue-text.text-darken-3{color:#0277bd !important}.light-blue.darken-4{background-color:#01579b !important}.light-blue-text.text-darken-4{color:#01579b !important}.light-blue.accent-1{background-color:#80d8ff !important}.light-blue-text.text-accent-1{color:#80d8ff !important}.light-blue.accent-2{background-color:#40c4ff !important}.light-blue-text.text-accent-2{color:#40c4ff !important}.light-blue.accent-3{background-color:#00b0ff !important}.light-blue-text.text-accent-3{color:#00b0ff !important}.light-blue.accent-4{background-color:#0091ea !important}.light-blue-text.text-accent-4{color:#0091ea !important}.cyan{background-color:#00bcd4 !important}.cyan-text{color:#00bcd4 !important}.cyan.lighten-5{background-color:#e0f7fa !important}.cyan-text.text-lighten-5{color:#e0f7fa !important}.cyan.lighten-4{background-color:#b2ebf2 !important}.cyan-text.text-lighten-4{color:#b2ebf2 !important}.cyan.lighten-3{background-color:#80deea !important}.cyan-text.text-lighten-3{color:#80deea !important}.cyan.lighten-2{background-color:#4dd0e1 !important}.cyan-text.text-lighten-2{color:#4dd0e1 !important}.cyan.lighten-1{background-color:#26c6da !important}.cyan-text.text-lighten-1{color:#26c6da !important}.cyan.darken-1{background-color:#00acc1 !important}.cyan-text.text-darken-1{color:#00acc1 !important}.cyan.darken-2{background-color:#0097a7 !important}.cyan-text.text-darken-2{color:#0097a7 !important}.cyan.darken-3{background-color:#00838f !important}.cyan-text.text-darken-3{color:#00838f !important}.cyan.darken-4{background-color:#006064 !important}.cyan-text.text-darken-4{color:#006064 !important}.cyan.accent-1{background-color:#84ffff !important}.cyan-text.text-accent-1{color:#84ffff !important}.cyan.accent-2{background-color:#18ffff !important}.cyan-text.text-accent-2{color:#18ffff !important}.cyan.accent-3{background-color:#00e5ff !important}.cyan-text.text-accent-3{color:#00e5ff !important}.cyan.accent-4{background-color:#00b8d4 !important}.cyan-text.text-accent-4{color:#00b8d4 !important}.teal{background-color:#009688 !important}.teal-text{color:#009688 !important}.teal.lighten-5{background-color:#e0f2f1 !important}.teal-text.text-lighten-5{color:#e0f2f1 !important}.teal.lighten-4{background-color:#b2dfdb !important}.teal-text.text-lighten-4{color:#b2dfdb !important}.teal.lighten-3{background-color:#80cbc4 !important}.teal-text.text-lighten-3{color:#80cbc4 !important}.teal.lighten-2{background-color:#4db6ac !important}.teal-text.text-lighten-2{color:#4db6ac !important}.teal.lighten-1{background-color:#26a69a !important}.teal-text.text-lighten-1{color:#26a69a !important}.teal.darken-1{background-color:#00897b !important}.teal-text.text-darken-1{color:#00897b !important}.teal.darken-2{background-color:#00796b !important}.teal-text.text-darken-2{color:#00796b !important}.teal.darken-3{background-color:#00695c !important}.teal-text.text-darken-3{color:#00695c !important}.teal.darken-4{background-color:#004d40 !important}.teal-text.text-darken-4{color:#004d40 !important}.teal.accent-1{background-color:#a7ffeb !important}.teal-text.text-accent-1{color:#a7ffeb !important}.teal.accent-2{background-color:#64ffda !important}.teal-text.text-accent-2{color:#64ffda !important}.teal.accent-3{background-color:#1de9b6 !important}.teal-text.text-accent-3{color:#1de9b6 !important}.teal.accent-4{background-color:#00bfa5 !important}.teal-text.text-accent-4{color:#00bfa5 !important}.green{background-color:#4CAF50 !important}.green-text{color:#4CAF50 !important}.green.lighten-5{background-color:#E8F5E9 !important}.green-text.text-lighten-5{color:#E8F5E9 !important}.green.lighten-4{background-color:#C8E6C9 !important}.green-text.text-lighten-4{color:#C8E6C9 !important}.green.lighten-3{background-color:#A5D6A7 !important}.green-text.text-lighten-3{color:#A5D6A7 !important}.green.lighten-2{background-color:#81C784 !important}.green-text.text-lighten-2{color:#81C784 !important}.green.lighten-1{background-color:#66BB6A !important}.green-text.text-lighten-1{color:#66BB6A !important}.green.darken-1{background-color:#43A047 !important}.green-text.text-darken-1{color:#43A047 !important}.green.darken-2{background-color:#388E3C !important}.green-text.text-darken-2{color:#388E3C !important}.green.darken-3{background-color:#2E7D32 !important}.green-text.text-darken-3{color:#2E7D32 !important}.green.darken-4{background-color:#1B5E20 !important}.green-text.text-darken-4{color:#1B5E20 !important}.green.accent-1{background-color:#B9F6CA !important}.green-text.text-accent-1{color:#B9F6CA !important}.green.accent-2{background-color:#69F0AE !important}.green-text.text-accent-2{color:#69F0AE !important}.green.accent-3{background-color:#00E676 !important}.green-text.text-accent-3{color:#00E676 !important}.green.accent-4{background-color:#00C853 !important}.green-text.text-accent-4{color:#00C853 !important}.light-green{background-color:#8bc34a !important}.light-green-text{color:#8bc34a !important}.light-green.lighten-5{background-color:#f1f8e9 !important}.light-green-text.text-lighten-5{color:#f1f8e9 !important}.light-green.lighten-4{background-color:#dcedc8 !important}.light-green-text.text-lighten-4{color:#dcedc8 !important}.light-green.lighten-3{background-color:#c5e1a5 !important}.light-green-text.text-lighten-3{color:#c5e1a5 !important}.light-green.lighten-2{background-color:#aed581 !important}.light-green-text.text-lighten-2{color:#aed581 !important}.light-green.lighten-1{background-color:#9ccc65 !important}.light-green-text.text-lighten-1{color:#9ccc65 !important}.light-green.darken-1{background-color:#7cb342 !important}.light-green-text.text-darken-1{color:#7cb342 !important}.light-green.darken-2{background-color:#689f38 !important}.light-green-text.text-darken-2{color:#689f38 !important}.light-green.darken-3{background-color:#558b2f !important}.light-green-text.text-darken-3{color:#558b2f !important}.light-green.darken-4{background-color:#33691e !important}.light-green-text.text-darken-4{color:#33691e !important}.light-green.accent-1{background-color:#ccff90 !important}.light-green-text.text-accent-1{color:#ccff90 !important}.light-green.accent-2{background-color:#b2ff59 !important}.light-green-text.text-accent-2{color:#b2ff59 !important}.light-green.accent-3{background-color:#76ff03 !important}.light-green-text.text-accent-3{color:#76ff03 !important}.light-green.accent-4{background-color:#64dd17 !important}.light-green-text.text-accent-4{color:#64dd17 !important}.lime{background-color:#cddc39 !important}.lime-text{color:#cddc39 !important}.lime.lighten-5{background-color:#f9fbe7 !important}.lime-text.text-lighten-5{color:#f9fbe7 !important}.lime.lighten-4{background-color:#f0f4c3 !important}.lime-text.text-lighten-4{color:#f0f4c3 !important}.lime.lighten-3{background-color:#e6ee9c !important}.lime-text.text-lighten-3{color:#e6ee9c !important}.lime.lighten-2{background-color:#dce775 !important}.lime-text.text-lighten-2{color:#dce775 !important}.lime.lighten-1{background-color:#d4e157 !important}.lime-text.text-lighten-1{color:#d4e157 !important}.lime.darken-1{background-color:#c0ca33 !important}.lime-text.text-darken-1{color:#c0ca33 !important}.lime.darken-2{background-color:#afb42b !important}.lime-text.text-darken-2{color:#afb42b !important}.lime.darken-3{background-color:#9e9d24 !important}.lime-text.text-darken-3{color:#9e9d24 !important}.lime.darken-4{background-color:#827717 !important}.lime-text.text-darken-4{color:#827717 !important}.lime.accent-1{background-color:#f4ff81 !important}.lime-text.text-accent-1{color:#f4ff81 !important}.lime.accent-2{background-color:#eeff41 !important}.lime-text.text-accent-2{color:#eeff41 !important}.lime.accent-3{background-color:#c6ff00 !important}.lime-text.text-accent-3{color:#c6ff00 !important}.lime.accent-4{background-color:#aeea00 !important}.lime-text.text-accent-4{color:#aeea00 !important}.yellow{background-color:#ffeb3b !important}.yellow-text{color:#ffeb3b !important}.yellow.lighten-5{background-color:#fffde7 !important}.yellow-text.text-lighten-5{color:#fffde7 !important}.yellow.lighten-4{background-color:#fff9c4 !important}.yellow-text.text-lighten-4{color:#fff9c4 !important}.yellow.lighten-3{background-color:#fff59d !important}.yellow-text.text-lighten-3{color:#fff59d !important}.yellow.lighten-2{background-color:#fff176 !important}.yellow-text.text-lighten-2{color:#fff176 !important}.yellow.lighten-1{background-color:#ffee58 !important}.yellow-text.text-lighten-1{color:#ffee58 !important}.yellow.darken-1{background-color:#fdd835 !important}.yellow-text.text-darken-1{color:#fdd835 !important}.yellow.darken-2{background-color:#fbc02d !important}.yellow-text.text-darken-2{color:#fbc02d !important}.yellow.darken-3{background-color:#f9a825 !important}.yellow-text.text-darken-3{color:#f9a825 !important}.yellow.darken-4{background-color:#f57f17 !important}.yellow-text.text-darken-4{color:#f57f17 !important}.yellow.accent-1{background-color:#ffff8d !important}.yellow-text.text-accent-1{color:#ffff8d !important}.yellow.accent-2{background-color:#ff0 !important}.yellow-text.text-accent-2{color:#ff0 !important}.yellow.accent-3{background-color:#ffea00 !important}.yellow-text.text-accent-3{color:#ffea00 !important}.yellow.accent-4{background-color:#ffd600 !important}.yellow-text.text-accent-4{color:#ffd600 !important}.amber{background-color:#ffc107 !important}.amber-text{color:#ffc107 !important}.amber.lighten-5{background-color:#fff8e1 !important}.amber-text.text-lighten-5{color:#fff8e1 !important}.amber.lighten-4{background-color:#ffecb3 !important}.amber-text.text-lighten-4{color:#ffecb3 !important}.amber.lighten-3{background-color:#ffe082 !important}.amber-text.text-lighten-3{color:#ffe082 !important}.amber.lighten-2{background-color:#ffd54f !important}.amber-text.text-lighten-2{color:#ffd54f !important}.amber.lighten-1{background-color:#ffca28 !important}.amber-text.text-lighten-1{color:#ffca28 !important}.amber.darken-1{background-color:#ffb300 !important}.amber-text.text-darken-1{color:#ffb300 !important}.amber.darken-2{background-color:#ffa000 !important}.amber-text.text-darken-2{color:#ffa000 !important}.amber.darken-3{background-color:#ff8f00 !important}.amber-text.text-darken-3{color:#ff8f00 !important}.amber.darken-4{background-color:#ff6f00 !important}.amber-text.text-darken-4{color:#ff6f00 !important}.amber.accent-1{background-color:#ffe57f !important}.amber-text.text-accent-1{color:#ffe57f !important}.amber.accent-2{background-color:#ffd740 !important}.amber-text.text-accent-2{color:#ffd740 !important}.amber.accent-3{background-color:#ffc400 !important}.amber-text.text-accent-3{color:#ffc400 !important}.amber.accent-4{background-color:#ffab00 !important}.amber-text.text-accent-4{color:#ffab00 !important}.orange{background-color:#ff9800 !important}.orange-text{color:#ff9800 !important}.orange.lighten-5{background-color:#fff3e0 !important}.orange-text.text-lighten-5{color:#fff3e0 !important}.orange.lighten-4{background-color:#ffe0b2 !important}.orange-text.text-lighten-4{color:#ffe0b2 !important}.orange.lighten-3{background-color:#ffcc80 !important}.orange-text.text-lighten-3{color:#ffcc80 !important}.orange.lighten-2{background-color:#ffb74d !important}.orange-text.text-lighten-2{color:#ffb74d !important}.orange.lighten-1{background-color:#ffa726 !important}.orange-text.text-lighten-1{color:#ffa726 !important}.orange.darken-1{background-color:#fb8c00 !important}.orange-text.text-darken-1{color:#fb8c00 !important}.orange.darken-2{background-color:#f57c00 !important}.orange-text.text-darken-2{color:#f57c00 !important}.orange.darken-3{background-color:#ef6c00 !important}.orange-text.text-darken-3{color:#ef6c00 !important}.orange.darken-4{background-color:#e65100 !important}.orange-text.text-darken-4{color:#e65100 !important}.orange.accent-1{background-color:#ffd180 !important}.orange-text.text-accent-1{color:#ffd180 !important}.orange.accent-2{background-color:#ffab40 !important}.orange-text.text-accent-2{color:#ffab40 !important}.orange.accent-3{background-color:#ff9100 !important}.orange-text.text-accent-3{color:#ff9100 !important}.orange.accent-4{background-color:#ff6d00 !important}.orange-text.text-accent-4{color:#ff6d00 !important}.deep-orange{background-color:#ff5722 !important}.deep-orange-text{color:#ff5722 !important}.deep-orange.lighten-5{background-color:#fbe9e7 !important}.deep-orange-text.text-lighten-5{color:#fbe9e7 !important}.deep-orange.lighten-4{background-color:#ffccbc !important}.deep-orange-text.text-lighten-4{color:#ffccbc !important}.deep-orange.lighten-3{background-color:#ffab91 !important}.deep-orange-text.text-lighten-3{color:#ffab91 !important}.deep-orange.lighten-2{background-color:#ff8a65 !important}.deep-orange-text.text-lighten-2{color:#ff8a65 !important}.deep-orange.lighten-1{background-color:#ff7043 !important}.deep-orange-text.text-lighten-1{color:#ff7043 !important}.deep-orange.darken-1{background-color:#f4511e !important}.deep-orange-text.text-darken-1{color:#f4511e !important}.deep-orange.darken-2{background-color:#e64a19 !important}.deep-orange-text.text-darken-2{color:#e64a19 !important}.deep-orange.darken-3{background-color:#d84315 !important}.deep-orange-text.text-darken-3{color:#d84315 !important}.deep-orange.darken-4{background-color:#bf360c !important}.deep-orange-text.text-darken-4{color:#bf360c !important}.deep-orange.accent-1{background-color:#ff9e80 !important}.deep-orange-text.text-accent-1{color:#ff9e80 !important}.deep-orange.accent-2{background-color:#ff6e40 !important}.deep-orange-text.text-accent-2{color:#ff6e40 !important}.deep-orange.accent-3{background-color:#ff3d00 !important}.deep-orange-text.text-accent-3{color:#ff3d00 !important}.deep-orange.accent-4{background-color:#dd2c00 !important}.deep-orange-text.text-accent-4{color:#dd2c00 !important}.brown{background-color:#795548 !important}.brown-text{color:#795548 !important}.brown.lighten-5{background-color:#efebe9 !important}.brown-text.text-lighten-5{color:#efebe9 !important}.brown.lighten-4{background-color:#d7ccc8 !important}.brown-text.text-lighten-4{color:#d7ccc8 !important}.brown.lighten-3{background-color:#bcaaa4 !important}.brown-text.text-lighten-3{color:#bcaaa4 !important}.brown.lighten-2{background-color:#a1887f !important}.brown-text.text-lighten-2{color:#a1887f !important}.brown.lighten-1{background-color:#8d6e63 !important}.brown-text.text-lighten-1{color:#8d6e63 !important}.brown.darken-1{background-color:#6d4c41 !important}.brown-text.text-darken-1{color:#6d4c41 !important}.brown.darken-2{background-color:#5d4037 !important}.brown-text.text-darken-2{color:#5d4037 !important}.brown.darken-3{background-color:#4e342e !important}.brown-text.text-darken-3{color:#4e342e !important}.brown.darken-4{background-color:#3e2723 !important}.brown-text.text-darken-4{color:#3e2723 !important}.blue-grey{background-color:#607d8b !important}.blue-grey-text{color:#607d8b !important}.blue-grey.lighten-5{background-color:#eceff1 !important}.blue-grey-text.text-lighten-5{color:#eceff1 !important}.blue-grey.lighten-4{background-color:#cfd8dc !important}.blue-grey-text.text-lighten-4{color:#cfd8dc !important}.blue-grey.lighten-3{background-color:#b0bec5 !important}.blue-grey-text.text-lighten-3{color:#b0bec5 !important}.blue-grey.lighten-2{background-color:#90a4ae !important}.blue-grey-text.text-lighten-2{color:#90a4ae !important}.blue-grey.lighten-1{background-color:#78909c !important}.blue-grey-text.text-lighten-1{color:#78909c !important}.blue-grey.darken-1{background-color:#546e7a !important}.blue-grey-text.text-darken-1{color:#546e7a !important}.blue-grey.darken-2{background-color:#455a64 !important}.blue-grey-text.text-darken-2{color:#455a64 !important}.blue-grey.darken-3{background-color:#37474f !important}.blue-grey-text.text-darken-3{color:#37474f !important}.blue-grey.darken-4{background-color:#263238 !important}.blue-grey-text.text-darken-4{color:#263238 !important}.grey{background-color:#9e9e9e !important}.grey-text{color:#9e9e9e !important}.grey.lighten-5{background-color:#fafafa !important}.grey-text.text-lighten-5{color:#fafafa !important}.grey.lighten-4{background-color:#f5f5f5 !important}.grey-text.text-lighten-4{color:#f5f5f5 !important}.grey.lighten-3{background-color:#eee !important}.grey-text.text-lighten-3{color:#eee !important}.grey.lighten-2{background-color:#e0e0e0 !important}.grey-text.text-lighten-2{color:#e0e0e0 !important}.grey.lighten-1{background-color:#bdbdbd !important}.grey-text.text-lighten-1{color:#bdbdbd !important}.grey.darken-1{background-color:#757575 !important}.grey-text.text-darken-1{color:#757575 !important}.grey.darken-2{background-color:#616161 !important}.grey-text.text-darken-2{color:#616161 !important}.grey.darken-3{background-color:#424242 !important}.grey-text.text-darken-3{color:#424242 !important}.grey.darken-4{background-color:#212121 !important}.grey-text.text-darken-4{color:#212121 !important}.black{background-color:#000 !important}.black-text{color:#000 !important}.white{background-color:#fff !important}.white-text{color:#fff !important}.transparent{background-color:rgba(0,0,0,0) !important}.transparent-text{color:rgba(0,0,0,0) !important}/*! normalize.css v7.0.0 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,footer,header,nav,section{display:block}h1{font-size:2em;margin:0.67em 0}figcaption,figure,main{display:block}figure{margin:1em 40px}hr{-webkit-box-sizing:content-box;box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace, monospace;font-size:1em}a{background-color:transparent;-webkit-text-decoration-skip:objects}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;-moz-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:inherit}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace, monospace;font-size:1em}dfn{font-style:italic}mark{background-color:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}audio,video{display:inline-block}audio:not([controls]){display:none;height:0}img{border-style:none}svg:not(:root){overflow:hidden}button,input,optgroup,select,textarea{font-family:sans-serif;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}button,html [type="button"],[type="reset"],[type="submit"]{-webkit-appearance:button}button::-moz-focus-inner,[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type="button"]:-moz-focusring,[type="reset"]:-moz-focusring,[type="submit"]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:0.35em 0.75em 0.625em}legend{-webkit-box-sizing:border-box;box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{display:inline-block;vertical-align:baseline}textarea{overflow:auto}[type="checkbox"],[type="radio"]{-webkit-box-sizing:border-box;box-sizing:border-box;padding:0}[type="number"]::-webkit-inner-spin-button,[type="number"]::-webkit-outer-spin-button{height:auto}[type="search"]{-webkit-appearance:textfield;outline-offset:-2px}[type="search"]::-webkit-search-cancel-button,[type="search"]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details,menu{display:block}summary{display:list-item}canvas{display:inline-block}template{display:none}[hidden]{display:none}html{-webkit-box-sizing:border-box;box-sizing:border-box}*,*:before,*:after{-webkit-box-sizing:inherit;box-sizing:inherit}button,input,optgroup,select,textarea{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif}ul:not(.browser-default){padding-left:0;list-style-type:none}ul:not(.browser-default)>li{list-style-type:none}a{color:#039be5;text-decoration:none;-webkit-tap-highlight-color:transparent}.valign-wrapper{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.clearfix{clear:both}.z-depth-0{-webkit-box-shadow:none !important;box-shadow:none !important}.z-depth-1,nav,.card-panel,.card,.toast,.btn,.btn-large,.btn-small,.btn-floating,.dropdown-content,.collapsible,.sidenav{-webkit-box-shadow:0 2px 2px 0 rgba(0,0,0,0.14),0 3px 1px -2px rgba(0,0,0,0.12),0 1px 5px 0 rgba(0,0,0,0.2);box-shadow:0 2px 2px 0 rgba(0,0,0,0.14),0 3px 1px -2px rgba(0,0,0,0.12),0 1px 5px 0 rgba(0,0,0,0.2)}.z-depth-1-half,.btn:hover,.btn-large:hover,.btn-small:hover,.btn-floating:hover{-webkit-box-shadow:0 3px 3px 0 rgba(0,0,0,0.14),0 1px 7px 0 rgba(0,0,0,0.12),0 3px 1px -1px rgba(0,0,0,0.2);box-shadow:0 3px 3px 0 rgba(0,0,0,0.14),0 1px 7px 0 rgba(0,0,0,0.12),0 3px 1px -1px rgba(0,0,0,0.2)}.z-depth-2{-webkit-box-shadow:0 4px 5px 0 rgba(0,0,0,0.14),0 1px 10px 0 rgba(0,0,0,0.12),0 2px 4px -1px rgba(0,0,0,0.3);box-shadow:0 4px 5px 0 rgba(0,0,0,0.14),0 1px 10px 0 rgba(0,0,0,0.12),0 2px 4px -1px rgba(0,0,0,0.3)}.z-depth-3{-webkit-box-shadow:0 8px 17px 2px rgba(0,0,0,0.14),0 3px 14px 2px rgba(0,0,0,0.12),0 5px 5px -3px rgba(0,0,0,0.2);box-shadow:0 8px 17px 2px rgba(0,0,0,0.14),0 3px 14px 2px rgba(0,0,0,0.12),0 5px 5px -3px rgba(0,0,0,0.2)}.z-depth-4{-webkit-box-shadow:0 16px 24px 2px rgba(0,0,0,0.14),0 6px 30px 5px rgba(0,0,0,0.12),0 8px 10px -7px rgba(0,0,0,0.2);box-shadow:0 16px 24px 2px rgba(0,0,0,0.14),0 6px 30px 5px rgba(0,0,0,0.12),0 8px 10px -7px rgba(0,0,0,0.2)}.z-depth-5,.modal{-webkit-box-shadow:0 24px 38px 3px rgba(0,0,0,0.14),0 9px 46px 8px rgba(0,0,0,0.12),0 11px 15px -7px rgba(0,0,0,0.2);box-shadow:0 24px 38px 3px rgba(0,0,0,0.14),0 9px 46px 8px rgba(0,0,0,0.12),0 11px 15px -7px rgba(0,0,0,0.2)}.hoverable{-webkit-transition:-webkit-box-shadow .25s;transition:-webkit-box-shadow .25s;transition:box-shadow .25s;transition:box-shadow .25s, -webkit-box-shadow .25s}.hoverable:hover{-webkit-box-shadow:0 8px 17px 0 rgba(0,0,0,0.2),0 6px 20px 0 rgba(0,0,0,0.19);box-shadow:0 8px 17px 0 rgba(0,0,0,0.2),0 6px 20px 0 rgba(0,0,0,0.19)}.divider{height:1px;overflow:hidden;background-color:#e0e0e0}blockquote{margin:20px 0;padding-left:1.5rem;border-left:5px solid #ee6e73}i{line-height:inherit}i.left{float:left;margin-right:15px}i.right{float:right;margin-left:15px}i.tiny{font-size:1rem}i.small{font-size:2rem}i.medium{font-size:4rem}i.large{font-size:6rem}img.responsive-img,video.responsive-video{max-width:100%;height:auto}.pagination li{display:inline-block;border-radius:2px;text-align:center;vertical-align:top;height:30px}.pagination li a{color:#444;display:inline-block;font-size:1.2rem;padding:0 10px;line-height:30px}.pagination li.active a{color:#fff}.pagination li.active{background-color:#ee6e73}.pagination li.disabled a{cursor:default;color:#999}.pagination li i{font-size:2rem}.pagination li.pages ul li{display:inline-block;float:none}@media only screen and (max-width: 992px){.pagination{width:100%}.pagination li.prev,.pagination li.next{width:10%}.pagination li.pages{width:80%;overflow:hidden;white-space:nowrap}}.breadcrumb{font-size:18px;color:rgba(255,255,255,0.7)}.breadcrumb i,.breadcrumb [class^="mdi-"],.breadcrumb [class*="mdi-"],.breadcrumb i.material-icons{display:inline-block;float:left;font-size:24px}.breadcrumb:before{content:'\E5CC';color:rgba(255,255,255,0.7);vertical-align:top;display:inline-block;font-family:'Material Icons';font-weight:normal;font-style:normal;font-size:25px;margin:0 10px 0 8px;-webkit-font-smoothing:antialiased}.breadcrumb:first-child:before{display:none}.breadcrumb:last-child{color:#fff}.parallax-container{position:relative;overflow:hidden;height:500px}.parallax-container .parallax{position:absolute;top:0;left:0;right:0;bottom:0;z-index:-1}.parallax-container .parallax img{opacity:0;position:absolute;left:50%;bottom:0;min-width:100%;min-height:100%;-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0);-webkit-transform:translateX(-50%);transform:translateX(-50%)}.pin-top,.pin-bottom{position:relative}.pinned{position:fixed !important}ul.staggered-list li{opacity:0}.fade-in{opacity:0;-webkit-transform-origin:0 50%;transform-origin:0 50%}@media only screen and (max-width: 600px){.hide-on-small-only,.hide-on-small-and-down{display:none !important}}@media only screen and (max-width: 992px){.hide-on-med-and-down{display:none !important}}@media only screen and (min-width: 601px){.hide-on-med-and-up{display:none !important}}@media only screen and (min-width: 600px) and (max-width: 992px){.hide-on-med-only{display:none !important}}@media only screen and (min-width: 993px){.hide-on-large-only{display:none !important}}@media only screen and (min-width: 1201px){.hide-on-extra-large-only{display:none !important}}@media only screen and (min-width: 1201px){.show-on-extra-large{display:block !important}}@media only screen and (min-width: 993px){.show-on-large{display:block !important}}@media only screen and (min-width: 600px) and (max-width: 992px){.show-on-medium{display:block !important}}@media only screen and (max-width: 600px){.show-on-small{display:block !important}}@media only screen and (min-width: 601px){.show-on-medium-and-up{display:block !important}}@media only screen and (max-width: 992px){.show-on-medium-and-down{display:block !important}}@media only screen and (max-width: 600px){.center-on-small-only{text-align:center}}.page-footer{padding-top:20px;color:#fff;background-color:#ee6e73}.page-footer .footer-copyright{overflow:hidden;min-height:50px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;padding:10px 0px;color:rgba(255,255,255,0.8);background-color:rgba(51,51,51,0.08)}table,th,td{border:none}table{width:100%;display:table;border-collapse:collapse;border-spacing:0}table.striped tr{border-bottom:none}table.striped>tbody>tr:nth-child(odd){background-color:rgba(242,242,242,0.5)}table.striped>tbody>tr>td{border-radius:0}table.highlight>tbody>tr{-webkit-transition:background-color .25s ease;transition:background-color .25s ease}table.highlight>tbody>tr:hover{background-color:rgba(242,242,242,0.5)}table.centered thead tr th,table.centered tbody tr td{text-align:center}
|
7 |
+
/* tr{border-bottom:1px solid rgba(0,0,0,0.12)} */
|
8 |
+
td,th{padding:15px 5px;display:table-cell;text-align:left;vertical-align:middle;border-radius:2px}@media only screen and (max-width: 992px){table.responsive-table{width:100%;border-collapse:collapse;border-spacing:0;display:block;position:relative}table.responsive-table td:empty:before{content:'\00a0'}table.responsive-table th,table.responsive-table td{margin:0;vertical-align:top}table.responsive-table th{text-align:left}table.responsive-table thead{display:block;float:left}table.responsive-table thead tr{display:block;padding:0 10px 0 0}table.responsive-table thead tr th::before{content:"\00a0"}table.responsive-table tbody{display:block;width:auto;position:relative;overflow-x:auto;white-space:nowrap}table.responsive-table tbody tr{display:inline-block;vertical-align:top}table.responsive-table th{display:block;text-align:right}table.responsive-table td{display:block;min-height:1.25em;text-align:left}table.responsive-table tr{border-bottom:none;padding:0 10px}table.responsive-table thead{border:0;border-right:1px solid rgba(0,0,0,0.12)}}.collection{margin:.5rem 0 1rem 0;border:1px solid #e0e0e0;border-radius:2px;overflow:hidden;position:relative}.collection .collection-item{background-color:#fff;line-height:1.5rem;padding:10px 20px;margin:0;border-bottom:1px solid #e0e0e0}.collection .collection-item.avatar{min-height:84px;padding-left:72px;position:relative}.collection .collection-item.avatar:not(.circle-clipper)>.circle,.collection .collection-item.avatar :not(.circle-clipper)>.circle{position:absolute;width:42px;height:42px;overflow:hidden;left:15px;display:inline-block;vertical-align:middle}.collection .collection-item.avatar i.circle{font-size:18px;line-height:42px;color:#fff;background-color:#999;text-align:center}.collection .collection-item.avatar .title{font-size:16px}.collection .collection-item.avatar p{margin:0}.collection .collection-item.avatar .secondary-content{position:absolute;top:16px;right:16px}.collection .collection-item:last-child{border-bottom:none}.collection .collection-item.active{background-color:#26a69a;color:#eafaf9}.collection .collection-item.active .secondary-content{color:#fff}.collection a.collection-item{display:block;-webkit-transition:.25s;transition:.25s;color:#26a69a}.collection a.collection-item:not(.active):hover{background-color:#ddd}.collection.with-header .collection-header{background-color:#fff;border-bottom:1px solid #e0e0e0;padding:10px 20px}.collection.with-header .collection-item{padding-left:30px}.collection.with-header .collection-item.avatar{padding-left:72px}.secondary-content{float:right;color:#26a69a}.collapsible .collection{margin:0;border:none}.video-container{position:relative;padding-bottom:56.25%;height:0;overflow:hidden}.video-container iframe,.video-container object,.video-container embed{position:absolute;top:0;left:0;width:100%;height:100%}.progress{position:relative;height:4px;display:block;width:100%;background-color:#acece6;border-radius:2px;margin:.5rem 0 1rem 0;overflow:hidden}.progress .determinate{position:absolute;top:0;left:0;bottom:0;background-color:#26a69a;-webkit-transition:width .3s linear;transition:width .3s linear}.progress .indeterminate{background-color:#26a69a}.progress .indeterminate:before{content:'';position:absolute;background-color:inherit;top:0;left:0;bottom:0;will-change:left, right;-webkit-animation:indeterminate 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite;animation:indeterminate 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite}.progress .indeterminate:after{content:'';position:absolute;background-color:inherit;top:0;left:0;bottom:0;will-change:left, right;-webkit-animation:indeterminate-short 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) infinite;animation:indeterminate-short 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) infinite;-webkit-animation-delay:1.15s;animation-delay:1.15s}@-webkit-keyframes indeterminate{0%{left:-35%;right:100%}60%{left:100%;right:-90%}100%{left:100%;right:-90%}}@keyframes indeterminate{0%{left:-35%;right:100%}60%{left:100%;right:-90%}100%{left:100%;right:-90%}}@-webkit-keyframes indeterminate-short{0%{left:-200%;right:100%}60%{left:107%;right:-8%}100%{left:107%;right:-8%}}@keyframes indeterminate-short{0%{left:-200%;right:100%}60%{left:107%;right:-8%}100%{left:107%;right:-8%}}.hide{display:none !important}.left-align{text-align:left}.right-align{text-align:right}.center,.center-align{text-align:center}.left{float:left !important}.right{float:right !important}.no-select,input[type=range],input[type=range]+.thumb{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.circle{border-radius:50%}.center-block{display:block;margin-left:auto;margin-right:auto}.truncate{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.no-padding{padding:0 !important}span.badge{min-width:3rem;padding:0 6px;margin-left:14px;text-align:center;font-size:1rem;line-height:22px;height:22px;color:#757575;float:right;-webkit-box-sizing:border-box;box-sizing:border-box}span.badge.new{font-weight:300;font-size:0.8rem;color:#fff;background-color:#26a69a;border-radius:2px}span.badge.new:after{content:" new"}span.badge[data-badge-caption]::after{content:" " attr(data-badge-caption)}nav ul a span.badge{display:inline-block;float:none;margin-left:4px;line-height:22px;height:22px;-webkit-font-smoothing:auto}.collection-item span.badge{margin-top:calc(.75rem - 11px)}.collapsible span.badge{margin-left:auto}.sidenav span.badge{margin-top:calc(24px - 11px)}table span.badge{display:inline-block;float:none;margin-left:auto}.material-icons{text-rendering:optimizeLegibility;-webkit-font-feature-settings:'liga';-moz-font-feature-settings:'liga';font-feature-settings:'liga'}.container{margin:0 auto;max-width:1280px;width:90%}@media only screen and (min-width: 601px){.container{width:85%}}@media only screen and (min-width: 993px){.container{width:70%}}.col .row{margin-left:-.75rem;margin-right:-.75rem}.section{padding-top:1rem;padding-bottom:1rem}.section.no-pad{padding:0}.section.no-pad-bot{padding-bottom:0}.section.no-pad-top{padding-top:0}.row{margin-left:auto;margin-right:auto;margin-bottom:20px}.row:after{content:"";display:table;clear:both}.row .col{float:left;-webkit-box-sizing:border-box;box-sizing:border-box;padding:0 .75rem;min-height:1px}.row .col[class*="push-"],.row .col[class*="pull-"]{position:relative}.row .col.s1{width:8.3333333333%;margin-left:auto;left:auto;right:auto}.row .col.s2{width:16.6666666667%;margin-left:auto;left:auto;right:auto}.row .col.s3{width:25%;margin-left:auto;left:auto;right:auto}.row .col.s4{width:33.3333333333%;margin-left:auto;left:auto;right:auto}.row .col.s5{width:41.6666666667%;margin-left:auto;left:auto;right:auto}.row .col.s6{width:50%;margin-left:auto;left:auto;right:auto}.row .col.s7{width:58.3333333333%;margin-left:auto;left:auto;right:auto}.row .col.s8{width:66.6666666667%;margin-left:auto;left:auto;right:auto}.row .col.s9{width:75%;margin-left:auto;left:auto;right:auto}.row .col.s10{width:83.3333333333%;margin-left:auto;left:auto;right:auto}.row .col.s11{width:91.6666666667%;margin-left:auto;left:auto;right:auto}.row .col.s12{width:100%;margin-left:auto;left:auto;right:auto}.row .col.offset-s1{margin-left:8.3333333333%}.row .col.pull-s1{right:8.3333333333%}.row .col.push-s1{left:8.3333333333%}.row .col.offset-s2{margin-left:16.6666666667%}.row .col.pull-s2{right:16.6666666667%}.row .col.push-s2{left:16.6666666667%}.row .col.offset-s3{margin-left:25%}.row .col.pull-s3{right:25%}.row .col.push-s3{left:25%}.row .col.offset-s4{margin-left:33.3333333333%}.row .col.pull-s4{right:33.3333333333%}.row .col.push-s4{left:33.3333333333%}.row .col.offset-s5{margin-left:41.6666666667%}.row .col.pull-s5{right:41.6666666667%}.row .col.push-s5{left:41.6666666667%}.row .col.offset-s6{margin-left:50%}.row .col.pull-s6{right:50%}.row .col.push-s6{left:50%}.row .col.offset-s7{margin-left:58.3333333333%}.row .col.pull-s7{right:58.3333333333%}.row .col.push-s7{left:58.3333333333%}.row .col.offset-s8{margin-left:66.6666666667%}.row .col.pull-s8{right:66.6666666667%}.row .col.push-s8{left:66.6666666667%}.row .col.offset-s9{margin-left:75%}.row .col.pull-s9{right:75%}.row .col.push-s9{left:75%}.row .col.offset-s10{margin-left:83.3333333333%}.row .col.pull-s10{right:83.3333333333%}.row .col.push-s10{left:83.3333333333%}.row .col.offset-s11{margin-left:91.6666666667%}.row .col.pull-s11{right:91.6666666667%}.row .col.push-s11{left:91.6666666667%}.row .col.offset-s12{margin-left:100%}.row .col.pull-s12{right:100%}.row .col.push-s12{left:100%}@media only screen and (min-width: 601px){.row .col.m1{width:8.3333333333%;margin-left:auto;left:auto;right:auto}.row .col.m2{width:16.6666666667%;margin-left:auto;left:auto;right:auto}.row .col.m3{width:25%;margin-left:auto;left:auto;right:auto}.row .col.m4{width:33.3333333333%;margin-left:auto;left:auto;right:auto}.row .col.m5{width:41.6666666667%;margin-left:auto;left:auto;right:auto}.row .col.m6{width:50%;margin-left:auto;left:auto;right:auto}.row .col.m7{width:58.3333333333%;margin-left:auto;left:auto;right:auto}.row .col.m8{width:66.6666666667%;margin-left:auto;left:auto;right:auto}.row .col.m9{width:75%;margin-left:auto;left:auto;right:auto}.row .col.m10{width:83.3333333333%;margin-left:auto;left:auto;right:auto}.row .col.m11{width:91.6666666667%;margin-left:auto;left:auto;right:auto}.row .col.m12{width:100%;margin-left:auto;left:auto;right:auto}.row .col.offset-m1{margin-left:8.3333333333%}.row .col.pull-m1{right:8.3333333333%}.row .col.push-m1{left:8.3333333333%}.row .col.offset-m2{margin-left:16.6666666667%}.row .col.pull-m2{right:16.6666666667%}.row .col.push-m2{left:16.6666666667%}.row .col.offset-m3{margin-left:25%}.row .col.pull-m3{right:25%}.row .col.push-m3{left:25%}.row .col.offset-m4{margin-left:33.3333333333%}.row .col.pull-m4{right:33.3333333333%}.row .col.push-m4{left:33.3333333333%}.row .col.offset-m5{margin-left:41.6666666667%}.row .col.pull-m5{right:41.6666666667%}.row .col.push-m5{left:41.6666666667%}.row .col.offset-m6{margin-left:50%}.row .col.pull-m6{right:50%}.row .col.push-m6{left:50%}.row .col.offset-m7{margin-left:58.3333333333%}.row .col.pull-m7{right:58.3333333333%}.row .col.push-m7{left:58.3333333333%}.row .col.offset-m8{margin-left:66.6666666667%}.row .col.pull-m8{right:66.6666666667%}.row .col.push-m8{left:66.6666666667%}.row .col.offset-m9{margin-left:75%}.row .col.pull-m9{right:75%}.row .col.push-m9{left:75%}.row .col.offset-m10{margin-left:83.3333333333%}.row .col.pull-m10{right:83.3333333333%}.row .col.push-m10{left:83.3333333333%}.row .col.offset-m11{margin-left:91.6666666667%}.row .col.pull-m11{right:91.6666666667%}.row .col.push-m11{left:91.6666666667%}.row .col.offset-m12{margin-left:100%}.row .col.pull-m12{right:100%}.row .col.push-m12{left:100%}}@media only screen and (min-width: 993px){.row .col.l1{width:8.3333333333%;margin-left:auto;left:auto;right:auto}.row .col.l2{width:16.6666666667%;margin-left:auto;left:auto;right:auto}.row .col.l3{width:25%;margin-left:auto;left:auto;right:auto}.row .col.l4{width:33.3333333333%;margin-left:auto;left:auto;right:auto}.row .col.l5{width:41.6666666667%;margin-left:auto;left:auto;right:auto}.row .col.l6{width:50%;margin-left:auto;left:auto;right:auto}.row .col.l7{width:58.3333333333%;margin-left:auto;left:auto;right:auto}.row .col.l8{width:66.6666666667%;margin-left:auto;left:auto;right:auto}.row .col.l9{width:75%;margin-left:auto;left:auto;right:auto}.row .col.l10{width:83.3333333333%;margin-left:auto;left:auto;right:auto}.row .col.l11{width:91.6666666667%;margin-left:auto;left:auto;right:auto}.row .col.l12{width:100%;margin-left:auto;left:auto;right:auto}.row .col.offset-l1{margin-left:8.3333333333%}.row .col.pull-l1{right:8.3333333333%}.row .col.push-l1{left:8.3333333333%}.row .col.offset-l2{margin-left:16.6666666667%}.row .col.pull-l2{right:16.6666666667%}.row .col.push-l2{left:16.6666666667%}.row .col.offset-l3{margin-left:25%}.row .col.pull-l3{right:25%}.row .col.push-l3{left:25%}.row .col.offset-l4{margin-left:33.3333333333%}.row .col.pull-l4{right:33.3333333333%}.row .col.push-l4{left:33.3333333333%}.row .col.offset-l5{margin-left:41.6666666667%}.row .col.pull-l5{right:41.6666666667%}.row .col.push-l5{left:41.6666666667%}.row .col.offset-l6{margin-left:50%}.row .col.pull-l6{right:50%}.row .col.push-l6{left:50%}.row .col.offset-l7{margin-left:58.3333333333%}.row .col.pull-l7{right:58.3333333333%}.row .col.push-l7{left:58.3333333333%}.row .col.offset-l8{margin-left:66.6666666667%}.row .col.pull-l8{right:66.6666666667%}.row .col.push-l8{left:66.6666666667%}.row .col.offset-l9{margin-left:75%}.row .col.pull-l9{right:75%}.row .col.push-l9{left:75%}.row .col.offset-l10{margin-left:83.3333333333%}.row .col.pull-l10{right:83.3333333333%}.row .col.push-l10{left:83.3333333333%}.row .col.offset-l11{margin-left:91.6666666667%}.row .col.pull-l11{right:91.6666666667%}.row .col.push-l11{left:91.6666666667%}.row .col.offset-l12{margin-left:100%}.row .col.pull-l12{right:100%}.row .col.push-l12{left:100%}}@media only screen and (min-width: 1201px){.row .col.xl1{width:8.3333333333%;margin-left:auto;left:auto;right:auto}.row .col.xl2{width:16.6666666667%;margin-left:auto;left:auto;right:auto}.row .col.xl3{width:25%;margin-left:auto;left:auto;right:auto}.row .col.xl4{width:33.3333333333%;margin-left:auto;left:auto;right:auto}.row .col.xl5{width:41.6666666667%;margin-left:auto;left:auto;right:auto}.row .col.xl6{width:50%;margin-left:auto;left:auto;right:auto}.row .col.xl7{width:58.3333333333%;margin-left:auto;left:auto;right:auto}.row .col.xl8{width:66.6666666667%;margin-left:auto;left:auto;right:auto}.row .col.xl9{width:75%;margin-left:auto;left:auto;right:auto}.row .col.xl10{width:83.3333333333%;margin-left:auto;left:auto;right:auto}.row .col.xl11{width:91.6666666667%;margin-left:auto;left:auto;right:auto}.row .col.xl12{width:100%;margin-left:auto;left:auto;right:auto}.row .col.offset-xl1{margin-left:8.3333333333%}.row .col.pull-xl1{right:8.3333333333%}.row .col.push-xl1{left:8.3333333333%}.row .col.offset-xl2{margin-left:16.6666666667%}.row .col.pull-xl2{right:16.6666666667%}.row .col.push-xl2{left:16.6666666667%}.row .col.offset-xl3{margin-left:25%}.row .col.pull-xl3{right:25%}.row .col.push-xl3{left:25%}.row .col.offset-xl4{margin-left:33.3333333333%}.row .col.pull-xl4{right:33.3333333333%}.row .col.push-xl4{left:33.3333333333%}.row .col.offset-xl5{margin-left:41.6666666667%}.row .col.pull-xl5{right:41.6666666667%}.row .col.push-xl5{left:41.6666666667%}.row .col.offset-xl6{margin-left:50%}.row .col.pull-xl6{right:50%}.row .col.push-xl6{left:50%}.row .col.offset-xl7{margin-left:58.3333333333%}.row .col.pull-xl7{right:58.3333333333%}.row .col.push-xl7{left:58.3333333333%}.row .col.offset-xl8{margin-left:66.6666666667%}.row .col.pull-xl8{right:66.6666666667%}.row .col.push-xl8{left:66.6666666667%}.row .col.offset-xl9{margin-left:75%}.row .col.pull-xl9{right:75%}.row .col.push-xl9{left:75%}.row .col.offset-xl10{margin-left:83.3333333333%}.row .col.pull-xl10{right:83.3333333333%}.row .col.push-xl10{left:83.3333333333%}.row .col.offset-xl11{margin-left:91.6666666667%}.row .col.pull-xl11{right:91.6666666667%}.row .col.push-xl11{left:91.6666666667%}.row .col.offset-xl12{margin-left:100%}.row .col.pull-xl12{right:100%}.row .col.push-xl12{left:100%}}nav{color:#fff;background-color:#ee6e73;width:100%;height:56px;line-height:56px}nav.nav-extended{height:auto}nav.nav-extended .nav-wrapper{min-height:56px;height:auto}nav.nav-extended .nav-content{position:relative;line-height:normal}nav a{color:#fff}nav i,nav [class^="mdi-"],nav [class*="mdi-"],nav i.material-icons{display:block;font-size:24px;height:56px;line-height:56px}nav .nav-wrapper{position:relative;height:100%}@media only screen and (min-width: 993px){nav a.sidenav-trigger{display:none}}nav .sidenav-trigger{float:left;position:relative;z-index:1;height:56px;margin:0 18px}nav .sidenav-trigger i{height:56px;line-height:56px}nav .brand-logo{position:absolute;color:#fff;display:inline-block;font-size:2.1rem;padding:0}nav .brand-logo.center{left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%)}@media only screen and (max-width: 992px){nav .brand-logo{left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%)}nav .brand-logo.left,nav .brand-logo.right{padding:0;-webkit-transform:none;transform:none}nav .brand-logo.left{left:0.5rem}nav .brand-logo.right{right:0.5rem;left:auto}}nav .brand-logo.right{right:0.5rem;padding:0}nav .brand-logo i,nav .brand-logo [class^="mdi-"],nav .brand-logo [class*="mdi-"],nav .brand-logo i.material-icons{float:left;margin-right:15px}nav .nav-title{display:inline-block;font-size:32px;padding:28px 0}nav ul{margin:0}nav ul li{-webkit-transition:background-color .3s;transition:background-color .3s;float:left;padding:0}nav ul li.active{background-color:rgba(0,0,0,0.1)}nav ul a{-webkit-transition:background-color .3s;transition:background-color .3s;font-size:1rem;color:#fff;display:block;padding:0 15px;cursor:pointer}nav ul a.btn,nav ul a.btn-large,nav ul a.btn-small,nav ul a.btn-large,nav ul a.btn-flat,nav ul a.btn-floating{margin-top:-2px;margin-left:15px;margin-right:15px}nav ul a.btn>.material-icons,nav ul a.btn-large>.material-icons,nav ul a.btn-small>.material-icons,nav ul a.btn-large>.material-icons,nav ul a.btn-flat>.material-icons,nav ul a.btn-floating>.material-icons{height:inherit;line-height:inherit}nav ul a:hover{background-color:rgba(0,0,0,0.1)}nav ul.left{float:left}nav form{height:100%}nav .input-field{margin:0;height:100%}nav .input-field input{height:100%;font-size:1.2rem;border:none;padding-left:2rem}nav .input-field input:focus,nav .input-field input[type=text]:valid,nav .input-field input[type=password]:valid,nav .input-field input[type=email]:valid,nav .input-field input[type=url]:valid,nav .input-field input[type=date]:valid{border:none;-webkit-box-shadow:none;box-shadow:none}nav .input-field label{top:0;left:0}nav .input-field label i{color:rgba(255,255,255,0.7);-webkit-transition:color .3s;transition:color .3s}nav .input-field label.active i{color:#fff}.navbar-fixed{position:relative;height:56px;z-index:997}.navbar-fixed nav{position:fixed}@media only screen and (min-width: 601px){nav.nav-extended .nav-wrapper{min-height:64px}nav,nav .nav-wrapper i,nav a.sidenav-trigger,nav a.sidenav-trigger i{height:64px;line-height:64px}.navbar-fixed{height:64px}}a{text-decoration:none}html{line-height:1.5;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-weight:normal;color:rgba(0,0,0,0.87)}@media only screen and (min-width: 0){html{font-size:14px}}@media only screen and (min-width: 992px){html{font-size:14.5px}}@media only screen and (min-width: 1200px){html{font-size:15px}}h1,h2,h3,h4,h5,h6{font-weight:400;line-height:1.3}h1 a,h2 a,h3 a,h4 a,h5 a,h6 a{font-weight:inherit}h1{font-size:4.2rem;line-height:110%;margin:2.8rem 0 1.68rem 0}h2{font-size:3.56rem;line-height:110%;margin:2.3733333333rem 0 1.424rem 0}h3{font-size:2.92rem;line-height:110%;margin:1.9466666667rem 0 1.168rem 0}h4{font-size:2.28rem;line-height:110%;margin:1.52rem 0 .912rem 0}h5{font-size:1.64rem;line-height:110%;margin:1.0933333333rem 0 .656rem 0}h6{font-size:1.15rem;line-height:110%;margin:.7666666667rem 0 .46rem 0}em{font-style:italic}strong{font-weight:500}small{font-size:75%}.light{font-weight:300}.thin{font-weight:200}@media only screen and (min-width: 360px){.flow-text{font-size:1.2rem}}@media only screen and (min-width: 390px){.flow-text{font-size:1.224rem}}@media only screen and (min-width: 420px){.flow-text{font-size:1.248rem}}@media only screen and (min-width: 450px){.flow-text{font-size:1.272rem}}@media only screen and (min-width: 480px){.flow-text{font-size:1.296rem}}@media only screen and (min-width: 510px){.flow-text{font-size:1.32rem}}@media only screen and (min-width: 540px){.flow-text{font-size:1.344rem}}@media only screen and (min-width: 570px){.flow-text{font-size:1.368rem}}@media only screen and (min-width: 600px){.flow-text{font-size:1.392rem}}@media only screen and (min-width: 630px){.flow-text{font-size:1.416rem}}@media only screen and (min-width: 660px){.flow-text{font-size:1.44rem}}@media only screen and (min-width: 690px){.flow-text{font-size:1.464rem}}@media only screen and (min-width: 720px){.flow-text{font-size:1.488rem}}@media only screen and (min-width: 750px){.flow-text{font-size:1.512rem}}@media only screen and (min-width: 780px){.flow-text{font-size:1.536rem}}@media only screen and (min-width: 810px){.flow-text{font-size:1.56rem}}@media only screen and (min-width: 840px){.flow-text{font-size:1.584rem}}@media only screen and (min-width: 870px){.flow-text{font-size:1.608rem}}@media only screen and (min-width: 900px){.flow-text{font-size:1.632rem}}@media only screen and (min-width: 930px){.flow-text{font-size:1.656rem}}@media only screen and (min-width: 960px){.flow-text{font-size:1.68rem}}@media only screen and (max-width: 360px){.flow-text{font-size:1.2rem}}.scale-transition{-webkit-transition:-webkit-transform 0.3s cubic-bezier(0.53, 0.01, 0.36, 1.63) !important;transition:-webkit-transform 0.3s cubic-bezier(0.53, 0.01, 0.36, 1.63) !important;transition:transform 0.3s cubic-bezier(0.53, 0.01, 0.36, 1.63) !important;transition:transform 0.3s cubic-bezier(0.53, 0.01, 0.36, 1.63), -webkit-transform 0.3s cubic-bezier(0.53, 0.01, 0.36, 1.63) !important}.scale-transition.scale-out{-webkit-transform:scale(0);transform:scale(0);-webkit-transition:-webkit-transform .2s !important;transition:-webkit-transform .2s !important;transition:transform .2s !important;transition:transform .2s, -webkit-transform .2s !important}.scale-transition.scale-in{-webkit-transform:scale(1);transform:scale(1)}.card-panel{-webkit-transition:-webkit-box-shadow .25s;transition:-webkit-box-shadow .25s;transition:box-shadow .25s;transition:box-shadow .25s, -webkit-box-shadow .25s;padding:24px;margin:.5rem 0 1rem 0;border-radius:2px;background-color:#fff}.card{position:relative;margin:.5rem 0 1rem 0;background-color:#fff;-webkit-transition:-webkit-box-shadow .25s;transition:-webkit-box-shadow .25s;transition:box-shadow .25s;transition:box-shadow .25s, -webkit-box-shadow .25s;border-radius:2px}.card .card-title{font-size:24px;font-weight:300}.card .card-title.activator{cursor:pointer}.card.small,.card.medium,.card.large{position:relative}.card.small .card-image,.card.medium .card-image,.card.large .card-image{max-height:60%;overflow:hidden}.card.small .card-image+.card-content,.card.medium .card-image+.card-content,.card.large .card-image+.card-content{max-height:40%}.card.small .card-content,.card.medium .card-content,.card.large .card-content{max-height:100%;overflow:hidden}.card.small .card-action,.card.medium .card-action,.card.large .card-action{position:absolute;bottom:0;left:0;right:0}.card.small{height:300px}.card.medium{height:400px}.card.large{height:500px}.card.horizontal{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.card.horizontal.small .card-image,.card.horizontal.medium .card-image,.card.horizontal.large .card-image{height:100%;max-height:none;overflow:visible}.card.horizontal.small .card-image img,.card.horizontal.medium .card-image img,.card.horizontal.large .card-image img{height:100%}.card.horizontal .card-image{max-width:50%}.card.horizontal .card-image img{border-radius:2px 0 0 2px;max-width:100%;width:auto}.card.horizontal .card-stacked{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;position:relative}.card.horizontal .card-stacked .card-content{-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1}.card.sticky-action .card-action{z-index:2}.card.sticky-action .card-reveal{z-index:1;padding-bottom:64px}.card .card-image{position:relative}.card .card-image img{display:block;border-radius:2px 2px 0 0;position:relative;left:0;right:0;top:0;bottom:0;width:100%}.card .card-image .card-title{color:#fff;position:absolute;bottom:0;left:0;max-width:100%;padding:24px}.card .card-content{padding:24px;border-radius:0 0 2px 2px}.card .card-content p{margin:0}.card .card-content .card-title{display:block;line-height:32px;margin-bottom:8px}.card .card-content .card-title i{line-height:32px}.card .card-action{background-color:inherit;border-top:1px solid rgba(160,160,160,0.2);position:relative;padding:16px 24px}.card .card-action:last-child{border-radius:0 0 2px 2px}.card .card-action a:not(.btn):not(.btn-large):not(.btn-small):not(.btn-large):not(.btn-floating){color:#ffab40;margin-right:24px;-webkit-transition:color .3s ease;transition:color .3s ease;text-transform:uppercase}.card .card-action a:not(.btn):not(.btn-large):not(.btn-small):not(.btn-large):not(.btn-floating):hover{color:#ffd8a6}.card .card-reveal{padding:24px;position:absolute;background-color:#fff;width:100%;overflow-y:auto;left:0;top:100%;height:100%;z-index:3;display:none}.card .card-reveal .card-title{cursor:pointer;display:block}#toast-container{display:block;position:fixed;z-index:10000}@media only screen and (max-width: 600px){#toast-container{min-width:100%;bottom:0%}}@media only screen and (min-width: 601px) and (max-width: 992px){#toast-container{left:5%;bottom:7%;max-width:90%}}@media only screen and (min-width: 993px){#toast-container{top:10%;right:7%;max-width:86%}}.toast{border-radius:2px;top:35px;width:auto;margin-top:10px;position:relative;max-width:100%;height:auto;min-height:48px;line-height:1.5em;background-color:#323232;padding:10px 25px;font-size:1.1rem;font-weight:300;color:#fff;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;cursor:default}.toast .toast-action{color:#eeff41;font-weight:500;margin-right:-25px;margin-left:3rem}.toast.rounded{border-radius:24px}@media only screen and (max-width: 600px){.toast{width:100%;border-radius:0}}.tabs{position:relative;overflow-x:auto;overflow-y:hidden;height:48px;width:100%;background-color:#fff;margin:0 auto;white-space:nowrap}.tabs.tabs-transparent{background-color:transparent}.tabs.tabs-transparent .tab a,.tabs.tabs-transparent .tab.disabled a,.tabs.tabs-transparent .tab.disabled a:hover{color:rgba(255,255,255,0.7)}.tabs.tabs-transparent .tab a:hover,.tabs.tabs-transparent .tab a.active{color:#fff}.tabs.tabs-transparent .indicator{background-color:#fff}.tabs.tabs-fixed-width{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.tabs.tabs-fixed-width .tab{-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1}.tabs .tab{display:inline-block;text-align:center;line-height:48px;height:48px;padding:0;margin:0;text-transform:uppercase}.tabs .tab a{color:rgba(238,110,115,0.7);display:block;width:100%;height:100%;padding:0 24px;font-size:14px;text-overflow:ellipsis;overflow:hidden;-webkit-transition:color .28s ease, background-color .28s ease;transition:color .28s ease, background-color .28s ease}.tabs .tab a:focus,.tabs .tab a:focus.active{background-color:rgba(246,178,181,0.2);outline:none}.tabs .tab a:hover,.tabs .tab a.active{background-color:transparent;color:#ee6e73}.tabs .tab.disabled a,.tabs .tab.disabled a:hover{color:rgba(238,110,115,0.4);cursor:default}.tabs .indicator{position:absolute;bottom:0;height:2px;background-color:#f6b2b5;will-change:left, right}@media only screen and (max-width: 992px){.tabs{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.tabs .tab{-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1}.tabs .tab a{padding:0 12px}}.material-tooltip{padding:10px 8px;font-size:1rem;z-index:2000;background-color:transparent;border-radius:2px;color:#fff;min-height:36px;line-height:120%;opacity:0;position:absolute;text-align:center;max-width:calc(100% - 4px);overflow:hidden;left:0;top:0;pointer-events:none;visibility:hidden;background-color:#323232}.backdrop{position:absolute;opacity:0;height:7px;width:14px;border-radius:0 0 50% 50%;background-color:#323232;z-index:-1;-webkit-transform-origin:50% 0%;transform-origin:50% 0%;visibility:hidden}.btn,.btn-large,.btn-small,.btn-flat{border:none;border-radius:2px;display:inline-block;height:36px;line-height:36px;padding:0 16px;text-transform:uppercase;vertical-align:middle;-webkit-tap-highlight-color:transparent}.btn.disabled,.disabled.btn-large,.disabled.btn-small,.btn-floating.disabled,.btn-large.disabled,.btn-small.disabled,.btn-flat.disabled,.btn:disabled,.btn-large:disabled,.btn-small:disabled,.btn-floating:disabled,.btn-large:disabled,.btn-small:disabled,.btn-flat:disabled,.btn[disabled],.btn-large[disabled],.btn-small[disabled],.btn-floating[disabled],.btn-large[disabled],.btn-small[disabled],.btn-flat[disabled]{pointer-events:none;background-color:#DFDFDF !important;-webkit-box-shadow:none;box-shadow:none;color:#9F9F9F !important;cursor:default}.btn.disabled:hover,.disabled.btn-large:hover,.disabled.btn-small:hover,.btn-floating.disabled:hover,.btn-large.disabled:hover,.btn-small.disabled:hover,.btn-flat.disabled:hover,.btn:disabled:hover,.btn-large:disabled:hover,.btn-small:disabled:hover,.btn-floating:disabled:hover,.btn-large:disabled:hover,.btn-small:disabled:hover,.btn-flat:disabled:hover,.btn[disabled]:hover,.btn-large[disabled]:hover,.btn-small[disabled]:hover,.btn-floating[disabled]:hover,.btn-large[disabled]:hover,.btn-small[disabled]:hover,.btn-flat[disabled]:hover{background-color:#DFDFDF !important;color:#9F9F9F !important}.btn,.btn-large,.btn-small,.btn-floating,.btn-large,.btn-small,.btn-flat{font-size:14px;outline:0}.btn i,.btn-large i,.btn-small i,.btn-floating i,.btn-large i,.btn-small i,.btn-flat i{font-size:1.3rem;line-height:inherit}.btn:focus,.btn-large:focus,.btn-small:focus,.btn-floating:focus{background-color:#1d7d74}.btn,.btn-large,.btn-small{text-decoration:none;color:#fff;background-color:#26a69a;text-align:center;letter-spacing:.5px;-webkit-transition:background-color .2s ease-out;transition:background-color .2s ease-out;cursor:pointer}.btn:hover,.btn-large:hover,.btn-small:hover{background-color:#2bbbad}.btn-floating{display:inline-block;color:#fff;position:relative;overflow:hidden;z-index:1;width:40px;height:40px;line-height:40px;padding:0;background-color:#26a69a;border-radius:50%;-webkit-transition:background-color .3s;transition:background-color .3s;cursor:pointer;vertical-align:middle}.btn-floating:hover{background-color:#26a69a}.btn-floating:before{border-radius:0}.btn-floating.btn-large{width:56px;height:56px;padding:0}.btn-floating.btn-large.halfway-fab{bottom:-28px}.btn-floating.btn-large i{line-height:56px}.btn-floating.btn-small{width:32.4px;height:32.4px}.btn-floating.btn-small.halfway-fab{bottom:-16.2px}.btn-floating.btn-small i{line-height:32.4px}.btn-floating.halfway-fab{position:absolute;right:24px;bottom:-20px}.btn-floating.halfway-fab.left{right:auto;left:24px}.btn-floating i{width:inherit;display:inline-block;text-align:center;color:#fff;font-size:1.6rem;line-height:40px}button.btn-floating{border:none}.fixed-action-btn{position:fixed;right:23px;bottom:23px;padding-top:15px;margin-bottom:0;z-index:997}.fixed-action-btn.active ul{visibility:visible}.fixed-action-btn.direction-left,.fixed-action-btn.direction-right{padding:0 0 0 15px}.fixed-action-btn.direction-left ul,.fixed-action-btn.direction-right ul{text-align:right;right:64px;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);height:100%;left:auto;width:500px}.fixed-action-btn.direction-left ul li,.fixed-action-btn.direction-right ul li{display:inline-block;margin:7.5px 15px 0 0}.fixed-action-btn.direction-right{padding:0 15px 0 0}.fixed-action-btn.direction-right ul{text-align:left;direction:rtl;left:64px;right:auto}.fixed-action-btn.direction-right ul li{margin:7.5px 0 0 15px}.fixed-action-btn.direction-bottom{padding:0 0 15px 0}.fixed-action-btn.direction-bottom ul{top:64px;bottom:auto;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:reverse;-webkit-flex-direction:column-reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse}.fixed-action-btn.direction-bottom ul li{margin:15px 0 0 0}.fixed-action-btn.toolbar{padding:0;height:56px}.fixed-action-btn.toolbar.active>a i{opacity:0}.fixed-action-btn.toolbar ul{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;top:0;bottom:0;z-index:1}.fixed-action-btn.toolbar ul li{-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;display:inline-block;margin:0;height:100%;-webkit-transition:none;transition:none}.fixed-action-btn.toolbar ul li a{display:block;overflow:hidden;position:relative;width:100%;height:100%;background-color:transparent;-webkit-box-shadow:none;box-shadow:none;color:#fff;line-height:56px;z-index:1}.fixed-action-btn.toolbar ul li a i{line-height:inherit}.fixed-action-btn ul{left:0;right:0;text-align:center;position:absolute;bottom:64px;margin:0;visibility:hidden}.fixed-action-btn ul li{margin-bottom:15px}.fixed-action-btn ul a.btn-floating{opacity:0}.fixed-action-btn .fab-backdrop{position:absolute;top:0;left:0;z-index:-1;width:40px;height:40px;background-color:#26a69a;border-radius:50%;-webkit-transform:scale(0);transform:scale(0)}.btn-flat{-webkit-box-shadow:none;box-shadow:none;background-color:transparent;color:#343434;cursor:pointer;-webkit-transition:background-color .2s;transition:background-color .2s}.btn-flat:focus,.btn-flat:hover{-webkit-box-shadow:none;box-shadow:none}.btn-flat:focus{background-color:rgba(0,0,0,0.1)}.btn-flat.disabled,.btn-flat.btn-flat[disabled]{background-color:transparent !important;color:#b3b2b2 !important;cursor:default}.btn-large{height:54px;line-height:54px;font-size:15px;padding:0 28px}.btn-large i{font-size:1.6rem}.btn-small{height:32.4px;line-height:32.4px;font-size:13px}.btn-small i{font-size:1.2rem}.btn-block{display:block}.dropdown-content{background-color:#fff;margin:0;display:none;min-width:100px;overflow-y:auto;opacity:0;position:absolute;left:0;top:0;z-index:9999;-webkit-transform-origin:0 0;transform-origin:0 0}.dropdown-content:focus{outline:0}.dropdown-content li{clear:both;color:rgba(0,0,0,0.87);cursor:pointer;min-height:50px;line-height:1.5rem;width:100%;text-align:left}.dropdown-content li:hover,.dropdown-content li.active{background-color:#eee}.dropdown-content li:focus{outline:none}.dropdown-content li.divider{min-height:0;height:1px}.dropdown-content li>a,.dropdown-content li>span{font-size:16px;color:#26a69a;display:block;line-height:22px;padding:14px 16px}.dropdown-content li>span>label{top:1px;left:0;height:18px}.dropdown-content li>a>i{height:inherit;line-height:inherit;float:left;margin:0 24px 0 0;width:24px}body.keyboard-focused .dropdown-content li:focus{background-color:#dadada}.input-field.col .dropdown-content [type="checkbox"]+label{top:1px;left:0;height:18px;-webkit-transform:none;transform:none}.dropdown-trigger{cursor:pointer}/*!
|
9 |
+
* Waves v0.6.0
|
10 |
+
* http://fian.my.id/Waves
|
11 |
+
*
|
12 |
+
* Copyright 2014 Alfiana E. Sibuea and other contributors
|
13 |
+
* Released under the MIT license
|
14 |
+
* https://github.com/fians/Waves/blob/master/LICENSE
|
15 |
+
*/.waves-effect{position:relative;cursor:pointer;display:inline-block;overflow:hidden;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;vertical-align:middle;z-index:1;-webkit-transition:.3s ease-out;transition:.3s ease-out}.waves-effect .waves-ripple{position:absolute;border-radius:50%;width:20px;height:20px;margin-top:-10px;margin-left:-10px;opacity:0;background:rgba(0,0,0,0.2);-webkit-transition:all 0.7s ease-out;transition:all 0.7s ease-out;-webkit-transition-property:opacity, -webkit-transform;transition-property:opacity, -webkit-transform;transition-property:transform, opacity;transition-property:transform, opacity, -webkit-transform;-webkit-transform:scale(0);transform:scale(0);pointer-events:none}.waves-effect.waves-light .waves-ripple{background-color:rgba(255,255,255,0.45)}.waves-effect.waves-red .waves-ripple{background-color:rgba(244,67,54,0.7)}.waves-effect.waves-yellow .waves-ripple{background-color:rgba(255,235,59,0.7)}.waves-effect.waves-orange .waves-ripple{background-color:rgba(255,152,0,0.7)}.waves-effect.waves-purple .waves-ripple{background-color:rgba(156,39,176,0.7)}.waves-effect.waves-green .waves-ripple{background-color:rgba(76,175,80,0.7)}.waves-effect.waves-teal .waves-ripple{background-color:rgba(0,150,136,0.7)}.waves-effect input[type="button"],.waves-effect input[type="reset"],.waves-effect input[type="submit"]{border:0;font-style:normal;font-size:inherit;text-transform:inherit;background:none}.waves-effect img{position:relative;z-index:-1}.waves-notransition{-webkit-transition:none !important;transition:none !important}.waves-circle{-webkit-transform:translateZ(0);transform:translateZ(0);-webkit-mask-image:-webkit-radial-gradient(circle, white 100%, black 100%)}.waves-input-wrapper{border-radius:0.2em;vertical-align:bottom}.waves-input-wrapper .waves-button-input{position:relative;top:0;left:0;z-index:1}.waves-circle{text-align:center;width:2.5em;height:2.5em;line-height:2.5em;border-radius:50%;-webkit-mask-image:none}.waves-block{display:block}.waves-effect .waves-ripple{z-index:-1}.modal{display:none;position:fixed;left:0;right:0;background-color:#fafafa;padding:0;max-height:70%;width:55%;margin:auto;overflow-y:auto;border-radius:2px;will-change:top, opacity}.modal:focus{outline:none}@media only screen and (max-width: 992px){.modal{width:80%}}.modal h1,.modal h2,.modal h3,.modal h4{margin-top:0}.modal .modal-content{padding:24px}.modal .modal-close{cursor:pointer}.modal .modal-footer{border-radius:0 0 2px 2px;background-color:#fafafa;padding:4px 6px;height:56px;width:100%;text-align:right}.modal .modal-footer .btn,.modal .modal-footer .btn-large,.modal .modal-footer .btn-small,.modal .modal-footer .btn-flat{margin:6px 0}.modal-overlay{position:fixed;z-index:999;top:-25%;left:0;bottom:0;right:0;height:125%;width:100%;background:#000;display:none;will-change:opacity}.modal.modal-fixed-footer{padding:0;height:70%}.modal.modal-fixed-footer .modal-content{position:absolute;height:calc(100% - 56px);max-height:100%;width:100%;overflow-y:auto}.modal.modal-fixed-footer .modal-footer{border-top:1px solid rgba(0,0,0,0.1);position:absolute;bottom:0}.modal.bottom-sheet{top:auto;bottom:-100%;margin:0;width:100%;max-height:45%;border-radius:0;will-change:bottom, opacity}.collapsible{border-top:1px solid #ddd;border-right:1px solid #ddd;border-left:1px solid #ddd;margin:.5rem 0 1rem 0}.collapsible-header{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;cursor:pointer;-webkit-tap-highlight-color:transparent;line-height:1.5;padding:1rem;background-color:#fff;border-bottom:1px solid #ddd}.collapsible-header:focus{outline:0}.collapsible-header i{width:2rem;font-size:1.6rem;display:inline-block;text-align:center;margin-right:1rem}.keyboard-focused .collapsible-header:focus{background-color:#eee}.collapsible-body{display:none;border-bottom:1px solid #ddd;-webkit-box-sizing:border-box;box-sizing:border-box;padding:2rem}.sidenav .collapsible,.sidenav.fixed .collapsible{border:none;-webkit-box-shadow:none;box-shadow:none}.sidenav .collapsible li,.sidenav.fixed .collapsible li{padding:0}.sidenav .collapsible-header,.sidenav.fixed .collapsible-header{background-color:transparent;border:none;line-height:inherit;height:inherit;padding:0 16px}.sidenav .collapsible-header:hover,.sidenav.fixed .collapsible-header:hover{background-color:rgba(0,0,0,0.05)}.sidenav .collapsible-header i,.sidenav.fixed .collapsible-header i{line-height:inherit}.sidenav .collapsible-body,.sidenav.fixed .collapsible-body{border:0;background-color:#fff}.sidenav .collapsible-body li a,.sidenav.fixed .collapsible-body li a{padding:0 23.5px 0 31px}.collapsible.popout{border:none;-webkit-box-shadow:none;box-shadow:none}.collapsible.popout>li{-webkit-box-shadow:0 2px 5px 0 rgba(0,0,0,0.16),0 2px 10px 0 rgba(0,0,0,0.12);box-shadow:0 2px 5px 0 rgba(0,0,0,0.16),0 2px 10px 0 rgba(0,0,0,0.12);margin:0 24px;-webkit-transition:margin 0.35s cubic-bezier(0.25, 0.46, 0.45, 0.94);transition:margin 0.35s cubic-bezier(0.25, 0.46, 0.45, 0.94)}.collapsible.popout>li.active{-webkit-box-shadow:0 5px 11px 0 rgba(0,0,0,0.18),0 4px 15px 0 rgba(0,0,0,0.15);box-shadow:0 5px 11px 0 rgba(0,0,0,0.18),0 4px 15px 0 rgba(0,0,0,0.15);margin:16px 0}.chip{display:inline-block;height:32px;font-size:13px;font-weight:500;color:rgba(0,0,0,0.6);line-height:32px;padding:0 12px;border-radius:16px;background-color:#e4e4e4;margin-bottom:5px;margin-right:5px}.chip:focus{outline:none;background-color:#26a69a;color:#fff}.chip>img{float:left;margin:0 8px 0 -12px;height:32px;width:32px;border-radius:50%}.chip .close{cursor:pointer;float:right;font-size:16px;line-height:32px;padding-left:8px}.chips{border:none;border-bottom:1px solid #9e9e9e;-webkit-box-shadow:none;box-shadow:none;margin:0 0 8px 0;min-height:45px;outline:none;-webkit-transition:all .3s;transition:all .3s}.chips.focus{border-bottom:1px solid #26a69a;-webkit-box-shadow:0 1px 0 0 #26a69a;box-shadow:0 1px 0 0 #26a69a}.chips:hover{cursor:text}.chips .input{background:none;border:0;color:rgba(0,0,0,0.6);display:inline-block;font-size:16px;height:3rem;line-height:32px;outline:0;margin:0;padding:0 !important;width:120px !important}.chips .input:focus{border:0 !important;-webkit-box-shadow:none !important;box-shadow:none !important}.chips .autocomplete-content{margin-top:0;margin-bottom:0}.prefix ~ .chips{margin-left:3rem;width:92%;width:calc(100% - 3rem)}.chips:empty ~ label{font-size:0.8rem;-webkit-transform:translateY(-140%);transform:translateY(-140%)}.materialboxed{display:block;cursor:-webkit-zoom-in;cursor:zoom-in;position:relative;-webkit-transition:opacity .4s;transition:opacity .4s;-webkit-backface-visibility:hidden}.materialboxed:hover:not(.active){opacity:.8}.materialboxed.active{cursor:-webkit-zoom-out;cursor:zoom-out}#materialbox-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background-color:#292929;z-index:1000;will-change:opacity}.materialbox-caption{position:fixed;display:none;color:#fff;line-height:50px;bottom:0;left:0;width:100%;text-align:center;padding:0% 15%;height:50px;z-index:1000;-webkit-font-smoothing:antialiased}select:focus{outline:1px solid #c9f3ef}button:focus{outline:none;background-color:#2ab7a9}label{font-size:.8rem;color:#9e9e9e}::-webkit-input-placeholder{color:#d1d1d1}::-moz-placeholder{color:#d1d1d1}:-ms-input-placeholder{color:#d1d1d1}::-ms-input-placeholder{color:#d1d1d1}::placeholder{color:#d1d1d1}input:not([type]),input[type=text]:not(.browser-default),input[type=password]:not(.browser-default),input[type=email]:not(.browser-default),input[type=url]:not(.browser-default),input[type=time]:not(.browser-default),input[type=date]:not(.browser-default),input[type=datetime]:not(.browser-default),input[type=datetime-local]:not(.browser-default),input[type=tel]:not(.browser-default),input[type=number]:not(.browser-default),input[type=search]:not(.browser-default),textarea.materialize-textarea{background-color:transparent;border:none;border-bottom:1px solid #9e9e9e;border-radius:0;outline:none;height:3rem;width:100%;font-size:16px;margin:0 0 8px 0;padding:0;-webkit-box-shadow:none;box-shadow:none;-webkit-box-sizing:content-box;box-sizing:content-box;-webkit-transition:border .3s, -webkit-box-shadow .3s;transition:border .3s, -webkit-box-shadow .3s;transition:box-shadow .3s, border .3s;transition:box-shadow .3s, border .3s, -webkit-box-shadow .3s}input:not([type]):disabled,input:not([type])[readonly="readonly"],input[type=text]:not(.browser-default):disabled,input[type=text]:not(.browser-default)[readonly="readonly"],input[type=password]:not(.browser-default):disabled,input[type=password]:not(.browser-default)[readonly="readonly"],input[type=email]:not(.browser-default):disabled,input[type=email]:not(.browser-default)[readonly="readonly"],input[type=url]:not(.browser-default):disabled,input[type=url]:not(.browser-default)[readonly="readonly"],input[type=time]:not(.browser-default):disabled,input[type=time]:not(.browser-default)[readonly="readonly"],input[type=date]:not(.browser-default):disabled,input[type=date]:not(.browser-default)[readonly="readonly"],input[type=datetime]:not(.browser-default):disabled,input[type=datetime]:not(.browser-default)[readonly="readonly"],input[type=datetime-local]:not(.browser-default):disabled,input[type=datetime-local]:not(.browser-default)[readonly="readonly"],input[type=tel]:not(.browser-default):disabled,input[type=tel]:not(.browser-default)[readonly="readonly"],input[type=number]:not(.browser-default):disabled,input[type=number]:not(.browser-default)[readonly="readonly"],input[type=search]:not(.browser-default):disabled,input[type=search]:not(.browser-default)[readonly="readonly"],textarea.materialize-textarea:disabled,textarea.materialize-textarea[readonly="readonly"]{color:rgba(0,0,0,0.42);border-bottom:1px dotted rgba(0,0,0,0.42)}input:not([type]):disabled+label,input:not([type])[readonly="readonly"]+label,input[type=text]:not(.browser-default):disabled+label,input[type=text]:not(.browser-default)[readonly="readonly"]+label,input[type=password]:not(.browser-default):disabled+label,input[type=password]:not(.browser-default)[readonly="readonly"]+label,input[type=email]:not(.browser-default):disabled+label,input[type=email]:not(.browser-default)[readonly="readonly"]+label,input[type=url]:not(.browser-default):disabled+label,input[type=url]:not(.browser-default)[readonly="readonly"]+label,input[type=time]:not(.browser-default):disabled+label,input[type=time]:not(.browser-default)[readonly="readonly"]+label,input[type=date]:not(.browser-default):disabled+label,input[type=date]:not(.browser-default)[readonly="readonly"]+label,input[type=datetime]:not(.browser-default):disabled+label,input[type=datetime]:not(.browser-default)[readonly="readonly"]+label,input[type=datetime-local]:not(.browser-default):disabled+label,input[type=datetime-local]:not(.browser-default)[readonly="readonly"]+label,input[type=tel]:not(.browser-default):disabled+label,input[type=tel]:not(.browser-default)[readonly="readonly"]+label,input[type=number]:not(.browser-default):disabled+label,input[type=number]:not(.browser-default)[readonly="readonly"]+label,input[type=search]:not(.browser-default):disabled+label,input[type=search]:not(.browser-default)[readonly="readonly"]+label,textarea.materialize-textarea:disabled+label,textarea.materialize-textarea[readonly="readonly"]+label{color:rgba(0,0,0,0.42)}input:not([type]):focus:not([readonly]),input[type=text]:not(.browser-default):focus:not([readonly]),input[type=password]:not(.browser-default):focus:not([readonly]),input[type=email]:not(.browser-default):focus:not([readonly]),input[type=url]:not(.browser-default):focus:not([readonly]),input[type=time]:not(.browser-default):focus:not([readonly]),input[type=date]:not(.browser-default):focus:not([readonly]),input[type=datetime]:not(.browser-default):focus:not([readonly]),input[type=datetime-local]:not(.browser-default):focus:not([readonly]),input[type=tel]:not(.browser-default):focus:not([readonly]),input[type=number]:not(.browser-default):focus:not([readonly]),input[type=search]:not(.browser-default):focus:not([readonly]),textarea.materialize-textarea:focus:not([readonly]){border-bottom:1px solid #26a69a;-webkit-box-shadow:0 1px 0 0 #26a69a;box-shadow:0 1px 0 0 #26a69a}input:not([type]):focus:not([readonly])+label,input[type=text]:not(.browser-default):focus:not([readonly])+label,input[type=password]:not(.browser-default):focus:not([readonly])+label,input[type=email]:not(.browser-default):focus:not([readonly])+label,input[type=url]:not(.browser-default):focus:not([readonly])+label,input[type=time]:not(.browser-default):focus:not([readonly])+label,input[type=date]:not(.browser-default):focus:not([readonly])+label,input[type=datetime]:not(.browser-default):focus:not([readonly])+label,input[type=datetime-local]:not(.browser-default):focus:not([readonly])+label,input[type=tel]:not(.browser-default):focus:not([readonly])+label,input[type=number]:not(.browser-default):focus:not([readonly])+label,input[type=search]:not(.browser-default):focus:not([readonly])+label,textarea.materialize-textarea:focus:not([readonly])+label{color:#26a69a}input:not([type]):focus.valid ~ label,input[type=text]:not(.browser-default):focus.valid ~ label,input[type=password]:not(.browser-default):focus.valid ~ label,input[type=email]:not(.browser-default):focus.valid ~ label,input[type=url]:not(.browser-default):focus.valid ~ label,input[type=time]:not(.browser-default):focus.valid ~ label,input[type=date]:not(.browser-default):focus.valid ~ label,input[type=datetime]:not(.browser-default):focus.valid ~ label,input[type=datetime-local]:not(.browser-default):focus.valid ~ label,input[type=tel]:not(.browser-default):focus.valid ~ label,input[type=number]:not(.browser-default):focus.valid ~ label,input[type=search]:not(.browser-default):focus.valid ~ label,textarea.materialize-textarea:focus.valid ~ label{color:#4CAF50}input:not([type]):focus.invalid ~ label,input[type=text]:not(.browser-default):focus.invalid ~ label,input[type=password]:not(.browser-default):focus.invalid ~ label,input[type=email]:not(.browser-default):focus.invalid ~ label,input[type=url]:not(.browser-default):focus.invalid ~ label,input[type=time]:not(.browser-default):focus.invalid ~ label,input[type=date]:not(.browser-default):focus.invalid ~ label,input[type=datetime]:not(.browser-default):focus.invalid ~ label,input[type=datetime-local]:not(.browser-default):focus.invalid ~ label,input[type=tel]:not(.browser-default):focus.invalid ~ label,input[type=number]:not(.browser-default):focus.invalid ~ label,input[type=search]:not(.browser-default):focus.invalid ~ label,textarea.materialize-textarea:focus.invalid ~ label{color:#F44336}input:not([type]).validate+label,input[type=text]:not(.browser-default).validate+label,input[type=password]:not(.browser-default).validate+label,input[type=email]:not(.browser-default).validate+label,input[type=url]:not(.browser-default).validate+label,input[type=time]:not(.browser-default).validate+label,input[type=date]:not(.browser-default).validate+label,input[type=datetime]:not(.browser-default).validate+label,input[type=datetime-local]:not(.browser-default).validate+label,input[type=tel]:not(.browser-default).validate+label,input[type=number]:not(.browser-default).validate+label,input[type=search]:not(.browser-default).validate+label,textarea.materialize-textarea.validate+label{width:100%}input.valid:not([type]),input.valid:not([type]):focus,input.valid[type=text]:not(.browser-default),input.valid[type=text]:not(.browser-default):focus,input.valid[type=password]:not(.browser-default),input.valid[type=password]:not(.browser-default):focus,input.valid[type=email]:not(.browser-default),input.valid[type=email]:not(.browser-default):focus,input.valid[type=url]:not(.browser-default),input.valid[type=url]:not(.browser-default):focus,input.valid[type=time]:not(.browser-default),input.valid[type=time]:not(.browser-default):focus,input.valid[type=date]:not(.browser-default),input.valid[type=date]:not(.browser-default):focus,input.valid[type=datetime]:not(.browser-default),input.valid[type=datetime]:not(.browser-default):focus,input.valid[type=datetime-local]:not(.browser-default),input.valid[type=datetime-local]:not(.browser-default):focus,input.valid[type=tel]:not(.browser-default),input.valid[type=tel]:not(.browser-default):focus,input.valid[type=number]:not(.browser-default),input.valid[type=number]:not(.browser-default):focus,input.valid[type=search]:not(.browser-default),input.valid[type=search]:not(.browser-default):focus,textarea.materialize-textarea.valid,textarea.materialize-textarea.valid:focus,.select-wrapper.valid>input.select-dropdown{border-bottom:1px solid #4CAF50;-webkit-box-shadow:0 1px 0 0 #4CAF50;box-shadow:0 1px 0 0 #4CAF50}input.invalid:not([type]),input.invalid:not([type]):focus,input.invalid[type=text]:not(.browser-default),input.invalid[type=text]:not(.browser-default):focus,input.invalid[type=password]:not(.browser-default),input.invalid[type=password]:not(.browser-default):focus,input.invalid[type=email]:not(.browser-default),input.invalid[type=email]:not(.browser-default):focus,input.invalid[type=url]:not(.browser-default),input.invalid[type=url]:not(.browser-default):focus,input.invalid[type=time]:not(.browser-default),input.invalid[type=time]:not(.browser-default):focus,input.invalid[type=date]:not(.browser-default),input.invalid[type=date]:not(.browser-default):focus,input.invalid[type=datetime]:not(.browser-default),input.invalid[type=datetime]:not(.browser-default):focus,input.invalid[type=datetime-local]:not(.browser-default),input.invalid[type=datetime-local]:not(.browser-default):focus,input.invalid[type=tel]:not(.browser-default),input.invalid[type=tel]:not(.browser-default):focus,input.invalid[type=number]:not(.browser-default),input.invalid[type=number]:not(.browser-default):focus,input.invalid[type=search]:not(.browser-default),input.invalid[type=search]:not(.browser-default):focus,textarea.materialize-textarea.invalid,textarea.materialize-textarea.invalid:focus,.select-wrapper.invalid>input.select-dropdown,.select-wrapper.invalid>input.select-dropdown:focus{border-bottom:1px solid #F44336;-webkit-box-shadow:0 1px 0 0 #F44336;box-shadow:0 1px 0 0 #F44336}input:not([type]).valid ~ .helper-text[data-success],input:not([type]):focus.valid ~ .helper-text[data-success],input:not([type]).invalid ~ .helper-text[data-error],input:not([type]):focus.invalid ~ .helper-text[data-error],input[type=text]:not(.browser-default).valid ~ .helper-text[data-success],input[type=text]:not(.browser-default):focus.valid ~ .helper-text[data-success],input[type=text]:not(.browser-default).invalid ~ .helper-text[data-error],input[type=text]:not(.browser-default):focus.invalid ~ .helper-text[data-error],input[type=password]:not(.browser-default).valid ~ .helper-text[data-success],input[type=password]:not(.browser-default):focus.valid ~ .helper-text[data-success],input[type=password]:not(.browser-default).invalid ~ .helper-text[data-error],input[type=password]:not(.browser-default):focus.invalid ~ .helper-text[data-error],input[type=email]:not(.browser-default).valid ~ .helper-text[data-success],input[type=email]:not(.browser-default):focus.valid ~ .helper-text[data-success],input[type=email]:not(.browser-default).invalid ~ .helper-text[data-error],input[type=email]:not(.browser-default):focus.invalid ~ .helper-text[data-error],input[type=url]:not(.browser-default).valid ~ .helper-text[data-success],input[type=url]:not(.browser-default):focus.valid ~ .helper-text[data-success],input[type=url]:not(.browser-default).invalid ~ .helper-text[data-error],input[type=url]:not(.browser-default):focus.invalid ~ .helper-text[data-error],input[type=time]:not(.browser-default).valid ~ .helper-text[data-success],input[type=time]:not(.browser-default):focus.valid ~ .helper-text[data-success],input[type=time]:not(.browser-default).invalid ~ .helper-text[data-error],input[type=time]:not(.browser-default):focus.invalid ~ .helper-text[data-error],input[type=date]:not(.browser-default).valid ~ .helper-text[data-success],input[type=date]:not(.browser-default):focus.valid ~ .helper-text[data-success],input[type=date]:not(.browser-default).invalid ~ .helper-text[data-error],input[type=date]:not(.browser-default):focus.invalid ~ .helper-text[data-error],input[type=datetime]:not(.browser-default).valid ~ .helper-text[data-success],input[type=datetime]:not(.browser-default):focus.valid ~ .helper-text[data-success],input[type=datetime]:not(.browser-default).invalid ~ .helper-text[data-error],input[type=datetime]:not(.browser-default):focus.invalid ~ .helper-text[data-error],input[type=datetime-local]:not(.browser-default).valid ~ .helper-text[data-success],input[type=datetime-local]:not(.browser-default):focus.valid ~ .helper-text[data-success],input[type=datetime-local]:not(.browser-default).invalid ~ .helper-text[data-error],input[type=datetime-local]:not(.browser-default):focus.invalid ~ .helper-text[data-error],input[type=tel]:not(.browser-default).valid ~ .helper-text[data-success],input[type=tel]:not(.browser-default):focus.valid ~ .helper-text[data-success],input[type=tel]:not(.browser-default).invalid ~ .helper-text[data-error],input[type=tel]:not(.browser-default):focus.invalid ~ .helper-text[data-error],input[type=number]:not(.browser-default).valid ~ .helper-text[data-success],input[type=number]:not(.browser-default):focus.valid ~ .helper-text[data-success],input[type=number]:not(.browser-default).invalid ~ .helper-text[data-error],input[type=number]:not(.browser-default):focus.invalid ~ .helper-text[data-error],input[type=search]:not(.browser-default).valid ~ .helper-text[data-success],input[type=search]:not(.browser-default):focus.valid ~ .helper-text[data-success],input[type=search]:not(.browser-default).invalid ~ .helper-text[data-error],input[type=search]:not(.browser-default):focus.invalid ~ .helper-text[data-error],textarea.materialize-textarea.valid ~ .helper-text[data-success],textarea.materialize-textarea:focus.valid ~ .helper-text[data-success],textarea.materialize-textarea.invalid ~ .helper-text[data-error],textarea.materialize-textarea:focus.invalid ~ .helper-text[data-error],.select-wrapper.valid .helper-text[data-success],.select-wrapper.invalid ~ .helper-text[data-error]{color:transparent;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;pointer-events:none}input:not([type]).valid ~ .helper-text:after,input:not([type]):focus.valid ~ .helper-text:after,input[type=text]:not(.browser-default).valid ~ .helper-text:after,input[type=text]:not(.browser-default):focus.valid ~ .helper-text:after,input[type=password]:not(.browser-default).valid ~ .helper-text:after,input[type=password]:not(.browser-default):focus.valid ~ .helper-text:after,input[type=email]:not(.browser-default).valid ~ .helper-text:after,input[type=email]:not(.browser-default):focus.valid ~ .helper-text:after,input[type=url]:not(.browser-default).valid ~ .helper-text:after,input[type=url]:not(.browser-default):focus.valid ~ .helper-text:after,input[type=time]:not(.browser-default).valid ~ .helper-text:after,input[type=time]:not(.browser-default):focus.valid ~ .helper-text:after,input[type=date]:not(.browser-default).valid ~ .helper-text:after,input[type=date]:not(.browser-default):focus.valid ~ .helper-text:after,input[type=datetime]:not(.browser-default).valid ~ .helper-text:after,input[type=datetime]:not(.browser-default):focus.valid ~ .helper-text:after,input[type=datetime-local]:not(.browser-default).valid ~ .helper-text:after,input[type=datetime-local]:not(.browser-default):focus.valid ~ .helper-text:after,input[type=tel]:not(.browser-default).valid ~ .helper-text:after,input[type=tel]:not(.browser-default):focus.valid ~ .helper-text:after,input[type=number]:not(.browser-default).valid ~ .helper-text:after,input[type=number]:not(.browser-default):focus.valid ~ .helper-text:after,input[type=search]:not(.browser-default).valid ~ .helper-text:after,input[type=search]:not(.browser-default):focus.valid ~ .helper-text:after,textarea.materialize-textarea.valid ~ .helper-text:after,textarea.materialize-textarea:focus.valid ~ .helper-text:after,.select-wrapper.valid ~ .helper-text:after{content:attr(data-success);color:#4CAF50}input:not([type]).invalid ~ .helper-text:after,input:not([type]):focus.invalid ~ .helper-text:after,input[type=text]:not(.browser-default).invalid ~ .helper-text:after,input[type=text]:not(.browser-default):focus.invalid ~ .helper-text:after,input[type=password]:not(.browser-default).invalid ~ .helper-text:after,input[type=password]:not(.browser-default):focus.invalid ~ .helper-text:after,input[type=email]:not(.browser-default).invalid ~ .helper-text:after,input[type=email]:not(.browser-default):focus.invalid ~ .helper-text:after,input[type=url]:not(.browser-default).invalid ~ .helper-text:after,input[type=url]:not(.browser-default):focus.invalid ~ .helper-text:after,input[type=time]:not(.browser-default).invalid ~ .helper-text:after,input[type=time]:not(.browser-default):focus.invalid ~ .helper-text:after,input[type=date]:not(.browser-default).invalid ~ .helper-text:after,input[type=date]:not(.browser-default):focus.invalid ~ .helper-text:after,input[type=datetime]:not(.browser-default).invalid ~ .helper-text:after,input[type=datetime]:not(.browser-default):focus.invalid ~ .helper-text:after,input[type=datetime-local]:not(.browser-default).invalid ~ .helper-text:after,input[type=datetime-local]:not(.browser-default):focus.invalid ~ .helper-text:after,input[type=tel]:not(.browser-default).invalid ~ .helper-text:after,input[type=tel]:not(.browser-default):focus.invalid ~ .helper-text:after,input[type=number]:not(.browser-default).invalid ~ .helper-text:after,input[type=number]:not(.browser-default):focus.invalid ~ .helper-text:after,input[type=search]:not(.browser-default).invalid ~ .helper-text:after,input[type=search]:not(.browser-default):focus.invalid ~ .helper-text:after,textarea.materialize-textarea.invalid ~ .helper-text:after,textarea.materialize-textarea:focus.invalid ~ .helper-text:after,.select-wrapper.invalid ~ .helper-text:after{content:attr(data-error);color:#F44336}input:not([type])+label:after,input[type=text]:not(.browser-default)+label:after,input[type=password]:not(.browser-default)+label:after,input[type=email]:not(.browser-default)+label:after,input[type=url]:not(.browser-default)+label:after,input[type=time]:not(.browser-default)+label:after,input[type=date]:not(.browser-default)+label:after,input[type=datetime]:not(.browser-default)+label:after,input[type=datetime-local]:not(.browser-default)+label:after,input[type=tel]:not(.browser-default)+label:after,input[type=number]:not(.browser-default)+label:after,input[type=search]:not(.browser-default)+label:after,textarea.materialize-textarea+label:after,.select-wrapper+label:after{display:block;content:"";position:absolute;top:100%;left:0;opacity:0;-webkit-transition:.2s opacity ease-out, .2s color ease-out;transition:.2s opacity ease-out, .2s color ease-out}.input-field{position:relative;margin-top:1rem;margin-bottom:1rem}.input-field.inline{display:inline-block;vertical-align:middle;margin-left:5px}.input-field.inline input,.input-field.inline .select-dropdown{margin-bottom:1rem}.input-field.col label{left:.75rem}.input-field.col .prefix ~ label,.input-field.col .prefix ~ .validate ~ label{width:calc(100% - 3rem - 1.5rem)}.input-field>label{color:#9e9e9e;position:absolute;top:0;left:0;font-size:1rem;cursor:text;-webkit-transition:color .2s ease-out, -webkit-transform .2s ease-out;transition:color .2s ease-out, -webkit-transform .2s ease-out;transition:transform .2s ease-out, color .2s ease-out;transition:transform .2s ease-out, color .2s ease-out, -webkit-transform .2s ease-out;-webkit-transform-origin:0% 100%;transform-origin:0% 100%;text-align:initial;-webkit-transform:translateY(12px);transform:translateY(12px)}.input-field>label:not(.label-icon).active{-webkit-transform:translateY(-14px) scale(0.8);transform:translateY(-14px) scale(0.8);-webkit-transform-origin:0 0;transform-origin:0 0}.input-field>input[type]:-webkit-autofill:not(.browser-default):not([type="search"])+label,.input-field>input[type=date]:not(.browser-default)+label,.input-field>input[type=time]:not(.browser-default)+label{-webkit-transform:translateY(-14px) scale(0.8);transform:translateY(-14px) scale(0.8);-webkit-transform-origin:0 0;transform-origin:0 0}.input-field .helper-text{position:relative;min-height:18px;display:block;font-size:12px;color:rgba(0,0,0,0.54)}.input-field .helper-text::after{opacity:1;position:absolute;top:0;left:0}.input-field .prefix{position:absolute;width:3rem;font-size:2rem;-webkit-transition:color .2s;transition:color .2s;top:.5rem}.input-field .prefix.active{color:#26a69a}.input-field .prefix ~ input,.input-field .prefix ~ textarea,.input-field .prefix ~ label,.input-field .prefix ~ .validate ~ label,.input-field .prefix ~ .helper-text,.input-field .prefix ~ .autocomplete-content{margin-left:3rem;width:92%;width:calc(100% - 3rem)}.input-field .prefix ~ label{margin-left:3rem}@media only screen and (max-width: 992px){.input-field .prefix ~ input{width:86%;width:calc(100% - 3rem)}}@media only screen and (max-width: 600px){.input-field .prefix ~ input{width:80%;width:calc(100% - 3rem)}}.input-field input[type=search]{display:block;line-height:inherit;-webkit-transition:.3s background-color;transition:.3s background-color}.nav-wrapper .input-field input[type=search]{height:inherit;padding-left:4rem;width:calc(100% - 4rem);border:0;-webkit-box-shadow:none;box-shadow:none}.input-field input[type=search]:focus:not(.browser-default){background-color:#fff;border:0;-webkit-box-shadow:none;box-shadow:none;color:#444}.input-field input[type=search]:focus:not(.browser-default)+label i,.input-field input[type=search]:focus:not(.browser-default) ~ .mdi-navigation-close,.input-field input[type=search]:focus:not(.browser-default) ~ .material-icons{color:#444}.input-field input[type=search]+.label-icon{-webkit-transform:none;transform:none;left:1rem}.input-field input[type=search] ~ .mdi-navigation-close,.input-field input[type=search] ~ .material-icons{position:absolute;top:0;right:1rem;color:transparent;cursor:pointer;font-size:2rem;-webkit-transition:.3s color;transition:.3s color}textarea{width:100%;height:3rem;background-color:transparent}textarea.materialize-textarea{line-height:normal;overflow-y:hidden;padding:.8rem 0 .8rem 0;resize:none;min-height:3rem;-webkit-box-sizing:border-box;box-sizing:border-box}.hiddendiv{visibility:hidden;white-space:pre-wrap;word-wrap:break-word;overflow-wrap:break-word;padding-top:1.2rem;position:absolute;top:0;z-index:-1}.autocomplete-content li .highlight{color:#444}.autocomplete-content li img{height:40px;width:40px;margin:5px 15px}.character-counter{min-height:18px}[type="radio"]:not(:checked),[type="radio"]:checked{position:absolute;opacity:0;pointer-events:none}[type="radio"]:not(:checked)+span,[type="radio"]:checked+span{position:relative;padding-left:35px;cursor:pointer;display:inline-block;height:25px;line-height:25px;font-size:1rem;-webkit-transition:.28s ease;transition:.28s ease;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}[type="radio"]+span:before,[type="radio"]+span:after{content:'';position:absolute;left:0;top:0;margin:4px;width:16px;height:16px;z-index:0;-webkit-transition:.28s ease;transition:.28s ease}[type="radio"]:not(:checked)+span:before,[type="radio"]:not(:checked)+span:after,[type="radio"]:checked+span:before,[type="radio"]:checked+span:after,[type="radio"].with-gap:checked+span:before,[type="radio"].with-gap:checked+span:after{border-radius:50%}[type="radio"]:not(:checked)+span:before,[type="radio"]:not(:checked)+span:after{border:2px solid #5a5a5a}[type="radio"]:not(:checked)+span:after{-webkit-transform:scale(0);transform:scale(0)}[type="radio"]:checked+span:before{border:2px solid transparent}[type="radio"]:checked+span:after,[type="radio"].with-gap:checked+span:before,[type="radio"].with-gap:checked+span:after{border:2px solid #26a69a}[type="radio"]:checked+span:after,[type="radio"].with-gap:checked+span:after{background-color:#26a69a}[type="radio"]:checked+span:after{-webkit-transform:scale(1.02);transform:scale(1.02)}[type="radio"].with-gap:checked+span:after{-webkit-transform:scale(0.5);transform:scale(0.5)}[type="radio"].tabbed:focus+span:before{-webkit-box-shadow:0 0 0 10px rgba(0,0,0,0.1);box-shadow:0 0 0 10px rgba(0,0,0,0.1)}[type="radio"].with-gap:disabled:checked+span:before{border:2px solid rgba(0,0,0,0.42)}[type="radio"].with-gap:disabled:checked+span:after{border:none;background-color:rgba(0,0,0,0.42)}[type="radio"]:disabled:not(:checked)+span:before,[type="radio"]:disabled:checked+span:before{background-color:transparent;border-color:rgba(0,0,0,0.42)}[type="radio"]:disabled+span{color:rgba(0,0,0,0.42)}[type="radio"]:disabled:not(:checked)+span:before{border-color:rgba(0,0,0,0.42)}[type="radio"]:disabled:checked+span:after{background-color:rgba(0,0,0,0.42);border-color:#949494}[type="checkbox"]:not(:checked),[type="checkbox"]:checked{position:absolute;opacity:0;pointer-events:none}[type="checkbox"]+span:not(.lever){position:relative;padding-left:35px;cursor:pointer;display:inline-block;height:25px;line-height:25px;font-size:1rem;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}[type="checkbox"]+span:not(.lever):before,[type="checkbox"]:not(.filled-in)+span:not(.lever):after{content:'';position:absolute;top:0;left:0;width:18px;height:18px;z-index:0;border:2px solid #5a5a5a;border-radius:1px;margin-top:3px;-webkit-transition:.2s;transition:.2s}[type="checkbox"]:not(.filled-in)+span:not(.lever):after{border:0;-webkit-transform:scale(0);transform:scale(0)}[type="checkbox"]:not(:checked):disabled+span:not(.lever):before{border:none;background-color:rgba(0,0,0,0.42)}[type="checkbox"].tabbed:focus+span:not(.lever):after{-webkit-transform:scale(1);transform:scale(1);border:0;border-radius:50%;-webkit-box-shadow:0 0 0 10px rgba(0,0,0,0.1);box-shadow:0 0 0 10px rgba(0,0,0,0.1);background-color:rgba(0,0,0,0.1)}[type="checkbox"]:checked+span:not(.lever):before{top:-4px;left:-5px;width:12px;height:22px;border-top:2px solid transparent;border-left:2px solid transparent;border-right:2px solid #26a69a;border-bottom:2px solid #26a69a;-webkit-transform:rotate(40deg);transform:rotate(40deg);-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-transform-origin:100% 100%;transform-origin:100% 100%}[type="checkbox"]:checked:disabled+span:before{border-right:2px solid rgba(0,0,0,0.42);border-bottom:2px solid rgba(0,0,0,0.42)}[type="checkbox"]:indeterminate+span:not(.lever):before{top:-11px;left:-12px;width:10px;height:22px;border-top:none;border-left:none;border-right:2px solid #26a69a;border-bottom:none;-webkit-transform:rotate(90deg);transform:rotate(90deg);-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-transform-origin:100% 100%;transform-origin:100% 100%}[type="checkbox"]:indeterminate:disabled+span:not(.lever):before{border-right:2px solid rgba(0,0,0,0.42);background-color:transparent}[type="checkbox"].filled-in+span:not(.lever):after{border-radius:2px}[type="checkbox"].filled-in+span:not(.lever):before,[type="checkbox"].filled-in+span:not(.lever):after{content:'';left:0;position:absolute;-webkit-transition:border .25s, background-color .25s, width .20s .1s, height .20s .1s, top .20s .1s, left .20s .1s;transition:border .25s, background-color .25s, width .20s .1s, height .20s .1s, top .20s .1s, left .20s .1s;z-index:1}[type="checkbox"].filled-in:not(:checked)+span:not(.lever):before{width:0;height:0;border:3px solid transparent;left:6px;top:10px;-webkit-transform:rotateZ(37deg);transform:rotateZ(37deg);-webkit-transform-origin:100% 100%;transform-origin:100% 100%}[type="checkbox"].filled-in:not(:checked)+span:not(.lever):after{height:20px;width:20px;background-color:transparent;border:2px solid #5a5a5a;top:0px;z-index:0}[type="checkbox"].filled-in:checked+span:not(.lever):before{top:0;left:1px;width:8px;height:13px;border-top:2px solid transparent;border-left:2px solid transparent;border-right:2px solid #fff;border-bottom:2px solid #fff;-webkit-transform:rotateZ(37deg);transform:rotateZ(37deg);-webkit-transform-origin:100% 100%;transform-origin:100% 100%}[type="checkbox"].filled-in:checked+span:not(.lever):after{top:0;width:20px;height:20px;border:2px solid #26a69a;background-color:#26a69a;z-index:0}[type="checkbox"].filled-in.tabbed:focus+span:not(.lever):after{border-radius:2px;border-color:#5a5a5a;background-color:rgba(0,0,0,0.1)}[type="checkbox"].filled-in.tabbed:checked:focus+span:not(.lever):after{border-radius:2px;background-color:#26a69a;border-color:#26a69a}[type="checkbox"].filled-in:disabled:not(:checked)+span:not(.lever):before{background-color:transparent;border:2px solid transparent}[type="checkbox"].filled-in:disabled:not(:checked)+span:not(.lever):after{border-color:transparent;background-color:#949494}[type="checkbox"].filled-in:disabled:checked+span:not(.lever):before{background-color:transparent}[type="checkbox"].filled-in:disabled:checked+span:not(.lever):after{background-color:#949494;border-color:#949494}.switch,.switch *{-webkit-tap-highlight-color:transparent;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.switch label{cursor:pointer}.switch label input[type=checkbox]{opacity:0;width:0;height:0}.switch label input[type=checkbox]:checked+.lever{background-color:#84c7c1}.switch label input[type=checkbox]:checked+.lever:before,.switch label input[type=checkbox]:checked+.lever:after{left:18px}.switch label input[type=checkbox]:checked+.lever:after{background-color:#26a69a}.switch label .lever{content:"";display:inline-block;position:relative;width:36px;height:14px;background-color:rgba(0,0,0,0.38);border-radius:15px;margin-right:10px;-webkit-transition:background 0.3s ease;transition:background 0.3s ease;vertical-align:middle;margin:0 16px}.switch label .lever:before,.switch label .lever:after{content:"";position:absolute;display:inline-block;width:20px;height:20px;border-radius:50%;left:0;top:-3px;-webkit-transition:left 0.3s ease, background .3s ease, -webkit-box-shadow 0.1s ease, -webkit-transform .1s ease;transition:left 0.3s ease, background .3s ease, -webkit-box-shadow 0.1s ease, -webkit-transform .1s ease;transition:left 0.3s ease, background .3s ease, box-shadow 0.1s ease, transform .1s ease;transition:left 0.3s ease, background .3s ease, box-shadow 0.1s ease, transform .1s ease, -webkit-box-shadow 0.1s ease, -webkit-transform .1s ease}.switch label .lever:before{background-color:rgba(38,166,154,0.15)}.switch label .lever:after{background-color:#F1F1F1;-webkit-box-shadow:0px 3px 1px -2px rgba(0,0,0,0.2),0px 2px 2px 0px rgba(0,0,0,0.14),0px 1px 5px 0px rgba(0,0,0,0.12);box-shadow:0px 3px 1px -2px rgba(0,0,0,0.2),0px 2px 2px 0px rgba(0,0,0,0.14),0px 1px 5px 0px rgba(0,0,0,0.12)}input[type=checkbox]:checked:not(:disabled) ~ .lever:active::before,input[type=checkbox]:checked:not(:disabled).tabbed:focus ~ .lever::before{-webkit-transform:scale(2.4);transform:scale(2.4);background-color:rgba(38,166,154,0.15)}input[type=checkbox]:not(:disabled) ~ .lever:active:before,input[type=checkbox]:not(:disabled).tabbed:focus ~ .lever::before{-webkit-transform:scale(2.4);transform:scale(2.4);background-color:rgba(0,0,0,0.08)}.switch input[type=checkbox][disabled]+.lever{cursor:default;background-color:rgba(0,0,0,0.12)}.switch label input[type=checkbox][disabled]+.lever:after,.switch label input[type=checkbox][disabled]:checked+.lever:after{background-color:#949494}select{display:none}select.browser-default{display:block}select{background-color:rgba(255,255,255,0.9);width:100%;padding:5px;border:1px solid #f2f2f2;border-radius:2px;height:3rem}.select-label{position:absolute}.select-wrapper{position:relative}.select-wrapper.valid+label,.select-wrapper.invalid+label{width:100%;pointer-events:none}.select-wrapper input.select-dropdown{position:relative;cursor:pointer;background-color:transparent;border:none;border-bottom:1px solid #9e9e9e;outline:none;height:3rem;line-height:3rem;width:100%;font-size:16px;margin:0 0 8px 0;padding:0;display:block;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:1}.select-wrapper input.select-dropdown:focus{border-bottom:1px solid #26a69a}.select-wrapper .caret{position:absolute;right:0;top:0;bottom:0;margin:auto 0;z-index:0;fill:rgba(0,0,0,0.87)}.select-wrapper+label{position:absolute;top:-26px;font-size:.8rem}select:disabled{color:rgba(0,0,0,0.42)}.select-wrapper.disabled+label{color:rgba(0,0,0,0.42)}.select-wrapper.disabled .caret{fill:rgba(0,0,0,0.42)}.select-wrapper input.select-dropdown:disabled{color:rgba(0,0,0,0.42);cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.select-wrapper i{color:rgba(0,0,0,0.3)}.select-dropdown li.disabled,.select-dropdown li.disabled>span,.select-dropdown li.optgroup{color:rgba(0,0,0,0.3);background-color:transparent}body.keyboard-focused .select-dropdown.dropdown-content li:focus{background-color:rgba(0,0,0,0.08)}.select-dropdown.dropdown-content li:hover{background-color:rgba(0,0,0,0.08)}.select-dropdown.dropdown-content li.selected{background-color:rgba(0,0,0,0.03)}.prefix ~ .select-wrapper{margin-left:3rem;width:92%;width:calc(100% - 3rem)}.prefix ~ label{margin-left:3rem}.select-dropdown li img{height:40px;width:40px;margin:5px 15px;float:right}.select-dropdown li.optgroup{border-top:1px solid #eee}.select-dropdown li.optgroup.selected>span{color:rgba(0,0,0,0.7)}.select-dropdown li.optgroup>span{color:rgba(0,0,0,0.4)}.select-dropdown li.optgroup ~ li.optgroup-option{padding-left:1rem}.file-field{position:relative}.file-field .file-path-wrapper{overflow:hidden;padding-left:10px}.file-field input.file-path{width:100%}.file-field .btn,.file-field .btn-large,.file-field .btn-small{float:left;height:3rem;line-height:3rem}.file-field span{cursor:pointer}.file-field input[type=file]{position:absolute;top:0;right:0;left:0;bottom:0;width:100%;margin:0;padding:0;font-size:20px;cursor:pointer;opacity:0;filter:alpha(opacity=0)}.file-field input[type=file]::-webkit-file-upload-button{display:none}.range-field{position:relative}input[type=range],input[type=range]+.thumb{cursor:pointer}input[type=range]{position:relative;background-color:transparent;border:none;outline:none;width:100%;margin:15px 0;padding:0}input[type=range]:focus{outline:none}input[type=range]+.thumb{position:absolute;top:10px;left:0;border:none;height:0;width:0;border-radius:50%;background-color:#26a69a;margin-left:7px;-webkit-transform-origin:50% 50%;transform-origin:50% 50%;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}input[type=range]+.thumb .value{display:block;width:30px;text-align:center;color:#26a69a;font-size:0;-webkit-transform:rotate(45deg);transform:rotate(45deg)}input[type=range]+.thumb.active{border-radius:50% 50% 50% 0}input[type=range]+.thumb.active .value{color:#fff;margin-left:-1px;margin-top:8px;font-size:10px}input[type=range]{-webkit-appearance:none}input[type=range]::-webkit-slider-runnable-track{height:3px;background:#c2c0c2;border:none}input[type=range]::-webkit-slider-thumb{border:none;height:14px;width:14px;border-radius:50%;background:#26a69a;-webkit-transition:-webkit-box-shadow .3s;transition:-webkit-box-shadow .3s;transition:box-shadow .3s;transition:box-shadow .3s, -webkit-box-shadow .3s;-webkit-appearance:none;background-color:#26a69a;-webkit-transform-origin:50% 50%;transform-origin:50% 50%;margin:-5px 0 0 0}.keyboard-focused input[type=range]:focus:not(.active)::-webkit-slider-thumb{-webkit-box-shadow:0 0 0 10px rgba(38,166,154,0.26);box-shadow:0 0 0 10px rgba(38,166,154,0.26)}input[type=range]{border:1px solid white}input[type=range]::-moz-range-track{height:3px;background:#c2c0c2;border:none}input[type=range]::-moz-focus-inner{border:0}input[type=range]::-moz-range-thumb{border:none;height:14px;width:14px;border-radius:50%;background:#26a69a;-webkit-transition:-webkit-box-shadow .3s;transition:-webkit-box-shadow .3s;transition:box-shadow .3s;transition:box-shadow .3s, -webkit-box-shadow .3s;margin-top:-5px}input[type=range]:-moz-focusring{outline:1px solid #fff;outline-offset:-1px}.keyboard-focused input[type=range]:focus:not(.active)::-moz-range-thumb{box-shadow:0 0 0 10px rgba(38,166,154,0.26)}input[type=range]::-ms-track{height:3px;background:transparent;border-color:transparent;border-width:6px 0;color:transparent}input[type=range]::-ms-fill-lower{background:#777}input[type=range]::-ms-fill-upper{background:#ddd}input[type=range]::-ms-thumb{border:none;height:14px;width:14px;border-radius:50%;background:#26a69a;-webkit-transition:-webkit-box-shadow .3s;transition:-webkit-box-shadow .3s;transition:box-shadow .3s;transition:box-shadow .3s, -webkit-box-shadow .3s}.keyboard-focused input[type=range]:focus:not(.active)::-ms-thumb{box-shadow:0 0 0 10px rgba(38,166,154,0.26)}.table-of-contents.fixed{position:fixed}.table-of-contents li{padding:2px 0}.table-of-contents a{display:inline-block;font-weight:300;color:#757575;padding-left:16px;height:1.5rem;line-height:1.5rem;letter-spacing:.4;display:inline-block}.table-of-contents a:hover{color:#a8a8a8;padding-left:15px;border-left:1px solid #ee6e73}.table-of-contents a.active{font-weight:500;padding-left:14px;border-left:2px solid #ee6e73}.sidenav{position:fixed;width:300px;left:0;top:0;margin:0;-webkit-transform:translateX(-100%);transform:translateX(-100%);height:100%;height:calc(100% + 60px);height:-moz-calc(100%);padding-bottom:60px;background-color:#fff;z-index:999;overflow-y:auto;will-change:transform;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-transform:translateX(-105%);transform:translateX(-105%)}.sidenav.right-aligned{right:0;-webkit-transform:translateX(105%);transform:translateX(105%);left:auto;-webkit-transform:translateX(100%);transform:translateX(100%)}.sidenav .collapsible{margin:0}.sidenav li{float:none;line-height:48px}.sidenav li.active{background-color:rgba(0,0,0,0.05)}.sidenav li>a{color:rgba(0,0,0,0.87);display:block;font-size:14px;font-weight:500;height:48px;line-height:48px;padding:0 32px}.sidenav li>a:hover{background-color:rgba(0,0,0,0.05)}.sidenav li>a.btn,.sidenav li>a.btn-large,.sidenav li>a.btn-small,.sidenav li>a.btn-large,.sidenav li>a.btn-flat,.sidenav li>a.btn-floating{margin:10px 15px}.sidenav li>a.btn,.sidenav li>a.btn-large,.sidenav li>a.btn-small,.sidenav li>a.btn-large,.sidenav li>a.btn-floating{color:#fff}.sidenav li>a.btn-flat{color:#343434}.sidenav li>a.btn:hover,.sidenav li>a.btn-large:hover,.sidenav li>a.btn-small:hover,.sidenav li>a.btn-large:hover{background-color:#2bbbad}.sidenav li>a.btn-floating:hover{background-color:#26a69a}.sidenav li>a>i,.sidenav li>a>[class^="mdi-"],.sidenav li>a li>a>[class*="mdi-"],.sidenav li>a>i.material-icons{float:left;height:48px;line-height:48px;margin:0 32px 0 0;width:24px;color:rgba(0,0,0,0.54)}.sidenav .divider{margin:8px 0 0 0}.sidenav .subheader{cursor:initial;pointer-events:none;color:rgba(0,0,0,0.54);font-size:14px;font-weight:500;line-height:48px}.sidenav .subheader:hover{background-color:transparent}.sidenav .user-view{position:relative;padding:32px 32px 0;margin-bottom:8px}.sidenav .user-view>a{height:auto;padding:0}.sidenav .user-view>a:hover{background-color:transparent}.sidenav .user-view .background{overflow:hidden;position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1}.sidenav .user-view .circle,.sidenav .user-view .name,.sidenav .user-view .email{display:block}.sidenav .user-view .circle{height:64px;width:64px}.sidenav .user-view .name,.sidenav .user-view .email{font-size:14px;line-height:24px}.sidenav .user-view .name{margin-top:16px;font-weight:500}.sidenav .user-view .email{padding-bottom:16px;font-weight:400}.drag-target{height:100%;width:10px;position:fixed;top:0;z-index:998}.drag-target.right-aligned{right:0}.sidenav.sidenav-fixed{left:0;-webkit-transform:translateX(0);transform:translateX(0);position:fixed}.sidenav.sidenav-fixed.right-aligned{right:0;left:auto}@media only screen and (max-width: 992px){.sidenav.sidenav-fixed{-webkit-transform:translateX(-105%);transform:translateX(-105%)}.sidenav.sidenav-fixed.right-aligned{-webkit-transform:translateX(105%);transform:translateX(105%)}.sidenav>a{padding:0 16px}.sidenav .user-view{padding:16px 16px 0}}.sidenav .collapsible-body>ul:not(.collapsible)>li.active,.sidenav.sidenav-fixed .collapsible-body>ul:not(.collapsible)>li.active{background-color:#ee6e73}.sidenav .collapsible-body>ul:not(.collapsible)>li.active a,.sidenav.sidenav-fixed .collapsible-body>ul:not(.collapsible)>li.active a{color:#fff}.sidenav .collapsible-body{padding:0}.sidenav-overlay{position:fixed;top:0;left:0;right:0;opacity:0;height:120vh;background-color:rgba(0,0,0,0.5);z-index:997;display:none}.preloader-wrapper{display:inline-block;position:relative;width:50px;height:50px}.preloader-wrapper.small{width:36px;height:36px}.preloader-wrapper.big{width:64px;height:64px}.preloader-wrapper.active{-webkit-animation:container-rotate 1568ms linear infinite;animation:container-rotate 1568ms linear infinite}@-webkit-keyframes container-rotate{to{-webkit-transform:rotate(360deg)}}@keyframes container-rotate{to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.spinner-layer{position:absolute;width:100%;height:100%;opacity:0;border-color:#26a69a}.spinner-blue,.spinner-blue-only{border-color:#4285f4}.spinner-red,.spinner-red-only{border-color:#db4437}.spinner-yellow,.spinner-yellow-only{border-color:#f4b400}.spinner-green,.spinner-green-only{border-color:#0f9d58}.active .spinner-layer.spinner-blue{-webkit-animation:fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,blue-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;animation:fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,blue-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.active .spinner-layer.spinner-red{-webkit-animation:fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,red-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;animation:fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,red-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.active .spinner-layer.spinner-yellow{-webkit-animation:fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,yellow-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;animation:fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,yellow-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.active .spinner-layer.spinner-green{-webkit-animation:fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,green-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;animation:fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,green-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.active .spinner-layer,.active .spinner-layer.spinner-blue-only,.active .spinner-layer.spinner-red-only,.active .spinner-layer.spinner-yellow-only,.active .spinner-layer.spinner-green-only{opacity:1;-webkit-animation:fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;animation:fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}@-webkit-keyframes fill-unfill-rotate{12.5%{-webkit-transform:rotate(135deg)}25%{-webkit-transform:rotate(270deg)}37.5%{-webkit-transform:rotate(405deg)}50%{-webkit-transform:rotate(540deg)}62.5%{-webkit-transform:rotate(675deg)}75%{-webkit-transform:rotate(810deg)}87.5%{-webkit-transform:rotate(945deg)}to{-webkit-transform:rotate(1080deg)}}@keyframes fill-unfill-rotate{12.5%{-webkit-transform:rotate(135deg);transform:rotate(135deg)}25%{-webkit-transform:rotate(270deg);transform:rotate(270deg)}37.5%{-webkit-transform:rotate(405deg);transform:rotate(405deg)}50%{-webkit-transform:rotate(540deg);transform:rotate(540deg)}62.5%{-webkit-transform:rotate(675deg);transform:rotate(675deg)}75%{-webkit-transform:rotate(810deg);transform:rotate(810deg)}87.5%{-webkit-transform:rotate(945deg);transform:rotate(945deg)}to{-webkit-transform:rotate(1080deg);transform:rotate(1080deg)}}@-webkit-keyframes blue-fade-in-out{from{opacity:1}25%{opacity:1}26%{opacity:0}89%{opacity:0}90%{opacity:1}100%{opacity:1}}@keyframes blue-fade-in-out{from{opacity:1}25%{opacity:1}26%{opacity:0}89%{opacity:0}90%{opacity:1}100%{opacity:1}}@-webkit-keyframes red-fade-in-out{from{opacity:0}15%{opacity:0}25%{opacity:1}50%{opacity:1}51%{opacity:0}}@keyframes red-fade-in-out{from{opacity:0}15%{opacity:0}25%{opacity:1}50%{opacity:1}51%{opacity:0}}@-webkit-keyframes yellow-fade-in-out{from{opacity:0}40%{opacity:0}50%{opacity:1}75%{opacity:1}76%{opacity:0}}@keyframes yellow-fade-in-out{from{opacity:0}40%{opacity:0}50%{opacity:1}75%{opacity:1}76%{opacity:0}}@-webkit-keyframes green-fade-in-out{from{opacity:0}65%{opacity:0}75%{opacity:1}90%{opacity:1}100%{opacity:0}}@keyframes green-fade-in-out{from{opacity:0}65%{opacity:0}75%{opacity:1}90%{opacity:1}100%{opacity:0}}.gap-patch{position:absolute;top:0;left:45%;width:10%;height:100%;overflow:hidden;border-color:inherit}.gap-patch .circle{width:1000%;left:-450%}.circle-clipper{display:inline-block;position:relative;width:50%;height:100%;overflow:hidden;border-color:inherit}.circle-clipper .circle{width:200%;height:100%;border-width:3px;border-style:solid;border-color:inherit;border-bottom-color:transparent !important;border-radius:50%;-webkit-animation:none;animation:none;position:absolute;top:0;right:0;bottom:0}.circle-clipper.left .circle{left:0;border-right-color:transparent !important;-webkit-transform:rotate(129deg);transform:rotate(129deg)}.circle-clipper.right .circle{left:-100%;border-left-color:transparent !important;-webkit-transform:rotate(-129deg);transform:rotate(-129deg)}.active .circle-clipper.left .circle{-webkit-animation:left-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;animation:left-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.active .circle-clipper.right .circle{-webkit-animation:right-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;animation:right-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}@-webkit-keyframes left-spin{from{-webkit-transform:rotate(130deg)}50%{-webkit-transform:rotate(-5deg)}to{-webkit-transform:rotate(130deg)}}@keyframes left-spin{from{-webkit-transform:rotate(130deg);transform:rotate(130deg)}50%{-webkit-transform:rotate(-5deg);transform:rotate(-5deg)}to{-webkit-transform:rotate(130deg);transform:rotate(130deg)}}@-webkit-keyframes right-spin{from{-webkit-transform:rotate(-130deg)}50%{-webkit-transform:rotate(5deg)}to{-webkit-transform:rotate(-130deg)}}@keyframes right-spin{from{-webkit-transform:rotate(-130deg);transform:rotate(-130deg)}50%{-webkit-transform:rotate(5deg);transform:rotate(5deg)}to{-webkit-transform:rotate(-130deg);transform:rotate(-130deg)}}#spinnerContainer.cooldown{-webkit-animation:container-rotate 1568ms linear infinite,fade-out 400ms cubic-bezier(0.4, 0, 0.2, 1);animation:container-rotate 1568ms linear infinite,fade-out 400ms cubic-bezier(0.4, 0, 0.2, 1)}@-webkit-keyframes fade-out{from{opacity:1}to{opacity:0}}@keyframes fade-out{from{opacity:1}to{opacity:0}}.slider{position:relative;height:400px;width:100%}.slider.fullscreen{height:100%;width:100%;position:absolute;top:0;left:0;right:0;bottom:0}.slider.fullscreen ul.slides{height:100%}.slider.fullscreen ul.indicators{z-index:2;bottom:30px}.slider .slides{background-color:#9e9e9e;margin:0;height:400px}.slider .slides li{opacity:0;position:absolute;top:0;left:0;z-index:1;width:100%;height:inherit;overflow:hidden}.slider .slides li img{height:100%;width:100%;background-size:cover;background-position:center}.slider .slides li .caption{color:#fff;position:absolute;top:15%;left:15%;width:70%;opacity:0}.slider .slides li .caption p{color:#e0e0e0}.slider .slides li.active{z-index:2}.slider .indicators{position:absolute;text-align:center;left:0;right:0;bottom:0;margin:0}.slider .indicators .indicator-item{display:inline-block;position:relative;cursor:pointer;height:16px;width:16px;margin:0 12px;background-color:#e0e0e0;-webkit-transition:background-color .3s;transition:background-color .3s;border-radius:50%}.slider .indicators .indicator-item.active{background-color:#4CAF50}.carousel{overflow:hidden;position:relative;width:100%;height:400px;-webkit-perspective:500px;perspective:500px;-webkit-transform-style:preserve-3d;transform-style:preserve-3d;-webkit-transform-origin:0% 50%;transform-origin:0% 50%}.carousel.carousel-slider{top:0;left:0}.carousel.carousel-slider .carousel-fixed-item{position:absolute;left:0;right:0;bottom:20px;z-index:1}.carousel.carousel-slider .carousel-fixed-item.with-indicators{bottom:68px}.carousel.carousel-slider .carousel-item{width:100%;height:100%;min-height:400px;position:absolute;top:0;left:0}.carousel.carousel-slider .carousel-item h2{font-size:24px;font-weight:500;line-height:32px}.carousel.carousel-slider .carousel-item p{font-size:15px}.carousel .carousel-item{visibility:hidden;width:200px;height:200px;position:absolute;top:0;left:0}.carousel .carousel-item>img{width:100%}.carousel .indicators{position:absolute;text-align:center;left:0;right:0;bottom:0;margin:0}.carousel .indicators .indicator-item{display:inline-block;position:relative;cursor:pointer;height:8px;width:8px;margin:24px 4px;background-color:rgba(255,255,255,0.5);-webkit-transition:background-color .3s;transition:background-color .3s;border-radius:50%}.carousel .indicators .indicator-item.active{background-color:#fff}.carousel.scrolling .carousel-item .materialboxed,.carousel .carousel-item:not(.active) .materialboxed{pointer-events:none}.tap-target-wrapper{width:800px;height:800px;position:fixed;z-index:1000;visibility:hidden;-webkit-transition:visibility 0s .3s;transition:visibility 0s .3s}.tap-target-wrapper.open{visibility:visible;-webkit-transition:visibility 0s;transition:visibility 0s}.tap-target-wrapper.open .tap-target{-webkit-transform:scale(1);transform:scale(1);opacity:.95;-webkit-transition:opacity 0.3s cubic-bezier(0.42, 0, 0.58, 1),-webkit-transform 0.3s cubic-bezier(0.42, 0, 0.58, 1);transition:opacity 0.3s cubic-bezier(0.42, 0, 0.58, 1),-webkit-transform 0.3s cubic-bezier(0.42, 0, 0.58, 1);transition:transform 0.3s cubic-bezier(0.42, 0, 0.58, 1),opacity 0.3s cubic-bezier(0.42, 0, 0.58, 1);transition:transform 0.3s cubic-bezier(0.42, 0, 0.58, 1),opacity 0.3s cubic-bezier(0.42, 0, 0.58, 1),-webkit-transform 0.3s cubic-bezier(0.42, 0, 0.58, 1)}.tap-target-wrapper.open .tap-target-wave::before{-webkit-transform:scale(1);transform:scale(1)}.tap-target-wrapper.open .tap-target-wave::after{visibility:visible;-webkit-animation:pulse-animation 1s cubic-bezier(0.24, 0, 0.38, 1) infinite;animation:pulse-animation 1s cubic-bezier(0.24, 0, 0.38, 1) infinite;-webkit-transition:opacity .3s,
|
16 |
+
visibility 0s 1s,
|
17 |
+
-webkit-transform .3s;transition:opacity .3s,
|
18 |
+
visibility 0s 1s,
|
19 |
+
-webkit-transform .3s;transition:opacity .3s,
|
20 |
+
transform .3s,
|
21 |
+
visibility 0s 1s;transition:opacity .3s,
|
22 |
+
transform .3s,
|
23 |
+
visibility 0s 1s,
|
24 |
+
-webkit-transform .3s}.tap-target{position:absolute;font-size:1rem;border-radius:50%;background-color:#ee6e73;-webkit-box-shadow:0 20px 20px 0 rgba(0,0,0,0.14),0 10px 50px 0 rgba(0,0,0,0.12),0 30px 10px -20px rgba(0,0,0,0.2);box-shadow:0 20px 20px 0 rgba(0,0,0,0.14),0 10px 50px 0 rgba(0,0,0,0.12),0 30px 10px -20px rgba(0,0,0,0.2);width:100%;height:100%;opacity:0;-webkit-transform:scale(0);transform:scale(0);-webkit-transition:opacity 0.3s cubic-bezier(0.42, 0, 0.58, 1),-webkit-transform 0.3s cubic-bezier(0.42, 0, 0.58, 1);transition:opacity 0.3s cubic-bezier(0.42, 0, 0.58, 1),-webkit-transform 0.3s cubic-bezier(0.42, 0, 0.58, 1);transition:transform 0.3s cubic-bezier(0.42, 0, 0.58, 1),opacity 0.3s cubic-bezier(0.42, 0, 0.58, 1);transition:transform 0.3s cubic-bezier(0.42, 0, 0.58, 1),opacity 0.3s cubic-bezier(0.42, 0, 0.58, 1),-webkit-transform 0.3s cubic-bezier(0.42, 0, 0.58, 1)}.tap-target-content{position:relative;display:table-cell}.tap-target-wave{position:absolute;border-radius:50%;z-index:10001}.tap-target-wave::before,.tap-target-wave::after{content:'';display:block;position:absolute;width:100%;height:100%;border-radius:50%;background-color:#ffffff}.tap-target-wave::before{-webkit-transform:scale(0);transform:scale(0);-webkit-transition:-webkit-transform .3s;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s, -webkit-transform .3s}.tap-target-wave::after{visibility:hidden;-webkit-transition:opacity .3s,
|
25 |
+
visibility 0s,
|
26 |
+
-webkit-transform .3s;transition:opacity .3s,
|
27 |
+
visibility 0s,
|
28 |
+
-webkit-transform .3s;transition:opacity .3s,
|
29 |
+
transform .3s,
|
30 |
+
visibility 0s;transition:opacity .3s,
|
31 |
+
transform .3s,
|
32 |
+
visibility 0s,
|
33 |
+
-webkit-transform .3s;z-index:-1}.tap-target-origin{top:50%;left:50%;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%);z-index:10002;position:absolute !important}.tap-target-origin:not(.btn):not(.btn-large):not(.btn-small),.tap-target-origin:not(.btn):not(.btn-large):not(.btn-small):hover{background:none}@media only screen and (max-width: 600px){.tap-target,.tap-target-wrapper{width:600px;height:600px}}.pulse{overflow:visible;position:relative}.pulse::before{content:'';display:block;position:absolute;width:100%;height:100%;top:0;left:0;background-color:inherit;border-radius:inherit;-webkit-transition:opacity .3s, -webkit-transform .3s;transition:opacity .3s, -webkit-transform .3s;transition:opacity .3s, transform .3s;transition:opacity .3s, transform .3s, -webkit-transform .3s;-webkit-animation:pulse-animation 1s cubic-bezier(0.24, 0, 0.38, 1) infinite;animation:pulse-animation 1s cubic-bezier(0.24, 0, 0.38, 1) infinite;z-index:-1}@-webkit-keyframes pulse-animation{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}50%{opacity:0;-webkit-transform:scale(1.5);transform:scale(1.5)}100%{opacity:0;-webkit-transform:scale(1.5);transform:scale(1.5)}}@keyframes pulse-animation{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}50%{opacity:0;-webkit-transform:scale(1.5);transform:scale(1.5)}100%{opacity:0;-webkit-transform:scale(1.5);transform:scale(1.5)}}.datepicker-modal{max-width:325px;min-width:300px;max-height:none}.datepicker-container.modal-content{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;padding:0}.datepicker-controls{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;width:280px;margin:0 auto}.datepicker-controls .selects-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.datepicker-controls .select-wrapper input{border-bottom:none;text-align:center;margin:0}.datepicker-controls .select-wrapper input:focus{border-bottom:none}.datepicker-controls .select-wrapper .caret{display:none}.datepicker-controls .select-year input{width:50px}.datepicker-controls .select-month input{width:70px}.month-prev,.month-next{margin-top:4px;cursor:pointer;background-color:transparent;border:none}.datepicker-date-display{-webkit-box-flex:1;-webkit-flex:1 auto;-ms-flex:1 auto;flex:1 auto;background-color:#26a69a;color:#fff;padding:20px 22px;font-weight:500}.datepicker-date-display .year-text{display:block;font-size:1.5rem;line-height:25px;color:rgba(255,255,255,0.7)}.datepicker-date-display .date-text{display:block;font-size:2.8rem;line-height:47px;font-weight:500}.datepicker-calendar-container{-webkit-box-flex:2.5;-webkit-flex:2.5 auto;-ms-flex:2.5 auto;flex:2.5 auto}.datepicker-table{width:280px;font-size:1rem;margin:0 auto}.datepicker-table thead{border-bottom:none}.datepicker-table th{padding:10px 5px;text-align:center}.datepicker-table tr{border:none}.datepicker-table abbr{text-decoration:none;color:#999}.datepicker-table td{border-radius:50%;padding:0}.datepicker-table td.is-today{color:#26a69a}.datepicker-table td.is-selected{background-color:#26a69a;color:#fff}.datepicker-table td.is-outside-current-month,.datepicker-table td.is-disabled{color:rgba(0,0,0,0.3);pointer-events:none}.datepicker-day-button{background-color:transparent;border:none;line-height:38px;display:block;width:100%;border-radius:50%;padding:0 5px;cursor:pointer;color:inherit}.datepicker-day-button:focus{background-color:rgba(43,161,150,0.25)}.datepicker-footer{width:280px;margin:0 auto;padding-bottom:5px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between}.datepicker-cancel,.datepicker-clear,.datepicker-today,.datepicker-done{color:#26a69a;padding:0 1rem}.datepicker-clear{color:#F44336}@media only screen and (min-width: 601px){.datepicker-modal{max-width:625px}.datepicker-container.modal-content{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.datepicker-date-display{-webkit-box-flex:0;-webkit-flex:0 1 270px;-ms-flex:0 1 270px;flex:0 1 270px}.datepicker-controls,.datepicker-table,.datepicker-footer{width:320px}.datepicker-day-button{line-height:44px}}.timepicker-modal{max-width:325px;max-height:none}.timepicker-container.modal-content{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;padding:0}.text-primary{color:#fff}.timepicker-digital-display{-webkit-box-flex:1;-webkit-flex:1 auto;-ms-flex:1 auto;flex:1 auto;background-color:#26a69a;padding:10px;font-weight:300}.timepicker-text-container{font-size:4rem;font-weight:bold;text-align:center;color:rgba(255,255,255,0.6);font-weight:400;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.timepicker-span-hours,.timepicker-span-minutes,.timepicker-span-am-pm div{cursor:pointer}.timepicker-span-hours{margin-right:3px}.timepicker-span-minutes{margin-left:3px}.timepicker-display-am-pm{font-size:1.3rem;position:absolute;right:1rem;bottom:1rem;font-weight:400}.timepicker-analog-display{-webkit-box-flex:2.5;-webkit-flex:2.5 auto;-ms-flex:2.5 auto;flex:2.5 auto}.timepicker-plate{background-color:#eee;border-radius:50%;width:270px;height:270px;overflow:visible;position:relative;margin:auto;margin-top:25px;margin-bottom:5px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.timepicker-canvas,.timepicker-dial{position:absolute;left:0;right:0;top:0;bottom:0}.timepicker-minutes{visibility:hidden}.timepicker-tick{border-radius:50%;color:rgba(0,0,0,0.87);line-height:40px;text-align:center;width:40px;height:40px;position:absolute;cursor:pointer;font-size:15px}.timepicker-tick.active,.timepicker-tick:hover{background-color:rgba(38,166,154,0.25)}.timepicker-dial{-webkit-transition:opacity 350ms, -webkit-transform 350ms;transition:opacity 350ms, -webkit-transform 350ms;transition:transform 350ms, opacity 350ms;transition:transform 350ms, opacity 350ms, -webkit-transform 350ms}.timepicker-dial-out{opacity:0}.timepicker-dial-out.timepicker-hours{-webkit-transform:scale(1.1, 1.1);transform:scale(1.1, 1.1)}.timepicker-dial-out.timepicker-minutes{-webkit-transform:scale(0.8, 0.8);transform:scale(0.8, 0.8)}.timepicker-canvas{-webkit-transition:opacity 175ms;transition:opacity 175ms}.timepicker-canvas line{stroke:#26a69a;stroke-width:4;stroke-linecap:round}.timepicker-canvas-out{opacity:0.25}.timepicker-canvas-bearing{stroke:none;fill:#26a69a}.timepicker-canvas-bg{stroke:none;fill:#26a69a}.timepicker-footer{margin:0 auto;padding:5px 1rem;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between}.timepicker-clear{color:#F44336}.timepicker-close{color:#26a69a}.timepicker-clear,.timepicker-close{padding:0 20px}@media only screen and (min-width: 601px){.timepicker-modal{max-width:600px}.timepicker-container.modal-content{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.timepicker-text-container{top:32%}.timepicker-display-am-pm{position:relative;right:auto;bottom:auto;text-align:center;margin-top:1.2rem}}
|
assets/js/admin_app.js
ADDED
@@ -0,0 +1,149 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* Admin JavaScript
|
3 |
+
*/
|
4 |
+
|
5 |
+
jQuery(document).ready(function($) {
|
6 |
+
// wpColorPicker
|
7 |
+
$('.color-wp').wpColorPicker();
|
8 |
+
});
|
9 |
+
|
10 |
+
|
11 |
+
|
12 |
+
|
13 |
+
// initialize materialize function ..
|
14 |
+
document.addEventListener('DOMContentLoaded', function() {
|
15 |
+
|
16 |
+
// select
|
17 |
+
var elems = document.querySelectorAll('select');
|
18 |
+
var instances = M.FormSelect.init(elems, {});
|
19 |
+
|
20 |
+
// Collapsible
|
21 |
+
var elems = document.querySelectorAll('.collapsible');
|
22 |
+
var instances = M.Collapsible.init(elems, {});
|
23 |
+
|
24 |
+
});
|
25 |
+
|
26 |
+
|
27 |
+
jQuery(document).ready(function () {
|
28 |
+
|
29 |
+
// jQuery('.color-wp').wpColorPicker();
|
30 |
+
|
31 |
+
|
32 |
+
let position = document.querySelectorAll('.position');
|
33 |
+
|
34 |
+
let default_display = () => {
|
35 |
+
|
36 |
+
let val = jQuery('.select').find(":selected").val();
|
37 |
+
|
38 |
+
let position1 = document.querySelector('.position-1');
|
39 |
+
let position2 = document.querySelector('.position-2');
|
40 |
+
let position3 = document.querySelector('.position-3');
|
41 |
+
let position4 = document.querySelector('.position-4');
|
42 |
+
|
43 |
+
if (val == '1') {
|
44 |
+
position1.classList.add('display-block');
|
45 |
+
} else if (val == '2') {
|
46 |
+
position2.classList.add('display-block');
|
47 |
+
} else if (val == '3') {
|
48 |
+
position3.classList.add('display-block');
|
49 |
+
} else if (val == '4') {
|
50 |
+
position4.classList.add('display-block');
|
51 |
+
}
|
52 |
+
|
53 |
+
}
|
54 |
+
|
55 |
+
default_display();
|
56 |
+
|
57 |
+
|
58 |
+
// incase display-block is added remove it ..
|
59 |
+
let remove = () => {
|
60 |
+
position.forEach(e => {
|
61 |
+
e.classList.remove('display-block');
|
62 |
+
});
|
63 |
+
}
|
64 |
+
|
65 |
+
|
66 |
+
jQuery(".select").on("change", function (e) {
|
67 |
+
let x = e.target;
|
68 |
+
let val = e.target.value;
|
69 |
+
|
70 |
+
let position1 = document.querySelector('.position-1');
|
71 |
+
let position2 = document.querySelector('.position-2');
|
72 |
+
let position3 = document.querySelector('.position-3');
|
73 |
+
let position4 = document.querySelector('.position-4');
|
74 |
+
|
75 |
+
if (val == '1') {
|
76 |
+
remove();
|
77 |
+
position1.classList.add('display-block');
|
78 |
+
} else if (val == '2') {
|
79 |
+
remove();
|
80 |
+
position2.classList.add('display-block');
|
81 |
+
} else if (val == '3') {
|
82 |
+
remove();
|
83 |
+
position3.classList.add('display-block');
|
84 |
+
} else if (val == '4') {
|
85 |
+
remove();
|
86 |
+
position4.classList.add('display-block');
|
87 |
+
}
|
88 |
+
|
89 |
+
});
|
90 |
+
|
91 |
+
|
92 |
+
// can impove this code -
|
93 |
+
// https://stackoverflow.com/a/32631357/2591092
|
94 |
+
// https://stackoverflow.com/questions/11208021/jquery-add-css-class-depending-on-selectbox-option
|
95 |
+
|
96 |
+
});
|
97 |
+
|
98 |
+
|
99 |
+
|
100 |
+
|
101 |
+
|
102 |
+
|
103 |
+
|
104 |
+
|
105 |
+
|
106 |
+
|
107 |
+
|
108 |
+
|
109 |
+
|
110 |
+
|
111 |
+
|
112 |
+
|
113 |
+
// makes an ajax call
|
114 |
+
// if ccw_admin_sidebar_card option is not set or not equal to hide
|
115 |
+
// then show the card - set display: block
|
116 |
+
jQuery.post(
|
117 |
+
ajaxurl,
|
118 |
+
{
|
119 |
+
'action': 'ccw_admin_sidebar',
|
120 |
+
},
|
121 |
+
function(response){
|
122 |
+
if ( 'hide' !== response ) {
|
123 |
+
var wca_card = document.querySelector(".wca_card");
|
124 |
+
if ( wca_card ) {
|
125 |
+
wca_card.style.display = "block";
|
126 |
+
}
|
127 |
+
}
|
128 |
+
}
|
129 |
+
);
|
130 |
+
|
131 |
+
|
132 |
+
// when clicked on hide card at admin sidebar
|
133 |
+
// makes an ajax call an update / create the ccw_admin_sidebar_card option to hide
|
134 |
+
function ccw_hide_admin_sidebar_card() {
|
135 |
+
|
136 |
+
jQuery.post(
|
137 |
+
ajaxurl,
|
138 |
+
{
|
139 |
+
'action': 'ccw_hide_admin_sidebar_card',
|
140 |
+
},
|
141 |
+
);
|
142 |
+
|
143 |
+
var wca_card = document.querySelector(".wca_card");
|
144 |
+
|
145 |
+
if ( wca_card ) {
|
146 |
+
wca_card.style.display = "none";
|
147 |
+
}
|
148 |
+
|
149 |
+
}
|
assets/js/admin_mainstyles.js
DELETED
@@ -1,75 +0,0 @@
|
|
1 |
-
/******/ (function(modules) { // webpackBootstrap
|
2 |
-
/******/ // The module cache
|
3 |
-
/******/ var installedModules = {};
|
4 |
-
/******/
|
5 |
-
/******/ // The require function
|
6 |
-
/******/ function __webpack_require__(moduleId) {
|
7 |
-
/******/
|
8 |
-
/******/ // Check if module is in cache
|
9 |
-
/******/ if(installedModules[moduleId]) {
|
10 |
-
/******/ return installedModules[moduleId].exports;
|
11 |
-
/******/ }
|
12 |
-
/******/ // Create a new module (and put it into the cache)
|
13 |
-
/******/ var module = installedModules[moduleId] = {
|
14 |
-
/******/ i: moduleId,
|
15 |
-
/******/ l: false,
|
16 |
-
/******/ exports: {}
|
17 |
-
/******/ };
|
18 |
-
/******/
|
19 |
-
/******/ // Execute the module function
|
20 |
-
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
|
21 |
-
/******/
|
22 |
-
/******/ // Flag the module as loaded
|
23 |
-
/******/ module.l = true;
|
24 |
-
/******/
|
25 |
-
/******/ // Return the exports of the module
|
26 |
-
/******/ return module.exports;
|
27 |
-
/******/ }
|
28 |
-
/******/
|
29 |
-
/******/
|
30 |
-
/******/ // expose the modules object (__webpack_modules__)
|
31 |
-
/******/ __webpack_require__.m = modules;
|
32 |
-
/******/
|
33 |
-
/******/ // expose the module cache
|
34 |
-
/******/ __webpack_require__.c = installedModules;
|
35 |
-
/******/
|
36 |
-
/******/ // define getter function for harmony exports
|
37 |
-
/******/ __webpack_require__.d = function(exports, name, getter) {
|
38 |
-
/******/ if(!__webpack_require__.o(exports, name)) {
|
39 |
-
/******/ Object.defineProperty(exports, name, {
|
40 |
-
/******/ configurable: false,
|
41 |
-
/******/ enumerable: true,
|
42 |
-
/******/ get: getter
|
43 |
-
/******/ });
|
44 |
-
/******/ }
|
45 |
-
/******/ };
|
46 |
-
/******/
|
47 |
-
/******/ // getDefaultExport function for compatibility with non-harmony modules
|
48 |
-
/******/ __webpack_require__.n = function(module) {
|
49 |
-
/******/ var getter = module && module.__esModule ?
|
50 |
-
/******/ function getDefault() { return module['default']; } :
|
51 |
-
/******/ function getModuleExports() { return module; };
|
52 |
-
/******/ __webpack_require__.d(getter, 'a', getter);
|
53 |
-
/******/ return getter;
|
54 |
-
/******/ };
|
55 |
-
/******/
|
56 |
-
/******/ // Object.prototype.hasOwnProperty.call
|
57 |
-
/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
|
58 |
-
/******/
|
59 |
-
/******/ // __webpack_public_path__
|
60 |
-
/******/ __webpack_require__.p = "";
|
61 |
-
/******/
|
62 |
-
/******/ // Load entry module and return exports
|
63 |
-
/******/ return __webpack_require__(__webpack_require__.s = 2);
|
64 |
-
/******/ })
|
65 |
-
/************************************************************************/
|
66 |
-
/******/ ({
|
67 |
-
|
68 |
-
/***/ 2:
|
69 |
-
/***/ (function(module, exports) {
|
70 |
-
|
71 |
-
// removed by extract-text-webpack-plugin
|
72 |
-
|
73 |
-
/***/ })
|
74 |
-
|
75 |
-
/******/ });
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
assets/js/materialize.min.js
ADDED
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/*!
|
2 |
+
* Materialize v1.0.0 (http://materializecss.com)
|
3 |
+
* Copyright 2014-2017 Materialize
|
4 |
+
* MIT License (https://raw.githubusercontent.com/Dogfalo/materialize/master/LICENSE)
|
5 |
+
*/
|
6 |
+
var _get=function t(e,i,n){null===e&&(e=Function.prototype);var s=Object.getOwnPropertyDescriptor(e,i);if(void 0===s){var o=Object.getPrototypeOf(e);return null===o?void 0:t(o,i,n)}if("value"in s)return s.value;var a=s.get;return void 0!==a?a.call(n):void 0},_createClass=function(){function n(t,e){for(var i=0;i<e.length;i++){var n=e[i];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}return function(t,e,i){return e&&n(t.prototype,e),i&&n(t,i),t}}();function _possibleConstructorReturn(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function _inherits(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}function _classCallCheck(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}window.cash=function(){var i,o=document,a=window,t=Array.prototype,r=t.slice,n=t.filter,s=t.push,e=function(){},h=function(t){return typeof t==typeof e&&t.call},d=function(t){return"string"==typeof t},l=/^#[\w-]*$/,u=/^\.[\w-]*$/,c=/<.+>/,p=/^\w+$/;function v(t,e){e=e||o;var i=u.test(t)?e.getElementsByClassName(t.slice(1)):p.test(t)?e.getElementsByTagName(t):e.querySelectorAll(t);return i}function f(t){if(!i){var e=(i=o.implementation.createHTMLDocument(null)).createElement("base");e.href=o.location.href,i.head.appendChild(e)}return i.body.innerHTML=t,i.body.childNodes}function m(t){"loading"!==o.readyState?t():o.addEventListener("DOMContentLoaded",t)}function g(t,e){if(!t)return this;if(t.cash&&t!==a)return t;var i,n=t,s=0;if(d(t))n=l.test(t)?o.getElementById(t.slice(1)):c.test(t)?f(t):v(t,e);else if(h(t))return m(t),this;if(!n)return this;if(n.nodeType||n===a)this[0]=n,this.length=1;else for(i=this.length=n.length;s<i;s++)this[s]=n[s];return this}function _(t,e){return new g(t,e)}var y=_.fn=_.prototype=g.prototype={cash:!0,length:0,push:s,splice:t.splice,map:t.map,init:g};function k(t,e){for(var i=t.length,n=0;n<i&&!1!==e.call(t[n],t[n],n,t);n++);}function b(t,e){var i=t&&(t.matches||t.webkitMatchesSelector||t.mozMatchesSelector||t.msMatchesSelector||t.oMatchesSelector);return!!i&&i.call(t,e)}function w(e){return d(e)?b:e.cash?function(t){return e.is(t)}:function(t,e){return t===e}}function C(t){return _(r.call(t).filter(function(t,e,i){return i.indexOf(t)===e}))}Object.defineProperty(y,"constructor",{value:_}),_.parseHTML=f,_.noop=e,_.isFunction=h,_.isString=d,_.extend=y.extend=function(t){t=t||{};var e=r.call(arguments),i=e.length,n=1;for(1===e.length&&(t=this,n=0);n<i;n++)if(e[n])for(var s in e[n])e[n].hasOwnProperty(s)&&(t[s]=e[n][s]);return t},_.extend({merge:function(t,e){for(var i=+e.length,n=t.length,s=0;s<i;n++,s++)t[n]=e[s];return t.length=n,t},each:k,matches:b,unique:C,isArray:Array.isArray,isNumeric:function(t){return!isNaN(parseFloat(t))&&isFinite(t)}});var E=_.uid="_cash"+Date.now();function M(t){return t[E]=t[E]||{}}function O(t,e,i){return M(t)[e]=i}function x(t,e){var i=M(t);return void 0===i[e]&&(i[e]=t.dataset?t.dataset[e]:_(t).attr("data-"+e)),i[e]}y.extend({data:function(e,i){if(d(e))return void 0===i?x(this[0],e):this.each(function(t){return O(t,e,i)});for(var t in e)this.data(t,e[t]);return this},removeData:function(s){return this.each(function(t){return i=s,void((n=M(e=t))?delete n[i]:e.dataset?delete e.dataset[i]:_(e).removeAttr("data-"+name));var e,i,n})}});var L=/\S+/g;function T(t){return d(t)&&t.match(L)}function $(t,e){return t.classList?t.classList.contains(e):new RegExp("(^| )"+e+"( |$)","gi").test(t.className)}function B(t,e,i){t.classList?t.classList.add(e):i.indexOf(" "+e+" ")&&(t.className+=" "+e)}function D(t,e){t.classList?t.classList.remove(e):t.className=t.className.replace(e,"")}y.extend({addClass:function(t){var n=T(t);return n?this.each(function(e){var i=" "+e.className+" ";k(n,function(t){B(e,t,i)})}):this},attr:function(e,i){if(e){if(d(e))return void 0===i?this[0]?this[0].getAttribute?this[0].getAttribute(e):this[0][e]:void 0:this.each(function(t){t.setAttribute?t.setAttribute(e,i):t[e]=i});for(var t in e)this.attr(t,e[t]);return this}},hasClass:function(t){var e=!1,i=T(t);return i&&i.length&&this.each(function(t){return!(e=$(t,i[0]))}),e},prop:function(e,i){if(d(e))return void 0===i?this[0][e]:this.each(function(t){t[e]=i});for(var t in e)this.prop(t,e[t]);return this},removeAttr:function(e){return this.each(function(t){t.removeAttribute?t.removeAttribute(e):delete t[e]})},removeClass:function(t){if(!arguments.length)return this.attr("class","");var i=T(t);return i?this.each(function(e){k(i,function(t){D(e,t)})}):this},removeProp:function(e){return this.each(function(t){delete t[e]})},toggleClass:function(t,e){if(void 0!==e)return this[e?"addClass":"removeClass"](t);var n=T(t);return n?this.each(function(e){var i=" "+e.className+" ";k(n,function(t){$(e,t)?D(e,t):B(e,t,i)})}):this}}),y.extend({add:function(t,e){return C(_.merge(this,_(t,e)))},each:function(t){return k(this,t),this},eq:function(t){return _(this.get(t))},filter:function(e){if(!e)return this;var i=h(e)?e:w(e);return _(n.call(this,function(t){return i(t,e)}))},first:function(){return this.eq(0)},get:function(t){return void 0===t?r.call(this):t<0?this[t+this.length]:this[t]},index:function(t){var e=t?_(t)[0]:this[0],i=t?this:_(e).parent().children();return r.call(i).indexOf(e)},last:function(){return this.eq(-1)}});var S,I,A,R,H,P,W=(H=/(?:^\w|[A-Z]|\b\w)/g,P=/[\s-_]+/g,function(t){return t.replace(H,function(t,e){return t[0===e?"toLowerCase":"toUpperCase"]()}).replace(P,"")}),j=(S={},I=document,A=I.createElement("div"),R=A.style,function(e){if(e=W(e),S[e])return S[e];var t=e.charAt(0).toUpperCase()+e.slice(1),i=(e+" "+["webkit","moz","ms","o"].join(t+" ")+t).split(" ");return k(i,function(t){if(t in R)return S[t]=e=S[e]=t,!1}),S[e]});function F(t,e){return parseInt(a.getComputedStyle(t[0],null)[e],10)||0}function q(e,i,t){var n,s=x(e,"_cashEvents"),o=s&&s[i];o&&(t?(e.removeEventListener(i,t),0<=(n=o.indexOf(t))&&o.splice(n,1)):(k(o,function(t){e.removeEventListener(i,t)}),o=[]))}function N(t,e){return"&"+encodeURIComponent(t)+"="+encodeURIComponent(e).replace(/%20/g,"+")}function z(t){var e,i,n,s=t.type;if(!s)return null;switch(s.toLowerCase()){case"select-one":return 0<=(n=(i=t).selectedIndex)?i.options[n].value:null;case"select-multiple":return e=[],k(t.options,function(t){t.selected&&e.push(t.value)}),e.length?e:null;case"radio":case"checkbox":return t.checked?t.value:null;default:return t.value?t.value:null}}function V(e,i,n){var t=d(i);t||!i.length?k(e,t?function(t){return t.insertAdjacentHTML(n?"afterbegin":"beforeend",i)}:function(t,e){return function(t,e,i){if(i){var n=t.childNodes[0];t.insertBefore(e,n)}else t.appendChild(e)}(t,0===e?i:i.cloneNode(!0),n)}):k(i,function(t){return V(e,t,n)})}_.prefixedProp=j,_.camelCase=W,y.extend({css:function(e,i){if(d(e))return e=j(e),1<arguments.length?this.each(function(t){return t.style[e]=i}):a.getComputedStyle(this[0])[e];for(var t in e)this.css(t,e[t]);return this}}),k(["Width","Height"],function(e){var t=e.toLowerCase();y[t]=function(){return this[0].getBoundingClientRect()[t]},y["inner"+e]=function(){return this[0]["client"+e]},y["outer"+e]=function(t){return this[0]["offset"+e]+(t?F(this,"margin"+("Width"===e?"Left":"Top"))+F(this,"margin"+("Width"===e?"Right":"Bottom")):0)}}),y.extend({off:function(e,i){return this.each(function(t){return q(t,e,i)})},on:function(a,i,r,l){var n;if(!d(a)){for(var t in a)this.on(t,i,a[t]);return this}return h(i)&&(r=i,i=null),"ready"===a?(m(r),this):(i&&(n=r,r=function(t){for(var e=t.target;!b(e,i);){if(e===this||null===e)return e=!1;e=e.parentNode}e&&n.call(e,t)}),this.each(function(t){var e,i,n,s,o=r;l&&(o=function(){r.apply(this,arguments),q(t,a,o)}),i=a,n=o,(s=x(e=t,"_cashEvents")||O(e,"_cashEvents",{}))[i]=s[i]||[],s[i].push(n),e.addEventListener(i,n)}))},one:function(t,e,i){return this.on(t,e,i,!0)},ready:m,trigger:function(t,e){if(document.createEvent){var i=document.createEvent("HTMLEvents");return i.initEvent(t,!0,!1),i=this.extend(i,e),this.each(function(t){return t.dispatchEvent(i)})}}}),y.extend({serialize:function(){var s="";return k(this[0].elements||this,function(t){if(!t.disabled&&"FIELDSET"!==t.tagName){var e=t.name;switch(t.type.toLowerCase()){case"file":case"reset":case"submit":case"button":break;case"select-multiple":var i=z(t);null!==i&&k(i,function(t){s+=N(e,t)});break;default:var n=z(t);null!==n&&(s+=N(e,n))}}}),s.substr(1)},val:function(e){return void 0===e?z(this[0]):this.each(function(t){return t.value=e})}}),y.extend({after:function(t){return _(t).insertAfter(this),this},append:function(t){return V(this,t),this},appendTo:function(t){return V(_(t),this),this},before:function(t){return _(t).insertBefore(this),this},clone:function(){return _(this.map(function(t){return t.cloneNode(!0)}))},empty:function(){return this.html(""),this},html:function(t){if(void 0===t)return this[0].innerHTML;var e=t.nodeType?t[0].outerHTML:t;return this.each(function(t){return t.innerHTML=e})},insertAfter:function(t){var s=this;return _(t).each(function(t,e){var i=t.parentNode,n=t.nextSibling;s.each(function(t){i.insertBefore(0===e?t:t.cloneNode(!0),n)})}),this},insertBefore:function(t){var s=this;return _(t).each(function(e,i){var n=e.parentNode;s.each(function(t){n.insertBefore(0===i?t:t.cloneNode(!0),e)})}),this},prepend:function(t){return V(this,t,!0),this},prependTo:function(t){return V(_(t),this,!0),this},remove:function(){return this.each(function(t){if(t.parentNode)return t.parentNode.removeChild(t)})},text:function(e){return void 0===e?this[0].textContent:this.each(function(t){return t.textContent=e})}});var X=o.documentElement;return y.extend({position:function(){var t=this[0];return{left:t.offsetLeft,top:t.offsetTop}},offset:function(){var t=this[0].getBoundingClientRect();return{top:t.top+a.pageYOffset-X.clientTop,left:t.left+a.pageXOffset-X.clientLeft}},offsetParent:function(){return _(this[0].offsetParent)}}),y.extend({children:function(e){var i=[];return this.each(function(t){s.apply(i,t.children)}),i=C(i),e?i.filter(function(t){return b(t,e)}):i},closest:function(t){return!t||this.length<1?_():this.is(t)?this.filter(t):this.parent().closest(t)},is:function(e){if(!e)return!1;var i=!1,n=w(e);return this.each(function(t){return!(i=n(t,e))}),i},find:function(e){if(!e||e.nodeType)return _(e&&this.has(e).length?e:null);var i=[];return this.each(function(t){s.apply(i,v(e,t))}),C(i)},has:function(e){var t=d(e)?function(t){return 0!==v(e,t).length}:function(t){return t.contains(e)};return this.filter(t)},next:function(){return _(this[0].nextElementSibling)},not:function(e){if(!e)return this;var i=w(e);return this.filter(function(t){return!i(t,e)})},parent:function(){var e=[];return this.each(function(t){t&&t.parentNode&&e.push(t.parentNode)}),C(e)},parents:function(e){var i,n=[];return this.each(function(t){for(i=t;i&&i.parentNode&&i!==o.body.parentNode;)i=i.parentNode,(!e||e&&b(i,e))&&n.push(i)}),C(n)},prev:function(){return _(this[0].previousElementSibling)},siblings:function(t){var e=this.parent().children(t),i=this[0];return e.filter(function(t){return t!==i})}}),_}();var Component=function(){function s(t,e,i){_classCallCheck(this,s),e instanceof Element||console.error(Error(e+" is not an HTML Element"));var n=t.getInstance(e);n&&n.destroy(),this.el=e,this.$el=cash(e)}return _createClass(s,null,[{key:"init",value:function(t,e,i){var n=null;if(e instanceof Element)n=new t(e,i);else if(e&&(e.jquery||e.cash||e instanceof NodeList)){for(var s=[],o=0;o<e.length;o++)s.push(new t(e[o],i));n=s}return n}}]),s}();!function(t){t.Package?M={}:t.M={},M.jQueryLoaded=!!t.jQuery}(window),"function"==typeof define&&define.amd?define("M",[],function(){return M}):"undefined"==typeof exports||exports.nodeType||("undefined"!=typeof module&&!module.nodeType&&module.exports&&(exports=module.exports=M),exports.default=M),M.version="1.0.0",M.keys={TAB:9,ENTER:13,ESC:27,ARROW_UP:38,ARROW_DOWN:40},M.tabPressed=!1,M.keyDown=!1;var docHandleKeydown=function(t){M.keyDown=!0,t.which!==M.keys.TAB&&t.which!==M.keys.ARROW_DOWN&&t.which!==M.keys.ARROW_UP||(M.tabPressed=!0)},docHandleKeyup=function(t){M.keyDown=!1,t.which!==M.keys.TAB&&t.which!==M.keys.ARROW_DOWN&&t.which!==M.keys.ARROW_UP||(M.tabPressed=!1)},docHandleFocus=function(t){M.keyDown&&document.body.classList.add("keyboard-focused")},docHandleBlur=function(t){document.body.classList.remove("keyboard-focused")};document.addEventListener("keydown",docHandleKeydown,!0),document.addEventListener("keyup",docHandleKeyup,!0),document.addEventListener("focus",docHandleFocus,!0),document.addEventListener("blur",docHandleBlur,!0),M.initializeJqueryWrapper=function(n,s,o){jQuery.fn[s]=function(e){if(n.prototype[e]){var i=Array.prototype.slice.call(arguments,1);if("get"===e.slice(0,3)){var t=this.first()[0][o];return t[e].apply(t,i)}return this.each(function(){var t=this[o];t[e].apply(t,i)})}if("object"==typeof e||!e)return n.init(this,e),this;jQuery.error("Method "+e+" does not exist on jQuery."+s)}},M.AutoInit=function(t){var e=t||document.body,i={Autocomplete:e.querySelectorAll(".autocomplete:not(.no-autoinit)"),Carousel:e.querySelectorAll(".carousel:not(.no-autoinit)"),Chips:e.querySelectorAll(".chips:not(.no-autoinit)"),Collapsible:e.querySelectorAll(".collapsible:not(.no-autoinit)"),Datepicker:e.querySelectorAll(".datepicker:not(.no-autoinit)"),Dropdown:e.querySelectorAll(".dropdown-trigger:not(.no-autoinit)"),Materialbox:e.querySelectorAll(".materialboxed:not(.no-autoinit)"),Modal:e.querySelectorAll(".modal:not(.no-autoinit)"),Parallax:e.querySelectorAll(".parallax:not(.no-autoinit)"),Pushpin:e.querySelectorAll(".pushpin:not(.no-autoinit)"),ScrollSpy:e.querySelectorAll(".scrollspy:not(.no-autoinit)"),FormSelect:e.querySelectorAll("select:not(.no-autoinit)"),Sidenav:e.querySelectorAll(".sidenav:not(.no-autoinit)"),Tabs:e.querySelectorAll(".tabs:not(.no-autoinit)"),TapTarget:e.querySelectorAll(".tap-target:not(.no-autoinit)"),Timepicker:e.querySelectorAll(".timepicker:not(.no-autoinit)"),Tooltip:e.querySelectorAll(".tooltipped:not(.no-autoinit)"),FloatingActionButton:e.querySelectorAll(".fixed-action-btn:not(.no-autoinit)")};for(var n in i){M[n].init(i[n])}},M.objectSelectorString=function(t){return((t.prop("tagName")||"")+(t.attr("id")||"")+(t.attr("class")||"")).replace(/\s/g,"")},M.guid=function(){function t(){return Math.floor(65536*(1+Math.random())).toString(16).substring(1)}return function(){return t()+t()+"-"+t()+"-"+t()+"-"+t()+"-"+t()+t()+t()}}(),M.escapeHash=function(t){return t.replace(/(:|\.|\[|\]|,|=|\/)/g,"\\$1")},M.elementOrParentIsFixed=function(t){var e=$(t),i=e.add(e.parents()),n=!1;return i.each(function(){if("fixed"===$(this).css("position"))return!(n=!0)}),n},M.checkWithinContainer=function(t,e,i){var n={top:!1,right:!1,bottom:!1,left:!1},s=t.getBoundingClientRect(),o=t===document.body?Math.max(s.bottom,window.innerHeight):s.bottom,a=t.scrollLeft,r=t.scrollTop,l=e.left-a,h=e.top-r;return(l<s.left+i||l<i)&&(n.left=!0),(l+e.width>s.right-i||l+e.width>window.innerWidth-i)&&(n.right=!0),(h<s.top+i||h<i)&&(n.top=!0),(h+e.height>o-i||h+e.height>window.innerHeight-i)&&(n.bottom=!0),n},M.checkPossibleAlignments=function(t,e,i,n){var s={top:!0,right:!0,bottom:!0,left:!0,spaceOnTop:null,spaceOnRight:null,spaceOnBottom:null,spaceOnLeft:null},o="visible"===getComputedStyle(e).overflow,a=e.getBoundingClientRect(),r=Math.min(a.height,window.innerHeight),l=Math.min(a.width,window.innerWidth),h=t.getBoundingClientRect(),d=e.scrollLeft,u=e.scrollTop,c=i.left-d,p=i.top-u,v=i.top+h.height-u;return s.spaceOnRight=o?window.innerWidth-(h.left+i.width):l-(c+i.width),s.spaceOnRight<0&&(s.left=!1),s.spaceOnLeft=o?h.right-i.width:c-i.width+h.width,s.spaceOnLeft<0&&(s.right=!1),s.spaceOnBottom=o?window.innerHeight-(h.top+i.height+n):r-(p+i.height+n),s.spaceOnBottom<0&&(s.top=!1),s.spaceOnTop=o?h.bottom-(i.height+n):v-(i.height-n),s.spaceOnTop<0&&(s.bottom=!1),s},M.getOverflowParent=function(t){return null==t?null:t===document.body||"visible"!==getComputedStyle(t).overflow?t:M.getOverflowParent(t.parentElement)},M.getIdFromTrigger=function(t){var e=t.getAttribute("data-target");return e||(e=(e=t.getAttribute("href"))?e.slice(1):""),e},M.getDocumentScrollTop=function(){return window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0},M.getDocumentScrollLeft=function(){return window.pageXOffset||document.documentElement.scrollLeft||document.body.scrollLeft||0};var getTime=Date.now||function(){return(new Date).getTime()};M.throttle=function(i,n,s){var o=void 0,a=void 0,r=void 0,l=null,h=0;s||(s={});var d=function(){h=!1===s.leading?0:getTime(),l=null,r=i.apply(o,a),o=a=null};return function(){var t=getTime();h||!1!==s.leading||(h=t);var e=n-(t-h);return o=this,a=arguments,e<=0?(clearTimeout(l),l=null,h=t,r=i.apply(o,a),o=a=null):l||!1===s.trailing||(l=setTimeout(d,e)),r}};var $jscomp={scope:{}};$jscomp.defineProperty="function"==typeof Object.defineProperties?Object.defineProperty:function(t,e,i){if(i.get||i.set)throw new TypeError("ES3 does not support getters and setters.");t!=Array.prototype&&t!=Object.prototype&&(t[e]=i.value)},$jscomp.getGlobal=function(t){return"undefined"!=typeof window&&window===t?t:"undefined"!=typeof global&&null!=global?global:t},$jscomp.global=$jscomp.getGlobal(this),$jscomp.SYMBOL_PREFIX="jscomp_symbol_",$jscomp.initSymbol=function(){$jscomp.initSymbol=function(){},$jscomp.global.Symbol||($jscomp.global.Symbol=$jscomp.Symbol)},$jscomp.symbolCounter_=0,$jscomp.Symbol=function(t){return $jscomp.SYMBOL_PREFIX+(t||"")+$jscomp.symbolCounter_++},$jscomp.initSymbolIterator=function(){$jscomp.initSymbol();var t=$jscomp.global.Symbol.iterator;t||(t=$jscomp.global.Symbol.iterator=$jscomp.global.Symbol("iterator")),"function"!=typeof Array.prototype[t]&&$jscomp.defineProperty(Array.prototype,t,{configurable:!0,writable:!0,value:function(){return $jscomp.arrayIterator(this)}}),$jscomp.initSymbolIterator=function(){}},$jscomp.arrayIterator=function(t){var e=0;return $jscomp.iteratorPrototype(function(){return e<t.length?{done:!1,value:t[e++]}:{done:!0}})},$jscomp.iteratorPrototype=function(t){return $jscomp.initSymbolIterator(),(t={next:t})[$jscomp.global.Symbol.iterator]=function(){return this},t},$jscomp.array=$jscomp.array||{},$jscomp.iteratorFromArray=function(e,i){$jscomp.initSymbolIterator(),e instanceof String&&(e+="");var n=0,s={next:function(){if(n<e.length){var t=n++;return{value:i(t,e[t]),done:!1}}return s.next=function(){return{done:!0,value:void 0}},s.next()}};return s[Symbol.iterator]=function(){return s},s},$jscomp.polyfill=function(t,e,i,n){if(e){for(i=$jscomp.global,t=t.split("."),n=0;n<t.length-1;n++){var s=t[n];s in i||(i[s]={}),i=i[s]}(e=e(n=i[t=t[t.length-1]]))!=n&&null!=e&&$jscomp.defineProperty(i,t,{configurable:!0,writable:!0,value:e})}},$jscomp.polyfill("Array.prototype.keys",function(t){return t||function(){return $jscomp.iteratorFromArray(this,function(t){return t})}},"es6-impl","es3");var $jscomp$this=this;M.anime=function(){function s(t){if(!B.col(t))try{return document.querySelectorAll(t)}catch(t){}}function b(t,e){for(var i=t.length,n=2<=arguments.length?e:void 0,s=[],o=0;o<i;o++)if(o in t){var a=t[o];e.call(n,a,o,t)&&s.push(a)}return s}function d(t){return t.reduce(function(t,e){return t.concat(B.arr(e)?d(e):e)},[])}function o(t){return B.arr(t)?t:(B.str(t)&&(t=s(t)||t),t instanceof NodeList||t instanceof HTMLCollection?[].slice.call(t):[t])}function a(t,e){return t.some(function(t){return t===e})}function r(t){var e,i={};for(e in t)i[e]=t[e];return i}function u(t,e){var i,n=r(t);for(i in t)n[i]=e.hasOwnProperty(i)?e[i]:t[i];return n}function c(t,e){var i,n=r(t);for(i in e)n[i]=B.und(t[i])?e[i]:t[i];return n}function l(t){if(t=/([\+\-]?[0-9#\.]+)(%|px|pt|em|rem|in|cm|mm|ex|ch|pc|vw|vh|vmin|vmax|deg|rad|turn)?$/.exec(t))return t[2]}function h(t,e){return B.fnc(t)?t(e.target,e.id,e.total):t}function w(t,e){if(e in t.style)return getComputedStyle(t).getPropertyValue(e.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase())||"0"}function p(t,e){return B.dom(t)&&a($,e)?"transform":B.dom(t)&&(t.getAttribute(e)||B.svg(t)&&t[e])?"attribute":B.dom(t)&&"transform"!==e&&w(t,e)?"css":null!=t[e]?"object":void 0}function v(t,e){switch(p(t,e)){case"transform":return function(t,i){var e,n=-1<(e=i).indexOf("translate")||"perspective"===e?"px":-1<e.indexOf("rotate")||-1<e.indexOf("skew")?"deg":void 0,n=-1<i.indexOf("scale")?1:0+n;if(!(t=t.style.transform))return n;for(var s=[],o=[],a=[],r=/(\w+)\((.+?)\)/g;s=r.exec(t);)o.push(s[1]),a.push(s[2]);return(t=b(a,function(t,e){return o[e]===i})).length?t[0]:n}(t,e);case"css":return w(t,e);case"attribute":return t.getAttribute(e)}return t[e]||0}function f(t,e){var i=/^(\*=|\+=|-=)/.exec(t);if(!i)return t;var n=l(t)||0;switch(e=parseFloat(e),t=parseFloat(t.replace(i[0],"")),i[0][0]){case"+":return e+t+n;case"-":return e-t+n;case"*":return e*t+n}}function m(t,e){return Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))}function i(t){t=t.points;for(var e,i=0,n=0;n<t.numberOfItems;n++){var s=t.getItem(n);0<n&&(i+=m(e,s)),e=s}return i}function g(t){if(t.getTotalLength)return t.getTotalLength();switch(t.tagName.toLowerCase()){case"circle":return 2*Math.PI*t.getAttribute("r");case"rect":return 2*t.getAttribute("width")+2*t.getAttribute("height");case"line":return m({x:t.getAttribute("x1"),y:t.getAttribute("y1")},{x:t.getAttribute("x2"),y:t.getAttribute("y2")});case"polyline":return i(t);case"polygon":var e=t.points;return i(t)+m(e.getItem(e.numberOfItems-1),e.getItem(0))}}function C(e,i){function t(t){return t=void 0===t?0:t,e.el.getPointAtLength(1<=i+t?i+t:0)}var n=t(),s=t(-1),o=t(1);switch(e.property){case"x":return n.x;case"y":return n.y;case"angle":return 180*Math.atan2(o.y-s.y,o.x-s.x)/Math.PI}}function _(t,e){var i,n=/-?\d*\.?\d+/g;if(i=B.pth(t)?t.totalLength:t,B.col(i))if(B.rgb(i)){var s=/rgb\((\d+,\s*[\d]+,\s*[\d]+)\)/g.exec(i);i=s?"rgba("+s[1]+",1)":i}else i=B.hex(i)?function(t){t=t.replace(/^#?([a-f\d])([a-f\d])([a-f\d])$/i,function(t,e,i,n){return e+e+i+i+n+n});var e=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(t);t=parseInt(e[1],16);var i=parseInt(e[2],16),e=parseInt(e[3],16);return"rgba("+t+","+i+","+e+",1)"}(i):B.hsl(i)?function(t){function e(t,e,i){return i<0&&(i+=1),1<i&&--i,i<1/6?t+6*(e-t)*i:i<.5?e:i<2/3?t+(e-t)*(2/3-i)*6:t}var i=/hsl\((\d+),\s*([\d.]+)%,\s*([\d.]+)%\)/g.exec(t)||/hsla\((\d+),\s*([\d.]+)%,\s*([\d.]+)%,\s*([\d.]+)\)/g.exec(t);t=parseInt(i[1])/360;var n=parseInt(i[2])/100,s=parseInt(i[3])/100,i=i[4]||1;if(0==n)s=n=t=s;else{var o=s<.5?s*(1+n):s+n-s*n,a=2*s-o,s=e(a,o,t+1/3),n=e(a,o,t);t=e(a,o,t-1/3)}return"rgba("+255*s+","+255*n+","+255*t+","+i+")"}(i):void 0;else s=(s=l(i))?i.substr(0,i.length-s.length):i,i=e&&!/\s/g.test(i)?s+e:s;return{original:i+="",numbers:i.match(n)?i.match(n).map(Number):[0],strings:B.str(t)||e?i.split(n):[]}}function y(t){return b(t=t?d(B.arr(t)?t.map(o):o(t)):[],function(t,e,i){return i.indexOf(t)===e})}function k(t,i){var e=r(i);if(B.arr(t)){var n=t.length;2!==n||B.obj(t[0])?B.fnc(i.duration)||(e.duration=i.duration/n):t={value:t}}return o(t).map(function(t,e){return e=e?0:i.delay,t=B.obj(t)&&!B.pth(t)?t:{value:t},B.und(t.delay)&&(t.delay=e),t}).map(function(t){return c(t,e)})}function E(o,a){var r;return o.tweens.map(function(t){var e=(t=function(t,e){var i,n={};for(i in t){var s=h(t[i],e);B.arr(s)&&1===(s=s.map(function(t){return h(t,e)})).length&&(s=s[0]),n[i]=s}return n.duration=parseFloat(n.duration),n.delay=parseFloat(n.delay),n}(t,a)).value,i=v(a.target,o.name),n=r?r.to.original:i,n=B.arr(e)?e[0]:n,s=f(B.arr(e)?e[1]:e,n),i=l(s)||l(n)||l(i);return t.from=_(n,i),t.to=_(s,i),t.start=r?r.end:o.offset,t.end=t.start+t.delay+t.duration,t.easing=function(t){return B.arr(t)?D.apply(this,t):S[t]}(t.easing),t.elasticity=(1e3-Math.min(Math.max(t.elasticity,1),999))/1e3,t.isPath=B.pth(e),t.isColor=B.col(t.from.original),t.isColor&&(t.round=1),r=t})}function M(e,t,i,n){var s="delay"===e;return t.length?(s?Math.min:Math.max).apply(Math,t.map(function(t){return t[e]})):s?n.delay:i.offset+n.delay+n.duration}function n(t){var e,i,n,s,o=u(L,t),a=u(T,t),r=(i=t.targets,(n=y(i)).map(function(t,e){return{target:t,id:e,total:n.length}})),l=[],h=c(o,a);for(e in t)h.hasOwnProperty(e)||"targets"===e||l.push({name:e,offset:h.offset,tweens:k(t[e],a)});return s=l,t=b(d(r.map(function(n){return s.map(function(t){var e=p(n.target,t.name);if(e){var i=E(t,n);t={type:e,property:t.name,animatable:n,tweens:i,duration:i[i.length-1].end,delay:i[0].delay}}else t=void 0;return t})})),function(t){return!B.und(t)}),c(o,{children:[],animatables:r,animations:t,duration:M("duration",t,o,a),delay:M("delay",t,o,a)})}function O(t){function d(){return window.Promise&&new Promise(function(t){return _=t})}function u(t){return k.reversed?k.duration-t:t}function c(e){for(var t=0,i={},n=k.animations,s=n.length;t<s;){var o=n[t],a=o.animatable,r=o.tweens,l=r.length-1,h=r[l];l&&(h=b(r,function(t){return e<t.end})[0]||h);for(var r=Math.min(Math.max(e-h.start-h.delay,0),h.duration)/h.duration,d=isNaN(r)?1:h.easing(r,h.elasticity),r=h.to.strings,u=h.round,l=[],c=void 0,c=h.to.numbers.length,p=0;p<c;p++){var v=void 0,v=h.to.numbers[p],f=h.from.numbers[p],v=h.isPath?C(h.value,d*v):f+d*(v-f);u&&(h.isColor&&2<p||(v=Math.round(v*u)/u)),l.push(v)}if(h=r.length)for(c=r[0],d=0;d<h;d++)u=r[d+1],p=l[d],isNaN(p)||(c=u?c+(p+u):c+(p+" "));else c=l[0];I[o.type](a.target,o.property,c,i,a.id),o.currentValue=c,t++}if(t=Object.keys(i).length)for(n=0;n<t;n++)x||(x=w(document.body,"transform")?"transform":"-webkit-transform"),k.animatables[n].target.style[x]=i[n].join(" ");k.currentTime=e,k.progress=e/k.duration*100}function p(t){k[t]&&k[t](k)}function v(){k.remaining&&!0!==k.remaining&&k.remaining--}function e(t){var e=k.duration,i=k.offset,n=i+k.delay,s=k.currentTime,o=k.reversed,a=u(t);if(k.children.length){var r=k.children,l=r.length;if(a>=k.currentTime)for(var h=0;h<l;h++)r[h].seek(a);else for(;l--;)r[l].seek(a)}(n<=a||!e)&&(k.began||(k.began=!0,p("begin")),p("run")),i<a&&a<e?c(a):(a<=i&&0!==s&&(c(0),o&&v()),(e<=a&&s!==e||!e)&&(c(e),o||v())),p("update"),e<=t&&(k.remaining?(m=f,"alternate"===k.direction&&(k.reversed=!k.reversed)):(k.pause(),k.completed||(k.completed=!0,p("complete"),"Promise"in window&&(_(),y=d()))),g=0)}t=void 0===t?{}:t;var f,m,g=0,_=null,y=d(),k=n(t);return k.reset=function(){var t=k.direction,e=k.loop;for(k.currentTime=0,k.progress=0,k.paused=!0,k.began=!1,k.completed=!1,k.reversed="reverse"===t,k.remaining="alternate"===t&&1===e?2:e,c(0),t=k.children.length;t--;)k.children[t].reset()},k.tick=function(t){f=t,m||(m=f),e((g+f-m)*O.speed)},k.seek=function(t){e(u(t))},k.pause=function(){var t=A.indexOf(k);-1<t&&A.splice(t,1),k.paused=!0},k.play=function(){k.paused&&(k.paused=!1,m=0,g=u(k.currentTime),A.push(k),R||H())},k.reverse=function(){k.reversed=!k.reversed,m=0,g=u(k.currentTime)},k.restart=function(){k.pause(),k.reset(),k.play()},k.finished=y,k.reset(),k.autoplay&&k.play(),k}var x,L={update:void 0,begin:void 0,run:void 0,complete:void 0,loop:1,direction:"normal",autoplay:!0,offset:0},T={duration:1e3,delay:0,easing:"easeOutElastic",elasticity:500,round:0},$="translateX translateY translateZ rotate rotateX rotateY rotateZ scale scaleX scaleY scaleZ skewX skewY perspective".split(" "),B={arr:function(t){return Array.isArray(t)},obj:function(t){return-1<Object.prototype.toString.call(t).indexOf("Object")},pth:function(t){return B.obj(t)&&t.hasOwnProperty("totalLength")},svg:function(t){return t instanceof SVGElement},dom:function(t){return t.nodeType||B.svg(t)},str:function(t){return"string"==typeof t},fnc:function(t){return"function"==typeof t},und:function(t){return void 0===t},hex:function(t){return/(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i.test(t)},rgb:function(t){return/^rgb/.test(t)},hsl:function(t){return/^hsl/.test(t)},col:function(t){return B.hex(t)||B.rgb(t)||B.hsl(t)}},D=function(){function u(t,e,i){return(((1-3*i+3*e)*t+(3*i-6*e))*t+3*e)*t}return function(a,r,l,h){if(0<=a&&a<=1&&0<=l&&l<=1){var d=new Float32Array(11);if(a!==r||l!==h)for(var t=0;t<11;++t)d[t]=u(.1*t,a,l);return function(t){if(a===r&&l===h)return t;if(0===t)return 0;if(1===t)return 1;for(var e=0,i=1;10!==i&&d[i]<=t;++i)e+=.1;var i=e+(t-d[--i])/(d[i+1]-d[i])*.1,n=3*(1-3*l+3*a)*i*i+2*(3*l-6*a)*i+3*a;if(.001<=n){for(e=0;e<4&&0!=(n=3*(1-3*l+3*a)*i*i+2*(3*l-6*a)*i+3*a);++e)var s=u(i,a,l)-t,i=i-s/n;t=i}else if(0===n)t=i;else{for(var i=e,e=e+.1,o=0;0<(n=u(s=i+(e-i)/2,a,l)-t)?e=s:i=s,1e-7<Math.abs(n)&&++o<10;);t=s}return u(t,r,h)}}}}(),S=function(){function i(t,e){return 0===t||1===t?t:-Math.pow(2,10*(t-1))*Math.sin(2*(t-1-e/(2*Math.PI)*Math.asin(1))*Math.PI/e)}var t,n="Quad Cubic Quart Quint Sine Expo Circ Back Elastic".split(" "),e={In:[[.55,.085,.68,.53],[.55,.055,.675,.19],[.895,.03,.685,.22],[.755,.05,.855,.06],[.47,0,.745,.715],[.95,.05,.795,.035],[.6,.04,.98,.335],[.6,-.28,.735,.045],i],Out:[[.25,.46,.45,.94],[.215,.61,.355,1],[.165,.84,.44,1],[.23,1,.32,1],[.39,.575,.565,1],[.19,1,.22,1],[.075,.82,.165,1],[.175,.885,.32,1.275],function(t,e){return 1-i(1-t,e)}],InOut:[[.455,.03,.515,.955],[.645,.045,.355,1],[.77,0,.175,1],[.86,0,.07,1],[.445,.05,.55,.95],[1,0,0,1],[.785,.135,.15,.86],[.68,-.55,.265,1.55],function(t,e){return t<.5?i(2*t,e)/2:1-i(-2*t+2,e)/2}]},s={linear:D(.25,.25,.75,.75)},o={};for(t in e)o.type=t,e[o.type].forEach(function(i){return function(t,e){s["ease"+i.type+n[e]]=B.fnc(t)?t:D.apply($jscomp$this,t)}}(o)),o={type:o.type};return s}(),I={css:function(t,e,i){return t.style[e]=i},attribute:function(t,e,i){return t.setAttribute(e,i)},object:function(t,e,i){return t[e]=i},transform:function(t,e,i,n,s){n[s]||(n[s]=[]),n[s].push(e+"("+i+")")}},A=[],R=0,H=function(){function n(){R=requestAnimationFrame(t)}function t(t){var e=A.length;if(e){for(var i=0;i<e;)A[i]&&A[i].tick(t),i++;n()}else cancelAnimationFrame(R),R=0}return n}();return O.version="2.2.0",O.speed=1,O.running=A,O.remove=function(t){t=y(t);for(var e=A.length;e--;)for(var i=A[e],n=i.animations,s=n.length;s--;)a(t,n[s].animatable.target)&&(n.splice(s,1),n.length||i.pause())},O.getValue=v,O.path=function(t,e){var i=B.str(t)?s(t)[0]:t,n=e||100;return function(t){return{el:i,property:t,totalLength:g(i)*(n/100)}}},O.setDashoffset=function(t){var e=g(t);return t.setAttribute("stroke-dasharray",e),e},O.bezier=D,O.easings=S,O.timeline=function(n){var s=O(n);return s.pause(),s.duration=0,s.add=function(t){return s.children.forEach(function(t){t.began=!0,t.completed=!0}),o(t).forEach(function(t){var e=c(t,u(T,n||{}));e.targets=e.targets||n.targets,t=s.duration;var i=e.offset;e.autoplay=!1,e.direction=s.direction,e.offset=B.und(i)?t:f(i,t),s.began=!0,s.completed=!0,s.seek(e.offset),(e=O(e)).began=!0,e.completed=!0,e.duration>t&&(s.duration=e.duration),s.children.push(e)}),s.seek(0),s.reset(),s.autoplay&&s.restart(),s},s},O.random=function(t,e){return Math.floor(Math.random()*(e-t+1))+t},O}(),function(r,l){"use strict";var e={accordion:!0,onOpenStart:void 0,onOpenEnd:void 0,onCloseStart:void 0,onCloseEnd:void 0,inDuration:300,outDuration:300},t=function(t){function s(t,e){_classCallCheck(this,s);var i=_possibleConstructorReturn(this,(s.__proto__||Object.getPrototypeOf(s)).call(this,s,t,e));(i.el.M_Collapsible=i).options=r.extend({},s.defaults,e),i.$headers=i.$el.children("li").children(".collapsible-header"),i.$headers.attr("tabindex",0),i._setupEventHandlers();var n=i.$el.children("li.active").children(".collapsible-body");return i.options.accordion?n.first().css("display","block"):n.css("display","block"),i}return _inherits(s,Component),_createClass(s,[{key:"destroy",value:function(){this._removeEventHandlers(),this.el.M_Collapsible=void 0}},{key:"_setupEventHandlers",value:function(){var e=this;this._handleCollapsibleClickBound=this._handleCollapsibleClick.bind(this),this._handleCollapsibleKeydownBound=this._handleCollapsibleKeydown.bind(this),this.el.addEventListener("click",this._handleCollapsibleClickBound),this.$headers.each(function(t){t.addEventListener("keydown",e._handleCollapsibleKeydownBound)})}},{key:"_removeEventHandlers",value:function(){var e=this;this.el.removeEventListener("click",this._handleCollapsibleClickBound),this.$headers.each(function(t){t.removeEventListener("keydown",e._handleCollapsibleKeydownBound)})}},{key:"_handleCollapsibleClick",value:function(t){var e=r(t.target).closest(".collapsible-header");if(t.target&&e.length){var i=e.closest(".collapsible");if(i[0]===this.el){var n=e.closest("li"),s=i.children("li"),o=n[0].classList.contains("active"),a=s.index(n);o?this.close(a):this.open(a)}}}},{key:"_handleCollapsibleKeydown",value:function(t){13===t.keyCode&&this._handleCollapsibleClickBound(t)}},{key:"_animateIn",value:function(t){var e=this,i=this.$el.children("li").eq(t);if(i.length){var n=i.children(".collapsible-body");l.remove(n[0]),n.css({display:"block",overflow:"hidden",height:0,paddingTop:"",paddingBottom:""});var s=n.css("padding-top"),o=n.css("padding-bottom"),a=n[0].scrollHeight;n.css({paddingTop:0,paddingBottom:0}),l({targets:n[0],height:a,paddingTop:s,paddingBottom:o,duration:this.options.inDuration,easing:"easeInOutCubic",complete:function(t){n.css({overflow:"",paddingTop:"",paddingBottom:"",height:""}),"function"==typeof e.options.onOpenEnd&&e.options.onOpenEnd.call(e,i[0])}})}}},{key:"_animateOut",value:function(t){var e=this,i=this.$el.children("li").eq(t);if(i.length){var n=i.children(".collapsible-body");l.remove(n[0]),n.css("overflow","hidden"),l({targets:n[0],height:0,paddingTop:0,paddingBottom:0,duration:this.options.outDuration,easing:"easeInOutCubic",complete:function(){n.css({height:"",overflow:"",padding:"",display:""}),"function"==typeof e.options.onCloseEnd&&e.options.onCloseEnd.call(e,i[0])}})}}},{key:"open",value:function(t){var i=this,e=this.$el.children("li").eq(t);if(e.length&&!e[0].classList.contains("active")){if("function"==typeof this.options.onOpenStart&&this.options.onOpenStart.call(this,e[0]),this.options.accordion){var n=this.$el.children("li");this.$el.children("li.active").each(function(t){var e=n.index(r(t));i.close(e)})}e[0].classList.add("active"),this._animateIn(t)}}},{key:"close",value:function(t){var e=this.$el.children("li").eq(t);e.length&&e[0].classList.contains("active")&&("function"==typeof this.options.onCloseStart&&this.options.onCloseStart.call(this,e[0]),e[0].classList.remove("active"),this._animateOut(t))}}],[{key:"init",value:function(t,e){return _get(s.__proto__||Object.getPrototypeOf(s),"init",this).call(this,this,t,e)}},{key:"getInstance",value:function(t){return(t.jquery?t[0]:t).M_Collapsible}},{key:"defaults",get:function(){return e}}]),s}();M.Collapsible=t,M.jQueryLoaded&&M.initializeJqueryWrapper(t,"collapsible","M_Collapsible")}(cash,M.anime),function(h,i){"use strict";var e={alignment:"left",autoFocus:!0,constrainWidth:!0,container:null,coverTrigger:!0,closeOnClick:!0,hover:!1,inDuration:150,outDuration:250,onOpenStart:null,onOpenEnd:null,onCloseStart:null,onCloseEnd:null,onItemClick:null},t=function(t){function n(t,e){_classCallCheck(this,n);var i=_possibleConstructorReturn(this,(n.__proto__||Object.getPrototypeOf(n)).call(this,n,t,e));return i.el.M_Dropdown=i,n._dropdowns.push(i),i.id=M.getIdFromTrigger(t),i.dropdownEl=document.getElementById(i.id),i.$dropdownEl=h(i.dropdownEl),i.options=h.extend({},n.defaults,e),i.isOpen=!1,i.isScrollable=!1,i.isTouchMoving=!1,i.focusedIndex=-1,i.filterQuery=[],i.options.container?h(i.options.container).append(i.dropdownEl):i.$el.after(i.dropdownEl),i._makeDropdownFocusable(),i._resetFilterQueryBound=i._resetFilterQuery.bind(i),i._handleDocumentClickBound=i._handleDocumentClick.bind(i),i._handleDocumentTouchmoveBound=i._handleDocumentTouchmove.bind(i),i._handleDropdownClickBound=i._handleDropdownClick.bind(i),i._handleDropdownKeydownBound=i._handleDropdownKeydown.bind(i),i._handleTriggerKeydownBound=i._handleTriggerKeydown.bind(i),i._setupEventHandlers(),i}return _inherits(n,Component),_createClass(n,[{key:"destroy",value:function(){this._resetDropdownStyles(),this._removeEventHandlers(),n._dropdowns.splice(n._dropdowns.indexOf(this),1),this.el.M_Dropdown=void 0}},{key:"_setupEventHandlers",value:function(){this.el.addEventListener("keydown",this._handleTriggerKeydownBound),this.dropdownEl.addEventListener("click",this._handleDropdownClickBound),this.options.hover?(this._handleMouseEnterBound=this._handleMouseEnter.bind(this),this.el.addEventListener("mouseenter",this._handleMouseEnterBound),this._handleMouseLeaveBound=this._handleMouseLeave.bind(this),this.el.addEventListener("mouseleave",this._handleMouseLeaveBound),this.dropdownEl.addEventListener("mouseleave",this._handleMouseLeaveBound)):(this._handleClickBound=this._handleClick.bind(this),this.el.addEventListener("click",this._handleClickBound))}},{key:"_removeEventHandlers",value:function(){this.el.removeEventListener("keydown",this._handleTriggerKeydownBound),this.dropdownEl.removeEventListener("click",this._handleDropdownClickBound),this.options.hover?(this.el.removeEventListener("mouseenter",this._handleMouseEnterBound),this.el.removeEventListener("mouseleave",this._handleMouseLeaveBound),this.dropdownEl.removeEventListener("mouseleave",this._handleMouseLeaveBound)):this.el.removeEventListener("click",this._handleClickBound)}},{key:"_setupTemporaryEventHandlers",value:function(){document.body.addEventListener("click",this._handleDocumentClickBound,!0),document.body.addEventListener("touchend",this._handleDocumentClickBound),document.body.addEventListener("touchmove",this._handleDocumentTouchmoveBound),this.dropdownEl.addEventListener("keydown",this._handleDropdownKeydownBound)}},{key:"_removeTemporaryEventHandlers",value:function(){document.body.removeEventListener("click",this._handleDocumentClickBound,!0),document.body.removeEventListener("touchend",this._handleDocumentClickBound),document.body.removeEventListener("touchmove",this._handleDocumentTouchmoveBound),this.dropdownEl.removeEventListener("keydown",this._handleDropdownKeydownBound)}},{key:"_handleClick",value:function(t){t.preventDefault(),this.open()}},{key:"_handleMouseEnter",value:function(){this.open()}},{key:"_handleMouseLeave",value:function(t){var e=t.toElement||t.relatedTarget,i=!!h(e).closest(".dropdown-content").length,n=!1,s=h(e).closest(".dropdown-trigger");s.length&&s[0].M_Dropdown&&s[0].M_Dropdown.isOpen&&(n=!0),n||i||this.close()}},{key:"_handleDocumentClick",value:function(t){var e=this,i=h(t.target);this.options.closeOnClick&&i.closest(".dropdown-content").length&&!this.isTouchMoving?setTimeout(function(){e.close()},0):!i.closest(".dropdown-trigger").length&&i.closest(".dropdown-content").length||setTimeout(function(){e.close()},0),this.isTouchMoving=!1}},{key:"_handleTriggerKeydown",value:function(t){t.which!==M.keys.ARROW_DOWN&&t.which!==M.keys.ENTER||this.isOpen||(t.preventDefault(),this.open())}},{key:"_handleDocumentTouchmove",value:function(t){h(t.target).closest(".dropdown-content").length&&(this.isTouchMoving=!0)}},{key:"_handleDropdownClick",value:function(t){if("function"==typeof this.options.onItemClick){var e=h(t.target).closest("li")[0];this.options.onItemClick.call(this,e)}}},{key:"_handleDropdownKeydown",value:function(t){if(t.which===M.keys.TAB)t.preventDefault(),this.close();else if(t.which!==M.keys.ARROW_DOWN&&t.which!==M.keys.ARROW_UP||!this.isOpen)if(t.which===M.keys.ENTER&&this.isOpen){var e=this.dropdownEl.children[this.focusedIndex],i=h(e).find("a, button").first();i.length?i[0].click():e&&e.click()}else t.which===M.keys.ESC&&this.isOpen&&(t.preventDefault(),this.close());else{t.preventDefault();var n=t.which===M.keys.ARROW_DOWN?1:-1,s=this.focusedIndex,o=!1;do{if(s+=n,this.dropdownEl.children[s]&&-1!==this.dropdownEl.children[s].tabIndex){o=!0;break}}while(s<this.dropdownEl.children.length&&0<=s);o&&(this.focusedIndex=s,this._focusFocusedItem())}var a=String.fromCharCode(t.which).toLowerCase();if(a&&-1===[9,13,27,38,40].indexOf(t.which)){this.filterQuery.push(a);var r=this.filterQuery.join(""),l=h(this.dropdownEl).find("li").filter(function(t){return 0===h(t).text().toLowerCase().indexOf(r)})[0];l&&(this.focusedIndex=h(l).index(),this._focusFocusedItem())}this.filterTimeout=setTimeout(this._resetFilterQueryBound,1e3)}},{key:"_resetFilterQuery",value:function(){this.filterQuery=[]}},{key:"_resetDropdownStyles",value:function(){this.$dropdownEl.css({display:"",width:"",height:"",left:"",top:"","transform-origin":"",transform:"",opacity:""})}},{key:"_makeDropdownFocusable",value:function(){this.dropdownEl.tabIndex=0,h(this.dropdownEl).children().each(function(t){t.getAttribute("tabindex")||t.setAttribute("tabindex",0)})}},{key:"_focusFocusedItem",value:function(){0<=this.focusedIndex&&this.focusedIndex<this.dropdownEl.children.length&&this.options.autoFocus&&this.dropdownEl.children[this.focusedIndex].focus()}},{key:"_getDropdownPosition",value:function(){this.el.offsetParent.getBoundingClientRect();var t=this.el.getBoundingClientRect(),e=this.dropdownEl.getBoundingClientRect(),i=e.height,n=e.width,s=t.left-e.left,o=t.top-e.top,a={left:s,top:o,height:i,width:n},r=this.dropdownEl.offsetParent?this.dropdownEl.offsetParent:this.dropdownEl.parentNode,l=M.checkPossibleAlignments(this.el,r,a,this.options.coverTrigger?0:t.height),h="top",d=this.options.alignment;if(o+=this.options.coverTrigger?0:t.height,this.isScrollable=!1,l.top||(l.bottom?h="bottom":(this.isScrollable=!0,l.spaceOnTop>l.spaceOnBottom?(h="bottom",i+=l.spaceOnTop,o-=l.spaceOnTop):i+=l.spaceOnBottom)),!l[d]){var u="left"===d?"right":"left";l[u]?d=u:l.spaceOnLeft>l.spaceOnRight?(d="right",n+=l.spaceOnLeft,s-=l.spaceOnLeft):(d="left",n+=l.spaceOnRight)}return"bottom"===h&&(o=o-e.height+(this.options.coverTrigger?t.height:0)),"right"===d&&(s=s-e.width+t.width),{x:s,y:o,verticalAlignment:h,horizontalAlignment:d,height:i,width:n}}},{key:"_animateIn",value:function(){var e=this;i.remove(this.dropdownEl),i({targets:this.dropdownEl,opacity:{value:[0,1],easing:"easeOutQuad"},scaleX:[.3,1],scaleY:[.3,1],duration:this.options.inDuration,easing:"easeOutQuint",complete:function(t){e.options.autoFocus&&e.dropdownEl.focus(),"function"==typeof e.options.onOpenEnd&&e.options.onOpenEnd.call(e,e.el)}})}},{key:"_animateOut",value:function(){var e=this;i.remove(this.dropdownEl),i({targets:this.dropdownEl,opacity:{value:0,easing:"easeOutQuint"},scaleX:.3,scaleY:.3,duration:this.options.outDuration,easing:"easeOutQuint",complete:function(t){e._resetDropdownStyles(),"function"==typeof e.options.onCloseEnd&&e.options.onCloseEnd.call(e,e.el)}})}},{key:"_placeDropdown",value:function(){var t=this.options.constrainWidth?this.el.getBoundingClientRect().width:this.dropdownEl.getBoundingClientRect().width;this.dropdownEl.style.width=t+"px";var e=this._getDropdownPosition();this.dropdownEl.style.left=e.x+"px",this.dropdownEl.style.top=e.y+"px",this.dropdownEl.style.height=e.height+"px",this.dropdownEl.style.width=e.width+"px",this.dropdownEl.style.transformOrigin=("left"===e.horizontalAlignment?"0":"100%")+" "+("top"===e.verticalAlignment?"0":"100%")}},{key:"open",value:function(){this.isOpen||(this.isOpen=!0,"function"==typeof this.options.onOpenStart&&this.options.onOpenStart.call(this,this.el),this._resetDropdownStyles(),this.dropdownEl.style.display="block",this._placeDropdown(),this._animateIn(),this._setupTemporaryEventHandlers())}},{key:"close",value:function(){this.isOpen&&(this.isOpen=!1,this.focusedIndex=-1,"function"==typeof this.options.onCloseStart&&this.options.onCloseStart.call(this,this.el),this._animateOut(),this._removeTemporaryEventHandlers(),this.options.autoFocus&&this.el.focus())}},{key:"recalculateDimensions",value:function(){this.isOpen&&(this.$dropdownEl.css({width:"",height:"",left:"",top:"","transform-origin":""}),this._placeDropdown())}}],[{key:"init",value:function(t,e){return _get(n.__proto__||Object.getPrototypeOf(n),"init",this).call(this,this,t,e)}},{key:"getInstance",value:function(t){return(t.jquery?t[0]:t).M_Dropdown}},{key:"defaults",get:function(){return e}}]),n}();t._dropdowns=[],M.Dropdown=t,M.jQueryLoaded&&M.initializeJqueryWrapper(t,"dropdown","M_Dropdown")}(cash,M.anime),function(s,i){"use strict";var e={opacity:.5,inDuration:250,outDuration:250,onOpenStart:null,onOpenEnd:null,onCloseStart:null,onCloseEnd:null,preventScrolling:!0,dismissible:!0,startingTop:"4%",endingTop:"10%"},t=function(t){function n(t,e){_classCallCheck(this,n);var i=_possibleConstructorReturn(this,(n.__proto__||Object.getPrototypeOf(n)).call(this,n,t,e));return(i.el.M_Modal=i).options=s.extend({},n.defaults,e),i.isOpen=!1,i.id=i.$el.attr("id"),i._openingTrigger=void 0,i.$overlay=s('<div class="modal-overlay"></div>'),i.el.tabIndex=0,i._nthModalOpened=0,n._count++,i._setupEventHandlers(),i}return _inherits(n,Component),_createClass(n,[{key:"destroy",value:function(){n._count--,this._removeEventHandlers(),this.el.removeAttribute("style"),this.$overlay.remove(),this.el.M_Modal=void 0}},{key:"_setupEventHandlers",value:function(){this._handleOverlayClickBound=this._handleOverlayClick.bind(this),this._handleModalCloseClickBound=this._handleModalCloseClick.bind(this),1===n._count&&document.body.addEventListener("click",this._handleTriggerClick),this.$overlay[0].addEventListener("click",this._handleOverlayClickBound),this.el.addEventListener("click",this._handleModalCloseClickBound)}},{key:"_removeEventHandlers",value:function(){0===n._count&&document.body.removeEventListener("click",this._handleTriggerClick),this.$overlay[0].removeEventListener("click",this._handleOverlayClickBound),this.el.removeEventListener("click",this._handleModalCloseClickBound)}},{key:"_handleTriggerClick",value:function(t){var e=s(t.target).closest(".modal-trigger");if(e.length){var i=M.getIdFromTrigger(e[0]),n=document.getElementById(i).M_Modal;n&&n.open(e),t.preventDefault()}}},{key:"_handleOverlayClick",value:function(){this.options.dismissible&&this.close()}},{key:"_handleModalCloseClick",value:function(t){s(t.target).closest(".modal-close").length&&this.close()}},{key:"_handleKeydown",value:function(t){27===t.keyCode&&this.options.dismissible&&this.close()}},{key:"_handleFocus",value:function(t){this.el.contains(t.target)||this._nthModalOpened!==n._modalsOpen||this.el.focus()}},{key:"_animateIn",value:function(){var t=this;s.extend(this.el.style,{display:"block",opacity:0}),s.extend(this.$overlay[0].style,{display:"block",opacity:0}),i({targets:this.$overlay[0],opacity:this.options.opacity,duration:this.options.inDuration,easing:"easeOutQuad"});var e={targets:this.el,duration:this.options.inDuration,easing:"easeOutCubic",complete:function(){"function"==typeof t.options.onOpenEnd&&t.options.onOpenEnd.call(t,t.el,t._openingTrigger)}};this.el.classList.contains("bottom-sheet")?s.extend(e,{bottom:0,opacity:1}):s.extend(e,{top:[this.options.startingTop,this.options.endingTop],opacity:1,scaleX:[.8,1],scaleY:[.8,1]}),i(e)}},{key:"_animateOut",value:function(){var t=this;i({targets:this.$overlay[0],opacity:0,duration:this.options.outDuration,easing:"easeOutQuart"});var e={targets:this.el,duration:this.options.outDuration,easing:"easeOutCubic",complete:function(){t.el.style.display="none",t.$overlay.remove(),"function"==typeof t.options.onCloseEnd&&t.options.onCloseEnd.call(t,t.el)}};this.el.classList.contains("bottom-sheet")?s.extend(e,{bottom:"-100%",opacity:0}):s.extend(e,{top:[this.options.endingTop,this.options.startingTop],opacity:0,scaleX:.8,scaleY:.8}),i(e)}},{key:"open",value:function(t){if(!this.isOpen)return this.isOpen=!0,n._modalsOpen++,this._nthModalOpened=n._modalsOpen,this.$overlay[0].style.zIndex=1e3+2*n._modalsOpen,this.el.style.zIndex=1e3+2*n._modalsOpen+1,this._openingTrigger=t?t[0]:void 0,"function"==typeof this.options.onOpenStart&&this.options.onOpenStart.call(this,this.el,this._openingTrigger),this.options.preventScrolling&&(document.body.style.overflow="hidden"),this.el.classList.add("open"),this.el.insertAdjacentElement("afterend",this.$overlay[0]),this.options.dismissible&&(this._handleKeydownBound=this._handleKeydown.bind(this),this._handleFocusBound=this._handleFocus.bind(this),document.addEventListener("keydown",this._handleKeydownBound),document.addEventListener("focus",this._handleFocusBound,!0)),i.remove(this.el),i.remove(this.$overlay[0]),this._animateIn(),this.el.focus(),this}},{key:"close",value:function(){if(this.isOpen)return this.isOpen=!1,n._modalsOpen--,this._nthModalOpened=0,"function"==typeof this.options.onCloseStart&&this.options.onCloseStart.call(this,this.el),this.el.classList.remove("open"),0===n._modalsOpen&&(document.body.style.overflow=""),this.options.dismissible&&(document.removeEventListener("keydown",this._handleKeydownBound),document.removeEventListener("focus",this._handleFocusBound,!0)),i.remove(this.el),i.remove(this.$overlay[0]),this._animateOut(),this}}],[{key:"init",value:function(t,e){return _get(n.__proto__||Object.getPrototypeOf(n),"init",this).call(this,this,t,e)}},{key:"getInstance",value:function(t){return(t.jquery?t[0]:t).M_Modal}},{key:"defaults",get:function(){return e}}]),n}();t._modalsOpen=0,t._count=0,M.Modal=t,M.jQueryLoaded&&M.initializeJqueryWrapper(t,"modal","M_Modal")}(cash,M.anime),function(o,a){"use strict";var e={inDuration:275,outDuration:200,onOpenStart:null,onOpenEnd:null,onCloseStart:null,onCloseEnd:null},t=function(t){function n(t,e){_classCallCheck(this,n);var i=_possibleConstructorReturn(this,(n.__proto__||Object.getPrototypeOf(n)).call(this,n,t,e));return(i.el.M_Materialbox=i).options=o.extend({},n.defaults,e),i.overlayActive=!1,i.doneAnimating=!0,i.placeholder=o("<div></div>").addClass("material-placeholder"),i.originalWidth=0,i.originalHeight=0,i.originInlineStyles=i.$el.attr("style"),i.caption=i.el.getAttribute("data-caption")||"",i.$el.before(i.placeholder),i.placeholder.append(i.$el),i._setupEventHandlers(),i}return _inherits(n,Component),_createClass(n,[{key:"destroy",value:function(){this._removeEventHandlers(),this.el.M_Materialbox=void 0,o(this.placeholder).after(this.el).remove(),this.$el.removeAttr("style")}},{key:"_setupEventHandlers",value:function(){this._handleMaterialboxClickBound=this._handleMaterialboxClick.bind(this),this.el.addEventListener("click",this._handleMaterialboxClickBound)}},{key:"_removeEventHandlers",value:function(){this.el.removeEventListener("click",this._handleMaterialboxClickBound)}},{key:"_handleMaterialboxClick",value:function(t){!1===this.doneAnimating||this.overlayActive&&this.doneAnimating?this.close():this.open()}},{key:"_handleWindowScroll",value:function(){this.overlayActive&&this.close()}},{key:"_handleWindowResize",value:function(){this.overlayActive&&this.close()}},{key:"_handleWindowEscape",value:function(t){27===t.keyCode&&this.doneAnimating&&this.overlayActive&&this.close()}},{key:"_makeAncestorsOverflowVisible",value:function(){this.ancestorsChanged=o();for(var t=this.placeholder[0].parentNode;null!==t&&!o(t).is(document);){var e=o(t);"visible"!==e.css("overflow")&&(e.css("overflow","visible"),void 0===this.ancestorsChanged?this.ancestorsChanged=e:this.ancestorsChanged=this.ancestorsChanged.add(e)),t=t.parentNode}}},{key:"_animateImageIn",value:function(){var t=this,e={targets:this.el,height:[this.originalHeight,this.newHeight],width:[this.originalWidth,this.newWidth],left:M.getDocumentScrollLeft()+this.windowWidth/2-this.placeholder.offset().left-this.newWidth/2,top:M.getDocumentScrollTop()+this.windowHeight/2-this.placeholder.offset().top-this.newHeight/2,duration:this.options.inDuration,easing:"easeOutQuad",complete:function(){t.doneAnimating=!0,"function"==typeof t.options.onOpenEnd&&t.options.onOpenEnd.call(t,t.el)}};this.maxWidth=this.$el.css("max-width"),this.maxHeight=this.$el.css("max-height"),"none"!==this.maxWidth&&(e.maxWidth=this.newWidth),"none"!==this.maxHeight&&(e.maxHeight=this.newHeight),a(e)}},{key:"_animateImageOut",value:function(){var t=this,e={targets:this.el,width:this.originalWidth,height:this.originalHeight,left:0,top:0,duration:this.options.outDuration,easing:"easeOutQuad",complete:function(){t.placeholder.css({height:"",width:"",position:"",top:"",left:""}),t.attrWidth&&t.$el.attr("width",t.attrWidth),t.attrHeight&&t.$el.attr("height",t.attrHeight),t.$el.removeAttr("style"),t.originInlineStyles&&t.$el.attr("style",t.originInlineStyles),t.$el.removeClass("active"),t.doneAnimating=!0,t.ancestorsChanged.length&&t.ancestorsChanged.css("overflow",""),"function"==typeof t.options.onCloseEnd&&t.options.onCloseEnd.call(t,t.el)}};a(e)}},{key:"_updateVars",value:function(){this.windowWidth=window.innerWidth,this.windowHeight=window.innerHeight,this.caption=this.el.getAttribute("data-caption")||""}},{key:"open",value:function(){var t=this;this._updateVars(),this.originalWidth=this.el.getBoundingClientRect().width,this.originalHeight=this.el.getBoundingClientRect().height,this.doneAnimating=!1,this.$el.addClass("active"),this.overlayActive=!0,"function"==typeof this.options.onOpenStart&&this.options.onOpenStart.call(this,this.el),this.placeholder.css({width:this.placeholder[0].getBoundingClientRect().width+"px",height:this.placeholder[0].getBoundingClientRect().height+"px",position:"relative",top:0,left:0}),this._makeAncestorsOverflowVisible(),this.$el.css({position:"absolute","z-index":1e3,"will-change":"left, top, width, height"}),this.attrWidth=this.$el.attr("width"),this.attrHeight=this.$el.attr("height"),this.attrWidth&&(this.$el.css("width",this.attrWidth+"px"),this.$el.removeAttr("width")),this.attrHeight&&(this.$el.css("width",this.attrHeight+"px"),this.$el.removeAttr("height")),this.$overlay=o('<div id="materialbox-overlay"></div>').css({opacity:0}).one("click",function(){t.doneAnimating&&t.close()}),this.$el.before(this.$overlay);var e=this.$overlay[0].getBoundingClientRect();this.$overlay.css({width:this.windowWidth+"px",height:this.windowHeight+"px",left:-1*e.left+"px",top:-1*e.top+"px"}),a.remove(this.el),a.remove(this.$overlay[0]),a({targets:this.$overlay[0],opacity:1,duration:this.options.inDuration,easing:"easeOutQuad"}),""!==this.caption&&(this.$photocaption&&a.remove(this.$photoCaption[0]),this.$photoCaption=o('<div class="materialbox-caption"></div>'),this.$photoCaption.text(this.caption),o("body").append(this.$photoCaption),this.$photoCaption.css({display:"inline"}),a({targets:this.$photoCaption[0],opacity:1,duration:this.options.inDuration,easing:"easeOutQuad"}));var i=0,n=this.originalWidth/this.windowWidth,s=this.originalHeight/this.windowHeight;this.newWidth=0,this.newHeight=0,s<n?(i=this.originalHeight/this.originalWidth,this.newWidth=.9*this.windowWidth,this.newHeight=.9*this.windowWidth*i):(i=this.originalWidth/this.originalHeight,this.newWidth=.9*this.windowHeight*i,this.newHeight=.9*this.windowHeight),this._animateImageIn(),this._handleWindowScrollBound=this._handleWindowScroll.bind(this),this._handleWindowResizeBound=this._handleWindowResize.bind(this),this._handleWindowEscapeBound=this._handleWindowEscape.bind(this),window.addEventListener("scroll",this._handleWindowScrollBound),window.addEventListener("resize",this._handleWindowResizeBound),window.addEventListener("keyup",this._handleWindowEscapeBound)}},{key:"close",value:function(){var t=this;this._updateVars(),this.doneAnimating=!1,"function"==typeof this.options.onCloseStart&&this.options.onCloseStart.call(this,this.el),a.remove(this.el),a.remove(this.$overlay[0]),""!==this.caption&&a.remove(this.$photoCaption[0]),window.removeEventListener("scroll",this._handleWindowScrollBound),window.removeEventListener("resize",this._handleWindowResizeBound),window.removeEventListener("keyup",this._handleWindowEscapeBound),a({targets:this.$overlay[0],opacity:0,duration:this.options.outDuration,easing:"easeOutQuad",complete:function(){t.overlayActive=!1,t.$overlay.remove()}}),this._animateImageOut(),""!==this.caption&&a({targets:this.$photoCaption[0],opacity:0,duration:this.options.outDuration,easing:"easeOutQuad",complete:function(){t.$photoCaption.remove()}})}}],[{key:"init",value:function(t,e){return _get(n.__proto__||Object.getPrototypeOf(n),"init",this).call(this,this,t,e)}},{key:"getInstance",value:function(t){return(t.jquery?t[0]:t).M_Materialbox}},{key:"defaults",get:function(){return e}}]),n}();M.Materialbox=t,M.jQueryLoaded&&M.initializeJqueryWrapper(t,"materialbox","M_Materialbox")}(cash,M.anime),function(s){"use strict";var e={responsiveThreshold:0},t=function(t){function n(t,e){_classCallCheck(this,n);var i=_possibleConstructorReturn(this,(n.__proto__||Object.getPrototypeOf(n)).call(this,n,t,e));return(i.el.M_Parallax=i).options=s.extend({},n.defaults,e),i._enabled=window.innerWidth>i.options.responsiveThreshold,i.$img=i.$el.find("img").first(),i.$img.each(function(){this.complete&&s(this).trigger("load")}),i._updateParallax(),i._setupEventHandlers(),i._setupStyles(),n._parallaxes.push(i),i}return _inherits(n,Component),_createClass(n,[{key:"destroy",value:function(){n._parallaxes.splice(n._parallaxes.indexOf(this),1),this.$img[0].style.transform="",this._removeEventHandlers(),this.$el[0].M_Parallax=void 0}},{key:"_setupEventHandlers",value:function(){this._handleImageLoadBound=this._handleImageLoad.bind(this),this.$img[0].addEventListener("load",this._handleImageLoadBound),0===n._parallaxes.length&&(n._handleScrollThrottled=M.throttle(n._handleScroll,5),window.addEventListener("scroll",n._handleScrollThrottled),n._handleWindowResizeThrottled=M.throttle(n._handleWindowResize,5),window.addEventListener("resize",n._handleWindowResizeThrottled))}},{key:"_removeEventHandlers",value:function(){this.$img[0].removeEventListener("load",this._handleImageLoadBound),0===n._parallaxes.length&&(window.removeEventListener("scroll",n._handleScrollThrottled),window.removeEventListener("resize",n._handleWindowResizeThrottled))}},{key:"_setupStyles",value:function(){this.$img[0].style.opacity=1}},{key:"_handleImageLoad",value:function(){this._updateParallax()}},{key:"_updateParallax",value:function(){var t=0<this.$el.height()?this.el.parentNode.offsetHeight:500,e=this.$img[0].offsetHeight-t,i=this.$el.offset().top+t,n=this.$el.offset().top,s=M.getDocumentScrollTop(),o=window.innerHeight,a=e*((s+o-n)/(t+o));this._enabled?s<i&&n<s+o&&(this.$img[0].style.transform="translate3D(-50%, "+a+"px, 0)"):this.$img[0].style.transform=""}}],[{key:"init",value:function(t,e){return _get(n.__proto__||Object.getPrototypeOf(n),"init",this).call(this,this,t,e)}},{key:"getInstance",value:function(t){return(t.jquery?t[0]:t).M_Parallax}},{key:"_handleScroll",value:function(){for(var t=0;t<n._parallaxes.length;t++){var e=n._parallaxes[t];e._updateParallax.call(e)}}},{key:"_handleWindowResize",value:function(){for(var t=0;t<n._parallaxes.length;t++){var e=n._parallaxes[t];e._enabled=window.innerWidth>e.options.responsiveThreshold}}},{key:"defaults",get:function(){return e}}]),n}();t._parallaxes=[],M.Parallax=t,M.jQueryLoaded&&M.initializeJqueryWrapper(t,"parallax","M_Parallax")}(cash),function(a,s){"use strict";var e={duration:300,onShow:null,swipeable:!1,responsiveThreshold:1/0},t=function(t){function n(t,e){_classCallCheck(this,n);var i=_possibleConstructorReturn(this,(n.__proto__||Object.getPrototypeOf(n)).call(this,n,t,e));return(i.el.M_Tabs=i).options=a.extend({},n.defaults,e),i.$tabLinks=i.$el.children("li.tab").children("a"),i.index=0,i._setupActiveTabLink(),i.options.swipeable?i._setupSwipeableTabs():i._setupNormalTabs(),i._setTabsAndTabWidth(),i._createIndicator(),i._setupEventHandlers(),i}return _inherits(n,Component),_createClass(n,[{key:"destroy",value:function(){this._removeEventHandlers(),this._indicator.parentNode.removeChild(this._indicator),this.options.swipeable?this._teardownSwipeableTabs():this._teardownNormalTabs(),this.$el[0].M_Tabs=void 0}},{key:"_setupEventHandlers",value:function(){this._handleWindowResizeBound=this._handleWindowResize.bind(this),window.addEventListener("resize",this._handleWindowResizeBound),this._handleTabClickBound=this._handleTabClick.bind(this),this.el.addEventListener("click",this._handleTabClickBound)}},{key:"_removeEventHandlers",value:function(){window.removeEventListener("resize",this._handleWindowResizeBound),this.el.removeEventListener("click",this._handleTabClickBound)}},{key:"_handleWindowResize",value:function(){this._setTabsAndTabWidth(),0!==this.tabWidth&&0!==this.tabsWidth&&(this._indicator.style.left=this._calcLeftPos(this.$activeTabLink)+"px",this._indicator.style.right=this._calcRightPos(this.$activeTabLink)+"px")}},{key:"_handleTabClick",value:function(t){var e=this,i=a(t.target).closest("li.tab"),n=a(t.target).closest("a");if(n.length&&n.parent().hasClass("tab"))if(i.hasClass("disabled"))t.preventDefault();else if(!n.attr("target")){this.$activeTabLink.removeClass("active");var s=this.$content;this.$activeTabLink=n,this.$content=a(M.escapeHash(n[0].hash)),this.$tabLinks=this.$el.children("li.tab").children("a"),this.$activeTabLink.addClass("active");var o=this.index;this.index=Math.max(this.$tabLinks.index(n),0),this.options.swipeable?this._tabsCarousel&&this._tabsCarousel.set(this.index,function(){"function"==typeof e.options.onShow&&e.options.onShow.call(e,e.$content[0])}):this.$content.length&&(this.$content[0].style.display="block",this.$content.addClass("active"),"function"==typeof this.options.onShow&&this.options.onShow.call(this,this.$content[0]),s.length&&!s.is(this.$content)&&(s[0].style.display="none",s.removeClass("active"))),this._setTabsAndTabWidth(),this._animateIndicator(o),t.preventDefault()}}},{key:"_createIndicator",value:function(){var t=this,e=document.createElement("li");e.classList.add("indicator"),this.el.appendChild(e),this._indicator=e,setTimeout(function(){t._indicator.style.left=t._calcLeftPos(t.$activeTabLink)+"px",t._indicator.style.right=t._calcRightPos(t.$activeTabLink)+"px"},0)}},{key:"_setupActiveTabLink",value:function(){this.$activeTabLink=a(this.$tabLinks.filter('[href="'+location.hash+'"]')),0===this.$activeTabLink.length&&(this.$activeTabLink=this.$el.children("li.tab").children("a.active").first()),0===this.$activeTabLink.length&&(this.$activeTabLink=this.$el.children("li.tab").children("a").first()),this.$tabLinks.removeClass("active"),this.$activeTabLink[0].classList.add("active"),this.index=Math.max(this.$tabLinks.index(this.$activeTabLink),0),this.$activeTabLink.length&&(this.$content=a(M.escapeHash(this.$activeTabLink[0].hash)),this.$content.addClass("active"))}},{key:"_setupSwipeableTabs",value:function(){var i=this;window.innerWidth>this.options.responsiveThreshold&&(this.options.swipeable=!1);var n=a();this.$tabLinks.each(function(t){var e=a(M.escapeHash(t.hash));e.addClass("carousel-item"),n=n.add(e)});var t=a('<div class="tabs-content carousel carousel-slider"></div>');n.first().before(t),t.append(n),n[0].style.display="";var e=this.$activeTabLink.closest(".tab").index();this._tabsCarousel=M.Carousel.init(t[0],{fullWidth:!0,noWrap:!0,onCycleTo:function(t){var e=i.index;i.index=a(t).index(),i.$activeTabLink.removeClass("active"),i.$activeTabLink=i.$tabLinks.eq(i.index),i.$activeTabLink.addClass("active"),i._animateIndicator(e),"function"==typeof i.options.onShow&&i.options.onShow.call(i,i.$content[0])}}),this._tabsCarousel.set(e)}},{key:"_teardownSwipeableTabs",value:function(){var t=this._tabsCarousel.$el;this._tabsCarousel.destroy(),t.after(t.children()),t.remove()}},{key:"_setupNormalTabs",value:function(){this.$tabLinks.not(this.$activeTabLink).each(function(t){if(t.hash){var e=a(M.escapeHash(t.hash));e.length&&(e[0].style.display="none")}})}},{key:"_teardownNormalTabs",value:function(){this.$tabLinks.each(function(t){if(t.hash){var e=a(M.escapeHash(t.hash));e.length&&(e[0].style.display="")}})}},{key:"_setTabsAndTabWidth",value:function(){this.tabsWidth=this.$el.width(),this.tabWidth=Math.max(this.tabsWidth,this.el.scrollWidth)/this.$tabLinks.length}},{key:"_calcRightPos",value:function(t){return Math.ceil(this.tabsWidth-t.position().left-t[0].getBoundingClientRect().width)}},{key:"_calcLeftPos",value:function(t){return Math.floor(t.position().left)}},{key:"updateTabIndicator",value:function(){this._setTabsAndTabWidth(),this._animateIndicator(this.index)}},{key:"_animateIndicator",value:function(t){var e=0,i=0;0<=this.index-t?e=90:i=90;var n={targets:this._indicator,left:{value:this._calcLeftPos(this.$activeTabLink),delay:e},right:{value:this._calcRightPos(this.$activeTabLink),delay:i},duration:this.options.duration,easing:"easeOutQuad"};s.remove(this._indicator),s(n)}},{key:"select",value:function(t){var e=this.$tabLinks.filter('[href="#'+t+'"]');e.length&&e.trigger("click")}}],[{key:"init",value:function(t,e){return _get(n.__proto__||Object.getPrototypeOf(n),"init",this).call(this,this,t,e)}},{key:"getInstance",value:function(t){return(t.jquery?t[0]:t).M_Tabs}},{key:"defaults",get:function(){return e}}]),n}();M.Tabs=t,M.jQueryLoaded&&M.initializeJqueryWrapper(t,"tabs","M_Tabs")}(cash,M.anime),function(d,e){"use strict";var i={exitDelay:200,enterDelay:0,html:null,margin:5,inDuration:250,outDuration:200,position:"bottom",transitionMovement:10},t=function(t){function n(t,e){_classCallCheck(this,n);var i=_possibleConstructorReturn(this,(n.__proto__||Object.getPrototypeOf(n)).call(this,n,t,e));return(i.el.M_Tooltip=i).options=d.extend({},n.defaults,e),i.isOpen=!1,i.isHovered=!1,i.isFocused=!1,i._appendTooltipEl(),i._setupEventHandlers(),i}return _inherits(n,Component),_createClass(n,[{key:"destroy",value:function(){d(this.tooltipEl).remove(),this._removeEventHandlers(),this.el.M_Tooltip=void 0}},{key:"_appendTooltipEl",value:function(){var t=document.createElement("div");t.classList.add("material-tooltip"),this.tooltipEl=t;var e=document.createElement("div");e.classList.add("tooltip-content"),e.innerHTML=this.options.html,t.appendChild(e),document.body.appendChild(t)}},{key:"_updateTooltipContent",value:function(){this.tooltipEl.querySelector(".tooltip-content").innerHTML=this.options.html}},{key:"_setupEventHandlers",value:function(){this._handleMouseEnterBound=this._handleMouseEnter.bind(this),this._handleMouseLeaveBound=this._handleMouseLeave.bind(this),this._handleFocusBound=this._handleFocus.bind(this),this._handleBlurBound=this._handleBlur.bind(this),this.el.addEventListener("mouseenter",this._handleMouseEnterBound),this.el.addEventListener("mouseleave",this._handleMouseLeaveBound),this.el.addEventListener("focus",this._handleFocusBound,!0),this.el.addEventListener("blur",this._handleBlurBound,!0)}},{key:"_removeEventHandlers",value:function(){this.el.removeEventListener("mouseenter",this._handleMouseEnterBound),this.el.removeEventListener("mouseleave",this._handleMouseLeaveBound),this.el.removeEventListener("focus",this._handleFocusBound,!0),this.el.removeEventListener("blur",this._handleBlurBound,!0)}},{key:"open",value:function(t){this.isOpen||(t=void 0===t||void 0,this.isOpen=!0,this.options=d.extend({},this.options,this._getAttributeOptions()),this._updateTooltipContent(),this._setEnterDelayTimeout(t))}},{key:"close",value:function(){this.isOpen&&(this.isHovered=!1,this.isFocused=!1,this.isOpen=!1,this._setExitDelayTimeout())}},{key:"_setExitDelayTimeout",value:function(){var t=this;clearTimeout(this._exitDelayTimeout),this._exitDelayTimeout=setTimeout(function(){t.isHovered||t.isFocused||t._animateOut()},this.options.exitDelay)}},{key:"_setEnterDelayTimeout",value:function(t){var e=this;clearTimeout(this._enterDelayTimeout),this._enterDelayTimeout=setTimeout(function(){(e.isHovered||e.isFocused||t)&&e._animateIn()},this.options.enterDelay)}},{key:"_positionTooltip",value:function(){var t,e=this.el,i=this.tooltipEl,n=e.offsetHeight,s=e.offsetWidth,o=i.offsetHeight,a=i.offsetWidth,r=this.options.margin,l=void 0,h=void 0;this.xMovement=0,this.yMovement=0,l=e.getBoundingClientRect().top+M.getDocumentScrollTop(),h=e.getBoundingClientRect().left+M.getDocumentScrollLeft(),"top"===this.options.position?(l+=-o-r,h+=s/2-a/2,this.yMovement=-this.options.transitionMovement):"right"===this.options.position?(l+=n/2-o/2,h+=s+r,this.xMovement=this.options.transitionMovement):"left"===this.options.position?(l+=n/2-o/2,h+=-a-r,this.xMovement=-this.options.transitionMovement):(l+=n+r,h+=s/2-a/2,this.yMovement=this.options.transitionMovement),t=this._repositionWithinScreen(h,l,a,o),d(i).css({top:t.y+"px",left:t.x+"px"})}},{key:"_repositionWithinScreen",value:function(t,e,i,n){var s=M.getDocumentScrollLeft(),o=M.getDocumentScrollTop(),a=t-s,r=e-o,l={left:a,top:r,width:i,height:n},h=this.options.margin+this.options.transitionMovement,d=M.checkWithinContainer(document.body,l,h);return d.left?a=h:d.right&&(a-=a+i-window.innerWidth),d.top?r=h:d.bottom&&(r-=r+n-window.innerHeight),{x:a+s,y:r+o}}},{key:"_animateIn",value:function(){this._positionTooltip(),this.tooltipEl.style.visibility="visible",e.remove(this.tooltipEl),e({targets:this.tooltipEl,opacity:1,translateX:this.xMovement,translateY:this.yMovement,duration:this.options.inDuration,easing:"easeOutCubic"})}},{key:"_animateOut",value:function(){e.remove(this.tooltipEl),e({targets:this.tooltipEl,opacity:0,translateX:0,translateY:0,duration:this.options.outDuration,easing:"easeOutCubic"})}},{key:"_handleMouseEnter",value:function(){this.isHovered=!0,this.isFocused=!1,this.open(!1)}},{key:"_handleMouseLeave",value:function(){this.isHovered=!1,this.isFocused=!1,this.close()}},{key:"_handleFocus",value:function(){M.tabPressed&&(this.isFocused=!0,this.open(!1))}},{key:"_handleBlur",value:function(){this.isFocused=!1,this.close()}},{key:"_getAttributeOptions",value:function(){var t={},e=this.el.getAttribute("data-tooltip"),i=this.el.getAttribute("data-position");return e&&(t.html=e),i&&(t.position=i),t}}],[{key:"init",value:function(t,e){return _get(n.__proto__||Object.getPrototypeOf(n),"init",this).call(this,this,t,e)}},{key:"getInstance",value:function(t){return(t.jquery?t[0]:t).M_Tooltip}},{key:"defaults",get:function(){return i}}]),n}();M.Tooltip=t,M.jQueryLoaded&&M.initializeJqueryWrapper(t,"tooltip","M_Tooltip")}(cash,M.anime),function(i){"use strict";var t=t||{},e=document.querySelectorAll.bind(document);function m(t){var e="";for(var i in t)t.hasOwnProperty(i)&&(e+=i+":"+t[i]+";");return e}var g={duration:750,show:function(t,e){if(2===t.button)return!1;var i=e||this,n=document.createElement("div");n.className="waves-ripple",i.appendChild(n);var s,o,a,r,l,h,d,u=(h={top:0,left:0},d=(s=i)&&s.ownerDocument,o=d.documentElement,void 0!==s.getBoundingClientRect&&(h=s.getBoundingClientRect()),a=null!==(l=r=d)&&l===l.window?r:9===r.nodeType&&r.defaultView,{top:h.top+a.pageYOffset-o.clientTop,left:h.left+a.pageXOffset-o.clientLeft}),c=t.pageY-u.top,p=t.pageX-u.left,v="scale("+i.clientWidth/100*10+")";"touches"in t&&(c=t.touches[0].pageY-u.top,p=t.touches[0].pageX-u.left),n.setAttribute("data-hold",Date.now()),n.setAttribute("data-scale",v),n.setAttribute("data-x",p),n.setAttribute("data-y",c);var f={top:c+"px",left:p+"px"};n.className=n.className+" waves-notransition",n.setAttribute("style",m(f)),n.className=n.className.replace("waves-notransition",""),f["-webkit-transform"]=v,f["-moz-transform"]=v,f["-ms-transform"]=v,f["-o-transform"]=v,f.transform=v,f.opacity="1",f["-webkit-transition-duration"]=g.duration+"ms",f["-moz-transition-duration"]=g.duration+"ms",f["-o-transition-duration"]=g.duration+"ms",f["transition-duration"]=g.duration+"ms",f["-webkit-transition-timing-function"]="cubic-bezier(0.250, 0.460, 0.450, 0.940)",f["-moz-transition-timing-function"]="cubic-bezier(0.250, 0.460, 0.450, 0.940)",f["-o-transition-timing-function"]="cubic-bezier(0.250, 0.460, 0.450, 0.940)",f["transition-timing-function"]="cubic-bezier(0.250, 0.460, 0.450, 0.940)",n.setAttribute("style",m(f))},hide:function(t){l.touchup(t);var e=this,i=(e.clientWidth,null),n=e.getElementsByClassName("waves-ripple");if(!(0<n.length))return!1;var s=(i=n[n.length-1]).getAttribute("data-x"),o=i.getAttribute("data-y"),a=i.getAttribute("data-scale"),r=350-(Date.now()-Number(i.getAttribute("data-hold")));r<0&&(r=0),setTimeout(function(){var t={top:o+"px",left:s+"px",opacity:"0","-webkit-transition-duration":g.duration+"ms","-moz-transition-duration":g.duration+"ms","-o-transition-duration":g.duration+"ms","transition-duration":g.duration+"ms","-webkit-transform":a,"-moz-transform":a,"-ms-transform":a,"-o-transform":a,transform:a};i.setAttribute("style",m(t)),setTimeout(function(){try{e.removeChild(i)}catch(t){return!1}},g.duration)},r)},wrapInput:function(t){for(var e=0;e<t.length;e++){var i=t[e];if("input"===i.tagName.toLowerCase()){var n=i.parentNode;if("i"===n.tagName.toLowerCase()&&-1!==n.className.indexOf("waves-effect"))continue;var s=document.createElement("i");s.className=i.className+" waves-input-wrapper";var o=i.getAttribute("style");o||(o=""),s.setAttribute("style",o),i.className="waves-button-input",i.removeAttribute("style"),n.replaceChild(s,i),s.appendChild(i)}}}},l={touches:0,allowEvent:function(t){var e=!0;return"touchstart"===t.type?l.touches+=1:"touchend"===t.type||"touchcancel"===t.type?setTimeout(function(){0<l.touches&&(l.touches-=1)},500):"mousedown"===t.type&&0<l.touches&&(e=!1),e},touchup:function(t){l.allowEvent(t)}};function n(t){var e=function(t){if(!1===l.allowEvent(t))return null;for(var e=null,i=t.target||t.srcElement;null!==i.parentNode;){if(!(i instanceof SVGElement)&&-1!==i.className.indexOf("waves-effect")){e=i;break}i=i.parentNode}return e}(t);null!==e&&(g.show(t,e),"ontouchstart"in i&&(e.addEventListener("touchend",g.hide,!1),e.addEventListener("touchcancel",g.hide,!1)),e.addEventListener("mouseup",g.hide,!1),e.addEventListener("mouseleave",g.hide,!1),e.addEventListener("dragend",g.hide,!1))}t.displayEffect=function(t){"duration"in(t=t||{})&&(g.duration=t.duration),g.wrapInput(e(".waves-effect")),"ontouchstart"in i&&document.body.addEventListener("touchstart",n,!1),document.body.addEventListener("mousedown",n,!1)},t.attach=function(t){"input"===t.tagName.toLowerCase()&&(g.wrapInput([t]),t=t.parentNode),"ontouchstart"in i&&t.addEventListener("touchstart",n,!1),t.addEventListener("mousedown",n,!1)},i.Waves=t,document.addEventListener("DOMContentLoaded",function(){t.displayEffect()},!1)}(window),function(i,n){"use strict";var t={html:"",displayLength:4e3,inDuration:300,outDuration:375,classes:"",completeCallback:null,activationPercent:.8},e=function(){function s(t){_classCallCheck(this,s),this.options=i.extend({},s.defaults,t),this.message=this.options.html,this.panning=!1,this.timeRemaining=this.options.displayLength,0===s._toasts.length&&s._createContainer(),s._toasts.push(this);var e=this._createToast();(e.M_Toast=this).el=e,this.$el=i(e),this._animateIn(),this._setTimer()}return _createClass(s,[{key:"_createToast",value:function(){var t=document.createElement("div");return t.classList.add("toast"),this.options.classes.length&&i(t).addClass(this.options.classes),("object"==typeof HTMLElement?this.message instanceof HTMLElement:this.message&&"object"==typeof this.message&&null!==this.message&&1===this.message.nodeType&&"string"==typeof this.message.nodeName)?t.appendChild(this.message):this.message.jquery?i(t).append(this.message[0]):t.innerHTML=this.message,s._container.appendChild(t),t}},{key:"_animateIn",value:function(){n({targets:this.el,top:0,opacity:1,duration:this.options.inDuration,easing:"easeOutCubic"})}},{key:"_setTimer",value:function(){var t=this;this.timeRemaining!==1/0&&(this.counterInterval=setInterval(function(){t.panning||(t.timeRemaining-=20),t.timeRemaining<=0&&t.dismiss()},20))}},{key:"dismiss",value:function(){var t=this;window.clearInterval(this.counterInterval);var e=this.el.offsetWidth*this.options.activationPercent;this.wasSwiped&&(this.el.style.transition="transform .05s, opacity .05s",this.el.style.transform="translateX("+e+"px)",this.el.style.opacity=0),n({targets:this.el,opacity:0,marginTop:-40,duration:this.options.outDuration,easing:"easeOutExpo",complete:function(){"function"==typeof t.options.completeCallback&&t.options.completeCallback(),t.$el.remove(),s._toasts.splice(s._toasts.indexOf(t),1),0===s._toasts.length&&s._removeContainer()}})}}],[{key:"getInstance",value:function(t){return(t.jquery?t[0]:t).M_Toast}},{key:"_createContainer",value:function(){var t=document.createElement("div");t.setAttribute("id","toast-container"),t.addEventListener("touchstart",s._onDragStart),t.addEventListener("touchmove",s._onDragMove),t.addEventListener("touchend",s._onDragEnd),t.addEventListener("mousedown",s._onDragStart),document.addEventListener("mousemove",s._onDragMove),document.addEventListener("mouseup",s._onDragEnd),document.body.appendChild(t),s._container=t}},{key:"_removeContainer",value:function(){document.removeEventListener("mousemove",s._onDragMove),document.removeEventListener("mouseup",s._onDragEnd),i(s._container).remove(),s._container=null}},{key:"_onDragStart",value:function(t){if(t.target&&i(t.target).closest(".toast").length){var e=i(t.target).closest(".toast")[0].M_Toast;e.panning=!0,(s._draggedToast=e).el.classList.add("panning"),e.el.style.transition="",e.startingXPos=s._xPos(t),e.time=Date.now(),e.xPos=s._xPos(t)}}},{key:"_onDragMove",value:function(t){if(s._draggedToast){t.preventDefault();var e=s._draggedToast;e.deltaX=Math.abs(e.xPos-s._xPos(t)),e.xPos=s._xPos(t),e.velocityX=e.deltaX/(Date.now()-e.time),e.time=Date.now();var i=e.xPos-e.startingXPos,n=e.el.offsetWidth*e.options.activationPercent;e.el.style.transform="translateX("+i+"px)",e.el.style.opacity=1-Math.abs(i/n)}}},{key:"_onDragEnd",value:function(){if(s._draggedToast){var t=s._draggedToast;t.panning=!1,t.el.classList.remove("panning");var e=t.xPos-t.startingXPos,i=t.el.offsetWidth*t.options.activationPercent;Math.abs(e)>i||1<t.velocityX?(t.wasSwiped=!0,t.dismiss()):(t.el.style.transition="transform .2s, opacity .2s",t.el.style.transform="",t.el.style.opacity=""),s._draggedToast=null}}},{key:"_xPos",value:function(t){return t.targetTouches&&1<=t.targetTouches.length?t.targetTouches[0].clientX:t.clientX}},{key:"dismissAll",value:function(){for(var t in s._toasts)s._toasts[t].dismiss()}},{key:"defaults",get:function(){return t}}]),s}();e._toasts=[],e._container=null,e._draggedToast=null,M.Toast=e,M.toast=function(t){return new e(t)}}(cash,M.anime),function(s,o){"use strict";var e={edge:"left",draggable:!0,inDuration:250,outDuration:200,onOpenStart:null,onOpenEnd:null,onCloseStart:null,onCloseEnd:null,preventScrolling:!0},t=function(t){function n(t,e){_classCallCheck(this,n);var i=_possibleConstructorReturn(this,(n.__proto__||Object.getPrototypeOf(n)).call(this,n,t,e));return(i.el.M_Sidenav=i).id=i.$el.attr("id"),i.options=s.extend({},n.defaults,e),i.isOpen=!1,i.isFixed=i.el.classList.contains("sidenav-fixed"),i.isDragged=!1,i.lastWindowWidth=window.innerWidth,i.lastWindowHeight=window.innerHeight,i._createOverlay(),i._createDragTarget(),i._setupEventHandlers(),i._setupClasses(),i._setupFixed(),n._sidenavs.push(i),i}return _inherits(n,Component),_createClass(n,[{key:"destroy",value:function(){this._removeEventHandlers(),this._enableBodyScrolling(),this._overlay.parentNode.removeChild(this._overlay),this.dragTarget.parentNode.removeChild(this.dragTarget),this.el.M_Sidenav=void 0,this.el.style.transform="";var t=n._sidenavs.indexOf(this);0<=t&&n._sidenavs.splice(t,1)}},{key:"_createOverlay",value:function(){var t=document.createElement("div");this._closeBound=this.close.bind(this),t.classList.add("sidenav-overlay"),t.addEventListener("click",this._closeBound),document.body.appendChild(t),this._overlay=t}},{key:"_setupEventHandlers",value:function(){0===n._sidenavs.length&&document.body.addEventListener("click",this._handleTriggerClick),this._handleDragTargetDragBound=this._handleDragTargetDrag.bind(this),this._handleDragTargetReleaseBound=this._handleDragTargetRelease.bind(this),this._handleCloseDragBound=this._handleCloseDrag.bind(this),this._handleCloseReleaseBound=this._handleCloseRelease.bind(this),this._handleCloseTriggerClickBound=this._handleCloseTriggerClick.bind(this),this.dragTarget.addEventListener("touchmove",this._handleDragTargetDragBound),this.dragTarget.addEventListener("touchend",this._handleDragTargetReleaseBound),this._overlay.addEventListener("touchmove",this._handleCloseDragBound),this._overlay.addEventListener("touchend",this._handleCloseReleaseBound),this.el.addEventListener("touchmove",this._handleCloseDragBound),this.el.addEventListener("touchend",this._handleCloseReleaseBound),this.el.addEventListener("click",this._handleCloseTriggerClickBound),this.isFixed&&(this._handleWindowResizeBound=this._handleWindowResize.bind(this),window.addEventListener("resize",this._handleWindowResizeBound))}},{key:"_removeEventHandlers",value:function(){1===n._sidenavs.length&&document.body.removeEventListener("click",this._handleTriggerClick),this.dragTarget.removeEventListener("touchmove",this._handleDragTargetDragBound),this.dragTarget.removeEventListener("touchend",this._handleDragTargetReleaseBound),this._overlay.removeEventListener("touchmove",this._handleCloseDragBound),this._overlay.removeEventListener("touchend",this._handleCloseReleaseBound),this.el.removeEventListener("touchmove",this._handleCloseDragBound),this.el.removeEventListener("touchend",this._handleCloseReleaseBound),this.el.removeEventListener("click",this._handleCloseTriggerClickBound),this.isFixed&&window.removeEventListener("resize",this._handleWindowResizeBound)}},{key:"_handleTriggerClick",value:function(t){var e=s(t.target).closest(".sidenav-trigger");if(t.target&&e.length){var i=M.getIdFromTrigger(e[0]),n=document.getElementById(i).M_Sidenav;n&&n.open(e),t.preventDefault()}}},{key:"_startDrag",value:function(t){var e=t.targetTouches[0].clientX;this.isDragged=!0,this._startingXpos=e,this._xPos=this._startingXpos,this._time=Date.now(),this._width=this.el.getBoundingClientRect().width,this._overlay.style.display="block",this._initialScrollTop=this.isOpen?this.el.scrollTop:M.getDocumentScrollTop(),this._verticallyScrolling=!1,o.remove(this.el),o.remove(this._overlay)}},{key:"_dragMoveUpdate",value:function(t){var e=t.targetTouches[0].clientX,i=this.isOpen?this.el.scrollTop:M.getDocumentScrollTop();this.deltaX=Math.abs(this._xPos-e),this._xPos=e,this.velocityX=this.deltaX/(Date.now()-this._time),this._time=Date.now(),this._initialScrollTop!==i&&(this._verticallyScrolling=!0)}},{key:"_handleDragTargetDrag",value:function(t){if(this.options.draggable&&!this._isCurrentlyFixed()&&!this._verticallyScrolling){this.isDragged||this._startDrag(t),this._dragMoveUpdate(t);var e=this._xPos-this._startingXpos,i=0<e?"right":"left";e=Math.min(this._width,Math.abs(e)),this.options.edge===i&&(e=0);var n=e,s="translateX(-100%)";"right"===this.options.edge&&(s="translateX(100%)",n=-n),this.percentOpen=Math.min(1,e/this._width),this.el.style.transform=s+" translateX("+n+"px)",this._overlay.style.opacity=this.percentOpen}}},{key:"_handleDragTargetRelease",value:function(){this.isDragged&&(.2<this.percentOpen?this.open():this._animateOut(),this.isDragged=!1,this._verticallyScrolling=!1)}},{key:"_handleCloseDrag",value:function(t){if(this.isOpen){if(!this.options.draggable||this._isCurrentlyFixed()||this._verticallyScrolling)return;this.isDragged||this._startDrag(t),this._dragMoveUpdate(t);var e=this._xPos-this._startingXpos,i=0<e?"right":"left";e=Math.min(this._width,Math.abs(e)),this.options.edge!==i&&(e=0);var n=-e;"right"===this.options.edge&&(n=-n),this.percentOpen=Math.min(1,1-e/this._width),this.el.style.transform="translateX("+n+"px)",this._overlay.style.opacity=this.percentOpen}}},{key:"_handleCloseRelease",value:function(){this.isOpen&&this.isDragged&&(.8<this.percentOpen?this._animateIn():this.close(),this.isDragged=!1,this._verticallyScrolling=!1)}},{key:"_handleCloseTriggerClick",value:function(t){s(t.target).closest(".sidenav-close").length&&!this._isCurrentlyFixed()&&this.close()}},{key:"_handleWindowResize",value:function(){this.lastWindowWidth!==window.innerWidth&&(992<window.innerWidth?this.open():this.close()),this.lastWindowWidth=window.innerWidth,this.lastWindowHeight=window.innerHeight}},{key:"_setupClasses",value:function(){"right"===this.options.edge&&(this.el.classList.add("right-aligned"),this.dragTarget.classList.add("right-aligned"))}},{key:"_removeClasses",value:function(){this.el.classList.remove("right-aligned"),this.dragTarget.classList.remove("right-aligned")}},{key:"_setupFixed",value:function(){this._isCurrentlyFixed()&&this.open()}},{key:"_isCurrentlyFixed",value:function(){return this.isFixed&&992<window.innerWidth}},{key:"_createDragTarget",value:function(){var t=document.createElement("div");t.classList.add("drag-target"),document.body.appendChild(t),this.dragTarget=t}},{key:"_preventBodyScrolling",value:function(){document.body.style.overflow="hidden"}},{key:"_enableBodyScrolling",value:function(){document.body.style.overflow=""}},{key:"open",value:function(){!0!==this.isOpen&&(this.isOpen=!0,"function"==typeof this.options.onOpenStart&&this.options.onOpenStart.call(this,this.el),this._isCurrentlyFixed()?(o.remove(this.el),o({targets:this.el,translateX:0,duration:0,easing:"easeOutQuad"}),this._enableBodyScrolling(),this._overlay.style.display="none"):(this.options.preventScrolling&&this._preventBodyScrolling(),this.isDragged&&1==this.percentOpen||this._animateIn()))}},{key:"close",value:function(){if(!1!==this.isOpen)if(this.isOpen=!1,"function"==typeof this.options.onCloseStart&&this.options.onCloseStart.call(this,this.el),this._isCurrentlyFixed()){var t="left"===this.options.edge?"-105%":"105%";this.el.style.transform="translateX("+t+")"}else this._enableBodyScrolling(),this.isDragged&&0==this.percentOpen?this._overlay.style.display="none":this._animateOut()}},{key:"_animateIn",value:function(){this._animateSidenavIn(),this._animateOverlayIn()}},{key:"_animateSidenavIn",value:function(){var t=this,e="left"===this.options.edge?-1:1;this.isDragged&&(e="left"===this.options.edge?e+this.percentOpen:e-this.percentOpen),o.remove(this.el),o({targets:this.el,translateX:[100*e+"%",0],duration:this.options.inDuration,easing:"easeOutQuad",complete:function(){"function"==typeof t.options.onOpenEnd&&t.options.onOpenEnd.call(t,t.el)}})}},{key:"_animateOverlayIn",value:function(){var t=0;this.isDragged?t=this.percentOpen:s(this._overlay).css({display:"block"}),o.remove(this._overlay),o({targets:this._overlay,opacity:[t,1],duration:this.options.inDuration,easing:"easeOutQuad"})}},{key:"_animateOut",value:function(){this._animateSidenavOut(),this._animateOverlayOut()}},{key:"_animateSidenavOut",value:function(){var t=this,e="left"===this.options.edge?-1:1,i=0;this.isDragged&&(i="left"===this.options.edge?e+this.percentOpen:e-this.percentOpen),o.remove(this.el),o({targets:this.el,translateX:[100*i+"%",105*e+"%"],duration:this.options.outDuration,easing:"easeOutQuad",complete:function(){"function"==typeof t.options.onCloseEnd&&t.options.onCloseEnd.call(t,t.el)}})}},{key:"_animateOverlayOut",value:function(){var t=this;o.remove(this._overlay),o({targets:this._overlay,opacity:0,duration:this.options.outDuration,easing:"easeOutQuad",complete:function(){s(t._overlay).css("display","none")}})}}],[{key:"init",value:function(t,e){return _get(n.__proto__||Object.getPrototypeOf(n),"init",this).call(this,this,t,e)}},{key:"getInstance",value:function(t){return(t.jquery?t[0]:t).M_Sidenav}},{key:"defaults",get:function(){return e}}]),n}();t._sidenavs=[],M.Sidenav=t,M.jQueryLoaded&&M.initializeJqueryWrapper(t,"sidenav","M_Sidenav")}(cash,M.anime),function(o,a){"use strict";var e={throttle:100,scrollOffset:200,activeClass:"active",getActiveElement:function(t){return'a[href="#'+t+'"]'}},t=function(t){function c(t,e){_classCallCheck(this,c);var i=_possibleConstructorReturn(this,(c.__proto__||Object.getPrototypeOf(c)).call(this,c,t,e));return(i.el.M_ScrollSpy=i).options=o.extend({},c.defaults,e),c._elements.push(i),c._count++,c._increment++,i.tickId=-1,i.id=c._increment,i._setupEventHandlers(),i._handleWindowScroll(),i}return _inherits(c,Component),_createClass(c,[{key:"destroy",value:function(){c._elements.splice(c._elements.indexOf(this),1),c._elementsInView.splice(c._elementsInView.indexOf(this),1),c._visibleElements.splice(c._visibleElements.indexOf(this.$el),1),c._count--,this._removeEventHandlers(),o(this.options.getActiveElement(this.$el.attr("id"))).removeClass(this.options.activeClass),this.el.M_ScrollSpy=void 0}},{key:"_setupEventHandlers",value:function(){var t=M.throttle(this._handleWindowScroll,200);this._handleThrottledResizeBound=t.bind(this),this._handleWindowScrollBound=this._handleWindowScroll.bind(this),1===c._count&&(window.addEventListener("scroll",this._handleWindowScrollBound),window.addEventListener("resize",this._handleThrottledResizeBound),document.body.addEventListener("click",this._handleTriggerClick))}},{key:"_removeEventHandlers",value:function(){0===c._count&&(window.removeEventListener("scroll",this._handleWindowScrollBound),window.removeEventListener("resize",this._handleThrottledResizeBound),document.body.removeEventListener("click",this._handleTriggerClick))}},{key:"_handleTriggerClick",value:function(t){for(var e=o(t.target),i=c._elements.length-1;0<=i;i--){var n=c._elements[i];if(e.is('a[href="#'+n.$el.attr("id")+'"]')){t.preventDefault();var s=n.$el.offset().top+1;a({targets:[document.documentElement,document.body],scrollTop:s-n.options.scrollOffset,duration:400,easing:"easeOutCubic"});break}}}},{key:"_handleWindowScroll",value:function(){c._ticks++;for(var t=M.getDocumentScrollTop(),e=M.getDocumentScrollLeft(),i=e+window.innerWidth,n=t+window.innerHeight,s=c._findElements(t,i,n,e),o=0;o<s.length;o++){var a=s[o];a.tickId<0&&a._enter(),a.tickId=c._ticks}for(var r=0;r<c._elementsInView.length;r++){var l=c._elementsInView[r],h=l.tickId;0<=h&&h!==c._ticks&&(l._exit(),l.tickId=-1)}c._elementsInView=s}},{key:"_enter",value:function(){(c._visibleElements=c._visibleElements.filter(function(t){return 0!=t.height()}))[0]?(o(this.options.getActiveElement(c._visibleElements[0].attr("id"))).removeClass(this.options.activeClass),c._visibleElements[0][0].M_ScrollSpy&&this.id<c._visibleElements[0][0].M_ScrollSpy.id?c._visibleElements.unshift(this.$el):c._visibleElements.push(this.$el)):c._visibleElements.push(this.$el),o(this.options.getActiveElement(c._visibleElements[0].attr("id"))).addClass(this.options.activeClass)}},{key:"_exit",value:function(){var e=this;(c._visibleElements=c._visibleElements.filter(function(t){return 0!=t.height()}))[0]&&(o(this.options.getActiveElement(c._visibleElements[0].attr("id"))).removeClass(this.options.activeClass),(c._visibleElements=c._visibleElements.filter(function(t){return t.attr("id")!=e.$el.attr("id")}))[0]&&o(this.options.getActiveElement(c._visibleElements[0].attr("id"))).addClass(this.options.activeClass))}}],[{key:"init",value:function(t,e){return _get(c.__proto__||Object.getPrototypeOf(c),"init",this).call(this,this,t,e)}},{key:"getInstance",value:function(t){return(t.jquery?t[0]:t).M_ScrollSpy}},{key:"_findElements",value:function(t,e,i,n){for(var s=[],o=0;o<c._elements.length;o++){var a=c._elements[o],r=t+a.options.scrollOffset||200;if(0<a.$el.height()){var l=a.$el.offset().top,h=a.$el.offset().left,d=h+a.$el.width(),u=l+a.$el.height();!(e<h||d<n||i<l||u<r)&&s.push(a)}}return s}},{key:"defaults",get:function(){return e}}]),c}();t._elements=[],t._elementsInView=[],t._visibleElements=[],t._count=0,t._increment=0,t._ticks=0,M.ScrollSpy=t,M.jQueryLoaded&&M.initializeJqueryWrapper(t,"scrollSpy","M_ScrollSpy")}(cash,M.anime),function(h){"use strict";var e={data:{},limit:1/0,onAutocomplete:null,minLength:1,sortFunction:function(t,e,i){return t.indexOf(i)-e.indexOf(i)}},t=function(t){function s(t,e){_classCallCheck(this,s);var i=_possibleConstructorReturn(this,(s.__proto__||Object.getPrototypeOf(s)).call(this,s,t,e));return(i.el.M_Autocomplete=i).options=h.extend({},s.defaults,e),i.isOpen=!1,i.count=0,i.activeIndex=-1,i.oldVal,i.$inputField=i.$el.closest(".input-field"),i.$active=h(),i._mousedown=!1,i._setupDropdown(),i._setupEventHandlers(),i}return _inherits(s,Component),_createClass(s,[{key:"destroy",value:function(){this._removeEventHandlers(),this._removeDropdown(),this.el.M_Autocomplete=void 0}},{key:"_setupEventHandlers",value:function(){this._handleInputBlurBound=this._handleInputBlur.bind(this),this._handleInputKeyupAndFocusBound=this._handleInputKeyupAndFocus.bind(this),this._handleInputKeydownBound=this._handleInputKeydown.bind(this),this._handleInputClickBound=this._handleInputClick.bind(this),this._handleContainerMousedownAndTouchstartBound=this._handleContainerMousedownAndTouchstart.bind(this),this._handleContainerMouseupAndTouchendBound=this._handleContainerMouseupAndTouchend.bind(this),this.el.addEventListener("blur",this._handleInputBlurBound),this.el.addEventListener("keyup",this._handleInputKeyupAndFocusBound),this.el.addEventListener("focus",this._handleInputKeyupAndFocusBound),this.el.addEventListener("keydown",this._handleInputKeydownBound),this.el.addEventListener("click",this._handleInputClickBound),this.container.addEventListener("mousedown",this._handleContainerMousedownAndTouchstartBound),this.container.addEventListener("mouseup",this._handleContainerMouseupAndTouchendBound),void 0!==window.ontouchstart&&(this.container.addEventListener("touchstart",this._handleContainerMousedownAndTouchstartBound),this.container.addEventListener("touchend",this._handleContainerMouseupAndTouchendBound))}},{key:"_removeEventHandlers",value:function(){this.el.removeEventListener("blur",this._handleInputBlurBound),this.el.removeEventListener("keyup",this._handleInputKeyupAndFocusBound),this.el.removeEventListener("focus",this._handleInputKeyupAndFocusBound),this.el.removeEventListener("keydown",this._handleInputKeydownBound),this.el.removeEventListener("click",this._handleInputClickBound),this.container.removeEventListener("mousedown",this._handleContainerMousedownAndTouchstartBound),this.container.removeEventListener("mouseup",this._handleContainerMouseupAndTouchendBound),void 0!==window.ontouchstart&&(this.container.removeEventListener("touchstart",this._handleContainerMousedownAndTouchstartBound),this.container.removeEventListener("touchend",this._handleContainerMouseupAndTouchendBound))}},{key:"_setupDropdown",value:function(){var e=this;this.container=document.createElement("ul"),this.container.id="autocomplete-options-"+M.guid(),h(this.container).addClass("autocomplete-content dropdown-content"),this.$inputField.append(this.container),this.el.setAttribute("data-target",this.container.id),this.dropdown=M.Dropdown.init(this.el,{autoFocus:!1,closeOnClick:!1,coverTrigger:!1,onItemClick:function(t){e.selectOption(h(t))}}),this.el.removeEventListener("click",this.dropdown._handleClickBound)}},{key:"_removeDropdown",value:function(){this.container.parentNode.removeChild(this.container)}},{key:"_handleInputBlur",value:function(){this._mousedown||(this.close(),this._resetAutocomplete())}},{key:"_handleInputKeyupAndFocus",value:function(t){"keyup"===t.type&&(s._keydown=!1),this.count=0;var e=this.el.value.toLowerCase();13!==t.keyCode&&38!==t.keyCode&&40!==t.keyCode&&(this.oldVal===e||!M.tabPressed&&"focus"===t.type||this.open(),this.oldVal=e)}},{key:"_handleInputKeydown",value:function(t){s._keydown=!0;var e=t.keyCode,i=void 0,n=h(this.container).children("li").length;e===M.keys.ENTER&&0<=this.activeIndex?(i=h(this.container).children("li").eq(this.activeIndex)).length&&(this.selectOption(i),t.preventDefault()):e!==M.keys.ARROW_UP&&e!==M.keys.ARROW_DOWN||(t.preventDefault(),e===M.keys.ARROW_UP&&0<this.activeIndex&&this.activeIndex--,e===M.keys.ARROW_DOWN&&this.activeIndex<n-1&&this.activeIndex++,this.$active.removeClass("active"),0<=this.activeIndex&&(this.$active=h(this.container).children("li").eq(this.activeIndex),this.$active.addClass("active")))}},{key:"_handleInputClick",value:function(t){this.open()}},{key:"_handleContainerMousedownAndTouchstart",value:function(t){this._mousedown=!0}},{key:"_handleContainerMouseupAndTouchend",value:function(t){this._mousedown=!1}},{key:"_highlight",value:function(t,e){var i=e.find("img"),n=e.text().toLowerCase().indexOf(""+t.toLowerCase()),s=n+t.length-1,o=e.text().slice(0,n),a=e.text().slice(n,s+1),r=e.text().slice(s+1);e.html("<span>"+o+"<span class='highlight'>"+a+"</span>"+r+"</span>"),i.length&&e.prepend(i)}},{key:"_resetCurrentElement",value:function(){this.activeIndex=-1,this.$active.removeClass("active")}},{key:"_resetAutocomplete",value:function(){h(this.container).empty(),this._resetCurrentElement(),this.oldVal=null,this.isOpen=!1,this._mousedown=!1}},{key:"selectOption",value:function(t){var e=t.text().trim();this.el.value=e,this.$el.trigger("change"),this._resetAutocomplete(),this.close(),"function"==typeof this.options.onAutocomplete&&this.options.onAutocomplete.call(this,e)}},{key:"_renderDropdown",value:function(t,i){var n=this;this._resetAutocomplete();var e=[];for(var s in t)if(t.hasOwnProperty(s)&&-1!==s.toLowerCase().indexOf(i)){if(this.count>=this.options.limit)break;var o={data:t[s],key:s};e.push(o),this.count++}if(this.options.sortFunction){e.sort(function(t,e){return n.options.sortFunction(t.key.toLowerCase(),e.key.toLowerCase(),i.toLowerCase())})}for(var a=0;a<e.length;a++){var r=e[a],l=h("<li></li>");r.data?l.append('<img src="'+r.data+'" class="right circle"><span>'+r.key+"</span>"):l.append("<span>"+r.key+"</span>"),h(this.container).append(l),this._highlight(i,l)}}},{key:"open",value:function(){var t=this.el.value.toLowerCase();this._resetAutocomplete(),t.length>=this.options.minLength&&(this.isOpen=!0,this._renderDropdown(this.options.data,t)),this.dropdown.isOpen?this.dropdown.recalculateDimensions():this.dropdown.open()}},{key:"close",value:function(){this.dropdown.close()}},{key:"updateData",value:function(t){var e=this.el.value.toLowerCase();this.options.data=t,this.isOpen&&this._renderDropdown(t,e)}}],[{key:"init",value:function(t,e){return _get(s.__proto__||Object.getPrototypeOf(s),"init",this).call(this,this,t,e)}},{key:"getInstance",value:function(t){return(t.jquery?t[0]:t).M_Autocomplete}},{key:"defaults",get:function(){return e}}]),s}();t._keydown=!1,M.Autocomplete=t,M.jQueryLoaded&&M.initializeJqueryWrapper(t,"autocomplete","M_Autocomplete")}(cash),function(d){M.updateTextFields=function(){d("input[type=text], input[type=password], input[type=email], input[type=url], input[type=tel], input[type=number], input[type=search], input[type=date], input[type=time], textarea").each(function(t,e){var i=d(this);0<t.value.length||d(t).is(":focus")||t.autofocus||null!==i.attr("placeholder")?i.siblings("label").addClass("active"):t.validity?i.siblings("label").toggleClass("active",!0===t.validity.badInput):i.siblings("label").removeClass("active")})},M.validate_field=function(t){var e=null!==t.attr("data-length"),i=parseInt(t.attr("data-length")),n=t[0].value.length;0!==n||!1!==t[0].validity.badInput||t.is(":required")?t.hasClass("validate")&&(t.is(":valid")&&e&&n<=i||t.is(":valid")&&!e?(t.removeClass("invalid"),t.addClass("valid")):(t.removeClass("valid"),t.addClass("invalid"))):t.hasClass("validate")&&(t.removeClass("valid"),t.removeClass("invalid"))},M.textareaAutoResize=function(t){if(t instanceof Element&&(t=d(t)),t.length){var e=d(".hiddendiv").first();e.length||(e=d('<div class="hiddendiv common"></div>'),d("body").append(e));var i=t.css("font-family"),n=t.css("font-size"),s=t.css("line-height"),o=t.css("padding-top"),a=t.css("padding-right"),r=t.css("padding-bottom"),l=t.css("padding-left");n&&e.css("font-size",n),i&&e.css("font-family",i),s&&e.css("line-height",s),o&&e.css("padding-top",o),a&&e.css("padding-right",a),r&&e.css("padding-bottom",r),l&&e.css("padding-left",l),t.data("original-height")||t.data("original-height",t.height()),"off"===t.attr("wrap")&&e.css("overflow-wrap","normal").css("white-space","pre"),e.text(t[0].value+"\n");var h=e.html().replace(/\n/g,"<br>");e.html(h),0<t[0].offsetWidth&&0<t[0].offsetHeight?e.css("width",t.width()+"px"):e.css("width",window.innerWidth/2+"px"),t.data("original-height")<=e.innerHeight()?t.css("height",e.innerHeight()+"px"):t[0].value.length<t.data("previous-length")&&t.css("height",t.data("original-height")+"px"),t.data("previous-length",t[0].value.length)}else console.error("No textarea element found")},d(document).ready(function(){var n="input[type=text], input[type=password], input[type=email], input[type=url], input[type=tel], input[type=number], input[type=search], input[type=date], input[type=time], textarea";d(document).on("change",n,function(){0===this.value.length&&null===d(this).attr("placeholder")||d(this).siblings("label").addClass("active"),M.validate_field(d(this))}),d(document).ready(function(){M.updateTextFields()}),d(document).on("reset",function(t){var e=d(t.target);e.is("form")&&(e.find(n).removeClass("valid").removeClass("invalid"),e.find(n).each(function(t){this.value.length&&d(this).siblings("label").removeClass("active")}),setTimeout(function(){e.find("select").each(function(){this.M_FormSelect&&d(this).trigger("change")})},0))}),document.addEventListener("focus",function(t){d(t.target).is(n)&&d(t.target).siblings("label, .prefix").addClass("active")},!0),document.addEventListener("blur",function(t){var e=d(t.target);if(e.is(n)){var i=".prefix";0===e[0].value.length&&!0!==e[0].validity.badInput&&null===e.attr("placeholder")&&(i+=", label"),e.siblings(i).removeClass("active"),M.validate_field(e)}},!0);d(document).on("keyup","input[type=radio], input[type=checkbox]",function(t){if(t.which===M.keys.TAB)return d(this).addClass("tabbed"),void d(this).one("blur",function(t){d(this).removeClass("tabbed")})});var t=".materialize-textarea";d(t).each(function(){var t=d(this);t.data("original-height",t.height()),t.data("previous-length",this.value.length),M.textareaAutoResize(t)}),d(document).on("keyup",t,function(){M.textareaAutoResize(d(this))}),d(document).on("keydown",t,function(){M.textareaAutoResize(d(this))}),d(document).on("change",'.file-field input[type="file"]',function(){for(var t=d(this).closest(".file-field").find("input.file-path"),e=d(this)[0].files,i=[],n=0;n<e.length;n++)i.push(e[n].name);t[0].value=i.join(", "),t.trigger("change")})})}(cash),function(s,o){"use strict";var e={indicators:!0,height:400,duration:500,interval:6e3},t=function(t){function n(t,e){_classCallCheck(this,n);var i=_possibleConstructorReturn(this,(n.__proto__||Object.getPrototypeOf(n)).call(this,n,t,e));return(i.el.M_Slider=i).options=s.extend({},n.defaults,e),i.$slider=i.$el.find(".slides"),i.$slides=i.$slider.children("li"),i.activeIndex=i.$slides.filter(function(t){return s(t).hasClass("active")}).first().index(),-1!=i.activeIndex&&(i.$active=i.$slides.eq(i.activeIndex)),i._setSliderHeight(),i.$slides.find(".caption").each(function(t){i._animateCaptionIn(t,0)}),i.$slides.find("img").each(function(t){var e="data:image/gif;base64,R0lGODlhAQABAIABAP///wAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==";s(t).attr("src")!==e&&(s(t).css("background-image",'url("'+s(t).attr("src")+'")'),s(t).attr("src",e))}),i._setupIndicators(),i.$active?i.$active.css("display","block"):(i.$slides.first().addClass("active"),o({targets:i.$slides.first()[0],opacity:1,duration:i.options.duration,easing:"easeOutQuad"}),i.activeIndex=0,i.$active=i.$slides.eq(i.activeIndex),i.options.indicators&&i.$indicators.eq(i.activeIndex).addClass("active")),i.$active.find("img").each(function(t){o({targets:i.$active.find(".caption")[0],opacity:1,translateX:0,translateY:0,duration:i.options.duration,easing:"easeOutQuad"})}),i._setupEventHandlers(),i.start(),i}return _inherits(n,Component),_createClass(n,[{key:"destroy",value:function(){this.pause(),this._removeIndicators(),this._removeEventHandlers(),this.el.M_Slider=void 0}},{key:"_setupEventHandlers",value:function(){var e=this;this._handleIntervalBound=this._handleInterval.bind(this),this._handleIndicatorClickBound=this._handleIndicatorClick.bind(this),this.options.indicators&&this.$indicators.each(function(t){t.addEventListener("click",e._handleIndicatorClickBound)})}},{key:"_removeEventHandlers",value:function(){var e=this;this.options.indicators&&this.$indicators.each(function(t){t.removeEventListener("click",e._handleIndicatorClickBound)})}},{key:"_handleIndicatorClick",value:function(t){var e=s(t.target).index();this.set(e)}},{key:"_handleInterval",value:function(){var t=this.$slider.find(".active").index();this.$slides.length===t+1?t=0:t+=1,this.set(t)}},{key:"_animateCaptionIn",value:function(t,e){var i={targets:t,opacity:0,duration:e,easing:"easeOutQuad"};s(t).hasClass("center-align")?i.translateY=-100:s(t).hasClass("right-align")?i.translateX=100:s(t).hasClass("left-align")&&(i.translateX=-100),o(i)}},{key:"_setSliderHeight",value:function(){this.$el.hasClass("fullscreen")||(this.options.indicators?this.$el.css("height",this.options.height+40+"px"):this.$el.css("height",this.options.height+"px"),this.$slider.css("height",this.options.height+"px"))}},{key:"_setupIndicators",value:function(){var n=this;this.options.indicators&&(this.$indicators=s('<ul class="indicators"></ul>'),this.$slides.each(function(t,e){var i=s('<li class="indicator-item"></li>');n.$indicators.append(i[0])}),this.$el.append(this.$indicators[0]),this.$indicators=this.$indicators.children("li.indicator-item"))}},{key:"_removeIndicators",value:function(){this.$el.find("ul.indicators").remove()}},{key:"set",value:function(t){var e=this;if(t>=this.$slides.length?t=0:t<0&&(t=this.$slides.length-1),this.activeIndex!=t){this.$active=this.$slides.eq(this.activeIndex);var i=this.$active.find(".caption");this.$active.removeClass("active"),o({targets:this.$active[0],opacity:0,duration:this.options.duration,easing:"easeOutQuad",complete:function(){e.$slides.not(".active").each(function(t){o({targets:t,opacity:0,translateX:0,translateY:0,duration:0,easing:"easeOutQuad"})})}}),this._animateCaptionIn(i[0],this.options.duration),this.options.indicators&&(this.$indicators.eq(this.activeIndex).removeClass("active"),this.$indicators.eq(t).addClass("active")),o({targets:this.$slides.eq(t)[0],opacity:1,duration:this.options.duration,easing:"easeOutQuad"}),o({targets:this.$slides.eq(t).find(".caption")[0],opacity:1,translateX:0,translateY:0,duration:this.options.duration,delay:this.options.duration,easing:"easeOutQuad"}),this.$slides.eq(t).addClass("active"),this.activeIndex=t,this.start()}}},{key:"pause",value:function(){clearInterval(this.interval)}},{key:"start",value:function(){clearInterval(this.interval),this.interval=setInterval(this._handleIntervalBound,this.options.duration+this.options.interval)}},{key:"next",value:function(){var t=this.activeIndex+1;t>=this.$slides.length?t=0:t<0&&(t=this.$slides.length-1),this.set(t)}},{key:"prev",value:function(){var t=this.activeIndex-1;t>=this.$slides.length?t=0:t<0&&(t=this.$slides.length-1),this.set(t)}}],[{key:"init",value:function(t,e){return _get(n.__proto__||Object.getPrototypeOf(n),"init",this).call(this,this,t,e)}},{key:"getInstance",value:function(t){return(t.jquery?t[0]:t).M_Slider}},{key:"defaults",get:function(){return e}}]),n}();M.Slider=t,M.jQueryLoaded&&M.initializeJqueryWrapper(t,"slider","M_Slider")}(cash,M.anime),function(n,s){n(document).on("click",".card",function(t){if(n(this).children(".card-reveal").length){var i=n(t.target).closest(".card");void 0===i.data("initialOverflow")&&i.data("initialOverflow",void 0===i.css("overflow")?"":i.css("overflow"));var e=n(this).find(".card-reveal");n(t.target).is(n(".card-reveal .card-title"))||n(t.target).is(n(".card-reveal .card-title i"))?s({targets:e[0],translateY:0,duration:225,easing:"easeInOutQuad",complete:function(t){var e=t.animatables[0].target;n(e).css({display:"none"}),i.css("overflow",i.data("initialOverflow"))}}):(n(t.target).is(n(".card .activator"))||n(t.target).is(n(".card .activator i")))&&(i.css("overflow","hidden"),e.css({display:"block"}),s({targets:e[0],translateY:"-100%",duration:300,easing:"easeInOutQuad"}))}})}(cash,M.anime),function(h){"use strict";var e={data:[],placeholder:"",secondaryPlaceholder:"",autocompleteOptions:{},limit:1/0,onChipAdd:null,onChipSelect:null,onChipDelete:null},t=function(t){function l(t,e){_classCallCheck(this,l);var i=_possibleConstructorReturn(this,(l.__proto__||Object.getPrototypeOf(l)).call(this,l,t,e));return(i.el.M_Chips=i).options=h.extend({},l.defaults,e),i.$el.addClass("chips input-field"),i.chipsData=[],i.$chips=h(),i._setupInput(),i.hasAutocomplete=0<Object.keys(i.options.autocompleteOptions).length,i.$input.attr("id")||i.$input.attr("id",M.guid()),i.options.data.length&&(i.chipsData=i.options.data,i._renderChips(i.chipsData)),i.hasAutocomplete&&i._setupAutocomplete(),i._setPlaceholder(),i._setupLabel(),i._setupEventHandlers(),i}return _inherits(l,Component),_createClass(l,[{key:"getData",value:function(){return this.chipsData}},{key:"destroy",value:function(){this._removeEventHandlers(),this.$chips.remove(),this.el.M_Chips=void 0}},{key:"_setupEventHandlers",value:function(){this._handleChipClickBound=this._handleChipClick.bind(this),this._handleInputKeydownBound=this._handleInputKeydown.bind(this),this._handleInputFocusBound=this._handleInputFocus.bind(this),this._handleInputBlurBound=this._handleInputBlur.bind(this),this.el.addEventListener("click",this._handleChipClickBound),document.addEventListener("keydown",l._handleChipsKeydown),document.addEventListener("keyup",l._handleChipsKeyup),this.el.addEventListener("blur",l._handleChipsBlur,!0),this.$input[0].addEventListener("focus",this._handleInputFocusBound),this.$input[0].addEventListener("blur",this._handleInputBlurBound),this.$input[0].addEventListener("keydown",this._handleInputKeydownBound)}},{key:"_removeEventHandlers",value:function(){this.el.removeEventListener("click",this._handleChipClickBound),document.removeEventListener("keydown",l._handleChipsKeydown),document.removeEventListener("keyup",l._handleChipsKeyup),this.el.removeEventListener("blur",l._handleChipsBlur,!0),this.$input[0].removeEventListener("focus",this._handleInputFocusBound),this.$input[0].removeEventListener("blur",this._handleInputBlurBound),this.$input[0].removeEventListener("keydown",this._handleInputKeydownBound)}},{key:"_handleChipClick",value:function(t){var e=h(t.target).closest(".chip"),i=h(t.target).is(".close");if(e.length){var n=e.index();i?(this.deleteChip(n),this.$input[0].focus()):this.selectChip(n)}else this.$input[0].focus()}},{key:"_handleInputFocus",value:function(){this.$el.addClass("focus")}},{key:"_handleInputBlur",value:function(){this.$el.removeClass("focus")}},{key:"_handleInputKeydown",value:function(t){if(l._keydown=!0,13===t.keyCode){if(this.hasAutocomplete&&this.autocomplete&&this.autocomplete.isOpen)return;t.preventDefault(),this.addChip({tag:this.$input[0].value}),this.$input[0].value=""}else 8!==t.keyCode&&37!==t.keyCode||""!==this.$input[0].value||!this.chipsData.length||(t.preventDefault(),this.selectChip(this.chipsData.length-1))}},{key:"_renderChip",value:function(t){if(t.tag){var e=document.createElement("div"),i=document.createElement("i");if(e.classList.add("chip"),e.textContent=t.tag,e.setAttribute("tabindex",0),h(i).addClass("material-icons close"),i.textContent="close",t.image){var n=document.createElement("img");n.setAttribute("src",t.image),e.insertBefore(n,e.firstChild)}return e.appendChild(i),e}}},{key:"_renderChips",value:function(){this.$chips.remove();for(var t=0;t<this.chipsData.length;t++){var e=this._renderChip(this.chipsData[t]);this.$el.append(e),this.$chips.add(e)}this.$el.append(this.$input[0])}},{key:"_setupAutocomplete",value:function(){var e=this;this.options.autocompleteOptions.onAutocomplete=function(t){e.addChip({tag:t}),e.$input[0].value="",e.$input[0].focus()},this.autocomplete=M.Autocomplete.init(this.$input[0],this.options.autocompleteOptions)}},{key:"_setupInput",value:function(){this.$input=this.$el.find("input"),this.$input.length||(this.$input=h("<input></input>"),this.$el.append(this.$input)),this.$input.addClass("input")}},{key:"_setupLabel",value:function(){this.$label=this.$el.find("label"),this.$label.length&&this.$label.setAttribute("for",this.$input.attr("id"))}},{key:"_setPlaceholder",value:function(){void 0!==this.chipsData&&!this.chipsData.length&&this.options.placeholder?h(this.$input).prop("placeholder",this.options.placeholder):(void 0===this.chipsData||this.chipsData.length)&&this.options.secondaryPlaceholder&&h(this.$input).prop("placeholder",this.options.secondaryPlaceholder)}},{key:"_isValid",value:function(t){if(t.hasOwnProperty("tag")&&""!==t.tag){for(var e=!1,i=0;i<this.chipsData.length;i++)if(this.chipsData[i].tag===t.tag){e=!0;break}return!e}return!1}},{key:"addChip",value:function(t){if(this._isValid(t)&&!(this.chipsData.length>=this.options.limit)){var e=this._renderChip(t);this.$chips.add(e),this.chipsData.push(t),h(this.$input).before(e),this._setPlaceholder(),"function"==typeof this.options.onChipAdd&&this.options.onChipAdd.call(this,this.$el,e)}}},{key:"deleteChip",value:function(t){var e=this.$chips.eq(t);this.$chips.eq(t).remove(),this.$chips=this.$chips.filter(function(t){return 0<=h(t).index()}),this.chipsData.splice(t,1),this._setPlaceholder(),"function"==typeof this.options.onChipDelete&&this.options.onChipDelete.call(this,this.$el,e[0])}},{key:"selectChip",value:function(t){var e=this.$chips.eq(t);(this._selectedChip=e)[0].focus(),"function"==typeof this.options.onChipSelect&&this.options.onChipSelect.call(this,this.$el,e[0])}}],[{key:"init",value:function(t,e){return _get(l.__proto__||Object.getPrototypeOf(l),"init",this).call(this,this,t,e)}},{key:"getInstance",value:function(t){return(t.jquery?t[0]:t).M_Chips}},{key:"_handleChipsKeydown",value:function(t){l._keydown=!0;var e=h(t.target).closest(".chips"),i=t.target&&e.length;if(!h(t.target).is("input, textarea")&&i){var n=e[0].M_Chips;if(8===t.keyCode||46===t.keyCode){t.preventDefault();var s=n.chipsData.length;if(n._selectedChip){var o=n._selectedChip.index();n.deleteChip(o),n._selectedChip=null,s=Math.max(o-1,0)}n.chipsData.length&&n.selectChip(s)}else if(37===t.keyCode){if(n._selectedChip){var a=n._selectedChip.index()-1;if(a<0)return;n.selectChip(a)}}else if(39===t.keyCode&&n._selectedChip){var r=n._selectedChip.index()+1;r>=n.chipsData.length?n.$input[0].focus():n.selectChip(r)}}}},{key:"_handleChipsKeyup",value:function(t){l._keydown=!1}},{key:"_handleChipsBlur",value:function(t){l._keydown||(h(t.target).closest(".chips")[0].M_Chips._selectedChip=null)}},{key:"defaults",get:function(){return e}}]),l}();t._keydown=!1,M.Chips=t,M.jQueryLoaded&&M.initializeJqueryWrapper(t,"chips","M_Chips"),h(document).ready(function(){h(document.body).on("click",".chip .close",function(){var t=h(this).closest(".chips");t.length&&t[0].M_Chips||h(this).closest(".chip").remove()})})}(cash),function(s){"use strict";var e={top:0,bottom:1/0,offset:0,onPositionChange:null},t=function(t){function n(t,e){_classCallCheck(this,n);var i=_possibleConstructorReturn(this,(n.__proto__||Object.getPrototypeOf(n)).call(this,n,t,e));return(i.el.M_Pushpin=i).options=s.extend({},n.defaults,e),i.originalOffset=i.el.offsetTop,n._pushpins.push(i),i._setupEventHandlers(),i._updatePosition(),i}return _inherits(n,Component),_createClass(n,[{key:"destroy",value:function(){this.el.style.top=null,this._removePinClasses(),this._removeEventHandlers();var t=n._pushpins.indexOf(this);n._pushpins.splice(t,1)}},{key:"_setupEventHandlers",value:function(){document.addEventListener("scroll",n._updateElements)}},{key:"_removeEventHandlers",value:function(){document.removeEventListener("scroll",n._updateElements)}},{key:"_updatePosition",value:function(){var t=M.getDocumentScrollTop()+this.options.offset;this.options.top<=t&&this.options.bottom>=t&&!this.el.classList.contains("pinned")&&(this._removePinClasses(),this.el.style.top=this.options.offset+"px",this.el.classList.add("pinned"),"function"==typeof this.options.onPositionChange&&this.options.onPositionChange.call(this,"pinned")),t<this.options.top&&!this.el.classList.contains("pin-top")&&(this._removePinClasses(),this.el.style.top=0,this.el.classList.add("pin-top"),"function"==typeof this.options.onPositionChange&&this.options.onPositionChange.call(this,"pin-top")),t>this.options.bottom&&!this.el.classList.contains("pin-bottom")&&(this._removePinClasses(),this.el.classList.add("pin-bottom"),this.el.style.top=this.options.bottom-this.originalOffset+"px","function"==typeof this.options.onPositionChange&&this.options.onPositionChange.call(this,"pin-bottom"))}},{key:"_removePinClasses",value:function(){this.el.classList.remove("pin-top"),this.el.classList.remove("pinned"),this.el.classList.remove("pin-bottom")}}],[{key:"init",value:function(t,e){return _get(n.__proto__||Object.getPrototypeOf(n),"init",this).call(this,this,t,e)}},{key:"getInstance",value:function(t){return(t.jquery?t[0]:t).M_Pushpin}},{key:"_updateElements",value:function(){for(var t in n._pushpins){n._pushpins[t]._updatePosition()}}},{key:"defaults",get:function(){return e}}]),n}();t._pushpins=[],M.Pushpin=t,M.jQueryLoaded&&M.initializeJqueryWrapper(t,"pushpin","M_Pushpin")}(cash),function(r,s){"use strict";var e={direction:"top",hoverEnabled:!0,toolbarEnabled:!1};r.fn.reverse=[].reverse;var t=function(t){function n(t,e){_classCallCheck(this,n);var i=_possibleConstructorReturn(this,(n.__proto__||Object.getPrototypeOf(n)).call(this,n,t,e));return(i.el.M_FloatingActionButton=i).options=r.extend({},n.defaults,e),i.isOpen=!1,i.$anchor=i.$el.children("a").first(),i.$menu=i.$el.children("ul").first(),i.$floatingBtns=i.$el.find("ul .btn-floating"),i.$floatingBtnsReverse=i.$el.find("ul .btn-floating").reverse(),i.offsetY=0,i.offsetX=0,i.$el.addClass("direction-"+i.options.direction),"top"===i.options.direction?i.offsetY=40:"right"===i.options.direction?i.offsetX=-40:"bottom"===i.options.direction?i.offsetY=-40:i.offsetX=40,i._setupEventHandlers(),i}return _inherits(n,Component),_createClass(n,[{key:"destroy",value:function(){this._removeEventHandlers(),this.el.M_FloatingActionButton=void 0}},{key:"_setupEventHandlers",value:function(){this._handleFABClickBound=this._handleFABClick.bind(this),this._handleOpenBound=this.open.bind(this),this._handleCloseBound=this.close.bind(this),this.options.hoverEnabled&&!this.options.toolbarEnabled?(this.el.addEventListener("mouseenter",this._handleOpenBound),this.el.addEventListener("mouseleave",this._handleCloseBound)):this.el.addEventListener("click",this._handleFABClickBound)}},{key:"_removeEventHandlers",value:function(){this.options.hoverEnabled&&!this.options.toolbarEnabled?(this.el.removeEventListener("mouseenter",this._handleOpenBound),this.el.removeEventListener("mouseleave",this._handleCloseBound)):this.el.removeEventListener("click",this._handleFABClickBound)}},{key:"_handleFABClick",value:function(){this.isOpen?this.close():this.open()}},{key:"_handleDocumentClick",value:function(t){r(t.target).closest(this.$menu).length||this.close()}},{key:"open",value:function(){this.isOpen||(this.options.toolbarEnabled?this._animateInToolbar():this._animateInFAB(),this.isOpen=!0)}},{key:"close",value:function(){this.isOpen&&(this.options.toolbarEnabled?(window.removeEventListener("scroll",this._handleCloseBound,!0),document.body.removeEventListener("click",this._handleDocumentClickBound,!0),this._animateOutToolbar()):this._animateOutFAB(),this.isOpen=!1)}},{key:"_animateInFAB",value:function(){var e=this;this.$el.addClass("active");var i=0;this.$floatingBtnsReverse.each(function(t){s({targets:t,opacity:1,scale:[.4,1],translateY:[e.offsetY,0],translateX:[e.offsetX,0],duration:275,delay:i,easing:"easeInOutQuad"}),i+=40})}},{key:"_animateOutFAB",value:function(){var e=this;this.$floatingBtnsReverse.each(function(t){s.remove(t),s({targets:t,opacity:0,scale:.4,translateY:e.offsetY,translateX:e.offsetX,duration:175,easing:"easeOutQuad",complete:function(){e.$el.removeClass("active")}})})}},{key:"_animateInToolbar",value:function(){var t,e=this,i=window.innerWidth,n=window.innerHeight,s=this.el.getBoundingClientRect(),o=r('<div class="fab-backdrop"></div>'),a=this.$anchor.css("background-color");this.$anchor.append(o),this.offsetX=s.left-i/2+s.width/2,this.offsetY=n-s.bottom,t=i/o[0].clientWidth,this.btnBottom=s.bottom,this.btnLeft=s.left,this.btnWidth=s.width,this.$el.addClass("active"),this.$el.css({"text-align":"center",width:"100%",bottom:0,left:0,transform:"translateX("+this.offsetX+"px)",transition:"none"}),this.$anchor.css({transform:"translateY("+-this.offsetY+"px)",transition:"none"}),o.css({"background-color":a}),setTimeout(function(){e.$el.css({transform:"",transition:"transform .2s cubic-bezier(0.550, 0.085, 0.680, 0.530), background-color 0s linear .2s"}),e.$anchor.css({overflow:"visible",transform:"",transition:"transform .2s"}),setTimeout(function(){e.$el.css({overflow:"hidden","background-color":a}),o.css({transform:"scale("+t+")",transition:"transform .2s cubic-bezier(0.550, 0.055, 0.675, 0.190)"}),e.$menu.children("li").children("a").css({opacity:1}),e._handleDocumentClickBound=e._handleDocumentClick.bind(e),window.addEventListener("scroll",e._handleCloseBound,!0),document.body.addEventListener("click",e._handleDocumentClickBound,!0)},100)},0)}},{key:"_animateOutToolbar",value:function(){var t=this,e=window.innerWidth,i=window.innerHeight,n=this.$el.find(".fab-backdrop"),s=this.$anchor.css("background-color");this.offsetX=this.btnLeft-e/2+this.btnWidth/2,this.offsetY=i-this.btnBottom,this.$el.removeClass("active"),this.$el.css({"background-color":"transparent",transition:"none"}),this.$anchor.css({transition:"none"}),n.css({transform:"scale(0)","background-color":s}),this.$menu.children("li").children("a").css({opacity:""}),setTimeout(function(){n.remove(),t.$el.css({"text-align":"",width:"",bottom:"",left:"",overflow:"","background-color":"",transform:"translate3d("+-t.offsetX+"px,0,0)"}),t.$anchor.css({overflow:"",transform:"translate3d(0,"+t.offsetY+"px,0)"}),setTimeout(function(){t.$el.css({transform:"translate3d(0,0,0)",transition:"transform .2s"}),t.$anchor.css({transform:"translate3d(0,0,0)",transition:"transform .2s cubic-bezier(0.550, 0.055, 0.675, 0.190)"})},20)},200)}}],[{key:"init",value:function(t,e){return _get(n.__proto__||Object.getPrototypeOf(n),"init",this).call(this,this,t,e)}},{key:"getInstance",value:function(t){return(t.jquery?t[0]:t).M_FloatingActionButton}},{key:"defaults",get:function(){return e}}]),n}();M.FloatingActionButton=t,M.jQueryLoaded&&M.initializeJqueryWrapper(t,"floatingActionButton","M_FloatingActionButton")}(cash,M.anime),function(g){"use strict";var e={autoClose:!1,format:"mmm dd, yyyy",parse:null,defaultDate:null,setDefaultDate:!1,disableWeekends:!1,disableDayFn:null,firstDay:0,minDate:null,maxDate:null,yearRange:10,minYear:0,maxYear:9999,minMonth:void 0,maxMonth:void 0,startRange:null,endRange:null,isRTL:!1,showMonthAfterYear:!1,showDaysInNextAndPreviousMonths:!1,container:null,showClearBtn:!1,i18n:{cancel:"Cancel",clear:"Clear",done:"Ok",previousMonth:"‹",nextMonth:"›",months:["January","February","March","April","May","June","July","August","September","October","November","December"],monthsShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],weekdays:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],weekdaysShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],weekdaysAbbrev:["S","M","T","W","T","F","S"]},events:[],onSelect:null,onOpen:null,onClose:null,onDraw:null},t=function(t){function B(t,e){_classCallCheck(this,B);var i=_possibleConstructorReturn(this,(B.__proto__||Object.getPrototypeOf(B)).call(this,B,t,e));(i.el.M_Datepicker=i).options=g.extend({},B.defaults,e),e&&e.hasOwnProperty("i18n")&&"object"==typeof e.i18n&&(i.options.i18n=g.extend({},B.defaults.i18n,e.i18n)),i.options.minDate&&i.options.minDate.setHours(0,0,0,0),i.options.maxDate&&i.options.maxDate.setHours(0,0,0,0),i.id=M.guid(),i._setupVariables(),i._insertHTMLIntoDOM(),i._setupModal(),i._setupEventHandlers(),i.options.defaultDate||(i.options.defaultDate=new Date(Date.parse(i.el.value)));var n=i.options.defaultDate;return B._isDate(n)?i.options.setDefaultDate?(i.setDate(n,!0),i.setInputValue()):i.gotoDate(n):i.gotoDate(new Date),i.isOpen=!1,i}return _inherits(B,Component),_createClass(B,[{key:"destroy",value:function(){this._removeEventHandlers(),this.modal.destroy(),g(this.modalEl).remove(),this.destroySelects(),this.el.M_Datepicker=void 0}},{key:"destroySelects",value:function(){var t=this.calendarEl.querySelector(".orig-select-year");t&&M.FormSelect.getInstance(t).destroy();var e=this.calendarEl.querySelector(".orig-select-month");e&&M.FormSelect.getInstance(e).destroy()}},{key:"_insertHTMLIntoDOM",value:function(){this.options.showClearBtn&&(g(this.clearBtn).css({visibility:""}),this.clearBtn.innerHTML=this.options.i18n.clear),this.doneBtn.innerHTML=this.options.i18n.done,this.cancelBtn.innerHTML=this.options.i18n.cancel,this.options.container?this.$modalEl.appendTo(this.options.container):this.$modalEl.insertBefore(this.el)}},{key:"_setupModal",value:function(){var t=this;this.modalEl.id="modal-"+this.id,this.modal=M.Modal.init(this.modalEl,{onCloseEnd:function(){t.isOpen=!1}})}},{key:"toString",value:function(t){var e=this;return t=t||this.options.format,B._isDate(this.date)?t.split(/(d{1,4}|m{1,4}|y{4}|yy|!.)/g).map(function(t){return e.formats[t]?e.formats[t]():t}).join(""):""}},{key:"setDate",value:function(t,e){if(!t)return this.date=null,this._renderDateDisplay(),this.draw();if("string"==typeof t&&(t=new Date(Date.parse(t))),B._isDate(t)){var i=this.options.minDate,n=this.options.maxDate;B._isDate(i)&&t<i?t=i:B._isDate(n)&&n<t&&(t=n),this.date=new Date(t.getTime()),this._renderDateDisplay(),B._setToStartOfDay(this.date),this.gotoDate(this.date),e||"function"!=typeof this.options.onSelect||this.options.onSelect.call(this,this.date)}}},{key:"setInputValue",value:function(){this.el.value=this.toString(),this.$el.trigger("change",{firedBy:this})}},{key:"_renderDateDisplay",value:function(){var t=B._isDate(this.date)?this.date:new Date,e=this.options.i18n,i=e.weekdaysShort[t.getDay()],n=e.monthsShort[t.getMonth()],s=t.getDate();this.yearTextEl.innerHTML=t.getFullYear(),this.dateTextEl.innerHTML=i+", "+n+" "+s}},{key:"gotoDate",value:function(t){var e=!0;if(B._isDate(t)){if(this.calendars){var i=new Date(this.calendars[0].year,this.calendars[0].month,1),n=new Date(this.calendars[this.calendars.length-1].year,this.calendars[this.calendars.length-1].month,1),s=t.getTime();n.setMonth(n.getMonth()+1),n.setDate(n.getDate()-1),e=s<i.getTime()||n.getTime()<s}e&&(this.calendars=[{month:t.getMonth(),year:t.getFullYear()}]),this.adjustCalendars()}}},{key:"adjustCalendars",value:function(){this.calendars[0]=this.adjustCalendar(this.calendars[0]),this.draw()}},{key:"adjustCalendar",value:function(t){return t.month<0&&(t.year-=Math.ceil(Math.abs(t.month)/12),t.month+=12),11<t.month&&(t.year+=Math.floor(Math.abs(t.month)/12),t.month-=12),t}},{key:"nextMonth",value:function(){this.calendars[0].month++,this.adjustCalendars()}},{key:"prevMonth",value:function(){this.calendars[0].month--,this.adjustCalendars()}},{key:"render",value:function(t,e,i){var n=this.options,s=new Date,o=B._getDaysInMonth(t,e),a=new Date(t,e,1).getDay(),r=[],l=[];B._setToStartOfDay(s),0<n.firstDay&&(a-=n.firstDay)<0&&(a+=7);for(var h=0===e?11:e-1,d=11===e?0:e+1,u=0===e?t-1:t,c=11===e?t+1:t,p=B._getDaysInMonth(u,h),v=o+a,f=v;7<f;)f-=7;v+=7-f;for(var m=!1,g=0,_=0;g<v;g++){var y=new Date(t,e,g-a+1),k=!!B._isDate(this.date)&&B._compareDates(y,this.date),b=B._compareDates(y,s),w=-1!==n.events.indexOf(y.toDateString()),C=g<a||o+a<=g,E=g-a+1,M=e,O=t,x=n.startRange&&B._compareDates(n.startRange,y),L=n.endRange&&B._compareDates(n.endRange,y),T=n.startRange&&n.endRange&&n.startRange<y&&y<n.endRange;C&&(g<a?(E=p+E,M=h,O=u):(E-=o,M=d,O=c));var $={day:E,month:M,year:O,hasEvent:w,isSelected:k,isToday:b,isDisabled:n.minDate&&y<n.minDate||n.maxDate&&y>n.maxDate||n.disableWeekends&&B._isWeekend(y)||n.disableDayFn&&n.disableDayFn(y),isEmpty:C,isStartRange:x,isEndRange:L,isInRange:T,showDaysInNextAndPreviousMonths:n.showDaysInNextAndPreviousMonths};l.push(this.renderDay($)),7==++_&&(r.push(this.renderRow(l,n.isRTL,m)),_=0,m=!(l=[]))}return this.renderTable(n,r,i)}},{key:"renderDay",value:function(t){var e=[],i="false";if(t.isEmpty){if(!t.showDaysInNextAndPreviousMonths)return'<td class="is-empty"></td>';e.push("is-outside-current-month"),e.push("is-selection-disabled")}return t.isDisabled&&e.push("is-disabled"),t.isToday&&e.push("is-today"),t.isSelected&&(e.push("is-selected"),i="true"),t.hasEvent&&e.push("has-event"),t.isInRange&&e.push("is-inrange"),t.isStartRange&&e.push("is-startrange"),t.isEndRange&&e.push("is-endrange"),'<td data-day="'+t.day+'" class="'+e.join(" ")+'" aria-selected="'+i+'"><button class="datepicker-day-button" type="button" data-year="'+t.year+'" data-month="'+t.month+'" data-day="'+t.day+'">'+t.day+"</button></td>"}},{key:"renderRow",value:function(t,e,i){return'<tr class="datepicker-row'+(i?" is-selected":"")+'">'+(e?t.reverse():t).join("")+"</tr>"}},{key:"renderTable",value:function(t,e,i){return'<div class="datepicker-table-wrapper"><table cellpadding="0" cellspacing="0" class="datepicker-table" role="grid" aria-labelledby="'+i+'">'+this.renderHead(t)+this.renderBody(e)+"</table></div>"}},{key:"renderHead",value:function(t){var e=void 0,i=[];for(e=0;e<7;e++)i.push('<th scope="col"><abbr title="'+this.renderDayName(t,e)+'">'+this.renderDayName(t,e,!0)+"</abbr></th>");return"<thead><tr>"+(t.isRTL?i.reverse():i).join("")+"</tr></thead>"}},{key:"renderBody",value:function(t){return"<tbody>"+t.join("")+"</tbody>"}},{key:"renderTitle",value:function(t,e,i,n,s,o){var a,r,l=void 0,h=void 0,d=void 0,u=this.options,c=i===u.minYear,p=i===u.maxYear,v='<div id="'+o+'" class="datepicker-controls" role="heading" aria-live="assertive">',f=!0,m=!0;for(d=[],l=0;l<12;l++)d.push('<option value="'+(i===s?l-e:12+l-e)+'"'+(l===n?' selected="selected"':"")+(c&&l<u.minMonth||p&&l>u.maxMonth?'disabled="disabled"':"")+">"+u.i18n.months[l]+"</option>");for(a='<select class="datepicker-select orig-select-month" tabindex="-1">'+d.join("")+"</select>",g.isArray(u.yearRange)?(l=u.yearRange[0],h=u.yearRange[1]+1):(l=i-u.yearRange,h=1+i+u.yearRange),d=[];l<h&&l<=u.maxYear;l++)l>=u.minYear&&d.push('<option value="'+l+'" '+(l===i?'selected="selected"':"")+">"+l+"</option>");r='<select class="datepicker-select orig-select-year" tabindex="-1">'+d.join("")+"</select>";v+='<button class="month-prev'+(f?"":" is-disabled")+'" type="button"><svg fill="#000000" height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><path d="M15.41 16.09l-4.58-4.59 4.58-4.59L14 5.5l-6 6 6 6z"/><path d="M0-.5h24v24H0z" fill="none"/></svg></button>',v+='<div class="selects-container">',u.showMonthAfterYear?v+=r+a:v+=a+r,v+="</div>",c&&(0===n||u.minMonth>=n)&&(f=!1),p&&(11===n||u.maxMonth<=n)&&(m=!1);return(v+='<button class="month-next'+(m?"":" is-disabled")+'" type="button"><svg fill="#000000" height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><path d="M8.59 16.34l4.58-4.59-4.58-4.59L10 5.75l6 6-6 6z"/><path d="M0-.25h24v24H0z" fill="none"/></svg></button>')+"</div>"}},{key:"draw",value:function(t){if(this.isOpen||t){var e,i=this.options,n=i.minYear,s=i.maxYear,o=i.minMonth,a=i.maxMonth,r="";this._y<=n&&(this._y=n,!isNaN(o)&&this._m<o&&(this._m=o)),this._y>=s&&(this._y=s,!isNaN(a)&&this._m>a&&(this._m=a)),e="datepicker-title-"+Math.random().toString(36).replace(/[^a-z]+/g,"").substr(0,2);for(var l=0;l<1;l++)this._renderDateDisplay(),r+=this.renderTitle(this,l,this.calendars[l].year,this.calendars[l].month,this.calendars[0].year,e)+this.render(this.calendars[l].year,this.calendars[l].month,e);this.destroySelects(),this.calendarEl.innerHTML=r;var h=this.calendarEl.querySelector(".orig-select-year"),d=this.calendarEl.querySelector(".orig-select-month");M.FormSelect.init(h,{classes:"select-year",dropdownOptions:{container:document.body,constrainWidth:!1}}),M.FormSelect.init(d,{classes:"select-month",dropdownOptions:{container:document.body,constrainWidth:!1}}),h.addEventListener("change",this._handleYearChange.bind(this)),d.addEventListener("change",this._handleMonthChange.bind(this)),"function"==typeof this.options.onDraw&&this.options.onDraw(this)}}},{key:"_setupEventHandlers",value:function(){this._handleInputKeydownBound=this._handleInputKeydown.bind(this),this._handleInputClickBound=this._handleInputClick.bind(this),this._handleInputChangeBound=this._handleInputChange.bind(this),this._handleCalendarClickBound=this._handleCalendarClick.bind(this),this._finishSelectionBound=this._finishSelection.bind(this),this._handleMonthChange=this._handleMonthChange.bind(this),this._closeBound=this.close.bind(this),this.el.addEventListener("click",this._handleInputClickBound),this.el.addEventListener("keydown",this._handleInputKeydownBound),this.el.addEventListener("change",this._handleInputChangeBound),this.calendarEl.addEventListener("click",this._handleCalendarClickBound),this.doneBtn.addEventListener("click",this._finishSelectionBound),this.cancelBtn.addEventListener("click",this._closeBound),this.options.showClearBtn&&(this._handleClearClickBound=this._handleClearClick.bind(this),this.clearBtn.addEventListener("click",this._handleClearClickBound))}},{key:"_setupVariables",value:function(){var e=this;this.$modalEl=g(B._template),this.modalEl=this.$modalEl[0],this.calendarEl=this.modalEl.querySelector(".datepicker-calendar"),this.yearTextEl=this.modalEl.querySelector(".year-text"),this.dateTextEl=this.modalEl.querySelector(".date-text"),this.options.showClearBtn&&(this.clearBtn=this.modalEl.querySelector(".datepicker-clear")),this.doneBtn=this.modalEl.querySelector(".datepicker-done"),this.cancelBtn=this.modalEl.querySelector(".datepicker-cancel"),this.formats={d:function(){return e.date.getDate()},dd:function(){var t=e.date.getDate();return(t<10?"0":"")+t},ddd:function(){return e.options.i18n.weekdaysShort[e.date.getDay()]},dddd:function(){return e.options.i18n.weekdays[e.date.getDay()]},m:function(){return e.date.getMonth()+1},mm:function(){var t=e.date.getMonth()+1;return(t<10?"0":"")+t},mmm:function(){return e.options.i18n.monthsShort[e.date.getMonth()]},mmmm:function(){return e.options.i18n.months[e.date.getMonth()]},yy:function(){return(""+e.date.getFullYear()).slice(2)},yyyy:function(){return e.date.getFullYear()}}}},{key:"_removeEventHandlers",value:function(){this.el.removeEventListener("click",this._handleInputClickBound),this.el.removeEventListener("keydown",this._handleInputKeydownBound),this.el.removeEventListener("change",this._handleInputChangeBound),this.calendarEl.removeEventListener("click",this._handleCalendarClickBound)}},{key:"_handleInputClick",value:function(){this.open()}},{key:"_handleInputKeydown",value:function(t){t.which===M.keys.ENTER&&(t.preventDefault(),this.open())}},{key:"_handleCalendarClick",value:function(t){if(this.isOpen){var e=g(t.target);e.hasClass("is-disabled")||(!e.hasClass("datepicker-day-button")||e.hasClass("is-empty")||e.parent().hasClass("is-disabled")?e.closest(".month-prev").length?this.prevMonth():e.closest(".month-next").length&&this.nextMonth():(this.setDate(new Date(t.target.getAttribute("data-year"),t.target.getAttribute("data-month"),t.target.getAttribute("data-day"))),this.options.autoClose&&this._finishSelection()))}}},{key:"_handleClearClick",value:function(){this.date=null,this.setInputValue(),this.close()}},{key:"_handleMonthChange",value:function(t){this.gotoMonth(t.target.value)}},{key:"_handleYearChange",value:function(t){this.gotoYear(t.target.value)}},{key:"gotoMonth",value:function(t){isNaN(t)||(this.calendars[0].month=parseInt(t,10),this.adjustCalendars())}},{key:"gotoYear",value:function(t){isNaN(t)||(this.calendars[0].year=parseInt(t,10),this.adjustCalendars())}},{key:"_handleInputChange",value:function(t){var e=void 0;t.firedBy!==this&&(e=this.options.parse?this.options.parse(this.el.value,this.options.format):new Date(Date.parse(this.el.value)),B._isDate(e)&&this.setDate(e))}},{key:"renderDayName",value:function(t,e,i){for(e+=t.firstDay;7<=e;)e-=7;return i?t.i18n.weekdaysAbbrev[e]:t.i18n.weekdays[e]}},{key:"_finishSelection",value:function(){this.setInputValue(),this.close()}},{key:"open",value:function(){if(!this.isOpen)return this.isOpen=!0,"function"==typeof this.options.onOpen&&this.options.onOpen.call(this),this.draw(),this.modal.open(),this}},{key:"close",value:function(){if(this.isOpen)return this.isOpen=!1,"function"==typeof this.options.onClose&&this.options.onClose.call(this),this.modal.close(),this}}],[{key:"init",value:function(t,e){return _get(B.__proto__||Object.getPrototypeOf(B),"init",this).call(this,this,t,e)}},{key:"_isDate",value:function(t){return/Date/.test(Object.prototype.toString.call(t))&&!isNaN(t.getTime())}},{key:"_isWeekend",value:function(t){var e=t.getDay();return 0===e||6===e}},{key:"_setToStartOfDay",value:function(t){B._isDate(t)&&t.setHours(0,0,0,0)}},{key:"_getDaysInMonth",value:function(t,e){return[31,B._isLeapYear(t)?29:28,31,30,31,30,31,31,30,31,30,31][e]}},{key:"_isLeapYear",value:function(t){return t%4==0&&t%100!=0||t%400==0}},{key:"_compareDates",value:function(t,e){return t.getTime()===e.getTime()}},{key:"_setToStartOfDay",value:function(t){B._isDate(t)&&t.setHours(0,0,0,0)}},{key:"getInstance",value:function(t){return(t.jquery?t[0]:t).M_Datepicker}},{key:"defaults",get:function(){return e}}]),B}();t._template=['<div class= "modal datepicker-modal">','<div class="modal-content datepicker-container">','<div class="datepicker-date-display">','<span class="year-text"></span>','<span class="date-text"></span>',"</div>",'<div class="datepicker-calendar-container">','<div class="datepicker-calendar"></div>','<div class="datepicker-footer">','<button class="btn-flat datepicker-clear waves-effect" style="visibility: hidden;" type="button"></button>','<div class="confirmation-btns">','<button class="btn-flat datepicker-cancel waves-effect" type="button"></button>','<button class="btn-flat datepicker-done waves-effect" type="button"></button>',"</div>","</div>","</div>","</div>","</div>"].join(""),M.Datepicker=t,M.jQueryLoaded&&M.initializeJqueryWrapper(t,"datepicker","M_Datepicker")}(cash),function(h){"use strict";var e={dialRadius:135,outerRadius:105,innerRadius:70,tickRadius:20,duration:350,container:null,defaultTime:"now",fromNow:0,showClearBtn:!1,i18n:{cancel:"Cancel",clear:"Clear",done:"Ok"},autoClose:!1,twelveHour:!0,vibrate:!0,onOpenStart:null,onOpenEnd:null,onCloseStart:null,onCloseEnd:null,onSelect:null},t=function(t){function f(t,e){_classCallCheck(this,f);var i=_possibleConstructorReturn(this,(f.__proto__||Object.getPrototypeOf(f)).call(this,f,t,e));return(i.el.M_Timepicker=i).options=h.extend({},f.defaults,e),i.id=M.guid(),i._insertHTMLIntoDOM(),i._setupModal(),i._setupVariables(),i._setupEventHandlers(),i._clockSetup(),i._pickerSetup(),i}return _inherits(f,Component),_createClass(f,[{key:"destroy",value:function(){this._removeEventHandlers(),this.modal.destroy(),h(this.modalEl).remove(),this.el.M_Timepicker=void 0}},{key:"_setupEventHandlers",value:function(){this._handleInputKeydownBound=this._handleInputKeydown.bind(this),this._handleInputClickBound=this._handleInputClick.bind(this),this._handleClockClickStartBound=this._handleClockClickStart.bind(this),this._handleDocumentClickMoveBound=this._handleDocumentClickMove.bind(this),this._handleDocumentClickEndBound=this._handleDocumentClickEnd.bind(this),this.el.addEventListener("click",this._handleInputClickBound),this.el.addEventListener("keydown",this._handleInputKeydownBound),this.plate.addEventListener("mousedown",this._handleClockClickStartBound),this.plate.addEventListener("touchstart",this._handleClockClickStartBound),h(this.spanHours).on("click",this.showView.bind(this,"hours")),h(this.spanMinutes).on("click",this.showView.bind(this,"minutes"))}},{key:"_removeEventHandlers",value:function(){this.el.removeEventListener("click",this._handleInputClickBound),this.el.removeEventListener("keydown",this._handleInputKeydownBound)}},{key:"_handleInputClick",value:function(){this.open()}},{key:"_handleInputKeydown",value:function(t){t.which===M.keys.ENTER&&(t.preventDefault(),this.open())}},{key:"_handleClockClickStart",value:function(t){t.preventDefault();var e=this.plate.getBoundingClientRect(),i=e.left,n=e.top;this.x0=i+this.options.dialRadius,this.y0=n+this.options.dialRadius,this.moved=!1;var s=f._Pos(t);this.dx=s.x-this.x0,this.dy=s.y-this.y0,this.setHand(this.dx,this.dy,!1),document.addEventListener("mousemove",this._handleDocumentClickMoveBound),document.addEventListener("touchmove",this._handleDocumentClickMoveBound),document.addEventListener("mouseup",this._handleDocumentClickEndBound),document.addEventListener("touchend",this._handleDocumentClickEndBound)}},{key:"_handleDocumentClickMove",value:function(t){t.preventDefault();var e=f._Pos(t),i=e.x-this.x0,n=e.y-this.y0;this.moved=!0,this.setHand(i,n,!1,!0)}},{key:"_handleDocumentClickEnd",value:function(t){var e=this;t.preventDefault(),document.removeEventListener("mouseup",this._handleDocumentClickEndBound),document.removeEventListener("touchend",this._handleDocumentClickEndBound);var i=f._Pos(t),n=i.x-this.x0,s=i.y-this.y0;this.moved&&n===this.dx&&s===this.dy&&this.setHand(n,s),"hours"===this.currentView?this.showView("minutes",this.options.duration/2):this.options.autoClose&&(h(this.minutesView).addClass("timepicker-dial-out"),setTimeout(function(){e.done()},this.options.duration/2)),"function"==typeof this.options.onSelect&&this.options.onSelect.call(this,this.hours,this.minutes),document.removeEventListener("mousemove",this._handleDocumentClickMoveBound),document.removeEventListener("touchmove",this._handleDocumentClickMoveBound)}},{key:"_insertHTMLIntoDOM",value:function(){this.$modalEl=h(f._template),this.modalEl=this.$modalEl[0],this.modalEl.id="modal-"+this.id;var t=document.querySelector(this.options.container);this.options.container&&t?this.$modalEl.appendTo(t):this.$modalEl.insertBefore(this.el)}},{key:"_setupModal",value:function(){var t=this;this.modal=M.Modal.init(this.modalEl,{onOpenStart:this.options.onOpenStart,onOpenEnd:this.options.onOpenEnd,onCloseStart:this.options.onCloseStart,onCloseEnd:function(){"function"==typeof t.options.onCloseEnd&&t.options.onCloseEnd.call(t),t.isOpen=!1}})}},{key:"_setupVariables",value:function(){this.currentView="hours",this.vibrate=navigator.vibrate?"vibrate":navigator.webkitVibrate?"webkitVibrate":null,this._canvas=this.modalEl.querySelector(".timepicker-canvas"),this.plate=this.modalEl.querySelector(".timepicker-plate"),this.hoursView=this.modalEl.querySelector(".timepicker-hours"),this.minutesView=this.modalEl.querySelector(".timepicker-minutes"),this.spanHours=this.modalEl.querySelector(".timepicker-span-hours"),this.spanMinutes=this.modalEl.querySelector(".timepicker-span-minutes"),this.spanAmPm=this.modalEl.querySelector(".timepicker-span-am-pm"),this.footer=this.modalEl.querySelector(".timepicker-footer"),this.amOrPm="PM"}},{key:"_pickerSetup",value:function(){var t=h('<button class="btn-flat timepicker-clear waves-effect" style="visibility: hidden;" type="button" tabindex="'+(this.options.twelveHour?"3":"1")+'">'+this.options.i18n.clear+"</button>").appendTo(this.footer).on("click",this.clear.bind(this));this.options.showClearBtn&&t.css({visibility:""});var e=h('<div class="confirmation-btns"></div>');h('<button class="btn-flat timepicker-close waves-effect" type="button" tabindex="'+(this.options.twelveHour?"3":"1")+'">'+this.options.i18n.cancel+"</button>").appendTo(e).on("click",this.close.bind(this)),h('<button class="btn-flat timepicker-close waves-effect" type="button" tabindex="'+(this.options.twelveHour?"3":"1")+'">'+this.options.i18n.done+"</button>").appendTo(e).on("click",this.done.bind(this)),e.appendTo(this.footer)}},{key:"_clockSetup",value:function(){this.options.twelveHour&&(this.$amBtn=h('<div class="am-btn">AM</div>'),this.$pmBtn=h('<div class="pm-btn">PM</div>'),this.$amBtn.on("click",this._handleAmPmClick.bind(this)).appendTo(this.spanAmPm),this.$pmBtn.on("click",this._handleAmPmClick.bind(this)).appendTo(this.spanAmPm)),this._buildHoursView(),this._buildMinutesView(),this._buildSVGClock()}},{key:"_buildSVGClock",value:function(){var t=this.options.dialRadius,e=this.options.tickRadius,i=2*t,n=f._createSVGEl("svg");n.setAttribute("class","timepicker-svg"),n.setAttribute("width",i),n.setAttribute("height",i);var s=f._createSVGEl("g");s.setAttribute("transform","translate("+t+","+t+")");var o=f._createSVGEl("circle");o.setAttribute("class","timepicker-canvas-bearing"),o.setAttribute("cx",0),o.setAttribute("cy",0),o.setAttribute("r",4);var a=f._createSVGEl("line");a.setAttribute("x1",0),a.setAttribute("y1",0);var r=f._createSVGEl("circle");r.setAttribute("class","timepicker-canvas-bg"),r.setAttribute("r",e),s.appendChild(a),s.appendChild(r),s.appendChild(o),n.appendChild(s),this._canvas.appendChild(n),this.hand=a,this.bg=r,this.bearing=o,this.g=s}},{key:"_buildHoursView",value:function(){var t=h('<div class="timepicker-tick"></div>');if(this.options.twelveHour)for(var e=1;e<13;e+=1){var i=t.clone(),n=e/6*Math.PI,s=this.options.outerRadius;i.css({left:this.options.dialRadius+Math.sin(n)*s-this.options.tickRadius+"px",top:this.options.dialRadius-Math.cos(n)*s-this.options.tickRadius+"px"}),i.html(0===e?"00":e),this.hoursView.appendChild(i[0])}else for(var o=0;o<24;o+=1){var a=t.clone(),r=o/6*Math.PI,l=0<o&&o<13?this.options.innerRadius:this.options.outerRadius;a.css({left:this.options.dialRadius+Math.sin(r)*l-this.options.tickRadius+"px",top:this.options.dialRadius-Math.cos(r)*l-this.options.tickRadius+"px"}),a.html(0===o?"00":o),this.hoursView.appendChild(a[0])}}},{key:"_buildMinutesView",value:function(){for(var t=h('<div class="timepicker-tick"></div>'),e=0;e<60;e+=5){var i=t.clone(),n=e/30*Math.PI;i.css({left:this.options.dialRadius+Math.sin(n)*this.options.outerRadius-this.options.tickRadius+"px",top:this.options.dialRadius-Math.cos(n)*this.options.outerRadius-this.options.tickRadius+"px"}),i.html(f._addLeadingZero(e)),this.minutesView.appendChild(i[0])}}},{key:"_handleAmPmClick",value:function(t){var e=h(t.target);this.amOrPm=e.hasClass("am-btn")?"AM":"PM",this._updateAmPmView()}},{key:"_updateAmPmView",value:function(){this.options.twelveHour&&(this.$amBtn.toggleClass("text-primary","AM"===this.amOrPm),this.$pmBtn.toggleClass("text-primary","PM"===this.amOrPm))}},{key:"_updateTimeFromInput",value:function(){var t=((this.el.value||this.options.defaultTime||"")+"").split(":");if(this.options.twelveHour&&void 0!==t[1]&&(0<t[1].toUpperCase().indexOf("AM")?this.amOrPm="AM":this.amOrPm="PM",t[1]=t[1].replace("AM","").replace("PM","")),"now"===t[0]){var e=new Date(+new Date+this.options.fromNow);t=[e.getHours(),e.getMinutes()],this.options.twelveHour&&(this.amOrPm=12<=t[0]&&t[0]<24?"PM":"AM")}this.hours=+t[0]||0,this.minutes=+t[1]||0,this.spanHours.innerHTML=this.hours,this.spanMinutes.innerHTML=f._addLeadingZero(this.minutes),this._updateAmPmView()}},{key:"showView",value:function(t,e){"minutes"===t&&h(this.hoursView).css("visibility");var i="hours"===t,n=i?this.hoursView:this.minutesView,s=i?this.minutesView:this.hoursView;this.currentView=t,h(this.spanHours).toggleClass("text-primary",i),h(this.spanMinutes).toggleClass("text-primary",!i),s.classList.add("timepicker-dial-out"),h(n).css("visibility","visible").removeClass("timepicker-dial-out"),this.resetClock(e),clearTimeout(this.toggleViewTimer),this.toggleViewTimer=setTimeout(function(){h(s).css("visibility","hidden")},this.options.duration)}},{key:"resetClock",value:function(t){var e=this.currentView,i=this[e],n="hours"===e,s=i*(Math.PI/(n?6:30)),o=n&&0<i&&i<13?this.options.innerRadius:this.options.outerRadius,a=Math.sin(s)*o,r=-Math.cos(s)*o,l=this;t?(h(this.canvas).addClass("timepicker-canvas-out"),setTimeout(function(){h(l.canvas).removeClass("timepicker-canvas-out"),l.setHand(a,r)},t)):this.setHand(a,r)}},{key:"setHand",value:function(t,e,i){var n=this,s=Math.atan2(t,-e),o="hours"===this.currentView,a=Math.PI/(o||i?6:30),r=Math.sqrt(t*t+e*e),l=o&&r<(this.options.outerRadius+this.options.innerRadius)/2,h=l?this.options.innerRadius:this.options.outerRadius;this.options.twelveHour&&(h=this.options.outerRadius),s<0&&(s=2*Math.PI+s);var d=Math.round(s/a);s=d*a,this.options.twelveHour?o?0===d&&(d=12):(i&&(d*=5),60===d&&(d=0)):o?(12===d&&(d=0),d=l?0===d?12:d:0===d?0:d+12):(i&&(d*=5),60===d&&(d=0)),this[this.currentView]!==d&&this.vibrate&&this.options.vibrate&&(this.vibrateTimer||(navigator[this.vibrate](10),this.vibrateTimer=setTimeout(function(){n.vibrateTimer=null},100))),this[this.currentView]=d,o?this.spanHours.innerHTML=d:this.spanMinutes.innerHTML=f._addLeadingZero(d);var u=Math.sin(s)*(h-this.options.tickRadius),c=-Math.cos(s)*(h-this.options.tickRadius),p=Math.sin(s)*h,v=-Math.cos(s)*h;this.hand.setAttribute("x2",u),this.hand.setAttribute("y2",c),this.bg.setAttribute("cx",p),this.bg.setAttribute("cy",v)}},{key:"open",value:function(){this.isOpen||(this.isOpen=!0,this._updateTimeFromInput(),this.showView("hours"),this.modal.open())}},{key:"close",value:function(){this.isOpen&&(this.isOpen=!1,this.modal.close())}},{key:"done",value:function(t,e){var i=this.el.value,n=e?"":f._addLeadingZero(this.hours)+":"+f._addLeadingZero(this.minutes);this.time=n,!e&&this.options.twelveHour&&(n=n+" "+this.amOrPm),(this.el.value=n)!==i&&this.$el.trigger("change"),this.close(),this.el.focus()}},{key:"clear",value:function(){this.done(null,!0)}}],[{key:"init",value:function(t,e){return _get(f.__proto__||Object.getPrototypeOf(f),"init",this).call(this,this,t,e)}},{key:"_addLeadingZero",value:function(t){return(t<10?"0":"")+t}},{key:"_createSVGEl",value:function(t){return document.createElementNS("http://www.w3.org/2000/svg",t)}},{key:"_Pos",value:function(t){return t.targetTouches&&1<=t.targetTouches.length?{x:t.targetTouches[0].clientX,y:t.targetTouches[0].clientY}:{x:t.clientX,y:t.clientY}}},{key:"getInstance",value:function(t){return(t.jquery?t[0]:t).M_Timepicker}},{key:"defaults",get:function(){return e}}]),f}();t._template=['<div class= "modal timepicker-modal">','<div class="modal-content timepicker-container">','<div class="timepicker-digital-display">','<div class="timepicker-text-container">','<div class="timepicker-display-column">','<span class="timepicker-span-hours text-primary"></span>',":",'<span class="timepicker-span-minutes"></span>',"</div>",'<div class="timepicker-display-column timepicker-display-am-pm">','<div class="timepicker-span-am-pm"></div>',"</div>","</div>","</div>",'<div class="timepicker-analog-display">','<div class="timepicker-plate">','<div class="timepicker-canvas"></div>','<div class="timepicker-dial timepicker-hours"></div>','<div class="timepicker-dial timepicker-minutes timepicker-dial-out"></div>',"</div>",'<div class="timepicker-footer"></div>',"</div>","</div>","</div>"].join(""),M.Timepicker=t,M.jQueryLoaded&&M.initializeJqueryWrapper(t,"timepicker","M_Timepicker")}(cash),function(s){"use strict";var e={},t=function(t){function n(t,e){_classCallCheck(this,n);var i=_possibleConstructorReturn(this,(n.__proto__||Object.getPrototypeOf(n)).call(this,n,t,e));return(i.el.M_CharacterCounter=i).options=s.extend({},n.defaults,e),i.isInvalid=!1,i.isValidLength=!1,i._setupCounter(),i._setupEventHandlers(),i}return _inherits(n,Component),_createClass(n,[{key:"destroy",value:function(){this._removeEventHandlers(),this.el.CharacterCounter=void 0,this._removeCounter()}},{key:"_setupEventHandlers",value:function(){this._handleUpdateCounterBound=this.updateCounter.bind(this),this.el.addEventListener("focus",this._handleUpdateCounterBound,!0),this.el.addEventListener("input",this._handleUpdateCounterBound,!0)}},{key:"_removeEventHandlers",value:function(){this.el.removeEventListener("focus",this._handleUpdateCounterBound,!0),this.el.removeEventListener("input",this._handleUpdateCounterBound,!0)}},{key:"_setupCounter",value:function(){this.counterEl=document.createElement("span"),s(this.counterEl).addClass("character-counter").css({float:"right","font-size":"12px",height:1}),this.$el.parent().append(this.counterEl)}},{key:"_removeCounter",value:function(){s(this.counterEl).remove()}},{key:"updateCounter",value:function(){var t=+this.$el.attr("data-length"),e=this.el.value.length;this.isValidLength=e<=t;var i=e;t&&(i+="/"+t,this._validateInput()),s(this.counterEl).html(i)}},{key:"_validateInput",value:function(){this.isValidLength&&this.isInvalid?(this.isInvalid=!1,this.$el.removeClass("invalid")):this.isValidLength||this.isInvalid||(this.isInvalid=!0,this.$el.removeClass("valid"),this.$el.addClass("invalid"))}}],[{key:"init",value:function(t,e){return _get(n.__proto__||Object.getPrototypeOf(n),"init",this).call(this,this,t,e)}},{key:"getInstance",value:function(t){return(t.jquery?t[0]:t).M_CharacterCounter}},{key:"defaults",get:function(){return e}}]),n}();M.CharacterCounter=t,M.jQueryLoaded&&M.initializeJqueryWrapper(t,"characterCounter","M_CharacterCounter")}(cash),function(b){"use strict";var e={duration:200,dist:-100,shift:0,padding:0,numVisible:5,fullWidth:!1,indicators:!1,noWrap:!1,onCycleTo:null},t=function(t){function i(t,e){_classCallCheck(this,i);var n=_possibleConstructorReturn(this,(i.__proto__||Object.getPrototypeOf(i)).call(this,i,t,e));return(n.el.M_Carousel=n).options=b.extend({},i.defaults,e),n.hasMultipleSlides=1<n.$el.find(".carousel-item").length,n.showIndicators=n.options.indicators&&n.hasMultipleSlides,n.noWrap=n.options.noWrap||!n.hasMultipleSlides,n.pressed=!1,n.dragged=!1,n.offset=n.target=0,n.images=[],n.itemWidth=n.$el.find(".carousel-item").first().innerWidth(),n.itemHeight=n.$el.find(".carousel-item").first().innerHeight(),n.dim=2*n.itemWidth+n.options.padding||1,n._autoScrollBound=n._autoScroll.bind(n),n._trackBound=n._track.bind(n),n.options.fullWidth&&(n.options.dist=0,n._setCarouselHeight(),n.showIndicators&&n.$el.find(".carousel-fixed-item").addClass("with-indicators")),n.$indicators=b('<ul class="indicators"></ul>'),n.$el.find(".carousel-item").each(function(t,e){if(n.images.push(t),n.showIndicators){var i=b('<li class="indicator-item"></li>');0===e&&i[0].classList.add("active"),n.$indicators.append(i)}}),n.showIndicators&&n.$el.append(n.$indicators),n.count=n.images.length,n.options.numVisible=Math.min(n.count,n.options.numVisible),n.xform="transform",["webkit","Moz","O","ms"].every(function(t){var e=t+"Transform";return void 0===document.body.style[e]||(n.xform=e,!1)}),n._setupEventHandlers(),n._scroll(n.offset),n}return _inherits(i,Component),_createClass(i,[{key:"destroy",value:function(){this._removeEventHandlers(),this.el.M_Carousel=void 0}},{key:"_setupEventHandlers",value:function(){var i=this;this._handleCarouselTapBound=this._handleCarouselTap.bind(this),this._handleCarouselDragBound=this._handleCarouselDrag.bind(this),this._handleCarouselReleaseBound=this._handleCarouselRelease.bind(this),this._handleCarouselClickBound=this._handleCarouselClick.bind(this),void 0!==window.ontouchstart&&(this.el.addEventListener("touchstart",this._handleCarouselTapBound),this.el.addEventListener("touchmove",this._handleCarouselDragBound),this.el.addEventListener("touchend",this._handleCarouselReleaseBound)),this.el.addEventListener("mousedown",this._handleCarouselTapBound),this.el.addEventListener("mousemove",this._handleCarouselDragBound),this.el.addEventListener("mouseup",this._handleCarouselReleaseBound),this.el.addEventListener("mouseleave",this._handleCarouselReleaseBound),this.el.addEventListener("click",this._handleCarouselClickBound),this.showIndicators&&this.$indicators&&(this._handleIndicatorClickBound=this._handleIndicatorClick.bind(this),this.$indicators.find(".indicator-item").each(function(t,e){t.addEventListener("click",i._handleIndicatorClickBound)}));var t=M.throttle(this._handleResize,200);this._handleThrottledResizeBound=t.bind(this),window.addEventListener("resize",this._handleThrottledResizeBound)}},{key:"_removeEventHandlers",value:function(){var i=this;void 0!==window.ontouchstart&&(this.el.removeEventListener("touchstart",this._handleCarouselTapBound),this.el.removeEventListener("touchmove",this._handleCarouselDragBound),this.el.removeEventListener("touchend",this._handleCarouselReleaseBound)),this.el.removeEventListener("mousedown",this._handleCarouselTapBound),this.el.removeEventListener("mousemove",this._handleCarouselDragBound),this.el.removeEventListener("mouseup",this._handleCarouselReleaseBound),this.el.removeEventListener("mouseleave",this._handleCarouselReleaseBound),this.el.removeEventListener("click",this._handleCarouselClickBound),this.showIndicators&&this.$indicators&&this.$indicators.find(".indicator-item").each(function(t,e){t.removeEventListener("click",i._handleIndicatorClickBound)}),window.removeEventListener("resize",this._handleThrottledResizeBound)}},{key:"_handleCarouselTap",value:function(t){"mousedown"===t.type&&b(t.target).is("img")&&t.preventDefault(),this.pressed=!0,this.dragged=!1,this.verticalDragged=!1,this.reference=this._xpos(t),this.referenceY=this._ypos(t),this.velocity=this.amplitude=0,this.frame=this.offset,this.timestamp=Date.now(),clearInterval(this.ticker),this.ticker=setInterval(this._trackBound,100)}},{key:"_handleCarouselDrag",value:function(t){var e=void 0,i=void 0,n=void 0;if(this.pressed)if(e=this._xpos(t),i=this._ypos(t),n=this.reference-e,Math.abs(this.referenceY-i)<30&&!this.verticalDragged)(2<n||n<-2)&&(this.dragged=!0,this.reference=e,this._scroll(this.offset+n));else{if(this.dragged)return t.preventDefault(),t.stopPropagation(),!1;this.verticalDragged=!0}if(this.dragged)return t.preventDefault(),t.stopPropagation(),!1}},{key:"_handleCarouselRelease",value:function(t){if(this.pressed)return this.pressed=!1,clearInterval(this.ticker),this.target=this.offset,(10<this.velocity||this.velocity<-10)&&(this.amplitude=.9*this.velocity,this.target=this.offset+this.amplitude),this.target=Math.round(this.target/this.dim)*this.dim,this.noWrap&&(this.target>=this.dim*(this.count-1)?this.target=this.dim*(this.count-1):this.target<0&&(this.target=0)),this.amplitude=this.target-this.offset,this.timestamp=Date.now(),requestAnimationFrame(this._autoScrollBound),this.dragged&&(t.preventDefault(),t.stopPropagation()),!1}},{key:"_handleCarouselClick",value:function(t){if(this.dragged)return t.preventDefault(),t.stopPropagation(),!1;if(!this.options.fullWidth){var e=b(t.target).closest(".carousel-item").index();0!==this._wrap(this.center)-e&&(t.preventDefault(),t.stopPropagation()),this._cycleTo(e)}}},{key:"_handleIndicatorClick",value:function(t){t.stopPropagation();var e=b(t.target).closest(".indicator-item");e.length&&this._cycleTo(e.index())}},{key:"_handleResize",value:function(t){this.options.fullWidth?(this.itemWidth=this.$el.find(".carousel-item").first().innerWidth(),this.imageHeight=this.$el.find(".carousel-item.active").height(),this.dim=2*this.itemWidth+this.options.padding,this.offset=2*this.center*this.itemWidth,this.target=this.offset,this._setCarouselHeight(!0)):this._scroll()}},{key:"_setCarouselHeight",value:function(t){var i=this,e=this.$el.find(".carousel-item.active").length?this.$el.find(".carousel-item.active").first():this.$el.find(".carousel-item").first(),n=e.find("img").first();if(n.length)if(n[0].complete){var s=n.height();if(0<s)this.$el.css("height",s+"px");else{var o=n[0].naturalWidth,a=n[0].naturalHeight,r=this.$el.width()/o*a;this.$el.css("height",r+"px")}}else n.one("load",function(t,e){i.$el.css("height",t.offsetHeight+"px")});else if(!t){var l=e.height();this.$el.css("height",l+"px")}}},{key:"_xpos",value:function(t){return t.targetTouches&&1<=t.targetTouches.length?t.targetTouches[0].clientX:t.clientX}},{key:"_ypos",value:function(t){return t.targetTouches&&1<=t.targetTouches.length?t.targetTouches[0].clientY:t.clientY}},{key:"_wrap",value:function(t){return t>=this.count?t%this.count:t<0?this._wrap(this.count+t%this.count):t}},{key:"_track",value:function(){var t,e,i,n;e=(t=Date.now())-this.timestamp,this.timestamp=t,i=this.offset-this.frame,this.frame=this.offset,n=1e3*i/(1+e),this.velocity=.8*n+.2*this.velocity}},{key:"_autoScroll",value:function(){var t=void 0,e=void 0;this.amplitude&&(t=Date.now()-this.timestamp,2<(e=this.amplitude*Math.exp(-t/this.options.duration))||e<-2?(this._scroll(this.target-e),requestAnimationFrame(this._autoScrollBound)):this._scroll(this.target))}},{key:"_scroll",value:function(t){var e=this;this.$el.hasClass("scrolling")||this.el.classList.add("scrolling"),null!=this.scrollingTimeout&&window.clearTimeout(this.scrollingTimeout),this.scrollingTimeout=window.setTimeout(function(){e.$el.removeClass("scrolling")},this.options.duration);var i,n,s,o,a=void 0,r=void 0,l=void 0,h=void 0,d=void 0,u=void 0,c=this.center,p=1/this.options.numVisible;if(this.offset="number"==typeof t?t:this.offset,this.center=Math.floor((this.offset+this.dim/2)/this.dim),o=-(s=(n=this.offset-this.center*this.dim)<0?1:-1)*n*2/this.dim,i=this.count>>1,this.options.fullWidth?(l="translateX(0)",u=1):(l="translateX("+(this.el.clientWidth-this.itemWidth)/2+"px) ",l+="translateY("+(this.el.clientHeight-this.itemHeight)/2+"px)",u=1-p*o),this.showIndicators){var v=this.center%this.count,f=this.$indicators.find(".indicator-item.active");f.index()!==v&&(f.removeClass("active"),this.$indicators.find(".indicator-item").eq(v)[0].classList.add("active"))}if(!this.noWrap||0<=this.center&&this.center<this.count){r=this.images[this._wrap(this.center)],b(r).hasClass("active")||(this.$el.find(".carousel-item").removeClass("active"),r.classList.add("active"));var m=l+" translateX("+-n/2+"px) translateX("+s*this.options.shift*o*a+"px) translateZ("+this.options.dist*o+"px)";this._updateItemStyle(r,u,0,m)}for(a=1;a<=i;++a){if(this.options.fullWidth?(h=this.options.dist,d=a===i&&n<0?1-o:1):(h=this.options.dist*(2*a+o*s),d=1-p*(2*a+o*s)),!this.noWrap||this.center+a<this.count){r=this.images[this._wrap(this.center+a)];var g=l+" translateX("+(this.options.shift+(this.dim*a-n)/2)+"px) translateZ("+h+"px)";this._updateItemStyle(r,d,-a,g)}if(this.options.fullWidth?(h=this.options.dist,d=a===i&&0<n?1-o:1):(h=this.options.dist*(2*a-o*s),d=1-p*(2*a-o*s)),!this.noWrap||0<=this.center-a){r=this.images[this._wrap(this.center-a)];var _=l+" translateX("+(-this.options.shift+(-this.dim*a-n)/2)+"px) translateZ("+h+"px)";this._updateItemStyle(r,d,-a,_)}}if(!this.noWrap||0<=this.center&&this.center<this.count){r=this.images[this._wrap(this.center)];var y=l+" translateX("+-n/2+"px) translateX("+s*this.options.shift*o+"px) translateZ("+this.options.dist*o+"px)";this._updateItemStyle(r,u,0,y)}var k=this.$el.find(".carousel-item").eq(this._wrap(this.center));c!==this.center&&"function"==typeof this.options.onCycleTo&&this.options.onCycleTo.call(this,k[0],this.dragged),"function"==typeof this.oneTimeCallback&&(this.oneTimeCallback.call(this,k[0],this.dragged),this.oneTimeCallback=null)}},{key:"_updateItemStyle",value:function(t,e,i,n){t.style[this.xform]=n,t.style.zIndex=i,t.style.opacity=e,t.style.visibility="visible"}},{key:"_cycleTo",value:function(t,e){var i=this.center%this.count-t;this.noWrap||(i<0?Math.abs(i+this.count)<Math.abs(i)&&(i+=this.count):0<i&&Math.abs(i-this.count)<i&&(i-=this.count)),this.target=this.dim*Math.round(this.offset/this.dim),i<0?this.target+=this.dim*Math.abs(i):0<i&&(this.target-=this.dim*i),"function"==typeof e&&(this.oneTimeCallback=e),this.offset!==this.target&&(this.amplitude=this.target-this.offset,this.timestamp=Date.now(),requestAnimationFrame(this._autoScrollBound))}},{key:"next",value:function(t){(void 0===t||isNaN(t))&&(t=1);var e=this.center+t;if(e>=this.count||e<0){if(this.noWrap)return;e=this._wrap(e)}this._cycleTo(e)}},{key:"prev",value:function(t){(void 0===t||isNaN(t))&&(t=1);var e=this.center-t;if(e>=this.count||e<0){if(this.noWrap)return;e=this._wrap(e)}this._cycleTo(e)}},{key:"set",value:function(t,e){if((void 0===t||isNaN(t))&&(t=0),t>this.count||t<0){if(this.noWrap)return;t=this._wrap(t)}this._cycleTo(t,e)}}],[{key:"init",value:function(t,e){return _get(i.__proto__||Object.getPrototypeOf(i),"init",this).call(this,this,t,e)}},{key:"getInstance",value:function(t){return(t.jquery?t[0]:t).M_Carousel}},{key:"defaults",get:function(){return e}}]),i}();M.Carousel=t,M.jQueryLoaded&&M.initializeJqueryWrapper(t,"carousel","M_Carousel")}(cash),function(S){"use strict";var e={onOpen:void 0,onClose:void 0},t=function(t){function n(t,e){_classCallCheck(this,n);var i=_possibleConstructorReturn(this,(n.__proto__||Object.getPrototypeOf(n)).call(this,n,t,e));return(i.el.M_TapTarget=i).options=S.extend({},n.defaults,e),i.isOpen=!1,i.$origin=S("#"+i.$el.attr("data-target")),i._setup(),i._calculatePositioning(),i._setupEventHandlers(),i}return _inherits(n,Component),_createClass(n,[{key:"destroy",value:function(){this._removeEventHandlers(),this.el.TapTarget=void 0}},{key:"_setupEventHandlers",value:function(){this._handleDocumentClickBound=this._handleDocumentClick.bind(this),this._handleTargetClickBound=this._handleTargetClick.bind(this),this._handleOriginClickBound=this._handleOriginClick.bind(this),this.el.addEventListener("click",this._handleTargetClickBound),this.originEl.addEventListener("click",this._handleOriginClickBound);var t=M.throttle(this._handleResize,200);this._handleThrottledResizeBound=t.bind(this),window.addEventListener("resize",this._handleThrottledResizeBound)}},{key:"_removeEventHandlers",value:function(){this.el.removeEventListener("click",this._handleTargetClickBound),this.originEl.removeEventListener("click",this._handleOriginClickBound),window.removeEventListener("resize",this._handleThrottledResizeBound)}},{key:"_handleTargetClick",value:function(t){this.open()}},{key:"_handleOriginClick",value:function(t){this.close()}},{key:"_handleResize",value:function(t){this._calculatePositioning()}},{key:"_handleDocumentClick",value:function(t){S(t.target).closest(".tap-target-wrapper").length||(this.close(),t.preventDefault(),t.stopPropagation())}},{key:"_setup",value:function(){this.wrapper=this.$el.parent()[0],this.waveEl=S(this.wrapper).find(".tap-target-wave")[0],this.originEl=S(this.wrapper).find(".tap-target-origin")[0],this.contentEl=this.$el.find(".tap-target-content")[0],S(this.wrapper).hasClass(".tap-target-wrapper")||(this.wrapper=document.createElement("div"),this.wrapper.classList.add("tap-target-wrapper"),this.$el.before(S(this.wrapper)),this.wrapper.append(this.el)),this.contentEl||(this.contentEl=document.createElement("div"),this.contentEl.classList.add("tap-target-content"),this.$el.append(this.contentEl)),this.waveEl||(this.waveEl=document.createElement("div"),this.waveEl.classList.add("tap-target-wave"),this.originEl||(this.originEl=this.$origin.clone(!0,!0),this.originEl.addClass("tap-target-origin"),this.originEl.removeAttr("id"),this.originEl.removeAttr("style"),this.originEl=this.originEl[0],this.waveEl.append(this.originEl)),this.wrapper.append(this.waveEl))}},{key:"_calculatePositioning",value:function(){var t="fixed"===this.$origin.css("position");if(!t)for(var e=this.$origin.parents(),i=0;i<e.length&&!(t="fixed"==S(e[i]).css("position"));i++);var n=this.$origin.outerWidth(),s=this.$origin.outerHeight(),o=t?this.$origin.offset().top-M.getDocumentScrollTop():this.$origin.offset().top,a=t?this.$origin.offset().left-M.getDocumentScrollLeft():this.$origin.offset().left,r=window.innerWidth,l=window.innerHeight,h=r/2,d=l/2,u=a<=h,c=h<a,p=o<=d,v=d<o,f=.25*r<=a&&a<=.75*r,m=this.$el.outerWidth(),g=this.$el.outerHeight(),_=o+s/2-g/2,y=a+n/2-m/2,k=t?"fixed":"absolute",b=f?m:m/2+n,w=g/2,C=p?g/2:0,E=u&&!f?m/2-n:0,O=n,x=v?"bottom":"top",L=2*n,T=L,$=g/2-T/2,B=m/2-L/2,D={};D.top=p?_+"px":"",D.right=c?r-y-m+"px":"",D.bottom=v?l-_-g+"px":"",D.left=u?y+"px":"",D.position=k,S(this.wrapper).css(D),S(this.contentEl).css({width:b+"px",height:w+"px",top:C+"px",right:"0px",bottom:"0px",left:E+"px",padding:O+"px",verticalAlign:x}),S(this.waveEl).css({top:$+"px",left:B+"px",width:L+"px",height:T+"px"})}},{key:"open",value:function(){this.isOpen||("function"==typeof this.options.onOpen&&this.options.onOpen.call(this,this.$origin[0]),this.isOpen=!0,this.wrapper.classList.add("open"),document.body.addEventListener("click",this._handleDocumentClickBound,!0),document.body.addEventListener("touchend",this._handleDocumentClickBound))}},{key:"close",value:function(){this.isOpen&&("function"==typeof this.options.onClose&&this.options.onClose.call(this,this.$origin[0]),this.isOpen=!1,this.wrapper.classList.remove("open"),document.body.removeEventListener("click",this._handleDocumentClickBound,!0),document.body.removeEventListener("touchend",this._handleDocumentClickBound))}}],[{key:"init",value:function(t,e){return _get(n.__proto__||Object.getPrototypeOf(n),"init",this).call(this,this,t,e)}},{key:"getInstance",value:function(t){return(t.jquery?t[0]:t).M_TapTarget}},{key:"defaults",get:function(){return e}}]),n}();M.TapTarget=t,M.jQueryLoaded&&M.initializeJqueryWrapper(t,"tapTarget","M_TapTarget")}(cash),function(d){"use strict";var e={classes:"",dropdownOptions:{}},t=function(t){function n(t,e){_classCallCheck(this,n);var i=_possibleConstructorReturn(this,(n.__proto__||Object.getPrototypeOf(n)).call(this,n,t,e));return i.$el.hasClass("browser-default")?_possibleConstructorReturn(i):((i.el.M_FormSelect=i).options=d.extend({},n.defaults,e),i.isMultiple=i.$el.prop("multiple"),i.el.tabIndex=-1,i._keysSelected={},i._valueDict={},i._setupDropdown(),i._setupEventHandlers(),i)}return _inherits(n,Component),_createClass(n,[{key:"destroy",value:function(){this._removeEventHandlers(),this._removeDropdown(),this.el.M_FormSelect=void 0}},{key:"_setupEventHandlers",value:function(){var e=this;this._handleSelectChangeBound=this._handleSelectChange.bind(this),this._handleOptionClickBound=this._handleOptionClick.bind(this),this._handleInputClickBound=this._handleInputClick.bind(this),d(this.dropdownOptions).find("li:not(.optgroup)").each(function(t){t.addEventListener("click",e._handleOptionClickBound)}),this.el.addEventListener("change",this._handleSelectChangeBound),this.input.addEventListener("click",this._handleInputClickBound)}},{key:"_removeEventHandlers",value:function(){var e=this;d(this.dropdownOptions).find("li:not(.optgroup)").each(function(t){t.removeEventListener("click",e._handleOptionClickBound)}),this.el.removeEventListener("change",this._handleSelectChangeBound),this.input.removeEventListener("click",this._handleInputClickBound)}},{key:"_handleSelectChange",value:function(t){this._setValueToInput()}},{key:"_handleOptionClick",value:function(t){t.preventDefault();var e=d(t.target).closest("li")[0],i=e.id;if(!d(e).hasClass("disabled")&&!d(e).hasClass("optgroup")&&i.length){var n=!0;if(this.isMultiple){var s=d(this.dropdownOptions).find("li.disabled.selected");s.length&&(s.removeClass("selected"),s.find('input[type="checkbox"]').prop("checked",!1),this._toggleEntryFromArray(s[0].id)),n=this._toggleEntryFromArray(i)}else d(this.dropdownOptions).find("li").removeClass("selected"),d(e).toggleClass("selected",n);d(this._valueDict[i].el).prop("selected")!==n&&(d(this._valueDict[i].el).prop("selected",n),this.$el.trigger("change"))}t.stopPropagation()}},{key:"_handleInputClick",value:function(){this.dropdown&&this.dropdown.isOpen&&(this._setValueToInput(),this._setSelectedStates())}},{key:"_setupDropdown",value:function(){var n=this;this.wrapper=document.createElement("div"),d(this.wrapper).addClass("select-wrapper "+this.options.classes),this.$el.before(d(this.wrapper)),this.wrapper.appendChild(this.el),this.el.disabled&&this.wrapper.classList.add("disabled"),this.$selectOptions=this.$el.children("option, optgroup"),this.dropdownOptions=document.createElement("ul"),this.dropdownOptions.id="select-options-"+M.guid(),d(this.dropdownOptions).addClass("dropdown-content select-dropdown "+(this.isMultiple?"multiple-select-dropdown":"")),this.$selectOptions.length&&this.$selectOptions.each(function(t){if(d(t).is("option")){var e=void 0;e=n.isMultiple?n._appendOptionWithIcon(n.$el,t,"multiple"):n._appendOptionWithIcon(n.$el,t),n._addOptionToValueDict(t,e)}else if(d(t).is("optgroup")){var i=d(t).children("option");d(n.dropdownOptions).append(d('<li class="optgroup"><span>'+t.getAttribute("label")+"</span></li>")[0]),i.each(function(t){var e=n._appendOptionWithIcon(n.$el,t,"optgroup-option");n._addOptionToValueDict(t,e)})}}),this.$el.after(this.dropdownOptions),this.input=document.createElement("input"),d(this.input).addClass("select-dropdown dropdown-trigger"),this.input.setAttribute("type","text"),this.input.setAttribute("readonly","true"),this.input.setAttribute("data-target",this.dropdownOptions.id),this.el.disabled&&d(this.input).prop("disabled","true"),this.$el.before(this.input),this._setValueToInput();var t=d('<svg class="caret" height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><path d="M7 10l5 5 5-5z"/><path d="M0 0h24v24H0z" fill="none"/></svg>');if(this.$el.before(t[0]),!this.el.disabled){var e=d.extend({},this.options.dropdownOptions);e.onOpenEnd=function(t){var e=d(n.dropdownOptions).find(".selected").first();if(e.length&&(M.keyDown=!0,n.dropdown.focusedIndex=e.index(),n.dropdown._focusFocusedItem(),M.keyDown=!1,n.dropdown.isScrollable)){var i=e[0].getBoundingClientRect().top-n.dropdownOptions.getBoundingClientRect().top;i-=n.dropdownOptions.clientHeight/2,n.dropdownOptions.scrollTop=i}},this.isMultiple&&(e.closeOnClick=!1),this.dropdown=M.Dropdown.init(this.input,e)}this._setSelectedStates()}},{key:"_addOptionToValueDict",value:function(t,e){var i=Object.keys(this._valueDict).length,n=this.dropdownOptions.id+i,s={};e.id=n,s.el=t,s.optionEl=e,this._valueDict[n]=s}},{key:"_removeDropdown",value:function(){d(this.wrapper).find(".caret").remove(),d(this.input).remove(),d(this.dropdownOptions).remove(),d(this.wrapper).before(this.$el),d(this.wrapper).remove()}},{key:"_appendOptionWithIcon",value:function(t,e,i){var n=e.disabled?"disabled ":"",s="optgroup-option"===i?"optgroup-option ":"",o=this.isMultiple?'<label><input type="checkbox"'+n+'"/><span>'+e.innerHTML+"</span></label>":e.innerHTML,a=d("<li></li>"),r=d("<span></span>");r.html(o),a.addClass(n+" "+s),a.append(r);var l=e.getAttribute("data-icon");if(l){var h=d('<img alt="" src="'+l+'">');a.prepend(h)}return d(this.dropdownOptions).append(a[0]),a[0]}},{key:"_toggleEntryFromArray",value:function(t){var e=!this._keysSelected.hasOwnProperty(t),i=d(this._valueDict[t].optionEl);return e?this._keysSelected[t]=!0:delete this._keysSelected[t],i.toggleClass("selected",e),i.find('input[type="checkbox"]').prop("checked",e),i.prop("selected",e),e}},{key:"_setValueToInput",value:function(){var i=[];if(this.$el.find("option").each(function(t){if(d(t).prop("selected")){var e=d(t).text();i.push(e)}}),!i.length){var t=this.$el.find("option:disabled").eq(0);t.length&&""===t[0].value&&i.push(t.text())}this.input.value=i.join(", ")}},{key:"_setSelectedStates",value:function(){for(var t in this._keysSelected={},this._valueDict){var e=this._valueDict[t],i=d(e.el).prop("selected");d(e.optionEl).find('input[type="checkbox"]').prop("checked",i),i?(this._activateOption(d(this.dropdownOptions),d(e.optionEl)),this._keysSelected[t]=!0):d(e.optionEl).removeClass("selected")}}},{key:"_activateOption",value:function(t,e){e&&(this.isMultiple||t.find("li.selected").removeClass("selected"),d(e).addClass("selected"))}},{key:"getSelectedValues",value:function(){var t=[];for(var e in this._keysSelected)t.push(this._valueDict[e].el.value);return t}}],[{key:"init",value:function(t,e){return _get(n.__proto__||Object.getPrototypeOf(n),"init",this).call(this,this,t,e)}},{key:"getInstance",value:function(t){return(t.jquery?t[0]:t).M_FormSelect}},{key:"defaults",get:function(){return e}}]),n}();M.FormSelect=t,M.jQueryLoaded&&M.initializeJqueryWrapper(t,"formSelect","M_FormSelect")}(cash),function(s,e){"use strict";var i={},t=function(t){function n(t,e){_classCallCheck(this,n);var i=_possibleConstructorReturn(this,(n.__proto__||Object.getPrototypeOf(n)).call(this,n,t,e));return(i.el.M_Range=i).options=s.extend({},n.defaults,e),i._mousedown=!1,i._setupThumb(),i._setupEventHandlers(),i}return _inherits(n,Component),_createClass(n,[{key:"destroy",value:function(){this._removeEventHandlers(),this._removeThumb(),this.el.M_Range=void 0}},{key:"_setupEventHandlers",value:function(){this._handleRangeChangeBound=this._handleRangeChange.bind(this),this._handleRangeMousedownTouchstartBound=this._handleRangeMousedownTouchstart.bind(this),this._handleRangeInputMousemoveTouchmoveBound=this._handleRangeInputMousemoveTouchmove.bind(this),this._handleRangeMouseupTouchendBound=this._handleRangeMouseupTouchend.bind(this),this._handleRangeBlurMouseoutTouchleaveBound=this._handleRangeBlurMouseoutTouchleave.bind(this),this.el.addEventListener("change",this._handleRangeChangeBound),this.el.addEventListener("mousedown",this._handleRangeMousedownTouchstartBound),this.el.addEventListener("touchstart",this._handleRangeMousedownTouchstartBound),this.el.addEventListener("input",this._handleRangeInputMousemoveTouchmoveBound),this.el.addEventListener("mousemove",this._handleRangeInputMousemoveTouchmoveBound),this.el.addEventListener("touchmove",this._handleRangeInputMousemoveTouchmoveBound),this.el.addEventListener("mouseup",this._handleRangeMouseupTouchendBound),this.el.addEventListener("touchend",this._handleRangeMouseupTouchendBound),this.el.addEventListener("blur",this._handleRangeBlurMouseoutTouchleaveBound),this.el.addEventListener("mouseout",this._handleRangeBlurMouseoutTouchleaveBound),this.el.addEventListener("touchleave",this._handleRangeBlurMouseoutTouchleaveBound)}},{key:"_removeEventHandlers",value:function(){this.el.removeEventListener("change",this._handleRangeChangeBound),this.el.removeEventListener("mousedown",this._handleRangeMousedownTouchstartBound),this.el.removeEventListener("touchstart",this._handleRangeMousedownTouchstartBound),this.el.removeEventListener("input",this._handleRangeInputMousemoveTouchmoveBound),this.el.removeEventListener("mousemove",this._handleRangeInputMousemoveTouchmoveBound),this.el.removeEventListener("touchmove",this._handleRangeInputMousemoveTouchmoveBound),this.el.removeEventListener("mouseup",this._handleRangeMouseupTouchendBound),this.el.removeEventListener("touchend",this._handleRangeMouseupTouchendBound),this.el.removeEventListener("blur",this._handleRangeBlurMouseoutTouchleaveBound),this.el.removeEventListener("mouseout",this._handleRangeBlurMouseoutTouchleaveBound),this.el.removeEventListener("touchleave",this._handleRangeBlurMouseoutTouchleaveBound)}},{key:"_handleRangeChange",value:function(){s(this.value).html(this.$el.val()),s(this.thumb).hasClass("active")||this._showRangeBubble();var t=this._calcRangeOffset();s(this.thumb).addClass("active").css("left",t+"px")}},{key:"_handleRangeMousedownTouchstart",value:function(t){if(s(this.value).html(this.$el.val()),this._mousedown=!0,this.$el.addClass("active"),s(this.thumb).hasClass("active")||this._showRangeBubble(),"input"!==t.type){var e=this._calcRangeOffset();s(this.thumb).addClass("active").css("left",e+"px")}}},{key:"_handleRangeInputMousemoveTouchmove",value:function(){if(this._mousedown){s(this.thumb).hasClass("active")||this._showRangeBubble();var t=this._calcRangeOffset();s(this.thumb).addClass("active").css("left",t+"px"),s(this.value).html(this.$el.val())}}},{key:"_handleRangeMouseupTouchend",value:function(){this._mousedown=!1,this.$el.removeClass("active")}},{key:"_handleRangeBlurMouseoutTouchleave",value:function(){if(!this._mousedown){var t=7+parseInt(this.$el.css("padding-left"))+"px";s(this.thumb).hasClass("active")&&(e.remove(this.thumb),e({targets:this.thumb,height:0,width:0,top:10,easing:"easeOutQuad",marginLeft:t,duration:100})),s(this.thumb).removeClass("active")}}},{key:"_setupThumb",value:function(){this.thumb=document.createElement("span"),this.value=document.createElement("span"),s(this.thumb).addClass("thumb"),s(this.value).addClass("value"),s(this.thumb).append(this.value),this.$el.after(this.thumb)}},{key:"_removeThumb",value:function(){s(this.thumb).remove()}},{key:"_showRangeBubble",value:function(){var t=-7+parseInt(s(this.thumb).parent().css("padding-left"))+"px";e.remove(this.thumb),e({targets:this.thumb,height:30,width:30,top:-30,marginLeft:t,duration:300,easing:"easeOutQuint"})}},{key:"_calcRangeOffset",value:function(){var t=this.$el.width()-15,e=parseFloat(this.$el.attr("max"))||100,i=parseFloat(this.$el.attr("min"))||0;return(parseFloat(this.$el.val())-i)/(e-i)*t}}],[{key:"init",value:function(t,e){return _get(n.__proto__||Object.getPrototypeOf(n),"init",this).call(this,this,t,e)}},{key:"getInstance",value:function(t){return(t.jquery?t[0]:t).M_Range}},{key:"defaults",get:function(){return i}}]),n}();M.Range=t,M.jQueryLoaded&&M.initializeJqueryWrapper(t,"range","M_Range"),t.init(s("input[type=range]"))}(cash,M.anime);
|
assets/js/required/admin_app-works.js
DELETED
@@ -1,23149 +0,0 @@
|
|
1 |
-
/******/ (function(modules) { // webpackBootstrap
|
2 |
-
/******/ // The module cache
|
3 |
-
/******/ var installedModules = {};
|
4 |
-
/******/
|
5 |
-
/******/ // The require function
|
6 |
-
/******/ function __webpack_require__(moduleId) {
|
7 |
-
/******/
|
8 |
-
/******/ // Check if module is in cache
|
9 |
-
/******/ if(installedModules[moduleId]) {
|
10 |
-
/******/ return installedModules[moduleId].exports;
|
11 |
-
/******/ }
|
12 |
-
/******/ // Create a new module (and put it into the cache)
|
13 |
-
/******/ var module = installedModules[moduleId] = {
|
14 |
-
/******/ i: moduleId,
|
15 |
-
/******/ l: false,
|
16 |
-
/******/ exports: {}
|
17 |
-
/******/ };
|
18 |
-
/******/
|
19 |
-
/******/ // Execute the module function
|
20 |
-
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
|
21 |
-
/******/
|
22 |
-
/******/ // Flag the module as loaded
|
23 |
-
/******/ module.l = true;
|
24 |
-
/******/
|
25 |
-
/******/ // Return the exports of the module
|
26 |
-
/******/ return module.exports;
|
27 |
-
/******/ }
|
28 |
-
/******/
|
29 |
-
/******/
|
30 |
-
/******/ // expose the modules object (__webpack_modules__)
|
31 |
-
/******/ __webpack_require__.m = modules;
|
32 |
-
/******/
|
33 |
-
/******/ // expose the module cache
|
34 |
-
/******/ __webpack_require__.c = installedModules;
|
35 |
-
/******/
|
36 |
-
/******/ // define getter function for harmony exports
|
37 |
-
/******/ __webpack_require__.d = function(exports, name, getter) {
|
38 |
-
/******/ if(!__webpack_require__.o(exports, name)) {
|
39 |
-
/******/ Object.defineProperty(exports, name, {
|
40 |
-
/******/ configurable: false,
|
41 |
-
/******/ enumerable: true,
|
42 |
-
/******/ get: getter
|
43 |
-
/******/ });
|
44 |
-
/******/ }
|
45 |
-
/******/ };
|
46 |
-
/******/
|
47 |
-
/******/ // getDefaultExport function for compatibility with non-harmony modules
|
48 |
-
/******/ __webpack_require__.n = function(module) {
|
49 |
-
/******/ var getter = module && module.__esModule ?
|
50 |
-
/******/ function getDefault() { return module['default']; } :
|
51 |
-
/******/ function getModuleExports() { return module; };
|
52 |
-
/******/ __webpack_require__.d(getter, 'a', getter);
|
53 |
-
/******/ return getter;
|
54 |
-
/******/ };
|
55 |
-
/******/
|
56 |
-
/******/ // Object.prototype.hasOwnProperty.call
|
57 |
-
/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
|
58 |
-
/******/
|
59 |
-
/******/ // __webpack_public_path__
|
60 |
-
/******/ __webpack_require__.p = "";
|
61 |
-
/******/
|
62 |
-
/******/ // Load entry module and return exports
|
63 |
-
/******/ return __webpack_require__(__webpack_require__.s = 5);
|
64 |
-
/******/ })
|
65 |
-
/************************************************************************/
|
66 |
-
/******/ ([
|
67 |
-
/* 0 */
|
68 |
-
/***/ (function(module, exports, __webpack_require__) {
|
69 |
-
|
70 |
-
var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!
|
71 |
-
* jQuery JavaScript Library v3.2.1
|
72 |
-
* https://jquery.com/
|
73 |
-
*
|
74 |
-
* Includes Sizzle.js
|
75 |
-
* https://sizzlejs.com/
|
76 |
-
*
|
77 |
-
* Copyright JS Foundation and other contributors
|
78 |
-
* Released under the MIT license
|
79 |
-
* https://jquery.org/license
|
80 |
-
*
|
81 |
-
* Date: 2017-03-20T18:59Z
|
82 |
-
*/
|
83 |
-
( function( global, factory ) {
|
84 |
-
|
85 |
-
"use strict";
|
86 |
-
|
87 |
-
if ( typeof module === "object" && typeof module.exports === "object" ) {
|
88 |
-
|
89 |
-
// For CommonJS and CommonJS-like environments where a proper `window`
|
90 |
-
// is present, execute the factory and get jQuery.
|
91 |
-
// For environments that do not have a `window` with a `document`
|
92 |
-
// (such as Node.js), expose a factory as module.exports.
|
93 |
-
// This accentuates the need for the creation of a real `window`.
|
94 |
-
// e.g. var jQuery = require("jquery")(window);
|
95 |
-
// See ticket #14549 for more info.
|
96 |
-
module.exports = global.document ?
|
97 |
-
factory( global, true ) :
|
98 |
-
function( w ) {
|
99 |
-
if ( !w.document ) {
|
100 |
-
throw new Error( "jQuery requires a window with a document" );
|
101 |
-
}
|
102 |
-
return factory( w );
|
103 |
-
};
|
104 |
-
} else {
|
105 |
-
factory( global );
|
106 |
-
}
|
107 |
-
|
108 |
-
// Pass this if window is not defined yet
|
109 |
-
} )( typeof window !== "undefined" ? window : this, function( window, noGlobal ) {
|
110 |
-
|
111 |
-
// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1
|
112 |
-
// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode
|
113 |
-
// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common
|
114 |
-
// enough that all such attempts are guarded in a try block.
|
115 |
-
"use strict";
|
116 |
-
|
117 |
-
var arr = [];
|
118 |
-
|
119 |
-
var document = window.document;
|
120 |
-
|
121 |
-
var getProto = Object.getPrototypeOf;
|
122 |
-
|
123 |
-
var slice = arr.slice;
|
124 |
-
|
125 |
-
var concat = arr.concat;
|
126 |
-
|
127 |
-
var push = arr.push;
|
128 |
-
|
129 |
-
var indexOf = arr.indexOf;
|
130 |
-
|
131 |
-
var class2type = {};
|
132 |
-
|
133 |
-
var toString = class2type.toString;
|
134 |
-
|
135 |
-
var hasOwn = class2type.hasOwnProperty;
|
136 |
-
|
137 |
-
var fnToString = hasOwn.toString;
|
138 |
-
|
139 |
-
var ObjectFunctionString = fnToString.call( Object );
|
140 |
-
|
141 |
-
var support = {};
|
142 |
-
|
143 |
-
|
144 |
-
|
145 |
-
function DOMEval( code, doc ) {
|
146 |
-
doc = doc || document;
|
147 |
-
|
148 |
-
var script = doc.createElement( "script" );
|
149 |
-
|
150 |
-
script.text = code;
|
151 |
-
doc.head.appendChild( script ).parentNode.removeChild( script );
|
152 |
-
}
|
153 |
-
/* global Symbol */
|
154 |
-
// Defining this global in .eslintrc.json would create a danger of using the global
|
155 |
-
// unguarded in another place, it seems safer to define global only for this module
|
156 |
-
|
157 |
-
|
158 |
-
|
159 |
-
var
|
160 |
-
version = "3.2.1",
|
161 |
-
|
162 |
-
// Define a local copy of jQuery
|
163 |
-
jQuery = function( selector, context ) {
|
164 |
-
|
165 |
-
// The jQuery object is actually just the init constructor 'enhanced'
|
166 |
-
// Need init if jQuery is called (just allow error to be thrown if not included)
|
167 |
-
return new jQuery.fn.init( selector, context );
|
168 |
-
},
|
169 |
-
|
170 |
-
// Support: Android <=4.0 only
|
171 |
-
// Make sure we trim BOM and NBSP
|
172 |
-
rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,
|
173 |
-
|
174 |
-
// Matches dashed string for camelizing
|
175 |
-
rmsPrefix = /^-ms-/,
|
176 |
-
rdashAlpha = /-([a-z])/g,
|
177 |
-
|
178 |
-
// Used by jQuery.camelCase as callback to replace()
|
179 |
-
fcamelCase = function( all, letter ) {
|
180 |
-
return letter.toUpperCase();
|
181 |
-
};
|
182 |
-
|
183 |
-
jQuery.fn = jQuery.prototype = {
|
184 |
-
|
185 |
-
// The current version of jQuery being used
|
186 |
-
jquery: version,
|
187 |
-
|
188 |
-
constructor: jQuery,
|
189 |
-
|
190 |
-
// The default length of a jQuery object is 0
|
191 |
-
length: 0,
|
192 |
-
|
193 |
-
toArray: function() {
|
194 |
-
return slice.call( this );
|
195 |
-
},
|
196 |
-
|
197 |
-
// Get the Nth element in the matched element set OR
|
198 |
-
// Get the whole matched element set as a clean array
|
199 |
-
get: function( num ) {
|
200 |
-
|
201 |
-
// Return all the elements in a clean array
|
202 |
-
if ( num == null ) {
|
203 |
-
return slice.call( this );
|
204 |
-
}
|
205 |
-
|
206 |
-
// Return just the one element from the set
|
207 |
-
return num < 0 ? this[ num + this.length ] : this[ num ];
|
208 |
-
},
|
209 |
-
|
210 |
-
// Take an array of elements and push it onto the stack
|
211 |
-
// (returning the new matched element set)
|
212 |
-
pushStack: function( elems ) {
|
213 |
-
|
214 |
-
// Build a new jQuery matched element set
|
215 |
-
var ret = jQuery.merge( this.constructor(), elems );
|
216 |
-
|
217 |
-
// Add the old object onto the stack (as a reference)
|
218 |
-
ret.prevObject = this;
|
219 |
-
|
220 |
-
// Return the newly-formed element set
|
221 |
-
return ret;
|
222 |
-
},
|
223 |
-
|
224 |
-
// Execute a callback for every element in the matched set.
|
225 |
-
each: function( callback ) {
|
226 |
-
return jQuery.each( this, callback );
|
227 |
-
},
|
228 |
-
|
229 |
-
map: function( callback ) {
|
230 |
-
return this.pushStack( jQuery.map( this, function( elem, i ) {
|
231 |
-
return callback.call( elem, i, elem );
|
232 |
-
} ) );
|
233 |
-
},
|
234 |
-
|
235 |
-
slice: function() {
|
236 |
-
return this.pushStack( slice.apply( this, arguments ) );
|
237 |
-
},
|
238 |
-
|
239 |
-
first: function() {
|
240 |
-
return this.eq( 0 );
|
241 |
-
},
|
242 |
-
|
243 |
-
last: function() {
|
244 |
-
return this.eq( -1 );
|
245 |
-
},
|
246 |
-
|
247 |
-
eq: function( i ) {
|
248 |
-
var len = this.length,
|
249 |
-
j = +i + ( i < 0 ? len : 0 );
|
250 |
-
return this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] );
|
251 |
-
},
|
252 |
-
|
253 |
-
end: function() {
|
254 |
-
return this.prevObject || this.constructor();
|
255 |
-
},
|
256 |
-
|
257 |
-
// For internal use only.
|
258 |
-
// Behaves like an Array's method, not like a jQuery method.
|
259 |
-
push: push,
|
260 |
-
sort: arr.sort,
|
261 |
-
splice: arr.splice
|
262 |
-
};
|
263 |
-
|
264 |
-
jQuery.extend = jQuery.fn.extend = function() {
|
265 |
-
var options, name, src, copy, copyIsArray, clone,
|
266 |
-
target = arguments[ 0 ] || {},
|
267 |
-
i = 1,
|
268 |
-
length = arguments.length,
|
269 |
-
deep = false;
|
270 |
-
|
271 |
-
// Handle a deep copy situation
|
272 |
-
if ( typeof target === "boolean" ) {
|
273 |
-
deep = target;
|
274 |
-
|
275 |
-
// Skip the boolean and the target
|
276 |
-
target = arguments[ i ] || {};
|
277 |
-
i++;
|
278 |
-
}
|
279 |
-
|
280 |
-
// Handle case when target is a string or something (possible in deep copy)
|
281 |
-
if ( typeof target !== "object" && !jQuery.isFunction( target ) ) {
|
282 |
-
target = {};
|
283 |
-
}
|
284 |
-
|
285 |
-
// Extend jQuery itself if only one argument is passed
|
286 |
-
if ( i === length ) {
|
287 |
-
target = this;
|
288 |
-
i--;
|
289 |
-
}
|
290 |
-
|
291 |
-
for ( ; i < length; i++ ) {
|
292 |
-
|
293 |
-
// Only deal with non-null/undefined values
|
294 |
-
if ( ( options = arguments[ i ] ) != null ) {
|
295 |
-
|
296 |
-
// Extend the base object
|
297 |
-
for ( name in options ) {
|
298 |
-
src = target[ name ];
|
299 |
-
copy = options[ name ];
|
300 |
-
|
301 |
-
// Prevent never-ending loop
|
302 |
-
if ( target === copy ) {
|
303 |
-
continue;
|
304 |
-
}
|
305 |
-
|
306 |
-
// Recurse if we're merging plain objects or arrays
|
307 |
-
if ( deep && copy && ( jQuery.isPlainObject( copy ) ||
|
308 |
-
( copyIsArray = Array.isArray( copy ) ) ) ) {
|
309 |
-
|
310 |
-
if ( copyIsArray ) {
|
311 |
-
copyIsArray = false;
|
312 |
-
clone = src && Array.isArray( src ) ? src : [];
|
313 |
-
|
314 |
-
} else {
|
315 |
-
clone = src && jQuery.isPlainObject( src ) ? src : {};
|
316 |
-
}
|
317 |
-
|
318 |
-
// Never move original objects, clone them
|
319 |
-
target[ name ] = jQuery.extend( deep, clone, copy );
|
320 |
-
|
321 |
-
// Don't bring in undefined values
|
322 |
-
} else if ( copy !== undefined ) {
|
323 |
-
target[ name ] = copy;
|
324 |
-
}
|
325 |
-
}
|
326 |
-
}
|
327 |
-
}
|
328 |
-
|
329 |
-
// Return the modified object
|
330 |
-
return target;
|
331 |
-
};
|
332 |
-
|
333 |
-
jQuery.extend( {
|
334 |
-
|
335 |
-
// Unique for each copy of jQuery on the page
|
336 |
-
expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ),
|
337 |
-
|
338 |
-
// Assume jQuery is ready without the ready module
|
339 |
-
isReady: true,
|
340 |
-
|
341 |
-
error: function( msg ) {
|
342 |
-
throw new Error( msg );
|
343 |
-
},
|
344 |
-
|
345 |
-
noop: function() {},
|
346 |
-
|
347 |
-
isFunction: function( obj ) {
|
348 |
-
return jQuery.type( obj ) === "function";
|
349 |
-
},
|
350 |
-
|
351 |
-
isWindow: function( obj ) {
|
352 |
-
return obj != null && obj === obj.window;
|
353 |
-
},
|
354 |
-
|
355 |
-
isNumeric: function( obj ) {
|
356 |
-
|
357 |
-
// As of jQuery 3.0, isNumeric is limited to
|
358 |
-
// strings and numbers (primitives or objects)
|
359 |
-
// that can be coerced to finite numbers (gh-2662)
|
360 |
-
var type = jQuery.type( obj );
|
361 |
-
return ( type === "number" || type === "string" ) &&
|
362 |
-
|
363 |
-
// parseFloat NaNs numeric-cast false positives ("")
|
364 |
-
// ...but misinterprets leading-number strings, particularly hex literals ("0x...")
|
365 |
-
// subtraction forces infinities to NaN
|
366 |
-
!isNaN( obj - parseFloat( obj ) );
|
367 |
-
},
|
368 |
-
|
369 |
-
isPlainObject: function( obj ) {
|
370 |
-
var proto, Ctor;
|
371 |
-
|
372 |
-
// Detect obvious negatives
|
373 |
-
// Use toString instead of jQuery.type to catch host objects
|
374 |
-
if ( !obj || toString.call( obj ) !== "[object Object]" ) {
|
375 |
-
return false;
|
376 |
-
}
|
377 |
-
|
378 |
-
proto = getProto( obj );
|
379 |
-
|
380 |
-
// Objects with no prototype (e.g., `Object.create( null )`) are plain
|
381 |
-
if ( !proto ) {
|
382 |
-
return true;
|
383 |
-
}
|
384 |
-
|
385 |
-
// Objects with prototype are plain iff they were constructed by a global Object function
|
386 |
-
Ctor = hasOwn.call( proto, "constructor" ) && proto.constructor;
|
387 |
-
return typeof Ctor === "function" && fnToString.call( Ctor ) === ObjectFunctionString;
|
388 |
-
},
|
389 |
-
|
390 |
-
isEmptyObject: function( obj ) {
|
391 |
-
|
392 |
-
/* eslint-disable no-unused-vars */
|
393 |
-
// See https://github.com/eslint/eslint/issues/6125
|
394 |
-
var name;
|
395 |
-
|
396 |
-
for ( name in obj ) {
|
397 |
-
return false;
|
398 |
-
}
|
399 |
-
return true;
|
400 |
-
},
|
401 |
-
|
402 |
-
type: function( obj ) {
|
403 |
-
if ( obj == null ) {
|
404 |
-
return obj + "";
|
405 |
-
}
|
406 |
-
|
407 |
-
// Support: Android <=2.3 only (functionish RegExp)
|
408 |
-
return typeof obj === "object" || typeof obj === "function" ?
|
409 |
-
class2type[ toString.call( obj ) ] || "object" :
|
410 |
-
typeof obj;
|
411 |
-
},
|
412 |
-
|
413 |
-
// Evaluates a script in a global context
|
414 |
-
globalEval: function( code ) {
|
415 |
-
DOMEval( code );
|
416 |
-
},
|
417 |
-
|
418 |
-
// Convert dashed to camelCase; used by the css and data modules
|
419 |
-
// Support: IE <=9 - 11, Edge 12 - 13
|
420 |
-
// Microsoft forgot to hump their vendor prefix (#9572)
|
421 |
-
camelCase: function( string ) {
|
422 |
-
return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase );
|
423 |
-
},
|
424 |
-
|
425 |
-
each: function( obj, callback ) {
|
426 |
-
var length, i = 0;
|
427 |
-
|
428 |
-
if ( isArrayLike( obj ) ) {
|
429 |
-
length = obj.length;
|
430 |
-
for ( ; i < length; i++ ) {
|
431 |
-
if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {
|
432 |
-
break;
|
433 |
-
}
|
434 |
-
}
|
435 |
-
} else {
|
436 |
-
for ( i in obj ) {
|
437 |
-
if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {
|
438 |
-
break;
|
439 |
-
}
|
440 |
-
}
|
441 |
-
}
|
442 |
-
|
443 |
-
return obj;
|
444 |
-
},
|
445 |
-
|
446 |
-
// Support: Android <=4.0 only
|
447 |
-
trim: function( text ) {
|
448 |
-
return text == null ?
|
449 |
-
"" :
|
450 |
-
( text + "" ).replace( rtrim, "" );
|
451 |
-
},
|
452 |
-
|
453 |
-
// results is for internal usage only
|
454 |
-
makeArray: function( arr, results ) {
|
455 |
-
var ret = results || [];
|
456 |
-
|
457 |
-
if ( arr != null ) {
|
458 |
-
if ( isArrayLike( Object( arr ) ) ) {
|
459 |
-
jQuery.merge( ret,
|
460 |
-
typeof arr === "string" ?
|
461 |
-
[ arr ] : arr
|
462 |
-
);
|
463 |
-
} else {
|
464 |
-
push.call( ret, arr );
|
465 |
-
}
|
466 |
-
}
|
467 |
-
|
468 |
-
return ret;
|
469 |
-
},
|
470 |
-
|
471 |
-
inArray: function( elem, arr, i ) {
|
472 |
-
return arr == null ? -1 : indexOf.call( arr, elem, i );
|
473 |
-
},
|
474 |
-
|
475 |
-
// Support: Android <=4.0 only, PhantomJS 1 only
|
476 |
-
// push.apply(_, arraylike) throws on ancient WebKit
|
477 |
-
merge: function( first, second ) {
|
478 |
-
var len = +second.length,
|
479 |
-
j = 0,
|
480 |
-
i = first.length;
|
481 |
-
|
482 |
-
for ( ; j < len; j++ ) {
|
483 |
-
first[ i++ ] = second[ j ];
|
484 |
-
}
|
485 |
-
|
486 |
-
first.length = i;
|
487 |
-
|
488 |
-
return first;
|
489 |
-
},
|
490 |
-
|
491 |
-
grep: function( elems, callback, invert ) {
|
492 |
-
var callbackInverse,
|
493 |
-
matches = [],
|
494 |
-
i = 0,
|
495 |
-
length = elems.length,
|
496 |
-
callbackExpect = !invert;
|
497 |
-
|
498 |
-
// Go through the array, only saving the items
|
499 |
-
// that pass the validator function
|
500 |
-
for ( ; i < length; i++ ) {
|
501 |
-
callbackInverse = !callback( elems[ i ], i );
|
502 |
-
if ( callbackInverse !== callbackExpect ) {
|
503 |
-
matches.push( elems[ i ] );
|
504 |
-
}
|
505 |
-
}
|
506 |
-
|
507 |
-
return matches;
|
508 |
-
},
|
509 |
-
|
510 |
-
// arg is for internal usage only
|
511 |
-
map: function( elems, callback, arg ) {
|
512 |
-
var length, value,
|
513 |
-
i = 0,
|
514 |
-
ret = [];
|
515 |
-
|
516 |
-
// Go through the array, translating each of the items to their new values
|
517 |
-
if ( isArrayLike( elems ) ) {
|
518 |
-
length = elems.length;
|
519 |
-
for ( ; i < length; i++ ) {
|
520 |
-
value = callback( elems[ i ], i, arg );
|
521 |
-
|
522 |
-
if ( value != null ) {
|
523 |
-
ret.push( value );
|
524 |
-
}
|
525 |
-
}
|
526 |
-
|
527 |
-
// Go through every key on the object,
|
528 |
-
} else {
|
529 |
-
for ( i in elems ) {
|
530 |
-
value = callback( elems[ i ], i, arg );
|
531 |
-
|
532 |
-
if ( value != null ) {
|
533 |
-
ret.push( value );
|
534 |
-
}
|
535 |
-
}
|
536 |
-
}
|
537 |
-
|
538 |
-
// Flatten any nested arrays
|
539 |
-
return concat.apply( [], ret );
|
540 |
-
},
|
541 |
-
|
542 |
-
// A global GUID counter for objects
|
543 |
-
guid: 1,
|
544 |
-
|
545 |
-
// Bind a function to a context, optionally partially applying any
|
546 |
-
// arguments.
|
547 |
-
proxy: function( fn, context ) {
|
548 |
-
var tmp, args, proxy;
|
549 |
-
|
550 |
-
if ( typeof context === "string" ) {
|
551 |
-
tmp = fn[ context ];
|
552 |
-
context = fn;
|
553 |
-
fn = tmp;
|
554 |
-
}
|
555 |
-
|
556 |
-
// Quick check to determine if target is callable, in the spec
|
557 |
-
// this throws a TypeError, but we will just return undefined.
|
558 |
-
if ( !jQuery.isFunction( fn ) ) {
|
559 |
-
return undefined;
|
560 |
-
}
|
561 |
-
|
562 |
-
// Simulated bind
|
563 |
-
args = slice.call( arguments, 2 );
|
564 |
-
proxy = function() {
|
565 |
-
return fn.apply( context || this, args.concat( slice.call( arguments ) ) );
|
566 |
-
};
|
567 |
-
|
568 |
-
// Set the guid of unique handler to the same of original handler, so it can be removed
|
569 |
-
proxy.guid = fn.guid = fn.guid || jQuery.guid++;
|
570 |
-
|
571 |
-
return proxy;
|
572 |
-
},
|
573 |
-
|
574 |
-
now: Date.now,
|
575 |
-
|
576 |
-
// jQuery.support is not used in Core but other projects attach their
|
577 |
-
// properties to it so it needs to exist.
|
578 |
-
support: support
|
579 |
-
} );
|
580 |
-
|
581 |
-
if ( typeof Symbol === "function" ) {
|
582 |
-
jQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ];
|
583 |
-
}
|
584 |
-
|
585 |
-
// Populate the class2type map
|
586 |
-
jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ),
|
587 |
-
function( i, name ) {
|
588 |
-
class2type[ "[object " + name + "]" ] = name.toLowerCase();
|
589 |
-
} );
|
590 |
-
|
591 |
-
function isArrayLike( obj ) {
|
592 |
-
|
593 |
-
// Support: real iOS 8.2 only (not reproducible in simulator)
|
594 |
-
// `in` check used to prevent JIT error (gh-2145)
|
595 |
-
// hasOwn isn't used here due to false negatives
|
596 |
-
// regarding Nodelist length in IE
|
597 |
-
var length = !!obj && "length" in obj && obj.length,
|
598 |
-
type = jQuery.type( obj );
|
599 |
-
|
600 |
-
if ( type === "function" || jQuery.isWindow( obj ) ) {
|
601 |
-
return false;
|
602 |
-
}
|
603 |
-
|
604 |
-
return type === "array" || length === 0 ||
|
605 |
-
typeof length === "number" && length > 0 && ( length - 1 ) in obj;
|
606 |
-
}
|
607 |
-
var Sizzle =
|
608 |
-
/*!
|
609 |
-
* Sizzle CSS Selector Engine v2.3.3
|
610 |
-
* https://sizzlejs.com/
|
611 |
-
*
|
612 |
-
* Copyright jQuery Foundation and other contributors
|
613 |
-
* Released under the MIT license
|
614 |
-
* http://jquery.org/license
|
615 |
-
*
|
616 |
-
* Date: 2016-08-08
|
617 |
-
*/
|
618 |
-
(function( window ) {
|
619 |
-
|
620 |
-
var i,
|
621 |
-
support,
|
622 |
-
Expr,
|
623 |
-
getText,
|
624 |
-
isXML,
|
625 |
-
tokenize,
|
626 |
-
compile,
|
627 |
-
select,
|
628 |
-
outermostContext,
|
629 |
-
sortInput,
|
630 |
-
hasDuplicate,
|
631 |
-
|
632 |
-
// Local document vars
|
633 |
-
setDocument,
|
634 |
-
document,
|
635 |
-
docElem,
|
636 |
-
documentIsHTML,
|
637 |
-
rbuggyQSA,
|
638 |
-
rbuggyMatches,
|
639 |
-
matches,
|
640 |
-
contains,
|
641 |
-
|
642 |
-
// Instance-specific data
|
643 |
-
expando = "sizzle" + 1 * new Date(),
|
644 |
-
preferredDoc = window.document,
|
645 |
-
dirruns = 0,
|
646 |
-
done = 0,
|
647 |
-
classCache = createCache(),
|
648 |
-
tokenCache = createCache(),
|
649 |
-
compilerCache = createCache(),
|
650 |
-
sortOrder = function( a, b ) {
|
651 |
-
if ( a === b ) {
|
652 |
-
hasDuplicate = true;
|
653 |
-
}
|
654 |
-
return 0;
|
655 |
-
},
|
656 |
-
|
657 |
-
// Instance methods
|
658 |
-
hasOwn = ({}).hasOwnProperty,
|
659 |
-
arr = [],
|
660 |
-
pop = arr.pop,
|
661 |
-
push_native = arr.push,
|
662 |
-
push = arr.push,
|
663 |
-
slice = arr.slice,
|
664 |
-
// Use a stripped-down indexOf as it's faster than native
|
665 |
-
// https://jsperf.com/thor-indexof-vs-for/5
|
666 |
-
indexOf = function( list, elem ) {
|
667 |
-
var i = 0,
|
668 |
-
len = list.length;
|
669 |
-
for ( ; i < len; i++ ) {
|
670 |
-
if ( list[i] === elem ) {
|
671 |
-
return i;
|
672 |
-
}
|
673 |
-
}
|
674 |
-
return -1;
|
675 |
-
},
|
676 |
-
|
677 |
-
booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",
|
678 |
-
|
679 |
-
// Regular expressions
|
680 |
-
|
681 |
-
// http://www.w3.org/TR/css3-selectors/#whitespace
|
682 |
-
whitespace = "[\\x20\\t\\r\\n\\f]",
|
683 |
-
|
684 |
-
// http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier
|
685 |
-
identifier = "(?:\\\\.|[\\w-]|[^\0-\\xa0])+",
|
686 |
-
|
687 |
-
// Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors
|
688 |
-
attributes = "\\[" + whitespace + "*(" + identifier + ")(?:" + whitespace +
|
689 |
-
// Operator (capture 2)
|
690 |
-
"*([*^$|!~]?=)" + whitespace +
|
691 |
-
// "Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]"
|
692 |
-
"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + whitespace +
|
693 |
-
"*\\]",
|
694 |
-
|
695 |
-
pseudos = ":(" + identifier + ")(?:\\((" +
|
696 |
-
// To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:
|
697 |
-
// 1. quoted (capture 3; capture 4 or capture 5)
|
698 |
-
"('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" +
|
699 |
-
// 2. simple (capture 6)
|
700 |
-
"((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|" +
|
701 |
-
// 3. anything else (capture 2)
|
702 |
-
".*" +
|
703 |
-
")\\)|)",
|
704 |
-
|
705 |
-
// Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter
|
706 |
-
rwhitespace = new RegExp( whitespace + "+", "g" ),
|
707 |
-
rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ),
|
708 |
-
|
709 |
-
rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ),
|
710 |
-
rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*" ),
|
711 |
-
|
712 |
-
rattributeQuotes = new RegExp( "=" + whitespace + "*([^\\]'\"]*?)" + whitespace + "*\\]", "g" ),
|
713 |
-
|
714 |
-
rpseudo = new RegExp( pseudos ),
|
715 |
-
ridentifier = new RegExp( "^" + identifier + "$" ),
|
716 |
-
|
717 |
-
matchExpr = {
|
718 |
-
"ID": new RegExp( "^#(" + identifier + ")" ),
|
719 |
-
"CLASS": new RegExp( "^\\.(" + identifier + ")" ),
|
720 |
-
"TAG": new RegExp( "^(" + identifier + "|[*])" ),
|
721 |
-
"ATTR": new RegExp( "^" + attributes ),
|
722 |
-
"PSEUDO": new RegExp( "^" + pseudos ),
|
723 |
-
"CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace +
|
724 |
-
"*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace +
|
725 |
-
"*(\\d+)|))" + whitespace + "*\\)|)", "i" ),
|
726 |
-
"bool": new RegExp( "^(?:" + booleans + ")$", "i" ),
|
727 |
-
// For use in libraries implementing .is()
|
728 |
-
// We use this for POS matching in `select`
|
729 |
-
"needsContext": new RegExp( "^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" +
|
730 |
-
whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" )
|
731 |
-
},
|
732 |
-
|
733 |
-
rinputs = /^(?:input|select|textarea|button)$/i,
|
734 |
-
rheader = /^h\d$/i,
|
735 |
-
|
736 |
-
rnative = /^[^{]+\{\s*\[native \w/,
|
737 |
-
|
738 |
-
// Easily-parseable/retrievable ID or TAG or CLASS selectors
|
739 |
-
rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,
|
740 |
-
|
741 |
-
rsibling = /[+~]/,
|
742 |
-
|
743 |
-
// CSS escapes
|
744 |
-
// http://www.w3.org/TR/CSS21/syndata.html#escaped-characters
|
745 |
-
runescape = new RegExp( "\\\\([\\da-f]{1,6}" + whitespace + "?|(" + whitespace + ")|.)", "ig" ),
|
746 |
-
funescape = function( _, escaped, escapedWhitespace ) {
|
747 |
-
var high = "0x" + escaped - 0x10000;
|
748 |
-
// NaN means non-codepoint
|
749 |
-
// Support: Firefox<24
|
750 |
-
// Workaround erroneous numeric interpretation of +"0x"
|
751 |
-
return high !== high || escapedWhitespace ?
|
752 |
-
escaped :
|
753 |
-
high < 0 ?
|
754 |
-
// BMP codepoint
|
755 |
-
String.fromCharCode( high + 0x10000 ) :
|
756 |
-
// Supplemental Plane codepoint (surrogate pair)
|
757 |
-
String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );
|
758 |
-
},
|
759 |
-
|
760 |
-
// CSS string/identifier serialization
|
761 |
-
// https://drafts.csswg.org/cssom/#common-serializing-idioms
|
762 |
-
rcssescape = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,
|
763 |
-
fcssescape = function( ch, asCodePoint ) {
|
764 |
-
if ( asCodePoint ) {
|
765 |
-
|
766 |
-
// U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER
|
767 |
-
if ( ch === "\0" ) {
|
768 |
-
return "\uFFFD";
|
769 |
-
}
|
770 |
-
|
771 |
-
// Control characters and (dependent upon position) numbers get escaped as code points
|
772 |
-
return ch.slice( 0, -1 ) + "\\" + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " ";
|
773 |
-
}
|
774 |
-
|
775 |
-
// Other potentially-special ASCII characters get backslash-escaped
|
776 |
-
return "\\" + ch;
|
777 |
-
},
|
778 |
-
|
779 |
-
// Used for iframes
|
780 |
-
// See setDocument()
|
781 |
-
// Removing the function wrapper causes a "Permission Denied"
|
782 |
-
// error in IE
|
783 |
-
unloadHandler = function() {
|
784 |
-
setDocument();
|
785 |
-
},
|
786 |
-
|
787 |
-
disabledAncestor = addCombinator(
|
788 |
-
function( elem ) {
|
789 |
-
return elem.disabled === true && ("form" in elem || "label" in elem);
|
790 |
-
},
|
791 |
-
{ dir: "parentNode", next: "legend" }
|
792 |
-
);
|
793 |
-
|
794 |
-
// Optimize for push.apply( _, NodeList )
|
795 |
-
try {
|
796 |
-
push.apply(
|
797 |
-
(arr = slice.call( preferredDoc.childNodes )),
|
798 |
-
preferredDoc.childNodes
|
799 |
-
);
|
800 |
-
// Support: Android<4.0
|
801 |
-
// Detect silently failing push.apply
|
802 |
-
arr[ preferredDoc.childNodes.length ].nodeType;
|
803 |
-
} catch ( e ) {
|
804 |
-
push = { apply: arr.length ?
|
805 |
-
|
806 |
-
// Leverage slice if possible
|
807 |
-
function( target, els ) {
|
808 |
-
push_native.apply( target, slice.call(els) );
|
809 |
-
} :
|
810 |
-
|
811 |
-
// Support: IE<9
|
812 |
-
// Otherwise append directly
|
813 |
-
function( target, els ) {
|
814 |
-
var j = target.length,
|
815 |
-
i = 0;
|
816 |
-
// Can't trust NodeList.length
|
817 |
-
while ( (target[j++] = els[i++]) ) {}
|
818 |
-
target.length = j - 1;
|
819 |
-
}
|
820 |
-
};
|
821 |
-
}
|
822 |
-
|
823 |
-
function Sizzle( selector, context, results, seed ) {
|
824 |
-
var m, i, elem, nid, match, groups, newSelector,
|
825 |
-
newContext = context && context.ownerDocument,
|
826 |
-
|
827 |
-
// nodeType defaults to 9, since context defaults to document
|
828 |
-
nodeType = context ? context.nodeType : 9;
|
829 |
-
|
830 |
-
results = results || [];
|
831 |
-
|
832 |
-
// Return early from calls with invalid selector or context
|
833 |
-
if ( typeof selector !== "string" || !selector ||
|
834 |
-
nodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) {
|
835 |
-
|
836 |
-
return results;
|
837 |
-
}
|
838 |
-
|
839 |
-
// Try to shortcut find operations (as opposed to filters) in HTML documents
|
840 |
-
if ( !seed ) {
|
841 |
-
|
842 |
-
if ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) {
|
843 |
-
setDocument( context );
|
844 |
-
}
|
845 |
-
context = context || document;
|
846 |
-
|
847 |
-
if ( documentIsHTML ) {
|
848 |
-
|
849 |
-
// If the selector is sufficiently simple, try using a "get*By*" DOM method
|
850 |
-
// (excepting DocumentFragment context, where the methods don't exist)
|
851 |
-
if ( nodeType !== 11 && (match = rquickExpr.exec( selector )) ) {
|
852 |
-
|
853 |
-
// ID selector
|
854 |
-
if ( (m = match[1]) ) {
|
855 |
-
|
856 |
-
// Document context
|
857 |
-
if ( nodeType === 9 ) {
|
858 |
-
if ( (elem = context.getElementById( m )) ) {
|
859 |
-
|
860 |
-
// Support: IE, Opera, Webkit
|
861 |
-
// TODO: identify versions
|
862 |
-
// getElementById can match elements by name instead of ID
|
863 |
-
if ( elem.id === m ) {
|
864 |
-
results.push( elem );
|
865 |
-
return results;
|
866 |
-
}
|
867 |
-
} else {
|
868 |
-
return results;
|
869 |
-
}
|
870 |
-
|
871 |
-
// Element context
|
872 |
-
} else {
|
873 |
-
|
874 |
-
// Support: IE, Opera, Webkit
|
875 |
-
// TODO: identify versions
|
876 |
-
// getElementById can match elements by name instead of ID
|
877 |
-
if ( newContext && (elem = newContext.getElementById( m )) &&
|
878 |
-
contains( context, elem ) &&
|
879 |
-
elem.id === m ) {
|
880 |
-
|
881 |
-
results.push( elem );
|
882 |
-
return results;
|
883 |
-
}
|
884 |
-
}
|
885 |
-
|
886 |
-
// Type selector
|
887 |
-
} else if ( match[2] ) {
|
888 |
-
push.apply( results, context.getElementsByTagName( selector ) );
|
889 |
-
return results;
|
890 |
-
|
891 |
-
// Class selector
|
892 |
-
} else if ( (m = match[3]) && support.getElementsByClassName &&
|
893 |
-
context.getElementsByClassName ) {
|
894 |
-
|
895 |
-
push.apply( results, context.getElementsByClassName( m ) );
|
896 |
-
return results;
|
897 |
-
}
|
898 |
-
}
|
899 |
-
|
900 |
-
// Take advantage of querySelectorAll
|
901 |
-
if ( support.qsa &&
|
902 |
-
!compilerCache[ selector + " " ] &&
|
903 |
-
(!rbuggyQSA || !rbuggyQSA.test( selector )) ) {
|
904 |
-
|
905 |
-
if ( nodeType !== 1 ) {
|
906 |
-
newContext = context;
|
907 |
-
newSelector = selector;
|
908 |
-
|
909 |
-
// qSA looks outside Element context, which is not what we want
|
910 |
-
// Thanks to Andrew Dupont for this workaround technique
|
911 |
-
// Support: IE <=8
|
912 |
-
// Exclude object elements
|
913 |
-
} else if ( context.nodeName.toLowerCase() !== "object" ) {
|
914 |
-
|
915 |
-
// Capture the context ID, setting it first if necessary
|
916 |
-
if ( (nid = context.getAttribute( "id" )) ) {
|
917 |
-
nid = nid.replace( rcssescape, fcssescape );
|
918 |
-
} else {
|
919 |
-
context.setAttribute( "id", (nid = expando) );
|
920 |
-
}
|
921 |
-
|
922 |
-
// Prefix every selector in the list
|
923 |
-
groups = tokenize( selector );
|
924 |
-
i = groups.length;
|
925 |
-
while ( i-- ) {
|
926 |
-
groups[i] = "#" + nid + " " + toSelector( groups[i] );
|
927 |
-
}
|
928 |
-
newSelector = groups.join( "," );
|
929 |
-
|
930 |
-
// Expand context for sibling selectors
|
931 |
-
newContext = rsibling.test( selector ) && testContext( context.parentNode ) ||
|
932 |
-
context;
|
933 |
-
}
|
934 |
-
|
935 |
-
if ( newSelector ) {
|
936 |
-
try {
|
937 |
-
push.apply( results,
|
938 |
-
newContext.querySelectorAll( newSelector )
|
939 |
-
);
|
940 |
-
return results;
|
941 |
-
} catch ( qsaError ) {
|
942 |
-
} finally {
|
943 |
-
if ( nid === expando ) {
|
944 |
-
context.removeAttribute( "id" );
|
945 |
-
}
|
946 |
-
}
|
947 |
-
}
|
948 |
-
}
|
949 |
-
}
|
950 |
-
}
|
951 |
-
|
952 |
-
// All others
|
953 |
-
return select( selector.replace( rtrim, "$1" ), context, results, seed );
|
954 |
-
}
|
955 |
-
|
956 |
-
/**
|
957 |
-
* Create key-value caches of limited size
|
958 |
-
* @returns {function(string, object)} Returns the Object data after storing it on itself with
|
959 |
-
* property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)
|
960 |
-
* deleting the oldest entry
|
961 |
-
*/
|
962 |
-
function createCache() {
|
963 |
-
var keys = [];
|
964 |
-
|
965 |
-
function cache( key, value ) {
|
966 |
-
// Use (key + " ") to avoid collision with native prototype properties (see Issue #157)
|
967 |
-
if ( keys.push( key + " " ) > Expr.cacheLength ) {
|
968 |
-
// Only keep the most recent entries
|
969 |
-
delete cache[ keys.shift() ];
|
970 |
-
}
|
971 |
-
return (cache[ key + " " ] = value);
|
972 |
-
}
|
973 |
-
return cache;
|
974 |
-
}
|
975 |
-
|
976 |
-
/**
|
977 |
-
* Mark a function for special use by Sizzle
|
978 |
-
* @param {Function} fn The function to mark
|
979 |
-
*/
|
980 |
-
function markFunction( fn ) {
|
981 |
-
fn[ expando ] = true;
|
982 |
-
return fn;
|
983 |
-
}
|
984 |
-
|
985 |
-
/**
|
986 |
-
* Support testing using an element
|
987 |
-
* @param {Function} fn Passed the created element and returns a boolean result
|
988 |
-
*/
|
989 |
-
function assert( fn ) {
|
990 |
-
var el = document.createElement("fieldset");
|
991 |
-
|
992 |
-
try {
|
993 |
-
return !!fn( el );
|
994 |
-
} catch (e) {
|
995 |
-
return false;
|
996 |
-
} finally {
|
997 |
-
// Remove from its parent by default
|
998 |
-
if ( el.parentNode ) {
|
999 |
-
el.parentNode.removeChild( el );
|
1000 |
-
}
|
1001 |
-
// release memory in IE
|
1002 |
-
el = null;
|
1003 |
-
}
|
1004 |
-
}
|
1005 |
-
|
1006 |
-
/**
|
1007 |
-
* Adds the same handler for all of the specified attrs
|
1008 |
-
* @param {String} attrs Pipe-separated list of attributes
|
1009 |
-
* @param {Function} handler The method that will be applied
|
1010 |
-
*/
|
1011 |
-
function addHandle( attrs, handler ) {
|
1012 |
-
var arr = attrs.split("|"),
|
1013 |
-
i = arr.length;
|
1014 |
-
|
1015 |
-
while ( i-- ) {
|
1016 |
-
Expr.attrHandle[ arr[i] ] = handler;
|
1017 |
-
}
|
1018 |
-
}
|
1019 |
-
|
1020 |
-
/**
|
1021 |
-
* Checks document order of two siblings
|
1022 |
-
* @param {Element} a
|
1023 |
-
* @param {Element} b
|
1024 |
-
* @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b
|
1025 |
-
*/
|
1026 |
-
function siblingCheck( a, b ) {
|
1027 |
-
var cur = b && a,
|
1028 |
-
diff = cur && a.nodeType === 1 && b.nodeType === 1 &&
|
1029 |
-
a.sourceIndex - b.sourceIndex;
|
1030 |
-
|
1031 |
-
// Use IE sourceIndex if available on both nodes
|
1032 |
-
if ( diff ) {
|
1033 |
-
return diff;
|
1034 |
-
}
|
1035 |
-
|
1036 |
-
// Check if b follows a
|
1037 |
-
if ( cur ) {
|
1038 |
-
while ( (cur = cur.nextSibling) ) {
|
1039 |
-
if ( cur === b ) {
|
1040 |
-
return -1;
|
1041 |
-
}
|
1042 |
-
}
|
1043 |
-
}
|
1044 |
-
|
1045 |
-
return a ? 1 : -1;
|
1046 |
-
}
|
1047 |
-
|
1048 |
-
/**
|
1049 |
-
* Returns a function to use in pseudos for input types
|
1050 |
-
* @param {String} type
|
1051 |
-
*/
|
1052 |
-
function createInputPseudo( type ) {
|
1053 |
-
return function( elem ) {
|
1054 |
-
var name = elem.nodeName.toLowerCase();
|
1055 |
-
return name === "input" && elem.type === type;
|
1056 |
-
};
|
1057 |
-
}
|
1058 |
-
|
1059 |
-
/**
|
1060 |
-
* Returns a function to use in pseudos for buttons
|
1061 |
-
* @param {String} type
|
1062 |
-
*/
|
1063 |
-
function createButtonPseudo( type ) {
|
1064 |
-
return function( elem ) {
|
1065 |
-
var name = elem.nodeName.toLowerCase();
|
1066 |
-
return (name === "input" || name === "button") && elem.type === type;
|
1067 |
-
};
|
1068 |
-
}
|
1069 |
-
|
1070 |
-
/**
|
1071 |
-
* Returns a function to use in pseudos for :enabled/:disabled
|
1072 |
-
* @param {Boolean} disabled true for :disabled; false for :enabled
|
1073 |
-
*/
|
1074 |
-
function createDisabledPseudo( disabled ) {
|
1075 |
-
|
1076 |
-
// Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable
|
1077 |
-
return function( elem ) {
|
1078 |
-
|
1079 |
-
// Only certain elements can match :enabled or :disabled
|
1080 |
-
// https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled
|
1081 |
-
// https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled
|
1082 |
-
if ( "form" in elem ) {
|
1083 |
-
|
1084 |
-
// Check for inherited disabledness on relevant non-disabled elements:
|
1085 |
-
// * listed form-associated elements in a disabled fieldset
|
1086 |
-
// https://html.spec.whatwg.org/multipage/forms.html#category-listed
|
1087 |
-
// https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled
|
1088 |
-
// * option elements in a disabled optgroup
|
1089 |
-
// https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled
|
1090 |
-
// All such elements have a "form" property.
|
1091 |
-
if ( elem.parentNode && elem.disabled === false ) {
|
1092 |
-
|
1093 |
-
// Option elements defer to a parent optgroup if present
|
1094 |
-
if ( "label" in elem ) {
|
1095 |
-
if ( "label" in elem.parentNode ) {
|
1096 |
-
return elem.parentNode.disabled === disabled;
|
1097 |
-
} else {
|
1098 |
-
return elem.disabled === disabled;
|
1099 |
-
}
|
1100 |
-
}
|
1101 |
-
|
1102 |
-
// Support: IE 6 - 11
|
1103 |
-
// Use the isDisabled shortcut property to check for disabled fieldset ancestors
|
1104 |
-
return elem.isDisabled === disabled ||
|
1105 |
-
|
1106 |
-
// Where there is no isDisabled, check manually
|
1107 |
-
/* jshint -W018 */
|
1108 |
-
elem.isDisabled !== !disabled &&
|
1109 |
-
disabledAncestor( elem ) === disabled;
|
1110 |
-
}
|
1111 |
-
|
1112 |
-
return elem.disabled === disabled;
|
1113 |
-
|
1114 |
-
// Try to winnow out elements that can't be disabled before trusting the disabled property.
|
1115 |
-
// Some victims get caught in our net (label, legend, menu, track), but it shouldn't
|
1116 |
-
// even exist on them, let alone have a boolean value.
|
1117 |
-
} else if ( "label" in elem ) {
|
1118 |
-
return elem.disabled === disabled;
|
1119 |
-
}
|
1120 |
-
|
1121 |
-
// Remaining elements are neither :enabled nor :disabled
|
1122 |
-
return false;
|
1123 |
-
};
|
1124 |
-
}
|
1125 |
-
|
1126 |
-
/**
|
1127 |
-
* Returns a function to use in pseudos for positionals
|
1128 |
-
* @param {Function} fn
|
1129 |
-
*/
|
1130 |
-
function createPositionalPseudo( fn ) {
|
1131 |
-
return markFunction(function( argument ) {
|
1132 |
-
argument = +argument;
|
1133 |
-
return markFunction(function( seed, matches ) {
|
1134 |
-
var j,
|
1135 |
-
matchIndexes = fn( [], seed.length, argument ),
|
1136 |
-
i = matchIndexes.length;
|
1137 |
-
|
1138 |
-
// Match elements found at the specified indexes
|
1139 |
-
while ( i-- ) {
|
1140 |
-
if ( seed[ (j = matchIndexes[i]) ] ) {
|
1141 |
-
seed[j] = !(matches[j] = seed[j]);
|
1142 |
-
}
|
1143 |
-
}
|
1144 |
-
});
|
1145 |
-
});
|
1146 |
-
}
|
1147 |
-
|
1148 |
-
/**
|
1149 |
-
* Checks a node for validity as a Sizzle context
|
1150 |
-
* @param {Element|Object=} context
|
1151 |
-
* @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value
|
1152 |
-
*/
|
1153 |
-
function testContext( context ) {
|
1154 |
-
return context && typeof context.getElementsByTagName !== "undefined" && context;
|
1155 |
-
}
|
1156 |
-
|
1157 |
-
// Expose support vars for convenience
|
1158 |
-
support = Sizzle.support = {};
|
1159 |
-
|
1160 |
-
/**
|
1161 |
-
* Detects XML nodes
|
1162 |
-
* @param {Element|Object} elem An element or a document
|
1163 |
-
* @returns {Boolean} True iff elem is a non-HTML XML node
|
1164 |
-
*/
|
1165 |
-
isXML = Sizzle.isXML = function( elem ) {
|
1166 |
-
// documentElement is verified for cases where it doesn't yet exist
|
1167 |
-
// (such as loading iframes in IE - #4833)
|
1168 |
-
var documentElement = elem && (elem.ownerDocument || elem).documentElement;
|
1169 |
-
return documentElement ? documentElement.nodeName !== "HTML" : false;
|
1170 |
-
};
|
1171 |
-
|
1172 |
-
/**
|
1173 |
-
* Sets document-related variables once based on the current document
|
1174 |
-
* @param {Element|Object} [doc] An element or document object to use to set the document
|
1175 |
-
* @returns {Object} Returns the current document
|
1176 |
-
*/
|
1177 |
-
setDocument = Sizzle.setDocument = function( node ) {
|
1178 |
-
var hasCompare, subWindow,
|
1179 |
-
doc = node ? node.ownerDocument || node : preferredDoc;
|
1180 |
-
|
1181 |
-
// Return early if doc is invalid or already selected
|
1182 |
-
if ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) {
|
1183 |
-
return document;
|
1184 |
-
}
|
1185 |
-
|
1186 |
-
// Update global variables
|
1187 |
-
document = doc;
|
1188 |
-
docElem = document.documentElement;
|
1189 |
-
documentIsHTML = !isXML( document );
|
1190 |
-
|
1191 |
-
// Support: IE 9-11, Edge
|
1192 |
-
// Accessing iframe documents after unload throws "permission denied" errors (jQuery #13936)
|
1193 |
-
if ( preferredDoc !== document &&
|
1194 |
-
(subWindow = document.defaultView) && subWindow.top !== subWindow ) {
|
1195 |
-
|
1196 |
-
// Support: IE 11, Edge
|
1197 |
-
if ( subWindow.addEventListener ) {
|
1198 |
-
subWindow.addEventListener( "unload", unloadHandler, false );
|
1199 |
-
|
1200 |
-
// Support: IE 9 - 10 only
|
1201 |
-
} else if ( subWindow.attachEvent ) {
|
1202 |
-
subWindow.attachEvent( "onunload", unloadHandler );
|
1203 |
-
}
|
1204 |
-
}
|
1205 |
-
|
1206 |
-
/* Attributes
|
1207 |
-
---------------------------------------------------------------------- */
|
1208 |
-
|
1209 |
-
// Support: IE<8
|
1210 |
-
// Verify that getAttribute really returns attributes and not properties
|
1211 |
-
// (excepting IE8 booleans)
|
1212 |
-
support.attributes = assert(function( el ) {
|
1213 |
-
el.className = "i";
|
1214 |
-
return !el.getAttribute("className");
|
1215 |
-
});
|
1216 |
-
|
1217 |
-
/* getElement(s)By*
|
1218 |
-
---------------------------------------------------------------------- */
|
1219 |
-
|
1220 |
-
// Check if getElementsByTagName("*") returns only elements
|
1221 |
-
support.getElementsByTagName = assert(function( el ) {
|
1222 |
-
el.appendChild( document.createComment("") );
|
1223 |
-
return !el.getElementsByTagName("*").length;
|
1224 |
-
});
|
1225 |
-
|
1226 |
-
// Support: IE<9
|
1227 |
-
support.getElementsByClassName = rnative.test( document.getElementsByClassName );
|
1228 |
-
|
1229 |
-
// Support: IE<10
|
1230 |
-
// Check if getElementById returns elements by name
|
1231 |
-
// The broken getElementById methods don't pick up programmatically-set names,
|
1232 |
-
// so use a roundabout getElementsByName test
|
1233 |
-
support.getById = assert(function( el ) {
|
1234 |
-
docElem.appendChild( el ).id = expando;
|
1235 |
-
return !document.getElementsByName || !document.getElementsByName( expando ).length;
|
1236 |
-
});
|
1237 |
-
|
1238 |
-
// ID filter and find
|
1239 |
-
if ( support.getById ) {
|
1240 |
-
Expr.filter["ID"] = function( id ) {
|
1241 |
-
var attrId = id.replace( runescape, funescape );
|
1242 |
-
return function( elem ) {
|
1243 |
-
return elem.getAttribute("id") === attrId;
|
1244 |
-
};
|
1245 |
-
};
|
1246 |
-
Expr.find["ID"] = function( id, context ) {
|
1247 |
-
if ( typeof context.getElementById !== "undefined" && documentIsHTML ) {
|
1248 |
-
var elem = context.getElementById( id );
|
1249 |
-
return elem ? [ elem ] : [];
|
1250 |
-
}
|
1251 |
-
};
|
1252 |
-
} else {
|
1253 |
-
Expr.filter["ID"] = function( id ) {
|
1254 |
-
var attrId = id.replace( runescape, funescape );
|
1255 |
-
return function( elem ) {
|
1256 |
-
var node = typeof elem.getAttributeNode !== "undefined" &&
|
1257 |
-
elem.getAttributeNode("id");
|
1258 |
-
return node && node.value === attrId;
|
1259 |
-
};
|
1260 |
-
};
|
1261 |
-
|
1262 |
-
// Support: IE 6 - 7 only
|
1263 |
-
// getElementById is not reliable as a find shortcut
|
1264 |
-
Expr.find["ID"] = function( id, context ) {
|
1265 |
-
if ( typeof context.getElementById !== "undefined" && documentIsHTML ) {
|
1266 |
-
var node, i, elems,
|
1267 |
-
elem = context.getElementById( id );
|
1268 |
-
|
1269 |
-
if ( elem ) {
|
1270 |
-
|
1271 |
-
// Verify the id attribute
|
1272 |
-
node = elem.getAttributeNode("id");
|
1273 |
-
if ( node && node.value === id ) {
|
1274 |
-
return [ elem ];
|
1275 |
-
}
|
1276 |
-
|
1277 |
-
// Fall back on getElementsByName
|
1278 |
-
elems = context.getElementsByName( id );
|
1279 |
-
i = 0;
|
1280 |
-
while ( (elem = elems[i++]) ) {
|
1281 |
-
node = elem.getAttributeNode("id");
|
1282 |
-
if ( node && node.value === id ) {
|
1283 |
-
return [ elem ];
|
1284 |
-
}
|
1285 |
-
}
|
1286 |
-
}
|
1287 |
-
|
1288 |
-
return [];
|
1289 |
-
}
|
1290 |
-
};
|
1291 |
-
}
|
1292 |
-
|
1293 |
-
// Tag
|
1294 |
-
Expr.find["TAG"] = support.getElementsByTagName ?
|
1295 |
-
function( tag, context ) {
|
1296 |
-
if ( typeof context.getElementsByTagName !== "undefined" ) {
|
1297 |
-
return context.getElementsByTagName( tag );
|
1298 |
-
|
1299 |
-
// DocumentFragment nodes don't have gEBTN
|
1300 |
-
} else if ( support.qsa ) {
|
1301 |
-
return context.querySelectorAll( tag );
|
1302 |
-
}
|
1303 |
-
} :
|
1304 |
-
|
1305 |
-
function( tag, context ) {
|
1306 |
-
var elem,
|
1307 |
-
tmp = [],
|
1308 |
-
i = 0,
|
1309 |
-
// By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too
|
1310 |
-
results = context.getElementsByTagName( tag );
|
1311 |
-
|
1312 |
-
// Filter out possible comments
|
1313 |
-
if ( tag === "*" ) {
|
1314 |
-
while ( (elem = results[i++]) ) {
|
1315 |
-
if ( elem.nodeType === 1 ) {
|
1316 |
-
tmp.push( elem );
|
1317 |
-
}
|
1318 |
-
}
|
1319 |
-
|
1320 |
-
return tmp;
|
1321 |
-
}
|
1322 |
-
return results;
|
1323 |
-
};
|
1324 |
-
|
1325 |
-
// Class
|
1326 |
-
Expr.find["CLASS"] = support.getElementsByClassName && function( className, context ) {
|
1327 |
-
if ( typeof context.getElementsByClassName !== "undefined" && documentIsHTML ) {
|
1328 |
-
return context.getElementsByClassName( className );
|
1329 |
-
}
|
1330 |
-
};
|
1331 |
-
|
1332 |
-
/* QSA/matchesSelector
|
1333 |
-
---------------------------------------------------------------------- */
|
1334 |
-
|
1335 |
-
// QSA and matchesSelector support
|
1336 |
-
|
1337 |
-
// matchesSelector(:active) reports false when true (IE9/Opera 11.5)
|
1338 |
-
rbuggyMatches = [];
|
1339 |
-
|
1340 |
-
// qSa(:focus) reports false when true (Chrome 21)
|
1341 |
-
// We allow this because of a bug in IE8/9 that throws an error
|
1342 |
-
// whenever `document.activeElement` is accessed on an iframe
|
1343 |
-
// So, we allow :focus to pass through QSA all the time to avoid the IE error
|
1344 |
-
// See https://bugs.jquery.com/ticket/13378
|
1345 |
-
rbuggyQSA = [];
|
1346 |
-
|
1347 |
-
if ( (support.qsa = rnative.test( document.querySelectorAll )) ) {
|
1348 |
-
// Build QSA regex
|
1349 |
-
// Regex strategy adopted from Diego Perini
|
1350 |
-
assert(function( el ) {
|
1351 |
-
// Select is set to empty string on purpose
|
1352 |
-
// This is to test IE's treatment of not explicitly
|
1353 |
-
// setting a boolean content attribute,
|
1354 |
-
// since its presence should be enough
|
1355 |
-
// https://bugs.jquery.com/ticket/12359
|
1356 |
-
docElem.appendChild( el ).innerHTML = "<a id='" + expando + "'></a>" +
|
1357 |
-
"<select id='" + expando + "-\r\\' msallowcapture=''>" +
|
1358 |
-
"<option selected=''></option></select>";
|
1359 |
-
|
1360 |
-
// Support: IE8, Opera 11-12.16
|
1361 |
-
// Nothing should be selected when empty strings follow ^= or $= or *=
|
1362 |
-
// The test attribute must be unknown in Opera but "safe" for WinRT
|
1363 |
-
// https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section
|
1364 |
-
if ( el.querySelectorAll("[msallowcapture^='']").length ) {
|
1365 |
-
rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" );
|
1366 |
-
}
|
1367 |
-
|
1368 |
-
// Support: IE8
|
1369 |
-
// Boolean attributes and "value" are not treated correctly
|
1370 |
-
if ( !el.querySelectorAll("[selected]").length ) {
|
1371 |
-
rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" );
|
1372 |
-
}
|
1373 |
-
|
1374 |
-
// Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+
|
1375 |
-
if ( !el.querySelectorAll( "[id~=" + expando + "-]" ).length ) {
|
1376 |
-
rbuggyQSA.push("~=");
|
1377 |
-
}
|
1378 |
-
|
1379 |
-
// Webkit/Opera - :checked should return selected option elements
|
1380 |
-
// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked
|
1381 |
-
// IE8 throws error here and will not see later tests
|
1382 |
-
if ( !el.querySelectorAll(":checked").length ) {
|
1383 |
-
rbuggyQSA.push(":checked");
|
1384 |
-
}
|
1385 |
-
|
1386 |
-
// Support: Safari 8+, iOS 8+
|
1387 |
-
// https://bugs.webkit.org/show_bug.cgi?id=136851
|
1388 |
-
// In-page `selector#id sibling-combinator selector` fails
|
1389 |
-
if ( !el.querySelectorAll( "a#" + expando + "+*" ).length ) {
|
1390 |
-
rbuggyQSA.push(".#.+[+~]");
|
1391 |
-
}
|
1392 |
-
});
|
1393 |
-
|
1394 |
-
assert(function( el ) {
|
1395 |
-
el.innerHTML = "<a href='' disabled='disabled'></a>" +
|
1396 |
-
"<select disabled='disabled'><option/></select>";
|
1397 |
-
|
1398 |
-
// Support: Windows 8 Native Apps
|
1399 |
-
// The type and name attributes are restricted during .innerHTML assignment
|
1400 |
-
var input = document.createElement("input");
|
1401 |
-
input.setAttribute( "type", "hidden" );
|
1402 |
-
el.appendChild( input ).setAttribute( "name", "D" );
|
1403 |
-
|
1404 |
-
// Support: IE8
|
1405 |
-
// Enforce case-sensitivity of name attribute
|
1406 |
-
if ( el.querySelectorAll("[name=d]").length ) {
|
1407 |
-
rbuggyQSA.push( "name" + whitespace + "*[*^$|!~]?=" );
|
1408 |
-
}
|
1409 |
-
|
1410 |
-
// FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)
|
1411 |
-
// IE8 throws error here and will not see later tests
|
1412 |
-
if ( el.querySelectorAll(":enabled").length !== 2 ) {
|
1413 |
-
rbuggyQSA.push( ":enabled", ":disabled" );
|
1414 |
-
}
|
1415 |
-
|
1416 |
-
// Support: IE9-11+
|
1417 |
-
// IE's :disabled selector does not pick up the children of disabled fieldsets
|
1418 |
-
docElem.appendChild( el ).disabled = true;
|
1419 |
-
if ( el.querySelectorAll(":disabled").length !== 2 ) {
|
1420 |
-
rbuggyQSA.push( ":enabled", ":disabled" );
|
1421 |
-
}
|
1422 |
-
|
1423 |
-
// Opera 10-11 does not throw on post-comma invalid pseudos
|
1424 |
-
el.querySelectorAll("*,:x");
|
1425 |
-
rbuggyQSA.push(",.*:");
|
1426 |
-
});
|
1427 |
-
}
|
1428 |
-
|
1429 |
-
if ( (support.matchesSelector = rnative.test( (matches = docElem.matches ||
|
1430 |
-
docElem.webkitMatchesSelector ||
|
1431 |
-
docElem.mozMatchesSelector ||
|
1432 |
-
docElem.oMatchesSelector ||
|
1433 |
-
docElem.msMatchesSelector) )) ) {
|
1434 |
-
|
1435 |
-
assert(function( el ) {
|
1436 |
-
// Check to see if it's possible to do matchesSelector
|
1437 |
-
// on a disconnected node (IE 9)
|
1438 |
-
support.disconnectedMatch = matches.call( el, "*" );
|
1439 |
-
|
1440 |
-
// This should fail with an exception
|
1441 |
-
// Gecko does not error, returns false instead
|
1442 |
-
matches.call( el, "[s!='']:x" );
|
1443 |
-
rbuggyMatches.push( "!=", pseudos );
|
1444 |
-
});
|
1445 |
-
}
|
1446 |
-
|
1447 |
-
rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join("|") );
|
1448 |
-
rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join("|") );
|
1449 |
-
|
1450 |
-
/* Contains
|
1451 |
-
---------------------------------------------------------------------- */
|
1452 |
-
hasCompare = rnative.test( docElem.compareDocumentPosition );
|
1453 |
-
|
1454 |
-
// Element contains another
|
1455 |
-
// Purposefully self-exclusive
|
1456 |
-
// As in, an element does not contain itself
|
1457 |
-
contains = hasCompare || rnative.test( docElem.contains ) ?
|
1458 |
-
function( a, b ) {
|
1459 |
-
var adown = a.nodeType === 9 ? a.documentElement : a,
|
1460 |
-
bup = b && b.parentNode;
|
1461 |
-
return a === bup || !!( bup && bup.nodeType === 1 && (
|
1462 |
-
adown.contains ?
|
1463 |
-
adown.contains( bup ) :
|
1464 |
-
a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16
|
1465 |
-
));
|
1466 |
-
} :
|
1467 |
-
function( a, b ) {
|
1468 |
-
if ( b ) {
|
1469 |
-
while ( (b = b.parentNode) ) {
|
1470 |
-
if ( b === a ) {
|
1471 |
-
return true;
|
1472 |
-
}
|
1473 |
-
}
|
1474 |
-
}
|
1475 |
-
return false;
|
1476 |
-
};
|
1477 |
-
|
1478 |
-
/* Sorting
|
1479 |
-
---------------------------------------------------------------------- */
|
1480 |
-
|
1481 |
-
// Document order sorting
|
1482 |
-
sortOrder = hasCompare ?
|
1483 |
-
function( a, b ) {
|
1484 |
-
|
1485 |
-
// Flag for duplicate removal
|
1486 |
-
if ( a === b ) {
|
1487 |
-
hasDuplicate = true;
|
1488 |
-
return 0;
|
1489 |
-
}
|
1490 |
-
|
1491 |
-
// Sort on method existence if only one input has compareDocumentPosition
|
1492 |
-
var compare = !a.compareDocumentPosition - !b.compareDocumentPosition;
|
1493 |
-
if ( compare ) {
|
1494 |
-
return compare;
|
1495 |
-
}
|
1496 |
-
|
1497 |
-
// Calculate position if both inputs belong to the same document
|
1498 |
-
compare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ?
|
1499 |
-
a.compareDocumentPosition( b ) :
|
1500 |
-
|
1501 |
-
// Otherwise we know they are disconnected
|
1502 |
-
1;
|
1503 |
-
|
1504 |
-
// Disconnected nodes
|
1505 |
-
if ( compare & 1 ||
|
1506 |
-
(!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) {
|
1507 |
-
|
1508 |
-
// Choose the first element that is related to our preferred document
|
1509 |
-
if ( a === document || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) {
|
1510 |
-
return -1;
|
1511 |
-
}
|
1512 |
-
if ( b === document || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) {
|
1513 |
-
return 1;
|
1514 |
-
}
|
1515 |
-
|
1516 |
-
// Maintain original order
|
1517 |
-
return sortInput ?
|
1518 |
-
( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :
|
1519 |
-
0;
|
1520 |
-
}
|
1521 |
-
|
1522 |
-
return compare & 4 ? -1 : 1;
|
1523 |
-
} :
|
1524 |
-
function( a, b ) {
|
1525 |
-
// Exit early if the nodes are identical
|
1526 |
-
if ( a === b ) {
|
1527 |
-
hasDuplicate = true;
|
1528 |
-
return 0;
|
1529 |
-
}
|
1530 |
-
|
1531 |
-
var cur,
|
1532 |
-
i = 0,
|
1533 |
-
aup = a.parentNode,
|
1534 |
-
bup = b.parentNode,
|
1535 |
-
ap = [ a ],
|
1536 |
-
bp = [ b ];
|
1537 |
-
|
1538 |
-
// Parentless nodes are either documents or disconnected
|
1539 |
-
if ( !aup || !bup ) {
|
1540 |
-
return a === document ? -1 :
|
1541 |
-
b === document ? 1 :
|
1542 |
-
aup ? -1 :
|
1543 |
-
bup ? 1 :
|
1544 |
-
sortInput ?
|
1545 |
-
( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :
|
1546 |
-
0;
|
1547 |
-
|
1548 |
-
// If the nodes are siblings, we can do a quick check
|
1549 |
-
} else if ( aup === bup ) {
|
1550 |
-
return siblingCheck( a, b );
|
1551 |
-
}
|
1552 |
-
|
1553 |
-
// Otherwise we need full lists of their ancestors for comparison
|
1554 |
-
cur = a;
|
1555 |
-
while ( (cur = cur.parentNode) ) {
|
1556 |
-
ap.unshift( cur );
|
1557 |
-
}
|
1558 |
-
cur = b;
|
1559 |
-
while ( (cur = cur.parentNode) ) {
|
1560 |
-
bp.unshift( cur );
|
1561 |
-
}
|
1562 |
-
|
1563 |
-
// Walk down the tree looking for a discrepancy
|
1564 |
-
while ( ap[i] === bp[i] ) {
|
1565 |
-
i++;
|
1566 |
-
}
|
1567 |
-
|
1568 |
-
return i ?
|
1569 |
-
// Do a sibling check if the nodes have a common ancestor
|
1570 |
-
siblingCheck( ap[i], bp[i] ) :
|
1571 |
-
|
1572 |
-
// Otherwise nodes in our document sort first
|
1573 |
-
ap[i] === preferredDoc ? -1 :
|
1574 |
-
bp[i] === preferredDoc ? 1 :
|
1575 |
-
0;
|
1576 |
-
};
|
1577 |
-
|
1578 |
-
return document;
|
1579 |
-
};
|
1580 |
-
|
1581 |
-
Sizzle.matches = function( expr, elements ) {
|
1582 |
-
return Sizzle( expr, null, null, elements );
|
1583 |
-
};
|
1584 |
-
|
1585 |
-
Sizzle.matchesSelector = function( elem, expr ) {
|
1586 |
-
// Set document vars if needed
|
1587 |
-
if ( ( elem.ownerDocument || elem ) !== document ) {
|
1588 |
-
setDocument( elem );
|
1589 |
-
}
|
1590 |
-
|
1591 |
-
// Make sure that attribute selectors are quoted
|
1592 |
-
expr = expr.replace( rattributeQuotes, "='$1']" );
|
1593 |
-
|
1594 |
-
if ( support.matchesSelector && documentIsHTML &&
|
1595 |
-
!compilerCache[ expr + " " ] &&
|
1596 |
-
( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&
|
1597 |
-
( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) {
|
1598 |
-
|
1599 |
-
try {
|
1600 |
-
var ret = matches.call( elem, expr );
|
1601 |
-
|
1602 |
-
// IE 9's matchesSelector returns false on disconnected nodes
|
1603 |
-
if ( ret || support.disconnectedMatch ||
|
1604 |
-
// As well, disconnected nodes are said to be in a document
|
1605 |
-
// fragment in IE 9
|
1606 |
-
elem.document && elem.document.nodeType !== 11 ) {
|
1607 |
-
return ret;
|
1608 |
-
}
|
1609 |
-
} catch (e) {}
|
1610 |
-
}
|
1611 |
-
|
1612 |
-
return Sizzle( expr, document, null, [ elem ] ).length > 0;
|
1613 |
-
};
|
1614 |
-
|
1615 |
-
Sizzle.contains = function( context, elem ) {
|
1616 |
-
// Set document vars if needed
|
1617 |
-
if ( ( context.ownerDocument || context ) !== document ) {
|
1618 |
-
setDocument( context );
|
1619 |
-
}
|
1620 |
-
return contains( context, elem );
|
1621 |
-
};
|
1622 |
-
|
1623 |
-
Sizzle.attr = function( elem, name ) {
|
1624 |
-
// Set document vars if needed
|
1625 |
-
if ( ( elem.ownerDocument || elem ) !== document ) {
|
1626 |
-
setDocument( elem );
|
1627 |
-
}
|
1628 |
-
|
1629 |
-
var fn = Expr.attrHandle[ name.toLowerCase() ],
|
1630 |
-
// Don't get fooled by Object.prototype properties (jQuery #13807)
|
1631 |
-
val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?
|
1632 |
-
fn( elem, name, !documentIsHTML ) :
|
1633 |
-
undefined;
|
1634 |
-
|
1635 |
-
return val !== undefined ?
|
1636 |
-
val :
|
1637 |
-
support.attributes || !documentIsHTML ?
|
1638 |
-
elem.getAttribute( name ) :
|
1639 |
-
(val = elem.getAttributeNode(name)) && val.specified ?
|
1640 |
-
val.value :
|
1641 |
-
null;
|
1642 |
-
};
|
1643 |
-
|
1644 |
-
Sizzle.escape = function( sel ) {
|
1645 |
-
return (sel + "").replace( rcssescape, fcssescape );
|
1646 |
-
};
|
1647 |
-
|
1648 |
-
Sizzle.error = function( msg ) {
|
1649 |
-
throw new Error( "Syntax error, unrecognized expression: " + msg );
|
1650 |
-
};
|
1651 |
-
|
1652 |
-
/**
|
1653 |
-
* Document sorting and removing duplicates
|
1654 |
-
* @param {ArrayLike} results
|
1655 |
-
*/
|
1656 |
-
Sizzle.uniqueSort = function( results ) {
|
1657 |
-
var elem,
|
1658 |
-
duplicates = [],
|
1659 |
-
j = 0,
|
1660 |
-
i = 0;
|
1661 |
-
|
1662 |
-
// Unless we *know* we can detect duplicates, assume their presence
|
1663 |
-
hasDuplicate = !support.detectDuplicates;
|
1664 |
-
sortInput = !support.sortStable && results.slice( 0 );
|
1665 |
-
results.sort( sortOrder );
|
1666 |
-
|
1667 |
-
if ( hasDuplicate ) {
|
1668 |
-
while ( (elem = results[i++]) ) {
|
1669 |
-
if ( elem === results[ i ] ) {
|
1670 |
-
j = duplicates.push( i );
|
1671 |
-
}
|
1672 |
-
}
|
1673 |
-
while ( j-- ) {
|
1674 |
-
results.splice( duplicates[ j ], 1 );
|
1675 |
-
}
|
1676 |
-
}
|
1677 |
-
|
1678 |
-
// Clear input after sorting to release objects
|
1679 |
-
// See https://github.com/jquery/sizzle/pull/225
|
1680 |
-
sortInput = null;
|
1681 |
-
|
1682 |
-
return results;
|
1683 |
-
};
|
1684 |
-
|
1685 |
-
/**
|
1686 |
-
* Utility function for retrieving the text value of an array of DOM nodes
|
1687 |
-
* @param {Array|Element} elem
|
1688 |
-
*/
|
1689 |
-
getText = Sizzle.getText = function( elem ) {
|
1690 |
-
var node,
|
1691 |
-
ret = "",
|
1692 |
-
i = 0,
|
1693 |
-
nodeType = elem.nodeType;
|
1694 |
-
|
1695 |
-
if ( !nodeType ) {
|
1696 |
-
// If no nodeType, this is expected to be an array
|
1697 |
-
while ( (node = elem[i++]) ) {
|
1698 |
-
// Do not traverse comment nodes
|
1699 |
-
ret += getText( node );
|
1700 |
-
}
|
1701 |
-
} else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {
|
1702 |
-
// Use textContent for elements
|
1703 |
-
// innerText usage removed for consistency of new lines (jQuery #11153)
|
1704 |
-
if ( typeof elem.textContent === "string" ) {
|
1705 |
-
return elem.textContent;
|
1706 |
-
} else {
|
1707 |
-
// Traverse its children
|
1708 |
-
for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {
|
1709 |
-
ret += getText( elem );
|
1710 |
-
}
|
1711 |
-
}
|
1712 |
-
} else if ( nodeType === 3 || nodeType === 4 ) {
|
1713 |
-
return elem.nodeValue;
|
1714 |
-
}
|
1715 |
-
// Do not include comment or processing instruction nodes
|
1716 |
-
|
1717 |
-
return ret;
|
1718 |
-
};
|
1719 |
-
|
1720 |
-
Expr = Sizzle.selectors = {
|
1721 |
-
|
1722 |
-
// Can be adjusted by the user
|
1723 |
-
cacheLength: 50,
|
1724 |
-
|
1725 |
-
createPseudo: markFunction,
|
1726 |
-
|
1727 |
-
match: matchExpr,
|
1728 |
-
|
1729 |
-
attrHandle: {},
|
1730 |
-
|
1731 |
-
find: {},
|
1732 |
-
|
1733 |
-
relative: {
|
1734 |
-
">": { dir: "parentNode", first: true },
|
1735 |
-
" ": { dir: "parentNode" },
|
1736 |
-
"+": { dir: "previousSibling", first: true },
|
1737 |
-
"~": { dir: "previousSibling" }
|
1738 |
-
},
|
1739 |
-
|
1740 |
-
preFilter: {
|
1741 |
-
"ATTR": function( match ) {
|
1742 |
-
match[1] = match[1].replace( runescape, funescape );
|
1743 |
-
|
1744 |
-
// Move the given value to match[3] whether quoted or unquoted
|
1745 |
-
match[3] = ( match[3] || match[4] || match[5] || "" ).replace( runescape, funescape );
|
1746 |
-
|
1747 |
-
if ( match[2] === "~=" ) {
|
1748 |
-
match[3] = " " + match[3] + " ";
|
1749 |
-
}
|
1750 |
-
|
1751 |
-
return match.slice( 0, 4 );
|
1752 |
-
},
|
1753 |
-
|
1754 |
-
"CHILD": function( match ) {
|
1755 |
-
/* matches from matchExpr["CHILD"]
|
1756 |
-
1 type (only|nth|...)
|
1757 |
-
2 what (child|of-type)
|
1758 |
-
3 argument (even|odd|\d*|\d*n([+-]\d+)?|...)
|
1759 |
-
4 xn-component of xn+y argument ([+-]?\d*n|)
|
1760 |
-
5 sign of xn-component
|
1761 |
-
6 x of xn-component
|
1762 |
-
7 sign of y-component
|
1763 |
-
8 y of y-component
|
1764 |
-
*/
|
1765 |
-
match[1] = match[1].toLowerCase();
|
1766 |
-
|
1767 |
-
if ( match[1].slice( 0, 3 ) === "nth" ) {
|
1768 |
-
// nth-* requires argument
|
1769 |
-
if ( !match[3] ) {
|
1770 |
-
Sizzle.error( match[0] );
|
1771 |
-
}
|
1772 |
-
|
1773 |
-
// numeric x and y parameters for Expr.filter.CHILD
|
1774 |
-
// remember that false/true cast respectively to 0/1
|
1775 |
-
match[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === "even" || match[3] === "odd" ) );
|
1776 |
-
match[5] = +( ( match[7] + match[8] ) || match[3] === "odd" );
|
1777 |
-
|
1778 |
-
// other types prohibit arguments
|
1779 |
-
} else if ( match[3] ) {
|
1780 |
-
Sizzle.error( match[0] );
|
1781 |
-
}
|
1782 |
-
|
1783 |
-
return match;
|
1784 |
-
},
|
1785 |
-
|
1786 |
-
"PSEUDO": function( match ) {
|
1787 |
-
var excess,
|
1788 |
-
unquoted = !match[6] && match[2];
|
1789 |
-
|
1790 |
-
if ( matchExpr["CHILD"].test( match[0] ) ) {
|
1791 |
-
return null;
|
1792 |
-
}
|
1793 |
-
|
1794 |
-
// Accept quoted arguments as-is
|
1795 |
-
if ( match[3] ) {
|
1796 |
-
match[2] = match[4] || match[5] || "";
|
1797 |
-
|
1798 |
-
// Strip excess characters from unquoted arguments
|
1799 |
-
} else if ( unquoted && rpseudo.test( unquoted ) &&
|
1800 |
-
// Get excess from tokenize (recursively)
|
1801 |
-
(excess = tokenize( unquoted, true )) &&
|
1802 |
-
// advance to the next closing parenthesis
|
1803 |
-
(excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length) ) {
|
1804 |
-
|
1805 |
-
// excess is a negative index
|
1806 |
-
match[0] = match[0].slice( 0, excess );
|
1807 |
-
match[2] = unquoted.slice( 0, excess );
|
1808 |
-
}
|
1809 |
-
|
1810 |
-
// Return only captures needed by the pseudo filter method (type and argument)
|
1811 |
-
return match.slice( 0, 3 );
|
1812 |
-
}
|
1813 |
-
},
|
1814 |
-
|
1815 |
-
filter: {
|
1816 |
-
|
1817 |
-
"TAG": function( nodeNameSelector ) {
|
1818 |
-
var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();
|
1819 |
-
return nodeNameSelector === "*" ?
|
1820 |
-
function() { return true; } :
|
1821 |
-
function( elem ) {
|
1822 |
-
return elem.nodeName && elem.nodeName.toLowerCase() === nodeName;
|
1823 |
-
};
|
1824 |
-
},
|
1825 |
-
|
1826 |
-
"CLASS": function( className ) {
|
1827 |
-
var pattern = classCache[ className + " " ];
|
1828 |
-
|
1829 |
-
return pattern ||
|
1830 |
-
(pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) &&
|
1831 |
-
classCache( className, function( elem ) {
|
1832 |
-
return pattern.test( typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== "undefined" && elem.getAttribute("class") || "" );
|
1833 |
-
});
|
1834 |
-
},
|
1835 |
-
|
1836 |
-
"ATTR": function( name, operator, check ) {
|
1837 |
-
return function( elem ) {
|
1838 |
-
var result = Sizzle.attr( elem, name );
|
1839 |
-
|
1840 |
-
if ( result == null ) {
|
1841 |
-
return operator === "!=";
|
1842 |
-
}
|
1843 |
-
if ( !operator ) {
|
1844 |
-
return true;
|
1845 |
-
}
|
1846 |
-
|
1847 |
-
result += "";
|
1848 |
-
|
1849 |
-
return operator === "=" ? result === check :
|
1850 |
-
operator === "!=" ? result !== check :
|
1851 |
-
operator === "^=" ? check && result.indexOf( check ) === 0 :
|
1852 |
-
operator === "*=" ? check && result.indexOf( check ) > -1 :
|
1853 |
-
operator === "$=" ? check && result.slice( -check.length ) === check :
|
1854 |
-
operator === "~=" ? ( " " + result.replace( rwhitespace, " " ) + " " ).indexOf( check ) > -1 :
|
1855 |
-
operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" :
|
1856 |
-
false;
|
1857 |
-
};
|
1858 |
-
},
|
1859 |
-
|
1860 |
-
"CHILD": function( type, what, argument, first, last ) {
|
1861 |
-
var simple = type.slice( 0, 3 ) !== "nth",
|
1862 |
-
forward = type.slice( -4 ) !== "last",
|
1863 |
-
ofType = what === "of-type";
|
1864 |
-
|
1865 |
-
return first === 1 && last === 0 ?
|
1866 |
-
|
1867 |
-
// Shortcut for :nth-*(n)
|
1868 |
-
function( elem ) {
|
1869 |
-
return !!elem.parentNode;
|
1870 |
-
} :
|
1871 |
-
|
1872 |
-
function( elem, context, xml ) {
|
1873 |
-
var cache, uniqueCache, outerCache, node, nodeIndex, start,
|
1874 |
-
dir = simple !== forward ? "nextSibling" : "previousSibling",
|
1875 |
-
parent = elem.parentNode,
|
1876 |
-
name = ofType && elem.nodeName.toLowerCase(),
|
1877 |
-
useCache = !xml && !ofType,
|
1878 |
-
diff = false;
|
1879 |
-
|
1880 |
-
if ( parent ) {
|
1881 |
-
|
1882 |
-
// :(first|last|only)-(child|of-type)
|
1883 |
-
if ( simple ) {
|
1884 |
-
while ( dir ) {
|
1885 |
-
node = elem;
|
1886 |
-
while ( (node = node[ dir ]) ) {
|
1887 |
-
if ( ofType ?
|
1888 |
-
node.nodeName.toLowerCase() === name :
|
1889 |
-
node.nodeType === 1 ) {
|
1890 |
-
|
1891 |
-
return false;
|
1892 |
-
}
|
1893 |
-
}
|
1894 |
-
// Reverse direction for :only-* (if we haven't yet done so)
|
1895 |
-
start = dir = type === "only" && !start && "nextSibling";
|
1896 |
-
}
|
1897 |
-
return true;
|
1898 |
-
}
|
1899 |
-
|
1900 |
-
start = [ forward ? parent.firstChild : parent.lastChild ];
|
1901 |
-
|
1902 |
-
// non-xml :nth-child(...) stores cache data on `parent`
|
1903 |
-
if ( forward && useCache ) {
|
1904 |
-
|
1905 |
-
// Seek `elem` from a previously-cached index
|
1906 |
-
|
1907 |
-
// ...in a gzip-friendly way
|
1908 |
-
node = parent;
|
1909 |
-
outerCache = node[ expando ] || (node[ expando ] = {});
|
1910 |
-
|
1911 |
-
// Support: IE <9 only
|
1912 |
-
// Defend against cloned attroperties (jQuery gh-1709)
|
1913 |
-
uniqueCache = outerCache[ node.uniqueID ] ||
|
1914 |
-
(outerCache[ node.uniqueID ] = {});
|
1915 |
-
|
1916 |
-
cache = uniqueCache[ type ] || [];
|
1917 |
-
nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];
|
1918 |
-
diff = nodeIndex && cache[ 2 ];
|
1919 |
-
node = nodeIndex && parent.childNodes[ nodeIndex ];
|
1920 |
-
|
1921 |
-
while ( (node = ++nodeIndex && node && node[ dir ] ||
|
1922 |
-
|
1923 |
-
// Fallback to seeking `elem` from the start
|
1924 |
-
(diff = nodeIndex = 0) || start.pop()) ) {
|
1925 |
-
|
1926 |
-
// When found, cache indexes on `parent` and break
|
1927 |
-
if ( node.nodeType === 1 && ++diff && node === elem ) {
|
1928 |
-
uniqueCache[ type ] = [ dirruns, nodeIndex, diff ];
|
1929 |
-
break;
|
1930 |
-
}
|
1931 |
-
}
|
1932 |
-
|
1933 |
-
} else {
|
1934 |
-
// Use previously-cached element index if available
|
1935 |
-
if ( useCache ) {
|
1936 |
-
// ...in a gzip-friendly way
|
1937 |
-
node = elem;
|
1938 |
-
outerCache = node[ expando ] || (node[ expando ] = {});
|
1939 |
-
|
1940 |
-
// Support: IE <9 only
|
1941 |
-
// Defend against cloned attroperties (jQuery gh-1709)
|
1942 |
-
uniqueCache = outerCache[ node.uniqueID ] ||
|
1943 |
-
(outerCache[ node.uniqueID ] = {});
|
1944 |
-
|
1945 |
-
cache = uniqueCache[ type ] || [];
|
1946 |
-
nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];
|
1947 |
-
diff = nodeIndex;
|
1948 |
-
}
|
1949 |
-
|
1950 |
-
// xml :nth-child(...)
|
1951 |
-
// or :nth-last-child(...) or :nth(-last)?-of-type(...)
|
1952 |
-
if ( diff === false ) {
|
1953 |
-
// Use the same loop as above to seek `elem` from the start
|
1954 |
-
while ( (node = ++nodeIndex && node && node[ dir ] ||
|
1955 |
-
(diff = nodeIndex = 0) || start.pop()) ) {
|
1956 |
-
|
1957 |
-
if ( ( ofType ?
|
1958 |
-
node.nodeName.toLowerCase() === name :
|
1959 |
-
node.nodeType === 1 ) &&
|
1960 |
-
++diff ) {
|
1961 |
-
|
1962 |
-
// Cache the index of each encountered element
|
1963 |
-
if ( useCache ) {
|
1964 |
-
outerCache = node[ expando ] || (node[ expando ] = {});
|
1965 |
-
|
1966 |
-
// Support: IE <9 only
|
1967 |
-
// Defend against cloned attroperties (jQuery gh-1709)
|
1968 |
-
uniqueCache = outerCache[ node.uniqueID ] ||
|
1969 |
-
(outerCache[ node.uniqueID ] = {});
|
1970 |
-
|
1971 |
-
uniqueCache[ type ] = [ dirruns, diff ];
|
1972 |
-
}
|
1973 |
-
|
1974 |
-
if ( node === elem ) {
|
1975 |
-
break;
|
1976 |
-
}
|
1977 |
-
}
|
1978 |
-
}
|
1979 |
-
}
|
1980 |
-
}
|
1981 |
-
|
1982 |
-
// Incorporate the offset, then check against cycle size
|
1983 |
-
diff -= last;
|
1984 |
-
return diff === first || ( diff % first === 0 && diff / first >= 0 );
|
1985 |
-
}
|
1986 |
-
};
|
1987 |
-
},
|
1988 |
-
|
1989 |
-
"PSEUDO": function( pseudo, argument ) {
|
1990 |
-
// pseudo-class names are case-insensitive
|
1991 |
-
// http://www.w3.org/TR/selectors/#pseudo-classes
|
1992 |
-
// Prioritize by case sensitivity in case custom pseudos are added with uppercase letters
|
1993 |
-
// Remember that setFilters inherits from pseudos
|
1994 |
-
var args,
|
1995 |
-
fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||
|
1996 |
-
Sizzle.error( "unsupported pseudo: " + pseudo );
|
1997 |
-
|
1998 |
-
// The user may use createPseudo to indicate that
|
1999 |
-
// arguments are needed to create the filter function
|
2000 |
-
// just as Sizzle does
|
2001 |
-
if ( fn[ expando ] ) {
|
2002 |
-
return fn( argument );
|
2003 |
-
}
|
2004 |
-
|
2005 |
-
// But maintain support for old signatures
|
2006 |
-
if ( fn.length > 1 ) {
|
2007 |
-
args = [ pseudo, pseudo, "", argument ];
|
2008 |
-
return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?
|
2009 |
-
markFunction(function( seed, matches ) {
|
2010 |
-
var idx,
|
2011 |
-
matched = fn( seed, argument ),
|
2012 |
-
i = matched.length;
|
2013 |
-
while ( i-- ) {
|
2014 |
-
idx = indexOf( seed, matched[i] );
|
2015 |
-
seed[ idx ] = !( matches[ idx ] = matched[i] );
|
2016 |
-
}
|
2017 |
-
}) :
|
2018 |
-
function( elem ) {
|
2019 |
-
return fn( elem, 0, args );
|
2020 |
-
};
|
2021 |
-
}
|
2022 |
-
|
2023 |
-
return fn;
|
2024 |
-
}
|
2025 |
-
},
|
2026 |
-
|
2027 |
-
pseudos: {
|
2028 |
-
// Potentially complex pseudos
|
2029 |
-
"not": markFunction(function( selector ) {
|
2030 |
-
// Trim the selector passed to compile
|
2031 |
-
// to avoid treating leading and trailing
|
2032 |
-
// spaces as combinators
|
2033 |
-
var input = [],
|
2034 |
-
results = [],
|
2035 |
-
matcher = compile( selector.replace( rtrim, "$1" ) );
|
2036 |
-
|
2037 |
-
return matcher[ expando ] ?
|
2038 |
-
markFunction(function( seed, matches, context, xml ) {
|
2039 |
-
var elem,
|
2040 |
-
unmatched = matcher( seed, null, xml, [] ),
|
2041 |
-
i = seed.length;
|
2042 |
-
|
2043 |
-
// Match elements unmatched by `matcher`
|
2044 |
-
while ( i-- ) {
|
2045 |
-
if ( (elem = unmatched[i]) ) {
|
2046 |
-
seed[i] = !(matches[i] = elem);
|
2047 |
-
}
|
2048 |
-
}
|
2049 |
-
}) :
|
2050 |
-
function( elem, context, xml ) {
|
2051 |
-
input[0] = elem;
|
2052 |
-
matcher( input, null, xml, results );
|
2053 |
-
// Don't keep the element (issue #299)
|
2054 |
-
input[0] = null;
|
2055 |
-
return !results.pop();
|
2056 |
-
};
|
2057 |
-
}),
|
2058 |
-
|
2059 |
-
"has": markFunction(function( selector ) {
|
2060 |
-
return function( elem ) {
|
2061 |
-
return Sizzle( selector, elem ).length > 0;
|
2062 |
-
};
|
2063 |
-
}),
|
2064 |
-
|
2065 |
-
"contains": markFunction(function( text ) {
|
2066 |
-
text = text.replace( runescape, funescape );
|
2067 |
-
return function( elem ) {
|
2068 |
-
return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1;
|
2069 |
-
};
|
2070 |
-
}),
|
2071 |
-
|
2072 |
-
// "Whether an element is represented by a :lang() selector
|
2073 |
-
// is based solely on the element's language value
|
2074 |
-
// being equal to the identifier C,
|
2075 |
-
// or beginning with the identifier C immediately followed by "-".
|
2076 |
-
// The matching of C against the element's language value is performed case-insensitively.
|
2077 |
-
// The identifier C does not have to be a valid language name."
|
2078 |
-
// http://www.w3.org/TR/selectors/#lang-pseudo
|
2079 |
-
"lang": markFunction( function( lang ) {
|
2080 |
-
// lang value must be a valid identifier
|
2081 |
-
if ( !ridentifier.test(lang || "") ) {
|
2082 |
-
Sizzle.error( "unsupported lang: " + lang );
|
2083 |
-
}
|
2084 |
-
lang = lang.replace( runescape, funescape ).toLowerCase();
|
2085 |
-
return function( elem ) {
|
2086 |
-
var elemLang;
|
2087 |
-
do {
|
2088 |
-
if ( (elemLang = documentIsHTML ?
|
2089 |
-
elem.lang :
|
2090 |
-
elem.getAttribute("xml:lang") || elem.getAttribute("lang")) ) {
|
2091 |
-
|
2092 |
-
elemLang = elemLang.toLowerCase();
|
2093 |
-
return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0;
|
2094 |
-
}
|
2095 |
-
} while ( (elem = elem.parentNode) && elem.nodeType === 1 );
|
2096 |
-
return false;
|
2097 |
-
};
|
2098 |
-
}),
|
2099 |
-
|
2100 |
-
// Miscellaneous
|
2101 |
-
"target": function( elem ) {
|
2102 |
-
var hash = window.location && window.location.hash;
|
2103 |
-
return hash && hash.slice( 1 ) === elem.id;
|
2104 |
-
},
|
2105 |
-
|
2106 |
-
"root": function( elem ) {
|
2107 |
-
return elem === docElem;
|
2108 |
-
},
|
2109 |
-
|
2110 |
-
"focus": function( elem ) {
|
2111 |
-
return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex);
|
2112 |
-
},
|
2113 |
-
|
2114 |
-
// Boolean properties
|
2115 |
-
"enabled": createDisabledPseudo( false ),
|
2116 |
-
"disabled": createDisabledPseudo( true ),
|
2117 |
-
|
2118 |
-
"checked": function( elem ) {
|
2119 |
-
// In CSS3, :checked should return both checked and selected elements
|
2120 |
-
// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked
|
2121 |
-
var nodeName = elem.nodeName.toLowerCase();
|
2122 |
-
return (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected);
|
2123 |
-
},
|
2124 |
-
|
2125 |
-
"selected": function( elem ) {
|
2126 |
-
// Accessing this property makes selected-by-default
|
2127 |
-
// options in Safari work properly
|
2128 |
-
if ( elem.parentNode ) {
|
2129 |
-
elem.parentNode.selectedIndex;
|
2130 |
-
}
|
2131 |
-
|
2132 |
-
return elem.selected === true;
|
2133 |
-
},
|
2134 |
-
|
2135 |
-
// Contents
|
2136 |
-
"empty": function( elem ) {
|
2137 |
-
// http://www.w3.org/TR/selectors/#empty-pseudo
|
2138 |
-
// :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),
|
2139 |
-
// but not by others (comment: 8; processing instruction: 7; etc.)
|
2140 |
-
// nodeType < 6 works because attributes (2) do not appear as children
|
2141 |
-
for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {
|
2142 |
-
if ( elem.nodeType < 6 ) {
|
2143 |
-
return false;
|
2144 |
-
}
|
2145 |
-
}
|
2146 |
-
return true;
|
2147 |
-
},
|
2148 |
-
|
2149 |
-
"parent": function( elem ) {
|
2150 |
-
return !Expr.pseudos["empty"]( elem );
|
2151 |
-
},
|
2152 |
-
|
2153 |
-
// Element/input types
|
2154 |
-
"header": function( elem ) {
|
2155 |
-
return rheader.test( elem.nodeName );
|
2156 |
-
},
|
2157 |
-
|
2158 |
-
"input": function( elem ) {
|
2159 |
-
return rinputs.test( elem.nodeName );
|
2160 |
-
},
|
2161 |
-
|
2162 |
-
"button": function( elem ) {
|
2163 |
-
var name = elem.nodeName.toLowerCase();
|
2164 |
-
return name === "input" && elem.type === "button" || name === "button";
|
2165 |
-
},
|
2166 |
-
|
2167 |
-
"text": function( elem ) {
|
2168 |
-
var attr;
|
2169 |
-
return elem.nodeName.toLowerCase() === "input" &&
|
2170 |
-
elem.type === "text" &&
|
2171 |
-
|
2172 |
-
// Support: IE<8
|
2173 |
-
// New HTML5 attribute values (e.g., "search") appear with elem.type === "text"
|
2174 |
-
( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === "text" );
|
2175 |
-
},
|
2176 |
-
|
2177 |
-
// Position-in-collection
|
2178 |
-
"first": createPositionalPseudo(function() {
|
2179 |
-
return [ 0 ];
|
2180 |
-
}),
|
2181 |
-
|
2182 |
-
"last": createPositionalPseudo(function( matchIndexes, length ) {
|
2183 |
-
return [ length - 1 ];
|
2184 |
-
}),
|
2185 |
-
|
2186 |
-
"eq": createPositionalPseudo(function( matchIndexes, length, argument ) {
|
2187 |
-
return [ argument < 0 ? argument + length : argument ];
|
2188 |
-
}),
|
2189 |
-
|
2190 |
-
"even": createPositionalPseudo(function( matchIndexes, length ) {
|
2191 |
-
var i = 0;
|
2192 |
-
for ( ; i < length; i += 2 ) {
|
2193 |
-
matchIndexes.push( i );
|
2194 |
-
}
|
2195 |
-
return matchIndexes;
|
2196 |
-
}),
|
2197 |
-
|
2198 |
-
"odd": createPositionalPseudo(function( matchIndexes, length ) {
|
2199 |
-
var i = 1;
|
2200 |
-
for ( ; i < length; i += 2 ) {
|
2201 |
-
matchIndexes.push( i );
|
2202 |
-
}
|
2203 |
-
return matchIndexes;
|
2204 |
-
}),
|
2205 |
-
|
2206 |
-
"lt": createPositionalPseudo(function( matchIndexes, length, argument ) {
|
2207 |
-
var i = argument < 0 ? argument + length : argument;
|
2208 |
-
for ( ; --i >= 0; ) {
|
2209 |
-
matchIndexes.push( i );
|
2210 |
-
}
|
2211 |
-
return matchIndexes;
|
2212 |
-
}),
|
2213 |
-
|
2214 |
-
"gt": createPositionalPseudo(function( matchIndexes, length, argument ) {
|
2215 |
-
var i = argument < 0 ? argument + length : argument;
|
2216 |
-
for ( ; ++i < length; ) {
|
2217 |
-
matchIndexes.push( i );
|
2218 |
-
}
|
2219 |
-
return matchIndexes;
|
2220 |
-
})
|
2221 |
-
}
|
2222 |
-
};
|
2223 |
-
|
2224 |
-
Expr.pseudos["nth"] = Expr.pseudos["eq"];
|
2225 |
-
|
2226 |
-
// Add button/input type pseudos
|
2227 |
-
for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {
|
2228 |
-
Expr.pseudos[ i ] = createInputPseudo( i );
|
2229 |
-
}
|
2230 |
-
for ( i in { submit: true, reset: true } ) {
|
2231 |
-
Expr.pseudos[ i ] = createButtonPseudo( i );
|
2232 |
-
}
|
2233 |
-
|
2234 |
-
// Easy API for creating new setFilters
|
2235 |
-
function setFilters() {}
|
2236 |
-
setFilters.prototype = Expr.filters = Expr.pseudos;
|
2237 |
-
Expr.setFilters = new setFilters();
|
2238 |
-
|
2239 |
-
tokenize = Sizzle.tokenize = function( selector, parseOnly ) {
|
2240 |
-
var matched, match, tokens, type,
|
2241 |
-
soFar, groups, preFilters,
|
2242 |
-
cached = tokenCache[ selector + " " ];
|
2243 |
-
|
2244 |
-
if ( cached ) {
|
2245 |
-
return parseOnly ? 0 : cached.slice( 0 );
|
2246 |
-
}
|
2247 |
-
|
2248 |
-
soFar = selector;
|
2249 |
-
groups = [];
|
2250 |
-
preFilters = Expr.preFilter;
|
2251 |
-
|
2252 |
-
while ( soFar ) {
|
2253 |
-
|
2254 |
-
// Comma and first run
|
2255 |
-
if ( !matched || (match = rcomma.exec( soFar )) ) {
|
2256 |
-
if ( match ) {
|
2257 |
-
// Don't consume trailing commas as valid
|
2258 |
-
soFar = soFar.slice( match[0].length ) || soFar;
|
2259 |
-
}
|
2260 |
-
groups.push( (tokens = []) );
|
2261 |
-
}
|
2262 |
-
|
2263 |
-
matched = false;
|
2264 |
-
|
2265 |
-
// Combinators
|
2266 |
-
if ( (match = rcombinators.exec( soFar )) ) {
|
2267 |
-
matched = match.shift();
|
2268 |
-
tokens.push({
|
2269 |
-
value: matched,
|
2270 |
-
// Cast descendant combinators to space
|
2271 |
-
type: match[0].replace( rtrim, " " )
|
2272 |
-
});
|
2273 |
-
soFar = soFar.slice( matched.length );
|
2274 |
-
}
|
2275 |
-
|
2276 |
-
// Filters
|
2277 |
-
for ( type in Expr.filter ) {
|
2278 |
-
if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] ||
|
2279 |
-
(match = preFilters[ type ]( match ))) ) {
|
2280 |
-
matched = match.shift();
|
2281 |
-
tokens.push({
|
2282 |
-
value: matched,
|
2283 |
-
type: type,
|
2284 |
-
matches: match
|
2285 |
-
});
|
2286 |
-
soFar = soFar.slice( matched.length );
|
2287 |
-
}
|
2288 |
-
}
|
2289 |
-
|
2290 |
-
if ( !matched ) {
|
2291 |
-
break;
|
2292 |
-
}
|
2293 |
-
}
|
2294 |
-
|
2295 |
-
// Return the length of the invalid excess
|
2296 |
-
// if we're just parsing
|
2297 |
-
// Otherwise, throw an error or return tokens
|
2298 |
-
return parseOnly ?
|
2299 |
-
soFar.length :
|
2300 |
-
soFar ?
|
2301 |
-
Sizzle.error( selector ) :
|
2302 |
-
// Cache the tokens
|
2303 |
-
tokenCache( selector, groups ).slice( 0 );
|
2304 |
-
};
|
2305 |
-
|
2306 |
-
function toSelector( tokens ) {
|
2307 |
-
var i = 0,
|
2308 |
-
len = tokens.length,
|
2309 |
-
selector = "";
|
2310 |
-
for ( ; i < len; i++ ) {
|
2311 |
-
selector += tokens[i].value;
|
2312 |
-
}
|
2313 |
-
return selector;
|
2314 |
-
}
|
2315 |
-
|
2316 |
-
function addCombinator( matcher, combinator, base ) {
|
2317 |
-
var dir = combinator.dir,
|
2318 |
-
skip = combinator.next,
|
2319 |
-
key = skip || dir,
|
2320 |
-
checkNonElements = base && key === "parentNode",
|
2321 |
-
doneName = done++;
|
2322 |
-
|
2323 |
-
return combinator.first ?
|
2324 |
-
// Check against closest ancestor/preceding element
|
2325 |
-
function( elem, context, xml ) {
|
2326 |
-
while ( (elem = elem[ dir ]) ) {
|
2327 |
-
if ( elem.nodeType === 1 || checkNonElements ) {
|
2328 |
-
return matcher( elem, context, xml );
|
2329 |
-
}
|
2330 |
-
}
|
2331 |
-
return false;
|
2332 |
-
} :
|
2333 |
-
|
2334 |
-
// Check against all ancestor/preceding elements
|
2335 |
-
function( elem, context, xml ) {
|
2336 |
-
var oldCache, uniqueCache, outerCache,
|
2337 |
-
newCache = [ dirruns, doneName ];
|
2338 |
-
|
2339 |
-
// We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching
|
2340 |
-
if ( xml ) {
|
2341 |
-
while ( (elem = elem[ dir ]) ) {
|
2342 |
-
if ( elem.nodeType === 1 || checkNonElements ) {
|
2343 |
-
if ( matcher( elem, context, xml ) ) {
|
2344 |
-
return true;
|
2345 |
-
}
|
2346 |
-
}
|
2347 |
-
}
|
2348 |
-
} else {
|
2349 |
-
while ( (elem = elem[ dir ]) ) {
|
2350 |
-
if ( elem.nodeType === 1 || checkNonElements ) {
|
2351 |
-
outerCache = elem[ expando ] || (elem[ expando ] = {});
|
2352 |
-
|
2353 |
-
// Support: IE <9 only
|
2354 |
-
// Defend against cloned attroperties (jQuery gh-1709)
|
2355 |
-
uniqueCache = outerCache[ elem.uniqueID ] || (outerCache[ elem.uniqueID ] = {});
|
2356 |
-
|
2357 |
-
if ( skip && skip === elem.nodeName.toLowerCase() ) {
|
2358 |
-
elem = elem[ dir ] || elem;
|
2359 |
-
} else if ( (oldCache = uniqueCache[ key ]) &&
|
2360 |
-
oldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {
|
2361 |
-
|
2362 |
-
// Assign to newCache so results back-propagate to previous elements
|
2363 |
-
return (newCache[ 2 ] = oldCache[ 2 ]);
|
2364 |
-
} else {
|
2365 |
-
// Reuse newcache so results back-propagate to previous elements
|
2366 |
-
uniqueCache[ key ] = newCache;
|
2367 |
-
|
2368 |
-
// A match means we're done; a fail means we have to keep checking
|
2369 |
-
if ( (newCache[ 2 ] = matcher( elem, context, xml )) ) {
|
2370 |
-
return true;
|
2371 |
-
}
|
2372 |
-
}
|
2373 |
-
}
|
2374 |
-
}
|
2375 |
-
}
|
2376 |
-
return false;
|
2377 |
-
};
|
2378 |
-
}
|
2379 |
-
|
2380 |
-
function elementMatcher( matchers ) {
|
2381 |
-
return matchers.length > 1 ?
|
2382 |
-
function( elem, context, xml ) {
|
2383 |
-
var i = matchers.length;
|
2384 |
-
while ( i-- ) {
|
2385 |
-
if ( !matchers[i]( elem, context, xml ) ) {
|
2386 |
-
return false;
|
2387 |
-
}
|
2388 |
-
}
|
2389 |
-
return true;
|
2390 |
-
} :
|
2391 |
-
matchers[0];
|
2392 |
-
}
|
2393 |
-
|
2394 |
-
function multipleContexts( selector, contexts, results ) {
|
2395 |
-
var i = 0,
|
2396 |
-
len = contexts.length;
|
2397 |
-
for ( ; i < len; i++ ) {
|
2398 |
-
Sizzle( selector, contexts[i], results );
|
2399 |
-
}
|
2400 |
-
return results;
|
2401 |
-
}
|
2402 |
-
|
2403 |
-
function condense( unmatched, map, filter, context, xml ) {
|
2404 |
-
var elem,
|
2405 |
-
newUnmatched = [],
|
2406 |
-
i = 0,
|
2407 |
-
len = unmatched.length,
|
2408 |
-
mapped = map != null;
|
2409 |
-
|
2410 |
-
for ( ; i < len; i++ ) {
|
2411 |
-
if ( (elem = unmatched[i]) ) {
|
2412 |
-
if ( !filter || filter( elem, context, xml ) ) {
|
2413 |
-
newUnmatched.push( elem );
|
2414 |
-
if ( mapped ) {
|
2415 |
-
map.push( i );
|
2416 |
-
}
|
2417 |
-
}
|
2418 |
-
}
|
2419 |
-
}
|
2420 |
-
|
2421 |
-
return newUnmatched;
|
2422 |
-
}
|
2423 |
-
|
2424 |
-
function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {
|
2425 |
-
if ( postFilter && !postFilter[ expando ] ) {
|
2426 |
-
postFilter = setMatcher( postFilter );
|
2427 |
-
}
|
2428 |
-
if ( postFinder && !postFinder[ expando ] ) {
|
2429 |
-
postFinder = setMatcher( postFinder, postSelector );
|
2430 |
-
}
|
2431 |
-
return markFunction(function( seed, results, context, xml ) {
|
2432 |
-
var temp, i, elem,
|
2433 |
-
preMap = [],
|
2434 |
-
postMap = [],
|
2435 |
-
preexisting = results.length,
|
2436 |
-
|
2437 |
-
// Get initial elements from seed or context
|
2438 |
-
elems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [] ),
|
2439 |
-
|
2440 |
-
// Prefilter to get matcher input, preserving a map for seed-results synchronization
|
2441 |
-
matcherIn = preFilter && ( seed || !selector ) ?
|
2442 |
-
condense( elems, preMap, preFilter, context, xml ) :
|
2443 |
-
elems,
|
2444 |
-
|
2445 |
-
matcherOut = matcher ?
|
2446 |
-
// If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,
|
2447 |
-
postFinder || ( seed ? preFilter : preexisting || postFilter ) ?
|
2448 |
-
|
2449 |
-
// ...intermediate processing is necessary
|
2450 |
-
[] :
|
2451 |
-
|
2452 |
-
// ...otherwise use results directly
|
2453 |
-
results :
|
2454 |
-
matcherIn;
|
2455 |
-
|
2456 |
-
// Find primary matches
|
2457 |
-
if ( matcher ) {
|
2458 |
-
matcher( matcherIn, matcherOut, context, xml );
|
2459 |
-
}
|
2460 |
-
|
2461 |
-
// Apply postFilter
|
2462 |
-
if ( postFilter ) {
|
2463 |
-
temp = condense( matcherOut, postMap );
|
2464 |
-
postFilter( temp, [], context, xml );
|
2465 |
-
|
2466 |
-
// Un-match failing elements by moving them back to matcherIn
|
2467 |
-
i = temp.length;
|
2468 |
-
while ( i-- ) {
|
2469 |
-
if ( (elem = temp[i]) ) {
|
2470 |
-
matcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem);
|
2471 |
-
}
|
2472 |
-
}
|
2473 |
-
}
|
2474 |
-
|
2475 |
-
if ( seed ) {
|
2476 |
-
if ( postFinder || preFilter ) {
|
2477 |
-
if ( postFinder ) {
|
2478 |
-
// Get the final matcherOut by condensing this intermediate into postFinder contexts
|
2479 |
-
temp = [];
|
2480 |
-
i = matcherOut.length;
|
2481 |
-
while ( i-- ) {
|
2482 |
-
if ( (elem = matcherOut[i]) ) {
|
2483 |
-
// Restore matcherIn since elem is not yet a final match
|
2484 |
-
temp.push( (matcherIn[i] = elem) );
|
2485 |
-
}
|
2486 |
-
}
|
2487 |
-
postFinder( null, (matcherOut = []), temp, xml );
|
2488 |
-
}
|
2489 |
-
|
2490 |
-
// Move matched elements from seed to results to keep them synchronized
|
2491 |
-
i = matcherOut.length;
|
2492 |
-
while ( i-- ) {
|
2493 |
-
if ( (elem = matcherOut[i]) &&
|
2494 |
-
(temp = postFinder ? indexOf( seed, elem ) : preMap[i]) > -1 ) {
|
2495 |
-
|
2496 |
-
seed[temp] = !(results[temp] = elem);
|
2497 |
-
}
|
2498 |
-
}
|
2499 |
-
}
|
2500 |
-
|
2501 |
-
// Add elements to results, through postFinder if defined
|
2502 |
-
} else {
|
2503 |
-
matcherOut = condense(
|
2504 |
-
matcherOut === results ?
|
2505 |
-
matcherOut.splice( preexisting, matcherOut.length ) :
|
2506 |
-
matcherOut
|
2507 |
-
);
|
2508 |
-
if ( postFinder ) {
|
2509 |
-
postFinder( null, results, matcherOut, xml );
|
2510 |
-
} else {
|
2511 |
-
push.apply( results, matcherOut );
|
2512 |
-
}
|
2513 |
-
}
|
2514 |
-
});
|
2515 |
-
}
|
2516 |
-
|
2517 |
-
function matcherFromTokens( tokens ) {
|
2518 |
-
var checkContext, matcher, j,
|
2519 |
-
len = tokens.length,
|
2520 |
-
leadingRelative = Expr.relative[ tokens[0].type ],
|
2521 |
-
implicitRelative = leadingRelative || Expr.relative[" "],
|
2522 |
-
i = leadingRelative ? 1 : 0,
|
2523 |
-
|
2524 |
-
// The foundational matcher ensures that elements are reachable from top-level context(s)
|
2525 |
-
matchContext = addCombinator( function( elem ) {
|
2526 |
-
return elem === checkContext;
|
2527 |
-
}, implicitRelative, true ),
|
2528 |
-
matchAnyContext = addCombinator( function( elem ) {
|
2529 |
-
return indexOf( checkContext, elem ) > -1;
|
2530 |
-
}, implicitRelative, true ),
|
2531 |
-
matchers = [ function( elem, context, xml ) {
|
2532 |
-
var ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || (
|
2533 |
-
(checkContext = context).nodeType ?
|
2534 |
-
matchContext( elem, context, xml ) :
|
2535 |
-
matchAnyContext( elem, context, xml ) );
|
2536 |
-
// Avoid hanging onto element (issue #299)
|
2537 |
-
checkContext = null;
|
2538 |
-
return ret;
|
2539 |
-
} ];
|
2540 |
-
|
2541 |
-
for ( ; i < len; i++ ) {
|
2542 |
-
if ( (matcher = Expr.relative[ tokens[i].type ]) ) {
|
2543 |
-
matchers = [ addCombinator(elementMatcher( matchers ), matcher) ];
|
2544 |
-
} else {
|
2545 |
-
matcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches );
|
2546 |
-
|
2547 |
-
// Return special upon seeing a positional matcher
|
2548 |
-
if ( matcher[ expando ] ) {
|
2549 |
-
// Find the next relative operator (if any) for proper handling
|
2550 |
-
j = ++i;
|
2551 |
-
for ( ; j < len; j++ ) {
|
2552 |
-
if ( Expr.relative[ tokens[j].type ] ) {
|
2553 |
-
break;
|
2554 |
-
}
|
2555 |
-
}
|
2556 |
-
return setMatcher(
|
2557 |
-
i > 1 && elementMatcher( matchers ),
|
2558 |
-
i > 1 && toSelector(
|
2559 |
-
// If the preceding token was a descendant combinator, insert an implicit any-element `*`
|
2560 |
-
tokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === " " ? "*" : "" })
|
2561 |
-
).replace( rtrim, "$1" ),
|
2562 |
-
matcher,
|
2563 |
-
i < j && matcherFromTokens( tokens.slice( i, j ) ),
|
2564 |
-
j < len && matcherFromTokens( (tokens = tokens.slice( j )) ),
|
2565 |
-
j < len && toSelector( tokens )
|
2566 |
-
);
|
2567 |
-
}
|
2568 |
-
matchers.push( matcher );
|
2569 |
-
}
|
2570 |
-
}
|
2571 |
-
|
2572 |
-
return elementMatcher( matchers );
|
2573 |
-
}
|
2574 |
-
|
2575 |
-
function matcherFromGroupMatchers( elementMatchers, setMatchers ) {
|
2576 |
-
var bySet = setMatchers.length > 0,
|
2577 |
-
byElement = elementMatchers.length > 0,
|
2578 |
-
superMatcher = function( seed, context, xml, results, outermost ) {
|
2579 |
-
var elem, j, matcher,
|
2580 |
-
matchedCount = 0,
|
2581 |
-
i = "0",
|
2582 |
-
unmatched = seed && [],
|
2583 |
-
setMatched = [],
|
2584 |
-
contextBackup = outermostContext,
|
2585 |
-
// We must always have either seed elements or outermost context
|
2586 |
-
elems = seed || byElement && Expr.find["TAG"]( "*", outermost ),
|
2587 |
-
// Use integer dirruns iff this is the outermost matcher
|
2588 |
-
dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1),
|
2589 |
-
len = elems.length;
|
2590 |
-
|
2591 |
-
if ( outermost ) {
|
2592 |
-
outermostContext = context === document || context || outermost;
|
2593 |
-
}
|
2594 |
-
|
2595 |
-
// Add elements passing elementMatchers directly to results
|
2596 |
-
// Support: IE<9, Safari
|
2597 |
-
// Tolerate NodeList properties (IE: "length"; Safari: <number>) matching elements by id
|
2598 |
-
for ( ; i !== len && (elem = elems[i]) != null; i++ ) {
|
2599 |
-
if ( byElement && elem ) {
|
2600 |
-
j = 0;
|
2601 |
-
if ( !context && elem.ownerDocument !== document ) {
|
2602 |
-
setDocument( elem );
|
2603 |
-
xml = !documentIsHTML;
|
2604 |
-
}
|
2605 |
-
while ( (matcher = elementMatchers[j++]) ) {
|
2606 |
-
if ( matcher( elem, context || document, xml) ) {
|
2607 |
-
results.push( elem );
|
2608 |
-
break;
|
2609 |
-
}
|
2610 |
-
}
|
2611 |
-
if ( outermost ) {
|
2612 |
-
dirruns = dirrunsUnique;
|
2613 |
-
}
|
2614 |
-
}
|
2615 |
-
|
2616 |
-
// Track unmatched elements for set filters
|
2617 |
-
if ( bySet ) {
|
2618 |
-
// They will have gone through all possible matchers
|
2619 |
-
if ( (elem = !matcher && elem) ) {
|
2620 |
-
matchedCount--;
|
2621 |
-
}
|
2622 |
-
|
2623 |
-
// Lengthen the array for every element, matched or not
|
2624 |
-
if ( seed ) {
|
2625 |
-
unmatched.push( elem );
|
2626 |
-
}
|
2627 |
-
}
|
2628 |
-
}
|
2629 |
-
|
2630 |
-
// `i` is now the count of elements visited above, and adding it to `matchedCount`
|
2631 |
-
// makes the latter nonnegative.
|
2632 |
-
matchedCount += i;
|
2633 |
-
|
2634 |
-
// Apply set filters to unmatched elements
|
2635 |
-
// NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`
|
2636 |
-
// equals `i`), unless we didn't visit _any_ elements in the above loop because we have
|
2637 |
-
// no element matchers and no seed.
|
2638 |
-
// Incrementing an initially-string "0" `i` allows `i` to remain a string only in that
|
2639 |
-
// case, which will result in a "00" `matchedCount` that differs from `i` but is also
|
2640 |
-
// numerically zero.
|
2641 |
-
if ( bySet && i !== matchedCount ) {
|
2642 |
-
j = 0;
|
2643 |
-
while ( (matcher = setMatchers[j++]) ) {
|
2644 |
-
matcher( unmatched, setMatched, context, xml );
|
2645 |
-
}
|
2646 |
-
|
2647 |
-
if ( seed ) {
|
2648 |
-
// Reintegrate element matches to eliminate the need for sorting
|
2649 |
-
if ( matchedCount > 0 ) {
|
2650 |
-
while ( i-- ) {
|
2651 |
-
if ( !(unmatched[i] || setMatched[i]) ) {
|
2652 |
-
setMatched[i] = pop.call( results );
|
2653 |
-
}
|
2654 |
-
}
|
2655 |
-
}
|
2656 |
-
|
2657 |
-
// Discard index placeholder values to get only actual matches
|
2658 |
-
setMatched = condense( setMatched );
|
2659 |
-
}
|
2660 |
-
|
2661 |
-
// Add matches to results
|
2662 |
-
push.apply( results, setMatched );
|
2663 |
-
|
2664 |
-
// Seedless set matches succeeding multiple successful matchers stipulate sorting
|
2665 |
-
if ( outermost && !seed && setMatched.length > 0 &&
|
2666 |
-
( matchedCount + setMatchers.length ) > 1 ) {
|
2667 |
-
|
2668 |
-
Sizzle.uniqueSort( results );
|
2669 |
-
}
|
2670 |
-
}
|
2671 |
-
|
2672 |
-
// Override manipulation of globals by nested matchers
|
2673 |
-
if ( outermost ) {
|
2674 |
-
dirruns = dirrunsUnique;
|
2675 |
-
outermostContext = contextBackup;
|
2676 |
-
}
|
2677 |
-
|
2678 |
-
return unmatched;
|
2679 |
-
};
|
2680 |
-
|
2681 |
-
return bySet ?
|
2682 |
-
markFunction( superMatcher ) :
|
2683 |
-
superMatcher;
|
2684 |
-
}
|
2685 |
-
|
2686 |
-
compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {
|
2687 |
-
var i,
|
2688 |
-
setMatchers = [],
|
2689 |
-
elementMatchers = [],
|
2690 |
-
cached = compilerCache[ selector + " " ];
|
2691 |
-
|
2692 |
-
if ( !cached ) {
|
2693 |
-
// Generate a function of recursive functions that can be used to check each element
|
2694 |
-
if ( !match ) {
|
2695 |
-
match = tokenize( selector );
|
2696 |
-
}
|
2697 |
-
i = match.length;
|
2698 |
-
while ( i-- ) {
|
2699 |
-
cached = matcherFromTokens( match[i] );
|
2700 |
-
if ( cached[ expando ] ) {
|
2701 |
-
setMatchers.push( cached );
|
2702 |
-
} else {
|
2703 |
-
elementMatchers.push( cached );
|
2704 |
-
}
|
2705 |
-
}
|
2706 |
-
|
2707 |
-
// Cache the compiled function
|
2708 |
-
cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) );
|
2709 |
-
|
2710 |
-
// Save selector and tokenization
|
2711 |
-
cached.selector = selector;
|
2712 |
-
}
|
2713 |
-
return cached;
|
2714 |
-
};
|
2715 |
-
|
2716 |
-
/**
|
2717 |
-
* A low-level selection function that works with Sizzle's compiled
|
2718 |
-
* selector functions
|
2719 |
-
* @param {String|Function} selector A selector or a pre-compiled
|
2720 |
-
* selector function built with Sizzle.compile
|
2721 |
-
* @param {Element} context
|
2722 |
-
* @param {Array} [results]
|
2723 |
-
* @param {Array} [seed] A set of elements to match against
|
2724 |
-
*/
|
2725 |
-
select = Sizzle.select = function( selector, context, results, seed ) {
|
2726 |
-
var i, tokens, token, type, find,
|
2727 |
-
compiled = typeof selector === "function" && selector,
|
2728 |
-
match = !seed && tokenize( (selector = compiled.selector || selector) );
|
2729 |
-
|
2730 |
-
results = results || [];
|
2731 |
-
|
2732 |
-
// Try to minimize operations if there is only one selector in the list and no seed
|
2733 |
-
// (the latter of which guarantees us context)
|
2734 |
-
if ( match.length === 1 ) {
|
2735 |
-
|
2736 |
-
// Reduce context if the leading compound selector is an ID
|
2737 |
-
tokens = match[0] = match[0].slice( 0 );
|
2738 |
-
if ( tokens.length > 2 && (token = tokens[0]).type === "ID" &&
|
2739 |
-
context.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[1].type ] ) {
|
2740 |
-
|
2741 |
-
context = ( Expr.find["ID"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0];
|
2742 |
-
if ( !context ) {
|
2743 |
-
return results;
|
2744 |
-
|
2745 |
-
// Precompiled matchers will still verify ancestry, so step up a level
|
2746 |
-
} else if ( compiled ) {
|
2747 |
-
context = context.parentNode;
|
2748 |
-
}
|
2749 |
-
|
2750 |
-
selector = selector.slice( tokens.shift().value.length );
|
2751 |
-
}
|
2752 |
-
|
2753 |
-
// Fetch a seed set for right-to-left matching
|
2754 |
-
i = matchExpr["needsContext"].test( selector ) ? 0 : tokens.length;
|
2755 |
-
while ( i-- ) {
|
2756 |
-
token = tokens[i];
|
2757 |
-
|
2758 |
-
// Abort if we hit a combinator
|
2759 |
-
if ( Expr.relative[ (type = token.type) ] ) {
|
2760 |
-
break;
|
2761 |
-
}
|
2762 |
-
if ( (find = Expr.find[ type ]) ) {
|
2763 |
-
// Search, expanding context for leading sibling combinators
|
2764 |
-
if ( (seed = find(
|
2765 |
-
token.matches[0].replace( runescape, funescape ),
|
2766 |
-
rsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context
|
2767 |
-
)) ) {
|
2768 |
-
|
2769 |
-
// If seed is empty or no tokens remain, we can return early
|
2770 |
-
tokens.splice( i, 1 );
|
2771 |
-
selector = seed.length && toSelector( tokens );
|
2772 |
-
if ( !selector ) {
|
2773 |
-
push.apply( results, seed );
|
2774 |
-
return results;
|
2775 |
-
}
|
2776 |
-
|
2777 |
-
break;
|
2778 |
-
}
|
2779 |
-
}
|
2780 |
-
}
|
2781 |
-
}
|
2782 |
-
|
2783 |
-
// Compile and execute a filtering function if one is not provided
|
2784 |
-
// Provide `match` to avoid retokenization if we modified the selector above
|
2785 |
-
( compiled || compile( selector, match ) )(
|
2786 |
-
seed,
|
2787 |
-
context,
|
2788 |
-
!documentIsHTML,
|
2789 |
-
results,
|
2790 |
-
!context || rsibling.test( selector ) && testContext( context.parentNode ) || context
|
2791 |
-
);
|
2792 |
-
return results;
|
2793 |
-
};
|
2794 |
-
|
2795 |
-
// One-time assignments
|
2796 |
-
|
2797 |
-
// Sort stability
|
2798 |
-
support.sortStable = expando.split("").sort( sortOrder ).join("") === expando;
|
2799 |
-
|
2800 |
-
// Support: Chrome 14-35+
|
2801 |
-
// Always assume duplicates if they aren't passed to the comparison function
|
2802 |
-
support.detectDuplicates = !!hasDuplicate;
|
2803 |
-
|
2804 |
-
// Initialize against the default document
|
2805 |
-
setDocument();
|
2806 |
-
|
2807 |
-
// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)
|
2808 |
-
// Detached nodes confoundingly follow *each other*
|
2809 |
-
support.sortDetached = assert(function( el ) {
|
2810 |
-
// Should return 1, but returns 4 (following)
|
2811 |
-
return el.compareDocumentPosition( document.createElement("fieldset") ) & 1;
|
2812 |
-
});
|
2813 |
-
|
2814 |
-
// Support: IE<8
|
2815 |
-
// Prevent attribute/property "interpolation"
|
2816 |
-
// https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx
|
2817 |
-
if ( !assert(function( el ) {
|
2818 |
-
el.innerHTML = "<a href='#'></a>";
|
2819 |
-
return el.firstChild.getAttribute("href") === "#" ;
|
2820 |
-
}) ) {
|
2821 |
-
addHandle( "type|href|height|width", function( elem, name, isXML ) {
|
2822 |
-
if ( !isXML ) {
|
2823 |
-
return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 );
|
2824 |
-
}
|
2825 |
-
});
|
2826 |
-
}
|
2827 |
-
|
2828 |
-
// Support: IE<9
|
2829 |
-
// Use defaultValue in place of getAttribute("value")
|
2830 |
-
if ( !support.attributes || !assert(function( el ) {
|
2831 |
-
el.innerHTML = "<input/>";
|
2832 |
-
el.firstChild.setAttribute( "value", "" );
|
2833 |
-
return el.firstChild.getAttribute( "value" ) === "";
|
2834 |
-
}) ) {
|
2835 |
-
addHandle( "value", function( elem, name, isXML ) {
|
2836 |
-
if ( !isXML && elem.nodeName.toLowerCase() === "input" ) {
|
2837 |
-
return elem.defaultValue;
|
2838 |
-
}
|
2839 |
-
});
|
2840 |
-
}
|
2841 |
-
|
2842 |
-
// Support: IE<9
|
2843 |
-
// Use getAttributeNode to fetch booleans when getAttribute lies
|
2844 |
-
if ( !assert(function( el ) {
|
2845 |
-
return el.getAttribute("disabled") == null;
|
2846 |
-
}) ) {
|
2847 |
-
addHandle( booleans, function( elem, name, isXML ) {
|
2848 |
-
var val;
|
2849 |
-
if ( !isXML ) {
|
2850 |
-
return elem[ name ] === true ? name.toLowerCase() :
|
2851 |
-
(val = elem.getAttributeNode( name )) && val.specified ?
|
2852 |
-
val.value :
|
2853 |
-
null;
|
2854 |
-
}
|
2855 |
-
});
|
2856 |
-
}
|
2857 |
-
|
2858 |
-
return Sizzle;
|
2859 |
-
|
2860 |
-
})( window );
|
2861 |
-
|
2862 |
-
|
2863 |
-
|
2864 |
-
jQuery.find = Sizzle;
|
2865 |
-
jQuery.expr = Sizzle.selectors;
|
2866 |
-
|
2867 |
-
// Deprecated
|
2868 |
-
jQuery.expr[ ":" ] = jQuery.expr.pseudos;
|
2869 |
-
jQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort;
|
2870 |
-
jQuery.text = Sizzle.getText;
|
2871 |
-
jQuery.isXMLDoc = Sizzle.isXML;
|
2872 |
-
jQuery.contains = Sizzle.contains;
|
2873 |
-
jQuery.escapeSelector = Sizzle.escape;
|
2874 |
-
|
2875 |
-
|
2876 |
-
|
2877 |
-
|
2878 |
-
var dir = function( elem, dir, until ) {
|
2879 |
-
var matched = [],
|
2880 |
-
truncate = until !== undefined;
|
2881 |
-
|
2882 |
-
while ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) {
|
2883 |
-
if ( elem.nodeType === 1 ) {
|
2884 |
-
if ( truncate && jQuery( elem ).is( until ) ) {
|
2885 |
-
break;
|
2886 |
-
}
|
2887 |
-
matched.push( elem );
|
2888 |
-
}
|
2889 |
-
}
|
2890 |
-
return matched;
|
2891 |
-
};
|
2892 |
-
|
2893 |
-
|
2894 |
-
var siblings = function( n, elem ) {
|
2895 |
-
var matched = [];
|
2896 |
-
|
2897 |
-
for ( ; n; n = n.nextSibling ) {
|
2898 |
-
if ( n.nodeType === 1 && n !== elem ) {
|
2899 |
-
matched.push( n );
|
2900 |
-
}
|
2901 |
-
}
|
2902 |
-
|
2903 |
-
return matched;
|
2904 |
-
};
|
2905 |
-
|
2906 |
-
|
2907 |
-
var rneedsContext = jQuery.expr.match.needsContext;
|
2908 |
-
|
2909 |
-
|
2910 |
-
|
2911 |
-
function nodeName( elem, name ) {
|
2912 |
-
|
2913 |
-
return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();
|
2914 |
-
|
2915 |
-
};
|
2916 |
-
var rsingleTag = ( /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i );
|
2917 |
-
|
2918 |
-
|
2919 |
-
|
2920 |
-
var risSimple = /^.[^:#\[\.,]*$/;
|
2921 |
-
|
2922 |
-
// Implement the identical functionality for filter and not
|
2923 |
-
function winnow( elements, qualifier, not ) {
|
2924 |
-
if ( jQuery.isFunction( qualifier ) ) {
|
2925 |
-
return jQuery.grep( elements, function( elem, i ) {
|
2926 |
-
return !!qualifier.call( elem, i, elem ) !== not;
|
2927 |
-
} );
|
2928 |
-
}
|
2929 |
-
|
2930 |
-
// Single element
|
2931 |
-
if ( qualifier.nodeType ) {
|
2932 |
-
return jQuery.grep( elements, function( elem ) {
|
2933 |
-
return ( elem === qualifier ) !== not;
|
2934 |
-
} );
|
2935 |
-
}
|
2936 |
-
|
2937 |
-
// Arraylike of elements (jQuery, arguments, Array)
|
2938 |
-
if ( typeof qualifier !== "string" ) {
|
2939 |
-
return jQuery.grep( elements, function( elem ) {
|
2940 |
-
return ( indexOf.call( qualifier, elem ) > -1 ) !== not;
|
2941 |
-
} );
|
2942 |
-
}
|
2943 |
-
|
2944 |
-
// Simple selector that can be filtered directly, removing non-Elements
|
2945 |
-
if ( risSimple.test( qualifier ) ) {
|
2946 |
-
return jQuery.filter( qualifier, elements, not );
|
2947 |
-
}
|
2948 |
-
|
2949 |
-
// Complex selector, compare the two sets, removing non-Elements
|
2950 |
-
qualifier = jQuery.filter( qualifier, elements );
|
2951 |
-
return jQuery.grep( elements, function( elem ) {
|
2952 |
-
return ( indexOf.call( qualifier, elem ) > -1 ) !== not && elem.nodeType === 1;
|
2953 |
-
} );
|
2954 |
-
}
|
2955 |
-
|
2956 |
-
jQuery.filter = function( expr, elems, not ) {
|
2957 |
-
var elem = elems[ 0 ];
|
2958 |
-
|
2959 |
-
if ( not ) {
|
2960 |
-
expr = ":not(" + expr + ")";
|
2961 |
-
}
|
2962 |
-
|
2963 |
-
if ( elems.length === 1 && elem.nodeType === 1 ) {
|
2964 |
-
return jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [];
|
2965 |
-
}
|
2966 |
-
|
2967 |
-
return jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {
|
2968 |
-
return elem.nodeType === 1;
|
2969 |
-
} ) );
|
2970 |
-
};
|
2971 |
-
|
2972 |
-
jQuery.fn.extend( {
|
2973 |
-
find: function( selector ) {
|
2974 |
-
var i, ret,
|
2975 |
-
len = this.length,
|
2976 |
-
self = this;
|
2977 |
-
|
2978 |
-
if ( typeof selector !== "string" ) {
|
2979 |
-
return this.pushStack( jQuery( selector ).filter( function() {
|
2980 |
-
for ( i = 0; i < len; i++ ) {
|
2981 |
-
if ( jQuery.contains( self[ i ], this ) ) {
|
2982 |
-
return true;
|
2983 |
-
}
|
2984 |
-
}
|
2985 |
-
} ) );
|
2986 |
-
}
|
2987 |
-
|
2988 |
-
ret = this.pushStack( [] );
|
2989 |
-
|
2990 |
-
for ( i = 0; i < len; i++ ) {
|
2991 |
-
jQuery.find( selector, self[ i ], ret );
|
2992 |
-
}
|
2993 |
-
|
2994 |
-
return len > 1 ? jQuery.uniqueSort( ret ) : ret;
|
2995 |
-
},
|
2996 |
-
filter: function( selector ) {
|
2997 |
-
return this.pushStack( winnow( this, selector || [], false ) );
|
2998 |
-
},
|
2999 |
-
not: function( selector ) {
|
3000 |
-
return this.pushStack( winnow( this, selector || [], true ) );
|
3001 |
-
},
|
3002 |
-
is: function( selector ) {
|
3003 |
-
return !!winnow(
|
3004 |
-
this,
|
3005 |
-
|
3006 |
-
// If this is a positional/relative selector, check membership in the returned set
|
3007 |
-
// so $("p:first").is("p:last") won't return true for a doc with two "p".
|
3008 |
-
typeof selector === "string" && rneedsContext.test( selector ) ?
|
3009 |
-
jQuery( selector ) :
|
3010 |
-
selector || [],
|
3011 |
-
false
|
3012 |
-
).length;
|
3013 |
-
}
|
3014 |
-
} );
|
3015 |
-
|
3016 |
-
|
3017 |
-
// Initialize a jQuery object
|
3018 |
-
|
3019 |
-
|
3020 |
-
// A central reference to the root jQuery(document)
|
3021 |
-
var rootjQuery,
|
3022 |
-
|
3023 |
-
// A simple way to check for HTML strings
|
3024 |
-
// Prioritize #id over <tag> to avoid XSS via location.hash (#9521)
|
3025 |
-
// Strict HTML recognition (#11290: must start with <)
|
3026 |
-
// Shortcut simple #id case for speed
|
3027 |
-
rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,
|
3028 |
-
|
3029 |
-
init = jQuery.fn.init = function( selector, context, root ) {
|
3030 |
-
var match, elem;
|
3031 |
-
|
3032 |
-
// HANDLE: $(""), $(null), $(undefined), $(false)
|
3033 |
-
if ( !selector ) {
|
3034 |
-
return this;
|
3035 |
-
}
|
3036 |
-
|
3037 |
-
// Method init() accepts an alternate rootjQuery
|
3038 |
-
// so migrate can support jQuery.sub (gh-2101)
|
3039 |
-
root = root || rootjQuery;
|
3040 |
-
|
3041 |
-
// Handle HTML strings
|
3042 |
-
if ( typeof selector === "string" ) {
|
3043 |
-
if ( selector[ 0 ] === "<" &&
|
3044 |
-
selector[ selector.length - 1 ] === ">" &&
|
3045 |
-
selector.length >= 3 ) {
|
3046 |
-
|
3047 |
-
// Assume that strings that start and end with <> are HTML and skip the regex check
|
3048 |
-
match = [ null, selector, null ];
|
3049 |
-
|
3050 |
-
} else {
|
3051 |
-
match = rquickExpr.exec( selector );
|
3052 |
-
}
|
3053 |
-
|
3054 |
-
// Match html or make sure no context is specified for #id
|
3055 |
-
if ( match && ( match[ 1 ] || !context ) ) {
|
3056 |
-
|
3057 |
-
// HANDLE: $(html) -> $(array)
|
3058 |
-
if ( match[ 1 ] ) {
|
3059 |
-
context = context instanceof jQuery ? context[ 0 ] : context;
|
3060 |
-
|
3061 |
-
// Option to run scripts is true for back-compat
|
3062 |
-
// Intentionally let the error be thrown if parseHTML is not present
|
3063 |
-
jQuery.merge( this, jQuery.parseHTML(
|
3064 |
-
match[ 1 ],
|
3065 |
-
context && context.nodeType ? context.ownerDocument || context : document,
|
3066 |
-
true
|
3067 |
-
) );
|
3068 |
-
|
3069 |
-
// HANDLE: $(html, props)
|
3070 |
-
if ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) {
|
3071 |
-
for ( match in context ) {
|
3072 |
-
|
3073 |
-
// Properties of context are called as methods if possible
|
3074 |
-
if ( jQuery.isFunction( this[ match ] ) ) {
|
3075 |
-
this[ match ]( context[ match ] );
|
3076 |
-
|
3077 |
-
// ...and otherwise set as attributes
|
3078 |
-
} else {
|
3079 |
-
this.attr( match, context[ match ] );
|
3080 |
-
}
|
3081 |
-
}
|
3082 |
-
}
|
3083 |
-
|
3084 |
-
return this;
|
3085 |
-
|
3086 |
-
// HANDLE: $(#id)
|
3087 |
-
} else {
|
3088 |
-
elem = document.getElementById( match[ 2 ] );
|
3089 |
-
|
3090 |
-
if ( elem ) {
|
3091 |
-
|
3092 |
-
// Inject the element directly into the jQuery object
|
3093 |
-
this[ 0 ] = elem;
|
3094 |
-
this.length = 1;
|
3095 |
-
}
|
3096 |
-
return this;
|
3097 |
-
}
|
3098 |
-
|
3099 |
-
// HANDLE: $(expr, $(...))
|
3100 |
-
} else if ( !context || context.jquery ) {
|
3101 |
-
return ( context || root ).find( selector );
|
3102 |
-
|
3103 |
-
// HANDLE: $(expr, context)
|
3104 |
-
// (which is just equivalent to: $(context).find(expr)
|
3105 |
-
} else {
|
3106 |
-
return this.constructor( context ).find( selector );
|
3107 |
-
}
|
3108 |
-
|
3109 |
-
// HANDLE: $(DOMElement)
|
3110 |
-
} else if ( selector.nodeType ) {
|
3111 |
-
this[ 0 ] = selector;
|
3112 |
-
this.length = 1;
|
3113 |
-
return this;
|
3114 |
-
|
3115 |
-
// HANDLE: $(function)
|
3116 |
-
// Shortcut for document ready
|
3117 |
-
} else if ( jQuery.isFunction( selector ) ) {
|
3118 |
-
return root.ready !== undefined ?
|
3119 |
-
root.ready( selector ) :
|
3120 |
-
|
3121 |
-
// Execute immediately if ready is not present
|
3122 |
-
selector( jQuery );
|
3123 |
-
}
|
3124 |
-
|
3125 |
-
return jQuery.makeArray( selector, this );
|
3126 |
-
};
|
3127 |
-
|
3128 |
-
// Give the init function the jQuery prototype for later instantiation
|
3129 |
-
init.prototype = jQuery.fn;
|
3130 |
-
|
3131 |
-
// Initialize central reference
|
3132 |
-
rootjQuery = jQuery( document );
|
3133 |
-
|
3134 |
-
|
3135 |
-
var rparentsprev = /^(?:parents|prev(?:Until|All))/,
|
3136 |
-
|
3137 |
-
// Methods guaranteed to produce a unique set when starting from a unique set
|
3138 |
-
guaranteedUnique = {
|
3139 |
-
children: true,
|
3140 |
-
contents: true,
|
3141 |
-
next: true,
|
3142 |
-
prev: true
|
3143 |
-
};
|
3144 |
-
|
3145 |
-
jQuery.fn.extend( {
|
3146 |
-
has: function( target ) {
|
3147 |
-
var targets = jQuery( target, this ),
|
3148 |
-
l = targets.length;
|
3149 |
-
|
3150 |
-
return this.filter( function() {
|
3151 |
-
var i = 0;
|
3152 |
-
for ( ; i < l; i++ ) {
|
3153 |
-
if ( jQuery.contains( this, targets[ i ] ) ) {
|
3154 |
-
return true;
|
3155 |
-
}
|
3156 |
-
}
|
3157 |
-
} );
|
3158 |
-
},
|
3159 |
-
|
3160 |
-
closest: function( selectors, context ) {
|
3161 |
-
var cur,
|
3162 |
-
i = 0,
|
3163 |
-
l = this.length,
|
3164 |
-
matched = [],
|
3165 |
-
targets = typeof selectors !== "string" && jQuery( selectors );
|
3166 |
-
|
3167 |
-
// Positional selectors never match, since there's no _selection_ context
|
3168 |
-
if ( !rneedsContext.test( selectors ) ) {
|
3169 |
-
for ( ; i < l; i++ ) {
|
3170 |
-
for ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) {
|
3171 |
-
|
3172 |
-
// Always skip document fragments
|
3173 |
-
if ( cur.nodeType < 11 && ( targets ?
|
3174 |
-
targets.index( cur ) > -1 :
|
3175 |
-
|
3176 |
-
// Don't pass non-elements to Sizzle
|
3177 |
-
cur.nodeType === 1 &&
|
3178 |
-
jQuery.find.matchesSelector( cur, selectors ) ) ) {
|
3179 |
-
|
3180 |
-
matched.push( cur );
|
3181 |
-
break;
|
3182 |
-
}
|
3183 |
-
}
|
3184 |
-
}
|
3185 |
-
}
|
3186 |
-
|
3187 |
-
return this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched );
|
3188 |
-
},
|
3189 |
-
|
3190 |
-
// Determine the position of an element within the set
|
3191 |
-
index: function( elem ) {
|
3192 |
-
|
3193 |
-
// No argument, return index in parent
|
3194 |
-
if ( !elem ) {
|
3195 |
-
return ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1;
|
3196 |
-
}
|
3197 |
-
|
3198 |
-
// Index in selector
|
3199 |
-
if ( typeof elem === "string" ) {
|
3200 |
-
return indexOf.call( jQuery( elem ), this[ 0 ] );
|
3201 |
-
}
|
3202 |
-
|
3203 |
-
// Locate the position of the desired element
|
3204 |
-
return indexOf.call( this,
|
3205 |
-
|
3206 |
-
// If it receives a jQuery object, the first element is used
|
3207 |
-
elem.jquery ? elem[ 0 ] : elem
|
3208 |
-
);
|
3209 |
-
},
|
3210 |
-
|
3211 |
-
add: function( selector, context ) {
|
3212 |
-
return this.pushStack(
|
3213 |
-
jQuery.uniqueSort(
|
3214 |
-
jQuery.merge( this.get(), jQuery( selector, context ) )
|
3215 |
-
)
|
3216 |
-
);
|
3217 |
-
},
|
3218 |
-
|
3219 |
-
addBack: function( selector ) {
|
3220 |
-
return this.add( selector == null ?
|
3221 |
-
this.prevObject : this.prevObject.filter( selector )
|
3222 |
-
);
|
3223 |
-
}
|
3224 |
-
} );
|
3225 |
-
|
3226 |
-
function sibling( cur, dir ) {
|
3227 |
-
while ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {}
|
3228 |
-
return cur;
|
3229 |
-
}
|
3230 |
-
|
3231 |
-
jQuery.each( {
|
3232 |
-
parent: function( elem ) {
|
3233 |
-
var parent = elem.parentNode;
|
3234 |
-
return parent && parent.nodeType !== 11 ? parent : null;
|
3235 |
-
},
|
3236 |
-
parents: function( elem ) {
|
3237 |
-
return dir( elem, "parentNode" );
|
3238 |
-
},
|
3239 |
-
parentsUntil: function( elem, i, until ) {
|
3240 |
-
return dir( elem, "parentNode", until );
|
3241 |
-
},
|
3242 |
-
next: function( elem ) {
|
3243 |
-
return sibling( elem, "nextSibling" );
|
3244 |
-
},
|
3245 |
-
prev: function( elem ) {
|
3246 |
-
return sibling( elem, "previousSibling" );
|
3247 |
-
},
|
3248 |
-
nextAll: function( elem ) {
|
3249 |
-
return dir( elem, "nextSibling" );
|
3250 |
-
},
|
3251 |
-
prevAll: function( elem ) {
|
3252 |
-
return dir( elem, "previousSibling" );
|
3253 |
-
},
|
3254 |
-
nextUntil: function( elem, i, until ) {
|
3255 |
-
return dir( elem, "nextSibling", until );
|
3256 |
-
},
|
3257 |
-
prevUntil: function( elem, i, until ) {
|
3258 |
-
return dir( elem, "previousSibling", until );
|
3259 |
-
},
|
3260 |
-
siblings: function( elem ) {
|
3261 |
-
return siblings( ( elem.parentNode || {} ).firstChild, elem );
|
3262 |
-
},
|
3263 |
-
children: function( elem ) {
|
3264 |
-
return siblings( elem.firstChild );
|
3265 |
-
},
|
3266 |
-
contents: function( elem ) {
|
3267 |
-
if ( nodeName( elem, "iframe" ) ) {
|
3268 |
-
return elem.contentDocument;
|
3269 |
-
}
|
3270 |
-
|
3271 |
-
// Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only
|
3272 |
-
// Treat the template element as a regular one in browsers that
|
3273 |
-
// don't support it.
|
3274 |
-
if ( nodeName( elem, "template" ) ) {
|
3275 |
-
elem = elem.content || elem;
|
3276 |
-
}
|
3277 |
-
|
3278 |
-
return jQuery.merge( [], elem.childNodes );
|
3279 |
-
}
|
3280 |
-
}, function( name, fn ) {
|
3281 |
-
jQuery.fn[ name ] = function( until, selector ) {
|
3282 |
-
var matched = jQuery.map( this, fn, until );
|
3283 |
-
|
3284 |
-
if ( name.slice( -5 ) !== "Until" ) {
|
3285 |
-
selector = until;
|
3286 |
-
}
|
3287 |
-
|
3288 |
-
if ( selector && typeof selector === "string" ) {
|
3289 |
-
matched = jQuery.filter( selector, matched );
|
3290 |
-
}
|
3291 |
-
|
3292 |
-
if ( this.length > 1 ) {
|
3293 |
-
|
3294 |
-
// Remove duplicates
|
3295 |
-
if ( !guaranteedUnique[ name ] ) {
|
3296 |
-
jQuery.uniqueSort( matched );
|
3297 |
-
}
|
3298 |
-
|
3299 |
-
// Reverse order for parents* and prev-derivatives
|
3300 |
-
if ( rparentsprev.test( name ) ) {
|
3301 |
-
matched.reverse();
|
3302 |
-
}
|
3303 |
-
}
|
3304 |
-
|
3305 |
-
return this.pushStack( matched );
|
3306 |
-
};
|
3307 |
-
} );
|
3308 |
-
var rnothtmlwhite = ( /[^\x20\t\r\n\f]+/g );
|
3309 |
-
|
3310 |
-
|
3311 |
-
|
3312 |
-
// Convert String-formatted options into Object-formatted ones
|
3313 |
-
function createOptions( options ) {
|
3314 |
-
var object = {};
|
3315 |
-
jQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) {
|
3316 |
-
object[ flag ] = true;
|
3317 |
-
} );
|
3318 |
-
return object;
|
3319 |
-
}
|
3320 |
-
|
3321 |
-
/*
|
3322 |
-
* Create a callback list using the following parameters:
|
3323 |
-
*
|
3324 |
-
* options: an optional list of space-separated options that will change how
|
3325 |
-
* the callback list behaves or a more traditional option object
|
3326 |
-
*
|
3327 |
-
* By default a callback list will act like an event callback list and can be
|
3328 |
-
* "fired" multiple times.
|
3329 |
-
*
|
3330 |
-
* Possible options:
|
3331 |
-
*
|
3332 |
-
* once: will ensure the callback list can only be fired once (like a Deferred)
|
3333 |
-
*
|
3334 |
-
* memory: will keep track of previous values and will call any callback added
|
3335 |
-
* after the list has been fired right away with the latest "memorized"
|
3336 |
-
* values (like a Deferred)
|
3337 |
-
*
|
3338 |
-
* unique: will ensure a callback can only be added once (no duplicate in the list)
|
3339 |
-
*
|
3340 |
-
* stopOnFalse: interrupt callings when a callback returns false
|
3341 |
-
*
|
3342 |
-
*/
|
3343 |
-
jQuery.Callbacks = function( options ) {
|
3344 |
-
|
3345 |
-
// Convert options from String-formatted to Object-formatted if needed
|
3346 |
-
// (we check in cache first)
|
3347 |
-
options = typeof options === "string" ?
|
3348 |
-
createOptions( options ) :
|
3349 |
-
jQuery.extend( {}, options );
|
3350 |
-
|
3351 |
-
var // Flag to know if list is currently firing
|
3352 |
-
firing,
|
3353 |
-
|
3354 |
-
// Last fire value for non-forgettable lists
|
3355 |
-
memory,
|
3356 |
-
|
3357 |
-
// Flag to know if list was already fired
|
3358 |
-
fired,
|
3359 |
-
|
3360 |
-
// Flag to prevent firing
|
3361 |
-
locked,
|
3362 |
-
|
3363 |
-
// Actual callback list
|
3364 |
-
list = [],
|
3365 |
-
|
3366 |
-
// Queue of execution data for repeatable lists
|
3367 |
-
queue = [],
|
3368 |
-
|
3369 |
-
// Index of currently firing callback (modified by add/remove as needed)
|
3370 |
-
firingIndex = -1,
|
3371 |
-
|
3372 |
-
// Fire callbacks
|
3373 |
-
fire = function() {
|
3374 |
-
|
3375 |
-
// Enforce single-firing
|
3376 |
-
locked = locked || options.once;
|
3377 |
-
|
3378 |
-
// Execute callbacks for all pending executions,
|
3379 |
-
// respecting firingIndex overrides and runtime changes
|
3380 |
-
fired = firing = true;
|
3381 |
-
for ( ; queue.length; firingIndex = -1 ) {
|
3382 |
-
memory = queue.shift();
|
3383 |
-
while ( ++firingIndex < list.length ) {
|
3384 |
-
|
3385 |
-
// Run callback and check for early termination
|
3386 |
-
if ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false &&
|
3387 |
-
options.stopOnFalse ) {
|
3388 |
-
|
3389 |
-
// Jump to end and forget the data so .add doesn't re-fire
|
3390 |
-
firingIndex = list.length;
|
3391 |
-
memory = false;
|
3392 |
-
}
|
3393 |
-
}
|
3394 |
-
}
|
3395 |
-
|
3396 |
-
// Forget the data if we're done with it
|
3397 |
-
if ( !options.memory ) {
|
3398 |
-
memory = false;
|
3399 |
-
}
|
3400 |
-
|
3401 |
-
firing = false;
|
3402 |
-
|
3403 |
-
// Clean up if we're done firing for good
|
3404 |
-
if ( locked ) {
|
3405 |
-
|
3406 |
-
// Keep an empty list if we have data for future add calls
|
3407 |
-
if ( memory ) {
|
3408 |
-
list = [];
|
3409 |
-
|
3410 |
-
// Otherwise, this object is spent
|
3411 |
-
} else {
|
3412 |
-
list = "";
|
3413 |
-
}
|
3414 |
-
}
|
3415 |
-
},
|
3416 |
-
|
3417 |
-
// Actual Callbacks object
|
3418 |
-
self = {
|
3419 |
-
|
3420 |
-
// Add a callback or a collection of callbacks to the list
|
3421 |
-
add: function() {
|
3422 |
-
if ( list ) {
|
3423 |
-
|
3424 |
-
// If we have memory from a past run, we should fire after adding
|
3425 |
-
if ( memory && !firing ) {
|
3426 |
-
firingIndex = list.length - 1;
|
3427 |
-
queue.push( memory );
|
3428 |
-
}
|
3429 |
-
|
3430 |
-
( function add( args ) {
|
3431 |
-
jQuery.each( args, function( _, arg ) {
|
3432 |
-
if ( jQuery.isFunction( arg ) ) {
|
3433 |
-
if ( !options.unique || !self.has( arg ) ) {
|
3434 |
-
list.push( arg );
|
3435 |
-
}
|
3436 |
-
} else if ( arg && arg.length && jQuery.type( arg ) !== "string" ) {
|
3437 |
-
|
3438 |
-
// Inspect recursively
|
3439 |
-
add( arg );
|
3440 |
-
}
|
3441 |
-
} );
|
3442 |
-
} )( arguments );
|
3443 |
-
|
3444 |
-
if ( memory && !firing ) {
|
3445 |
-
fire();
|
3446 |
-
}
|
3447 |
-
}
|
3448 |
-
return this;
|
3449 |
-
},
|
3450 |
-
|
3451 |
-
// Remove a callback from the list
|
3452 |
-
remove: function() {
|
3453 |
-
jQuery.each( arguments, function( _, arg ) {
|
3454 |
-
var index;
|
3455 |
-
while ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {
|
3456 |
-
list.splice( index, 1 );
|
3457 |
-
|
3458 |
-
// Handle firing indexes
|
3459 |
-
if ( index <= firingIndex ) {
|
3460 |
-
firingIndex--;
|
3461 |
-
}
|
3462 |
-
}
|
3463 |
-
} );
|
3464 |
-
return this;
|
3465 |
-
},
|
3466 |
-
|
3467 |
-
// Check if a given callback is in the list.
|
3468 |
-
// If no argument is given, return whether or not list has callbacks attached.
|
3469 |
-
has: function( fn ) {
|
3470 |
-
return fn ?
|
3471 |
-
jQuery.inArray( fn, list ) > -1 :
|
3472 |
-
list.length > 0;
|
3473 |
-
},
|
3474 |
-
|
3475 |
-
// Remove all callbacks from the list
|
3476 |
-
empty: function() {
|
3477 |
-
if ( list ) {
|
3478 |
-
list = [];
|
3479 |
-
}
|
3480 |
-
return this;
|
3481 |
-
},
|
3482 |
-
|
3483 |
-
// Disable .fire and .add
|
3484 |
-
// Abort any current/pending executions
|
3485 |
-
// Clear all callbacks and values
|
3486 |
-
disable: function() {
|
3487 |
-
locked = queue = [];
|
3488 |
-
list = memory = "";
|
3489 |
-
return this;
|
3490 |
-
},
|
3491 |
-
disabled: function() {
|
3492 |
-
return !list;
|
3493 |
-
},
|
3494 |
-
|
3495 |
-
// Disable .fire
|
3496 |
-
// Also disable .add unless we have memory (since it would have no effect)
|
3497 |
-
// Abort any pending executions
|
3498 |
-
lock: function() {
|
3499 |
-
locked = queue = [];
|
3500 |
-
if ( !memory && !firing ) {
|
3501 |
-
list = memory = "";
|
3502 |
-
}
|
3503 |
-
return this;
|
3504 |
-
},
|
3505 |
-
locked: function() {
|
3506 |
-
return !!locked;
|
3507 |
-
},
|
3508 |
-
|
3509 |
-
// Call all callbacks with the given context and arguments
|
3510 |
-
fireWith: function( context, args ) {
|
3511 |
-
if ( !locked ) {
|
3512 |
-
args = args || [];
|
3513 |
-
args = [ context, args.slice ? args.slice() : args ];
|
3514 |
-
queue.push( args );
|
3515 |
-
if ( !firing ) {
|
3516 |
-
fire();
|
3517 |
-
}
|
3518 |
-
}
|
3519 |
-
return this;
|
3520 |
-
},
|
3521 |
-
|
3522 |
-
// Call all the callbacks with the given arguments
|
3523 |
-
fire: function() {
|
3524 |
-
self.fireWith( this, arguments );
|
3525 |
-
return this;
|
3526 |
-
},
|
3527 |
-
|
3528 |
-
// To know if the callbacks have already been called at least once
|
3529 |
-
fired: function() {
|
3530 |
-
return !!fired;
|
3531 |
-
}
|
3532 |
-
};
|
3533 |
-
|
3534 |
-
return self;
|
3535 |
-
};
|
3536 |
-
|
3537 |
-
|
3538 |
-
function Identity( v ) {
|
3539 |
-
return v;
|
3540 |
-
}
|
3541 |
-
function Thrower( ex ) {
|
3542 |
-
throw ex;
|
3543 |
-
}
|
3544 |
-
|
3545 |
-
function adoptValue( value, resolve, reject, noValue ) {
|
3546 |
-
var method;
|
3547 |
-
|
3548 |
-
try {
|
3549 |
-
|
3550 |
-
// Check for promise aspect first to privilege synchronous behavior
|
3551 |
-
if ( value && jQuery.isFunction( ( method = value.promise ) ) ) {
|
3552 |
-
method.call( value ).done( resolve ).fail( reject );
|
3553 |
-
|
3554 |
-
// Other thenables
|
3555 |
-
} else if ( value && jQuery.isFunction( ( method = value.then ) ) ) {
|
3556 |
-
method.call( value, resolve, reject );
|
3557 |
-
|
3558 |
-
// Other non-thenables
|
3559 |
-
} else {
|
3560 |
-
|
3561 |
-
// Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer:
|
3562 |
-
// * false: [ value ].slice( 0 ) => resolve( value )
|
3563 |
-
// * true: [ value ].slice( 1 ) => resolve()
|
3564 |
-
resolve.apply( undefined, [ value ].slice( noValue ) );
|
3565 |
-
}
|
3566 |
-
|
3567 |
-
// For Promises/A+, convert exceptions into rejections
|
3568 |
-
// Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in
|
3569 |
-
// Deferred#then to conditionally suppress rejection.
|
3570 |
-
} catch ( value ) {
|
3571 |
-
|
3572 |
-
// Support: Android 4.0 only
|
3573 |
-
// Strict mode functions invoked without .call/.apply get global-object context
|
3574 |
-
reject.apply( undefined, [ value ] );
|
3575 |
-
}
|
3576 |
-
}
|
3577 |
-
|
3578 |
-
jQuery.extend( {
|
3579 |
-
|
3580 |
-
Deferred: function( func ) {
|
3581 |
-
var tuples = [
|
3582 |
-
|
3583 |
-
// action, add listener, callbacks,
|
3584 |
-
// ... .then handlers, argument index, [final state]
|
3585 |
-
[ "notify", "progress", jQuery.Callbacks( "memory" ),
|
3586 |
-
jQuery.Callbacks( "memory" ), 2 ],
|
3587 |
-
[ "resolve", "done", jQuery.Callbacks( "once memory" ),
|
3588 |
-
jQuery.Callbacks( "once memory" ), 0, "resolved" ],
|
3589 |
-
[ "reject", "fail", jQuery.Callbacks( "once memory" ),
|
3590 |
-
jQuery.Callbacks( "once memory" ), 1, "rejected" ]
|
3591 |
-
],
|
3592 |
-
state = "pending",
|
3593 |
-
promise = {
|
3594 |
-
state: function() {
|
3595 |
-
return state;
|
3596 |
-
},
|
3597 |
-
always: function() {
|
3598 |
-
deferred.done( arguments ).fail( arguments );
|
3599 |
-
return this;
|
3600 |
-
},
|
3601 |
-
"catch": function( fn ) {
|
3602 |
-
return promise.then( null, fn );
|
3603 |
-
},
|
3604 |
-
|
3605 |
-
// Keep pipe for back-compat
|
3606 |
-
pipe: function( /* fnDone, fnFail, fnProgress */ ) {
|
3607 |
-
var fns = arguments;
|
3608 |
-
|
3609 |
-
return jQuery.Deferred( function( newDefer ) {
|
3610 |
-
jQuery.each( tuples, function( i, tuple ) {
|
3611 |
-
|
3612 |
-
// Map tuples (progress, done, fail) to arguments (done, fail, progress)
|
3613 |
-
var fn = jQuery.isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ];
|
3614 |
-
|
3615 |
-
// deferred.progress(function() { bind to newDefer or newDefer.notify })
|
3616 |
-
// deferred.done(function() { bind to newDefer or newDefer.resolve })
|
3617 |
-
// deferred.fail(function() { bind to newDefer or newDefer.reject })
|
3618 |
-
deferred[ tuple[ 1 ] ]( function() {
|
3619 |
-
var returned = fn && fn.apply( this, arguments );
|
3620 |
-
if ( returned && jQuery.isFunction( returned.promise ) ) {
|
3621 |
-
returned.promise()
|
3622 |
-
.progress( newDefer.notify )
|
3623 |
-
.done( newDefer.resolve )
|
3624 |
-
.fail( newDefer.reject );
|
3625 |
-
} else {
|
3626 |
-
newDefer[ tuple[ 0 ] + "With" ](
|
3627 |
-
this,
|
3628 |
-
fn ? [ returned ] : arguments
|
3629 |
-
);
|
3630 |
-
}
|
3631 |
-
} );
|
3632 |
-
} );
|
3633 |
-
fns = null;
|
3634 |
-
} ).promise();
|
3635 |
-
},
|
3636 |
-
then: function( onFulfilled, onRejected, onProgress ) {
|
3637 |
-
var maxDepth = 0;
|
3638 |
-
function resolve( depth, deferred, handler, special ) {
|
3639 |
-
return function() {
|
3640 |
-
var that = this,
|
3641 |
-
args = arguments,
|
3642 |
-
mightThrow = function() {
|
3643 |
-
var returned, then;
|
3644 |
-
|
3645 |
-
// Support: Promises/A+ section 2.3.3.3.3
|
3646 |
-
// https://promisesaplus.com/#point-59
|
3647 |
-
// Ignore double-resolution attempts
|
3648 |
-
if ( depth < maxDepth ) {
|
3649 |
-
return;
|
3650 |
-
}
|
3651 |
-
|
3652 |
-
returned = handler.apply( that, args );
|
3653 |
-
|
3654 |
-
// Support: Promises/A+ section 2.3.1
|
3655 |
-
// https://promisesaplus.com/#point-48
|
3656 |
-
if ( returned === deferred.promise() ) {
|
3657 |
-
throw new TypeError( "Thenable self-resolution" );
|
3658 |
-
}
|
3659 |
-
|
3660 |
-
// Support: Promises/A+ sections 2.3.3.1, 3.5
|
3661 |
-
// https://promisesaplus.com/#point-54
|
3662 |
-
// https://promisesaplus.com/#point-75
|
3663 |
-
// Retrieve `then` only once
|
3664 |
-
then = returned &&
|
3665 |
-
|
3666 |
-
// Support: Promises/A+ section 2.3.4
|
3667 |
-
// https://promisesaplus.com/#point-64
|
3668 |
-
// Only check objects and functions for thenability
|
3669 |
-
( typeof returned === "object" ||
|
3670 |
-
typeof returned === "function" ) &&
|
3671 |
-
returned.then;
|
3672 |
-
|
3673 |
-
// Handle a returned thenable
|
3674 |
-
if ( jQuery.isFunction( then ) ) {
|
3675 |
-
|
3676 |
-
// Special processors (notify) just wait for resolution
|
3677 |
-
if ( special ) {
|
3678 |
-
then.call(
|
3679 |
-
returned,
|
3680 |
-
resolve( maxDepth, deferred, Identity, special ),
|
3681 |
-
resolve( maxDepth, deferred, Thrower, special )
|
3682 |
-
);
|
3683 |
-
|
3684 |
-
// Normal processors (resolve) also hook into progress
|
3685 |
-
} else {
|
3686 |
-
|
3687 |
-
// ...and disregard older resolution values
|
3688 |
-
maxDepth++;
|
3689 |
-
|
3690 |
-
then.call(
|
3691 |
-
returned,
|
3692 |
-
resolve( maxDepth, deferred, Identity, special ),
|
3693 |
-
resolve( maxDepth, deferred, Thrower, special ),
|
3694 |
-
resolve( maxDepth, deferred, Identity,
|
3695 |
-
deferred.notifyWith )
|
3696 |
-
);
|
3697 |
-
}
|
3698 |
-
|
3699 |
-
// Handle all other returned values
|
3700 |
-
} else {
|
3701 |
-
|
3702 |
-
// Only substitute handlers pass on context
|
3703 |
-
// and multiple values (non-spec behavior)
|
3704 |
-
if ( handler !== Identity ) {
|
3705 |
-
that = undefined;
|
3706 |
-
args = [ returned ];
|
3707 |
-
}
|
3708 |
-
|
3709 |
-
// Process the value(s)
|
3710 |
-
// Default process is resolve
|
3711 |
-
( special || deferred.resolveWith )( that, args );
|
3712 |
-
}
|
3713 |
-
},
|
3714 |
-
|
3715 |
-
// Only normal processors (resolve) catch and reject exceptions
|
3716 |
-
process = special ?
|
3717 |
-
mightThrow :
|
3718 |
-
function() {
|
3719 |
-
try {
|
3720 |
-
mightThrow();
|
3721 |
-
} catch ( e ) {
|
3722 |
-
|
3723 |
-
if ( jQuery.Deferred.exceptionHook ) {
|
3724 |
-
jQuery.Deferred.exceptionHook( e,
|
3725 |
-
process.stackTrace );
|
3726 |
-
}
|
3727 |
-
|
3728 |
-
// Support: Promises/A+ section 2.3.3.3.4.1
|
3729 |
-
// https://promisesaplus.com/#point-61
|
3730 |
-
// Ignore post-resolution exceptions
|
3731 |
-
if ( depth + 1 >= maxDepth ) {
|
3732 |
-
|
3733 |
-
// Only substitute handlers pass on context
|
3734 |
-
// and multiple values (non-spec behavior)
|
3735 |
-
if ( handler !== Thrower ) {
|
3736 |
-
that = undefined;
|
3737 |
-
args = [ e ];
|
3738 |
-
}
|
3739 |
-
|
3740 |
-
deferred.rejectWith( that, args );
|
3741 |
-
}
|
3742 |
-
}
|
3743 |
-
};
|
3744 |
-
|
3745 |
-
// Support: Promises/A+ section 2.3.3.3.1
|
3746 |
-
// https://promisesaplus.com/#point-57
|
3747 |
-
// Re-resolve promises immediately to dodge false rejection from
|
3748 |
-
// subsequent errors
|
3749 |
-
if ( depth ) {
|
3750 |
-
process();
|
3751 |
-
} else {
|
3752 |
-
|
3753 |
-
// Call an optional hook to record the stack, in case of exception
|
3754 |
-
// since it's otherwise lost when execution goes async
|
3755 |
-
if ( jQuery.Deferred.getStackHook ) {
|
3756 |
-
process.stackTrace = jQuery.Deferred.getStackHook();
|
3757 |
-
}
|
3758 |
-
window.setTimeout( process );
|
3759 |
-
}
|
3760 |
-
};
|
3761 |
-
}
|
3762 |
-
|
3763 |
-
return jQuery.Deferred( function( newDefer ) {
|
3764 |
-
|
3765 |
-
// progress_handlers.add( ... )
|
3766 |
-
tuples[ 0 ][ 3 ].add(
|
3767 |
-
resolve(
|
3768 |
-
0,
|
3769 |
-
newDefer,
|
3770 |
-
jQuery.isFunction( onProgress ) ?
|
3771 |
-
onProgress :
|
3772 |
-
Identity,
|
3773 |
-
newDefer.notifyWith
|
3774 |
-
)
|
3775 |
-
);
|
3776 |
-
|
3777 |
-
// fulfilled_handlers.add( ... )
|
3778 |
-
tuples[ 1 ][ 3 ].add(
|
3779 |
-
resolve(
|
3780 |
-
0,
|
3781 |
-
newDefer,
|
3782 |
-
jQuery.isFunction( onFulfilled ) ?
|
3783 |
-
onFulfilled :
|
3784 |
-
Identity
|
3785 |
-
)
|
3786 |
-
);
|
3787 |
-
|
3788 |
-
// rejected_handlers.add( ... )
|
3789 |
-
tuples[ 2 ][ 3 ].add(
|
3790 |
-
resolve(
|
3791 |
-
0,
|
3792 |
-
newDefer,
|
3793 |
-
jQuery.isFunction( onRejected ) ?
|
3794 |
-
onRejected :
|
3795 |
-
Thrower
|
3796 |
-
)
|
3797 |
-
);
|
3798 |
-
} ).promise();
|
3799 |
-
},
|
3800 |
-
|
3801 |
-
// Get a promise for this deferred
|
3802 |
-
// If obj is provided, the promise aspect is added to the object
|
3803 |
-
promise: function( obj ) {
|
3804 |
-
return obj != null ? jQuery.extend( obj, promise ) : promise;
|
3805 |
-
}
|
3806 |
-
},
|
3807 |
-
deferred = {};
|
3808 |
-
|
3809 |
-
// Add list-specific methods
|
3810 |
-
jQuery.each( tuples, function( i, tuple ) {
|
3811 |
-
var list = tuple[ 2 ],
|
3812 |
-
stateString = tuple[ 5 ];
|
3813 |
-
|
3814 |
-
// promise.progress = list.add
|
3815 |
-
// promise.done = list.add
|
3816 |
-
// promise.fail = list.add
|
3817 |
-
promise[ tuple[ 1 ] ] = list.add;
|
3818 |
-
|
3819 |
-
// Handle state
|
3820 |
-
if ( stateString ) {
|
3821 |
-
list.add(
|
3822 |
-
function() {
|
3823 |
-
|
3824 |
-
// state = "resolved" (i.e., fulfilled)
|
3825 |
-
// state = "rejected"
|
3826 |
-
state = stateString;
|
3827 |
-
},
|
3828 |
-
|
3829 |
-
// rejected_callbacks.disable
|
3830 |
-
// fulfilled_callbacks.disable
|
3831 |
-
tuples[ 3 - i ][ 2 ].disable,
|
3832 |
-
|
3833 |
-
// progress_callbacks.lock
|
3834 |
-
tuples[ 0 ][ 2 ].lock
|
3835 |
-
);
|
3836 |
-
}
|
3837 |
-
|
3838 |
-
// progress_handlers.fire
|
3839 |
-
// fulfilled_handlers.fire
|
3840 |
-
// rejected_handlers.fire
|
3841 |
-
list.add( tuple[ 3 ].fire );
|
3842 |
-
|
3843 |
-
// deferred.notify = function() { deferred.notifyWith(...) }
|
3844 |
-
// deferred.resolve = function() { deferred.resolveWith(...) }
|
3845 |
-
// deferred.reject = function() { deferred.rejectWith(...) }
|
3846 |
-
deferred[ tuple[ 0 ] ] = function() {
|
3847 |
-
deferred[ tuple[ 0 ] + "With" ]( this === deferred ? undefined : this, arguments );
|
3848 |
-
return this;
|
3849 |
-
};
|
3850 |
-
|
3851 |
-
// deferred.notifyWith = list.fireWith
|
3852 |
-
// deferred.resolveWith = list.fireWith
|
3853 |
-
// deferred.rejectWith = list.fireWith
|
3854 |
-
deferred[ tuple[ 0 ] + "With" ] = list.fireWith;
|
3855 |
-
} );
|
3856 |
-
|
3857 |
-
// Make the deferred a promise
|
3858 |
-
promise.promise( deferred );
|
3859 |
-
|
3860 |
-
// Call given func if any
|
3861 |
-
if ( func ) {
|
3862 |
-
func.call( deferred, deferred );
|
3863 |
-
}
|
3864 |
-
|
3865 |
-
// All done!
|
3866 |
-
return deferred;
|
3867 |
-
},
|
3868 |
-
|
3869 |
-
// Deferred helper
|
3870 |
-
when: function( singleValue ) {
|
3871 |
-
var
|
3872 |
-
|
3873 |
-
// count of uncompleted subordinates
|
3874 |
-
remaining = arguments.length,
|
3875 |
-
|
3876 |
-
// count of unprocessed arguments
|
3877 |
-
i = remaining,
|
3878 |
-
|
3879 |
-
// subordinate fulfillment data
|
3880 |
-
resolveContexts = Array( i ),
|
3881 |
-
resolveValues = slice.call( arguments ),
|
3882 |
-
|
3883 |
-
// the master Deferred
|
3884 |
-
master = jQuery.Deferred(),
|
3885 |
-
|
3886 |
-
// subordinate callback factory
|
3887 |
-
updateFunc = function( i ) {
|
3888 |
-
return function( value ) {
|
3889 |
-
resolveContexts[ i ] = this;
|
3890 |
-
resolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;
|
3891 |
-
if ( !( --remaining ) ) {
|
3892 |
-
master.resolveWith( resolveContexts, resolveValues );
|
3893 |
-
}
|
3894 |
-
};
|
3895 |
-
};
|
3896 |
-
|
3897 |
-
// Single- and empty arguments are adopted like Promise.resolve
|
3898 |
-
if ( remaining <= 1 ) {
|
3899 |
-
adoptValue( singleValue, master.done( updateFunc( i ) ).resolve, master.reject,
|
3900 |
-
!remaining );
|
3901 |
-
|
3902 |
-
// Use .then() to unwrap secondary thenables (cf. gh-3000)
|
3903 |
-
if ( master.state() === "pending" ||
|
3904 |
-
jQuery.isFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) {
|
3905 |
-
|
3906 |
-
return master.then();
|
3907 |
-
}
|
3908 |
-
}
|
3909 |
-
|
3910 |
-
// Multiple arguments are aggregated like Promise.all array elements
|
3911 |
-
while ( i-- ) {
|
3912 |
-
adoptValue( resolveValues[ i ], updateFunc( i ), master.reject );
|
3913 |
-
}
|
3914 |
-
|
3915 |
-
return master.promise();
|
3916 |
-
}
|
3917 |
-
} );
|
3918 |
-
|
3919 |
-
|
3920 |
-
// These usually indicate a programmer mistake during development,
|
3921 |
-
// warn about them ASAP rather than swallowing them by default.
|
3922 |
-
var rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;
|
3923 |
-
|
3924 |
-
jQuery.Deferred.exceptionHook = function( error, stack ) {
|
3925 |
-
|
3926 |
-
// Support: IE 8 - 9 only
|
3927 |
-
// Console exists when dev tools are open, which can happen at any time
|
3928 |
-
if ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) {
|
3929 |
-
window.console.warn( "jQuery.Deferred exception: " + error.message, error.stack, stack );
|
3930 |
-
}
|
3931 |
-
};
|
3932 |
-
|
3933 |
-
|
3934 |
-
|
3935 |
-
|
3936 |
-
jQuery.readyException = function( error ) {
|
3937 |
-
window.setTimeout( function() {
|
3938 |
-
throw error;
|
3939 |
-
} );
|
3940 |
-
};
|
3941 |
-
|
3942 |
-
|
3943 |
-
|
3944 |
-
|
3945 |
-
// The deferred used on DOM ready
|
3946 |
-
var readyList = jQuery.Deferred();
|
3947 |
-
|
3948 |
-
jQuery.fn.ready = function( fn ) {
|
3949 |
-
|
3950 |
-
readyList
|
3951 |
-
.then( fn )
|
3952 |
-
|
3953 |
-
// Wrap jQuery.readyException in a function so that the lookup
|
3954 |
-
// happens at the time of error handling instead of callback
|
3955 |
-
// registration.
|
3956 |
-
.catch( function( error ) {
|
3957 |
-
jQuery.readyException( error );
|
3958 |
-
} );
|
3959 |
-
|
3960 |
-
return this;
|
3961 |
-
};
|
3962 |
-
|
3963 |
-
jQuery.extend( {
|
3964 |
-
|
3965 |
-
// Is the DOM ready to be used? Set to true once it occurs.
|
3966 |
-
isReady: false,
|
3967 |
-
|
3968 |
-
// A counter to track how many items to wait for before
|
3969 |
-
// the ready event fires. See #6781
|
3970 |
-
readyWait: 1,
|
3971 |
-
|
3972 |
-
// Handle when the DOM is ready
|
3973 |
-
ready: function( wait ) {
|
3974 |
-
|
3975 |
-
// Abort if there are pending holds or we're already ready
|
3976 |
-
if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {
|
3977 |
-
return;
|
3978 |
-
}
|
3979 |
-
|
3980 |
-
// Remember that the DOM is ready
|
3981 |
-
jQuery.isReady = true;
|
3982 |
-
|
3983 |
-
// If a normal DOM Ready event fired, decrement, and wait if need be
|
3984 |
-
if ( wait !== true && --jQuery.readyWait > 0 ) {
|
3985 |
-
return;
|
3986 |
-
}
|
3987 |
-
|
3988 |
-
// If there are functions bound, to execute
|
3989 |
-
readyList.resolveWith( document, [ jQuery ] );
|
3990 |
-
}
|
3991 |
-
} );
|
3992 |
-
|
3993 |
-
jQuery.ready.then = readyList.then;
|
3994 |
-
|
3995 |
-
// The ready event handler and self cleanup method
|
3996 |
-
function completed() {
|
3997 |
-
document.removeEventListener( "DOMContentLoaded", completed );
|
3998 |
-
window.removeEventListener( "load", completed );
|
3999 |
-
jQuery.ready();
|
4000 |
-
}
|
4001 |
-
|
4002 |
-
// Catch cases where $(document).ready() is called
|
4003 |
-
// after the browser event has already occurred.
|
4004 |
-
// Support: IE <=9 - 10 only
|
4005 |
-
// Older IE sometimes signals "interactive" too soon
|
4006 |
-
if ( document.readyState === "complete" ||
|
4007 |
-
( document.readyState !== "loading" && !document.documentElement.doScroll ) ) {
|
4008 |
-
|
4009 |
-
// Handle it asynchronously to allow scripts the opportunity to delay ready
|
4010 |
-
window.setTimeout( jQuery.ready );
|
4011 |
-
|
4012 |
-
} else {
|
4013 |
-
|
4014 |
-
// Use the handy event callback
|
4015 |
-
document.addEventListener( "DOMContentLoaded", completed );
|
4016 |
-
|
4017 |
-
// A fallback to window.onload, that will always work
|
4018 |
-
window.addEventListener( "load", completed );
|
4019 |
-
}
|
4020 |
-
|
4021 |
-
|
4022 |
-
|
4023 |
-
|
4024 |
-
// Multifunctional method to get and set values of a collection
|
4025 |
-
// The value/s can optionally be executed if it's a function
|
4026 |
-
var access = function( elems, fn, key, value, chainable, emptyGet, raw ) {
|
4027 |
-
var i = 0,
|
4028 |
-
len = elems.length,
|
4029 |
-
bulk = key == null;
|
4030 |
-
|
4031 |
-
// Sets many values
|
4032 |
-
if ( jQuery.type( key ) === "object" ) {
|
4033 |
-
chainable = true;
|
4034 |
-
for ( i in key ) {
|
4035 |
-
access( elems, fn, i, key[ i ], true, emptyGet, raw );
|
4036 |
-
}
|
4037 |
-
|
4038 |
-
// Sets one value
|
4039 |
-
} else if ( value !== undefined ) {
|
4040 |
-
chainable = true;
|
4041 |
-
|
4042 |
-
if ( !jQuery.isFunction( value ) ) {
|
4043 |
-
raw = true;
|
4044 |
-
}
|
4045 |
-
|
4046 |
-
if ( bulk ) {
|
4047 |
-
|
4048 |
-
// Bulk operations run against the entire set
|
4049 |
-
if ( raw ) {
|
4050 |
-
fn.call( elems, value );
|
4051 |
-
fn = null;
|
4052 |
-
|
4053 |
-
// ...except when executing function values
|
4054 |
-
} else {
|
4055 |
-
bulk = fn;
|
4056 |
-
fn = function( elem, key, value ) {
|
4057 |
-
return bulk.call( jQuery( elem ), value );
|
4058 |
-
};
|
4059 |
-
}
|
4060 |
-
}
|
4061 |
-
|
4062 |
-
if ( fn ) {
|
4063 |
-
for ( ; i < len; i++ ) {
|
4064 |
-
fn(
|
4065 |
-
elems[ i ], key, raw ?
|
4066 |
-
value :
|
4067 |
-
value.call( elems[ i ], i, fn( elems[ i ], key ) )
|
4068 |
-
);
|
4069 |
-
}
|
4070 |
-
}
|
4071 |
-
}
|
4072 |
-
|
4073 |
-
if ( chainable ) {
|
4074 |
-
return elems;
|
4075 |
-
}
|
4076 |
-
|
4077 |
-
// Gets
|
4078 |
-
if ( bulk ) {
|
4079 |
-
return fn.call( elems );
|
4080 |
-
}
|
4081 |
-
|
4082 |
-
return len ? fn( elems[ 0 ], key ) : emptyGet;
|
4083 |
-
};
|
4084 |
-
var acceptData = function( owner ) {
|
4085 |
-
|
4086 |
-
// Accepts only:
|
4087 |
-
// - Node
|
4088 |
-
// - Node.ELEMENT_NODE
|
4089 |
-
// - Node.DOCUMENT_NODE
|
4090 |
-
// - Object
|
4091 |
-
// - Any
|
4092 |
-
return owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType );
|
4093 |
-
};
|
4094 |
-
|
4095 |
-
|
4096 |
-
|
4097 |
-
|
4098 |
-
function Data() {
|
4099 |
-
this.expando = jQuery.expando + Data.uid++;
|
4100 |
-
}
|
4101 |
-
|
4102 |
-
Data.uid = 1;
|
4103 |
-
|
4104 |
-
Data.prototype = {
|
4105 |
-
|
4106 |
-
cache: function( owner ) {
|
4107 |
-
|
4108 |
-
// Check if the owner object already has a cache
|
4109 |
-
var value = owner[ this.expando ];
|
4110 |
-
|
4111 |
-
// If not, create one
|
4112 |
-
if ( !value ) {
|
4113 |
-
value = {};
|
4114 |
-
|
4115 |
-
// We can accept data for non-element nodes in modern browsers,
|
4116 |
-
// but we should not, see #8335.
|
4117 |
-
// Always return an empty object.
|
4118 |
-
if ( acceptData( owner ) ) {
|
4119 |
-
|
4120 |
-
// If it is a node unlikely to be stringify-ed or looped over
|
4121 |
-
// use plain assignment
|
4122 |
-
if ( owner.nodeType ) {
|
4123 |
-
owner[ this.expando ] = value;
|
4124 |
-
|
4125 |
-
// Otherwise secure it in a non-enumerable property
|
4126 |
-
// configurable must be true to allow the property to be
|
4127 |
-
// deleted when data is removed
|
4128 |
-
} else {
|
4129 |
-
Object.defineProperty( owner, this.expando, {
|
4130 |
-
value: value,
|
4131 |
-
configurable: true
|
4132 |
-
} );
|
4133 |
-
}
|
4134 |
-
}
|
4135 |
-
}
|
4136 |
-
|
4137 |
-
return value;
|
4138 |
-
},
|
4139 |
-
set: function( owner, data, value ) {
|
4140 |
-
var prop,
|
4141 |
-
cache = this.cache( owner );
|
4142 |
-
|
4143 |
-
// Handle: [ owner, key, value ] args
|
4144 |
-
// Always use camelCase key (gh-2257)
|
4145 |
-
if ( typeof data === "string" ) {
|
4146 |
-
cache[ jQuery.camelCase( data ) ] = value;
|
4147 |
-
|
4148 |
-
// Handle: [ owner, { properties } ] args
|
4149 |
-
} else {
|
4150 |
-
|
4151 |
-
// Copy the properties one-by-one to the cache object
|
4152 |
-
for ( prop in data ) {
|
4153 |
-
cache[ jQuery.camelCase( prop ) ] = data[ prop ];
|
4154 |
-
}
|
4155 |
-
}
|
4156 |
-
return cache;
|
4157 |
-
},
|
4158 |
-
get: function( owner, key ) {
|
4159 |
-
return key === undefined ?
|
4160 |
-
this.cache( owner ) :
|
4161 |
-
|
4162 |
-
// Always use camelCase key (gh-2257)
|
4163 |
-
owner[ this.expando ] && owner[ this.expando ][ jQuery.camelCase( key ) ];
|
4164 |
-
},
|
4165 |
-
access: function( owner, key, value ) {
|
4166 |
-
|
4167 |
-
// In cases where either:
|
4168 |
-
//
|
4169 |
-
// 1. No key was specified
|
4170 |
-
// 2. A string key was specified, but no value provided
|
4171 |
-
//
|
4172 |
-
// Take the "read" path and allow the get method to determine
|
4173 |
-
// which value to return, respectively either:
|
4174 |
-
//
|
4175 |
-
// 1. The entire cache object
|
4176 |
-
// 2. The data stored at the key
|
4177 |
-
//
|
4178 |
-
if ( key === undefined ||
|
4179 |
-
( ( key && typeof key === "string" ) && value === undefined ) ) {
|
4180 |
-
|
4181 |
-
return this.get( owner, key );
|
4182 |
-
}
|
4183 |
-
|
4184 |
-
// When the key is not a string, or both a key and value
|
4185 |
-
// are specified, set or extend (existing objects) with either:
|
4186 |
-
//
|
4187 |
-
// 1. An object of properties
|
4188 |
-
// 2. A key and value
|
4189 |
-
//
|
4190 |
-
this.set( owner, key, value );
|
4191 |
-
|
4192 |
-
// Since the "set" path can have two possible entry points
|
4193 |
-
// return the expected data based on which path was taken[*]
|
4194 |
-
return value !== undefined ? value : key;
|
4195 |
-
},
|
4196 |
-
remove: function( owner, key ) {
|
4197 |
-
var i,
|
4198 |
-
cache = owner[ this.expando ];
|
4199 |
-
|
4200 |
-
if ( cache === undefined ) {
|
4201 |
-
return;
|
4202 |
-
}
|
4203 |
-
|
4204 |
-
if ( key !== undefined ) {
|
4205 |
-
|
4206 |
-
// Support array or space separated string of keys
|
4207 |
-
if ( Array.isArray( key ) ) {
|
4208 |
-
|
4209 |
-
// If key is an array of keys...
|
4210 |
-
// We always set camelCase keys, so remove that.
|
4211 |
-
key = key.map( jQuery.camelCase );
|
4212 |
-
} else {
|
4213 |
-
key = jQuery.camelCase( key );
|
4214 |
-
|
4215 |
-
// If a key with the spaces exists, use it.
|
4216 |
-
// Otherwise, create an array by matching non-whitespace
|
4217 |
-
key = key in cache ?
|
4218 |
-
[ key ] :
|
4219 |
-
( key.match( rnothtmlwhite ) || [] );
|
4220 |
-
}
|
4221 |
-
|
4222 |
-
i = key.length;
|
4223 |
-
|
4224 |
-
while ( i-- ) {
|
4225 |
-
delete cache[ key[ i ] ];
|
4226 |
-
}
|
4227 |
-
}
|
4228 |
-
|
4229 |
-
// Remove the expando if there's no more data
|
4230 |
-
if ( key === undefined || jQuery.isEmptyObject( cache ) ) {
|
4231 |
-
|
4232 |
-
// Support: Chrome <=35 - 45
|
4233 |
-
// Webkit & Blink performance suffers when deleting properties
|
4234 |
-
// from DOM nodes, so set to undefined instead
|
4235 |
-
// https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted)
|
4236 |
-
if ( owner.nodeType ) {
|
4237 |
-
owner[ this.expando ] = undefined;
|
4238 |
-
} else {
|
4239 |
-
delete owner[ this.expando ];
|
4240 |
-
}
|
4241 |
-
}
|
4242 |
-
},
|
4243 |
-
hasData: function( owner ) {
|
4244 |
-
var cache = owner[ this.expando ];
|
4245 |
-
return cache !== undefined && !jQuery.isEmptyObject( cache );
|
4246 |
-
}
|
4247 |
-
};
|
4248 |
-
var dataPriv = new Data();
|
4249 |
-
|
4250 |
-
var dataUser = new Data();
|
4251 |
-
|
4252 |
-
|
4253 |
-
|
4254 |
-
// Implementation Summary
|
4255 |
-
//
|
4256 |
-
// 1. Enforce API surface and semantic compatibility with 1.9.x branch
|
4257 |
-
// 2. Improve the module's maintainability by reducing the storage
|
4258 |
-
// paths to a single mechanism.
|
4259 |
-
// 3. Use the same single mechanism to support "private" and "user" data.
|
4260 |
-
// 4. _Never_ expose "private" data to user code (TODO: Drop _data, _removeData)
|
4261 |
-
// 5. Avoid exposing implementation details on user objects (eg. expando properties)
|
4262 |
-
// 6. Provide a clear path for implementation upgrade to WeakMap in 2014
|
4263 |
-
|
4264 |
-
var rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,
|
4265 |
-
rmultiDash = /[A-Z]/g;
|
4266 |
-
|
4267 |
-
function getData( data ) {
|
4268 |
-
if ( data === "true" ) {
|
4269 |
-
return true;
|
4270 |
-
}
|
4271 |
-
|
4272 |
-
if ( data === "false" ) {
|
4273 |
-
return false;
|
4274 |
-
}
|
4275 |
-
|
4276 |
-
if ( data === "null" ) {
|
4277 |
-
return null;
|
4278 |
-
}
|
4279 |
-
|
4280 |
-
// Only convert to a number if it doesn't change the string
|
4281 |
-
if ( data === +data + "" ) {
|
4282 |
-
return +data;
|
4283 |
-
}
|
4284 |
-
|
4285 |
-
if ( rbrace.test( data ) ) {
|
4286 |
-
return JSON.parse( data );
|
4287 |
-
}
|
4288 |
-
|
4289 |
-
return data;
|
4290 |
-
}
|
4291 |
-
|
4292 |
-
function dataAttr( elem, key, data ) {
|
4293 |
-
var name;
|
4294 |
-
|
4295 |
-
// If nothing was found internally, try to fetch any
|
4296 |
-
// data from the HTML5 data-* attribute
|
4297 |
-
if ( data === undefined && elem.nodeType === 1 ) {
|
4298 |
-
name = "data-" + key.replace( rmultiDash, "-$&" ).toLowerCase();
|
4299 |
-
data = elem.getAttribute( name );
|
4300 |
-
|
4301 |
-
if ( typeof data === "string" ) {
|
4302 |
-
try {
|
4303 |
-
data = getData( data );
|
4304 |
-
} catch ( e ) {}
|
4305 |
-
|
4306 |
-
// Make sure we set the data so it isn't changed later
|
4307 |
-
dataUser.set( elem, key, data );
|
4308 |
-
} else {
|
4309 |
-
data = undefined;
|
4310 |
-
}
|
4311 |
-
}
|
4312 |
-
return data;
|
4313 |
-
}
|
4314 |
-
|
4315 |
-
jQuery.extend( {
|
4316 |
-
hasData: function( elem ) {
|
4317 |
-
return dataUser.hasData( elem ) || dataPriv.hasData( elem );
|
4318 |
-
},
|
4319 |
-
|
4320 |
-
data: function( elem, name, data ) {
|
4321 |
-
return dataUser.access( elem, name, data );
|
4322 |
-
},
|
4323 |
-
|
4324 |
-
removeData: function( elem, name ) {
|
4325 |
-
dataUser.remove( elem, name );
|
4326 |
-
},
|
4327 |
-
|
4328 |
-
// TODO: Now that all calls to _data and _removeData have been replaced
|
4329 |
-
// with direct calls to dataPriv methods, these can be deprecated.
|
4330 |
-
_data: function( elem, name, data ) {
|
4331 |
-
return dataPriv.access( elem, name, data );
|
4332 |
-
},
|
4333 |
-
|
4334 |
-
_removeData: function( elem, name ) {
|
4335 |
-
dataPriv.remove( elem, name );
|
4336 |
-
}
|
4337 |
-
} );
|
4338 |
-
|
4339 |
-
jQuery.fn.extend( {
|
4340 |
-
data: function( key, value ) {
|
4341 |
-
var i, name, data,
|
4342 |
-
elem = this[ 0 ],
|
4343 |
-
attrs = elem && elem.attributes;
|
4344 |
-
|
4345 |
-
// Gets all values
|
4346 |
-
if ( key === undefined ) {
|
4347 |
-
if ( this.length ) {
|
4348 |
-
data = dataUser.get( elem );
|
4349 |
-
|
4350 |
-
if ( elem.nodeType === 1 && !dataPriv.get( elem, "hasDataAttrs" ) ) {
|
4351 |
-
i = attrs.length;
|
4352 |
-
while ( i-- ) {
|
4353 |
-
|
4354 |
-
// Support: IE 11 only
|
4355 |
-
// The attrs elements can be null (#14894)
|
4356 |
-
if ( attrs[ i ] ) {
|
4357 |
-
name = attrs[ i ].name;
|
4358 |
-
if ( name.indexOf( "data-" ) === 0 ) {
|
4359 |
-
name = jQuery.camelCase( name.slice( 5 ) );
|
4360 |
-
dataAttr( elem, name, data[ name ] );
|
4361 |
-
}
|
4362 |
-
}
|
4363 |
-
}
|
4364 |
-
dataPriv.set( elem, "hasDataAttrs", true );
|
4365 |
-
}
|
4366 |
-
}
|
4367 |
-
|
4368 |
-
return data;
|
4369 |
-
}
|
4370 |
-
|
4371 |
-
// Sets multiple values
|
4372 |
-
if ( typeof key === "object" ) {
|
4373 |
-
return this.each( function() {
|
4374 |
-
dataUser.set( this, key );
|
4375 |
-
} );
|
4376 |
-
}
|
4377 |
-
|
4378 |
-
return access( this, function( value ) {
|
4379 |
-
var data;
|
4380 |
-
|
4381 |
-
// The calling jQuery object (element matches) is not empty
|
4382 |
-
// (and therefore has an element appears at this[ 0 ]) and the
|
4383 |
-
// `value` parameter was not undefined. An empty jQuery object
|
4384 |
-
// will result in `undefined` for elem = this[ 0 ] which will
|
4385 |
-
// throw an exception if an attempt to read a data cache is made.
|
4386 |
-
if ( elem && value === undefined ) {
|
4387 |
-
|
4388 |
-
// Attempt to get data from the cache
|
4389 |
-
// The key will always be camelCased in Data
|
4390 |
-
data = dataUser.get( elem, key );
|
4391 |
-
if ( data !== undefined ) {
|
4392 |
-
return data;
|
4393 |
-
}
|
4394 |
-
|
4395 |
-
// Attempt to "discover" the data in
|
4396 |
-
// HTML5 custom data-* attrs
|
4397 |
-
data = dataAttr( elem, key );
|
4398 |
-
if ( data !== undefined ) {
|
4399 |
-
return data;
|
4400 |
-
}
|
4401 |
-
|
4402 |
-
// We tried really hard, but the data doesn't exist.
|
4403 |
-
return;
|
4404 |
-
}
|
4405 |
-
|
4406 |
-
// Set the data...
|
4407 |
-
this.each( function() {
|
4408 |
-
|
4409 |
-
// We always store the camelCased key
|
4410 |
-
dataUser.set( this, key, value );
|
4411 |
-
} );
|
4412 |
-
}, null, value, arguments.length > 1, null, true );
|
4413 |
-
},
|
4414 |
-
|
4415 |
-
removeData: function( key ) {
|
4416 |
-
return this.each( function() {
|
4417 |
-
dataUser.remove( this, key );
|
4418 |
-
} );
|
4419 |
-
}
|
4420 |
-
} );
|
4421 |
-
|
4422 |
-
|
4423 |
-
jQuery.extend( {
|
4424 |
-
queue: function( elem, type, data ) {
|
4425 |
-
var queue;
|
4426 |
-
|
4427 |
-
if ( elem ) {
|
4428 |
-
type = ( type || "fx" ) + "queue";
|
4429 |
-
queue = dataPriv.get( elem, type );
|
4430 |
-
|
4431 |
-
// Speed up dequeue by getting out quickly if this is just a lookup
|
4432 |
-
if ( data ) {
|
4433 |
-
if ( !queue || Array.isArray( data ) ) {
|
4434 |
-
queue = dataPriv.access( elem, type, jQuery.makeArray( data ) );
|
4435 |
-
} else {
|
4436 |
-
queue.push( data );
|
4437 |
-
}
|
4438 |
-
}
|
4439 |
-
return queue || [];
|
4440 |
-
}
|
4441 |
-
},
|
4442 |
-
|
4443 |
-
dequeue: function( elem, type ) {
|
4444 |
-
type = type || "fx";
|
4445 |
-
|
4446 |
-
var queue = jQuery.queue( elem, type ),
|
4447 |
-
startLength = queue.length,
|
4448 |
-
fn = queue.shift(),
|
4449 |
-
hooks = jQuery._queueHooks( elem, type ),
|
4450 |
-
next = function() {
|
4451 |
-
jQuery.dequeue( elem, type );
|
4452 |
-
};
|
4453 |
-
|
4454 |
-
// If the fx queue is dequeued, always remove the progress sentinel
|
4455 |
-
if ( fn === "inprogress" ) {
|
4456 |
-
fn = queue.shift();
|
4457 |
-
startLength--;
|
4458 |
-
}
|
4459 |
-
|
4460 |
-
if ( fn ) {
|
4461 |
-
|
4462 |
-
// Add a progress sentinel to prevent the fx queue from being
|
4463 |
-
// automatically dequeued
|
4464 |
-
if ( type === "fx" ) {
|
4465 |
-
queue.unshift( "inprogress" );
|
4466 |
-
}
|
4467 |
-
|
4468 |
-
// Clear up the last queue stop function
|
4469 |
-
delete hooks.stop;
|
4470 |
-
fn.call( elem, next, hooks );
|
4471 |
-
}
|
4472 |
-
|
4473 |
-
if ( !startLength && hooks ) {
|
4474 |
-
hooks.empty.fire();
|
4475 |
-
}
|
4476 |
-
},
|
4477 |
-
|
4478 |
-
// Not public - generate a queueHooks object, or return the current one
|
4479 |
-
_queueHooks: function( elem, type ) {
|
4480 |
-
var key = type + "queueHooks";
|
4481 |
-
return dataPriv.get( elem, key ) || dataPriv.access( elem, key, {
|
4482 |
-
empty: jQuery.Callbacks( "once memory" ).add( function() {
|
4483 |
-
dataPriv.remove( elem, [ type + "queue", key ] );
|
4484 |
-
} )
|
4485 |
-
} );
|
4486 |
-
}
|
4487 |
-
} );
|
4488 |
-
|
4489 |
-
jQuery.fn.extend( {
|
4490 |
-
queue: function( type, data ) {
|
4491 |
-
var setter = 2;
|
4492 |
-
|
4493 |
-
if ( typeof type !== "string" ) {
|
4494 |
-
data = type;
|
4495 |
-
type = "fx";
|
4496 |
-
setter--;
|
4497 |
-
}
|
4498 |
-
|
4499 |
-
if ( arguments.length < setter ) {
|
4500 |
-
return jQuery.queue( this[ 0 ], type );
|
4501 |
-
}
|
4502 |
-
|
4503 |
-
return data === undefined ?
|
4504 |
-
this :
|
4505 |
-
this.each( function() {
|
4506 |
-
var queue = jQuery.queue( this, type, data );
|
4507 |
-
|
4508 |
-
// Ensure a hooks for this queue
|
4509 |
-
jQuery._queueHooks( this, type );
|
4510 |
-
|
4511 |
-
if ( type === "fx" && queue[ 0 ] !== "inprogress" ) {
|
4512 |
-
jQuery.dequeue( this, type );
|
4513 |
-
}
|
4514 |
-
} );
|
4515 |
-
},
|
4516 |
-
dequeue: function( type ) {
|
4517 |
-
return this.each( function() {
|
4518 |
-
jQuery.dequeue( this, type );
|
4519 |
-
} );
|
4520 |
-
},
|
4521 |
-
clearQueue: function( type ) {
|
4522 |
-
return this.queue( type || "fx", [] );
|
4523 |
-
},
|
4524 |
-
|
4525 |
-
// Get a promise resolved when queues of a certain type
|
4526 |
-
// are emptied (fx is the type by default)
|
4527 |
-
promise: function( type, obj ) {
|
4528 |
-
var tmp,
|
4529 |
-
count = 1,
|
4530 |
-
defer = jQuery.Deferred(),
|
4531 |
-
elements = this,
|
4532 |
-
i = this.length,
|
4533 |
-
resolve = function() {
|
4534 |
-
if ( !( --count ) ) {
|
4535 |
-
defer.resolveWith( elements, [ elements ] );
|
4536 |
-
}
|
4537 |
-
};
|
4538 |
-
|
4539 |
-
if ( typeof type !== "string" ) {
|
4540 |
-
obj = type;
|
4541 |
-
type = undefined;
|
4542 |
-
}
|
4543 |
-
type = type || "fx";
|
4544 |
-
|
4545 |
-
while ( i-- ) {
|
4546 |
-
tmp = dataPriv.get( elements[ i ], type + "queueHooks" );
|
4547 |
-
if ( tmp && tmp.empty ) {
|
4548 |
-
count++;
|
4549 |
-
tmp.empty.add( resolve );
|
4550 |
-
}
|
4551 |
-
}
|
4552 |
-
resolve();
|
4553 |
-
return defer.promise( obj );
|
4554 |
-
}
|
4555 |
-
} );
|
4556 |
-
var pnum = ( /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/ ).source;
|
4557 |
-
|
4558 |
-
var rcssNum = new RegExp( "^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i" );
|
4559 |
-
|
4560 |
-
|
4561 |
-
var cssExpand = [ "Top", "Right", "Bottom", "Left" ];
|
4562 |
-
|
4563 |
-
var isHiddenWithinTree = function( elem, el ) {
|
4564 |
-
|
4565 |
-
// isHiddenWithinTree might be called from jQuery#filter function;
|
4566 |
-
// in that case, element will be second argument
|
4567 |
-
elem = el || elem;
|
4568 |
-
|
4569 |
-
// Inline style trumps all
|
4570 |
-
return elem.style.display === "none" ||
|
4571 |
-
elem.style.display === "" &&
|
4572 |
-
|
4573 |
-
// Otherwise, check computed style
|
4574 |
-
// Support: Firefox <=43 - 45
|
4575 |
-
// Disconnected elements can have computed display: none, so first confirm that elem is
|
4576 |
-
// in the document.
|
4577 |
-
jQuery.contains( elem.ownerDocument, elem ) &&
|
4578 |
-
|
4579 |
-
jQuery.css( elem, "display" ) === "none";
|
4580 |
-
};
|
4581 |
-
|
4582 |
-
var swap = function( elem, options, callback, args ) {
|
4583 |
-
var ret, name,
|
4584 |
-
old = {};
|
4585 |
-
|
4586 |
-
// Remember the old values, and insert the new ones
|
4587 |
-
for ( name in options ) {
|
4588 |
-
old[ name ] = elem.style[ name ];
|
4589 |
-
elem.style[ name ] = options[ name ];
|
4590 |
-
}
|
4591 |
-
|
4592 |
-
ret = callback.apply( elem, args || [] );
|
4593 |
-
|
4594 |
-
// Revert the old values
|
4595 |
-
for ( name in options ) {
|
4596 |
-
elem.style[ name ] = old[ name ];
|
4597 |
-
}
|
4598 |
-
|
4599 |
-
return ret;
|
4600 |
-
};
|
4601 |
-
|
4602 |
-
|
4603 |
-
|
4604 |
-
|
4605 |
-
function adjustCSS( elem, prop, valueParts, tween ) {
|
4606 |
-
var adjusted,
|
4607 |
-
scale = 1,
|
4608 |
-
maxIterations = 20,
|
4609 |
-
currentValue = tween ?
|
4610 |
-
function() {
|
4611 |
-
return tween.cur();
|
4612 |
-
} :
|
4613 |
-
function() {
|
4614 |
-
return jQuery.css( elem, prop, "" );
|
4615 |
-
},
|
4616 |
-
initial = currentValue(),
|
4617 |
-
unit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? "" : "px" ),
|
4618 |
-
|
4619 |
-
// Starting value computation is required for potential unit mismatches
|
4620 |
-
initialInUnit = ( jQuery.cssNumber[ prop ] || unit !== "px" && +initial ) &&
|
4621 |
-
rcssNum.exec( jQuery.css( elem, prop ) );
|
4622 |
-
|
4623 |
-
if ( initialInUnit && initialInUnit[ 3 ] !== unit ) {
|
4624 |
-
|
4625 |
-
// Trust units reported by jQuery.css
|
4626 |
-
unit = unit || initialInUnit[ 3 ];
|
4627 |
-
|
4628 |
-
// Make sure we update the tween properties later on
|
4629 |
-
valueParts = valueParts || [];
|
4630 |
-
|
4631 |
-
// Iteratively approximate from a nonzero starting point
|
4632 |
-
initialInUnit = +initial || 1;
|
4633 |
-
|
4634 |
-
do {
|
4635 |
-
|
4636 |
-
// If previous iteration zeroed out, double until we get *something*.
|
4637 |
-
// Use string for doubling so we don't accidentally see scale as unchanged below
|
4638 |
-
scale = scale || ".5";
|
4639 |
-
|
4640 |
-
// Adjust and apply
|
4641 |
-
initialInUnit = initialInUnit / scale;
|
4642 |
-
jQuery.style( elem, prop, initialInUnit + unit );
|
4643 |
-
|
4644 |
-
// Update scale, tolerating zero or NaN from tween.cur()
|
4645 |
-
// Break the loop if scale is unchanged or perfect, or if we've just had enough.
|
4646 |
-
} while (
|
4647 |
-
scale !== ( scale = currentValue() / initial ) && scale !== 1 && --maxIterations
|
4648 |
-
);
|
4649 |
-
}
|
4650 |
-
|
4651 |
-
if ( valueParts ) {
|
4652 |
-
initialInUnit = +initialInUnit || +initial || 0;
|
4653 |
-
|
4654 |
-
// Apply relative offset (+=/-=) if specified
|
4655 |
-
adjusted = valueParts[ 1 ] ?
|
4656 |
-
initialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] :
|
4657 |
-
+valueParts[ 2 ];
|
4658 |
-
if ( tween ) {
|
4659 |
-
tween.unit = unit;
|
4660 |
-
tween.start = initialInUnit;
|
4661 |
-
tween.end = adjusted;
|
4662 |
-
}
|
4663 |
-
}
|
4664 |
-
return adjusted;
|
4665 |
-
}
|
4666 |
-
|
4667 |
-
|
4668 |
-
var defaultDisplayMap = {};
|
4669 |
-
|
4670 |
-
function getDefaultDisplay( elem ) {
|
4671 |
-
var temp,
|
4672 |
-
doc = elem.ownerDocument,
|
4673 |
-
nodeName = elem.nodeName,
|
4674 |
-
display = defaultDisplayMap[ nodeName ];
|
4675 |
-
|
4676 |
-
if ( display ) {
|
4677 |
-
return display;
|
4678 |
-
}
|
4679 |
-
|
4680 |
-
temp = doc.body.appendChild( doc.createElement( nodeName ) );
|
4681 |
-
display = jQuery.css( temp, "display" );
|
4682 |
-
|
4683 |
-
temp.parentNode.removeChild( temp );
|
4684 |
-
|
4685 |
-
if ( display === "none" ) {
|
4686 |
-
display = "block";
|
4687 |
-
}
|
4688 |
-
defaultDisplayMap[ nodeName ] = display;
|
4689 |
-
|
4690 |
-
return display;
|
4691 |
-
}
|
4692 |
-
|
4693 |
-
function showHide( elements, show ) {
|
4694 |
-
var display, elem,
|
4695 |
-
values = [],
|
4696 |
-
index = 0,
|
4697 |
-
length = elements.length;
|
4698 |
-
|
4699 |
-
// Determine new display value for elements that need to change
|
4700 |
-
for ( ; index < length; index++ ) {
|
4701 |
-
elem = elements[ index ];
|
4702 |
-
if ( !elem.style ) {
|
4703 |
-
continue;
|
4704 |
-
}
|
4705 |
-
|
4706 |
-
display = elem.style.display;
|
4707 |
-
if ( show ) {
|
4708 |
-
|
4709 |
-
// Since we force visibility upon cascade-hidden elements, an immediate (and slow)
|
4710 |
-
// check is required in this first loop unless we have a nonempty display value (either
|
4711 |
-
// inline or about-to-be-restored)
|
4712 |
-
if ( display === "none" ) {
|
4713 |
-
values[ index ] = dataPriv.get( elem, "display" ) || null;
|
4714 |
-
if ( !values[ index ] ) {
|
4715 |
-
elem.style.display = "";
|
4716 |
-
}
|
4717 |
-
}
|
4718 |
-
if ( elem.style.display === "" && isHiddenWithinTree( elem ) ) {
|
4719 |
-
values[ index ] = getDefaultDisplay( elem );
|
4720 |
-
}
|
4721 |
-
} else {
|
4722 |
-
if ( display !== "none" ) {
|
4723 |
-
values[ index ] = "none";
|
4724 |
-
|
4725 |
-
// Remember what we're overwriting
|
4726 |
-
dataPriv.set( elem, "display", display );
|
4727 |
-
}
|
4728 |
-
}
|
4729 |
-
}
|
4730 |
-
|
4731 |
-
// Set the display of the elements in a second loop to avoid constant reflow
|
4732 |
-
for ( index = 0; index < length; index++ ) {
|
4733 |
-
if ( values[ index ] != null ) {
|
4734 |
-
elements[ index ].style.display = values[ index ];
|
4735 |
-
}
|
4736 |
-
}
|
4737 |
-
|
4738 |
-
return elements;
|
4739 |
-
}
|
4740 |
-
|
4741 |
-
jQuery.fn.extend( {
|
4742 |
-
show: function() {
|
4743 |
-
return showHide( this, true );
|
4744 |
-
},
|
4745 |
-
hide: function() {
|
4746 |
-
return showHide( this );
|
4747 |
-
},
|
4748 |
-
toggle: function( state ) {
|
4749 |
-
if ( typeof state === "boolean" ) {
|
4750 |
-
return state ? this.show() : this.hide();
|
4751 |
-
}
|
4752 |
-
|
4753 |
-
return this.each( function() {
|
4754 |
-
if ( isHiddenWithinTree( this ) ) {
|
4755 |
-
jQuery( this ).show();
|
4756 |
-
} else {
|
4757 |
-
jQuery( this ).hide();
|
4758 |
-
}
|
4759 |
-
} );
|
4760 |
-
}
|
4761 |
-
} );
|
4762 |
-
var rcheckableType = ( /^(?:checkbox|radio)$/i );
|
4763 |
-
|
4764 |
-
var rtagName = ( /<([a-z][^\/\0>\x20\t\r\n\f]+)/i );
|
4765 |
-
|
4766 |
-
var rscriptType = ( /^$|\/(?:java|ecma)script/i );
|
4767 |
-
|
4768 |
-
|
4769 |
-
|
4770 |
-
// We have to close these tags to support XHTML (#13200)
|
4771 |
-
var wrapMap = {
|
4772 |
-
|
4773 |
-
// Support: IE <=9 only
|
4774 |
-
option: [ 1, "<select multiple='multiple'>", "</select>" ],
|
4775 |
-
|
4776 |
-
// XHTML parsers do not magically insert elements in the
|
4777 |
-
// same way that tag soup parsers do. So we cannot shorten
|
4778 |
-
// this by omitting <tbody> or other required elements.
|
4779 |
-
thead: [ 1, "<table>", "</table>" ],
|
4780 |
-
col: [ 2, "<table><colgroup>", "</colgroup></table>" ],
|
4781 |
-
tr: [ 2, "<table><tbody>", "</tbody></table>" ],
|
4782 |
-
td: [ 3, "<table><tbody><tr>", "</tr></tbody></table>" ],
|
4783 |
-
|
4784 |
-
_default: [ 0, "", "" ]
|
4785 |
-
};
|
4786 |
-
|
4787 |
-
// Support: IE <=9 only
|
4788 |
-
wrapMap.optgroup = wrapMap.option;
|
4789 |
-
|
4790 |
-
wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;
|
4791 |
-
wrapMap.th = wrapMap.td;
|
4792 |
-
|
4793 |
-
|
4794 |
-
function getAll( context, tag ) {
|
4795 |
-
|
4796 |
-
// Support: IE <=9 - 11 only
|
4797 |
-
// Use typeof to avoid zero-argument method invocation on host objects (#15151)
|
4798 |
-
var ret;
|
4799 |
-
|
4800 |
-
if ( typeof context.getElementsByTagName !== "undefined" ) {
|
4801 |
-
ret = context.getElementsByTagName( tag || "*" );
|
4802 |
-
|
4803 |
-
} else if ( typeof context.querySelectorAll !== "undefined" ) {
|
4804 |
-
ret = context.querySelectorAll( tag || "*" );
|
4805 |
-
|
4806 |
-
} else {
|
4807 |
-
ret = [];
|
4808 |
-
}
|
4809 |
-
|
4810 |
-
if ( tag === undefined || tag && nodeName( context, tag ) ) {
|
4811 |
-
return jQuery.merge( [ context ], ret );
|
4812 |
-
}
|
4813 |
-
|
4814 |
-
return ret;
|
4815 |
-
}
|
4816 |
-
|
4817 |
-
|
4818 |
-
// Mark scripts as having already been evaluated
|
4819 |
-
function setGlobalEval( elems, refElements ) {
|
4820 |
-
var i = 0,
|
4821 |
-
l = elems.length;
|
4822 |
-
|
4823 |
-
for ( ; i < l; i++ ) {
|
4824 |
-
dataPriv.set(
|
4825 |
-
elems[ i ],
|
4826 |
-
"globalEval",
|
4827 |
-
!refElements || dataPriv.get( refElements[ i ], "globalEval" )
|
4828 |
-
);
|
4829 |
-
}
|
4830 |
-
}
|
4831 |
-
|
4832 |
-
|
4833 |
-
var rhtml = /<|&#?\w+;/;
|
4834 |
-
|
4835 |
-
function buildFragment( elems, context, scripts, selection, ignored ) {
|
4836 |
-
var elem, tmp, tag, wrap, contains, j,
|
4837 |
-
fragment = context.createDocumentFragment(),
|
4838 |
-
nodes = [],
|
4839 |
-
i = 0,
|
4840 |
-
l = elems.length;
|
4841 |
-
|
4842 |
-
for ( ; i < l; i++ ) {
|
4843 |
-
elem = elems[ i ];
|
4844 |
-
|
4845 |
-
if ( elem || elem === 0 ) {
|
4846 |
-
|
4847 |
-
// Add nodes directly
|
4848 |
-
if ( jQuery.type( elem ) === "object" ) {
|
4849 |
-
|
4850 |
-
// Support: Android <=4.0 only, PhantomJS 1 only
|
4851 |
-
// push.apply(_, arraylike) throws on ancient WebKit
|
4852 |
-
jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );
|
4853 |
-
|
4854 |
-
// Convert non-html into a text node
|
4855 |
-
} else if ( !rhtml.test( elem ) ) {
|
4856 |
-
nodes.push( context.createTextNode( elem ) );
|
4857 |
-
|
4858 |
-
// Convert html into DOM nodes
|
4859 |
-
} else {
|
4860 |
-
tmp = tmp || fragment.appendChild( context.createElement( "div" ) );
|
4861 |
-
|
4862 |
-
// Deserialize a standard representation
|
4863 |
-
tag = ( rtagName.exec( elem ) || [ "", "" ] )[ 1 ].toLowerCase();
|
4864 |
-
wrap = wrapMap[ tag ] || wrapMap._default;
|
4865 |
-
tmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ];
|
4866 |
-
|
4867 |
-
// Descend through wrappers to the right content
|
4868 |
-
j = wrap[ 0 ];
|
4869 |
-
while ( j-- ) {
|
4870 |
-
tmp = tmp.lastChild;
|
4871 |
-
}
|
4872 |
-
|
4873 |
-
// Support: Android <=4.0 only, PhantomJS 1 only
|
4874 |
-
// push.apply(_, arraylike) throws on ancient WebKit
|
4875 |
-
jQuery.merge( nodes, tmp.childNodes );
|
4876 |
-
|
4877 |
-
// Remember the top-level container
|
4878 |
-
tmp = fragment.firstChild;
|
4879 |
-
|
4880 |
-
// Ensure the created nodes are orphaned (#12392)
|
4881 |
-
tmp.textContent = "";
|
4882 |
-
}
|
4883 |
-
}
|
4884 |
-
}
|
4885 |
-
|
4886 |
-
// Remove wrapper from fragment
|
4887 |
-
fragment.textContent = "";
|
4888 |
-
|
4889 |
-
i = 0;
|
4890 |
-
while ( ( elem = nodes[ i++ ] ) ) {
|
4891 |
-
|
4892 |
-
// Skip elements already in the context collection (trac-4087)
|
4893 |
-
if ( selection && jQuery.inArray( elem, selection ) > -1 ) {
|
4894 |
-
if ( ignored ) {
|
4895 |
-
ignored.push( elem );
|
4896 |
-
}
|
4897 |
-
continue;
|
4898 |
-
}
|
4899 |
-
|
4900 |
-
contains = jQuery.contains( elem.ownerDocument, elem );
|
4901 |
-
|
4902 |
-
// Append to fragment
|
4903 |
-
tmp = getAll( fragment.appendChild( elem ), "script" );
|
4904 |
-
|
4905 |
-
// Preserve script evaluation history
|
4906 |
-
if ( contains ) {
|
4907 |
-
setGlobalEval( tmp );
|
4908 |
-
}
|
4909 |
-
|
4910 |
-
// Capture executables
|
4911 |
-
if ( scripts ) {
|
4912 |
-
j = 0;
|
4913 |
-
while ( ( elem = tmp[ j++ ] ) ) {
|
4914 |
-
if ( rscriptType.test( elem.type || "" ) ) {
|
4915 |
-
scripts.push( elem );
|
4916 |
-
}
|
4917 |
-
}
|
4918 |
-
}
|
4919 |
-
}
|
4920 |
-
|
4921 |
-
return fragment;
|
4922 |
-
}
|
4923 |
-
|
4924 |
-
|
4925 |
-
( function() {
|
4926 |
-
var fragment = document.createDocumentFragment(),
|
4927 |
-
div = fragment.appendChild( document.createElement( "div" ) ),
|
4928 |
-
input = document.createElement( "input" );
|
4929 |
-
|
4930 |
-
// Support: Android 4.0 - 4.3 only
|
4931 |
-
// Check state lost if the name is set (#11217)
|
4932 |
-
// Support: Windows Web Apps (WWA)
|
4933 |
-
// `name` and `type` must use .setAttribute for WWA (#14901)
|
4934 |
-
input.setAttribute( "type", "radio" );
|
4935 |
-
input.setAttribute( "checked", "checked" );
|
4936 |
-
input.setAttribute( "name", "t" );
|
4937 |
-
|
4938 |
-
div.appendChild( input );
|
4939 |
-
|
4940 |
-
// Support: Android <=4.1 only
|
4941 |
-
// Older WebKit doesn't clone checked state correctly in fragments
|
4942 |
-
support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;
|
4943 |
-
|
4944 |
-
// Support: IE <=11 only
|
4945 |
-
// Make sure textarea (and checkbox) defaultValue is properly cloned
|
4946 |
-
div.innerHTML = "<textarea>x</textarea>";
|
4947 |
-
support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;
|
4948 |
-
} )();
|
4949 |
-
var documentElement = document.documentElement;
|
4950 |
-
|
4951 |
-
|
4952 |
-
|
4953 |
-
var
|
4954 |
-
rkeyEvent = /^key/,
|
4955 |
-
rmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/,
|
4956 |
-
rtypenamespace = /^([^.]*)(?:\.(.+)|)/;
|
4957 |
-
|
4958 |
-
function returnTrue() {
|
4959 |
-
return true;
|
4960 |
-
}
|
4961 |
-
|
4962 |
-
function returnFalse() {
|
4963 |
-
return false;
|
4964 |
-
}
|
4965 |
-
|
4966 |
-
// Support: IE <=9 only
|
4967 |
-
// See #13393 for more info
|
4968 |
-
function safeActiveElement() {
|
4969 |
-
try {
|
4970 |
-
return document.activeElement;
|
4971 |
-
} catch ( err ) { }
|
4972 |
-
}
|
4973 |
-
|
4974 |
-
function on( elem, types, selector, data, fn, one ) {
|
4975 |
-
var origFn, type;
|
4976 |
-
|
4977 |
-
// Types can be a map of types/handlers
|
4978 |
-
if ( typeof types === "object" ) {
|
4979 |
-
|
4980 |
-
// ( types-Object, selector, data )
|
4981 |
-
if ( typeof selector !== "string" ) {
|
4982 |
-
|
4983 |
-
// ( types-Object, data )
|
4984 |
-
data = data || selector;
|
4985 |
-
selector = undefined;
|
4986 |
-
}
|
4987 |
-
for ( type in types ) {
|
4988 |
-
on( elem, type, selector, data, types[ type ], one );
|
4989 |
-
}
|
4990 |
-
return elem;
|
4991 |
-
}
|
4992 |
-
|
4993 |
-
if ( data == null && fn == null ) {
|
4994 |
-
|
4995 |
-
// ( types, fn )
|
4996 |
-
fn = selector;
|
4997 |
-
data = selector = undefined;
|
4998 |
-
} else if ( fn == null ) {
|
4999 |
-
if ( typeof selector === "string" ) {
|
5000 |
-
|
5001 |
-
// ( types, selector, fn )
|
5002 |
-
fn = data;
|
5003 |
-
data = undefined;
|
5004 |
-
} else {
|
5005 |
-
|
5006 |
-
// ( types, data, fn )
|
5007 |
-
fn = data;
|
5008 |
-
data = selector;
|
5009 |
-
selector = undefined;
|
5010 |
-
}
|
5011 |
-
}
|
5012 |
-
if ( fn === false ) {
|
5013 |
-
fn = returnFalse;
|
5014 |
-
} else if ( !fn ) {
|
5015 |
-
return elem;
|
5016 |
-
}
|
5017 |
-
|
5018 |
-
if ( one === 1 ) {
|
5019 |
-
origFn = fn;
|
5020 |
-
fn = function( event ) {
|
5021 |
-
|
5022 |
-
// Can use an empty set, since event contains the info
|
5023 |
-
jQuery().off( event );
|
5024 |
-
return origFn.apply( this, arguments );
|
5025 |
-
};
|
5026 |
-
|
5027 |
-
// Use same guid so caller can remove using origFn
|
5028 |
-
fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );
|
5029 |
-
}
|
5030 |
-
return elem.each( function() {
|
5031 |
-
jQuery.event.add( this, types, fn, data, selector );
|
5032 |
-
} );
|
5033 |
-
}
|
5034 |
-
|
5035 |
-
/*
|
5036 |
-
* Helper functions for managing events -- not part of the public interface.
|
5037 |
-
* Props to Dean Edwards' addEvent library for many of the ideas.
|
5038 |
-
*/
|
5039 |
-
jQuery.event = {
|
5040 |
-
|
5041 |
-
global: {},
|
5042 |
-
|
5043 |
-
add: function( elem, types, handler, data, selector ) {
|
5044 |
-
|
5045 |
-
var handleObjIn, eventHandle, tmp,
|
5046 |
-
events, t, handleObj,
|
5047 |
-
special, handlers, type, namespaces, origType,
|
5048 |
-
elemData = dataPriv.get( elem );
|
5049 |
-
|
5050 |
-
// Don't attach events to noData or text/comment nodes (but allow plain objects)
|
5051 |
-
if ( !elemData ) {
|
5052 |
-
return;
|
5053 |
-
}
|
5054 |
-
|
5055 |
-
// Caller can pass in an object of custom data in lieu of the handler
|
5056 |
-
if ( handler.handler ) {
|
5057 |
-
handleObjIn = handler;
|
5058 |
-
handler = handleObjIn.handler;
|
5059 |
-
selector = handleObjIn.selector;
|
5060 |
-
}
|
5061 |
-
|
5062 |
-
// Ensure that invalid selectors throw exceptions at attach time
|
5063 |
-
// Evaluate against documentElement in case elem is a non-element node (e.g., document)
|
5064 |
-
if ( selector ) {
|
5065 |
-
jQuery.find.matchesSelector( documentElement, selector );
|
5066 |
-
}
|
5067 |
-
|
5068 |
-
// Make sure that the handler has a unique ID, used to find/remove it later
|
5069 |
-
if ( !handler.guid ) {
|
5070 |
-
handler.guid = jQuery.guid++;
|
5071 |
-
}
|
5072 |
-
|
5073 |
-
// Init the element's event structure and main handler, if this is the first
|
5074 |
-
if ( !( events = elemData.events ) ) {
|
5075 |
-
events = elemData.events = {};
|
5076 |
-
}
|
5077 |
-
if ( !( eventHandle = elemData.handle ) ) {
|
5078 |
-
eventHandle = elemData.handle = function( e ) {
|
5079 |
-
|
5080 |
-
// Discard the second event of a jQuery.event.trigger() and
|
5081 |
-
// when an event is called after a page has unloaded
|
5082 |
-
return typeof jQuery !== "undefined" && jQuery.event.triggered !== e.type ?
|
5083 |
-
jQuery.event.dispatch.apply( elem, arguments ) : undefined;
|
5084 |
-
};
|
5085 |
-
}
|
5086 |
-
|
5087 |
-
// Handle multiple events separated by a space
|
5088 |
-
types = ( types || "" ).match( rnothtmlwhite ) || [ "" ];
|
5089 |
-
t = types.length;
|
5090 |
-
while ( t-- ) {
|
5091 |
-
tmp = rtypenamespace.exec( types[ t ] ) || [];
|
5092 |
-
type = origType = tmp[ 1 ];
|
5093 |
-
namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort();
|
5094 |
-
|
5095 |
-
// There *must* be a type, no attaching namespace-only handlers
|
5096 |
-
if ( !type ) {
|
5097 |
-
continue;
|
5098 |
-
}
|
5099 |
-
|
5100 |
-
// If event changes its type, use the special event handlers for the changed type
|
5101 |
-
special = jQuery.event.special[ type ] || {};
|
5102 |
-
|
5103 |
-
// If selector defined, determine special event api type, otherwise given type
|
5104 |
-
type = ( selector ? special.delegateType : special.bindType ) || type;
|
5105 |
-
|
5106 |
-
// Update special based on newly reset type
|
5107 |
-
special = jQuery.event.special[ type ] || {};
|
5108 |
-
|
5109 |
-
// handleObj is passed to all event handlers
|
5110 |
-
handleObj = jQuery.extend( {
|
5111 |
-
type: type,
|
5112 |
-
origType: origType,
|
5113 |
-
data: data,
|
5114 |
-
handler: handler,
|
5115 |
-
guid: handler.guid,
|
5116 |
-
selector: selector,
|
5117 |
-
needsContext: selector && jQuery.expr.match.needsContext.test( selector ),
|
5118 |
-
namespace: namespaces.join( "." )
|
5119 |
-
}, handleObjIn );
|
5120 |
-
|
5121 |
-
// Init the event handler queue if we're the first
|
5122 |
-
if ( !( handlers = events[ type ] ) ) {
|
5123 |
-
handlers = events[ type ] = [];
|
5124 |
-
handlers.delegateCount = 0;
|
5125 |
-
|
5126 |
-
// Only use addEventListener if the special events handler returns false
|
5127 |
-
if ( !special.setup ||
|
5128 |
-
special.setup.call( elem, data, namespaces, eventHandle ) === false ) {
|
5129 |
-
|
5130 |
-
if ( elem.addEventListener ) {
|
5131 |
-
elem.addEventListener( type, eventHandle );
|
5132 |
-
}
|
5133 |
-
}
|
5134 |
-
}
|
5135 |
-
|
5136 |
-
if ( special.add ) {
|
5137 |
-
special.add.call( elem, handleObj );
|
5138 |
-
|
5139 |
-
if ( !handleObj.handler.guid ) {
|
5140 |
-
handleObj.handler.guid = handler.guid;
|
5141 |
-
}
|
5142 |
-
}
|
5143 |
-
|
5144 |
-
// Add to the element's handler list, delegates in front
|
5145 |
-
if ( selector ) {
|
5146 |
-
handlers.splice( handlers.delegateCount++, 0, handleObj );
|
5147 |
-
} else {
|
5148 |
-
handlers.push( handleObj );
|
5149 |
-
}
|
5150 |
-
|
5151 |
-
// Keep track of which events have ever been used, for event optimization
|
5152 |
-
jQuery.event.global[ type ] = true;
|
5153 |
-
}
|
5154 |
-
|
5155 |
-
},
|
5156 |
-
|
5157 |
-
// Detach an event or set of events from an element
|
5158 |
-
remove: function( elem, types, handler, selector, mappedTypes ) {
|
5159 |
-
|
5160 |
-
var j, origCount, tmp,
|
5161 |
-
events, t, handleObj,
|
5162 |
-
special, handlers, type, namespaces, origType,
|
5163 |
-
elemData = dataPriv.hasData( elem ) && dataPriv.get( elem );
|
5164 |
-
|
5165 |
-
if ( !elemData || !( events = elemData.events ) ) {
|
5166 |
-
return;
|
5167 |
-
}
|
5168 |
-
|
5169 |
-
// Once for each type.namespace in types; type may be omitted
|
5170 |
-
types = ( types || "" ).match( rnothtmlwhite ) || [ "" ];
|
5171 |
-
t = types.length;
|
5172 |
-
while ( t-- ) {
|
5173 |
-
tmp = rtypenamespace.exec( types[ t ] ) || [];
|
5174 |
-
type = origType = tmp[ 1 ];
|
5175 |
-
namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort();
|
5176 |
-
|
5177 |
-
// Unbind all events (on this namespace, if provided) for the element
|
5178 |
-
if ( !type ) {
|
5179 |
-
for ( type in events ) {
|
5180 |
-
jQuery.event.remove( elem, type + types[ t ], handler, selector, true );
|
5181 |
-
}
|
5182 |
-
continue;
|
5183 |
-
}
|
5184 |
-
|
5185 |
-
special = jQuery.event.special[ type ] || {};
|
5186 |
-
type = ( selector ? special.delegateType : special.bindType ) || type;
|
5187 |
-
handlers = events[ type ] || [];
|
5188 |
-
tmp = tmp[ 2 ] &&
|
5189 |
-
new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" );
|
5190 |
-
|
5191 |
-
// Remove matching events
|
5192 |
-
origCount = j = handlers.length;
|
5193 |
-
while ( j-- ) {
|
5194 |
-
handleObj = handlers[ j ];
|
5195 |
-
|
5196 |
-
if ( ( mappedTypes || origType === handleObj.origType ) &&
|
5197 |
-
( !handler || handler.guid === handleObj.guid ) &&
|
5198 |
-
( !tmp || tmp.test( handleObj.namespace ) ) &&
|
5199 |
-
( !selector || selector === handleObj.selector ||
|
5200 |
-
selector === "**" && handleObj.selector ) ) {
|
5201 |
-
handlers.splice( j, 1 );
|
5202 |
-
|
5203 |
-
if ( handleObj.selector ) {
|
5204 |
-
handlers.delegateCount--;
|
5205 |
-
}
|
5206 |
-
if ( special.remove ) {
|
5207 |
-
special.remove.call( elem, handleObj );
|
5208 |
-
}
|
5209 |
-
}
|
5210 |
-
}
|
5211 |
-
|
5212 |
-
// Remove generic event handler if we removed something and no more handlers exist
|
5213 |
-
// (avoids potential for endless recursion during removal of special event handlers)
|
5214 |
-
if ( origCount && !handlers.length ) {
|
5215 |
-
if ( !special.teardown ||
|
5216 |
-
special.teardown.call( elem, namespaces, elemData.handle ) === false ) {
|
5217 |
-
|
5218 |
-
jQuery.removeEvent( elem, type, elemData.handle );
|
5219 |
-
}
|
5220 |
-
|
5221 |
-
delete events[ type ];
|
5222 |
-
}
|
5223 |
-
}
|
5224 |
-
|
5225 |
-
// Remove data and the expando if it's no longer used
|
5226 |
-
if ( jQuery.isEmptyObject( events ) ) {
|
5227 |
-
dataPriv.remove( elem, "handle events" );
|
5228 |
-
}
|
5229 |
-
},
|
5230 |
-
|
5231 |
-
dispatch: function( nativeEvent ) {
|
5232 |
-
|
5233 |
-
// Make a writable jQuery.Event from the native event object
|
5234 |
-
var event = jQuery.event.fix( nativeEvent );
|
5235 |
-
|
5236 |
-
var i, j, ret, matched, handleObj, handlerQueue,
|
5237 |
-
args = new Array( arguments.length ),
|
5238 |
-
handlers = ( dataPriv.get( this, "events" ) || {} )[ event.type ] || [],
|
5239 |
-
special = jQuery.event.special[ event.type ] || {};
|
5240 |
-
|
5241 |
-
// Use the fix-ed jQuery.Event rather than the (read-only) native event
|
5242 |
-
args[ 0 ] = event;
|
5243 |
-
|
5244 |
-
for ( i = 1; i < arguments.length; i++ ) {
|
5245 |
-
args[ i ] = arguments[ i ];
|
5246 |
-
}
|
5247 |
-
|
5248 |
-
event.delegateTarget = this;
|
5249 |
-
|
5250 |
-
// Call the preDispatch hook for the mapped type, and let it bail if desired
|
5251 |
-
if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {
|
5252 |
-
return;
|
5253 |
-
}
|
5254 |
-
|
5255 |
-
// Determine handlers
|
5256 |
-
handlerQueue = jQuery.event.handlers.call( this, event, handlers );
|
5257 |
-
|
5258 |
-
// Run delegates first; they may want to stop propagation beneath us
|
5259 |
-
i = 0;
|
5260 |
-
while ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) {
|
5261 |
-
event.currentTarget = matched.elem;
|
5262 |
-
|
5263 |
-
j = 0;
|
5264 |
-
while ( ( handleObj = matched.handlers[ j++ ] ) &&
|
5265 |
-
!event.isImmediatePropagationStopped() ) {
|
5266 |
-
|
5267 |
-
// Triggered event must either 1) have no namespace, or 2) have namespace(s)
|
5268 |
-
// a subset or equal to those in the bound event (both can have no namespace).
|
5269 |
-
if ( !event.rnamespace || event.rnamespace.test( handleObj.namespace ) ) {
|
5270 |
-
|
5271 |
-
event.handleObj = handleObj;
|
5272 |
-
event.data = handleObj.data;
|
5273 |
-
|
5274 |
-
ret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle ||
|
5275 |
-
handleObj.handler ).apply( matched.elem, args );
|
5276 |
-
|
5277 |
-
if ( ret !== undefined ) {
|
5278 |
-
if ( ( event.result = ret ) === false ) {
|
5279 |
-
event.preventDefault();
|
5280 |
-
event.stopPropagation();
|
5281 |
-
}
|
5282 |
-
}
|
5283 |
-
}
|
5284 |
-
}
|
5285 |
-
}
|
5286 |
-
|
5287 |
-
// Call the postDispatch hook for the mapped type
|
5288 |
-
if ( special.postDispatch ) {
|
5289 |
-
special.postDispatch.call( this, event );
|
5290 |
-
}
|
5291 |
-
|
5292 |
-
return event.result;
|
5293 |
-
},
|
5294 |
-
|
5295 |
-
handlers: function( event, handlers ) {
|
5296 |
-
var i, handleObj, sel, matchedHandlers, matchedSelectors,
|
5297 |
-
handlerQueue = [],
|
5298 |
-
delegateCount = handlers.delegateCount,
|
5299 |
-
cur = event.target;
|
5300 |
-
|
5301 |
-
// Find delegate handlers
|
5302 |
-
if ( delegateCount &&
|
5303 |
-
|
5304 |
-
// Support: IE <=9
|
5305 |
-
// Black-hole SVG <use> instance trees (trac-13180)
|
5306 |
-
cur.nodeType &&
|
5307 |
-
|
5308 |
-
// Support: Firefox <=42
|
5309 |
-
// Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861)
|
5310 |
-
// https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click
|
5311 |
-
// Support: IE 11 only
|
5312 |
-
// ...but not arrow key "clicks" of radio inputs, which can have `button` -1 (gh-2343)
|
5313 |
-
!( event.type === "click" && event.button >= 1 ) ) {
|
5314 |
-
|
5315 |
-
for ( ; cur !== this; cur = cur.parentNode || this ) {
|
5316 |
-
|
5317 |
-
// Don't check non-elements (#13208)
|
5318 |
-
// Don't process clicks on disabled elements (#6911, #8165, #11382, #11764)
|
5319 |
-
if ( cur.nodeType === 1 && !( event.type === "click" && cur.disabled === true ) ) {
|
5320 |
-
matchedHandlers = [];
|
5321 |
-
matchedSelectors = {};
|
5322 |
-
for ( i = 0; i < delegateCount; i++ ) {
|
5323 |
-
handleObj = handlers[ i ];
|
5324 |
-
|
5325 |
-
// Don't conflict with Object.prototype properties (#13203)
|
5326 |
-
sel = handleObj.selector + " ";
|
5327 |
-
|
5328 |
-
if ( matchedSelectors[ sel ] === undefined ) {
|
5329 |
-
matchedSelectors[ sel ] = handleObj.needsContext ?
|
5330 |
-
jQuery( sel, this ).index( cur ) > -1 :
|
5331 |
-
jQuery.find( sel, this, null, [ cur ] ).length;
|
5332 |
-
}
|
5333 |
-
if ( matchedSelectors[ sel ] ) {
|
5334 |
-
matchedHandlers.push( handleObj );
|
5335 |
-
}
|
5336 |
-
}
|
5337 |
-
if ( matchedHandlers.length ) {
|
5338 |
-
handlerQueue.push( { elem: cur, handlers: matchedHandlers } );
|
5339 |
-
}
|
5340 |
-
}
|
5341 |
-
}
|
5342 |
-
}
|
5343 |
-
|
5344 |
-
// Add the remaining (directly-bound) handlers
|
5345 |
-
cur = this;
|
5346 |
-
if ( delegateCount < handlers.length ) {
|
5347 |
-
handlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } );
|
5348 |
-
}
|
5349 |
-
|
5350 |
-
return handlerQueue;
|
5351 |
-
},
|
5352 |
-
|
5353 |
-
addProp: function( name, hook ) {
|
5354 |
-
Object.defineProperty( jQuery.Event.prototype, name, {
|
5355 |
-
enumerable: true,
|
5356 |
-
configurable: true,
|
5357 |
-
|
5358 |
-
get: jQuery.isFunction( hook ) ?
|
5359 |
-
function() {
|
5360 |
-
if ( this.originalEvent ) {
|
5361 |
-
return hook( this.originalEvent );
|
5362 |
-
}
|
5363 |
-
} :
|
5364 |
-
function() {
|
5365 |
-
if ( this.originalEvent ) {
|
5366 |
-
return this.originalEvent[ name ];
|
5367 |
-
}
|
5368 |
-
},
|
5369 |
-
|
5370 |
-
set: function( value ) {
|
5371 |
-
Object.defineProperty( this, name, {
|
5372 |
-
enumerable: true,
|
5373 |
-
configurable: true,
|
5374 |
-
writable: true,
|
5375 |
-
value: value
|
5376 |
-
} );
|
5377 |
-
}
|
5378 |
-
} );
|
5379 |
-
},
|
5380 |
-
|
5381 |
-
fix: function( originalEvent ) {
|
5382 |
-
return originalEvent[ jQuery.expando ] ?
|
5383 |
-
originalEvent :
|
5384 |
-
new jQuery.Event( originalEvent );
|
5385 |
-
},
|
5386 |
-
|
5387 |
-
special: {
|
5388 |
-
load: {
|
5389 |
-
|
5390 |
-
// Prevent triggered image.load events from bubbling to window.load
|
5391 |
-
noBubble: true
|
5392 |
-
},
|
5393 |
-
focus: {
|
5394 |
-
|
5395 |
-
// Fire native event if possible so blur/focus sequence is correct
|
5396 |
-
trigger: function() {
|
5397 |
-
if ( this !== safeActiveElement() && this.focus ) {
|
5398 |
-
this.focus();
|
5399 |
-
return false;
|
5400 |
-
}
|
5401 |
-
},
|
5402 |
-
delegateType: "focusin"
|
5403 |
-
},
|
5404 |
-
blur: {
|
5405 |
-
trigger: function() {
|
5406 |
-
if ( this === safeActiveElement() && this.blur ) {
|
5407 |
-
this.blur();
|
5408 |
-
return false;
|
5409 |
-
}
|
5410 |
-
},
|
5411 |
-
delegateType: "focusout"
|
5412 |
-
},
|
5413 |
-
click: {
|
5414 |
-
|
5415 |
-
// For checkbox, fire native event so checked state will be right
|
5416 |
-
trigger: function() {
|
5417 |
-
if ( this.type === "checkbox" && this.click && nodeName( this, "input" ) ) {
|
5418 |
-
this.click();
|
5419 |
-
return false;
|
5420 |
-
}
|
5421 |
-
},
|
5422 |
-
|
5423 |
-
// For cross-browser consistency, don't fire native .click() on links
|
5424 |
-
_default: function( event ) {
|
5425 |
-
return nodeName( event.target, "a" );
|
5426 |
-
}
|
5427 |
-
},
|
5428 |
-
|
5429 |
-
beforeunload: {
|
5430 |
-
postDispatch: function( event ) {
|
5431 |
-
|
5432 |
-
// Support: Firefox 20+
|
5433 |
-
// Firefox doesn't alert if the returnValue field is not set.
|
5434 |
-
if ( event.result !== undefined && event.originalEvent ) {
|
5435 |
-
event.originalEvent.returnValue = event.result;
|
5436 |
-
}
|
5437 |
-
}
|
5438 |
-
}
|
5439 |
-
}
|
5440 |
-
};
|
5441 |
-
|
5442 |
-
jQuery.removeEvent = function( elem, type, handle ) {
|
5443 |
-
|
5444 |
-
// This "if" is needed for plain objects
|
5445 |
-
if ( elem.removeEventListener ) {
|
5446 |
-
elem.removeEventListener( type, handle );
|
5447 |
-
}
|
5448 |
-
};
|
5449 |
-
|
5450 |
-
jQuery.Event = function( src, props ) {
|
5451 |
-
|
5452 |
-
// Allow instantiation without the 'new' keyword
|
5453 |
-
if ( !( this instanceof jQuery.Event ) ) {
|
5454 |
-
return new jQuery.Event( src, props );
|
5455 |
-
}
|
5456 |
-
|
5457 |
-
// Event object
|
5458 |
-
if ( src && src.type ) {
|
5459 |
-
this.originalEvent = src;
|
5460 |
-
this.type = src.type;
|
5461 |
-
|
5462 |
-
// Events bubbling up the document may have been marked as prevented
|
5463 |
-
// by a handler lower down the tree; reflect the correct value.
|
5464 |
-
this.isDefaultPrevented = src.defaultPrevented ||
|
5465 |
-
src.defaultPrevented === undefined &&
|
5466 |
-
|
5467 |
-
// Support: Android <=2.3 only
|
5468 |
-
src.returnValue === false ?
|
5469 |
-
returnTrue :
|
5470 |
-
returnFalse;
|
5471 |
-
|
5472 |
-
// Create target properties
|
5473 |
-
// Support: Safari <=6 - 7 only
|
5474 |
-
// Target should not be a text node (#504, #13143)
|
5475 |
-
this.target = ( src.target && src.target.nodeType === 3 ) ?
|
5476 |
-
src.target.parentNode :
|
5477 |
-
src.target;
|
5478 |
-
|
5479 |
-
this.currentTarget = src.currentTarget;
|
5480 |
-
this.relatedTarget = src.relatedTarget;
|
5481 |
-
|
5482 |
-
// Event type
|
5483 |
-
} else {
|
5484 |
-
this.type = src;
|
5485 |
-
}
|
5486 |
-
|
5487 |
-
// Put explicitly provided properties onto the event object
|
5488 |
-
if ( props ) {
|
5489 |
-
jQuery.extend( this, props );
|
5490 |
-
}
|
5491 |
-
|
5492 |
-
// Create a timestamp if incoming event doesn't have one
|
5493 |
-
this.timeStamp = src && src.timeStamp || jQuery.now();
|
5494 |
-
|
5495 |
-
// Mark it as fixed
|
5496 |
-
this[ jQuery.expando ] = true;
|
5497 |
-
};
|
5498 |
-
|
5499 |
-
// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding
|
5500 |
-
// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html
|
5501 |
-
jQuery.Event.prototype = {
|
5502 |
-
constructor: jQuery.Event,
|
5503 |
-
isDefaultPrevented: returnFalse,
|
5504 |
-
isPropagationStopped: returnFalse,
|
5505 |
-
isImmediatePropagationStopped: returnFalse,
|
5506 |
-
isSimulated: false,
|
5507 |
-
|
5508 |
-
preventDefault: function() {
|
5509 |
-
var e = this.originalEvent;
|
5510 |
-
|
5511 |
-
this.isDefaultPrevented = returnTrue;
|
5512 |
-
|
5513 |
-
if ( e && !this.isSimulated ) {
|
5514 |
-
e.preventDefault();
|
5515 |
-
}
|
5516 |
-
},
|
5517 |
-
stopPropagation: function() {
|
5518 |
-
var e = this.originalEvent;
|
5519 |
-
|
5520 |
-
this.isPropagationStopped = returnTrue;
|
5521 |
-
|
5522 |
-
if ( e && !this.isSimulated ) {
|
5523 |
-
e.stopPropagation();
|
5524 |
-
}
|
5525 |
-
},
|
5526 |
-
stopImmediatePropagation: function() {
|
5527 |
-
var e = this.originalEvent;
|
5528 |
-
|
5529 |
-
this.isImmediatePropagationStopped = returnTrue;
|
5530 |
-
|
5531 |
-
if ( e && !this.isSimulated ) {
|
5532 |
-
e.stopImmediatePropagation();
|
5533 |
-
}
|
5534 |
-
|
5535 |
-
this.stopPropagation();
|
5536 |
-
}
|
5537 |
-
};
|
5538 |
-
|
5539 |
-
// Includes all common event props including KeyEvent and MouseEvent specific props
|
5540 |
-
jQuery.each( {
|
5541 |
-
altKey: true,
|
5542 |
-
bubbles: true,
|
5543 |
-
cancelable: true,
|
5544 |
-
changedTouches: true,
|
5545 |
-
ctrlKey: true,
|
5546 |
-
detail: true,
|
5547 |
-
eventPhase: true,
|
5548 |
-
metaKey: true,
|
5549 |
-
pageX: true,
|
5550 |
-
pageY: true,
|
5551 |
-
shiftKey: true,
|
5552 |
-
view: true,
|
5553 |
-
"char": true,
|
5554 |
-
charCode: true,
|
5555 |
-
key: true,
|
5556 |
-
keyCode: true,
|
5557 |
-
button: true,
|
5558 |
-
buttons: true,
|
5559 |
-
clientX: true,
|
5560 |
-
clientY: true,
|
5561 |
-
offsetX: true,
|
5562 |
-
offsetY: true,
|
5563 |
-
pointerId: true,
|
5564 |
-
pointerType: true,
|
5565 |
-
screenX: true,
|
5566 |
-
screenY: true,
|
5567 |
-
targetTouches: true,
|
5568 |
-
toElement: true,
|
5569 |
-
touches: true,
|
5570 |
-
|
5571 |
-
which: function( event ) {
|
5572 |
-
var button = event.button;
|
5573 |
-
|
5574 |
-
// Add which for key events
|
5575 |
-
if ( event.which == null && rkeyEvent.test( event.type ) ) {
|
5576 |
-
return event.charCode != null ? event.charCode : event.keyCode;
|
5577 |
-
}
|
5578 |
-
|
5579 |
-
// Add which for click: 1 === left; 2 === middle; 3 === right
|
5580 |
-
if ( !event.which && button !== undefined && rmouseEvent.test( event.type ) ) {
|
5581 |
-
if ( button & 1 ) {
|
5582 |
-
return 1;
|
5583 |
-
}
|
5584 |
-
|
5585 |
-
if ( button & 2 ) {
|
5586 |
-
return 3;
|
5587 |
-
}
|
5588 |
-
|
5589 |
-
if ( button & 4 ) {
|
5590 |
-
return 2;
|
5591 |
-
}
|
5592 |
-
|
5593 |
-
return 0;
|
5594 |
-
}
|
5595 |
-
|
5596 |
-
return event.which;
|
5597 |
-
}
|
5598 |
-
}, jQuery.event.addProp );
|
5599 |
-
|
5600 |
-
// Create mouseenter/leave events using mouseover/out and event-time checks
|
5601 |
-
// so that event delegation works in jQuery.
|
5602 |
-
// Do the same for pointerenter/pointerleave and pointerover/pointerout
|
5603 |
-
//
|
5604 |
-
// Support: Safari 7 only
|
5605 |
-
// Safari sends mouseenter too often; see:
|
5606 |
-
// https://bugs.chromium.org/p/chromium/issues/detail?id=470258
|
5607 |
-
// for the description of the bug (it existed in older Chrome versions as well).
|
5608 |
-
jQuery.each( {
|
5609 |
-
mouseenter: "mouseover",
|
5610 |
-
mouseleave: "mouseout",
|
5611 |
-
pointerenter: "pointerover",
|
5612 |
-
pointerleave: "pointerout"
|
5613 |
-
}, function( orig, fix ) {
|
5614 |
-
jQuery.event.special[ orig ] = {
|
5615 |
-
delegateType: fix,
|
5616 |
-
bindType: fix,
|
5617 |
-
|
5618 |
-
handle: function( event ) {
|
5619 |
-
var ret,
|
5620 |
-
target = this,
|
5621 |
-
related = event.relatedTarget,
|
5622 |
-
handleObj = event.handleObj;
|
5623 |
-
|
5624 |
-
// For mouseenter/leave call the handler if related is outside the target.
|
5625 |
-
// NB: No relatedTarget if the mouse left/entered the browser window
|
5626 |
-
if ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) {
|
5627 |
-
event.type = handleObj.origType;
|
5628 |
-
ret = handleObj.handler.apply( this, arguments );
|
5629 |
-
event.type = fix;
|
5630 |
-
}
|
5631 |
-
return ret;
|
5632 |
-
}
|
5633 |
-
};
|
5634 |
-
} );
|
5635 |
-
|
5636 |
-
jQuery.fn.extend( {
|
5637 |
-
|
5638 |
-
on: function( types, selector, data, fn ) {
|
5639 |
-
return on( this, types, selector, data, fn );
|
5640 |
-
},
|
5641 |
-
one: function( types, selector, data, fn ) {
|
5642 |
-
return on( this, types, selector, data, fn, 1 );
|
5643 |
-
},
|
5644 |
-
off: function( types, selector, fn ) {
|
5645 |
-
var handleObj, type;
|
5646 |
-
if ( types && types.preventDefault && types.handleObj ) {
|
5647 |
-
|
5648 |
-
// ( event ) dispatched jQuery.Event
|
5649 |
-
handleObj = types.handleObj;
|
5650 |
-
jQuery( types.delegateTarget ).off(
|
5651 |
-
handleObj.namespace ?
|
5652 |
-
handleObj.origType + "." + handleObj.namespace :
|
5653 |
-
handleObj.origType,
|
5654 |
-
handleObj.selector,
|
5655 |
-
handleObj.handler
|
5656 |
-
);
|
5657 |
-
return this;
|
5658 |
-
}
|
5659 |
-
if ( typeof types === "object" ) {
|
5660 |
-
|
5661 |
-
// ( types-object [, selector] )
|
5662 |
-
for ( type in types ) {
|
5663 |
-
this.off( type, selector, types[ type ] );
|
5664 |
-
}
|
5665 |
-
return this;
|
5666 |
-
}
|
5667 |
-
if ( selector === false || typeof selector === "function" ) {
|
5668 |
-
|
5669 |
-
// ( types [, fn] )
|
5670 |
-
fn = selector;
|
5671 |
-
selector = undefined;
|
5672 |
-
}
|
5673 |
-
if ( fn === false ) {
|
5674 |
-
fn = returnFalse;
|
5675 |
-
}
|
5676 |
-
return this.each( function() {
|
5677 |
-
jQuery.event.remove( this, types, fn, selector );
|
5678 |
-
} );
|
5679 |
-
}
|
5680 |
-
} );
|
5681 |
-
|
5682 |
-
|
5683 |
-
var
|
5684 |
-
|
5685 |
-
/* eslint-disable max-len */
|
5686 |
-
|
5687 |
-
// See https://github.com/eslint/eslint/issues/3229
|
5688 |
-
rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,
|
5689 |
-
|
5690 |
-
/* eslint-enable */
|
5691 |
-
|
5692 |
-
// Support: IE <=10 - 11, Edge 12 - 13
|
5693 |
-
// In IE/Edge using regex groups here causes severe slowdowns.
|
5694 |
-
// See https://connect.microsoft.com/IE/feedback/details/1736512/
|
5695 |
-
rnoInnerhtml = /<script|<style|<link/i,
|
5696 |
-
|
5697 |
-
// checked="checked" or checked
|
5698 |
-
rchecked = /checked\s*(?:[^=]|=\s*.checked.)/i,
|
5699 |
-
rscriptTypeMasked = /^true\/(.*)/,
|
5700 |
-
rcleanScript = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;
|
5701 |
-
|
5702 |
-
// Prefer a tbody over its parent table for containing new rows
|
5703 |
-
function manipulationTarget( elem, content ) {
|
5704 |
-
if ( nodeName( elem, "table" ) &&
|
5705 |
-
nodeName( content.nodeType !== 11 ? content : content.firstChild, "tr" ) ) {
|
5706 |
-
|
5707 |
-
return jQuery( ">tbody", elem )[ 0 ] || elem;
|
5708 |
-
}
|
5709 |
-
|
5710 |
-
return elem;
|
5711 |
-
}
|
5712 |
-
|
5713 |
-
// Replace/restore the type attribute of script elements for safe DOM manipulation
|
5714 |
-
function disableScript( elem ) {
|
5715 |
-
elem.type = ( elem.getAttribute( "type" ) !== null ) + "/" + elem.type;
|
5716 |
-
return elem;
|
5717 |
-
}
|
5718 |
-
function restoreScript( elem ) {
|
5719 |
-
var match = rscriptTypeMasked.exec( elem.type );
|
5720 |
-
|
5721 |
-
if ( match ) {
|
5722 |
-
elem.type = match[ 1 ];
|
5723 |
-
} else {
|
5724 |
-
elem.removeAttribute( "type" );
|
5725 |
-
}
|
5726 |
-
|
5727 |
-
return elem;
|
5728 |
-
}
|
5729 |
-
|
5730 |
-
function cloneCopyEvent( src, dest ) {
|
5731 |
-
var i, l, type, pdataOld, pdataCur, udataOld, udataCur, events;
|
5732 |
-
|
5733 |
-
if ( dest.nodeType !== 1 ) {
|
5734 |
-
return;
|
5735 |
-
}
|
5736 |
-
|
5737 |
-
// 1. Copy private data: events, handlers, etc.
|
5738 |
-
if ( dataPriv.hasData( src ) ) {
|
5739 |
-
pdataOld = dataPriv.access( src );
|
5740 |
-
pdataCur = dataPriv.set( dest, pdataOld );
|
5741 |
-
events = pdataOld.events;
|
5742 |
-
|
5743 |
-
if ( events ) {
|
5744 |
-
delete pdataCur.handle;
|
5745 |
-
pdataCur.events = {};
|
5746 |
-
|
5747 |
-
for ( type in events ) {
|
5748 |
-
for ( i = 0, l = events[ type ].length; i < l; i++ ) {
|
5749 |
-
jQuery.event.add( dest, type, events[ type ][ i ] );
|
5750 |
-
}
|
5751 |
-
}
|
5752 |
-
}
|
5753 |
-
}
|
5754 |
-
|
5755 |
-
// 2. Copy user data
|
5756 |
-
if ( dataUser.hasData( src ) ) {
|
5757 |
-
udataOld = dataUser.access( src );
|
5758 |
-
udataCur = jQuery.extend( {}, udataOld );
|
5759 |
-
|
5760 |
-
dataUser.set( dest, udataCur );
|
5761 |
-
}
|
5762 |
-
}
|
5763 |
-
|
5764 |
-
// Fix IE bugs, see support tests
|
5765 |
-
function fixInput( src, dest ) {
|
5766 |
-
var nodeName = dest.nodeName.toLowerCase();
|
5767 |
-
|
5768 |
-
// Fails to persist the checked state of a cloned checkbox or radio button.
|
5769 |
-
if ( nodeName === "input" && rcheckableType.test( src.type ) ) {
|
5770 |
-
dest.checked = src.checked;
|
5771 |
-
|
5772 |
-
// Fails to return the selected option to the default selected state when cloning options
|
5773 |
-
} else if ( nodeName === "input" || nodeName === "textarea" ) {
|
5774 |
-
dest.defaultValue = src.defaultValue;
|
5775 |
-
}
|
5776 |
-
}
|
5777 |
-
|
5778 |
-
function domManip( collection, args, callback, ignored ) {
|
5779 |
-
|
5780 |
-
// Flatten any nested arrays
|
5781 |
-
args = concat.apply( [], args );
|
5782 |
-
|
5783 |
-
var fragment, first, scripts, hasScripts, node, doc,
|
5784 |
-
i = 0,
|
5785 |
-
l = collection.length,
|
5786 |
-
iNoClone = l - 1,
|
5787 |
-
value = args[ 0 ],
|
5788 |
-
isFunction = jQuery.isFunction( value );
|
5789 |
-
|
5790 |
-
// We can't cloneNode fragments that contain checked, in WebKit
|
5791 |
-
if ( isFunction ||
|
5792 |
-
( l > 1 && typeof value === "string" &&
|
5793 |
-
!support.checkClone && rchecked.test( value ) ) ) {
|
5794 |
-
return collection.each( function( index ) {
|
5795 |
-
var self = collection.eq( index );
|
5796 |
-
if ( isFunction ) {
|
5797 |
-
args[ 0 ] = value.call( this, index, self.html() );
|
5798 |
-
}
|
5799 |
-
domManip( self, args, callback, ignored );
|
5800 |
-
} );
|
5801 |
-
}
|
5802 |
-
|
5803 |
-
if ( l ) {
|
5804 |
-
fragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored );
|
5805 |
-
first = fragment.firstChild;
|
5806 |
-
|
5807 |
-
if ( fragment.childNodes.length === 1 ) {
|
5808 |
-
fragment = first;
|
5809 |
-
}
|
5810 |
-
|
5811 |
-
// Require either new content or an interest in ignored elements to invoke the callback
|
5812 |
-
if ( first || ignored ) {
|
5813 |
-
scripts = jQuery.map( getAll( fragment, "script" ), disableScript );
|
5814 |
-
hasScripts = scripts.length;
|
5815 |
-
|
5816 |
-
// Use the original fragment for the last item
|
5817 |
-
// instead of the first because it can end up
|
5818 |
-
// being emptied incorrectly in certain situations (#8070).
|
5819 |
-
for ( ; i < l; i++ ) {
|
5820 |
-
node = fragment;
|
5821 |
-
|
5822 |
-
if ( i !== iNoClone ) {
|
5823 |
-
node = jQuery.clone( node, true, true );
|
5824 |
-
|
5825 |
-
// Keep references to cloned scripts for later restoration
|
5826 |
-
if ( hasScripts ) {
|
5827 |
-
|
5828 |
-
// Support: Android <=4.0 only, PhantomJS 1 only
|
5829 |
-
// push.apply(_, arraylike) throws on ancient WebKit
|
5830 |
-
jQuery.merge( scripts, getAll( node, "script" ) );
|
5831 |
-
}
|
5832 |
-
}
|
5833 |
-
|
5834 |
-
callback.call( collection[ i ], node, i );
|
5835 |
-
}
|
5836 |
-
|
5837 |
-
if ( hasScripts ) {
|
5838 |
-
doc = scripts[ scripts.length - 1 ].ownerDocument;
|
5839 |
-
|
5840 |
-
// Reenable scripts
|
5841 |
-
jQuery.map( scripts, restoreScript );
|
5842 |
-
|
5843 |
-
// Evaluate executable scripts on first document insertion
|
5844 |
-
for ( i = 0; i < hasScripts; i++ ) {
|
5845 |
-
node = scripts[ i ];
|
5846 |
-
if ( rscriptType.test( node.type || "" ) &&
|
5847 |
-
!dataPriv.access( node, "globalEval" ) &&
|
5848 |
-
jQuery.contains( doc, node ) ) {
|
5849 |
-
|
5850 |
-
if ( node.src ) {
|
5851 |
-
|
5852 |
-
// Optional AJAX dependency, but won't run scripts if not present
|
5853 |
-
if ( jQuery._evalUrl ) {
|
5854 |
-
jQuery._evalUrl( node.src );
|
5855 |
-
}
|
5856 |
-
} else {
|
5857 |
-
DOMEval( node.textContent.replace( rcleanScript, "" ), doc );
|
5858 |
-
}
|
5859 |
-
}
|
5860 |
-
}
|
5861 |
-
}
|
5862 |
-
}
|
5863 |
-
}
|
5864 |
-
|
5865 |
-
return collection;
|
5866 |
-
}
|
5867 |
-
|
5868 |
-
function remove( elem, selector, keepData ) {
|
5869 |
-
var node,
|
5870 |
-
nodes = selector ? jQuery.filter( selector, elem ) : elem,
|
5871 |
-
i = 0;
|
5872 |
-
|
5873 |
-
for ( ; ( node = nodes[ i ] ) != null; i++ ) {
|
5874 |
-
if ( !keepData && node.nodeType === 1 ) {
|
5875 |
-
jQuery.cleanData( getAll( node ) );
|
5876 |
-
}
|
5877 |
-
|
5878 |
-
if ( node.parentNode ) {
|
5879 |
-
if ( keepData && jQuery.contains( node.ownerDocument, node ) ) {
|
5880 |
-
setGlobalEval( getAll( node, "script" ) );
|
5881 |
-
}
|
5882 |
-
node.parentNode.removeChild( node );
|
5883 |
-
}
|
5884 |
-
}
|
5885 |
-
|
5886 |
-
return elem;
|
5887 |
-
}
|
5888 |
-
|
5889 |
-
jQuery.extend( {
|
5890 |
-
htmlPrefilter: function( html ) {
|
5891 |
-
return html.replace( rxhtmlTag, "<$1></$2>" );
|
5892 |
-
},
|
5893 |
-
|
5894 |
-
clone: function( elem, dataAndEvents, deepDataAndEvents ) {
|
5895 |
-
var i, l, srcElements, destElements,
|
5896 |
-
clone = elem.cloneNode( true ),
|
5897 |
-
inPage = jQuery.contains( elem.ownerDocument, elem );
|
5898 |
-
|
5899 |
-
// Fix IE cloning issues
|
5900 |
-
if ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) &&
|
5901 |
-
!jQuery.isXMLDoc( elem ) ) {
|
5902 |
-
|
5903 |
-
// We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2
|
5904 |
-
destElements = getAll( clone );
|
5905 |
-
srcElements = getAll( elem );
|
5906 |
-
|
5907 |
-
for ( i = 0, l = srcElements.length; i < l; i++ ) {
|
5908 |
-
fixInput( srcElements[ i ], destElements[ i ] );
|
5909 |
-
}
|
5910 |
-
}
|
5911 |
-
|
5912 |
-
// Copy the events from the original to the clone
|
5913 |
-
if ( dataAndEvents ) {
|
5914 |
-
if ( deepDataAndEvents ) {
|
5915 |
-
srcElements = srcElements || getAll( elem );
|
5916 |
-
destElements = destElements || getAll( clone );
|
5917 |
-
|
5918 |
-
for ( i = 0, l = srcElements.length; i < l; i++ ) {
|
5919 |
-
cloneCopyEvent( srcElements[ i ], destElements[ i ] );
|
5920 |
-
}
|
5921 |
-
} else {
|
5922 |
-
cloneCopyEvent( elem, clone );
|
5923 |
-
}
|
5924 |
-
}
|
5925 |
-
|
5926 |
-
// Preserve script evaluation history
|
5927 |
-
destElements = getAll( clone, "script" );
|
5928 |
-
if ( destElements.length > 0 ) {
|
5929 |
-
setGlobalEval( destElements, !inPage && getAll( elem, "script" ) );
|
5930 |
-
}
|
5931 |
-
|
5932 |
-
// Return the cloned set
|
5933 |
-
return clone;
|
5934 |
-
},
|
5935 |
-
|
5936 |
-
cleanData: function( elems ) {
|
5937 |
-
var data, elem, type,
|
5938 |
-
special = jQuery.event.special,
|
5939 |
-
i = 0;
|
5940 |
-
|
5941 |
-
for ( ; ( elem = elems[ i ] ) !== undefined; i++ ) {
|
5942 |
-
if ( acceptData( elem ) ) {
|
5943 |
-
if ( ( data = elem[ dataPriv.expando ] ) ) {
|
5944 |
-
if ( data.events ) {
|
5945 |
-
for ( type in data.events ) {
|
5946 |
-
if ( special[ type ] ) {
|
5947 |
-
jQuery.event.remove( elem, type );
|
5948 |
-
|
5949 |
-
// This is a shortcut to avoid jQuery.event.remove's overhead
|
5950 |
-
} else {
|
5951 |
-
jQuery.removeEvent( elem, type, data.handle );
|
5952 |
-
}
|
5953 |
-
}
|
5954 |
-
}
|
5955 |
-
|
5956 |
-
// Support: Chrome <=35 - 45+
|
5957 |
-
// Assign undefined instead of using delete, see Data#remove
|
5958 |
-
elem[ dataPriv.expando ] = undefined;
|
5959 |
-
}
|
5960 |
-
if ( elem[ dataUser.expando ] ) {
|
5961 |
-
|
5962 |
-
// Support: Chrome <=35 - 45+
|
5963 |
-
// Assign undefined instead of using delete, see Data#remove
|
5964 |
-
elem[ dataUser.expando ] = undefined;
|
5965 |
-
}
|
5966 |
-
}
|
5967 |
-
}
|
5968 |
-
}
|
5969 |
-
} );
|
5970 |
-
|
5971 |
-
jQuery.fn.extend( {
|
5972 |
-
detach: function( selector ) {
|
5973 |
-
return remove( this, selector, true );
|
5974 |
-
},
|
5975 |
-
|
5976 |
-
remove: function( selector ) {
|
5977 |
-
return remove( this, selector );
|
5978 |
-
},
|
5979 |
-
|
5980 |
-
text: function( value ) {
|
5981 |
-
return access( this, function( value ) {
|
5982 |
-
return value === undefined ?
|
5983 |
-
jQuery.text( this ) :
|
5984 |
-
this.empty().each( function() {
|
5985 |
-
if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
|
5986 |
-
this.textContent = value;
|
5987 |
-
}
|
5988 |
-
} );
|
5989 |
-
}, null, value, arguments.length );
|
5990 |
-
},
|
5991 |
-
|
5992 |
-
append: function() {
|
5993 |
-
return domManip( this, arguments, function( elem ) {
|
5994 |
-
if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
|
5995 |
-
var target = manipulationTarget( this, elem );
|
5996 |
-
target.appendChild( elem );
|
5997 |
-
}
|
5998 |
-
} );
|
5999 |
-
},
|
6000 |
-
|
6001 |
-
prepend: function() {
|
6002 |
-
return domManip( this, arguments, function( elem ) {
|
6003 |
-
if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
|
6004 |
-
var target = manipulationTarget( this, elem );
|
6005 |
-
target.insertBefore( elem, target.firstChild );
|
6006 |
-
}
|
6007 |
-
} );
|
6008 |
-
},
|
6009 |
-
|
6010 |
-
before: function() {
|
6011 |
-
return domManip( this, arguments, function( elem ) {
|
6012 |
-
if ( this.parentNode ) {
|
6013 |
-
this.parentNode.insertBefore( elem, this );
|
6014 |
-
}
|
6015 |
-
} );
|
6016 |
-
},
|
6017 |
-
|
6018 |
-
after: function() {
|
6019 |
-
return domManip( this, arguments, function( elem ) {
|
6020 |
-
if ( this.parentNode ) {
|
6021 |
-
this.parentNode.insertBefore( elem, this.nextSibling );
|
6022 |
-
}
|
6023 |
-
} );
|
6024 |
-
},
|
6025 |
-
|
6026 |
-
empty: function() {
|
6027 |
-
var elem,
|
6028 |
-
i = 0;
|
6029 |
-
|
6030 |
-
for ( ; ( elem = this[ i ] ) != null; i++ ) {
|
6031 |
-
if ( elem.nodeType === 1 ) {
|
6032 |
-
|
6033 |
-
// Prevent memory leaks
|
6034 |
-
jQuery.cleanData( getAll( elem, false ) );
|
6035 |
-
|
6036 |
-
// Remove any remaining nodes
|
6037 |
-
elem.textContent = "";
|
6038 |
-
}
|
6039 |
-
}
|
6040 |
-
|
6041 |
-
return this;
|
6042 |
-
},
|
6043 |
-
|
6044 |
-
clone: function( dataAndEvents, deepDataAndEvents ) {
|
6045 |
-
dataAndEvents = dataAndEvents == null ? false : dataAndEvents;
|
6046 |
-
deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;
|
6047 |
-
|
6048 |
-
return this.map( function() {
|
6049 |
-
return jQuery.clone( this, dataAndEvents, deepDataAndEvents );
|
6050 |
-
} );
|
6051 |
-
},
|
6052 |
-
|
6053 |
-
html: function( value ) {
|
6054 |
-
return access( this, function( value ) {
|
6055 |
-
var elem = this[ 0 ] || {},
|
6056 |
-
i = 0,
|
6057 |
-
l = this.length;
|
6058 |
-
|
6059 |
-
if ( value === undefined && elem.nodeType === 1 ) {
|
6060 |
-
return elem.innerHTML;
|
6061 |
-
}
|
6062 |
-
|
6063 |
-
// See if we can take a shortcut and just use innerHTML
|
6064 |
-
if ( typeof value === "string" && !rnoInnerhtml.test( value ) &&
|
6065 |
-
!wrapMap[ ( rtagName.exec( value ) || [ "", "" ] )[ 1 ].toLowerCase() ] ) {
|
6066 |
-
|
6067 |
-
value = jQuery.htmlPrefilter( value );
|
6068 |
-
|
6069 |
-
try {
|
6070 |
-
for ( ; i < l; i++ ) {
|
6071 |
-
elem = this[ i ] || {};
|
6072 |
-
|
6073 |
-
// Remove element nodes and prevent memory leaks
|
6074 |
-
if ( elem.nodeType === 1 ) {
|
6075 |
-
jQuery.cleanData( getAll( elem, false ) );
|
6076 |
-
elem.innerHTML = value;
|
6077 |
-
}
|
6078 |
-
}
|
6079 |
-
|
6080 |
-
elem = 0;
|
6081 |
-
|
6082 |
-
// If using innerHTML throws an exception, use the fallback method
|
6083 |
-
} catch ( e ) {}
|
6084 |
-
}
|
6085 |
-
|
6086 |
-
if ( elem ) {
|
6087 |
-
this.empty().append( value );
|
6088 |
-
}
|
6089 |
-
}, null, value, arguments.length );
|
6090 |
-
},
|
6091 |
-
|
6092 |
-
replaceWith: function() {
|
6093 |
-
var ignored = [];
|
6094 |
-
|
6095 |
-
// Make the changes, replacing each non-ignored context element with the new content
|
6096 |
-
return domManip( this, arguments, function( elem ) {
|
6097 |
-
var parent = this.parentNode;
|
6098 |
-
|
6099 |
-
if ( jQuery.inArray( this, ignored ) < 0 ) {
|
6100 |
-
jQuery.cleanData( getAll( this ) );
|
6101 |
-
if ( parent ) {
|
6102 |
-
parent.replaceChild( elem, this );
|
6103 |
-
}
|
6104 |
-
}
|
6105 |
-
|
6106 |
-
// Force callback invocation
|
6107 |
-
}, ignored );
|
6108 |
-
}
|
6109 |
-
} );
|
6110 |
-
|
6111 |
-
jQuery.each( {
|
6112 |
-
appendTo: "append",
|
6113 |
-
prependTo: "prepend",
|
6114 |
-
insertBefore: "before",
|
6115 |
-
insertAfter: "after",
|
6116 |
-
replaceAll: "replaceWith"
|
6117 |
-
}, function( name, original ) {
|
6118 |
-
jQuery.fn[ name ] = function( selector ) {
|
6119 |
-
var elems,
|
6120 |
-
ret = [],
|
6121 |
-
insert = jQuery( selector ),
|
6122 |
-
last = insert.length - 1,
|
6123 |
-
i = 0;
|
6124 |
-
|
6125 |
-
for ( ; i <= last; i++ ) {
|
6126 |
-
elems = i === last ? this : this.clone( true );
|
6127 |
-
jQuery( insert[ i ] )[ original ]( elems );
|
6128 |
-
|
6129 |
-
// Support: Android <=4.0 only, PhantomJS 1 only
|
6130 |
-
// .get() because push.apply(_, arraylike) throws on ancient WebKit
|
6131 |
-
push.apply( ret, elems.get() );
|
6132 |
-
}
|
6133 |
-
|
6134 |
-
return this.pushStack( ret );
|
6135 |
-
};
|
6136 |
-
} );
|
6137 |
-
var rmargin = ( /^margin/ );
|
6138 |
-
|
6139 |
-
var rnumnonpx = new RegExp( "^(" + pnum + ")(?!px)[a-z%]+$", "i" );
|
6140 |
-
|
6141 |
-
var getStyles = function( elem ) {
|
6142 |
-
|
6143 |
-
// Support: IE <=11 only, Firefox <=30 (#15098, #14150)
|
6144 |
-
// IE throws on elements created in popups
|
6145 |
-
// FF meanwhile throws on frame elements through "defaultView.getComputedStyle"
|
6146 |
-
var view = elem.ownerDocument.defaultView;
|
6147 |
-
|
6148 |
-
if ( !view || !view.opener ) {
|
6149 |
-
view = window;
|
6150 |
-
}
|
6151 |
-
|
6152 |
-
return view.getComputedStyle( elem );
|
6153 |
-
};
|
6154 |
-
|
6155 |
-
|
6156 |
-
|
6157 |
-
( function() {
|
6158 |
-
|
6159 |
-
// Executing both pixelPosition & boxSizingReliable tests require only one layout
|
6160 |
-
// so they're executed at the same time to save the second computation.
|
6161 |
-
function computeStyleTests() {
|
6162 |
-
|
6163 |
-
// This is a singleton, we need to execute it only once
|
6164 |
-
if ( !div ) {
|
6165 |
-
return;
|
6166 |
-
}
|
6167 |
-
|
6168 |
-
div.style.cssText =
|
6169 |
-
"box-sizing:border-box;" +
|
6170 |
-
"position:relative;display:block;" +
|
6171 |
-
"margin:auto;border:1px;padding:1px;" +
|
6172 |
-
"top:1%;width:50%";
|
6173 |
-
div.innerHTML = "";
|
6174 |
-
documentElement.appendChild( container );
|
6175 |
-
|
6176 |
-
var divStyle = window.getComputedStyle( div );
|
6177 |
-
pixelPositionVal = divStyle.top !== "1%";
|
6178 |
-
|
6179 |
-
// Support: Android 4.0 - 4.3 only, Firefox <=3 - 44
|
6180 |
-
reliableMarginLeftVal = divStyle.marginLeft === "2px";
|
6181 |
-
boxSizingReliableVal = divStyle.width === "4px";
|
6182 |
-
|
6183 |
-
// Support: Android 4.0 - 4.3 only
|
6184 |
-
// Some styles come back with percentage values, even though they shouldn't
|
6185 |
-
div.style.marginRight = "50%";
|
6186 |
-
pixelMarginRightVal = divStyle.marginRight === "4px";
|
6187 |
-
|
6188 |
-
documentElement.removeChild( container );
|
6189 |
-
|
6190 |
-
// Nullify the div so it wouldn't be stored in the memory and
|
6191 |
-
// it will also be a sign that checks already performed
|
6192 |
-
div = null;
|
6193 |
-
}
|
6194 |
-
|
6195 |
-
var pixelPositionVal, boxSizingReliableVal, pixelMarginRightVal, reliableMarginLeftVal,
|
6196 |
-
container = document.createElement( "div" ),
|
6197 |
-
div = document.createElement( "div" );
|
6198 |
-
|
6199 |
-
// Finish early in limited (non-browser) environments
|
6200 |
-
if ( !div.style ) {
|
6201 |
-
return;
|
6202 |
-
}
|
6203 |
-
|
6204 |
-
// Support: IE <=9 - 11 only
|
6205 |
-
// Style of cloned element affects source element cloned (#8908)
|
6206 |
-
div.style.backgroundClip = "content-box";
|
6207 |
-
div.cloneNode( true ).style.backgroundClip = "";
|
6208 |
-
support.clearCloneStyle = div.style.backgroundClip === "content-box";
|
6209 |
-
|
6210 |
-
container.style.cssText = "border:0;width:8px;height:0;top:0;left:-9999px;" +
|
6211 |
-
"padding:0;margin-top:1px;position:absolute";
|
6212 |
-
container.appendChild( div );
|
6213 |
-
|
6214 |
-
jQuery.extend( support, {
|
6215 |
-
pixelPosition: function() {
|
6216 |
-
computeStyleTests();
|
6217 |
-
return pixelPositionVal;
|
6218 |
-
},
|
6219 |
-
boxSizingReliable: function() {
|
6220 |
-
computeStyleTests();
|
6221 |
-
return boxSizingReliableVal;
|
6222 |
-
},
|
6223 |
-
pixelMarginRight: function() {
|
6224 |
-
computeStyleTests();
|
6225 |
-
return pixelMarginRightVal;
|
6226 |
-
},
|
6227 |
-
reliableMarginLeft: function() {
|
6228 |
-
computeStyleTests();
|
6229 |
-
return reliableMarginLeftVal;
|
6230 |
-
}
|
6231 |
-
} );
|
6232 |
-
} )();
|
6233 |
-
|
6234 |
-
|
6235 |
-
function curCSS( elem, name, computed ) {
|
6236 |
-
var width, minWidth, maxWidth, ret,
|
6237 |
-
|
6238 |
-
// Support: Firefox 51+
|
6239 |
-
// Retrieving style before computed somehow
|
6240 |
-
// fixes an issue with getting wrong values
|
6241 |
-
// on detached elements
|
6242 |
-
style = elem.style;
|
6243 |
-
|
6244 |
-
computed = computed || getStyles( elem );
|
6245 |
-
|
6246 |
-
// getPropertyValue is needed for:
|
6247 |
-
// .css('filter') (IE 9 only, #12537)
|
6248 |
-
// .css('--customProperty) (#3144)
|
6249 |
-
if ( computed ) {
|
6250 |
-
ret = computed.getPropertyValue( name ) || computed[ name ];
|
6251 |
-
|
6252 |
-
if ( ret === "" && !jQuery.contains( elem.ownerDocument, elem ) ) {
|
6253 |
-
ret = jQuery.style( elem, name );
|
6254 |
-
}
|
6255 |
-
|
6256 |
-
// A tribute to the "awesome hack by Dean Edwards"
|
6257 |
-
// Android Browser returns percentage for some values,
|
6258 |
-
// but width seems to be reliably pixels.
|
6259 |
-
// This is against the CSSOM draft spec:
|
6260 |
-
// https://drafts.csswg.org/cssom/#resolved-values
|
6261 |
-
if ( !support.pixelMarginRight() && rnumnonpx.test( ret ) && rmargin.test( name ) ) {
|
6262 |
-
|
6263 |
-
// Remember the original values
|
6264 |
-
width = style.width;
|
6265 |
-
minWidth = style.minWidth;
|
6266 |
-
maxWidth = style.maxWidth;
|
6267 |
-
|
6268 |
-
// Put in the new values to get a computed value out
|
6269 |
-
style.minWidth = style.maxWidth = style.width = ret;
|
6270 |
-
ret = computed.width;
|
6271 |
-
|
6272 |
-
// Revert the changed values
|
6273 |
-
style.width = width;
|
6274 |
-
style.minWidth = minWidth;
|
6275 |
-
style.maxWidth = maxWidth;
|
6276 |
-
}
|
6277 |
-
}
|
6278 |
-
|
6279 |
-
return ret !== undefined ?
|
6280 |
-
|
6281 |
-
// Support: IE <=9 - 11 only
|
6282 |
-
// IE returns zIndex value as an integer.
|
6283 |
-
ret + "" :
|
6284 |
-
ret;
|
6285 |
-
}
|
6286 |
-
|
6287 |
-
|
6288 |
-
function addGetHookIf( conditionFn, hookFn ) {
|
6289 |
-
|
6290 |
-
// Define the hook, we'll check on the first run if it's really needed.
|
6291 |
-
return {
|
6292 |
-
get: function() {
|
6293 |
-
if ( conditionFn() ) {
|
6294 |
-
|
6295 |
-
// Hook not needed (or it's not possible to use it due
|
6296 |
-
// to missing dependency), remove it.
|
6297 |
-
delete this.get;
|
6298 |
-
return;
|
6299 |
-
}
|
6300 |
-
|
6301 |
-
// Hook needed; redefine it so that the support test is not executed again.
|
6302 |
-
return ( this.get = hookFn ).apply( this, arguments );
|
6303 |
-
}
|
6304 |
-
};
|
6305 |
-
}
|
6306 |
-
|
6307 |
-
|
6308 |
-
var
|
6309 |
-
|
6310 |
-
// Swappable if display is none or starts with table
|
6311 |
-
// except "table", "table-cell", or "table-caption"
|
6312 |
-
// See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display
|
6313 |
-
rdisplayswap = /^(none|table(?!-c[ea]).+)/,
|
6314 |
-
rcustomProp = /^--/,
|
6315 |
-
cssShow = { position: "absolute", visibility: "hidden", display: "block" },
|
6316 |
-
cssNormalTransform = {
|
6317 |
-
letterSpacing: "0",
|
6318 |
-
fontWeight: "400"
|
6319 |
-
},
|
6320 |
-
|
6321 |
-
cssPrefixes = [ "Webkit", "Moz", "ms" ],
|
6322 |
-
emptyStyle = document.createElement( "div" ).style;
|
6323 |
-
|
6324 |
-
// Return a css property mapped to a potentially vendor prefixed property
|
6325 |
-
function vendorPropName( name ) {
|
6326 |
-
|
6327 |
-
// Shortcut for names that are not vendor prefixed
|
6328 |
-
if ( name in emptyStyle ) {
|
6329 |
-
return name;
|
6330 |
-
}
|
6331 |
-
|
6332 |
-
// Check for vendor prefixed names
|
6333 |
-
var capName = name[ 0 ].toUpperCase() + name.slice( 1 ),
|
6334 |
-
i = cssPrefixes.length;
|
6335 |
-
|
6336 |
-
while ( i-- ) {
|
6337 |
-
name = cssPrefixes[ i ] + capName;
|
6338 |
-
if ( name in emptyStyle ) {
|
6339 |
-
return name;
|
6340 |
-
}
|
6341 |
-
}
|
6342 |
-
}
|
6343 |
-
|
6344 |
-
// Return a property mapped along what jQuery.cssProps suggests or to
|
6345 |
-
// a vendor prefixed property.
|
6346 |
-
function finalPropName( name ) {
|
6347 |
-
var ret = jQuery.cssProps[ name ];
|
6348 |
-
if ( !ret ) {
|
6349 |
-
ret = jQuery.cssProps[ name ] = vendorPropName( name ) || name;
|
6350 |
-
}
|
6351 |
-
return ret;
|
6352 |
-
}
|
6353 |
-
|
6354 |
-
function setPositiveNumber( elem, value, subtract ) {
|
6355 |
-
|
6356 |
-
// Any relative (+/-) values have already been
|
6357 |
-
// normalized at this point
|
6358 |
-
var matches = rcssNum.exec( value );
|
6359 |
-
return matches ?
|
6360 |
-
|
6361 |
-
// Guard against undefined "subtract", e.g., when used as in cssHooks
|
6362 |
-
Math.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || "px" ) :
|
6363 |
-
value;
|
6364 |
-
}
|
6365 |
-
|
6366 |
-
function augmentWidthOrHeight( elem, name, extra, isBorderBox, styles ) {
|
6367 |
-
var i,
|
6368 |
-
val = 0;
|
6369 |
-
|
6370 |
-
// If we already have the right measurement, avoid augmentation
|
6371 |
-
if ( extra === ( isBorderBox ? "border" : "content" ) ) {
|
6372 |
-
i = 4;
|
6373 |
-
|
6374 |
-
// Otherwise initialize for horizontal or vertical properties
|
6375 |
-
} else {
|
6376 |
-
i = name === "width" ? 1 : 0;
|
6377 |
-
}
|
6378 |
-
|
6379 |
-
for ( ; i < 4; i += 2 ) {
|
6380 |
-
|
6381 |
-
// Both box models exclude margin, so add it if we want it
|
6382 |
-
if ( extra === "margin" ) {
|
6383 |
-
val += jQuery.css( elem, extra + cssExpand[ i ], true, styles );
|
6384 |
-
}
|
6385 |
-
|
6386 |
-
if ( isBorderBox ) {
|
6387 |
-
|
6388 |
-
// border-box includes padding, so remove it if we want content
|
6389 |
-
if ( extra === "content" ) {
|
6390 |
-
val -= jQuery.css( elem, "padding" + cssExpand[ i ], true, styles );
|
6391 |
-
}
|
6392 |
-
|
6393 |
-
// At this point, extra isn't border nor margin, so remove border
|
6394 |
-
if ( extra !== "margin" ) {
|
6395 |
-
val -= jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles );
|
6396 |
-
}
|
6397 |
-
} else {
|
6398 |
-
|
6399 |
-
// At this point, extra isn't content, so add padding
|
6400 |
-
val += jQuery.css( elem, "padding" + cssExpand[ i ], true, styles );
|
6401 |
-
|
6402 |
-
// At this point, extra isn't content nor padding, so add border
|
6403 |
-
if ( extra !== "padding" ) {
|
6404 |
-
val += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles );
|
6405 |
-
}
|
6406 |
-
}
|
6407 |
-
}
|
6408 |
-
|
6409 |
-
return val;
|
6410 |
-
}
|
6411 |
-
|
6412 |
-
function getWidthOrHeight( elem, name, extra ) {
|
6413 |
-
|
6414 |
-
// Start with computed style
|
6415 |
-
var valueIsBorderBox,
|
6416 |
-
styles = getStyles( elem ),
|
6417 |
-
val = curCSS( elem, name, styles ),
|
6418 |
-
isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box";
|
6419 |
-
|
6420 |
-
// Computed unit is not pixels. Stop here and return.
|
6421 |
-
if ( rnumnonpx.test( val ) ) {
|
6422 |
-
return val;
|
6423 |
-
}
|
6424 |
-
|
6425 |
-
// Check for style in case a browser which returns unreliable values
|
6426 |
-
// for getComputedStyle silently falls back to the reliable elem.style
|
6427 |
-
valueIsBorderBox = isBorderBox &&
|
6428 |
-
( support.boxSizingReliable() || val === elem.style[ name ] );
|
6429 |
-
|
6430 |
-
// Fall back to offsetWidth/Height when value is "auto"
|
6431 |
-
// This happens for inline elements with no explicit setting (gh-3571)
|
6432 |
-
if ( val === "auto" ) {
|
6433 |
-
val = elem[ "offset" + name[ 0 ].toUpperCase() + name.slice( 1 ) ];
|
6434 |
-
}
|
6435 |
-
|
6436 |
-
// Normalize "", auto, and prepare for extra
|
6437 |
-
val = parseFloat( val ) || 0;
|
6438 |
-
|
6439 |
-
// Use the active box-sizing model to add/subtract irrelevant styles
|
6440 |
-
return ( val +
|
6441 |
-
augmentWidthOrHeight(
|
6442 |
-
elem,
|
6443 |
-
name,
|
6444 |
-
extra || ( isBorderBox ? "border" : "content" ),
|
6445 |
-
valueIsBorderBox,
|
6446 |
-
styles
|
6447 |
-
)
|
6448 |
-
) + "px";
|
6449 |
-
}
|
6450 |
-
|
6451 |
-
jQuery.extend( {
|
6452 |
-
|
6453 |
-
// Add in style property hooks for overriding the default
|
6454 |
-
// behavior of getting and setting a style property
|
6455 |
-
cssHooks: {
|
6456 |
-
opacity: {
|
6457 |
-
get: function( elem, computed ) {
|
6458 |
-
if ( computed ) {
|
6459 |
-
|
6460 |
-
// We should always get a number back from opacity
|
6461 |
-
var ret = curCSS( elem, "opacity" );
|
6462 |
-
return ret === "" ? "1" : ret;
|
6463 |
-
}
|
6464 |
-
}
|
6465 |
-
}
|
6466 |
-
},
|
6467 |
-
|
6468 |
-
// Don't automatically add "px" to these possibly-unitless properties
|
6469 |
-
cssNumber: {
|
6470 |
-
"animationIterationCount": true,
|
6471 |
-
"columnCount": true,
|
6472 |
-
"fillOpacity": true,
|
6473 |
-
"flexGrow": true,
|
6474 |
-
"flexShrink": true,
|
6475 |
-
"fontWeight": true,
|
6476 |
-
"lineHeight": true,
|
6477 |
-
"opacity": true,
|
6478 |
-
"order": true,
|
6479 |
-
"orphans": true,
|
6480 |
-
"widows": true,
|
6481 |
-
"zIndex": true,
|
6482 |
-
"zoom": true
|
6483 |
-
},
|
6484 |
-
|
6485 |
-
// Add in properties whose names you wish to fix before
|
6486 |
-
// setting or getting the value
|
6487 |
-
cssProps: {
|
6488 |
-
"float": "cssFloat"
|
6489 |
-
},
|
6490 |
-
|
6491 |
-
// Get and set the style property on a DOM Node
|
6492 |
-
style: function( elem, name, value, extra ) {
|
6493 |
-
|
6494 |
-
// Don't set styles on text and comment nodes
|
6495 |
-
if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {
|
6496 |
-
return;
|
6497 |
-
}
|
6498 |
-
|
6499 |
-
// Make sure that we're working with the right name
|
6500 |
-
var ret, type, hooks,
|
6501 |
-
origName = jQuery.camelCase( name ),
|
6502 |
-
isCustomProp = rcustomProp.test( name ),
|
6503 |
-
style = elem.style;
|
6504 |
-
|
6505 |
-
// Make sure that we're working with the right name. We don't
|
6506 |
-
// want to query the value if it is a CSS custom property
|
6507 |
-
// since they are user-defined.
|
6508 |
-
if ( !isCustomProp ) {
|
6509 |
-
name = finalPropName( origName );
|
6510 |
-
}
|
6511 |
-
|
6512 |
-
// Gets hook for the prefixed version, then unprefixed version
|
6513 |
-
hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];
|
6514 |
-
|
6515 |
-
// Check if we're setting a value
|
6516 |
-
if ( value !== undefined ) {
|
6517 |
-
type = typeof value;
|
6518 |
-
|
6519 |
-
// Convert "+=" or "-=" to relative numbers (#7345)
|
6520 |
-
if ( type === "string" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) {
|
6521 |
-
value = adjustCSS( elem, name, ret );
|
6522 |
-
|
6523 |
-
// Fixes bug #9237
|
6524 |
-
type = "number";
|
6525 |
-
}
|
6526 |
-
|
6527 |
-
// Make sure that null and NaN values aren't set (#7116)
|
6528 |
-
if ( value == null || value !== value ) {
|
6529 |
-
return;
|
6530 |
-
}
|
6531 |
-
|
6532 |
-
// If a number was passed in, add the unit (except for certain CSS properties)
|
6533 |
-
if ( type === "number" ) {
|
6534 |
-
value += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? "" : "px" );
|
6535 |
-
}
|
6536 |
-
|
6537 |
-
// background-* props affect original clone's values
|
6538 |
-
if ( !support.clearCloneStyle && value === "" && name.indexOf( "background" ) === 0 ) {
|
6539 |
-
style[ name ] = "inherit";
|
6540 |
-
}
|
6541 |
-
|
6542 |
-
// If a hook was provided, use that value, otherwise just set the specified value
|
6543 |
-
if ( !hooks || !( "set" in hooks ) ||
|
6544 |
-
( value = hooks.set( elem, value, extra ) ) !== undefined ) {
|
6545 |
-
|
6546 |
-
if ( isCustomProp ) {
|
6547 |
-
style.setProperty( name, value );
|
6548 |
-
} else {
|
6549 |
-
style[ name ] = value;
|
6550 |
-
}
|
6551 |
-
}
|
6552 |
-
|
6553 |
-
} else {
|
6554 |
-
|
6555 |
-
// If a hook was provided get the non-computed value from there
|
6556 |
-
if ( hooks && "get" in hooks &&
|
6557 |
-
( ret = hooks.get( elem, false, extra ) ) !== undefined ) {
|
6558 |
-
|
6559 |
-
return ret;
|
6560 |
-
}
|
6561 |
-
|
6562 |
-
// Otherwise just get the value from the style object
|
6563 |
-
return style[ name ];
|
6564 |
-
}
|
6565 |
-
},
|
6566 |
-
|
6567 |
-
css: function( elem, name, extra, styles ) {
|
6568 |
-
var val, num, hooks,
|
6569 |
-
origName = jQuery.camelCase( name ),
|
6570 |
-
isCustomProp = rcustomProp.test( name );
|
6571 |
-
|
6572 |
-
// Make sure that we're working with the right name. We don't
|
6573 |
-
// want to modify the value if it is a CSS custom property
|
6574 |
-
// since they are user-defined.
|
6575 |
-
if ( !isCustomProp ) {
|
6576 |
-
name = finalPropName( origName );
|
6577 |
-
}
|
6578 |
-
|
6579 |
-
// Try prefixed name followed by the unprefixed name
|
6580 |
-
hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];
|
6581 |
-
|
6582 |
-
// If a hook was provided get the computed value from there
|
6583 |
-
if ( hooks && "get" in hooks ) {
|
6584 |
-
val = hooks.get( elem, true, extra );
|
6585 |
-
}
|
6586 |
-
|
6587 |
-
// Otherwise, if a way to get the computed value exists, use that
|
6588 |
-
if ( val === undefined ) {
|
6589 |
-
val = curCSS( elem, name, styles );
|
6590 |
-
}
|
6591 |
-
|
6592 |
-
// Convert "normal" to computed value
|
6593 |
-
if ( val === "normal" && name in cssNormalTransform ) {
|
6594 |
-
val = cssNormalTransform[ name ];
|
6595 |
-
}
|
6596 |
-
|
6597 |
-
// Make numeric if forced or a qualifier was provided and val looks numeric
|
6598 |
-
if ( extra === "" || extra ) {
|
6599 |
-
num = parseFloat( val );
|
6600 |
-
return extra === true || isFinite( num ) ? num || 0 : val;
|
6601 |
-
}
|
6602 |
-
|
6603 |
-
return val;
|
6604 |
-
}
|
6605 |
-
} );
|
6606 |
-
|
6607 |
-
jQuery.each( [ "height", "width" ], function( i, name ) {
|
6608 |
-
jQuery.cssHooks[ name ] = {
|
6609 |
-
get: function( elem, computed, extra ) {
|
6610 |
-
if ( computed ) {
|
6611 |
-
|
6612 |
-
// Certain elements can have dimension info if we invisibly show them
|
6613 |
-
// but it must have a current display style that would benefit
|
6614 |
-
return rdisplayswap.test( jQuery.css( elem, "display" ) ) &&
|
6615 |
-
|
6616 |
-
// Support: Safari 8+
|
6617 |
-
// Table columns in Safari have non-zero offsetWidth & zero
|
6618 |
-
// getBoundingClientRect().width unless display is changed.
|
6619 |
-
// Support: IE <=11 only
|
6620 |
-
// Running getBoundingClientRect on a disconnected node
|
6621 |
-
// in IE throws an error.
|
6622 |
-
( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ?
|
6623 |
-
swap( elem, cssShow, function() {
|
6624 |
-
return getWidthOrHeight( elem, name, extra );
|
6625 |
-
} ) :
|
6626 |
-
getWidthOrHeight( elem, name, extra );
|
6627 |
-
}
|
6628 |
-
},
|
6629 |
-
|
6630 |
-
set: function( elem, value, extra ) {
|
6631 |
-
var matches,
|
6632 |
-
styles = extra && getStyles( elem ),
|
6633 |
-
subtract = extra && augmentWidthOrHeight(
|
6634 |
-
elem,
|
6635 |
-
name,
|
6636 |
-
extra,
|
6637 |
-
jQuery.css( elem, "boxSizing", false, styles ) === "border-box",
|
6638 |
-
styles
|
6639 |
-
);
|
6640 |
-
|
6641 |
-
// Convert to pixels if value adjustment is needed
|
6642 |
-
if ( subtract && ( matches = rcssNum.exec( value ) ) &&
|
6643 |
-
( matches[ 3 ] || "px" ) !== "px" ) {
|
6644 |
-
|
6645 |
-
elem.style[ name ] = value;
|
6646 |
-
value = jQuery.css( elem, name );
|
6647 |
-
}
|
6648 |
-
|
6649 |
-
return setPositiveNumber( elem, value, subtract );
|
6650 |
-
}
|
6651 |
-
};
|
6652 |
-
} );
|
6653 |
-
|
6654 |
-
jQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft,
|
6655 |
-
function( elem, computed ) {
|
6656 |
-
if ( computed ) {
|
6657 |
-
return ( parseFloat( curCSS( elem, "marginLeft" ) ) ||
|
6658 |
-
elem.getBoundingClientRect().left -
|
6659 |
-
swap( elem, { marginLeft: 0 }, function() {
|
6660 |
-
return elem.getBoundingClientRect().left;
|
6661 |
-
} )
|
6662 |
-
) + "px";
|
6663 |
-
}
|
6664 |
-
}
|
6665 |
-
);
|
6666 |
-
|
6667 |
-
// These hooks are used by animate to expand properties
|
6668 |
-
jQuery.each( {
|
6669 |
-
margin: "",
|
6670 |
-
padding: "",
|
6671 |
-
border: "Width"
|
6672 |
-
}, function( prefix, suffix ) {
|
6673 |
-
jQuery.cssHooks[ prefix + suffix ] = {
|
6674 |
-
expand: function( value ) {
|
6675 |
-
var i = 0,
|
6676 |
-
expanded = {},
|
6677 |
-
|
6678 |
-
// Assumes a single number if not a string
|
6679 |
-
parts = typeof value === "string" ? value.split( " " ) : [ value ];
|
6680 |
-
|
6681 |
-
for ( ; i < 4; i++ ) {
|
6682 |
-
expanded[ prefix + cssExpand[ i ] + suffix ] =
|
6683 |
-
parts[ i ] || parts[ i - 2 ] || parts[ 0 ];
|
6684 |
-
}
|
6685 |
-
|
6686 |
-
return expanded;
|
6687 |
-
}
|
6688 |
-
};
|
6689 |
-
|
6690 |
-
if ( !rmargin.test( prefix ) ) {
|
6691 |
-
jQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber;
|
6692 |
-
}
|
6693 |
-
} );
|
6694 |
-
|
6695 |
-
jQuery.fn.extend( {
|
6696 |
-
css: function( name, value ) {
|
6697 |
-
return access( this, function( elem, name, value ) {
|
6698 |
-
var styles, len,
|
6699 |
-
map = {},
|
6700 |
-
i = 0;
|
6701 |
-
|
6702 |
-
if ( Array.isArray( name ) ) {
|
6703 |
-
styles = getStyles( elem );
|
6704 |
-
len = name.length;
|
6705 |
-
|
6706 |
-
for ( ; i < len; i++ ) {
|
6707 |
-
map[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles );
|
6708 |
-
}
|
6709 |
-
|
6710 |
-
return map;
|
6711 |
-
}
|
6712 |
-
|
6713 |
-
return value !== undefined ?
|
6714 |
-
jQuery.style( elem, name, value ) :
|
6715 |
-
jQuery.css( elem, name );
|
6716 |
-
}, name, value, arguments.length > 1 );
|
6717 |
-
}
|
6718 |
-
} );
|
6719 |
-
|
6720 |
-
|
6721 |
-
function Tween( elem, options, prop, end, easing ) {
|
6722 |
-
return new Tween.prototype.init( elem, options, prop, end, easing );
|
6723 |
-
}
|
6724 |
-
jQuery.Tween = Tween;
|
6725 |
-
|
6726 |
-
Tween.prototype = {
|
6727 |
-
constructor: Tween,
|
6728 |
-
init: function( elem, options, prop, end, easing, unit ) {
|
6729 |
-
this.elem = elem;
|
6730 |
-
this.prop = prop;
|
6731 |
-
this.easing = easing || jQuery.easing._default;
|
6732 |
-
this.options = options;
|
6733 |
-
this.start = this.now = this.cur();
|
6734 |
-
this.end = end;
|
6735 |
-
this.unit = unit || ( jQuery.cssNumber[ prop ] ? "" : "px" );
|
6736 |
-
},
|
6737 |
-
cur: function() {
|
6738 |
-
var hooks = Tween.propHooks[ this.prop ];
|
6739 |
-
|
6740 |
-
return hooks && hooks.get ?
|
6741 |
-
hooks.get( this ) :
|
6742 |
-
Tween.propHooks._default.get( this );
|
6743 |
-
},
|
6744 |
-
run: function( percent ) {
|
6745 |
-
var eased,
|
6746 |
-
hooks = Tween.propHooks[ this.prop ];
|
6747 |
-
|
6748 |
-
if ( this.options.duration ) {
|
6749 |
-
this.pos = eased = jQuery.easing[ this.easing ](
|
6750 |
-
percent, this.options.duration * percent, 0, 1, this.options.duration
|
6751 |
-
);
|
6752 |
-
} else {
|
6753 |
-
this.pos = eased = percent;
|
6754 |
-
}
|
6755 |
-
this.now = ( this.end - this.start ) * eased + this.start;
|
6756 |
-
|
6757 |
-
if ( this.options.step ) {
|
6758 |
-
this.options.step.call( this.elem, this.now, this );
|
6759 |
-
}
|
6760 |
-
|
6761 |
-
if ( hooks && hooks.set ) {
|
6762 |
-
hooks.set( this );
|
6763 |
-
} else {
|
6764 |
-
Tween.propHooks._default.set( this );
|
6765 |
-
}
|
6766 |
-
return this;
|
6767 |
-
}
|
6768 |
-
};
|
6769 |
-
|
6770 |
-
Tween.prototype.init.prototype = Tween.prototype;
|
6771 |
-
|
6772 |
-
Tween.propHooks = {
|
6773 |
-
_default: {
|
6774 |
-
get: function( tween ) {
|
6775 |
-
var result;
|
6776 |
-
|
6777 |
-
// Use a property on the element directly when it is not a DOM element,
|
6778 |
-
// or when there is no matching style property that exists.
|
6779 |
-
if ( tween.elem.nodeType !== 1 ||
|
6780 |
-
tween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) {
|
6781 |
-
return tween.elem[ tween.prop ];
|
6782 |
-
}
|
6783 |
-
|
6784 |
-
// Passing an empty string as a 3rd parameter to .css will automatically
|
6785 |
-
// attempt a parseFloat and fallback to a string if the parse fails.
|
6786 |
-
// Simple values such as "10px" are parsed to Float;
|
6787 |
-
// complex values such as "rotate(1rad)" are returned as-is.
|
6788 |
-
result = jQuery.css( tween.elem, tween.prop, "" );
|
6789 |
-
|
6790 |
-
// Empty strings, null, undefined and "auto" are converted to 0.
|
6791 |
-
return !result || result === "auto" ? 0 : result;
|
6792 |
-
},
|
6793 |
-
set: function( tween ) {
|
6794 |
-
|
6795 |
-
// Use step hook for back compat.
|
6796 |
-
// Use cssHook if its there.
|
6797 |
-
// Use .style if available and use plain properties where available.
|
6798 |
-
if ( jQuery.fx.step[ tween.prop ] ) {
|
6799 |
-
jQuery.fx.step[ tween.prop ]( tween );
|
6800 |
-
} else if ( tween.elem.nodeType === 1 &&
|
6801 |
-
( tween.elem.style[ jQuery.cssProps[ tween.prop ] ] != null ||
|
6802 |
-
jQuery.cssHooks[ tween.prop ] ) ) {
|
6803 |
-
jQuery.style( tween.elem, tween.prop, tween.now + tween.unit );
|
6804 |
-
} else {
|
6805 |
-
tween.elem[ tween.prop ] = tween.now;
|
6806 |
-
}
|
6807 |
-
}
|
6808 |
-
}
|
6809 |
-
};
|
6810 |
-
|
6811 |
-
// Support: IE <=9 only
|
6812 |
-
// Panic based approach to setting things on disconnected nodes
|
6813 |
-
Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {
|
6814 |
-
set: function( tween ) {
|
6815 |
-
if ( tween.elem.nodeType && tween.elem.parentNode ) {
|
6816 |
-
tween.elem[ tween.prop ] = tween.now;
|
6817 |
-
}
|
6818 |
-
}
|
6819 |
-
};
|
6820 |
-
|
6821 |
-
jQuery.easing = {
|
6822 |
-
linear: function( p ) {
|
6823 |
-
return p;
|
6824 |
-
},
|
6825 |
-
swing: function( p ) {
|
6826 |
-
return 0.5 - Math.cos( p * Math.PI ) / 2;
|
6827 |
-
},
|
6828 |
-
_default: "swing"
|
6829 |
-
};
|
6830 |
-
|
6831 |
-
jQuery.fx = Tween.prototype.init;
|
6832 |
-
|
6833 |
-
// Back compat <1.8 extension point
|
6834 |
-
jQuery.fx.step = {};
|
6835 |
-
|
6836 |
-
|
6837 |
-
|
6838 |
-
|
6839 |
-
var
|
6840 |
-
fxNow, inProgress,
|
6841 |
-
rfxtypes = /^(?:toggle|show|hide)$/,
|
6842 |
-
rrun = /queueHooks$/;
|
6843 |
-
|
6844 |
-
function schedule() {
|
6845 |
-
if ( inProgress ) {
|
6846 |
-
if ( document.hidden === false && window.requestAnimationFrame ) {
|
6847 |
-
window.requestAnimationFrame( schedule );
|
6848 |
-
} else {
|
6849 |
-
window.setTimeout( schedule, jQuery.fx.interval );
|
6850 |
-
}
|
6851 |
-
|
6852 |
-
jQuery.fx.tick();
|
6853 |
-
}
|
6854 |
-
}
|
6855 |
-
|
6856 |
-
// Animations created synchronously will run synchronously
|
6857 |
-
function createFxNow() {
|
6858 |
-
window.setTimeout( function() {
|
6859 |
-
fxNow = undefined;
|
6860 |
-
} );
|
6861 |
-
return ( fxNow = jQuery.now() );
|
6862 |
-
}
|
6863 |
-
|
6864 |
-
// Generate parameters to create a standard animation
|
6865 |
-
function genFx( type, includeWidth ) {
|
6866 |
-
var which,
|
6867 |
-
i = 0,
|
6868 |
-
attrs = { height: type };
|
6869 |
-
|
6870 |
-
// If we include width, step value is 1 to do all cssExpand values,
|
6871 |
-
// otherwise step value is 2 to skip over Left and Right
|
6872 |
-
includeWidth = includeWidth ? 1 : 0;
|
6873 |
-
for ( ; i < 4; i += 2 - includeWidth ) {
|
6874 |
-
which = cssExpand[ i ];
|
6875 |
-
attrs[ "margin" + which ] = attrs[ "padding" + which ] = type;
|
6876 |
-
}
|
6877 |
-
|
6878 |
-
if ( includeWidth ) {
|
6879 |
-
attrs.opacity = attrs.width = type;
|
6880 |
-
}
|
6881 |
-
|
6882 |
-
return attrs;
|
6883 |
-
}
|
6884 |
-
|
6885 |
-
function createTween( value, prop, animation ) {
|
6886 |
-
var tween,
|
6887 |
-
collection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ "*" ] ),
|
6888 |
-
index = 0,
|
6889 |
-
length = collection.length;
|
6890 |
-
for ( ; index < length; index++ ) {
|
6891 |
-
if ( ( tween = collection[ index ].call( animation, prop, value ) ) ) {
|
6892 |
-
|
6893 |
-
// We're done with this property
|
6894 |
-
return tween;
|
6895 |
-
}
|
6896 |
-
}
|
6897 |
-
}
|
6898 |
-
|
6899 |
-
function defaultPrefilter( elem, props, opts ) {
|
6900 |
-
var prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display,
|
6901 |
-
isBox = "width" in props || "height" in props,
|
6902 |
-
anim = this,
|
6903 |
-
orig = {},
|
6904 |
-
style = elem.style,
|
6905 |
-
hidden = elem.nodeType && isHiddenWithinTree( elem ),
|
6906 |
-
dataShow = dataPriv.get( elem, "fxshow" );
|
6907 |
-
|
6908 |
-
// Queue-skipping animations hijack the fx hooks
|
6909 |
-
if ( !opts.queue ) {
|
6910 |
-
hooks = jQuery._queueHooks( elem, "fx" );
|
6911 |
-
if ( hooks.unqueued == null ) {
|
6912 |
-
hooks.unqueued = 0;
|
6913 |
-
oldfire = hooks.empty.fire;
|
6914 |
-
hooks.empty.fire = function() {
|
6915 |
-
if ( !hooks.unqueued ) {
|
6916 |
-
oldfire();
|
6917 |
-
}
|
6918 |
-
};
|
6919 |
-
}
|
6920 |
-
hooks.unqueued++;
|
6921 |
-
|
6922 |
-
anim.always( function() {
|
6923 |
-
|
6924 |
-
// Ensure the complete handler is called before this completes
|
6925 |
-
anim.always( function() {
|
6926 |
-
hooks.unqueued--;
|
6927 |
-
if ( !jQuery.queue( elem, "fx" ).length ) {
|
6928 |
-
hooks.empty.fire();
|
6929 |
-
}
|
6930 |
-
} );
|
6931 |
-
} );
|
6932 |
-
}
|
6933 |
-
|
6934 |
-
// Detect show/hide animations
|
6935 |
-
for ( prop in props ) {
|
6936 |
-
value = props[ prop ];
|
6937 |
-
if ( rfxtypes.test( value ) ) {
|
6938 |
-
delete props[ prop ];
|
6939 |
-
toggle = toggle || value === "toggle";
|
6940 |
-
if ( value === ( hidden ? "hide" : "show" ) ) {
|
6941 |
-
|
6942 |
-
// Pretend to be hidden if this is a "show" and
|
6943 |
-
// there is still data from a stopped show/hide
|
6944 |
-
if ( value === "show" && dataShow && dataShow[ prop ] !== undefined ) {
|
6945 |
-
hidden = true;
|
6946 |
-
|
6947 |
-
// Ignore all other no-op show/hide data
|
6948 |
-
} else {
|
6949 |
-
continue;
|
6950 |
-
}
|
6951 |
-
}
|
6952 |
-
orig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop );
|
6953 |
-
}
|
6954 |
-
}
|
6955 |
-
|
6956 |
-
// Bail out if this is a no-op like .hide().hide()
|
6957 |
-
propTween = !jQuery.isEmptyObject( props );
|
6958 |
-
if ( !propTween && jQuery.isEmptyObject( orig ) ) {
|
6959 |
-
return;
|
6960 |
-
}
|
6961 |
-
|
6962 |
-
// Restrict "overflow" and "display" styles during box animations
|
6963 |
-
if ( isBox && elem.nodeType === 1 ) {
|
6964 |
-
|
6965 |
-
// Support: IE <=9 - 11, Edge 12 - 13
|
6966 |
-
// Record all 3 overflow attributes because IE does not infer the shorthand
|
6967 |
-
// from identically-valued overflowX and overflowY
|
6968 |
-
opts.overflow = [ style.overflow, style.overflowX, style.overflowY ];
|
6969 |
-
|
6970 |
-
// Identify a display type, preferring old show/hide data over the CSS cascade
|
6971 |
-
restoreDisplay = dataShow && dataShow.display;
|
6972 |
-
if ( restoreDisplay == null ) {
|
6973 |
-
restoreDisplay = dataPriv.get( elem, "display" );
|
6974 |
-
}
|
6975 |
-
display = jQuery.css( elem, "display" );
|
6976 |
-
if ( display === "none" ) {
|
6977 |
-
if ( restoreDisplay ) {
|
6978 |
-
display = restoreDisplay;
|
6979 |
-
} else {
|
6980 |
-
|
6981 |
-
// Get nonempty value(s) by temporarily forcing visibility
|
6982 |
-
showHide( [ elem ], true );
|
6983 |
-
restoreDisplay = elem.style.display || restoreDisplay;
|
6984 |
-
display = jQuery.css( elem, "display" );
|
6985 |
-
showHide( [ elem ] );
|
6986 |
-
}
|
6987 |
-
}
|
6988 |
-
|
6989 |
-
// Animate inline elements as inline-block
|
6990 |
-
if ( display === "inline" || display === "inline-block" && restoreDisplay != null ) {
|
6991 |
-
if ( jQuery.css( elem, "float" ) === "none" ) {
|
6992 |
-
|
6993 |
-
// Restore the original display value at the end of pure show/hide animations
|
6994 |
-
if ( !propTween ) {
|
6995 |
-
anim.done( function() {
|
6996 |
-
style.display = restoreDisplay;
|
6997 |
-
} );
|
6998 |
-
if ( restoreDisplay == null ) {
|
6999 |
-
display = style.display;
|
7000 |
-
restoreDisplay = display === "none" ? "" : display;
|
7001 |
-
}
|
7002 |
-
}
|
7003 |
-
style.display = "inline-block";
|
7004 |
-
}
|
7005 |
-
}
|
7006 |
-
}
|
7007 |
-
|
7008 |
-
if ( opts.overflow ) {
|
7009 |
-
style.overflow = "hidden";
|
7010 |
-
anim.always( function() {
|
7011 |
-
style.overflow = opts.overflow[ 0 ];
|
7012 |
-
style.overflowX = opts.overflow[ 1 ];
|
7013 |
-
style.overflowY = opts.overflow[ 2 ];
|
7014 |
-
} );
|
7015 |
-
}
|
7016 |
-
|
7017 |
-
// Implement show/hide animations
|
7018 |
-
propTween = false;
|
7019 |
-
for ( prop in orig ) {
|
7020 |
-
|
7021 |
-
// General show/hide setup for this element animation
|
7022 |
-
if ( !propTween ) {
|
7023 |
-
if ( dataShow ) {
|
7024 |
-
if ( "hidden" in dataShow ) {
|
7025 |
-
hidden = dataShow.hidden;
|
7026 |
-
}
|
7027 |
-
} else {
|
7028 |
-
dataShow = dataPriv.access( elem, "fxshow", { display: restoreDisplay } );
|
7029 |
-
}
|
7030 |
-
|
7031 |
-
// Store hidden/visible for toggle so `.stop().toggle()` "reverses"
|
7032 |
-
if ( toggle ) {
|
7033 |
-
dataShow.hidden = !hidden;
|
7034 |
-
}
|
7035 |
-
|
7036 |
-
// Show elements before animating them
|
7037 |
-
if ( hidden ) {
|
7038 |
-
showHide( [ elem ], true );
|
7039 |
-
}
|
7040 |
-
|
7041 |
-
/* eslint-disable no-loop-func */
|
7042 |
-
|
7043 |
-
anim.done( function() {
|
7044 |
-
|
7045 |
-
/* eslint-enable no-loop-func */
|
7046 |
-
|
7047 |
-
// The final step of a "hide" animation is actually hiding the element
|
7048 |
-
if ( !hidden ) {
|
7049 |
-
showHide( [ elem ] );
|
7050 |
-
}
|
7051 |
-
dataPriv.remove( elem, "fxshow" );
|
7052 |
-
for ( prop in orig ) {
|
7053 |
-
jQuery.style( elem, prop, orig[ prop ] );
|
7054 |
-
}
|
7055 |
-
} );
|
7056 |
-
}
|
7057 |
-
|
7058 |
-
// Per-property setup
|
7059 |
-
propTween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim );
|
7060 |
-
if ( !( prop in dataShow ) ) {
|
7061 |
-
dataShow[ prop ] = propTween.start;
|
7062 |
-
if ( hidden ) {
|
7063 |
-
propTween.end = propTween.start;
|
7064 |
-
propTween.start = 0;
|
7065 |
-
}
|
7066 |
-
}
|
7067 |
-
}
|
7068 |
-
}
|
7069 |
-
|
7070 |
-
function propFilter( props, specialEasing ) {
|
7071 |
-
var index, name, easing, value, hooks;
|
7072 |
-
|
7073 |
-
// camelCase, specialEasing and expand cssHook pass
|
7074 |
-
for ( index in props ) {
|
7075 |
-
name = jQuery.camelCase( index );
|
7076 |
-
easing = specialEasing[ name ];
|
7077 |
-
value = props[ index ];
|
7078 |
-
if ( Array.isArray( value ) ) {
|
7079 |
-
easing = value[ 1 ];
|
7080 |
-
value = props[ index ] = value[ 0 ];
|
7081 |
-
}
|
7082 |
-
|
7083 |
-
if ( index !== name ) {
|
7084 |
-
props[ name ] = value;
|
7085 |
-
delete props[ index ];
|
7086 |
-
}
|
7087 |
-
|
7088 |
-
hooks = jQuery.cssHooks[ name ];
|
7089 |
-
if ( hooks && "expand" in hooks ) {
|
7090 |
-
value = hooks.expand( value );
|
7091 |
-
delete props[ name ];
|
7092 |
-
|
7093 |
-
// Not quite $.extend, this won't overwrite existing keys.
|
7094 |
-
// Reusing 'index' because we have the correct "name"
|
7095 |
-
for ( index in value ) {
|
7096 |
-
if ( !( index in props ) ) {
|
7097 |
-
props[ index ] = value[ index ];
|
7098 |
-
specialEasing[ index ] = easing;
|
7099 |
-
}
|
7100 |
-
}
|
7101 |
-
} else {
|
7102 |
-
specialEasing[ name ] = easing;
|
7103 |
-
}
|
7104 |
-
}
|
7105 |
-
}
|
7106 |
-
|
7107 |
-
function Animation( elem, properties, options ) {
|
7108 |
-
var result,
|
7109 |
-
stopped,
|
7110 |
-
index = 0,
|
7111 |
-
length = Animation.prefilters.length,
|
7112 |
-
deferred = jQuery.Deferred().always( function() {
|
7113 |
-
|
7114 |
-
// Don't match elem in the :animated selector
|
7115 |
-
delete tick.elem;
|
7116 |
-
} ),
|
7117 |
-
tick = function() {
|
7118 |
-
if ( stopped ) {
|
7119 |
-
return false;
|
7120 |
-
}
|
7121 |
-
var currentTime = fxNow || createFxNow(),
|
7122 |
-
remaining = Math.max( 0, animation.startTime + animation.duration - currentTime ),
|
7123 |
-
|
7124 |
-
// Support: Android 2.3 only
|
7125 |
-
// Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497)
|
7126 |
-
temp = remaining / animation.duration || 0,
|
7127 |
-
percent = 1 - temp,
|
7128 |
-
index = 0,
|
7129 |
-
length = animation.tweens.length;
|
7130 |
-
|
7131 |
-
for ( ; index < length; index++ ) {
|
7132 |
-
animation.tweens[ index ].run( percent );
|
7133 |
-
}
|
7134 |
-
|
7135 |
-
deferred.notifyWith( elem, [ animation, percent, remaining ] );
|
7136 |
-
|
7137 |
-
// If there's more to do, yield
|
7138 |
-
if ( percent < 1 && length ) {
|
7139 |
-
return remaining;
|
7140 |
-
}
|
7141 |
-
|
7142 |
-
// If this was an empty animation, synthesize a final progress notification
|
7143 |
-
if ( !length ) {
|
7144 |
-
deferred.notifyWith( elem, [ animation, 1, 0 ] );
|
7145 |
-
}
|
7146 |
-
|
7147 |
-
// Resolve the animation and report its conclusion
|
7148 |
-
deferred.resolveWith( elem, [ animation ] );
|
7149 |
-
return false;
|
7150 |
-
},
|
7151 |
-
animation = deferred.promise( {
|
7152 |
-
elem: elem,
|
7153 |
-
props: jQuery.extend( {}, properties ),
|
7154 |
-
opts: jQuery.extend( true, {
|
7155 |
-
specialEasing: {},
|
7156 |
-
easing: jQuery.easing._default
|
7157 |
-
}, options ),
|
7158 |
-
originalProperties: properties,
|
7159 |
-
originalOptions: options,
|
7160 |
-
startTime: fxNow || createFxNow(),
|
7161 |
-
duration: options.duration,
|
7162 |
-
tweens: [],
|
7163 |
-
createTween: function( prop, end ) {
|
7164 |
-
var tween = jQuery.Tween( elem, animation.opts, prop, end,
|
7165 |
-
animation.opts.specialEasing[ prop ] || animation.opts.easing );
|
7166 |
-
animation.tweens.push( tween );
|
7167 |
-
return tween;
|
7168 |
-
},
|
7169 |
-
stop: function( gotoEnd ) {
|
7170 |
-
var index = 0,
|
7171 |
-
|
7172 |
-
// If we are going to the end, we want to run all the tweens
|
7173 |
-
// otherwise we skip this part
|
7174 |
-
length = gotoEnd ? animation.tweens.length : 0;
|
7175 |
-
if ( stopped ) {
|
7176 |
-
return this;
|
7177 |
-
}
|
7178 |
-
stopped = true;
|
7179 |
-
for ( ; index < length; index++ ) {
|
7180 |
-
animation.tweens[ index ].run( 1 );
|
7181 |
-
}
|
7182 |
-
|
7183 |
-
// Resolve when we played the last frame; otherwise, reject
|
7184 |
-
if ( gotoEnd ) {
|
7185 |
-
deferred.notifyWith( elem, [ animation, 1, 0 ] );
|
7186 |
-
deferred.resolveWith( elem, [ animation, gotoEnd ] );
|
7187 |
-
} else {
|
7188 |
-
deferred.rejectWith( elem, [ animation, gotoEnd ] );
|
7189 |
-
}
|
7190 |
-
return this;
|
7191 |
-
}
|
7192 |
-
} ),
|
7193 |
-
props = animation.props;
|
7194 |
-
|
7195 |
-
propFilter( props, animation.opts.specialEasing );
|
7196 |
-
|
7197 |
-
for ( ; index < length; index++ ) {
|
7198 |
-
result = Animation.prefilters[ index ].call( animation, elem, props, animation.opts );
|
7199 |
-
if ( result ) {
|
7200 |
-
if ( jQuery.isFunction( result.stop ) ) {
|
7201 |
-
jQuery._queueHooks( animation.elem, animation.opts.queue ).stop =
|
7202 |
-
jQuery.proxy( result.stop, result );
|
7203 |
-
}
|
7204 |
-
return result;
|
7205 |
-
}
|
7206 |
-
}
|
7207 |
-
|
7208 |
-
jQuery.map( props, createTween, animation );
|
7209 |
-
|
7210 |
-
if ( jQuery.isFunction( animation.opts.start ) ) {
|
7211 |
-
animation.opts.start.call( elem, animation );
|
7212 |
-
}
|
7213 |
-
|
7214 |
-
// Attach callbacks from options
|
7215 |
-
animation
|
7216 |
-
.progress( animation.opts.progress )
|
7217 |
-
.done( animation.opts.done, animation.opts.complete )
|
7218 |
-
.fail( animation.opts.fail )
|
7219 |
-
.always( animation.opts.always );
|
7220 |
-
|
7221 |
-
jQuery.fx.timer(
|
7222 |
-
jQuery.extend( tick, {
|
7223 |
-
elem: elem,
|
7224 |
-
anim: animation,
|
7225 |
-
queue: animation.opts.queue
|
7226 |
-
} )
|
7227 |
-
);
|
7228 |
-
|
7229 |
-
return animation;
|
7230 |
-
}
|
7231 |
-
|
7232 |
-
jQuery.Animation = jQuery.extend( Animation, {
|
7233 |
-
|
7234 |
-
tweeners: {
|
7235 |
-
"*": [ function( prop, value ) {
|
7236 |
-
var tween = this.createTween( prop, value );
|
7237 |
-
adjustCSS( tween.elem, prop, rcssNum.exec( value ), tween );
|
7238 |
-
return tween;
|
7239 |
-
} ]
|
7240 |
-
},
|
7241 |
-
|
7242 |
-
tweener: function( props, callback ) {
|
7243 |
-
if ( jQuery.isFunction( props ) ) {
|
7244 |
-
callback = props;
|
7245 |
-
props = [ "*" ];
|
7246 |
-
} else {
|
7247 |
-
props = props.match( rnothtmlwhite );
|
7248 |
-
}
|
7249 |
-
|
7250 |
-
var prop,
|
7251 |
-
index = 0,
|
7252 |
-
length = props.length;
|
7253 |
-
|
7254 |
-
for ( ; index < length; index++ ) {
|
7255 |
-
prop = props[ index ];
|
7256 |
-
Animation.tweeners[ prop ] = Animation.tweeners[ prop ] || [];
|
7257 |
-
Animation.tweeners[ prop ].unshift( callback );
|
7258 |
-
}
|
7259 |
-
},
|
7260 |
-
|
7261 |
-
prefilters: [ defaultPrefilter ],
|
7262 |
-
|
7263 |
-
prefilter: function( callback, prepend ) {
|
7264 |
-
if ( prepend ) {
|
7265 |
-
Animation.prefilters.unshift( callback );
|
7266 |
-
} else {
|
7267 |
-
Animation.prefilters.push( callback );
|
7268 |
-
}
|
7269 |
-
}
|
7270 |
-
} );
|
7271 |
-
|
7272 |
-
jQuery.speed = function( speed, easing, fn ) {
|
7273 |
-
var opt = speed && typeof speed === "object" ? jQuery.extend( {}, speed ) : {
|
7274 |
-
complete: fn || !fn && easing ||
|
7275 |
-
jQuery.isFunction( speed ) && speed,
|
7276 |
-
duration: speed,
|
7277 |
-
easing: fn && easing || easing && !jQuery.isFunction( easing ) && easing
|
7278 |
-
};
|
7279 |
-
|
7280 |
-
// Go to the end state if fx are off
|
7281 |
-
if ( jQuery.fx.off ) {
|
7282 |
-
opt.duration = 0;
|
7283 |
-
|
7284 |
-
} else {
|
7285 |
-
if ( typeof opt.duration !== "number" ) {
|
7286 |
-
if ( opt.duration in jQuery.fx.speeds ) {
|
7287 |
-
opt.duration = jQuery.fx.speeds[ opt.duration ];
|
7288 |
-
|
7289 |
-
} else {
|
7290 |
-
opt.duration = jQuery.fx.speeds._default;
|
7291 |
-
}
|
7292 |
-
}
|
7293 |
-
}
|
7294 |
-
|
7295 |
-
// Normalize opt.queue - true/undefined/null -> "fx"
|
7296 |
-
if ( opt.queue == null || opt.queue === true ) {
|
7297 |
-
opt.queue = "fx";
|
7298 |
-
}
|
7299 |
-
|
7300 |
-
// Queueing
|
7301 |
-
opt.old = opt.complete;
|
7302 |
-
|
7303 |
-
opt.complete = function() {
|
7304 |
-
if ( jQuery.isFunction( opt.old ) ) {
|
7305 |
-
opt.old.call( this );
|
7306 |
-
}
|
7307 |
-
|
7308 |
-
if ( opt.queue ) {
|
7309 |
-
jQuery.dequeue( this, opt.queue );
|
7310 |
-
}
|
7311 |
-
};
|
7312 |
-
|
7313 |
-
return opt;
|
7314 |
-
};
|
7315 |
-
|
7316 |
-
jQuery.fn.extend( {
|
7317 |
-
fadeTo: function( speed, to, easing, callback ) {
|
7318 |
-
|
7319 |
-
// Show any hidden elements after setting opacity to 0
|
7320 |
-
return this.filter( isHiddenWithinTree ).css( "opacity", 0 ).show()
|
7321 |
-
|
7322 |
-
// Animate to the value specified
|
7323 |
-
.end().animate( { opacity: to }, speed, easing, callback );
|
7324 |
-
},
|
7325 |
-
animate: function( prop, speed, easing, callback ) {
|
7326 |
-
var empty = jQuery.isEmptyObject( prop ),
|
7327 |
-
optall = jQuery.speed( speed, easing, callback ),
|
7328 |
-
doAnimation = function() {
|
7329 |
-
|
7330 |
-
// Operate on a copy of prop so per-property easing won't be lost
|
7331 |
-
var anim = Animation( this, jQuery.extend( {}, prop ), optall );
|
7332 |
-
|
7333 |
-
// Empty animations, or finishing resolves immediately
|
7334 |
-
if ( empty || dataPriv.get( this, "finish" ) ) {
|
7335 |
-
anim.stop( true );
|
7336 |
-
}
|
7337 |
-
};
|
7338 |
-
doAnimation.finish = doAnimation;
|
7339 |
-
|
7340 |
-
return empty || optall.queue === false ?
|
7341 |
-
this.each( doAnimation ) :
|
7342 |
-
this.queue( optall.queue, doAnimation );
|
7343 |
-
},
|
7344 |
-
stop: function( type, clearQueue, gotoEnd ) {
|
7345 |
-
var stopQueue = function( hooks ) {
|
7346 |
-
var stop = hooks.stop;
|
7347 |
-
delete hooks.stop;
|
7348 |
-
stop( gotoEnd );
|
7349 |
-
};
|
7350 |
-
|
7351 |
-
if ( typeof type !== "string" ) {
|
7352 |
-
gotoEnd = clearQueue;
|
7353 |
-
clearQueue = type;
|
7354 |
-
type = undefined;
|
7355 |
-
}
|
7356 |
-
if ( clearQueue && type !== false ) {
|
7357 |
-
this.queue( type || "fx", [] );
|
7358 |
-
}
|
7359 |
-
|
7360 |
-
return this.each( function() {
|
7361 |
-
var dequeue = true,
|
7362 |
-
index = type != null && type + "queueHooks",
|
7363 |
-
timers = jQuery.timers,
|
7364 |
-
data = dataPriv.get( this );
|
7365 |
-
|
7366 |
-
if ( index ) {
|
7367 |
-
if ( data[ index ] && data[ index ].stop ) {
|
7368 |
-
stopQueue( data[ index ] );
|
7369 |
-
}
|
7370 |
-
} else {
|
7371 |
-
for ( index in data ) {
|
7372 |
-
if ( data[ index ] && data[ index ].stop && rrun.test( index ) ) {
|
7373 |
-
stopQueue( data[ index ] );
|
7374 |
-
}
|
7375 |
-
}
|
7376 |
-
}
|
7377 |
-
|
7378 |
-
for ( index = timers.length; index--; ) {
|
7379 |
-
if ( timers[ index ].elem === this &&
|
7380 |
-
( type == null || timers[ index ].queue === type ) ) {
|
7381 |
-
|
7382 |
-
timers[ index ].anim.stop( gotoEnd );
|
7383 |
-
dequeue = false;
|
7384 |
-
timers.splice( index, 1 );
|
7385 |
-
}
|
7386 |
-
}
|
7387 |
-
|
7388 |
-
// Start the next in the queue if the last step wasn't forced.
|
7389 |
-
// Timers currently will call their complete callbacks, which
|
7390 |
-
// will dequeue but only if they were gotoEnd.
|
7391 |
-
if ( dequeue || !gotoEnd ) {
|
7392 |
-
jQuery.dequeue( this, type );
|
7393 |
-
}
|
7394 |
-
} );
|
7395 |
-
},
|
7396 |
-
finish: function( type ) {
|
7397 |
-
if ( type !== false ) {
|
7398 |
-
type = type || "fx";
|
7399 |
-
}
|
7400 |
-
return this.each( function() {
|
7401 |
-
var index,
|
7402 |
-
data = dataPriv.get( this ),
|
7403 |
-
queue = data[ type + "queue" ],
|
7404 |
-
hooks = data[ type + "queueHooks" ],
|
7405 |
-
timers = jQuery.timers,
|
7406 |
-
length = queue ? queue.length : 0;
|
7407 |
-
|
7408 |
-
// Enable finishing flag on private data
|
7409 |
-
data.finish = true;
|
7410 |
-
|
7411 |
-
// Empty the queue first
|
7412 |
-
jQuery.queue( this, type, [] );
|
7413 |
-
|
7414 |
-
if ( hooks && hooks.stop ) {
|
7415 |
-
hooks.stop.call( this, true );
|
7416 |
-
}
|
7417 |
-
|
7418 |
-
// Look for any active animations, and finish them
|
7419 |
-
for ( index = timers.length; index--; ) {
|
7420 |
-
if ( timers[ index ].elem === this && timers[ index ].queue === type ) {
|
7421 |
-
timers[ index ].anim.stop( true );
|
7422 |
-
timers.splice( index, 1 );
|
7423 |
-
}
|
7424 |
-
}
|
7425 |
-
|
7426 |
-
// Look for any animations in the old queue and finish them
|
7427 |
-
for ( index = 0; index < length; index++ ) {
|
7428 |
-
if ( queue[ index ] && queue[ index ].finish ) {
|
7429 |
-
queue[ index ].finish.call( this );
|
7430 |
-
}
|
7431 |
-
}
|
7432 |
-
|
7433 |
-
// Turn off finishing flag
|
7434 |
-
delete data.finish;
|
7435 |
-
} );
|
7436 |
-
}
|
7437 |
-
} );
|
7438 |
-
|
7439 |
-
jQuery.each( [ "toggle", "show", "hide" ], function( i, name ) {
|
7440 |
-
var cssFn = jQuery.fn[ name ];
|
7441 |
-
jQuery.fn[ name ] = function( speed, easing, callback ) {
|
7442 |
-
return speed == null || typeof speed === "boolean" ?
|
7443 |
-
cssFn.apply( this, arguments ) :
|
7444 |
-
this.animate( genFx( name, true ), speed, easing, callback );
|
7445 |
-
};
|
7446 |
-
} );
|
7447 |
-
|
7448 |
-
// Generate shortcuts for custom animations
|
7449 |
-
jQuery.each( {
|
7450 |
-
slideDown: genFx( "show" ),
|
7451 |
-
slideUp: genFx( "hide" ),
|
7452 |
-
slideToggle: genFx( "toggle" ),
|
7453 |
-
fadeIn: { opacity: "show" },
|
7454 |
-
fadeOut: { opacity: "hide" },
|
7455 |
-
fadeToggle: { opacity: "toggle" }
|
7456 |
-
}, function( name, props ) {
|
7457 |
-
jQuery.fn[ name ] = function( speed, easing, callback ) {
|
7458 |
-
return this.animate( props, speed, easing, callback );
|
7459 |
-
};
|
7460 |
-
} );
|
7461 |
-
|
7462 |
-
jQuery.timers = [];
|
7463 |
-
jQuery.fx.tick = function() {
|
7464 |
-
var timer,
|
7465 |
-
i = 0,
|
7466 |
-
timers = jQuery.timers;
|
7467 |
-
|
7468 |
-
fxNow = jQuery.now();
|
7469 |
-
|
7470 |
-
for ( ; i < timers.length; i++ ) {
|
7471 |
-
timer = timers[ i ];
|
7472 |
-
|
7473 |
-
// Run the timer and safely remove it when done (allowing for external removal)
|
7474 |
-
if ( !timer() && timers[ i ] === timer ) {
|
7475 |
-
timers.splice( i--, 1 );
|
7476 |
-
}
|
7477 |
-
}
|
7478 |
-
|
7479 |
-
if ( !timers.length ) {
|
7480 |
-
jQuery.fx.stop();
|
7481 |
-
}
|
7482 |
-
fxNow = undefined;
|
7483 |
-
};
|
7484 |
-
|
7485 |
-
jQuery.fx.timer = function( timer ) {
|
7486 |
-
jQuery.timers.push( timer );
|
7487 |
-
jQuery.fx.start();
|
7488 |
-
};
|
7489 |
-
|
7490 |
-
jQuery.fx.interval = 13;
|
7491 |
-
jQuery.fx.start = function() {
|
7492 |
-
if ( inProgress ) {
|
7493 |
-
return;
|
7494 |
-
}
|
7495 |
-
|
7496 |
-
inProgress = true;
|
7497 |
-
schedule();
|
7498 |
-
};
|
7499 |
-
|
7500 |
-
jQuery.fx.stop = function() {
|
7501 |
-
inProgress = null;
|
7502 |
-
};
|
7503 |
-
|
7504 |
-
jQuery.fx.speeds = {
|
7505 |
-
slow: 600,
|
7506 |
-
fast: 200,
|
7507 |
-
|
7508 |
-
// Default speed
|
7509 |
-
_default: 400
|
7510 |
-
};
|
7511 |
-
|
7512 |
-
|
7513 |
-
// Based off of the plugin by Clint Helfers, with permission.
|
7514 |
-
// https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/
|
7515 |
-
jQuery.fn.delay = function( time, type ) {
|
7516 |
-
time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;
|
7517 |
-
type = type || "fx";
|
7518 |
-
|
7519 |
-
return this.queue( type, function( next, hooks ) {
|
7520 |
-
var timeout = window.setTimeout( next, time );
|
7521 |
-
hooks.stop = function() {
|
7522 |
-
window.clearTimeout( timeout );
|
7523 |
-
};
|
7524 |
-
} );
|
7525 |
-
};
|
7526 |
-
|
7527 |
-
|
7528 |
-
( function() {
|
7529 |
-
var input = document.createElement( "input" ),
|
7530 |
-
select = document.createElement( "select" ),
|
7531 |
-
opt = select.appendChild( document.createElement( "option" ) );
|
7532 |
-
|
7533 |
-
input.type = "checkbox";
|
7534 |
-
|
7535 |
-
// Support: Android <=4.3 only
|
7536 |
-
// Default value for a checkbox should be "on"
|
7537 |
-
support.checkOn = input.value !== "";
|
7538 |
-
|
7539 |
-
// Support: IE <=11 only
|
7540 |
-
// Must access selectedIndex to make default options select
|
7541 |
-
support.optSelected = opt.selected;
|
7542 |
-
|
7543 |
-
// Support: IE <=11 only
|
7544 |
-
// An input loses its value after becoming a radio
|
7545 |
-
input = document.createElement( "input" );
|
7546 |
-
input.value = "t";
|
7547 |
-
input.type = "radio";
|
7548 |
-
support.radioValue = input.value === "t";
|
7549 |
-
} )();
|
7550 |
-
|
7551 |
-
|
7552 |
-
var boolHook,
|
7553 |
-
attrHandle = jQuery.expr.attrHandle;
|
7554 |
-
|
7555 |
-
jQuery.fn.extend( {
|
7556 |
-
attr: function( name, value ) {
|
7557 |
-
return access( this, jQuery.attr, name, value, arguments.length > 1 );
|
7558 |
-
},
|
7559 |
-
|
7560 |
-
removeAttr: function( name ) {
|
7561 |
-
return this.each( function() {
|
7562 |
-
jQuery.removeAttr( this, name );
|
7563 |
-
} );
|
7564 |
-
}
|
7565 |
-
} );
|
7566 |
-
|
7567 |
-
jQuery.extend( {
|
7568 |
-
attr: function( elem, name, value ) {
|
7569 |
-
var ret, hooks,
|
7570 |
-
nType = elem.nodeType;
|
7571 |
-
|
7572 |
-
// Don't get/set attributes on text, comment and attribute nodes
|
7573 |
-
if ( nType === 3 || nType === 8 || nType === 2 ) {
|
7574 |
-
return;
|
7575 |
-
}
|
7576 |
-
|
7577 |
-
// Fallback to prop when attributes are not supported
|
7578 |
-
if ( typeof elem.getAttribute === "undefined" ) {
|
7579 |
-
return jQuery.prop( elem, name, value );
|
7580 |
-
}
|
7581 |
-
|
7582 |
-
// Attribute hooks are determined by the lowercase version
|
7583 |
-
// Grab necessary hook if one is defined
|
7584 |
-
if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {
|
7585 |
-
hooks = jQuery.attrHooks[ name.toLowerCase() ] ||
|
7586 |
-
( jQuery.expr.match.bool.test( name ) ? boolHook : undefined );
|
7587 |
-
}
|
7588 |
-
|
7589 |
-
if ( value !== undefined ) {
|
7590 |
-
if ( value === null ) {
|
7591 |
-
jQuery.removeAttr( elem, name );
|
7592 |
-
return;
|
7593 |
-
}
|
7594 |
-
|
7595 |
-
if ( hooks && "set" in hooks &&
|
7596 |
-
( ret = hooks.set( elem, value, name ) ) !== undefined ) {
|
7597 |
-
return ret;
|
7598 |
-
}
|
7599 |
-
|
7600 |
-
elem.setAttribute( name, value + "" );
|
7601 |
-
return value;
|
7602 |
-
}
|
7603 |
-
|
7604 |
-
if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {
|
7605 |
-
return ret;
|
7606 |
-
}
|
7607 |
-
|
7608 |
-
ret = jQuery.find.attr( elem, name );
|
7609 |
-
|
7610 |
-
// Non-existent attributes return null, we normalize to undefined
|
7611 |
-
return ret == null ? undefined : ret;
|
7612 |
-
},
|
7613 |
-
|
7614 |
-
attrHooks: {
|
7615 |
-
type: {
|
7616 |
-
set: function( elem, value ) {
|
7617 |
-
if ( !support.radioValue && value === "radio" &&
|
7618 |
-
nodeName( elem, "input" ) ) {
|
7619 |
-
var val = elem.value;
|
7620 |
-
elem.setAttribute( "type", value );
|
7621 |
-
if ( val ) {
|
7622 |
-
elem.value = val;
|
7623 |
-
}
|
7624 |
-
return value;
|
7625 |
-
}
|
7626 |
-
}
|
7627 |
-
}
|
7628 |
-
},
|
7629 |
-
|
7630 |
-
removeAttr: function( elem, value ) {
|
7631 |
-
var name,
|
7632 |
-
i = 0,
|
7633 |
-
|
7634 |
-
// Attribute names can contain non-HTML whitespace characters
|
7635 |
-
// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2
|
7636 |
-
attrNames = value && value.match( rnothtmlwhite );
|
7637 |
-
|
7638 |
-
if ( attrNames && elem.nodeType === 1 ) {
|
7639 |
-
while ( ( name = attrNames[ i++ ] ) ) {
|
7640 |
-
elem.removeAttribute( name );
|
7641 |
-
}
|
7642 |
-
}
|
7643 |
-
}
|
7644 |
-
} );
|
7645 |
-
|
7646 |
-
// Hooks for boolean attributes
|
7647 |
-
boolHook = {
|
7648 |
-
set: function( elem, value, name ) {
|
7649 |
-
if ( value === false ) {
|
7650 |
-
|
7651 |
-
// Remove boolean attributes when set to false
|
7652 |
-
jQuery.removeAttr( elem, name );
|
7653 |
-
} else {
|
7654 |
-
elem.setAttribute( name, name );
|
7655 |
-
}
|
7656 |
-
return name;
|
7657 |
-
}
|
7658 |
-
};
|
7659 |
-
|
7660 |
-
jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( i, name ) {
|
7661 |
-
var getter = attrHandle[ name ] || jQuery.find.attr;
|
7662 |
-
|
7663 |
-
attrHandle[ name ] = function( elem, name, isXML ) {
|
7664 |
-
var ret, handle,
|
7665 |
-
lowercaseName = name.toLowerCase();
|
7666 |
-
|
7667 |
-
if ( !isXML ) {
|
7668 |
-
|
7669 |
-
// Avoid an infinite loop by temporarily removing this function from the getter
|
7670 |
-
handle = attrHandle[ lowercaseName ];
|
7671 |
-
attrHandle[ lowercaseName ] = ret;
|
7672 |
-
ret = getter( elem, name, isXML ) != null ?
|
7673 |
-
lowercaseName :
|
7674 |
-
null;
|
7675 |
-
attrHandle[ lowercaseName ] = handle;
|
7676 |
-
}
|
7677 |
-
return ret;
|
7678 |
-
};
|
7679 |
-
} );
|
7680 |
-
|
7681 |
-
|
7682 |
-
|
7683 |
-
|
7684 |
-
var rfocusable = /^(?:input|select|textarea|button)$/i,
|
7685 |
-
rclickable = /^(?:a|area)$/i;
|
7686 |
-
|
7687 |
-
jQuery.fn.extend( {
|
7688 |
-
prop: function( name, value ) {
|
7689 |
-
return access( this, jQuery.prop, name, value, arguments.length > 1 );
|
7690 |
-
},
|
7691 |
-
|
7692 |
-
removeProp: function( name ) {
|
7693 |
-
return this.each( function() {
|
7694 |
-
delete this[ jQuery.propFix[ name ] || name ];
|
7695 |
-
} );
|
7696 |
-
}
|
7697 |
-
} );
|
7698 |
-
|
7699 |
-
jQuery.extend( {
|
7700 |
-
prop: function( elem, name, value ) {
|
7701 |
-
var ret, hooks,
|
7702 |
-
nType = elem.nodeType;
|
7703 |
-
|
7704 |
-
// Don't get/set properties on text, comment and attribute nodes
|
7705 |
-
if ( nType === 3 || nType === 8 || nType === 2 ) {
|
7706 |
-
return;
|
7707 |
-
}
|
7708 |
-
|
7709 |
-
if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {
|
7710 |
-
|
7711 |
-
// Fix name and attach hooks
|
7712 |
-
name = jQuery.propFix[ name ] || name;
|
7713 |
-
hooks = jQuery.propHooks[ name ];
|
7714 |
-
}
|
7715 |
-
|
7716 |
-
if ( value !== undefined ) {
|
7717 |
-
if ( hooks && "set" in hooks &&
|
7718 |
-
( ret = hooks.set( elem, value, name ) ) !== undefined ) {
|
7719 |
-
return ret;
|
7720 |
-
}
|
7721 |
-
|
7722 |
-
return ( elem[ name ] = value );
|
7723 |
-
}
|
7724 |
-
|
7725 |
-
if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {
|
7726 |
-
return ret;
|
7727 |
-
}
|
7728 |
-
|
7729 |
-
return elem[ name ];
|
7730 |
-
},
|
7731 |
-
|
7732 |
-
propHooks: {
|
7733 |
-
tabIndex: {
|
7734 |
-
get: function( elem ) {
|
7735 |
-
|
7736 |
-
// Support: IE <=9 - 11 only
|
7737 |
-
// elem.tabIndex doesn't always return the
|
7738 |
-
// correct value when it hasn't been explicitly set
|
7739 |
-
// https://web.archive.org/web/20141116233347/http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/
|
7740 |
-
// Use proper attribute retrieval(#12072)
|
7741 |
-
var tabindex = jQuery.find.attr( elem, "tabindex" );
|
7742 |
-
|
7743 |
-
if ( tabindex ) {
|
7744 |
-
return parseInt( tabindex, 10 );
|
7745 |
-
}
|
7746 |
-
|
7747 |
-
if (
|
7748 |
-
rfocusable.test( elem.nodeName ) ||
|
7749 |
-
rclickable.test( elem.nodeName ) &&
|
7750 |
-
elem.href
|
7751 |
-
) {
|
7752 |
-
return 0;
|
7753 |
-
}
|
7754 |
-
|
7755 |
-
return -1;
|
7756 |
-
}
|
7757 |
-
}
|
7758 |
-
},
|
7759 |
-
|
7760 |
-
propFix: {
|
7761 |
-
"for": "htmlFor",
|
7762 |
-
"class": "className"
|
7763 |
-
}
|
7764 |
-
} );
|
7765 |
-
|
7766 |
-
// Support: IE <=11 only
|
7767 |
-
// Accessing the selectedIndex property
|
7768 |
-
// forces the browser to respect setting selected
|
7769 |
-
// on the option
|
7770 |
-
// The getter ensures a default option is selected
|
7771 |
-
// when in an optgroup
|
7772 |
-
// eslint rule "no-unused-expressions" is disabled for this code
|
7773 |
-
// since it considers such accessions noop
|
7774 |
-
if ( !support.optSelected ) {
|
7775 |
-
jQuery.propHooks.selected = {
|
7776 |
-
get: function( elem ) {
|
7777 |
-
|
7778 |
-
/* eslint no-unused-expressions: "off" */
|
7779 |
-
|
7780 |
-
var parent = elem.parentNode;
|
7781 |
-
if ( parent && parent.parentNode ) {
|
7782 |
-
parent.parentNode.selectedIndex;
|
7783 |
-
}
|
7784 |
-
return null;
|
7785 |
-
},
|
7786 |
-
set: function( elem ) {
|
7787 |
-
|
7788 |
-
/* eslint no-unused-expressions: "off" */
|
7789 |
-
|
7790 |
-
var parent = elem.parentNode;
|
7791 |
-
if ( parent ) {
|
7792 |
-
parent.selectedIndex;
|
7793 |
-
|
7794 |
-
if ( parent.parentNode ) {
|
7795 |
-
parent.parentNode.selectedIndex;
|
7796 |
-
}
|
7797 |
-
}
|
7798 |
-
}
|
7799 |
-
};
|
7800 |
-
}
|
7801 |
-
|
7802 |
-
jQuery.each( [
|
7803 |
-
"tabIndex",
|
7804 |
-
"readOnly",
|
7805 |
-
"maxLength",
|
7806 |
-
"cellSpacing",
|
7807 |
-
"cellPadding",
|
7808 |
-
"rowSpan",
|
7809 |
-
"colSpan",
|
7810 |
-
"useMap",
|
7811 |
-
"frameBorder",
|
7812 |
-
"contentEditable"
|
7813 |
-
], function() {
|
7814 |
-
jQuery.propFix[ this.toLowerCase() ] = this;
|
7815 |
-
} );
|
7816 |
-
|
7817 |
-
|
7818 |
-
|
7819 |
-
|
7820 |
-
// Strip and collapse whitespace according to HTML spec
|
7821 |
-
// https://html.spec.whatwg.org/multipage/infrastructure.html#strip-and-collapse-whitespace
|
7822 |
-
function stripAndCollapse( value ) {
|
7823 |
-
var tokens = value.match( rnothtmlwhite ) || [];
|
7824 |
-
return tokens.join( " " );
|
7825 |
-
}
|
7826 |
-
|
7827 |
-
|
7828 |
-
function getClass( elem ) {
|
7829 |
-
return elem.getAttribute && elem.getAttribute( "class" ) || "";
|
7830 |
-
}
|
7831 |
-
|
7832 |
-
jQuery.fn.extend( {
|
7833 |
-
addClass: function( value ) {
|
7834 |
-
var classes, elem, cur, curValue, clazz, j, finalValue,
|
7835 |
-
i = 0;
|
7836 |
-
|
7837 |
-
if ( jQuery.isFunction( value ) ) {
|
7838 |
-
return this.each( function( j ) {
|
7839 |
-
jQuery( this ).addClass( value.call( this, j, getClass( this ) ) );
|
7840 |
-
} );
|
7841 |
-
}
|
7842 |
-
|
7843 |
-
if ( typeof value === "string" && value ) {
|
7844 |
-
classes = value.match( rnothtmlwhite ) || [];
|
7845 |
-
|
7846 |
-
while ( ( elem = this[ i++ ] ) ) {
|
7847 |
-
curValue = getClass( elem );
|
7848 |
-
cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " );
|
7849 |
-
|
7850 |
-
if ( cur ) {
|
7851 |
-
j = 0;
|
7852 |
-
while ( ( clazz = classes[ j++ ] ) ) {
|
7853 |
-
if ( cur.indexOf( " " + clazz + " " ) < 0 ) {
|
7854 |
-
cur += clazz + " ";
|
7855 |
-
}
|
7856 |
-
}
|
7857 |
-
|
7858 |
-
// Only assign if different to avoid unneeded rendering.
|
7859 |
-
finalValue = stripAndCollapse( cur );
|
7860 |
-
if ( curValue !== finalValue ) {
|
7861 |
-
elem.setAttribute( "class", finalValue );
|
7862 |
-
}
|
7863 |
-
}
|
7864 |
-
}
|
7865 |
-
}
|
7866 |
-
|
7867 |
-
return this;
|
7868 |
-
},
|
7869 |
-
|
7870 |
-
removeClass: function( value ) {
|
7871 |
-
var classes, elem, cur, curValue, clazz, j, finalValue,
|
7872 |
-
i = 0;
|
7873 |
-
|
7874 |
-
if ( jQuery.isFunction( value ) ) {
|
7875 |
-
return this.each( function( j ) {
|
7876 |
-
jQuery( this ).removeClass( value.call( this, j, getClass( this ) ) );
|
7877 |
-
} );
|
7878 |
-
}
|
7879 |
-
|
7880 |
-
if ( !arguments.length ) {
|
7881 |
-
return this.attr( "class", "" );
|
7882 |
-
}
|
7883 |
-
|
7884 |
-
if ( typeof value === "string" && value ) {
|
7885 |
-
classes = value.match( rnothtmlwhite ) || [];
|
7886 |
-
|
7887 |
-
while ( ( elem = this[ i++ ] ) ) {
|
7888 |
-
curValue = getClass( elem );
|
7889 |
-
|
7890 |
-
// This expression is here for better compressibility (see addClass)
|
7891 |
-
cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " );
|
7892 |
-
|
7893 |
-
if ( cur ) {
|
7894 |
-
j = 0;
|
7895 |
-
while ( ( clazz = classes[ j++ ] ) ) {
|
7896 |
-
|
7897 |
-
// Remove *all* instances
|
7898 |
-
while ( cur.indexOf( " " + clazz + " " ) > -1 ) {
|
7899 |
-
cur = cur.replace( " " + clazz + " ", " " );
|
7900 |
-
}
|
7901 |
-
}
|
7902 |
-
|
7903 |
-
// Only assign if different to avoid unneeded rendering.
|
7904 |
-
finalValue = stripAndCollapse( cur );
|
7905 |
-
if ( curValue !== finalValue ) {
|
7906 |
-
elem.setAttribute( "class", finalValue );
|
7907 |
-
}
|
7908 |
-
}
|
7909 |
-
}
|
7910 |
-
}
|
7911 |
-
|
7912 |
-
return this;
|
7913 |
-
},
|
7914 |
-
|
7915 |
-
toggleClass: function( value, stateVal ) {
|
7916 |
-
var type = typeof value;
|
7917 |
-
|
7918 |
-
if ( typeof stateVal === "boolean" && type === "string" ) {
|
7919 |
-
return stateVal ? this.addClass( value ) : this.removeClass( value );
|
7920 |
-
}
|
7921 |
-
|
7922 |
-
if ( jQuery.isFunction( value ) ) {
|
7923 |
-
return this.each( function( i ) {
|
7924 |
-
jQuery( this ).toggleClass(
|
7925 |
-
value.call( this, i, getClass( this ), stateVal ),
|
7926 |
-
stateVal
|
7927 |
-
);
|
7928 |
-
} );
|
7929 |
-
}
|
7930 |
-
|
7931 |
-
return this.each( function() {
|
7932 |
-
var className, i, self, classNames;
|
7933 |
-
|
7934 |
-
if ( type === "string" ) {
|
7935 |
-
|
7936 |
-
// Toggle individual class names
|
7937 |
-
i = 0;
|
7938 |
-
self = jQuery( this );
|
7939 |
-
classNames = value.match( rnothtmlwhite ) || [];
|
7940 |
-
|
7941 |
-
while ( ( className = classNames[ i++ ] ) ) {
|
7942 |
-
|
7943 |
-
// Check each className given, space separated list
|
7944 |
-
if ( self.hasClass( className ) ) {
|
7945 |
-
self.removeClass( className );
|
7946 |
-
} else {
|
7947 |
-
self.addClass( className );
|
7948 |
-
}
|
7949 |
-
}
|
7950 |
-
|
7951 |
-
// Toggle whole class name
|
7952 |
-
} else if ( value === undefined || type === "boolean" ) {
|
7953 |
-
className = getClass( this );
|
7954 |
-
if ( className ) {
|
7955 |
-
|
7956 |
-
// Store className if set
|
7957 |
-
dataPriv.set( this, "__className__", className );
|
7958 |
-
}
|
7959 |
-
|
7960 |
-
// If the element has a class name or if we're passed `false`,
|
7961 |
-
// then remove the whole classname (if there was one, the above saved it).
|
7962 |
-
// Otherwise bring back whatever was previously saved (if anything),
|
7963 |
-
// falling back to the empty string if nothing was stored.
|
7964 |
-
if ( this.setAttribute ) {
|
7965 |
-
this.setAttribute( "class",
|
7966 |
-
className || value === false ?
|
7967 |
-
"" :
|
7968 |
-
dataPriv.get( this, "__className__" ) || ""
|
7969 |
-
);
|
7970 |
-
}
|
7971 |
-
}
|
7972 |
-
} );
|
7973 |
-
},
|
7974 |
-
|
7975 |
-
hasClass: function( selector ) {
|
7976 |
-
var className, elem,
|
7977 |
-
i = 0;
|
7978 |
-
|
7979 |
-
className = " " + selector + " ";
|
7980 |
-
while ( ( elem = this[ i++ ] ) ) {
|
7981 |
-
if ( elem.nodeType === 1 &&
|
7982 |
-
( " " + stripAndCollapse( getClass( elem ) ) + " " ).indexOf( className ) > -1 ) {
|
7983 |
-
return true;
|
7984 |
-
}
|
7985 |
-
}
|
7986 |
-
|
7987 |
-
return false;
|
7988 |
-
}
|
7989 |
-
} );
|
7990 |
-
|
7991 |
-
|
7992 |
-
|
7993 |
-
|
7994 |
-
var rreturn = /\r/g;
|
7995 |
-
|
7996 |
-
jQuery.fn.extend( {
|
7997 |
-
val: function( value ) {
|
7998 |
-
var hooks, ret, isFunction,
|
7999 |
-
elem = this[ 0 ];
|
8000 |
-
|
8001 |
-
if ( !arguments.length ) {
|
8002 |
-
if ( elem ) {
|
8003 |
-
hooks = jQuery.valHooks[ elem.type ] ||
|
8004 |
-
jQuery.valHooks[ elem.nodeName.toLowerCase() ];
|
8005 |
-
|
8006 |
-
if ( hooks &&
|
8007 |
-
"get" in hooks &&
|
8008 |
-
( ret = hooks.get( elem, "value" ) ) !== undefined
|
8009 |
-
) {
|
8010 |
-
return ret;
|
8011 |
-
}
|
8012 |
-
|
8013 |
-
ret = elem.value;
|
8014 |
-
|
8015 |
-
// Handle most common string cases
|
8016 |
-
if ( typeof ret === "string" ) {
|
8017 |
-
return ret.replace( rreturn, "" );
|
8018 |
-
}
|
8019 |
-
|
8020 |
-
// Handle cases where value is null/undef or number
|
8021 |
-
return ret == null ? "" : ret;
|
8022 |
-
}
|
8023 |
-
|
8024 |
-
return;
|
8025 |
-
}
|
8026 |
-
|
8027 |
-
isFunction = jQuery.isFunction( value );
|
8028 |
-
|
8029 |
-
return this.each( function( i ) {
|
8030 |
-
var val;
|
8031 |
-
|
8032 |
-
if ( this.nodeType !== 1 ) {
|
8033 |
-
return;
|
8034 |
-
}
|
8035 |
-
|
8036 |
-
if ( isFunction ) {
|
8037 |
-
val = value.call( this, i, jQuery( this ).val() );
|
8038 |
-
} else {
|
8039 |
-
val = value;
|
8040 |
-
}
|
8041 |
-
|
8042 |
-
// Treat null/undefined as ""; convert numbers to string
|
8043 |
-
if ( val == null ) {
|
8044 |
-
val = "";
|
8045 |
-
|
8046 |
-
} else if ( typeof val === "number" ) {
|
8047 |
-
val += "";
|
8048 |
-
|
8049 |
-
} else if ( Array.isArray( val ) ) {
|
8050 |
-
val = jQuery.map( val, function( value ) {
|
8051 |
-
return value == null ? "" : value + "";
|
8052 |
-
} );
|
8053 |
-
}
|
8054 |
-
|
8055 |
-
hooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ];
|
8056 |
-
|
8057 |
-
// If set returns undefined, fall back to normal setting
|
8058 |
-
if ( !hooks || !( "set" in hooks ) || hooks.set( this, val, "value" ) === undefined ) {
|
8059 |
-
this.value = val;
|
8060 |
-
}
|
8061 |
-
} );
|
8062 |
-
}
|
8063 |
-
} );
|
8064 |
-
|
8065 |
-
jQuery.extend( {
|
8066 |
-
valHooks: {
|
8067 |
-
option: {
|
8068 |
-
get: function( elem ) {
|
8069 |
-
|
8070 |
-
var val = jQuery.find.attr( elem, "value" );
|
8071 |
-
return val != null ?
|
8072 |
-
val :
|
8073 |
-
|
8074 |
-
// Support: IE <=10 - 11 only
|
8075 |
-
// option.text throws exceptions (#14686, #14858)
|
8076 |
-
// Strip and collapse whitespace
|
8077 |
-
// https://html.spec.whatwg.org/#strip-and-collapse-whitespace
|
8078 |
-
stripAndCollapse( jQuery.text( elem ) );
|
8079 |
-
}
|
8080 |
-
},
|
8081 |
-
select: {
|
8082 |
-
get: function( elem ) {
|
8083 |
-
var value, option, i,
|
8084 |
-
options = elem.options,
|
8085 |
-
index = elem.selectedIndex,
|
8086 |
-
one = elem.type === "select-one",
|
8087 |
-
values = one ? null : [],
|
8088 |
-
max = one ? index + 1 : options.length;
|
8089 |
-
|
8090 |
-
if ( index < 0 ) {
|
8091 |
-
i = max;
|
8092 |
-
|
8093 |
-
} else {
|
8094 |
-
i = one ? index : 0;
|
8095 |
-
}
|
8096 |
-
|
8097 |
-
// Loop through all the selected options
|
8098 |
-
for ( ; i < max; i++ ) {
|
8099 |
-
option = options[ i ];
|
8100 |
-
|
8101 |
-
// Support: IE <=9 only
|
8102 |
-
// IE8-9 doesn't update selected after form reset (#2551)
|
8103 |
-
if ( ( option.selected || i === index ) &&
|
8104 |
-
|
8105 |
-
// Don't return options that are disabled or in a disabled optgroup
|
8106 |
-
!option.disabled &&
|
8107 |
-
( !option.parentNode.disabled ||
|
8108 |
-
!nodeName( option.parentNode, "optgroup" ) ) ) {
|
8109 |
-
|
8110 |
-
// Get the specific value for the option
|
8111 |
-
value = jQuery( option ).val();
|
8112 |
-
|
8113 |
-
// We don't need an array for one selects
|
8114 |
-
if ( one ) {
|
8115 |
-
return value;
|
8116 |
-
}
|
8117 |
-
|
8118 |
-
// Multi-Selects return an array
|
8119 |
-
values.push( value );
|
8120 |
-
}
|
8121 |
-
}
|
8122 |
-
|
8123 |
-
return values;
|
8124 |
-
},
|
8125 |
-
|
8126 |
-
set: function( elem, value ) {
|
8127 |
-
var optionSet, option,
|
8128 |
-
options = elem.options,
|
8129 |
-
values = jQuery.makeArray( value ),
|
8130 |
-
i = options.length;
|
8131 |
-
|
8132 |
-
while ( i-- ) {
|
8133 |
-
option = options[ i ];
|
8134 |
-
|
8135 |
-
/* eslint-disable no-cond-assign */
|
8136 |
-
|
8137 |
-
if ( option.selected =
|
8138 |
-
jQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1
|
8139 |
-
) {
|
8140 |
-
optionSet = true;
|
8141 |
-
}
|
8142 |
-
|
8143 |
-
/* eslint-enable no-cond-assign */
|
8144 |
-
}
|
8145 |
-
|
8146 |
-
// Force browsers to behave consistently when non-matching value is set
|
8147 |
-
if ( !optionSet ) {
|
8148 |
-
elem.selectedIndex = -1;
|
8149 |
-
}
|
8150 |
-
return values;
|
8151 |
-
}
|
8152 |
-
}
|
8153 |
-
}
|
8154 |
-
} );
|
8155 |
-
|
8156 |
-
// Radios and checkboxes getter/setter
|
8157 |
-
jQuery.each( [ "radio", "checkbox" ], function() {
|
8158 |
-
jQuery.valHooks[ this ] = {
|
8159 |
-
set: function( elem, value ) {
|
8160 |
-
if ( Array.isArray( value ) ) {
|
8161 |
-
return ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 );
|
8162 |
-
}
|
8163 |
-
}
|
8164 |
-
};
|
8165 |
-
if ( !support.checkOn ) {
|
8166 |
-
jQuery.valHooks[ this ].get = function( elem ) {
|
8167 |
-
return elem.getAttribute( "value" ) === null ? "on" : elem.value;
|
8168 |
-
};
|
8169 |
-
}
|
8170 |
-
} );
|
8171 |
-
|
8172 |
-
|
8173 |
-
|
8174 |
-
|
8175 |
-
// Return jQuery for attributes-only inclusion
|
8176 |
-
|
8177 |
-
|
8178 |
-
var rfocusMorph = /^(?:focusinfocus|focusoutblur)$/;
|
8179 |
-
|
8180 |
-
jQuery.extend( jQuery.event, {
|
8181 |
-
|
8182 |
-
trigger: function( event, data, elem, onlyHandlers ) {
|
8183 |
-
|
8184 |
-
var i, cur, tmp, bubbleType, ontype, handle, special,
|
8185 |
-
eventPath = [ elem || document ],
|
8186 |
-
type = hasOwn.call( event, "type" ) ? event.type : event,
|
8187 |
-
namespaces = hasOwn.call( event, "namespace" ) ? event.namespace.split( "." ) : [];
|
8188 |
-
|
8189 |
-
cur = tmp = elem = elem || document;
|
8190 |
-
|
8191 |
-
// Don't do events on text and comment nodes
|
8192 |
-
if ( elem.nodeType === 3 || elem.nodeType === 8 ) {
|
8193 |
-
return;
|
8194 |
-
}
|
8195 |
-
|
8196 |
-
// focus/blur morphs to focusin/out; ensure we're not firing them right now
|
8197 |
-
if ( rfocusMorph.test( type + jQuery.event.triggered ) ) {
|
8198 |
-
return;
|
8199 |
-
}
|
8200 |
-
|
8201 |
-
if ( type.indexOf( "." ) > -1 ) {
|
8202 |
-
|
8203 |
-
// Namespaced trigger; create a regexp to match event type in handle()
|
8204 |
-
namespaces = type.split( "." );
|
8205 |
-
type = namespaces.shift();
|
8206 |
-
namespaces.sort();
|
8207 |
-
}
|
8208 |
-
ontype = type.indexOf( ":" ) < 0 && "on" + type;
|
8209 |
-
|
8210 |
-
// Caller can pass in a jQuery.Event object, Object, or just an event type string
|
8211 |
-
event = event[ jQuery.expando ] ?
|
8212 |
-
event :
|
8213 |
-
new jQuery.Event( type, typeof event === "object" && event );
|
8214 |
-
|
8215 |
-
// Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)
|
8216 |
-
event.isTrigger = onlyHandlers ? 2 : 3;
|
8217 |
-
event.namespace = namespaces.join( "." );
|
8218 |
-
event.rnamespace = event.namespace ?
|
8219 |
-
new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ) :
|
8220 |
-
null;
|
8221 |
-
|
8222 |
-
// Clean up the event in case it is being reused
|
8223 |
-
event.result = undefined;
|
8224 |
-
if ( !event.target ) {
|
8225 |
-
event.target = elem;
|
8226 |
-
}
|
8227 |
-
|
8228 |
-
// Clone any incoming data and prepend the event, creating the handler arg list
|
8229 |
-
data = data == null ?
|
8230 |
-
[ event ] :
|
8231 |
-
jQuery.makeArray( data, [ event ] );
|
8232 |
-
|
8233 |
-
// Allow special events to draw outside the lines
|
8234 |
-
special = jQuery.event.special[ type ] || {};
|
8235 |
-
if ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) {
|
8236 |
-
return;
|
8237 |
-
}
|
8238 |
-
|
8239 |
-
// Determine event propagation path in advance, per W3C events spec (#9951)
|
8240 |
-
// Bubble up to document, then to window; watch for a global ownerDocument var (#9724)
|
8241 |
-
if ( !onlyHandlers && !special.noBubble && !jQuery.isWindow( elem ) ) {
|
8242 |
-
|
8243 |
-
bubbleType = special.delegateType || type;
|
8244 |
-
if ( !rfocusMorph.test( bubbleType + type ) ) {
|
8245 |
-
cur = cur.parentNode;
|
8246 |
-
}
|
8247 |
-
for ( ; cur; cur = cur.parentNode ) {
|
8248 |
-
eventPath.push( cur );
|
8249 |
-
tmp = cur;
|
8250 |
-
}
|
8251 |
-
|
8252 |
-
// Only add window if we got to document (e.g., not plain obj or detached DOM)
|
8253 |
-
if ( tmp === ( elem.ownerDocument || document ) ) {
|
8254 |
-
eventPath.push( tmp.defaultView || tmp.parentWindow || window );
|
8255 |
-
}
|
8256 |
-
}
|
8257 |
-
|
8258 |
-
// Fire handlers on the event path
|
8259 |
-
i = 0;
|
8260 |
-
while ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) {
|
8261 |
-
|
8262 |
-
event.type = i > 1 ?
|
8263 |
-
bubbleType :
|
8264 |
-
special.bindType || type;
|
8265 |
-
|
8266 |
-
// jQuery handler
|
8267 |
-
handle = ( dataPriv.get( cur, "events" ) || {} )[ event.type ] &&
|
8268 |
-
dataPriv.get( cur, "handle" );
|
8269 |
-
if ( handle ) {
|
8270 |
-
handle.apply( cur, data );
|
8271 |
-
}
|
8272 |
-
|
8273 |
-
// Native handler
|
8274 |
-
handle = ontype && cur[ ontype ];
|
8275 |
-
if ( handle && handle.apply && acceptData( cur ) ) {
|
8276 |
-
event.result = handle.apply( cur, data );
|
8277 |
-
if ( event.result === false ) {
|
8278 |
-
event.preventDefault();
|
8279 |
-
}
|
8280 |
-
}
|
8281 |
-
}
|
8282 |
-
event.type = type;
|
8283 |
-
|
8284 |
-
// If nobody prevented the default action, do it now
|
8285 |
-
if ( !onlyHandlers && !event.isDefaultPrevented() ) {
|
8286 |
-
|
8287 |
-
if ( ( !special._default ||
|
8288 |
-
special._default.apply( eventPath.pop(), data ) === false ) &&
|
8289 |
-
acceptData( elem ) ) {
|
8290 |
-
|
8291 |
-
// Call a native DOM method on the target with the same name as the event.
|
8292 |
-
// Don't do default actions on window, that's where global variables be (#6170)
|
8293 |
-
if ( ontype && jQuery.isFunction( elem[ type ] ) && !jQuery.isWindow( elem ) ) {
|
8294 |
-
|
8295 |
-
// Don't re-trigger an onFOO event when we call its FOO() method
|
8296 |
-
tmp = elem[ ontype ];
|
8297 |
-
|
8298 |
-
if ( tmp ) {
|
8299 |
-
elem[ ontype ] = null;
|
8300 |
-
}
|
8301 |
-
|
8302 |
-
// Prevent re-triggering of the same event, since we already bubbled it above
|
8303 |
-
jQuery.event.triggered = type;
|
8304 |
-
elem[ type ]();
|
8305 |
-
jQuery.event.triggered = undefined;
|
8306 |
-
|
8307 |
-
if ( tmp ) {
|
8308 |
-
elem[ ontype ] = tmp;
|
8309 |
-
}
|
8310 |
-
}
|
8311 |
-
}
|
8312 |
-
}
|
8313 |
-
|
8314 |
-
return event.result;
|
8315 |
-
},
|
8316 |
-
|
8317 |
-
// Piggyback on a donor event to simulate a different one
|
8318 |
-
// Used only for `focus(in | out)` events
|
8319 |
-
simulate: function( type, elem, event ) {
|
8320 |
-
var e = jQuery.extend(
|
8321 |
-
new jQuery.Event(),
|
8322 |
-
event,
|
8323 |
-
{
|
8324 |
-
type: type,
|
8325 |
-
isSimulated: true
|
8326 |
-
}
|
8327 |
-
);
|
8328 |
-
|
8329 |
-
jQuery.event.trigger( e, null, elem );
|
8330 |
-
}
|
8331 |
-
|
8332 |
-
} );
|
8333 |
-
|
8334 |
-
jQuery.fn.extend( {
|
8335 |
-
|
8336 |
-
trigger: function( type, data ) {
|
8337 |
-
return this.each( function() {
|
8338 |
-
jQuery.event.trigger( type, data, this );
|
8339 |
-
} );
|
8340 |
-
},
|
8341 |
-
triggerHandler: function( type, data ) {
|
8342 |
-
var elem = this[ 0 ];
|
8343 |
-
if ( elem ) {
|
8344 |
-
return jQuery.event.trigger( type, data, elem, true );
|
8345 |
-
}
|
8346 |
-
}
|
8347 |
-
} );
|
8348 |
-
|
8349 |
-
|
8350 |
-
jQuery.each( ( "blur focus focusin focusout resize scroll click dblclick " +
|
8351 |
-
"mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " +
|
8352 |
-
"change select submit keydown keypress keyup contextmenu" ).split( " " ),
|
8353 |
-
function( i, name ) {
|
8354 |
-
|
8355 |
-
// Handle event binding
|
8356 |
-
jQuery.fn[ name ] = function( data, fn ) {
|
8357 |
-
return arguments.length > 0 ?
|
8358 |
-
this.on( name, null, data, fn ) :
|
8359 |
-
this.trigger( name );
|
8360 |
-
};
|
8361 |
-
} );
|
8362 |
-
|
8363 |
-
jQuery.fn.extend( {
|
8364 |
-
hover: function( fnOver, fnOut ) {
|
8365 |
-
return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver );
|
8366 |
-
}
|
8367 |
-
} );
|
8368 |
-
|
8369 |
-
|
8370 |
-
|
8371 |
-
|
8372 |
-
support.focusin = "onfocusin" in window;
|
8373 |
-
|
8374 |
-
|
8375 |
-
// Support: Firefox <=44
|
8376 |
-
// Firefox doesn't have focus(in | out) events
|
8377 |
-
// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787
|
8378 |
-
//
|
8379 |
-
// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1
|
8380 |
-
// focus(in | out) events fire after focus & blur events,
|
8381 |
-
// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order
|
8382 |
-
// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857
|
8383 |
-
if ( !support.focusin ) {
|
8384 |
-
jQuery.each( { focus: "focusin", blur: "focusout" }, function( orig, fix ) {
|
8385 |
-
|
8386 |
-
// Attach a single capturing handler on the document while someone wants focusin/focusout
|
8387 |
-
var handler = function( event ) {
|
8388 |
-
jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) );
|
8389 |
-
};
|
8390 |
-
|
8391 |
-
jQuery.event.special[ fix ] = {
|
8392 |
-
setup: function() {
|
8393 |
-
var doc = this.ownerDocument || this,
|
8394 |
-
attaches = dataPriv.access( doc, fix );
|
8395 |
-
|
8396 |
-
if ( !attaches ) {
|
8397 |
-
doc.addEventListener( orig, handler, true );
|
8398 |
-
}
|
8399 |
-
dataPriv.access( doc, fix, ( attaches || 0 ) + 1 );
|
8400 |
-
},
|
8401 |
-
teardown: function() {
|
8402 |
-
var doc = this.ownerDocument || this,
|
8403 |
-
attaches = dataPriv.access( doc, fix ) - 1;
|
8404 |
-
|
8405 |
-
if ( !attaches ) {
|
8406 |
-
doc.removeEventListener( orig, handler, true );
|
8407 |
-
dataPriv.remove( doc, fix );
|
8408 |
-
|
8409 |
-
} else {
|
8410 |
-
dataPriv.access( doc, fix, attaches );
|
8411 |
-
}
|
8412 |
-
}
|
8413 |
-
};
|
8414 |
-
} );
|
8415 |
-
}
|
8416 |
-
var location = window.location;
|
8417 |
-
|
8418 |
-
var nonce = jQuery.now();
|
8419 |
-
|
8420 |
-
var rquery = ( /\?/ );
|
8421 |
-
|
8422 |
-
|
8423 |
-
|
8424 |
-
// Cross-browser xml parsing
|
8425 |
-
jQuery.parseXML = function( data ) {
|
8426 |
-
var xml;
|
8427 |
-
if ( !data || typeof data !== "string" ) {
|
8428 |
-
return null;
|
8429 |
-
}
|
8430 |
-
|
8431 |
-
// Support: IE 9 - 11 only
|
8432 |
-
// IE throws on parseFromString with invalid input.
|
8433 |
-
try {
|
8434 |
-
xml = ( new window.DOMParser() ).parseFromString( data, "text/xml" );
|
8435 |
-
} catch ( e ) {
|
8436 |
-
xml = undefined;
|
8437 |
-
}
|
8438 |
-
|
8439 |
-
if ( !xml || xml.getElementsByTagName( "parsererror" ).length ) {
|
8440 |
-
jQuery.error( "Invalid XML: " + data );
|
8441 |
-
}
|
8442 |
-
return xml;
|
8443 |
-
};
|
8444 |
-
|
8445 |
-
|
8446 |
-
var
|
8447 |
-
rbracket = /\[\]$/,
|
8448 |
-
rCRLF = /\r?\n/g,
|
8449 |
-
rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,
|
8450 |
-
rsubmittable = /^(?:input|select|textarea|keygen)/i;
|
8451 |
-
|
8452 |
-
function buildParams( prefix, obj, traditional, add ) {
|
8453 |
-
var name;
|
8454 |
-
|
8455 |
-
if ( Array.isArray( obj ) ) {
|
8456 |
-
|
8457 |
-
// Serialize array item.
|
8458 |
-
jQuery.each( obj, function( i, v ) {
|
8459 |
-
if ( traditional || rbracket.test( prefix ) ) {
|
8460 |
-
|
8461 |
-
// Treat each array item as a scalar.
|
8462 |
-
add( prefix, v );
|
8463 |
-
|
8464 |
-
} else {
|
8465 |
-
|
8466 |
-
// Item is non-scalar (array or object), encode its numeric index.
|
8467 |
-
buildParams(
|
8468 |
-
prefix + "[" + ( typeof v === "object" && v != null ? i : "" ) + "]",
|
8469 |
-
v,
|
8470 |
-
traditional,
|
8471 |
-
add
|
8472 |
-
);
|
8473 |
-
}
|
8474 |
-
} );
|
8475 |
-
|
8476 |
-
} else if ( !traditional && jQuery.type( obj ) === "object" ) {
|
8477 |
-
|
8478 |
-
// Serialize object item.
|
8479 |
-
for ( name in obj ) {
|
8480 |
-
buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add );
|
8481 |
-
}
|
8482 |
-
|
8483 |
-
} else {
|
8484 |
-
|
8485 |
-
// Serialize scalar item.
|
8486 |
-
add( prefix, obj );
|
8487 |
-
}
|
8488 |
-
}
|
8489 |
-
|
8490 |
-
// Serialize an array of form elements or a set of
|
8491 |
-
// key/values into a query string
|
8492 |
-
jQuery.param = function( a, traditional ) {
|
8493 |
-
var prefix,
|
8494 |
-
s = [],
|
8495 |
-
add = function( key, valueOrFunction ) {
|
8496 |
-
|
8497 |
-
// If value is a function, invoke it and use its return value
|
8498 |
-
var value = jQuery.isFunction( valueOrFunction ) ?
|
8499 |
-
valueOrFunction() :
|
8500 |
-
valueOrFunction;
|
8501 |
-
|
8502 |
-
s[ s.length ] = encodeURIComponent( key ) + "=" +
|
8503 |
-
encodeURIComponent( value == null ? "" : value );
|
8504 |
-
};
|
8505 |
-
|
8506 |
-
// If an array was passed in, assume that it is an array of form elements.
|
8507 |
-
if ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {
|
8508 |
-
|
8509 |
-
// Serialize the form elements
|
8510 |
-
jQuery.each( a, function() {
|
8511 |
-
add( this.name, this.value );
|
8512 |
-
} );
|
8513 |
-
|
8514 |
-
} else {
|
8515 |
-
|
8516 |
-
// If traditional, encode the "old" way (the way 1.3.2 or older
|
8517 |
-
// did it), otherwise encode params recursively.
|
8518 |
-
for ( prefix in a ) {
|
8519 |
-
buildParams( prefix, a[ prefix ], traditional, add );
|
8520 |
-
}
|
8521 |
-
}
|
8522 |
-
|
8523 |
-
// Return the resulting serialization
|
8524 |
-
return s.join( "&" );
|
8525 |
-
};
|
8526 |
-
|
8527 |
-
jQuery.fn.extend( {
|
8528 |
-
serialize: function() {
|
8529 |
-
return jQuery.param( this.serializeArray() );
|
8530 |
-
},
|
8531 |
-
serializeArray: function() {
|
8532 |
-
return this.map( function() {
|
8533 |
-
|
8534 |
-
// Can add propHook for "elements" to filter or add form elements
|
8535 |
-
var elements = jQuery.prop( this, "elements" );
|
8536 |
-
return elements ? jQuery.makeArray( elements ) : this;
|
8537 |
-
} )
|
8538 |
-
.filter( function() {
|
8539 |
-
var type = this.type;
|
8540 |
-
|
8541 |
-
// Use .is( ":disabled" ) so that fieldset[disabled] works
|
8542 |
-
return this.name && !jQuery( this ).is( ":disabled" ) &&
|
8543 |
-
rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) &&
|
8544 |
-
( this.checked || !rcheckableType.test( type ) );
|
8545 |
-
} )
|
8546 |
-
.map( function( i, elem ) {
|
8547 |
-
var val = jQuery( this ).val();
|
8548 |
-
|
8549 |
-
if ( val == null ) {
|
8550 |
-
return null;
|
8551 |
-
}
|
8552 |
-
|
8553 |
-
if ( Array.isArray( val ) ) {
|
8554 |
-
return jQuery.map( val, function( val ) {
|
8555 |
-
return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
|
8556 |
-
} );
|
8557 |
-
}
|
8558 |
-
|
8559 |
-
return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
|
8560 |
-
} ).get();
|
8561 |
-
}
|
8562 |
-
} );
|
8563 |
-
|
8564 |
-
|
8565 |
-
var
|
8566 |
-
r20 = /%20/g,
|
8567 |
-
rhash = /#.*$/,
|
8568 |
-
rantiCache = /([?&])_=[^&]*/,
|
8569 |
-
rheaders = /^(.*?):[ \t]*([^\r\n]*)$/mg,
|
8570 |
-
|
8571 |
-
// #7653, #8125, #8152: local protocol detection
|
8572 |
-
rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,
|
8573 |
-
rnoContent = /^(?:GET|HEAD)$/,
|
8574 |
-
rprotocol = /^\/\//,
|
8575 |
-
|
8576 |
-
/* Prefilters
|
8577 |
-
* 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)
|
8578 |
-
* 2) These are called:
|
8579 |
-
* - BEFORE asking for a transport
|
8580 |
-
* - AFTER param serialization (s.data is a string if s.processData is true)
|
8581 |
-
* 3) key is the dataType
|
8582 |
-
* 4) the catchall symbol "*" can be used
|
8583 |
-
* 5) execution will start with transport dataType and THEN continue down to "*" if needed
|
8584 |
-
*/
|
8585 |
-
prefilters = {},
|
8586 |
-
|
8587 |
-
/* Transports bindings
|
8588 |
-
* 1) key is the dataType
|
8589 |
-
* 2) the catchall symbol "*" can be used
|
8590 |
-
* 3) selection will start with transport dataType and THEN go to "*" if needed
|
8591 |
-
*/
|
8592 |
-
transports = {},
|
8593 |
-
|
8594 |
-
// Avoid comment-prolog char sequence (#10098); must appease lint and evade compression
|
8595 |
-
allTypes = "*/".concat( "*" ),
|
8596 |
-
|
8597 |
-
// Anchor tag for parsing the document origin
|
8598 |
-
originAnchor = document.createElement( "a" );
|
8599 |
-
originAnchor.href = location.href;
|
8600 |
-
|
8601 |
-
// Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport
|
8602 |
-
function addToPrefiltersOrTransports( structure ) {
|
8603 |
-
|
8604 |
-
// dataTypeExpression is optional and defaults to "*"
|
8605 |
-
return function( dataTypeExpression, func ) {
|
8606 |
-
|
8607 |
-
if ( typeof dataTypeExpression !== "string" ) {
|
8608 |
-
func = dataTypeExpression;
|
8609 |
-
dataTypeExpression = "*";
|
8610 |
-
}
|
8611 |
-
|
8612 |
-
var dataType,
|
8613 |
-
i = 0,
|
8614 |
-
dataTypes = dataTypeExpression.toLowerCase().match( rnothtmlwhite ) || [];
|
8615 |
-
|
8616 |
-
if ( jQuery.isFunction( func ) ) {
|
8617 |
-
|
8618 |
-
// For each dataType in the dataTypeExpression
|
8619 |
-
while ( ( dataType = dataTypes[ i++ ] ) ) {
|
8620 |
-
|
8621 |
-
// Prepend if requested
|
8622 |
-
if ( dataType[ 0 ] === "+" ) {
|
8623 |
-
dataType = dataType.slice( 1 ) || "*";
|
8624 |
-
( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func );
|
8625 |
-
|
8626 |
-
// Otherwise append
|
8627 |
-
} else {
|
8628 |
-
( structure[ dataType ] = structure[ dataType ] || [] ).push( func );
|
8629 |
-
}
|
8630 |
-
}
|
8631 |
-
}
|
8632 |
-
};
|
8633 |
-
}
|
8634 |
-
|
8635 |
-
// Base inspection function for prefilters and transports
|
8636 |
-
function inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) {
|
8637 |
-
|
8638 |
-
var inspected = {},
|
8639 |
-
seekingTransport = ( structure === transports );
|
8640 |
-
|
8641 |
-
function inspect( dataType ) {
|
8642 |
-
var selected;
|
8643 |
-
inspected[ dataType ] = true;
|
8644 |
-
jQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) {
|
8645 |
-
var dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR );
|
8646 |
-
if ( typeof dataTypeOrTransport === "string" &&
|
8647 |
-
!seekingTransport && !inspected[ dataTypeOrTransport ] ) {
|
8648 |
-
|
8649 |
-
options.dataTypes.unshift( dataTypeOrTransport );
|
8650 |
-
inspect( dataTypeOrTransport );
|
8651 |
-
return false;
|
8652 |
-
} else if ( seekingTransport ) {
|
8653 |
-
return !( selected = dataTypeOrTransport );
|
8654 |
-
}
|
8655 |
-
} );
|
8656 |
-
return selected;
|
8657 |
-
}
|
8658 |
-
|
8659 |
-
return inspect( options.dataTypes[ 0 ] ) || !inspected[ "*" ] && inspect( "*" );
|
8660 |
-
}
|
8661 |
-
|
8662 |
-
// A special extend for ajax options
|
8663 |
-
// that takes "flat" options (not to be deep extended)
|
8664 |
-
// Fixes #9887
|
8665 |
-
function ajaxExtend( target, src ) {
|
8666 |
-
var key, deep,
|
8667 |
-
flatOptions = jQuery.ajaxSettings.flatOptions || {};
|
8668 |
-
|
8669 |
-
for ( key in src ) {
|
8670 |
-
if ( src[ key ] !== undefined ) {
|
8671 |
-
( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ];
|
8672 |
-
}
|
8673 |
-
}
|
8674 |
-
if ( deep ) {
|
8675 |
-
jQuery.extend( true, target, deep );
|
8676 |
-
}
|
8677 |
-
|
8678 |
-
return target;
|
8679 |
-
}
|
8680 |
-
|
8681 |
-
/* Handles responses to an ajax request:
|
8682 |
-
* - finds the right dataType (mediates between content-type and expected dataType)
|
8683 |
-
* - returns the corresponding response
|
8684 |
-
*/
|
8685 |
-
function ajaxHandleResponses( s, jqXHR, responses ) {
|
8686 |
-
|
8687 |
-
var ct, type, finalDataType, firstDataType,
|
8688 |
-
contents = s.contents,
|
8689 |
-
dataTypes = s.dataTypes;
|
8690 |
-
|
8691 |
-
// Remove auto dataType and get content-type in the process
|
8692 |
-
while ( dataTypes[ 0 ] === "*" ) {
|
8693 |
-
dataTypes.shift();
|
8694 |
-
if ( ct === undefined ) {
|
8695 |
-
ct = s.mimeType || jqXHR.getResponseHeader( "Content-Type" );
|
8696 |
-
}
|
8697 |
-
}
|
8698 |
-
|
8699 |
-
// Check if we're dealing with a known content-type
|
8700 |
-
if ( ct ) {
|
8701 |
-
for ( type in contents ) {
|
8702 |
-
if ( contents[ type ] && contents[ type ].test( ct ) ) {
|
8703 |
-
dataTypes.unshift( type );
|
8704 |
-
break;
|
8705 |
-
}
|
8706 |
-
}
|
8707 |
-
}
|
8708 |
-
|
8709 |
-
// Check to see if we have a response for the expected dataType
|
8710 |
-
if ( dataTypes[ 0 ] in responses ) {
|
8711 |
-
finalDataType = dataTypes[ 0 ];
|
8712 |
-
} else {
|
8713 |
-
|
8714 |
-
// Try convertible dataTypes
|
8715 |
-
for ( type in responses ) {
|
8716 |
-
if ( !dataTypes[ 0 ] || s.converters[ type + " " + dataTypes[ 0 ] ] ) {
|
8717 |
-
finalDataType = type;
|
8718 |
-
break;
|
8719 |
-
}
|
8720 |
-
if ( !firstDataType ) {
|
8721 |
-
firstDataType = type;
|
8722 |
-
}
|
8723 |
-
}
|
8724 |
-
|
8725 |
-
// Or just use first one
|
8726 |
-
finalDataType = finalDataType || firstDataType;
|
8727 |
-
}
|
8728 |
-
|
8729 |
-
// If we found a dataType
|
8730 |
-
// We add the dataType to the list if needed
|
8731 |
-
// and return the corresponding response
|
8732 |
-
if ( finalDataType ) {
|
8733 |
-
if ( finalDataType !== dataTypes[ 0 ] ) {
|
8734 |
-
dataTypes.unshift( finalDataType );
|
8735 |
-
}
|
8736 |
-
return responses[ finalDataType ];
|
8737 |
-
}
|
8738 |
-
}
|
8739 |
-
|
8740 |
-
/* Chain conversions given the request and the original response
|
8741 |
-
* Also sets the responseXXX fields on the jqXHR instance
|
8742 |
-
*/
|
8743 |
-
function ajaxConvert( s, response, jqXHR, isSuccess ) {
|
8744 |
-
var conv2, current, conv, tmp, prev,
|
8745 |
-
converters = {},
|
8746 |
-
|
8747 |
-
// Work with a copy of dataTypes in case we need to modify it for conversion
|
8748 |
-
dataTypes = s.dataTypes.slice();
|
8749 |
-
|
8750 |
-
// Create converters map with lowercased keys
|
8751 |
-
if ( dataTypes[ 1 ] ) {
|
8752 |
-
for ( conv in s.converters ) {
|
8753 |
-
converters[ conv.toLowerCase() ] = s.converters[ conv ];
|
8754 |
-
}
|
8755 |
-
}
|
8756 |
-
|
8757 |
-
current = dataTypes.shift();
|
8758 |
-
|
8759 |
-
// Convert to each sequential dataType
|
8760 |
-
while ( current ) {
|
8761 |
-
|
8762 |
-
if ( s.responseFields[ current ] ) {
|
8763 |
-
jqXHR[ s.responseFields[ current ] ] = response;
|
8764 |
-
}
|
8765 |
-
|
8766 |
-
// Apply the dataFilter if provided
|
8767 |
-
if ( !prev && isSuccess && s.dataFilter ) {
|
8768 |
-
response = s.dataFilter( response, s.dataType );
|
8769 |
-
}
|
8770 |
-
|
8771 |
-
prev = current;
|
8772 |
-
current = dataTypes.shift();
|
8773 |
-
|
8774 |
-
if ( current ) {
|
8775 |
-
|
8776 |
-
// There's only work to do if current dataType is non-auto
|
8777 |
-
if ( current === "*" ) {
|
8778 |
-
|
8779 |
-
current = prev;
|
8780 |
-
|
8781 |
-
// Convert response if prev dataType is non-auto and differs from current
|
8782 |
-
} else if ( prev !== "*" && prev !== current ) {
|
8783 |
-
|
8784 |
-
// Seek a direct converter
|
8785 |
-
conv = converters[ prev + " " + current ] || converters[ "* " + current ];
|
8786 |
-
|
8787 |
-
// If none found, seek a pair
|
8788 |
-
if ( !conv ) {
|
8789 |
-
for ( conv2 in converters ) {
|
8790 |
-
|
8791 |
-
// If conv2 outputs current
|
8792 |
-
tmp = conv2.split( " " );
|
8793 |
-
if ( tmp[ 1 ] === current ) {
|
8794 |
-
|
8795 |
-
// If prev can be converted to accepted input
|
8796 |
-
conv = converters[ prev + " " + tmp[ 0 ] ] ||
|
8797 |
-
converters[ "* " + tmp[ 0 ] ];
|
8798 |
-
if ( conv ) {
|
8799 |
-
|
8800 |
-
// Condense equivalence converters
|
8801 |
-
if ( conv === true ) {
|
8802 |
-
conv = converters[ conv2 ];
|
8803 |
-
|
8804 |
-
// Otherwise, insert the intermediate dataType
|
8805 |
-
} else if ( converters[ conv2 ] !== true ) {
|
8806 |
-
current = tmp[ 0 ];
|
8807 |
-
dataTypes.unshift( tmp[ 1 ] );
|
8808 |
-
}
|
8809 |
-
break;
|
8810 |
-
}
|
8811 |
-
}
|
8812 |
-
}
|
8813 |
-
}
|
8814 |
-
|
8815 |
-
// Apply converter (if not an equivalence)
|
8816 |
-
if ( conv !== true ) {
|
8817 |
-
|
8818 |
-
// Unless errors are allowed to bubble, catch and return them
|
8819 |
-
if ( conv && s.throws ) {
|
8820 |
-
response = conv( response );
|
8821 |
-
} else {
|
8822 |
-
try {
|
8823 |
-
response = conv( response );
|
8824 |
-
} catch ( e ) {
|
8825 |
-
return {
|
8826 |
-
state: "parsererror",
|
8827 |
-
error: conv ? e : "No conversion from " + prev + " to " + current
|
8828 |
-
};
|
8829 |
-
}
|
8830 |
-
}
|
8831 |
-
}
|
8832 |
-
}
|
8833 |
-
}
|
8834 |
-
}
|
8835 |
-
|
8836 |
-
return { state: "success", data: response };
|
8837 |
-
}
|
8838 |
-
|
8839 |
-
jQuery.extend( {
|
8840 |
-
|
8841 |
-
// Counter for holding the number of active queries
|
8842 |
-
active: 0,
|
8843 |
-
|
8844 |
-
// Last-Modified header cache for next request
|
8845 |
-
lastModified: {},
|
8846 |
-
etag: {},
|
8847 |
-
|
8848 |
-
ajaxSettings: {
|
8849 |
-
url: location.href,
|
8850 |
-
type: "GET",
|
8851 |
-
isLocal: rlocalProtocol.test( location.protocol ),
|
8852 |
-
global: true,
|
8853 |
-
processData: true,
|
8854 |
-
async: true,
|
8855 |
-
contentType: "application/x-www-form-urlencoded; charset=UTF-8",
|
8856 |
-
|
8857 |
-
/*
|
8858 |
-
timeout: 0,
|
8859 |
-
data: null,
|
8860 |
-
dataType: null,
|
8861 |
-
username: null,
|
8862 |
-
password: null,
|
8863 |
-
cache: null,
|
8864 |
-
throws: false,
|
8865 |
-
traditional: false,
|
8866 |
-
headers: {},
|
8867 |
-
*/
|
8868 |
-
|
8869 |
-
accepts: {
|
8870 |
-
"*": allTypes,
|
8871 |
-
text: "text/plain",
|
8872 |
-
html: "text/html",
|
8873 |
-
xml: "application/xml, text/xml",
|
8874 |
-
json: "application/json, text/javascript"
|
8875 |
-
},
|
8876 |
-
|
8877 |
-
contents: {
|
8878 |
-
xml: /\bxml\b/,
|
8879 |
-
html: /\bhtml/,
|
8880 |
-
json: /\bjson\b/
|
8881 |
-
},
|
8882 |
-
|
8883 |
-
responseFields: {
|
8884 |
-
xml: "responseXML",
|
8885 |
-
text: "responseText",
|
8886 |
-
json: "responseJSON"
|
8887 |
-
},
|
8888 |
-
|
8889 |
-
// Data converters
|
8890 |
-
// Keys separate source (or catchall "*") and destination types with a single space
|
8891 |
-
converters: {
|
8892 |
-
|
8893 |
-
// Convert anything to text
|
8894 |
-
"* text": String,
|
8895 |
-
|
8896 |
-
// Text to html (true = no transformation)
|
8897 |
-
"text html": true,
|
8898 |
-
|
8899 |
-
// Evaluate text as a json expression
|
8900 |
-
"text json": JSON.parse,
|
8901 |
-
|
8902 |
-
// Parse text as xml
|
8903 |
-
"text xml": jQuery.parseXML
|
8904 |
-
},
|
8905 |
-
|
8906 |
-
// For options that shouldn't be deep extended:
|
8907 |
-
// you can add your own custom options here if
|
8908 |
-
// and when you create one that shouldn't be
|
8909 |
-
// deep extended (see ajaxExtend)
|
8910 |
-
flatOptions: {
|
8911 |
-
url: true,
|
8912 |
-
context: true
|
8913 |
-
}
|
8914 |
-
},
|
8915 |
-
|
8916 |
-
// Creates a full fledged settings object into target
|
8917 |
-
// with both ajaxSettings and settings fields.
|
8918 |
-
// If target is omitted, writes into ajaxSettings.
|
8919 |
-
ajaxSetup: function( target, settings ) {
|
8920 |
-
return settings ?
|
8921 |
-
|
8922 |
-
// Building a settings object
|
8923 |
-
ajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) :
|
8924 |
-
|
8925 |
-
// Extending ajaxSettings
|
8926 |
-
ajaxExtend( jQuery.ajaxSettings, target );
|
8927 |
-
},
|
8928 |
-
|
8929 |
-
ajaxPrefilter: addToPrefiltersOrTransports( prefilters ),
|
8930 |
-
ajaxTransport: addToPrefiltersOrTransports( transports ),
|
8931 |
-
|
8932 |
-
// Main method
|
8933 |
-
ajax: function( url, options ) {
|
8934 |
-
|
8935 |
-
// If url is an object, simulate pre-1.5 signature
|
8936 |
-
if ( typeof url === "object" ) {
|
8937 |
-
options = url;
|
8938 |
-
url = undefined;
|
8939 |
-
}
|
8940 |
-
|
8941 |
-
// Force options to be an object
|
8942 |
-
options = options || {};
|
8943 |
-
|
8944 |
-
var transport,
|
8945 |
-
|
8946 |
-
// URL without anti-cache param
|
8947 |
-
cacheURL,
|
8948 |
-
|
8949 |
-
// Response headers
|
8950 |
-
responseHeadersString,
|
8951 |
-
responseHeaders,
|
8952 |
-
|
8953 |
-
// timeout handle
|
8954 |
-
timeoutTimer,
|
8955 |
-
|
8956 |
-
// Url cleanup var
|
8957 |
-
urlAnchor,
|
8958 |
-
|
8959 |
-
// Request state (becomes false upon send and true upon completion)
|
8960 |
-
completed,
|
8961 |
-
|
8962 |
-
// To know if global events are to be dispatched
|
8963 |
-
fireGlobals,
|
8964 |
-
|
8965 |
-
// Loop variable
|
8966 |
-
i,
|
8967 |
-
|
8968 |
-
// uncached part of the url
|
8969 |
-
uncached,
|
8970 |
-
|
8971 |
-
// Create the final options object
|
8972 |
-
s = jQuery.ajaxSetup( {}, options ),
|
8973 |
-
|
8974 |
-
// Callbacks context
|
8975 |
-
callbackContext = s.context || s,
|
8976 |
-
|
8977 |
-
// Context for global events is callbackContext if it is a DOM node or jQuery collection
|
8978 |
-
globalEventContext = s.context &&
|
8979 |
-
( callbackContext.nodeType || callbackContext.jquery ) ?
|
8980 |
-
jQuery( callbackContext ) :
|
8981 |
-
jQuery.event,
|
8982 |
-
|
8983 |
-
// Deferreds
|
8984 |
-
deferred = jQuery.Deferred(),
|
8985 |
-
completeDeferred = jQuery.Callbacks( "once memory" ),
|
8986 |
-
|
8987 |
-
// Status-dependent callbacks
|
8988 |
-
statusCode = s.statusCode || {},
|
8989 |
-
|
8990 |
-
// Headers (they are sent all at once)
|
8991 |
-
requestHeaders = {},
|
8992 |
-
requestHeadersNames = {},
|
8993 |
-
|
8994 |
-
// Default abort message
|
8995 |
-
strAbort = "canceled",
|
8996 |
-
|
8997 |
-
// Fake xhr
|
8998 |
-
jqXHR = {
|
8999 |
-
readyState: 0,
|
9000 |
-
|
9001 |
-
// Builds headers hashtable if needed
|
9002 |
-
getResponseHeader: function( key ) {
|
9003 |
-
var match;
|
9004 |
-
if ( completed ) {
|
9005 |
-
if ( !responseHeaders ) {
|
9006 |
-
responseHeaders = {};
|
9007 |
-
while ( ( match = rheaders.exec( responseHeadersString ) ) ) {
|
9008 |
-
responseHeaders[ match[ 1 ].toLowerCase() ] = match[ 2 ];
|
9009 |
-
}
|
9010 |
-
}
|
9011 |
-
match = responseHeaders[ key.toLowerCase() ];
|
9012 |
-
}
|
9013 |
-
return match == null ? null : match;
|
9014 |
-
},
|
9015 |
-
|
9016 |
-
// Raw string
|
9017 |
-
getAllResponseHeaders: function() {
|
9018 |
-
return completed ? responseHeadersString : null;
|
9019 |
-
},
|
9020 |
-
|
9021 |
-
// Caches the header
|
9022 |
-
setRequestHeader: function( name, value ) {
|
9023 |
-
if ( completed == null ) {
|
9024 |
-
name = requestHeadersNames[ name.toLowerCase() ] =
|
9025 |
-
requestHeadersNames[ name.toLowerCase() ] || name;
|
9026 |
-
requestHeaders[ name ] = value;
|
9027 |
-
}
|
9028 |
-
return this;
|
9029 |
-
},
|
9030 |
-
|
9031 |
-
// Overrides response content-type header
|
9032 |
-
overrideMimeType: function( type ) {
|
9033 |
-
if ( completed == null ) {
|
9034 |
-
s.mimeType = type;
|
9035 |
-
}
|
9036 |
-
return this;
|
9037 |
-
},
|
9038 |
-
|
9039 |
-
// Status-dependent callbacks
|
9040 |
-
statusCode: function( map ) {
|
9041 |
-
var code;
|
9042 |
-
if ( map ) {
|
9043 |
-
if ( completed ) {
|
9044 |
-
|
9045 |
-
// Execute the appropriate callbacks
|
9046 |
-
jqXHR.always( map[ jqXHR.status ] );
|
9047 |
-
} else {
|
9048 |
-
|
9049 |
-
// Lazy-add the new callbacks in a way that preserves old ones
|
9050 |
-
for ( code in map ) {
|
9051 |
-
statusCode[ code ] = [ statusCode[ code ], map[ code ] ];
|
9052 |
-
}
|
9053 |
-
}
|
9054 |
-
}
|
9055 |
-
return this;
|
9056 |
-
},
|
9057 |
-
|
9058 |
-
// Cancel the request
|
9059 |
-
abort: function( statusText ) {
|
9060 |
-
var finalText = statusText || strAbort;
|
9061 |
-
if ( transport ) {
|
9062 |
-
transport.abort( finalText );
|
9063 |
-
}
|
9064 |
-
done( 0, finalText );
|
9065 |
-
return this;
|
9066 |
-
}
|
9067 |
-
};
|
9068 |
-
|
9069 |
-
// Attach deferreds
|
9070 |
-
deferred.promise( jqXHR );
|
9071 |
-
|
9072 |
-
// Add protocol if not provided (prefilters might expect it)
|
9073 |
-
// Handle falsy url in the settings object (#10093: consistency with old signature)
|
9074 |
-
// We also use the url parameter if available
|
9075 |
-
s.url = ( ( url || s.url || location.href ) + "" )
|
9076 |
-
.replace( rprotocol, location.protocol + "//" );
|
9077 |
-
|
9078 |
-
// Alias method option to type as per ticket #12004
|
9079 |
-
s.type = options.method || options.type || s.method || s.type;
|
9080 |
-
|
9081 |
-
// Extract dataTypes list
|
9082 |
-
s.dataTypes = ( s.dataType || "*" ).toLowerCase().match( rnothtmlwhite ) || [ "" ];
|
9083 |
-
|
9084 |
-
// A cross-domain request is in order when the origin doesn't match the current origin.
|
9085 |
-
if ( s.crossDomain == null ) {
|
9086 |
-
urlAnchor = document.createElement( "a" );
|
9087 |
-
|
9088 |
-
// Support: IE <=8 - 11, Edge 12 - 13
|
9089 |
-
// IE throws exception on accessing the href property if url is malformed,
|
9090 |
-
// e.g. http://example.com:80x/
|
9091 |
-
try {
|
9092 |
-
urlAnchor.href = s.url;
|
9093 |
-
|
9094 |
-
// Support: IE <=8 - 11 only
|
9095 |
-
// Anchor's host property isn't correctly set when s.url is relative
|
9096 |
-
urlAnchor.href = urlAnchor.href;
|
9097 |
-
s.crossDomain = originAnchor.protocol + "//" + originAnchor.host !==
|
9098 |
-
urlAnchor.protocol + "//" + urlAnchor.host;
|
9099 |
-
} catch ( e ) {
|
9100 |
-
|
9101 |
-
// If there is an error parsing the URL, assume it is crossDomain,
|
9102 |
-
// it can be rejected by the transport if it is invalid
|
9103 |
-
s.crossDomain = true;
|
9104 |
-
}
|
9105 |
-
}
|
9106 |
-
|
9107 |
-
// Convert data if not already a string
|
9108 |
-
if ( s.data && s.processData && typeof s.data !== "string" ) {
|
9109 |
-
s.data = jQuery.param( s.data, s.traditional );
|
9110 |
-
}
|
9111 |
-
|
9112 |
-
// Apply prefilters
|
9113 |
-
inspectPrefiltersOrTransports( prefilters, s, options, jqXHR );
|
9114 |
-
|
9115 |
-
// If request was aborted inside a prefilter, stop there
|
9116 |
-
if ( completed ) {
|
9117 |
-
return jqXHR;
|
9118 |
-
}
|
9119 |
-
|
9120 |
-
// We can fire global events as of now if asked to
|
9121 |
-
// Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118)
|
9122 |
-
fireGlobals = jQuery.event && s.global;
|
9123 |
-
|
9124 |
-
// Watch for a new set of requests
|
9125 |
-
if ( fireGlobals && jQuery.active++ === 0 ) {
|
9126 |
-
jQuery.event.trigger( "ajaxStart" );
|
9127 |
-
}
|
9128 |
-
|
9129 |
-
// Uppercase the type
|
9130 |
-
s.type = s.type.toUpperCase();
|
9131 |
-
|
9132 |
-
// Determine if request has content
|
9133 |
-
s.hasContent = !rnoContent.test( s.type );
|
9134 |
-
|
9135 |
-
// Save the URL in case we're toying with the If-Modified-Since
|
9136 |
-
// and/or If-None-Match header later on
|
9137 |
-
// Remove hash to simplify url manipulation
|
9138 |
-
cacheURL = s.url.replace( rhash, "" );
|
9139 |
-
|
9140 |
-
// More options handling for requests with no content
|
9141 |
-
if ( !s.hasContent ) {
|
9142 |
-
|
9143 |
-
// Remember the hash so we can put it back
|
9144 |
-
uncached = s.url.slice( cacheURL.length );
|
9145 |
-
|
9146 |
-
// If data is available, append data to url
|
9147 |
-
if ( s.data ) {
|
9148 |
-
cacheURL += ( rquery.test( cacheURL ) ? "&" : "?" ) + s.data;
|
9149 |
-
|
9150 |
-
// #9682: remove data so that it's not used in an eventual retry
|
9151 |
-
delete s.data;
|
9152 |
-
}
|
9153 |
-
|
9154 |
-
// Add or update anti-cache param if needed
|
9155 |
-
if ( s.cache === false ) {
|
9156 |
-
cacheURL = cacheURL.replace( rantiCache, "$1" );
|
9157 |
-
uncached = ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + ( nonce++ ) + uncached;
|
9158 |
-
}
|
9159 |
-
|
9160 |
-
// Put hash and anti-cache on the URL that will be requested (gh-1732)
|
9161 |
-
s.url = cacheURL + uncached;
|
9162 |
-
|
9163 |
-
// Change '%20' to '+' if this is encoded form body content (gh-2658)
|
9164 |
-
} else if ( s.data && s.processData &&
|
9165 |
-
( s.contentType || "" ).indexOf( "application/x-www-form-urlencoded" ) === 0 ) {
|
9166 |
-
s.data = s.data.replace( r20, "+" );
|
9167 |
-
}
|
9168 |
-
|
9169 |
-
// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.
|
9170 |
-
if ( s.ifModified ) {
|
9171 |
-
if ( jQuery.lastModified[ cacheURL ] ) {
|
9172 |
-
jqXHR.setRequestHeader( "If-Modified-Since", jQuery.lastModified[ cacheURL ] );
|
9173 |
-
}
|
9174 |
-
if ( jQuery.etag[ cacheURL ] ) {
|
9175 |
-
jqXHR.setRequestHeader( "If-None-Match", jQuery.etag[ cacheURL ] );
|
9176 |
-
}
|
9177 |
-
}
|
9178 |
-
|
9179 |
-
// Set the correct header, if data is being sent
|
9180 |
-
if ( s.data && s.hasContent && s.contentType !== false || options.contentType ) {
|
9181 |
-
jqXHR.setRequestHeader( "Content-Type", s.contentType );
|
9182 |
-
}
|
9183 |
-
|
9184 |
-
// Set the Accepts header for the server, depending on the dataType
|
9185 |
-
jqXHR.setRequestHeader(
|
9186 |
-
"Accept",
|
9187 |
-
s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ?
|
9188 |
-
s.accepts[ s.dataTypes[ 0 ] ] +
|
9189 |
-
( s.dataTypes[ 0 ] !== "*" ? ", " + allTypes + "; q=0.01" : "" ) :
|
9190 |
-
s.accepts[ "*" ]
|
9191 |
-
);
|
9192 |
-
|
9193 |
-
// Check for headers option
|
9194 |
-
for ( i in s.headers ) {
|
9195 |
-
jqXHR.setRequestHeader( i, s.headers[ i ] );
|
9196 |
-
}
|
9197 |
-
|
9198 |
-
// Allow custom headers/mimetypes and early abort
|
9199 |
-
if ( s.beforeSend &&
|
9200 |
-
( s.beforeSend.call( callbackContext, jqXHR, s ) === false || completed ) ) {
|
9201 |
-
|
9202 |
-
// Abort if not done already and return
|
9203 |
-
return jqXHR.abort();
|
9204 |
-
}
|
9205 |
-
|
9206 |
-
// Aborting is no longer a cancellation
|
9207 |
-
strAbort = "abort";
|
9208 |
-
|
9209 |
-
// Install callbacks on deferreds
|
9210 |
-
completeDeferred.add( s.complete );
|
9211 |
-
jqXHR.done( s.success );
|
9212 |
-
jqXHR.fail( s.error );
|
9213 |
-
|
9214 |
-
// Get transport
|
9215 |
-
transport = inspectPrefiltersOrTransports( transports, s, options, jqXHR );
|
9216 |
-
|
9217 |
-
// If no transport, we auto-abort
|
9218 |
-
if ( !transport ) {
|
9219 |
-
done( -1, "No Transport" );
|
9220 |
-
} else {
|
9221 |
-
jqXHR.readyState = 1;
|
9222 |
-
|
9223 |
-
// Send global event
|
9224 |
-
if ( fireGlobals ) {
|
9225 |
-
globalEventContext.trigger( "ajaxSend", [ jqXHR, s ] );
|
9226 |
-
}
|
9227 |
-
|
9228 |
-
// If request was aborted inside ajaxSend, stop there
|
9229 |
-
if ( completed ) {
|
9230 |
-
return jqXHR;
|
9231 |
-
}
|
9232 |
-
|
9233 |
-
// Timeout
|
9234 |
-
if ( s.async && s.timeout > 0 ) {
|
9235 |
-
timeoutTimer = window.setTimeout( function() {
|
9236 |
-
jqXHR.abort( "timeout" );
|
9237 |
-
}, s.timeout );
|
9238 |
-
}
|
9239 |
-
|
9240 |
-
try {
|
9241 |
-
completed = false;
|
9242 |
-
transport.send( requestHeaders, done );
|
9243 |
-
} catch ( e ) {
|
9244 |
-
|
9245 |
-
// Rethrow post-completion exceptions
|
9246 |
-
if ( completed ) {
|
9247 |
-
throw e;
|
9248 |
-
}
|
9249 |
-
|
9250 |
-
// Propagate others as results
|
9251 |
-
done( -1, e );
|
9252 |
-
}
|
9253 |
-
}
|
9254 |
-
|
9255 |
-
// Callback for when everything is done
|
9256 |
-
function done( status, nativeStatusText, responses, headers ) {
|
9257 |
-
var isSuccess, success, error, response, modified,
|
9258 |
-
statusText = nativeStatusText;
|
9259 |
-
|
9260 |
-
// Ignore repeat invocations
|
9261 |
-
if ( completed ) {
|
9262 |
-
return;
|
9263 |
-
}
|
9264 |
-
|
9265 |
-
completed = true;
|
9266 |
-
|
9267 |
-
// Clear timeout if it exists
|
9268 |
-
if ( timeoutTimer ) {
|
9269 |
-
window.clearTimeout( timeoutTimer );
|
9270 |
-
}
|
9271 |
-
|
9272 |
-
// Dereference transport for early garbage collection
|
9273 |
-
// (no matter how long the jqXHR object will be used)
|
9274 |
-
transport = undefined;
|
9275 |
-
|
9276 |
-
// Cache response headers
|
9277 |
-
responseHeadersString = headers || "";
|
9278 |
-
|
9279 |
-
// Set readyState
|
9280 |
-
jqXHR.readyState = status > 0 ? 4 : 0;
|
9281 |
-
|
9282 |
-
// Determine if successful
|
9283 |
-
isSuccess = status >= 200 && status < 300 || status === 304;
|
9284 |
-
|
9285 |
-
// Get response data
|
9286 |
-
if ( responses ) {
|
9287 |
-
response = ajaxHandleResponses( s, jqXHR, responses );
|
9288 |
-
}
|
9289 |
-
|
9290 |
-
// Convert no matter what (that way responseXXX fields are always set)
|
9291 |
-
response = ajaxConvert( s, response, jqXHR, isSuccess );
|
9292 |
-
|
9293 |
-
// If successful, handle type chaining
|
9294 |
-
if ( isSuccess ) {
|
9295 |
-
|
9296 |
-
// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.
|
9297 |
-
if ( s.ifModified ) {
|
9298 |
-
modified = jqXHR.getResponseHeader( "Last-Modified" );
|
9299 |
-
if ( modified ) {
|
9300 |
-
jQuery.lastModified[ cacheURL ] = modified;
|
9301 |
-
}
|
9302 |
-
modified = jqXHR.getResponseHeader( "etag" );
|
9303 |
-
if ( modified ) {
|
9304 |
-
jQuery.etag[ cacheURL ] = modified;
|
9305 |
-
}
|
9306 |
-
}
|
9307 |
-
|
9308 |
-
// if no content
|
9309 |
-
if ( status === 204 || s.type === "HEAD" ) {
|
9310 |
-
statusText = "nocontent";
|
9311 |
-
|
9312 |
-
// if not modified
|
9313 |
-
} else if ( status === 304 ) {
|
9314 |
-
statusText = "notmodified";
|
9315 |
-
|
9316 |
-
// If we have data, let's convert it
|
9317 |
-
} else {
|
9318 |
-
statusText = response.state;
|
9319 |
-
success = response.data;
|
9320 |
-
error = response.error;
|
9321 |
-
isSuccess = !error;
|
9322 |
-
}
|
9323 |
-
} else {
|
9324 |
-
|
9325 |
-
// Extract error from statusText and normalize for non-aborts
|
9326 |
-
error = statusText;
|
9327 |
-
if ( status || !statusText ) {
|
9328 |
-
statusText = "error";
|
9329 |
-
if ( status < 0 ) {
|
9330 |
-
status = 0;
|
9331 |
-
}
|
9332 |
-
}
|
9333 |
-
}
|
9334 |
-
|
9335 |
-
// Set data for the fake xhr object
|
9336 |
-
jqXHR.status = status;
|
9337 |
-
jqXHR.statusText = ( nativeStatusText || statusText ) + "";
|
9338 |
-
|
9339 |
-
// Success/Error
|
9340 |
-
if ( isSuccess ) {
|
9341 |
-
deferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] );
|
9342 |
-
} else {
|
9343 |
-
deferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] );
|
9344 |
-
}
|
9345 |
-
|
9346 |
-
// Status-dependent callbacks
|
9347 |
-
jqXHR.statusCode( statusCode );
|
9348 |
-
statusCode = undefined;
|
9349 |
-
|
9350 |
-
if ( fireGlobals ) {
|
9351 |
-
globalEventContext.trigger( isSuccess ? "ajaxSuccess" : "ajaxError",
|
9352 |
-
[ jqXHR, s, isSuccess ? success : error ] );
|
9353 |
-
}
|
9354 |
-
|
9355 |
-
// Complete
|
9356 |
-
completeDeferred.fireWith( callbackContext, [ jqXHR, statusText ] );
|
9357 |
-
|
9358 |
-
if ( fireGlobals ) {
|
9359 |
-
globalEventContext.trigger( "ajaxComplete", [ jqXHR, s ] );
|
9360 |
-
|
9361 |
-
// Handle the global AJAX counter
|
9362 |
-
if ( !( --jQuery.active ) ) {
|
9363 |
-
jQuery.event.trigger( "ajaxStop" );
|
9364 |
-
}
|
9365 |
-
}
|
9366 |
-
}
|
9367 |
-
|
9368 |
-
return jqXHR;
|
9369 |
-
},
|
9370 |
-
|
9371 |
-
getJSON: function( url, data, callback ) {
|
9372 |
-
return jQuery.get( url, data, callback, "json" );
|
9373 |
-
},
|
9374 |
-
|
9375 |
-
getScript: function( url, callback ) {
|
9376 |
-
return jQuery.get( url, undefined, callback, "script" );
|
9377 |
-
}
|
9378 |
-
} );
|
9379 |
-
|
9380 |
-
jQuery.each( [ "get", "post" ], function( i, method ) {
|
9381 |
-
jQuery[ method ] = function( url, data, callback, type ) {
|
9382 |
-
|
9383 |
-
// Shift arguments if data argument was omitted
|
9384 |
-
if ( jQuery.isFunction( data ) ) {
|
9385 |
-
type = type || callback;
|
9386 |
-
callback = data;
|
9387 |
-
data = undefined;
|
9388 |
-
}
|
9389 |
-
|
9390 |
-
// The url can be an options object (which then must have .url)
|
9391 |
-
return jQuery.ajax( jQuery.extend( {
|
9392 |
-
url: url,
|
9393 |
-
type: method,
|
9394 |
-
dataType: type,
|
9395 |
-
data: data,
|
9396 |
-
success: callback
|
9397 |
-
}, jQuery.isPlainObject( url ) && url ) );
|
9398 |
-
};
|
9399 |
-
} );
|
9400 |
-
|
9401 |
-
|
9402 |
-
jQuery._evalUrl = function( url ) {
|
9403 |
-
return jQuery.ajax( {
|
9404 |
-
url: url,
|
9405 |
-
|
9406 |
-
// Make this explicit, since user can override this through ajaxSetup (#11264)
|
9407 |
-
type: "GET",
|
9408 |
-
dataType: "script",
|
9409 |
-
cache: true,
|
9410 |
-
async: false,
|
9411 |
-
global: false,
|
9412 |
-
"throws": true
|
9413 |
-
} );
|
9414 |
-
};
|
9415 |
-
|
9416 |
-
|
9417 |
-
jQuery.fn.extend( {
|
9418 |
-
wrapAll: function( html ) {
|
9419 |
-
var wrap;
|
9420 |
-
|
9421 |
-
if ( this[ 0 ] ) {
|
9422 |
-
if ( jQuery.isFunction( html ) ) {
|
9423 |
-
html = html.call( this[ 0 ] );
|
9424 |
-
}
|
9425 |
-
|
9426 |
-
// The elements to wrap the target around
|
9427 |
-
wrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true );
|
9428 |
-
|
9429 |
-
if ( this[ 0 ].parentNode ) {
|
9430 |
-
wrap.insertBefore( this[ 0 ] );
|
9431 |
-
}
|
9432 |
-
|
9433 |
-
wrap.map( function() {
|
9434 |
-
var elem = this;
|
9435 |
-
|
9436 |
-
while ( elem.firstElementChild ) {
|
9437 |
-
elem = elem.firstElementChild;
|
9438 |
-
}
|
9439 |
-
|
9440 |
-
return elem;
|
9441 |
-
} ).append( this );
|
9442 |
-
}
|
9443 |
-
|
9444 |
-
return this;
|
9445 |
-
},
|
9446 |
-
|
9447 |
-
wrapInner: function( html ) {
|
9448 |
-
if ( jQuery.isFunction( html ) ) {
|
9449 |
-
return this.each( function( i ) {
|
9450 |
-
jQuery( this ).wrapInner( html.call( this, i ) );
|
9451 |
-
} );
|
9452 |
-
}
|
9453 |
-
|
9454 |
-
return this.each( function() {
|
9455 |
-
var self = jQuery( this ),
|
9456 |
-
contents = self.contents();
|
9457 |
-
|
9458 |
-
if ( contents.length ) {
|
9459 |
-
contents.wrapAll( html );
|
9460 |
-
|
9461 |
-
} else {
|
9462 |
-
self.append( html );
|
9463 |
-
}
|
9464 |
-
} );
|
9465 |
-
},
|
9466 |
-
|
9467 |
-
wrap: function( html ) {
|
9468 |
-
var isFunction = jQuery.isFunction( html );
|
9469 |
-
|
9470 |
-
return this.each( function( i ) {
|
9471 |
-
jQuery( this ).wrapAll( isFunction ? html.call( this, i ) : html );
|
9472 |
-
} );
|
9473 |
-
},
|
9474 |
-
|
9475 |
-
unwrap: function( selector ) {
|
9476 |
-
this.parent( selector ).not( "body" ).each( function() {
|
9477 |
-
jQuery( this ).replaceWith( this.childNodes );
|
9478 |
-
} );
|
9479 |
-
return this;
|
9480 |
-
}
|
9481 |
-
} );
|
9482 |
-
|
9483 |
-
|
9484 |
-
jQuery.expr.pseudos.hidden = function( elem ) {
|
9485 |
-
return !jQuery.expr.pseudos.visible( elem );
|
9486 |
-
};
|
9487 |
-
jQuery.expr.pseudos.visible = function( elem ) {
|
9488 |
-
return !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length );
|
9489 |
-
};
|
9490 |
-
|
9491 |
-
|
9492 |
-
|
9493 |
-
|
9494 |
-
jQuery.ajaxSettings.xhr = function() {
|
9495 |
-
try {
|
9496 |
-
return new window.XMLHttpRequest();
|
9497 |
-
} catch ( e ) {}
|
9498 |
-
};
|
9499 |
-
|
9500 |
-
var xhrSuccessStatus = {
|
9501 |
-
|
9502 |
-
// File protocol always yields status code 0, assume 200
|
9503 |
-
0: 200,
|
9504 |
-
|
9505 |
-
// Support: IE <=9 only
|
9506 |
-
// #1450: sometimes IE returns 1223 when it should be 204
|
9507 |
-
1223: 204
|
9508 |
-
},
|
9509 |
-
xhrSupported = jQuery.ajaxSettings.xhr();
|
9510 |
-
|
9511 |
-
support.cors = !!xhrSupported && ( "withCredentials" in xhrSupported );
|
9512 |
-
support.ajax = xhrSupported = !!xhrSupported;
|
9513 |
-
|
9514 |
-
jQuery.ajaxTransport( function( options ) {
|
9515 |
-
var callback, errorCallback;
|
9516 |
-
|
9517 |
-
// Cross domain only allowed if supported through XMLHttpRequest
|
9518 |
-
if ( support.cors || xhrSupported && !options.crossDomain ) {
|
9519 |
-
return {
|
9520 |
-
send: function( headers, complete ) {
|
9521 |
-
var i,
|
9522 |
-
xhr = options.xhr();
|
9523 |
-
|
9524 |
-
xhr.open(
|
9525 |
-
options.type,
|
9526 |
-
options.url,
|
9527 |
-
options.async,
|
9528 |
-
options.username,
|
9529 |
-
options.password
|
9530 |
-
);
|
9531 |
-
|
9532 |
-
// Apply custom fields if provided
|
9533 |
-
if ( options.xhrFields ) {
|
9534 |
-
for ( i in options.xhrFields ) {
|
9535 |
-
xhr[ i ] = options.xhrFields[ i ];
|
9536 |
-
}
|
9537 |
-
}
|
9538 |
-
|
9539 |
-
// Override mime type if needed
|
9540 |
-
if ( options.mimeType && xhr.overrideMimeType ) {
|
9541 |
-
xhr.overrideMimeType( options.mimeType );
|
9542 |
-
}
|
9543 |
-
|
9544 |
-
// X-Requested-With header
|
9545 |
-
// For cross-domain requests, seeing as conditions for a preflight are
|
9546 |
-
// akin to a jigsaw puzzle, we simply never set it to be sure.
|
9547 |
-
// (it can always be set on a per-request basis or even using ajaxSetup)
|
9548 |
-
// For same-domain requests, won't change header if already provided.
|
9549 |
-
if ( !options.crossDomain && !headers[ "X-Requested-With" ] ) {
|
9550 |
-
headers[ "X-Requested-With" ] = "XMLHttpRequest";
|
9551 |
-
}
|
9552 |
-
|
9553 |
-
// Set headers
|
9554 |
-
for ( i in headers ) {
|
9555 |
-
xhr.setRequestHeader( i, headers[ i ] );
|
9556 |
-
}
|
9557 |
-
|
9558 |
-
// Callback
|
9559 |
-
callback = function( type ) {
|
9560 |
-
return function() {
|
9561 |
-
if ( callback ) {
|
9562 |
-
callback = errorCallback = xhr.onload =
|
9563 |
-
xhr.onerror = xhr.onabort = xhr.onreadystatechange = null;
|
9564 |
-
|
9565 |
-
if ( type === "abort" ) {
|
9566 |
-
xhr.abort();
|
9567 |
-
} else if ( type === "error" ) {
|
9568 |
-
|
9569 |
-
// Support: IE <=9 only
|
9570 |
-
// On a manual native abort, IE9 throws
|
9571 |
-
// errors on any property access that is not readyState
|
9572 |
-
if ( typeof xhr.status !== "number" ) {
|
9573 |
-
complete( 0, "error" );
|
9574 |
-
} else {
|
9575 |
-
complete(
|
9576 |
-
|
9577 |
-
// File: protocol always yields status 0; see #8605, #14207
|
9578 |
-
xhr.status,
|
9579 |
-
xhr.statusText
|
9580 |
-
);
|
9581 |
-
}
|
9582 |
-
} else {
|
9583 |
-
complete(
|
9584 |
-
xhrSuccessStatus[ xhr.status ] || xhr.status,
|
9585 |
-
xhr.statusText,
|
9586 |
-
|
9587 |
-
// Support: IE <=9 only
|
9588 |
-
// IE9 has no XHR2 but throws on binary (trac-11426)
|
9589 |
-
// For XHR2 non-text, let the caller handle it (gh-2498)
|
9590 |
-
( xhr.responseType || "text" ) !== "text" ||
|
9591 |
-
typeof xhr.responseText !== "string" ?
|
9592 |
-
{ binary: xhr.response } :
|
9593 |
-
{ text: xhr.responseText },
|
9594 |
-
xhr.getAllResponseHeaders()
|
9595 |
-
);
|
9596 |
-
}
|
9597 |
-
}
|
9598 |
-
};
|
9599 |
-
};
|
9600 |
-
|
9601 |
-
// Listen to events
|
9602 |
-
xhr.onload = callback();
|
9603 |
-
errorCallback = xhr.onerror = callback( "error" );
|
9604 |
-
|
9605 |
-
// Support: IE 9 only
|
9606 |
-
// Use onreadystatechange to replace onabort
|
9607 |
-
// to handle uncaught aborts
|
9608 |
-
if ( xhr.onabort !== undefined ) {
|
9609 |
-
xhr.onabort = errorCallback;
|
9610 |
-
} else {
|
9611 |
-
xhr.onreadystatechange = function() {
|
9612 |
-
|
9613 |
-
// Check readyState before timeout as it changes
|
9614 |
-
if ( xhr.readyState === 4 ) {
|
9615 |
-
|
9616 |
-
// Allow onerror to be called first,
|
9617 |
-
// but that will not handle a native abort
|
9618 |
-
// Also, save errorCallback to a variable
|
9619 |
-
// as xhr.onerror cannot be accessed
|
9620 |
-
window.setTimeout( function() {
|
9621 |
-
if ( callback ) {
|
9622 |
-
errorCallback();
|
9623 |
-
}
|
9624 |
-
} );
|
9625 |
-
}
|
9626 |
-
};
|
9627 |
-
}
|
9628 |
-
|
9629 |
-
// Create the abort callback
|
9630 |
-
callback = callback( "abort" );
|
9631 |
-
|
9632 |
-
try {
|
9633 |
-
|
9634 |
-
// Do send the request (this may raise an exception)
|
9635 |
-
xhr.send( options.hasContent && options.data || null );
|
9636 |
-
} catch ( e ) {
|
9637 |
-
|
9638 |
-
// #14683: Only rethrow if this hasn't been notified as an error yet
|
9639 |
-
if ( callback ) {
|
9640 |
-
throw e;
|
9641 |
-
}
|
9642 |
-
}
|
9643 |
-
},
|
9644 |
-
|
9645 |
-
abort: function() {
|
9646 |
-
if ( callback ) {
|
9647 |
-
callback();
|
9648 |
-
}
|
9649 |
-
}
|
9650 |
-
};
|
9651 |
-
}
|
9652 |
-
} );
|
9653 |
-
|
9654 |
-
|
9655 |
-
|
9656 |
-
|
9657 |
-
// Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432)
|
9658 |
-
jQuery.ajaxPrefilter( function( s ) {
|
9659 |
-
if ( s.crossDomain ) {
|
9660 |
-
s.contents.script = false;
|
9661 |
-
}
|
9662 |
-
} );
|
9663 |
-
|
9664 |
-
// Install script dataType
|
9665 |
-
jQuery.ajaxSetup( {
|
9666 |
-
accepts: {
|
9667 |
-
script: "text/javascript, application/javascript, " +
|
9668 |
-
"application/ecmascript, application/x-ecmascript"
|
9669 |
-
},
|
9670 |
-
contents: {
|
9671 |
-
script: /\b(?:java|ecma)script\b/
|
9672 |
-
},
|
9673 |
-
converters: {
|
9674 |
-
"text script": function( text ) {
|
9675 |
-
jQuery.globalEval( text );
|
9676 |
-
return text;
|
9677 |
-
}
|
9678 |
-
}
|
9679 |
-
} );
|
9680 |
-
|
9681 |
-
// Handle cache's special case and crossDomain
|
9682 |
-
jQuery.ajaxPrefilter( "script", function( s ) {
|
9683 |
-
if ( s.cache === undefined ) {
|
9684 |
-
s.cache = false;
|
9685 |
-
}
|
9686 |
-
if ( s.crossDomain ) {
|
9687 |
-
s.type = "GET";
|
9688 |
-
}
|
9689 |
-
} );
|
9690 |
-
|
9691 |
-
// Bind script tag hack transport
|
9692 |
-
jQuery.ajaxTransport( "script", function( s ) {
|
9693 |
-
|
9694 |
-
// This transport only deals with cross domain requests
|
9695 |
-
if ( s.crossDomain ) {
|
9696 |
-
var script, callback;
|
9697 |
-
return {
|
9698 |
-
send: function( _, complete ) {
|
9699 |
-
script = jQuery( "<script>" ).prop( {
|
9700 |
-
charset: s.scriptCharset,
|
9701 |
-
src: s.url
|
9702 |
-
} ).on(
|
9703 |
-
"load error",
|
9704 |
-
callback = function( evt ) {
|
9705 |
-
script.remove();
|
9706 |
-
callback = null;
|
9707 |
-
if ( evt ) {
|
9708 |
-
complete( evt.type === "error" ? 404 : 200, evt.type );
|
9709 |
-
}
|
9710 |
-
}
|
9711 |
-
);
|
9712 |
-
|
9713 |
-
// Use native DOM manipulation to avoid our domManip AJAX trickery
|
9714 |
-
document.head.appendChild( script[ 0 ] );
|
9715 |
-
},
|
9716 |
-
abort: function() {
|
9717 |
-
if ( callback ) {
|
9718 |
-
callback();
|
9719 |
-
}
|
9720 |
-
}
|
9721 |
-
};
|
9722 |
-
}
|
9723 |
-
} );
|
9724 |
-
|
9725 |
-
|
9726 |
-
|
9727 |
-
|
9728 |
-
var oldCallbacks = [],
|
9729 |
-
rjsonp = /(=)\?(?=&|$)|\?\?/;
|
9730 |
-
|
9731 |
-
// Default jsonp settings
|
9732 |
-
jQuery.ajaxSetup( {
|
9733 |
-
jsonp: "callback",
|
9734 |
-
jsonpCallback: function() {
|
9735 |
-
var callback = oldCallbacks.pop() || ( jQuery.expando + "_" + ( nonce++ ) );
|
9736 |
-
this[ callback ] = true;
|
9737 |
-
return callback;
|
9738 |
-
}
|
9739 |
-
} );
|
9740 |
-
|
9741 |
-
// Detect, normalize options and install callbacks for jsonp requests
|
9742 |
-
jQuery.ajaxPrefilter( "json jsonp", function( s, originalSettings, jqXHR ) {
|
9743 |
-
|
9744 |
-
var callbackName, overwritten, responseContainer,
|
9745 |
-
jsonProp = s.jsonp !== false && ( rjsonp.test( s.url ) ?
|
9746 |
-
"url" :
|
9747 |
-
typeof s.data === "string" &&
|
9748 |
-
( s.contentType || "" )
|
9749 |
-
.indexOf( "application/x-www-form-urlencoded" ) === 0 &&
|
9750 |
-
rjsonp.test( s.data ) && "data"
|
9751 |
-
);
|
9752 |
-
|
9753 |
-
// Handle iff the expected data type is "jsonp" or we have a parameter to set
|
9754 |
-
if ( jsonProp || s.dataTypes[ 0 ] === "jsonp" ) {
|
9755 |
-
|
9756 |
-
// Get callback name, remembering preexisting value associated with it
|
9757 |
-
callbackName = s.jsonpCallback = jQuery.isFunction( s.jsonpCallback ) ?
|
9758 |
-
s.jsonpCallback() :
|
9759 |
-
s.jsonpCallback;
|
9760 |
-
|
9761 |
-
// Insert callback into url or form data
|
9762 |
-
if ( jsonProp ) {
|
9763 |
-
s[ jsonProp ] = s[ jsonProp ].replace( rjsonp, "$1" + callbackName );
|
9764 |
-
} else if ( s.jsonp !== false ) {
|
9765 |
-
s.url += ( rquery.test( s.url ) ? "&" : "?" ) + s.jsonp + "=" + callbackName;
|
9766 |
-
}
|
9767 |
-
|
9768 |
-
// Use data converter to retrieve json after script execution
|
9769 |
-
s.converters[ "script json" ] = function() {
|
9770 |
-
if ( !responseContainer ) {
|
9771 |
-
jQuery.error( callbackName + " was not called" );
|
9772 |
-
}
|
9773 |
-
return responseContainer[ 0 ];
|
9774 |
-
};
|
9775 |
-
|
9776 |
-
// Force json dataType
|
9777 |
-
s.dataTypes[ 0 ] = "json";
|
9778 |
-
|
9779 |
-
// Install callback
|
9780 |
-
overwritten = window[ callbackName ];
|
9781 |
-
window[ callbackName ] = function() {
|
9782 |
-
responseContainer = arguments;
|
9783 |
-
};
|
9784 |
-
|
9785 |
-
// Clean-up function (fires after converters)
|
9786 |
-
jqXHR.always( function() {
|
9787 |
-
|
9788 |
-
// If previous value didn't exist - remove it
|
9789 |
-
if ( overwritten === undefined ) {
|
9790 |
-
jQuery( window ).removeProp( callbackName );
|
9791 |
-
|
9792 |
-
// Otherwise restore preexisting value
|
9793 |
-
} else {
|
9794 |
-
window[ callbackName ] = overwritten;
|
9795 |
-
}
|
9796 |
-
|
9797 |
-
// Save back as free
|
9798 |
-
if ( s[ callbackName ] ) {
|
9799 |
-
|
9800 |
-
// Make sure that re-using the options doesn't screw things around
|
9801 |
-
s.jsonpCallback = originalSettings.jsonpCallback;
|
9802 |
-
|
9803 |
-
// Save the callback name for future use
|
9804 |
-
oldCallbacks.push( callbackName );
|
9805 |
-
}
|
9806 |
-
|
9807 |
-
// Call if it was a function and we have a response
|
9808 |
-
if ( responseContainer && jQuery.isFunction( overwritten ) ) {
|
9809 |
-
overwritten( responseContainer[ 0 ] );
|
9810 |
-
}
|
9811 |
-
|
9812 |
-
responseContainer = overwritten = undefined;
|
9813 |
-
} );
|
9814 |
-
|
9815 |
-
// Delegate to script
|
9816 |
-
return "script";
|
9817 |
-
}
|
9818 |
-
} );
|
9819 |
-
|
9820 |
-
|
9821 |
-
|
9822 |
-
|
9823 |
-
// Support: Safari 8 only
|
9824 |
-
// In Safari 8 documents created via document.implementation.createHTMLDocument
|
9825 |
-
// collapse sibling forms: the second one becomes a child of the first one.
|
9826 |
-
// Because of that, this security measure has to be disabled in Safari 8.
|
9827 |
-
// https://bugs.webkit.org/show_bug.cgi?id=137337
|
9828 |
-
support.createHTMLDocument = ( function() {
|
9829 |
-
var body = document.implementation.createHTMLDocument( "" ).body;
|
9830 |
-
body.innerHTML = "<form></form><form></form>";
|
9831 |
-
return body.childNodes.length === 2;
|
9832 |
-
} )();
|
9833 |
-
|
9834 |
-
|
9835 |
-
// Argument "data" should be string of html
|
9836 |
-
// context (optional): If specified, the fragment will be created in this context,
|
9837 |
-
// defaults to document
|
9838 |
-
// keepScripts (optional): If true, will include scripts passed in the html string
|
9839 |
-
jQuery.parseHTML = function( data, context, keepScripts ) {
|
9840 |
-
if ( typeof data !== "string" ) {
|
9841 |
-
return [];
|
9842 |
-
}
|
9843 |
-
if ( typeof context === "boolean" ) {
|
9844 |
-
keepScripts = context;
|
9845 |
-
context = false;
|
9846 |
-
}
|
9847 |
-
|
9848 |
-
var base, parsed, scripts;
|
9849 |
-
|
9850 |
-
if ( !context ) {
|
9851 |
-
|
9852 |
-
// Stop scripts or inline event handlers from being executed immediately
|
9853 |
-
// by using document.implementation
|
9854 |
-
if ( support.createHTMLDocument ) {
|
9855 |
-
context = document.implementation.createHTMLDocument( "" );
|
9856 |
-
|
9857 |
-
// Set the base href for the created document
|
9858 |
-
// so any parsed elements with URLs
|
9859 |
-
// are based on the document's URL (gh-2965)
|
9860 |
-
base = context.createElement( "base" );
|
9861 |
-
base.href = document.location.href;
|
9862 |
-
context.head.appendChild( base );
|
9863 |
-
} else {
|
9864 |
-
context = document;
|
9865 |
-
}
|
9866 |
-
}
|
9867 |
-
|
9868 |
-
parsed = rsingleTag.exec( data );
|
9869 |
-
scripts = !keepScripts && [];
|
9870 |
-
|
9871 |
-
// Single tag
|
9872 |
-
if ( parsed ) {
|
9873 |
-
return [ context.createElement( parsed[ 1 ] ) ];
|
9874 |
-
}
|
9875 |
-
|
9876 |
-
parsed = buildFragment( [ data ], context, scripts );
|
9877 |
-
|
9878 |
-
if ( scripts && scripts.length ) {
|
9879 |
-
jQuery( scripts ).remove();
|
9880 |
-
}
|
9881 |
-
|
9882 |
-
return jQuery.merge( [], parsed.childNodes );
|
9883 |
-
};
|
9884 |
-
|
9885 |
-
|
9886 |
-
/**
|
9887 |
-
* Load a url into a page
|
9888 |
-
*/
|
9889 |
-
jQuery.fn.load = function( url, params, callback ) {
|
9890 |
-
var selector, type, response,
|
9891 |
-
self = this,
|
9892 |
-
off = url.indexOf( " " );
|
9893 |
-
|
9894 |
-
if ( off > -1 ) {
|
9895 |
-
selector = stripAndCollapse( url.slice( off ) );
|
9896 |
-
url = url.slice( 0, off );
|
9897 |
-
}
|
9898 |
-
|
9899 |
-
// If it's a function
|
9900 |
-
if ( jQuery.isFunction( params ) ) {
|
9901 |
-
|
9902 |
-
// We assume that it's the callback
|
9903 |
-
callback = params;
|
9904 |
-
params = undefined;
|
9905 |
-
|
9906 |
-
// Otherwise, build a param string
|
9907 |
-
} else if ( params && typeof params === "object" ) {
|
9908 |
-
type = "POST";
|
9909 |
-
}
|
9910 |
-
|
9911 |
-
// If we have elements to modify, make the request
|
9912 |
-
if ( self.length > 0 ) {
|
9913 |
-
jQuery.ajax( {
|
9914 |
-
url: url,
|
9915 |
-
|
9916 |
-
// If "type" variable is undefined, then "GET" method will be used.
|
9917 |
-
// Make value of this field explicit since
|
9918 |
-
// user can override it through ajaxSetup method
|
9919 |
-
type: type || "GET",
|
9920 |
-
dataType: "html",
|
9921 |
-
data: params
|
9922 |
-
} ).done( function( responseText ) {
|
9923 |
-
|
9924 |
-
// Save response for use in complete callback
|
9925 |
-
response = arguments;
|
9926 |
-
|
9927 |
-
self.html( selector ?
|
9928 |
-
|
9929 |
-
// If a selector was specified, locate the right elements in a dummy div
|
9930 |
-
// Exclude scripts to avoid IE 'Permission Denied' errors
|
9931 |
-
jQuery( "<div>" ).append( jQuery.parseHTML( responseText ) ).find( selector ) :
|
9932 |
-
|
9933 |
-
// Otherwise use the full result
|
9934 |
-
responseText );
|
9935 |
-
|
9936 |
-
// If the request succeeds, this function gets "data", "status", "jqXHR"
|
9937 |
-
// but they are ignored because response was set above.
|
9938 |
-
// If it fails, this function gets "jqXHR", "status", "error"
|
9939 |
-
} ).always( callback && function( jqXHR, status ) {
|
9940 |
-
self.each( function() {
|
9941 |
-
callback.apply( this, response || [ jqXHR.responseText, status, jqXHR ] );
|
9942 |
-
} );
|
9943 |
-
} );
|
9944 |
-
}
|
9945 |
-
|
9946 |
-
return this;
|
9947 |
-
};
|
9948 |
-
|
9949 |
-
|
9950 |
-
|
9951 |
-
|
9952 |
-
// Attach a bunch of functions for handling common AJAX events
|
9953 |
-
jQuery.each( [
|
9954 |
-
"ajaxStart",
|
9955 |
-
"ajaxStop",
|
9956 |
-
"ajaxComplete",
|
9957 |
-
"ajaxError",
|
9958 |
-
"ajaxSuccess",
|
9959 |
-
"ajaxSend"
|
9960 |
-
], function( i, type ) {
|
9961 |
-
jQuery.fn[ type ] = function( fn ) {
|
9962 |
-
return this.on( type, fn );
|
9963 |
-
};
|
9964 |
-
} );
|
9965 |
-
|
9966 |
-
|
9967 |
-
|
9968 |
-
|
9969 |
-
jQuery.expr.pseudos.animated = function( elem ) {
|
9970 |
-
return jQuery.grep( jQuery.timers, function( fn ) {
|
9971 |
-
return elem === fn.elem;
|
9972 |
-
} ).length;
|
9973 |
-
};
|
9974 |
-
|
9975 |
-
|
9976 |
-
|
9977 |
-
|
9978 |
-
jQuery.offset = {
|
9979 |
-
setOffset: function( elem, options, i ) {
|
9980 |
-
var curPosition, curLeft, curCSSTop, curTop, curOffset, curCSSLeft, calculatePosition,
|
9981 |
-
position = jQuery.css( elem, "position" ),
|
9982 |
-
curElem = jQuery( elem ),
|
9983 |
-
props = {};
|
9984 |
-
|
9985 |
-
// Set position first, in-case top/left are set even on static elem
|
9986 |
-
if ( position === "static" ) {
|
9987 |
-
elem.style.position = "relative";
|
9988 |
-
}
|
9989 |
-
|
9990 |
-
curOffset = curElem.offset();
|
9991 |
-
curCSSTop = jQuery.css( elem, "top" );
|
9992 |
-
curCSSLeft = jQuery.css( elem, "left" );
|
9993 |
-
calculatePosition = ( position === "absolute" || position === "fixed" ) &&
|
9994 |
-
( curCSSTop + curCSSLeft ).indexOf( "auto" ) > -1;
|
9995 |
-
|
9996 |
-
// Need to be able to calculate position if either
|
9997 |
-
// top or left is auto and position is either absolute or fixed
|
9998 |
-
if ( calculatePosition ) {
|
9999 |
-
curPosition = curElem.position();
|
10000 |
-
curTop = curPosition.top;
|
10001 |
-
curLeft = curPosition.left;
|
10002 |
-
|
10003 |
-
} else {
|
10004 |
-
curTop = parseFloat( curCSSTop ) || 0;
|
10005 |
-
curLeft = parseFloat( curCSSLeft ) || 0;
|
10006 |
-
}
|
10007 |
-
|
10008 |
-
if ( jQuery.isFunction( options ) ) {
|
10009 |
-
|
10010 |
-
// Use jQuery.extend here to allow modification of coordinates argument (gh-1848)
|
10011 |
-
options = options.call( elem, i, jQuery.extend( {}, curOffset ) );
|
10012 |
-
}
|
10013 |
-
|
10014 |
-
if ( options.top != null ) {
|
10015 |
-
props.top = ( options.top - curOffset.top ) + curTop;
|
10016 |
-
}
|
10017 |
-
if ( options.left != null ) {
|
10018 |
-
props.left = ( options.left - curOffset.left ) + curLeft;
|
10019 |
-
}
|
10020 |
-
|
10021 |
-
if ( "using" in options ) {
|
10022 |
-
options.using.call( elem, props );
|
10023 |
-
|
10024 |
-
} else {
|
10025 |
-
curElem.css( props );
|
10026 |
-
}
|
10027 |
-
}
|
10028 |
-
};
|
10029 |
-
|
10030 |
-
jQuery.fn.extend( {
|
10031 |
-
offset: function( options ) {
|
10032 |
-
|
10033 |
-
// Preserve chaining for setter
|
10034 |
-
if ( arguments.length ) {
|
10035 |
-
return options === undefined ?
|
10036 |
-
this :
|
10037 |
-
this.each( function( i ) {
|
10038 |
-
jQuery.offset.setOffset( this, options, i );
|
10039 |
-
} );
|
10040 |
-
}
|
10041 |
-
|
10042 |
-
var doc, docElem, rect, win,
|
10043 |
-
elem = this[ 0 ];
|
10044 |
-
|
10045 |
-
if ( !elem ) {
|
10046 |
-
return;
|
10047 |
-
}
|
10048 |
-
|
10049 |
-
// Return zeros for disconnected and hidden (display: none) elements (gh-2310)
|
10050 |
-
// Support: IE <=11 only
|
10051 |
-
// Running getBoundingClientRect on a
|
10052 |
-
// disconnected node in IE throws an error
|
10053 |
-
if ( !elem.getClientRects().length ) {
|
10054 |
-
return { top: 0, left: 0 };
|
10055 |
-
}
|
10056 |
-
|
10057 |
-
rect = elem.getBoundingClientRect();
|
10058 |
-
|
10059 |
-
doc = elem.ownerDocument;
|
10060 |
-
docElem = doc.documentElement;
|
10061 |
-
win = doc.defaultView;
|
10062 |
-
|
10063 |
-
return {
|
10064 |
-
top: rect.top + win.pageYOffset - docElem.clientTop,
|
10065 |
-
left: rect.left + win.pageXOffset - docElem.clientLeft
|
10066 |
-
};
|
10067 |
-
},
|
10068 |
-
|
10069 |
-
position: function() {
|
10070 |
-
if ( !this[ 0 ] ) {
|
10071 |
-
return;
|
10072 |
-
}
|
10073 |
-
|
10074 |
-
var offsetParent, offset,
|
10075 |
-
elem = this[ 0 ],
|
10076 |
-
parentOffset = { top: 0, left: 0 };
|
10077 |
-
|
10078 |
-
// Fixed elements are offset from window (parentOffset = {top:0, left: 0},
|
10079 |
-
// because it is its only offset parent
|
10080 |
-
if ( jQuery.css( elem, "position" ) === "fixed" ) {
|
10081 |
-
|
10082 |
-
// Assume getBoundingClientRect is there when computed position is fixed
|
10083 |
-
offset = elem.getBoundingClientRect();
|
10084 |
-
|
10085 |
-
} else {
|
10086 |
-
|
10087 |
-
// Get *real* offsetParent
|
10088 |
-
offsetParent = this.offsetParent();
|
10089 |
-
|
10090 |
-
// Get correct offsets
|
10091 |
-
offset = this.offset();
|
10092 |
-
if ( !nodeName( offsetParent[ 0 ], "html" ) ) {
|
10093 |
-
parentOffset = offsetParent.offset();
|
10094 |
-
}
|
10095 |
-
|
10096 |
-
// Add offsetParent borders
|
10097 |
-
parentOffset = {
|
10098 |
-
top: parentOffset.top + jQuery.css( offsetParent[ 0 ], "borderTopWidth", true ),
|
10099 |
-
left: parentOffset.left + jQuery.css( offsetParent[ 0 ], "borderLeftWidth", true )
|
10100 |
-
};
|
10101 |
-
}
|
10102 |
-
|
10103 |
-
// Subtract parent offsets and element margins
|
10104 |
-
return {
|
10105 |
-
top: offset.top - parentOffset.top - jQuery.css( elem, "marginTop", true ),
|
10106 |
-
left: offset.left - parentOffset.left - jQuery.css( elem, "marginLeft", true )
|
10107 |
-
};
|
10108 |
-
},
|
10109 |
-
|
10110 |
-
// This method will return documentElement in the following cases:
|
10111 |
-
// 1) For the element inside the iframe without offsetParent, this method will return
|
10112 |
-
// documentElement of the parent window
|
10113 |
-
// 2) For the hidden or detached element
|
10114 |
-
// 3) For body or html element, i.e. in case of the html node - it will return itself
|
10115 |
-
//
|
10116 |
-
// but those exceptions were never presented as a real life use-cases
|
10117 |
-
// and might be considered as more preferable results.
|
10118 |
-
//
|
10119 |
-
// This logic, however, is not guaranteed and can change at any point in the future
|
10120 |
-
offsetParent: function() {
|
10121 |
-
return this.map( function() {
|
10122 |
-
var offsetParent = this.offsetParent;
|
10123 |
-
|
10124 |
-
while ( offsetParent && jQuery.css( offsetParent, "position" ) === "static" ) {
|
10125 |
-
offsetParent = offsetParent.offsetParent;
|
10126 |
-
}
|
10127 |
-
|
10128 |
-
return offsetParent || documentElement;
|
10129 |
-
} );
|
10130 |
-
}
|
10131 |
-
} );
|
10132 |
-
|
10133 |
-
// Create scrollLeft and scrollTop methods
|
10134 |
-
jQuery.each( { scrollLeft: "pageXOffset", scrollTop: "pageYOffset" }, function( method, prop ) {
|
10135 |
-
var top = "pageYOffset" === prop;
|
10136 |
-
|
10137 |
-
jQuery.fn[ method ] = function( val ) {
|
10138 |
-
return access( this, function( elem, method, val ) {
|
10139 |
-
|
10140 |
-
// Coalesce documents and windows
|
10141 |
-
var win;
|
10142 |
-
if ( jQuery.isWindow( elem ) ) {
|
10143 |
-
win = elem;
|
10144 |
-
} else if ( elem.nodeType === 9 ) {
|
10145 |
-
win = elem.defaultView;
|
10146 |
-
}
|
10147 |
-
|
10148 |
-
if ( val === undefined ) {
|
10149 |
-
return win ? win[ prop ] : elem[ method ];
|
10150 |
-
}
|
10151 |
-
|
10152 |
-
if ( win ) {
|
10153 |
-
win.scrollTo(
|
10154 |
-
!top ? val : win.pageXOffset,
|
10155 |
-
top ? val : win.pageYOffset
|
10156 |
-
);
|
10157 |
-
|
10158 |
-
} else {
|
10159 |
-
elem[ method ] = val;
|
10160 |
-
}
|
10161 |
-
}, method, val, arguments.length );
|
10162 |
-
};
|
10163 |
-
} );
|
10164 |
-
|
10165 |
-
// Support: Safari <=7 - 9.1, Chrome <=37 - 49
|
10166 |
-
// Add the top/left cssHooks using jQuery.fn.position
|
10167 |
-
// Webkit bug: https://bugs.webkit.org/show_bug.cgi?id=29084
|
10168 |
-
// Blink bug: https://bugs.chromium.org/p/chromium/issues/detail?id=589347
|
10169 |
-
// getComputedStyle returns percent when specified for top/left/bottom/right;
|
10170 |
-
// rather than make the css module depend on the offset module, just check for it here
|
10171 |
-
jQuery.each( [ "top", "left" ], function( i, prop ) {
|
10172 |
-
jQuery.cssHooks[ prop ] = addGetHookIf( support.pixelPosition,
|
10173 |
-
function( elem, computed ) {
|
10174 |
-
if ( computed ) {
|
10175 |
-
computed = curCSS( elem, prop );
|
10176 |
-
|
10177 |
-
// If curCSS returns percentage, fallback to offset
|
10178 |
-
return rnumnonpx.test( computed ) ?
|
10179 |
-
jQuery( elem ).position()[ prop ] + "px" :
|
10180 |
-
computed;
|
10181 |
-
}
|
10182 |
-
}
|
10183 |
-
);
|
10184 |
-
} );
|
10185 |
-
|
10186 |
-
|
10187 |
-
// Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods
|
10188 |
-
jQuery.each( { Height: "height", Width: "width" }, function( name, type ) {
|
10189 |
-
jQuery.each( { padding: "inner" + name, content: type, "": "outer" + name },
|
10190 |
-
function( defaultExtra, funcName ) {
|
10191 |
-
|
10192 |
-
// Margin is only for outerHeight, outerWidth
|
10193 |
-
jQuery.fn[ funcName ] = function( margin, value ) {
|
10194 |
-
var chainable = arguments.length && ( defaultExtra || typeof margin !== "boolean" ),
|
10195 |
-
extra = defaultExtra || ( margin === true || value === true ? "margin" : "border" );
|
10196 |
-
|
10197 |
-
return access( this, function( elem, type, value ) {
|
10198 |
-
var doc;
|
10199 |
-
|
10200 |
-
if ( jQuery.isWindow( elem ) ) {
|
10201 |
-
|
10202 |
-
// $( window ).outerWidth/Height return w/h including scrollbars (gh-1729)
|
10203 |
-
return funcName.indexOf( "outer" ) === 0 ?
|
10204 |
-
elem[ "inner" + name ] :
|
10205 |
-
elem.document.documentElement[ "client" + name ];
|
10206 |
-
}
|
10207 |
-
|
10208 |
-
// Get document width or height
|
10209 |
-
if ( elem.nodeType === 9 ) {
|
10210 |
-
doc = elem.documentElement;
|
10211 |
-
|
10212 |
-
// Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height],
|
10213 |
-
// whichever is greatest
|
10214 |
-
return Math.max(
|
10215 |
-
elem.body[ "scroll" + name ], doc[ "scroll" + name ],
|
10216 |
-
elem.body[ "offset" + name ], doc[ "offset" + name ],
|
10217 |
-
doc[ "client" + name ]
|
10218 |
-
);
|
10219 |
-
}
|
10220 |
-
|
10221 |
-
return value === undefined ?
|
10222 |
-
|
10223 |
-
// Get width or height on the element, requesting but not forcing parseFloat
|
10224 |
-
jQuery.css( elem, type, extra ) :
|
10225 |
-
|
10226 |
-
// Set width or height on the element
|
10227 |
-
jQuery.style( elem, type, value, extra );
|
10228 |
-
}, type, chainable ? margin : undefined, chainable );
|
10229 |
-
};
|
10230 |
-
} );
|
10231 |
-
} );
|
10232 |
-
|
10233 |
-
|
10234 |
-
jQuery.fn.extend( {
|
10235 |
-
|
10236 |
-
bind: function( types, data, fn ) {
|
10237 |
-
return this.on( types, null, data, fn );
|
10238 |
-
},
|
10239 |
-
unbind: function( types, fn ) {
|
10240 |
-
return this.off( types, null, fn );
|
10241 |
-
},
|
10242 |
-
|
10243 |
-
delegate: function( selector, types, data, fn ) {
|
10244 |
-
return this.on( types, selector, data, fn );
|
10245 |
-
},
|
10246 |
-
undelegate: function( selector, types, fn ) {
|
10247 |
-
|
10248 |
-
// ( namespace ) or ( selector, types [, fn] )
|
10249 |
-
return arguments.length === 1 ?
|
10250 |
-
this.off( selector, "**" ) :
|
10251 |
-
this.off( types, selector || "**", fn );
|
10252 |
-
}
|
10253 |
-
} );
|
10254 |
-
|
10255 |
-
jQuery.holdReady = function( hold ) {
|
10256 |
-
if ( hold ) {
|
10257 |
-
jQuery.readyWait++;
|
10258 |
-
} else {
|
10259 |
-
jQuery.ready( true );
|
10260 |
-
}
|
10261 |
-
};
|
10262 |
-
jQuery.isArray = Array.isArray;
|
10263 |
-
jQuery.parseJSON = JSON.parse;
|
10264 |
-
jQuery.nodeName = nodeName;
|
10265 |
-
|
10266 |
-
|
10267 |
-
|
10268 |
-
|
10269 |
-
// Register as a named AMD module, since jQuery can be concatenated with other
|
10270 |
-
// files that may use define, but not via a proper concatenation script that
|
10271 |
-
// understands anonymous AMD modules. A named AMD is safest and most robust
|
10272 |
-
// way to register. Lowercase jquery is used because AMD module names are
|
10273 |
-
// derived from file names, and jQuery is normally delivered in a lowercase
|
10274 |
-
// file name. Do this after creating the global so that if an AMD module wants
|
10275 |
-
// to call noConflict to hide this version of jQuery, it will work.
|
10276 |
-
|
10277 |
-
// Note that for maximum portability, libraries that are not jQuery should
|
10278 |
-
// declare themselves as anonymous modules, and avoid setting a global if an
|
10279 |
-
// AMD loader is present. jQuery is a special case. For more information, see
|
10280 |
-
// https://github.com/jrburke/requirejs/wiki/Updating-existing-libraries#wiki-anon
|
10281 |
-
|
10282 |
-
if ( true ) {
|
10283 |
-
!(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = function() {
|
10284 |
-
return jQuery;
|
10285 |
-
}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
|
10286 |
-
__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
|
10287 |
-
}
|
10288 |
-
|
10289 |
-
|
10290 |
-
|
10291 |
-
|
10292 |
-
var
|
10293 |
-
|
10294 |
-
// Map over jQuery in case of overwrite
|
10295 |
-
_jQuery = window.jQuery,
|
10296 |
-
|
10297 |
-
// Map over the $ in case of overwrite
|
10298 |
-
_$ = window.$;
|
10299 |
-
|
10300 |
-
jQuery.noConflict = function( deep ) {
|
10301 |
-
if ( window.$ === jQuery ) {
|
10302 |
-
window.$ = _$;
|
10303 |
-
}
|
10304 |
-
|
10305 |
-
if ( deep && window.jQuery === jQuery ) {
|
10306 |
-
window.jQuery = _jQuery;
|
10307 |
-
}
|
10308 |
-
|
10309 |
-
return jQuery;
|
10310 |
-
};
|
10311 |
-
|
10312 |
-
// Expose jQuery and $ identifiers, even in AMD
|
10313 |
-
// (#7102#comment:10, https://github.com/jquery/jquery/pull/557)
|
10314 |
-
// and CommonJS for browser emulators (#13566)
|
10315 |
-
if ( !noGlobal ) {
|
10316 |
-
window.jQuery = window.$ = jQuery;
|
10317 |
-
}
|
10318 |
-
|
10319 |
-
|
10320 |
-
|
10321 |
-
|
10322 |
-
return jQuery;
|
10323 |
-
} );
|
10324 |
-
|
10325 |
-
|
10326 |
-
/***/ }),
|
10327 |
-
/* 1 */,
|
10328 |
-
/* 2 */,
|
10329 |
-
/* 3 */,
|
10330 |
-
/* 4 */,
|
10331 |
-
/* 5 */
|
10332 |
-
/***/ (function(module, exports, __webpack_require__) {
|
10333 |
-
|
10334 |
-
"use strict";
|
10335 |
-
|
10336 |
-
|
10337 |
-
__webpack_require__(6);
|
10338 |
-
|
10339 |
-
jQuery(document).ready(function ($) {
|
10340 |
-
|
10341 |
-
// var myOptions = {
|
10342 |
-
// // you can declare a default color here,
|
10343 |
-
// // or in the data-default-color attribute on the input
|
10344 |
-
// defaultColor: 'ddd',
|
10345 |
-
// // a callback to fire whenever the color changes to a valid color
|
10346 |
-
// change: function(event, ui){},
|
10347 |
-
// // a callback to fire when the input is emptied or an invalid color
|
10348 |
-
// clear: function() {},
|
10349 |
-
// // hide the color picker controls on load
|
10350 |
-
// hide: true,
|
10351 |
-
// // show a group of common colors beneath the square
|
10352 |
-
// // or, supply an array of colors to customize further
|
10353 |
-
// palettes: true
|
10354 |
-
// };
|
10355 |
-
$('.color-wp').wpColorPicker();
|
10356 |
-
// $('.color-wp').wpColorPicker(myOptions);
|
10357 |
-
|
10358 |
-
|
10359 |
-
// let s1_options = {
|
10360 |
-
// defaultColor: 'ddd',
|
10361 |
-
// hide: true,
|
10362 |
-
// palettes: true
|
10363 |
-
// }
|
10364 |
-
// $('.color-wp-s1').wpColorPicker(s1_options);
|
10365 |
-
|
10366 |
-
});
|
10367 |
-
|
10368 |
-
$(document).ready(function () {
|
10369 |
-
$('select').material_select();
|
10370 |
-
$('.collapsible').collapsible();
|
10371 |
-
|
10372 |
-
var position = document.querySelectorAll('.position');
|
10373 |
-
|
10374 |
-
var default_display = function default_display() {
|
10375 |
-
|
10376 |
-
var val = $('.select').find(":selected").val();
|
10377 |
-
|
10378 |
-
var position1 = document.querySelector('.position-1');
|
10379 |
-
var position2 = document.querySelector('.position-2');
|
10380 |
-
var position3 = document.querySelector('.position-3');
|
10381 |
-
var position4 = document.querySelector('.position-4');
|
10382 |
-
|
10383 |
-
if (val == '1') {
|
10384 |
-
position1.classList.add('display-block');
|
10385 |
-
} else if (val == '2') {
|
10386 |
-
position2.classList.add('display-block');
|
10387 |
-
} else if (val == '3') {
|
10388 |
-
position3.classList.add('display-block');
|
10389 |
-
} else if (val == '4') {
|
10390 |
-
position4.classList.add('display-block');
|
10391 |
-
}
|
10392 |
-
};
|
10393 |
-
|
10394 |
-
default_display();
|
10395 |
-
|
10396 |
-
// incase displya-block is added remove it ..
|
10397 |
-
var remove = function remove() {
|
10398 |
-
position.forEach(function (e) {
|
10399 |
-
e.classList.remove('display-block');
|
10400 |
-
});
|
10401 |
-
};
|
10402 |
-
|
10403 |
-
$(".select").on("change", function (e) {
|
10404 |
-
var x = e.target;
|
10405 |
-
var val = e.target.value;
|
10406 |
-
|
10407 |
-
var position1 = document.querySelector('.position-1');
|
10408 |
-
var position2 = document.querySelector('.position-2');
|
10409 |
-
var position3 = document.querySelector('.position-3');
|
10410 |
-
var position4 = document.querySelector('.position-4');
|
10411 |
-
|
10412 |
-
if (val == '1') {
|
10413 |
-
remove();
|
10414 |
-
position1.classList.add('display-block');
|
10415 |
-
} else if (val == '2') {
|
10416 |
-
remove();
|
10417 |
-
position2.classList.add('display-block');
|
10418 |
-
} else if (val == '3') {
|
10419 |
-
remove();
|
10420 |
-
position3.classList.add('display-block');
|
10421 |
-
} else if (val == '4') {
|
10422 |
-
remove();
|
10423 |
-
position4.classList.add('display-block');
|
10424 |
-
}
|
10425 |
-
});
|
10426 |
-
|
10427 |
-
// can impove this code -
|
10428 |
-
// https://stackoverflow.com/a/32631357/2591092
|
10429 |
-
// https://stackoverflow.com/questions/11208021/jquery-add-css-class-depending-on-selectbox-option
|
10430 |
-
});
|
10431 |
-
|
10432 |
-
/***/ }),
|
10433 |
-
/* 6 */
|
10434 |
-
/***/ (function(module, exports, __webpack_require__) {
|
10435 |
-
|
10436 |
-
var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;var __WEBPACK_AMD_DEFINE_RESULT__;var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!
|
10437 |
-
* Materialize v0.100.1 (http://materializecss.com)
|
10438 |
-
* Copyright 2014-2017 Materialize
|
10439 |
-
* MIT License (https://raw.githubusercontent.com/Dogfalo/materialize/master/LICENSE)
|
10440 |
-
*/
|
10441 |
-
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
|
10442 |
-
|
10443 |
-
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
10444 |
-
|
10445 |
-
// Check for jQuery.
|
10446 |
-
if (typeof jQuery === 'undefined') {
|
10447 |
-
var jQuery;
|
10448 |
-
// Check if require is a defined function.
|
10449 |
-
if (true) {
|
10450 |
-
jQuery = $ = __webpack_require__(0);
|
10451 |
-
// Else use the dollar sign alias.
|
10452 |
-
} else {
|
10453 |
-
jQuery = $;
|
10454 |
-
}
|
10455 |
-
}
|
10456 |
-
; /*
|
10457 |
-
* jQuery Easing v1.4.0 - http://gsgd.co.uk/sandbox/jquery/easing/
|
10458 |
-
* Open source under the BSD License.
|
10459 |
-
* Copyright © 2008 George McGinley Smith
|
10460 |
-
* All rights reserved.
|
10461 |
-
* https://raw.github.com/gdsmith/jquery-easing/master/LICENSE
|
10462 |
-
*/
|
10463 |
-
|
10464 |
-
(function (factory) {
|
10465 |
-
if (true) {
|
10466 |
-
!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(0)], __WEBPACK_AMD_DEFINE_RESULT__ = function ($) {
|
10467 |
-
return factory($);
|
10468 |
-
}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
|
10469 |
-
__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
|
10470 |
-
} else if (typeof module === "object" && typeof module.exports === "object") {
|
10471 |
-
exports = factory(require('jquery'));
|
10472 |
-
} else {
|
10473 |
-
factory(jQuery);
|
10474 |
-
}
|
10475 |
-
})(function ($) {
|
10476 |
-
|
10477 |
-
// Preserve the original jQuery "swing" easing as "jswing"
|
10478 |
-
$.easing['jswing'] = $.easing['swing'];
|
10479 |
-
|
10480 |
-
var pow = Math.pow,
|
10481 |
-
sqrt = Math.sqrt,
|
10482 |
-
sin = Math.sin,
|
10483 |
-
cos = Math.cos,
|
10484 |
-
PI = Math.PI,
|
10485 |
-
c1 = 1.70158,
|
10486 |
-
c2 = c1 * 1.525,
|
10487 |
-
c3 = c1 + 1,
|
10488 |
-
c4 = 2 * PI / 3,
|
10489 |
-
c5 = 2 * PI / 4.5;
|
10490 |
-
|
10491 |
-
// x is the fraction of animation progress, in the range 0..1
|
10492 |
-
function bounceOut(x) {
|
10493 |
-
var n1 = 7.5625,
|
10494 |
-
d1 = 2.75;
|
10495 |
-
if (x < 1 / d1) {
|
10496 |
-
return n1 * x * x;
|
10497 |
-
} else if (x < 2 / d1) {
|
10498 |
-
return n1 * (x -= 1.5 / d1) * x + .75;
|
10499 |
-
} else if (x < 2.5 / d1) {
|
10500 |
-
return n1 * (x -= 2.25 / d1) * x + .9375;
|
10501 |
-
} else {
|
10502 |
-
return n1 * (x -= 2.625 / d1) * x + .984375;
|
10503 |
-
}
|
10504 |
-
}
|
10505 |
-
|
10506 |
-
$.extend($.easing, {
|
10507 |
-
def: 'easeOutQuad',
|
10508 |
-
swing: function (x) {
|
10509 |
-
return $.easing[$.easing.def](x);
|
10510 |
-
},
|
10511 |
-
easeInQuad: function (x) {
|
10512 |
-
return x * x;
|
10513 |
-
},
|
10514 |
-
easeOutQuad: function (x) {
|
10515 |
-
return 1 - (1 - x) * (1 - x);
|
10516 |
-
},
|
10517 |
-
easeInOutQuad: function (x) {
|
10518 |
-
return x < 0.5 ? 2 * x * x : 1 - pow(-2 * x + 2, 2) / 2;
|
10519 |
-
},
|
10520 |
-
easeInCubic: function (x) {
|
10521 |
-
return x * x * x;
|
10522 |
-
},
|
10523 |
-
easeOutCubic: function (x) {
|
10524 |
-
return 1 - pow(1 - x, 3);
|
10525 |
-
},
|
10526 |
-
easeInOutCubic: function (x) {
|
10527 |
-
return x < 0.5 ? 4 * x * x * x : 1 - pow(-2 * x + 2, 3) / 2;
|
10528 |
-
},
|
10529 |
-
easeInQuart: function (x) {
|
10530 |
-
return x * x * x * x;
|
10531 |
-
},
|
10532 |
-
easeOutQuart: function (x) {
|
10533 |
-
return 1 - pow(1 - x, 4);
|
10534 |
-
},
|
10535 |
-
easeInOutQuart: function (x) {
|
10536 |
-
return x < 0.5 ? 8 * x * x * x * x : 1 - pow(-2 * x + 2, 4) / 2;
|
10537 |
-
},
|
10538 |
-
easeInQuint: function (x) {
|
10539 |
-
return x * x * x * x * x;
|
10540 |
-
},
|
10541 |
-
easeOutQuint: function (x) {
|
10542 |
-
return 1 - pow(1 - x, 5);
|
10543 |
-
},
|
10544 |
-
easeInOutQuint: function (x) {
|
10545 |
-
return x < 0.5 ? 16 * x * x * x * x * x : 1 - pow(-2 * x + 2, 5) / 2;
|
10546 |
-
},
|
10547 |
-
easeInSine: function (x) {
|
10548 |
-
return 1 - cos(x * PI / 2);
|
10549 |
-
},
|
10550 |
-
easeOutSine: function (x) {
|
10551 |
-
return sin(x * PI / 2);
|
10552 |
-
},
|
10553 |
-
easeInOutSine: function (x) {
|
10554 |
-
return -(cos(PI * x) - 1) / 2;
|
10555 |
-
},
|
10556 |
-
easeInExpo: function (x) {
|
10557 |
-
return x === 0 ? 0 : pow(2, 10 * x - 10);
|
10558 |
-
},
|
10559 |
-
easeOutExpo: function (x) {
|
10560 |
-
return x === 1 ? 1 : 1 - pow(2, -10 * x);
|
10561 |
-
},
|
10562 |
-
easeInOutExpo: function (x) {
|
10563 |
-
return x === 0 ? 0 : x === 1 ? 1 : x < 0.5 ? pow(2, 20 * x - 10) / 2 : (2 - pow(2, -20 * x + 10)) / 2;
|
10564 |
-
},
|
10565 |
-
easeInCirc: function (x) {
|
10566 |
-
return 1 - sqrt(1 - pow(x, 2));
|
10567 |
-
},
|
10568 |
-
easeOutCirc: function (x) {
|
10569 |
-
return sqrt(1 - pow(x - 1, 2));
|
10570 |
-
},
|
10571 |
-
easeInOutCirc: function (x) {
|
10572 |
-
return x < 0.5 ? (1 - sqrt(1 - pow(2 * x, 2))) / 2 : (sqrt(1 - pow(-2 * x + 2, 2)) + 1) / 2;
|
10573 |
-
},
|
10574 |
-
easeInElastic: function (x) {
|
10575 |
-
return x === 0 ? 0 : x === 1 ? 1 : -pow(2, 10 * x - 10) * sin((x * 10 - 10.75) * c4);
|
10576 |
-
},
|
10577 |
-
easeOutElastic: function (x) {
|
10578 |
-
return x === 0 ? 0 : x === 1 ? 1 : pow(2, -10 * x) * sin((x * 10 - 0.75) * c4) + 1;
|
10579 |
-
},
|
10580 |
-
easeInOutElastic: function (x) {
|
10581 |
-
return x === 0 ? 0 : x === 1 ? 1 : x < 0.5 ? -(pow(2, 20 * x - 10) * sin((20 * x - 11.125) * c5)) / 2 : pow(2, -20 * x + 10) * sin((20 * x - 11.125) * c5) / 2 + 1;
|
10582 |
-
},
|
10583 |
-
easeInBack: function (x) {
|
10584 |
-
return c3 * x * x * x - c1 * x * x;
|
10585 |
-
},
|
10586 |
-
easeOutBack: function (x) {
|
10587 |
-
return 1 + c3 * pow(x - 1, 3) + c1 * pow(x - 1, 2);
|
10588 |
-
},
|
10589 |
-
easeInOutBack: function (x) {
|
10590 |
-
return x < 0.5 ? pow(2 * x, 2) * ((c2 + 1) * 2 * x - c2) / 2 : (pow(2 * x - 2, 2) * ((c2 + 1) * (x * 2 - 2) + c2) + 2) / 2;
|
10591 |
-
},
|
10592 |
-
easeInBounce: function (x) {
|
10593 |
-
return 1 - bounceOut(1 - x);
|
10594 |
-
},
|
10595 |
-
easeOutBounce: bounceOut,
|
10596 |
-
easeInOutBounce: function (x) {
|
10597 |
-
return x < 0.5 ? (1 - bounceOut(1 - 2 * x)) / 2 : (1 + bounceOut(2 * x - 1)) / 2;
|
10598 |
-
}
|
10599 |
-
});
|
10600 |
-
});; // Custom Easing
|
10601 |
-
jQuery.extend(jQuery.easing, {
|
10602 |
-
easeInOutMaterial: function (x, t, b, c, d) {
|
10603 |
-
if ((t /= d / 2) < 1) return c / 2 * t * t + b;
|
10604 |
-
return c / 4 * ((t -= 2) * t * t + 2) + b;
|
10605 |
-
}
|
10606 |
-
});; /*! VelocityJS.org (1.2.3). (C) 2014 Julian Shapiro. MIT @license: en.wikipedia.org/wiki/MIT_License */
|
10607 |
-
/*! VelocityJS.org jQuery Shim (1.0.1). (C) 2014 The jQuery Foundation. MIT @license: en.wikipedia.org/wiki/MIT_License. */
|
10608 |
-
/*! Note that this has been modified by Materialize to confirm that Velocity is not already being imported. */
|
10609 |
-
jQuery.Velocity ? console.log("Velocity is already loaded. You may be needlessly importing Velocity again; note that Materialize includes Velocity.") : (!function (e) {
|
10610 |
-
function t(e) {
|
10611 |
-
var t = e.length,
|
10612 |
-
a = r.type(e);return "function" === a || r.isWindow(e) ? !1 : 1 === e.nodeType && t ? !0 : "array" === a || 0 === t || "number" == typeof t && t > 0 && t - 1 in e;
|
10613 |
-
}if (!e.jQuery) {
|
10614 |
-
var r = function (e, t) {
|
10615 |
-
return new r.fn.init(e, t);
|
10616 |
-
};r.isWindow = function (e) {
|
10617 |
-
return null != e && e == e.window;
|
10618 |
-
}, r.type = function (e) {
|
10619 |
-
return null == e ? e + "" : "object" == typeof e || "function" == typeof e ? n[i.call(e)] || "object" : typeof e;
|
10620 |
-
}, r.isArray = Array.isArray || function (e) {
|
10621 |
-
return "array" === r.type(e);
|
10622 |
-
}, r.isPlainObject = function (e) {
|
10623 |
-
var t;if (!e || "object" !== r.type(e) || e.nodeType || r.isWindow(e)) return !1;try {
|
10624 |
-
if (e.constructor && !o.call(e, "constructor") && !o.call(e.constructor.prototype, "isPrototypeOf")) return !1;
|
10625 |
-
} catch (a) {
|
10626 |
-
return !1;
|
10627 |
-
}for (t in e) {}return void 0 === t || o.call(e, t);
|
10628 |
-
}, r.each = function (e, r, a) {
|
10629 |
-
var n,
|
10630 |
-
o = 0,
|
10631 |
-
i = e.length,
|
10632 |
-
s = t(e);if (a) {
|
10633 |
-
if (s) for (; i > o && (n = r.apply(e[o], a), n !== !1); o++) {} else for (o in e) {
|
10634 |
-
if (n = r.apply(e[o], a), n === !1) break;
|
10635 |
-
}
|
10636 |
-
} else if (s) for (; i > o && (n = r.call(e[o], o, e[o]), n !== !1); o++) {} else for (o in e) {
|
10637 |
-
if (n = r.call(e[o], o, e[o]), n === !1) break;
|
10638 |
-
}return e;
|
10639 |
-
}, r.data = function (e, t, n) {
|
10640 |
-
if (void 0 === n) {
|
10641 |
-
var o = e[r.expando],
|
10642 |
-
i = o && a[o];if (void 0 === t) return i;if (i && t in i) return i[t];
|
10643 |
-
} else if (void 0 !== t) {
|
10644 |
-
var o = e[r.expando] || (e[r.expando] = ++r.uuid);return a[o] = a[o] || {}, a[o][t] = n, n;
|
10645 |
-
}
|
10646 |
-
}, r.removeData = function (e, t) {
|
10647 |
-
var n = e[r.expando],
|
10648 |
-
o = n && a[n];o && r.each(t, function (e, t) {
|
10649 |
-
delete o[t];
|
10650 |
-
});
|
10651 |
-
}, r.extend = function () {
|
10652 |
-
var e,
|
10653 |
-
t,
|
10654 |
-
a,
|
10655 |
-
n,
|
10656 |
-
o,
|
10657 |
-
i,
|
10658 |
-
s = arguments[0] || {},
|
10659 |
-
l = 1,
|
10660 |
-
u = arguments.length,
|
10661 |
-
c = !1;for ("boolean" == typeof s && (c = s, s = arguments[l] || {}, l++), "object" != typeof s && "function" !== r.type(s) && (s = {}), l === u && (s = this, l--); u > l; l++) {
|
10662 |
-
if (null != (o = arguments[l])) for (n in o) {
|
10663 |
-
e = s[n], a = o[n], s !== a && (c && a && (r.isPlainObject(a) || (t = r.isArray(a))) ? (t ? (t = !1, i = e && r.isArray(e) ? e : []) : i = e && r.isPlainObject(e) ? e : {}, s[n] = r.extend(c, i, a)) : void 0 !== a && (s[n] = a));
|
10664 |
-
}
|
10665 |
-
}return s;
|
10666 |
-
}, r.queue = function (e, a, n) {
|
10667 |
-
function o(e, r) {
|
10668 |
-
var a = r || [];return null != e && (t(Object(e)) ? !function (e, t) {
|
10669 |
-
for (var r = +t.length, a = 0, n = e.length; r > a;) {
|
10670 |
-
e[n++] = t[a++];
|
10671 |
-
}if (r !== r) for (; void 0 !== t[a];) {
|
10672 |
-
e[n++] = t[a++];
|
10673 |
-
}return e.length = n, e;
|
10674 |
-
}(a, "string" == typeof e ? [e] : e) : [].push.call(a, e)), a;
|
10675 |
-
}if (e) {
|
10676 |
-
a = (a || "fx") + "queue";var i = r.data(e, a);return n ? (!i || r.isArray(n) ? i = r.data(e, a, o(n)) : i.push(n), i) : i || [];
|
10677 |
-
}
|
10678 |
-
}, r.dequeue = function (e, t) {
|
10679 |
-
r.each(e.nodeType ? [e] : e, function (e, a) {
|
10680 |
-
t = t || "fx";var n = r.queue(a, t),
|
10681 |
-
o = n.shift();"inprogress" === o && (o = n.shift()), o && ("fx" === t && n.unshift("inprogress"), o.call(a, function () {
|
10682 |
-
r.dequeue(a, t);
|
10683 |
-
}));
|
10684 |
-
});
|
10685 |
-
}, r.fn = r.prototype = { init: function (e) {
|
10686 |
-
if (e.nodeType) return this[0] = e, this;throw new Error("Not a DOM node.");
|
10687 |
-
}, offset: function () {
|
10688 |
-
var t = this[0].getBoundingClientRect ? this[0].getBoundingClientRect() : { top: 0, left: 0 };return { top: t.top + (e.pageYOffset || document.scrollTop || 0) - (document.clientTop || 0), left: t.left + (e.pageXOffset || document.scrollLeft || 0) - (document.clientLeft || 0) };
|
10689 |
-
}, position: function () {
|
10690 |
-
function e() {
|
10691 |
-
for (var e = this.offsetParent || document; e && "html" === !e.nodeType.toLowerCase && "static" === e.style.position;) {
|
10692 |
-
e = e.offsetParent;
|
10693 |
-
}return e || document;
|
10694 |
-
}var t = this[0],
|
10695 |
-
e = e.apply(t),
|
10696 |
-
a = this.offset(),
|
10697 |
-
n = /^(?:body|html)$/i.test(e.nodeName) ? { top: 0, left: 0 } : r(e).offset();return a.top -= parseFloat(t.style.marginTop) || 0, a.left -= parseFloat(t.style.marginLeft) || 0, e.style && (n.top += parseFloat(e.style.borderTopWidth) || 0, n.left += parseFloat(e.style.borderLeftWidth) || 0), { top: a.top - n.top, left: a.left - n.left };
|
10698 |
-
} };var a = {};r.expando = "velocity" + new Date().getTime(), r.uuid = 0;for (var n = {}, o = n.hasOwnProperty, i = n.toString, s = "Boolean Number String Function Array Date RegExp Object Error".split(" "), l = 0; l < s.length; l++) {
|
10699 |
-
n["[object " + s[l] + "]"] = s[l].toLowerCase();
|
10700 |
-
}r.fn.init.prototype = r.fn, e.Velocity = { Utilities: r };
|
10701 |
-
}
|
10702 |
-
}(window), function (e) {
|
10703 |
-
"object" == typeof module && "object" == typeof module.exports ? module.exports = e() : true ? !(__WEBPACK_AMD_DEFINE_FACTORY__ = (e),
|
10704 |
-
__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?
|
10705 |
-
(__WEBPACK_AMD_DEFINE_FACTORY__.call(exports, __webpack_require__, exports, module)) :
|
10706 |
-
__WEBPACK_AMD_DEFINE_FACTORY__),
|
10707 |
-
__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : e();
|
10708 |
-
}(function () {
|
10709 |
-
return function (e, t, r, a) {
|
10710 |
-
function n(e) {
|
10711 |
-
for (var t = -1, r = e ? e.length : 0, a = []; ++t < r;) {
|
10712 |
-
var n = e[t];n && a.push(n);
|
10713 |
-
}return a;
|
10714 |
-
}function o(e) {
|
10715 |
-
return m.isWrapped(e) ? e = [].slice.call(e) : m.isNode(e) && (e = [e]), e;
|
10716 |
-
}function i(e) {
|
10717 |
-
var t = f.data(e, "velocity");return null === t ? a : t;
|
10718 |
-
}function s(e) {
|
10719 |
-
return function (t) {
|
10720 |
-
return Math.round(t * e) * (1 / e);
|
10721 |
-
};
|
10722 |
-
}function l(e, r, a, n) {
|
10723 |
-
function o(e, t) {
|
10724 |
-
return 1 - 3 * t + 3 * e;
|
10725 |
-
}function i(e, t) {
|
10726 |
-
return 3 * t - 6 * e;
|
10727 |
-
}function s(e) {
|
10728 |
-
return 3 * e;
|
10729 |
-
}function l(e, t, r) {
|
10730 |
-
return ((o(t, r) * e + i(t, r)) * e + s(t)) * e;
|
10731 |
-
}function u(e, t, r) {
|
10732 |
-
return 3 * o(t, r) * e * e + 2 * i(t, r) * e + s(t);
|
10733 |
-
}function c(t, r) {
|
10734 |
-
for (var n = 0; m > n; ++n) {
|
10735 |
-
var o = u(r, e, a);if (0 === o) return r;var i = l(r, e, a) - t;r -= i / o;
|
10736 |
-
}return r;
|
10737 |
-
}function p() {
|
10738 |
-
for (var t = 0; b > t; ++t) {
|
10739 |
-
w[t] = l(t * x, e, a);
|
10740 |
-
}
|
10741 |
-
}function f(t, r, n) {
|
10742 |
-
var o,
|
10743 |
-
i,
|
10744 |
-
s = 0;do {
|
10745 |
-
i = r + (n - r) / 2, o = l(i, e, a) - t, o > 0 ? n = i : r = i;
|
10746 |
-
} while (Math.abs(o) > h && ++s < v);return i;
|
10747 |
-
}function d(t) {
|
10748 |
-
for (var r = 0, n = 1, o = b - 1; n != o && w[n] <= t; ++n) {
|
10749 |
-
r += x;
|
10750 |
-
}--n;var i = (t - w[n]) / (w[n + 1] - w[n]),
|
10751 |
-
s = r + i * x,
|
10752 |
-
l = u(s, e, a);return l >= y ? c(t, s) : 0 == l ? s : f(t, r, r + x);
|
10753 |
-
}function g() {
|
10754 |
-
V = !0, (e != r || a != n) && p();
|
10755 |
-
}var m = 4,
|
10756 |
-
y = .001,
|
10757 |
-
h = 1e-7,
|
10758 |
-
v = 10,
|
10759 |
-
b = 11,
|
10760 |
-
x = 1 / (b - 1),
|
10761 |
-
S = "Float32Array" in t;if (4 !== arguments.length) return !1;for (var P = 0; 4 > P; ++P) {
|
10762 |
-
if ("number" != typeof arguments[P] || isNaN(arguments[P]) || !isFinite(arguments[P])) return !1;
|
10763 |
-
}e = Math.min(e, 1), a = Math.min(a, 1), e = Math.max(e, 0), a = Math.max(a, 0);var w = S ? new Float32Array(b) : new Array(b),
|
10764 |
-
V = !1,
|
10765 |
-
C = function (t) {
|
10766 |
-
return V || g(), e === r && a === n ? t : 0 === t ? 0 : 1 === t ? 1 : l(d(t), r, n);
|
10767 |
-
};C.getControlPoints = function () {
|
10768 |
-
return [{ x: e, y: r }, { x: a, y: n }];
|
10769 |
-
};var T = "generateBezier(" + [e, r, a, n] + ")";return C.toString = function () {
|
10770 |
-
return T;
|
10771 |
-
}, C;
|
10772 |
-
}function u(e, t) {
|
10773 |
-
var r = e;return m.isString(e) ? b.Easings[e] || (r = !1) : r = m.isArray(e) && 1 === e.length ? s.apply(null, e) : m.isArray(e) && 2 === e.length ? x.apply(null, e.concat([t])) : m.isArray(e) && 4 === e.length ? l.apply(null, e) : !1, r === !1 && (r = b.Easings[b.defaults.easing] ? b.defaults.easing : v), r;
|
10774 |
-
}function c(e) {
|
10775 |
-
if (e) {
|
10776 |
-
var t = new Date().getTime(),
|
10777 |
-
r = b.State.calls.length;r > 1e4 && (b.State.calls = n(b.State.calls));for (var o = 0; r > o; o++) {
|
10778 |
-
if (b.State.calls[o]) {
|
10779 |
-
var s = b.State.calls[o],
|
10780 |
-
l = s[0],
|
10781 |
-
u = s[2],
|
10782 |
-
d = s[3],
|
10783 |
-
g = !!d,
|
10784 |
-
y = null;d || (d = b.State.calls[o][3] = t - 16);for (var h = Math.min((t - d) / u.duration, 1), v = 0, x = l.length; x > v; v++) {
|
10785 |
-
var P = l[v],
|
10786 |
-
V = P.element;if (i(V)) {
|
10787 |
-
var C = !1;if (u.display !== a && null !== u.display && "none" !== u.display) {
|
10788 |
-
if ("flex" === u.display) {
|
10789 |
-
var T = ["-webkit-box", "-moz-box", "-ms-flexbox", "-webkit-flex"];f.each(T, function (e, t) {
|
10790 |
-
S.setPropertyValue(V, "display", t);
|
10791 |
-
});
|
10792 |
-
}S.setPropertyValue(V, "display", u.display);
|
10793 |
-
}u.visibility !== a && "hidden" !== u.visibility && S.setPropertyValue(V, "visibility", u.visibility);for (var k in P) {
|
10794 |
-
if ("element" !== k) {
|
10795 |
-
var A,
|
10796 |
-
F = P[k],
|
10797 |
-
j = m.isString(F.easing) ? b.Easings[F.easing] : F.easing;if (1 === h) A = F.endValue;else {
|
10798 |
-
var E = F.endValue - F.startValue;if (A = F.startValue + E * j(h, u, E), !g && A === F.currentValue) continue;
|
10799 |
-
}if (F.currentValue = A, "tween" === k) y = A;else {
|
10800 |
-
if (S.Hooks.registered[k]) {
|
10801 |
-
var H = S.Hooks.getRoot(k),
|
10802 |
-
N = i(V).rootPropertyValueCache[H];N && (F.rootPropertyValue = N);
|
10803 |
-
}var L = S.setPropertyValue(V, k, F.currentValue + (0 === parseFloat(A) ? "" : F.unitType), F.rootPropertyValue, F.scrollData);S.Hooks.registered[k] && (i(V).rootPropertyValueCache[H] = S.Normalizations.registered[H] ? S.Normalizations.registered[H]("extract", null, L[1]) : L[1]), "transform" === L[0] && (C = !0);
|
10804 |
-
}
|
10805 |
-
}
|
10806 |
-
}u.mobileHA && i(V).transformCache.translate3d === a && (i(V).transformCache.translate3d = "(0px, 0px, 0px)", C = !0), C && S.flushTransformCache(V);
|
10807 |
-
}
|
10808 |
-
}u.display !== a && "none" !== u.display && (b.State.calls[o][2].display = !1), u.visibility !== a && "hidden" !== u.visibility && (b.State.calls[o][2].visibility = !1), u.progress && u.progress.call(s[1], s[1], h, Math.max(0, d + u.duration - t), d, y), 1 === h && p(o);
|
10809 |
-
}
|
10810 |
-
}
|
10811 |
-
}b.State.isTicking && w(c);
|
10812 |
-
}function p(e, t) {
|
10813 |
-
if (!b.State.calls[e]) return !1;for (var r = b.State.calls[e][0], n = b.State.calls[e][1], o = b.State.calls[e][2], s = b.State.calls[e][4], l = !1, u = 0, c = r.length; c > u; u++) {
|
10814 |
-
var p = r[u].element;if (t || o.loop || ("none" === o.display && S.setPropertyValue(p, "display", o.display), "hidden" === o.visibility && S.setPropertyValue(p, "visibility", o.visibility)), o.loop !== !0 && (f.queue(p)[1] === a || !/\.velocityQueueEntryFlag/i.test(f.queue(p)[1])) && i(p)) {
|
10815 |
-
i(p).isAnimating = !1, i(p).rootPropertyValueCache = {};var d = !1;f.each(S.Lists.transforms3D, function (e, t) {
|
10816 |
-
var r = /^scale/.test(t) ? 1 : 0,
|
10817 |
-
n = i(p).transformCache[t];i(p).transformCache[t] !== a && new RegExp("^\\(" + r + "[^.]").test(n) && (d = !0, delete i(p).transformCache[t]);
|
10818 |
-
}), o.mobileHA && (d = !0, delete i(p).transformCache.translate3d), d && S.flushTransformCache(p), S.Values.removeClass(p, "velocity-animating");
|
10819 |
-
}if (!t && o.complete && !o.loop && u === c - 1) try {
|
10820 |
-
o.complete.call(n, n);
|
10821 |
-
} catch (g) {
|
10822 |
-
setTimeout(function () {
|
10823 |
-
throw g;
|
10824 |
-
}, 1);
|
10825 |
-
}s && o.loop !== !0 && s(n), i(p) && o.loop === !0 && !t && (f.each(i(p).tweensContainer, function (e, t) {
|
10826 |
-
/^rotate/.test(e) && 360 === parseFloat(t.endValue) && (t.endValue = 0, t.startValue = 360), /^backgroundPosition/.test(e) && 100 === parseFloat(t.endValue) && "%" === t.unitType && (t.endValue = 0, t.startValue = 100);
|
10827 |
-
}), b(p, "reverse", { loop: !0, delay: o.delay })), o.queue !== !1 && f.dequeue(p, o.queue);
|
10828 |
-
}b.State.calls[e] = !1;for (var m = 0, y = b.State.calls.length; y > m; m++) {
|
10829 |
-
if (b.State.calls[m] !== !1) {
|
10830 |
-
l = !0;break;
|
10831 |
-
}
|
10832 |
-
}l === !1 && (b.State.isTicking = !1, delete b.State.calls, b.State.calls = []);
|
10833 |
-
}var f,
|
10834 |
-
d = function () {
|
10835 |
-
if (r.documentMode) return r.documentMode;for (var e = 7; e > 4; e--) {
|
10836 |
-
var t = r.createElement("div");if (t.innerHTML = "<!--[if IE " + e + "]><span></span><![endif]-->", t.getElementsByTagName("span").length) return t = null, e;
|
10837 |
-
}return a;
|
10838 |
-
}(),
|
10839 |
-
g = function () {
|
10840 |
-
var e = 0;return t.webkitRequestAnimationFrame || t.mozRequestAnimationFrame || function (t) {
|
10841 |
-
var r,
|
10842 |
-
a = new Date().getTime();return r = Math.max(0, 16 - (a - e)), e = a + r, setTimeout(function () {
|
10843 |
-
t(a + r);
|
10844 |
-
}, r);
|
10845 |
-
};
|
10846 |
-
}(),
|
10847 |
-
m = { isString: function (e) {
|
10848 |
-
return "string" == typeof e;
|
10849 |
-
}, isArray: Array.isArray || function (e) {
|
10850 |
-
return "[object Array]" === Object.prototype.toString.call(e);
|
10851 |
-
}, isFunction: function (e) {
|
10852 |
-
return "[object Function]" === Object.prototype.toString.call(e);
|
10853 |
-
}, isNode: function (e) {
|
10854 |
-
return e && e.nodeType;
|
10855 |
-
}, isNodeList: function (e) {
|
10856 |
-
return "object" == typeof e && /^\[object (HTMLCollection|NodeList|Object)\]$/.test(Object.prototype.toString.call(e)) && e.length !== a && (0 === e.length || "object" == typeof e[0] && e[0].nodeType > 0);
|
10857 |
-
}, isWrapped: function (e) {
|
10858 |
-
return e && (e.jquery || t.Zepto && t.Zepto.zepto.isZ(e));
|
10859 |
-
}, isSVG: function (e) {
|
10860 |
-
return t.SVGElement && e instanceof t.SVGElement;
|
10861 |
-
}, isEmptyObject: function (e) {
|
10862 |
-
for (var t in e) {
|
10863 |
-
return !1;
|
10864 |
-
}return !0;
|
10865 |
-
} },
|
10866 |
-
y = !1;if (e.fn && e.fn.jquery ? (f = e, y = !0) : f = t.Velocity.Utilities, 8 >= d && !y) throw new Error("Velocity: IE8 and below require jQuery to be loaded before Velocity.");if (7 >= d) return void (jQuery.fn.velocity = jQuery.fn.animate);var h = 400,
|
10867 |
-
v = "swing",
|
10868 |
-
b = { State: { isMobile: /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent), isAndroid: /Android/i.test(navigator.userAgent), isGingerbread: /Android 2\.3\.[3-7]/i.test(navigator.userAgent), isChrome: t.chrome, isFirefox: /Firefox/i.test(navigator.userAgent), prefixElement: r.createElement("div"), prefixMatches: {}, scrollAnchor: null, scrollPropertyLeft: null, scrollPropertyTop: null, isTicking: !1, calls: [] }, CSS: {}, Utilities: f, Redirects: {}, Easings: {}, Promise: t.Promise, defaults: { queue: "", duration: h, easing: v, begin: a, complete: a, progress: a, display: a, visibility: a, loop: !1, delay: !1, mobileHA: !0, _cacheValues: !0 }, init: function (e) {
|
10869 |
-
f.data(e, "velocity", { isSVG: m.isSVG(e), isAnimating: !1, computedStyle: null, tweensContainer: null, rootPropertyValueCache: {}, transformCache: {} });
|
10870 |
-
}, hook: null, mock: !1, version: { major: 1, minor: 2, patch: 2 }, debug: !1 };t.pageYOffset !== a ? (b.State.scrollAnchor = t, b.State.scrollPropertyLeft = "pageXOffset", b.State.scrollPropertyTop = "pageYOffset") : (b.State.scrollAnchor = r.documentElement || r.body.parentNode || r.body, b.State.scrollPropertyLeft = "scrollLeft", b.State.scrollPropertyTop = "scrollTop");var x = function () {
|
10871 |
-
function e(e) {
|
10872 |
-
return -e.tension * e.x - e.friction * e.v;
|
10873 |
-
}function t(t, r, a) {
|
10874 |
-
var n = { x: t.x + a.dx * r, v: t.v + a.dv * r, tension: t.tension, friction: t.friction };return { dx: n.v, dv: e(n) };
|
10875 |
-
}function r(r, a) {
|
10876 |
-
var n = { dx: r.v, dv: e(r) },
|
10877 |
-
o = t(r, .5 * a, n),
|
10878 |
-
i = t(r, .5 * a, o),
|
10879 |
-
s = t(r, a, i),
|
10880 |
-
l = 1 / 6 * (n.dx + 2 * (o.dx + i.dx) + s.dx),
|
10881 |
-
u = 1 / 6 * (n.dv + 2 * (o.dv + i.dv) + s.dv);return r.x = r.x + l * a, r.v = r.v + u * a, r;
|
10882 |
-
}return function a(e, t, n) {
|
10883 |
-
var o,
|
10884 |
-
i,
|
10885 |
-
s,
|
10886 |
-
l = { x: -1, v: 0, tension: null, friction: null },
|
10887 |
-
u = [0],
|
10888 |
-
c = 0,
|
10889 |
-
p = 1e-4,
|
10890 |
-
f = .016;for (e = parseFloat(e) || 500, t = parseFloat(t) || 20, n = n || null, l.tension = e, l.friction = t, o = null !== n, o ? (c = a(e, t), i = c / n * f) : i = f; s = r(s || l, i), u.push(1 + s.x), c += 16, Math.abs(s.x) > p && Math.abs(s.v) > p;) {}return o ? function (e) {
|
10891 |
-
return u[e * (u.length - 1) | 0];
|
10892 |
-
} : c;
|
10893 |
-
};
|
10894 |
-
}();b.Easings = { linear: function (e) {
|
10895 |
-
return e;
|
10896 |
-
}, swing: function (e) {
|
10897 |
-
return .5 - Math.cos(e * Math.PI) / 2;
|
10898 |
-
}, spring: function (e) {
|
10899 |
-
return 1 - Math.cos(4.5 * e * Math.PI) * Math.exp(6 * -e);
|
10900 |
-
} }, f.each([["ease", [.25, .1, .25, 1]], ["ease-in", [.42, 0, 1, 1]], ["ease-out", [0, 0, .58, 1]], ["ease-in-out", [.42, 0, .58, 1]], ["easeInSine", [.47, 0, .745, .715]], ["easeOutSine", [.39, .575, .565, 1]], ["easeInOutSine", [.445, .05, .55, .95]], ["easeInQuad", [.55, .085, .68, .53]], ["easeOutQuad", [.25, .46, .45, .94]], ["easeInOutQuad", [.455, .03, .515, .955]], ["easeInCubic", [.55, .055, .675, .19]], ["easeOutCubic", [.215, .61, .355, 1]], ["easeInOutCubic", [.645, .045, .355, 1]], ["easeInQuart", [.895, .03, .685, .22]], ["easeOutQuart", [.165, .84, .44, 1]], ["easeInOutQuart", [.77, 0, .175, 1]], ["easeInQuint", [.755, .05, .855, .06]], ["easeOutQuint", [.23, 1, .32, 1]], ["easeInOutQuint", [.86, 0, .07, 1]], ["easeInExpo", [.95, .05, .795, .035]], ["easeOutExpo", [.19, 1, .22, 1]], ["easeInOutExpo", [1, 0, 0, 1]], ["easeInCirc", [.6, .04, .98, .335]], ["easeOutCirc", [.075, .82, .165, 1]], ["easeInOutCirc", [.785, .135, .15, .86]]], function (e, t) {
|
10901 |
-
b.Easings[t[0]] = l.apply(null, t[1]);
|
10902 |
-
});var S = b.CSS = { RegEx: { isHex: /^#([A-f\d]{3}){1,2}$/i, valueUnwrap: /^[A-z]+\((.*)\)$/i, wrappedValueAlreadyExtracted: /[0-9.]+ [0-9.]+ [0-9.]+( [0-9.]+)?/, valueSplit: /([A-z]+\(.+\))|(([A-z0-9#-.]+?)(?=\s|$))/gi }, Lists: { colors: ["fill", "stroke", "stopColor", "color", "backgroundColor", "borderColor", "borderTopColor", "borderRightColor", "borderBottomColor", "borderLeftColor", "outlineColor"], transformsBase: ["translateX", "translateY", "scale", "scaleX", "scaleY", "skewX", "skewY", "rotateZ"], transforms3D: ["transformPerspective", "translateZ", "scaleZ", "rotateX", "rotateY"] }, Hooks: { templates: { textShadow: ["Color X Y Blur", "black 0px 0px 0px"], boxShadow: ["Color X Y Blur Spread", "black 0px 0px 0px 0px"], clip: ["Top Right Bottom Left", "0px 0px 0px 0px"], backgroundPosition: ["X Y", "0% 0%"], transformOrigin: ["X Y Z", "50% 50% 0px"], perspectiveOrigin: ["X Y", "50% 50%"] }, registered: {}, register: function () {
|
10903 |
-
for (var e = 0; e < S.Lists.colors.length; e++) {
|
10904 |
-
var t = "color" === S.Lists.colors[e] ? "0 0 0 1" : "255 255 255 1";S.Hooks.templates[S.Lists.colors[e]] = ["Red Green Blue Alpha", t];
|
10905 |
-
}var r, a, n;if (d) for (r in S.Hooks.templates) {
|
10906 |
-
a = S.Hooks.templates[r], n = a[0].split(" ");var o = a[1].match(S.RegEx.valueSplit);"Color" === n[0] && (n.push(n.shift()), o.push(o.shift()), S.Hooks.templates[r] = [n.join(" "), o.join(" ")]);
|
10907 |
-
}for (r in S.Hooks.templates) {
|
10908 |
-
a = S.Hooks.templates[r], n = a[0].split(" ");for (var e in n) {
|
10909 |
-
var i = r + n[e],
|
10910 |
-
s = e;S.Hooks.registered[i] = [r, s];
|
10911 |
-
}
|
10912 |
-
}
|
10913 |
-
}, getRoot: function (e) {
|
10914 |
-
var t = S.Hooks.registered[e];return t ? t[0] : e;
|
10915 |
-
}, cleanRootPropertyValue: function (e, t) {
|
10916 |
-
return S.RegEx.valueUnwrap.test(t) && (t = t.match(S.RegEx.valueUnwrap)[1]), S.Values.isCSSNullValue(t) && (t = S.Hooks.templates[e][1]), t;
|
10917 |
-
}, extractValue: function (e, t) {
|
10918 |
-
var r = S.Hooks.registered[e];if (r) {
|
10919 |
-
var a = r[0],
|
10920 |
-
n = r[1];return t = S.Hooks.cleanRootPropertyValue(a, t), t.toString().match(S.RegEx.valueSplit)[n];
|
10921 |
-
}return t;
|
10922 |
-
}, injectValue: function (e, t, r) {
|
10923 |
-
var a = S.Hooks.registered[e];if (a) {
|
10924 |
-
var n,
|
10925 |
-
o,
|
10926 |
-
i = a[0],
|
10927 |
-
s = a[1];return r = S.Hooks.cleanRootPropertyValue(i, r), n = r.toString().match(S.RegEx.valueSplit), n[s] = t, o = n.join(" ");
|
10928 |
-
}return r;
|
10929 |
-
} }, Normalizations: { registered: { clip: function (e, t, r) {
|
10930 |
-
switch (e) {case "name":
|
10931 |
-
return "clip";case "extract":
|
10932 |
-
var a;return S.RegEx.wrappedValueAlreadyExtracted.test(r) ? a = r : (a = r.toString().match(S.RegEx.valueUnwrap), a = a ? a[1].replace(/,(\s+)?/g, " ") : r), a;case "inject":
|
10933 |
-
return "rect(" + r + ")";}
|
10934 |
-
}, blur: function (e, t, r) {
|
10935 |
-
switch (e) {case "name":
|
10936 |
-
return b.State.isFirefox ? "filter" : "-webkit-filter";case "extract":
|
10937 |
-
var a = parseFloat(r);if (!a && 0 !== a) {
|
10938 |
-
var n = r.toString().match(/blur\(([0-9]+[A-z]+)\)/i);a = n ? n[1] : 0;
|
10939 |
-
}return a;case "inject":
|
10940 |
-
return parseFloat(r) ? "blur(" + r + ")" : "none";}
|
10941 |
-
}, opacity: function (e, t, r) {
|
10942 |
-
if (8 >= d) switch (e) {case "name":
|
10943 |
-
return "filter";case "extract":
|
10944 |
-
var a = r.toString().match(/alpha\(opacity=(.*)\)/i);return r = a ? a[1] / 100 : 1;case "inject":
|
10945 |
-
return t.style.zoom = 1, parseFloat(r) >= 1 ? "" : "alpha(opacity=" + parseInt(100 * parseFloat(r), 10) + ")";} else switch (e) {case "name":
|
10946 |
-
return "opacity";case "extract":
|
10947 |
-
return r;case "inject":
|
10948 |
-
return r;}
|
10949 |
-
} }, register: function () {
|
10950 |
-
9 >= d || b.State.isGingerbread || (S.Lists.transformsBase = S.Lists.transformsBase.concat(S.Lists.transforms3D));for (var e = 0; e < S.Lists.transformsBase.length; e++) {
|
10951 |
-
!function () {
|
10952 |
-
var t = S.Lists.transformsBase[e];S.Normalizations.registered[t] = function (e, r, n) {
|
10953 |
-
switch (e) {case "name":
|
10954 |
-
return "transform";case "extract":
|
10955 |
-
return i(r) === a || i(r).transformCache[t] === a ? /^scale/i.test(t) ? 1 : 0 : i(r).transformCache[t].replace(/[()]/g, "");case "inject":
|
10956 |
-
var o = !1;switch (t.substr(0, t.length - 1)) {case "translate":
|
10957 |
-
o = !/(%|px|em|rem|vw|vh|\d)$/i.test(n);break;case "scal":case "scale":
|
10958 |
-
b.State.isAndroid && i(r).transformCache[t] === a && 1 > n && (n = 1), o = !/(\d)$/i.test(n);break;case "skew":
|
10959 |
-
o = !/(deg|\d)$/i.test(n);break;case "rotate":
|
10960 |
-
o = !/(deg|\d)$/i.test(n);}return o || (i(r).transformCache[t] = "(" + n + ")"), i(r).transformCache[t];}
|
10961 |
-
};
|
10962 |
-
}();
|
10963 |
-
}for (var e = 0; e < S.Lists.colors.length; e++) {
|
10964 |
-
!function () {
|
10965 |
-
var t = S.Lists.colors[e];S.Normalizations.registered[t] = function (e, r, n) {
|
10966 |
-
switch (e) {case "name":
|
10967 |
-
return t;case "extract":
|
10968 |
-
var o;if (S.RegEx.wrappedValueAlreadyExtracted.test(n)) o = n;else {
|
10969 |
-
var i,
|
10970 |
-
s = { black: "rgb(0, 0, 0)", blue: "rgb(0, 0, 255)", gray: "rgb(128, 128, 128)", green: "rgb(0, 128, 0)", red: "rgb(255, 0, 0)", white: "rgb(255, 255, 255)" };/^[A-z]+$/i.test(n) ? i = s[n] !== a ? s[n] : s.black : S.RegEx.isHex.test(n) ? i = "rgb(" + S.Values.hexToRgb(n).join(" ") + ")" : /^rgba?\(/i.test(n) || (i = s.black), o = (i || n).toString().match(S.RegEx.valueUnwrap)[1].replace(/,(\s+)?/g, " ");
|
10971 |
-
}return 8 >= d || 3 !== o.split(" ").length || (o += " 1"), o;case "inject":
|
10972 |
-
return 8 >= d ? 4 === n.split(" ").length && (n = n.split(/\s+/).slice(0, 3).join(" ")) : 3 === n.split(" ").length && (n += " 1"), (8 >= d ? "rgb" : "rgba") + "(" + n.replace(/\s+/g, ",").replace(/\.(\d)+(?=,)/g, "") + ")";}
|
10973 |
-
};
|
10974 |
-
}();
|
10975 |
-
}
|
10976 |
-
} }, Names: { camelCase: function (e) {
|
10977 |
-
return e.replace(/-(\w)/g, function (e, t) {
|
10978 |
-
return t.toUpperCase();
|
10979 |
-
});
|
10980 |
-
}, SVGAttribute: function (e) {
|
10981 |
-
var t = "width|height|x|y|cx|cy|r|rx|ry|x1|x2|y1|y2";return (d || b.State.isAndroid && !b.State.isChrome) && (t += "|transform"), new RegExp("^(" + t + ")$", "i").test(e);
|
10982 |
-
}, prefixCheck: function (e) {
|
10983 |
-
if (b.State.prefixMatches[e]) return [b.State.prefixMatches[e], !0];for (var t = ["", "Webkit", "Moz", "ms", "O"], r = 0, a = t.length; a > r; r++) {
|
10984 |
-
var n;if (n = 0 === r ? e : t[r] + e.replace(/^\w/, function (e) {
|
10985 |
-
return e.toUpperCase();
|
10986 |
-
}), m.isString(b.State.prefixElement.style[n])) return b.State.prefixMatches[e] = n, [n, !0];
|
10987 |
-
}return [e, !1];
|
10988 |
-
} }, Values: { hexToRgb: function (e) {
|
10989 |
-
var t,
|
10990 |
-
r = /^#?([a-f\d])([a-f\d])([a-f\d])$/i,
|
10991 |
-
a = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i;return e = e.replace(r, function (e, t, r, a) {
|
10992 |
-
return t + t + r + r + a + a;
|
10993 |
-
}), t = a.exec(e), t ? [parseInt(t[1], 16), parseInt(t[2], 16), parseInt(t[3], 16)] : [0, 0, 0];
|
10994 |
-
}, isCSSNullValue: function (e) {
|
10995 |
-
return 0 == e || /^(none|auto|transparent|(rgba\(0, ?0, ?0, ?0\)))$/i.test(e);
|
10996 |
-
}, getUnitType: function (e) {
|
10997 |
-
return (/^(rotate|skew)/i.test(e) ? "deg" : /(^(scale|scaleX|scaleY|scaleZ|alpha|flexGrow|flexHeight|zIndex|fontWeight)$)|((opacity|red|green|blue|alpha)$)/i.test(e) ? "" : "px"
|
10998 |
-
);
|
10999 |
-
}, getDisplayType: function (e) {
|
11000 |
-
var t = e && e.tagName.toString().toLowerCase();return (/^(b|big|i|small|tt|abbr|acronym|cite|code|dfn|em|kbd|strong|samp|var|a|bdo|br|img|map|object|q|script|span|sub|sup|button|input|label|select|textarea)$/i.test(t) ? "inline" : /^(li)$/i.test(t) ? "list-item" : /^(tr)$/i.test(t) ? "table-row" : /^(table)$/i.test(t) ? "table" : /^(tbody)$/i.test(t) ? "table-row-group" : "block"
|
11001 |
-
);
|
11002 |
-
}, addClass: function (e, t) {
|
11003 |
-
e.classList ? e.classList.add(t) : e.className += (e.className.length ? " " : "") + t;
|
11004 |
-
}, removeClass: function (e, t) {
|
11005 |
-
e.classList ? e.classList.remove(t) : e.className = e.className.toString().replace(new RegExp("(^|\\s)" + t.split(" ").join("|") + "(\\s|$)", "gi"), " ");
|
11006 |
-
} }, getPropertyValue: function (e, r, n, o) {
|
11007 |
-
function s(e, r) {
|
11008 |
-
function n() {
|
11009 |
-
u && S.setPropertyValue(e, "display", "none");
|
11010 |
-
}var l = 0;if (8 >= d) l = f.css(e, r);else {
|
11011 |
-
var u = !1;if (/^(width|height)$/.test(r) && 0 === S.getPropertyValue(e, "display") && (u = !0, S.setPropertyValue(e, "display", S.Values.getDisplayType(e))), !o) {
|
11012 |
-
if ("height" === r && "border-box" !== S.getPropertyValue(e, "boxSizing").toString().toLowerCase()) {
|
11013 |
-
var c = e.offsetHeight - (parseFloat(S.getPropertyValue(e, "borderTopWidth")) || 0) - (parseFloat(S.getPropertyValue(e, "borderBottomWidth")) || 0) - (parseFloat(S.getPropertyValue(e, "paddingTop")) || 0) - (parseFloat(S.getPropertyValue(e, "paddingBottom")) || 0);return n(), c;
|
11014 |
-
}if ("width" === r && "border-box" !== S.getPropertyValue(e, "boxSizing").toString().toLowerCase()) {
|
11015 |
-
var p = e.offsetWidth - (parseFloat(S.getPropertyValue(e, "borderLeftWidth")) || 0) - (parseFloat(S.getPropertyValue(e, "borderRightWidth")) || 0) - (parseFloat(S.getPropertyValue(e, "paddingLeft")) || 0) - (parseFloat(S.getPropertyValue(e, "paddingRight")) || 0);return n(), p;
|
11016 |
-
}
|
11017 |
-
}var g;g = i(e) === a ? t.getComputedStyle(e, null) : i(e).computedStyle ? i(e).computedStyle : i(e).computedStyle = t.getComputedStyle(e, null), "borderColor" === r && (r = "borderTopColor"), l = 9 === d && "filter" === r ? g.getPropertyValue(r) : g[r], ("" === l || null === l) && (l = e.style[r]), n();
|
11018 |
-
}if ("auto" === l && /^(top|right|bottom|left)$/i.test(r)) {
|
11019 |
-
var m = s(e, "position");("fixed" === m || "absolute" === m && /top|left/i.test(r)) && (l = f(e).position()[r] + "px");
|
11020 |
-
}return l;
|
11021 |
-
}var l;if (S.Hooks.registered[r]) {
|
11022 |
-
var u = r,
|
11023 |
-
c = S.Hooks.getRoot(u);n === a && (n = S.getPropertyValue(e, S.Names.prefixCheck(c)[0])), S.Normalizations.registered[c] && (n = S.Normalizations.registered[c]("extract", e, n)), l = S.Hooks.extractValue(u, n);
|
11024 |
-
} else if (S.Normalizations.registered[r]) {
|
11025 |
-
var p, g;p = S.Normalizations.registered[r]("name", e), "transform" !== p && (g = s(e, S.Names.prefixCheck(p)[0]), S.Values.isCSSNullValue(g) && S.Hooks.templates[r] && (g = S.Hooks.templates[r][1])), l = S.Normalizations.registered[r]("extract", e, g);
|
11026 |
-
}if (!/^[\d-]/.test(l)) if (i(e) && i(e).isSVG && S.Names.SVGAttribute(r)) {
|
11027 |
-
if (/^(height|width)$/i.test(r)) try {
|
11028 |
-
l = e.getBBox()[r];
|
11029 |
-
} catch (m) {
|
11030 |
-
l = 0;
|
11031 |
-
} else l = e.getAttribute(r);
|
11032 |
-
} else l = s(e, S.Names.prefixCheck(r)[0]);return S.Values.isCSSNullValue(l) && (l = 0), b.debug >= 2 && console.log("Get " + r + ": " + l), l;
|
11033 |
-
}, setPropertyValue: function (e, r, a, n, o) {
|
11034 |
-
var s = r;if ("scroll" === r) o.container ? o.container["scroll" + o.direction] = a : "Left" === o.direction ? t.scrollTo(a, o.alternateValue) : t.scrollTo(o.alternateValue, a);else if (S.Normalizations.registered[r] && "transform" === S.Normalizations.registered[r]("name", e)) S.Normalizations.registered[r]("inject", e, a), s = "transform", a = i(e).transformCache[r];else {
|
11035 |
-
if (S.Hooks.registered[r]) {
|
11036 |
-
var l = r,
|
11037 |
-
u = S.Hooks.getRoot(r);n = n || S.getPropertyValue(e, u), a = S.Hooks.injectValue(l, a, n), r = u;
|
11038 |
-
}if (S.Normalizations.registered[r] && (a = S.Normalizations.registered[r]("inject", e, a), r = S.Normalizations.registered[r]("name", e)), s = S.Names.prefixCheck(r)[0], 8 >= d) try {
|
11039 |
-
e.style[s] = a;
|
11040 |
-
} catch (c) {
|
11041 |
-
b.debug && console.log("Browser does not support [" + a + "] for [" + s + "]");
|
11042 |
-
} else i(e) && i(e).isSVG && S.Names.SVGAttribute(r) ? e.setAttribute(r, a) : e.style[s] = a;b.debug >= 2 && console.log("Set " + r + " (" + s + "): " + a);
|
11043 |
-
}return [s, a];
|
11044 |
-
}, flushTransformCache: function (e) {
|
11045 |
-
function t(t) {
|
11046 |
-
return parseFloat(S.getPropertyValue(e, t));
|
11047 |
-
}var r = "";if ((d || b.State.isAndroid && !b.State.isChrome) && i(e).isSVG) {
|
11048 |
-
var a = { translate: [t("translateX"), t("translateY")], skewX: [t("skewX")], skewY: [t("skewY")], scale: 1 !== t("scale") ? [t("scale"), t("scale")] : [t("scaleX"), t("scaleY")], rotate: [t("rotateZ"), 0, 0] };f.each(i(e).transformCache, function (e) {
|
11049 |
-
/^translate/i.test(e) ? e = "translate" : /^scale/i.test(e) ? e = "scale" : /^rotate/i.test(e) && (e = "rotate"), a[e] && (r += e + "(" + a[e].join(" ") + ") ", delete a[e]);
|
11050 |
-
});
|
11051 |
-
} else {
|
11052 |
-
var n, o;f.each(i(e).transformCache, function (t) {
|
11053 |
-
return n = i(e).transformCache[t], "transformPerspective" === t ? (o = n, !0) : (9 === d && "rotateZ" === t && (t = "rotate"), void (r += t + n + " "));
|
11054 |
-
}), o && (r = "perspective" + o + " " + r);
|
11055 |
-
}S.setPropertyValue(e, "transform", r);
|
11056 |
-
} };S.Hooks.register(), S.Normalizations.register(), b.hook = function (e, t, r) {
|
11057 |
-
var n = a;return e = o(e), f.each(e, function (e, o) {
|
11058 |
-
if (i(o) === a && b.init(o), r === a) n === a && (n = b.CSS.getPropertyValue(o, t));else {
|
11059 |
-
var s = b.CSS.setPropertyValue(o, t, r);"transform" === s[0] && b.CSS.flushTransformCache(o), n = s;
|
11060 |
-
}
|
11061 |
-
}), n;
|
11062 |
-
};var P = function () {
|
11063 |
-
function e() {
|
11064 |
-
return s ? k.promise || null : l;
|
11065 |
-
}function n() {
|
11066 |
-
function e(e) {
|
11067 |
-
function p(e, t) {
|
11068 |
-
var r = a,
|
11069 |
-
n = a,
|
11070 |
-
i = a;return m.isArray(e) ? (r = e[0], !m.isArray(e[1]) && /^[\d-]/.test(e[1]) || m.isFunction(e[1]) || S.RegEx.isHex.test(e[1]) ? i = e[1] : (m.isString(e[1]) && !S.RegEx.isHex.test(e[1]) || m.isArray(e[1])) && (n = t ? e[1] : u(e[1], s.duration), e[2] !== a && (i = e[2]))) : r = e, t || (n = n || s.easing), m.isFunction(r) && (r = r.call(o, V, w)), m.isFunction(i) && (i = i.call(o, V, w)), [r || 0, n, i];
|
11071 |
-
}function d(e, t) {
|
11072 |
-
var r, a;return a = (t || "0").toString().toLowerCase().replace(/[%A-z]+$/, function (e) {
|
11073 |
-
return r = e, "";
|
11074 |
-
}), r || (r = S.Values.getUnitType(e)), [a, r];
|
11075 |
-
}function h() {
|
11076 |
-
var e = { myParent: o.parentNode || r.body, position: S.getPropertyValue(o, "position"), fontSize: S.getPropertyValue(o, "fontSize") },
|
11077 |
-
a = e.position === L.lastPosition && e.myParent === L.lastParent,
|
11078 |
-
n = e.fontSize === L.lastFontSize;L.lastParent = e.myParent, L.lastPosition = e.position, L.lastFontSize = e.fontSize;var s = 100,
|
11079 |
-
l = {};if (n && a) l.emToPx = L.lastEmToPx, l.percentToPxWidth = L.lastPercentToPxWidth, l.percentToPxHeight = L.lastPercentToPxHeight;else {
|
11080 |
-
var u = i(o).isSVG ? r.createElementNS("http://www.w3.org/2000/svg", "rect") : r.createElement("div");b.init(u), e.myParent.appendChild(u), f.each(["overflow", "overflowX", "overflowY"], function (e, t) {
|
11081 |
-
b.CSS.setPropertyValue(u, t, "hidden");
|
11082 |
-
}), b.CSS.setPropertyValue(u, "position", e.position), b.CSS.setPropertyValue(u, "fontSize", e.fontSize), b.CSS.setPropertyValue(u, "boxSizing", "content-box"), f.each(["minWidth", "maxWidth", "width", "minHeight", "maxHeight", "height"], function (e, t) {
|
11083 |
-
b.CSS.setPropertyValue(u, t, s + "%");
|
11084 |
-
}), b.CSS.setPropertyValue(u, "paddingLeft", s + "em"), l.percentToPxWidth = L.lastPercentToPxWidth = (parseFloat(S.getPropertyValue(u, "width", null, !0)) || 1) / s, l.percentToPxHeight = L.lastPercentToPxHeight = (parseFloat(S.getPropertyValue(u, "height", null, !0)) || 1) / s, l.emToPx = L.lastEmToPx = (parseFloat(S.getPropertyValue(u, "paddingLeft")) || 1) / s, e.myParent.removeChild(u);
|
11085 |
-
}return null === L.remToPx && (L.remToPx = parseFloat(S.getPropertyValue(r.body, "fontSize")) || 16), null === L.vwToPx && (L.vwToPx = parseFloat(t.innerWidth) / 100, L.vhToPx = parseFloat(t.innerHeight) / 100), l.remToPx = L.remToPx, l.vwToPx = L.vwToPx, l.vhToPx = L.vhToPx, b.debug >= 1 && console.log("Unit ratios: " + JSON.stringify(l), o), l;
|
11086 |
-
}if (s.begin && 0 === V) try {
|
11087 |
-
s.begin.call(g, g);
|
11088 |
-
} catch (x) {
|
11089 |
-
setTimeout(function () {
|
11090 |
-
throw x;
|
11091 |
-
}, 1);
|
11092 |
-
}if ("scroll" === A) {
|
11093 |
-
var P,
|
11094 |
-
C,
|
11095 |
-
T,
|
11096 |
-
F = /^x$/i.test(s.axis) ? "Left" : "Top",
|
11097 |
-
j = parseFloat(s.offset) || 0;s.container ? m.isWrapped(s.container) || m.isNode(s.container) ? (s.container = s.container[0] || s.container, P = s.container["scroll" + F], T = P + f(o).position()[F.toLowerCase()] + j) : s.container = null : (P = b.State.scrollAnchor[b.State["scrollProperty" + F]], C = b.State.scrollAnchor[b.State["scrollProperty" + ("Left" === F ? "Top" : "Left")]], T = f(o).offset()[F.toLowerCase()] + j), l = { scroll: { rootPropertyValue: !1, startValue: P, currentValue: P, endValue: T, unitType: "", easing: s.easing, scrollData: { container: s.container, direction: F, alternateValue: C } }, element: o }, b.debug && console.log("tweensContainer (scroll): ", l.scroll, o);
|
11098 |
-
} else if ("reverse" === A) {
|
11099 |
-
if (!i(o).tweensContainer) return void f.dequeue(o, s.queue);"none" === i(o).opts.display && (i(o).opts.display = "auto"), "hidden" === i(o).opts.visibility && (i(o).opts.visibility = "visible"), i(o).opts.loop = !1, i(o).opts.begin = null, i(o).opts.complete = null, v.easing || delete s.easing, v.duration || delete s.duration, s = f.extend({}, i(o).opts, s);var E = f.extend(!0, {}, i(o).tweensContainer);for (var H in E) {
|
11100 |
-
if ("element" !== H) {
|
11101 |
-
var N = E[H].startValue;E[H].startValue = E[H].currentValue = E[H].endValue, E[H].endValue = N, m.isEmptyObject(v) || (E[H].easing = s.easing), b.debug && console.log("reverse tweensContainer (" + H + "): " + JSON.stringify(E[H]), o);
|
11102 |
-
}
|
11103 |
-
}l = E;
|
11104 |
-
} else if ("start" === A) {
|
11105 |
-
var E;i(o).tweensContainer && i(o).isAnimating === !0 && (E = i(o).tweensContainer), f.each(y, function (e, t) {
|
11106 |
-
if (RegExp("^" + S.Lists.colors.join("$|^") + "$").test(e)) {
|
11107 |
-
var r = p(t, !0),
|
11108 |
-
n = r[0],
|
11109 |
-
o = r[1],
|
11110 |
-
i = r[2];if (S.RegEx.isHex.test(n)) {
|
11111 |
-
for (var s = ["Red", "Green", "Blue"], l = S.Values.hexToRgb(n), u = i ? S.Values.hexToRgb(i) : a, c = 0; c < s.length; c++) {
|
11112 |
-
var f = [l[c]];o && f.push(o), u !== a && f.push(u[c]), y[e + s[c]] = f;
|
11113 |
-
}delete y[e];
|
11114 |
-
}
|
11115 |
-
}
|
11116 |
-
});for (var z in y) {
|
11117 |
-
var O = p(y[z]),
|
11118 |
-
q = O[0],
|
11119 |
-
$ = O[1],
|
11120 |
-
M = O[2];z = S.Names.camelCase(z);var I = S.Hooks.getRoot(z),
|
11121 |
-
B = !1;if (i(o).isSVG || "tween" === I || S.Names.prefixCheck(I)[1] !== !1 || S.Normalizations.registered[I] !== a) {
|
11122 |
-
(s.display !== a && null !== s.display && "none" !== s.display || s.visibility !== a && "hidden" !== s.visibility) && /opacity|filter/.test(z) && !M && 0 !== q && (M = 0), s._cacheValues && E && E[z] ? (M === a && (M = E[z].endValue + E[z].unitType), B = i(o).rootPropertyValueCache[I]) : S.Hooks.registered[z] ? M === a ? (B = S.getPropertyValue(o, I), M = S.getPropertyValue(o, z, B)) : B = S.Hooks.templates[I][1] : M === a && (M = S.getPropertyValue(o, z));var W,
|
11123 |
-
G,
|
11124 |
-
Y,
|
11125 |
-
D = !1;if (W = d(z, M), M = W[0], Y = W[1], W = d(z, q), q = W[0].replace(/^([+-\/*])=/, function (e, t) {
|
11126 |
-
return D = t, "";
|
11127 |
-
}), G = W[1], M = parseFloat(M) || 0, q = parseFloat(q) || 0, "%" === G && (/^(fontSize|lineHeight)$/.test(z) ? (q /= 100, G = "em") : /^scale/.test(z) ? (q /= 100, G = "") : /(Red|Green|Blue)$/i.test(z) && (q = q / 100 * 255, G = "")), /[\/*]/.test(D)) G = Y;else if (Y !== G && 0 !== M) if (0 === q) G = Y;else {
|
11128 |
-
n = n || h();var Q = /margin|padding|left|right|width|text|word|letter/i.test(z) || /X$/.test(z) || "x" === z ? "x" : "y";switch (Y) {case "%":
|
11129 |
-
M *= "x" === Q ? n.percentToPxWidth : n.percentToPxHeight;break;case "px":
|
11130 |
-
break;default:
|
11131 |
-
M *= n[Y + "ToPx"];}switch (G) {case "%":
|
11132 |
-
M *= 1 / ("x" === Q ? n.percentToPxWidth : n.percentToPxHeight);break;case "px":
|
11133 |
-
break;default:
|
11134 |
-
M *= 1 / n[G + "ToPx"];}
|
11135 |
-
}switch (D) {case "+":
|
11136 |
-
q = M + q;break;case "-":
|
11137 |
-
q = M - q;break;case "*":
|
11138 |
-
q = M * q;break;case "/":
|
11139 |
-
q = M / q;}l[z] = { rootPropertyValue: B, startValue: M, currentValue: M, endValue: q, unitType: G, easing: $ }, b.debug && console.log("tweensContainer (" + z + "): " + JSON.stringify(l[z]), o);
|
11140 |
-
} else b.debug && console.log("Skipping [" + I + "] due to a lack of browser support.");
|
11141 |
-
}l.element = o;
|
11142 |
-
}l.element && (S.Values.addClass(o, "velocity-animating"), R.push(l), "" === s.queue && (i(o).tweensContainer = l, i(o).opts = s), i(o).isAnimating = !0, V === w - 1 ? (b.State.calls.push([R, g, s, null, k.resolver]), b.State.isTicking === !1 && (b.State.isTicking = !0, c())) : V++);
|
11143 |
-
}var n,
|
11144 |
-
o = this,
|
11145 |
-
s = f.extend({}, b.defaults, v),
|
11146 |
-
l = {};switch (i(o) === a && b.init(o), parseFloat(s.delay) && s.queue !== !1 && f.queue(o, s.queue, function (e) {
|
11147 |
-
b.velocityQueueEntryFlag = !0, i(o).delayTimer = { setTimeout: setTimeout(e, parseFloat(s.delay)), next: e };
|
11148 |
-
}), s.duration.toString().toLowerCase()) {case "fast":
|
11149 |
-
s.duration = 200;break;case "normal":
|
11150 |
-
s.duration = h;break;case "slow":
|
11151 |
-
s.duration = 600;break;default:
|
11152 |
-
s.duration = parseFloat(s.duration) || 1;}b.mock !== !1 && (b.mock === !0 ? s.duration = s.delay = 1 : (s.duration *= parseFloat(b.mock) || 1, s.delay *= parseFloat(b.mock) || 1)), s.easing = u(s.easing, s.duration), s.begin && !m.isFunction(s.begin) && (s.begin = null), s.progress && !m.isFunction(s.progress) && (s.progress = null), s.complete && !m.isFunction(s.complete) && (s.complete = null), s.display !== a && null !== s.display && (s.display = s.display.toString().toLowerCase(), "auto" === s.display && (s.display = b.CSS.Values.getDisplayType(o))), s.visibility !== a && null !== s.visibility && (s.visibility = s.visibility.toString().toLowerCase()), s.mobileHA = s.mobileHA && b.State.isMobile && !b.State.isGingerbread, s.queue === !1 ? s.delay ? setTimeout(e, s.delay) : e() : f.queue(o, s.queue, function (t, r) {
|
11153 |
-
return r === !0 ? (k.promise && k.resolver(g), !0) : (b.velocityQueueEntryFlag = !0, void e(t));
|
11154 |
-
}), "" !== s.queue && "fx" !== s.queue || "inprogress" === f.queue(o)[0] || f.dequeue(o);
|
11155 |
-
}var s,
|
11156 |
-
l,
|
11157 |
-
d,
|
11158 |
-
g,
|
11159 |
-
y,
|
11160 |
-
v,
|
11161 |
-
x = arguments[0] && (arguments[0].p || f.isPlainObject(arguments[0].properties) && !arguments[0].properties.names || m.isString(arguments[0].properties));if (m.isWrapped(this) ? (s = !1, d = 0, g = this, l = this) : (s = !0, d = 1, g = x ? arguments[0].elements || arguments[0].e : arguments[0]), g = o(g)) {
|
11162 |
-
x ? (y = arguments[0].properties || arguments[0].p, v = arguments[0].options || arguments[0].o) : (y = arguments[d], v = arguments[d + 1]);var w = g.length,
|
11163 |
-
V = 0;if (!/^(stop|finish)$/i.test(y) && !f.isPlainObject(v)) {
|
11164 |
-
var C = d + 1;v = {};for (var T = C; T < arguments.length; T++) {
|
11165 |
-
m.isArray(arguments[T]) || !/^(fast|normal|slow)$/i.test(arguments[T]) && !/^\d/.test(arguments[T]) ? m.isString(arguments[T]) || m.isArray(arguments[T]) ? v.easing = arguments[T] : m.isFunction(arguments[T]) && (v.complete = arguments[T]) : v.duration = arguments[T];
|
11166 |
-
}
|
11167 |
-
}var k = { promise: null, resolver: null, rejecter: null };s && b.Promise && (k.promise = new b.Promise(function (e, t) {
|
11168 |
-
k.resolver = e, k.rejecter = t;
|
11169 |
-
}));var A;switch (y) {case "scroll":
|
11170 |
-
A = "scroll";break;case "reverse":
|
11171 |
-
A = "reverse";break;case "finish":case "stop":
|
11172 |
-
f.each(g, function (e, t) {
|
11173 |
-
i(t) && i(t).delayTimer && (clearTimeout(i(t).delayTimer.setTimeout), i(t).delayTimer.next && i(t).delayTimer.next(), delete i(t).delayTimer);
|
11174 |
-
});var F = [];return f.each(b.State.calls, function (e, t) {
|
11175 |
-
t && f.each(t[1], function (r, n) {
|
11176 |
-
var o = v === a ? "" : v;return o === !0 || t[2].queue === o || v === a && t[2].queue === !1 ? void f.each(g, function (r, a) {
|
11177 |
-
a === n && ((v === !0 || m.isString(v)) && (f.each(f.queue(a, m.isString(v) ? v : ""), function (e, t) {
|
11178 |
-
m.isFunction(t) && t(null, !0);
|
11179 |
-
}), f.queue(a, m.isString(v) ? v : "", [])), "stop" === y ? (i(a) && i(a).tweensContainer && o !== !1 && f.each(i(a).tweensContainer, function (e, t) {
|
11180 |
-
t.endValue = t.currentValue;
|
11181 |
-
}), F.push(e)) : "finish" === y && (t[2].duration = 1));
|
11182 |
-
}) : !0;
|
11183 |
-
});
|
11184 |
-
}), "stop" === y && (f.each(F, function (e, t) {
|
11185 |
-
p(t, !0);
|
11186 |
-
}), k.promise && k.resolver(g)), e();default:
|
11187 |
-
if (!f.isPlainObject(y) || m.isEmptyObject(y)) {
|
11188 |
-
if (m.isString(y) && b.Redirects[y]) {
|
11189 |
-
var j = f.extend({}, v),
|
11190 |
-
E = j.duration,
|
11191 |
-
H = j.delay || 0;return j.backwards === !0 && (g = f.extend(!0, [], g).reverse()), f.each(g, function (e, t) {
|
11192 |
-
parseFloat(j.stagger) ? j.delay = H + parseFloat(j.stagger) * e : m.isFunction(j.stagger) && (j.delay = H + j.stagger.call(t, e, w)), j.drag && (j.duration = parseFloat(E) || (/^(callout|transition)/.test(y) ? 1e3 : h), j.duration = Math.max(j.duration * (j.backwards ? 1 - e / w : (e + 1) / w), .75 * j.duration, 200)), b.Redirects[y].call(t, t, j || {}, e, w, g, k.promise ? k : a);
|
11193 |
-
}), e();
|
11194 |
-
}var N = "Velocity: First argument (" + y + ") was not a property map, a known action, or a registered redirect. Aborting.";return k.promise ? k.rejecter(new Error(N)) : console.log(N), e();
|
11195 |
-
}A = "start";}var L = { lastParent: null, lastPosition: null, lastFontSize: null, lastPercentToPxWidth: null, lastPercentToPxHeight: null, lastEmToPx: null, remToPx: null, vwToPx: null, vhToPx: null },
|
11196 |
-
R = [];f.each(g, function (e, t) {
|
11197 |
-
m.isNode(t) && n.call(t);
|
11198 |
-
});var z,
|
11199 |
-
j = f.extend({}, b.defaults, v);if (j.loop = parseInt(j.loop), z = 2 * j.loop - 1, j.loop) for (var O = 0; z > O; O++) {
|
11200 |
-
var q = { delay: j.delay, progress: j.progress };O === z - 1 && (q.display = j.display, q.visibility = j.visibility, q.complete = j.complete), P(g, "reverse", q);
|
11201 |
-
}return e();
|
11202 |
-
}
|
11203 |
-
};b = f.extend(P, b), b.animate = P;var w = t.requestAnimationFrame || g;return b.State.isMobile || r.hidden === a || r.addEventListener("visibilitychange", function () {
|
11204 |
-
r.hidden ? (w = function (e) {
|
11205 |
-
return setTimeout(function () {
|
11206 |
-
e(!0);
|
11207 |
-
}, 16);
|
11208 |
-
}, c()) : w = t.requestAnimationFrame || g;
|
11209 |
-
}), e.Velocity = b, e !== t && (e.fn.velocity = P, e.fn.velocity.defaults = b.defaults), f.each(["Down", "Up"], function (e, t) {
|
11210 |
-
b.Redirects["slide" + t] = function (e, r, n, o, i, s) {
|
11211 |
-
var l = f.extend({}, r),
|
11212 |
-
u = l.begin,
|
11213 |
-
c = l.complete,
|
11214 |
-
p = { height: "", marginTop: "", marginBottom: "", paddingTop: "", paddingBottom: "" },
|
11215 |
-
d = {};l.display === a && (l.display = "Down" === t ? "inline" === b.CSS.Values.getDisplayType(e) ? "inline-block" : "block" : "none"), l.begin = function () {
|
11216 |
-
u && u.call(i, i);for (var r in p) {
|
11217 |
-
d[r] = e.style[r];var a = b.CSS.getPropertyValue(e, r);p[r] = "Down" === t ? [a, 0] : [0, a];
|
11218 |
-
}d.overflow = e.style.overflow, e.style.overflow = "hidden";
|
11219 |
-
}, l.complete = function () {
|
11220 |
-
for (var t in d) {
|
11221 |
-
e.style[t] = d[t];
|
11222 |
-
}c && c.call(i, i), s && s.resolver(i);
|
11223 |
-
}, b(e, p, l);
|
11224 |
-
};
|
11225 |
-
}), f.each(["In", "Out"], function (e, t) {
|
11226 |
-
b.Redirects["fade" + t] = function (e, r, n, o, i, s) {
|
11227 |
-
var l = f.extend({}, r),
|
11228 |
-
u = { opacity: "In" === t ? 1 : 0 },
|
11229 |
-
c = l.complete;l.complete = n !== o - 1 ? l.begin = null : function () {
|
11230 |
-
c && c.call(i, i), s && s.resolver(i);
|
11231 |
-
}, l.display === a && (l.display = "In" === t ? "auto" : "none"), b(this, u, l);
|
11232 |
-
};
|
11233 |
-
}), b;
|
11234 |
-
}(window.jQuery || window.Zepto || window, window, document);
|
11235 |
-
}));
|
11236 |
-
;!function (a, b, c, d) {
|
11237 |
-
"use strict";
|
11238 |
-
function k(a, b, c) {
|
11239 |
-
return setTimeout(q(a, c), b);
|
11240 |
-
}function l(a, b, c) {
|
11241 |
-
return Array.isArray(a) ? (m(a, c[b], c), !0) : !1;
|
11242 |
-
}function m(a, b, c) {
|
11243 |
-
var e;if (a) if (a.forEach) a.forEach(b, c);else if (a.length !== d) for (e = 0; e < a.length;) {
|
11244 |
-
b.call(c, a[e], e, a), e++;
|
11245 |
-
} else for (e in a) {
|
11246 |
-
a.hasOwnProperty(e) && b.call(c, a[e], e, a);
|
11247 |
-
}
|
11248 |
-
}function n(a, b, c) {
|
11249 |
-
for (var e = Object.keys(b), f = 0; f < e.length;) {
|
11250 |
-
(!c || c && a[e[f]] === d) && (a[e[f]] = b[e[f]]), f++;
|
11251 |
-
}return a;
|
11252 |
-
}function o(a, b) {
|
11253 |
-
return n(a, b, !0);
|
11254 |
-
}function p(a, b, c) {
|
11255 |
-
var e,
|
11256 |
-
d = b.prototype;e = a.prototype = Object.create(d), e.constructor = a, e._super = d, c && n(e, c);
|
11257 |
-
}function q(a, b) {
|
11258 |
-
return function () {
|
11259 |
-
return a.apply(b, arguments);
|
11260 |
-
};
|
11261 |
-
}function r(a, b) {
|
11262 |
-
return typeof a == g ? a.apply(b ? b[0] || d : d, b) : a;
|
11263 |
-
}function s(a, b) {
|
11264 |
-
return a === d ? b : a;
|
11265 |
-
}function t(a, b, c) {
|
11266 |
-
m(x(b), function (b) {
|
11267 |
-
a.addEventListener(b, c, !1);
|
11268 |
-
});
|
11269 |
-
}function u(a, b, c) {
|
11270 |
-
m(x(b), function (b) {
|
11271 |
-
a.removeEventListener(b, c, !1);
|
11272 |
-
});
|
11273 |
-
}function v(a, b) {
|
11274 |
-
for (; a;) {
|
11275 |
-
if (a == b) return !0;a = a.parentNode;
|
11276 |
-
}return !1;
|
11277 |
-
}function w(a, b) {
|
11278 |
-
return a.indexOf(b) > -1;
|
11279 |
-
}function x(a) {
|
11280 |
-
return a.trim().split(/\s+/g);
|
11281 |
-
}function y(a, b, c) {
|
11282 |
-
if (a.indexOf && !c) return a.indexOf(b);for (var d = 0; d < a.length;) {
|
11283 |
-
if (c && a[d][c] == b || !c && a[d] === b) return d;d++;
|
11284 |
-
}return -1;
|
11285 |
-
}function z(a) {
|
11286 |
-
return Array.prototype.slice.call(a, 0);
|
11287 |
-
}function A(a, b, c) {
|
11288 |
-
for (var d = [], e = [], f = 0; f < a.length;) {
|
11289 |
-
var g = b ? a[f][b] : a[f];y(e, g) < 0 && d.push(a[f]), e[f] = g, f++;
|
11290 |
-
}return c && (d = b ? d.sort(function (a, c) {
|
11291 |
-
return a[b] > c[b];
|
11292 |
-
}) : d.sort()), d;
|
11293 |
-
}function B(a, b) {
|
11294 |
-
for (var c, f, g = b[0].toUpperCase() + b.slice(1), h = 0; h < e.length;) {
|
11295 |
-
if (c = e[h], f = c ? c + g : b, f in a) return f;h++;
|
11296 |
-
}return d;
|
11297 |
-
}function D() {
|
11298 |
-
return C++;
|
11299 |
-
}function E(a) {
|
11300 |
-
var b = a.ownerDocument;return b.defaultView || b.parentWindow;
|
11301 |
-
}function ab(a, b) {
|
11302 |
-
var c = this;this.manager = a, this.callback = b, this.element = a.element, this.target = a.options.inputTarget, this.domHandler = function (b) {
|
11303 |
-
r(a.options.enable, [a]) && c.handler(b);
|
11304 |
-
}, this.init();
|
11305 |
-
}function bb(a) {
|
11306 |
-
var b,
|
11307 |
-
c = a.options.inputClass;return b = c ? c : H ? wb : I ? Eb : G ? Gb : rb, new b(a, cb);
|
11308 |
-
}function cb(a, b, c) {
|
11309 |
-
var d = c.pointers.length,
|
11310 |
-
e = c.changedPointers.length,
|
11311 |
-
f = b & O && 0 === d - e,
|
11312 |
-
g = b & (Q | R) && 0 === d - e;c.isFirst = !!f, c.isFinal = !!g, f && (a.session = {}), c.eventType = b, db(a, c), a.emit("hammer.input", c), a.recognize(c), a.session.prevInput = c;
|
11313 |
-
}function db(a, b) {
|
11314 |
-
var c = a.session,
|
11315 |
-
d = b.pointers,
|
11316 |
-
e = d.length;c.firstInput || (c.firstInput = gb(b)), e > 1 && !c.firstMultiple ? c.firstMultiple = gb(b) : 1 === e && (c.firstMultiple = !1);var f = c.firstInput,
|
11317 |
-
g = c.firstMultiple,
|
11318 |
-
h = g ? g.center : f.center,
|
11319 |
-
i = b.center = hb(d);b.timeStamp = j(), b.deltaTime = b.timeStamp - f.timeStamp, b.angle = lb(h, i), b.distance = kb(h, i), eb(c, b), b.offsetDirection = jb(b.deltaX, b.deltaY), b.scale = g ? nb(g.pointers, d) : 1, b.rotation = g ? mb(g.pointers, d) : 0, fb(c, b);var k = a.element;v(b.srcEvent.target, k) && (k = b.srcEvent.target), b.target = k;
|
11320 |
-
}function eb(a, b) {
|
11321 |
-
var c = b.center,
|
11322 |
-
d = a.offsetDelta || {},
|
11323 |
-
e = a.prevDelta || {},
|
11324 |
-
f = a.prevInput || {};(b.eventType === O || f.eventType === Q) && (e = a.prevDelta = { x: f.deltaX || 0, y: f.deltaY || 0 }, d = a.offsetDelta = { x: c.x, y: c.y }), b.deltaX = e.x + (c.x - d.x), b.deltaY = e.y + (c.y - d.y);
|
11325 |
-
}function fb(a, b) {
|
11326 |
-
var f,
|
11327 |
-
g,
|
11328 |
-
h,
|
11329 |
-
j,
|
11330 |
-
c = a.lastInterval || b,
|
11331 |
-
e = b.timeStamp - c.timeStamp;if (b.eventType != R && (e > N || c.velocity === d)) {
|
11332 |
-
var k = c.deltaX - b.deltaX,
|
11333 |
-
l = c.deltaY - b.deltaY,
|
11334 |
-
m = ib(e, k, l);g = m.x, h = m.y, f = i(m.x) > i(m.y) ? m.x : m.y, j = jb(k, l), a.lastInterval = b;
|
11335 |
-
} else f = c.velocity, g = c.velocityX, h = c.velocityY, j = c.direction;b.velocity = f, b.velocityX = g, b.velocityY = h, b.direction = j;
|
11336 |
-
}function gb(a) {
|
11337 |
-
for (var b = [], c = 0; c < a.pointers.length;) {
|
11338 |
-
b[c] = { clientX: h(a.pointers[c].clientX), clientY: h(a.pointers[c].clientY) }, c++;
|
11339 |
-
}return { timeStamp: j(), pointers: b, center: hb(b), deltaX: a.deltaX, deltaY: a.deltaY };
|
11340 |
-
}function hb(a) {
|
11341 |
-
var b = a.length;if (1 === b) return { x: h(a[0].clientX), y: h(a[0].clientY) };for (var c = 0, d = 0, e = 0; b > e;) {
|
11342 |
-
c += a[e].clientX, d += a[e].clientY, e++;
|
11343 |
-
}return { x: h(c / b), y: h(d / b) };
|
11344 |
-
}function ib(a, b, c) {
|
11345 |
-
return { x: b / a || 0, y: c / a || 0 };
|
11346 |
-
}function jb(a, b) {
|
11347 |
-
return a === b ? S : i(a) >= i(b) ? a > 0 ? T : U : b > 0 ? V : W;
|
11348 |
-
}function kb(a, b, c) {
|
11349 |
-
c || (c = $);var d = b[c[0]] - a[c[0]],
|
11350 |
-
e = b[c[1]] - a[c[1]];return Math.sqrt(d * d + e * e);
|
11351 |
-
}function lb(a, b, c) {
|
11352 |
-
c || (c = $);var d = b[c[0]] - a[c[0]],
|
11353 |
-
e = b[c[1]] - a[c[1]];return 180 * Math.atan2(e, d) / Math.PI;
|
11354 |
-
}function mb(a, b) {
|
11355 |
-
return lb(b[1], b[0], _) - lb(a[1], a[0], _);
|
11356 |
-
}function nb(a, b) {
|
11357 |
-
return kb(b[0], b[1], _) / kb(a[0], a[1], _);
|
11358 |
-
}function rb() {
|
11359 |
-
this.evEl = pb, this.evWin = qb, this.allow = !0, this.pressed = !1, ab.apply(this, arguments);
|
11360 |
-
}function wb() {
|
11361 |
-
this.evEl = ub, this.evWin = vb, ab.apply(this, arguments), this.store = this.manager.session.pointerEvents = [];
|
11362 |
-
}function Ab() {
|
11363 |
-
this.evTarget = yb, this.evWin = zb, this.started = !1, ab.apply(this, arguments);
|
11364 |
-
}function Bb(a, b) {
|
11365 |
-
var c = z(a.touches),
|
11366 |
-
d = z(a.changedTouches);return b & (Q | R) && (c = A(c.concat(d), "identifier", !0)), [c, d];
|
11367 |
-
}function Eb() {
|
11368 |
-
this.evTarget = Db, this.targetIds = {}, ab.apply(this, arguments);
|
11369 |
-
}function Fb(a, b) {
|
11370 |
-
var c = z(a.touches),
|
11371 |
-
d = this.targetIds;if (b & (O | P) && 1 === c.length) return d[c[0].identifier] = !0, [c, c];var e,
|
11372 |
-
f,
|
11373 |
-
g = z(a.changedTouches),
|
11374 |
-
h = [],
|
11375 |
-
i = this.target;if (f = c.filter(function (a) {
|
11376 |
-
return v(a.target, i);
|
11377 |
-
}), b === O) for (e = 0; e < f.length;) {
|
11378 |
-
d[f[e].identifier] = !0, e++;
|
11379 |
-
}for (e = 0; e < g.length;) {
|
11380 |
-
d[g[e].identifier] && h.push(g[e]), b & (Q | R) && delete d[g[e].identifier], e++;
|
11381 |
-
}return h.length ? [A(f.concat(h), "identifier", !0), h] : void 0;
|
11382 |
-
}function Gb() {
|
11383 |
-
ab.apply(this, arguments);var a = q(this.handler, this);this.touch = new Eb(this.manager, a), this.mouse = new rb(this.manager, a);
|
11384 |
-
}function Pb(a, b) {
|
11385 |
-
this.manager = a, this.set(b);
|
11386 |
-
}function Qb(a) {
|
11387 |
-
if (w(a, Mb)) return Mb;var b = w(a, Nb),
|
11388 |
-
c = w(a, Ob);return b && c ? Nb + " " + Ob : b || c ? b ? Nb : Ob : w(a, Lb) ? Lb : Kb;
|
11389 |
-
}function Yb(a) {
|
11390 |
-
this.id = D(), this.manager = null, this.options = o(a || {}, this.defaults), this.options.enable = s(this.options.enable, !0), this.state = Rb, this.simultaneous = {}, this.requireFail = [];
|
11391 |
-
}function Zb(a) {
|
11392 |
-
return a & Wb ? "cancel" : a & Ub ? "end" : a & Tb ? "move" : a & Sb ? "start" : "";
|
11393 |
-
}function $b(a) {
|
11394 |
-
return a == W ? "down" : a == V ? "up" : a == T ? "left" : a == U ? "right" : "";
|
11395 |
-
}function _b(a, b) {
|
11396 |
-
var c = b.manager;return c ? c.get(a) : a;
|
11397 |
-
}function ac() {
|
11398 |
-
Yb.apply(this, arguments);
|
11399 |
-
}function bc() {
|
11400 |
-
ac.apply(this, arguments), this.pX = null, this.pY = null;
|
11401 |
-
}function cc() {
|
11402 |
-
ac.apply(this, arguments);
|
11403 |
-
}function dc() {
|
11404 |
-
Yb.apply(this, arguments), this._timer = null, this._input = null;
|
11405 |
-
}function ec() {
|
11406 |
-
ac.apply(this, arguments);
|
11407 |
-
}function fc() {
|
11408 |
-
ac.apply(this, arguments);
|
11409 |
-
}function gc() {
|
11410 |
-
Yb.apply(this, arguments), this.pTime = !1, this.pCenter = !1, this._timer = null, this._input = null, this.count = 0;
|
11411 |
-
}function hc(a, b) {
|
11412 |
-
return b = b || {}, b.recognizers = s(b.recognizers, hc.defaults.preset), new kc(a, b);
|
11413 |
-
}function kc(a, b) {
|
11414 |
-
b = b || {}, this.options = o(b, hc.defaults), this.options.inputTarget = this.options.inputTarget || a, this.handlers = {}, this.session = {}, this.recognizers = [], this.element = a, this.input = bb(this), this.touchAction = new Pb(this, this.options.touchAction), lc(this, !0), m(b.recognizers, function (a) {
|
11415 |
-
var b = this.add(new a[0](a[1]));a[2] && b.recognizeWith(a[2]), a[3] && b.requireFailure(a[3]);
|
11416 |
-
}, this);
|
11417 |
-
}function lc(a, b) {
|
11418 |
-
var c = a.element;m(a.options.cssProps, function (a, d) {
|
11419 |
-
c.style[B(c.style, d)] = b ? a : "";
|
11420 |
-
});
|
11421 |
-
}function mc(a, c) {
|
11422 |
-
var d = b.createEvent("Event");d.initEvent(a, !0, !0), d.gesture = c, c.target.dispatchEvent(d);
|
11423 |
-
}var e = ["", "webkit", "moz", "MS", "ms", "o"],
|
11424 |
-
f = b.createElement("div"),
|
11425 |
-
g = "function",
|
11426 |
-
h = Math.round,
|
11427 |
-
i = Math.abs,
|
11428 |
-
j = Date.now,
|
11429 |
-
C = 1,
|
11430 |
-
F = /mobile|tablet|ip(ad|hone|od)|android/i,
|
11431 |
-
G = "ontouchstart" in a,
|
11432 |
-
H = B(a, "PointerEvent") !== d,
|
11433 |
-
I = G && F.test(navigator.userAgent),
|
11434 |
-
J = "touch",
|
11435 |
-
K = "pen",
|
11436 |
-
L = "mouse",
|
11437 |
-
M = "kinect",
|
11438 |
-
N = 25,
|
11439 |
-
O = 1,
|
11440 |
-
P = 2,
|
11441 |
-
Q = 4,
|
11442 |
-
R = 8,
|
11443 |
-
S = 1,
|
11444 |
-
T = 2,
|
11445 |
-
U = 4,
|
11446 |
-
V = 8,
|
11447 |
-
W = 16,
|
11448 |
-
X = T | U,
|
11449 |
-
Y = V | W,
|
11450 |
-
Z = X | Y,
|
11451 |
-
$ = ["x", "y"],
|
11452 |
-
_ = ["clientX", "clientY"];ab.prototype = { handler: function () {}, init: function () {
|
11453 |
-
this.evEl && t(this.element, this.evEl, this.domHandler), this.evTarget && t(this.target, this.evTarget, this.domHandler), this.evWin && t(E(this.element), this.evWin, this.domHandler);
|
11454 |
-
}, destroy: function () {
|
11455 |
-
this.evEl && u(this.element, this.evEl, this.domHandler), this.evTarget && u(this.target, this.evTarget, this.domHandler), this.evWin && u(E(this.element), this.evWin, this.domHandler);
|
11456 |
-
} };var ob = { mousedown: O, mousemove: P, mouseup: Q },
|
11457 |
-
pb = "mousedown",
|
11458 |
-
qb = "mousemove mouseup";p(rb, ab, { handler: function (a) {
|
11459 |
-
var b = ob[a.type];b & O && 0 === a.button && (this.pressed = !0), b & P && 1 !== a.which && (b = Q), this.pressed && this.allow && (b & Q && (this.pressed = !1), this.callback(this.manager, b, { pointers: [a], changedPointers: [a], pointerType: L, srcEvent: a }));
|
11460 |
-
} });var sb = { pointerdown: O, pointermove: P, pointerup: Q, pointercancel: R, pointerout: R },
|
11461 |
-
tb = { 2: J, 3: K, 4: L, 5: M },
|
11462 |
-
ub = "pointerdown",
|
11463 |
-
vb = "pointermove pointerup pointercancel";a.MSPointerEvent && (ub = "MSPointerDown", vb = "MSPointerMove MSPointerUp MSPointerCancel"), p(wb, ab, { handler: function (a) {
|
11464 |
-
var b = this.store,
|
11465 |
-
c = !1,
|
11466 |
-
d = a.type.toLowerCase().replace("ms", ""),
|
11467 |
-
e = sb[d],
|
11468 |
-
f = tb[a.pointerType] || a.pointerType,
|
11469 |
-
g = f == J,
|
11470 |
-
h = y(b, a.pointerId, "pointerId");e & O && (0 === a.button || g) ? 0 > h && (b.push(a), h = b.length - 1) : e & (Q | R) && (c = !0), 0 > h || (b[h] = a, this.callback(this.manager, e, { pointers: b, changedPointers: [a], pointerType: f, srcEvent: a }), c && b.splice(h, 1));
|
11471 |
-
} });var xb = { touchstart: O, touchmove: P, touchend: Q, touchcancel: R },
|
11472 |
-
yb = "touchstart",
|
11473 |
-
zb = "touchstart touchmove touchend touchcancel";p(Ab, ab, { handler: function (a) {
|
11474 |
-
var b = xb[a.type];if (b === O && (this.started = !0), this.started) {
|
11475 |
-
var c = Bb.call(this, a, b);b & (Q | R) && 0 === c[0].length - c[1].length && (this.started = !1), this.callback(this.manager, b, { pointers: c[0], changedPointers: c[1], pointerType: J, srcEvent: a });
|
11476 |
-
}
|
11477 |
-
} });var Cb = { touchstart: O, touchmove: P, touchend: Q, touchcancel: R },
|
11478 |
-
Db = "touchstart touchmove touchend touchcancel";p(Eb, ab, { handler: function (a) {
|
11479 |
-
var b = Cb[a.type],
|
11480 |
-
c = Fb.call(this, a, b);c && this.callback(this.manager, b, { pointers: c[0], changedPointers: c[1], pointerType: J, srcEvent: a });
|
11481 |
-
} }), p(Gb, ab, { handler: function (a, b, c) {
|
11482 |
-
var d = c.pointerType == J,
|
11483 |
-
e = c.pointerType == L;if (d) this.mouse.allow = !1;else if (e && !this.mouse.allow) return;b & (Q | R) && (this.mouse.allow = !0), this.callback(a, b, c);
|
11484 |
-
}, destroy: function () {
|
11485 |
-
this.touch.destroy(), this.mouse.destroy();
|
11486 |
-
} });var Hb = B(f.style, "touchAction"),
|
11487 |
-
Ib = Hb !== d,
|
11488 |
-
Jb = "compute",
|
11489 |
-
Kb = "auto",
|
11490 |
-
Lb = "manipulation",
|
11491 |
-
Mb = "none",
|
11492 |
-
Nb = "pan-x",
|
11493 |
-
Ob = "pan-y";Pb.prototype = { set: function (a) {
|
11494 |
-
a == Jb && (a = this.compute()), Ib && (this.manager.element.style[Hb] = a), this.actions = a.toLowerCase().trim();
|
11495 |
-
}, update: function () {
|
11496 |
-
this.set(this.manager.options.touchAction);
|
11497 |
-
}, compute: function () {
|
11498 |
-
var a = [];return m(this.manager.recognizers, function (b) {
|
11499 |
-
r(b.options.enable, [b]) && (a = a.concat(b.getTouchAction()));
|
11500 |
-
}), Qb(a.join(" "));
|
11501 |
-
}, preventDefaults: function (a) {
|
11502 |
-
if (!Ib) {
|
11503 |
-
var b = a.srcEvent,
|
11504 |
-
c = a.offsetDirection;if (this.manager.session.prevented) return b.preventDefault(), void 0;var d = this.actions,
|
11505 |
-
e = w(d, Mb),
|
11506 |
-
f = w(d, Ob),
|
11507 |
-
g = w(d, Nb);return e || f && c & X || g && c & Y ? this.preventSrc(b) : void 0;
|
11508 |
-
}
|
11509 |
-
}, preventSrc: function (a) {
|
11510 |
-
this.manager.session.prevented = !0, a.preventDefault();
|
11511 |
-
} };var Rb = 1,
|
11512 |
-
Sb = 2,
|
11513 |
-
Tb = 4,
|
11514 |
-
Ub = 8,
|
11515 |
-
Vb = Ub,
|
11516 |
-
Wb = 16,
|
11517 |
-
Xb = 32;Yb.prototype = { defaults: {}, set: function (a) {
|
11518 |
-
return n(this.options, a), this.manager && this.manager.touchAction.update(), this;
|
11519 |
-
}, recognizeWith: function (a) {
|
11520 |
-
if (l(a, "recognizeWith", this)) return this;var b = this.simultaneous;return a = _b(a, this), b[a.id] || (b[a.id] = a, a.recognizeWith(this)), this;
|
11521 |
-
}, dropRecognizeWith: function (a) {
|
11522 |
-
return l(a, "dropRecognizeWith", this) ? this : (a = _b(a, this), delete this.simultaneous[a.id], this);
|
11523 |
-
}, requireFailure: function (a) {
|
11524 |
-
if (l(a, "requireFailure", this)) return this;var b = this.requireFail;return a = _b(a, this), -1 === y(b, a) && (b.push(a), a.requireFailure(this)), this;
|
11525 |
-
}, dropRequireFailure: function (a) {
|
11526 |
-
if (l(a, "dropRequireFailure", this)) return this;a = _b(a, this);var b = y(this.requireFail, a);return b > -1 && this.requireFail.splice(b, 1), this;
|
11527 |
-
}, hasRequireFailures: function () {
|
11528 |
-
return this.requireFail.length > 0;
|
11529 |
-
}, canRecognizeWith: function (a) {
|
11530 |
-
return !!this.simultaneous[a.id];
|
11531 |
-
}, emit: function (a) {
|
11532 |
-
function d(d) {
|
11533 |
-
b.manager.emit(b.options.event + (d ? Zb(c) : ""), a);
|
11534 |
-
}var b = this,
|
11535 |
-
c = this.state;Ub > c && d(!0), d(), c >= Ub && d(!0);
|
11536 |
-
}, tryEmit: function (a) {
|
11537 |
-
return this.canEmit() ? this.emit(a) : (this.state = Xb, void 0);
|
11538 |
-
}, canEmit: function () {
|
11539 |
-
for (var a = 0; a < this.requireFail.length;) {
|
11540 |
-
if (!(this.requireFail[a].state & (Xb | Rb))) return !1;a++;
|
11541 |
-
}return !0;
|
11542 |
-
}, recognize: function (a) {
|
11543 |
-
var b = n({}, a);return r(this.options.enable, [this, b]) ? (this.state & (Vb | Wb | Xb) && (this.state = Rb), this.state = this.process(b), this.state & (Sb | Tb | Ub | Wb) && this.tryEmit(b), void 0) : (this.reset(), this.state = Xb, void 0);
|
11544 |
-
}, process: function () {}, getTouchAction: function () {}, reset: function () {} }, p(ac, Yb, { defaults: { pointers: 1 }, attrTest: function (a) {
|
11545 |
-
var b = this.options.pointers;return 0 === b || a.pointers.length === b;
|
11546 |
-
}, process: function (a) {
|
11547 |
-
var b = this.state,
|
11548 |
-
c = a.eventType,
|
11549 |
-
d = b & (Sb | Tb),
|
11550 |
-
e = this.attrTest(a);return d && (c & R || !e) ? b | Wb : d || e ? c & Q ? b | Ub : b & Sb ? b | Tb : Sb : Xb;
|
11551 |
-
} }), p(bc, ac, { defaults: { event: "pan", threshold: 10, pointers: 1, direction: Z }, getTouchAction: function () {
|
11552 |
-
var a = this.options.direction,
|
11553 |
-
b = [];return a & X && b.push(Ob), a & Y && b.push(Nb), b;
|
11554 |
-
}, directionTest: function (a) {
|
11555 |
-
var b = this.options,
|
11556 |
-
c = !0,
|
11557 |
-
d = a.distance,
|
11558 |
-
e = a.direction,
|
11559 |
-
f = a.deltaX,
|
11560 |
-
g = a.deltaY;return e & b.direction || (b.direction & X ? (e = 0 === f ? S : 0 > f ? T : U, c = f != this.pX, d = Math.abs(a.deltaX)) : (e = 0 === g ? S : 0 > g ? V : W, c = g != this.pY, d = Math.abs(a.deltaY))), a.direction = e, c && d > b.threshold && e & b.direction;
|
11561 |
-
}, attrTest: function (a) {
|
11562 |
-
return ac.prototype.attrTest.call(this, a) && (this.state & Sb || !(this.state & Sb) && this.directionTest(a));
|
11563 |
-
}, emit: function (a) {
|
11564 |
-
this.pX = a.deltaX, this.pY = a.deltaY;var b = $b(a.direction);b && this.manager.emit(this.options.event + b, a), this._super.emit.call(this, a);
|
11565 |
-
} }), p(cc, ac, { defaults: { event: "pinch", threshold: 0, pointers: 2 }, getTouchAction: function () {
|
11566 |
-
return [Mb];
|
11567 |
-
}, attrTest: function (a) {
|
11568 |
-
return this._super.attrTest.call(this, a) && (Math.abs(a.scale - 1) > this.options.threshold || this.state & Sb);
|
11569 |
-
}, emit: function (a) {
|
11570 |
-
if (this._super.emit.call(this, a), 1 !== a.scale) {
|
11571 |
-
var b = a.scale < 1 ? "in" : "out";this.manager.emit(this.options.event + b, a);
|
11572 |
-
}
|
11573 |
-
} }), p(dc, Yb, { defaults: { event: "press", pointers: 1, time: 500, threshold: 5 }, getTouchAction: function () {
|
11574 |
-
return [Kb];
|
11575 |
-
}, process: function (a) {
|
11576 |
-
var b = this.options,
|
11577 |
-
c = a.pointers.length === b.pointers,
|
11578 |
-
d = a.distance < b.threshold,
|
11579 |
-
e = a.deltaTime > b.time;if (this._input = a, !d || !c || a.eventType & (Q | R) && !e) this.reset();else if (a.eventType & O) this.reset(), this._timer = k(function () {
|
11580 |
-
this.state = Vb, this.tryEmit();
|
11581 |
-
}, b.time, this);else if (a.eventType & Q) return Vb;return Xb;
|
11582 |
-
}, reset: function () {
|
11583 |
-
clearTimeout(this._timer);
|
11584 |
-
}, emit: function (a) {
|
11585 |
-
this.state === Vb && (a && a.eventType & Q ? this.manager.emit(this.options.event + "up", a) : (this._input.timeStamp = j(), this.manager.emit(this.options.event, this._input)));
|
11586 |
-
} }), p(ec, ac, { defaults: { event: "rotate", threshold: 0, pointers: 2 }, getTouchAction: function () {
|
11587 |
-
return [Mb];
|
11588 |
-
}, attrTest: function (a) {
|
11589 |
-
return this._super.attrTest.call(this, a) && (Math.abs(a.rotation) > this.options.threshold || this.state & Sb);
|
11590 |
-
} }), p(fc, ac, { defaults: { event: "swipe", threshold: 10, velocity: .65, direction: X | Y, pointers: 1 }, getTouchAction: function () {
|
11591 |
-
return bc.prototype.getTouchAction.call(this);
|
11592 |
-
}, attrTest: function (a) {
|
11593 |
-
var c,
|
11594 |
-
b = this.options.direction;return b & (X | Y) ? c = a.velocity : b & X ? c = a.velocityX : b & Y && (c = a.velocityY), this._super.attrTest.call(this, a) && b & a.direction && a.distance > this.options.threshold && i(c) > this.options.velocity && a.eventType & Q;
|
11595 |
-
}, emit: function (a) {
|
11596 |
-
var b = $b(a.direction);b && this.manager.emit(this.options.event + b, a), this.manager.emit(this.options.event, a);
|
11597 |
-
} }), p(gc, Yb, { defaults: { event: "tap", pointers: 1, taps: 1, interval: 300, time: 250, threshold: 2, posThreshold: 10 }, getTouchAction: function () {
|
11598 |
-
return [Lb];
|
11599 |
-
}, process: function (a) {
|
11600 |
-
var b = this.options,
|
11601 |
-
c = a.pointers.length === b.pointers,
|
11602 |
-
d = a.distance < b.threshold,
|
11603 |
-
e = a.deltaTime < b.time;if (this.reset(), a.eventType & O && 0 === this.count) return this.failTimeout();if (d && e && c) {
|
11604 |
-
if (a.eventType != Q) return this.failTimeout();var f = this.pTime ? a.timeStamp - this.pTime < b.interval : !0,
|
11605 |
-
g = !this.pCenter || kb(this.pCenter, a.center) < b.posThreshold;this.pTime = a.timeStamp, this.pCenter = a.center, g && f ? this.count += 1 : this.count = 1, this._input = a;var h = this.count % b.taps;if (0 === h) return this.hasRequireFailures() ? (this._timer = k(function () {
|
11606 |
-
this.state = Vb, this.tryEmit();
|
11607 |
-
}, b.interval, this), Sb) : Vb;
|
11608 |
-
}return Xb;
|
11609 |
-
}, failTimeout: function () {
|
11610 |
-
return this._timer = k(function () {
|
11611 |
-
this.state = Xb;
|
11612 |
-
}, this.options.interval, this), Xb;
|
11613 |
-
}, reset: function () {
|
11614 |
-
clearTimeout(this._timer);
|
11615 |
-
}, emit: function () {
|
11616 |
-
this.state == Vb && (this._input.tapCount = this.count, this.manager.emit(this.options.event, this._input));
|
11617 |
-
} }), hc.VERSION = "2.0.4", hc.defaults = { domEvents: !1, touchAction: Jb, enable: !0, inputTarget: null, inputClass: null, preset: [[ec, { enable: !1 }], [cc, { enable: !1 }, ["rotate"]], [fc, { direction: X }], [bc, { direction: X }, ["swipe"]], [gc], [gc, { event: "doubletap", taps: 2 }, ["tap"]], [dc]], cssProps: { userSelect: "default", touchSelect: "none", touchCallout: "none", contentZooming: "none", userDrag: "none", tapHighlightColor: "rgba(0,0,0,0)" } };var ic = 1,
|
11618 |
-
jc = 2;kc.prototype = { set: function (a) {
|
11619 |
-
return n(this.options, a), a.touchAction && this.touchAction.update(), a.inputTarget && (this.input.destroy(), this.input.target = a.inputTarget, this.input.init()), this;
|
11620 |
-
}, stop: function (a) {
|
11621 |
-
this.session.stopped = a ? jc : ic;
|
11622 |
-
}, recognize: function (a) {
|
11623 |
-
var b = this.session;if (!b.stopped) {
|
11624 |
-
this.touchAction.preventDefaults(a);var c,
|
11625 |
-
d = this.recognizers,
|
11626 |
-
e = b.curRecognizer;(!e || e && e.state & Vb) && (e = b.curRecognizer = null);for (var f = 0; f < d.length;) {
|
11627 |
-
c = d[f], b.stopped === jc || e && c != e && !c.canRecognizeWith(e) ? c.reset() : c.recognize(a), !e && c.state & (Sb | Tb | Ub) && (e = b.curRecognizer = c), f++;
|
11628 |
-
}
|
11629 |
-
}
|
11630 |
-
}, get: function (a) {
|
11631 |
-
if (a instanceof Yb) return a;for (var b = this.recognizers, c = 0; c < b.length; c++) {
|
11632 |
-
if (b[c].options.event == a) return b[c];
|
11633 |
-
}return null;
|
11634 |
-
}, add: function (a) {
|
11635 |
-
if (l(a, "add", this)) return this;var b = this.get(a.options.event);return b && this.remove(b), this.recognizers.push(a), a.manager = this, this.touchAction.update(), a;
|
11636 |
-
}, remove: function (a) {
|
11637 |
-
if (l(a, "remove", this)) return this;var b = this.recognizers;return a = this.get(a), b.splice(y(b, a), 1), this.touchAction.update(), this;
|
11638 |
-
}, on: function (a, b) {
|
11639 |
-
var c = this.handlers;return m(x(a), function (a) {
|
11640 |
-
c[a] = c[a] || [], c[a].push(b);
|
11641 |
-
}), this;
|
11642 |
-
}, off: function (a, b) {
|
11643 |
-
var c = this.handlers;return m(x(a), function (a) {
|
11644 |
-
b ? c[a].splice(y(c[a], b), 1) : delete c[a];
|
11645 |
-
}), this;
|
11646 |
-
}, emit: function (a, b) {
|
11647 |
-
this.options.domEvents && mc(a, b);var c = this.handlers[a] && this.handlers[a].slice();if (c && c.length) {
|
11648 |
-
b.type = a, b.preventDefault = function () {
|
11649 |
-
b.srcEvent.preventDefault();
|
11650 |
-
};for (var d = 0; d < c.length;) {
|
11651 |
-
c[d](b), d++;
|
11652 |
-
}
|
11653 |
-
}
|
11654 |
-
}, destroy: function () {
|
11655 |
-
this.element && lc(this, !1), this.handlers = {}, this.session = {}, this.input.destroy(), this.element = null;
|
11656 |
-
} }, n(hc, { INPUT_START: O, INPUT_MOVE: P, INPUT_END: Q, INPUT_CANCEL: R, STATE_POSSIBLE: Rb, STATE_BEGAN: Sb, STATE_CHANGED: Tb, STATE_ENDED: Ub, STATE_RECOGNIZED: Vb, STATE_CANCELLED: Wb, STATE_FAILED: Xb, DIRECTION_NONE: S, DIRECTION_LEFT: T, DIRECTION_RIGHT: U, DIRECTION_UP: V, DIRECTION_DOWN: W, DIRECTION_HORIZONTAL: X, DIRECTION_VERTICAL: Y, DIRECTION_ALL: Z, Manager: kc, Input: ab, TouchAction: Pb, TouchInput: Eb, MouseInput: rb, PointerEventInput: wb, TouchMouseInput: Gb, SingleTouchInput: Ab, Recognizer: Yb, AttrRecognizer: ac, Tap: gc, Pan: bc, Swipe: fc, Pinch: cc, Rotate: ec, Press: dc, on: t, off: u, each: m, merge: o, extend: n, inherit: p, bindFn: q, prefixed: B }), "function" == g && __webpack_require__(7) ? !(__WEBPACK_AMD_DEFINE_RESULT__ = function () {
|
11657 |
-
return hc;
|
11658 |
-
}.call(exports, __webpack_require__, exports, module),
|
11659 |
-
__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : "undefined" != typeof module && module.exports ? module.exports = hc : a[c] = hc;
|
11660 |
-
}(window, document, "Hammer");;(function (factory) {
|
11661 |
-
if (true) {
|
11662 |
-
!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(0), __webpack_require__(8)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),
|
11663 |
-
__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?
|
11664 |
-
(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),
|
11665 |
-
__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
|
11666 |
-
} else if (typeof exports === 'object') {
|
11667 |
-
factory(require('jquery'), require('hammerjs'));
|
11668 |
-
} else {
|
11669 |
-
factory(jQuery, Hammer);
|
11670 |
-
}
|
11671 |
-
})(function ($, Hammer) {
|
11672 |
-
function hammerify(el, options) {
|
11673 |
-
var $el = $(el);
|
11674 |
-
if (!$el.data("hammer")) {
|
11675 |
-
$el.data("hammer", new Hammer($el[0], options));
|
11676 |
-
}
|
11677 |
-
}
|
11678 |
-
|
11679 |
-
$.fn.hammer = function (options) {
|
11680 |
-
return this.each(function () {
|
11681 |
-
hammerify(this, options);
|
11682 |
-
});
|
11683 |
-
};
|
11684 |
-
|
11685 |
-
// extend the emit method to also trigger jQuery events
|
11686 |
-
Hammer.Manager.prototype.emit = function (originalEmit) {
|
11687 |
-
return function (type, data) {
|
11688 |
-
originalEmit.call(this, type, data);
|
11689 |
-
$(this.element).trigger({
|
11690 |
-
type: type,
|
11691 |
-
gesture: data
|
11692 |
-
});
|
11693 |
-
};
|
11694 |
-
}(Hammer.Manager.prototype.emit);
|
11695 |
-
});
|
11696 |
-
; // Required for Meteor package, the use of window prevents export by Meteor
|
11697 |
-
(function (window) {
|
11698 |
-
if (window.Package) {
|
11699 |
-
Materialize = {};
|
11700 |
-
} else {
|
11701 |
-
window.Materialize = {};
|
11702 |
-
}
|
11703 |
-
})(window);
|
11704 |
-
|
11705 |
-
/*
|
11706 |
-
* raf.js
|
11707 |
-
* https://github.com/ngryman/raf.js
|
11708 |
-
*
|
11709 |
-
* original requestAnimationFrame polyfill by Erik Möller
|
11710 |
-
* inspired from paul_irish gist and post
|
11711 |
-
*
|
11712 |
-
* Copyright (c) 2013 ngryman
|
11713 |
-
* Licensed under the MIT license.
|
11714 |
-
*/
|
11715 |
-
(function (window) {
|
11716 |
-
var lastTime = 0,
|
11717 |
-
vendors = ['webkit', 'moz'],
|
11718 |
-
requestAnimationFrame = window.requestAnimationFrame,
|
11719 |
-
cancelAnimationFrame = window.cancelAnimationFrame,
|
11720 |
-
i = vendors.length;
|
11721 |
-
|
11722 |
-
// try to un-prefix existing raf
|
11723 |
-
while (--i >= 0 && !requestAnimationFrame) {
|
11724 |
-
requestAnimationFrame = window[vendors[i] + 'RequestAnimationFrame'];
|
11725 |
-
cancelAnimationFrame = window[vendors[i] + 'CancelRequestAnimationFrame'];
|
11726 |
-
}
|
11727 |
-
|
11728 |
-
// polyfill with setTimeout fallback
|
11729 |
-
// heavily inspired from @darius gist mod: https://gist.github.com/paulirish/1579671#comment-837945
|
11730 |
-
if (!requestAnimationFrame || !cancelAnimationFrame) {
|
11731 |
-
requestAnimationFrame = function (callback) {
|
11732 |
-
var now = +Date.now(),
|
11733 |
-
nextTime = Math.max(lastTime + 16, now);
|
11734 |
-
return setTimeout(function () {
|
11735 |
-
callback(lastTime = nextTime);
|
11736 |
-
}, nextTime - now);
|
11737 |
-
};
|
11738 |
-
|
11739 |
-
cancelAnimationFrame = clearTimeout;
|
11740 |
-
}
|
11741 |
-
|
11742 |
-
// export to window
|
11743 |
-
window.requestAnimationFrame = requestAnimationFrame;
|
11744 |
-
window.cancelAnimationFrame = cancelAnimationFrame;
|
11745 |
-
})(window);
|
11746 |
-
|
11747 |
-
/**
|
11748 |
-
* Generate approximated selector string for a jQuery object
|
11749 |
-
* @param {jQuery} obj jQuery object to be parsed
|
11750 |
-
* @returns {string}
|
11751 |
-
*/
|
11752 |
-
Materialize.objectSelectorString = function (obj) {
|
11753 |
-
var tagStr = obj.prop('tagName') || '';
|
11754 |
-
var idStr = obj.attr('id') || '';
|
11755 |
-
var classStr = obj.attr('class') || '';
|
11756 |
-
return (tagStr + idStr + classStr).replace(/\s/g, '');
|
11757 |
-
};
|
11758 |
-
|
11759 |
-
// Unique Random ID
|
11760 |
-
Materialize.guid = function () {
|
11761 |
-
function s4() {
|
11762 |
-
return Math.floor((1 + Math.random()) * 0x10000).toString(16).substring(1);
|
11763 |
-
}
|
11764 |
-
return function () {
|
11765 |
-
return s4() + s4() + '-' + s4() + '-' + s4() + '-' + s4() + '-' + s4() + s4() + s4();
|
11766 |
-
};
|
11767 |
-
}();
|
11768 |
-
|
11769 |
-
/**
|
11770 |
-
* Escapes hash from special characters
|
11771 |
-
* @param {string} hash String returned from this.hash
|
11772 |
-
* @returns {string}
|
11773 |
-
*/
|
11774 |
-
Materialize.escapeHash = function (hash) {
|
11775 |
-
return hash.replace(/(:|\.|\[|\]|,|=)/g, "\\$1");
|
11776 |
-
};
|
11777 |
-
|
11778 |
-
Materialize.elementOrParentIsFixed = function (element) {
|
11779 |
-
var $element = $(element);
|
11780 |
-
var $checkElements = $element.add($element.parents());
|
11781 |
-
var isFixed = false;
|
11782 |
-
$checkElements.each(function () {
|
11783 |
-
if ($(this).css("position") === "fixed") {
|
11784 |
-
isFixed = true;
|
11785 |
-
return false;
|
11786 |
-
}
|
11787 |
-
});
|
11788 |
-
return isFixed;
|
11789 |
-
};
|
11790 |
-
|
11791 |
-
/**
|
11792 |
-
* Get time in ms
|
11793 |
-
* @license https://raw.github.com/jashkenas/underscore/master/LICENSE
|
11794 |
-
* @type {function}
|
11795 |
-
* @return {number}
|
11796 |
-
*/
|
11797 |
-
var getTime = Date.now || function () {
|
11798 |
-
return new Date().getTime();
|
11799 |
-
};
|
11800 |
-
|
11801 |
-
/**
|
11802 |
-
* Returns a function, that, when invoked, will only be triggered at most once
|
11803 |
-
* during a given window of time. Normally, the throttled function will run
|
11804 |
-
* as much as it can, without ever going more than once per `wait` duration;
|
11805 |
-
* but if you'd like to disable the execution on the leading edge, pass
|
11806 |
-
* `{leading: false}`. To disable execution on the trailing edge, ditto.
|
11807 |
-
* @license https://raw.github.com/jashkenas/underscore/master/LICENSE
|
11808 |
-
* @param {function} func
|
11809 |
-
* @param {number} wait
|
11810 |
-
* @param {Object=} options
|
11811 |
-
* @returns {Function}
|
11812 |
-
*/
|
11813 |
-
Materialize.throttle = function (func, wait, options) {
|
11814 |
-
var context, args, result;
|
11815 |
-
var timeout = null;
|
11816 |
-
var previous = 0;
|
11817 |
-
options || (options = {});
|
11818 |
-
var later = function () {
|
11819 |
-
previous = options.leading === false ? 0 : getTime();
|
11820 |
-
timeout = null;
|
11821 |
-
result = func.apply(context, args);
|
11822 |
-
context = args = null;
|
11823 |
-
};
|
11824 |
-
return function () {
|
11825 |
-
var now = getTime();
|
11826 |
-
if (!previous && options.leading === false) previous = now;
|
11827 |
-
var remaining = wait - (now - previous);
|
11828 |
-
context = this;
|
11829 |
-
args = arguments;
|
11830 |
-
if (remaining <= 0) {
|
11831 |
-
clearTimeout(timeout);
|
11832 |
-
timeout = null;
|
11833 |
-
previous = now;
|
11834 |
-
result = func.apply(context, args);
|
11835 |
-
context = args = null;
|
11836 |
-
} else if (!timeout && options.trailing !== false) {
|
11837 |
-
timeout = setTimeout(later, remaining);
|
11838 |
-
}
|
11839 |
-
return result;
|
11840 |
-
};
|
11841 |
-
};
|
11842 |
-
|
11843 |
-
// Velocity has conflicts when loaded with jQuery, this will check for it
|
11844 |
-
// First, check if in noConflict mode
|
11845 |
-
var Vel;
|
11846 |
-
if (jQuery) {
|
11847 |
-
Vel = jQuery.Velocity;
|
11848 |
-
} else if ($) {
|
11849 |
-
Vel = $.Velocity;
|
11850 |
-
} else {
|
11851 |
-
Vel = Velocity;
|
11852 |
-
}
|
11853 |
-
;(function ($) {
|
11854 |
-
$.fn.collapsible = function (options, methodParam) {
|
11855 |
-
var defaults = {
|
11856 |
-
accordion: undefined,
|
11857 |
-
onOpen: undefined,
|
11858 |
-
onClose: undefined
|
11859 |
-
};
|
11860 |
-
|
11861 |
-
var methodName = options;
|
11862 |
-
options = $.extend(defaults, options);
|
11863 |
-
|
11864 |
-
return this.each(function () {
|
11865 |
-
|
11866 |
-
var $this = $(this);
|
11867 |
-
|
11868 |
-
var $panel_headers = $(this).find('> li > .collapsible-header');
|
11869 |
-
|
11870 |
-
var collapsible_type = $this.data("collapsible");
|
11871 |
-
|
11872 |
-
/****************
|
11873 |
-
Helper Functions
|
11874 |
-
****************/
|
11875 |
-
|
11876 |
-
// Accordion Open
|
11877 |
-
function accordionOpen(object) {
|
11878 |
-
$panel_headers = $this.find('> li > .collapsible-header');
|
11879 |
-
if (object.hasClass('active')) {
|
11880 |
-
object.parent().addClass('active');
|
11881 |
-
} else {
|
11882 |
-
object.parent().removeClass('active');
|
11883 |
-
}
|
11884 |
-
if (object.parent().hasClass('active')) {
|
11885 |
-
object.siblings('.collapsible-body').stop(true, false).slideDown({ duration: 350, easing: "easeOutQuart", queue: false, complete: function () {
|
11886 |
-
$(this).css('height', '');
|
11887 |
-
} });
|
11888 |
-
} else {
|
11889 |
-
object.siblings('.collapsible-body').stop(true, false).slideUp({ duration: 350, easing: "easeOutQuart", queue: false, complete: function () {
|
11890 |
-
$(this).css('height', '');
|
11891 |
-
} });
|
11892 |
-
}
|
11893 |
-
|
11894 |
-
$panel_headers.not(object).removeClass('active').parent().removeClass('active');
|
11895 |
-
|
11896 |
-
// Close previously open accordion elements.
|
11897 |
-
$panel_headers.not(object).parent().children('.collapsible-body').stop(true, false).each(function () {
|
11898 |
-
if ($(this).is(':visible')) {
|
11899 |
-
$(this).slideUp({
|
11900 |
-
duration: 350,
|
11901 |
-
easing: "easeOutQuart",
|
11902 |
-
queue: false,
|
11903 |
-
complete: function () {
|
11904 |
-
$(this).css('height', '');
|
11905 |
-
execCallbacks($(this).siblings('.collapsible-header'));
|
11906 |
-
}
|
11907 |
-
});
|
11908 |
-
}
|
11909 |
-
});
|
11910 |
-
}
|
11911 |
-
|
11912 |
-
// Expandable Open
|
11913 |
-
function expandableOpen(object) {
|
11914 |
-
if (object.hasClass('active')) {
|
11915 |
-
object.parent().addClass('active');
|
11916 |
-
} else {
|
11917 |
-
object.parent().removeClass('active');
|
11918 |
-
}
|
11919 |
-
if (object.parent().hasClass('active')) {
|
11920 |
-
object.siblings('.collapsible-body').stop(true, false).slideDown({ duration: 350, easing: "easeOutQuart", queue: false, complete: function () {
|
11921 |
-
$(this).css('height', '');
|
11922 |
-
} });
|
11923 |
-
} else {
|
11924 |
-
object.siblings('.collapsible-body').stop(true, false).slideUp({ duration: 350, easing: "easeOutQuart", queue: false, complete: function () {
|
11925 |
-
$(this).css('height', '');
|
11926 |
-
} });
|
11927 |
-
}
|
11928 |
-
}
|
11929 |
-
|
11930 |
-
// Open collapsible. object: .collapsible-header
|
11931 |
-
function collapsibleOpen(object, noToggle) {
|
11932 |
-
if (!noToggle) {
|
11933 |
-
object.toggleClass('active');
|
11934 |
-
}
|
11935 |
-
|
11936 |
-
if (options.accordion || collapsible_type === "accordion" || collapsible_type === undefined) {
|
11937 |
-
// Handle Accordion
|
11938 |
-
accordionOpen(object);
|
11939 |
-
} else {
|
11940 |
-
// Handle Expandables
|
11941 |
-
expandableOpen(object);
|
11942 |
-
}
|
11943 |
-
|
11944 |
-
execCallbacks(object);
|
11945 |
-
}
|
11946 |
-
|
11947 |
-
// Handle callbacks
|
11948 |
-
function execCallbacks(object) {
|
11949 |
-
if (object.hasClass('active')) {
|
11950 |
-
if (typeof options.onOpen === "function") {
|
11951 |
-
options.onOpen.call(this, object.parent());
|
11952 |
-
}
|
11953 |
-
} else {
|
11954 |
-
if (typeof options.onClose === "function") {
|
11955 |
-
options.onClose.call(this, object.parent());
|
11956 |
-
}
|
11957 |
-
}
|
11958 |
-
}
|
11959 |
-
|
11960 |
-
/**
|
11961 |
-
* Check if object is children of panel header
|
11962 |
-
* @param {Object} object Jquery object
|
11963 |
-
* @return {Boolean} true if it is children
|
11964 |
-
*/
|
11965 |
-
function isChildrenOfPanelHeader(object) {
|
11966 |
-
|
11967 |
-
var panelHeader = getPanelHeader(object);
|
11968 |
-
|
11969 |
-
return panelHeader.length > 0;
|
11970 |
-
}
|
11971 |
-
|
11972 |
-
/**
|
11973 |
-
* Get panel header from a children element
|
11974 |
-
* @param {Object} object Jquery object
|
11975 |
-
* @return {Object} panel header object
|
11976 |
-
*/
|
11977 |
-
function getPanelHeader(object) {
|
11978 |
-
|
11979 |
-
return object.closest('li > .collapsible-header');
|
11980 |
-
}
|
11981 |
-
|
11982 |
-
// Turn off any existing event handlers
|
11983 |
-
function removeEventHandlers() {
|
11984 |
-
$this.off('click.collapse', '> li > .collapsible-header');
|
11985 |
-
}
|
11986 |
-
|
11987 |
-
/***** End Helper Functions *****/
|
11988 |
-
|
11989 |
-
// Methods
|
11990 |
-
if (methodName === 'destroy') {
|
11991 |
-
removeEventHandlers();
|
11992 |
-
return;
|
11993 |
-
} else if (methodParam >= 0 && methodParam < $panel_headers.length) {
|
11994 |
-
var $curr_header = $panel_headers.eq(methodParam);
|
11995 |
-
if ($curr_header.length && (methodName === 'open' || methodName === 'close' && $curr_header.hasClass('active'))) {
|
11996 |
-
collapsibleOpen($curr_header);
|
11997 |
-
}
|
11998 |
-
return;
|
11999 |
-
}
|
12000 |
-
|
12001 |
-
removeEventHandlers();
|
12002 |
-
|
12003 |
-
// Add click handler to only direct collapsible header children
|
12004 |
-
$this.on('click.collapse', '> li > .collapsible-header', function (e) {
|
12005 |
-
var element = $(e.target);
|
12006 |
-
|
12007 |
-
if (isChildrenOfPanelHeader(element)) {
|
12008 |
-
element = getPanelHeader(element);
|
12009 |
-
}
|
12010 |
-
|
12011 |
-
collapsibleOpen(element);
|
12012 |
-
});
|
12013 |
-
|
12014 |
-
// Open first active
|
12015 |
-
if (options.accordion || collapsible_type === "accordion" || collapsible_type === undefined) {
|
12016 |
-
// Handle Accordion
|
12017 |
-
collapsibleOpen($panel_headers.filter('.active').first(), true);
|
12018 |
-
} else {
|
12019 |
-
// Handle Expandables
|
12020 |
-
$panel_headers.filter('.active').each(function () {
|
12021 |
-
collapsibleOpen($(this), true);
|
12022 |
-
});
|
12023 |
-
}
|
12024 |
-
});
|
12025 |
-
};
|
12026 |
-
|
12027 |
-
$(document).ready(function () {
|
12028 |
-
$('.collapsible').collapsible();
|
12029 |
-
});
|
12030 |
-
})(jQuery);;(function ($) {
|
12031 |
-
|
12032 |
-
// Add posibility to scroll to selected option
|
12033 |
-
// usefull for select for example
|
12034 |
-
$.fn.scrollTo = function (elem) {
|
12035 |
-
$(this).scrollTop($(this).scrollTop() - $(this).offset().top + $(elem).offset().top);
|
12036 |
-
return this;
|
12037 |
-
};
|
12038 |
-
|
12039 |
-
$.fn.dropdown = function (options) {
|
12040 |
-
var defaults = {
|
12041 |
-
inDuration: 300,
|
12042 |
-
outDuration: 225,
|
12043 |
-
constrainWidth: true, // Constrains width of dropdown to the activator
|
12044 |
-
hover: false,
|
12045 |
-
gutter: 0, // Spacing from edge
|
12046 |
-
belowOrigin: false,
|
12047 |
-
alignment: 'left',
|
12048 |
-
stopPropagation: false
|
12049 |
-
};
|
12050 |
-
|
12051 |
-
// Open dropdown.
|
12052 |
-
if (options === "open") {
|
12053 |
-
this.each(function () {
|
12054 |
-
$(this).trigger('open');
|
12055 |
-
});
|
12056 |
-
return false;
|
12057 |
-
}
|
12058 |
-
|
12059 |
-
// Close dropdown.
|
12060 |
-
if (options === "close") {
|
12061 |
-
this.each(function () {
|
12062 |
-
$(this).trigger('close');
|
12063 |
-
});
|
12064 |
-
return false;
|
12065 |
-
}
|
12066 |
-
|
12067 |
-
this.each(function () {
|
12068 |
-
var origin = $(this);
|
12069 |
-
var curr_options = $.extend({}, defaults, options);
|
12070 |
-
var isFocused = false;
|
12071 |
-
|
12072 |
-
// Dropdown menu
|
12073 |
-
var activates = $("#" + origin.attr('data-activates'));
|
12074 |
-
|
12075 |
-
function updateOptions() {
|
12076 |
-
if (origin.data('induration') !== undefined) curr_options.inDuration = origin.data('induration');
|
12077 |
-
if (origin.data('outduration') !== undefined) curr_options.outDuration = origin.data('outduration');
|
12078 |
-
if (origin.data('constrainwidth') !== undefined) curr_options.constrainWidth = origin.data('constrainwidth');
|
12079 |
-
if (origin.data('hover') !== undefined) curr_options.hover = origin.data('hover');
|
12080 |
-
if (origin.data('gutter') !== undefined) curr_options.gutter = origin.data('gutter');
|
12081 |
-
if (origin.data('beloworigin') !== undefined) curr_options.belowOrigin = origin.data('beloworigin');
|
12082 |
-
if (origin.data('alignment') !== undefined) curr_options.alignment = origin.data('alignment');
|
12083 |
-
if (origin.data('stoppropagation') !== undefined) curr_options.stopPropagation = origin.data('stoppropagation');
|
12084 |
-
}
|
12085 |
-
|
12086 |
-
updateOptions();
|
12087 |
-
|
12088 |
-
// Attach dropdown to its activator
|
12089 |
-
origin.after(activates);
|
12090 |
-
|
12091 |
-
/*
|
12092 |
-
Helper function to position and resize dropdown.
|
12093 |
-
Used in hover and click handler.
|
12094 |
-
*/
|
12095 |
-
function placeDropdown(eventType) {
|
12096 |
-
// Check for simultaneous focus and click events.
|
12097 |
-
if (eventType === 'focus') {
|
12098 |
-
isFocused = true;
|
12099 |
-
}
|
12100 |
-
|
12101 |
-
// Check html data attributes
|
12102 |
-
updateOptions();
|
12103 |
-
|
12104 |
-
// Set Dropdown state
|
12105 |
-
activates.addClass('active');
|
12106 |
-
origin.addClass('active');
|
12107 |
-
|
12108 |
-
var originWidth = origin[0].getBoundingClientRect().width;
|
12109 |
-
|
12110 |
-
// Constrain width
|
12111 |
-
if (curr_options.constrainWidth === true) {
|
12112 |
-
activates.css('width', originWidth);
|
12113 |
-
} else {
|
12114 |
-
activates.css('white-space', 'nowrap');
|
12115 |
-
}
|
12116 |
-
|
12117 |
-
// Offscreen detection
|
12118 |
-
var windowHeight = window.innerHeight;
|
12119 |
-
var originHeight = origin.innerHeight();
|
12120 |
-
var offsetLeft = origin.offset().left;
|
12121 |
-
var offsetTop = origin.offset().top - $(window).scrollTop();
|
12122 |
-
var currAlignment = curr_options.alignment;
|
12123 |
-
var gutterSpacing = 0;
|
12124 |
-
var leftPosition = 0;
|
12125 |
-
|
12126 |
-
// Below Origin
|
12127 |
-
var verticalOffset = 0;
|
12128 |
-
if (curr_options.belowOrigin === true) {
|
12129 |
-
verticalOffset = originHeight;
|
12130 |
-
}
|
12131 |
-
|
12132 |
-
// Check for scrolling positioned container.
|
12133 |
-
var scrollYOffset = 0;
|
12134 |
-
var scrollXOffset = 0;
|
12135 |
-
var wrapper = origin.parent();
|
12136 |
-
if (!wrapper.is('body')) {
|
12137 |
-
if (wrapper[0].scrollHeight > wrapper[0].clientHeight) {
|
12138 |
-
scrollYOffset = wrapper[0].scrollTop;
|
12139 |
-
}
|
12140 |
-
if (wrapper[0].scrollWidth > wrapper[0].clientWidth) {
|
12141 |
-
scrollXOffset = wrapper[0].scrollLeft;
|
12142 |
-
}
|
12143 |
-
}
|
12144 |
-
|
12145 |
-
if (offsetLeft + activates.innerWidth() > $(window).width()) {
|
12146 |
-
// Dropdown goes past screen on right, force right alignment
|
12147 |
-
currAlignment = 'right';
|
12148 |
-
} else if (offsetLeft - activates.innerWidth() + origin.innerWidth() < 0) {
|
12149 |
-
// Dropdown goes past screen on left, force left alignment
|
12150 |
-
currAlignment = 'left';
|
12151 |
-
}
|
12152 |
-
// Vertical bottom offscreen detection
|
12153 |
-
if (offsetTop + activates.innerHeight() > windowHeight) {
|
12154 |
-
// If going upwards still goes offscreen, just crop height of dropdown.
|
12155 |
-
if (offsetTop + originHeight - activates.innerHeight() < 0) {
|
12156 |
-
var adjustedHeight = windowHeight - offsetTop - verticalOffset;
|
12157 |
-
activates.css('max-height', adjustedHeight);
|
12158 |
-
} else {
|
12159 |
-
// Flow upwards.
|
12160 |
-
if (!verticalOffset) {
|
12161 |
-
verticalOffset += originHeight;
|
12162 |
-
}
|
12163 |
-
verticalOffset -= activates.innerHeight();
|
12164 |
-
}
|
12165 |
-
}
|
12166 |
-
|
12167 |
-
// Handle edge alignment
|
12168 |
-
if (currAlignment === 'left') {
|
12169 |
-
gutterSpacing = curr_options.gutter;
|
12170 |
-
leftPosition = origin.position().left + gutterSpacing;
|
12171 |
-
} else if (currAlignment === 'right') {
|
12172 |
-
// Material icons fix
|
12173 |
-
activates.stop(true, true).css({
|
12174 |
-
opacity: 0,
|
12175 |
-
left: 0
|
12176 |
-
});
|
12177 |
-
|
12178 |
-
var offsetRight = origin.position().left + originWidth - activates.width();
|
12179 |
-
gutterSpacing = -curr_options.gutter;
|
12180 |
-
leftPosition = offsetRight + gutterSpacing;
|
12181 |
-
}
|
12182 |
-
|
12183 |
-
// Position dropdown
|
12184 |
-
activates.css({
|
12185 |
-
position: 'absolute',
|
12186 |
-
top: origin.position().top + verticalOffset + scrollYOffset,
|
12187 |
-
left: leftPosition + scrollXOffset
|
12188 |
-
});
|
12189 |
-
|
12190 |
-
// Show dropdown
|
12191 |
-
activates.slideDown({
|
12192 |
-
queue: false,
|
12193 |
-
duration: curr_options.inDuration,
|
12194 |
-
easing: 'easeOutCubic',
|
12195 |
-
complete: function () {
|
12196 |
-
$(this).css('height', '');
|
12197 |
-
}
|
12198 |
-
}).animate({ opacity: 1 }, { queue: false, duration: curr_options.inDuration, easing: 'easeOutSine' });
|
12199 |
-
|
12200 |
-
// Add click close handler to document
|
12201 |
-
setTimeout(function () {
|
12202 |
-
$(document).on('click.' + activates.attr('id'), function (e) {
|
12203 |
-
hideDropdown();
|
12204 |
-
$(document).off('click.' + activates.attr('id'));
|
12205 |
-
});
|
12206 |
-
}, 0);
|
12207 |
-
}
|
12208 |
-
|
12209 |
-
function hideDropdown() {
|
12210 |
-
// Check for simultaneous focus and click events.
|
12211 |
-
isFocused = false;
|
12212 |
-
activates.fadeOut(curr_options.outDuration);
|
12213 |
-
activates.removeClass('active');
|
12214 |
-
origin.removeClass('active');
|
12215 |
-
$(document).off('click.' + activates.attr('id'));
|
12216 |
-
setTimeout(function () {
|
12217 |
-
activates.css('max-height', '');
|
12218 |
-
}, curr_options.outDuration);
|
12219 |
-
}
|
12220 |
-
|
12221 |
-
// Hover
|
12222 |
-
if (curr_options.hover) {
|
12223 |
-
var open = false;
|
12224 |
-
origin.off('click.' + origin.attr('id'));
|
12225 |
-
// Hover handler to show dropdown
|
12226 |
-
origin.on('mouseenter', function (e) {
|
12227 |
-
// Mouse over
|
12228 |
-
if (open === false) {
|
12229 |
-
placeDropdown();
|
12230 |
-
open = true;
|
12231 |
-
}
|
12232 |
-
});
|
12233 |
-
origin.on('mouseleave', function (e) {
|
12234 |
-
// If hover on origin then to something other than dropdown content, then close
|
12235 |
-
var toEl = e.toElement || e.relatedTarget; // added browser compatibility for target element
|
12236 |
-
if (!$(toEl).closest('.dropdown-content').is(activates)) {
|
12237 |
-
activates.stop(true, true);
|
12238 |
-
hideDropdown();
|
12239 |
-
open = false;
|
12240 |
-
}
|
12241 |
-
});
|
12242 |
-
|
12243 |
-
activates.on('mouseleave', function (e) {
|
12244 |
-
// Mouse out
|
12245 |
-
var toEl = e.toElement || e.relatedTarget;
|
12246 |
-
if (!$(toEl).closest('.dropdown-button').is(origin)) {
|
12247 |
-
activates.stop(true, true);
|
12248 |
-
hideDropdown();
|
12249 |
-
open = false;
|
12250 |
-
}
|
12251 |
-
});
|
12252 |
-
|
12253 |
-
// Click
|
12254 |
-
} else {
|
12255 |
-
// Click handler to show dropdown
|
12256 |
-
origin.off('click.' + origin.attr('id'));
|
12257 |
-
origin.on('click.' + origin.attr('id'), function (e) {
|
12258 |
-
if (!isFocused) {
|
12259 |
-
if (origin[0] == e.currentTarget && !origin.hasClass('active') && $(e.target).closest('.dropdown-content').length === 0) {
|
12260 |
-
e.preventDefault(); // Prevents button click from moving window
|
12261 |
-
if (curr_options.stopPropagation) {
|
12262 |
-
e.stopPropagation();
|
12263 |
-
}
|
12264 |
-
placeDropdown('click');
|
12265 |
-
}
|
12266 |
-
// If origin is clicked and menu is open, close menu
|
12267 |
-
else if (origin.hasClass('active')) {
|
12268 |
-
hideDropdown();
|
12269 |
-
$(document).off('click.' + activates.attr('id'));
|
12270 |
-
}
|
12271 |
-
}
|
12272 |
-
});
|
12273 |
-
} // End else
|
12274 |
-
|
12275 |
-
// Listen to open and close event - useful for select component
|
12276 |
-
origin.on('open', function (e, eventType) {
|
12277 |
-
placeDropdown(eventType);
|
12278 |
-
});
|
12279 |
-
origin.on('close', hideDropdown);
|
12280 |
-
});
|
12281 |
-
}; // End dropdown plugin
|
12282 |
-
|
12283 |
-
$(document).ready(function () {
|
12284 |
-
$('.dropdown-button').dropdown();
|
12285 |
-
});
|
12286 |
-
})(jQuery);
|
12287 |
-
;(function ($) {
|
12288 |
-
'use strict';
|
12289 |
-
|
12290 |
-
var _defaults = {
|
12291 |
-
opacity: 0.5,
|
12292 |
-
inDuration: 250,
|
12293 |
-
outDuration: 250,
|
12294 |
-
ready: undefined,
|
12295 |
-
complete: undefined,
|
12296 |
-
dismissible: true,
|
12297 |
-
startingTop: '4%',
|
12298 |
-
endingTop: '10%'
|
12299 |
-
};
|
12300 |
-
|
12301 |
-
/**
|
12302 |
-
* @class
|
12303 |
-
*
|
12304 |
-
*/
|
12305 |
-
|
12306 |
-
var Modal = function () {
|
12307 |
-
/**
|
12308 |
-
* Construct Modal instance and set up overlay
|
12309 |
-
* @constructor
|
12310 |
-
* @param {jQuery} $el
|
12311 |
-
* @param {Object} options
|
12312 |
-
*/
|
12313 |
-
function Modal($el, options) {
|
12314 |
-
_classCallCheck(this, Modal);
|
12315 |
-
|
12316 |
-
// If exists, destroy and reinitialize
|
12317 |
-
if (!!$el[0].M_Modal) {
|
12318 |
-
$el[0].M_Modal.destroy();
|
12319 |
-
}
|
12320 |
-
|
12321 |
-
/**
|
12322 |
-
* The jQuery element
|
12323 |
-
* @type {jQuery}
|
12324 |
-
*/
|
12325 |
-
this.$el = $el;
|
12326 |
-
|
12327 |
-
/**
|
12328 |
-
* Options for the modal
|
12329 |
-
* @member Modal#options
|
12330 |
-
* @prop {Number} [opacity=0.5] - Opacity of the modal overlay
|
12331 |
-
* @prop {Number} [inDuration=250] - Length in ms of enter transition
|
12332 |
-
* @prop {Number} [outDuration=250] - Length in ms of exit transition
|
12333 |
-
* @prop {Function} ready - Callback function called when modal is finished entering
|
12334 |
-
* @prop {Function} complete - Callback function called when modal is finished exiting
|
12335 |
-
* @prop {Boolean} [dismissible=true] - Allow modal to be dismissed by keyboard or overlay click
|
12336 |
-
* @prop {String} [startingTop='4%'] - startingTop
|
12337 |
-
* @prop {String} [endingTop='10%'] - endingTop
|
12338 |
-
*/
|
12339 |
-
this.options = $.extend({}, Modal.defaults, options);
|
12340 |
-
|
12341 |
-
/**
|
12342 |
-
* Describes open/close state of modal
|
12343 |
-
* @type {Boolean}
|
12344 |
-
*/
|
12345 |
-
this.isOpen = false;
|
12346 |
-
|
12347 |
-
this.$el[0].M_Modal = this;
|
12348 |
-
this.id = $el.attr('id');
|
12349 |
-
this.openingTrigger = undefined;
|
12350 |
-
this.$overlay = $('<div class="modal-overlay"></div>');
|
12351 |
-
|
12352 |
-
Modal._increment++;
|
12353 |
-
Modal._count++;
|
12354 |
-
this.$overlay[0].style.zIndex = 1000 + Modal._increment * 2;
|
12355 |
-
this.$el[0].style.zIndex = 1000 + Modal._increment * 2 + 1;
|
12356 |
-
this.setupEventHandlers();
|
12357 |
-
}
|
12358 |
-
|
12359 |
-
_createClass(Modal, [{
|
12360 |
-
key: 'getInstance',
|
12361 |
-
|
12362 |
-
|
12363 |
-
/**
|
12364 |
-
* Get Instance
|
12365 |
-
*/
|
12366 |
-
value: function getInstance() {
|
12367 |
-
return this;
|
12368 |
-
}
|
12369 |
-
|
12370 |
-
/**
|
12371 |
-
* Teardown component
|
12372 |
-
*/
|
12373 |
-
|
12374 |
-
}, {
|
12375 |
-
key: 'destroy',
|
12376 |
-
value: function destroy() {
|
12377 |
-
this.removeEventHandlers();
|
12378 |
-
this.$el[0].removeAttribute('style');
|
12379 |
-
if (!!this.$overlay[0].parentNode) {
|
12380 |
-
this.$overlay[0].parentNode.removeChild(this.$overlay[0]);
|
12381 |
-
}
|
12382 |
-
this.$el[0].M_Modal = undefined;
|
12383 |
-
Modal._count--;
|
12384 |
-
}
|
12385 |
-
|
12386 |
-
/**
|
12387 |
-
* Setup Event Handlers
|
12388 |
-
*/
|
12389 |
-
|
12390 |
-
}, {
|
12391 |
-
key: 'setupEventHandlers',
|
12392 |
-
value: function setupEventHandlers() {
|
12393 |
-
this.handleOverlayClickBound = this.handleOverlayClick.bind(this);
|
12394 |
-
this.handleModalCloseClickBound = this.handleModalCloseClick.bind(this);
|
12395 |
-
|
12396 |
-
if (Modal._count === 1) {
|
12397 |
-
document.addEventListener('click', this.handleTriggerClick);
|
12398 |
-
}
|
12399 |
-
this.$overlay[0].addEventListener('click', this.handleOverlayClickBound);
|
12400 |
-
this.$el[0].addEventListener('click', this.handleModalCloseClickBound);
|
12401 |
-
}
|
12402 |
-
|
12403 |
-
/**
|
12404 |
-
* Remove Event Handlers
|
12405 |
-
*/
|
12406 |
-
|
12407 |
-
}, {
|
12408 |
-
key: 'removeEventHandlers',
|
12409 |
-
value: function removeEventHandlers() {
|
12410 |
-
if (Modal._count === 0) {
|
12411 |
-
document.removeEventListener('click', this.handleTriggerClick);
|
12412 |
-
}
|
12413 |
-
this.$overlay[0].removeEventListener('click', this.handleOverlayClickBound);
|
12414 |
-
this.$el[0].removeEventListener('click', this.handleModalCloseClickBound);
|
12415 |
-
}
|
12416 |
-
|
12417 |
-
/**
|
12418 |
-
* Handle Trigger Click
|
12419 |
-
* @param {Event} e
|
12420 |
-
*/
|
12421 |
-
|
12422 |
-
}, {
|
12423 |
-
key: 'handleTriggerClick',
|
12424 |
-
value: function handleTriggerClick(e) {
|
12425 |
-
var $trigger = $(e.target).closest('.modal-trigger');
|
12426 |
-
if (e.target && $trigger.length) {
|
12427 |
-
var modalId = $trigger[0].getAttribute('href');
|
12428 |
-
if (modalId) {
|
12429 |
-
modalId = modalId.slice(1);
|
12430 |
-
} else {
|
12431 |
-
modalId = $trigger[0].getAttribute('data-target');
|
12432 |
-
}
|
12433 |
-
var modalInstance = document.getElementById(modalId).M_Modal;
|
12434 |
-
if (modalInstance) {
|
12435 |
-
modalInstance.open($trigger);
|
12436 |
-
}
|
12437 |
-
e.preventDefault();
|
12438 |
-
}
|
12439 |
-
}
|
12440 |
-
|
12441 |
-
/**
|
12442 |
-
* Handle Overlay Click
|
12443 |
-
*/
|
12444 |
-
|
12445 |
-
}, {
|
12446 |
-
key: 'handleOverlayClick',
|
12447 |
-
value: function handleOverlayClick() {
|
12448 |
-
if (this.options.dismissible) {
|
12449 |
-
this.close();
|
12450 |
-
}
|
12451 |
-
}
|
12452 |
-
|
12453 |
-
/**
|
12454 |
-
* Handle Modal Close Click
|
12455 |
-
* @param {Event} e
|
12456 |
-
*/
|
12457 |
-
|
12458 |
-
}, {
|
12459 |
-
key: 'handleModalCloseClick',
|
12460 |
-
value: function handleModalCloseClick(e) {
|
12461 |
-
var $closeTrigger = $(e.target).closest('.modal-close');
|
12462 |
-
if (e.target && $closeTrigger.length) {
|
12463 |
-
this.close();
|
12464 |
-
}
|
12465 |
-
}
|
12466 |
-
|
12467 |
-
/**
|
12468 |
-
* Handle Keydown
|
12469 |
-
* @param {Event} e
|
12470 |
-
*/
|
12471 |
-
|
12472 |
-
}, {
|
12473 |
-
key: 'handleKeydown',
|
12474 |
-
value: function handleKeydown(e) {
|
12475 |
-
// ESC key
|
12476 |
-
if (e.keyCode === 27 && this.options.dismissible) {
|
12477 |
-
this.close();
|
12478 |
-
}
|
12479 |
-
}
|
12480 |
-
|
12481 |
-
/**
|
12482 |
-
* Animate in modal
|
12483 |
-
*/
|
12484 |
-
|
12485 |
-
}, {
|
12486 |
-
key: 'animateIn',
|
12487 |
-
value: function animateIn() {
|
12488 |
-
var _this = this;
|
12489 |
-
|
12490 |
-
// Set initial styles
|
12491 |
-
$.extend(this.$el[0].style, {
|
12492 |
-
display: 'block',
|
12493 |
-
opacity: 0
|
12494 |
-
});
|
12495 |
-
$.extend(this.$overlay[0].style, {
|
12496 |
-
display: 'block',
|
12497 |
-
opacity: 0
|
12498 |
-
});
|
12499 |
-
|
12500 |
-
// Animate overlay
|
12501 |
-
Vel(this.$overlay[0], { opacity: this.options.opacity }, { duration: this.options.inDuration, queue: false, ease: 'easeOutCubic' });
|
12502 |
-
|
12503 |
-
// Define modal animation options
|
12504 |
-
var enterVelocityOptions = {
|
12505 |
-
duration: this.options.inDuration,
|
12506 |
-
queue: false,
|
12507 |
-
ease: 'easeOutCubic',
|
12508 |
-
// Handle modal ready callback
|
12509 |
-
complete: function () {
|
12510 |
-
if (typeof _this.options.ready === 'function') {
|
12511 |
-
_this.options.ready.call(_this, _this.$el, _this.openingTrigger);
|
12512 |
-
}
|
12513 |
-
}
|
12514 |
-
};
|
12515 |
-
|
12516 |
-
// Bottom sheet animation
|
12517 |
-
if (this.$el[0].classList.contains('bottom-sheet')) {
|
12518 |
-
Vel(this.$el[0], { bottom: 0, opacity: 1 }, enterVelocityOptions);
|
12519 |
-
|
12520 |
-
// Normal modal animation
|
12521 |
-
} else {
|
12522 |
-
Vel.hook(this.$el[0], 'scaleX', 0.7);
|
12523 |
-
this.$el[0].style.top = this.options.startingTop;
|
12524 |
-
Vel(this.$el[0], { top: this.options.endingTop, opacity: 1, scaleX: 1 }, enterVelocityOptions);
|
12525 |
-
}
|
12526 |
-
}
|
12527 |
-
|
12528 |
-
/**
|
12529 |
-
* Animate out modal
|
12530 |
-
*/
|
12531 |
-
|
12532 |
-
}, {
|
12533 |
-
key: 'animateOut',
|
12534 |
-
value: function animateOut() {
|
12535 |
-
var _this2 = this;
|
12536 |
-
|
12537 |
-
// Animate overlay
|
12538 |
-
Vel(this.$overlay[0], { opacity: 0 }, { duration: this.options.outDuration, queue: false, ease: 'easeOutQuart' });
|
12539 |
-
|
12540 |
-
// Define modal animation options
|
12541 |
-
var exitVelocityOptions = {
|
12542 |
-
duration: this.options.outDuration,
|
12543 |
-
queue: false,
|
12544 |
-
ease: 'easeOutCubic',
|
12545 |
-
// Handle modal ready callback
|
12546 |
-
complete: function () {
|
12547 |
-
_this2.$el[0].style.display = 'none';
|
12548 |
-
// Call complete callback
|
12549 |
-
if (typeof _this2.options.complete === 'function') {
|
12550 |
-
_this2.options.complete.call(_this2, _this2.$el);
|
12551 |
-
}
|
12552 |
-
_this2.$overlay[0].remove();
|
12553 |
-
}
|
12554 |
-
};
|
12555 |
-
|
12556 |
-
// Bottom sheet animation
|
12557 |
-
if (this.$el[0].classList.contains('bottom-sheet')) {
|
12558 |
-
Vel(this.$el[0], { bottom: '-100%', opacity: 0 }, exitVelocityOptions);
|
12559 |
-
|
12560 |
-
// Normal modal animation
|
12561 |
-
} else {
|
12562 |
-
Vel(this.$el[0], { top: this.options.startingTop, opacity: 0, scaleX: 0.7 }, exitVelocityOptions);
|
12563 |
-
}
|
12564 |
-
}
|
12565 |
-
|
12566 |
-
/**
|
12567 |
-
* Open Modal
|
12568 |
-
* @param {jQuery} [$trigger]
|
12569 |
-
*/
|
12570 |
-
|
12571 |
-
}, {
|
12572 |
-
key: 'open',
|
12573 |
-
value: function open($trigger) {
|
12574 |
-
if (this.isOpen) {
|
12575 |
-
return;
|
12576 |
-
}
|
12577 |
-
|
12578 |
-
this.isOpen = true;
|
12579 |
-
var body = document.body;
|
12580 |
-
body.style.overflow = 'hidden';
|
12581 |
-
this.$el[0].classList.add('open');
|
12582 |
-
body.appendChild(this.$overlay[0]);
|
12583 |
-
|
12584 |
-
// Set opening trigger, undefined indicates modal was opened by javascript
|
12585 |
-
this.openingTrigger = !!$trigger ? $trigger : undefined;
|
12586 |
-
|
12587 |
-
if (this.options.dismissible) {
|
12588 |
-
this.handleKeydownBound = this.handleKeydown.bind(this);
|
12589 |
-
document.addEventListener('keydown', this.handleKeydownBound);
|
12590 |
-
}
|
12591 |
-
|
12592 |
-
this.animateIn();
|
12593 |
-
|
12594 |
-
return this;
|
12595 |
-
}
|
12596 |
-
|
12597 |
-
/**
|
12598 |
-
* Close Modal
|
12599 |
-
*/
|
12600 |
-
|
12601 |
-
}, {
|
12602 |
-
key: 'close',
|
12603 |
-
value: function close() {
|
12604 |
-
if (!this.isOpen) {
|
12605 |
-
return;
|
12606 |
-
}
|
12607 |
-
|
12608 |
-
this.isOpen = false;
|
12609 |
-
this.$el[0].classList.remove('open');
|
12610 |
-
document.body.style.overflow = null;
|
12611 |
-
|
12612 |
-
if (this.options.dismissible) {
|
12613 |
-
document.removeEventListener('keydown', this.handleKeydownBound);
|
12614 |
-
}
|
12615 |
-
|
12616 |
-
this.animateOut();
|
12617 |
-
|
12618 |
-
return this;
|
12619 |
-
}
|
12620 |
-
}], [{
|
12621 |
-
key: 'init',
|
12622 |
-
value: function init($els, options) {
|
12623 |
-
var arr = [];
|
12624 |
-
$els.each(function () {
|
12625 |
-
arr.push(new Modal($(this), options));
|
12626 |
-
});
|
12627 |
-
return arr;
|
12628 |
-
}
|
12629 |
-
}, {
|
12630 |
-
key: 'defaults',
|
12631 |
-
get: function () {
|
12632 |
-
return _defaults;
|
12633 |
-
}
|
12634 |
-
}]);
|
12635 |
-
|
12636 |
-
return Modal;
|
12637 |
-
}();
|
12638 |
-
|
12639 |
-
/**
|
12640 |
-
* @static
|
12641 |
-
* @memberof Modal
|
12642 |
-
*/
|
12643 |
-
|
12644 |
-
|
12645 |
-
Modal._increment = 0;
|
12646 |
-
|
12647 |
-
/**
|
12648 |
-
* @static
|
12649 |
-
* @memberof Modal
|
12650 |
-
*/
|
12651 |
-
Modal._count = 0;
|
12652 |
-
|
12653 |
-
window.Materialize.Modal = Modal;
|
12654 |
-
|
12655 |
-
$.fn.modal = function (methodOrOptions) {
|
12656 |
-
// Call plugin method if valid method name is passed in
|
12657 |
-
if (Modal.prototype[methodOrOptions]) {
|
12658 |
-
// Getter methods
|
12659 |
-
if (methodOrOptions.slice(0, 3) === 'get') {
|
12660 |
-
return this.first()[0].M_Modal[methodOrOptions]();
|
12661 |
-
|
12662 |
-
// Void methods
|
12663 |
-
} else {
|
12664 |
-
return this.each(function () {
|
12665 |
-
this.M_Modal[methodOrOptions]();
|
12666 |
-
});
|
12667 |
-
}
|
12668 |
-
|
12669 |
-
// Initialize plugin if options or no argument is passed in
|
12670 |
-
} else if (typeof methodOrOptions === 'object' || !methodOrOptions) {
|
12671 |
-
Modal.init(this, arguments[0]);
|
12672 |
-
return this;
|
12673 |
-
|
12674 |
-
// Return error if an unrecognized method name is passed in
|
12675 |
-
} else {
|
12676 |
-
$.error('Method ' + methodOrOptions + ' does not exist on jQuery.modal');
|
12677 |
-
}
|
12678 |
-
};
|
12679 |
-
})(jQuery);
|
12680 |
-
;(function ($) {
|
12681 |
-
|
12682 |
-
$.fn.materialbox = function () {
|
12683 |
-
|
12684 |
-
return this.each(function () {
|
12685 |
-
|
12686 |
-
if ($(this).hasClass('initialized')) {
|
12687 |
-
return;
|
12688 |
-
}
|
12689 |
-
|
12690 |
-
$(this).addClass('initialized');
|
12691 |
-
|
12692 |
-
var overlayActive = false;
|
12693 |
-
var doneAnimating = true;
|
12694 |
-
var inDuration = 275;
|
12695 |
-
var outDuration = 200;
|
12696 |
-
var origin = $(this);
|
12697 |
-
var placeholder = $('<div></div>').addClass('material-placeholder');
|
12698 |
-
var originalWidth = 0;
|
12699 |
-
var originalHeight = 0;
|
12700 |
-
var ancestorsChanged;
|
12701 |
-
var ancestor;
|
12702 |
-
var originInlineStyles = origin.attr('style');
|
12703 |
-
origin.wrap(placeholder);
|
12704 |
-
|
12705 |
-
// Start click handler
|
12706 |
-
origin.on('click', function () {
|
12707 |
-
var placeholder = origin.parent('.material-placeholder');
|
12708 |
-
var windowWidth = window.innerWidth;
|
12709 |
-
var windowHeight = window.innerHeight;
|
12710 |
-
var originalWidth = origin.width();
|
12711 |
-
var originalHeight = origin.height();
|
12712 |
-
|
12713 |
-
// If already modal, return to original
|
12714 |
-
if (doneAnimating === false) {
|
12715 |
-
returnToOriginal();
|
12716 |
-
return false;
|
12717 |
-
} else if (overlayActive && doneAnimating === true) {
|
12718 |
-
returnToOriginal();
|
12719 |
-
return false;
|
12720 |
-
}
|
12721 |
-
|
12722 |
-
// Set states
|
12723 |
-
doneAnimating = false;
|
12724 |
-
origin.addClass('active');
|
12725 |
-
overlayActive = true;
|
12726 |
-
|
12727 |
-
// Set positioning for placeholder
|
12728 |
-
placeholder.css({
|
12729 |
-
width: placeholder[0].getBoundingClientRect().width,
|
12730 |
-
height: placeholder[0].getBoundingClientRect().height,
|
12731 |
-
position: 'relative',
|
12732 |
-
top: 0,
|
12733 |
-
left: 0
|
12734 |
-
});
|
12735 |
-
|
12736 |
-
// Find ancestor with overflow: hidden; and remove it
|
12737 |
-
ancestorsChanged = undefined;
|
12738 |
-
ancestor = placeholder[0].parentNode;
|
12739 |
-
var count = 0;
|
12740 |
-
while (ancestor !== null && !$(ancestor).is(document)) {
|
12741 |
-
var curr = $(ancestor);
|
12742 |
-
if (curr.css('overflow') !== 'visible') {
|
12743 |
-
curr.css('overflow', 'visible');
|
12744 |
-
if (ancestorsChanged === undefined) {
|
12745 |
-
ancestorsChanged = curr;
|
12746 |
-
} else {
|
12747 |
-
ancestorsChanged = ancestorsChanged.add(curr);
|
12748 |
-
}
|
12749 |
-
}
|
12750 |
-
ancestor = ancestor.parentNode;
|
12751 |
-
}
|
12752 |
-
|
12753 |
-
// Set css on origin
|
12754 |
-
origin.css({
|
12755 |
-
position: 'absolute',
|
12756 |
-
'z-index': 1000,
|
12757 |
-
'will-change': 'left, top, width, height'
|
12758 |
-
}).data('width', originalWidth).data('height', originalHeight);
|
12759 |
-
|
12760 |
-
// Add overlay
|
12761 |
-
var overlay = $('<div id="materialbox-overlay"></div>').css({
|
12762 |
-
opacity: 0
|
12763 |
-
}).click(function () {
|
12764 |
-
if (doneAnimating === true) returnToOriginal();
|
12765 |
-
});
|
12766 |
-
|
12767 |
-
// Put before in origin image to preserve z-index layering.
|
12768 |
-
origin.before(overlay);
|
12769 |
-
|
12770 |
-
// Set dimensions if needed
|
12771 |
-
var overlayOffset = overlay[0].getBoundingClientRect();
|
12772 |
-
overlay.css({
|
12773 |
-
width: windowWidth,
|
12774 |
-
height: windowHeight,
|
12775 |
-
left: -1 * overlayOffset.left,
|
12776 |
-
top: -1 * overlayOffset.top
|
12777 |
-
});
|
12778 |
-
|
12779 |
-
// Animate Overlay
|
12780 |
-
overlay.velocity({ opacity: 1 }, { duration: inDuration, queue: false, easing: 'easeOutQuad' });
|
12781 |
-
|
12782 |
-
// Add and animate caption if it exists
|
12783 |
-
if (origin.data('caption') !== "") {
|
12784 |
-
var $photo_caption = $('<div class="materialbox-caption"></div>');
|
12785 |
-
$photo_caption.text(origin.data('caption'));
|
12786 |
-
$('body').append($photo_caption);
|
12787 |
-
$photo_caption.css({ "display": "inline" });
|
12788 |
-
$photo_caption.velocity({ opacity: 1 }, { duration: inDuration, queue: false, easing: 'easeOutQuad' });
|
12789 |
-
}
|
12790 |
-
|
12791 |
-
// Resize Image
|
12792 |
-
var ratio = 0;
|
12793 |
-
var widthPercent = originalWidth / windowWidth;
|
12794 |
-
var heightPercent = originalHeight / windowHeight;
|
12795 |
-
var newWidth = 0;
|
12796 |
-
var newHeight = 0;
|
12797 |
-
|
12798 |
-
if (widthPercent > heightPercent) {
|
12799 |
-
ratio = originalHeight / originalWidth;
|
12800 |
-
newWidth = windowWidth * 0.9;
|
12801 |
-
newHeight = windowWidth * 0.9 * ratio;
|
12802 |
-
} else {
|
12803 |
-
ratio = originalWidth / originalHeight;
|
12804 |
-
newWidth = windowHeight * 0.9 * ratio;
|
12805 |
-
newHeight = windowHeight * 0.9;
|
12806 |
-
}
|
12807 |
-
|
12808 |
-
// Animate image + set z-index
|
12809 |
-
if (origin.hasClass('responsive-img')) {
|
12810 |
-
origin.velocity({ 'max-width': newWidth, 'width': originalWidth }, { duration: 0, queue: false,
|
12811 |
-
complete: function () {
|
12812 |
-
origin.css({ left: 0, top: 0 }).velocity({
|
12813 |
-
height: newHeight,
|
12814 |
-
width: newWidth,
|
12815 |
-
left: $(document).scrollLeft() + windowWidth / 2 - origin.parent('.material-placeholder').offset().left - newWidth / 2,
|
12816 |
-
top: $(document).scrollTop() + windowHeight / 2 - origin.parent('.material-placeholder').offset().top - newHeight / 2
|
12817 |
-
}, {
|
12818 |
-
duration: inDuration,
|
12819 |
-
queue: false,
|
12820 |
-
easing: 'easeOutQuad',
|
12821 |
-
complete: function () {
|
12822 |
-
doneAnimating = true;
|
12823 |
-
}
|
12824 |
-
});
|
12825 |
-
} // End Complete
|
12826 |
-
}); // End Velocity
|
12827 |
-
} else {
|
12828 |
-
origin.css('left', 0).css('top', 0).velocity({
|
12829 |
-
height: newHeight,
|
12830 |
-
width: newWidth,
|
12831 |
-
left: $(document).scrollLeft() + windowWidth / 2 - origin.parent('.material-placeholder').offset().left - newWidth / 2,
|
12832 |
-
top: $(document).scrollTop() + windowHeight / 2 - origin.parent('.material-placeholder').offset().top - newHeight / 2
|
12833 |
-
}, {
|
12834 |
-
duration: inDuration,
|
12835 |
-
queue: false,
|
12836 |
-
easing: 'easeOutQuad',
|
12837 |
-
complete: function () {
|
12838 |
-
doneAnimating = true;
|
12839 |
-
}
|
12840 |
-
}); // End Velocity
|
12841 |
-
}
|
12842 |
-
|
12843 |
-
// Handle Exit triggers
|
12844 |
-
$(window).on('scroll.materialbox', function () {
|
12845 |
-
if (overlayActive) {
|
12846 |
-
returnToOriginal();
|
12847 |
-
}
|
12848 |
-
});
|
12849 |
-
|
12850 |
-
$(window).on('resize.materialbox', function () {
|
12851 |
-
if (overlayActive) {
|
12852 |
-
returnToOriginal();
|
12853 |
-
}
|
12854 |
-
});
|
12855 |
-
|
12856 |
-
$(document).on('keyup.materialbox', function (e) {
|
12857 |
-
// ESC key
|
12858 |
-
if (e.keyCode === 27 && doneAnimating === true && overlayActive) {
|
12859 |
-
returnToOriginal();
|
12860 |
-
}
|
12861 |
-
});
|
12862 |
-
}); // End click handler
|
12863 |
-
|
12864 |
-
|
12865 |
-
// This function returns the modaled image to the original spot
|
12866 |
-
function returnToOriginal() {
|
12867 |
-
|
12868 |
-
doneAnimating = false;
|
12869 |
-
|
12870 |
-
var placeholder = origin.parent('.material-placeholder');
|
12871 |
-
var windowWidth = window.innerWidth;
|
12872 |
-
var windowHeight = window.innerHeight;
|
12873 |
-
var originalWidth = origin.data('width');
|
12874 |
-
var originalHeight = origin.data('height');
|
12875 |
-
|
12876 |
-
origin.velocity("stop", true);
|
12877 |
-
$('#materialbox-overlay').velocity("stop", true);
|
12878 |
-
$('.materialbox-caption').velocity("stop", true);
|
12879 |
-
|
12880 |
-
// disable exit handlers
|
12881 |
-
$(window).off('scroll.materialbox');
|
12882 |
-
$(document).off('keyup.materialbox');
|
12883 |
-
$(window).off('resize.materialbox');
|
12884 |
-
|
12885 |
-
$('#materialbox-overlay').velocity({ opacity: 0 }, {
|
12886 |
-
duration: outDuration, // Delay prevents animation overlapping
|
12887 |
-
queue: false, easing: 'easeOutQuad',
|
12888 |
-
complete: function () {
|
12889 |
-
// Remove Overlay
|
12890 |
-
overlayActive = false;
|
12891 |
-
$(this).remove();
|
12892 |
-
}
|
12893 |
-
});
|
12894 |
-
|
12895 |
-
// Resize Image
|
12896 |
-
origin.velocity({
|
12897 |
-
width: originalWidth,
|
12898 |
-
height: originalHeight,
|
12899 |
-
left: 0,
|
12900 |
-
top: 0
|
12901 |
-
}, {
|
12902 |
-
duration: outDuration,
|
12903 |
-
queue: false, easing: 'easeOutQuad',
|
12904 |
-
complete: function () {
|
12905 |
-
placeholder.css({
|
12906 |
-
height: '',
|
12907 |
-
width: '',
|
12908 |
-
position: '',
|
12909 |
-
top: '',
|
12910 |
-
left: ''
|
12911 |
-
});
|
12912 |
-
|
12913 |
-
origin.removeAttr('style');
|
12914 |
-
origin.attr('style', originInlineStyles);
|
12915 |
-
|
12916 |
-
// Remove class
|
12917 |
-
origin.removeClass('active');
|
12918 |
-
doneAnimating = true;
|
12919 |
-
|
12920 |
-
// Remove overflow overrides on ancestors
|
12921 |
-
if (ancestorsChanged) {
|
12922 |
-
ancestorsChanged.css('overflow', '');
|
12923 |
-
}
|
12924 |
-
}
|
12925 |
-
});
|
12926 |
-
|
12927 |
-
// Remove Caption + reset css settings on image
|
12928 |
-
$('.materialbox-caption').velocity({ opacity: 0 }, {
|
12929 |
-
duration: outDuration, // Delay prevents animation overlapping
|
12930 |
-
queue: false, easing: 'easeOutQuad',
|
12931 |
-
complete: function () {
|
12932 |
-
$(this).remove();
|
12933 |
-
}
|
12934 |
-
});
|
12935 |
-
}
|
12936 |
-
});
|
12937 |
-
};
|
12938 |
-
|
12939 |
-
$(document).ready(function () {
|
12940 |
-
$('.materialboxed').materialbox();
|
12941 |
-
});
|
12942 |
-
})(jQuery);
|
12943 |
-
;(function ($) {
|
12944 |
-
|
12945 |
-
$.fn.parallax = function () {
|
12946 |
-
var window_width = $(window).width();
|
12947 |
-
// Parallax Scripts
|
12948 |
-
return this.each(function (i) {
|
12949 |
-
var $this = $(this);
|
12950 |
-
$this.addClass('parallax');
|
12951 |
-
|
12952 |
-
function updateParallax(initial) {
|
12953 |
-
var container_height;
|
12954 |
-
if (window_width < 601) {
|
12955 |
-
container_height = $this.height() > 0 ? $this.height() : $this.children("img").height();
|
12956 |
-
} else {
|
12957 |
-
container_height = $this.height() > 0 ? $this.height() : 500;
|
12958 |
-
}
|
12959 |
-
var $img = $this.children("img").first();
|
12960 |
-
var img_height = $img.height();
|
12961 |
-
var parallax_dist = img_height - container_height;
|
12962 |
-
var bottom = $this.offset().top + container_height;
|
12963 |
-
var top = $this.offset().top;
|
12964 |
-
var scrollTop = $(window).scrollTop();
|
12965 |
-
var windowHeight = window.innerHeight;
|
12966 |
-
var windowBottom = scrollTop + windowHeight;
|
12967 |
-
var percentScrolled = (windowBottom - top) / (container_height + windowHeight);
|
12968 |
-
var parallax = Math.round(parallax_dist * percentScrolled);
|
12969 |
-
|
12970 |
-
if (initial) {
|
12971 |
-
$img.css('display', 'block');
|
12972 |
-
}
|
12973 |
-
if (bottom > scrollTop && top < scrollTop + windowHeight) {
|
12974 |
-
$img.css('transform', "translate3D(-50%," + parallax + "px, 0)");
|
12975 |
-
}
|
12976 |
-
}
|
12977 |
-
|
12978 |
-
// Wait for image load
|
12979 |
-
$this.children("img").one("load", function () {
|
12980 |
-
updateParallax(true);
|
12981 |
-
}).each(function () {
|
12982 |
-
if (this.complete) $(this).trigger("load");
|
12983 |
-
});
|
12984 |
-
|
12985 |
-
$(window).scroll(function () {
|
12986 |
-
window_width = $(window).width();
|
12987 |
-
updateParallax(false);
|
12988 |
-
});
|
12989 |
-
|
12990 |
-
$(window).resize(function () {
|
12991 |
-
window_width = $(window).width();
|
12992 |
-
updateParallax(false);
|
12993 |
-
});
|
12994 |
-
});
|
12995 |
-
};
|
12996 |
-
})(jQuery);
|
12997 |
-
;(function ($) {
|
12998 |
-
|
12999 |
-
var methods = {
|
13000 |
-
init: function (options) {
|
13001 |
-
var defaults = {
|
13002 |
-
onShow: null,
|
13003 |
-
swipeable: false,
|
13004 |
-
responsiveThreshold: Infinity // breakpoint for swipeable
|
13005 |
-
};
|
13006 |
-
options = $.extend(defaults, options);
|
13007 |
-
var namespace = Materialize.objectSelectorString($(this));
|
13008 |
-
|
13009 |
-
return this.each(function (i) {
|
13010 |
-
|
13011 |
-
var uniqueNamespace = namespace + i;
|
13012 |
-
|
13013 |
-
// For each set of tabs, we want to keep track of
|
13014 |
-
// which tab is active and its associated content
|
13015 |
-
var $this = $(this),
|
13016 |
-
window_width = $(window).width();
|
13017 |
-
|
13018 |
-
var $active,
|
13019 |
-
$content,
|
13020 |
-
$links = $this.find('li.tab a'),
|
13021 |
-
$tabs_width = $this.width(),
|
13022 |
-
$tabs_content = $(),
|
13023 |
-
$tabs_wrapper,
|
13024 |
-
$tab_width = Math.max($tabs_width, $this[0].scrollWidth) / $links.length,
|
13025 |
-
$indicator,
|
13026 |
-
index = prev_index = 0,
|
13027 |
-
clicked = false,
|
13028 |
-
clickedTimeout,
|
13029 |
-
transition = 300;
|
13030 |
-
|
13031 |
-
// Finds right attribute for indicator based on active tab.
|
13032 |
-
// el: jQuery Object
|
13033 |
-
var calcRightPos = function (el) {
|
13034 |
-
return Math.ceil($tabs_width - el.position().left - el[0].getBoundingClientRect().width - $this.scrollLeft());
|
13035 |
-
};
|
13036 |
-
|
13037 |
-
// Finds left attribute for indicator based on active tab.
|
13038 |
-
// el: jQuery Object
|
13039 |
-
var calcLeftPos = function (el) {
|
13040 |
-
return Math.floor(el.position().left + $this.scrollLeft());
|
13041 |
-
};
|
13042 |
-
|
13043 |
-
// Animates Indicator to active tab.
|
13044 |
-
// prev_index: Number
|
13045 |
-
var animateIndicator = function (prev_index) {
|
13046 |
-
if (index - prev_index >= 0) {
|
13047 |
-
$indicator.velocity({ "right": calcRightPos($active) }, { duration: transition, queue: false, easing: 'easeOutQuad' });
|
13048 |
-
$indicator.velocity({ "left": calcLeftPos($active) }, { duration: transition, queue: false, easing: 'easeOutQuad', delay: 90 });
|
13049 |
-
} else {
|
13050 |
-
$indicator.velocity({ "left": calcLeftPos($active) }, { duration: transition, queue: false, easing: 'easeOutQuad' });
|
13051 |
-
$indicator.velocity({ "right": calcRightPos($active) }, { duration: transition, queue: false, easing: 'easeOutQuad', delay: 90 });
|
13052 |
-
}
|
13053 |
-
};
|
13054 |
-
|
13055 |
-
// Change swipeable according to responsive threshold
|
13056 |
-
if (options.swipeable) {
|
13057 |
-
if (window_width > options.responsiveThreshold) {
|
13058 |
-
options.swipeable = false;
|
13059 |
-
}
|
13060 |
-
}
|
13061 |
-
|
13062 |
-
// If the location.hash matches one of the links, use that as the active tab.
|
13063 |
-
$active = $($links.filter('[href="' + location.hash + '"]'));
|
13064 |
-
|
13065 |
-
// If no match is found, use the first link or any with class 'active' as the initial active tab.
|
13066 |
-
if ($active.length === 0) {
|
13067 |
-
$active = $(this).find('li.tab a.active').first();
|
13068 |
-
}
|
13069 |
-
if ($active.length === 0) {
|
13070 |
-
$active = $(this).find('li.tab a').first();
|
13071 |
-
}
|
13072 |
-
|
13073 |
-
$active.addClass('active');
|
13074 |
-
index = $links.index($active);
|
13075 |
-
if (index < 0) {
|
13076 |
-
index = 0;
|
13077 |
-
}
|
13078 |
-
|
13079 |
-
if ($active[0] !== undefined) {
|
13080 |
-
$content = $($active[0].hash);
|
13081 |
-
$content.addClass('active');
|
13082 |
-
}
|
13083 |
-
|
13084 |
-
// append indicator then set indicator width to tab width
|
13085 |
-
if (!$this.find('.indicator').length) {
|
13086 |
-
$this.append('<li class="indicator"></li>');
|
13087 |
-
}
|
13088 |
-
$indicator = $this.find('.indicator');
|
13089 |
-
|
13090 |
-
// we make sure that the indicator is at the end of the tabs
|
13091 |
-
$this.append($indicator);
|
13092 |
-
|
13093 |
-
if ($this.is(":visible")) {
|
13094 |
-
// $indicator.css({"right": $tabs_width - ((index + 1) * $tab_width)});
|
13095 |
-
// $indicator.css({"left": index * $tab_width});
|
13096 |
-
setTimeout(function () {
|
13097 |
-
$indicator.css({ "right": calcRightPos($active) });
|
13098 |
-
$indicator.css({ "left": calcLeftPos($active) });
|
13099 |
-
}, 0);
|
13100 |
-
}
|
13101 |
-
$(window).off('resize.tabs-' + uniqueNamespace).on('resize.tabs-' + uniqueNamespace, function () {
|
13102 |
-
$tabs_width = $this.width();
|
13103 |
-
$tab_width = Math.max($tabs_width, $this[0].scrollWidth) / $links.length;
|
13104 |
-
if (index < 0) {
|
13105 |
-
index = 0;
|
13106 |
-
}
|
13107 |
-
if ($tab_width !== 0 && $tabs_width !== 0) {
|
13108 |
-
$indicator.css({ "right": calcRightPos($active) });
|
13109 |
-
$indicator.css({ "left": calcLeftPos($active) });
|
13110 |
-
}
|
13111 |
-
});
|
13112 |
-
|
13113 |
-
// Initialize Tabs Content.
|
13114 |
-
if (options.swipeable) {
|
13115 |
-
// TODO: Duplicate calls with swipeable? handle multiple div wrapping.
|
13116 |
-
$links.each(function () {
|
13117 |
-
var $curr_content = $(Materialize.escapeHash(this.hash));
|
13118 |
-
$curr_content.addClass('carousel-item');
|
13119 |
-
$tabs_content = $tabs_content.add($curr_content);
|
13120 |
-
});
|
13121 |
-
$tabs_wrapper = $tabs_content.wrapAll('<div class="tabs-content carousel"></div>');
|
13122 |
-
$tabs_content.css('display', '');
|
13123 |
-
$('.tabs-content.carousel').carousel({
|
13124 |
-
fullWidth: true,
|
13125 |
-
noWrap: true,
|
13126 |
-
onCycleTo: function (item) {
|
13127 |
-
if (!clicked) {
|
13128 |
-
var prev_index = index;
|
13129 |
-
index = $tabs_wrapper.index(item);
|
13130 |
-
$active.removeClass('active');
|
13131 |
-
$active = $links.eq(index);
|
13132 |
-
$active.addClass('active');
|
13133 |
-
animateIndicator(prev_index);
|
13134 |
-
if (typeof options.onShow === "function") {
|
13135 |
-
options.onShow.call($this[0], $content);
|
13136 |
-
}
|
13137 |
-
}
|
13138 |
-
}
|
13139 |
-
});
|
13140 |
-
} else {
|
13141 |
-
// Hide the remaining content
|
13142 |
-
$links.not($active).each(function () {
|
13143 |
-
$(Materialize.escapeHash(this.hash)).hide();
|
13144 |
-
});
|
13145 |
-
}
|
13146 |
-
|
13147 |
-
// Bind the click event handler
|
13148 |
-
$this.off('click.tabs').on('click.tabs', 'a', function (e) {
|
13149 |
-
if ($(this).parent().hasClass('disabled')) {
|
13150 |
-
e.preventDefault();
|
13151 |
-
return;
|
13152 |
-
}
|
13153 |
-
|
13154 |
-
// Act as regular link if target attribute is specified.
|
13155 |
-
if (!!$(this).attr("target")) {
|
13156 |
-
return;
|
13157 |
-
}
|
13158 |
-
|
13159 |
-
clicked = true;
|
13160 |
-
$tabs_width = $this.width();
|
13161 |
-
$tab_width = Math.max($tabs_width, $this[0].scrollWidth) / $links.length;
|
13162 |
-
|
13163 |
-
// Make the old tab inactive.
|
13164 |
-
$active.removeClass('active');
|
13165 |
-
var $oldContent = $content;
|
13166 |
-
|
13167 |
-
// Update the variables with the new link and content
|
13168 |
-
$active = $(this);
|
13169 |
-
$content = $(Materialize.escapeHash(this.hash));
|
13170 |
-
$links = $this.find('li.tab a');
|
13171 |
-
var activeRect = $active.position();
|
13172 |
-
|
13173 |
-
// Make the tab active.
|
13174 |
-
$active.addClass('active');
|
13175 |
-
prev_index = index;
|
13176 |
-
index = $links.index($(this));
|
13177 |
-
if (index < 0) {
|
13178 |
-
index = 0;
|
13179 |
-
}
|
13180 |
-
// Change url to current tab
|
13181 |
-
// window.location.hash = $active.attr('href');
|
13182 |
-
|
13183 |
-
// Swap content
|
13184 |
-
if (options.swipeable) {
|
13185 |
-
if ($tabs_content.length) {
|
13186 |
-
$tabs_content.carousel('set', index, function () {
|
13187 |
-
if (typeof options.onShow === "function") {
|
13188 |
-
options.onShow.call($this[0], $content);
|
13189 |
-
}
|
13190 |
-
});
|
13191 |
-
}
|
13192 |
-
} else {
|
13193 |
-
if ($content !== undefined) {
|
13194 |
-
$content.show();
|
13195 |
-
$content.addClass('active');
|
13196 |
-
if (typeof options.onShow === "function") {
|
13197 |
-
options.onShow.call(this, $content);
|
13198 |
-
}
|
13199 |
-
}
|
13200 |
-
|
13201 |
-
if ($oldContent !== undefined && !$oldContent.is($content)) {
|
13202 |
-
$oldContent.hide();
|
13203 |
-
$oldContent.removeClass('active');
|
13204 |
-
}
|
13205 |
-
}
|
13206 |
-
|
13207 |
-
// Reset clicked state
|
13208 |
-
clickedTimeout = setTimeout(function () {
|
13209 |
-
clicked = false;
|
13210 |
-
}, transition);
|
13211 |
-
|
13212 |
-
// Update indicator
|
13213 |
-
animateIndicator(prev_index);
|
13214 |
-
|
13215 |
-
// Prevent the anchor's default click action
|
13216 |
-
e.preventDefault();
|
13217 |
-
});
|
13218 |
-
});
|
13219 |
-
},
|
13220 |
-
select_tab: function (id) {
|
13221 |
-
this.find('a[href="#' + id + '"]').trigger('click');
|
13222 |
-
}
|
13223 |
-
};
|
13224 |
-
|
13225 |
-
$.fn.tabs = function (methodOrOptions) {
|
13226 |
-
if (methods[methodOrOptions]) {
|
13227 |
-
return methods[methodOrOptions].apply(this, Array.prototype.slice.call(arguments, 1));
|
13228 |
-
} else if (typeof methodOrOptions === 'object' || !methodOrOptions) {
|
13229 |
-
// Default to "init"
|
13230 |
-
return methods.init.apply(this, arguments);
|
13231 |
-
} else {
|
13232 |
-
$.error('Method ' + methodOrOptions + ' does not exist on jQuery.tabs');
|
13233 |
-
}
|
13234 |
-
};
|
13235 |
-
|
13236 |
-
$(document).ready(function () {
|
13237 |
-
$('ul.tabs').tabs();
|
13238 |
-
});
|
13239 |
-
})(jQuery);
|
13240 |
-
;(function ($) {
|
13241 |
-
$.fn.tooltip = function (options) {
|
13242 |
-
var timeout = null,
|
13243 |
-
margin = 5;
|
13244 |
-
|
13245 |
-
// Defaults
|
13246 |
-
var defaults = {
|
13247 |
-
delay: 350,
|
13248 |
-
tooltip: '',
|
13249 |
-
position: 'bottom',
|
13250 |
-
html: false
|
13251 |
-
};
|
13252 |
-
|
13253 |
-
// Remove tooltip from the activator
|
13254 |
-
if (options === "remove") {
|
13255 |
-
this.each(function () {
|
13256 |
-
$('#' + $(this).attr('data-tooltip-id')).remove();
|
13257 |
-
$(this).removeAttr('data-tooltip-id');
|
13258 |
-
$(this).off('mouseenter.tooltip mouseleave.tooltip');
|
13259 |
-
});
|
13260 |
-
return false;
|
13261 |
-
}
|
13262 |
-
|
13263 |
-
options = $.extend(defaults, options);
|
13264 |
-
|
13265 |
-
return this.each(function () {
|
13266 |
-
var tooltipId = Materialize.guid();
|
13267 |
-
var origin = $(this);
|
13268 |
-
|
13269 |
-
// Destroy old tooltip
|
13270 |
-
if (origin.attr('data-tooltip-id')) {
|
13271 |
-
$('#' + origin.attr('data-tooltip-id')).remove();
|
13272 |
-
}
|
13273 |
-
|
13274 |
-
origin.attr('data-tooltip-id', tooltipId);
|
13275 |
-
|
13276 |
-
// Get attributes.
|
13277 |
-
var allowHtml, tooltipDelay, tooltipPosition, tooltipText, tooltipEl, backdrop;
|
13278 |
-
var setAttributes = function () {
|
13279 |
-
allowHtml = origin.attr('data-html') ? origin.attr('data-html') === 'true' : options.html;
|
13280 |
-
tooltipDelay = origin.attr('data-delay');
|
13281 |
-
tooltipDelay = tooltipDelay === undefined || tooltipDelay === '' ? options.delay : tooltipDelay;
|
13282 |
-
tooltipPosition = origin.attr('data-position');
|
13283 |
-
tooltipPosition = tooltipPosition === undefined || tooltipPosition === '' ? options.position : tooltipPosition;
|
13284 |
-
tooltipText = origin.attr('data-tooltip');
|
13285 |
-
tooltipText = tooltipText === undefined || tooltipText === '' ? options.tooltip : tooltipText;
|
13286 |
-
};
|
13287 |
-
setAttributes();
|
13288 |
-
|
13289 |
-
var renderTooltipEl = function () {
|
13290 |
-
var tooltip = $('<div class="material-tooltip"></div>');
|
13291 |
-
|
13292 |
-
// Create Text span
|
13293 |
-
if (allowHtml) {
|
13294 |
-
tooltipText = $('<span></span>').html(tooltipText);
|
13295 |
-
} else {
|
13296 |
-
tooltipText = $('<span></span>').text(tooltipText);
|
13297 |
-
}
|
13298 |
-
|
13299 |
-
// Create tooltip
|
13300 |
-
tooltip.append(tooltipText).appendTo($('body')).attr('id', tooltipId);
|
13301 |
-
|
13302 |
-
// Create backdrop
|
13303 |
-
backdrop = $('<div class="backdrop"></div>');
|
13304 |
-
backdrop.appendTo(tooltip);
|
13305 |
-
return tooltip;
|
13306 |
-
};
|
13307 |
-
tooltipEl = renderTooltipEl();
|
13308 |
-
|
13309 |
-
// Destroy previously binded events
|
13310 |
-
origin.off('mouseenter.tooltip mouseleave.tooltip');
|
13311 |
-
// Mouse In
|
13312 |
-
var started = false,
|
13313 |
-
timeoutRef;
|
13314 |
-
origin.on({ 'mouseenter.tooltip': function (e) {
|
13315 |
-
var showTooltip = function () {
|
13316 |
-
setAttributes();
|
13317 |
-
started = true;
|
13318 |
-
tooltipEl.velocity('stop');
|
13319 |
-
backdrop.velocity('stop');
|
13320 |
-
tooltipEl.css({ visibility: 'visible', left: '0px', top: '0px' });
|
13321 |
-
|
13322 |
-
// Tooltip positioning
|
13323 |
-
var originWidth = origin.outerWidth();
|
13324 |
-
var originHeight = origin.outerHeight();
|
13325 |
-
var tooltipHeight = tooltipEl.outerHeight();
|
13326 |
-
var tooltipWidth = tooltipEl.outerWidth();
|
13327 |
-
var tooltipVerticalMovement = '0px';
|
13328 |
-
var tooltipHorizontalMovement = '0px';
|
13329 |
-
var backdropOffsetWidth = backdrop[0].offsetWidth;
|
13330 |
-
var backdropOffsetHeight = backdrop[0].offsetHeight;
|
13331 |
-
var scaleXFactor = 8;
|
13332 |
-
var scaleYFactor = 8;
|
13333 |
-
var scaleFactor = 0;
|
13334 |
-
var targetTop, targetLeft, newCoordinates;
|
13335 |
-
|
13336 |
-
if (tooltipPosition === "top") {
|
13337 |
-
// Top Position
|
13338 |
-
targetTop = origin.offset().top - tooltipHeight - margin;
|
13339 |
-
targetLeft = origin.offset().left + originWidth / 2 - tooltipWidth / 2;
|
13340 |
-
newCoordinates = repositionWithinScreen(targetLeft, targetTop, tooltipWidth, tooltipHeight);
|
13341 |
-
tooltipVerticalMovement = '-10px';
|
13342 |
-
backdrop.css({
|
13343 |
-
bottom: 0,
|
13344 |
-
left: 0,
|
13345 |
-
borderRadius: '14px 14px 0 0',
|
13346 |
-
transformOrigin: '50% 100%',
|
13347 |
-
marginTop: tooltipHeight,
|
13348 |
-
marginLeft: tooltipWidth / 2 - backdropOffsetWidth / 2
|
13349 |
-
});
|
13350 |
-
}
|
13351 |
-
// Left Position
|
13352 |
-
else if (tooltipPosition === "left") {
|
13353 |
-
targetTop = origin.offset().top + originHeight / 2 - tooltipHeight / 2;
|
13354 |
-
targetLeft = origin.offset().left - tooltipWidth - margin;
|
13355 |
-
newCoordinates = repositionWithinScreen(targetLeft, targetTop, tooltipWidth, tooltipHeight);
|
13356 |
-
|
13357 |
-
tooltipHorizontalMovement = '-10px';
|
13358 |
-
backdrop.css({
|
13359 |
-
top: '-7px',
|
13360 |
-
right: 0,
|
13361 |
-
width: '14px',
|
13362 |
-
height: '14px',
|
13363 |
-
borderRadius: '14px 0 0 14px',
|
13364 |
-
transformOrigin: '95% 50%',
|
13365 |
-
marginTop: tooltipHeight / 2,
|
13366 |
-
marginLeft: tooltipWidth
|
13367 |
-
});
|
13368 |
-
}
|
13369 |
-
// Right Position
|
13370 |
-
else if (tooltipPosition === "right") {
|
13371 |
-
targetTop = origin.offset().top + originHeight / 2 - tooltipHeight / 2;
|
13372 |
-
targetLeft = origin.offset().left + originWidth + margin;
|
13373 |
-
newCoordinates = repositionWithinScreen(targetLeft, targetTop, tooltipWidth, tooltipHeight);
|
13374 |
-
|
13375 |
-
tooltipHorizontalMovement = '+10px';
|
13376 |
-
backdrop.css({
|
13377 |
-
top: '-7px',
|
13378 |
-
left: 0,
|
13379 |
-
width: '14px',
|
13380 |
-
height: '14px',
|
13381 |
-
borderRadius: '0 14px 14px 0',
|
13382 |
-
transformOrigin: '5% 50%',
|
13383 |
-
marginTop: tooltipHeight / 2,
|
13384 |
-
marginLeft: '0px'
|
13385 |
-
});
|
13386 |
-
} else {
|
13387 |
-
// Bottom Position
|
13388 |
-
targetTop = origin.offset().top + origin.outerHeight() + margin;
|
13389 |
-
targetLeft = origin.offset().left + originWidth / 2 - tooltipWidth / 2;
|
13390 |
-
newCoordinates = repositionWithinScreen(targetLeft, targetTop, tooltipWidth, tooltipHeight);
|
13391 |
-
tooltipVerticalMovement = '+10px';
|
13392 |
-
backdrop.css({
|
13393 |
-
top: 0,
|
13394 |
-
left: 0,
|
13395 |
-
marginLeft: tooltipWidth / 2 - backdropOffsetWidth / 2
|
13396 |
-
});
|
13397 |
-
}
|
13398 |
-
|
13399 |
-
// Set tooptip css placement
|
13400 |
-
tooltipEl.css({
|
13401 |
-
top: newCoordinates.y,
|
13402 |
-
left: newCoordinates.x
|
13403 |
-
});
|
13404 |
-
|
13405 |
-
// Calculate Scale to fill
|
13406 |
-
scaleXFactor = Math.SQRT2 * tooltipWidth / parseInt(backdropOffsetWidth);
|
13407 |
-
scaleYFactor = Math.SQRT2 * tooltipHeight / parseInt(backdropOffsetHeight);
|
13408 |
-
scaleFactor = Math.max(scaleXFactor, scaleYFactor);
|
13409 |
-
|
13410 |
-
tooltipEl.velocity({ translateY: tooltipVerticalMovement, translateX: tooltipHorizontalMovement }, { duration: 350, queue: false }).velocity({ opacity: 1 }, { duration: 300, delay: 50, queue: false });
|
13411 |
-
backdrop.css({ visibility: 'visible' }).velocity({ opacity: 1 }, { duration: 55, delay: 0, queue: false }).velocity({ scaleX: scaleFactor, scaleY: scaleFactor }, { duration: 300, delay: 0, queue: false, easing: 'easeInOutQuad' });
|
13412 |
-
};
|
13413 |
-
|
13414 |
-
timeoutRef = setTimeout(showTooltip, tooltipDelay); // End Interval
|
13415 |
-
|
13416 |
-
// Mouse Out
|
13417 |
-
},
|
13418 |
-
'mouseleave.tooltip': function () {
|
13419 |
-
// Reset State
|
13420 |
-
started = false;
|
13421 |
-
clearTimeout(timeoutRef);
|
13422 |
-
|
13423 |
-
// Animate back
|
13424 |
-
setTimeout(function () {
|
13425 |
-
if (started !== true) {
|
13426 |
-
tooltipEl.velocity({
|
13427 |
-
opacity: 0, translateY: 0, translateX: 0 }, { duration: 225, queue: false });
|
13428 |
-
backdrop.velocity({ opacity: 0, scaleX: 1, scaleY: 1 }, {
|
13429 |
-
duration: 225,
|
13430 |
-
queue: false,
|
13431 |
-
complete: function () {
|
13432 |
-
backdrop.css({ visibility: 'hidden' });
|
13433 |
-
tooltipEl.css({ visibility: 'hidden' });
|
13434 |
-
started = false;
|
13435 |
-
}
|
13436 |
-
});
|
13437 |
-
}
|
13438 |
-
}, 225);
|
13439 |
-
}
|
13440 |
-
});
|
13441 |
-
});
|
13442 |
-
};
|
13443 |
-
|
13444 |
-
var repositionWithinScreen = function (x, y, width, height) {
|
13445 |
-
var newX = x;
|
13446 |
-
var newY = y;
|
13447 |
-
|
13448 |
-
if (newX < 0) {
|
13449 |
-
newX = 4;
|
13450 |
-
} else if (newX + width > window.innerWidth) {
|
13451 |
-
newX -= newX + width - window.innerWidth;
|
13452 |
-
}
|
13453 |
-
|
13454 |
-
if (newY < 0) {
|
13455 |
-
newY = 4;
|
13456 |
-
} else if (newY + height > window.innerHeight + $(window).scrollTop) {
|
13457 |
-
newY -= newY + height - window.innerHeight;
|
13458 |
-
}
|
13459 |
-
|
13460 |
-
return { x: newX, y: newY };
|
13461 |
-
};
|
13462 |
-
|
13463 |
-
$(document).ready(function () {
|
13464 |
-
$('.tooltipped').tooltip();
|
13465 |
-
});
|
13466 |
-
})(jQuery);
|
13467 |
-
; /*!
|
13468 |
-
* Waves v0.6.4
|
13469 |
-
* http://fian.my.id/Waves
|
13470 |
-
*
|
13471 |
-
* Copyright 2014 Alfiana E. Sibuea and other contributors
|
13472 |
-
* Released under the MIT license
|
13473 |
-
* https://github.com/fians/Waves/blob/master/LICENSE
|
13474 |
-
*/
|
13475 |
-
|
13476 |
-
;(function (window) {
|
13477 |
-
'use strict';
|
13478 |
-
|
13479 |
-
var Waves = Waves || {};
|
13480 |
-
var $$ = document.querySelectorAll.bind(document);
|
13481 |
-
|
13482 |
-
// Find exact position of element
|
13483 |
-
function isWindow(obj) {
|
13484 |
-
return obj !== null && obj === obj.window;
|
13485 |
-
}
|
13486 |
-
|
13487 |
-
function getWindow(elem) {
|
13488 |
-
return isWindow(elem) ? elem : elem.nodeType === 9 && elem.defaultView;
|
13489 |
-
}
|
13490 |
-
|
13491 |
-
function offset(elem) {
|
13492 |
-
var docElem,
|
13493 |
-
win,
|
13494 |
-
box = { top: 0, left: 0 },
|
13495 |
-
doc = elem && elem.ownerDocument;
|
13496 |
-
|
13497 |
-
docElem = doc.documentElement;
|
13498 |
-
|
13499 |
-
if (typeof elem.getBoundingClientRect !== typeof undefined) {
|
13500 |
-
box = elem.getBoundingClientRect();
|
13501 |
-
}
|
13502 |
-
win = getWindow(doc);
|
13503 |
-
return {
|
13504 |
-
top: box.top + win.pageYOffset - docElem.clientTop,
|
13505 |
-
left: box.left + win.pageXOffset - docElem.clientLeft
|
13506 |
-
};
|
13507 |
-
}
|
13508 |
-
|
13509 |
-
function convertStyle(obj) {
|
13510 |
-
var style = '';
|
13511 |
-
|
13512 |
-
for (var a in obj) {
|
13513 |
-
if (obj.hasOwnProperty(a)) {
|
13514 |
-
style += a + ':' + obj[a] + ';';
|
13515 |
-
}
|
13516 |
-
}
|
13517 |
-
|
13518 |
-
return style;
|
13519 |
-
}
|
13520 |
-
|
13521 |
-
var Effect = {
|
13522 |
-
|
13523 |
-
// Effect delay
|
13524 |
-
duration: 750,
|
13525 |
-
|
13526 |
-
show: function (e, element) {
|
13527 |
-
|
13528 |
-
// Disable right click
|
13529 |
-
if (e.button === 2) {
|
13530 |
-
return false;
|
13531 |
-
}
|
13532 |
-
|
13533 |
-
var el = element || this;
|
13534 |
-
|
13535 |
-
// Create ripple
|
13536 |
-
var ripple = document.createElement('div');
|
13537 |
-
ripple.className = 'waves-ripple';
|
13538 |
-
el.appendChild(ripple);
|
13539 |
-
|
13540 |
-
// Get click coordinate and element witdh
|
13541 |
-
var pos = offset(el);
|
13542 |
-
var relativeY = e.pageY - pos.top;
|
13543 |
-
var relativeX = e.pageX - pos.left;
|
13544 |
-
var scale = 'scale(' + el.clientWidth / 100 * 10 + ')';
|
13545 |
-
|
13546 |
-
// Support for touch devices
|
13547 |
-
if ('touches' in e) {
|
13548 |
-
relativeY = e.touches[0].pageY - pos.top;
|
13549 |
-
relativeX = e.touches[0].pageX - pos.left;
|
13550 |
-
}
|
13551 |
-
|
13552 |
-
// Attach data to element
|
13553 |
-
ripple.setAttribute('data-hold', Date.now());
|
13554 |
-
ripple.setAttribute('data-scale', scale);
|
13555 |
-
ripple.setAttribute('data-x', relativeX);
|
13556 |
-
ripple.setAttribute('data-y', relativeY);
|
13557 |
-
|
13558 |
-
// Set ripple position
|
13559 |
-
var rippleStyle = {
|
13560 |
-
'top': relativeY + 'px',
|
13561 |
-
'left': relativeX + 'px'
|
13562 |
-
};
|
13563 |
-
|
13564 |
-
ripple.className = ripple.className + ' waves-notransition';
|
13565 |
-
ripple.setAttribute('style', convertStyle(rippleStyle));
|
13566 |
-
ripple.className = ripple.className.replace('waves-notransition', '');
|
13567 |
-
|
13568 |
-
// Scale the ripple
|
13569 |
-
rippleStyle['-webkit-transform'] = scale;
|
13570 |
-
rippleStyle['-moz-transform'] = scale;
|
13571 |
-
rippleStyle['-ms-transform'] = scale;
|
13572 |
-
rippleStyle['-o-transform'] = scale;
|
13573 |
-
rippleStyle.transform = scale;
|
13574 |
-
rippleStyle.opacity = '1';
|
13575 |
-
|
13576 |
-
rippleStyle['-webkit-transition-duration'] = Effect.duration + 'ms';
|
13577 |
-
rippleStyle['-moz-transition-duration'] = Effect.duration + 'ms';
|
13578 |
-
rippleStyle['-o-transition-duration'] = Effect.duration + 'ms';
|
13579 |
-
rippleStyle['transition-duration'] = Effect.duration + 'ms';
|
13580 |
-
|
13581 |
-
rippleStyle['-webkit-transition-timing-function'] = 'cubic-bezier(0.250, 0.460, 0.450, 0.940)';
|
13582 |
-
rippleStyle['-moz-transition-timing-function'] = 'cubic-bezier(0.250, 0.460, 0.450, 0.940)';
|
13583 |
-
rippleStyle['-o-transition-timing-function'] = 'cubic-bezier(0.250, 0.460, 0.450, 0.940)';
|
13584 |
-
rippleStyle['transition-timing-function'] = 'cubic-bezier(0.250, 0.460, 0.450, 0.940)';
|
13585 |
-
|
13586 |
-
ripple.setAttribute('style', convertStyle(rippleStyle));
|
13587 |
-
},
|
13588 |
-
|
13589 |
-
hide: function (e) {
|
13590 |
-
TouchHandler.touchup(e);
|
13591 |
-
|
13592 |
-
var el = this;
|
13593 |
-
var width = el.clientWidth * 1.4;
|
13594 |
-
|
13595 |
-
// Get first ripple
|
13596 |
-
var ripple = null;
|
13597 |
-
var ripples = el.getElementsByClassName('waves-ripple');
|
13598 |
-
if (ripples.length > 0) {
|
13599 |
-
ripple = ripples[ripples.length - 1];
|
13600 |
-
} else {
|
13601 |
-
return false;
|
13602 |
-
}
|
13603 |
-
|
13604 |
-
var relativeX = ripple.getAttribute('data-x');
|
13605 |
-
var relativeY = ripple.getAttribute('data-y');
|
13606 |
-
var scale = ripple.getAttribute('data-scale');
|
13607 |
-
|
13608 |
-
// Get delay beetween mousedown and mouse leave
|
13609 |
-
var diff = Date.now() - Number(ripple.getAttribute('data-hold'));
|
13610 |
-
var delay = 350 - diff;
|
13611 |
-
|
13612 |
-
if (delay < 0) {
|
13613 |
-
delay = 0;
|
13614 |
-
}
|
13615 |
-
|
13616 |
-
// Fade out ripple after delay
|
13617 |
-
setTimeout(function () {
|
13618 |
-
var style = {
|
13619 |
-
'top': relativeY + 'px',
|
13620 |
-
'left': relativeX + 'px',
|
13621 |
-
'opacity': '0',
|
13622 |
-
|
13623 |
-
// Duration
|
13624 |
-
'-webkit-transition-duration': Effect.duration + 'ms',
|
13625 |
-
'-moz-transition-duration': Effect.duration + 'ms',
|
13626 |
-
'-o-transition-duration': Effect.duration + 'ms',
|
13627 |
-
'transition-duration': Effect.duration + 'ms',
|
13628 |
-
'-webkit-transform': scale,
|
13629 |
-
'-moz-transform': scale,
|
13630 |
-
'-ms-transform': scale,
|
13631 |
-
'-o-transform': scale,
|
13632 |
-
'transform': scale
|
13633 |
-
};
|
13634 |
-
|
13635 |
-
ripple.setAttribute('style', convertStyle(style));
|
13636 |
-
|
13637 |
-
setTimeout(function () {
|
13638 |
-
try {
|
13639 |
-
el.removeChild(ripple);
|
13640 |
-
} catch (e) {
|
13641 |
-
return false;
|
13642 |
-
}
|
13643 |
-
}, Effect.duration);
|
13644 |
-
}, delay);
|
13645 |
-
},
|
13646 |
-
|
13647 |
-
// Little hack to make <input> can perform waves effect
|
13648 |
-
wrapInput: function (elements) {
|
13649 |
-
for (var a = 0; a < elements.length; a++) {
|
13650 |
-
var el = elements[a];
|
13651 |
-
|
13652 |
-
if (el.tagName.toLowerCase() === 'input') {
|
13653 |
-
var parent = el.parentNode;
|
13654 |
-
|
13655 |
-
// If input already have parent just pass through
|
13656 |
-
if (parent.tagName.toLowerCase() === 'i' && parent.className.indexOf('waves-effect') !== -1) {
|
13657 |
-
continue;
|
13658 |
-
}
|
13659 |
-
|
13660 |
-
// Put element class and style to the specified parent
|
13661 |
-
var wrapper = document.createElement('i');
|
13662 |
-
wrapper.className = el.className + ' waves-input-wrapper';
|
13663 |
-
|
13664 |
-
var elementStyle = el.getAttribute('style');
|
13665 |
-
|
13666 |
-
if (!elementStyle) {
|
13667 |
-
elementStyle = '';
|
13668 |
-
}
|
13669 |
-
|
13670 |
-
wrapper.setAttribute('style', elementStyle);
|
13671 |
-
|
13672 |
-
el.className = 'waves-button-input';
|
13673 |
-
el.removeAttribute('style');
|
13674 |
-
|
13675 |
-
// Put element as child
|
13676 |
-
parent.replaceChild(wrapper, el);
|
13677 |
-
wrapper.appendChild(el);
|
13678 |
-
}
|
13679 |
-
}
|
13680 |
-
}
|
13681 |
-
};
|
13682 |
-
|
13683 |
-
/**
|
13684 |
-
* Disable mousedown event for 500ms during and after touch
|
13685 |
-
*/
|
13686 |
-
var TouchHandler = {
|
13687 |
-
/* uses an integer rather than bool so there's no issues with
|
13688 |
-
* needing to clear timeouts if another touch event occurred
|
13689 |
-
* within the 500ms. Cannot mouseup between touchstart and
|
13690 |
-
* touchend, nor in the 500ms after touchend. */
|
13691 |
-
touches: 0,
|
13692 |
-
allowEvent: function (e) {
|
13693 |
-
var allow = true;
|
13694 |
-
|
13695 |
-
if (e.type === 'touchstart') {
|
13696 |
-
TouchHandler.touches += 1; //push
|
13697 |
-
} else if (e.type === 'touchend' || e.type === 'touchcancel') {
|
13698 |
-
setTimeout(function () {
|
13699 |
-
if (TouchHandler.touches > 0) {
|
13700 |
-
TouchHandler.touches -= 1; //pop after 500ms
|
13701 |
-
}
|
13702 |
-
}, 500);
|
13703 |
-
} else if (e.type === 'mousedown' && TouchHandler.touches > 0) {
|
13704 |
-
allow = false;
|
13705 |
-
}
|
13706 |
-
|
13707 |
-
return allow;
|
13708 |
-
},
|
13709 |
-
touchup: function (e) {
|
13710 |
-
TouchHandler.allowEvent(e);
|
13711 |
-
}
|
13712 |
-
};
|
13713 |
-
|
13714 |
-
/**
|
13715 |
-
* Delegated click handler for .waves-effect element.
|
13716 |
-
* returns null when .waves-effect element not in "click tree"
|
13717 |
-
*/
|
13718 |
-
function getWavesEffectElement(e) {
|
13719 |
-
if (TouchHandler.allowEvent(e) === false) {
|
13720 |
-
return null;
|
13721 |
-
}
|
13722 |
-
|
13723 |
-
var element = null;
|
13724 |
-
var target = e.target || e.srcElement;
|
13725 |
-
|
13726 |
-
while (target.parentNode !== null) {
|
13727 |
-
if (!(target instanceof SVGElement) && target.className.indexOf('waves-effect') !== -1) {
|
13728 |
-
element = target;
|
13729 |
-
break;
|
13730 |
-
}
|
13731 |
-
target = target.parentNode;
|
13732 |
-
}
|
13733 |
-
return element;
|
13734 |
-
}
|
13735 |
-
|
13736 |
-
/**
|
13737 |
-
* Bubble the click and show effect if .waves-effect elem was found
|
13738 |
-
*/
|
13739 |
-
function showEffect(e) {
|
13740 |
-
var element = getWavesEffectElement(e);
|
13741 |
-
|
13742 |
-
if (element !== null) {
|
13743 |
-
Effect.show(e, element);
|
13744 |
-
|
13745 |
-
if ('ontouchstart' in window) {
|
13746 |
-
element.addEventListener('touchend', Effect.hide, false);
|
13747 |
-
element.addEventListener('touchcancel', Effect.hide, false);
|
13748 |
-
}
|
13749 |
-
|
13750 |
-
element.addEventListener('mouseup', Effect.hide, false);
|
13751 |
-
element.addEventListener('mouseleave', Effect.hide, false);
|
13752 |
-
element.addEventListener('dragend', Effect.hide, false);
|
13753 |
-
}
|
13754 |
-
}
|
13755 |
-
|
13756 |
-
Waves.displayEffect = function (options) {
|
13757 |
-
options = options || {};
|
13758 |
-
|
13759 |
-
if ('duration' in options) {
|
13760 |
-
Effect.duration = options.duration;
|
13761 |
-
}
|
13762 |
-
|
13763 |
-
//Wrap input inside <i> tag
|
13764 |
-
Effect.wrapInput($$('.waves-effect'));
|
13765 |
-
|
13766 |
-
if ('ontouchstart' in window) {
|
13767 |
-
document.body.addEventListener('touchstart', showEffect, false);
|
13768 |
-
}
|
13769 |
-
|
13770 |
-
document.body.addEventListener('mousedown', showEffect, false);
|
13771 |
-
};
|
13772 |
-
|
13773 |
-
/**
|
13774 |
-
* Attach Waves to an input element (or any element which doesn't
|
13775 |
-
* bubble mouseup/mousedown events).
|
13776 |
-
* Intended to be used with dynamically loaded forms/inputs, or
|
13777 |
-
* where the user doesn't want a delegated click handler.
|
13778 |
-
*/
|
13779 |
-
Waves.attach = function (element) {
|
13780 |
-
//FUTURE: automatically add waves classes and allow users
|
13781 |
-
// to specify them with an options param? Eg. light/classic/button
|
13782 |
-
if (element.tagName.toLowerCase() === 'input') {
|
13783 |
-
Effect.wrapInput([element]);
|
13784 |
-
element = element.parentNode;
|
13785 |
-
}
|
13786 |
-
|
13787 |
-
if ('ontouchstart' in window) {
|
13788 |
-
element.addEventListener('touchstart', showEffect, false);
|
13789 |
-
}
|
13790 |
-
|
13791 |
-
element.addEventListener('mousedown', showEffect, false);
|
13792 |
-
};
|
13793 |
-
|
13794 |
-
window.Waves = Waves;
|
13795 |
-
|
13796 |
-
document.addEventListener('DOMContentLoaded', function () {
|
13797 |
-
Waves.displayEffect();
|
13798 |
-
}, false);
|
13799 |
-
})(window);
|
13800 |
-
;(function ($) {
|
13801 |
-
'use strict';
|
13802 |
-
|
13803 |
-
var _defaults = {
|
13804 |
-
displayLength: Infinity,
|
13805 |
-
inDuration: 300,
|
13806 |
-
outDuration: 375,
|
13807 |
-
className: undefined,
|
13808 |
-
completeCallback: undefined,
|
13809 |
-
activationPercent: 0.8
|
13810 |
-
};
|
13811 |
-
|
13812 |
-
var Toast = function () {
|
13813 |
-
function Toast(message, displayLength, className, completeCallback) {
|
13814 |
-
_classCallCheck(this, Toast);
|
13815 |
-
|
13816 |
-
if (!message) {
|
13817 |
-
return;
|
13818 |
-
}
|
13819 |
-
|
13820 |
-
/**
|
13821 |
-
* Options for the toast
|
13822 |
-
* @member Toast#options
|
13823 |
-
*/
|
13824 |
-
this.options = {
|
13825 |
-
displayLength: displayLength,
|
13826 |
-
className: className,
|
13827 |
-
completeCallback: completeCallback
|
13828 |
-
};
|
13829 |
-
|
13830 |
-
this.options = $.extend({}, Toast.defaults, this.options);
|
13831 |
-
this.message = message;
|
13832 |
-
|
13833 |
-
/**
|
13834 |
-
* Describes current pan state toast
|
13835 |
-
* @type {Boolean}
|
13836 |
-
*/
|
13837 |
-
this.panning = false;
|
13838 |
-
|
13839 |
-
/**
|
13840 |
-
* Time remaining until toast is removed
|
13841 |
-
*/
|
13842 |
-
this.timeRemaining = this.options.displayLength;
|
13843 |
-
|
13844 |
-
if (Toast._toasts.length === 0) {
|
13845 |
-
Toast._createContainer();
|
13846 |
-
}
|
13847 |
-
|
13848 |
-
// Create new toast
|
13849 |
-
Toast._toasts.push(this);
|
13850 |
-
var toastElement = this.createToast();
|
13851 |
-
toastElement.M_Toast = this;
|
13852 |
-
this.el = toastElement;
|
13853 |
-
this._animateIn();
|
13854 |
-
this.setTimer();
|
13855 |
-
}
|
13856 |
-
|
13857 |
-
_createClass(Toast, [{
|
13858 |
-
key: 'createToast',
|
13859 |
-
|
13860 |
-
|
13861 |
-
/**
|
13862 |
-
* Create toast and append it to toast container
|
13863 |
-
*/
|
13864 |
-
value: function createToast() {
|
13865 |
-
var toast = document.createElement('div');
|
13866 |
-
toast.classList.add('toast');
|
13867 |
-
|
13868 |
-
// Add custom classes onto toast
|
13869 |
-
if (this.options.className) {
|
13870 |
-
var classes = this.options.className.split(' ');
|
13871 |
-
var i = void 0,
|
13872 |
-
count = void 0;
|
13873 |
-
for (i = 0, count = classes.length; i < count; i++) {
|
13874 |
-
toast.classList.add(classes[i]);
|
13875 |
-
}
|
13876 |
-
}
|
13877 |
-
|
13878 |
-
// Set content
|
13879 |
-
if (typeof HTMLElement === 'object' ? this.message instanceof HTMLElement : this.message && typeof this.message === 'object' && this.message !== null && this.message.nodeType === 1 && typeof this.message.nodeName === 'string') {
|
13880 |
-
toast.appendChild(this.message);
|
13881 |
-
|
13882 |
-
// Check if it is jQuery object
|
13883 |
-
} else if (this.message instanceof jQuery) {
|
13884 |
-
$(toast).append(this.message);
|
13885 |
-
|
13886 |
-
// Insert as text;
|
13887 |
-
} else {
|
13888 |
-
toast.innerHTML = this.message;
|
13889 |
-
}
|
13890 |
-
|
13891 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|