WP VR – 360 Panorama and virtual tour creator for WordPress - Version 7.3.8

Version Description

(25-05-2022) = * Update: Checked compatibility with WordPress 6.0. * Update: Get Started page content updated. * New: Updated support for Elementor function register_controls(). * Fix: Loading wrong tabs on tour editing mode. * Fix: Radius not working for self-hosted video tours - Shortcodes. * Fix: Radius not working for self-hosted video tours - WPVR Gutenberg Block. * Fix: Radius not working for self-hosted video tours - WPVR Elementor Widget.

Download this release

Release Info

Developer rextheme
Plugin Icon 128x128 WP VR – 360 Panorama and virtual tour creator for WordPress
Version 7.3.8
Comparing to
See all releases

Code changes from version 7.3.7 to 7.3.8

Files changed (85) hide show
  1. README.txt +11 -2
  2. admin/class-wpvr-admin.php +9 -9
  3. admin/icon/cart-lift.png +0 -0
  4. admin/js/wpvr-admin.js +11 -4
  5. admin/lib/pannellum/src/js/pannellum.js +0 -1
  6. admin/partials/wpvr_documentation.php +8 -7
  7. elementor/elementor.php +5 -1
  8. elementor/elements/Wpvr-widget.php +134 -2
  9. public/class-wpvr-public.php +7 -3
  10. public/lib/pannellum/src/js/pannellum.js +0 -1
  11. trunk/LICENSE.txt +0 -339
  12. trunk/README.txt +0 -711
  13. trunk/admin/class-wpvr-admin-pages.php +0 -38
  14. trunk/admin/class-wpvr-admin.php +0 -2802
  15. trunk/admin/class-wpvr-ajax.php +0 -1720
  16. trunk/admin/class-wpvr-icon.php +0 -1018
  17. trunk/admin/class-wpvr-rollback.php +0 -181
  18. trunk/admin/css/font-awesome.min.css +0 -4
  19. trunk/admin/css/iconpicker.ttf +0 -0
  20. trunk/admin/css/iconpicker.woff +0 -0
  21. trunk/admin/css/jquery.fonticonpicker.grey.min.css +0 -2
  22. trunk/admin/css/jquery.fonticonpicker.min.css +0 -2
  23. trunk/admin/css/materialize.css +0 -8582
  24. trunk/admin/css/materialize.min.css +0 -16
  25. trunk/admin/css/owl.carousel.css +0 -186
  26. trunk/admin/css/owl.theme.default.css +0 -50
  27. trunk/admin/css/wpvr-admin.css +0 -3855
  28. trunk/admin/icon/advance-control-hover.png +0 -0
  29. trunk/admin/icon/advance-control-regular.png +0 -0
  30. trunk/admin/icon/advanced-control.jpg +0 -0
  31. trunk/admin/icon/basic-settings-hover.png +0 -0
  32. trunk/admin/icon/basic-settings-regular.png +0 -0
  33. trunk/admin/icon/bg-tour-hover.png +0 -0
  34. trunk/admin/icon/bg-tour-regular.png +0 -0
  35. trunk/admin/icon/cart-lift.png +0 -0
  36. trunk/admin/icon/check.png +0 -0
  37. trunk/admin/icon/control-button.jpg +0 -0
  38. trunk/admin/icon/control-buttons-hover.png +0 -0
  39. trunk/admin/icon/control-buttons-regular.png +0 -0
  40. trunk/admin/icon/copy.png +0 -0
  41. trunk/admin/icon/cross.png +0 -0
  42. trunk/admin/icon/doc-icon.png +0 -0
  43. trunk/admin/icon/export-hover.png +0 -0
  44. trunk/admin/icon/export-regular.png +0 -0
  45. trunk/admin/icon/fb-hover.jpg +0 -0
  46. trunk/admin/icon/fb-regular.jpg +0 -0
  47. trunk/admin/icon/full-screen.jpg +0 -0
  48. trunk/admin/icon/general-hover.png +0 -0
  49. trunk/admin/icon/general-regular.png +0 -0
  50. trunk/admin/icon/gl-hover.jpg +0 -0
  51. trunk/admin/icon/gl-regular.jpg +0 -0
  52. trunk/admin/icon/gryscop.jpg +0 -0
  53. trunk/admin/icon/home.jpg +0 -0
  54. trunk/admin/icon/hotspot-hover.png +0 -0
  55. trunk/admin/icon/hotspot-regular.png +0 -0
  56. trunk/admin/icon/in-hover.jpg +0 -0
  57. trunk/admin/icon/in-regular.jpg +0 -0
  58. trunk/admin/icon/logo.png +0 -0
  59. trunk/admin/icon/m2c.png +0 -0
  60. trunk/admin/icon/move-down.jpg +0 -0
  61. trunk/admin/icon/move-left.jpg +0 -0
  62. trunk/admin/icon/move-right.jpg +0 -0
  63. trunk/admin/icon/move-up.jpg +0 -0
  64. trunk/admin/icon/question-icon.png +0 -0
  65. trunk/admin/icon/question.png +0 -0
  66. trunk/admin/icon/rating-icon.png +0 -0
  67. trunk/admin/icon/scenes-hover.png +0 -0
  68. trunk/admin/icon/scenes-regular.png +0 -0
  69. trunk/admin/icon/social-booster.png +0 -0
  70. trunk/admin/icon/street-view-hover.png +0 -0
  71. trunk/admin/icon/street-view-regular.png +0 -0
  72. trunk/admin/icon/support-icon.png +0 -0
  73. trunk/admin/icon/tw-hover.jpg +0 -0
  74. trunk/admin/icon/tw-regular.jpg +0 -0
  75. trunk/admin/icon/uplad-icon.png +0 -0
  76. trunk/admin/icon/upload.png +0 -0
  77. trunk/admin/icon/video-hover.png +0 -0
  78. trunk/admin/icon/video-regular.png +0 -0
  79. trunk/admin/icon/wpvr-banner.jpg +0 -0
  80. trunk/admin/icon/wpvr-logo.png +0 -0
  81. trunk/admin/icon/zoom-in.jpg +0 -0
  82. trunk/admin/icon/zoom-out.jpg +0 -0
  83. trunk/admin/index.php +0 -1
  84. trunk/admin/js/jquery.repeater.min.js +0 -5
  85. trunk/admin/js/materialize.js +0 -6408
README.txt CHANGED
@@ -3,9 +3,9 @@ Contributors: rextheme, coderexco
3
  Tags: virtual tour, real estate tour, panorama, panorama viewer, virtual tour, 360 panorama, interactive tour, 360, Streetview, virtual reality, 360 video, virtual, vr, interactive, 360-degree, equirectangular, google streetview, panoramas
4
  Donate link: https://rextheme.com/wp-vr-360-panorama-and-virtual-tour-creator-for-wordpress/
5
  Requires at least: 5.0
6
- Tested up to: 5.9
7
  Requires PHP: 7.0.0
8
- Stable tag: 7.3.7
9
  License: GPLv2 or later
10
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
11
 
@@ -323,6 +323,15 @@ Admins can remove the access from Authors and Editors at any time.
323
 
324
  == Changelog ==
325
 
 
 
 
 
 
 
 
 
 
326
  = 7.3.7 (19-05-2022) =
327
  * Fix: ZenCDN Removed.
328
  * Fix: Conflict between On-click Content & URL fields
3
  Tags: virtual tour, real estate tour, panorama, panorama viewer, virtual tour, 360 panorama, interactive tour, 360, Streetview, virtual reality, 360 video, virtual, vr, interactive, 360-degree, equirectangular, google streetview, panoramas
4
  Donate link: https://rextheme.com/wp-vr-360-panorama-and-virtual-tour-creator-for-wordpress/
5
  Requires at least: 5.0
6
+ Tested up to: 6.0
7
  Requires PHP: 7.0.0
8
+ Stable tag: 7.3.8
9
  License: GPLv2 or later
10
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
11
 
323
 
324
  == Changelog ==
325
 
326
+ = 7.3.8 (25-05-2022) =
327
+ * Update: Checked compatibility with WordPress 6.0.
328
+ * Update: Get Started page content updated.
329
+ * New: Updated support for Elementor function register_controls().
330
+ * Fix: Loading wrong tabs on tour editing mode.
331
+ * Fix: Radius not working for self-hosted video tours - Shortcodes.
332
+ * Fix: Radius not working for self-hosted video tours - WPVR Gutenberg Block.
333
+ * Fix: Radius not working for self-hosted video tours - WPVR Elementor Widget.
334
+
335
  = 7.3.7 (19-05-2022) =
336
  * Fix: ZenCDN Removed.
337
  * Fix: Conflict between On-click Content & URL fields
admin/class-wpvr-admin.php CHANGED
@@ -153,9 +153,6 @@ class Wpvr_Admin
153
  'ajaxurl' => admin_url('admin-ajax.php'),
154
  'ajax_nonce' => wp_create_nonce('wpvr'),
155
  ));
156
-
157
-
158
-
159
  }
160
 
161
  if ($adscreen->id=="toplevel_page_wpvr") {
@@ -1287,7 +1284,7 @@ class Wpvr_Admin
1287
  $html .= '<div class="single-settings s_tab">';
1288
  $html .= '<span>'.__('Open in same tab: ', 'wpvr').'</span>';
1289
  $html .= '<label class="wpvr-switcher-v2">';
1290
- $html .= '<input type="checkbox" class="wpvr_url_open" name="wpvr_url_open" value="off">';
1291
  $html .= '<span class="switcher-box"></span>';
1292
  $html .= '</label>';
1293
  $html .= '</div>';
@@ -1777,7 +1774,7 @@ class Wpvr_Admin
1777
  }
1778
 
1779
  $html .= '<div class="single-settings s_tab">';
1780
- $html .= '<span>'.__('Open in same tab: ', 'wpvr').'</span>';
1781
  $html .= '<label class="wpvr-switcher-v2">';
1782
  $html .= '<input type="checkbox" class="wpvr_url_open" name="wpvr_url_open" value="'.$wpvr_url_open_data.'" '.$wpvr_url_open_checked.'>';
1783
  $html .= '<span class="switcher-box"></span>';
@@ -1903,7 +1900,7 @@ class Wpvr_Admin
1903
  //====Hotspot open in same tab===//
1904
  $wpvr_url_open_checked = '';
1905
  $wpvr_url_open_data = 'off';
1906
-
1907
  if (isset($pano_hotspot['wpvr_url_open'][0]) && $pano_hotspot['wpvr_url_open'][0] == 'on') {
1908
  $wpvr_url_open_checked = 'checked';
1909
  $wpvr_url_open_data = 'on';
@@ -2222,9 +2219,12 @@ class Wpvr_Admin
2222
  $html .= '</div>';
2223
 
2224
  //====Hotspot open in same tab===//
 
 
 
2225
  $wpvr_url_open_checked = '';
2226
  $wpvr_url_open_data = 'off';
2227
-
2228
  if ($pano_hotspot['wpvr_url_open'][0] == 'on') {
2229
  $wpvr_url_open_checked = 'checked';
2230
  $wpvr_url_open_data = 'on';
@@ -2279,7 +2279,7 @@ class Wpvr_Admin
2279
  $html .= '<div class="single-settings s_tab" style="display:none;">';
2280
  $html .= '<span>'.__('Open in same tab: ', 'wpvr').'</span>';
2281
  $html .= '<label class="wpvr-switcher-v2">';
2282
- $html .= '<input type="checkbox" class="wpvr_url_open" name="wpvr_url_open" value="off">';
2283
  $html .= '<span class="switcher-box"></span>';
2284
  $html .= '</label>';
2285
  $html .= '</div>';
@@ -2356,7 +2356,7 @@ class Wpvr_Admin
2356
  //====Hotspot open in same tab===//
2357
  $wpvr_url_open_checked = '';
2358
  $wpvr_url_open_data = 'off';
2359
-
2360
  if ($pano_hotspot['wpvr_url_open'][0] == 'on') {
2361
  $wpvr_url_open_checked = 'checked';
2362
  $wpvr_url_open_data = 'on';
153
  'ajaxurl' => admin_url('admin-ajax.php'),
154
  'ajax_nonce' => wp_create_nonce('wpvr'),
155
  ));
 
 
 
156
  }
157
 
158
  if ($adscreen->id=="toplevel_page_wpvr") {
1284
  $html .= '<div class="single-settings s_tab">';
1285
  $html .= '<span>'.__('Open in same tab: ', 'wpvr').'</span>';
1286
  $html .= '<label class="wpvr-switcher-v2">';
1287
+ $html .= '<input type="checkbox" class="wpvr_url_open" name="wpvr_url_open" value="off" >';
1288
  $html .= '<span class="switcher-box"></span>';
1289
  $html .= '</label>';
1290
  $html .= '</div>';
1774
  }
1775
 
1776
  $html .= '<div class="single-settings s_tab">';
1777
+ $html .= '<span>'.__('Open in same tab: ', 'wpvr').'</span>';
1778
  $html .= '<label class="wpvr-switcher-v2">';
1779
  $html .= '<input type="checkbox" class="wpvr_url_open" name="wpvr_url_open" value="'.$wpvr_url_open_data.'" '.$wpvr_url_open_checked.'>';
1780
  $html .= '<span class="switcher-box"></span>';
1900
  //====Hotspot open in same tab===//
1901
  $wpvr_url_open_checked = '';
1902
  $wpvr_url_open_data = 'off';
1903
+
1904
  if (isset($pano_hotspot['wpvr_url_open'][0]) && $pano_hotspot['wpvr_url_open'][0] == 'on') {
1905
  $wpvr_url_open_checked = 'checked';
1906
  $wpvr_url_open_data = 'on';
2219
  $html .= '</div>';
2220
 
2221
  //====Hotspot open in same tab===//
2222
+ $wpvr_url_open_checked = 'checked';
2223
+ $wpvr_url_open_data = 'on';
2224
+
2225
  $wpvr_url_open_checked = '';
2226
  $wpvr_url_open_data = 'off';
2227
+
2228
  if ($pano_hotspot['wpvr_url_open'][0] == 'on') {
2229
  $wpvr_url_open_checked = 'checked';
2230
  $wpvr_url_open_data = 'on';
2279
  $html .= '<div class="single-settings s_tab" style="display:none;">';
2280
  $html .= '<span>'.__('Open in same tab: ', 'wpvr').'</span>';
2281
  $html .= '<label class="wpvr-switcher-v2">';
2282
+ $html .= '<input type="checkbox" class="wpvr_url_open" name="wpvr_url_open" value="off" >';
2283
  $html .= '<span class="switcher-box"></span>';
2284
  $html .= '</label>';
2285
  $html .= '</div>';
2356
  //====Hotspot open in same tab===//
2357
  $wpvr_url_open_checked = '';
2358
  $wpvr_url_open_data = 'off';
2359
+
2360
  if ($pano_hotspot['wpvr_url_open'][0] == 'on') {
2361
  $wpvr_url_open_checked = 'checked';
2362
  $wpvr_url_open_data = 'on';
admin/icon/cart-lift.png CHANGED
Binary file
admin/js/wpvr-admin.js CHANGED
@@ -1791,8 +1791,13 @@
1791
  if (_q_activeTab) {
1792
  if (default_tabs.includes(_q_activeTab)) {
1793
  activeTab = _q_activeTab;
1794
- vr_main_tab.find('li:not(:first)').removeClass('active');
1795
- vr_main_tab.find('.' + activeTab).addClass('active');
 
 
 
 
 
1796
 
1797
  // scene screens
1798
  var_main_tab_contents.addClass('active');
@@ -1801,7 +1806,9 @@
1801
  } else {
1802
  var_main_tab_contents.not('#' + activeTab).removeClass('active');
1803
  }
1804
-
 
 
1805
  // scene contents
1806
  if (_sceneID) {
1807
  var scenesIds = [];
@@ -1874,7 +1881,6 @@
1874
  });
1875
 
1876
  $(document).on("click", ".wpvr_url_open", function (event) {
1877
- console.log($(this).val());
1878
  if ($(this).val() == 'off') {
1879
  $(this).val('on');
1880
  }
@@ -1883,4 +1889,5 @@
1883
  }
1884
  });
1885
 
 
1886
  })(jQuery);
1791
  if (_q_activeTab) {
1792
  if (default_tabs.includes(_q_activeTab)) {
1793
  activeTab = _q_activeTab;
1794
+ if(activeTab == "video" ){
1795
+ vr_main_tab.find('li:not(:first)').removeClass('active');
1796
+ vr_main_tab.find(".videos").addClass('active');
1797
+ }else{
1798
+ vr_main_tab.find('li:not(:first)').removeClass('active');
1799
+ vr_main_tab.find('.' + activeTab).addClass('active');
1800
+ }
1801
 
1802
  // scene screens
1803
  var_main_tab_contents.addClass('active');
1806
  } else {
1807
  var_main_tab_contents.not('#' + activeTab).removeClass('active');
1808
  }
1809
+ if(activeTab === 'hotspot'){
1810
+ $(".rex-pano-nav-menu.main-nav ul li.hotspot span").trigger('click')
1811
+ }
1812
  // scene contents
1813
  if (_sceneID) {
1814
  var scenesIds = [];
1881
  });
1882
 
1883
  $(document).on("click", ".wpvr_url_open", function (event) {
 
1884
  if ($(this).val() == 'off') {
1885
  $(this).val('on');
1886
  }
1889
  }
1890
  });
1891
 
1892
+
1893
  })(jQuery);
admin/lib/pannellum/src/js/pannellum.js CHANGED
@@ -1778,7 +1778,6 @@ function createHotSpot(hs) {
1778
  }
1779
  } else {
1780
  //wpvr edit by sakib for in tab url open// -- handling from here
1781
- console.log(hs);
1782
  if (hs.wpvr_url_open == 'on') {
1783
  a.target = '_self';
1784
  }
1778
  }
1779
  } else {
1780
  //wpvr edit by sakib for in tab url open// -- handling from here
 
1781
  if (hs.wpvr_url_open == 'on') {
1782
  a.target = '_self';
1783
  }
admin/partials/wpvr_documentation.php CHANGED
@@ -158,23 +158,23 @@ if (!defined('ABSPATH')) exit; // Exit if accessed directly
158
  </div>
159
 
160
  <div class="promotion-area">
161
- <h4 class="title"><?php _e('Check out our other amazing free plugins!', 'wpvr'); ?></h4>
162
  <div class="single-block m2c">
163
  <span class="icon">
164
- <img src="<?php echo WPVR_PLUGIN_DIR_URL . 'admin/icon/m2c.png' ?>" alt="icon">
165
  </span>
166
- <h4><?php _e('Media Storage to Cloud', 'wpvr'); ?></h4>
167
- <p><?php _e('Enhance your website performance by serving website media and content through your trusted cloud portal.', 'wpvr'); ?></p>
168
 
169
  <a class="wpvr-btn" href="https://wordpress.org/plugins/wp-media-storage-to-cloud/" target="_blank"><?php _e('Get It Now', 'wpvr'); ?></a>
170
  </div>
171
 
172
  <div class="single-block sb">
173
  <span class="icon">
174
- <img src="<?php echo WPVR_PLUGIN_DIR_URL . 'admin/icon/social-booster.png' ?>" alt="icon">
175
  </span>
176
- <h4><?php _e('Social Booster', 'wpvr'); ?></h4>
177
- <p><?php _e('Automate social sharing of your posts & pages instantly share or schedule your posts for social share without leaving your website.', 'wpvr'); ?></p>
178
 
179
  <a class="wpvr-btn" href="https://wordpress.org/plugins/social-booster/" target="_blank"><?php _e('Get It Now', 'wpvr'); ?></a>
180
  </div>
@@ -815,6 +815,7 @@ if (!defined('ABSPATH')) exit; // Exit if accessed directly
815
  <form class="wpvr-version">
816
  <h6><?php _e('Select a Version to Rollback', 'wpvr'); ?></h6>
817
  <select name="wpvr_version">
 
818
  <option value="7.3.6">7.3.6</option>
819
  <option value="7.3.5">7.3.5</option>
820
  <option value="7.3.4">7.3.4</option>
158
  </div>
159
 
160
  <div class="promotion-area">
161
+ <h4 class="title"><?php _e('Try out these plugins to scale up your business, for Free!', 'wpvr'); ?></h4>
162
  <div class="single-block m2c">
163
  <span class="icon">
164
+ <img src="<?php echo WPVR_PLUGIN_DIR_URL . 'admin/icon/wpfunnels.png' ?>" alt="icon">
165
  </span>
166
+ <h4><?php _e('WPFunnels', 'wpvr'); ?></h4>
167
+ <p><?php _e('Create high-converting slaes funnels on a visual drag & drop funnel builder canvas and increase your online sales from today.', 'wpvr'); ?></p>
168
 
169
  <a class="wpvr-btn" href="https://wordpress.org/plugins/wp-media-storage-to-cloud/" target="_blank"><?php _e('Get It Now', 'wpvr'); ?></a>
170
  </div>
171
 
172
  <div class="single-block sb">
173
  <span class="icon">
174
+ <img src="<?php echo WPVR_PLUGIN_DIR_URL . 'admin/icon/cart-lift.png' ?>" alt="icon">
175
  </span>
176
+ <h4><?php _e('Cart Lift', 'wpvr'); ?></h4>
177
+ <p><?php _e('Recover abandoned carts with automated email drip campaigns. Start getting back lost sales on your online store.', 'wpvr'); ?></p>
178
 
179
  <a class="wpvr-btn" href="https://wordpress.org/plugins/social-booster/" target="_blank"><?php _e('Get It Now', 'wpvr'); ?></a>
180
  </div>
815
  <form class="wpvr-version">
816
  <h6><?php _e('Select a Version to Rollback', 'wpvr'); ?></h6>
817
  <select name="wpvr_version">
818
+ <option value="7.3.7">7.3.7</option>
819
  <option value="7.3.6">7.3.6</option>
820
  <option value="7.3.5">7.3.5</option>
821
  <option value="7.3.4">7.3.4</option>
elementor/elementor.php CHANGED
@@ -84,7 +84,11 @@ class WpvrElementor {
84
  * @access private
85
  */
86
  private function register_widget() {
87
- \Elementor\Plugin::instance()->widgets_manager->register_widget_type( new Wpvr_Widget() );
 
 
 
 
88
  }
89
  }
90
 
84
  * @access private
85
  */
86
  private function register_widget() {
87
+ if ( version_compare(ELEMENTOR_VERSION, '3.5.0', '>=') ) {
88
+ \Elementor\Plugin::instance()->widgets_manager->register( new Wpvr_Widget() );
89
+ } else {
90
+ \Elementor\Plugin::instance()->widgets_manager->register_widget_type( new Wpvr_Widget() );
91
+ }
92
  }
93
  }
94
 
elementor/elements/Wpvr-widget.php CHANGED
@@ -2,6 +2,8 @@
2
 
3
  namespace WpvrElement\Elements\Wpvr;
4
 
 
 
5
  use Elementor\Widget_Base;
6
  use Elementor\Controls_Manager;
7
 
@@ -98,6 +100,14 @@ class Wpvr_Widget extends Widget_Base {
98
  *
99
  * @access protected
100
  */
 
 
 
 
 
 
 
 
101
  protected function _register_controls() {
102
 
103
 
@@ -107,7 +117,7 @@ class Wpvr_Widget extends Widget_Base {
107
  */
108
  $the_posts = get_posts(array('post_type' => 'wpvr_item',
109
  'posts_per_page' => -1));
110
-
111
  $wpvr_post = array();
112
 
113
  foreach($the_posts as $post){
@@ -117,7 +127,79 @@ class Wpvr_Widget extends Widget_Base {
117
  $wpvr_post[$post->ID] = 'No title' .' : '.$post->ID;
118
  }
119
  }
120
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
121
  $this->start_controls_section(
122
  'section_content',
123
  [
@@ -216,7 +298,57 @@ class Wpvr_Widget extends Widget_Base {
216
  *
217
  * @access protected
218
  */
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
219
  protected function _content_template() {
220
 
 
 
 
221
  }
222
  }
2
 
3
  namespace WpvrElement\Elements\Wpvr;
4
 
5
+ use Elementor\Controls_Stack;
6
+ use Elementor\Plugin;
7
  use Elementor\Widget_Base;
8
  use Elementor\Controls_Manager;
9
 
100
  *
101
  * @access protected
102
  */
103
+ protected function init_controls() {
104
+ if ( version_compare(ELEMENTOR_VERSION, '3.1.0', '>=') ) {
105
+ $this->register_controls();
106
+ } else {
107
+ $this->_register_controls();
108
+ }
109
+ }
110
+
111
  protected function _register_controls() {
112
 
113
 
117
  */
118
  $the_posts = get_posts(array('post_type' => 'wpvr_item',
119
  'posts_per_page' => -1));
120
+
121
  $wpvr_post = array();
122
 
123
  foreach($the_posts as $post){
127
  $wpvr_post[$post->ID] = 'No title' .' : '.$post->ID;
128
  }
129
  }
130
+
131
+ $this->start_controls_section(
132
+ 'section_content',
133
+ [
134
+ 'label' => __( 'WPVR Setup', 'wpvr' ),
135
+ ]
136
+ );
137
+
138
+ /**
139
+ * Nasim
140
+ * add a select type field instead of text field
141
+ */
142
+ $this->add_control(
143
+ 'vr_id',
144
+ [
145
+ 'label' => __( 'ID:', 'wpvr' ),
146
+ 'type' => \Elementor\Controls_Manager::SELECT,
147
+ 'options' => $wpvr_post
148
+ ]
149
+ );
150
+ $this->add_control(
151
+ 'vr_width',
152
+ [
153
+ 'label' => __( 'Width:', 'wpvr' ),
154
+ 'type' => Controls_Manager::TEXT,
155
+ 'input_type' => 'text',
156
+ 'placeholder' => __( '', 'wpvr' ),
157
+ ]
158
+ );
159
+
160
+ $this->add_control(
161
+ 'vr_height',
162
+ [
163
+ 'label' => __( 'Height:', 'wpvr' ),
164
+ 'type' => Controls_Manager::TEXT,
165
+ 'input_type' => 'text',
166
+ 'placeholder' => __( 'Put value in (px)', 'wpvr' ),
167
+ ]
168
+ );
169
+
170
+ $this->add_control(
171
+ 'vr_radius',
172
+ [
173
+ 'label' => __( 'Radius:', 'wpvr' ),
174
+ 'type' => Controls_Manager::TEXT,
175
+ 'input_type' => 'text',
176
+ 'placeholder' => __( '', 'wpvr' ),
177
+ ]
178
+ );
179
+
180
+ $this->end_controls_section();
181
+
182
+ }
183
+ protected function register_controls() {
184
+
185
+
186
+ /**
187
+ * Nasim
188
+ * get all tour info and store in $wpvr_post
189
+ */
190
+ $the_posts = get_posts(array('post_type' => 'wpvr_item',
191
+ 'posts_per_page' => -1));
192
+
193
+ $wpvr_post = array();
194
+
195
+ foreach($the_posts as $post){
196
+ if($post->post_title){
197
+ $wpvr_post[$post->ID] = $post->post_title.' : '.$post->ID;
198
+ }else{
199
+ $wpvr_post[$post->ID] = 'No title' .' : '.$post->ID;
200
+ }
201
+ }
202
+
203
  $this->start_controls_section(
204
  'section_content',
205
  [
298
  *
299
  * @access protected
300
  */
301
+ // protected function _content_template() {
302
+ //
303
+ // }
304
+ /**
305
+ * Print element template.
306
+ *
307
+ * Used to generate the element template on the editor.
308
+ *
309
+ * @since 2.0.0
310
+ * @access public
311
+ */
312
+ public function print_template() {
313
+ ob_start();
314
+
315
+ if ( version_compare(ELEMENTOR_VERSION, '3.1.0', '>=') ) {
316
+ $this->content_template();
317
+ } else {
318
+ $this->_content_template();
319
+ }
320
+
321
+ $template_content = ob_get_clean();
322
+
323
+ $element_type = $this->get_type();
324
+
325
+ /**
326
+ * Template content.
327
+ *
328
+ * Filters the controls stack template content before it's printed in the editor.
329
+ *
330
+ * The dynamic portion of the hook name, `$element_type`, refers to the element type.
331
+ *
332
+ * @since 1.0.0
333
+ *
334
+ * @param string $content_template The controls stack template in the editor.
335
+ * @param Controls_Stack $this The controls stack.
336
+ */
337
+ $template_content = apply_filters( "elementor/{$element_type}/print_template", $template_content, $this );
338
+
339
+ if ( empty( $template_content ) ) {
340
+ return;
341
+ }
342
+ ?>
343
+ <script type="text/html" id="tmpl-elementor-<?php echo esc_attr( $this->get_name() ); ?>-content">
344
+ <?php $this->print_template_content( $template_content ); ?>
345
+ </script>
346
+ <?php
347
+ }
348
  protected function _content_template() {
349
 
350
+ }
351
+ protected function content_template() {
352
+
353
  }
354
  }
public/class-wpvr-public.php CHANGED
@@ -271,8 +271,6 @@ class Wpvr_Public
271
  $html .= '</div>';
272
  return $html;
273
  }
274
-
275
-
276
  if (isset($postdata['vidid'])) {
277
  if (empty($width)) {
278
  $width = '600px';
@@ -291,7 +289,6 @@ class Wpvr_Public
291
  if (isset($postdata['loop'])) {
292
  $loop = $postdata['loop'];
293
  }
294
-
295
  if (strpos($videourl, 'youtube') > 0 || strpos($videourl, 'youtu') > 0) {
296
  $explodeid = '';
297
  $explodeid = explode("=", $videourl);
@@ -354,6 +351,9 @@ class Wpvr_Public
354
  .video-js {
355
  border-radius:' . $radius . ';
356
  }
 
 
 
357
  </style>
358
 
359
  ';
@@ -706,7 +706,11 @@ class Wpvr_Public
706
  array_push($hotspots, $hotspot_info);
707
  }
708
 
 
709
  $device_scene = $panoscenes['scene-attachment-url'];
 
 
 
710
  $mobile_media_resize = get_option('mobile_media_resize');
711
  $file_accessible = ini_get('allow_url_fopen');
712
 
271
  $html .= '</div>';
272
  return $html;
273
  }
 
 
274
  if (isset($postdata['vidid'])) {
275
  if (empty($width)) {
276
  $width = '600px';
289
  if (isset($postdata['loop'])) {
290
  $loop = $postdata['loop'];
291
  }
 
292
  if (strpos($videourl, 'youtube') > 0 || strpos($videourl, 'youtu') > 0) {
293
  $explodeid = '';
294
  $explodeid = explode("=", $videourl);
351
  .video-js {
352
  border-radius:' . $radius . ';
353
  }
354
+ .video-js canvas{
355
+ border-radius:' . $radius . ';
356
+ }
357
  </style>
358
 
359
  ';
706
  array_push($hotspots, $hotspot_info);
707
  }
708
 
709
+
710
  $device_scene = $panoscenes['scene-attachment-url'];
711
+ //// added for https and http
712
+ // $device_scene = str_replace("https","http",$device_scene);
713
+
714
  $mobile_media_resize = get_option('mobile_media_resize');
715
  $file_accessible = ini_get('allow_url_fopen');
716
 
public/lib/pannellum/src/js/pannellum.js CHANGED
@@ -1769,7 +1769,6 @@ function createHotSpot(hs) {
1769
  }
1770
  } else {
1771
  //wpvr edit by sakib for in tab url open// -- handling from here
1772
- console.log(hs);
1773
  if (hs.wpvr_url_open == 'on') {
1774
  a.target = '_self';
1775
  }
1769
  }
1770
  } else {
1771
  //wpvr edit by sakib for in tab url open// -- handling from here
 
1772
  if (hs.wpvr_url_open == 'on') {
1773
  a.target = '_self';
1774
  }
trunk/LICENSE.txt DELETED
@@ -1,339 +0,0 @@
1
- GNU GENERAL PUBLIC LICENSE
2
- Version 2, June 1991
3
-
4
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
5
- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
6
- Everyone is permitted to copy and distribute verbatim copies
7
- of this license document, but changing it is not allowed.
8
-
9
- Preamble
10
-
11
- The licenses for most software are designed to take away your
12
- freedom to share and change it. By contrast, the GNU General Public
13
- License is intended to guarantee your freedom to share and change free
14
- software--to make sure the software is free for all its users. This
15
- General Public License applies to most of the Free Software
16
- Foundation's software and to any other program whose authors commit to
17
- using it. (Some other Free Software Foundation software is covered by
18
- the GNU Lesser General Public License instead.) You can apply it to
19
- your programs, too.
20
-
21
- When we speak of free software, we are referring to freedom, not
22
- price. Our General Public Licenses are designed to make sure that you
23
- have the freedom to distribute copies of free software (and charge for
24
- this service if you wish), that you receive source code or can get it
25
- if you want it, that you can change the software or use pieces of it
26
- in new free programs; and that you know you can do these things.
27
-
28
- To protect your rights, we need to make restrictions that forbid
29
- anyone to deny you these rights or to ask you to surrender the rights.
30
- These restrictions translate to certain responsibilities for you if you
31
- distribute copies of the software, or if you modify it.
32
-
33
- For example, if you distribute copies of such a program, whether
34
- gratis or for a fee, you must give the recipients all the rights that
35
- you have. You must make sure that they, too, receive or can get the
36
- source code. And you must show them these terms so they know their
37
- rights.
38
-
39
- We protect your rights with two steps: (1) copyright the software, and
40
- (2) offer you this license which gives you legal permission to copy,
41
- distribute and/or modify the software.
42
-
43
- Also, for each author's protection and ours, we want to make certain
44
- that everyone understands that there is no warranty for this free
45
- software. If the software is modified by someone else and passed on, we
46
- want its recipients to know that what they have is not the original, so
47
- that any problems introduced by others will not reflect on the original
48
- authors' reputations.
49
-
50
- Finally, any free program is threatened constantly by software
51
- patents. We wish to avoid the danger that redistributors of a free
52
- program will individually obtain patent licenses, in effect making the
53
- program proprietary. To prevent this, we have made it clear that any
54
- patent must be licensed for everyone's free use or not licensed at all.
55
-
56
- The precise terms and conditions for copying, distribution and
57
- modification follow.
58
-
59
- GNU GENERAL PUBLIC LICENSE
60
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
61
-
62
- 0. This License applies to any program or other work which contains
63
- a notice placed by the copyright holder saying it may be distributed
64
- under the terms of this General Public License. The "Program", below,
65
- refers to any such program or work, and a "work based on the Program"
66
- means either the Program or any derivative work under copyright law:
67
- that is to say, a work containing the Program or a portion of it,
68
- either verbatim or with modifications and/or translated into another
69
- language. (Hereinafter, translation is included without limitation in
70
- the term "modification".) Each licensee is addressed as "you".
71
-
72
- Activities other than copying, distribution and modification are not
73
- covered by this License; they are outside its scope. The act of
74
- running the Program is not restricted, and the output from the Program
75
- is covered only if its contents constitute a work based on the
76
- Program (independent of having been made by running the Program).
77
- Whether that is true depends on what the Program does.
78
-
79
- 1. You may copy and distribute verbatim copies of the Program's
80
- source code as you receive it, in any medium, provided that you
81
- conspicuously and appropriately publish on each copy an appropriate
82
- copyright notice and disclaimer of warranty; keep intact all the
83
- notices that refer to this License and to the absence of any warranty;
84
- and give any other recipients of the Program a copy of this License
85
- along with the Program.
86
-
87
- You may charge a fee for the physical act of transferring a copy, and
88
- you may at your option offer warranty protection in exchange for a fee.
89
-
90
- 2. You may modify your copy or copies of the Program or any portion
91
- of it, thus forming a work based on the Program, and copy and
92
- distribute such modifications or work under the terms of Section 1
93
- above, provided that you also meet all of these conditions:
94
-
95
- a) You must cause the modified files to carry prominent notices
96
- stating that you changed the files and the date of any change.
97
-
98
- b) You must cause any work that you distribute or publish, that in
99
- whole or in part contains or is derived from the Program or any
100
- part thereof, to be licensed as a whole at no charge to all third
101
- parties under the terms of this License.
102
-
103
- c) If the modified program normally reads commands interactively
104
- when run, you must cause it, when started running for such
105
- interactive use in the most ordinary way, to print or display an
106
- announcement including an appropriate copyright notice and a
107
- notice that there is no warranty (or else, saying that you provide
108
- a warranty) and that users may redistribute the program under
109
- these conditions, and telling the user how to view a copy of this
110
- License. (Exception: if the Program itself is interactive but
111
- does not normally print such an announcement, your work based on
112
- the Program is not required to print an announcement.)
113
-
114
- These requirements apply to the modified work as a whole. If
115
- identifiable sections of that work are not derived from the Program,
116
- and can be reasonably considered independent and separate works in
117
- themselves, then this License, and its terms, do not apply to those
118
- sections when you distribute them as separate works. But when you
119
- distribute the same sections as part of a whole which is a work based
120
- on the Program, the distribution of the whole must be on the terms of
121
- this License, whose permissions for other licensees extend to the
122
- entire whole, and thus to each and every part regardless of who wrote it.
123
-
124
- Thus, it is not the intent of this section to claim rights or contest
125
- your rights to work written entirely by you; rather, the intent is to
126
- exercise the right to control the distribution of derivative or
127
- collective works based on the Program.
128
-
129
- In addition, mere aggregation of another work not based on the Program
130
- with the Program (or with a work based on the Program) on a volume of
131
- a storage or distribution medium does not bring the other work under
132
- the scope of this License.
133
-
134
- 3. You may copy and distribute the Program (or a work based on it,
135
- under Section 2) in object code or executable form under the terms of
136
- Sections 1 and 2 above provided that you also do one of the following:
137
-
138
- a) Accompany it with the complete corresponding machine-readable
139
- source code, which must be distributed under the terms of Sections
140
- 1 and 2 above on a medium customarily used for software interchange; or,
141
-
142
- b) Accompany it with a written offer, valid for at least three
143
- years, to give any third party, for a charge no more than your
144
- cost of physically performing source distribution, a complete
145
- machine-readable copy of the corresponding source code, to be
146
- distributed under the terms of Sections 1 and 2 above on a medium
147
- customarily used for software interchange; or,
148
-
149
- c) Accompany it with the information you received as to the offer
150
- to distribute corresponding source code. (This alternative is
151
- allowed only for noncommercial distribution and only if you
152
- received the program in object code or executable form with such
153
- an offer, in accord with Subsection b above.)
154
-
155
- The source code for a work means the preferred form of the work for
156
- making modifications to it. For an executable work, complete source
157
- code means all the source code for all modules it contains, plus any
158
- associated interface definition files, plus the scripts used to
159
- control compilation and installation of the executable. However, as a
160
- special exception, the source code distributed need not include
161
- anything that is normally distributed (in either source or binary
162
- form) with the major components (compiler, kernel, and so on) of the
163
- operating system on which the executable runs, unless that component
164
- itself accompanies the executable.
165
-
166
- If distribution of executable or object code is made by offering
167
- access to copy from a designated place, then offering equivalent
168
- access to copy the source code from the same place counts as
169
- distribution of the source code, even though third parties are not
170
- compelled to copy the source along with the object code.
171
-
172
- 4. You may not copy, modify, sublicense, or distribute the Program
173
- except as expressly provided under this License. Any attempt
174
- otherwise to copy, modify, sublicense or distribute the Program is
175
- void, and will automatically terminate your rights under this License.
176
- However, parties who have received copies, or rights, from you under
177
- this License will not have their licenses terminated so long as such
178
- parties remain in full compliance.
179
-
180
- 5. You are not required to accept this License, since you have not
181
- signed it. However, nothing else grants you permission to modify or
182
- distribute the Program or its derivative works. These actions are
183
- prohibited by law if you do not accept this License. Therefore, by
184
- modifying or distributing the Program (or any work based on the
185
- Program), you indicate your acceptance of this License to do so, and
186
- all its terms and conditions for copying, distributing or modifying
187
- the Program or works based on it.
188
-
189
- 6. Each time you redistribute the Program (or any work based on the
190
- Program), the recipient automatically receives a license from the
191
- original licensor to copy, distribute or modify the Program subject to
192
- these terms and conditions. You may not impose any further
193
- restrictions on the recipients' exercise of the rights granted herein.
194
- You are not responsible for enforcing compliance by third parties to
195
- this License.
196
-
197
- 7. If, as a consequence of a court judgment or allegation of patent
198
- infringement or for any other reason (not limited to patent issues),
199
- conditions are imposed on you (whether by court order, agreement or
200
- otherwise) that contradict the conditions of this License, they do not
201
- excuse you from the conditions of this License. If you cannot
202
- distribute so as to satisfy simultaneously your obligations under this
203
- License and any other pertinent obligations, then as a consequence you
204
- may not distribute the Program at all. For example, if a patent
205
- license would not permit royalty-free redistribution of the Program by
206
- all those who receive copies directly or indirectly through you, then
207
- the only way you could satisfy both it and this License would be to
208
- refrain entirely from distribution of the Program.
209
-
210
- If any portion of this section is held invalid or unenforceable under
211
- any particular circumstance, the balance of the section is intended to
212
- apply and the section as a whole is intended to apply in other
213
- circumstances.
214
-
215
- It is not the purpose of this section to induce you to infringe any
216
- patents or other property right claims or to contest validity of any
217
- such claims; this section has the sole purpose of protecting the
218
- integrity of the free software distribution system, which is
219
- implemented by public license practices. Many people have made
220
- generous contributions to the wide range of software distributed
221
- through that system in reliance on consistent application of that
222
- system; it is up to the author/donor to decide if he or she is willing
223
- to distribute software through any other system and a licensee cannot
224
- impose that choice.
225
-
226
- This section is intended to make thoroughly clear what is believed to
227
- be a consequence of the rest of this License.
228
-
229
- 8. If the distribution and/or use of the Program is restricted in
230
- certain countries either by patents or by copyrighted interfaces, the
231
- original copyright holder who places the Program under this License
232
- may add an explicit geographical distribution limitation excluding
233
- those countries, so that distribution is permitted only in or among
234
- countries not thus excluded. In such case, this License incorporates
235
- the limitation as if written in the body of this License.
236
-
237
- 9. The Free Software Foundation may publish revised and/or new versions
238
- of the General Public License from time to time. Such new versions will
239
- be similar in spirit to the present version, but may differ in detail to
240
- address new problems or concerns.
241
-
242
- Each version is given a distinguishing version number. If the Program
243
- specifies a version number of this License which applies to it and "any
244
- later version", you have the option of following the terms and conditions
245
- either of that version or of any later version published by the Free
246
- Software Foundation. If the Program does not specify a version number of
247
- this License, you may choose any version ever published by the Free Software
248
- Foundation.
249
-
250
- 10. If you wish to incorporate parts of the Program into other free
251
- programs whose distribution conditions are different, write to the author
252
- to ask for permission. For software which is copyrighted by the Free
253
- Software Foundation, write to the Free Software Foundation; we sometimes
254
- make exceptions for this. Our decision will be guided by the two goals
255
- of preserving the free status of all derivatives of our free software and
256
- of promoting the sharing and reuse of software generally.
257
-
258
- NO WARRANTY
259
-
260
- 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
261
- FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
262
- OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
263
- PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
264
- OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
265
- MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
266
- TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
267
- PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
268
- REPAIR OR CORRECTION.
269
-
270
- 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
271
- WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
272
- REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
273
- INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
274
- OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
275
- TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
276
- YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
277
- PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
278
- POSSIBILITY OF SUCH DAMAGES.
279
-
280
- END OF TERMS AND CONDITIONS
281
-
282
- How to Apply These Terms to Your New Programs
283
-
284
- If you develop a new program, and you want it to be of the greatest
285
- possible use to the public, the best way to achieve this is to make it
286
- free software which everyone can redistribute and change under these terms.
287
-
288
- To do so, attach the following notices to the program. It is safest
289
- to attach them to the start of each source file to most effectively
290
- convey the exclusion of warranty; and each file should have at least
291
- the "copyright" line and a pointer to where the full notice is found.
292
-
293
- <one line to give the program's name and a brief idea of what it does.>
294
- Copyright (C) <year> <name of author>
295
-
296
- This program is free software; you can redistribute it and/or modify
297
- it under the terms of the GNU General Public License as published by
298
- the Free Software Foundation; either version 2 of the License, or
299
- (at your option) any later version.
300
-
301
- This program is distributed in the hope that it will be useful,
302
- but WITHOUT ANY WARRANTY; without even the implied warranty of
303
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
304
- GNU General Public License for more details.
305
-
306
- You should have received a copy of the GNU General Public License along
307
- with this program; if not, write to the Free Software Foundation, Inc.,
308
- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
309
-
310
- Also add information on how to contact you by electronic and paper mail.
311
-
312
- If the program is interactive, make it output a short notice like this
313
- when it starts in an interactive mode:
314
-
315
- Gnomovision version 69, Copyright (C) year name of author
316
- Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
317
- This is free software, and you are welcome to redistribute it
318
- under certain conditions; type `show c' for details.
319
-
320
- The hypothetical commands `show w' and `show c' should show the appropriate
321
- parts of the General Public License. Of course, the commands you use may
322
- be called something other than `show w' and `show c'; they could even be
323
- mouse-clicks or menu items--whatever suits your program.
324
-
325
- You should also get your employer (if you work as a programmer) or your
326
- school, if any, to sign a "copyright disclaimer" for the program, if
327
- necessary. Here is a sample; alter the names:
328
-
329
- Yoyodyne, Inc., hereby disclaims all copyright interest in the program
330
- `Gnomovision' (which makes passes at compilers) written by James Hacker.
331
-
332
- <signature of Ty Coon>, 1 April 1989
333
- Ty Coon, President of Vice
334
-
335
- This General Public License does not permit incorporating your program into
336
- proprietary programs. If your program is a subroutine library, you may
337
- consider it more useful to permit linking proprietary applications with the
338
- library. If this is what you want to do, use the GNU Lesser General
339
- Public License instead of this License.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
trunk/README.txt DELETED
@@ -1,711 +0,0 @@
1
- === WP VR - 360 Panorama and Virtual Tour Builder For WordPress ===
2
- Contributors: rextheme, coderexco
3
- Tags: virtual tour, real estate tour, panorama, panorama viewer, virtual tour, 360 panorama, interactive tour, 360, Streetview, virtual reality, 360 video, virtual, vr, interactive, 360-degree, equirectangular, google streetview, panoramas
4
- Donate link: https://rextheme.com/wp-vr-360-panorama-and-virtual-tour-creator-for-wordpress/
5
- Requires at least: 5.0
6
- Tested up to: 5.9
7
- Requires PHP: 7.0.0
8
- Stable tag: 7.3.7
9
- License: GPLv2 or later
10
- License URI: http://www.gnu.org/licenses/gpl-2.0.html
11
-
12
- Let site visitors take a virtual tour and get them excited!! Let them experience a glimpse of a live tour of your place.
13
-
14
- == Description ==
15
- Create amazing virtual tours on your own easily using WP VR. Let visitors take a tour of your place remotely, and keep them engaged.
16
-
17
- With WPVR, you can create a virtual tour, where your visitors can navigate through your place in a 360 panoramic view and get an overall idea on how it looks in reality.
18
-
19
- Simply upload a 360 panoramic image, and the plugin will transform it into a realistic virtual tour.
20
-
21
- >WPVR is compatible with Shortcodes, Elementor, Gutenberg, Visual Composer, & Oxygen builder.
22
-
23
- [Demo Virtual Tour (Pro)](https://rextheme.com/wpvr/#demo-tour) | [Documentation](https://rextheme.com/docs/wp-vr/) | [Premium Version](https://rextheme.com/wpvr/)
24
-
25
- == Why Use WPVR? ==
26
- WPVR gives you all the features needed to create a quality virtual tour without any hassle.
27
-
28
- https://www.youtube.com/watch?v=SWsv-bplne8
29
-
30
- **Simple & Easy To Use Virtual Tour Builder**
31
-
32
- WPVR has a simple interface, designed to create virtual tours real quickly, without any expertise.
33
-
34
- >In fact, you can create a simple virtual tour in less than 5 minutes!!
35
-
36
- On top of that, you can customize the tour further using auto-rotation effect, scene fade animation when transmitting between scenes, Gyroscope support on mobile devices, and many more, to make the tour more attractive.
37
-
38
- You may also use interactive hotspots to display information and keep your viewers engaged.
39
-
40
- The best part of this plugin is, you will get a live tour preview at the back-end so that you can see what you are creating on the go.
41
-
42
- Even if you're new to this, you will still be able to create virtual tours on your own, thanks to the actionable video tutorials and step-by-step instructions in our documentation.
43
-
44
- >Read detailed [documentation](https://rextheme.com/docs/wp-vr/) and [video tutorials](https://www.youtube.com/playlist?list=PLelDqLncNWcUndi1NkXJh2BH62OYmIayt) for assistance.
45
-
46
- **Create An Interactive Realistic Tour With Multiple Panoramic Images**
47
-
48
- You can add multiple 360-degree images in a virtual tour to create scenes, and connect them through scene type hotspots.
49
-
50
- Viewers can click on the hotspots to move back and forth between the scenes.
51
-
52
- > You can connect up to 5 scenes, and add 5 hotspots per scene on a virtual tour. To create tours with unlimited scenes and hotspots, [click here](https://rextheme.com/wpvr)
53
-
54
- **Interactive Hotspots To Create More Attraction**
55
-
56
- You can use engaging hotspots to view on-click or on-hover contents that include:
57
-
58
- *Texts
59
- *Images
60
- *GIFs
61
- *URLs
62
- *Videos
63
- *Buttons
64
-
65
- Also, you will get over 900+ custom icons for hotspots which you can further customize with color and ripple animation. A great way to grab your viewer's attention.
66
-
67
- >Contact our reliable [support team](https://rextheme.com/support/) to help you out anytime.
68
-
69
- **A Simple Tool For 360 Experience**
70
-
71
- Whether you run a travel blog, or sell properties as a realtor, a virtual tour will make your site more interactive. Even just viewing a simple scene with one 360 degree image will add extra value.
72
-
73
- And WPVR is currently the most reliable plugin to help you out with this. You may choose to use it as a simple 360 photo viewer, or create a high quality virtual tour with all the features without any complications.
74
-
75
- **A Functional 360 Video Viewer**
76
-
77
- When you have a 360 camera, you will be able to capture 360 degree apartment videos which is amazing.
78
-
79
- Once you embed the 360 degree videos on your site, your visitors can navigate within the video, while it plays.
80
-
81
- You may upload your 360 video content to Youtube, Vimeo, or your website, and then embed the video on any page within your site using WPVR.
82
-
83
- **Embed Virtual Tours In Just A Few Clicks**
84
-
85
- Once you create a tour, it’s really easy to embed it on your website.
86
-
87
- Whether you use Gutenberg Editor or Popular page builders, WPVR comes with dedicated blocks and widgets to save you time when embedding your tour on your site.
88
-
89
- | WPVR Gutenberg block | WPVR Elementor widget | Visual Composer Element | Oxygen Builder Element
90
-
91
- If you use any other page builder, you can still publish the tour by using a shortcode, which is generated after you publish the tour.
92
-
93
- **Use High Quality Images Without WordPress Restriction**
94
-
95
- A good quality 360 panorama usually comes with very high resolution that can easily go over 3000 x 1500 pixels.
96
-
97
- However, WordPress has the default large image handler which usually resizes images to below 2560 x 1280 pixels when you upload the image.
98
-
99
- WPVR comes with the option to disable this restriction so that you can easily upload panoramic images that can be more that 3000 pixels in width.
100
-
101
- **Mobile First VR Approach**
102
-
103
- WPVR is designed with a mobile-friendly output in mind and all the tours you make will be fully responsive and weightless for mobile devices.
104
-
105
- Simply enable the Auto-resize feature for mobile phones so that a lighter version of your panoramic images are generated. These are then used to view virtual tours on mobile devices.
106
-
107
- ==Who Should Use WP VR?==
108
-
109
- - Real Estate Industry (Virtual home tours).
110
- - Educational Institutes (Schools and colleges).
111
- - Hotels and Resorts.
112
- - Restaurants.
113
- - Travel/Tourism.
114
- - Museums.
115
- - Art Galleries & Exhibitions.
116
- - Car Showrooms.
117
- - Furniture Showrooms.
118
- - Clothing Stores.
119
- - Grocery Stores.
120
- - Bars/Pubs.
121
-
122
- And many more.
123
-
124
- To have more control over creating a virtual tour, learn about the [Premium version](https://rextheme.com/wpvr/).
125
-
126
- ==FREE FEATURES==
127
-
128
- * An unlimited number of virtual tours.
129
- * 360 Degree Video Support (Self-hosted, Youtube and Vimeo Videos).
130
- * Full-window Virtual Tours.
131
- * Shortcode Support.
132
- * Gutenberg Block Support.
133
- * Elementor Widget Support.
134
- * Oxygen Builder Support.
135
- * Live Preview of Tour On The Back-end.
136
- * Tour Preview Image.
137
- * Tour Autoload Feature.
138
- * Scene Fade Animation.
139
- * Auto Rotation with Speed Control.
140
- * Auto Rotation Direction, Pause, and Stop control.
141
- * Basic Control Buttons (Zoom In, Zoom Out, and Fullscreen).
142
- * Mouse Drag Control on Virtual Tour.
143
- * Zoom In and Out with Mouse Scroll on Virtual Tour.
144
- * Zoom In and Out with ‘+’ and ‘-’ keyboard buttons.
145
- * Add Multiple Scenes and Hotspots.
146
- * Scene Type Hotspot to Connect Scenes.
147
- * Info Type Hotspots to Give Information.
148
- * On Hover and On-Click Content Option for Hotspots.
149
- * Embed Texts, Videos, Images, GIFs, and Website Links on Hotspots.
150
- * Hotspot Customization with Custom CSS.
151
- * Full-width Tour Tag.
152
- * Radius Tag for tour border radius.
153
- * Multi-Site Support.
154
- * WP User Role Support (Editors and Authors).
155
- * Disable FontAwesome Option.
156
- * Disable WordPress Default Large Image Handler.
157
- * Control Plugin Assets To Load on Specific Pages/posts Only.
158
- * Enable Front-end notice for Mobile Visitors.
159
- * Mobile Media Resize Option.
160
- * Plugin Version Rollback Option.
161
- * Support From the Support Forum.
162
-
163
- ==PREMIUM FEATURES==
164
-
165
- * All Free Features.
166
- * Unlimited Scenes and Hotspots (Up to 5 in the Free Version).
167
- * 360 Video Autoplay and Loop.
168
- * Google Street View Embed Support.
169
- * Gyroscope Support for Mobile Devices.
170
- * Auto Enable Gyroscope on Mobile Devices.
171
- * Custom & Responsive Scene Gallery.
172
- * Scene Titles on Each Scene.
173
- * Scene Description (Author) & URL on Each Scene.
174
- * Scene Titles & Thumbnails on Scene Gallery.
175
- * Tour Background Music Support.
176
- * Background Music Autoplay, Loop, & Pause Control.
177
- * Set Your Company Logo on The Virtual Tour.
178
- * Set Company Description on The Logo.
179
- * Home Button to Go to The Default Scene.
180
- * On-Screen Compass for Tours.
181
- * Disable or Enable Keyboard Movement Control.
182
- * Disable or Enable Keyboard Zoom Control.
183
- * Global Zoom Settings for the entire Virtual Tour.
184
- * Disable or Enable Mouse Drag Control.
185
- * Disable or Enable Mouse Scroll Zoom.
186
- * Fluent Forms Integration on Hotspots.
187
- * Fill-up and Submit Booking/Contact Forms.
188
- * WooCommerce Product Integration on Hotspots.
189
- * Add To Cart Feature for WooCommerce Products on Hotspots.
190
- * Advanced Control Buttons (Move Up, Down, Left, & Right).
191
- * Customize Icons of Each Control Button (900+ Premium Icons).
192
- * Customize Colors of Each Control Button (RGB, HSL, & HEX).
193
- * Enable or Disable Each Control Button.
194
- * Custom Default Scene Face for Each Scene.
195
- * Default Scene Face For Target Scene.
196
- * Partial Panorama (Mobile Panorama) Support.
197
- * Scene Boundary Control (Horizontal & Vertical).
198
- * Set Vertical Offset of Each Scene.
199
- * Limit Vertical Scene Grab for Each Scene.
200
- * Limit Horizontal Scene Grab for Each Scene.
201
- * Control Max, Min, and Default Zoom for Each Scene.
202
- * Customize Each Hotspot Icon (900+ Premium Icons).
203
- * Color Picker for Hotspots (RGB, HSL, & HEX).
204
- * Tour Export and Import (For WP VR Only).
205
- * Duplicate Tours with One Click.
206
- * Priority Support.
207
-
208
- [Upgrade to Pro](https://rextheme.com/docs/wp-vr/how-to-upgrade-to-pro/)
209
-
210
- > We have many more amazing features planned. Take look at [our development roadmap.](https://app.productstash.io/roadmaps/5f0b43d9a54eda00221d5516/public)
211
-
212
- **Upcoming Features**
213
-
214
- - Floor Plan support.
215
- - VR Glass/Cardboard support.
216
- - Explainer Video option.
217
- - Contact Form/Booking Option Button.
218
- - Background Tour.
219
-
220
- ## Privacy Policy
221
- WP VR uses [Appsero](https://appsero.com) SDK to collect some telemetry data upon user's confirmation. This helps us to troubleshoot problems faster & make product improvements.
222
-
223
- Appsero SDK **does not gather any data by default.** The SDK only starts gathering basic telemetry data **when a user allows it via the admin notice**. We collect the data to ensure a great user experience for all our users.
224
-
225
- Integrating Appsero SDK **DOES NOT IMMEDIATELY** start gathering data, **without confirmation from users in any case.**
226
-
227
- Learn more how [Appsero collects and uses this data](https://appsero.com/privacy-policy/).
228
-
229
- == Frequently Asked Questions ==
230
-
231
- =1. Why Do I Need WP VR?=
232
-
233
- You can easily create a Virtual Tour of your place using WP VR to build a virtual presence of your business.
234
-
235
- Simply provide a 360 degree panoramic photo and this plugin will create a virtual tour that your visitors can navigate easily.
236
-
237
- Allow your prospects to have a realistic tour of your facility before they decide to purchase your service and increase your conversion rate.
238
-
239
- =2. How to Install and Activate WP VR?=
240
-
241
- Once you have downloaded the file, go to your dashboard. Under Plugins, select Add New, and upload the file. Then Install and activate the plugin.
242
-
243
- Once activated, on the left side under your dashboard, you will find the option WP VR at the bottom.
244
-
245
- =3. What Kind of Images Should I Use To Create A Virtual Tour?=
246
-
247
- To make a perfect equirectangular image, you need to use a 360-degree panoramic photo of the area you want to preview.
248
-
249
- However, you can also capture panorama images with your smartphone and use them to create a partial panorama tour.
250
-
251
- =5. Can I Customize The Hotspot Icons?=
252
-
253
- Yes. You can create a custom class on your theme, stating whatever style you want.
254
-
255
- Then you can input the class name on the Hotspot Custom Class section in a hotspot, and the content displayed will be customized according to the style you set.
256
-
257
- =6. Can I Create A 360 Degree Video Tour With WP VR?=
258
-
259
- Yes, with WP VR, you can create a 360 Degree video tour.
260
-
261
- You can either upload the video to create a tour or set a link to a Youtube/Vimeo 360 degree video.
262
-
263
- =7. How To Embed A Virtual Tour Using Gutenberg Block Editor?=
264
-
265
- Under common blocks, you will find a block called WP VR. Select the block and on the dynamic toolbar on the right, you will get the options to add ID, Height, and Width.
266
-
267
- Collect the ID from the virtual tour you created. Assign the height and width as you desire.
268
-
269
- =8. The Tour Is Not Loading On The Webpage.=
270
-
271
- Go to your WordPress Dashboard > WPVR > Get Started > Settings.
272
-
273
- Check the Enable Script Control option status.
274
-
275
- If the Enable Script Control option is turned On, turn it off and reload the tour page.
276
-
277
- If you wish to use this feature, you have to set the URLs of all the pages on your site with a virtual tour in the List of Allowed Pages To Load WPVR Scripts field.
278
-
279
- =9. What To Do If I Get “THE FILE (image link) COULD NOT BE ACCESSED” Error?=
280
-
281
- Sometimes when you add a tour on your site, you might face this issue that rather than loading the tour it will give the error “THE FILE (…) COULD NOT BE ACCESSED.”
282
-
283
- This error shows up when you are running a website under “HTTPS” (secured with SSL certificate) whereas your image link is under “HTTP” (unsecured).
284
-
285
- To solve this issue, go to your WordPress Dashboard > Settings > General. Here make sure you have “https” added to both “WordPress Address (URL)” and “Site Address (URL)”. That’s it. Your virtual tour will load with no issues.
286
-
287
- =10. Can I make The Virtual Tour Full-width?=
288
-
289
- Yes, you can publish the tours as full-width of your page/post.
290
-
291
- For Gutenberg, Elementor, and Oxygen builder, set fullwidth on the Width field. For shortcodes, set width = “fullwidth”.
292
-
293
- =11. What If I Use An Optimization or Caching Plugin?=
294
-
295
- If you use any Optimization or Caching plugins, then you need to exclude WP VR from its optimization function.
296
-
297
- Simply add “/plugins/wpvr” to the exclusion field (or use the location where you store plugins).
298
-
299
- =12. Can I Allow The Users of My Site To Create Virtual Tours?=
300
-
301
- You can only allow the backend users like Admins, Editors, and Authors of your site to create virtual tours.
302
-
303
- Admins & editors will have access to all virtual tours on the site to modify, update and delete them.
304
-
305
- Authors can access their own tours only and modify, update, or delete them.
306
-
307
- Admins can remove the access from Authors and Editors at any time.
308
-
309
- == Screenshots ==
310
- 1. Upload 360 Degree Image
311
- 2. Preview 360 Degree Image
312
- 3. Basic Settings of Virtual Tour
313
- 4. Preview Image on Virtual Tour
314
- 5. Preview Image Virtual Tour
315
- 6. Advanced Controls of Virtual Tour
316
- 7. Control Buttons of Virtual Tour
317
- 8. 360 Image Basic Settings
318
- 9. 360 Image Advanced Settings
319
- 10. Set Information on Hotspots
320
- 11. Connect 360 Degree Images on Hotspots
321
- 12. 360 Video Tour
322
-
323
-
324
- == Changelog ==
325
-
326
- = 7.3.7 (19-05-2022) =
327
- * Fix: ZenCDN Removed.
328
- * Fix: Conflict between On-click Content & URL fields
329
- * Fix: Reset inserted data when Hotspot Type is changed (Info, Scene).
330
- * Tweak: Better loading logic while Previewing Tour on General, Scenes, & Hotspots tabs.
331
- * Tweak: Better loading logic for Getting Started & Settings pages
332
-
333
- = 7.3.6 (04-04-2022) =
334
- * New: Google Cardboard, Oculus Rift, HTC Vive, & GearVR Support for Video Tours.
335
- * New: Support for Multiple Tours Inside Elementor Tabs.
336
- * New: Custom Mobile Height for the Tours using WPVR Gutenberg Block.
337
- * New: Custom Mobile Height for the Tours using Shortcode.
338
- * Fix: Custom Preview Image Text not Working in Elementor Tabs.
339
- * Fix: PHP Warnings on Front-end.
340
- * Fix: PHP Warnings on Settings Page.
341
- * Fix: PHP Warnings on Hotspots Page.
342
-
343
- = 7.3.5 (27-01-2022) =
344
- * Update: Checked Compatibility with WordPress 5.9.
345
- * Update: Checked Compatibility with WooCommerce 6.1.1.
346
- * Update: Checked Compatibility with Gutenberg 12.4.1.
347
- * Update: Checked Compatibility with Elementor 3.5.4.
348
- * Update: Checked Compatibility with Visual Composer 42.1.
349
- * Update: Checked Compatibility with Fluent Forms 4.3.0.
350
- * Update: Rollback version updated to 7.3.4.
351
- * New: Disable On-hover content for mobile devices.
352
- * New: Open URL in the same tab from hotspots.
353
- * Fix: Height field doesn't work for YouTube videos - WPVR Elementor widget.
354
- * Fix: Width and Height fields don't work for YouTube video tours - WPVR Gutenberg block.
355
-
356
- = 7.3.3 (16-09-2021) =
357
- * Update: Checked Compatibility with WordPress 5.8.1.
358
- * Update: Checked Compatibility with PHP 8.0.
359
- * Update: Rollback Versions Updated to 7.3.2.
360
- * Fix: PHP Error Notices.
361
- * New: Full-window Virtual Tour Support.
362
- * New: Control video.js loading on specific pages.
363
-
364
-
365
- = 7.3.2 (04-08-2021) =
366
- * Fix: PHP Error Notices.
367
-
368
- = 7.3.1 (27-07-2021) =
369
- * Update: Checked Compatibility with WordPress 5.8.
370
- * Fix: PHP Error Notice.
371
- * Tweak: Dual Action Warning for Auto-Rotation redesigned & updated.
372
- * Tweak: Invalid Pitch Value Warning redesigned & updated.
373
- * Tweak: Invalid Yaw Value Warning redesigned & updated.
374
- * Tweak: Invalid Default Zoom Value Warnings redesigned & updated.
375
- * Tweak: Invalid Max-zoom Value Warning redesigned & updated.
376
- * Tweak: Max-zoom Value Exceeded Warning redesigned & updated.
377
- * Tweak: Invalid Min-zoom Value Warning redesigned & updated.
378
- * Tweak: Low Min-zoom Value Warning redesigned & updated.
379
-
380
-
381
- = 7.3.0 (18-06-2021) =
382
- * Tweak: WP VR logo & Text Aligned on Dashboard.
383
- * Tweak: Scene Image Missing Notice redesigned & updated.
384
- * Tweak: Scene ID Missing Notice redesigned & updated.
385
- * Tweak: Invalid Scene ID Notice redesigned & updated.
386
- * Tweak: Duplicate Scene ID Notice redesigned & updated.
387
- * Tweak: Default Scene Change Notice redesigned & updated.
388
- * Tweak: Scene Deletion Notice redesigned & updated.
389
- * Tweak: Scene Limit Reached Notice redesigned & updated.
390
- * Tweak: Invalid Hotspot ID Notice redesigned & updated.
391
- * Tweak: Duplicate Hotspot ID Notice redesigned & updated.
392
- * Tweak: On-click Content + URL Dual Input Notice redesigned & updated.
393
- * Tweak: Custom Icon + Custom Icon Class Dual Input Notice redesigned & updated.
394
- * Tweak: Target Scene Missing Notice redesigned & updated.
395
- * Tweak: Hotspot Limit Reached Notice redesigned & updated.
396
- * Tweak: Hotspot Deletion Notice redesigned & updated.
397
- * Fix: Autoplay bug for 360-degree videos.
398
-
399
- = 7.2.9 (25-05-2021) =
400
- * New: Warning message added for Street View tab.
401
- * Tweak: Rollback versions updated.
402
-
403
- = 7.2.8 (06-05-2021) =
404
- * Fix: PHP Warnings on Backend & Frontend
405
- * Fix: Audio Issue for self-hosted videos on hotspots
406
-
407
- = 7.2.7 (12-04-2021) =
408
- * Tweak: Rollback versions updated.
409
- * Tweak: Video tab warning pop-up redesigned.
410
- * New: Preview Image Text is made dynamic.
411
- * New: On the Hotspots tab, the active Scene ID will be mentioned.
412
- * Fix: Elementor Widget Issue.
413
- * Fix: Preview Image Text font mismatch.
414
-
415
- = 7.2.6 (22-03-2021) =
416
- * Tweak: Rollback versions updated
417
- * Fix: Dummy notice removed
418
- * Fix: AppSero Updater Error
419
-
420
- = 7.2.5 (11-03-2021) =
421
- * Update: Checked compatibility with WordPress 5.7
422
- * New: Visual Composer element support
423
- * Fix: PHP warnings on the dashboard
424
-
425
- = 7.2.4 (24-02-2021) =
426
- * Tweak: Made the Enable Script Control option conditional
427
- * Tweak: Added pop-up warning when switching to a video tour
428
- * Fix: Style conflict issue with Phlox Pro theme
429
- * Fix: Tour ID Dropdown responsiveness issue for WP VR Elementor Widget
430
- * Fix: Icons of deleted scenes showing up
431
-
432
- = 7.2.3 (09-02-2021) =
433
- * Tweak: Removed Export tab alert
434
- * Fix: PHP warnings on the activation
435
-
436
- = 7.2.2 (21-12-2020) =
437
- * Tweak: Removed dummy functions
438
- * Fix: Browser JS conflict
439
-
440
- = 7.2.1 (17-12-2020) =
441
- * New: Warning message added for video tours
442
- * Fix: VR audio JS error
443
- * Fix: Tab and accordion issue
444
- * Tweak: Modified rollback options
445
-
446
- = 7.2.0 (09-12-2020) =
447
- * Update: Checked compatibility with WordPress 5.6
448
- * Fix: VR audio conflict
449
-
450
- = 7.1.0 (19-11-2020) =
451
- * Tweak: Modified Black Friday banner
452
-
453
- = 7.0.0 (19-11-2020) =
454
- * New: Added Black Friday banner
455
-
456
- = 6.9.0 (16-11-2020) =
457
- * New: Accordion support for Elementor
458
- * Fix: Iframe conflict
459
- * Fix: Control button overlap issue
460
-
461
- = 6.8.0 (22-10-2020) =
462
- * New: Display Scene Gallery by default
463
-
464
- = 6.7.0 (18-09-2020) =
465
- * Tweak: Modified Import/Export
466
- * Tweak: Added switch for Mobile Media Resizer
467
- * Fix: Conflict with OceanWP Theme
468
-
469
- = 6.6.0 (09-09-2020) =
470
- * Tweak: Modified Scene Gallery preview
471
- * Tweak: Modified Mobile Media Resizer
472
- * Fix: Video tab bug
473
- * Fix: Error handled for allow open URL
474
-
475
- = 6.5.0 (31-08-2020) =
476
- * Update: Updated Appsero version
477
- * Fix: Empty needle warning
478
-
479
- = 6.4.0 (19-08-2020) =
480
- * Fix: Media Resizer fixed
481
-
482
- = 6.3.0 (14-08-2020) =
483
- * Update: Checked compatibility with WordPress 5.5
484
- * New: Mobile Media Resizer option added
485
- * Fix: Google Street View responsive issue
486
-
487
- = 6.2.0 (07-08-2020) =
488
- * New: Oxygen Builder Element support added
489
- * New: Multi-site support added
490
- * New: Dynamic Front-end Notice option added
491
-
492
- = 6.1.0 (31-7-2020) =
493
- * Fix: Style issue for On-click content
494
-
495
- = 6.0.0 (28-7-2020) =
496
- * Fix: Safari browser issues
497
- * Fix: JS error for optimization
498
-
499
- = 5.9.0 (27-7-2020) =
500
- * Fix: Export/Import SSL error
501
- * Fix: JS errors
502
-
503
- = 5.8.0 (25-7-2020) =
504
- * New: Submit restriction to control gyro for SSL
505
- * New: Add-on compatibility added
506
- * New: Mobile notice added
507
- * Tweak: License input type changed to password
508
- * Fix: On-click content container responsive issue
509
-
510
- = 5.7.0 (20-7-2020) =
511
- * Update: User Interface updated
512
- * New: Rollback feature added
513
- * Tweak: Gallery image size changed to thumbnail
514
- * Tweak: Gallery Scene IDs replaced with Scene Titles
515
- * Fix: Youtube 360 video autoplay issue
516
- * Fix: Company logo style issue
517
- * Fix: Saving draft issue
518
-
519
- = 5.6.0 (15-06-2020) =
520
- * New: Tour Background Music support added
521
-
522
- = 5.5.0 (12-05-2020) =
523
- * Tweak: Self-hosted videos pause on closing window
524
- * Fix: Custom control button conflict
525
- * Fix: On-click content container issue
526
-
527
- = 5.4.0 (27-04-2020) =
528
- * Fix: Device Orientation control issue
529
-
530
- = 5.3.0 (16-04-2020) =
531
- * New: Keyboard zoom control added
532
- * Tweak: Style modified for Company Logo
533
-
534
- = 5.2.0 (02-04-2020) =
535
- * New: Author URL field added
536
-
537
- = 5.1.0 (26-03-2020) =
538
- * New: Auto device based gyro option added
539
-
540
- = 5.0.0 =
541
- * New: Home button added for returning to the default scene
542
-
543
- = 4.9.0 =
544
- * New: Scene title field added for Scene Gallery
545
-
546
- = 4.8.0 =
547
- * Tweak: Script & Style files control modified
548
-
549
- = 4.7.0 =
550
- * New: High-resolution image upload option added
551
- * Fix: Gyroscope conflict with default controls
552
- * Fix: Input type error
553
-
554
- = 4.6.0 =
555
- * Fix: Gyroscope support issue for custom controls
556
-
557
- = 4.5.0 =
558
- * Update: Library updated
559
- * Fix: Default icon issue on android smartphones
560
-
561
- = 4.4.0 =
562
- * New: Option to Control plugin scripts and styles to load them on specific pages only
563
- * Fix: Draggable error fix
564
-
565
- = 4.3.0 =
566
- * New: Added option to enable/disable Draggable feature
567
- * Tweak: Settings titles capitalized
568
-
569
- = 4.2.0 =
570
- * New: Added option to enable/disable Keyboard Controls
571
- * Fix: Font-Awesome conflict
572
-
573
- = 4.1.0 =
574
- * New: Autoplay and Loop options added for 360-degree videos
575
- * New: Mouse scroll support added
576
-
577
- = 4.0.0 =
578
- * New: Option to control User Roles for the plugin
579
-
580
- = 3.9.0 =
581
- * Fix: Gallery toggle issue
582
-
583
- = 3.8.0 =
584
- * Tweak: Loading box design changed
585
-
586
- = 3.7.0 =
587
- * New: Partial Panorama support
588
-
589
- = 3.6.0 =
590
- * Update: JS optimization removed
591
-
592
- = 3.5.0 =
593
- * Fix: Front-end errors
594
-
595
- = 3.4.9 =
596
- * Tweak: JS & CSS loading optimized
597
-
598
- = 3.4.8 =
599
- * Tweak: Optimized the backend preview loading
600
-
601
- = 3.4.7 =
602
- * Google street view embed
603
-
604
- = 3.4.6 =
605
- * Custom control feature
606
- * WordPress 5.3 bug fix
607
-
608
- = 3.4.5 =
609
- * WordPress.com hosting support fixed
610
-
611
- = 3.4.4 =
612
- * Rotation fix on default scene face
613
- * Rotation fix on hotspots to target scene face
614
- * Plugin library update
615
-
616
- = 3.4.3 =
617
- * Autorotation error fix
618
- * Ziparchive class error fix
619
-
620
- = 3.4.2 =
621
- * Gallery carousel design fix
622
- * CSS and js restricted
623
-
624
- = 3.4.1 =
625
- * Gallery carousal fix
626
-
627
- = 3.4.0 =
628
- * Repeater delete confirmation fix.
629
-
630
- = 3.3.0 =
631
- * Placeholder change.
632
-
633
- = 3.2.0 =
634
- * Custom scene gallery conflict and a bug fix for iPhone and iPad.
635
-
636
- = 3.1.0 =
637
- * Custom scene gallery.
638
- * Border radius tag added.
639
- * Modified preview window.
640
-
641
- = 3.0.0 =
642
- * File import & export system added.
643
- * Fullwidth tag added.
644
- * Placeholder color changed.
645
-
646
- = 2.9.0 =
647
- * Tour selector updated on VR block.
648
-
649
- = 2.8.0 =
650
- * Dynamic error reporting added.
651
-
652
- = 2.7.0 =
653
- * Post memory limit fix.
654
-
655
- = 2.6.0 =
656
- * Duplicate tour.
657
- * Blink animation automated.
658
- * Language issue fixed.
659
-
660
- = 2.5.0 =
661
- * Gyroscope support on the premium version.
662
- * Appsero error fix.
663
- * Gutenberg block column layout fix.
664
-
665
- = 2.4.0 =
666
- * Font-awesome icon load fix.
667
- * Plugin conflict fix.
668
- * Rextheme link removed from premium version.
669
-
670
- = 2.3.0 =
671
- * Elementor widget support for free.
672
- * Mozilla Firefox bug fix.
673
- * CDN load fix.
674
- * Block input dropdown added.
675
- * Hotspot based scene face added.
676
-
677
- = 2.2.0 =
678
- * Scene title and author tag support.
679
- * Elementor widget support.
680
-
681
- = 2.1.1 =
682
- * Dynamic Font-Awesome icon added for hotspots.
683
- * Dynamic color picker added for hotspot color.
684
- * Custom panorama compass support.
685
- * Default zoom level.
686
- * Maximum and minimum zoom range.
687
- * Customize each scene’s default face on load.
688
- * Scene grab control and custom boundary for each scene.
689
-
690
- = 2.1.0 =
691
- * Save draft fixed.
692
- * Error handling fixed.
693
- * Video support added.
694
- * Slider revolution conflict fix.
695
- * Auto rotation
696
- * Rotation pause and stop control
697
-
698
- = 2.0.0 =
699
- * Gutenberg block support
700
- * Bug fix.
701
-
702
- = 1.0.1 =
703
- * Default scene can be selected from the scene tab.
704
- * Default height and width are given for shortcodes.
705
-
706
- = 1.0 =
707
- * Hotspot custom icon support.
708
- * On screen control available.
709
-
710
- == Upgrade Notice ==
711
- Please do update the WP VR to the latest version. Each update makes sure your plugin is supporting all tour features.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
trunk/admin/class-wpvr-admin-pages.php DELETED
@@ -1,38 +0,0 @@
1
- <?php
2
- if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
3
- /**
4
- * The admin-specific functionality of the plugin.
5
- *
6
- * @link http://rextheme.com/
7
- * @since 1.0.0
8
- *
9
- * @package Wpvr
10
- * @subpackage Wpvr/admin
11
- */
12
-
13
- class Wpvr_Admin_Pages {
14
-
15
- /**
16
- * Admin page setup is specified in this area.
17
- */
18
- function wpvr_add_admin_pages() {
19
-
20
- add_menu_page( 'WP VR', 'WP VR', 'manage_options', 'wpvr', array( $this, 'wpvr_admin_doc'),plugins_url(). '/wpvr/images/icon.png' , 25);
21
-
22
- add_submenu_page( 'wpvr', 'WP VR', 'Get Started','manage_options', 'wpvr', array( $this, 'wpvr_admin_doc'));
23
-
24
- add_submenu_page( 'wpvr', 'WP VR', 'Tours','manage_options', 'edit.php?post_type=wpvr_item', NULL);
25
-
26
- add_submenu_page( 'wpvr', 'WP VR', 'Add New Tour','manage_options', 'post-new.php?post_type=wpvr_item', NULL);
27
-
28
- do_action('wpvr_pro_license_page');
29
-
30
- }
31
-
32
- function wpvr_admin_doc() {
33
- require_once plugin_dir_path(__FILE__) . '/partials/wpvr_documentation.php';
34
- }
35
- function wpvr_pro_admin_doc() {
36
- require_once plugin_dir_path(__FILE__) . '/partials/wpvr_license.php';
37
- }
38
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
trunk/admin/class-wpvr-admin.php DELETED
@@ -1,2802 +0,0 @@
1
- <?php
2
- if (! defined('ABSPATH')) {
3
- exit;
4
- } // Exit if accessed directly
5
- /**
6
- * The admin-specific functionality of the plugin.
7
- *
8
- * @link http://rextheme.com/
9
- * @since 1.0.0
10
- *
11
- * @package Wpvr
12
- * @subpackage Wpvr/admin
13
- */
14
-
15
- /**
16
- * The admin-specific functionality of the plugin.
17
- *
18
- * Defines the plugin name, version, and two examples hooks for how to
19
- * enqueue the admin-specific stylesheet and JavaScript.
20
- *
21
- * @package Wpvr
22
- * @subpackage Wpvr/admin
23
- * @author Rextheme <sakib@coderex.co>t
24
- */
25
- class Wpvr_Admin
26
- {
27
-
28
- /**
29
- * The ID of this plugin.
30
- *
31
- * @since 1.0.0
32
- * @access private
33
- * @var string $plugin_name The ID of this plugin.
34
- */
35
- private $plugin_name;
36
-
37
- /**
38
- * The version of this plugin.
39
- *
40
- * @since 1.0.0
41
- * @access private
42
- * @var string $version The current version of this plugin.
43
- */
44
- private $version;
45
-
46
- /**
47
- * The post type of this plugin.
48
- *
49
- * @since 1.0.0
50
- */
51
- private $post_type;
52
-
53
- /**
54
- * Initialize the class and set its properties.
55
- *
56
- * @since 1.0.0
57
- * @param string $plugin_name The name of this plugin.
58
- * @param string $version The version of this plugin.
59
- */
60
- public function __construct($plugin_name, $version, $post_type)
61
- {
62
- $this->plugin_name = $plugin_name;
63
- $this->version = $version;
64
- $this->post_type = $post_type;
65
- }
66
-
67
- /**
68
- * Register the stylesheets for the admin area.
69
- *
70
- * @since 1.0.0
71
- */
72
- public function enqueue_styles()
73
- {
74
-
75
- /**
76
- * This function is provided for demonstration purposes only.
77
- *
78
- * An instance of this class should be passed to the run() function
79
- * defined in Wpvr_Loader as all of the hooks are defined
80
- * in that particular class.
81
- *
82
- * The Wpvr_Loader will then create the relationship
83
- * between the defined hooks and the functions defined in this
84
- * class.
85
- */
86
-
87
- $screen = get_current_screen();
88
- if ($screen->id=="toplevel_page_wpvr") {
89
- wp_enqueue_style('materialize-css', plugin_dir_url(__FILE__) . 'css/materialize.min.css', array(), $this->version, 'all');
90
- wp_enqueue_style('materialize-icons', plugin_dir_url(__FILE__) . 'lib/materializeicon.css', array(), $this->version, 'all');
91
- wp_enqueue_style('owl-css', 'https://cdnjs.cloudflare.com/ajax/libs/OwlCarousel2/2.3.4/assets/owl.carousel.min.css', array(), $this->version, 'all');
92
-
93
- wp_enqueue_style($this->plugin_name, plugin_dir_url(__FILE__) . 'css/wpvr-admin.css', array(), $this->version, 'all');
94
- }
95
-
96
- if ($screen->id=="wpvr_item") {
97
- wp_enqueue_style($this->plugin_name . 'fontawesome', plugin_dir_url(__FILE__) . 'lib/fontawesome/css/all.css', array(), $this->version, 'all');
98
- wp_enqueue_style('icon-picker-css', plugin_dir_url(__FILE__) . 'css/jquery.fonticonpicker.min.css', array(), $this->version, 'all');
99
- wp_enqueue_style('icon-picker-css-theme', plugin_dir_url(__FILE__) . 'css/jquery.fonticonpicker.grey.min.css', array(), $this->version, 'all');
100
- wp_enqueue_style('owl-css', plugin_dir_url(__FILE__) . 'css/owl.carousel.css', array(), $this->version, 'all');
101
- wp_enqueue_style('panellium-css', plugin_dir_url(__FILE__) . 'lib/pannellum/src/css/pannellum.css', array(), true);
102
- wp_enqueue_style('videojs-css', plugin_dir_url(__FILE__) . 'lib/pannellum/src/css/video-js.css', array(), true);
103
- wp_enqueue_style($this->plugin_name, plugin_dir_url(__FILE__) . 'css/wpvr-admin.css', array(), $this->version, 'all');
104
- }
105
- }
106
-
107
- /**
108
- * Register the JavaScript for the admin area.
109
- *
110
- * @since 1.0.0
111
- */
112
- public function enqueue_scripts()
113
- {
114
-
115
- /**
116
- * This function is provided for demonstration purposes only.
117
- *
118
- * An instance of this class should be passed to the run() function
119
- * defined in Wpvr_Loader as all of the hooks are defined
120
- * in that particular class.
121
- *
122
- * The Wpvr_Loader will then create the relationship
123
- * between the defined hooks and the functions defined in this
124
- * class.
125
- */
126
-
127
- $wpvr_list = array();
128
- $wpvr_list[] = array('value'=>0,'label'=>'None');
129
- $args = array(
130
- 'numberposts' => -1,
131
- 'post_type' => 'wpvr_item'
132
- );
133
-
134
- $wpvr_posts = get_posts( $args );
135
- foreach ($wpvr_posts as $wpvr_post) {
136
- $wpvr_list[] = array('value'=>$wpvr_post->ID,'label'=>$wpvr_post->post_title);
137
- }
138
-
139
- wp_enqueue_script('wp-api');
140
- $adscreen = get_current_screen();
141
- wp_enqueue_media();
142
- if ($adscreen->id=="wpvr_item" || $adscreen->id=="toplevel_page_wpvr") {
143
- wp_enqueue_script('wpvr-icon-picker', plugin_dir_url(__FILE__) . 'lib/jquery.fonticonpicker.min.js', array(), true);
144
- wp_enqueue_script('panellium-js', plugin_dir_url(__FILE__) . 'lib/pannellum/src/js/pannellum.js', array(), true);
145
- wp_enqueue_script('panelliumlib-js', plugin_dir_url(__FILE__) . 'lib/pannellum/src/js/libpannellum.js', array(), true);
146
- wp_enqueue_script('videojs-js', plugin_dir_url(__FILE__) .'js/video.js', array('jquery'), true);
147
- wp_enqueue_script('panelliumvid-js', plugin_dir_url(__FILE__) . 'lib/pannellum/src/js/videojs-pannellum-plugin.js', array(), true);
148
- wp_enqueue_script('jquery-repeater', plugin_dir_url(__FILE__) .'js/jquery.repeater.min.js', array('jquery'), true);
149
- wp_enqueue_script('icon-picker', plugin_dir_url(__FILE__) . 'lib/jquery.fonticonpicker.min.js', array(), true);
150
- wp_enqueue_script('owl', plugin_dir_url(__FILE__) . 'js/owl.carousel.js', array( 'jquery' ), false);
151
- wp_enqueue_script($this->plugin_name, plugin_dir_url(__FILE__) . 'js/wpvr-admin.js', array( 'jquery' ), $this->version, true);
152
- wp_localize_script($this->plugin_name, 'wpvr_obj', array(
153
- 'ajaxurl' => admin_url('admin-ajax.php'),
154
- 'ajax_nonce' => wp_create_nonce('wpvr'),
155
- ));
156
-
157
-
158
-
159
- }
160
-
161
- if ($adscreen->id=="toplevel_page_wpvr") {
162
- wp_enqueue_script('materialize-js', plugin_dir_url(__FILE__) . 'js/materialize.min.js', array( 'jquery' ), $this->version, false);
163
- }
164
-
165
- wp_enqueue_script('owl-js', 'https://cdnjs.cloudflare.com/ajax/libs/OwlCarousel2/2.3.4/owl.carousel.min.js', array( 'jquery' ), false);
166
- wp_enqueue_script('wpvr-global', plugin_dir_url(__FILE__) . 'js/wpvr-global.js', array( 'jquery' ), $this->version, false);
167
- wp_localize_script('wpvr-global', 'wpvr_global_obj', array(
168
- 'ajaxurl' => admin_url('admin-ajax.php'),
169
- 'site_url' => site_url() . '/wp-json/',
170
- 'ajax_nonce' => wp_create_nonce('wpvr_global'),
171
- ));
172
- wp_localize_script('wpvr-global', 'wpvr_id_options', $wpvr_list);
173
- }
174
-
175
-
176
- /**
177
- * Plugin action links
178
- *
179
- * @param $links
180
- * @return array
181
- */
182
- public function plugin_action_links_wpvr($actions, $plugin_file, $plugin_data, $context)
183
- {
184
- $actions['get_started'] = sprintf(
185
- '<a href="%s">%s</a>',
186
- esc_url(admin_url('admin.php?page=wpvr')),
187
- esc_html__('Get Started', 'wpvr')
188
- );
189
- $actions['documentation'] = sprintf(
190
- '<a href="%s" target="_blank">%s</a>',
191
- esc_url('https://rextheme.com/docs-category/wp-vr/'),
192
- esc_html__('Documentation', 'wpvr')
193
- );
194
-
195
- if (!apply_filters('is_wpvr_pro_active', false)) {
196
- $actions['go-pro'] = sprintf(
197
- '<a href="%s" target="_blank" style="color: #201cfe; font-weight: bold;">%s</a>',
198
- esc_url('https://rextheme.com/wpvr/#pricing'),
199
- esc_html__('Go Pro', 'wpvr')
200
- );
201
- }
202
- return $actions;
203
- }
204
-
205
-
206
- /**
207
- * Init the edit screen of the plugin post type item
208
- *
209
- * @since 1.0.0
210
- */
211
- public function wpvr_admin_init()
212
- {
213
- /*
214
- * Documentation : https://developer.wordpress.org/reference/functions/add_meta_box/
215
- */
216
-
217
- add_meta_box(
218
- $this->post_type . '_builder__box',
219
- __('Tour Preview', $this->plugin_name),
220
- array($this, 'wpvr_display_meta_box_builder'),
221
- $this->post_type,
222
- 'side',
223
- 'high'
224
- );
225
- }
226
-
227
-
228
- /**
229
- * Register the custom post type
230
- *
231
- * @since 1.0.0
232
- */
233
- public function wpvr_add_plugin_custom_post_type()
234
- {
235
- $labels = array(
236
- 'name' => __('Tours', $this->plugin_name),
237
- 'singular_name' => __('Tours', $this->plugin_name),
238
- 'add_new' => __('Add New Tour', $this->plugin_name),
239
- 'add_new_item' => __('Add New Tour', $this->plugin_name),
240
- 'edit_item' => __('Edit Tour', $this->plugin_name),
241
- 'new_item' => __('New Tour', $this->plugin_name),
242
- 'view_item' => __('View Tour', $this->plugin_name),
243
- 'search_items' => __('Search Wpvr Tour', $this->plugin_name),
244
- 'not_found' => __('No Wpvr Tour found', $this->plugin_name),
245
- 'not_found_in_trash'=> __('No Wpvr Tour found in Trash', $this->plugin_name),
246
- 'parent_item_colon' => '',
247
- 'all_items' => __('All Tours', $this->plugin_name),
248
- 'menu_name' => __('WP VR', $this->plugin_name),
249
- );
250
-
251
- $args = array(
252
- 'labels' => $labels,
253
- 'public' => false,
254
- 'show_ui' => true,
255
- 'show_in_menu' => false,
256
- 'menu_position' => 100,
257
- 'supports' => array( 'title' ),
258
- 'menu_icon' => plugins_url(). '/wpvr/images/icon.png',
259
- 'capabilities' => array(
260
- 'edit_post' => 'edit_wpvr_tour',
261
- 'edit_posts' => 'edit_wpvr_tours',
262
- 'edit_others_posts' => 'edit_other_wpvr_tours',
263
- 'publish_posts' => 'publish_wpvr_tours',
264
- 'read_post' => 'read_wpvr_tour',
265
- 'read_private_posts' => 'read_private_wpvr_tours',
266
- 'delete_post' => 'delete_wpvr_tour'
267
- ),
268
- 'map_meta_cap' => true,
269
- );
270
-
271
- /**
272
- * Documentation : https://codex.wordpress.org/Function_Reference/register_post_type
273
- */
274
- register_post_type($this->post_type, $args);
275
- }
276
-
277
- /**
278
- * Populates the data in the custom columns
279
- *
280
- * @since 1.0.0
281
- */
282
- public function wpvr_manage_posts_custom_column($column_name)
283
- {
284
- $post = get_post();
285
-
286
- switch ($column_name) {
287
- case 'shortcode':
288
- echo '<code>[wpvr id="' . $post->ID . '"]</code>';
289
- break;
290
- default:
291
- break;
292
- }
293
- }
294
-
295
- /**
296
- * Adds the custom columns to the post type admin screen
297
- *
298
- * @since 1.0.0
299
- */
300
- public function wpvr_manage_post_columns()
301
- {
302
- $columns = array(
303
- 'cb' => '<input type="checkbox" />',
304
- 'title' => __('Title', $this->plugin_name),
305
- 'shortcode' => __('Shortcodes', $this->plugin_name),
306
- 'author' => __('Author', $this->plugin_name),
307
- 'date' => __('Date', $this->plugin_name)
308
- );
309
- return $columns;
310
- }
311
-
312
- /**
313
- * Sets the messages for the custom post type
314
- *
315
- * @since 1.0.0
316
- */
317
- public function wpvr_post_updated_messages($messages)
318
- {
319
- $messages[$this->post_type][1] = __('WP VR item updated.', $this->plugin_name);
320
- $messages[$this->post_type][4] = __('WP VR item updated.', $this->plugin_name);
321
-
322
- return $messages;
323
- }
324
-
325
- /**
326
- * Render the shortcode box for this plugin.
327
- *
328
- * @since 1.0.0
329
- */
330
- public function wpvr_display_meta_box_shortcode()
331
- {
332
- include_once('partials/wpvr-meta-box-shortcode-display.php');
333
- }
334
-
335
- /**
336
- * Render the builder box for this plugin.
337
- *
338
- * @since 1.0.0
339
- */
340
- public function wpvr_display_meta_box_builder()
341
- {
342
- include_once('partials/wpvr-meta-box-builder-display.php');
343
- }
344
-
345
- /**
346
- * Custom Metabox
347
- */
348
- public function wpvr_add_setup_metabox()
349
- {
350
- add_meta_box('setup', __('Setup'), array($this, 'wpvr_setup'), 'wpvr_item', 'normal', 'high');
351
- }
352
- public function wpvr_setup($post)
353
- {
354
- $data_limit = 5;
355
-
356
- $scene_limit = $data_limit + 1;
357
- $postdata = get_post_meta($post->ID, 'panodata', true);
358
-
359
-
360
- $autoload = true;
361
- if (isset($postdata["autoLoad"])) {
362
- $autoload = $postdata["autoLoad"];
363
- }
364
-
365
- $control = true;
366
- if (isset($postdata["showControls"])) {
367
- $control = $postdata["showControls"];
368
- }
369
-
370
- $default_scene = '';
371
- if (isset($postdata["defaultscene"])) {
372
- $default_scene = $postdata["defaultscene"];
373
- }
374
-
375
- $preview = '';
376
- if (isset($postdata['preview'])) {
377
- $preview = $postdata['preview'];
378
- }
379
- $previewtext = '';
380
- if (isset($postdata['previewtext'])) {
381
- $previewtext = $postdata['previewtext'];
382
- }
383
-
384
- $autorotation = '';
385
- if (isset($postdata["autoRotate"])) {
386
- $autorotation = $postdata["autoRotate"];
387
- } else {
388
- $autorotation = -5;
389
- }
390
- $autorotationinactivedelay = '';
391
- if (isset($postdata["autoRotateInactivityDelay"])) {
392
- $autorotationinactivedelay = $postdata["autoRotateInactivityDelay"];
393
- }
394
-
395
- $autorotationstopdelay = '';
396
- if (isset($postdata["autoRotateStopDelay"])) {
397
- $autorotationstopdelay = $postdata["autoRotateStopDelay"];
398
- }
399
-
400
- $scene_fade_duration = '';
401
- if (isset($postdata["scenefadeduration"])) {
402
- $scene_fade_duration = $postdata["scenefadeduration"];
403
- }
404
-
405
- $pano_data = '';
406
- if (isset($postdata["panodata"])) {
407
- $pano_data = $postdata["panodata"];
408
- }
409
-
410
- $custom_icon_array = new Wpvr_fontawesome_icons();
411
- $custom_icon = $custom_icon_array->icon;
412
-
413
- $html = '';
414
-
415
-
416
-
417
- $html .= '<div class="pano-setup">';
418
-
419
- // active tab variables
420
- $active_tab = 'general';
421
- $scene_active_tab = 1;
422
- $hotspot_active_tab = 1;
423
- if (isset($_GET['active_tab'])) {
424
- $active_tab = $_GET['active_tab'];
425
- }
426
- if (isset($_GET['scene'])) {
427
- $scene_active_tab = $_GET['scene'];
428
- }
429
- if (isset($_GET['hotspot'])) {
430
- $hotspot_active_tab = $_GET['hotspot'];
431
- }
432
-
433
- $html = '';
434
-
435
- $html .= '<div class="pano-setup">';
436
-
437
- $html .= '<input type="hidden" value="'.$active_tab.'" name="wpvr_active_tab" id="wpvr_active_tab"/>';
438
- $html .= '<input type="hidden" value="'.$scene_active_tab.'" name="wpvr_active_scenes" id="wpvr_active_scenes"/>';
439
- $html .= '<input type="hidden" value="'.$hotspot_active_tab.'" name="wpvr_active_hotspot" id="wpvr_active_hotspot"/>';
440
-
441
- //--------start pano alert------
442
- $html .= '<div class="pano-alert scene-alert">';
443
- $html .= '<div class="pano-error-wrapper">';
444
- $html .= '<div class="pano-error-body">';
445
- $html .= '<span class="cross pano-error-close-btn">
446
- <svg width="22" height="22" viewBox="0 0 22 22" fill="none" xmlns="http://www.w3.org/2000/svg">
447
- <path fill-rule="evenodd" clip-rule="evenodd" d="M18.7778 18.7786C14.4819 23.074 7.51728 23.0738 3.22169 18.778C-1.0739 14.4823 -1.0739 7.51769 3.22169 3.22196C7.51728 -1.07378 14.4819 -1.07402 18.7778 3.22143C20.8409 5.28436 22 8.08242 22 11C22 13.9176 20.8409 16.7156 18.7778 18.7786ZM14.9278 8.21857L12.1071 11L14.9278 13.7814C15.0865 13.93 15.1765 14.1376 15.1765 14.355C15.1765 14.5724 15.0865 14.78 14.9278 14.9286C14.7795 15.0756 14.5788 15.1576 14.3699 15.1564C14.1638 15.1556 13.9663 15.0737 13.8199 14.9286L10.9992 12.1079L8.21778 14.9286C8.07143 15.0737 7.8739 15.1556 7.66778 15.1564C7.45893 15.1576 7.2582 15.0756 7.10992 14.9286C6.80528 14.6221 6.80528 14.1272 7.10992 13.8207L9.89135 11L7.10992 8.21857C6.84295 7.90683 6.8609 7.44213 7.15112 7.15191C7.44134 6.8617 7.90604 6.84375 8.21778 7.11071L10.9992 9.89214L13.7806 7.11071C13.9785 6.9058 14.2707 6.82202 14.5471 6.89095C14.8236 6.95988 15.0422 7.17104 15.1207 7.44488C15.1992 7.71872 15.1257 8.01365 14.9278 8.21857ZM4.34363 4.34471C8.02058 0.663508 13.9845 0.656605 17.6699 4.32929C19.4452 6.09842 20.4431 8.50157 20.4431 11.0079C20.4431 13.5141 19.4452 15.9173 17.6699 17.6864C13.9845 21.3591 8.02058 21.3522 4.34363 17.671C0.666691 13.9898 0.666691 8.02591 4.34363 4.34471Z" fill="#A8A7BE"/>
448
- </svg>
449
- </span>';
450
-
451
- $html .= '<span class="icon pano-warning">
452
- <svg width="30" height="30" viewBox="0 0 30 30" fill="none" xmlns="http://www.w3.org/2000/svg">
453
- <path fill-rule="evenodd" clip-rule="evenodd" d="M0 15C0 23.2843 6.71573 30 15 30C23.2843 30 30 23.2843 30 15C30 6.71573 23.2843 0 15 0C6.71573 0 0 6.71573 0 15ZM2 15C2 7.8203 7.8203 2 15 2C22.1797 2 28 7.8203 28 15C28 22.1797 22.1797 28 15 28C7.8203 28 2 22.1797 2 15Z" fill="#004EFA"/>
454
- <circle cx="8.5" cy="11.5" r="1.5" fill="#004EFA"/>
455
- <circle cx="21.5" cy="11.5" r="1.5" fill="#004EFA"/>
456
- <path d="M20.9993 21.9932C20.7336 21.995 20.4781 21.8728 20.2894 21.6537C17.6429 18.5603 13.3571 18.5603 10.7106 21.6537C10.5228 21.8753 10.2673 22 10.0007 22C9.73407 22 9.4785 21.8753 9.29076 21.6537C8.90308 21.1971 8.90308 20.4596 9.29076 20.0029C12.7241 15.999 18.2759 15.999 21.7092 20.0029C22.0969 20.4596 22.0969 21.1971 21.7092 21.6537C21.5205 21.8728 21.2651 21.995 20.9993 21.9932V21.9932Z" fill="#004EFA"/>
457
- </svg>
458
- </span>';
459
-
460
- $html .= '<div class="pano-error-message"></div>';
461
-
462
- $html .= '</div>';
463
- //---end error body---
464
-
465
- //---error footer---
466
- $html .= '<div class="pano-error-footer">';
467
- $html .= '<ul>';
468
- $html .= '<li class="pano-error-close">';
469
- $html .= '<a href="https://rextheme.com/wpvr/" target="_blank" >Upgrade to Pro</a>';
470
- $html .= '</li>';
471
- $html .= '</ul>';
472
- $html .= '</div>';
473
- $html .= '</div>';
474
- $html .= '</div>';
475
- //--------end pano alert------
476
-
477
- $html .='<div class="rex-pano-tabs">';
478
- $html .='<nav class="rex-pano-tab-nav rex-pano-nav-menu main-nav" id="wpvr-main-nav">';
479
- $html .='<ul>';
480
- $html .='<li class="logo"><img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/logo.png'.'" alt="logo" /></li>';
481
-
482
- $html .='<li class="general active" data-screen="general">';
483
- $html .='<span data-href="#general">';
484
- $html .='<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/general-regular.png'.'" alt="icon" class="regular" />';
485
- $html .='<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/general-hover.png'.'" alt="icon" class="hover" />';
486
- $html .=''.__('General', 'wpvr').'</span>';
487
- $html .='</li>';
488
-
489
- $html .='<li class="scene" data-screen="scene">';
490
- $html .='<span data-href="#scenes">';
491
- $html .='<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/scenes-regular.png'.'" alt="icon" class="regular" />';
492
- $html .='<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/scenes-hover.png'.'" alt="icon" class="hover" />';
493
- $html .=''.__('Scenes', 'wpvr').'</span>';
494
- $html .='</li>';
495
-
496
- $html .='<li class="hotspot" data-screen="hotspot">';
497
- $html .='<span data-href="#scenes">';
498
- $html .='<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/hotspot-regular.png'.'" alt="icon" class="regular" />';
499
- $html .='<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/hotspot-hover.png'.'" alt="icon" class="hover" />';
500
- $html .=''.__('Hotspot', 'wpvr').'</span>';
501
- $html .='</li>';
502
-
503
- $html .='<li class="videos" data-screen="video">';
504
- $html .='<span data-href="#video">';
505
- $html .='<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/video-regular.png'.'" alt="icon" class="regular" />';
506
- $html .='<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/video-hover.png'.'" alt="icon" class="hover" />';
507
- $html .=''.__('Video', 'wpvr').'</span>';
508
- $html .='</li>';
509
- $html .='</ul>';
510
- $html .='</nav>';
511
-
512
- $html .='<div class="rex-pano-tab-content" id="wpvr-main-tab-contents">';
513
- $html .='<div class="rex-pano-tab general active" id="general">';
514
-
515
- //=start inner tab=
516
- $html .= '<div class="general-inner-tab">';
517
- //=start inner nav=
518
- $html .= '<ul class="inner-nav">';
519
-
520
- $html .='<li class="gen-basic active">';
521
- $html .='<span data-href="#gen-basic">';
522
- $html .='<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/basic-settings-regular.png'.'" alt="icon" class="regular" />';
523
- $html .='<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/basic-settings-hover.png'.'" alt="icon" class="hover" />';
524
- $html .=''.__('Basic Settings ', 'wpvr').'</span>';
525
- $html .='</li>';
526
-
527
- $html .='<li class="gen-advanced">';
528
- $html .='<span data-href="#gen-advanced">';
529
- $html .='<span class="pro-tag">pro</span>';
530
- $html .='<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/advance-control-regular.png'.'" alt="icon" class="regular" />';
531
- $html .='<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/advance-control-hover.png'.'" alt="icon" class="hover" />';
532
- $html .=''.__('Advanced Controls ', 'wpvr').'</span>';
533
- $html .='</li>';
534
-
535
- $html .='<li class="gen-control">';
536
- $html .='<span data-href="#gen-control">';
537
- $html .='<span class="pro-tag">pro</span>';
538
- $html .='<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/control-buttons-regular.png'.'" alt="icon" class="regular" />';
539
- $html .='<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/control-buttons-hover.png'.'" alt="icon" class="hover" />';
540
- $html .=''.__('Control Buttons ', 'wpvr').'</span>';
541
- $html .='</li>';
542
-
543
- $html .='<li class="vr-documentation">';
544
- $html .='<a href="https://rextheme.com/docs-category/wp-vr/" target="_blank">'.__('Documentation ', 'wpvr').'</a>';
545
- $html .='</li>';
546
-
547
- $html .= '</ul>';
548
- //=end inner nav=
549
-
550
- $html .= '<div class="inner-nav-content">';
551
- $html .= '<div class="basic-settings-content inner-single-content active" id="gen-basic">';
552
- $html .= '<div class="content-wrapper">';
553
- $html .= '<div class="left">';
554
- //===preview image===//
555
- if (!empty($preview)) {
556
- $html .= '<div class="single-settings preview-setting">';
557
- $html .= '<span>'.__('Set a Tour Preview Image : ', 'wpvr').'</span>';
558
- $html .= '<div class="form-group">';
559
- $html .= '<input type="text" name="preview-attachment-url" class="preview-attachment-url" value="'.$preview.'">';
560
- $html .= '<input type="button" class="preview-upload" id="vr-preview-img" data-info="" value="Upload"/>';
561
- $html .= '<div class="img-upload-frame img-uploaded" style="background-image: url('.$preview.')">';
562
- $html .= '<span class="remove-attachment">x</span>';
563
- $html .= '<label for="vr-preview-img">';
564
- $html .= '<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/uplad-icon.png'.'" alt="preview img" />';
565
- $html .= '<span>'.__('Click to Upload an Image ', 'wpvr').'</span>';
566
- $html .= '</label>';
567
- $html .= '</div>';
568
-
569
- $html .= '</div>';
570
- $html .= '<span class="hints">'.__('This option will not work if the "Tour Autoload" is turned on.', 'wpvr').'</span>';
571
- $html .= '</div>';
572
- } else {
573
- $html .= '<div class="single-settings preview-setting">';
574
- $html .= '<span>'.__('Set a Tour Preview Image : ', 'wpvr').'</span>';
575
- $html .= '<div class="form-group">';
576
- $html .= '<input type="text" name="preview-attachment-url" class="preview-attachment-url" value="">';
577
- $html .= '<input type="button" class="preview-upload" id="vr-preview-img" data-info="" value="Upload"/>';
578
- $html .= '<div class="img-upload-frame">';
579
- $html .= '<span class="remove-attachment">x</span>';
580
- $html .= '<label for="vr-preview-img">';
581
- $html .= '<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/uplad-icon.png'.'" alt="icon" />';
582
- $html .= '<span>'.__('Click to Upload an Image ', 'wpvr').'</span>';
583
- $html .= '</label>';
584
- $html .= '</div>';
585
- $html .= '</div>';
586
- $html .= '</div>';
587
- }
588
- //===preview image end===//
589
-
590
- //=Message on Tour Preview Image=//
591
- if(!empty($previewtext)){
592
- $html .= '<div class="single-settings preview-img-message">';
593
- $html .= '<span>'.__('Preview Image Message: ', 'wpvr').'</span>';
594
- $html .= '<input class="previewtext" type="text" name="previewtext" value="'.$previewtext.'"/>';
595
- $html .= '</div>';
596
- }else{
597
- $html .= '<div class="single-settings preview-img-message">';
598
- $html .= '<span>'.__('Preview Image Message: ', 'wpvr').'</span>';
599
- $html .= '<input class="previewtext" type="text" name="previewtext" value="Click To Load Panorama"/>';
600
- $html .= '</div>';
601
- }
602
-
603
- //=Autoload setup=//
604
- if ($autoload == true) {
605
- $html .= '<div class="single-settings autoload">';
606
- $html .= '<span>'.__('Tour Autoload: ', 'wpvr').'</span>';
607
-
608
- $html .= '<span class="wpvr-switcher">';
609
- $html .= '<input id="wpvr_autoload" class="vr-switcher-check" name="autoload" type="checkbox" value="on" checked />';
610
- $html .= '<label for="wpvr_autoload"></label>';
611
- $html .= '</span>';
612
-
613
- $html .= '<div class="field-tooltip">';
614
- $html .= '<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/question.png'.'" alt="icon" />';
615
- $html .= '<span>'.__('Tour Preview Image will not appear if this is turned on.', 'wpvr').'</span>';
616
- $html .= '</div>';
617
- $html .= '</div>';
618
- } else {
619
- $html .= '<div class="single-settings autoload">';
620
- $html .= '<span>'.__('Tour Autoload: ', 'wpvr').' </span>';
621
-
622
- $html .= '<span class="wpvr-switcher">';
623
- $html .= '<input id="wpvr_autoload" class="vr-switcher-check" name="autoload" type="checkbox" value="off" />';
624
- $html .= '<label for="wpvr_autoload"></label>';
625
- $html .= '</span>';
626
-
627
- $html .= '<div class="field-tooltip">';
628
- $html .= '<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/question.png'.'" alt="icon" />';
629
- $html .= '<span>'.__('Tour Preview Image will not appear if this is turned on.', 'wpvr').'</span>';
630
- $html .= '</div>';
631
- $html .= '</div>';
632
- }
633
- //=Autoload setup End=//
634
-
635
-
636
-
637
- //=Control Setup=
638
- if ($control == false) {
639
- $html .= '<div class="single-settings controls">';
640
- $html .= '<span>'.__('Basic Control Buttons: ', 'wpvr').'</span>';
641
-
642
- $html .= '<span class="wpvr-switcher">';
643
- $html .= '<input id="wpvr_controls" class="vr-switcher-check" value="off" name="controls" type="checkbox" />';
644
- $html .= '<label for="wpvr_controls"></label>';
645
- $html .= '</span>';
646
-
647
- $html .= '<div class="field-tooltip">';
648
- $html .= '<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/question.png'.'" alt="icon" />';
649
- $html .= '<span>'.__('This option will display Zoom In, Zoom Out and Full Screen buttons on the tour.', 'wpvr').'</span>';
650
- $html .= '</div>';
651
- $html .= '</div>';
652
- } else {
653
- $html .= '<div class="single-settings controls">';
654
- $html .= '<span>'.__('Basic Control Buttons: ', 'wpvr').'</span>';
655
-
656
- $html .= '<span class="wpvr-switcher">';
657
- $html .= '<input id="wpvr_controls" class="vr-switcher-check" value="on" name="controls" type="checkbox" checked />';
658
- $html .= '<label for="wpvr_controls"></label>';
659
- $html .= '</span>';
660
-
661
- $html .= '<div class="field-tooltip">';
662
- $html .= '<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/question.png'.'" alt="icon" />';
663
- $html .= '<span>'.__('This option will display Zoom In, Zoom Out and Full Screen buttons on the tour.', 'wpvr').'</span>';
664
- $html .= '</div>';
665
- $html .= '</div>';
666
- }
667
- //=Control setup End=//
668
-
669
- $html .= '</div>';
670
- //===end left===//
671
-
672
- $html .= '<div class="right">';
673
- //=scene fade duration=//
674
- $html .= '<div class="single-settings scene-fade-duration">';
675
- $html .= '<span>'.__('Scene Fade Duration: ', 'wpvr').'</span>';
676
- $html .= '<input type="number" name="scene-fade-duration" value="'.$scene_fade_duration.'" />';
677
-
678
- $html .= '<div class="field-tooltip">';
679
- $html .= '<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/question.png'.'" alt="icon" />';
680
- $html .= '<span>'.__('This will set the scene fade effect and execution time.', 'wpvr').'</span>';
681
- $html .= '</div>';
682
- $html .= '</div>';
683
- //=scene fade duration End=//
684
-
685
- //===Autorotation on off set==//
686
- if (isset($postdata["autoRotate"])) {
687
- $html .= '<div class="single-settings autoload">';
688
- $html .= '<span>'.__('Auto Rotation: ', 'wpvr').' </span>';
689
-
690
- $html .= '<span class="wpvr-switcher">';
691
- $html .= '<input id="wpvr_autorotation" class="vr-switcher-check" value="on" name="autorotation" type="checkbox" checked />';
692
- $html .= '<label for="wpvr_autorotation"></label>';
693
- $html .= '</span>';
694
- $html .= '</div>';
695
- } else {
696
- $html .= '<div class="single-settings autoload">';
697
- $html .= '<span>'.__('Auto Rotation: ', 'wpvr').' </span>';
698
-
699
- $html .= '<span class="wpvr-switcher">';
700
- $html .= '<input id="wpvr_autorotation" class="vr-switcher-check" value="off" name="autorotation" type="checkbox" />';
701
- $html .= '<label for="wpvr_autorotation"></label>';
702
- $html .= '</span>';
703
- $html .= '</div>';
704
- }
705
- //===end Autorotation on off set==//
706
-
707
- //=Auto Rotation=//
708
- $html .= '<div class="autorotationdata-wrapper">';
709
- $html .= '<div class="single-settings autorotationdata" >';
710
- $html .= '<span>'.__('Rotation Speed and Direction: ', 'wpvr').'</span>';
711
- $html .= '<input type="number" name="auto-rotation" value="'.$autorotation.'" placeholder="-5" />';
712
-
713
- $html .= '<div class="field-tooltip">';
714
- $html .= '<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/question.png'.'" alt="icon" />';
715
- $html .= '<span>'.__('Set a value to determine the speed of rotation. The higher the number, the faster it will rotate. Positive values will make it rotate clockwise and negative values will make it rotate anti clockwise', 'wpvr').'</span>';
716
- $html .= '</div>';
717
- $html .= '</div>';
718
- //=Auto Rotation=//
719
-
720
- //=Auto rotation inactive delay=//
721
- $html .= '<div class="single-settings autorotationdata" >';
722
- $html .= '<span>'.__('Resume Auto-rotation after: ', 'wpvr').'</span>';
723
- $html .= '<input type="number" name="auto-rotation-inactive-delay" value="'.$autorotationinactivedelay.'" placeholder="2000" />';
724
-
725
- $html .= '<div class="field-tooltip">';
726
- $html .= '<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/question.png'.'" alt="icon" />';
727
- $html .= '<span>'.__('When someone clicks on the tour, auto-rotation stops. Here, set a time after which auto rotation will start again. Assign in milliseconds, where 1000 milliseconds = 1 second.', 'wpvr').'</span>';
728
- $html .= '</div>';
729
- $html .= '</div>';
730
- //=Auto rotation inactive delay=//
731
-
732
- //=Auto rotation stop delay=//
733
- $html .= '<div class="single-settings autorotationdata" >';
734
- $html .= '<span>'.__('Stop Auto-rotation after: ', 'wpvr').'</span>';
735
- $html .= '<input type="number" name="auto-rotation-stop-delay" value="'.$autorotationstopdelay.'" placeholder="2000" />';
736
-
737
- $html .= '<div class="field-tooltip">';
738
- $html .= '<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/question.png'.'" alt="icon" />';
739
- $html .= '<span>'.__('Set a time after which auto rotation will stop. Assign in milliseconds, where 1000 milliseconds = 1 second.', 'wpvr').'</span>';
740
- $html .= '</div>';
741
- $html .= '</div>';
742
- $html .= '</div>';
743
- //=Auto rotation stop delay=//
744
-
745
-
746
- //=end backgound tour=//
747
-
748
-
749
-
750
- $html .= '</div>';
751
- //===end right===//
752
-
753
- $html .= '</div>';
754
- $html .= '</div>';
755
- //===end basic settings===//
756
-
757
- $html .= '<div class="advanced-settings-content inner-single-content" id="gen-advanced">';
758
- $html .= '<div class="content-wrapper">';
759
- $html .= '<div class="left">';
760
-
761
- //=Keyboard Movement Control=//
762
- $html .= '<div class="single-settings compass">';
763
- $html .= '<span>'.__('Keyboard Movement Control: ', 'wpvr').'</span>';
764
-
765
- $html .= '<span class="wpvr-switcher">';
766
- $html .= '<input id="wpvr_diskeyboard" class="vr-switcher-check" value="off" name="diskeyboard" type="checkbox" disabled />';
767
- $html .= '<label for="wpvr_diskeyboard" title="Pro Feature"></label>';
768
- $html .= '</span>';
769
- $html .= '</div>';
770
- //=Keyboard Movement Control end=//
771
-
772
- //=Keyboard Zoom Control Setup=//
773
- $html .= '<div class="single-settings">';
774
- $html .= '<span>'.__('Keyboard Zoom Control: ', 'wpvr').'</span>';
775
-
776
- $html .= '<span class="wpvr-switcher">';
777
- $html .= '<input id="wpvr_keyboardzoom" class="vr-switcher-check" value="off" name="keyboardzoom" type="checkbox" disabled />';
778
- $html .= '<label for="wpvr_keyboardzoom" title="Pro Feature"></label>';
779
- $html .= '</span>';
780
- $html .= '</div>';
781
- //=Keyboard Zoom Control End=//
782
-
783
- //=Mouse Drag Control=//
784
- $html .= '<div class="single-settings">';
785
- $html .= '<span>'.__('Mouse Drag Control: ', 'wpvr').'</span>';
786
-
787
- $html .= '<span class="wpvr-switcher">';
788
- $html .= '<input id="wpvr_draggable" class="vr-switcher-check" name="draggable" type="checkbox" value="off" disabled />';
789
- $html .= '<label for="wpvr_draggable" title="Pro Feature"></label>';
790
- $html .= '</span>';
791
- $html .= '</div>';
792
- //=Mouse Drag Control End=//
793
-
794
- //=Mouse Zoom Control=//
795
- $html .= '<div class="single-settings">';
796
- $html .= '<span>'.__('Mouse Zoom Control: ', 'wpvr').'</span>';
797
-
798
- $html .= '<span class="wpvr-switcher">';
799
- $html .= '<input id="wpvr_mouseZoom" class="vr-switcher-check" value="off" name="mouseZoom" type="checkbox" disabled />';
800
- $html .= '<label for="wpvr_mouseZoom" title="Pro Feature"></label>';
801
- $html .= '</span>';
802
- $html .= '</div>';
803
- //=Mouse Zoom Control End=//
804
-
805
- //=Gyroscope Control=//
806
- $html .= '<div class="single-settings gyro">';
807
- $html .= '<span>'.__('Gyroscope Control: ', 'wpvr').'</span>';
808
-
809
- $html .= '<span class="wpvr-switcher">';
810
- $html .= '<input id="wpvr_gyro" class="vr-switcher-check" value="off" name="gyro" type="checkbox" disabled />';
811
- $html .= '<label for="wpvr_gyro" title="Pro Feature"></label>';
812
- $html .= '</span>';
813
- $html .= '</div>';
814
- //=Gyroscope Control End=//
815
-
816
- //=Auto Gyroscope Support=//
817
- $html .= '<div class="single-settings orientation">';
818
- $html .= '<span>'.__('Auto Gyroscope Support: ', 'wpvr').'</span>';
819
-
820
- $html .= '<span class="wpvr-switcher">';
821
- $html .= '<input id="wpvr_deviceorientationcontrol" class="vr-switcher-check" value="off" name="deviceorientationcontrol" type="checkbox" disabled />';
822
- $html .= '<label for="wpvr_deviceorientationcontrol" title="Pro Feature"></label>';
823
- $html .= '</span>';
824
-
825
- $html .= '<div class="field-tooltip">';
826
- $html .= '<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/question.png'.'" alt="icon" />';
827
- $html .= '<span>'.__('If set to true, device orientation control will be used when the panorama is loaded, if the device supports it. If false, device orientation control needs to be activated by pressing a button. Defaults to false. Will work if gyroscope is enabled', 'wpvr').'</span>';
828
- $html .= '</div>';
829
- $html .= '</div>';
830
- //=Auto Gyroscope Support End=//
831
-
832
- //=Compass Setup=//
833
- $html .= '<div class="single-settings compass">';
834
- $html .= '<span>'.__('Compass: ', 'wpvr').'</span>';
835
-
836
- $html .= '<span class="wpvr-switcher">';
837
- $html .= '<input id="wpvr_compass" class="vr-switcher-check" value="off" name="compass" type="checkbox" disabled />';
838
- $html .= '<label for="wpvr_compass" title="Pro Feature"></label>';
839
- $html .= '</span>';
840
- $html .= '</div>';
841
- //=Compass setup End=//
842
-
843
- $html .= '</div>';
844
- //===end left===//
845
-
846
- $html .= '<div class="right">';
847
- //= Scene Gallery=//
848
- $html .= '<div class="single-settings gallery">';
849
- $html .= '<span>'.__('Scene Gallery: ', 'wpvr').'</span>';
850
-
851
- $html .= '<span class="wpvr-switcher">';
852
- $html .= '<input id="wpvr_vrgallery" class="vr-switcher-check" value="off" name="vrgallery" type="checkbox" disabled />';
853
- $html .= '<label for="wpvr_vrgallery" title="Pro Feature"></label>';
854
- $html .= '</span>';
855
-
856
- $html .= '<div class="field-tooltip">';
857
- $html .= '<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/question.png'.'" alt="icon" />';
858
- $html .= '<span>'.__('Turning it On will display a gallery with all the scenes on your tour. By double clicking on a scene thumbnail on the gallery, you can move to that specific scene. The gallery will only show up on the front end and not on the preview.', 'wpvr').'</span>';
859
- $html .= '</div>';
860
- $html .= '</div>';
861
- //= Scene Gallery end=//
862
-
863
- //=Scene Titles on Gallery=//
864
- $html .= '<div class="single-settings">';
865
- $html .= '<span>'.__('Scene Titles on Gallery: ', 'wpvr').'</span>';
866
-
867
- $html .= '<span class="wpvr-switcher">';
868
- $html .= '<input id="wpvr_vrgallery_title" class="vr-switcher-check" value="off" name="vrgallery_title" type="checkbox" disabled />';
869
- $html .= '<label for="wpvr_vrgallery_title" title="Pro Feature"></label>';
870
- $html .= '</span>';
871
-
872
- $html .= '<div class="field-tooltip">';
873
- $html .= '<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/question.png'.'" alt="icon" />';
874
- $html .= '<span>'.__('Turning it on will display scene titles on each scene thumbnail inside the Scene Gallery. The Scene IDs will be used as the Scene Title.', 'wpvr').'</span>';
875
- $html .= '</div>';
876
- $html .= '</div>';
877
- //=Scene Titles on Gallery End=//
878
-
879
- //===VR Audio setup===//
880
- $html .= '<div class="single-settings">';
881
- $html .= '<span>Tour Background Music: </span>';
882
-
883
- $html .= '<span class="wpvr-switcher">';
884
- $html .= '<input id="wpvr_bg_music" class="vr-switcher-check" value="off" name="bg_music" type="checkbox" disabled />';
885
- $html .= '<label for="wpvr_bg_music" title="Pro Feature"></label>';
886
- $html .= '</span>';
887
- $html .= '</div>';
888
- //==VR audio End==//
889
-
890
- //===Company logo===//
891
- $html .= '<div class="single-settings company-info">';
892
- $html .= '<span>'.__('Add Company Information: ', 'wpvr').' </span>';
893
-
894
- $html .= '<span class="wpvr-switcher">';
895
- $html .= '<input id="wpvr_cpLogoSwitch" class="vr-switcher-check" value="off" name="cpLogoSwitch" type="checkbox" disabled />';
896
- $html .= '<label for="wpvr_cpLogoSwitch" title="Pro Feature"></label>';
897
- $html .= '</span>';
898
- $html .= '</div>';
899
- //===Company logo end===//
900
-
901
- $html .= '</div>';
902
- //===end right===//
903
-
904
- $html .= '</div>';
905
- $html .= '</div>';
906
- //===end advanced settings===//
907
-
908
- $html .= '<div class="control-settings-content inner-single-content" id="gen-control">';
909
- $html .= '<div class="content-wrapper">';
910
- $html .= '<div class="left">';
911
- //=====Move up====//
912
- $html .= '<div class="single-settings controls custom-data-set">';
913
- $html .= '<span>'.__('Move Up: ', 'wpvr').'</span>';
914
-
915
- $html .= '<div class="color-icon">';
916
- $html .='<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/move-up.jpg'.'" alt="icon" />';
917
- $html .= '</div>';
918
-
919
- $html .= '<span class="wpvr-switcher">';
920
- $html .= '<input id="wpvr_panupControl" class="vr-switcher-check" value="off" name="panupControl" type="checkbox" disabled />';
921
- $html .= '<label for="wpvr_panupControl" title="Pro Feature"></label>';
922
- $html .= '</span>';
923
-
924
- $html .= '</div>';
925
- //=====Moveup End====//
926
-
927
- //=====Move Down====//
928
- $html .= '<div class="single-settings controls custom-data-set">';
929
- $html .= '<span>'.__('Move Down: ', 'wpvr').'</span>';
930
-
931
- $html .= '<div class="color-icon">';
932
- $html .='<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/move-down.jpg'.'" alt="icon" />';
933
- $html .= '</div>';
934
-
935
- $html .= '<span class="wpvr-switcher">';
936
- $html .= '<input id="wpvr_panDownControl" class="vr-switcher-check" value="off" name="panDownControl" type="checkbox" disabled />';
937
- $html .= '<label for="wpvr_panDownControl" title="Pro Feature"></label>';
938
- $html .= '</span>';
939
- $html .= '</div>';
940
- //=====Move down End====//
941
-
942
- //=====Move Left====//
943
- $html .= '<div class="single-settings controls custom-data-set">';
944
- $html .= '<span>'.__('Move Left: ', 'wpvr').'</span>';
945
-
946
- $html .= '<div class="color-icon">';
947
- $html .='<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/move-left.jpg'.'" alt="icon" />';
948
- $html .= '</div>';
949
-
950
- $html .= '<span class="wpvr-switcher">';
951
- $html .= '<input id="wpvr_panLeftControl" class="vr-switcher-check" value="off" name="panLeftControl" type="checkbox" disabled />';
952
- $html .= '<label for="wpvr_panLeftControl" title="Pro Feature"></label>';
953
- $html .= '</span>';
954
- $html .= '</div>';
955
- //=====Move Left End====//
956
-
957
- //=====Move Right====//
958
- $html .= '<div class="single-settings controls custom-data-set">';
959
- $html .= '<span>'.__('Move Right: ', 'wpvr').'</span>';
960
-
961
- $html .= '<div class="color-icon">';
962
- $html .='<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/move-right.jpg'.'" alt="icon" />';
963
- $html .= '</div>';
964
-
965
- $html .= '<span class="wpvr-switcher">';
966
- $html .= '<input id="wpvr_panRightControl" class="vr-switcher-check" value="off" name="panRightControl" type="checkbox" disabled />';
967
- $html .= '<label for="wpvr_panRightControl" title="Pro Feature"></label>';
968
- $html .= '</span>';
969
- $html .= '</div>';
970
- //=====Move Right End====//
971
-
972
- //=====Zoom In====//
973
- $html .= '<div class="single-settings controls custom-data-set">';
974
- $html .= '<span>'.__('Zoom In: ', 'wpvr').'</span>';
975
-
976
- $html .= '<div class="color-icon">';
977
- $html .='<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/zoom-in.jpg'.'" alt="icon" />';
978
- $html .= '</div>';
979
-
980
- $html .= '<span class="wpvr-switcher">';
981
- $html .= '<input id="wpvr_panZoomInControl" class="vr-switcher-check" value="off" name="panZoomInControl" type="checkbox" disabled />';
982
- $html .= '<label for="wpvr_panZoomInControl" title="Pro Feature"></label>';
983
- $html .= '</span>';
984
-
985
- $html .= '</div>';
986
- //=====Zoom In End====//
987
-
988
- $html .= '</div>';
989
- //===end left===//
990
-
991
- $html .= '<div class="right">';
992
- //=====Zoom Out====//
993
- $html .= '<div class="single-settings controls custom-data-set">';
994
- $html .= '<span>'.__('Zoom Out: ', 'wpvr').'</span>';
995
-
996
- $html .= '<div class="color-icon">';
997
- $html .='<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/zoom-out.jpg'.'" alt="icon" />';
998
- $html .= '</div>';
999
-
1000
- $html .= '<span class="wpvr-switcher">';
1001
- $html .= '<input id="wpvr_panZoomOutControl" class="vr-switcher-check" value="off" name="panZoomOutControl" type="checkbox" disabled />';
1002
- $html .= '<label for="wpvr_panZoomOutControl" title="Pro Feature"></label>';
1003
- $html .= '</span>';
1004
-
1005
- $html .= '</div>';
1006
- //=====Zoom Out End====//
1007
-
1008
- //===== Full Screen====//
1009
- $html .= '<div class="single-settings controls custom-data-set">';
1010
- $html .= '<span>'.__('Full Screen: ', 'wpvr').'</span>';
1011
-
1012
- $html .= '<div class="color-icon">';
1013
- $html .='<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/full-screen.jpg'.'" alt="icon" />';
1014
- $html .= '</div>';
1015
-
1016
- $html .= '<span class="wpvr-switcher">';
1017
- $html .= '<input id="wpvr_panFullscreenControl" class="vr-switcher-check" value="off" name="panFullscreenControl" type="checkbox" disabled />';
1018
- $html .= '<label for="wpvr_panFullscreenControl" title="Pro Feature"></label>';
1019
- $html .= '</span>';
1020
-
1021
- $html .= '</div>';
1022
- //=====Full Screen End====//
1023
-
1024
- //=====Gyroscope====//
1025
- $html .= '<div class="single-settings controls custom-data-set">';
1026
- $html .= '<span>'.__('Gyroscope: ', 'wpvr').'</span>';
1027
-
1028
- $html .= '<div class="color-icon">';
1029
- $html .='<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/gryscop.jpg'.'" alt="icon" />';
1030
- $html .= '</div>';
1031
-
1032
- $html .= '<span class="wpvr-switcher">';
1033
- $html .= '<input id="wpvr_gyroscope" class="vr-switcher-check" value="off" name="gyroscope" type="checkbox" disabled />';
1034
- $html .= '<label for="wpvr_gyroscope" title="Pro Feature"></label>';
1035
- $html .= '</span>';
1036
-
1037
- $html .= '</div>';
1038
- //=====Gyroscope End====//
1039
-
1040
- //=====Back to home====//
1041
- $html .= '<div class="single-settings controls custom-data-set">';
1042
- $html .= '<span>'.__('Home: ', 'wpvr').'</span>';
1043
-
1044
- $html .= '<div class="color-icon">';
1045
- $html .='<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/home.jpg'.'" alt="icon" />';
1046
- $html .= '</div>';
1047
-
1048
- $html .= '<span class="wpvr-switcher">';
1049
- $html .= '<input id="wpvr_backToHome" class="vr-switcher-check" value="off" name="backToHome" type="checkbox" disabled />';
1050
- $html .= '<label for="wpvr_backToHome" title="Pro Feature"></label>';
1051
- $html .= '</span>';
1052
-
1053
- $html .= '</div>';
1054
- //=====Back to home End====//
1055
- $html .= '</div>';
1056
- //===end right===//
1057
-
1058
- $html .= '</div>';
1059
- $html .= '</div>';
1060
- //===end control settings===//
1061
-
1062
- $html .= '</div>';
1063
- //=end inner tab content=
1064
-
1065
- //== Start preview button
1066
- $html .= '<div class="preview-btn-wrapper">';
1067
- $html .= '<div class="preview-btn-area clearfix">';
1068
-
1069
- $html .= '<button id="panolenspreview" class="panolenspreview">' . __('Preview', 'wpvr-pro') . '</button>';
1070
- $html .= '</div>';
1071
- $html .= '</div>';
1072
- //== End preview button
1073
-
1074
- $html .= '<div class="wpvr-use-shortcode">';
1075
- $post = get_post();
1076
- $id = $post->ID;
1077
- $slug = $post->post_name;
1078
- $postdata = get_post_meta($post->ID, 'panodata', true);
1079
-
1080
- $html .= '<h4 class="area-title">'.__('Using this Tour', 'wpvr').'</h4>';
1081
-
1082
- $html .= '<div class="shortcode-wrapper">';
1083
- $html .= '<div class="single-shortcode classic">';
1084
- $html .= '<span class="shortcode-title">'.__('For Classic Editor:', 'wpvr').'</span>';
1085
-
1086
- $html .= '<div class="field-wapper">';
1087
- $html .= '<span>'.__('To use this WP VR tour in your posts or pages use the following shortcode ', 'wpvr').'</span>';
1088
-
1089
- $html .= '<div class="shortcode-field">';
1090
- $html .= '<p class="copycode" id="copy-shortcode">[wpvr id="'.$id.'"]</p>';
1091
-
1092
- $html .= '<span id="wpvr-copy-shortcode" class="wpvr-copy-shortcode">';
1093
- $html .= '<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/copy.png'.'" alt="icon" />';
1094
- $html .= '</span>';
1095
- $html .= '</div>';
1096
-
1097
-
1098
- $html .= '<span id="wpvr-copied-notice" class="wpvr-copied-notice"></span>';
1099
-
1100
- $html .= '</div>';
1101
- $html .= '</div>';
1102
-
1103
- $html .= '</div>';
1104
- $html .= '</div>';
1105
- //=end shortcode area=
1106
-
1107
-
1108
- $html .= '</div>';
1109
- //=end inner tab=
1110
-
1111
-
1112
- $html .= '<script>';
1113
- $html .= '
1114
-
1115
- document.getElementById("wpvr-copy-shortcode").addEventListener("click", function() {
1116
- copyToClipboard(document.getElementById("copy-shortcode"));
1117
- });
1118
-
1119
- function copyToClipboard(elem) {
1120
- // create hidden text element, if it doesn\'t already exist
1121
- var targetId = "_hiddenCopyText_";
1122
- var isInput = elem.tagName === "INPUT" || elem.tagName === "TEXTAREA";
1123
- var origSelectionStart, origSelectionEnd;
1124
- if (isInput) {
1125
- // can just use the original source element for the selection and copy
1126
- target = elem;
1127
- origSelectionStart = elem.selectionStart;
1128
- origSelectionEnd = elem.selectionEnd;
1129
- } else {
1130
- // must use a temporary form element for the selection and copy
1131
- target = document.getElementById(targetId);
1132
- if (!target) {
1133
- var target = document.createElement("textarea");
1134
- target.style.position = "absolute";
1135
- target.style.left = "-9999px";
1136
- target.style.top = "0";
1137
- target.id = targetId;
1138
- document.body.appendChild(target);
1139
- }
1140
- target.textContent = elem.textContent;
1141
- }
1142
- // select the content
1143
- var currentFocus = document.activeElement;
1144
- target.focus();
1145
- target.setSelectionRange(0, target.value.length);
1146
-
1147
- // copy the selection
1148
- var succeed;
1149
- try {
1150
- succeed = document.execCommand("copy");
1151
- document.getElementById("wpvr-copied-notice").innerHTML = "Copied!";
1152
- } catch(e) {
1153
- succeed = false;
1154
- }
1155
- // restore original focus
1156
- if (currentFocus && typeof currentFocus.focus === "function") {
1157
- currentFocus.focus();
1158
- }
1159
-
1160
- setTimeout(function(){
1161
- document.getElementById("wpvr-copied-notice").innerHTML = "";
1162
- }, 2000 );
1163
-
1164
- if (isInput) {
1165
- // restore prior selection
1166
- elem.setSelectionRange(origSelectionStart, origSelectionEnd);
1167
- } else {
1168
- // clear temporary content
1169
- target.textContent = "";
1170
- }
1171
- document.getElementById("wpvr-copy-shortcode").scrollIntoView()
1172
- return succeed;
1173
- }
1174
-
1175
- ';
1176
-
1177
- $html .= '</script>';
1178
-
1179
- $html .='</div>';
1180
- //---end general tab----
1181
-
1182
- $html .='<div class="rex-pano-tab" id="scenes">';
1183
-
1184
- //=Scene and Hotspot repeater=//
1185
- if (empty($pano_data)) {
1186
- $html .= '<div class="scene-setup rex-pano-sub-tabs" data-limit="'.$scene_limit.'">';
1187
-
1188
- $html .= '<nav class="rex-pano-tab-nav rex-pano-nav-menu scene-nav">';
1189
- $html .= '<ul>';
1190
- $html .= '<li class="active"><span data-index="1" data-href="#scene-1"><i class="fa fa-image"></i></span></li>';
1191
- $html .= '<li class="add" data-repeater-create><span><i class="fa fa-plus-circle"></i></span></li>';
1192
- $html .= '</ul>';
1193
- $html .= '</nav>';
1194
-
1195
- $html .= '<div data-repeater-list="scene-list" class="rex-pano-tab-content">';
1196
-
1197
- $html .= '<div data-repeater-item class="single-scene rex-pano-tab" data-title="0" id="scene-0">';
1198
- $html .= '<div class="active_scene_id"><p></p></div>';
1199
- $html .= '<div class="scene-content">';
1200
- $html .= '<h6 class="title"><i class="fa fa-cog"></i> Scene Setting </h6>';
1201
-
1202
- $html .= '<div class="scene-left">';
1203
- //==Set Default Scene==//
1204
- $html .= '<div class="single-settings dscene">';
1205
- $html .= '<span>'.__('Set as Default: ', 'wpvr').'</span>';
1206
- $html .= '<select class="dscen" name="dscene">';
1207
- $html .= '<option value="on"> Yes</option>';
1208
- $html .= '<option value="off" selected > No</option>';
1209
- $html .= '</select>';
1210
- $html .= '</div>';
1211
- //==Set Default Scene end==//
1212
-
1213
- $html .= '<div class=scene-setting>';
1214
- $html .= '<label for="scene-id">'.__('Scene ID : ', 'wpvr').'</label>';
1215
- $html .= '<input class="sceneid" type="text" name="scene-id"/>';
1216
- $html .= '</div>';
1217
-
1218
- $html .= '<div class=scene-setting>';
1219
- $html .= '<label for="scene-type">'.__('Scene Type : ', 'wpvr').'</label>';
1220
- $html .= '<input type="text" name="scene-type" value="equirectangular" disabled/>';
1221
- $html .= '</div>';
1222
-
1223
- $html .= '<div class=scene-setting>';
1224
- $html .= '<label for="scene-upload">'.__('Scene Upload: ', 'wpvr').'</label>';
1225
- $html .= '<div class="form-group">';
1226
- $html .= '<img src="" style="display: none;"><br>';
1227
- $html .= '<input type="button" class="scene-upload" data-info="" value="Upload"/>';
1228
- $html .= '<input type="hidden" name="scene-attachment-url" class="scene-attachment-url" value="">';
1229
- $html .= '</div>';
1230
- $html .= '</div>';
1231
- $html .= '</div>';
1232
- //---end scene-left---
1233
-
1234
- $html .= '</div>';
1235
-
1236
- //--hotspot setup--
1237
- $html .= '<div class="hotspot-setup rex-pano-sub-tabs" data-limit="'.$data_limit.'">';
1238
-
1239
- $html .= '<nav class="rex-pano-tab-nav rex-pano-nav-menu hotspot-nav">';
1240
- $html .= '<ul>';
1241
- $html .= '<li class="active"><span data-index="1" data-href="#scene-0-hotspot-1"><i class="far fa-dot-circle"></i></span></li>';
1242
- $html .= '<li class="add" data-repeater-create><span><i class="fa fa-plus-circle"></i> </span></li>';
1243
- $html .= '</ul>';
1244
- $html .= '</nav>';
1245
-
1246
- $html .= '<div data-repeater-list="hotspot-list" class="rex-pano-tab-content">';
1247
- $html .= '<div data-repeater-item class="single-hotspot rex-pano-tab active clearfix" id="scene-0-hotspot-1">';
1248
-
1249
- $html .= '<h6 class="title"><i class="fa fa-cog"></i> Hotspot Setting </h6>';
1250
-
1251
- $html .= '<div class="wrapper">';
1252
- $html .= '<div class="hotspot-setting">';
1253
- $html .= '<label for="hotspot-title">'.__('Hotspot ID : ', 'wpvr').'</label>';
1254
- $html .= '<input type="text" id="hotspot-title" name="hotspot-title"/>';
1255
- $html .= '</div>';
1256
-
1257
- $html .= '<div class="hotspot-setting">';
1258
- $html .= '<label for="hotspot-pitch">'.__('Pitch: ', 'wpvr').'</label>';
1259
- $html .= '<input type="text" class="hotspot-pitch" name="hotspot-pitch"/>';
1260
- $html .= '</div>';
1261
-
1262
- $html .= '<div class="hotspot-setting">';
1263
- $html .= '<label for="hotspot-yaw">'.__('Yaw: ', 'wpvr').'</label>';
1264
- $html .= '<input type="text" class="hotspot-yaw" name="hotspot-yaw"/>';
1265
- $html .= '</div>';
1266
-
1267
- $html .= '<div class="hotspot-setting">';
1268
- $html .= '<label for="hotspot-customclass">'.__('Hotspot Custom Icon Class: ', 'wpvr').'</label>';
1269
- $html .= '<input type="text" id="hotspot-customclass" name="hotspot-customclass"/>';
1270
- $html .= '</div>';
1271
-
1272
- $html .= '</div>';
1273
-
1274
- $html .= '<div class="hotspot-type hotspot-setting">';
1275
- $html .= '<label for="hotspot-type">'.__('Hotspot-Type: ', 'wpvr').'</label>';
1276
- $html .= '<select name="hotspot-type">';
1277
- $html .= '<option value="info" selected> Info</option>';
1278
- $html .= '<option value="scene"> Scene</option>';
1279
- $html .= '</select>';
1280
-
1281
- $html .= '<div class="hotspot-url">';
1282
- $html .= '<label for="hotspot-url">'.__('URL: ', 'wpvr').' </label>';
1283
- $html .= '<input type="url" name="hotspot-url" value="" />';
1284
- $html .= '</div>';
1285
-
1286
- //====Hotspot open in same tab===//
1287
- $html .= '<div class="single-settings s_tab">';
1288
- $html .= '<span>'.__('Open in same tab: ', 'wpvr').'</span>';
1289
- $html .= '<label class="wpvr-switcher-v2">';
1290
- $html .= '<input type="checkbox" class="wpvr_url_open" name="wpvr_url_open" value="off">';
1291
- $html .= '<span class="switcher-box"></span>';
1292
- $html .= '</label>';
1293
- $html .= '</div>';
1294
- //====Hotspot open in same tab end===//
1295
-
1296
- $html .= '<div class="hotspot-content">';
1297
- $html .= '<label for="hotspot-content">'.__('On Click Content: ', 'wpvr').'</label>';
1298
- $html .= '<textarea name="hotspot-content"></textarea>';
1299
- $html .= '</div>';
1300
-
1301
- $html .= '<div class="hotspot-hover">';
1302
- $html .= '<label for="hotspot-hover">'.__('On Hover Content: ', 'wpvr').'</label>';
1303
- $html .= '<textarea name="hotspot-hover"></textarea>';
1304
- $html .= '</div>';
1305
-
1306
- $html .= '<div class="hotspot-scene" style="display:none;" >';
1307
- $html .= '<label for="hotspot-scene">'.__('Select Target Scene from List: ', 'wpvr').'</label>';
1308
- $html .= '<select class="hotspotscene" name="hotspot-scene-list">';
1309
- $html .= '<option value="none" selected> None</option>';
1310
- $html .= '</select>';
1311
- $html .= '</div>';
1312
-
1313
- $html .= '<div class="hotspot-scene" style="display:none;" >';
1314
- $html .= '<label for="hotspot-scene">'.__('Target Scene ID: ', 'wpvr').' </label>';
1315
- $html .= '<input class="hotspotsceneinfodata" type="text" name="hotspot-scene" disabled/>';
1316
- $html .= '</div>';
1317
-
1318
- $html .= '</div>';
1319
- //=Hotspot type End=//
1320
- $html .= '<button data-repeater-delete title="Delete Hotspot" type="button" class="delete-hotspot"><i class="far fa-trash-alt"></i></button>';
1321
- $html .= '</div>';
1322
- $html .= '</div>';
1323
-
1324
- $html .= '</div>';
1325
- $html .= '<button data-repeater-delete type="button" title="Delete Scene" class="delete-scene"><i class="far fa-trash-alt"></i></button>';
1326
- $html .= '</div>';
1327
-
1328
-
1329
- $html .= '<div data-repeater-item class="single-scene rex-pano-tab active" data-title="1" id="scene-1">';
1330
- $html .= '<div class="active_scene_id"><p></p></div>';
1331
- $html .= '<div class="scene-content">';
1332
- $html .= '<h6 class="title"><i class="fa fa-cog"></i> Scene Setting </h6>';
1333
-
1334
- $html .= '<div class="scene-left">';
1335
- //==Set Default Scene==//
1336
- $html .= '<div class="single-settings dscene">';
1337
- $html .= '<span>'.__('Set as Default: ', 'wpvr').'</span>';
1338
- $html .= '<select class="dscen" name="dscene">';
1339
- $html .= '<option value="on"> Yes</option>';
1340
- $html .= '<option value="off" selected > No</option>';
1341
- $html .= '</select>';
1342
- $html .= '</div>';
1343
- //==Set Default Scene end==//
1344
-
1345
- $html .= '<div class=scene-setting>';
1346
- $html .= '<label for="scene-id">'.__('Scene ID : ', 'wpvr').'</label>';
1347
- $html .= '<input class="sceneid" type="text" name="scene-id"/>';
1348
- $html .= '</div>';
1349
-
1350
- $html .= '<div class=scene-setting>';
1351
- $html .= '<label for="scene-type">'.__('Scene Type : ', 'wpvr').'</label>';
1352
- $html .= '<input type="text" name="scene-type" value="equirectangular" disabled/>';
1353
- $html .= '</div>';
1354
-
1355
- $html .= '<div class=scene-setting>';
1356
- $html .= '<label for="scene-upload">'.__('Scene Upload: ', 'wpvr').'</label>';
1357
- $html .= '<div class="form-group">';
1358
- $html .= '<img src="" style="display: none;"><br>';
1359
- $html .= '<input type="button" class="scene-upload" data-info="" value="Upload"/>';
1360
- $html .= '<input type="hidden" name="scene-attachment-url" class="scene-attachment-url" value="">';
1361
- $html .= '</div>';
1362
- $html .= '</div>';
1363
- $html .= '</div>';
1364
- //----end scene left------
1365
-
1366
- $html .= '</div>';
1367
-
1368
- //--hotspot setup--//
1369
- $html .= '<div class="hotspot-setup rex-pano-sub-tabs" data-limit="'.$data_limit.'">';
1370
-
1371
- $html .= '<nav class="rex-pano-tab-nav rex-pano-nav-menu hotspot-nav">';
1372
- $html .= '<ul>';
1373
- $html .= '<li class="active"><span data-index="1" data-href="#scene-1-hotspot-1"><i class="far fa-dot-circle"></i></span></li>';
1374
- $html .= '<li class="add" data-repeater-create><span><i class="fa fa-plus-circle"></i> </span></li>';
1375
- $html .= '</ul>';
1376
- $html .= '</nav>';
1377
-
1378
- $html .= '<div data-repeater-list="hotspot-list" class="rex-pano-tab-content">';
1379
- $html .= '<div data-repeater-item class="single-hotspot rex-pano-tab active clearfix" id="scene-1-hotspot-1">';
1380
-
1381
- $html .= '<h6 class="title"><i class="fa fa-cog"></i> Hotspot Setting </h6>';
1382
-
1383
- $html .= '<div class="wrapper">';
1384
- $html .= '<div class="hotspot-setting">';
1385
- $html .= '<label for="hotspot-title">'.__('Hotspot ID : ', 'wpvr').'</label>';
1386
- $html .= '<input type="text" id="hotspot-title" name="hotspot-title"/>';
1387
- $html .= '</div>';
1388
-
1389
- $html .= '<div class="hotspot-setting">';
1390
- $html .= '<label for="hotspot-pitch">'.__('Pitch: ', 'wpvr').'</label>';
1391
- $html .= '<input type="text" class="hotspot-pitch" name="hotspot-pitch"/>';
1392
- $html .= '</div>';
1393
-
1394
- $html .= '<div class="hotspot-setting">';
1395
- $html .= '<label for="hotspot-yaw">'.__('Yaw: ', 'wpvr').'</label>';
1396
- $html .= '<input type="text" class="hotspot-yaw" name="hotspot-yaw"/>';
1397
- $html .= '</div>';
1398
-
1399
- $html .= '<div class="hotspot-setting">';
1400
- $html .= '<label for="hotspot-customclass">'.__('Hotspot Custom Icon Class: ', 'wpvr').'</label>';
1401
- $html .= '<input type="text" id="hotspot-customclass" name="hotspot-customclass"/>';
1402
- $html .= '</div>';
1403
-
1404
- $html .= '</div>';
1405
-
1406
- $html .= '<div class="hotspot-type hotspot-setting">';
1407
- $html .= '<label for="hotspot-type">'.__('Hotspot-Type: ', 'wpvr').'</label>';
1408
- $html .= '<select name="hotspot-type">';
1409
- $html .= '<option value="info" selected> Info</option>';
1410
- $html .= '<option value="scene"> Scene</option>';
1411
- $html .= '</select>';
1412
-
1413
- $html .= '<div class="hotspot-url">';
1414
- $html .= '<label for="hotspot-url">'.__('URL: ', 'wpvr').'</label>';
1415
- $html .= '<input type="url" name="hotspot-url" value="" />';
1416
- $html .= '</div>';
1417
-
1418
- //====Hotspot open in same tab===//
1419
- $html .= '<div class="single-settings s_tab">';
1420
- $html .= '<span>'.__('Open in same tab: ', 'wpvr').'</span>';
1421
- $html .= '<label class="wpvr-switcher-v2">';
1422
- $html .= '<input type="checkbox" class="wpvr_url_open" name="wpvr_url_open" value="off">';
1423
- $html .= '<span class="switcher-box"></span>';
1424
- $html .= '</label>';
1425
- $html .= '</div>';
1426
- //====Hotspot open in same tab end===//
1427
-
1428
- $html .= '<div class="hotspot-content">';
1429
- $html .= '<label for="hotspot-content">'.__('On Click Content: ', 'wpvr').'</label>';
1430
- $html .= '<textarea name="hotspot-content"></textarea>';
1431
- $html .= '</div>';
1432
-
1433
- $html .= '<div class="hotspot-hover">';
1434
- $html .= '<label for="hotspot-hover">'.__('On Hover Content: ', 'wpvr').'</label>';
1435
- $html .= '<textarea name="hotspot-hover"></textarea>';
1436
- $html .= '</div>';
1437
-
1438
- $html .= '<div class="hotspot-scene" style="display:none;" >';
1439
- $html .= '<label for="hotspot-scene">'.__('Select Target Scene from List: ', 'wpvr').'</label>';
1440
- $html .= '<select class="hotspotscene" name="hotspot-scene-list">';
1441
- $html .= '<option value="none"> None</option>';
1442
- $html .= '</select>';
1443
- $html .= '</div>';
1444
- $html .= '<div class="hotspot-scene" style="display:none;" >';
1445
- $html .= '<label for="hotspot-scene">'.__('Target Scene ID: ', 'wpvr').'</label>';
1446
- $html .= '<input class="hotspotsceneinfodata" type="text" name="hotspot-scene" disabled/>';
1447
- $html .= '</div>';
1448
-
1449
- $html .= '</div>';
1450
- //=Hotspot type End=//
1451
- $html .= '<button data-repeater-delete title="Delete Hotspot" type="button" class="delete-hotspot"><i class="far fa-trash-alt"></i></button>';
1452
- $html .= '</div>';
1453
- $html .= '</div>';
1454
- $html .= '</div>';
1455
- $html .= '<button data-repeater-delete type="button" title="Delete Scene" class="delete-scene"><i class="far fa-trash-alt"></i></button>';
1456
- $html .= '</div>';
1457
- $html .= '</div>';
1458
-
1459
- $html .= '</div>';
1460
- } else {
1461
- $html .= '<div class="scene-setup rex-pano-sub-tabs" data-limit="'.$scene_limit.'">';
1462
-
1463
- $html .= '<nav class="rex-pano-tab-nav rex-pano-nav-menu scene-nav">';
1464
- $html .= '<ul>';
1465
- $i = 1;
1466
- $firstvalue = reset($pano_data["scene-list"]);
1467
- foreach ($pano_data["scene-list"] as $pano_scenes) {
1468
- if ($pano_scenes['scene-id'] == $firstvalue['scene-id']) {
1469
- $html .= '<li class="active"><span data-index="'.$i.'" data-href="#scene-'.$i.'"><i class="fa fa-image"></i></span></li>';
1470
- } else {
1471
- $html .= '<li><span data-index="'.$i.'" data-href="#scene-'.$i.'"><i class="fa fa-image"></i></span></li>';
1472
- }
1473
- $i++;
1474
- }
1475
- $html .= '<li class="add" data-repeater-create><span><i class="fa fa-plus-circle"></i></span></li>';
1476
- $html .= '</ul>';
1477
- $html .= '</nav>';
1478
-
1479
-
1480
- $html .= '<div data-repeater-list="scene-list" class="rex-pano-tab-content">';
1481
-
1482
- //===Default empty repeater declared by nazmus sakib===//
1483
- $html .= '<div data-repeater-item class="single-scene rex-pano-tab" data-title="0" id="scene-0">';
1484
- $html .= '<div class="active_scene_id"><p></p></div>';
1485
- $html .= '<div class="scene-content">';
1486
- $html .= '<h6 class="title"><i class="fa fa-cog"></i> Scene Setting </h6>';
1487
-
1488
- $html .= '<div class="scene-left">';
1489
- //==Set Default Scene==//
1490
- $html .= '<div class="single-settings dscene">';
1491
- $html .= '<span>'.__('Set as Default: ', 'wpvr').'</span>';
1492
- $html .= '<select class="dscen" name="dscene">';
1493
- $html .= '<option value="on"> Yes</option>';
1494
- $html .= '<option value="off" selected > No</option>';
1495
- $html .= '</select>';
1496
- $html .= '</div>';
1497
- //==Set Default Scene end==//
1498
- $html .= '<div class=scene-setting>';
1499
- $html .= '<label for="scene-id">'.__('Scene ID : ', 'wpvr').'</label>';
1500
- $html .= '<input class="sceneid" type="text" name="scene-id"/>';
1501
- $html .= '</div>';
1502
-
1503
- $html .= '<div class=scene-setting>';
1504
- $html .= '<label for="scene-type">'.__('Scene Type : ', 'wpvr').'</label>';
1505
- $html .= '<input type="text" name="scene-type" value="equirectangular" disabled/>';
1506
- $html .= '</div>';
1507
-
1508
- $html .= '<div class=scene-setting>';
1509
- $html .= '<label for="scene-upload">'.__('Scene Upload: ', 'wpvr').'</label>';
1510
- $html .= '<div class="form-group">';
1511
- $html .= '<img src="" style="display: none;"><br>';
1512
- $html .= '<input type="button" class="scene-upload" data-info="" value="Upload"/>';
1513
- $html .= '<input type="hidden" name="scene-attachment-url" class="scene-attachment-url" value="">';
1514
- $html .= '</div>';
1515
- $html .= '</div>';
1516
- $html .= '</div>';
1517
- //-----end scene left------
1518
-
1519
- $html .= '</div>';
1520
-
1521
- //--hotspot setup--//
1522
- $html .= '<div class="hotspot-setup rex-pano-sub-tabs" data-limit="'.$data_limit.'">';
1523
-
1524
- $html .= '<nav class="rex-pano-tab-nav rex-pano-nav-menu hotspot-nav">';
1525
- $html .= '<ul>';
1526
- $html .= '<li class="active"><span data-index="1" data-href="#scene-0-hotspot-1"><i class="far fa-dot-circle"></i></span></li>';
1527
- $html .= '<li class="add" data-repeater-create><span><i class="fa fa-plus-circle"></i> </span></li>';
1528
- $html .= '</ul>';
1529
- $html .= '</nav>';
1530
-
1531
- $html .= '<div data-repeater-list="hotspot-list" class="rex-pano-tab-content">';
1532
- $html .= '<div data-repeater-item class="single-hotspot rex-pano-tab active clearfix" id="scene-0-hotspot-1">';
1533
-
1534
- $html .= '<h6 class="title"><i class="fa fa-cog"></i> Hotspot Setting </h6>';
1535
-
1536
- $html .= '<div class="wrapper">';
1537
- $html .= '<div class="hotspot-setting">';
1538
- $html .= '<label for="hotspot-title">'.__('Hotspot ID : ', 'wpvr').'</label>';
1539
- $html .= '<input type="text" id="hotspot-title" name="hotspot-title"/>';
1540
- $html .= '</div>';
1541
-
1542
- $html .= '<div class="hotspot-setting">';
1543
- $html .= '<label for="hotspot-pitch">'.__('Pitch: ', 'wpvr').'</label>';
1544
- $html .= '<input type="text" class="hotspot-pitch" name="hotspot-pitch"/>';
1545
- $html .= '</div>';
1546
-
1547
- $html .= '<div class="hotspot-setting">';
1548
- $html .= '<label for="hotspot-yaw">'.__('Yaw: ', 'wpvr').'</label>';
1549
- $html .= '<input type="text" class="hotspot-yaw" name="hotspot-yaw"/>';
1550
- $html .= '</div>';
1551
-
1552
- $html .= '<div class="hotspot-setting">';
1553
- $html .= '<label for="hotspot-customclass">'.__('Hotspot Custom Icon Class: ', 'wpvr').'</label>';
1554
- $html .= '<input type="text" id="hotspot-customclass" name="hotspot-customclass"/>';
1555
- $html .= '</div>';
1556
-
1557
- $html .= '</div>';
1558
-
1559
- $html .= '<div class="hotspot-type hotspot-setting">';
1560
- $html .= '<label for="hotspot-type">'.__('Hotspot-Type: ', 'wpvr').'</label>';
1561
- $html .= '<select name="hotspot-type">';
1562
- $html .= '<option value="info" selected> Info</option>';
1563
- $html .= '<option value="scene"> Scene</option>';
1564
- $html .= '</select>';
1565
-
1566
- $html .= '<div class="hotspot-url">';
1567
- $html .= '<label for="hotspot-url">'.__('URL: ', 'wpvr').' </label>';
1568
- $html .= '<input type="url" name="hotspot-url" value="" />';
1569
- $html .= '</div>';
1570
-
1571
- //====Hotspot open in same tab===//
1572
- $html .= '<div class="single-settings s_tab">';
1573
- $html .= '<span>'.__('Open in same tab: ', 'wpvr').'</span>';
1574
- $html .= '<label class="wpvr-switcher-v2">';
1575
- $html .= '<input type="checkbox" class="wpvr_url_open" name="wpvr_url_open" value="off">';
1576
- $html .= '<span class="switcher-box"></span>';
1577
- $html .= '</label>';
1578
- $html .= '</div>';
1579
- //====Hotspot open in same tab end===//
1580
-
1581
- $html .= '<div class="hotspot-content">';
1582
- $html .= '<label for="hotspot-content">'.__('On Click Content: ', 'wpvr').'</label>';
1583
- $html .= '<textarea name="hotspot-content"></textarea>';
1584
- $html .= '</div>';
1585
-
1586
- $html .= '<div class="hotspot-hover">';
1587
- $html .= '<label for="hotspot-hover">'.__('On Hover Content: ', 'wpvr').'</label>';
1588
- $html .= '<textarea name="hotspot-hover"></textarea>';
1589
- $html .= '</div>';
1590
-
1591
- $html .= '<div class="hotspot-scene" style="display:none;" >';
1592
- $html .= '<label for="hotspot-scene">'.__('Select Target Scene from List: ', 'wpvr').'</label>';
1593
- $html .= '<select class="hotspotscene" name="hotspot-scene-list">';
1594
- $html .= '<option value="none" selected> None</option>';
1595
- $html .= '</select>';
1596
- $html .= '</div>';
1597
-
1598
- $html .= '<div class="hotspot-scene" style="display:none;" >';
1599
- $html .= '<label for="hotspot-scene">'.__('Target Scene ID: ', 'wpvr').' </label>';
1600
- $html .= '<input class="hotspotsceneinfodata" type="text" name="hotspot-scene" disabled/>';
1601
- $html .= '</div>';
1602
-
1603
- $html .= '</div>';
1604
- //=Hotspot type End=//
1605
- $html .= '<button data-repeater-delete title="Delete Hotspot" type="button" class="delete-hotspot"><i class="far fa-trash-alt"></i></button>';
1606
- $html .= '</div>';
1607
- $html .= '</div>';
1608
-
1609
- $html .= '</div>';
1610
- $html .= '<button data-repeater-delete type="button" title="Delete Scene" class="delete-scene"><i class="far fa-trash-alt"></i></button>';
1611
- $html .= '</div>';
1612
- //==Empty repeater end==//
1613
-
1614
- $s = 1;
1615
- foreach ($pano_data["scene-list"] as $pano_scenes) {
1616
- $dscene = '';
1617
- if (isset($pano_scenes['dscene'])) {
1618
- $dscene = $pano_scenes['dscene'];
1619
- }
1620
- $scene_id = '';
1621
- $scene_id = $pano_scenes["scene-id"];
1622
- $scene_type = 'equirectangular';
1623
- $scene_type = $pano_scenes["scene-type"];
1624
- $scene_photo = '';
1625
- $scene_photo = $pano_scenes["scene-attachment-url"];
1626
-
1627
- $pano_hotspots = array();
1628
- if (isset($pano_scenes["hotspot-list"])) {
1629
- $pano_hotspots = $pano_scenes["hotspot-list"];
1630
- }
1631
-
1632
- $firstvalueset = reset($pano_data["scene-list"]);
1633
- if ($pano_scenes['scene-id'] == $firstvalueset['scene-id']) {
1634
- $html .= '<div data-repeater-item class="single-scene rex-pano-tab active" data-title="1" id="scene-'.$s.'">';
1635
- $html .= '<div class="active_scene_id"><p></p></div>';
1636
- $html .= '<div class="scene-content">';
1637
- $html .= '<h6 class="title"><i class="fa fa-cog"></i> Scene Setting </h6>';
1638
-
1639
- $html .= '<div class="scene-left">';
1640
- //==Set Default Scene==//
1641
- if ($dscene == 'on') {
1642
- $html .= '<div class="single-settings dscene">';
1643
- $html .= '<span>'.__('Set as Default: ', 'wpvr').'</span>';
1644
- $html .= '<select class="dscen" name="dscene">';
1645
- $html .= '<option value="on" selected > Yes</option>';
1646
- $html .= '<option value="off"> No</option>';
1647
- $html .= '</select>';
1648
- $html .= '</div>';
1649
- } else {
1650
- $html .= '<div class="single-settings dscene">';
1651
- $html .= '<span>'.__('Set as Default: ', 'wpvr').'</span>';
1652
- $html .= '<select class="dscen" name="dscene">';
1653
- $html .= '<option value="on"> Yes</option>';
1654
- $html .= '<option value="off" selected > No</option>';
1655
- $html .= '</select>';
1656
- $html .= '</div>';
1657
- }
1658
- //==Set Default Scene end==//
1659
- $html .= '<div class=scene-setting>';
1660
- $html .= '<label for="scene-id">'.__('Scene ID : ', 'wpvr').'</label>';
1661
- $html .= '<input class="sceneid" type="text" name="scene-id" value="'.$scene_id.'" />';
1662
- $html .= '</div>';
1663
-
1664
- $html .= '<div class=scene-setting>';
1665
- $html .= '<label for="scene-type">'.__('Scene Type : ', 'wpvr').'</label>';
1666
- $html .= '<input type="text" name="scene-type" value="equirectangular" disabled/>';
1667
- $html .= '</div>';
1668
-
1669
- $html .= '<div class=scene-setting>';
1670
- $html .= '<label for="scene-upload">'.__('Scene Upload: ', 'wpvr').'</label>';
1671
- $html .= '<div class="form-group">';
1672
- $html .= '<img name ="scene-photo" src="'.$scene_photo.'"> <br/>';
1673
- $html .= '<input type="button" class="scene-upload" data-info="" value="Upload"/>';
1674
- $html .= '<input type="hidden" name="scene-attachment-url" class="scene-attachment-url" value="'.$scene_photo.'">';
1675
- $html .= '</div>';
1676
- $html .= '</div>';
1677
- $html .= '</div>';
1678
- // ---end scene left---
1679
-
1680
- $html .= '</div>';
1681
-
1682
- if (!empty($pano_hotspots)) {
1683
- $html .= '<div class="hotspot-setup rex-pano-sub-tabs" data-limit="'.$data_limit.'">';
1684
-
1685
- $html .= '<nav class="rex-pano-tab-nav rex-pano-nav-menu hotspot-nav">';
1686
- $html .= '<ul>';
1687
- $j = 1;
1688
- $firstvaluehotspot = reset($pano_hotspots);
1689
- foreach ($pano_hotspots as $pano_hotspot) {
1690
- if ($pano_hotspot['hotspot-title'] == $firstvaluehotspot['hotspot-title']) {
1691
- $html .= '<li class="active"><span data-index="'.$j.'" data-href="#scene-'.$s.'-hotspot-'.$j.'"><i class="far fa-dot-circle"></i></span></li>';
1692
- } else {
1693
- $html .= '<li><span data-index="'.$j.'" data-href="#scene-'.$s.'-hotspot-'.$j.'"><i class="far fa-dot-circle"></i></span></li>';
1694
- }
1695
- $j++;
1696
- }
1697
- $html .= '<li class="add" data-repeater-create><span><i class="fa fa-plus-circle"></i></span></li>';
1698
- $html .= '</ul>';
1699
- $html .= '</nav>';
1700
-
1701
- $html .= '<div data-repeater-list="hotspot-list" class="rex-pano-tab-content">';
1702
-
1703
- $h = 1;
1704
- $firstvaluehotspotset = reset($pano_hotspots);
1705
- $is_wpvr_premium = apply_filters('is_wpvr_premium', false);
1706
- foreach ($pano_hotspots as $pano_hotspot) {
1707
- $hotspot_title = '';
1708
- $hotspot_title = $pano_hotspot['hotspot-title'];
1709
- $hotspot_pitch = '';
1710
- $hotspot_pitch = $pano_hotspot['hotspot-pitch'];
1711
- $hotspot_yaw = '';
1712
- $hotspot_yaw = $pano_hotspot['hotspot-yaw'];
1713
- $hotspot_type = '';
1714
- $hotspot_type = $pano_hotspot['hotspot-type'];
1715
- $hotspot_url = '';
1716
- $hotspot_url = $pano_hotspot['hotspot-url'];
1717
- $hotspot_content = '';
1718
- $hotspot_content = $pano_hotspot['hotspot-content'];
1719
- $hotspot_hover = '';
1720
- $hotspot_hover = $pano_hotspot['hotspot-hover'];
1721
- $hotspot_target_scene = '';
1722
- $hotspot_target_scene = $pano_hotspot['hotspot-scene'];
1723
- $hotspot_custom_class = '';
1724
- if (isset($pano_hotspot['hotspot-customclass'])) {
1725
- $hotspot_custom_class = $pano_hotspot['hotspot-customclass'];
1726
- }
1727
-
1728
- if ($pano_hotspot['hotspot-title'] == $firstvaluehotspotset['hotspot-title']) {
1729
- $html .= '<div data-repeater-item class="single-hotspot rex-pano-tab active clearfix" id="scene-'.$s.'-hotspot-'.$h.'">';
1730
-
1731
- $html .= '<h6 class="title"><i class="fa fa-cog"></i> Hotspot Setting </h6>';
1732
-
1733
- $html .= '<div class="wrapper">';
1734
- $html .= '<div class="hotspot-setting">';
1735
- $html .= '<label for="hotspot-title">'.__('Hotspot ID : ', 'wpvr').'</label>';
1736
- $html .= '<input type="text" id="hotspot-title" name="hotspot-title" value="'.$hotspot_title.'" />';
1737
- $html .= '</div>';
1738
-
1739
- $html .= '<div class="hotspot-setting">';
1740
- $html .= '<label for="hotspot-pitch">'.__('Pitch: ', 'wpvr').'
1741
- </label>';
1742
- $html .= '<input type="text" class="hotspot-pitch" name="hotspot-pitch" value="'.$hotspot_pitch.'" />';
1743
- $html .= '</div>';
1744
-
1745
- $html .= '<div class="hotspot-setting">';
1746
- $html .= '<label for="hotspot-yaw">'.__('Yaw: ', 'wpvr').'</label>';
1747
- $html .= '<input type="text" class="hotspot-yaw" name="hotspot-yaw" value="'.$hotspot_yaw.'" />';
1748
- $html .= '</div>';
1749
-
1750
- $html .= '<div class="hotspot-setting">';
1751
- $html .= '<label for="hotspot-customclass">'.__('Hotspot Custom Icon Class: ', 'wpvr').'</label>';
1752
- $html .= '<input type="text" id="hotspot-customclass" name="hotspot-customclass" value="'.$hotspot_custom_class.'"/>';
1753
- $html .= '</div>';
1754
-
1755
- $html .= '</div>';
1756
-
1757
- //=Hotspot type=//
1758
- if ($hotspot_type == "info") {
1759
- $html .= '<div class="hotspot-type hotspot-setting">';
1760
- $html .= '<label for="hotspot-type">'.__('Hotspot-Type: ', 'wpvr').'</label>';
1761
- $html .= '<select name="hotspot-type">';
1762
- $html .= '<option value="info" selected> Info</option>';
1763
- $html .= '<option value="scene"> Scene</option>';
1764
- $html .= '</select>';
1765
-
1766
- $html .= '<div class="hotspot-url">';
1767
- $html .= '<label for="hotspot-url">'.__('URL: ', 'wpvr').' </label>';
1768
- $html .= '<input type="url" name="hotspot-url" value="'.$hotspot_url.'" />';
1769
- $html .= '</div>';
1770
-
1771
- //====Hotspot open in same tab===//
1772
- $wpvr_url_open_checked = '';
1773
- $wpvr_url_open_data = 'off';
1774
- if ($pano_hotspot['wpvr_url_open'][0] == 'on') {
1775
- $wpvr_url_open_checked = 'checked';
1776
- $wpvr_url_open_data = 'on';
1777
- }
1778
-
1779
- $html .= '<div class="single-settings s_tab">';
1780
- $html .= '<span>'.__('Open in same tab: ', 'wpvr').'</span>';
1781
- $html .= '<label class="wpvr-switcher-v2">';
1782
- $html .= '<input type="checkbox" class="wpvr_url_open" name="wpvr_url_open" value="'.$wpvr_url_open_data.'" '.$wpvr_url_open_checked.'>';
1783
- $html .= '<span class="switcher-box"></span>';
1784
- $html .= '</label>';
1785
- $html .= '</div>';
1786
- //====Hotspot open in same tab end===//
1787
-
1788
- $html .= '<div class="hotspot-content">';
1789
- $html .= '<label for="hotspot-content">'.__('On Click Content: ', 'wpvr').'</label>';
1790
- $html .= '<textarea name="hotspot-content">'.$hotspot_content.'</textarea>';
1791
- $html .= '</div>';
1792
-
1793
- $html .= '<div class="hotspot-hover">';
1794
- $html .= '<label for="hotspot-hover">'.__('On Hover Content: ', 'wpvr').' </label>';
1795
- $html .= '<textarea name="hotspot-hover">'.$hotspot_hover.'</textarea>';
1796
- $html .= '</div>';
1797
-
1798
- $html .= '<div class="hotspot-scene" style="display:none;" >';
1799
- $html .= '<label for="hotspot-scene">'.__('Select Target Scene from List: ', 'wpvr').'</label>';
1800
- $html .= '<select class="hotspotscene" name="hotspot-scene-list">';
1801
- $html .= '<option value="none" selected> None</option>';
1802
- $html .= '</select>';
1803
- $html .= '</div>';
1804
-
1805
- $html .= '<div class="hotspot-scene" style="display:none;" >';
1806
- $html .= '<label for="hotspot-scene"> '.__('Target Scene ID: ', 'wpvr').'</label>';
1807
- $html .= '<input class="hotspotsceneinfodata" type="text" name="hotspot-scene" disabled/>';
1808
- $html .= '</div>';
1809
-
1810
- $html .= '</div>';
1811
- } else {
1812
- $html .= '<div class="hotspot-type hotspot-setting">';
1813
- $html .= '<label for="hotspot-type">'.__('Hotspot-Type: ', 'wpvr').'</label>';
1814
- $html .= '<select class="trtr" name="hotspot-type">';
1815
- $html .= '<option value="info"> Info</option>';
1816
- $html .= '<option value="scene" selected> Scene</option>';
1817
- $html .= '</select>';
1818
-
1819
- $html .= '<div class="hotspot-url" style="display:none;">';
1820
- $html .= '<label for="hotspot-url">'.__('URL: ', 'wpvr').'</label>';
1821
- $html .= '<input type="url" name="hotspot-url" />';
1822
- $html .= '</div>';
1823
-
1824
- //====Hotspot open in same tab===//
1825
- $html .= '<div class="single-settings s_tab" style="display:none;">';
1826
- $html .= '<span>'.__('Open in same tab: ', 'wpvr').'</span>';
1827
- $html .= '<label class="wpvr-switcher-v2">';
1828
- $html .= '<input type="checkbox" class="wpvr_url_open" name="wpvr_url_open" value="off">';
1829
- $html .= '<span class="switcher-box"></span>';
1830
- $html .= '</label>';
1831
- $html .= '</div>';
1832
- //====Hotspot open in same tab end===//
1833
-
1834
- $html .= '<div class="hotspot-content" style="display:none;">';
1835
- $html .= '<label for="hotspot-content">'.__('On Click Content: ', 'wpvr').' </label>';
1836
- $html .= '<textarea name="hotspot-content"></textarea>';
1837
- $html .= '</div>';
1838
-
1839
- $html .= '<div class="hotspot-hover">';
1840
- $html .= '<label for="hotspot-hover">'.__('On Hover Content: ', 'wpvr').'</label>';
1841
- $html .= '<textarea name="hotspot-hover">'.$hotspot_hover.'</textarea>';
1842
- $html .= '</div>';
1843
-
1844
- $html .= '<div class="hotspot-scene" >';
1845
- $html .= '<label for="hotspot-scene">'.__('Select Target Scene from List: ', 'wpvr').'</label>';
1846
- $html .= '<select class="hotspotscene" name="hotspot-scene-list">';
1847
- $html .= '<option value="none" selected> None</option>';
1848
- $html .= '</select>';
1849
- $html .= '</div>';
1850
-
1851
- $html .= '<div class="hotspot-scene">';
1852
- $html .= '<label for="hotspot-scene">'.__('Target Scene ID: ', 'wpvr').'</label>';
1853
- $html .= '<input class="hotspotsceneinfodata" type="text" name="hotspot-scene" value="'.$hotspot_target_scene.'" disabled />';
1854
- $html .= '</div>';
1855
-
1856
- $html .= '</div>';
1857
- }
1858
- //=Hotspot type End=//
1859
- $html .= '<button data-repeater-delete type="button" title="Delete Hotspot" class="delete-hotspot"><i class="far fa-trash-alt"></i></button>';
1860
- $html .= '</div>';
1861
- } else {
1862
- $html .= '<div data-repeater-item class="single-hotspot rex-pano-tab clearfix" id="scene-'.$s.'-hotspot-'.$h.'">';
1863
-
1864
- $html .= '<h6 class="title"><i class="fa fa-cog"></i> Hotspot Setting </h6>';
1865
-
1866
- $html .= '<div class="wrapper">';
1867
- $html .= '<div class="hotspot-setting">';
1868
- $html .= '<label for="hotspot-title">'.__('Hotspot ID : ', 'wpvr').'</label>';
1869
- $html .= '<input type="text" id="hotspot-title" name="hotspot-title" value="'.$hotspot_title.'" />';
1870
- $html .= '</div>';
1871
-
1872
- $html .= '<div class="hotspot-setting">';
1873
- $html .= '<label for="hotspot-pitch">'.__('Pitch: ', 'wpvr').'</label>';
1874
- $html .= '<input type="text" class="hotspot-pitch" name="hotspot-pitch" value="'.$hotspot_pitch.'" />';
1875
- $html .= '</div>';
1876
-
1877
- $html .= '<div class="hotspot-setting">';
1878
- $html .= '<label for="hotspot-yaw">'.__('Yaw: ', 'wpvr').'</label>';
1879
- $html .= '<input type="text" class="hotspot-yaw" name="hotspot-yaw" value="'.$hotspot_yaw.'" />';
1880
- $html .= '</div>';
1881
-
1882
- $html .= '<div class="hotspot-setting">';
1883
- $html .= '<label for="hotspot-customclass">'.__('Hotspot Custom Icon Class: ', 'wpvr').'</label>';
1884
- $html .= '<input type="text" id="hotspot-customclass" name="hotspot-customclass" value="'.$hotspot_custom_class.'"/>';
1885
- $html .= '</div>';
1886
-
1887
- $html .= '</div>';
1888
-
1889
- //=Hotspot type=//
1890
- if ($hotspot_type == "info") {
1891
- $html .= '<div class="hotspot-type hotspot-setting">';
1892
- $html .= '<label for="hotspot-type">'.__('Hotspot-Type: ', 'wpvr').'</label>';
1893
- $html .= '<select name="hotspot-type">';
1894
- $html .= '<option value="info" selected> Info</option>';
1895
- $html .= '<option value="scene"> Scene</option>';
1896
- $html .= '</select>';
1897
-
1898
- $html .= '<div class="hotspot-url">';
1899
- $html .= '<label for="hotspot-url">'.__('URL: ', 'wpvr').' </label>';
1900
- $html .= '<input type="url" name="hotspot-url" value="'.$hotspot_url.'" />';
1901
- $html .= '</div>';
1902
-
1903
- //====Hotspot open in same tab===//
1904
- $wpvr_url_open_checked = '';
1905
- $wpvr_url_open_data = 'off';
1906
-
1907
- if (isset($pano_hotspot['wpvr_url_open'][0]) && $pano_hotspot['wpvr_url_open'][0] == 'on') {
1908
- $wpvr_url_open_checked = 'checked';
1909
- $wpvr_url_open_data = 'on';
1910
- }
1911
-
1912
- $html .= '<div class="single-settings s_tab">';
1913
- $html .= '<span>'.__('Open in same tab: ', 'wpvr').'</span>';
1914
- $html .= '<label class="wpvr-switcher-v2">';
1915
- $html .= '<input type="checkbox" class="wpvr_url_open" name="wpvr_url_open" value="'.$wpvr_url_open_data.'" '.$wpvr_url_open_checked.'>';
1916
- $html .= '<span class="switcher-box"></span>';
1917
- $html .= '</label>';
1918
- $html .= '</div>';
1919
- //====Hotspot open in same tab end===//
1920
-
1921
- $html .= '<div class="hotspot-content">';
1922
- $html .= '<label for="hotspot-content">'.__('On Click Content: ', 'wpvr').'</label>';
1923
- $html .= '<textarea name="hotspot-content">'.$hotspot_content.'</textarea>';
1924
- $html .= '</div>';
1925
-
1926
- $html .= '<div class="hotspot-hover">';
1927
- $html .= '<label for="hotspot-hover">'.__('On Hover Content: ', 'wpvr').'</label>';
1928
- $html .= '<textarea name="hotspot-hover">'.$hotspot_hover.'</textarea>';
1929
- $html .= '</div>';
1930
-
1931
- $html .= '<div class="hotspot-scene" style="display:none;" >';
1932
- $html .= '<label for="hotspot-scene">'.__('Select Target Scene from List: ', 'wpvr').'</label>';
1933
- $html .= '<select class="hotspotscene" name="hotspot-scene-list">';
1934
- $html .= '<option value="none" selected> None</option>';
1935
- $html .= '</select>';
1936
- $html .= '</div>';
1937
-
1938
- $html .= '<div class="hotspot-scene" style="display:none;" >';
1939
- $html .= '<label for="hotspot-scene">'.__('Target Scene ID: ', 'wpvr').'</label>';
1940
- $html .= '<input class="hotspotsceneinfodata" type="text" name="hotspot-scene" disabled />';
1941
- $html .= '</div>';
1942
-
1943
- $html .= '</div>';
1944
- } else {
1945
- $html .= '<div class="hotspot-type hotspot-setting">';
1946
- $html .= '<label for="hotspot-type">'.__('Hotspot-Type: ', 'wpvr').'</label>';
1947
- $html .= '<select class="trtr" name="hotspot-type">';
1948
- $html .= '<option value="info"> Info</option>';
1949
- $html .= '<option value="scene" selected> Scene</option>';
1950
- $html .= '</select>';
1951
-
1952
- $html .= '<div class="hotspot-url" style="display:none;">';
1953
- $html .= '<label for="hotspot-url">'.__('URL: ', 'wpvr').'</label>';
1954
- $html .= '<input type="url" name="hotspot-url" />';
1955
- $html .= '</div>';
1956
-
1957
- //====Hotspot open in same tab===//
1958
- $html .= '<div class="single-settings s_tab" style="display:none;">';
1959
- $html .= '<span>'.__('Open in same tab: ', 'wpvr').'</span>';
1960
- $html .= '<label class="wpvr-switcher-v2">';
1961
- $html .= '<input type="checkbox" class="wpvr_url_open" name="wpvr_url_open" value="off">';
1962
- $html .= '<span class="switcher-box"></span>';
1963
- $html .= '</label>';
1964
- $html .= '</div>';
1965
- //====Hotspot open in same tab end===//
1966
-
1967
- $html .= '<div class="hotspot-content" style="display:none;">';
1968
- $html .= '<label for="hotspot-content">'.__('On Click Content: ', 'wpvr').'</label>';
1969
- $html .= '<textarea name="hotspot-content"></textarea>';
1970
- $html .= '</div>';
1971
-
1972
- $html .= '<div class="hotspot-hover">';
1973
- $html .= '<label for="hotspot-hover">'.__('On Hover Content: ', 'wpvr').' </label>';
1974
- $html .= '<textarea name="hotspot-hover">'.$hotspot_hover.'</textarea>';
1975
- $html .= '</div>';
1976
-
1977
- $html .= '<div class="hotspot-scene" >';
1978
- $html .= '<label for="hotspot-scene">'.__('Select Target Scene from List: ', 'wpvr').'</label>';
1979
- $html .= '<select class="hotspotscene" name="hotspot-scene-list">';
1980
- $html .= '<option value="none" selected> None</option>';
1981
- $html .= '</select>';
1982
- $html .= '</div>';
1983
-
1984
- $html .= '<div class="hotspot-scene">';
1985
- $html .= '<label for="hotspot-scene">'.__('Target Scene ID: ', 'wpvr').'</label>';
1986
- $html .= '<input class="hotspotsceneinfodata" type="text" name="hotspot-scene" value="'.$hotspot_target_scene.'" disabled />';
1987
- $html .= '</div>';
1988
-
1989
- $html .= '</div>';
1990
- }
1991
- //=Hotspot type End=//
1992
- $html .= '<button data-repeater-delete type="button" title="Delete Hotspot" class="delete-hotspot"><i class="far fa-trash-alt"></i></button>';
1993
- $html .= '</div>';
1994
- }
1995
- $h++;
1996
- }
1997
- $html .= '</div>';
1998
- $html .= '</div>';
1999
- } else {
2000
- $html .= '<div class="hotspot-setup rex-pano-sub-tabs" data-limit="'.$data_limit.'">';
2001
-
2002
- $html .= '<nav class="rex-pano-tab-nav rex-pano-nav-menu hotspot-nav">';
2003
- $html .= '<ul>';
2004
- $html .= '<li class="active"><span data-index="1" data-href="#scene-'.$s.'-hotspot-1"><i class="far fa-dot-circle"></i></span></li>';
2005
- $html .= '<li class="add" data-repeater-create><span><i class="fa fa-plus-circle"></i> </span></li>';
2006
- $html .= '</ul>';
2007
- $html .= '</nav>';
2008
-
2009
- $html .= '<div data-repeater-list="hotspot-list" class="rex-pano-tab-content">';
2010
- $html .= '<div data-repeater-item class="single-hotspot rex-pano-tab active clearfix" id="scene-'.$s.'-hotspot-1">';
2011
-
2012
- $html .= '<h6 class="title"><i class="fa fa-cog"></i> Hotspot Setting </h6>';
2013
-
2014
- $html .= '<div class="wrapper">';
2015
- $html .= '<div class="hotspot-setting">';
2016
- $html .= '<label for="hotspot-title">'.__('Hotspot ID : ', 'wpvr').'</label>';
2017
- $html .= '<input type="text" id="hotspot-title" name="hotspot-title"/>';
2018
- $html .= '</div>';
2019
-
2020
- $html .= '<div class="hotspot-setting">';
2021
- $html .= '<label for="hotspot-pitch">'.__('Pitch: ', 'wpvr').'</label>';
2022
- $html .= '<input type="text" class="hotspot-pitch" name="hotspot-pitch"/>';
2023
- $html .= '</div>';
2024
-
2025
- $html .= '<div class="hotspot-setting">';
2026
- $html .= '<label for="hotspot-yaw">'.__('Yaw: ', 'wpvr').'</label>';
2027
- $html .= '<input type="text" class="hotspot-yaw" name="hotspot-yaw"/>';
2028
- $html .= '</div>';
2029
-
2030
- $html .= '<div class="hotspot-setting">';
2031
- $html .= '<label for="hotspot-customclass">'.__('Hotspot Custom Icon class: ', 'wpvr').'</label>';
2032
- $html .= '<input type="text" id="hotspot-customclass" name="hotspot-customclass"/>';
2033
- $html .= '</div>';
2034
-
2035
- $html .= '</div>';
2036
-
2037
- $html .= '<div class="hotspot-type hotspot-setting">';
2038
- $html .= '<label for="hotspot-type">'.__('Hotspot-Type: ', 'wpvr').'</label>';
2039
- $html .= '<select name="hotspot-type">';
2040
- $html .= '<option value="info" selected> Info</option>';
2041
- $html .= '<option value="scene"> Scene</option>';
2042
- $html .= '</select>';
2043
-
2044
- $html .= '<div class="hotspot-url">';
2045
- $html .= '<label for="hotspot-url">'.__('URL: ', 'wpvr').'</label>';
2046
- $html .= '<input type="url" name="hotspot-url" value="" />';
2047
- $html .= '</div>';
2048
-
2049
- //====Hotspot open in same tab===//
2050
- $html .= '<div class="single-settings s_tab">';
2051
- $html .= '<span>'.__('Open in same tab: ', 'wpvr').'</span>';
2052
- $html .= '<label class="wpvr-switcher-v2">';
2053
- $html .= '<input type="checkbox" class="wpvr_url_open" name="wpvr_url_open" value="off">';
2054
- $html .= '<span class="switcher-box"></span>';
2055
- $html .= '</label>';
2056
- $html .= '</div>';
2057
- //====Hotspot open in same tab end===//
2058
-
2059
- $html .= '<div class="hotspot-content">';
2060
- $html .= '<label for="hotspot-content">'.__('On Click Content: ', 'wpvr').'</label>';
2061
- $html .= '<textarea name="hotspot-content"></textarea>';
2062
- $html .= '</div>';
2063
-
2064
- $html .= '<div class="hotspot-hover">';
2065
- $html .= '<label for="hotspot-hover">'.__('On Hover Content: ', 'wpvr').'</label>';
2066
- $html .= '<textarea name="hotspot-hover"></textarea>';
2067
- $html .= '</div>';
2068
-
2069
- $html .= '<div class="hotspot-scene" style="display:none;" >';
2070
- $html .= '<label for="hotspot-scene">'.__('Select Target Scene from List: ', 'wpvr').'</label>';
2071
- $html .= '<select class="hotspotscene" name="hotspot-scene-list">';
2072
- $html .= '<option value="none"> None</option>';
2073
- $html .= '</select>';
2074
- $html .= '</div>';
2075
- $html .= '<div class="hotspot-scene" style="display:none;" >';
2076
- $html .= '<label for="hotspot-scene">'.__('Target Scene ID: ', 'wpvr').'</label>';
2077
- $html .= '<input class="hotspotsceneinfodata" type="text" name="hotspot-scene" disabled/>';
2078
- $html .= '</div>';
2079
-
2080
- $html .= '</div>';
2081
- //=Hotspot type End=//
2082
- $html .= '<button data-repeater-delete title="Delete Hotspot" type="button" class="delete-hotspot"><i class="far fa-trash-alt"></i></button>';
2083
- $html .= '</div>';
2084
- $html .= '</div>';
2085
- $html .= '</div>';
2086
- }
2087
- $html .= '<button data-repeater-delete type="button" title="Delete Scene" class="delete-scene"><i class="far fa-trash-alt"></i></button>';
2088
- $html .= '</div>';
2089
- } else {
2090
- $html .= '<div data-repeater-item class="single-scene rex-pano-tab" data-title="1" id="scene-'.$s.'">';
2091
- $html .= '<div class="active_scene_id"><p></p></div>';
2092
- $html .= '<div class="scene-content">';
2093
- $html .= '<h6 class="title"><i class="fa fa-cog"></i> Scene Setting </h6>';
2094
-
2095
- $html .= '<div class="scene-left">';
2096
- //==Set Default Scene==//
2097
- if ($dscene == 'on') {
2098
- $html .= '<div class="single-settings dscene">';
2099
- $html .= '<span>'.__('Set as Default: ', 'wpvr').'</span>';
2100
- $html .= '<select class="dscen" name="dscene">';
2101
- $html .= '<option value="on" selected > Yes</option>';
2102
- $html .= '<option value="off"> No</option>';
2103
- $html .= '</select>';
2104
- $html .= '</div>';
2105
- } else {
2106
- $html .= '<div class="single-settings dscene">';
2107
- $html .= '<span>'.__('Set as Default: ', 'wpvr').'</span>';
2108
- $html .= '<select class="dscen" name="dscene">';
2109
- $html .= '<option value="on"> Yes</option>';
2110
- $html .= '<option value="off" selected> No</option>';
2111
- $html .= '</select>';
2112
- $html .= '</div>';
2113
- }
2114
- //==Set Default Scene end==//
2115
-
2116
- $html .= '<div class=scene-setting>';
2117
- $html .= '<label for="scene-id">'.__('Scene ID : ', 'wpvr').'</label>';
2118
- $html .= '<input class="sceneid" type="text" name="scene-id" value="'.$scene_id.'" />';
2119
- $html .= '</div>';
2120
-
2121
- $html .= '<div class=scene-setting>';
2122
- $html .= '<label for="scene-type">'.__('Scene Type : ', 'wpvr').'</label>';
2123
- $html .= '<input type="text" name="scene-type" value="equirectangular" disabled/>';
2124
- $html .= '</div>';
2125
-
2126
- $html .= '<div class=scene-setting>';
2127
- $html .= '<label for="scene-upload">'.__('Scene Upload: ', 'wpvr').'</label>';
2128
- $html .= '<div class="form-group">';
2129
- $html .= '<img name ="scene-photo" src="'.$scene_photo.'"> <br/>';
2130
- $html .= '<input type="button" class="scene-upload" data-info="" value="Upload"/>';
2131
- $html .= '<input type="hidden" name="scene-attachment-url" class="scene-attachment-url" value="'.$scene_photo.'">';
2132
- $html .= '</div>';
2133
- $html .= '</div>';
2134
- $html .= '</div>';
2135
- //--end scene left----
2136
-
2137
- $html .= '</div>';
2138
-
2139
- if (!empty($pano_hotspots)) {
2140
- $html .= '<div class="hotspot-setup rex-pano-sub-tabs" data-limit="'.$data_limit.'">';
2141
-
2142
- $html .= '<nav class="rex-pano-tab-nav rex-pano-nav-menu hotspot-nav">';
2143
- $html .= '<ul>';
2144
- $j = 1;
2145
- foreach ($pano_hotspots as $pano_hotspot) {
2146
- if ($pano_hotspot['hotspot-title'] == $pano_hotspots[0]['hotspot-title']) {
2147
- $html .= '<li class="active"><span data-index="'.$j.'" data-href="#scene-'.$s.'-hotspot-'.$j.'"><i class="far fa-dot-circle"></i></span></li>';
2148
- } else {
2149
- $html .= '<li><span data-index="'.$j.'" data-href="#scene-'.$s.'-hotspot-'.$j.'"><i class="far fa-dot-circle"></i></span></li>';
2150
- }
2151
- $j++;
2152
- }
2153
- $html .= '<li class="add" data-repeater-create><span><i class="fa fa-plus-circle"></i></span></li>';
2154
- $html .= '</ul>';
2155
- $html .= '</nav>';
2156
-
2157
- $html .= '<div data-repeater-list="hotspot-list" class="rex-pano-tab-content">';
2158
-
2159
- $h = 1;
2160
- foreach ($pano_hotspots as $pano_hotspot) {
2161
- $hotspot_title = '';
2162
- $hotspot_title = $pano_hotspot['hotspot-title'];
2163
- $hotspot_pitch = '';
2164
- $hotspot_pitch = $pano_hotspot['hotspot-pitch'];
2165
- $hotspot_yaw = '';
2166
- $hotspot_yaw = $pano_hotspot['hotspot-yaw'];
2167
- $hotspot_type = '';
2168
- $hotspot_type = $pano_hotspot['hotspot-type'];
2169
- $hotspot_url = '';
2170
- $hotspot_url = $pano_hotspot['hotspot-url'];
2171
- $hotspot_content = '';
2172
- $hotspot_content = $pano_hotspot['hotspot-content'];
2173
- $hotspot_hover = '';
2174
- $hotspot_hover = $pano_hotspot['hotspot-hover'];
2175
- $hotspot_target_scene = '';
2176
- $hotspot_target_scene = $pano_hotspot['hotspot-scene'];
2177
- $hotspot_custom_class = '';
2178
- if (isset($pano_hotspot['hotspot-customclass'])) {
2179
- $hotspot_custom_class = $pano_hotspot['hotspot-customclass'];
2180
- }
2181
-
2182
- if ($pano_hotspot['hotspot-title'] == $pano_hotspots[0]['hotspot-title']) {
2183
- $html .= '<div data-repeater-item class="single-hotspot rex-pano-tab active clearfix" id="scene-'.$s.'-hotspot-'.$h.'">';
2184
-
2185
- $html .= '<h6 class="title"><i class="fa fa-cog"></i> Hotspot Setting </h6>';
2186
-
2187
- $html .= '<div class="wrapper">';
2188
- $html .= '<div class="hotspot-setting">';
2189
- $html .= '<label for="hotspot-title">'.__('Hotspot ID : ', 'wpvr').'</label>';
2190
- $html .= '<input type="text" id="hotspot-title" name="hotspot-title" value="'.$hotspot_title.'" />';
2191
- $html .= '</div>';
2192
-
2193
- $html .= '<div class="hotspot-setting">';
2194
- $html .= '<label for="hotspot-pitch">'.__('Pitch: ', 'wpvr').'</label>';
2195
- $html .= '<input type="text" class="hotspot-pitch" name="hotspot-pitch" value="'.$hotspot_pitch.'" />';
2196
- $html .= '</div>';
2197
-
2198
- $html .= '<div class="hotspot-setting">';
2199
- $html .= '<label for="hotspot-yaw">'.__('Yaw: ', 'wpvr').'</label>';
2200
- $html .= '<input type="text" class="hotspot-yaw" name="hotspot-yaw" value="'.$hotspot_yaw.'" />';
2201
- $html .= '</div>';
2202
-
2203
- $html .= '<div class="hotspot-setting">';
2204
- $html .= '<label for="hotspot-customclass">'.__('Hotspot Custom Icon Class: ', 'wpvr').'</label>';
2205
- $html .= '<input type="text" id="hotspot-customclass" name="hotspot-customclass" value="'.$hotspot_custom_class.'"/>';
2206
- $html .= '</div>';
2207
-
2208
- $html .= '</div>';
2209
-
2210
- //=Hotspot type=//
2211
- if ($hotspot_type == "info") {
2212
- $html .= '<div class="hotspot-type hotspot-setting">';
2213
- $html .= '<label for="hotspot-type">'.__('Hotspot-Type: ', 'wpvr').'</label>';
2214
- $html .= '<select name="hotspot-type">';
2215
- $html .= '<option value="info" selected> Info</option>';
2216
- $html .= '<option value="scene"> Scene</option>';
2217
- $html .= '</select>';
2218
-
2219
- $html .= '<div class="hotspot-url">';
2220
- $html .= '<label for="hotspot-url">'.__('URL: ', 'wpvr').' </label>';
2221
- $html .= '<input type="url" name="hotspot-url" value="'.$hotspot_url.'" />';
2222
- $html .= '</div>';
2223
-
2224
- //====Hotspot open in same tab===//
2225
- $wpvr_url_open_checked = '';
2226
- $wpvr_url_open_data = 'off';
2227
-
2228
- if ($pano_hotspot['wpvr_url_open'][0] == 'on') {
2229
- $wpvr_url_open_checked = 'checked';
2230
- $wpvr_url_open_data = 'on';
2231
- }
2232
-
2233
- $html .= '<div class="single-settings s_tab">';
2234
- $html .= '<span>'.__('Open in same tab: ', 'wpvr').'</span>';
2235
- $html .= '<label class="wpvr-switcher-v2">';
2236
- $html .= '<input type="checkbox" class="wpvr_url_open" name="wpvr_url_open" value="'.$wpvr_url_open_data.'" '.$wpvr_url_open_checked.'>';
2237
- $html .= '<span class="switcher-box"></span>';
2238
- $html .= '</label>';
2239
- $html .= '</div>';
2240
- //====Hotspot open in same tab end===//
2241
-
2242
- $html .= '<div class="hotspot-content">';
2243
- $html .= '<label for="hotspot-content">'.__('On Click Content: ', 'wpvr').' </label>';
2244
- $html .= '<textarea name="hotspot-content">'.$hotspot_content.'</textarea>';
2245
- $html .= '</div>';
2246
-
2247
- $html .= '<div class="hotspot-hover">';
2248
- $html .= '<label for="hotspot-hover">'.__('On Hover Content: ', 'wpvr').' </label>';
2249
- $html .= '<textarea name="hotspot-hover">'.$hotspot_hover.'</textarea>';
2250
- $html .= '</div>';
2251
-
2252
- $html .= '<div class="hotspot-scene" style="display:none;" >';
2253
- $html .= '<label for="hotspot-scene">'.__('Select Target Scene from List: ', 'wpvr').'</label>';
2254
- $html .= '<select class="hotspotscene" name="hotspot-scene-list">';
2255
- $html .= '<option value="none" selected> None</option>';
2256
- $html .= '</select>';
2257
- $html .= '</div>';
2258
-
2259
- $html .= '<div class="hotspot-scene" style="display:none;" >';
2260
- $html .= '<label for="hotspot-scene">'.__('Target Scene ID: ', 'wpvr').' </label>';
2261
- $html .= '<input class="hotspotsceneinfodata" type="text" name="hotspot-scene"/>';
2262
- $html .= '</div>';
2263
-
2264
- $html .= '</div>';
2265
- } else {
2266
- $html .= '<div class="hotspot-type hotspot-setting">';
2267
- $html .= '<label for="hotspot-type">'.__('Hotspot-Type: ', 'wpvr').'</label>';
2268
- $html .= '<select class="trtr" name="hotspot-type">';
2269
- $html .= '<option value="info"> Info</option>';
2270
- $html .= '<option value="scene" selected> Scene</option>';
2271
- $html .= '</select>';
2272
-
2273
- $html .= '<div class="hotspot-url" style="display:none;">';
2274
- $html .= '<label for="hotspot-url">'.__('URL: ', 'wpvr').' </label>';
2275
- $html .= '<input type="url" name="hotspot-url" />';
2276
- $html .= '</div>';
2277
-
2278
- //====Hotspot open in same tab===//
2279
- $html .= '<div class="single-settings s_tab" style="display:none;">';
2280
- $html .= '<span>'.__('Open in same tab: ', 'wpvr').'</span>';
2281
- $html .= '<label class="wpvr-switcher-v2">';
2282
- $html .= '<input type="checkbox" class="wpvr_url_open" name="wpvr_url_open" value="off">';
2283
- $html .= '<span class="switcher-box"></span>';
2284
- $html .= '</label>';
2285
- $html .= '</div>';
2286
- //====Hotspot open in same tab end===//
2287
-
2288
- $html .= '<div class="hotspot-content" style="display:none;">';
2289
- $html .= '<label for="hotspot-content">'.__('On Click Content: ', 'wpvr').'</label>';
2290
- $html .= '<textarea name="hotspot-content"></textarea>';
2291
- $html .= '</div>';
2292
-
2293
- $html .= '<div class="hotspot-hover">';
2294
- $html .= '<label for="hotspot-hover">'.__('On Hover Content: ', 'wpvr').' </label>';
2295
- $html .= '<textarea name="hotspot-hover">'.$hotspot_hover.'</textarea>';
2296
- $html .= '</div>';
2297
-
2298
- $html .= '<div class="hotspot-scene" >';
2299
- $html .= '<label for="hotspot-scene">'.__('Select Target Scene from List: ', 'wpvr').'</label>';
2300
- $html .= '<select class="hotspotscene" name="hotspot-scene-list">';
2301
- $html .= '<option value="none" selected> None</option>';
2302
- $html .= '</select>';
2303
- $html .= '</div>';
2304
-
2305
- $html .= '<div class="hotspot-scene">';
2306
- $html .= '<label for="hotspot-scene">'.__('Target Scene ID: ', 'wpvr').'</label>';
2307
- $html .= '<input class="hotspotsceneinfodata" type="text" name="hotspot-scene" value="'.$hotspot_target_scene.'" disabled />';
2308
- $html .= '</div>';
2309
-
2310
- $html .= '</div>';
2311
- }
2312
- //=Hotspot type End=//
2313
- $html .= '<button data-repeater-delete type="button" title="Delete Hotspot" class="delete-hotspot"><i class="far fa-trash-alt"></i></button>';
2314
- $html .= '</div>';
2315
- } else {
2316
- $html .= '<div data-repeater-item class="single-hotspot rex-pano-tab clearfix" id="scene-'.$s.'-hotspot-'.$h.'">';
2317
- $html .= '<h6 class="title"><i class="fa fa-cog"></i> Hotspot Setting</h6>';
2318
-
2319
- $html .= '<div class="wrapper">';
2320
- $html .= '<div class="hotspot-setting">';
2321
- $html .= '<label for="hotspot-title">'.__('Hotspot ID : ', 'wpvr').'</label>';
2322
- $html .= '<input type="text" id="hotspot-title" name="hotspot-title" value="'.$hotspot_title.'" />';
2323
- $html .= '</div>';
2324
-
2325
- $html .= '<div class="hotspot-setting">';
2326
- $html .= '<label for="hotspot-pitch">'.__('Pitch: ', 'wpvr').'</label>';
2327
- $html .= '<input type="text" class="hotspot-pitch" name="hotspot-pitch" value="'.$hotspot_pitch.'" />';
2328
- $html .= '</div>';
2329
-
2330
- $html .= '<div class="hotspot-setting">';
2331
- $html .= '<label for="hotspot-yaw">'.__('Yaw: ', 'wpvr').'</label>';
2332
- $html .= '<input type="text" class="hotspot-yaw" name="hotspot-yaw" value="'.$hotspot_yaw.'" />';
2333
- $html .= '</div>';
2334
-
2335
- $html .= '<div class="hotspot-setting">';
2336
- $html .= '<label for="hotspot-customclass">'.__('Hotspot Custom icon Class: ', 'wpvr').'</label>';
2337
- $html .= '<input type="text" id="hotspot-customclass" name="hotspot-customclass" value="'.$hotspot_custom_class.'"/>';
2338
- $html .= '</div>';
2339
-
2340
- $html .= '</div>';
2341
-
2342
- //=Hotspot type=//
2343
- if ($hotspot_type == "info") {
2344
- $html .= '<div class="hotspot-type hotspot-setting">';
2345
- $html .= '<label for="hotspot-type">'.__('Hotspot-Type: ', 'wpvr').'</label>';
2346
- $html .= '<select name="hotspot-type">';
2347
- $html .= '<option value="info" selected> Info</option>';
2348
- $html .= '<option value="scene"> Scene</option>';
2349
- $html .= '</select>';
2350
-
2351
- $html .= '<div class="hotspot-url">';
2352
- $html .= '<label for="hotspot-url">'.__(' URL: ', 'wpvr').'</label>';
2353
- $html .= '<input type="url" name="hotspot-url" value="'.$hotspot_url.'" />';
2354
- $html .= '</div>';
2355
-
2356
- //====Hotspot open in same tab===//
2357
- $wpvr_url_open_checked = '';
2358
- $wpvr_url_open_data = 'off';
2359
-
2360
- if ($pano_hotspot['wpvr_url_open'][0] == 'on') {
2361
- $wpvr_url_open_checked = 'checked';
2362
- $wpvr_url_open_data = 'on';
2363
- }
2364
-
2365
- $html .= '<div class="single-settings s_tab">';
2366
- $html .= '<span>'.__('Open in same tab: ', 'wpvr').'</span>';
2367
- $html .= '<label class="wpvr-switcher-v2">';
2368
- $html .= '<input type="checkbox" class="wpvr_url_open" name="wpvr_url_open" value="'.$wpvr_url_open_data.'" '.$wpvr_url_open_checked.'>';
2369
- $html .= '<span class="switcher-box"></span>';
2370
- $html .= '</label>';
2371
- $html .= '</div>';
2372
- //====Hotspot open in same tab end===//
2373
-
2374
- $html .= '<div class="hotspot-content">';
2375
- $html .= '<label for="hotspot-content">'.__('On Click Content: ', 'wpvr').' </label>';
2376
- $html .= '<textarea name="hotspot-content">'.$hotspot_content.'</textarea>';
2377
- $html .= '</div>';
2378
-
2379
- $html .= '<div class="hotspot-hover">';
2380
- $html .= '<label for="hotspot-hover">'.__('On Hover Content: ', 'wpvr').' </label>';
2381
- $html .= '<textarea name="hotspot-hover">'.$hotspot_hover.'</textarea>';
2382
- $html .= '</div>';
2383
-
2384
- $html .= '<div class="hotspot-scene" style="display:none;" >';
2385
- $html .= '<label for="hotspot-scene">'.__('Select Target Scene from List: ', 'wpvr').'</label>';
2386
- $html .= '<select class="hotspotscene" name="hotspot-scene-list">';
2387
- $html .= '<option value="none" selected> None</option>';
2388
- $html .= '</select>';
2389
- $html .= '</div>';
2390
-
2391
- $html .= '<div class="hotspot-scene" style="display:none;" >';
2392
- $html .= '<label for="hotspot-scene">'.__('Target Scene ID: ', 'wpvr').' </label>';
2393
- $html .= '<input class="hotspotsceneinfodata" type="text" name="hotspot-scene" disabled />';
2394
- $html .= '</div>';
2395
-
2396
- $html .= '</div>';
2397
- } else {
2398
- $html .= '<div class="hotspot-type hotspot-setting">';
2399
- $html .= '<label for="hotspot-type">'.__('Hotspot-Type: ', 'wpvr').'</label>';
2400
- $html .= '<select class="trtr" name="hotspot-type">';
2401
- $html .= '<option value="info"> Info</option>';
2402
- $html .= '<option value="scene" selected> Scene</option>';
2403
- $html .= '</select>';
2404
-
2405
- $html .= '<div class="hotspot-url" style="display:none;">';
2406
- $html .= '<label for="hotspot-url">'.__('URL: ', 'wpvr').' </label>';
2407
- $html .= '<input type="url" name="hotspot-url" />';
2408
- $html .= '</div>';
2409
-
2410
- //====Hotspot open in same tab===//
2411
- $html .= '<div class="single-settings s_tab" style="display:none;">';
2412
- $html .= '<span>'.__('Open in same tab: ', 'wpvr').'</span>';
2413
- $html .= '<label class="wpvr-switcher-v2">';
2414
- $html .= '<input type="checkbox" class="wpvr_url_open" name="wpvr_url_open" value="off">';
2415
- $html .= '<span class="switcher-box"></span>';
2416
- $html .= '</label>';
2417
- $html .= '</div>';
2418
- //====Hotspot open in same tab end===//
2419
-
2420
- $html .= '<div class="hotspot-content" style="display:none;">';
2421
- $html .= '<label for="hotspot-content">'.__('On Click Content: ', 'wpvr').' </label>';
2422
- $html .= '<textarea name="hotspot-content"></textarea>';
2423
- $html .= '</div>';
2424
-
2425
- $html .= '<div class="hotspot-hover">';
2426
- $html .= '<label for="hotspot-hover">'.__('On Hover Content: ', 'wpvr').'</label>';
2427
- $html .= '<textarea name="hotspot-hover">'.$hotspot_hover.'</textarea>';
2428
- $html .= '</div>';
2429
-
2430
- $html .= '<div class="hotspot-scene" >';
2431
- $html .= '<label for="hotspot-scene">'.__('Select Target Scene from List: ', 'wpvr').'</label>';
2432
- $html .= '<select class="hotspotscene" name="hotspot-scene-list">';
2433
- $html .= '<option value="none" selected> None</option>';
2434
- $html .= '</select>';
2435
- $html .= '</div>';
2436
-
2437
- $html .= '<div class="hotspot-scene">';
2438
- $html .= '<label for="hotspot-scene">'.__('Target Scene ID: ', 'wpvr').' </label>';
2439
- $html .= '<input class="hotspotsceneinfodata" type="text" name="hotspot-scene" value="'.$hotspot_target_scene.'" disabled />';
2440
- $html .= '</div>';
2441
-
2442
- $html .= '</div>';
2443
- }
2444
- //=Hotspot type End=//
2445
- $html .= '<button data-repeater-delete type="button" title="Delete Hotspot" class="delete-hotspot"><i class="far fa-trash-alt"></i></button>';
2446
- $html .= '</div>';
2447
- }
2448
- $h++;
2449
- }
2450
- $html .= '</div>';
2451
- $html .= '</div>';
2452
- } else {
2453
- $html .= '<div class="hotspot-setup rex-pano-sub-tabs" data-limit="'.$data_limit.'">';
2454
-
2455
- $html .= '<nav class="rex-pano-tab-nav rex-pano-nav-menu hotspot-nav">';
2456
- $html .= '<ul>';
2457
- $html .= '<li class="active"><span data-index="1" data-href="#scene-'.$s.'-hotspot-1"><i class="far fa-dot-circle"></i></span></li>';
2458
- $html .= '<li class="add" data-repeater-create><span><i class="fa fa-plus-circle"></i> </span></li>';
2459
- $html .= '</ul>';
2460
- $html .= '</nav>';
2461
-
2462
- $html .= '<div data-repeater-list="hotspot-list" class="rex-pano-tab-content">';
2463
- $html .= '<div data-repeater-item class="single-hotspot rex-pano-tab active clearfix" id="scene-'.$s.'-hotspot-1">';
2464
-
2465
- $html .= '<h6 class="title"><i class="fa fa-cog"></i> Hotspot Setting </h6>';
2466
-
2467
- $html .= '<div class="wrapper">';
2468
- $html .= '<div class="hotspot-setting">';
2469
- $html .= '<label for="hotspot-title">'.__('Hotspot ID : ', 'wpvr').'</label>';
2470
- $html .= '<input type="text" id="hotspot-title" name="hotspot-title"/>';
2471
- $html .= '</div>';
2472
-
2473
- $html .= '<div class="hotspot-setting">';
2474
- $html .= '<label for="hotspot-pitch">'.__('Pitch: ', 'wpvr').'</label>';
2475
- $html .= '<input type="text" class="hotspot-pitch" name="hotspot-pitch"/>';
2476
- $html .= '</div>';
2477
-
2478
- $html .= '<div class="hotspot-setting">';
2479
- $html .= '<label for="hotspot-yaw">'.__('Yaw: ', 'wpvr').'</label>';
2480
- $html .= '<input type="text" class="hotspot-yaw" name="hotspot-yaw"/>';
2481
- $html .= '</div>';
2482
-
2483
- $html .= '<div class="hotspot-setting">';
2484
- $html .= '<label for="hotspot-customclass">'.__('Hotspot Custom Icon Class: ', 'wpvr').'</label>';
2485
- $html .= '<input type="text" id="hotspot-customclass" name="hotspot-customclass"/>';
2486
- $html .= '</div>';
2487
-
2488
- $html .= '</div>';
2489
-
2490
- $html .= '<div class="hotspot-type hotspot-setting">';
2491
- $html .= '<label for="hotspot-type">'.__('Hotspot-Type: ', 'wpvr').'</label>';
2492
- $html .= '<select name="hotspot-type">';
2493
- $html .= '<option value="info" selected> Info</option>';
2494
- $html .= '<option value="scene"> Scene</option>';
2495
- $html .= '</select>';
2496
-
2497
- $html .= '<div class="hotspot-url">';
2498
- $html .= '<label for="hotspot-url">'.__('URL: ', 'wpvr').'</label>';
2499
- $html .= '<input type="url" name="hotspot-url" value="" />';
2500
- $html .= '</div>';
2501
-
2502
- //====Hotspot open in same tab===//
2503
- $html .= '<div class="single-settings s_tab">';
2504
- $html .= '<span>'.__('Open in same tab: ', 'wpvr').'</span>';
2505
- $html .= '<label class="wpvr-switcher-v2">';
2506
- $html .= '<input type="checkbox" class="wpvr_url_open" name="wpvr_url_open" value="off">';
2507
- $html .= '<span class="switcher-box"></span>';
2508
- $html .= '</label>';
2509
- $html .= '</div>';
2510
- //====Hotspot open in same tab end===//
2511
-
2512
- $html .= '<div class="hotspot-content">';
2513
- $html .= '<label for="hotspot-content">'.__('On Click Content: ', 'wpvr').'</label>';
2514
- $html .= '<textarea name="hotspot-content"></textarea>';
2515
- $html .= '</div>';
2516
-
2517
- $html .= '<div class="hotspot-hover">';
2518
- $html .= '<label for="hotspot-hover">'.__('On Hover Content: ', 'wpvr').'</label>';
2519
- $html .= '<textarea name="hotspot-hover"></textarea>';
2520
- $html .= '</div>';
2521
-
2522
- $html .= '<div class="hotspot-scene" style="display:none;" >';
2523
- $html .= '<label for="hotspot-scene">'.__('Select Target Scene from List: ', 'wpvr').'</label>';
2524
- $html .= '<select class="hotspotscene" name="hotspot-scene-list">';
2525
- $html .= '<option value="none"> None</option>';
2526
- $html .= '</select>';
2527
- $html .= '</div>';
2528
- $html .= '<div class="hotspot-scene" style="display:none;" >';
2529
- $html .= '<label for="hotspot-scene">'.__('Target Scene ID: ', 'wpvr').'</label>';
2530
- $html .= '<input class="hotspotsceneinfodata" type="text" name="hotspot-scene" disabled/>';
2531
- $html .= '</div>';
2532
-
2533
- $html .= '</div>';
2534
- //=Hotspot type End=//
2535
- $html .= '<button data-repeater-delete title="Delete Hotspot" type="button" class="delete-hotspot"><i class="far fa-trash-alt"></i></button>';
2536
- $html .= '</div>';
2537
- $html .= '</div>';
2538
- $html .= '</div>';
2539
- }
2540
- $html .= '<button data-repeater-delete type="button" title="Delete Scene" class="delete-scene"><i class="far fa-trash-alt"></i></button>';
2541
- $html .= '</div>';
2542
- }
2543
- $s++;
2544
- }
2545
- $html .= '</div>';
2546
-
2547
- $html .= '</div>';
2548
- }
2549
-
2550
- $html .= '<div class="preview-btn-wrapper">';
2551
- $html .= '<div class="preview-btn-area clearfix">';
2552
-
2553
- $html .= '<button id="panolenspreview" class="panolenspreview">'.__('Preview', 'wpvr').'</button>';
2554
- $html .= '</div>';
2555
- $html .= '</div>';
2556
- $html .='</div>';
2557
- //---end scenes tab----
2558
-
2559
- //-----start pano eror alert------
2560
- $html .= '<div id="error_occured">';
2561
- $html .= '<div class="pano-error-wrapper">';
2562
- $html .= '<div class="pano-error-body">';
2563
- $html .= '<span class="cross pano-error-close-btn">
2564
- <svg width="22" height="22" viewBox="0 0 22 22" fill="none" xmlns="http://www.w3.org/2000/svg">
2565
- <path fill-rule="evenodd" clip-rule="evenodd" d="M18.7778 18.7786C14.4819 23.074 7.51728 23.0738 3.22169 18.778C-1.0739 14.4823 -1.0739 7.51769 3.22169 3.22196C7.51728 -1.07378 14.4819 -1.07402 18.7778 3.22143C20.8409 5.28436 22 8.08242 22 11C22 13.9176 20.8409 16.7156 18.7778 18.7786ZM14.9278 8.21857L12.1071 11L14.9278 13.7814C15.0865 13.93 15.1765 14.1376 15.1765 14.355C15.1765 14.5724 15.0865 14.78 14.9278 14.9286C14.7795 15.0756 14.5788 15.1576 14.3699 15.1564C14.1638 15.1556 13.9663 15.0737 13.8199 14.9286L10.9992 12.1079L8.21778 14.9286C8.07143 15.0737 7.8739 15.1556 7.66778 15.1564C7.45893 15.1576 7.2582 15.0756 7.10992 14.9286C6.80528 14.6221 6.80528 14.1272 7.10992 13.8207L9.89135 11L7.10992 8.21857C6.84295 7.90683 6.8609 7.44213 7.15112 7.15191C7.44134 6.8617 7.90604 6.84375 8.21778 7.11071L10.9992 9.89214L13.7806 7.11071C13.9785 6.9058 14.2707 6.82202 14.5471 6.89095C14.8236 6.95988 15.0422 7.17104 15.1207 7.44488C15.1992 7.71872 15.1257 8.01365 14.9278 8.21857ZM4.34363 4.34471C8.02058 0.663508 13.9845 0.656605 17.6699 4.32929C19.4452 6.09842 20.4431 8.50157 20.4431 11.0079C20.4431 13.5141 19.4452 15.9173 17.6699 17.6864C13.9845 21.3591 8.02058 21.3522 4.34363 17.671C0.666691 13.9898 0.666691 8.02591 4.34363 4.34471Z" fill="#A8A7BE"/>
2566
- </svg>
2567
- </span>';
2568
-
2569
- $html .= '<span class="icon pano-warning">
2570
- <svg width="36" height="30" viewBox="0 0 36 30" fill="none" xmlns="http://www.w3.org/2000/svg">
2571
- <path fill-rule="evenodd" clip-rule="evenodd" d="M21.4802 1.86951L35.4553 24.3914C36.1816 25.5621 36.1816 26.9598 35.4553 28.1305C34.7289 29.3011 33.4278 30 31.9751 30H4.025C2.5722 30 1.2712 29.3011 0.5448 28.1305C-0.1816 26.9598 -0.1816 25.5621 0.5448 24.3914L14.5198 1.86951C15.2462 0.698907 16.5473 0 18 0C19.4527 0 20.7538 0.698841 21.4802 1.86951ZM31.9751 28.0358C32.6647 28.0358 33.2822 27.7041 33.6271 27.1484C33.9719 26.5927 33.9719 25.9291 33.6271 25.3734L19.6521 2.8515C19.3072 2.2958 18.6896 1.96404 18 1.96404C17.3104 1.96404 16.6928 2.2958 16.3479 2.8515L2.37293 25.3734C2.02812 25.9291 2.02812 26.5927 2.37293 27.1484C2.71774 27.7041 3.33537 28.0358 4.025 28.0358H31.9751Z" fill="#FAAC14"/>
2572
- <path d="M18 22C17.4486 22 17 22.4486 17 23C17 23.5514 17.4486 24 18 24C18.5514 24 19 23.5514 19 23C19 22.4486 18.5514 22 18 22Z" fill="#FAAC14"/>
2573
- <rect x="17" y="11" width="2" height="9" fill="#FAAC14"/>
2574
- </svg>
2575
- </span>';
2576
-
2577
- $html .= '<div class="pano-error-message"></div>';
2578
-
2579
- $html .= '</div>';
2580
- //---end error body---
2581
-
2582
- //---error footer---
2583
- $html .= '<div class="pano-error-footer">';
2584
- $html .= '<ul>';
2585
- $html .= '<li class="pano-error-close">';
2586
- $html .= '<button type="button" class="pano-error-close-btn">Ok</button>';
2587
- $html .= '</li>';
2588
- $html .= '</ul>';
2589
- $html .= '</div>';
2590
- $html .= '</div>';
2591
- $html .= '</div>';
2592
- //-----end pano eror alert------
2593
-
2594
- //----start video tab content---------
2595
- $html .='<div class="rex-pano-tab video" id="video">';
2596
- $html .= '<h6 class="title"> '.__('Video Settings : ', 'wpvr').'</h6>';
2597
- //==Video Setup==//
2598
- if (isset($postdata['vidid'])) {
2599
- $vidautoplay = $postdata['vidautoplay'];
2600
- $vidautoplay_on = '';
2601
- $vidautoplay_off = '';
2602
- if (!empty($vidautoplay)) {
2603
- $vidautoplay_on = 'checked';
2604
- } else {
2605
- $vidautoplay_off = 'checked';
2606
- }
2607
-
2608
- $vidcontrol = $postdata['vidcontrol'];
2609
- $vidcontrol_on = '';
2610
- $vidcontrol_off = '';
2611
- if (!empty($vidcontrol)) {
2612
- $vidcontrol_on = 'checked';
2613
- } else {
2614
- $vidcontrol_off = 'checked';
2615
- }
2616
- $html .= '<div class="single-settings videosetup">';
2617
- $html .= '<span>'.__('Enable Video:', 'wpvr').'</span>';
2618
- $html .= '<ul>';
2619
- $html .= '<li class="radio-btn">';
2620
- $html .= '<input class="styled-radio video_status video_off" id="styled-radio" type="radio" name="panovideo" value="off" >';
2621
- $html .= '<label for="styled-radio">Off</label>';
2622
- $html .= '</li>';
2623
-
2624
- $html .= '<li class="radio-btn">';
2625
- $html .= '<input class="styled-radio video_status video_on" id="styled-radio-0" type="radio" name="panovideo" value="on" checked>';
2626
- $html .= '<label for="styled-radio-0">On</label>';
2627
- $html .= '</li>';
2628
- $html .= '</ul>';
2629
- $html .= '</div>';
2630
-
2631
-
2632
- $html .= '<div class="video-setting" style="display:none;">';
2633
- $html .= '<div class="single-settings">';
2634
- $html .= '<span>'.__('Upload or Add Link: ', 'wpvr').'</span>';
2635
- $html .= '<div class="form-group">';
2636
- $html .= '<input type="text" name="video-attachment-url" placeholder="Paste Youtube or Vimeo link or upload" class="video-attachment-url" value="'.$postdata['vidurl'].'">';
2637
- $html .= '<input type="button" class="video-upload" data-info="" value="Upload" />';
2638
- $html .= '</div>';
2639
- $html .= '</div>';
2640
- $html .= '<button id="videopreview">Preview</button>';
2641
- $html .= '</div>';
2642
- } else {
2643
- $html .= '<div class="single-settings videosetup">';
2644
- $html .= '<span>'.__('Enable Video: ', 'wpvr').'</span>';
2645
- $html .= '<ul>';
2646
- $html .= '<li class="radio-btn">';
2647
- $html .= '<input class="styled-radio video_off" id="styled-radio" type="radio" name="panovideo" value="off" checked >';
2648
- $html .= '<label for="styled-radio">Off</label>';
2649
- $html .= '</li>';
2650
-
2651
- $html .= '<li class="radio-btn">';
2652
- $html .= '<input class="styled-radio video_on" id="styled-radio-0" type="radio" name="panovideo" value="on" >';
2653
- $html .= '<label for="styled-radio-0">On</label>';
2654
- $html .= '</li>';
2655
- $html .= '</ul>';
2656
- $html .= '</div>';
2657
-
2658
- //==Video setup end==//
2659
-
2660
- //==Video Setting==/
2661
- $html .= '<div class="video-setting" style="display:none;">';
2662
- $html .= '<div class="single-settings">';
2663
- $html .= '<span>'.__('Upload or Add Link: ', 'wpvr').'</span>';
2664
- $html .= '<div class="form-group">';
2665
- $html .= '<input type="text" placeholder="Paste Youtube or Vimeo link or upload" name="video-attachment-url" class="video-attachment-url" value="">';
2666
- $html .= '<input type="button" class="video-upload" data-info="" value="Upload"/>';
2667
- $html .= '</div>';
2668
- $html .= '</div>';
2669
- $html .= '<button id="videopreview">Preview</button>';
2670
- $html .= '</div>';
2671
- }
2672
-
2673
- $html .= '<div class="wpvr-use-shortcode">';
2674
- $post = get_post();
2675
- $id = $post->ID;
2676
- $slug = $post->post_name;
2677
- $postdata = get_post_meta($post->ID, 'panodata', true);
2678
-
2679
- $html .= '<h4 class="area-title">'.__('Using this Tour', 'wpvr').'</h4>';
2680
-
2681
- $html .= '<div class="shortcode-wrapper">';
2682
- $html .= '<div class="single-shortcode classic">';
2683
- $html .= '<span class="shortcode-title">'.__('For Classic Editor:', 'wpvr').'</span>';
2684
-
2685
- $html .= '<div class="field-wapper">';
2686
- $html .= '<span>'.__('To use this WP VR tour in your posts or pages use the following shortcode ', 'wpvr').'</span>';
2687
-
2688
- $html .= '<div class="shortcode-field">';
2689
- $html .= '<p class="copycode" id="copy-shortcode-video">[wpvr id="'.$id.'"]</p>';
2690
- $html .= '<span id="wpvr-copy-shortcode-video" class="wpvr-copy-shortcode">';
2691
- $html .= '<img src="'.WPVR_PLUGIN_DIR_URL . 'admin/icon/copy.png'.'" alt="icon" />';
2692
- $html .= '</span>';
2693
- $html .= '</div>';
2694
-
2695
- $html .= '<span id="wpvr-copied-notice-video" class="wpvr-copied-notice"></span>';
2696
-
2697
- $html .= '</div>';
2698
- $html .= '</div>';
2699
- $html .= '</div>';
2700
-
2701
- $html .= '<script>';
2702
- $html .= '
2703
-
2704
- document.getElementById("wpvr-copy-shortcode-video").addEventListener("click", function() {
2705
- copyToClipboardVideo(document.getElementById("copy-shortcode-video"));
2706
- });
2707
-
2708
- function copyToClipboardVideo(elem) {
2709
- // create hidden text element, if it doesn\'t already exist
2710
- var targetId = "_hiddenCopyText_";
2711
- var isInput = elem.tagName === "INPUT" || elem.tagName === "TEXTAREA";
2712
- var origSelectionStart, origSelectionEnd;
2713
- if (isInput) {
2714
- // can just use the original source element for the selection and copy
2715
- target = elem;
2716
- origSelectionStart = elem.selectionStart;
2717
- origSelectionEnd = elem.selectionEnd;
2718
- } else {
2719
- // must use a temporary form element for the selection and copy
2720
- target = document.getElementById(targetId);
2721
- if (!target) {
2722
- var target = document.createElement("textarea");
2723
- target.style.position = "absolute";
2724
- target.style.left = "-9999px";
2725
- target.style.top = "0";
2726
- target.id = targetId;
2727
- document.body.appendChild(target);
2728
- }
2729
- target.textContent = elem.textContent;
2730
- }
2731
- // select the content
2732
- var currentFocus = document.activeElement;
2733
- target.focus();
2734
- target.setSelectionRange(0, target.value.length);
2735
-
2736
- // copy the selection
2737
- var succeed;
2738
- try {
2739
- succeed = document.execCommand("copy");
2740
- document.getElementById("wpvr-copied-notice-video").innerHTML = "Copied!";
2741
- } catch(e) {
2742
- succeed = false;
2743
- }
2744
- // restore original focus
2745
- if (currentFocus && typeof currentFocus.focus === "function") {
2746
- currentFocus.focus();
2747
- }
2748
-
2749
- setTimeout(function(){
2750
- document.getElementById("wpvr-copied-notice-video").innerHTML = "";
2751
- }, 2000 );
2752
-
2753
- if (isInput) {
2754
- // restore prior selection
2755
- elem.setSelectionRange(origSelectionStart, origSelectionEnd);
2756
- } else {
2757
- // clear temporary content
2758
- target.textContent = "";
2759
- }
2760
- document.getElementById("wpvr-copy-shortcode-video").scrollIntoView()
2761
- return succeed;
2762
- }
2763
-
2764
- ';
2765
-
2766
- $html .= '</script>';
2767
- $html .= '</div>';
2768
- //=end shortcode area=
2769
- //==Video Setting End==//
2770
-
2771
- $html .='</div>';
2772
- //---end video tab----
2773
- $html .='</div>';
2774
- //---end rex-pano-tab-content----
2775
- $html .='</div>';
2776
- //---end rex-pano-tabs---
2777
- $html .= '</div>';
2778
- $html .= '<div class="wpvr-loading" style="display:none;">Loading&#8230;</div>';
2779
- echo $html;
2780
- }
2781
-
2782
- /**
2783
- * Rollback execution
2784
- */
2785
- public function trigger_rollback()
2786
- {
2787
- if (isset($_GET['wpvr_version'])) {
2788
- $version = $_GET['wpvr_version'];
2789
- $plugin_slug = 'wpvr';
2790
- $rollback = new WPVR_Rollback(
2791
- [
2792
- 'version' => $version,
2793
- 'plugin_name' => 'wpvr',
2794
- 'plugin_slug' => $plugin_slug,
2795
- 'package_url' => sprintf('https://downloads.wordpress.org/plugin/%s.%s.zip', $plugin_slug, $version),
2796
- ]
2797
- );
2798
-
2799
- $rollback->run();
2800
- }
2801
- }
2802
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
trunk/admin/class-wpvr-ajax.php DELETED
@@ -1,1720 +0,0 @@
1
- <?php
2
- if (!defined('ABSPATH')) exit; // Exit if accessed directly
3
- /**
4
- * The admin-specific Ajax files.
5
- *
6
- * @link http://rextheme.com/
7
- * @since 1.0.0
8
- *
9
- * @package Wpvr
10
- * @subpackage Wpvr/admin
11
- */
12
-
13
- class Wpvr_Ajax
14
- {
15
-
16
- /**
17
- * Preview show ajax function
18
- */
19
- function wpvr_show_preview()
20
- {
21
- $panoid = '';
22
- $postid = sanitize_text_field($_POST['postid']);
23
- $post_type = get_post_type($postid);
24
-
25
- $panoid = 'pano' . $postid;
26
-
27
- $control = sanitize_text_field($_POST['control']);
28
- if ($control == 'on') {
29
- $control = true;
30
- } else {
31
- $control = false;
32
- }
33
-
34
- $compass = sanitize_text_field($_POST['compass']);
35
- if ($compass == 'on') {
36
- $compass = true;
37
- } else {
38
- $compass = false;
39
- }
40
-
41
- $mouseZoom = sanitize_text_field($_POST['mouseZoom']);
42
- if ($mouseZoom == 'off') {
43
- $mouseZoom = false;
44
- } else {
45
- $mouseZoom = true;
46
- }
47
-
48
- $draggable = sanitize_text_field($_POST['draggable']);
49
- if ($draggable == 'off') {
50
- $draggable = false;
51
- } else {
52
- $draggable = true;
53
- }
54
-
55
- $diskeyboard = sanitize_text_field($_POST['diskeyboard']);
56
- if ($diskeyboard == 'on') {
57
- $diskeyboard = true;
58
- } else {
59
- $diskeyboard = false;
60
- }
61
-
62
- $keyboardzoom = sanitize_text_field($_POST['keyboardzoom']);
63
- if ($keyboardzoom == 'off') {
64
- $keyboardzoom = false;
65
- } else {
66
- $keyboardzoom = true;
67
- }
68
-
69
- $autoload = sanitize_text_field($_POST['autoload']);
70
- if ($autoload == 'on') {
71
- $autoload = true;
72
- } else {
73
- $autoload = false;
74
- }
75
-
76
- $default_scene = '';
77
- // $default_scene = sanitize_text_field($_POST['defaultscene']);
78
- $preview = '';
79
- $preview = esc_url($_POST['preview']);
80
-
81
- $rotation = '';
82
- $rotation = sanitize_text_field($_POST['rotation']);
83
-
84
- $autorotation = '';
85
- $autorotation = sanitize_text_field($_POST['autorotation']);
86
- $autorotationinactivedelay = '';
87
- $autorotationinactivedelay = sanitize_text_field($_POST['autorotationinactivedelay']);
88
- $autorotationstopdelay = '';
89
- $autorotationstopdelay = sanitize_text_field($_POST['autorotationstopdelay']);
90
-
91
- $default_global_zoom = '';
92
- $max_global_zoom = '';
93
- $min_global_zoom = '';
94
- if (isset($_POST['gzoom']) == 'on') {
95
- $default_global_zoom = $_POST['dzoom'];
96
- $max_global_zoom = $_POST['maxzoom'];
97
- $min_global_zoom = $_POST['minzoom'];
98
- }
99
- if (!empty($autorotationinactivedelay) && !empty($autorotationstopdelay)) {
100
- wp_send_json_error('<span class="pano-error-title">Dual Action Error for Auto-Rotation</span><p> You can not use both Resume Auto-rotation & Stop Auto-rotation on the same tour. You can use only one of them.</p>');
101
-
102
- die();
103
- }
104
-
105
- $scene_fade_duration = '';
106
- $scene_fade_duration = sanitize_text_field($_POST['scenefadeduration']);
107
-
108
- $panodata = $_POST['panodata'];
109
- $panolist = stripslashes($panodata);
110
- $panodata = (array)json_decode($panolist);
111
- $panolist = array();
112
- if (is_array($panodata["scene-list"])) {
113
- foreach ($panodata["scene-list"] as $scenes_data) {
114
- $temp_array = array();
115
- $temp_array = (array)$scenes_data;
116
- if ($temp_array['hotspot-list']) {
117
- $_hotspot_array = array();
118
- foreach ($temp_array['hotspot-list'] as $temp_hotspot) {
119
- $temp_hotspot = (array)$temp_hotspot;
120
- $_hotspot_array[] = $temp_hotspot;
121
- }
122
- }
123
- $temp_array['hotspot-list'] = $_hotspot_array;
124
- $panolist['scene-list'][] = $temp_array;
125
- }
126
- }
127
- $panodata = $panolist;
128
-
129
- //===Error Control and Validation===//
130
-
131
- if ($panodata["scene-list"] != "") {
132
- foreach ($panodata["scene-list"] as $scenes_val) {
133
-
134
- $scene_id_validate = $scenes_val["scene-id"];
135
-
136
-
137
- if (!empty($scene_id_validate)) {
138
- $scene_id_validated = preg_replace('/[^0-9a-zA-Z_]/', "", $scene_id_validate);
139
- if ($scene_id_validated != $scene_id_validate) {
140
- wp_send_json_error('<span class="pano-error-title">Invalid Scene ID</span> <p>Scene ID can\'t contain spaces and special characters. <br/>Please assign a unique Scene ID with letters and numbers where Scene ID is : ' . $scene_id_validate . '</p>');
141
- die();
142
- }
143
-
144
- if ($scenes_val['scene-type'] == 'cubemap') {
145
- if (empty($scenes_val["scene-attachment-url-face0"])) {
146
- wp_send_json_error('<span class="pano-error-title">Missing Cubemap Scene Face 0</span><p> Please upload a 360 Degree image where Scene ID is: ' . $scene_id_validate . '</p>');
147
- die();
148
- }
149
-
150
- if (empty($scenes_val["scene-attachment-url-face1"])) {
151
- wp_send_json_error('<span class="pano-error-title">Missing Cubemap Scene Face 1</span><p> Please upload a 360 Degree image where Scene ID is: ' . $scene_id_validate . '</p>');
152
- die();
153
- }
154
-
155
- if (empty($scenes_val["scene-attachment-url-face2"])) {
156
- wp_send_json_error('<span class="pano-error-title">Missing Cubemap Scene Face 2</span><p> Please upload a 360 Degree image where Scene ID is: ' . $scene_id_validate . '</p>');
157
- die();
158
- }
159
-
160
- if (empty($scenes_val["scene-attachment-url-face3"])) {
161
- wp_send_json_error('<span class="pano-error-title">Missing Cubemap Scene Face 3</span><p> Please upload a 360 Degree image where Scene ID is: ' . $scene_id_validate . '</p>');
162
- die();
163
- }
164
-
165
- if (empty($scenes_val["scene-attachment-url-face4"])) {
166
- wp_send_json_error('<span class="pano-error-title">Missing Cubemap Scene Face 4</span><p> Please upload a 360 Degree image where Scene ID is: ' . $scene_id_validate . '</p>');
167
- die();
168
- }
169
-
170
- if (empty($scenes_val["scene-attachment-url-face5"])) {
171
- wp_send_json_error('<span class="pano-error-title">Missing Cubemap Scene Face 5</span><p> Please upload a 360 Degree image where Scene ID is: ' . $scene_id_validate . '</p>');
172
- die();
173
- }
174
- } else {
175
- if (empty($scenes_val["scene-attachment-url"])) {
176
- wp_send_json_error('<span class="pano-error-title">Missing Scene Image</span><p> Please upload a 360 Degree image where Scene ID is: ' . $scene_id_validate . '</p>');
177
- die();
178
- }
179
- }
180
-
181
- if (!empty($scenes_val["scene-pitch"])) {
182
- $validate_scene_pitch = $scenes_val["scene-pitch"];
183
- $validated_scene_pitch = preg_replace('/[^0-9.-]/', '', $validate_scene_pitch);
184
- if ($validated_scene_pitch != $validate_scene_pitch) {
185
- wp_send_json_error('<span class="pano-error-title">Invalid Pitch Value</span><p> The Pitch Value can only contain float numbers where Scene ID: ' . $scene_id_validate . '</p>');
186
- die();
187
- }
188
- }
189
-
190
- if (!empty($scenes_val["scene-yaw"])) {
191
- $validate_scene_yaw = $scenes_val["scene-yaw"];
192
- $validated_scene_yaw = preg_replace('/[^0-9.-]/', '', $validate_scene_yaw);
193
- if ($validated_scene_yaw != $validate_scene_yaw) {
194
- wp_send_json_error('<span class="pano-error-title">Invalid Yaw Value</span><p> The Yaw Value can only contain float numbers where Scene ID: ' . $scene_id_validate . '</p>');
195
- die();
196
- }
197
- }
198
-
199
- if (!empty($scenes_val["scene-zoom"])) {
200
- $validate_default_zoom = $scenes_val["scene-zoom"];
201
- $validated_default_zoom = preg_replace('/[^0-9-]/', '', $validate_default_zoom);
202
- if ($validated_default_zoom != $validate_default_zoom) {
203
- wp_send_json_error('<span class="pano-error-title">Invalid Default Zoom Value</span><p> You can only set Default Zoom in Degree values from 50 to 120 where Scene ID: ' . $scene_id_validate . '</p>');
204
- die();
205
- }
206
- $default_zoom_value = (int)$scenes_val["scene-zoom"];
207
- if ($default_zoom_value > 120 || $default_zoom_value < 50) {
208
- wp_send_json_error('<span class="pano-error-title">Invalid Default Zoom Value</span><p> You can only set Default Zoom in Degree values from 50 to 120 where Scene ID: ' . $scene_id_validate . '</p>');
209
-
210
- die();
211
- }
212
- }
213
-
214
- if (!empty($scenes_val["scene-maxzoom"])) {
215
- $validate_max_zoom = $scenes_val["scene-maxzoom"];
216
- $validated_max_zoom = preg_replace('/[^0-9-]/', '', $validate_max_zoom);
217
- if ($validated_max_zoom != $validate_max_zoom) {
218
- wp_send_json_error('<span class="pano-error-title">Invalid Max-zoom Value:</span><p> You can only set Max-zoom in degree values (50-120) where Scene ID: ' . $scene_id_validate . '</p>');
219
-
220
- die();
221
- }
222
- $max_zoom_value = (int)$scenes_val["scene-maxzoom"];
223
- if ($max_zoom_value > 120) {
224
- wp_send_json_error('<span class="pano-error-title">Max-zoom Value Limit Exceeded</span><p> You can set the Max-zoom Value up to 120 degrees.</p>');
225
- die();
226
- }
227
-
228
- if ($max_zoom_value < 50) {
229
- wp_send_json_error('<span class="pano-error-title">Max-zoom Value Limit Exceeded</span><p> You can not set the Max-zoom Value lower than 50 degrees.</p>');
230
- die();
231
- }
232
- }
233
-
234
- if (!empty($scenes_val["scene-minzoom"])) {
235
- $validate_min_zoom = $scenes_val["scene-minzoom"];
236
- $validated_min_zoom = preg_replace('/[^0-9-]/', '', $validate_min_zoom);
237
- if ($validated_min_zoom != $validate_min_zoom) {
238
- wp_send_json_error('<span class="pano-error-title">Invalid Min-zoom Value</span><p> You can only set Min-zoom in degree values (50-120) where Scene ID: ' . $scene_id_validate . '</p>');
239
- die();
240
- }
241
- $min_zoom_value = (int)$scenes_val["scene-minzoom"];
242
- if ($min_zoom_value < 50) {
243
- wp_send_json_error('<span class="pano-error-title">Low Min-Zoom Value</span><p> The Min-zoom value must be more than 50 in degree values where Scene ID: ' . $scene_id_validate . '</p>');
244
- die();
245
- }
246
-
247
- if ($min_zoom_value > 120) {
248
- wp_send_json_error('<span class="pano-error-title">High Min-Zoom Value</span><p> The Min-zoom value must be less than 120 in degree values where Scene ID: ' . $scene_id_validate . '</p>');
249
- die();
250
- }
251
- }
252
-
253
- if ($scenes_val["hotspot-list"] != "") {
254
- foreach ($scenes_val["hotspot-list"] as $hotspot_val) {
255
-
256
- $hotspot_title_validate = $hotspot_val["hotspot-title"];
257
-
258
-
259
- if (!empty($hotspot_title_validate)) {
260
- $hotspot_title_validated = preg_replace('/[^0-9a-zA-Z_]/', "", $hotspot_title_validate);
261
- if ($hotspot_title_validated != $hotspot_title_validate) {
262
- wp_send_json_error('<span class="pano-error-title">Invalid Hotspot ID</span> <p>Hotspot ID can\'t contain spaces and special characters. <br/>Please assign a unique Hotspot ID with letters and numbers where Scene id: ' . $scene_id_validate . ' Hotspot ID is: ' . $hotspot_title_validate . '</p>');
263
- die();
264
- }
265
-
266
- $hotspot_pitch_validate = $hotspot_val["hotspot-pitch"];
267
- if (!empty($hotspot_pitch_validate)) {
268
- $hotspot_pitch_validated = preg_replace('/[^0-9.-]/', '', $hotspot_pitch_validate);
269
- if ($hotspot_pitch_validated != $hotspot_pitch_validate) {
270
- wp_send_json_error('<span class="pano-error-title">Invalid Pitch Value</span> <p>The Pitch Value can only contain float numbers where Scene ID: ' . $scene_id_validate . ' Hotspot ID is: ' . $hotspot_title_validate . '</p>');
271
-
272
- die();
273
- }
274
- }
275
-
276
- $hotspot_yaw_validate = $hotspot_val["hotspot-yaw"];
277
- if (!empty($hotspot_yaw_validate)) {
278
- $hotspot_yaw_validated = preg_replace('/[^0-9.-]/', '', $hotspot_yaw_validate);
279
- if ($hotspot_yaw_validated != $hotspot_yaw_validate) {
280
- wp_send_json_error('<span class="pano-error-title">Invalid Yaw Value</span> <p>The Yaw Value can only contain float numbers where Scene ID: ' . $scene_id_validate . ' Hotspot ID is: ' . $hotspot_title_validate . '</p>');
281
-
282
- die();
283
- }
284
- }
285
-
286
- if (is_plugin_active('wpvr-pro/wpvr-pro.php')) {
287
- $status = get_option('wpvr_edd_license_status');
288
- if ($status !== false && $status == 'valid') {
289
- if ($hotspot_val["hotspot-customclass-pro"] != 'none' && !empty($hotspot_val["hotspot-customclass"])) {
290
- wp_send_json_error('<span class="pano-error-title">Warning!</span> <p>You can not use both Custom Icon and Custom Icon Class for a hotspot where scene id: ' . $scene_id_validate . ' and hotspot id : ' . $hotspot_title_validate . '</p>');
291
- die();
292
- }
293
- }
294
- }
295
- $hotspot_type_validate = $hotspot_val["hotspot-type"];
296
- $hotspot_url_validate = $hotspot_val["hotspot-url"];
297
- if (!empty($hotspot_url_validate)) {
298
- $hotspot_url_validated = esc_url($hotspot_url_validate);
299
- if ($hotspot_url_validated != $hotspot_url_validate) {
300
- wp_send_json_error('<p><span>Warning:</span> Hotspot Url is invalid where scene id: ' . $scene_id_validate . ' and hotspot id : ' . $hotspot_title_validate . '</p>');
301
- die();
302
- }
303
- }
304
- $hotspot_content_validate = $hotspot_val["hotspot-content"];
305
-
306
- $hotspot_scene_validate = $hotspot_val["hotspot-scene"];
307
-
308
- if ($hotspot_type_validate == "info") {
309
- if (!empty($hotspot_scene_validate)) {
310
- wp_send_json_error('<p><span>Warning:</span> Don\'t add Target Scene ID on info type hotspot where scene id: ' . $scene_id_validate . ' and hotspot id : ' . $hotspot_title_validate . '</p>');
311
- die();
312
- }
313
- if (!empty($hotspot_url_validate) && !empty($hotspot_content_validate)) {
314
- wp_send_json_error('<span class="pano-error-title">Warning!</span> <p>You can not set both On Click Content and URL on a hotspot where scene id: ' . $scene_id_validate . ' and hotspot id : ' . $hotspot_title_validate . '</p>');
315
- die();
316
- }
317
- }
318
-
319
- if ($hotspot_type_validate == "scene") {
320
- if (empty($hotspot_scene_validate)) {
321
- wp_send_json_error('<span class="pano-error-title">Target Scene Missing</span> <p>Assign a Target Scene to the Scene-type Hotspot where Scene ID: ' . $scene_id_validate . ' and Hotspot ID : ' . $hotspot_title_validate . '</p>');
322
- die();
323
- }
324
- if (!empty($hotspot_url_validate) || !empty($hotspot_content_validate)) {
325
- wp_send_json_error('<p><span>Warning:</span> Don\'t add Url or On click content on scene type hotspot where scene id: ' . $scene_id_validate . ' and hotspot id : ' . $hotspot_title_validate . '</p>');
326
- die();
327
- }
328
- }
329
- }
330
- }
331
- }
332
- }
333
- }
334
- }
335
- //===Error Control and Validation===//
336
- foreach ($panodata["scene-list"] as $panoscenes) {
337
- if (empty($panoscenes['scene-id']) && !empty($panoscenes['scene-attachment-url'])) {
338
- wp_send_json_error('<span class="pano-error-title">Missing Scene ID</span> <p>Please assign a unique Scene ID to your uploaded scene.</p>');
339
- die();
340
- }
341
- }
342
-
343
- $allsceneids = array();
344
-
345
- foreach ($panodata["scene-list"] as $panoscenes) {
346
- if (!empty($panoscenes['scene-id'])) {
347
- array_push($allsceneids, $panoscenes['scene-id']);
348
- }
349
- }
350
-
351
- foreach ($panodata["scene-list"] as $panoscenes) {
352
-
353
- if ($panoscenes['dscene'] == 'on') {
354
- $default_scene = $panoscenes['scene-id'];
355
- }
356
- }
357
- if (empty($default_scene)) {
358
- if ($allsceneids) {
359
- $default_scene = $allsceneids[0];
360
- } else {
361
- wp_send_json_error('<span class="pano-error-title">Missing Image & Scene ID</span> <p>Please Upload An Image and Set A Scene ID To See The Preview</p>');
362
- die();
363
- }
364
- }
365
-
366
- $allsceneids_count = array_count_values($allsceneids);
367
- foreach ($allsceneids_count as $key => $value) {
368
- if ($value > 1) {
369
- wp_send_json_error('<span class="pano-error-title">Duplicate Scene ID</span> <p>You\'ve assigned a duplicate Scene ID. <br/>Please assign unique Scene IDs to each scene. </p>');
370
- die();
371
- }
372
- }
373
-
374
- foreach ($panodata["scene-list"] as $panoscenes) {
375
- if (!empty($panoscenes['scene-id'])) {
376
- $allhotspot = array();
377
- foreach ($panoscenes["hotspot-list"] as $hotspot_val) {
378
-
379
- if (!empty($hotspot_val["hotspot-title"])) {
380
- array_push($allhotspot, $hotspot_val["hotspot-title"]);
381
- }
382
- }
383
- $allhotspotcount = array_count_values($allhotspot);
384
- foreach ($allhotspotcount as $key => $value) {
385
- if ($value > 1) {
386
- wp_send_json_error('<span class="pano-error-title">Duplicate Hotspot ID</span> <p>You\'ve assigned a duplicate Hotspot ID. <br/>Please assign unique Hotspot IDs to each Hotspot.</p>');
387
- die();
388
- }
389
- }
390
- }
391
- }
392
-
393
- $default_data = array();
394
- if ($_POST['gzoom'] == 'on') {
395
- $default_data = array("firstScene" => $default_scene, "sceneFadeDuration" => $scene_fade_duration, "hfov" => $default_global_zoom, "maxHfov" => $max_global_zoom, "minHfov" => $min_global_zoom);
396
- } else {
397
- $default_data = array("firstScene" => $default_scene, "sceneFadeDuration" => $scene_fade_duration);
398
- }
399
- $scene_data = array();
400
- foreach ($panodata["scene-list"] as $panoscenes) {
401
- if (!empty($panoscenes['scene-id'])) {
402
- $scene_ititle = '';
403
- $scene_ititle = sanitize_text_field($panoscenes["scene-ititle"]);
404
- $scene_author = '';
405
- $scene_author = sanitize_text_field($panoscenes["scene-author"]);
406
-
407
- $scene_vaov = 180;
408
- $scene_vaov = (float)$panoscenes["scene-vaov"];
409
-
410
- $scene_haov = 360;
411
- $scene_haov = (float)$panoscenes["scene-haov"];
412
-
413
- $scene_vertical_offset = 0;
414
- $scene_vertical_offset = (float)$panoscenes["scene-vertical-offset"];
415
-
416
- $default_scene_pitch = null;
417
- $default_scene_pitch = (float)$panoscenes["scene-pitch"];
418
-
419
- $default_scene_yaw = null;
420
- $default_scene_yaw = (float)$panoscenes["scene-yaw"];
421
-
422
- $scene_max_pitch = '';
423
- $scene_max_pitch = (float)$panoscenes["scene-maxpitch"];
424
-
425
- $scene_min_pitch = '';
426
- $scene_min_pitch = (float)$panoscenes["scene-minpitch"];
427
-
428
- $scene_max_yaw = '';
429
- $scene_max_yaw = (float)$panoscenes["scene-maxyaw"];
430
-
431
- $scene_min_yaw = '';
432
- $scene_min_yaw = (float)$panoscenes["scene-minyaw"];
433
-
434
- $default_zoom = 100;
435
- $default_zoom = $panoscenes["scene-zoom"];
436
- if (!empty($default_zoom)) {
437
- $default_zoom = (int)$panoscenes["scene-zoom"];
438
- } else {
439
- $default_zoom = 100;
440
- }
441
-
442
- $max_zoom = 120;
443
- $max_zoom = $panoscenes["scene-maxzoom"];
444
- if (!empty($max_zoom)) {
445
- $max_zoom = (int)$panoscenes["scene-maxzoom"];
446
- } else {
447
- $max_zoom = 120;
448
- }
449
-
450
- $min_zoom = 50;
451
- $min_zoom = $panoscenes["scene-minzoom"];
452
- if (!empty($min_zoom)) {
453
- $min_zoom = (int)$panoscenes["scene-minzoom"];
454
- } else {
455
- $min_zoom = 50;
456
- }
457
-
458
- $hotspot_datas = $panoscenes["hotspot-list"];
459
-
460
- $hotspots = array();
461
- foreach ($hotspot_datas as $hotspot_data) {
462
-
463
- if (!empty($hotspot_data["hotspot-title"])) {
464
-
465
- $hotspot_type = $hotspot_data["hotspot-type"] !== 'scene' ? 'info' : $hotspot_data["hotspot-type"];
466
- $hotspot_content = '';
467
-
468
- ob_start();
469
- do_action('wpvr_hotspot_content_admin', $hotspot_data);
470
- $hotspot_content = ob_get_clean();
471
-
472
-
473
- if (!$hotspot_content) $hotspot_content = $hotspot_data["hotspot-content"];
474
-
475
-
476
- $hotspot_info = array(
477
- "text" => $hotspot_data["hotspot-title"],
478
- "pitch" => $hotspot_data["hotspot-pitch"],
479
- "yaw" => $hotspot_data["hotspot-yaw"],
480
- "type" => $hotspot_type,
481
- "URL" => $hotspot_data["hotspot-url"],
482
- "clickHandlerArgs" => $hotspot_content,
483
- "createTooltipArgs" => $hotspot_data["hotspot-hover"],
484
- "sceneId" => $hotspot_data["hotspot-scene"],
485
- "targetPitch" => (float)$hotspot_data["hotspot-scene-pitch"],
486
- "targetYaw" => (float)$hotspot_data["hotspot-scene-yaw"],
487
- 'hotspot_type' => $hotspot_data['hotspot-type']
488
- );
489
-
490
- array_push($hotspots, $hotspot_info);
491
- if (empty($hotspot_data["hotspot-scene"])) {
492
- unset($hotspot_info['targetPitch']);
493
- unset($hotspot_info['targetYaw']);
494
- }
495
- }
496
- }
497
-
498
- $scene_info = array();
499
- if ($panoscenes["scene-type"] == 'cubemap') {
500
- $pano_type = 'cubemap';
501
- $pano_attachment = array(
502
- $panoscenes["scene-attachment-url-face0"],
503
- $panoscenes["scene-attachment-url-face1"],
504
- $panoscenes["scene-attachment-url-face2"],
505
- $panoscenes["scene-attachment-url-face3"],
506
- $panoscenes["scene-attachment-url-face4"],
507
- $panoscenes["scene-attachment-url-face5"]
508
- );
509
-
510
- $scene_info = array("type" => $panoscenes["scene-type"], "cubeMap" => $pano_attachment, "pitch" => $default_scene_pitch, "maxPitch" => $scene_max_pitch, "minPitch" => $scene_min_pitch, "maxYaw" => $scene_max_yaw, "minYaw" => $scene_min_yaw, "yaw" => $default_scene_yaw, "hfov" => $default_zoom, "maxHfov" => $max_zoom, "minHfov" => $min_zoom, "title" => $scene_ititle, "author" => $scene_author, "vaov" => $scene_vaov, "haov" => $scene_haov, "vOffset" => $scene_vertical_offset, "hotSpots" => $hotspots);
511
- } else {
512
- $scene_info = array("type" => $panoscenes["scene-type"], "panorama" => $panoscenes["scene-attachment-url"], "pitch" => $default_scene_pitch, "maxPitch" => $scene_max_pitch, "minPitch" => $scene_min_pitch, "maxYaw" => $scene_max_yaw, "minYaw" => $scene_min_yaw, "yaw" => $default_scene_yaw, "hfov" => $default_zoom, "maxHfov" => $max_zoom, "minHfov" => $min_zoom, "title" => $scene_ititle, "author" => $scene_author, "vaov" => $scene_vaov, "haov" => $scene_haov, "vOffset" => $scene_vertical_offset, "hotSpots" => $hotspots);
513
- }
514
-
515
-
516
- if ($panoscenes["ptyscene"] == "off") {
517
- unset($scene_info['pitch']);
518
- unset($scene_info['yaw']);
519
- }
520
-
521
- if (empty($panoscenes["scene-ititle"])) {
522
- unset($scene_info['title']);
523
- }
524
- if (empty($panoscenes["scene-author"])) {
525
- unset($scene_info['author']);
526
- }
527
-
528
- if (empty($scene_vaov)) {
529
- unset($scene_info['vaov']);
530
- }
531
-
532
- if (empty($scene_haov)) {
533
- unset($scene_info['haov']);
534
- }
535
-
536
- if (empty($scene_vertical_offset)) {
537
- unset($scene_info['vOffset']);
538
- }
539
-
540
- if ($panoscenes["cvgscene"] == "off") {
541
- unset($scene_info['maxPitch']);
542
- unset($scene_info['minPitch']);
543
- }
544
- if (empty($panoscenes["scene-maxpitch"])) {
545
- unset($scene_info['maxPitch']);
546
- }
547
-
548
- if (empty($panoscenes["scene-minpitch"])) {
549
- unset($scene_info['minPitch']);
550
- }
551
-
552
- if ($panoscenes["chgscene"] == "off") {
553
- unset($scene_info['maxYaw']);
554
- unset($scene_info['minYaw']);
555
- }
556
- if (empty($panoscenes["scene-maxyaw"])) {
557
- unset($scene_info['maxYaw']);
558
- }
559
-
560
- if (empty($panoscenes["scene-minyaw"])) {
561
- unset($scene_info['minYaw']);
562
- }
563
-
564
- // if ($panoscenes["czscene"] == "off") {
565
- // unset($scene_info['hfov']);
566
- // unset($scene_info['maxHfov']);
567
- // unset($scene_info['minHfov']);
568
- // }
569
-
570
- $scene_array = array();
571
- $scene_array = array(
572
- $panoscenes["scene-id"] => $scene_info
573
- );
574
- $scene_data[$panoscenes["scene-id"]] = $scene_info;
575
- }
576
- }
577
-
578
- $pano_id_array = array();
579
- $pano_id_array = array("panoid" => $panoid);
580
- $pano_response = array();
581
- $pano_response = array("autoLoad" => $autoload, "defaultZoom" => $default_global_zoom, "minZoom" => $min_global_zoom, "maxZoom" => $max_global_zoom, "showControls" => $control, "compass" => $compass, "mouseZoom" => $mouseZoom, "draggable" => $draggable, "disableKeyboardCtrl" => $diskeyboard, 'keyboardZoom' => $keyboardzoom, "preview" => $preview, "autoRotate" => $autorotation, "autoRotateInactivityDelay" => $autorotationinactivedelay, "autoRotateStopDelay" => $autorotationstopdelay, "default" => $default_data, "scenes" => $scene_data);
582
-
583
- if ($rotation == 'off') {
584
- unset($pano_response['autoRotate']);
585
- unset($pano_response['autoRotateInactivityDelay']);
586
- unset($pano_response['autoRotateStopDelay']);
587
- }
588
- if (empty($autorotation)) {
589
- unset($pano_response['autoRotate']);
590
- unset($pano_response['autoRotateInactivityDelay']);
591
- unset($pano_response['autoRotateStopDelay']);
592
- }
593
- if (empty($autorotationinactivedelay)) {
594
- unset($pano_response['autoRotateInactivityDelay']);
595
- }
596
- if (empty($autorotationstopdelay)) {
597
- unset($pano_response['autoRotateStopDelay']);
598
- }
599
-
600
- // if($_POST['gzoom'] == 'off' ){
601
- // unset($pano_response['defaultZoom']);
602
- // unset($pano_response['minZoom']);
603
- // unset($pano_response['maxZoom']);
604
- // }
605
- $response = array();
606
- $response = array($pano_id_array, $pano_response);
607
- wp_send_json_success($response);
608
- }
609
-
610
- /**
611
- * Video Preview show ajax function
612
- */
613
- function wpvrvideo_preview()
614
- {
615
- $panoid = '';
616
- $postid = sanitize_text_field($_POST['postid']);
617
- $panoid = 'pano' . $postid;
618
- $randid = rand(1000, 1000000);
619
- $vidid = 'vid' . $randid;
620
- $videourl = esc_url_raw($_POST['videourl']);
621
- $autoplay = sanitize_text_field($_POST['autoplay']);
622
- $loop = sanitize_text_field($_POST['loop']);
623
-
624
- $vidtype = '';
625
- if (strpos($videourl, 'youtube') > 0) {
626
- $vidtype = 'youtube';
627
- $explodeid = '';
628
- $explodeid = explode("=", $videourl);
629
-
630
- if ($autoplay == 'on') {
631
- $autoplay = '&autoplay=1';
632
- $muted = '&mute=1';
633
- } else {
634
- $autoplay = '';
635
- $muted = '';
636
- }
637
-
638
- if ($loop == 'on') {
639
- $loop = '&loop=1';
640
- } else {
641
- $loop = '';
642
- }
643
-
644
- $foundid = '';
645
- $foundid = $explodeid[1] . '?' . $autoplay . $loop;
646
- $html = '';
647
- $html .= '
648
- <iframe src="https://www.youtube.com/embed/' . $explodeid[1] . '?rel=0&modestbranding=1' . $loop . '&autohide=1' . $muted . '&showinfo=0&controls=1' . $autoplay . '" width="600" height="400" frameborder="0" allowfullscreen></iframe>
649
- ';
650
- } elseif (strpos($videourl, 'youtu.be') > 0) {
651
- $vidtype = 'youtube';
652
- $explodeid = '';
653
- $explodeid = explode("/", $videourl);
654
-
655
- if ($autoplay == 'on') {
656
- $autoplay = '&autoplay=1';
657
- } else {
658
- $autoplay = '';
659
- }
660
-
661
- if ($loop == 'on') {
662
- $loop = '&loop=1';
663
- } else {
664
- $loop = '';
665
- }
666
-
667
- $foundid = '';
668
- $foundid = $explodeid[3] . '?' . $autoplay . $loop;
669
- $html = '';
670
- $html .= '<iframe width="600" height="400" src="https://www.youtube.com/embed/' . $foundid . '" frameborder="0" allow="accelerometer; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>';
671
- } elseif (strpos($videourl, 'vimeo') > 0) {
672
- $vidtype = 'vimeo';
673
- $explodeid = '';
674
- $explodeid = explode("/", $videourl);
675
- $foundid = '';
676
-
677
- if ($autoplay == 'on') {
678
- $autoplay = '&autoplay=1&muted=1';
679
- } else {
680
- $autoplay = '';
681
- }
682
-
683
- if ($loop == 'on') {
684
- $loop = '&loop=1';
685
- } else {
686
- $loop = '';
687
- }
688
-
689
- $foundid = $explodeid[3] . '?' . $autoplay . $loop;
690
- $html = '';
691
- $html .= '<iframe src="https://player.vimeo.com/video/' . $foundid . '" width="600" height="400" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>';
692
- } else {
693
- $vidtype = 'selfhost';
694
-
695
- if ($autoplay == 'on') {
696
- $autoplay = 'autoplay';
697
- } else {
698
- $autoplay = '';
699
- }
700
-
701
-
702
- if ($loop == 'on') {
703
- $loop = 'loop';
704
- } else {
705
- $loop = '';
706
- }
707
-
708
- $html = '';
709
- $html .= '<video id="' . $vidid . '" class="video-js vjs-default-skin vjs-big-play-centered" ' . $autoplay . ' ' . $loop . ' controls preload="none" style="width:100%;height:400px;" poster="" >';
710
- $html .= '<source src="' . $videourl . '" type="video/mp4"/>';
711
- $html .= '<p class="vjs-no-js">';
712
- $html .= 'To view this video please enable JavaScript, and consider upgrading to a web browser that <a href="http://videojs.com html5-video-support/" target="_blank">supports HTML5 video</a>';
713
- $html .= '</p>';
714
- $html .= '</video>';
715
- }
716
-
717
- $response = array();
718
- $response = array(__("panoid") => $panoid, __("panodata") => $html, __("vidid") => $vidid, __("vidtype") => $vidtype);
719
- wp_send_json_success($response);
720
- }
721
-
722
- function wpvr_save_data()
723
- {
724
-
725
- $panoid = '';
726
- $html = '';
727
- $postid = sanitize_text_field($_POST['postid']);
728
- $prevtext = sanitize_text_field($_POST['previewtext']);
729
- // error_log(print_r($_POST['customColor'],1));
730
- $previewtext = '';
731
- if (strlen($prevtext) <= 50) {
732
- $previewtext = $prevtext;
733
- }
734
- $post_type = get_post_type($postid);
735
- if ($post_type != 'wpvr_item') {
736
- die();
737
- }
738
- $panoid = 'pano' . $postid;
739
-
740
- $default_global_zoom = '';
741
- $max_global_zoom = '';
742
- $min_global_zoom = '';
743
- if (isset($_POST['gzoom']) == 'on') {
744
- $default_global_zoom = $_POST['dzoom'];
745
- $max_global_zoom = $_POST['maxzoom'];
746
- $min_global_zoom = $_POST['minzoom'];
747
- }
748
-
749
- if (isset($_POST['streetview'])) {
750
- $streetview = $_POST['streetview'];
751
- if ($streetview == 'on') {
752
- $streetviewurl = esc_url_raw($_POST['streetviewurl']);
753
- if ($streetviewurl) {
754
- $html .= '<iframe src="' . $streetviewurl . '" width="600" height="400" frameborder="0" style="border:0;" allowfullscreen=""></iframe>';
755
- }
756
- $streetviewarray = array();
757
- $streetviewarray = array(__("panoid") => $panoid, __("streetviewdata") => $html, __("streetviewurl") => $streetviewurl, __("streetview") => $streetview);
758
- update_post_meta($postid, 'panodata', $streetviewarray);
759
- die();
760
- }
761
- }
762
-
763
-
764
- $pnovideo = $_POST['panovideo'];
765
- if ($pnovideo == "on") {
766
-
767
- $vidid = 'vid' . $postid;
768
- $videourl = esc_url_raw($_POST['videourl']);
769
- $autoplay = sanitize_text_field($_POST['autoplay']);
770
- $vidautoplay = sanitize_text_field($_POST['autoplay']);
771
- $loop = sanitize_text_field($_POST['loop']);
772
- $vidloop = sanitize_text_field($_POST['loop']);
773
- $vidtype = '';
774
-
775
- if (strpos($videourl, 'youtube') > 0) {
776
- $vidtype = 'youtube';
777
- $explodeid = '';
778
- $explodeid = explode("=", $videourl);
779
- $foundid = '';
780
-
781
- if ($autoplay == 'on') {
782
- $autoplay = '&autoplay=1';
783
- } else {
784
- $autoplay = '';
785
- }
786
-
787
- if ($loop == 'on') {
788
- $loop = '&loop=1';
789
- } else {
790
- $loop = '';
791
- }
792
-
793
- $foundid = $explodeid[1] . '?' . $autoplay . $loop;
794
- $html = '';
795
- $html .= '<iframe width="600" height="400" src="https://www.youtube.com/embed/' . $foundid . '" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>';
796
- } elseif (strpos($videourl, 'youtu.be') > 0) {
797
- $vidtype = 'youtube';
798
- $explodeid = '';
799
- $explodeid = explode("/", $videourl);
800
- $foundid = '';
801
-
802
- if ($autoplay == 'on') {
803
- $autoplay = '&autoplay=1';
804
- } else {
805
- $autoplay = '';
806
- }
807
-
808
- if ($loop == 'on') {
809
- $loop = '&loop=1';
810
- } else {
811
- $loop = '';
812
- }
813
-
814
- $foundid = $explodeid[3] . '?' . $autoplay . $loop;
815
- $html = '';
816
- $html .= '<iframe width="600" height="400" src="https://www.youtube.com/embed/' . $foundid . '" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>';
817
- } elseif (strpos($videourl, 'vimeo') > 0) {
818
- $vidtype = 'vimeo';
819
- $explodeid = '';
820
- $explodeid = explode("/", $videourl);
821
- $foundid = '';
822
-
823
- if ($autoplay == 'on') {
824
- $autoplay = '&autoplay=1&muted=1';
825
- } else {
826
- $autoplay = '';
827
- }
828
-
829
- if ($loop == 'on') {
830
- $loop = '&loop=1';
831
- } else {
832
- $loop = '';
833
- }
834
-
835
- $foundid = $explodeid[3] . '?' . $autoplay . $loop;
836
- $html = '';
837
- $html .= '<iframe src="https://player.vimeo.com/video/' . $foundid . '" width="600" height="400" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>';
838
- } else {
839
- $vidtype = 'selfhost';
840
- $vidautoplay = '';
841
- // $vidautoplay = sanitize_text_field($_POST['vidautoplay']);
842
- $vidautoplay = sanitize_text_field($_POST['autoplay']);
843
-
844
- if ($autoplay == 'on') {
845
- $autoplay = 'autoplay muted';
846
- } else {
847
- $autoplay = '';
848
- }
849
-
850
- if ($loop == 'on') {
851
- $loop = 'loop';
852
- } else {
853
- $loop = '';
854
- }
855
-
856
- $html = '';
857
- $html .= '<video id="' . $vidid . '" class="video-js vjs-default-skin vjs-big-play-centered" ' . $autoplay . ' ' . $loop . ' controls preload="auto" style="width:100%;height:100%;" poster="" >';
858
- $html .= '<source src="' . $videourl . '" type="video/mp4"/>';
859
- $html .= '<p class="vjs-no-js">';
860
- $html .= 'To view this video please enable JavaScript, and consider upgrading to a web browser that <a href="http://videojs.com html5-video-support/" target="_blank">supports HTML5 video</a>';
861
- $html .= '</p>';
862
- $html .= '</video>';
863
- }
864
-
865
-
866
-
867
- $videoarray = array();
868
- $videoarray = array(__("panoid") => $panoid, __("panoviddata") => $html, __("vidid") => $vidid, __("vidurl") => $videourl, __("autoplay") => $autoplay, __("loop") => $vidloop, __("vidtype") => $vidtype);
869
- update_post_meta($postid, 'panodata', $videoarray);
870
- die();
871
- }
872
-
873
-
874
- $control = sanitize_text_field($_POST['control']);
875
- if ($control == 'on') {
876
- $control = true;
877
- } else {
878
- $control = false;
879
- }
880
-
881
- //===Custom Control===//
882
- $custom_control = $_POST['customcontrol'];
883
-
884
- //===Custom Control End===//
885
-
886
- $vrgallery = sanitize_text_field($_POST['vrgallery']);
887
- if ($vrgallery == 'on') {
888
- $vrgallery = true;
889
- } else {
890
- $vrgallery = false;
891
- }
892
-
893
- $vrgallery_title = sanitize_text_field($_POST['vrgallery_title']);
894
- if ($vrgallery_title == 'on') {
895
- $vrgallery_title = true;
896
- } else {
897
- $vrgallery_title = false;
898
- }
899
-
900
- $vrgallery_display = sanitize_text_field($_POST['vrgallery_display']);
901
- if ($vrgallery_display == 'on') {
902
- $vrgallery_display = true;
903
- } else {
904
- $vrgallery_display = false;
905
- }
906
-
907
- $gyro = false;
908
- if (isset($_POST['gyro'])) {
909
- $gyro = sanitize_text_field($_POST['gyro']);
910
- }
911
-
912
- $deviceorientationcontrol = sanitize_text_field($_POST['deviceorientationcontrol']);
913
-
914
- if ($gyro == 'on') {
915
- if (!is_ssl()) {
916
- wp_send_json_error('<p><span>Warning:</span> Please add SSL to enable Gyroscope for WP VR. </p>');
917
- die();
918
- }
919
- $gyro = true;
920
- if ($deviceorientationcontrol == 'on') {
921
- $deviceorientationcontrol = true;
922
- } else {
923
- $deviceorientationcontrol = false;
924
- }
925
- } else {
926
- $gyro = false;
927
- $deviceorientationcontrol = false;
928
- }
929
-
930
- $compass = sanitize_text_field($_POST['compass']);
931
- if ($compass == 'on') {
932
- $compass = true;
933
- } else {
934
- $compass = false;
935
- }
936
-
937
- $mouseZoom = sanitize_text_field($_POST['mouseZoom']);
938
- if ($mouseZoom == 'off') {
939
- $mouseZoom = false;
940
- } else {
941
- $mouseZoom = true;
942
- }
943
-
944
- $draggable = sanitize_text_field($_POST['draggable']);
945
- if ($draggable == 'off') {
946
- $draggable = false;
947
- } else {
948
- $draggable = true;
949
- }
950
-
951
- $diskeyboard = sanitize_text_field($_POST['diskeyboard']);
952
- if ($diskeyboard == 'on') {
953
- $diskeyboard = true;
954
- } else {
955
- $diskeyboard = false;
956
- }
957
-
958
- $keyboardzoom = sanitize_text_field($_POST['keyboardzoom']);
959
-
960
- if ($keyboardzoom == 'off') {
961
- $keyboardzoom = false;
962
- } else {
963
- $keyboardzoom = true;
964
- }
965
-
966
- $autoload = sanitize_text_field($_POST['autoload']);
967
- if ($autoload == 'on') {
968
- $autoload = true;
969
- } else {
970
- $autoload = false;
971
- }
972
-
973
- $default_scene = '';
974
-
975
- $preview = '';
976
- $preview = esc_url($_POST['preview']);
977
-
978
- $rotation = '';
979
- $rotation = sanitize_text_field($_POST['rotation']);
980
-
981
- $autorotation = '';
982
- $autorotation = sanitize_text_field($_POST['autorotation']);
983
- $autorotationinactivedelay = '';
984
- $autorotationinactivedelay = sanitize_text_field($_POST['autorotationinactivedelay']);
985
- $autorotationstopdelay = '';
986
- $autorotationstopdelay = sanitize_text_field($_POST['autorotationstopdelay']);
987
-
988
-
989
-
990
- if (!empty($autorotationinactivedelay) && !empty($autorotationstopdelay)) {
991
- wp_send_json_error('<span class="pano-error-title">Dual Action Error for Auto-Rotation</span><p> You can not use both Resume Auto-rotation & Stop Auto-rotation on the same tour. You can use only one of them.</p>');
992
- die();
993
- }
994
-
995
- //===Company Logo===//
996
- $cpLogoSwitch = 'off';
997
- $cpLogoSwitch = $_POST['cpLogoSwitch'];
998
- $cpLogoImg = '';
999
- $cpLogoImg = $_POST['cpLogoImg'];
1000
- $cpLogoContent = '';
1001
- $cpLogoContent = sanitize_text_field($_POST['cpLogoContent']);
1002
- //===Company Logo===//
1003
-
1004
- //===Explainer video===//
1005
- $explainerSwitch = 'off';
1006
- $explainerSwitch = $_POST['explainerSwitch'];
1007
- $explainerContent = '';
1008
- $explainerContent = $_POST['explainerContent'];
1009
- //===Explainer video===//
1010
-
1011
- //===background tour ===//
1012
- $bg_tour_enabler = sanitize_text_field($_POST['wpvr_bg_tour_enabler']);
1013
- // $bg_tour_navmenu = sanitize_text_field($_POST['wpvr_bg_tour_navmenu_enabler']);
1014
- $bg_tour_title = sanitize_text_field($_POST['bg_tour_title']);
1015
- $bg_tour_subtitle = sanitize_text_field($_POST['bg_tour_subtitle']);
1016
- //===background tour end ===//
1017
-
1018
- // update_post_meta($postid,'hotspot_colors',$_POST['customColor']);
1019
-
1020
- $scene_fade_duration = '';
1021
- $scene_fade_duration = $_POST['scenefadeduration'];
1022
-
1023
- $panodata = $_POST['panodata'];
1024
- $panolist = stripslashes($panodata);
1025
- $panodata = (array)json_decode($panolist);
1026
- $panolist = array();
1027
- if (is_array($panodata["scene-list"])) {
1028
- foreach ($panodata["scene-list"] as $scenes_data) {
1029
- $temp_array = array();
1030
- $temp_array = (array)$scenes_data;
1031
- // $scene_id_ = $temp_array["scene-id"];
1032
-
1033
- if ($temp_array['hotspot-list']) {
1034
- $_hotspot_array = array();
1035
- foreach ($temp_array['hotspot-list'] as $temp_hotspot) {
1036
-
1037
- $temp_hotspot = (array)$temp_hotspot;
1038
- $_hotspot_array[] = $temp_hotspot;
1039
- }
1040
- }
1041
-
1042
- $temp_array['hotspot-list'] = $_hotspot_array;
1043
- $panolist['scene-list'][] = $temp_array;
1044
- }
1045
- }
1046
- $panodata = $panolist;
1047
-
1048
- //===Error Control and Validation===//
1049
-
1050
- if ($panodata["scene-list"] != "") {
1051
- foreach ($panodata["scene-list"] as $scenes_val) {
1052
-
1053
- $scene_id_validate = $scenes_val["scene-id"];
1054
- if (!empty($scene_id_validate)) {
1055
- $scene_id_validated = preg_replace('/[^0-9a-zA-Z_]/', "", $scene_id_validate);
1056
- if ($scene_id_validated != $scene_id_validate) {
1057
- wp_send_json_error('<span class="pano-error-title">Invalid Scene ID</span> <p>Scene ID can\'t contain spaces and special characters. <br/>Please assign a unique Scene ID with letters and numbers where Scene ID is : ' . $scene_id_validate . '</p>');
1058
- die();
1059
- }
1060
-
1061
- if ($scenes_val['scene-type'] == 'cubemap') {
1062
- if (empty($scenes_val["scene-attachment-url-face0"])) {
1063
- wp_send_json_error('<span class="pano-error-title">Missing Cubemap Scene Face 0</span><p> Please upload a 360 Degree image where Scene ID is: ' . $scene_id_validate . '</p>');
1064
- die();
1065
- }
1066
-
1067
- if (empty($scenes_val["scene-attachment-url-face1"])) {
1068
- wp_send_json_error('<span class="pano-error-title">Missing Cubemap Scene Face 1</span><p> Please upload a 360 Degree image where Scene ID is: ' . $scene_id_validate . '</p>');
1069
- die();
1070
- }
1071
-
1072
- if (empty($scenes_val["scene-attachment-url-face2"])) {
1073
- wp_send_json_error('<span class="pano-error-title">Missing Cubemap Scene Face 2</span><p> Please upload a 360 Degree image where Scene ID is: ' . $scene_id_validate . '</p>');
1074
- die();
1075
- }
1076
-
1077
- if (empty($scenes_val["scene-attachment-url-face3"])) {
1078
- wp_send_json_error('<span class="pano-error-title">Missing Cubemap Scene Face 3</span><p> Please upload a 360 Degree image where Scene ID is: ' . $scene_id_validate . '</p>');
1079
- die();
1080
- }
1081
-
1082
- if (empty($scenes_val["scene-attachment-url-face4"])) {
1083
- wp_send_json_error('<span class="pano-error-title">Missing Cubemap Scene Face 4</span><p> Please upload a 360 Degree image where Scene ID is: ' . $scene_id_validate . '</p>');
1084
- die();
1085
- }
1086
-
1087
- if (empty($scenes_val["scene-attachment-url-face5"])) {
1088
- wp_send_json_error('<span class="pano-error-title">Missing Cubemap Scene Face 5</span><p> Please upload a 360 Degree image where Scene ID is: ' . $scene_id_validate . '</p>');
1089
- die();
1090
- }
1091
- } else {
1092
- if (empty($scenes_val["scene-attachment-url"])) {
1093
- wp_send_json_error('<span class="pano-error-title">Missing Scene Image</span><p> Please upload a 360 Degree image where Scene ID is: ' . $scene_id_validate . '</p>');
1094
- die();
1095
- }
1096
- }
1097
-
1098
- if (!empty($scenes_val["scene-pitch"])) {
1099
- $validate_scene_pitch = $scenes_val["scene-pitch"];
1100
- $validated_scene_pitch = preg_replace('/[^0-9.-]/', '', $validate_scene_pitch);
1101
- if ($validated_scene_pitch != $validate_scene_pitch) {
1102
- wp_send_json_error('<span class="pano-error-title">Invalid Pitch Value</span><p> The Pitch Value can only contain float numbers where Scene ID: ' . $scene_id_validate . '</p>');
1103
- die();
1104
- }
1105
- }
1106
-
1107
- if (!empty($scenes_val["scene-yaw"])) {
1108
- $validate_scene_yaw = $scenes_val["scene-yaw"];
1109
- $validated_scene_yaw = preg_replace('/[^0-9.-]/', '', $validate_scene_yaw);
1110
- if ($validated_scene_yaw != $validate_scene_yaw) {
1111
- wp_send_json_error('<span class="pano-error-title">Invalid Yaw Value</span><p> The Yaw Value can only contain float numbers where Scene ID: ' . $scene_id_validate . '</p>');
1112
- die();
1113
- }
1114
- }
1115
-
1116
- if (!empty($scenes_val["scene-zoom"])) {
1117
- $validate_default_zoom = $scenes_val["scene-zoom"];
1118
- $validated_default_zoom = preg_replace('/[^0-9-]/', '', $validate_default_zoom);
1119
- if ($validated_default_zoom != $validate_default_zoom) {
1120
- wp_send_json_error('<span class="pano-error-title">Invalid Default Zoom Value</span><p> You can only set Default Zoom in Degree values from 50 to 120 where Scene ID: ' . $scene_id_validate . '</p>');
1121
-
1122
- die();
1123
- }
1124
- $default_zoom_value = (int)$scenes_val["scene-zoom"];
1125
- if ($default_zoom_value > 120 || $default_zoom_value < 50) {
1126
- wp_send_json_error('<span class="pano-error-title">Invalid Default Zoom Value</span><p> You can only set Default Zoom in Degree values from 50 to 120 where Scene ID: ' . $scene_id_validate . '</p>');
1127
-
1128
- die();
1129
- }
1130
- }
1131
-
1132
- if (!empty($scenes_val["scene-maxzoom"])) {
1133
- $validate_max_zoom = $scenes_val["scene-maxzoom"];
1134
- $validated_max_zoom = preg_replace('/[^0-9-]/', '', $validate_max_zoom);
1135
- if ($validated_max_zoom != $validate_max_zoom) {
1136
- wp_send_json_error('<span class="pano-error-title">Invalid Max-zoom Value:</span><p> You can only set Max-zoom in degree values (50-120) where Scene ID: ' . $scene_id_validate . '</p>');
1137
-
1138
- die();
1139
- }
1140
- $max_zoom_value = (int)$scenes_val["scene-maxzoom"];
1141
- if ($max_zoom_value > 120) {
1142
- wp_send_json_error('<span class="pano-error-title">Max-zoom Value Limit Exceeded</span><p> You can set the Max-zoom Value up to 120 degrees.</p>');
1143
-
1144
- die();
1145
- }
1146
-
1147
- if ($max_zoom_value < 50) {
1148
- wp_send_json_error('<span class="pano-error-title">Max-zoom Value Limit Exceeded</span><p> You can not set the Max-zoom Value lower than 50 degrees.</p>');
1149
- die();
1150
- }
1151
- }
1152
-
1153
- if (!empty($scenes_val["scene-minzoom"])) {
1154
- $validate_min_zoom = $scenes_val["scene-minzoom"];
1155
- $validated_min_zoom = preg_replace('/[^0-9-]/', '', $validate_min_zoom);
1156
- if ($validated_min_zoom != $validate_min_zoom) {
1157
- wp_send_json_error('<span class="pano-error-title">Invalid Min-zoom Value</span><p> You can only set Min-zoom in degree values (50-120) where Scene ID: ' . $scene_id_validate . '</p>');
1158
- die();
1159
- }
1160
- $min_zoom_value = (int)$scenes_val["scene-minzoom"];
1161
- if ($min_zoom_value < 50) {
1162
- wp_send_json_error('<span class="pano-error-title">Low Min-Zoom Value</span><p> The Min-zoom value must be more than 50 in degree values where Scene ID: ' . $scene_id_validate . '</p>');
1163
- die();
1164
- }
1165
-
1166
- if ($min_zoom_value > 120) {
1167
- wp_send_json_error('<span class="pano-error-title">Hight Min-Zoom Value</span><p> The Min-zoom value must be less than 120 in degree values where Scene ID: ' . $scene_id_validate . '</p>');
1168
- die();
1169
- }
1170
- }
1171
-
1172
- if ($scenes_val["hotspot-list"] != "") {
1173
- foreach ($scenes_val["hotspot-list"] as $hotspot_val) {
1174
-
1175
- $hotspot_title_validate = $hotspot_val["hotspot-title"];
1176
-
1177
- if (!empty($hotspot_title_validate)) {
1178
- $hotspot_title_validated = preg_replace('/[^0-9a-zA-Z_]/', "", $hotspot_title_validate);
1179
- if ($hotspot_title_validated != $hotspot_title_validate) {
1180
- wp_send_json_error('<span class="pano-error-title">Invalid Hotspot ID</span> <p>Hotspot ID can\'t contain spaces and special characters.<br/> Please assign a unique Hotspot ID with letters and numbers where Scene id: ' . $scene_id_validate . ' Hotspot ID is: ' . $scene_id_validate . ' and hotspot id : ' . $hotspot_title_validate . '</p>');
1181
- die();
1182
- }
1183
- $hotspot_pitch_validate = $hotspot_val["hotspot-pitch"];
1184
- if (empty($hotspot_pitch_validate)) {
1185
- wp_send_json_error('<p><span>Warning:</span> Hotspot pitch is required for every hotspot where scene id: ' . $scene_id_validate . ' and hotspot id : ' . $hotspot_title_validate . '</p>');
1186
- die();
1187
- }
1188
- if (!empty($hotspot_pitch_validate)) {
1189
- $hotspot_pitch_validated = preg_replace('/[^0-9.-]/', '', $hotspot_pitch_validate);
1190
- if ($hotspot_pitch_validated != $hotspot_pitch_validate) {
1191
- wp_send_json_error('<span class="pano-error-title">Invalid Pitch Value</span> <p>The Pitch Value can only contain float numbers where Scene ID: ' . $scene_id_validate . ' Hotspot ID is: ' . $hotspot_title_validate . '</p>');
1192
-
1193
-
1194
- die();
1195
- }
1196
- }
1197
-
1198
- $hotspot_yaw_validate = $hotspot_val["hotspot-yaw"];
1199
- if (empty($hotspot_yaw_validate)) {
1200
- wp_send_json_error('<p><span>Warning:</span> Hotspot yaw is required for every hotspot where scene id: ' . $scene_id_validate . ' and hotspot id : ' . $hotspot_title_validate . '</p>');
1201
- die();
1202
- }
1203
- if (!empty($hotspot_yaw_validate)) {
1204
- $hotspot_yaw_validated = preg_replace('/[^0-9.-]/', '', $hotspot_yaw_validate);
1205
- if ($hotspot_yaw_validated != $hotspot_yaw_validate) {
1206
- wp_send_json_error('<span class="pano-error-title">Invalid Yaw Value</span> <p>The Yaw Value can only contain float numbers where Scene ID: ' . $scene_id_validate . ' Hotspot ID is: ' . $hotspot_title_validate . '</p>');
1207
-
1208
- die();
1209
- }
1210
- }
1211
-
1212
- if (is_plugin_active('wpvr-pro/wpvr-pro.php')) {
1213
- $status = get_option('wpvr_edd_license_status');
1214
- if ($status !== false && $status == 'valid') {
1215
- if ($hotspot_val["hotspot-customclass-pro"] != 'none' && !empty($hotspot_val["hotspot-customclass"])) {
1216
- wp_send_json_error('<span class="pano-error-title">Warning!</span> <p>You can not use both Custom Icon and Custom Icon Class for a hotspot where scene id: ' . $scene_id_validate . ' and hotspot id : ' . $hotspot_title_validate . '</p>');
1217
- die();
1218
- }
1219
- }
1220
- }
1221
- $hotspot_type_validate = $hotspot_val["hotspot-type"];
1222
- $hotspot_url_validate = $hotspot_val["hotspot-url"];
1223
- if (!empty($hotspot_url_validate)) {
1224
- $hotspot_url_validated = esc_url($hotspot_url_validate);
1225
- if ($hotspot_url_validated != $hotspot_url_validate) {
1226
- wp_send_json_error('<p><span>Warning:</span> Hotspot Url is invalid where scene id: ' . $scene_id_validate . ' and hotspot id : ' . $hotspot_title_validate . '</p>');
1227
- die();
1228
- }
1229
- }
1230
- $hotspot_content_validate = $hotspot_val["hotspot-content"];
1231
-
1232
- $hotspot_scene_validate = $hotspot_val["hotspot-scene"];
1233
-
1234
- if ($hotspot_type_validate == "info") {
1235
- if (!empty($hotspot_scene_validate)) {
1236
- wp_send_json_error('<p><span>Warning:</span> Don\'t add Target Scene ID on info type hotspot where scene id: ' . $scene_id_validate . ' and hotspot id : ' . $hotspot_title_validate . '</p>');
1237
- die();
1238
- }
1239
- if (!empty($hotspot_url_validate) && !empty($hotspot_content_validate)) {
1240
- wp_send_json_error('<span class="pano-error-title">Warning!</span> <p>You can not set both On Click Content and URL on a hotspot where scene id: ' . $scene_id_validate . ' and hotspot id : ' . $hotspot_title_validate . '</p>');
1241
- die();
1242
- }
1243
- }
1244
-
1245
-
1246
-
1247
- if ($hotspot_type_validate == "shortcode_editor") {
1248
- if (substr($hotspot_val['hotspot-shortcode'], 0, 1) === '[') {
1249
- $pattern = get_shortcode_regex();
1250
- preg_match('/' . $pattern . '/s', $hotspot_val['hotspot-shortcode'], $matches);
1251
- if (is_array($matches) && !isset($matches[2])) {
1252
- wp_send_json_error('<p><span>Warning:</span> This is not a valid shortcode where scene id: ' . $scene_id_validate . ' and hotspot id : ' . $hotspot_title_validate . '</p>');
1253
- die();
1254
- }
1255
- }
1256
- }
1257
-
1258
- if ($hotspot_type_validate == "scene") {
1259
- if (empty($hotspot_scene_validate)) {
1260
- wp_send_json_error('<span class="pano-error-title">Target Scene Missing</span> <p>Assign a Target Scene to the Scene-type Hotspot where Scene ID: ' . $scene_id_validate . ' and Hotspot ID : ' . $hotspot_title_validate . '</p>');
1261
- die();
1262
- }
1263
- if (!empty($hotspot_url_validate) || !empty($hotspot_content_validate)) {
1264
- wp_send_json_error('<p><span>Warning:</span> Don\'t add Url or On click content on scene type hotspot where scene id: ' . $scene_id_validate . ' and hotspot id : ' . $hotspot_title_validate . '</p>');
1265
- die();
1266
- }
1267
- }
1268
- }
1269
- }
1270
- }
1271
- }
1272
- }
1273
- }
1274
- //===Error Control and Validation===//
1275
-
1276
- foreach ($panodata["scene-list"] as $panoscenes) {
1277
- if (empty($panoscenes['scene-id']) && !empty($panoscenes['scene-attachment-url'])) {
1278
- wp_send_json_error('<span class="pano-error-title">Missing Scene ID</span> <p>Please assign a unique Scene ID to your uploaded scene.</p>');
1279
- die();
1280
- }
1281
- }
1282
-
1283
- $allsceneids = array();
1284
-
1285
- foreach ($panodata["scene-list"] as $panoscenes) {
1286
- if (!empty($panoscenes['scene-id'])) {
1287
- array_push($allsceneids, $panoscenes['scene-id']);
1288
- }
1289
- }
1290
-
1291
- foreach ($panodata["scene-list"] as $panoscenes) {
1292
-
1293
- if ($panoscenes['dscene'] == 'on') {
1294
- $default_scene = $panoscenes['scene-id'];
1295
- }
1296
- }
1297
- if (empty($default_scene)) {
1298
- if ($allsceneids) {
1299
- $default_scene = $allsceneids[0];
1300
- } else {
1301
-
1302
- wp_send_json_error('<span class="pano-error-title">Missing Image & Scene ID</span> <p>Please Upload An Image and Set A Scene ID To See The Preview</p>');
1303
- die();
1304
- }
1305
- }
1306
-
1307
- $allsceneids_count = array_count_values($allsceneids);
1308
- foreach ($allsceneids_count as $key => $value) {
1309
- if ($value > 1) {
1310
- wp_send_json_error('<span class="pano-error-title">Duplicate Scene ID</span> <p>You\'ve assigned a duplicate Scene ID. <br/>Please assign unique Scene IDs to each scene. </p>');
1311
- die();
1312
- }
1313
- }
1314
-
1315
- foreach ($panodata["scene-list"] as $panoscenes) {
1316
- if (!empty($panoscenes['scene-id'])) {
1317
- $allhotspot = array();
1318
- foreach ($panoscenes["hotspot-list"] as $hotspot_val) {
1319
- if (!empty($hotspot_val["hotspot-title"])) {
1320
- array_push($allhotspot, $hotspot_val["hotspot-title"]);
1321
- }
1322
- }
1323
- $allhotspotcount = array_count_values($allhotspot);
1324
- foreach ($allhotspotcount as $key => $value) {
1325
- if ($value > 1) {
1326
- wp_send_json_error('<span class="pano-error-title">Duplicate Hotspot ID</span> <p>You\'ve assigned a duplicate Hotspot ID. <br/>Please assign unique Hotspot IDs to each Hotspot.</p>');
1327
- die();
1328
- }
1329
- }
1330
- }
1331
- }
1332
-
1333
- $panolength = count($panodata["scene-list"]);
1334
- for ($i = 0; $i < $panolength; $i++) {
1335
- if (empty($panodata["scene-list"][$i]['scene-id'])) {
1336
- unset($panodata["scene-list"][$i]);
1337
- } else {
1338
- $panohotspotlength = count($panodata["scene-list"][$i]['hotspot-list']);
1339
- for ($j = 0; $j < $panohotspotlength; $j++) {
1340
- if (empty($panodata["scene-list"][$i]['hotspot-list'][$j]['hotspot-title'])) {
1341
- unset($panodata["scene-list"][$i]['hotspot-list'][$j]);
1342
- }
1343
- }
1344
- }
1345
- }
1346
-
1347
- //===audio===//
1348
- $bg_music = 'off';
1349
- $bg_music_url = '';
1350
- $autoplay_bg_music = 'off';
1351
- $loop_bg_music = 'off';
1352
- $bg_music = sanitize_text_field($_POST['bg_music']);
1353
- $bg_music_url = esc_url_raw($_POST['bg_music_url']);
1354
- $autoplay_bg_music = sanitize_text_field($_POST['autoplay_bg_music']);
1355
- $loop_bg_music = sanitize_text_field($_POST['loop_bg_music']);
1356
- if ($bg_music == 'on') {
1357
- if (empty($bg_music_url)) {
1358
- wp_send_json_error('<p><span>Warning:</span> Please add an audio file as you enabled audio for this tour </p>');
1359
- die();
1360
- }
1361
- }
1362
- //===audio===//
1363
-
1364
- $pano_array = array();
1365
- $pano_array = array(__("panoid") => $panoid, __("autoLoad") => $autoload, __("hfov") => $default_global_zoom, __("maxHfov") => $max_global_zoom, __("minHfov") => $min_global_zoom, __("showControls") => $control, __("cpLogoSwitch") => $cpLogoSwitch, __("cpLogoImg") => $cpLogoImg, __("cpLogoContent") => $cpLogoContent, __("explainerSwitch") => $explainerSwitch, __("explainerContent") => $explainerContent, __("vrgallery") => $vrgallery, __("vrgallery_title") => $vrgallery_title, __("vrgallery_display") => $vrgallery_display, __("customcontrol") => $custom_control, __("gyro") => $gyro, __("deviceorientationcontrol") => $deviceorientationcontrol, __("compass") => $compass, __("mouseZoom") => $mouseZoom, __("draggable") => $draggable, __("diskeyboard") => $diskeyboard, __("keyboardzoom") => $keyboardzoom, __("autoRotate") => $autorotation, __("autoRotateInactivityDelay") => $autorotationinactivedelay, __("autoRotateStopDelay") => $autorotationstopdelay, __("preview") => $preview, __("defaultscene") => $default_scene, __("scenefadeduration") => $scene_fade_duration, __("bg_music") => $bg_music, __("bg_music_url") => $bg_music_url, __("autoplay_bg_music") => $autoplay_bg_music, __("loop_bg_music") => $loop_bg_music, __("panodata") => $panodata, __("previewtext") => $previewtext, __("bg_tour_enabler") => $bg_tour_enabler, __("bg_tour_navmenu") => $bg_tour_navmenu, __("bg_tour_title") => $bg_tour_title, __("bg_tour_subtitle") => $bg_tour_subtitle);
1366
-
1367
- if ($rotation == 'off') {
1368
- unset($pano_array['autoRotate']);
1369
- unset($pano_array['autoRotateInactivityDelay']);
1370
- unset($pano_array['autoRotateStopDelay']);
1371
- }
1372
- if (empty($autorotation)) {
1373
- unset($pano_array['autoRotate']);
1374
- unset($pano_array['autoRotateInactivityDelay']);
1375
- unset($pano_array['autoRotateStopDelay']);
1376
- }
1377
- if (empty($autorotationinactivedelay)) {
1378
- unset($pano_array['autoRotateInactivityDelay']);
1379
- }
1380
- if (empty($autorotationstopdelay)) {
1381
- unset($pano_array['autoRotateStopDelay']);
1382
- }
1383
- if (empty($autorotationstopdelay)) {
1384
- unset($pano_array['autoRotateStopDelay']);
1385
- }
1386
- update_post_meta($postid, 'panodata', $pano_array);
1387
- die();
1388
- }
1389
-
1390
- function wpvr_file_import()
1391
- {
1392
- set_time_limit(20000000000000000);
1393
- wpvr_delete_temp_file();
1394
- if ($_POST['fileurl']) {
1395
- WP_Filesystem();
1396
- $file_save_url = wp_upload_dir();
1397
- $fileurl = $_POST['fileurl'];
1398
- $attachment_id = $_POST['data_id'];
1399
- $zip_file_path = get_attached_file($attachment_id);
1400
- $unzipfile = unzip_file($zip_file_path, $file_save_url['basedir'] . '/wpvr/temp/');
1401
-
1402
- if (is_wp_error($unzipfile)) {
1403
- wpvr_delete_temp_file();
1404
- wp_send_json_error('Failed to unzip file');
1405
- }
1406
- $result = glob($file_save_url["basedir"] . '/wpvr/temp/*.json');
1407
- // var_dump($result);
1408
- // die();
1409
- if (!$result) {
1410
- wpvr_delete_temp_file();
1411
- wp_send_json_error('Tour json file not found');
1412
- }
1413
- $tour_json = $result[0];
1414
- $arrContextOptions = array(
1415
- "ssl" => array(
1416
- "verify_peer" => false,
1417
- "verify_peer_name" => false,
1418
- ),
1419
- );
1420
- $getfile = file_get_contents($tour_json, false, stream_context_create($arrContextOptions));
1421
- $file_content = json_decode($getfile, true);
1422
-
1423
- $new_title = $file_content['title'];
1424
- $new_data = $file_content['data'];
1425
- $new_post_id = wp_insert_post(array(
1426
- 'post_title' => $new_title,
1427
- 'post_type' => 'wpvr_item',
1428
- 'post_status' => 'publish',
1429
- ));
1430
- if ($new_post_id) {
1431
- if ($new_data['panoid']) {
1432
- $new_data['panoid'] = 'pano' . $new_post_id;
1433
- }
1434
- if ($new_data['preview']) {
1435
- $preview_url = $file_save_url['baseurl'] . '/wpvr/temp/scene_preview.jpg';
1436
- $media_get = wpvr_handle_media_import($preview_url, $new_post_id);
1437
- if ($media_get['status'] == 'error') {
1438
- wp_delete_post($new_post_id, true);
1439
- wpvr_delete_temp_file();
1440
- wp_send_json_error($media_get['message']);
1441
- } elseif ($media_get['status'] == 'success') {
1442
- $new_data['preview'] = $media_get['message'];
1443
- } else {
1444
- wp_delete_post($new_post_id, true);
1445
- wpvr_delete_temp_file();
1446
- wp_send_json_error('Media transfer process failed');
1447
- }
1448
- }
1449
- if ($new_data['preview']) {
1450
- $preview_url = $file_save_url['baseurl'] . '/wpvr/temp/scene_preview.jpg';
1451
- $media_get = wpvr_handle_media_import($preview_url, $new_post_id);
1452
- if ($media_get['status'] == 'error') {
1453
- wp_delete_post($new_post_id, true);
1454
- wpvr_delete_temp_file();
1455
- wp_send_json_error($media_get['message']);
1456
- } elseif ($media_get['status'] == 'success') {
1457
- $new_data['preview'] = $media_get['message'];
1458
- } else {
1459
- wp_delete_post($new_post_id, true);
1460
- wpvr_delete_temp_file();
1461
- wp_send_json_error('Media transfer process failed');
1462
- }
1463
- }
1464
- if ($new_data['cpLogoImg']) {
1465
- $logo = $new_data['cpLogoImg'];
1466
- $get_logo_format = explode(".", $logo);
1467
- $logo_format = end($get_logo_format);
1468
- $logo_img = $file_save_url['baseurl'] . '/wpvr/temp/logo_img.' . $logo_format;
1469
- $media_get = wpvr_handle_media_import($logo_img, $new_post_id);
1470
- if ($media_get['status'] == 'error') {
1471
- wp_delete_post($new_post_id, true);
1472
- wpvr_delete_temp_file();
1473
- wp_send_json_error($media_get['message']);
1474
- } elseif ($media_get['status'] == 'success') {
1475
- $new_data['cpLogoImg'] = $media_get['message'];
1476
- } else {
1477
- wp_delete_post($new_post_id, true);
1478
- wpvr_delete_temp_file();
1479
- wp_send_json_error('Media transfer process failed');
1480
- }
1481
- }
1482
- if ($new_data['bg_music_url']) {
1483
- $music_url = $new_data['bg_music_url'];
1484
- $get_music_format = explode(".", $music_url);
1485
- $music_format = end($get_music_format);
1486
- $music_url = $file_save_url['baseurl'] . '/wpvr/temp/music_url.' . $music_format;
1487
- $media_get = wpvr_handle_media_import($music_url, $new_post_id);
1488
- if ($media_get['status'] == 'error') {
1489
- wp_delete_post($new_post_id, true);
1490
- wpvr_delete_temp_file();
1491
- wp_send_json_error($media_get['message']);
1492
- } elseif ($media_get['status'] == 'success') {
1493
- $new_data['bg_music_url'] = $media_get['message'];
1494
- } else {
1495
- wp_delete_post($new_post_id, true);
1496
- wpvr_delete_temp_file();
1497
- wp_send_json_error('Media transfer process failed');
1498
- }
1499
- }
1500
- if ($new_data['panodata']) {
1501
-
1502
- if ($new_data['panodata']["scene-list"]) {
1503
-
1504
- foreach ($new_data['panodata']["scene-list"] as $key => $panoscenes) {
1505
-
1506
- if ($panoscenes['scene-type'] == 'cubemap') {
1507
-
1508
- // face 0
1509
- if ($panoscenes["scene-attachment-url-face0"]) {
1510
- $scene_id = $panoscenes['scene-id'];
1511
- $url = $file_save_url['baseurl'] . '/wpvr/temp/' . $scene_id . '_face0.jpg';
1512
- $media_get = wpvr_handle_media_import($url, $new_post_id);
1513
- if ($media_get['status'] == 'error') {
1514
- wp_delete_post($new_post_id, true);
1515
- wpvr_delete_temp_file();
1516
- wp_send_json_error($media_get['message']);
1517
- } elseif ($media_get['status'] == 'success') {
1518
- $new_data['panodata']["scene-list"][$key]['scene-attachment-url'] = $media_get['message'];
1519
- } else {
1520
- wp_delete_post($new_post_id, true);
1521
- wpvr_delete_temp_file();
1522
- wp_send_json_error('Media transfer process failed');
1523
- }
1524
- }
1525
-
1526
- // face 1
1527
- if ($panoscenes["scene-attachment-url-face1"]) {
1528
- $scene_id = $panoscenes['scene-id'];
1529
- $url = $file_save_url['baseurl'] . '/wpvr/temp/' . $scene_id . '_face1.jpg';
1530
- $media_get = wpvr_handle_media_import($url, $new_post_id);
1531
- if ($media_get['status'] == 'error') {
1532
- wp_delete_post($new_post_id, true);
1533
- wpvr_delete_temp_file();
1534
- wp_send_json_error($media_get['message']);
1535
- } elseif ($media_get['status'] == 'success') {
1536
- $new_data['panodata']["scene-list"][$key]['scene-attachment-url'] = $media_get['message'];
1537
- } else {
1538
- wp_delete_post($new_post_id, true);
1539
- wpvr_delete_temp_file();
1540
- wp_send_json_error('Media transfer process failed');
1541
- }
1542
- }
1543
-
1544
- // face 2
1545
- if ($panoscenes["scene-attachment-url-face2"]) {
1546
- $scene_id = $panoscenes['scene-id'];
1547
- $url = $file_save_url['baseurl'] . '/wpvr/temp/' . $scene_id . '_face2.jpg';
1548
- $media_get = wpvr_handle_media_import($url, $new_post_id);
1549
- if ($media_get['status'] == 'error') {
1550
- wp_delete_post($new_post_id, true);
1551
- wpvr_delete_temp_file();
1552
- wp_send_json_error($media_get['message']);
1553
- } elseif ($media_get['status'] == 'success') {
1554
- $new_data['panodata']["scene-list"][$key]['scene-attachment-url'] = $media_get['message'];
1555
- } else {
1556
- wp_delete_post($new_post_id, true);
1557
- wpvr_delete_temp_file();
1558
- wp_send_json_error('Media transfer process failed');
1559
- }
1560
- }
1561
-
1562
- // face 3
1563
- if ($panoscenes["scene-attachment-url-face0"]) {
1564
- $scene_id = $panoscenes['scene-id'];
1565
- $url = $file_save_url['baseurl'] . '/wpvr/temp/' . $scene_id . '_face3.jpg';
1566
- $media_get = wpvr_handle_media_import($url, $new_post_id);
1567
- if ($media_get['status'] == 'error') {
1568
- wp_delete_post($new_post_id, true);
1569
- wpvr_delete_temp_file();
1570
- wp_send_json_error($media_get['message']);
1571
- } elseif ($media_get['status'] == 'success') {
1572
- $new_data['panodata']["scene-list"][$key]['scene-attachment-url'] = $media_get['message'];
1573
- } else {
1574
- wp_delete_post($new_post_id, true);
1575
- wpvr_delete_temp_file();
1576
- wp_send_json_error('Media transfer process failed');
1577
- }
1578
- }
1579
-
1580
- // face 4
1581
- if ($panoscenes["scene-attachment-url-face4"]) {
1582
- $scene_id = $panoscenes['scene-id'];
1583
- $url = $file_save_url['baseurl'] . '/wpvr/temp/' . $scene_id . '_face4.jpg';
1584
- $media_get = wpvr_handle_media_import($url, $new_post_id);
1585
- if ($media_get['status'] == 'error') {
1586
- wp_delete_post($new_post_id, true);
1587
- wpvr_delete_temp_file();
1588
- wp_send_json_error($media_get['message']);
1589
- } elseif ($media_get['status'] == 'success') {
1590
- $new_data['panodata']["scene-list"][$key]['scene-attachment-url'] = $media_get['message'];
1591
- } else {
1592
- wp_delete_post($new_post_id, true);
1593
- wpvr_delete_temp_file();
1594
- wp_send_json_error('Media transfer process failed');
1595
- }
1596
- }
1597
-
1598
- // face 5
1599
- if ($panoscenes["scene-attachment-url-face5"]) {
1600
- $scene_id = $panoscenes['scene-id'];
1601
- $url = $file_save_url['baseurl'] . '/wpvr/temp/' . $scene_id . '_face5.jpg';
1602
- $media_get = wpvr_handle_media_import($url, $new_post_id);
1603
- if ($media_get['status'] == 'error') {
1604
- wp_delete_post($new_post_id, true);
1605
- wpvr_delete_temp_file();
1606
- wp_send_json_error($media_get['message']);
1607
- } elseif ($media_get['status'] == 'success') {
1608
- $new_data['panodata']["scene-list"][$key]['scene-attachment-url'] = $media_get['message'];
1609
- } else {
1610
- wp_delete_post($new_post_id, true);
1611
- wpvr_delete_temp_file();
1612
- wp_send_json_error('Media transfer process failed');
1613
- }
1614
- }
1615
- } else {
1616
- if ($panoscenes["scene-attachment-url"]) {
1617
- $scene_id = $panoscenes['scene-id'];
1618
- $url = $file_save_url['baseurl'] . '/wpvr/temp/' . $scene_id . '.jpg';
1619
- $media_get = wpvr_handle_media_import($url, $new_post_id);
1620
- if ($media_get['status'] == 'error') {
1621
- wp_delete_post($new_post_id, true);
1622
- wpvr_delete_temp_file();
1623
- wp_send_json_error($media_get['message']);
1624
- } elseif ($media_get['status'] == 'success') {
1625
- $new_data['panodata']["scene-list"][$key]['scene-attachment-url'] = $media_get['message'];
1626
- } else {
1627
- wp_delete_post($new_post_id, true);
1628
- wpvr_delete_temp_file();
1629
- wp_send_json_error('Media transfer process failed');
1630
- }
1631
- }
1632
- }
1633
- }
1634
- }
1635
- update_post_meta($new_post_id, 'panodata', $new_data);
1636
- wpvr_delete_temp_file();
1637
- }
1638
- }
1639
- } else {
1640
- wpvr_delete_temp_file();
1641
- wp_send_json_error('No file found to import');
1642
- }
1643
- die();
1644
- }
1645
-
1646
- /**
1647
- * Video Preview show ajax function
1648
- */
1649
- function wpvrstreetview_preview()
1650
- {
1651
- $panoid = '';
1652
- $html = '';
1653
- $postid = sanitize_text_field($_POST['postid']);
1654
- $panoid = 'pano' . $postid;
1655
- $randid = rand(1000, 1000000);
1656
- $streetviewid = 'streetview' . $randid;
1657
- $streetviewurl = $_POST['streetview'];
1658
- if ($streetviewurl) {
1659
- $html .= '<iframe src="' . $streetviewurl . '" width="600" height="400" frameborder="0" style="border:0;" allowfullscreen=""></iframe>';
1660
- }
1661
-
1662
- $response = array();
1663
- $response = array(__("panoid") => $panoid, __("panodata") => $html, __("streetview") => $streetviewid);
1664
- wp_send_json_success($response);
1665
- }
1666
-
1667
- /**
1668
- * Role management
1669
- */
1670
- function wpvr_role_management()
1671
- {
1672
- $editor = sanitize_text_field($_POST['editor']);
1673
- $author = sanitize_text_field($_POST['author']);
1674
- $fontawesome = sanitize_text_field($_POST['fontawesome']);
1675
- $mobile_media_resize = sanitize_text_field($_POST['mobile_media_resize']);
1676
- $high_res_image = sanitize_text_field($_POST['high_res_image']);
1677
- $dis_on_hover = sanitize_text_field($_POST['dis_on_hover']);
1678
- $wpvr_frontend_notice = sanitize_text_field($_POST['wpvr_frontend_notice']);
1679
- $wpvr_frontend_notice_area = sanitize_text_field($_POST['wpvr_frontend_notice_area']);
1680
- $wpvr_script_control = sanitize_text_field($_POST['wpvr_script_control']);
1681
- $wpvr_script_list = sanitize_text_field($_POST['wpvr_script_list']);
1682
-
1683
- $wpvr_video_script_control = sanitize_text_field($_POST['wpvr_video_script_control']);
1684
- $wpvr_video_script_list = sanitize_text_field($_POST['wpvr_video_script_list']);
1685
-
1686
- // $enable_woocommerce = sanitize_text_field($_POST['woocommerce']);
1687
-
1688
- $wpvr_script_list = str_replace(' ', '', $wpvr_script_list);
1689
-
1690
- update_option('wpvr_editor_active', $editor);
1691
- update_option('wpvr_author_active', $author);
1692
- update_option('wpvr_fontawesome_disable', $fontawesome);
1693
- update_option('mobile_media_resize', $mobile_media_resize);
1694
- update_option('high_res_image', $high_res_image);
1695
- update_option('dis_on_hover', $dis_on_hover);
1696
- update_option('wpvr_frontend_notice', $wpvr_frontend_notice);
1697
- update_option('wpvr_frontend_notice_area', $wpvr_frontend_notice_area);
1698
- update_option('wpvr_script_control', $wpvr_script_control);
1699
- update_option('wpvr_script_list', $wpvr_script_list);
1700
-
1701
- update_option('wpvr_video_script_control', $wpvr_video_script_control);
1702
- update_option('wpvr_video_script_list', $wpvr_video_script_list);
1703
-
1704
- // update_option('wpvr_enable_woocommerce', $enable_woocommerce);
1705
-
1706
- $response = array(
1707
- 'status' => 'success',
1708
- 'message' => 'Successfully saved',
1709
- );
1710
- wp_send_json($response);
1711
- }
1712
-
1713
- /**
1714
- * Notice
1715
- */
1716
- function wpvr_notice()
1717
- {
1718
- update_option('wpvr_warning', '1');
1719
- }
1720
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
trunk/admin/class-wpvr-icon.php DELETED
@@ -1,1018 +0,0 @@
1
- <?php
2
- if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
3
- /**
4
- * The fontawesome functionality of the plugin.
5
- *
6
- * @link http://rextheme.com/
7
- * @since 1.0.0
8
- *
9
- * @package
10
- * @subpackage /admin
11
- */
12
-
13
- class Wpvr_fontawesome_icons {
14
-
15
- public $icon;
16
-
17
- /**
18
- * Admin icon setup is specified in this area.
19
- */
20
-
21
- public function __construct() {
22
-
23
- $this->icon = array (
24
- 'none' => 'None',
25
- 'fab fa-500px' => '500px',
26
- 'fab fa-accessible-icon' => 'accessible-icon',
27
- 'fab fa-accusoft' => 'accusoft',
28
- 'fas fa-address-book' => 'address-book',
29
- 'far fa-address-book' => 'address-book',
30
- 'fas fa-address-card' => 'address-card',
31
- 'far fa-address-card' => 'address-card',
32
- 'fas fa-adjust' => 'adjust',
33
- 'fab fa-adn' => 'adn',
34
- 'fab fa-adversal' => 'adversal',
35
- 'fab fa-affiliatetheme' => 'affiliatetheme',
36
- 'fab fa-algolia' => 'algolia',
37
- 'fas fa-align-center' => 'align-center',
38
- 'fas fa-align-justify' => 'align-justify',
39
- 'fas fa-align-left' => 'align-left',
40
- 'fas fa-align-right' => 'align-right',
41
- 'fas fa-allergies' => 'allergies',
42
- 'fab fa-amazon' => 'amazon',
43
- 'fab fa-amazon-pay' => 'amazon-pay',
44
- 'fas fa-ambulance' => 'ambulance',
45
- 'fas fa-american-sign-language-interpreting' => 'american-sign-language-interpreting',
46
- 'fab fa-amilia' => 'amilia',
47
- 'fas fa-anchor' => 'anchor',
48
- 'fab fa-android' => 'android',
49
- 'fab fa-angellist' => 'angellist',
50
- 'fas fa-angle-double-down' => 'angle-double-down',
51
- 'fas fa-angle-double-left' => 'angle-double-left',
52
- 'fas fa-angle-double-right' => 'angle-double-right',
53
- 'fas fa-angle-double-up' => 'angle-double-up',
54
- 'fas fa-angle-down' => 'angle-down',
55
- 'fas fa-angle-left' => 'angle-left',
56
- 'fas fa-angle-right' => 'angle-right',
57
- 'fas fa-angle-up' => 'angle-up',
58
- 'fab fa-angrycreative' => 'angrycreative',
59
- 'fab fa-angular' => 'angular',
60
- 'fab fa-app-store' => 'app-store',
61
- 'fab fa-app-store-ios' => 'app-store-ios',
62
- 'fab fa-apper' => 'apper',
63
- 'fab fa-apple' => 'apple',
64
- 'fab fa-apple-pay' => 'apple-pay',
65
- 'fas fa-archive' => 'archive',
66
- 'fas fa-arrow-alt-circle-down' => 'arrow-alt-circle-down',
67
- 'far fa-arrow-alt-circle-down' => 'arrow-alt-circle-down',
68
- 'fas fa-arrow-alt-circle-left' => 'arrow-alt-circle-left',
69
- 'far fa-arrow-alt-circle-left' => 'arrow-alt-circle-left',
70
- 'fas fa-arrow-alt-circle-right' => 'arrow-alt-circle-right',
71
- 'far fa-arrow-alt-circle-right' => 'arrow-alt-circle-right',
72
- 'fas fa-arrow-alt-circle-up' => 'arrow-alt-circle-up',
73
- 'far fa-arrow-alt-circle-up' => 'arrow-alt-circle-up',
74
- 'fas fa-arrow-circle-down' => 'arrow-circle-down',
75
- 'fas fa-arrow-circle-left' => 'arrow-circle-left',
76
- 'fas fa-arrow-circle-right' => 'arrow-circle-right',
77
- 'fas fa-arrow-circle-up' => 'arrow-circle-up',
78
- 'fas fa-arrow-down' => 'arrow-down',
79
- 'fas fa-arrow-left' => 'arrow-left',
80
- 'fas fa-arrow-right' => 'arrow-right',
81
- 'fas fa-arrow-up' => 'arrow-up',
82
- 'fas fa-arrows-alt' => 'arrows-alt',
83
- 'fas fa-arrows-alt-h' => 'arrows-alt-h',
84
- 'fas fa-arrows-alt-v' => 'arrows-alt-v',
85
- 'fas fa-assistive-listening-systems' => 'assistive-listening-systems',
86
- 'fas fa-asterisk' => 'asterisk',
87
- 'fab fa-asymmetrik' => 'asymmetrik',
88
- 'fas fa-at' => 'at',
89
- 'fab fa-audible' => 'audible',
90
- 'fas fa-audio-description' => 'audio-description',
91
- 'fab fa-autoprefixer' => 'autoprefixer',
92
- 'fab fa-avianex' => 'avianex',
93
- 'fab fa-aviato' => 'aviato',
94
- 'fab fa-aws' => 'aws',
95
- 'fas fa-backward' => 'backward',
96
- 'fas fa-balance-scale' => 'balance-scale',
97
- 'fas fa-ban' => 'ban',
98
- 'fas fa-band-aid' => 'band-aid',
99
- 'fab fa-bandcamp' => 'bandcamp',
100
- 'fas fa-barcode' => 'barcode',
101
- 'fas fa-bars' => 'bars',
102
- 'fas fa-baseball-ball' => 'baseball-ball',
103
- 'fas fa-basketball-ball' => 'basketball-ball',
104
- 'fas fa-bath' => 'bath',
105
- 'fas fa-battery-empty' => 'battery-empty',
106
- 'fas fa-battery-full' => 'battery-full',
107
- 'fas fa-battery-half' => 'battery-half',
108
- 'fas fa-battery-quarter' => 'battery-quarter',
109
- 'fas fa-battery-three-quarters' => 'battery-three-quarters',
110
- 'fas fa-bed' => 'bed',
111
- 'fas fa-beer' => 'beer',
112
- 'fab fa-behance' => 'behance',
113
- 'fab fa-behance-square' => 'behance-square',
114
- 'fas fa-bell' => 'bell',
115
- 'far fa-bell' => 'bell',
116
- 'fas fa-bell-slash' => 'bell-slash',
117
- 'far fa-bell-slash' => 'bell-slash',
118
- 'fas fa-bicycle' => 'bicycle',
119
- 'fab fa-bimobject' => 'bimobject',
120
- 'fas fa-binoculars' => 'binoculars',
121
- 'fas fa-birthday-cake' => 'birthday-cake',
122
- 'fab fa-bitbucket' => 'bitbucket',
123
- 'fab fa-bitcoin' => 'bitcoin',
124
- 'fab fa-bity' => 'bity',
125
- 'fab fa-black-tie' => 'black-tie',
126
- 'fab fa-blackberry' => 'blackberry',
127
- 'fas fa-blind' => 'blind',
128
- 'fab fa-blogger' => 'blogger',
129
- 'fab fa-blogger-b' => 'blogger-b',
130
- 'fab fa-bluetooth' => 'bluetooth',
131
- 'fab fa-bluetooth-b' => 'bluetooth-b',
132
- 'fas fa-bold' => 'bold',
133
- 'fas fa-bolt' => 'bolt',
134
- 'fas fa-bomb' => 'bomb',
135
- 'fas fa-book' => 'book',
136
- 'fas fa-bookmark' => 'bookmark',
137
- 'far fa-bookmark' => 'bookmark',
138
- 'fas fa-bowling-ball' => 'bowling-ball',
139
- 'fas fa-box' => 'box',
140
- 'fas fa-box-open' => 'box-open',
141
- 'fas fa-boxes' => 'boxes',
142
- 'fas fa-braille' => 'braille',
143
- 'fas fa-briefcase' => 'briefcase',
144
- 'fas fa-briefcase-medical' => 'briefcase-medical',
145
- 'fab fa-btc' => 'btc',
146
- 'fas fa-bug' => 'bug',
147
- 'fas fa-building' => 'building',
148
- 'far fa-building' => 'building',
149
- 'fas fa-bullhorn' => 'bullhorn',
150
- 'fas fa-bullseye' => 'bullseye',
151
- 'fas fa-burn' => 'burn',
152
- 'fab fa-buromobelexperte' => 'buromobelexperte',
153
- 'fas fa-bus' => 'bus',
154
- 'fab fa-buysellads' => 'buysellads',
155
- 'fas fa-calculator' => 'calculator',
156
- 'fas fa-calendar' => 'calendar',
157
- 'far fa-calendar' => 'calendar',
158
- 'fas fa-calendar-alt' => 'calendar-alt',
159
- 'far fa-calendar-alt' => 'calendar-alt',
160
- 'fas fa-calendar-check' => 'calendar-check',
161
- 'far fa-calendar-check' => 'calendar-check',
162
- 'fas fa-calendar-minus' => 'calendar-minus',
163
- 'far fa-calendar-minus' => 'calendar-minus',
164
- 'fas fa-calendar-plus' => 'calendar-plus',
165
- 'far fa-calendar-plus' => 'calendar-plus',
166
- 'fas fa-calendar-times' => 'calendar-times',
167
- 'far fa-calendar-times' => 'calendar-times',
168
- 'fas fa-camera' => 'camera',
169
- 'fas fa-camera-retro' => 'camera-retro',
170
- 'fas fa-capsules' => 'capsules',
171
- 'fas fa-car' => 'car',
172
- 'fas fa-caret-down' => 'caret-down',
173
- 'fas fa-caret-left' => 'caret-left',
174
- 'fas fa-caret-right' => 'caret-right',
175
- 'fas fa-caret-square-down' => 'caret-square-down',
176
- 'far fa-caret-square-down' => 'caret-square-down',
177
- 'fas fa-caret-square-left' => 'caret-square-left',
178
- 'far fa-caret-square-left' => 'caret-square-left',
179
- 'fas fa-caret-square-right' => 'caret-square-right',
180
- 'far fa-caret-square-right' => 'caret-square-right',
181
- 'fas fa-caret-square-up' => 'caret-square-up',
182
- 'far fa-caret-square-up' => 'caret-square-up',
183
- 'fas fa-caret-up' => 'caret-up',
184
- 'fas fa-cart-arrow-down' => 'cart-arrow-down',
185
- 'fas fa-cart-plus' => 'cart-plus',
186
- 'fab fa-cc-amazon-pay' => 'cc-amazon-pay',
187
- 'fab fa-cc-amex' => 'cc-amex',
188
- 'fab fa-cc-apple-pay' => 'cc-apple-pay',
189
- 'fab fa-cc-diners-club' => 'cc-diners-club',
190
- 'fab fa-cc-discover' => 'cc-discover',
191
- 'fab fa-cc-jcb' => 'cc-jcb',
192
- 'fab fa-cc-mastercard' => 'cc-mastercard',
193
- 'fab fa-cc-paypal' => 'cc-paypal',
194
- 'fab fa-cc-stripe' => 'cc-stripe',
195
- 'fab fa-cc-visa' => 'cc-visa',
196
- 'fab fa-centercode' => 'centercode',
197
- 'fas fa-certificate' => 'certificate',
198
- 'fas fa-chart-area' => 'chart-area',
199
- 'fas fa-chart-bar' => 'chart-bar',
200
- 'far fa-chart-bar' => 'chart-bar',
201
- 'fas fa-chart-line' => 'chart-line',
202
- 'fas fa-chart-pie' => 'chart-pie',
203
- 'fas fa-check' => 'check',
204
- 'fas fa-check-circle' => 'check-circle',
205
- 'far fa-check-circle' => 'check-circle',
206
- 'fas fa-check-square' => 'check-square',
207
- 'far fa-check-square' => 'check-square',
208
- 'fas fa-chess' => 'chess',
209
- 'fas fa-chess-bishop' => 'chess-bishop',
210
- 'fas fa-chess-board' => 'chess-board',
211
- 'fas fa-chess-king' => 'chess-king',
212
- 'fas fa-chess-knight' => 'chess-knight',
213
- 'fas fa-chess-pawn' => 'chess-pawn',
214
- 'fas fa-chess-queen' => 'chess-queen',
215
- 'fas fa-chess-rook' => 'chess-rook',
216
- 'fas fa-chevron-circle-down' => 'chevron-circle-down',
217
- 'fas fa-chevron-circle-left' => 'chevron-circle-left',
218
- 'fas fa-chevron-circle-right' => 'chevron-circle-right',
219
- 'fas fa-chevron-circle-up' => 'chevron-circle-up',
220
- 'fas fa-chevron-down' => 'chevron-down',
221
- 'fas fa-chevron-left' => 'chevron-left',
222
- 'fas fa-chevron-right' => 'chevron-right',
223
- 'fas fa-chevron-up' => 'chevron-up',
224
- 'fas fa-child' => 'child',
225
- 'fab fa-chrome' => 'chrome',
226
- 'fas fa-circle' => 'circle',
227
- 'far fa-circle' => 'circle',
228
- 'fas fa-circle-notch' => 'circle-notch',
229
- 'fas fa-clipboard' => 'clipboard',
230
- 'far fa-clipboard' => 'clipboard',
231
- 'fas fa-clipboard-check' => 'clipboard-check',
232
- 'fas fa-clipboard-list' => 'clipboard-list',
233
- 'fas fa-clock' => 'clock',
234
- 'far fa-clock' => 'clock',
235
- 'fas fa-clone' => 'clone',
236
- 'far fa-clone' => 'clone',
237
- 'fas fa-closed-captioning' => 'closed-captioning',
238
- 'far fa-closed-captioning' => 'closed-captioning',
239
- 'fas fa-cloud' => 'cloud',
240
- 'fas fa-cloud-download-alt' => 'cloud-download-alt',
241
- 'fas fa-cloud-upload-alt' => 'cloud-upload-alt',
242
- 'fab fa-cloudscale' => 'cloudscale',
243
- 'fab fa-cloudsmith' => 'cloudsmith',
244
- 'fab fa-cloudversify' => 'cloudversify',
245
- 'fas fa-code' => 'code',
246
- 'fas fa-code-branch' => 'code-branch',
247
- 'fab fa-codepen' => 'codepen',
248
- 'fab fa-codiepie' => 'codiepie',
249
- 'fas fa-coffee' => 'coffee',
250
- 'fas fa-cog' => 'cog',
251
- 'fas fa-cogs' => 'cogs',
252
- 'fas fa-columns' => 'columns',
253
- 'fas fa-comment' => 'comment',
254
- 'far fa-comment' => 'comment',
255
- 'fas fa-comment-alt' => 'comment-alt',
256
- 'far fa-comment-alt' => 'comment-alt',
257
- 'fas fa-comment-dots' => 'comment-dots',
258
- 'fas fa-comment-slash' => 'comment-slash',
259
- 'fas fa-comments' => 'comments',
260
- 'far fa-comments' => 'comments',
261
- 'fas fa-compass' => 'compass',
262
- 'far fa-compass' => 'compass',
263
- 'fas fa-compress' => 'compress',
264
- 'fab fa-connectdevelop' => 'connectdevelop',
265
- 'fab fa-contao' => 'contao',
266
- 'fas fa-copy' => 'copy',
267
- 'far fa-copy' => 'copy',
268
- 'fas fa-copyright' => 'copyright',
269
- 'far fa-copyright' => 'copyright',
270
- 'fas fa-couch' => 'couch',
271
- 'fab fa-cpanel' => 'cpanel',
272
- 'fab fa-creative-commons' => 'creative-commons',
273
- 'fas fa-credit-card' => 'credit-card',
274
- 'far fa-credit-card' => 'credit-card',
275
- 'fas fa-crop' => 'crop',
276
- 'fas fa-crosshairs' => 'crosshairs',
277
- 'fab fa-css3' => 'css3',
278
- 'fab fa-css3-alt' => 'css3-alt',
279
- 'fas fa-cube' => 'cube',
280
- 'fas fa-cubes' => 'cubes',
281
- 'fas fa-cut' => 'cut',
282
- 'fab fa-cuttlefish' => 'cuttlefish',
283
- 'fab fa-d-and-d' => 'd-and-d',
284
- 'fab fa-dashcube' => 'dashcube',
285
- 'fas fa-database' => 'database',
286
- 'fas fa-deaf' => 'deaf',
287
- 'fab fa-delicious' => 'delicious',
288
- 'fab fa-deploydog' => 'deploydog',
289
- 'fab fa-deskpro' => 'deskpro',
290
- 'fas fa-desktop' => 'desktop',
291
- 'fab fa-deviantart' => 'deviantart',
292
- 'fas fa-diagnoses' => 'diagnoses',
293
- 'fab fa-digg' => 'digg',
294
- 'fab fa-digital-ocean' => 'digital-ocean',
295
- 'fab fa-discord' => 'discord',
296
- 'fab fa-discourse' => 'discourse',
297
- 'fas fa-dna' => 'dna',
298
- 'fab fa-dochub' => 'dochub',
299
- 'fab fa-docker' => 'docker',
300
- 'fas fa-dollar-sign' => 'dollar-sign',
301
- 'fas fa-dolly' => 'dolly',
302
- 'fas fa-dolly-flatbed' => 'dolly-flatbed',
303
- 'fas fa-donate' => 'donate',
304
- 'fas fa-dot-circle' => 'dot-circle',
305
- 'far fa-dot-circle' => 'dot-circle',
306
- 'fas fa-dove' => 'dove',
307
- 'fas fa-download' => 'download',
308
- 'fab fa-draft2digital' => 'draft2digital',
309
- 'fab fa-dribbble' => 'dribbble',
310
- 'fab fa-dribbble-square' => 'dribbble-square',
311
- 'fab fa-dropbox' => 'dropbox',
312
- 'fab fa-drupal' => 'drupal',
313
- 'fab fa-dyalog' => 'dyalog',
314
- 'fab fa-earlybirds' => 'earlybirds',
315
- 'fab fa-edge' => 'edge',
316
- 'fas fa-edit' => 'edit',
317
- 'far fa-edit' => 'edit',
318
- 'fas fa-eject' => 'eject',
319
- 'fab fa-elementor' => 'elementor',
320
- 'fas fa-ellipsis-h' => 'ellipsis-h',
321
- 'fas fa-ellipsis-v' => 'ellipsis-v',
322
- 'fab fa-ember' => 'ember',
323
- 'fab fa-empire' => 'empire',
324
- 'fas fa-envelope' => 'envelope',
325
- 'far fa-envelope' => 'envelope',
326
- 'fas fa-envelope-open' => 'envelope-open',
327
- 'far fa-envelope-open' => 'envelope-open',
328
- 'fas fa-envelope-square' => 'envelope-square',
329
- 'fab fa-envira' => 'envira',
330
- 'fas fa-eraser' => 'eraser',
331
- 'fab fa-erlang' => 'erlang',
332
- 'fab fa-ethereum' => 'ethereum',
333
- 'fab fa-etsy' => 'etsy',
334
- 'fas fa-euro-sign' => 'euro-sign',
335
- 'fas fa-exchange-alt' => 'exchange-alt',
336
- 'fas fa-exclamation' => 'exclamation',
337
- 'fas fa-exclamation-circle' => 'exclamation-circle',
338
- 'fas fa-exclamation-triangle' => 'exclamation-triangle',
339
- 'fas fa-expand' => 'expand',
340
- 'fas fa-expand-arrows-alt' => 'expand-arrows-alt',
341
- 'fab fa-expeditedssl' => 'expeditedssl',
342
- 'fas fa-external-link-alt' => 'external-link-alt',
343
- 'fas fa-external-link-square-alt' => 'external-link-square-alt',
344
- 'fas fa-eye' => 'eye',
345
- 'fas fa-eye-dropper' => 'eye-dropper',
346
- 'fas fa-eye-slash' => 'eye-slash',
347
- 'far fa-eye-slash' => 'eye-slash',
348
- 'fab fa-facebook' => 'facebook',
349
- 'fab fa-facebook-f' => 'facebook-f',
350
- 'fab fa-facebook-messenger' => 'facebook-messenger',
351
- 'fab fa-facebook-square' => 'facebook-square',
352
- 'fas fa-fast-backward' => 'fast-backward',
353
- 'fas fa-fast-forward' => 'fast-forward',
354
- 'fas fa-fax' => 'fax',
355
- 'fas fa-female' => 'female',
356
- 'fas fa-fighter-jet' => 'fighter-jet',
357
- 'fas fa-file' => 'file',
358
- 'far fa-file' => 'file',
359
- 'fas fa-file-alt' => 'file-alt',
360
- 'far fa-file-alt' => 'file-alt',
361
- 'fas fa-file-archive' => 'file-archive',
362
- 'far fa-file-archive' => 'file-archive',
363
- 'fas fa-file-audio' => 'file-audio',
364
- 'far fa-file-audio' => 'file-audio',
365
- 'fas fa-file-code' => 'file-code',
366
- 'far fa-file-code' => 'file-code',
367
- 'fas fa-file-excel' => 'file-excel',
368
- 'far fa-file-excel' => 'file-excel',
369
- 'fas fa-file-image' => 'file-image',
370
- 'far fa-file-image' => 'file-image',
371
- 'fas fa-file-medical' => 'file-medical',
372
- 'fas fa-file-medical-alt' => 'file-medical-alt',
373
- 'fas fa-file-pdf' => 'file-pdf',
374
- 'far fa-file-pdf' => 'file-pdf',
375
- 'fas fa-file-powerpoint' => 'file-powerpoint',
376
- 'far fa-file-powerpoint' => 'file-powerpoint',
377
- 'fas fa-file-video' => 'file-video',
378
- 'far fa-file-video' => 'file-video',
379
- 'fas fa-file-word' => 'file-word',
380
- 'far fa-file-word' => 'file-word',
381
- 'fas fa-film' => 'film',
382
- 'fas fa-filter' => 'filter',
383
- 'fas fa-fire' => 'fire',
384
- 'fas fa-fire-extinguisher' => 'fire-extinguisher',
385
- 'fab fa-firefox' => 'firefox',
386
- 'fas fa-first-aid' => 'first-aid',
387
- 'fab fa-first-order' => 'first-order',
388
- 'fab fa-firstdraft' => 'firstdraft',
389
- 'fas fa-flag' => 'flag',
390
- 'far fa-flag' => 'flag',
391
- 'fas fa-flag-checkered' => 'flag-checkered',
392
- 'fas fa-flask' => 'flask',
393
- 'fab fa-flickr' => 'flickr',
394
- 'fab fa-flipboard' => 'flipboard',
395
- 'fab fa-fly' => 'fly',
396
- 'fas fa-folder' => 'folder',
397
- 'far fa-folder' => 'folder',
398
- 'fas fa-folder-open' => 'folder-open',
399
- 'far fa-folder-open' => 'folder-open',
400
- 'fas fa-font' => 'font',
401
- 'fab fa-font-awesome' => 'font-awesome',
402
- 'fab fa-font-awesome-alt' => 'font-awesome-alt',
403
- 'fab fa-font-awesome-flag' => 'font-awesome-flag',
404
- 'fab fa-fonticons' => 'fonticons',
405
- 'fab fa-fonticons-fi' => 'fonticons-fi',
406
- 'fas fa-football-ball' => 'football-ball',
407
- 'fab fa-fort-awesome' => 'fort-awesome',
408
- 'fab fa-fort-awesome-alt' => 'fort-awesome-alt',
409
- 'fab fa-forumbee' => 'forumbee',
410
- 'fas fa-forward' => 'forward',
411
- 'fab fa-foursquare' => 'foursquare',
412
- 'fab fa-free-code-camp' => 'free-code-camp',
413
- 'fab fa-freebsd' => 'freebsd',
414
- 'fas fa-frown' => 'frown',
415
- 'far fa-frown' => 'frown',
416
- 'fas fa-futbol' => 'futbol',
417
- 'far fa-futbol' => 'futbol',
418
- 'fas fa-gamepad' => 'gamepad',
419
- 'fas fa-gavel' => 'gavel',
420
- 'fas fa-gem' => 'gem',
421
- 'far fa-gem' => 'gem',
422
- 'fas fa-genderless' => 'genderless',
423
- 'fab fa-get-pocket' => 'get-pocket',
424
- 'fab fa-gg' => 'gg',
425
- 'fab fa-gg-circle' => 'gg-circle',
426
- 'fas fa-gift' => 'gift',
427
- 'fab fa-git' => 'git',
428
- 'fab fa-git-square' => 'git-square',
429
- 'fab fa-github' => 'github',
430
- 'fab fa-github-alt' => 'github-alt',
431
- 'fab fa-github-square' => 'github-square',
432
- 'fab fa-gitkraken' => 'gitkraken',
433
- 'fab fa-gitlab' => 'gitlab',
434
- 'fab fa-gitter' => 'gitter',
435
- 'fas fa-glass-martini' => 'glass-martini',
436
- 'fab fa-glide' => 'glide',
437
- 'fab fa-glide-g' => 'glide-g',
438
- 'fas fa-globe' => 'globe',
439
- 'fab fa-gofore' => 'gofore',
440
- 'fas fa-golf-ball' => 'golf-ball',
441
- 'fab fa-goodreads' => 'goodreads',
442
- 'fab fa-goodreads-g' => 'goodreads-g',
443
- 'fab fa-google' => 'google',
444
- 'fab fa-google-drive' => 'google-drive',
445
- 'fab fa-google-play' => 'google-play',
446
- 'fab fa-google-plus' => 'google-plus',
447
- 'fab fa-google-plus-g' => 'google-plus-g',
448
- 'fab fa-google-plus-square' => 'google-plus-square',
449
- 'fab fa-google-wallet' => 'google-wallet',
450
- 'fas fa-graduation-cap' => 'graduation-cap',
451
- 'fab fa-gratipay' => 'gratipay',
452
- 'fab fa-grav' => 'grav',
453
- 'fab fa-gripfire' => 'gripfire',
454
- 'fab fa-grunt' => 'grunt',
455
- 'fab fa-gulp' => 'gulp',
456
- 'fas fa-h-square' => 'h-square',
457
- 'fab fa-hacker-news' => 'hacker-news',
458
- 'fab fa-hacker-news-square' => 'hacker-news-square',
459
- 'fas fa-hand-holding' => 'hand-holding',
460
- 'fas fa-hand-holding-heart' => 'hand-holding-heart',
461
- 'fas fa-hand-holding-usd' => 'hand-holding-usd',
462
- 'fas fa-hand-lizard' => 'hand-lizard',
463
- 'far fa-hand-lizard' => 'hand-lizard',
464
- 'fas fa-hand-paper' => 'hand-paper',
465
- 'far fa-hand-paper' => 'hand-paper',
466
- 'fas fa-hand-peace' => 'hand-peace',
467
- 'far fa-hand-peace' => 'hand-peace',
468
- 'fas fa-hand-point-down' => 'hand-point-down',
469
- 'far fa-hand-point-down' => 'hand-point-down',
470
- 'fas fa-hand-point-left' => 'hand-point-left',
471
- 'far fa-hand-point-left' => 'hand-point-left',
472
- 'fas fa-hand-point-right' => 'hand-point-right',
473
- 'far fa-hand-point-right' => 'hand-point-right',
474
- 'fas fa-hand-point-up' => 'hand-point-up',
475
- 'far fa-hand-point-up' => 'hand-point-up',
476
- 'fas fa-hand-pointer' => 'hand-pointer',
477
- 'far fa-hand-pointer' => 'hand-pointer',
478
- 'fas fa-hand-rock' => 'hand-rock',
479
- 'far fa-hand-rock' => 'hand-rock',
480
- 'fas fa-hand-scissors' => 'hand-scissors',
481
- 'far fa-hand-scissors' => 'hand-scissors',
482
- 'fas fa-hand-spock' => 'hand-spock',
483
- 'far fa-hand-spock' => 'hand-spock',
484
- 'fas fa-hands' => 'hands',
485
- 'fas fa-hands-helping' => 'hands-helping',
486
- 'fas fa-handshake' => 'handshake',
487
- 'far fa-handshake' => 'handshake',
488
- 'fas fa-hashtag' => 'hashtag',
489
- 'fas fa-hdd' => 'hdd',
490
- 'far fa-hdd' => 'hdd',
491
- 'fas fa-heading' => 'heading',
492
- 'fas fa-headphones' => 'headphones',
493
- 'fas fa-heart' => 'heart',
494
- 'far fa-heart' => 'heart',
495
- 'fas fa-heartbeat' => 'heartbeat',
496
- 'fab fa-hips' => 'hips',
497
- 'fab fa-hire-a-helper' => 'hire-a-helper',
498
- 'fas fa-history' => 'history',
499
- 'fas fa-hockey-puck' => 'hockey-puck',
500
- 'fas fa-home' => 'home',
501
- 'fab fa-hooli' => 'hooli',
502
- 'fas fa-hospital' => 'hospital',
503
- 'far fa-hospital' => 'hospital',
504
- 'fas fa-hospital-alt' => 'hospital-alt',
505
- 'fas fa-hospital-symbol' => 'hospital-symbol',
506
- 'fab fa-hotjar' => 'hotjar',
507
- 'fas fa-hourglass' => 'hourglass',
508
- 'far fa-hourglass' => 'hourglass',
509
- 'fas fa-hourglass-end' => 'hourglass-end',
510
- 'fas fa-hourglass-half' => 'hourglass-half',
511
- 'fas fa-hourglass-start' => 'hourglass-start',
512
- 'fab fa-houzz' => 'houzz',
513
- 'fab fa-html5' => 'html5',
514
- 'fab fa-hubspot' => 'hubspot',
515
- 'fas fa-i-cursor' => 'i-cursor',
516
- 'fas fa-id-badge' => 'id-badge',
517
- 'far fa-id-badge' => 'id-badge',
518
- 'fas fa-id-card' => 'id-card',
519
- 'far fa-id-card' => 'id-card',
520
- 'fas fa-id-card-alt' => 'id-card-alt',
521
- 'fas fa-image' => 'image',
522
- 'far fa-image' => 'image',
523
- 'fas fa-images' => 'images',
524
- 'far fa-images' => 'images',
525
- 'fab fa-imdb' => 'imdb',
526
- 'fas fa-inbox' => 'inbox',
527
- 'fas fa-indent' => 'indent',
528
- 'fas fa-industry' => 'industry',
529
- 'fas fa-info' => 'info',
530
- 'fas fa-info-circle' => 'info-circle',
531
- 'fab fa-instagram' => 'instagram',
532
- 'fab fa-internet-explorer' => 'internet-explorer',
533
- 'fab fa-ioxhost' => 'ioxhost',
534
- 'fas fa-italic' => 'italic',
535
- 'fab fa-itunes' => 'itunes',
536
- 'fab fa-itunes-note' => 'itunes-note',
537
- 'fab fa-java' => 'java',
538
- 'fab fa-jenkins' => 'jenkins',
539
- 'fab fa-joget' => 'joget',
540
- 'fab fa-joomla' => 'joomla',
541
- 'fab fa-js' => 'js',
542
- 'fab fa-js-square' => 'js-square',
543
- 'fab fa-jsfiddle' => 'jsfiddle',
544
- 'fas fa-key' => 'key',
545
- 'fas fa-keyboard' => 'keyboard',
546
- 'far fa-keyboard' => 'keyboard',
547
- 'fab fa-keycdn' => 'keycdn',
548
- 'fab fa-kickstarter' => 'kickstarter',
549
- 'fab fa-kickstarter-k' => 'kickstarter-k',
550
- 'fab fa-korvue' => 'korvue',
551
- 'fas fa-language' => 'language',
552
- 'fas fa-laptop' => 'laptop',
553
- 'fab fa-laravel' => 'laravel',
554
- 'fab fa-lastfm' => 'lastfm',
555
- 'fab fa-lastfm-square' => 'lastfm-square',
556
- 'fas fa-leaf' => 'leaf',
557
- 'fab fa-leanpub' => 'leanpub',
558
- 'fas fa-lemon' => 'lemon',
559
- 'far fa-lemon' => 'lemon',
560
- 'fab fa-less' => 'less',
561
- 'fas fa-level-down-alt' => 'level-down-alt',
562
- 'fas fa-level-up-alt' => 'level-up-alt',
563
- 'fas fa-life-ring' => 'life-ring',
564
- 'far fa-life-ring' => 'life-ring',
565
- 'fas fa-lightbulb' => 'lightbulb',
566
- 'far fa-lightbulb' => 'lightbulb',
567
- 'fab fa-line' => 'line',
568
- 'fas fa-link' => 'link',
569
- 'fab fa-linkedin' => 'linkedin',
570
- 'fab fa-linkedin-in' => 'linkedin-in',
571
- 'fab fa-linode' => 'linode',
572
- 'fab fa-linux' => 'linux',
573
- 'fas fa-lira-sign' => 'lira-sign',
574
- 'fas fa-list' => 'list',
575
- 'fas fa-list-alt' => 'list-alt',
576
- 'far fa-list-alt' => 'list-alt',
577
- 'fas fa-list-ol' => 'list-ol',
578
- 'fas fa-list-ul' => 'list-ul',
579
- 'fas fa-location-arrow' => 'location-arrow',
580
- 'fas fa-lock' => 'lock',
581
- 'fas fa-lock-open' => 'lock-open',
582
- 'fas fa-long-arrow-alt-down' => 'long-arrow-alt-down',
583
- 'fas fa-long-arrow-alt-left' => 'long-arrow-alt-left',
584
- 'fas fa-long-arrow-alt-right' => 'long-arrow-alt-right',
585
- 'fas fa-long-arrow-alt-up' => 'long-arrow-alt-up',
586
- 'fas fa-low-vision' => 'low-vision',
587
- 'fab fa-lyft' => 'lyft',
588
- 'fab fa-magento' => 'magento',
589
- 'fas fa-magic' => 'magic',
590
- 'fas fa-magnet' => 'magnet',
591
- 'fas fa-male' => 'male',
592
- 'fas fa-map' => 'map',
593
- 'far fa-map' => 'map',
594
- 'fas fa-map-marker' => 'map-marker',
595
- 'fas fa-map-marker-alt' => 'map-marker-alt',
596
- 'fas fa-map-pin' => 'map-pin',
597
- 'fas fa-map-signs' => 'map-signs',
598
- 'fas fa-mars' => 'mars',
599
- 'fas fa-mars-double' => 'mars-double',
600
- 'fas fa-mars-stroke' => 'mars-stroke',
601
- 'fas fa-mars-stroke-h' => 'mars-stroke-h',
602
- 'fas fa-mars-stroke-v' => 'mars-stroke-v',
603
- 'fab fa-maxcdn' => 'maxcdn',
604
- 'fab fa-medapps' => 'medapps',
605
- 'fab fa-medium' => 'medium',
606
- 'fab fa-medium-m' => 'medium-m',
607
- 'fas fa-medkit' => 'medkit',
608
- 'fab fa-medrt' => 'medrt',
609
- 'fab fa-meetup' => 'meetup',
610
- 'fas fa-meh' => 'meh',
611
- 'far fa-meh' => 'meh',
612
- 'fas fa-mercury' => 'mercury',
613
- 'fas fa-microchip' => 'microchip',
614
- 'fas fa-microphone' => 'microphone',
615
- 'fas fa-microphone-slash' => 'microphone-slash',
616
- 'fab fa-microsoft' => 'microsoft',
617
- 'fas fa-minus' => 'minus',
618
- 'fas fa-minus-circle' => 'minus-circle',
619
- 'fas fa-minus-square' => 'minus-square',
620
- 'far fa-minus-square' => 'minus-square',
621
- 'fab fa-mix' => 'mix',
622
- 'fab fa-mixcloud' => 'mixcloud',
623
- 'fab fa-mizuni' => 'mizuni',
624
- 'fas fa-mobile' => 'mobile',
625
- 'fas fa-mobile-alt' => 'mobile-alt',
626
- 'fab fa-modx' => 'modx',
627
- 'fab fa-monero' => 'monero',
628
- 'fas fa-money-bill-alt' => 'money-bill-alt',
629
- 'far fa-money-bill-alt' => 'money-bill-alt',
630
- 'fas fa-moon' => 'moon',
631
- 'far fa-moon' => 'moon',
632
- 'fas fa-motorcycle' => 'motorcycle',
633
- 'fas fa-mouse-pointer' => 'mouse-pointer',
634
- 'fas fa-music' => 'music',
635
- 'fab fa-napster' => 'napster',
636
- 'fas fa-neuter' => 'neuter',
637
- 'fas fa-newspaper' => 'newspaper',
638
- 'far fa-newspaper' => 'newspaper',
639
- 'fab fa-nintendo-switch' => 'nintendo-switch',
640
- 'fab fa-node' => 'node',
641
- 'fab fa-node-js' => 'node-js',
642
- 'fas fa-notes-medical' => 'notes-medical',
643
- 'fab fa-npm' => 'npm',
644
- 'fab fa-ns8' => 'ns8',
645
- 'fab fa-nutritionix' => 'nutritionix',
646
- 'fas fa-object-group' => 'object-group',
647
- 'far fa-object-group' => 'object-group',
648
- 'fas fa-object-ungroup' => 'object-ungroup',
649
- 'far fa-object-ungroup' => 'object-ungroup',
650
- 'fab fa-odnoklassniki' => 'odnoklassniki',
651
- 'fab fa-odnoklassniki-square' => 'odnoklassniki-square',
652
- 'fab fa-opencart' => 'opencart',
653
- 'fab fa-openid' => 'openid',
654
- 'fab fa-opera' => 'opera',
655
- 'fab fa-optin-monster' => 'optin-monster',
656
- 'fab fa-osi' => 'osi',
657
- 'fas fa-outdent' => 'outdent',
658
- 'fab fa-page4' => 'page4',
659
- 'fab fa-pagelines' => 'pagelines',
660
- 'fas fa-paint-brush' => 'paint-brush',
661
- 'fab fa-palfed' => 'palfed',
662
- 'fas fa-pallet' => 'pallet',
663
- 'fas fa-paper-plane' => 'paper-plane',
664
- 'far fa-paper-plane' => 'paper-plane',
665
- 'fas fa-paperclip' => 'paperclip',
666
- 'fas fa-parachute-box' => 'parachute-box',
667
- 'fas fa-paragraph' => 'paragraph',
668
- 'fas fa-paste' => 'paste',
669
- 'fab fa-patreon' => 'patreon',
670
- 'fas fa-pause' => 'pause',
671
- 'fas fa-pause-circle' => 'pause-circle',
672
- 'far fa-pause-circle' => 'pause-circle',
673
- 'fas fa-paw' => 'paw',
674
- 'fab fa-paypal' => 'paypal',
675
- 'fas fa-pen-square' => 'pen-square',
676
- 'fas fa-pencil-alt' => 'pencil-alt',
677
- 'fas fa-people-carry' => 'people-carry',
678
- 'fas fa-percent' => 'percent',
679
- 'fab fa-periscope' => 'periscope',
680
- 'fab fa-phabricator' => 'phabricator',
681
- 'fab fa-phoenix-framework' => 'phoenix-framework',
682
- 'fas fa-phone' => 'phone',
683
- 'fas fa-phone-slash' => 'phone-slash',
684
- 'fas fa-phone-square' => 'phone-square',
685
- 'fas fa-phone-volume' => 'phone-volume',
686
- 'fab fa-php' => 'php',
687
- 'fab fa-pied-piper' => 'pied-piper',
688
- 'fab fa-pied-piper-alt' => 'pied-piper-alt',
689
- 'fab fa-pied-piper-hat' => 'pied-piper-hat',
690
- 'fab fa-pied-piper-pp' => 'pied-piper-pp',
691
- 'fas fa-piggy-bank' => 'piggy-bank',
692
- 'fas fa-pills' => 'pills',
693
- 'fab fa-pinterest' => 'pinterest',
694
- 'fab fa-pinterest-p' => 'pinterest-p',
695
- 'fab fa-pinterest-square' => 'pinterest-square',
696
- 'fas fa-plane' => 'plane',
697
- 'fas fa-play' => 'play',
698
- 'fas fa-play-circle' => 'play-circle',
699
- 'far fa-play-circle' => 'play-circle',
700
- 'fab fa-playstation' => 'playstation',
701
- 'fas fa-plug' => 'plug',
702
- 'fas fa-plus' => 'plus',
703
- 'fas fa-plus-circle' => 'plus-circle',
704
- 'fas fa-plus-square' => 'plus-square',
705
- 'far fa-plus-square' => 'plus-square',
706
- 'fas fa-podcast' => 'podcast',
707
- 'fas fa-poo' => 'poo',
708
- 'fas fa-pound-sign' => 'pound-sign',
709
- 'fas fa-power-off' => 'power-off',
710
- 'fas fa-prescription-bottle' => 'prescription-bottle',
711
- 'fas fa-prescription-bottle-alt' => 'prescription-bottle-alt',
712
- 'fas fa-print' => 'print',
713
- 'fas fa-procedures' => 'procedures',
714
- 'fab fa-product-hunt' => 'product-hunt',
715
- 'fab fa-pushed' => 'pushed',
716
- 'fas fa-puzzle-piece' => 'puzzle-piece',
717
- 'fab fa-python' => 'python',
718
- 'fab fa-qq' => 'qq',
719
- 'fas fa-qrcode' => 'qrcode',
720
- 'fas fa-question' => 'question',
721
- 'fas fa-question-circle' => 'question-circle',
722
- 'far fa-question-circle' => 'question-circle',
723
- 'fas fa-quidditch' => 'quidditch',
724
- 'fab fa-quinscape' => 'quinscape',
725
- 'fab fa-quora' => 'quora',
726
- 'fas fa-quote-left' => 'quote-left',
727
- 'fas fa-quote-right' => 'quote-right',
728
- 'fas fa-random' => 'random',
729
- 'fab fa-ravelry' => 'ravelry',
730
- 'fab fa-react' => 'react',
731
- 'fab fa-readme' => 'readme',
732
- 'fab fa-rebel' => 'rebel',
733
- 'fas fa-recycle' => 'recycle',
734
- 'fab fa-red-river' => 'red-river',
735
- 'fab fa-reddit' => 'reddit',
736
- 'fab fa-reddit-alien' => 'reddit-alien',
737
- 'fab fa-reddit-square' => 'reddit-square',
738
- 'fas fa-redo' => 'redo',
739
- 'fas fa-redo-alt' => 'redo-alt',
740
- 'fas fa-registered' => 'registered',
741
- 'far fa-registered' => 'registered',
742
- 'fab fa-rendact' => 'rendact',
743
- 'fab fa-renren' => 'renren',
744
- 'fas fa-reply' => 'reply',
745
- 'fas fa-reply-all' => 'reply-all',
746
- 'fab fa-replyd' => 'replyd',
747
- 'fab fa-resolving' => 'resolving',
748
- 'fas fa-retweet' => 'retweet',
749
- 'fas fa-ribbon' => 'ribbon',
750
- 'fas fa-road' => 'road',
751
- 'fas fa-rocket' => 'rocket',
752
- 'fab fa-rocketchat' => 'rocketchat',
753
- 'fab fa-rockrms' => 'rockrms',
754
- 'fas fa-rss' => 'rss',
755
- 'fas fa-rss-square' => 'rss-square',
756
- 'fas fa-ruble-sign' => 'ruble-sign',
757
- 'fas fa-rupee-sign' => 'rupee-sign',
758
- 'fab fa-safari' => 'safari',
759
- 'fab fa-sass' => 'sass',
760
- 'fas fa-save' => 'save',
761
- 'far fa-save' => 'save',
762
- 'fab fa-schlix' => 'schlix',
763
- 'fab fa-scribd' => 'scribd',
764
- 'fas fa-search' => 'search',
765
- 'fas fa-search-minus' => 'search-minus',
766
- 'fas fa-search-plus' => 'search-plus',
767
- 'fab fa-searchengin' => 'searchengin',
768
- 'fas fa-seedling' => 'seedling',
769
- 'fab fa-sellcast' => 'sellcast',
770
- 'fab fa-sellsy' => 'sellsy',
771
- 'fas fa-server' => 'server',
772
- 'fab fa-servicestack' => 'servicestack',
773
- 'fas fa-share' => 'share',
774
- 'fas fa-share-alt' => 'share-alt',
775
- 'fas fa-share-alt-square' => 'share-alt-square',
776
- 'fas fa-share-square' => 'share-square',
777
- 'far fa-share-square' => 'share-square',
778
- 'fas fa-shekel-sign' => 'shekel-sign',
779
- 'fas fa-shield-alt' => 'shield-alt',
780
- 'fas fa-ship' => 'ship',
781
- 'fas fa-shipping-fast' => 'shipping-fast',
782
- 'fab fa-shirtsinbulk' => 'shirtsinbulk',
783
- 'fas fa-shopping-bag' => 'shopping-bag',
784
- 'fas fa-shopping-basket' => 'shopping-basket',
785
- 'fas fa-shopping-cart' => 'shopping-cart',
786
- 'fas fa-shower' => 'shower',
787
- 'fas fa-sign' => 'sign',
788
- 'fas fa-sign-in-alt' => 'sign-in-alt',
789
- 'fas fa-sign-language' => 'sign-language',
790
- 'fas fa-sign-out-alt' => 'sign-out-alt',
791
- 'fas fa-signal' => 'signal',
792
- 'fab fa-simplybuilt' => 'simplybuilt',
793
- 'fab fa-sistrix' => 'sistrix',
794
- 'fas fa-sitemap' => 'sitemap',
795
- 'fab fa-skyatlas' => 'skyatlas',
796
- 'fab fa-skype' => 'skype',
797
- 'fab fa-slack' => 'slack',
798
- 'fab fa-slack-hash' => 'slack-hash',
799
- 'fas fa-sliders-h' => 'sliders-h',
800
- 'fab fa-slideshare' => 'slideshare',
801
- 'fas fa-smile' => 'smile',
802
- 'far fa-smile' => 'smile',
803
- 'fas fa-smoking' => 'smoking',
804
- 'fab fa-snapchat' => 'snapchat',
805
- 'fab fa-snapchat-ghost' => 'snapchat-ghost',
806
- 'fab fa-snapchat-square' => 'snapchat-square',
807
- 'fas fa-snowflake' => 'snowflake',
808
- 'far fa-snowflake' => 'snowflake',
809
- 'fas fa-sort' => 'sort',
810
- 'fas fa-sort-alpha-down' => 'sort-alpha-down',
811
- 'fas fa-sort-alpha-up' => 'sort-alpha-up',
812
- 'fas fa-sort-amount-down' => 'sort-amount-down',
813
- 'fas fa-sort-amount-up' => 'sort-amount-up',
814
- 'fas fa-sort-down' => 'sort-down',
815
- 'fas fa-sort-numeric-down' => 'sort-numeric-down',
816
- 'fas fa-sort-numeric-up' => 'sort-numeric-up',
817
- 'fas fa-sort-up' => 'sort-up',
818
- 'fab fa-soundcloud' => 'soundcloud',
819
- 'fas fa-space-shuttle' => 'space-shuttle',
820
- 'fab fa-speakap' => 'speakap',
821
- 'fas fa-spinner' => 'spinner',
822
- 'fab fa-spotify' => 'spotify',
823
- 'fas fa-square' => 'square',
824
- 'far fa-square' => 'square',
825
- 'fas fa-square-full' => 'square-full',
826
- 'fab fa-stack-exchange' => 'stack-exchange',
827
- 'fab fa-stack-overflow' => 'stack-overflow',
828
- 'fas fa-star' => 'star',
829
- 'far fa-star' => 'star',
830
- 'fas fa-star-half' => 'star-half',
831
- 'far fa-star-half' => 'star-half',
832
- 'fab fa-staylinked' => 'staylinked',
833
- 'fab fa-steam' => 'steam',
834
- 'fab fa-steam-square' => 'steam-square',
835
- 'fab fa-steam-symbol' => 'steam-symbol',
836
- 'fas fa-step-backward' => 'step-backward',
837
- 'fas fa-step-forward' => 'step-forward',
838
- 'fas fa-stethoscope' => 'stethoscope',
839
- 'fab fa-sticker-mule' => 'sticker-mule',
840
- 'fas fa-sticky-note' => 'sticky-note',
841
- 'far fa-sticky-note' => 'sticky-note',
842
- 'fas fa-stop' => 'stop',
843
- 'fas fa-stop-circle' => 'stop-circle',
844
- 'far fa-stop-circle' => 'stop-circle',
845
- 'fas fa-stopwatch' => 'stopwatch',
846
- 'fab fa-strava' => 'strava',
847
- 'fas fa-street-view' => 'street-view',
848
- 'fas fa-strikethrough' => 'strikethrough',
849
- 'fab fa-stripe' => 'stripe',
850
- 'fab fa-stripe-s' => 'stripe-s',
851
- 'fab fa-studiovinari' => 'studiovinari',
852
- 'fab fa-stumbleupon' => 'stumbleupon',
853
- 'fab fa-stumbleupon-circle' => 'stumbleupon-circle',
854
- 'fas fa-subscript' => 'subscript',
855
- 'fas fa-subway' => 'subway',
856
- 'fas fa-suitcase' => 'suitcase',
857
- 'fas fa-sun' => 'sun',
858
- 'far fa-sun' => 'sun',
859
- 'fab fa-superpowers' => 'superpowers',
860
- 'fas fa-superscript' => 'superscript',
861
- 'fab fa-supple' => 'supple',
862
- 'fas fa-sync' => 'sync',
863
- 'fas fa-sync-alt' => 'sync-alt',
864
- 'fas fa-syringe' => 'syringe',
865
- 'fas fa-table' => 'table',
866
- 'fas fa-table-tennis' => 'table-tennis',
867
- 'fas fa-tablet' => 'tablet',
868
- 'fas fa-tablet-alt' => 'tablet-alt',
869
- 'fas fa-tablets' => 'tablets',
870
- 'fas fa-tachometer-alt' => 'tachometer-alt',
871
- 'fas fa-tag' => 'tag',
872
- 'fas fa-tags' => 'tags',
873
- 'fas fa-tape' => 'tape',
874
- 'fas fa-tasks' => 'tasks',
875
- 'fas fa-taxi' => 'taxi',
876
- 'fab fa-telegram' => 'telegram',
877
- 'fab fa-telegram-plane' => 'telegram-plane',
878
- 'fab fa-tencent-weibo' => 'tencent-weibo',
879
- 'fas fa-terminal' => 'terminal',
880
- 'fas fa-text-height' => 'text-height',
881
- 'fas fa-text-width' => 'text-width',
882
- 'fas fa-th' => 'th',
883
- 'fas fa-th-large' => 'th-large',
884
- 'fas fa-th-list' => 'th-list',
885
- 'fab fa-themeisle' => 'themeisle',
886
- 'fas fa-thermometer' => 'thermometer',
887
- 'fas fa-thermometer-empty' => 'thermometer-empty',
888
- 'fas fa-thermometer-full' => 'thermometer-full',
889
- 'fas fa-thermometer-half' => 'thermometer-half',
890
- 'fas fa-thermometer-quarter' => 'thermometer-quarter',
891
- 'fas fa-thermometer-three-quarters' => 'thermometer-three-quarters',
892
- 'fas fa-thumbs-down' => 'thumbs-down',
893
- 'far fa-thumbs-down' => 'thumbs-down',
894
- 'fas fa-thumbs-up' => 'thumbs-up',
895
- 'far fa-thumbs-up' => 'thumbs-up',
896
- 'fas fa-thumbtack' => 'thumbtack',
897
- 'fas fa-ticket-alt' => 'ticket-alt',
898
- 'fas fa-times' => 'times',
899
- 'fas fa-times-circle' => 'times-circle',
900
- 'far fa-times-circle' => 'times-circle',
901
- 'fas fa-tint' => 'tint',
902
- 'fas fa-toggle-off' => 'toggle-off',
903
- 'fas fa-toggle-on' => 'toggle-on',
904
- 'fas fa-trademark' => 'trademark',
905
- 'fas fa-train' => 'train',
906
- 'fas fa-transgender' => 'transgender',
907
- 'fas fa-transgender-alt' => 'transgender-alt',
908
- 'fas fa-trash' => 'trash',
909
- 'fas fa-trash-alt' => 'trash-alt',
910
- 'far fa-trash-alt' => 'trash-alt',
911
- 'fas fa-tree' => 'tree',
912
- 'fab fa-trello' => 'trello',
913
- 'fab fa-tripadvisor' => 'tripadvisor',
914
- 'fas fa-trophy' => 'trophy',
915
- 'fas fa-truck' => 'truck',
916
- 'fas fa-truck-loading' => 'truck-loading',
917
- 'fas fa-truck-moving' => 'truck-moving',
918
- 'fas fa-tty' => 'tty',
919
- 'fab fa-tumblr' => 'tumblr',
920
- 'fab fa-tumblr-square' => 'tumblr-square',
921
- 'fas fa-tv' => 'tv',
922
- 'fab fa-twitch' => 'twitch',
923
- 'fab fa-twitter' => 'twitter',
924
- 'fab fa-twitter-square' => 'twitter-square',
925
- 'fab fa-typo3' => 'typo3',
926
- 'fab fa-uber' => 'uber',
927
- 'fab fa-uikit' => 'uikit',
928
- 'fas fa-umbrella' => 'umbrella',
929
- 'fas fa-underline' => 'underline',
930
- 'fas fa-undo' => 'undo',
931
- 'fas fa-undo-alt' => 'undo-alt',
932
- 'fab fa-uniregistry' => 'uniregistry',
933
- 'fas fa-universal-access' => 'universal-access',
934
- 'fas fa-university' => 'university',
935
- 'fas fa-unlink' => 'unlink',
936
- 'fas fa-unlock' => 'unlock',
937
- 'fas fa-unlock-alt' => 'unlock-alt',
938
- 'fab fa-untappd' => 'untappd',
939
- 'fas fa-upload' => 'upload',
940
- 'fab fa-usb' => 'usb',
941
- 'fas fa-user' => 'user',
942
- 'far fa-user' => 'user',
943
- 'fas fa-user-circle' => 'user-circle',
944
- 'far fa-user-circle' => 'user-circle',
945
- 'fas fa-user-md' => 'user-md',
946
- 'fas fa-user-plus' => 'user-plus',
947
- 'fas fa-user-secret' => 'user-secret',
948
- 'fas fa-user-times' => 'user-times',
949
- 'fas fa-users' => 'users',
950
- 'fab fa-ussunnah' => 'ussunnah',
951
- 'fas fa-utensil-spoon' => 'utensil-spoon',
952
- 'fas fa-utensils' => 'utensils',
953
- 'fab fa-vaadin' => 'vaadin',
954
- 'fas fa-venus' => 'venus',
955
- 'fas fa-venus-double' => 'venus-double',
956
- 'fas fa-venus-mars' => 'venus-mars',
957
- 'fab fa-viacoin' => 'viacoin',
958
- 'fab fa-viadeo' => 'viadeo',
959
- 'fab fa-viadeo-square' => 'viadeo-square',
960
- 'fas fa-vial' => 'vial',
961
- 'fas fa-vials' => 'vials',
962
- 'fab fa-viber' => 'viber',
963
- 'fas fa-video' => 'video',
964
- 'fas fa-video-slash' => 'video-slash',
965
- 'fab fa-vimeo' => 'vimeo',
966
- 'fab fa-vimeo-square' => 'vimeo-square',
967
- 'fab fa-vimeo-v' => 'vimeo-v',
968
- 'fab fa-vine' => 'vine',
969
- 'fab fa-vk' => 'vk',
970
- 'fab fa-vnv' => 'vnv',
971
- 'fas fa-volleyball-ball' => 'volleyball-ball',
972
- 'fas fa-volume-down' => 'volume-down',
973
- 'fas fa-volume-off' => 'volume-off',
974
- 'fas fa-volume-up' => 'volume-up',
975
- 'fab fa-vuejs' => 'vuejs',
976
- 'fas fa-warehouse' => 'warehouse',
977
- 'fab fa-weibo' => 'weibo',
978
- 'fas fa-weight' => 'weight',
979
- 'fab fa-weixin' => 'weixin',
980
- 'fab fa-whatsapp' => 'whatsapp',
981
- 'fab fa-whatsapp-square' => 'whatsapp-square',
982
- 'fas fa-wheelchair' => 'wheelchair',
983
- 'fab fa-whmcs' => 'whmcs',
984
- 'fas fa-wifi' => 'wifi',
985
- 'fab fa-wikipedia-w' => 'wikipedia-w',
986
- 'fas fa-window-close' => 'window-close',
987
- 'far fa-window-close' => 'window-close',
988
- 'fas fa-window-maximize' => 'window-maximize',
989
- 'far fa-window-maximize' => 'window-maximize',
990
- 'fas fa-window-minimize' => 'window-minimize',
991
- 'far fa-window-minimize' => 'window-minimize',
992
- 'fas fa-window-restore' => 'window-restore',
993
- 'far fa-window-restore' => 'window-restore',
994
- 'fab fa-windows' => 'windows',
995
- 'fas fa-wine-glass' => 'wine-glass',
996
- 'fas fa-won-sign' => 'won-sign',
997
- 'fab fa-wordpress' => 'wordpress',
998
- 'fab fa-wordpress-simple' => 'wordpress-simple',
999
- 'fab fa-wpbeginner' => 'wpbeginner',
1000
- 'fab fa-wpexplorer' => 'wpexplorer',
1001
- 'fab fa-wpforms' => 'wpforms',
1002
- 'fas fa-wrench' => 'wrench',
1003
- 'fas fa-x-ray' => 'x-ray',
1004
- 'fab fa-xbox' => 'xbox',
1005
- 'fab fa-xing' => 'xing',
1006
- 'fab fa-xing-square' => 'xing-square',
1007
- 'fab fa-y-combinator' => 'y-combinator',
1008
- 'fab fa-yahoo' => 'yahoo',
1009
- 'fab fa-yandex' => 'yandex',
1010
- 'fab fa-yandex-international' => 'yandex-international',
1011
- 'fab fa-yelp' => 'yelp',
1012
- 'fas fa-yen-sign' => 'yen-sign',
1013
- 'fab fa-yoast' => 'yoast',
1014
- 'fab fa-youtube' => 'youtube',
1015
- 'fab fa-youtube-square' => 'youtube-square',
1016
- );
1017
- }
1018
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
trunk/admin/class-wpvr-rollback.php DELETED
@@ -1,181 +0,0 @@
1
- <?php
2
-
3
- if ( ! defined( 'ABSPATH' ) ) {
4
- exit; // Exit if accessed directly.
5
- }
6
-
7
- /**
8
- * WP VR rollback.
9
- *
10
- * WP VR rollback handler class is responsible for rolling back WP VR to
11
- * previous version.
12
- *
13
- * @since 5.7.0
14
- */
15
- class WPVR_Rollback {
16
-
17
- /**
18
- * Package URL.
19
- *
20
- * Holds the package URL.
21
- *
22
- * @since 5.7.0
23
- * @access protected
24
- *
25
- * @var string Package URL.
26
- */
27
- protected $package_url;
28
-
29
- /**
30
- * Version.
31
- *
32
- * Holds the version.
33
- *
34
- * @since 5.7.0
35
- * @access protected
36
- *
37
- * @var string Package URL.
38
- */
39
- protected $version;
40
-
41
- /**
42
- * Plugin name.
43
- *
44
- * Holds the plugin name.
45
- *
46
- * @since 5.7.0
47
- * @access protected
48
- *
49
- * @var string Plugin name.
50
- */
51
- protected $plugin_name;
52
-
53
- /**
54
- * Plugin slug.
55
- *
56
- * Holds the plugin slug.
57
- *
58
- * @since 5.7.0
59
- * @access protected
60
- *
61
- * @var string Plugin slug.
62
- */
63
- protected $plugin_slug;
64
-
65
- /**
66
- * Rollback constructor.
67
- *
68
- * Initializing WP VR rollback.
69
- *
70
- * @since 5.7.0
71
- * @access public
72
- *
73
- * @param array $args Optional. Rollback arguments. Default is an empty array.
74
- */
75
- public function __construct( $args = [] ) {
76
- foreach ( $args as $key => $value ) {
77
- $this->{$key} = $value;
78
- }
79
- }
80
-
81
- /**
82
- * Print inline style.
83
- *
84
- * Add an inline CSS to the rollback page.
85
- *
86
- * @since 5.7.0
87
- * @access private
88
- */
89
- private function print_inline_style() {
90
- ?>
91
- <style>
92
- .wrap {
93
- overflow: hidden;
94
- max-width: 850px;
95
- margin: auto;
96
- font-family: Courier, monospace;
97
- }
98
-
99
- h1 {
100
- background: #4775f6;
101
- text-align: center;
102
- color: #fff !important;
103
- padding: 70px !important;
104
- text-transform: uppercase;
105
- letter-spacing: 1px;
106
- }
107
-
108
- h1 img {
109
- max-width: 300px;
110
- display: block;
111
- margin: auto auto 50px;
112
- }
113
- </style>
114
- <?php
115
- }
116
-
117
- /**
118
- * Apply package.
119
- *
120
- * Change the plugin data when WordPress checks for updates. This method
121
- * modifies package data to update the plugin from a specific URL containing
122
- * the version package.
123
- *
124
- * @since 5.7.0
125
- * @access protected
126
- */
127
- protected function apply_package() {
128
- $update_plugins = get_site_transient( 'update_plugins' );
129
- if ( ! is_object( $update_plugins ) ) {
130
- $update_plugins = new \stdClass();
131
- }
132
-
133
- $plugin_info = new \stdClass();
134
- $plugin_info->new_version = $this->version;
135
- $plugin_info->slug = $this->plugin_slug;
136
- $plugin_info->package = $this->package_url;
137
- $plugin_info->url = 'https://rextheme.com/wpvr/';
138
-
139
- $update_plugins->response[ $this->plugin_name ] = $plugin_info;
140
-
141
- set_site_transient( 'update_plugins', $update_plugins );
142
- }
143
-
144
- /**
145
- * Upgrade.
146
- *
147
- * Run WordPress upgrade to rollback WP VR to previous version.
148
- *
149
- * @since 5.7.0
150
- * @access protected
151
- */
152
- protected function upgrade() {
153
- require_once( ABSPATH . 'wp-admin/includes/class-wp-upgrader.php' );
154
-
155
- $this->plugin_name = 'wpvr';
156
- $upgrader_args = [
157
- 'url' => 'update.php?action=upgrade-plugin&plugin=' . rawurlencode( $this->plugin_name ),
158
- 'plugin' => $this->plugin_name,
159
- 'nonce' => 'upgrade-plugin_' . $this->plugin_name,
160
- 'title' => __( 'WP VR Plugin Rollback', 'wpvr' ),
161
- ];
162
-
163
- $this->print_inline_style();
164
-
165
- $upgrader = new \Plugin_Upgrader( new \Plugin_Upgrader_Skin( $upgrader_args ) );
166
- $upgrader->upgrade( $this->plugin_name );
167
- }
168
-
169
- /**
170
- * Run.
171
- *
172
- * Rollback WP VR to previous versions.
173
- *
174
- * @since 5.7.0
175
- * @access public
176
- */
177
- public function run() {
178
- $this->apply_package();
179
- $this->upgrade();
180
- }
181
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
trunk/admin/css/font-awesome.min.css DELETED
@@ -1,4 +0,0 @@
1
- /*!
2
- * Font Awesome 4.6.1 by @davegandy - http://fontawesome.io - @fontawesome
3
- * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
4
- */@font-face{font-family:'FontAwesome';src:url('../fonts/fontawesome-webfont.eot?v=4.6.1');src:url('../fonts/fontawesome-webfont.eot?#iefix&v=4.6.1') format('embedded-opentype'),url('../fonts/fontawesome-webfont.woff2?v=4.6.1') format('woff2'),url('../fonts/fontawesome-webfont.woff?v=4.6.1') format('woff'),url('../fonts/fontawesome-webfont.ttf?v=4.6.1') format('truetype'),url('../fonts/fontawesome-webfont.svg?v=4.6.1#fontawesomeregular') format('svg');font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-remove:before,.fa-close:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-gear:before,.fa-cog:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-rotate-right:before,.fa-repeat:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-warning:before,.fa-exclamation-triangle:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-gears:before,.fa-cogs:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook-f:before,.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-save:before,.fa-floppy-o:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-unsorted:before,.fa-sort:before{content:"\f0dc"}.fa-sort-down:before,.fa-sort-desc:before{content:"\f0dd"}.fa-sort-up:before,.fa-sort-asc:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-legal:before,.fa-gavel:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-flash:before,.fa-bolt:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-paste:before,.fa-clipboard:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-unlink:before,.fa-chain-broken:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:"\f150"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:"\f151"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:"\f152"}.fa-euro:before,.fa-eur:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-rupee:before,.fa-inr:before{content:"\f156"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:"\f157"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:"\f158"}.fa-won:before,.fa-krw:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before,.fa-gratipay:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-turkish-lira:before,.fa-try:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-institution:before,.fa-bank:before,.fa-university:before{content:"\f19c"}.fa-mortar-board:before,.fa-graduation-cap:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:"\f1c5"}.fa-file-zip-o:before,.fa-file-archive-o:before{content:"\f1c6"}.fa-file-sound-o:before,.fa-file-audio-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-rebel:before{content:"\f1d0"}.fa-ge:before,.fa-empire:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-y-combinator-square:before,.fa-yc-square:before,.fa-hacker-news:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-send:before,.fa-paper-plane:before{content:"\f1d8"}.fa-send-o:before,.fa-paper-plane-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:"\f1e3"}.fa-tty:before{content:"\f1e4"}.fa-binoculars:before{content:"\f1e5"}.fa-plug:before{content:"\f1e6"}.fa-slideshare:before{content:"\f1e7"}.fa-twitch:before{content:"\f1e8"}.fa-yelp:before{content:"\f1e9"}.fa-newspaper-o:before{content:"\f1ea"}.fa-wifi:before{content:"\f1eb"}.fa-calculator:before{content:"\f1ec"}.fa-paypal:before{content:"\f1ed"}.fa-google-wallet:before{content:"\f1ee"}.fa-cc-visa:before{content:"\f1f0"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-bell-slash:before{content:"\f1f6"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-trash:before{content:"\f1f8"}.fa-copyright:before{content:"\f1f9"}.fa-at:before{content:"\f1fa"}.fa-eyedropper:before{content:"\f1fb"}.fa-paint-brush:before{content:"\f1fc"}.fa-birthday-cake:before{content:"\f1fd"}.fa-area-chart:before{content:"\f1fe"}.fa-pie-chart:before{content:"\f200"}.fa-line-chart:before{content:"\f201"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-bicycle:before{content:"\f206"}.fa-bus:before{content:"\f207"}.fa-ioxhost:before{content:"\f208"}.fa-angellist:before{content:"\f209"}.fa-cc:before{content:"\f20a"}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:"\f20b"}.fa-meanpath:before{content:"\f20c"}.fa-buysellads:before{content:"\f20d"}.fa-connectdevelop:before{content:"\f20e"}.fa-dashcube:before{content:"\f210"}.fa-forumbee:before{content:"\f211"}.fa-leanpub:before{content:"\f212"}.fa-sellsy:before{content:"\f213"}.fa-shirtsinbulk:before{content:"\f214"}.fa-simplybuilt:before{content:"\f215"}.fa-skyatlas:before{content:"\f216"}.fa-cart-plus:before{content:"\f217"}.fa-cart-arrow-down:before{content:"\f218"}.fa-diamond:before{content:"\f219"}.fa-ship:before{content:"\f21a"}.fa-user-secret:before{content:"\f21b"}.fa-motorcycle:before{content:"\f21c"}.fa-street-view:before{content:"\f21d"}.fa-heartbeat:before{content:"\f21e"}.fa-venus:before{content:"\f221"}.fa-mars:before{content:"\f222"}.fa-mercury:before{content:"\f223"}.fa-intersex:before,.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-venus-double:before{content:"\f226"}.fa-mars-double:before{content:"\f227"}.fa-venus-mars:before{content:"\f228"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-neuter:before{content:"\f22c"}.fa-genderless:before{content:"\f22d"}.fa-facebook-official:before{content:"\f230"}.fa-pinterest-p:before{content:"\f231"}.fa-whatsapp:before{content:"\f232"}.fa-server:before{content:"\f233"}.fa-user-plus:before{content:"\f234"}.fa-user-times:before{content:"\f235"}.fa-hotel:before,.fa-bed:before{content:"\f236"}.fa-viacoin:before{content:"\f237"}.fa-train:before{content:"\f238"}.fa-subway:before{content:"\f239"}.fa-medium:before{content:"\f23a"}.fa-yc:before,.fa-y-combinator:before{content:"\f23b"}.fa-optin-monster:before{content:"\f23c"}.fa-opencart:before{content:"\f23d"}.fa-expeditedssl:before{content:"\f23e"}.fa-battery-4:before,.fa-battery-full:before{content:"\f240"}.fa-battery-3:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-battery-2:before,.fa-battery-half:before{content:"\f242"}.fa-battery-1:before,.fa-battery-quarter:before{content:"\f243"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-mouse-pointer:before{content:"\f245"}.fa-i-cursor:before{content:"\f246"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-sticky-note:before{content:"\f249"}.fa-sticky-note-o:before{content:"\f24a"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-diners-club:before{content:"\f24c"}.fa-clone:before{content:"\f24d"}.fa-balance-scale:before{content:"\f24e"}.fa-hourglass-o:before{content:"\f250"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-hourglass:before{content:"\f254"}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:"\f255"}.fa-hand-stop-o:before,.fa-hand-paper-o:before{content:"\f256"}.fa-hand-scissors-o:before{content:"\f257"}.fa-hand-lizard-o:before{content:"\f258"}.fa-hand-spock-o:before{content:"\f259"}.fa-hand-pointer-o:before{content:"\f25a"}.fa-hand-peace-o:before{content:"\f25b"}.fa-trademark:before{content:"\f25c"}.fa-registered:before{content:"\f25d"}.fa-creative-commons:before{content:"\f25e"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-tripadvisor:before{content:"\f262"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-get-pocket:before{content:"\f265"}.fa-wikipedia-w:before{content:"\f266"}.fa-safari:before{content:"\f267"}.fa-chrome:before{content:"\f268"}.fa-firefox:before{content:"\f269"}.fa-opera:before{content:"\f26a"}.fa-internet-explorer:before{content:"\f26b"}.fa-tv:before,.fa-television:before{content:"\f26c"}.fa-contao:before{content:"\f26d"}.fa-500px:before{content:"\f26e"}.fa-amazon:before{content:"\f270"}.fa-calendar-plus-o:before{content:"\f271"}.fa-calendar-minus-o:before{content:"\f272"}.fa-calendar-times-o:before{content:"\f273"}.fa-calendar-check-o:before{content:"\f274"}.fa-industry:before{content:"\f275"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-map-o:before{content:"\f278"}.fa-map:before{content:"\f279"}.fa-commenting:before{content:"\f27a"}.fa-commenting-o:before{content:"\f27b"}.fa-houzz:before{content:"\f27c"}.fa-vimeo:before{content:"\f27d"}.fa-black-tie:before{content:"\f27e"}.fa-fonticons:before{content:"\f280"}.fa-reddit-alien:before{content:"\f281"}.fa-edge:before{content:"\f282"}.fa-credit-card-alt:before{content:"\f283"}.fa-codiepie:before{content:"\f284"}.fa-modx:before{content:"\f285"}.fa-fort-awesome:before{content:"\f286"}.fa-usb:before{content:"\f287"}.fa-product-hunt:before{content:"\f288"}.fa-mixcloud:before{content:"\f289"}.fa-scribd:before{content:"\f28a"}.fa-pause-circle:before{content:"\f28b"}.fa-pause-circle-o:before{content:"\f28c"}.fa-stop-circle:before{content:"\f28d"}.fa-stop-circle-o:before{content:"\f28e"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-hashtag:before{content:"\f292"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-percent:before{content:"\f295"}.fa-gitlab:before{content:"\f296"}.fa-wpbeginner:before{content:"\f297"}.fa-wpforms:before{content:"\f298"}.fa-envira:before{content:"\f299"}.fa-universal-access:before{content:"\f29a"}.fa-wheelchair-alt:before{content:"\f29b"}.fa-question-circle-o:before{content:"\f29c"}.fa-blind:before{content:"\f29d"}.fa-audio-description:before{content:"\f29e"}.fa-volume-control-phone:before{content:"\f2a0"}.fa-braille:before{content:"\f2a1"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asl-interpreting:before,.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-deafness:before,.fa-hard-of-hearing:before,.fa-deaf:before{content:"\f2a4"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-signing:before,.fa-sign-language:before{content:"\f2a7"}.fa-low-vision:before{content:"\f2a8"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}
 
 
 
 
trunk/admin/css/iconpicker.ttf DELETED
Binary file
trunk/admin/css/iconpicker.woff DELETED
Binary file
trunk/admin/css/jquery.fonticonpicker.grey.min.css DELETED
@@ -1,2 +0,0 @@
1
- /* Grey Theme file for fontIconPicker {@link https://github.com/micc83/fontIconPicker} */
2
- .fip-grey.icons-selector{font-size:16px}.fip-grey.icons-selector .selector{border:1px solid #EDEDED;background-color:#fff}.fip-grey.icons-selector .selector-button{background-color:#F4F4F4;border-left:1px solid #E1E1E1}.fip-grey.icons-selector .selector-button:hover{background-color:#f1f1f1}.fip-grey.icons-selector .selector-button:hover i{color:#999}.fip-grey.icons-selector .selector-button i{color:#aaa;text-shadow:0 1px 0 #FFF}.fip-grey.icons-selector .selected-icon i{color:#404040}.fip-grey.icons-selector .selector-popup{-moz-box-shadow:0 1px 1px rgba(0,0,0,.04);-webkit-box-shadow:0 1px 1px rgba(0,0,0,.04);box-shadow:0 1px 1px rgba(0,0,0,.04);border:1px solid #E5E5E5}.fip-grey.icons-selector .selector-category select,.fip-grey.icons-selector .selector-search input[type=text]{border:1px solid #EDEDED;color:#404040;-moz-box-shadow:none;-webkit-box-shadow:none;box-shadow:none;outline:0}.fip-grey.icons-selector input::-webkit-input-placeholder{color:#ddd}.fip-grey.icons-selector input:-moz-placeholder{color:#ddd}.fip-grey.icons-selector input::-moz-placeholder{color:#ddd}.fip-grey.icons-selector input:-ms-input-placeholder{color:#ddd!important}.fip-grey.icons-selector .selector-search i{color:#eee}.fip-grey.icons-selector .fip-icons-container{background-color:#fff;border:1px solid #EDEDED}.fip-grey.icons-selector .fip-icons-container .loading{color:#eee}.fip-grey.icons-selector .fip-box{border:1px solid #EFEFEF}.fip-grey.icons-selector .fip-box:hover{background-color:#f6f6f6}.fip-grey.icons-selector .selector-footer,.fip-grey.icons-selector .selector-footer i{color:#ddd}.fip-grey.icons-selector .selector-arrows i:hover{color:#777}.fip-grey.icons-selector span.current-icon,.fip-grey.icons-selector span.current-icon:hover{background-color:#2EA2CC;color:#fff;border:1px solid #298CBA}.fip-grey.icons-selector .icons-picker-error i:before{color:#eee}
 
 
trunk/admin/css/jquery.fonticonpicker.min.css DELETED
@@ -1,2 +0,0 @@
1
- /* fontIconPicker main CSS file {@link https://github.com/micc83/fontIconPicker} */
2
- .icons-selector *{margin:0;padding:0;border:0;vertical-align:baseline;}.icons-selector,.icons-selector *,.icons-selector :after,.icons-selector :before,.icons-selector:after,.icons-selector:before{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}.icons-selector{display:inline-block;vertical-align:middle;text-align:left}.icons-selector .selector{width:100px;height:40px}.icons-selector .selector-button{width:39px;height:100%;display:block;text-align:center;cursor:pointer;float:left}.icons-selector .selector-button i{line-height:38px;text-align:center}.icons-selector .selected-icon{display:block;width:60px;height:100%;float:left;text-align:center}.icons-selector .selected-icon i{line-height:40px;font-size:18px;cursor:default}.icons-selector .selector-popup{position:absolute;z-index:10000;background-color:#fefefe;padding:5px;height:auto;width:342px;margin-top:-1px}.icons-selector .selector-category select,.icons-selector .selector-search input[type=text]{border:0;line-height:20px;padding:10px 2.5%;width:100%;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;margin-bottom:5px;font-size:12px;display:block}.icons-selector .selector-category select{height:40px}.icons-selector .selector-category select option{padding:10px}.icons-selector input::-webkit-input-placeholder{text-transform:uppercase}.icons-selector input:-moz-placeholder{text-transform:uppercase}.icons-selector input::-moz-placeholder{text-transform:uppercase}.icons-selector input:-ms-input-placeholder{text-transform:uppercase}.icons-selector .selector-search{position:relative}.icons-selector .selector-search i{position:absolute;right:10px;top:7px}.icons-selector .fip-icons-container{width:100%;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;padding:5px}.icons-selector .fip-icons-container .loading{font-size:24px;margin:0 auto;padding:20px 0;text-align:center;width:100%}.icons-selector .fip-box{display:inline-block;margin:2px;width:60px;line-height:42px;text-align:center;cursor:pointer;vertical-align:top;height:40px}.icons-selector .selector-footer{line-height:12px;padding:5px 5px 0;text-align:center}.icons-selector .selector-footer,.icons-selector .selector-footer i{font-size:14px}.icons-selector .selector-arrows{float:right}.icons-selector .selector-pages{font-size:11px;float:left}.icons-selector .selector-arrows i{cursor:pointer}.icons-selector .selector-footer em{font-style:italic}.icons-selector .icons-picker-error i:before{color:#eee}@font-face{font-family:iconpicker;src:url(iconpicker.eot?90190138);src:url(iconpicker.eot?90190138#iefix) format('embedded-opentype'),url(iconpicker.woff?90190138) format('woff'),url(iconpicker.ttf?90190138) format('truetype'),url(iconpicker.svg?90190138#iconpicker) format('svg');font-weight:400;font-style:normal}.icons-selector [class*=" fip-icon-"]:before,.icons-selector [class^=fip-icon-]:before{font-family:iconpicker;font-style:normal;font-weight:400;speak:none;display:inline-block;text-decoration:inherit;width:1em;margin-right:.2em;text-align:center;font-variant:normal;text-transform:none;line-height:1em;margin-left:.2em}.icons-selector .fip-icon-search:before{content:'\e812';cursor:default}.icons-selector .fip-icon-cancel:before{content:'\e814';cursor:pointer}.icons-selector .fip-icon-block:before{content:'\e84e';color:#fed0d0}.icons-selector .fip-icon-down-dir:before{content:'\e800'}.icons-selector .fip-icon-up-dir:before{content:'\e813'}.icons-selector .fip-icon-left-dir:before{content:'\e801'}.icons-selector .fip-icon-right-dir:before{content:'\e802'}.icons-selector .fip-icon-spin3:before{content:'\e815'}.icons-selector .fip-icon-spin3{-moz-animation:spin 2s infinite linear;-o-animation:spin 2s infinite linear;-webkit-animation:spin 2s infinite linear;animation:spin 2s infinite linear;display:inline-block}@-moz-keyframes spin{0%{-moz-transform:rotate(0deg);-o-transform:rotate(0deg);-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-moz-transform:rotate(359deg);-o-transform:rotate(359deg);-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@-webkit-keyframes spin{0%{-moz-transform:rotate(0deg);-o-transform:rotate(0deg);-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-moz-transform:rotate(359deg);-o-transform:rotate(359deg);-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@-o-keyframes spin{0%{-moz-transform:rotate(0deg);-o-transform:rotate(0deg);-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-moz-transform:rotate(359deg);-o-transform:rotate(359deg);-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@-ms-keyframes spin{0%{-moz-transform:rotate(0deg);-o-transform:rotate(0deg);-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-moz-transform:rotate(359deg);-o-transform:rotate(359deg);-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes spin{0%{-moz-transform:rotate(0deg);-o-transform:rotate(0deg);-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-moz-transform:rotate(359deg);-o-transform:rotate(359deg);-webkit-transform:rotate(359deg);transform:rotate(359deg)}}
 
 
trunk/admin/css/materialize.css DELETED
@@ -1,8582 +0,0 @@
1
- /*!
2
- * Materialize v0.98.0 (http://materializecss.com)
3
- * Copyright 2014-2015 Materialize
4
- * MIT License (https://raw.githubusercontent.com/Dogfalo/materialize/master/LICENSE)
5
- */
6
- .materialize-red {
7
- background-color: #e51c23 !important;
8
- }
9
-
10
- .materialize-red-text {
11
- color: #e51c23 !important;
12
- }
13
-
14
- .materialize-red.lighten-5 {
15
- background-color: #fdeaeb !important;
16
- }
17
-
18
- .materialize-red-text.text-lighten-5 {
19
- color: #fdeaeb !important;
20
- }
21
-
22
- .materialize-red.lighten-4 {
23
- background-color: #f8c1c3 !important;
24
- }
25
-
26
- .materialize-red-text.text-lighten-4 {
27
- color: #f8c1c3 !important;
28
- }
29
-
30
- .materialize-red.lighten-3 {
31
- background-color: #f3989b !important;
32
- }
33
-
34
- .materialize-red-text.text-lighten-3 {
35
- color: #f3989b !important;
36
- }
37
-
38
- .materialize-red.lighten-2 {
39
- background-color: #ee6e73 !important;
40
- }
41
-
42
- .materialize-red-text.text-lighten-2 {
43
- color: #ee6e73 !important;
44
- }
45
-
46
- .materialize-red.lighten-1 {
47
- background-color: #ea454b !important;
48
- }
49
-
50
- .materialize-red-text.text-lighten-1 {
51
- color: #ea454b !important;
52
- }
53
-
54
- .materialize-red.darken-1 {
55
- background-color: #d0181e !important;
56
- }
57
-
58
- .materialize-red-text.text-darken-1 {
59
- color: #d0181e !important;
60
- }
61
-
62
- .materialize-red.darken-2 {
63
- background-color: #b9151b !important;
64
- }
65
-
66
- .materialize-red-text.text-darken-2 {
67
- color: #b9151b !important;
68
- }
69
-
70
- .materialize-red.darken-3 {
71
- background-color: #a21318 !important;
72
- }
73
-
74
- .materialize-red-text.text-darken-3 {
75
- color: #a21318 !important;
76
- }
77
-
78
- .materialize-red.darken-4 {
79
- background-color: #8b1014 !important;
80
- }
81
-
82
- .materialize-red-text.text-darken-4 {
83
- color: #8b1014 !important;
84
- }
85
-
86
- .red {
87
- background-color: #F44336 !important;
88
- }
89
-
90
- .red-text {
91
- color: #F44336 !important;
92
- }
93
-
94
- .red.lighten-5 {
95
- background-color: #FFEBEE !important;
96
- }
97
-
98
- .red-text.text-lighten-5 {
99
- color: #FFEBEE !important;
100
- }
101
-
102
- .red.lighten-4 {
103
- background-color: #FFCDD2 !important;
104
- }
105
-
106
- .red-text.text-lighten-4 {
107
- color: #FFCDD2 !important;
108
- }
109
-
110
- .red.lighten-3 {
111
- background-color: #EF9A9A !important;
112
- }
113
-
114
- .red-text.text-lighten-3 {
115
- color: #EF9A9A !important;
116
- }
117
-
118
- .red.lighten-2 {
119
- background-color: #E57373 !important;
120
- }
121
-
122
- .red-text.text-lighten-2 {
123
- color: #E57373 !important;
124
- }
125
-
126
- .red.lighten-1 {
127
- background-color: #EF5350 !important;
128
- }
129
-
130
- .red-text.text-lighten-1 {
131
- color: #EF5350 !important;
132
- }
133
-
134
- .red.darken-1 {
135
- background-color: #E53935 !important;
136
- }
137
-
138
- .red-text.text-darken-1 {
139
- color: #E53935 !important;
140
- }
141
-
142
- .red.darken-2 {
143
- background-color: #D32F2F !important;
144
- }
145
-
146
- .red-text.text-darken-2 {
147
- color: #D32F2F !important;
148
- }
149
-
150
- .red.darken-3 {
151
- background-color: #C62828 !important;
152
- }
153
-
154
- .red-text.text-darken-3 {
155
- color: #C62828 !important;
156
- }
157
-
158
- .red.darken-4 {
159
- background-color: #B71C1C !important;
160
- }
161
-
162
- .red-text.text-darken-4 {
163
- color: #B71C1C !important;
164
- }
165
-
166
- .red.accent-1 {
167
- background-color: #FF8A80 !important;
168
- }
169
-
170
- .red-text.text-accent-1 {
171
- color: #FF8A80 !important;
172
- }
173
-
174
- .red.accent-2 {
175
- background-color: #FF5252 !important;
176
- }
177
-
178
- .red-text.text-accent-2 {
179
- color: #FF5252 !important;
180
- }
181
-
182
- .red.accent-3 {
183
- background-color: #FF1744 !important;
184
- }
185
-
186
- .red-text.text-accent-3 {
187
- color: #FF1744 !important;
188
- }
189
-
190
- .red.accent-4 {
191
- background-color: #D50000 !important;
192
- }
193
-
194
- .red-text.text-accent-4 {
195
- color: #D50000 !important;
196
- }
197
-
198
- .pink {
199
- background-color: #e91e63 !important;
200
- }
201
-
202
- .pink-text {
203
- color: #e91e63 !important;
204
- }
205
-
206
- .pink.lighten-5 {
207
- background-color: #fce4ec !important;
208
- }
209
-
210
- .pink-text.text-lighten-5 {
211
- color: #fce4ec !important;
212
- }
213
-
214
- .pink.lighten-4 {
215
- background-color: #f8bbd0 !important;
216
- }
217
-
218
- .pink-text.text-lighten-4 {
219
- color: #f8bbd0 !important;
220
- }
221
-
222
- .pink.lighten-3 {
223
- background-color: #f48fb1 !important;
224
- }
225
-
226
- .pink-text.text-lighten-3 {
227
- color: #f48fb1 !important;
228
- }
229
-
230
- .pink.lighten-2 {
231
- background-color: #f06292 !important;
232
- }
233
-
234
- .pink-text.text-lighten-2 {
235
- color: #f06292 !important;
236
- }
237
-
238
- .pink.lighten-1 {
239
- background-color: #ec407a !important;
240
- }
241
-
242
- .pink-text.text-lighten-1 {
243
- color: #ec407a !important;
244
- }
245
-
246
- .pink.darken-1 {
247
- background-color: #d81b60 !important;
248
- }
249
-
250
- .pink-text.text-darken-1 {
251
- color: #d81b60 !important;
252
- }
253
-
254
- .pink.darken-2 {
255
- background-color: #c2185b !important;
256
- }
257
-
258
- .pink-text.text-darken-2 {
259
- color: #c2185b !important;
260
- }
261
-
262
- .pink.darken-3 {
263
- background-color: #ad1457 !important;
264
- }
265
-
266
- .pink-text.text-darken-3 {
267
- color: #ad1457 !important;
268
- }
269
-
270
- .pink.darken-4 {
271
- background-color: #880e4f !important;
272
- }
273
-
274
- .pink-text.text-darken-4 {
275
- color: #880e4f !important;
276
- }
277
-
278
- .pink.accent-1 {
279
- background-color: #ff80ab !important;
280
- }
281
-
282
- .pink-text.text-accent-1 {
283
- color: #ff80ab !important;
284
- }
285
-
286
- .pink.accent-2 {
287
- background-color: #ff4081 !important;
288
- }
289
-
290
- .pink-text.text-accent-2 {
291
- color: #ff4081 !important;
292
- }
293
-
294
- .pink.accent-3 {
295
- background-color: #f50057 !important;
296
- }
297
-
298
- .pink-text.text-accent-3 {
299
- color: #f50057 !important;
300
- }
301
-
302
- .pink.accent-4 {
303
- background-color: #c51162 !important;
304
- }
305
-
306
- .pink-text.text-accent-4 {
307
- color: #c51162 !important;
308
- }
309
-
310
- .purple {
311
- background-color: #9c27b0 !important;
312
- }
313
-
314
- .purple-text {
315
- color: #9c27b0 !important;
316
- }
317
-
318
- .purple.lighten-5 {
319
- background-color: #f3e5f5 !important;
320
- }
321
-
322
- .purple-text.text-lighten-5 {
323
- color: #f3e5f5 !important;
324
- }
325
-
326
- .purple.lighten-4 {
327
- background-color: #e1bee7 !important;
328
- }
329
-
330
- .purple-text.text-lighten-4 {
331
- color: #e1bee7 !important;
332
- }
333
-
334
- .purple.lighten-3 {
335
- background-color: #ce93d8 !important;
336
- }
337
-
338
- .purple-text.text-lighten-3 {
339
- color: #ce93d8 !important;
340
- }
341
-
342
- .purple.lighten-2 {
343
- background-color: #ba68c8 !important;
344
- }
345
-
346
- .purple-text.text-lighten-2 {
347
- color: #ba68c8 !important;
348
- }
349
-
350
- .purple.lighten-1 {
351
- background-color: #ab47bc !important;
352
- }
353
-
354
- .purple-text.text-lighten-1 {
355
- color: #ab47bc !important;
356
- }
357
-
358
- .purple.darken-1 {
359
- background-color: #8e24aa !important;
360
- }
361
-
362
- .purple-text.text-darken-1 {
363
- color: #8e24aa !important;
364
- }
365
-
366
- .purple.darken-2 {
367
- background-color: #7b1fa2 !important;
368
- }
369
-
370
- .purple-text.text-darken-2 {
371
- color: #7b1fa2 !important;
372
- }
373
-
374
- .purple.darken-3 {
375
- background-color: #6a1b9a !important;
376
- }
377
-
378
- .purple-text.text-darken-3 {
379
- color: #6a1b9a !important;
380
- }
381
-
382
- .purple.darken-4 {
383
- background-color: #4a148c !important;
384
- }
385
-
386
- .purple-text.text-darken-4 {
387
- color: #4a148c !important;
388
- }
389
-
390
- .purple.accent-1 {
391
- background-color: #ea80fc !important;
392
- }
393
-
394
- .purple-text.text-accent-1 {
395
- color: #ea80fc !important;
396
- }
397
-
398
- .purple.accent-2 {
399
- background-color: #e040fb !important;
400
- }
401
-
402
- .purple-text.text-accent-2 {
403
- color: #e040fb !important;
404
- }
405
-
406
- .purple.accent-3 {
407
- background-color: #d500f9 !important;
408
- }
409
-
410
- .purple-text.text-accent-3 {
411
- color: #d500f9 !important;
412
- }
413
-
414
- .purple.accent-4 {
415
- background-color: #aa00ff !important;
416
- }
417
-
418
- .purple-text.text-accent-4 {
419
- color: #aa00ff !important;
420
- }
421
-
422
- .deep-purple {
423
- background-color: #673ab7 !important;
424
- }
425
-
426
- .deep-purple-text {
427
- color: #673ab7 !important;
428
- }
429
-
430
- .deep-purple.lighten-5 {
431
- background-color: #ede7f6 !important;
432
- }
433
-
434
- .deep-purple-text.text-lighten-5 {
435
- color: #ede7f6 !important;
436
- }
437
-
438
- .deep-purple.lighten-4 {
439
- background-color: #d1c4e9 !important;
440
- }
441
-
442
- .deep-purple-text.text-lighten-4 {
443
- color: #d1c4e9 !important;
444
- }
445
-
446
- .deep-purple.lighten-3 {
447
- background-color: #b39ddb !important;
448
- }
449
-
450
- .deep-purple-text.text-lighten-3 {
451
- color: #b39ddb !important;
452
- }
453
-
454
- .deep-purple.lighten-2 {
455
- background-color: #9575cd !important;
456
- }
457
-
458
- .deep-purple-text.text-lighten-2 {
459
- color: #9575cd !important;
460
- }
461
-
462
- .deep-purple.lighten-1 {
463
- background-color: #7e57c2 !important;
464
- }
465
-
466
- .deep-purple-text.text-lighten-1 {
467
- color: #7e57c2 !important;
468
- }
469
-
470
- .deep-purple.darken-1 {
471
- background-color: #5e35b1 !important;
472
- }
473
-
474
- .deep-purple-text.text-darken-1 {
475
- color: #5e35b1 !important;
476
- }
477
-
478
- .deep-purple.darken-2 {
479
- background-color: #512da8 !important;
480
- }
481
-
482
- .deep-purple-text.text-darken-2 {
483
- color: #512da8 !important;
484
- }
485
-
486
- .deep-purple.darken-3 {
487
- background-color: #4527a0 !important;
488
- }
489
-
490
- .deep-purple-text.text-darken-3 {
491
- color: #4527a0 !important;
492
- }
493
-
494
- .deep-purple.darken-4 {
495
- background-color: #311b92 !important;
496
- }
497
-
498
- .deep-purple-text.text-darken-4 {
499
- color: #311b92 !important;
500
- }
501
-
502
- .deep-purple.accent-1 {
503
- background-color: #b388ff !important;
504
- }
505
-
506
- .deep-purple-text.text-accent-1 {
507
- color: #b388ff !important;
508
- }
509
-
510
- .deep-purple.accent-2 {
511
- background-color: #7c4dff !important;
512
- }
513
-
514
- .deep-purple-text.text-accent-2 {
515
- color: #7c4dff !important;
516
- }
517
-
518
- .deep-purple.accent-3 {
519
- background-color: #651fff !important;
520
- }
521
-
522
- .deep-purple-text.text-accent-3 {
523
- color: #651fff !important;
524
- }
525
-
526
- .deep-purple.accent-4 {
527
- background-color: #6200ea !important;
528
- }
529
-
530
- .deep-purple-text.text-accent-4 {
531
- color: #6200ea !important;
532
- }
533
-
534
- .indigo {
535
- background-color: #3f51b5 !important;
536
- }
537
-
538
- .indigo-text {
539
- color: #3f51b5 !important;
540
- }
541
-
542
- .indigo.lighten-5 {
543
- background-color: #e8eaf6 !important;
544
- }
545
-
546
- .indigo-text.text-lighten-5 {
547
- color: #e8eaf6 !important;
548
- }
549
-
550
- .indigo.lighten-4 {
551
- background-color: #c5cae9 !important;
552
- }
553
-
554
- .indigo-text.text-lighten-4 {
555
- color: #c5cae9 !important;
556
- }
557
-
558
- .indigo.lighten-3 {
559
- background-color: #9fa8da !important;
560
- }
561
-
562
- .indigo-text.text-lighten-3 {
563
- color: #9fa8da !important;
564
- }
565
-
566
- .indigo.lighten-2 {
567
- background-color: #7986cb !important;
568
- }
569
-
570
- .indigo-text.text-lighten-2 {
571
- color: #7986cb !important;
572
- }
573
-
574
- .indigo.lighten-1 {
575
- background-color: #5c6bc0 !important;
576
- }
577
-
578
- .indigo-text.text-lighten-1 {
579
- color: #5c6bc0 !important;
580
- }
581
-
582
- .indigo.darken-1 {
583
- background-color: #3949ab !important;
584
- }
585
-
586
- .indigo-text.text-darken-1 {
587
- color: #3949ab !important;
588
- }
589
-
590
- .indigo.darken-2 {
591
- background-color: #303f9f !important;
592
- }
593
-
594
- .indigo-text.text-darken-2 {
595
- color: #303f9f !important;
596
- }
597
-
598
- .indigo.darken-3 {
599
- background-color: #283593 !important;
600
- }
601
-
602
- .indigo-text.text-darken-3 {
603
- color: #283593 !important;
604
- }
605
-
606
- .indigo.darken-4 {
607
- background-color: #1a237e !important;
608
- }
609
-
610
- .indigo-text.text-darken-4 {
611
- color: #1a237e !important;
612
- }
613
-
614
- .indigo.accent-1 {
615
- background-color: #8c9eff !important;
616
- }
617
-
618
- .indigo-text.text-accent-1 {
619
- color: #8c9eff !important;
620
- }
621
-
622
- .indigo.accent-2 {
623
- background-color: #536dfe !important;
624
- }
625
-
626
- .indigo-text.text-accent-2 {
627
- color: #536dfe !important;
628
- }
629
-
630
- .indigo.accent-3 {
631
- background-color: #3d5afe !important;
632
- }
633
-
634
- .indigo-text.text-accent-3 {
635
- color: #3d5afe !important;
636
- }
637
-
638
- .indigo.accent-4 {
639
- background-color: #304ffe !important;
640
- }
641
-
642
- .indigo-text.text-accent-4 {
643
- color: #304ffe !important;
644
- }
645
-
646
- .blue {
647
- background-color: #2196F3 !important;
648
- }
649
-
650
- .blue-text {
651
- color: #2196F3 !important;
652
- }
653
-
654
- .blue.lighten-5 {
655
- background-color: #E3F2FD !important;
656
- }
657
-
658
- .blue-text.text-lighten-5 {
659
- color: #E3F2FD !important;
660
- }
661
-
662
- .blue.lighten-4 {
663
- background-color: #BBDEFB !important;
664
- }
665
-
666
- .blue-text.text-lighten-4 {
667
- color: #BBDEFB !important;
668
- }
669
-
670
- .blue.lighten-3 {
671
- background-color: #90CAF9 !important;
672
- }
673
-
674
- .blue-text.text-lighten-3 {
675
- color: #90CAF9 !important;
676
- }
677
-
678
- .blue.lighten-2 {
679
- background-color: #64B5F6 !important;
680
- }
681
-
682
- .blue-text.text-lighten-2 {
683
- color: #64B5F6 !important;
684
- }
685
-
686
- .blue.lighten-1 {
687
- background-color: #42A5F5 !important;
688
- }
689
-
690
- .blue-text.text-lighten-1 {
691
- color: #42A5F5 !important;
692
- }
693
-
694
- .blue.darken-1 {
695
- background-color: #1E88E5 !important;
696
- }
697
-
698
- .blue-text.text-darken-1 {
699
- color: #1E88E5 !important;
700
- }
701
-
702
- .blue.darken-2 {
703
- background-color: #1976D2 !important;
704
- }
705
-
706
- .blue-text.text-darken-2 {
707
- color: #1976D2 !important;
708
- }
709
-
710
- .blue.darken-3 {
711
- background-color: #1565C0 !important;
712
- }
713
-
714
- .blue-text.text-darken-3 {
715
- color: #1565C0 !important;
716
- }
717
-
718
- .blue.darken-4 {
719
- background-color: #0D47A1 !important;
720
- }
721
-
722
- .blue-text.text-darken-4 {
723
- color: #0D47A1 !important;
724
- }
725
-
726
- .blue.accent-1 {
727
- background-color: #82B1FF !important;
728
- }
729
-
730
- .blue-text.text-accent-1 {
731
- color: #82B1FF !important;
732
- }
733
-
734
- .blue.accent-2 {
735
- background-color: #448AFF !important;
736
- }
737
-
738
- .blue-text.text-accent-2 {
739
- color: #448AFF !important;
740
- }
741
-
742
- .blue.accent-3 {
743
- background-color: #2979FF !important;
744
- }
745
-
746
- .blue-text.text-accent-3 {
747
- color: #2979FF !important;
748
- }
749
-
750
- .blue.accent-4 {
751
- background-color: #2962FF !important;
752
- }
753
-
754
- .blue-text.text-accent-4 {
755
- color: #2962FF !important;
756
- }
757
-
758
- .light-blue {
759
- background-color: #03a9f4 !important;
760
- }
761
-
762
- .light-blue-text {
763
- color: #03a9f4 !important;
764
- }
765
-
766
- .light-blue.lighten-5 {
767
- background-color: #e1f5fe !important;
768
- }
769
-
770
- .light-blue-text.text-lighten-5 {
771
- color: #e1f5fe !important;
772
- }
773
-
774
- .light-blue.lighten-4 {
775
- background-color: #b3e5fc !important;
776
- }
777
-
778
- .light-blue-text.text-lighten-4 {
779
- color: #b3e5fc !important;
780
- }
781
-
782
- .light-blue.lighten-3 {
783
- background-color: #81d4fa !important;
784
- }
785
-
786
- .light-blue-text.text-lighten-3 {
787
- color: #81d4fa !important;
788
- }
789
-
790
- .light-blue.lighten-2 {
791
- background-color: #4fc3f7 !important;
792
- }
793
-
794
- .light-blue-text.text-lighten-2 {
795
- color: #4fc3f7 !important;
796
- }
797
-
798
- .light-blue.lighten-1 {
799
- background-color: #29b6f6 !important;
800
- }
801
-
802
- .light-blue-text.text-lighten-1 {
803
- color: #29b6f6 !important;
804
- }
805
-
806
- .light-blue.darken-1 {
807
- background-color: #039be5 !important;
808
- }
809
-
810
- .light-blue-text.text-darken-1 {
811
- color: #039be5 !important;
812
- }
813
-
814
- .light-blue.darken-2 {
815
- background-color: #0288d1 !important;
816
- }
817
-
818
- .light-blue-text.text-darken-2 {
819
- color: #0288d1 !important;
820
- }
821
-
822
- .light-blue.darken-3 {
823
- background-color: #0277bd !important;
824
- }
825
-
826
- .light-blue-text.text-darken-3 {
827
- color: #0277bd !important;
828
- }
829
-
830
- .light-blue.darken-4 {
831
- background-color: #01579b !important;
832
- }
833
-
834
- .light-blue-text.text-darken-4 {
835
- color: #01579b !important;
836
- }
837
-
838
- .light-blue.accent-1 {
839
- background-color: #80d8ff !important;
840
- }
841
-
842
- .light-blue-text.text-accent-1 {
843
- color: #80d8ff !important;
844
- }
845
-
846
- .light-blue.accent-2 {
847
- background-color: #40c4ff !important;
848
- }
849
-
850
- .light-blue-text.text-accent-2 {
851
- color: #40c4ff !important;
852
- }
853
-
854
- .light-blue.accent-3 {
855
- background-color: #00b0ff !important;
856
- }
857
-
858
- .light-blue-text.text-accent-3 {
859
- color: #00b0ff !important;
860
- }
861
-
862
- .light-blue.accent-4 {
863
- background-color: #0091ea !important;
864
- }
865
-
866
- .light-blue-text.text-accent-4 {
867
- color: #0091ea !important;
868
- }
869
-
870
- .cyan {
871
- background-color: #00bcd4 !important;
872
- }
873
-
874
- .cyan-text {
875
- color: #00bcd4 !important;
876
- }
877
-
878
- .cyan.lighten-5 {
879
- background-color: #e0f7fa !important;
880
- }
881
-
882
- .cyan-text.text-lighten-5 {
883
- color: #e0f7fa !important;
884
- }
885
-
886
- .cyan.lighten-4 {
887
- background-color: #b2ebf2 !important;
888
- }
889
-
890
- .cyan-text.text-lighten-4 {
891
- color: #b2ebf2 !important;
892
- }
893
-
894
- .cyan.lighten-3 {
895
- background-color: #80deea !important;
896
- }
897
-
898
- .cyan-text.text-lighten-3 {
899
- color: #80deea !important;
900
- }
901
-
902
- .cyan.lighten-2 {
903
- background-color: #4dd0e1 !important;
904
- }
905
-
906
- .cyan-text.text-lighten-2 {
907
- color: #4dd0e1 !important;
908
- }
909
-
910
- .cyan.lighten-1 {
911
- background-color: #26c6da !important;
912
- }
913
-
914
- .cyan-text.text-lighten-1 {
915
- color: #26c6da !important;
916
- }
917
-
918
- .cyan.darken-1 {
919
- background-color: #00acc1 !important;
920
- }
921
-
922
- .cyan-text.text-darken-1 {
923
- color: #00acc1 !important;
924
- }
925
-
926
- .cyan.darken-2 {
927
- background-color: #0097a7 !important;
928
- }
929
-
930
- .cyan-text.text-darken-2 {
931
- color: #0097a7 !important;
932
- }
933
-
934
- .cyan.darken-3 {
935
- background-color: #00838f !important;
936
- }
937
-
938
- .cyan-text.text-darken-3 {
939
- color: #00838f !important;
940
- }
941
-
942
- .cyan.darken-4 {
943
- background-color: #006064 !important;
944
- }
945
-
946
- .cyan-text.text-darken-4 {
947
- color: #006064 !important;
948
- }
949
-
950
- .cyan.accent-1 {
951
- background-color: #84ffff !important;
952
- }
953
-
954
- .cyan-text.text-accent-1 {
955
- color: #84ffff !important;
956
- }
957
-
958
- .cyan.accent-2 {
959
- background-color: #18ffff !important;
960
- }
961
-
962
- .cyan-text.text-accent-2 {
963
- color: #18ffff !important;
964
- }
965
-
966
- .cyan.accent-3 {
967
- background-color: #00e5ff !important;
968
- }
969
-
970
- .cyan-text.text-accent-3 {
971
- color: #00e5ff !important;
972
- }
973
-
974
- .cyan.accent-4 {
975
- background-color: #00b8d4 !important;
976
- }
977
-
978
- .cyan-text.text-accent-4 {
979
- color: #00b8d4 !important;
980
- }
981
-
982
- .teal {
983
- background-color: #009688 !important;
984
- }
985
-
986
- .teal-text {
987
- color: #009688 !important;
988
- }
989
-
990
- .teal.lighten-5 {
991
- background-color: #e0f2f1 !important;
992
- }
993
-
994
- .teal-text.text-lighten-5 {
995
- color: #e0f2f1 !important;
996
- }
997
-
998
- .teal.lighten-4 {
999
- background-color: #b2dfdb !important;
1000
- }
1001
-
1002
- .teal-text.text-lighten-4 {
1003
- color: #b2dfdb !important;
1004
- }
1005
-
1006
- .teal.lighten-3 {
1007
- background-color: #80cbc4 !important;
1008
- }
1009
-
1010
- .teal-text.text-lighten-3 {
1011
- color: #80cbc4 !important;
1012
- }
1013
-
1014
- .teal.lighten-2 {
1015
- background-color: #4db6ac !important;
1016
- }
1017
-
1018
- .teal-text.text-lighten-2 {
1019
- color: #4db6ac !important;
1020
- }
1021
-
1022
- .teal.lighten-1 {
1023
- background-color: #26a69a !important;
1024
- }
1025
-
1026
- .teal-text.text-lighten-1 {
1027
- color: #26a69a !important;
1028
- }
1029
-
1030
- .teal.darken-1 {
1031
- background-color: #00897b !important;
1032
- }
1033
-
1034
- .teal-text.text-darken-1 {
1035
- color: #00897b !important;
1036
- }
1037
-
1038
- .teal.darken-2 {
1039
- background-color: #00796b !important;
1040
- }
1041
-
1042
- .teal-text.text-darken-2 {
1043
- color: #00796b !important;
1044
- }
1045
-
1046
- .teal.darken-3 {
1047
- background-color: #00695c !important;
1048
- }
1049
-
1050
- .teal-text.text-darken-3 {
1051
- color: #00695c !important;
1052
- }
1053
-
1054
- .teal.darken-4 {
1055
- background-color: #004d40 !important;
1056
- }
1057
-
1058
- .teal-text.text-darken-4 {
1059
- color: #004d40 !important;
1060
- }
1061
-
1062
- .teal.accent-1 {
1063
- background-color: #a7ffeb !important;
1064
- }
1065
-
1066
- .teal-text.text-accent-1 {
1067
- color: #a7ffeb !important;
1068
- }
1069
-
1070
- .teal.accent-2 {
1071
- background-color: #64ffda !important;
1072
- }
1073
-
1074
- .teal-text.text-accent-2 {
1075
- color: #64ffda !important;
1076
- }
1077
-
1078
- .teal.accent-3 {
1079
- background-color: #1de9b6 !important;
1080
- }
1081
-
1082
- .teal-text.text-accent-3 {
1083
- color: #1de9b6 !important;
1084
- }
1085
-
1086
- .teal.accent-4 {
1087
- background-color: #00bfa5 !important;
1088
- }
1089
-
1090
- .teal-text.text-accent-4 {
1091
- color: #00bfa5 !important;
1092
- }
1093
-
1094
- .green {
1095
- background-color: #4CAF50 !important;
1096
- }
1097
-
1098
- .green-text {
1099
- color: #4CAF50 !important;
1100
- }
1101
-
1102
- .green.lighten-5 {
1103
- background-color: #E8F5E9 !important;
1104
- }
1105
-
1106
- .green-text.text-lighten-5 {
1107
- color: #E8F5E9 !important;
1108
- }
1109
-
1110
- .green.lighten-4 {
1111
- background-color: #C8E6C9 !important;
1112
- }
1113
-
1114
- .green-text.text-lighten-4 {
1115
- color: #C8E6C9 !important;
1116
- }
1117
-
1118
- .green.lighten-3 {
1119
- background-color: #A5D6A7 !important;
1120
- }
1121
-
1122
- .green-text.text-lighten-3 {
1123
- color: #A5D6A7 !important;
1124
- }
1125
-
1126
- .green.lighten-2 {
1127
- background-color: #81C784 !important;
1128
- }
1129
-
1130
- .green-text.text-lighten-2 {
1131
- color: #81C784 !important;
1132
- }
1133
-
1134
- .green.lighten-1 {
1135
- background-color: #66BB6A !important;
1136
- }
1137
-
1138
- .green-text.text-lighten-1 {
1139
- color: #66BB6A !important;
1140
- }
1141
-
1142
- .green.darken-1 {
1143
- background-color: #43A047 !important;
1144
- }
1145
-
1146
- .green-text.text-darken-1 {
1147
- color: #43A047 !important;
1148
- }
1149
-
1150
- .green.darken-2 {
1151
- background-color: #388E3C !important;
1152
- }
1153
-
1154
- .green-text.text-darken-2 {
1155
- color: #388E3C !important;
1156
- }
1157
-
1158
- .green.darken-3 {
1159
- background-color: #2E7D32 !important;
1160
- }
1161
-
1162
- .green-text.text-darken-3 {
1163
- color: #2E7D32 !important;
1164
- }
1165
-
1166
- .green.darken-4 {
1167
- background-color: #1B5E20 !important;
1168
- }
1169
-
1170
- .green-text.text-darken-4 {
1171
- color: #1B5E20 !important;
1172
- }
1173
-
1174
- .green.accent-1 {
1175
- background-color: #B9F6CA !important;
1176
- }
1177
-
1178
- .green-text.text-accent-1 {
1179
- color: #B9F6CA !important;
1180
- }
1181
-
1182
- .green.accent-2 {
1183
- background-color: #69F0AE !important;
1184
- }
1185
-
1186
- .green-text.text-accent-2 {
1187
- color: #69F0AE !important;
1188
- }
1189
-
1190
- .green.accent-3 {
1191
- background-color: #00E676 !important;
1192
- }
1193
-
1194
- .green-text.text-accent-3 {
1195
- color: #00E676 !important;
1196
- }
1197
-
1198
- .green.accent-4 {
1199
- background-color: #00C853 !important;
1200
- }
1201
-
1202
- .green-text.text-accent-4 {
1203
- color: #00C853 !important;
1204
- }
1205
-
1206
- .light-green {
1207
- background-color: #8bc34a !important;
1208
- }
1209
-
1210
- .light-green-text {
1211
- color: #8bc34a !important;
1212
- }
1213
-
1214
- .light-green.lighten-5 {
1215
- background-color: #f1f8e9 !important;
1216
- }
1217
-
1218
- .light-green-text.text-lighten-5 {
1219
- color: #f1f8e9 !important;
1220
- }
1221
-
1222
- .light-green.lighten-4 {
1223
- background-color: #dcedc8 !important;
1224
- }
1225
-
1226
- .light-green-text.text-lighten-4 {
1227
- color: #dcedc8 !important;
1228
- }
1229
-
1230
- .light-green.lighten-3 {
1231
- background-color: #c5e1a5 !important;
1232
- }
1233
-
1234
- .light-green-text.text-lighten-3 {
1235
- color: #c5e1a5 !important;
1236
- }
1237
-
1238
- .light-green.lighten-2 {
1239
- background-color: #aed581 !important;
1240
- }
1241
-
1242
- .light-green-text.text-lighten-2 {
1243
- color: #aed581 !important;
1244
- }
1245
-
1246
- .light-green.lighten-1 {
1247
- background-color: #9ccc65 !important;
1248
- }
1249
-
1250
- .light-green-text.text-lighten-1 {
1251
- color: #9ccc65 !important;
1252
- }
1253
-
1254
- .light-green.darken-1 {
1255
- background-color: #7cb342 !important;
1256
- }
1257
-
1258
- .light-green-text.text-darken-1 {
1259
- color: #7cb342 !important;
1260
- }
1261
-
1262
- .light-green.darken-2 {
1263
- background-color: #689f38 !important;
1264
- }
1265
-
1266
- .light-green-text.text-darken-2 {
1267
- color: #689f38 !important;
1268
- }
1269
-
1270
- .light-green.darken-3 {
1271
- background-color: #558b2f !important;
1272
- }
1273
-
1274
- .light-green-text.text-darken-3 {
1275
- color: #558b2f !important;
1276
- }
1277
-
1278
- .light-green.darken-4 {
1279
- background-color: #33691e !important;
1280
- }
1281
-
1282
- .light-green-text.text-darken-4 {
1283
- color: #33691e !important;
1284
- }
1285
-
1286
- .light-green.accent-1 {
1287
- background-color: #ccff90 !important;
1288
- }
1289
-
1290
- .light-green-text.text-accent-1 {
1291
- color: #ccff90 !important;
1292
- }
1293
-
1294
- .light-green.accent-2 {
1295
- background-color: #b2ff59 !important;
1296
- }
1297
-
1298
- .light-green-text.text-accent-2 {
1299
- color: #b2ff59 !important;
1300
- }
1301
-
1302
- .light-green.accent-3 {
1303
- background-color: #76ff03 !important;
1304
- }
1305
-
1306
- .light-green-text.text-accent-3 {
1307
- color: #76ff03 !important;
1308
- }
1309
-
1310
- .light-green.accent-4 {
1311
- background-color: #64dd17 !important;
1312
- }
1313
-
1314
- .light-green-text.text-accent-4 {
1315
- color: #64dd17 !important;
1316
- }
1317
-
1318
- .lime {
1319
- background-color: #cddc39 !important;
1320
- }
1321
-
1322
- .lime-text {
1323
- color: #cddc39 !important;
1324
- }
1325
-
1326
- .lime.lighten-5 {
1327
- background-color: #f9fbe7 !important;
1328
- }
1329
-
1330
- .lime-text.text-lighten-5 {
1331
- color: #f9fbe7 !important;
1332
- }
1333
-
1334
- .lime.lighten-4 {
1335
- background-color: #f0f4c3 !important;
1336
- }
1337
-
1338
- .lime-text.text-lighten-4 {
1339
- color: #f0f4c3 !important;
1340
- }
1341
-
1342
- .lime.lighten-3 {
1343
- background-color: #e6ee9c !important;
1344
- }
1345
-
1346
- .lime-text.text-lighten-3 {
1347
- color: #e6ee9c !important;
1348
- }
1349
-
1350
- .lime.lighten-2 {
1351
- background-color: #dce775 !important;
1352
- }
1353
-
1354
- .lime-text.text-lighten-2 {
1355
- color: #dce775 !important;
1356
- }
1357
-
1358
- .lime.lighten-1 {
1359
- background-color: #d4e157 !important;
1360
- }
1361
-
1362
- .lime-text.text-lighten-1 {
1363
- color: #d4e157 !important;
1364
- }
1365
-
1366
- .lime.darken-1 {
1367
- background-color: #c0ca33 !important;
1368
- }
1369
-
1370
- .lime-text.text-darken-1 {
1371
- color: #c0ca33 !important;
1372
- }
1373
-
1374
- .lime.darken-2 {
1375
- background-color: #afb42b !important;
1376
- }
1377
-
1378
- .lime-text.text-darken-2 {
1379
- color: #afb42b !important;
1380
- }
1381
-
1382
- .lime.darken-3 {
1383
- background-color: #9e9d24 !important;
1384
- }
1385
-
1386
- .lime-text.text-darken-3 {
1387
- color: #9e9d24 !important;
1388
- }
1389
-
1390
- .lime.darken-4 {
1391
- background-color: #827717 !important;
1392
- }
1393
-
1394
- .lime-text.text-darken-4 {
1395
- color: #827717 !important;
1396
- }
1397
-
1398
- .lime.accent-1 {
1399
- background-color: #f4ff81 !important;
1400
- }
1401
-
1402
- .lime-text.text-accent-1 {
1403
- color: #f4ff81 !important;
1404
- }
1405
-
1406
- .lime.accent-2 {
1407
- background-color: #eeff41 !important;
1408
- }
1409
-
1410
- .lime-text.text-accent-2 {
1411
- color: #eeff41 !important;
1412
- }
1413
-
1414
- .lime.accent-3 {
1415
- background-color: #c6ff00 !important;
1416
- }
1417
-
1418
- .lime-text.text-accent-3 {
1419
- color: #c6ff00 !important;
1420
- }
1421
-
1422
- .lime.accent-4 {
1423
- background-color: #aeea00 !important;
1424
- }
1425
-
1426
- .lime-text.text-accent-4 {
1427
- color: #aeea00 !important;
1428
- }
1429
-
1430
- .yellow {
1431
- background-color: #ffeb3b !important;
1432
- }
1433
-
1434
- .yellow-text {
1435
- color: #ffeb3b !important;
1436
- }
1437
-
1438
- .yellow.lighten-5 {
1439
- background-color: #fffde7 !important;
1440
- }
1441
-
1442
- .yellow-text.text-lighten-5 {
1443
- color: #fffde7 !important;
1444
- }
1445
-
1446
- .yellow.lighten-4 {
1447
- background-color: #fff9c4 !important;
1448
- }
1449
-
1450
- .yellow-text.text-lighten-4 {
1451
- color: #fff9c4 !important;
1452
- }
1453
-
1454
- .yellow.lighten-3 {
1455
- background-color: #fff59d !important;
1456
- }
1457
-
1458
- .yellow-text.text-lighten-3 {
1459
- color: #fff59d !important;
1460
- }
1461
-
1462
- .yellow.lighten-2 {
1463
- background-color: #fff176 !important;
1464
- }
1465
-
1466
- .yellow-text.text-lighten-2 {
1467
- color: #fff176 !important;
1468
- }
1469
-
1470
- .yellow.lighten-1 {
1471
- background-color: #ffee58 !important;
1472
- }
1473
-
1474
- .yellow-text.text-lighten-1 {
1475
- color: #ffee58 !important;
1476
- }
1477
-
1478
- .yellow.darken-1 {
1479
- background-color: #fdd835 !important;
1480
- }
1481
-
1482
- .yellow-text.text-darken-1 {
1483
- color: #fdd835 !important;
1484
- }
1485
-
1486
- .yellow.darken-2 {
1487
- background-color: #fbc02d !important;
1488
- }
1489
-
1490
- .yellow-text.text-darken-2 {
1491
- color: #fbc02d !important;
1492
- }
1493
-
1494
- .yellow.darken-3 {
1495
- background-color: #f9a825 !important;
1496
- }
1497
-
1498
- .yellow-text.text-darken-3 {
1499
- color: #f9a825 !important;
1500
- }
1501
-
1502
- .yellow.darken-4 {
1503
- background-color: #f57f17 !important;
1504
- }
1505
-
1506
- .yellow-text.text-darken-4 {
1507
- color: #f57f17 !important;
1508
- }
1509
-
1510
- .yellow.accent-1 {
1511
- background-color: #ffff8d !important;
1512
- }
1513
-
1514
- .yellow-text.text-accent-1 {
1515
- color: #ffff8d !important;
1516
- }
1517
-
1518
- .yellow.accent-2 {
1519
- background-color: #ffff00 !important;
1520
- }
1521
-
1522
- .yellow-text.text-accent-2 {
1523
- color: #ffff00 !important;
1524
- }
1525
-
1526
- .yellow.accent-3 {
1527
- background-color: #ffea00 !important;
1528
- }
1529
-
1530
- .yellow-text.text-accent-3 {
1531
- color: #ffea00 !important;
1532
- }
1533
-
1534
- .yellow.accent-4 {
1535
- background-color: #ffd600 !important;
1536
- }
1537
-
1538
- .yellow-text.text-accent-4 {
1539
- color: #ffd600 !important;
1540
- }
1541
-
1542
- .amber {
1543
- background-color: #ffc107 !important;
1544
- }
1545
-
1546
- .amber-text {
1547
- color: #ffc107 !important;
1548
- }
1549
-
1550
- .amber.lighten-5 {
1551
- background-color: #fff8e1 !important;
1552
- }
1553
-
1554
- .amber-text.text-lighten-5 {
1555
- color: #fff8e1 !important;
1556
- }
1557
-
1558
- .amber.lighten-4 {
1559
- background-color: #ffecb3 !important;
1560
- }
1561
-
1562
- .amber-text.text-lighten-4 {
1563
- color: #ffecb3 !important;
1564
- }
1565
-
1566
- .amber.lighten-3 {
1567
- background-color: #ffe082 !important;
1568
- }
1569
-
1570
- .amber-text.text-lighten-3 {
1571
- color: #ffe082 !important;
1572
- }
1573
-
1574
- .amber.lighten-2 {
1575
- background-color: #ffd54f !important;
1576
- }
1577
-
1578
- .amber-text.text-lighten-2 {
1579
- color: #ffd54f !important;
1580
- }
1581
-
1582
- .amber.lighten-1 {
1583
- background-color: #ffca28 !important;
1584
- }
1585
-
1586
- .amber-text.text-lighten-1 {
1587
- color: #ffca28 !important;
1588
- }
1589
-
1590
- .amber.darken-1 {
1591
- background-color: #ffb300 !important;
1592
- }
1593
-
1594
- .amber-text.text-darken-1 {
1595
- color: #ffb300 !important;
1596
- }
1597
-
1598
- .amber.darken-2 {
1599
- background-color: #ffa000 !important;
1600
- }
1601
-
1602
- .amber-text.text-darken-2 {
1603
- color: #ffa000 !important;
1604
- }
1605
-
1606
- .amber.darken-3 {
1607
- background-color: #ff8f00 !important;
1608
- }
1609
-
1610
- .amber-text.text-darken-3 {
1611
- color: #ff8f00 !important;
1612
- }
1613
-
1614
- .amber.darken-4 {
1615
- background-color: #ff6f00 !important;
1616
- }
1617
-
1618
- .amber-text.text-darken-4 {
1619
- color: #ff6f00 !important;
1620
- }
1621
-
1622
- .amber.accent-1 {
1623
- background-color: #ffe57f !important;
1624
- }
1625
-
1626
- .amber-text.text-accent-1 {
1627
- color: #ffe57f !important;
1628
- }
1629
-
1630
- .amber.accent-2 {
1631
- background-color: #ffd740 !important;
1632
- }
1633
-
1634
- .amber-text.text-accent-2 {
1635
- color: #ffd740 !important;
1636
- }
1637
-
1638
- .amber.accent-3 {
1639
- background-color: #ffc400 !important;
1640
- }
1641
-
1642
- .amber-text.text-accent-3 {
1643
- color: #ffc400 !important;
1644
- }
1645
-
1646
- .amber.accent-4 {
1647
- background-color: #ffab00 !important;
1648
- }
1649
-
1650
- .amber-text.text-accent-4 {
1651
- color: #ffab00 !important;
1652
- }
1653
-
1654
- .orange {
1655
- background-color: #ff9800 !important;
1656
- }
1657
-
1658
- .orange-text {
1659
- color: #ff9800 !important;
1660
- }
1661
-
1662
- .orange.lighten-5 {
1663
- background-color: #fff3e0 !important;
1664
- }
1665
-
1666
- .orange-text.text-lighten-5 {
1667
- color: #fff3e0 !important;
1668
- }
1669
-
1670
- .orange.lighten-4 {
1671
- background-color: #ffe0b2 !important;
1672
- }
1673
-
1674
- .orange-text.text-lighten-4 {
1675
- color: #ffe0b2 !important;
1676
- }
1677
-
1678
- .orange.lighten-3 {
1679
- background-color: #ffcc80 !important;
1680
- }
1681
-
1682
- .orange-text.text-lighten-3 {
1683
- color: #ffcc80 !important;
1684
- }
1685
-
1686
- .orange.lighten-2 {
1687
- background-color: #ffb74d !important;
1688
- }
1689
-
1690
- .orange-text.text-lighten-2 {
1691
- color: #ffb74d !important;
1692
- }
1693
-
1694
- .orange.lighten-1 {
1695
- background-color: #ffa726 !important;
1696
- }
1697
-
1698
- .orange-text.text-lighten-1 {
1699
- color: #ffa726 !important;
1700
- }
1701
-
1702
- .orange.darken-1 {
1703
- background-color: #fb8c00 !important;
1704
- }
1705
-
1706
- .orange-text.text-darken-1 {
1707
- color: #fb8c00 !important;
1708
- }
1709
-
1710
- .orange.darken-2 {
1711
- background-color: #f57c00 !important;
1712
- }
1713
-
1714
- .orange-text.text-darken-2 {
1715
- color: #f57c00 !important;
1716
- }
1717
-
1718
- .orange.darken-3 {
1719
- background-color: #ef6c00 !important;
1720
- }
1721
-
1722
- .orange-text.text-darken-3 {
1723
- color: #ef6c00 !important;
1724
- }
1725
-
1726
- .orange.darken-4 {
1727
- background-color: #e65100 !important;
1728
- }
1729
-
1730
- .orange-text.text-darken-4 {
1731
- color: #e65100 !important;
1732
- }
1733
-
1734
- .orange.accent-1 {
1735
- background-color: #ffd180 !important;
1736
- }
1737
-
1738
- .orange-text.text-accent-1 {
1739
- color: #ffd180 !important;
1740
- }
1741
-
1742
- .orange.accent-2 {
1743
- background-color: #ffab40 !important;
1744
- }
1745
-
1746
- .orange-text.text-accent-2 {
1747
- color: #ffab40 !important;
1748
- }
1749
-
1750
- .orange.accent-3 {
1751
- background-color: #ff9100 !important;
1752
- }
1753
-
1754
- .orange-text.text-accent-3 {
1755
- color: #ff9100 !important;
1756
- }
1757
-
1758
- .orange.accent-4 {
1759
- background-color: #ff6d00 !important;
1760
- }
1761
-
1762
- .orange-text.text-accent-4 {
1763
- color: #ff6d00 !important;
1764
- }
1765
-
1766
- .deep-orange {
1767
- background-color: #ff5722 !important;
1768
- }
1769
-
1770
- .deep-orange-text {
1771
- color: #ff5722 !important;
1772
- }
1773
-
1774
- .deep-orange.lighten-5 {
1775
- background-color: #fbe9e7 !important;
1776
- }
1777
-
1778
- .deep-orange-text.text-lighten-5 {
1779
- color: #fbe9e7 !important;
1780
- }
1781
-
1782
- .deep-orange.lighten-4 {
1783
- background-color: #ffccbc !important;
1784
- }
1785
-
1786
- .deep-orange-text.text-lighten-4 {
1787
- color: #ffccbc !important;
1788
- }
1789
-
1790
- .deep-orange.lighten-3 {
1791
- background-color: #ffab91 !important;
1792
- }
1793
-
1794
- .deep-orange-text.text-lighten-3 {
1795
- color: #ffab91 !important;
1796
- }
1797
-
1798
- .deep-orange.lighten-2 {
1799
- background-color: #ff8a65 !important;
1800
- }
1801
-
1802
- .deep-orange-text.text-lighten-2 {
1803
- color: #ff8a65 !important;
1804
- }
1805
-
1806
- .deep-orange.lighten-1 {
1807
- background-color: #ff7043 !important;
1808
- }
1809
-
1810
- .deep-orange-text.text-lighten-1 {
1811
- color: #ff7043 !important;
1812
- }
1813
-
1814
- .deep-orange.darken-1 {
1815
- background-color: #f4511e !important;
1816
- }
1817
-
1818
- .deep-orange-text.text-darken-1 {
1819
- color: #f4511e !important;
1820
- }
1821
-
1822
- .deep-orange.darken-2 {
1823
- background-color: #e64a19 !important;
1824
- }
1825
-
1826
- .deep-orange-text.text-darken-2 {
1827
- color: #e64a19 !important;
1828
- }
1829
-
1830
- .deep-orange.darken-3 {
1831
- background-color: #d84315 !important;
1832
- }
1833
-
1834
- .deep-orange-text.text-darken-3 {
1835
- color: #d84315 !important;
1836
- }
1837
-
1838
- .deep-orange.darken-4 {
1839
- background-color: #bf360c !important;
1840
- }
1841
-
1842
- .deep-orange-text.text-darken-4 {
1843
- color: #bf360c !important;
1844
- }
1845
-
1846
- .deep-orange.accent-1 {
1847
- background-color: #ff9e80 !important;
1848
- }
1849
-
1850
- .deep-orange-text.text-accent-1 {
1851
- color: #ff9e80 !important;
1852
- }
1853
-
1854
- .deep-orange.accent-2 {
1855
- background-color: #ff6e40 !important;
1856
- }
1857
-
1858
- .deep-orange-text.text-accent-2 {
1859
- color: #ff6e40 !important;
1860
- }
1861
-
1862
- .deep-orange.accent-3 {
1863
- background-color: #ff3d00 !important;
1864
- }
1865
-
1866
- .deep-orange-text.text-accent-3 {
1867
- color: #ff3d00 !important;
1868
- }
1869
-
1870
- .deep-orange.accent-4 {
1871
- background-color: #dd2c00 !important;
1872
- }
1873
-
1874
- .deep-orange-text.text-accent-4 {
1875
- color: #dd2c00 !important;
1876
- }
1877
-
1878
- .brown {
1879
- background-color: #795548 !important;
1880
- }
1881
-
1882
- .brown-text {
1883
- color: #795548 !important;
1884
- }
1885
-
1886
- .brown.lighten-5 {
1887
- background-color: #efebe9 !important;
1888
- }
1889
-
1890
- .brown-text.text-lighten-5 {
1891
- color: #efebe9 !important;
1892
- }
1893
-
1894
- .brown.lighten-4 {
1895
- background-color: #d7ccc8 !important;
1896
- }
1897
-
1898
- .brown-text.text-lighten-4 {
1899
- color: #d7ccc8 !important;
1900
- }
1901
-
1902
- .brown.lighten-3 {
1903
- background-color: #bcaaa4 !important;
1904
- }
1905
-
1906
- .brown-text.text-lighten-3 {
1907
- color: #bcaaa4 !important;
1908
- }
1909
-
1910
- .brown.lighten-2 {
1911
- background-color: #a1887f !important;
1912
- }
1913
-
1914
- .brown-text.text-lighten-2 {
1915
- color: #a1887f !important;
1916
- }
1917
-
1918
- .brown.lighten-1 {
1919
- background-color: #8d6e63 !important;
1920
- }
1921
-
1922
- .brown-text.text-lighten-1 {
1923
- color: #8d6e63 !important;
1924
- }
1925
-
1926
- .brown.darken-1 {
1927
- background-color: #6d4c41 !important;
1928
- }
1929
-
1930
- .brown-text.text-darken-1 {
1931
- color: #6d4c41 !important;
1932
- }
1933
-
1934
- .brown.darken-2 {
1935
- background-color: #5d4037 !important;
1936
- }
1937
-
1938
- .brown-text.text-darken-2 {
1939
- color: #5d4037 !important;
1940
- }
1941
-
1942
- .brown.darken-3 {
1943
- background-color: #4e342e !important;
1944
- }
1945
-
1946
- .brown-text.text-darken-3 {
1947
- color: #4e342e !important;
1948
- }
1949
-
1950
- .brown.darken-4 {
1951
- background-color: #3e2723 !important;
1952
- }
1953
-
1954
- .brown-text.text-darken-4 {
1955
- color: #3e2723 !important;
1956
- }
1957
-
1958
- .blue-grey {
1959
- background-color: #607d8b !important;
1960
- }
1961
-
1962
- .blue-grey-text {
1963
- color: #607d8b !important;
1964
- }
1965
-
1966
- .blue-grey.lighten-5 {
1967
- background-color: #eceff1 !important;
1968
- }
1969
-
1970
- .blue-grey-text.text-lighten-5 {
1971
- color: #eceff1 !important;
1972
- }
1973
-
1974
- .blue-grey.lighten-4 {
1975
- background-color: #cfd8dc !important;
1976
- }
1977
-
1978
- .blue-grey-text.text-lighten-4 {
1979
- color: #cfd8dc !important;
1980
- }
1981
-
1982
- .blue-grey.lighten-3 {
1983
- background-color: #b0bec5 !important;
1984
- }
1985
-
1986
- .blue-grey-text.text-lighten-3 {
1987
- color: #b0bec5 !important;
1988
- }
1989
-
1990
- .blue-grey.lighten-2 {
1991
- background-color: #90a4ae !important;
1992
- }
1993
-
1994
- .blue-grey-text.text-lighten-2 {
1995
- color: #90a4ae !important;
1996
- }
1997
-
1998
- .blue-grey.lighten-1 {
1999
- background-color: #78909c !important;
2000
- }
2001
-
2002
- .blue-grey-text.text-lighten-1 {
2003
- color: #78909c !important;
2004
- }
2005
-
2006
- .blue-grey.darken-1 {
2007
- background-color: #546e7a !important;
2008
- }
2009
-
2010
- .blue-grey-text.text-darken-1 {
2011
- color: #546e7a !important;
2012
- }
2013
-
2014
- .blue-grey.darken-2 {
2015
- background-color: #455a64 !important;
2016
- }
2017
-
2018
- .blue-grey-text.text-darken-2 {
2019
- color: #455a64 !important;
2020
- }
2021
-
2022
- .blue-grey.darken-3 {
2023
- background-color: #37474f !important;
2024
- }
2025
-
2026
- .blue-grey-text.text-darken-3 {
2027
- color: #37474f !important;
2028
- }
2029
-
2030
- .blue-grey.darken-4 {
2031
- background-color: #263238 !important;
2032
- }
2033
-
2034
- .blue-grey-text.text-darken-4 {
2035
- color: #263238 !important;
2036
- }
2037
-
2038
- .grey {
2039
- background-color: #9e9e9e !important;
2040
- }
2041
-
2042
- .grey-text {
2043
- color: #9e9e9e !important;
2044
- }
2045
-
2046
- .grey.lighten-5 {
2047
- background-color: #fafafa !important;
2048
- }
2049
-
2050
- .grey-text.text-lighten-5 {
2051
- color: #fafafa !important;
2052
- }
2053
-
2054
- .grey.lighten-4 {
2055
- background-color: #f5f5f5 !important;
2056
- }
2057
-
2058
- .grey-text.text-lighten-4 {
2059
- color: #f5f5f5 !important;
2060
- }
2061
-
2062
- .grey.lighten-3 {
2063
- background-color: #eeeeee !important;
2064
- }
2065
-
2066
- .grey-text.text-lighten-3 {
2067
- color: #eeeeee !important;
2068
- }
2069
-
2070
- .grey.lighten-2 {
2071
- background-color: #e0e0e0 !important;
2072
- }
2073
-
2074
- .grey-text.text-lighten-2 {
2075
- color: #e0e0e0 !important;
2076
- }
2077
-
2078
- .grey.lighten-1 {
2079
- background-color: #bdbdbd !important;
2080
- }
2081
-
2082
- .grey-text.text-lighten-1 {
2083
- color: #bdbdbd !important;
2084
- }
2085
-
2086
- .grey.darken-1 {
2087
- background-color: #757575 !important;
2088
- }
2089
-
2090
- .grey-text.text-darken-1 {
2091
- color: #757575 !important;
2092
- }
2093
-
2094
- .grey.darken-2 {
2095
- background-color: #616161 !important;
2096
- }
2097
-
2098
- .grey-text.text-darken-2 {
2099
- color: #616161 !important;
2100
- }
2101
-
2102
- .grey.darken-3 {
2103
- background-color: #424242 !important;
2104
- }
2105
-
2106
- .grey-text.text-darken-3 {
2107
- color: #424242 !important;
2108
- }
2109
-
2110
- .grey.darken-4 {
2111
- background-color: #212121 !important;
2112
- }
2113
-
2114
- .grey-text.text-darken-4 {
2115
- color: #212121 !important;
2116
- }
2117
-
2118
- .black {
2119
- background-color: #000000 !important;
2120
- }
2121
-
2122
- .black-text {
2123
- color: #000000 !important;
2124
- }
2125
-
2126
- .white {
2127
- background-color: #FFFFFF !important;
2128
- }
2129
-
2130
- .white-text {
2131
- color: #FFFFFF !important;
2132
- }
2133
-
2134
- .transparent {
2135
- background-color: transparent !important;
2136
- }
2137
-
2138
- .transparent-text {
2139
- color: transparent !important;
2140
- }
2141
-
2142
- /*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */
2143
- /**
2144
- * 1. Set default font family to sans-serif.
2145
- * 2. Prevent iOS and IE text size adjust after device orientation change,
2146
- * without disabling user zoom.
2147
- */
2148
- html {
2149
- font-family: sans-serif;
2150
- /* 1 */
2151
- -ms-text-size-adjust: 100%;
2152
- /* 2 */
2153
- -webkit-text-size-adjust: 100%;
2154
- /* 2 */
2155
- }
2156
-
2157
- /**
2158
- * Remove default margin.
2159
- */
2160
- body {
2161
- margin: 0;
2162
- }
2163
-
2164
- /* HTML5 display definitions
2165
- ========================================================================== */
2166
- /**
2167
- * Correct `block` display not defined for any HTML5 element in IE 8/9.
2168
- * Correct `block` display not defined for `details` or `summary` in IE 10/11
2169
- * and Firefox.
2170
- * Correct `block` display not defined for `main` in IE 11.
2171
- */
2172
- article,
2173
- aside,
2174
- details,
2175
- figcaption,
2176
- figure,
2177
- footer,
2178
- header,
2179
- hgroup,
2180
- main,
2181
- menu,
2182
- nav,
2183
- section,
2184
- summary {
2185
- display: block;
2186
- }
2187
-
2188
- /**
2189
- * 1. Correct `inline-block` display not defined in IE 8/9.
2190
- * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.
2191
- */
2192
- audio,
2193
- canvas,
2194
- progress,
2195
- video {
2196
- display: inline-block;
2197
- /* 1 */
2198
- vertical-align: baseline;
2199
- /* 2 */
2200
- }
2201
-
2202
- /**
2203
- * Prevent modern browsers from displaying `audio` without controls.
2204
- * Remove excess height in iOS 5 devices.
2205
- */
2206
- audio:not([controls]) {
2207
- display: none;
2208
- height: 0;
2209
- }
2210
-
2211
- /**
2212
- * Address `[hidden]` styling not present in IE 8/9/10.
2213
- * Hide the `template` element in IE 8/9/10/11, Safari, and Firefox < 22.
2214
- */
2215
- [hidden],
2216
- template {
2217
- display: none;
2218
- }
2219
-
2220
- /* Links
2221
- ========================================================================== */
2222
- /**
2223
- * Remove the gray background color from active links in IE 10.
2224
- */
2225
- a {
2226
- background-color: transparent;
2227
- }
2228
-
2229
- /**
2230
- * Improve readability of focused elements when they are also in an
2231
- * active/hover state.
2232
- */
2233
- a:active,
2234
- a:hover {
2235
- outline: 0;
2236
- }
2237
-
2238
- /* Text-level semantics
2239
- ========================================================================== */
2240
- /**
2241
- * Address styling not present in IE 8/9/10/11, Safari, and Chrome.
2242
- */
2243
- abbr[title] {
2244
- border-bottom: 1px dotted;
2245
- }
2246
-
2247
- /**
2248
- * Address style set to `bolder` in Firefox 4+, Safari, and Chrome.
2249
- */
2250
- b,
2251
- strong {
2252
- font-weight: bold;
2253
- }
2254
-
2255
- /**
2256
- * Address styling not present in Safari and Chrome.
2257
- */
2258
- dfn {
2259
- font-style: italic;
2260
- }
2261
-
2262
- /**
2263
- * Address variable `h1` font-size and margin within `section` and `article`
2264
- * contexts in Firefox 4+, Safari, and Chrome.
2265
- */
2266
- h1 {
2267
- font-size: 2em;
2268
- margin: 0.67em 0;
2269
- }
2270
-
2271
- /**
2272
- * Address styling not present in IE 8/9.
2273
- */
2274
- mark {
2275
- background: #ff0;
2276
- color: #000;
2277
- }
2278
-
2279
- /**
2280
- * Address inconsistent and variable font size in all browsers.
2281
- */
2282
- small {
2283
- font-size: 80%;
2284
- }
2285
-
2286
- /**
2287
- * Prevent `sub` and `sup` affecting `line-height` in all browsers.
2288
- */
2289
- sub,
2290
- sup {
2291
- font-size: 75%;
2292
- line-height: 0;
2293
- position: relative;
2294
- vertical-align: baseline;
2295
- }
2296
-
2297
- sup {
2298
- top: -0.5em;
2299
- }
2300
-
2301
- sub {
2302
- bottom: -0.25em;
2303
- }
2304
-
2305
- /* Embedded content
2306
- ========================================================================== */
2307
- /**
2308
- * Remove border when inside `a` element in IE 8/9/10.
2309
- */
2310
- img {
2311
- border: 0;
2312
- }
2313
-
2314
- /**
2315
- * Correct overflow not hidden in IE 9/10/11.
2316
- */
2317
- svg:not(:root) {
2318
- overflow: hidden;
2319
- }
2320
-
2321
- /* Grouping content
2322
- ========================================================================== */
2323
- /**
2324
- * Address margin not present in IE 8/9 and Safari.
2325
- */
2326
- figure {
2327
- margin: 1em 40px;
2328
- }
2329
-
2330
- /**
2331
- * Address differences between Firefox and other browsers.
2332
- */
2333
- hr {
2334
- box-sizing: content-box;
2335
- height: 0;
2336
- }
2337
-
2338
- /**
2339
- * Contain overflow in all browsers.
2340
- */
2341
- pre {
2342
- overflow: auto;
2343
- }
2344
-
2345
- /**
2346
- * Address odd `em`-unit font size rendering in all browsers.
2347
- */
2348
- code,
2349
- kbd,
2350
- pre,
2351
- samp {
2352
- font-family: monospace, monospace;
2353
- font-size: 1em;
2354
- }
2355
-
2356
- /* Forms
2357
- ========================================================================== */
2358
- /**
2359
- * Known limitation: by default, Chrome and Safari on OS X allow very limited
2360
- * styling of `select`, unless a `border` property is set.
2361
- */
2362
- /**
2363
- * 1. Correct color not being inherited.
2364
- * Known issue: affects color of disabled elements.
2365
- * 2. Correct font properties not being inherited.
2366
- * 3. Address margins set differently in Firefox 4+, Safari, and Chrome.
2367
- */
2368
- button,
2369
- input,
2370
- optgroup,
2371
- select,
2372
- textarea {
2373
- color: inherit;
2374
- /* 1 */
2375
- font: inherit;
2376
- /* 2 */
2377
- margin: 0;
2378
- /* 3 */
2379
- }
2380
-
2381
- /**
2382
- * Address `overflow` set to `hidden` in IE 8/9/10/11.
2383
- */
2384
- button {
2385
- overflow: visible;
2386
- }
2387
-
2388
- /**
2389
- * Address inconsistent `text-transform` inheritance for `button` and `select`.
2390
- * All other form control elements do not inherit `text-transform` values.
2391
- * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.
2392
- * Correct `select` style inheritance in Firefox.
2393
- */
2394
- button,
2395
- select {
2396
- text-transform: none;
2397
- }
2398
-
2399
- /**
2400
- * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
2401
- * and `video` controls.
2402
- * 2. Correct inability to style clickable `input` types in iOS.
2403
- * 3. Improve usability and consistency of cursor style between image-type
2404
- * `input` and others.
2405
- */
2406
- button,
2407
- html input[type="button"],
2408
- input[type="reset"],
2409
- input[type="submit"] {
2410
- -webkit-appearance: button;
2411
- /* 2 */
2412
- cursor: pointer;
2413
- /* 3 */
2414
- }
2415
-
2416
- /**
2417
- * Re-set default cursor for disabled elements.
2418
- */
2419
- button[disabled],
2420
- html input[disabled] {
2421
- cursor: default;
2422
- }
2423
-
2424
- /**
2425
- * Remove inner padding and border in Firefox 4+.
2426
- */
2427
- button::-moz-focus-inner,
2428
- input::-moz-focus-inner {
2429
- border: 0;
2430
- padding: 0;
2431
- }
2432
-
2433
- /**
2434
- * Address Firefox 4+ setting `line-height` on `input` using `!important` in
2435
- * the UA stylesheet.
2436
- */
2437
- input {
2438
- line-height: normal;
2439
- }
2440
-
2441
- /**
2442
- * It's recommended that you don't attempt to style these elements.
2443
- * Firefox's implementation doesn't respect box-sizing, padding, or width.
2444
- *
2445
- * 1. Address box sizing set to `content-box` in IE 8/9/10.
2446
- * 2. Remove excess padding in IE 8/9/10.
2447
- */
2448
- input[type="checkbox"],
2449
- input[type="radio"] {
2450
- box-sizing: border-box;
2451
- /* 1 */
2452
- padding: 0;
2453
- /* 2 */
2454
- }
2455
-
2456
- /**
2457
- * Fix the cursor style for Chrome's increment/decrement buttons. For certain
2458
- * `font-size` values of the `input`, it causes the cursor style of the
2459
- * decrement button to change from `default` to `text`.
2460
- */
2461
- input[type="number"]::-webkit-inner-spin-button,
2462
- input[type="number"]::-webkit-outer-spin-button {
2463
- height: auto;
2464
- }
2465
-
2466
- /**
2467
- * 1. Address `appearance` set to `searchfield` in Safari and Chrome.
2468
- * 2. Address `box-sizing` set to `border-box` in Safari and Chrome.
2469
- */
2470
- input[type="search"] {
2471
- -webkit-appearance: textfield;
2472
- /* 1 */
2473
- box-sizing: content-box;
2474
- /* 2 */
2475
- }
2476
-
2477
- /**
2478
- * Remove inner padding and search cancel button in Safari and Chrome on OS X.
2479
- * Safari (but not Chrome) clips the cancel button when the search input has
2480
- * padding (and `textfield` appearance).
2481
- */
2482
- input[type="search"]::-webkit-search-cancel-button,
2483
- input[type="search"]::-webkit-search-decoration {
2484
- -webkit-appearance: none;
2485
- }
2486
-
2487
- /**
2488
- * Define consistent border, margin, and padding.
2489
- */
2490
- fieldset {
2491
- border: 1px solid #c0c0c0;
2492
- margin: 0 2px;
2493
- padding: 0.35em 0.625em 0.75em;
2494
- }
2495
-
2496
- /**
2497
- * 1. Correct `color` not being inherited in IE 8/9/10/11.
2498
- * 2. Remove padding so people aren't caught out if they zero out fieldsets.
2499
- */
2500
- legend {
2501
- border: 0;
2502
- /* 1 */
2503
- padding: 0;
2504
- /* 2 */
2505
- }
2506
-
2507
- /**
2508
- * Remove default vertical scrollbar in IE 8/9/10/11.
2509
- */
2510
- textarea {
2511
- overflow: auto;
2512
- }
2513
-
2514
- /**
2515
- * Don't inherit the `font-weight` (applied by a rule above).
2516
- * NOTE: the default cannot safely be changed in Chrome and Safari on OS X.
2517
- */
2518
- optgroup {
2519
- font-weight: bold;
2520
- }
2521
-
2522
- /* Tables
2523
- ========================================================================== */
2524
- /**
2525
- * Remove most spacing between table cells.
2526
- */
2527
- table {
2528
- border-collapse: collapse;
2529
- border-spacing: 0;
2530
- }
2531
-
2532
- td,
2533
- th {
2534
- padding: 0;
2535
- }
2536
-
2537
- html {
2538
- box-sizing: border-box;
2539
- }
2540
-
2541
- *, *:before, *:after {
2542
- box-sizing: inherit;
2543
- }
2544
-
2545
- ul:not(.browser-default) {
2546
- padding-left: 0;
2547
- list-style-type: none;
2548
- }
2549
-
2550
- ul:not(.browser-default) li {
2551
- list-style-type: none;
2552
- }
2553
-
2554
- a {
2555
- color: #039be5;
2556
- text-decoration: none;
2557
- -webkit-tap-highlight-color: transparent;
2558
- }
2559
-
2560
- .valign-wrapper {
2561
- display: -webkit-flex;
2562
- display: -ms-flexbox;
2563
- display: flex;
2564
- -webkit-align-items: center;
2565
- -ms-flex-align: center;
2566
- align-items: center;
2567
- }
2568
-
2569
- .valign-wrapper .valign {
2570
- display: block;
2571
- }
2572
-
2573
- .clearfix {
2574
- clear: both;
2575
- }
2576
-
2577
- .z-depth-0 {
2578
- box-shadow: none !important;
2579
- }
2580
-
2581
- .z-depth-1, nav, .card-panel, .card, .toast, .btn, .btn-large, .btn-floating, .dropdown-content, .collapsible, .side-nav {
2582
- 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);
2583
- }
2584
-
2585
- .z-depth-1-half, .btn:hover, .btn-large:hover, .btn-floating:hover {
2586
- 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);
2587
- }
2588
-
2589
- .z-depth-2 {
2590
- 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);
2591
- }
2592
-
2593
- .z-depth-3 {
2594
- 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);
2595
- }
2596
-
2597
- .z-depth-4, .modal {
2598
- 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);
2599
- }
2600
-
2601
- .z-depth-5 {
2602
- 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);
2603
- }
2604
-
2605
- .hoverable {
2606
- transition: box-shadow .25s;
2607
- box-shadow: 0;
2608
- }
2609
-
2610
- .hoverable:hover {
2611
- transition: box-shadow .25s;
2612
- box-shadow: 0 8px 17px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
2613
- }
2614
-
2615
- .divider {
2616
- height: 1px;
2617
- overflow: hidden;
2618
- background-color: #e0e0e0;
2619
- }
2620
-
2621
- blockquote {
2622
- margin: 20px 0;
2623
- padding-left: 1.5rem;
2624
- border-left: 5px solid #ee6e73;
2625
- }
2626
-
2627
- i {
2628
- line-height: inherit;
2629
- }
2630
-
2631
- i.left {
2632
- float: left;
2633
- margin-right: 15px;
2634
- }
2635
-
2636
- i.right {
2637
- float: right;
2638
- margin-left: 15px;
2639
- }
2640
-
2641
- i.tiny {
2642
- font-size: 1rem;
2643
- }
2644
-
2645
- i.small {
2646
- font-size: 2rem;
2647
- }
2648
-
2649
- i.medium {
2650
- font-size: 4rem;
2651
- }
2652
-
2653
- i.large {
2654
- font-size: 6rem;
2655
- }
2656
-
2657
- img.responsive-img,
2658
- video.responsive-video {
2659
- max-width: 100%;
2660
- height: auto;
2661
- }
2662
-
2663
- .pagination li {
2664
- display: inline-block;
2665
- border-radius: 2px;
2666
- text-align: center;
2667
- vertical-align: top;
2668
- height: 30px;
2669
- }
2670
-
2671
- .pagination li a {
2672
- color: #444;
2673
- display: inline-block;
2674
- font-size: 1.2rem;
2675
- padding: 0 10px;
2676
- line-height: 30px;
2677
- }
2678
-
2679
- .pagination li.active a {
2680
- color: #fff;
2681
- }
2682
-
2683
- .pagination li.active {
2684
- background-color: #ee6e73;
2685
- }
2686
-
2687
- .pagination li.disabled a {
2688
- cursor: default;
2689
- color: #999;
2690
- }
2691
-
2692
- .pagination li i {
2693
- font-size: 2rem;
2694
- }
2695
-
2696
- .pagination li.pages ul li {
2697
- display: inline-block;
2698
- float: none;
2699
- }
2700
-
2701
- @media only screen and (max-width: 992px) {
2702
- .pagination {
2703
- width: 100%;
2704
- }
2705
- .pagination li.prev,
2706
- .pagination li.next {
2707
- width: 10%;
2708
- }
2709
- .pagination li.pages {
2710
- width: 80%;
2711
- overflow: hidden;
2712
- white-space: nowrap;
2713
- }
2714
- }
2715
-
2716
- .breadcrumb {
2717
- font-size: 18px;
2718
- color: rgba(255, 255, 255, 0.7);
2719
- }
2720
-
2721
- .breadcrumb i,
2722
- .breadcrumb [class^="mdi-"], .breadcrumb [class*="mdi-"],
2723
- .breadcrumb i.material-icons {
2724
- display: inline-block;
2725
- float: left;
2726
- font-size: 24px;
2727
- }
2728
-
2729
- .breadcrumb:before {
2730
- content: '\E5CC';
2731
- color: rgba(255, 255, 255, 0.7);
2732
- vertical-align: top;
2733
- display: inline-block;
2734
- font-family: 'Material Icons';
2735
- font-weight: normal;
2736
- font-style: normal;
2737
- font-size: 25px;
2738
- margin: 0 10px 0 8px;
2739
- -webkit-font-smoothing: antialiased;
2740
- }
2741
-
2742
- .breadcrumb:first-child:before {
2743
- display: none;
2744
- }
2745
-
2746
- .breadcrumb:last-child {
2747
- color: #fff;
2748
- }
2749
-
2750
- .parallax-container {
2751
- position: relative;
2752
- overflow: hidden;
2753
- height: 500px;
2754
- }
2755
-
2756
- .parallax {
2757
- position: absolute;
2758
- top: 0;
2759
- left: 0;
2760
- right: 0;
2761
- bottom: 0;
2762
- z-index: -1;
2763
- }
2764
-
2765
- .parallax img {
2766
- display: none;
2767
- position: absolute;
2768
- left: 50%;
2769
- bottom: 0;
2770
- min-width: 100%;
2771
- min-height: 100%;
2772
- -webkit-transform: translate3d(0, 0, 0);
2773
- transform: translate3d(0, 0, 0);
2774
- -webkit-transform: translateX(-50%);
2775
- transform: translateX(-50%);
2776
- }
2777
-
2778
- .pin-top, .pin-bottom {
2779
- position: relative;
2780
- }
2781
-
2782
- .pinned {
2783
- position: fixed !important;
2784
- }
2785
-
2786
- /*********************
2787
- Transition Classes
2788
- **********************/
2789
- ul.staggered-list li {
2790
- opacity: 0;
2791
- }
2792
-
2793
- .fade-in {
2794
- opacity: 0;
2795
- -webkit-transform-origin: 0 50%;
2796
- transform-origin: 0 50%;
2797
- }
2798
-
2799
- /*********************
2800
- Media Query Classes
2801
- **********************/
2802
- @media only screen and (max-width: 600px) {
2803
- .hide-on-small-only, .hide-on-small-and-down {
2804
- display: none !important;
2805
- }
2806
- }
2807
-
2808
- @media only screen and (max-width: 992px) {
2809
- .hide-on-med-and-down {
2810
- display: none !important;
2811
- }
2812
- }
2813
-
2814
- @media only screen and (min-width: 601px) {
2815
- .hide-on-med-and-up {
2816
- display: none !important;
2817
- }
2818
- }
2819
-
2820
- @media only screen and (min-width: 600px) and (max-width: 992px) {
2821
- .hide-on-med-only {
2822
- display: none !important;
2823
- }
2824
- }
2825
-
2826
- @media only screen and (min-width: 993px) {
2827
- .hide-on-large-only {
2828
- display: none !important;
2829
- }
2830
- }
2831
-
2832
- @media only screen and (min-width: 993px) {
2833
- .show-on-large {
2834
- display: block !important;
2835
- }
2836
- }
2837
-
2838
- @media only screen and (min-width: 600px) and (max-width: 992px) {
2839
- .show-on-medium {
2840
- display: block !important;
2841
- }
2842
- }
2843
-
2844
- @media only screen and (max-width: 600px) {
2845
- .show-on-small {
2846
- display: block !important;
2847
- }
2848
- }
2849
-
2850
- @media only screen and (min-width: 601px) {
2851
- .show-on-medium-and-up {
2852
- display: block !important;
2853
- }
2854
- }
2855
-
2856
- @media only screen and (max-width: 992px) {
2857
- .show-on-medium-and-down {
2858
- display: block !important;
2859
- }
2860
- }
2861
-
2862
- @media only screen and (max-width: 600px) {
2863
- .center-on-small-only {
2864
- text-align: center;
2865
- }
2866
- }
2867
-
2868
- footer.page-footer {
2869
- padding-top: 20px;
2870
- background-color: #ee6e73;
2871
- }
2872
-
2873
- footer.page-footer .footer-copyright {
2874
- overflow: hidden;
2875
- min-height: 50px;
2876
- display: -webkit-flex;
2877
- display: -ms-flexbox;
2878
- display: flex;
2879
- -webkit-align-items: center;
2880
- -ms-flex-align: center;
2881
- align-items: center;
2882
- padding: 10px 0px;
2883
- color: rgba(255, 255, 255, 0.8);
2884
- background-color: rgba(51, 51, 51, 0.08);
2885
- }
2886
-
2887
- table, th, td {
2888
- border: none;
2889
- }
2890
-
2891
- table {
2892
- width: 100%;
2893
- display: table;
2894
- }
2895
-
2896
- table.bordered > thead > tr,
2897
- table.bordered > tbody > tr {
2898
- border-bottom: 1px solid #d0d0d0;
2899
- }
2900
-
2901
- table.striped > tbody > tr:nth-child(odd) {
2902
- background-color: #f2f2f2;
2903
- }
2904
-
2905
- table.striped > tbody > tr > td {
2906
- border-radius: 0;
2907
- }
2908
-
2909
- table.highlight > tbody > tr {
2910
- transition: background-color .25s ease;
2911
- }
2912
-
2913
- table.highlight > tbody > tr:hover {
2914
- background-color: #f2f2f2;
2915
- }
2916
-
2917
- table.centered thead tr th, table.centered tbody tr td {
2918
- text-align: center;
2919
- }
2920
-
2921
- thead {
2922
- border-bottom: 1px solid #d0d0d0;
2923
- }
2924
-
2925
- td, th {
2926
- padding: 15px 5px;
2927
- display: table-cell;
2928
- text-align: left;
2929
- vertical-align: middle;
2930
- border-radius: 2px;
2931
- }
2932
-
2933
- @media only screen and (max-width: 992px) {
2934
- table.responsive-table {
2935
- width: 100%;
2936
- border-collapse: collapse;
2937
- border-spacing: 0;
2938
- display: block;
2939
- position: relative;
2940
- /* sort out borders */
2941
- }
2942
- table.responsive-table td:empty:before {
2943
- content: '\00a0';
2944
- }
2945
- table.responsive-table th,
2946
- table.responsive-table td {
2947
- margin: 0;
2948
- vertical-align: top;
2949
- }
2950
- table.responsive-table th {
2951
- text-align: left;
2952
- }
2953
- table.responsive-table thead {
2954
- display: block;
2955
- float: left;
2956
- }
2957
- table.responsive-table thead tr {
2958
- display: block;
2959
- padding: 0 10px 0 0;
2960
- }
2961
- table.responsive-table thead tr th::before {
2962
- content: "\00a0";
2963
- }
2964
- table.responsive-table tbody {
2965
- display: block;
2966
- width: auto;
2967
- position: relative;
2968
- overflow-x: auto;
2969
- white-space: nowrap;
2970
- }
2971
- table.responsive-table tbody tr {
2972
- display: inline-block;
2973
- vertical-align: top;
2974
- }
2975
- table.responsive-table th {
2976
- display: block;
2977
- text-align: right;
2978
- }
2979
- table.responsive-table td {
2980
- display: block;
2981
- min-height: 1.25em;
2982
- text-align: left;
2983
- }
2984
- table.responsive-table tr {
2985
- padding: 0 10px;
2986
- }
2987
- table.responsive-table thead {
2988
- border: 0;
2989
- border-right: 1px solid #d0d0d0;
2990
- }
2991
- table.responsive-table.bordered th {
2992
- border-bottom: 0;
2993
- border-left: 0;
2994
- }
2995
- table.responsive-table.bordered td {
2996
- border-left: 0;
2997
- border-right: 0;
2998
- border-bottom: 0;
2999
- }
3000
- table.responsive-table.bordered tr {
3001
- border: 0;
3002
- }
3003
- table.responsive-table.bordered tbody tr {
3004
- border-right: 1px solid #d0d0d0;
3005
- }
3006
- }
3007
-
3008
- .collection {
3009
- margin: 0.5rem 0 1rem 0;
3010
- border: 1px solid #e0e0e0;
3011
- border-radius: 2px;
3012
- overflow: hidden;
3013
- position: relative;
3014
- }
3015
-
3016
- .collection .collection-item {
3017
- background-color: #fff;
3018
- line-height: 1.5rem;
3019
- padding: 10px 20px;
3020
- margin: 0;
3021
- border-bottom: 1px solid #e0e0e0;
3022
- }
3023
-
3024
- .collection .collection-item.avatar {
3025
- min-height: 84px;
3026
- padding-left: 72px;
3027
- position: relative;
3028
- }
3029
-
3030
- .collection .collection-item.avatar .circle {
3031
- position: absolute;
3032
- width: 42px;
3033
- height: 42px;
3034
- overflow: hidden;
3035
- left: 15px;
3036
- display: inline-block;
3037
- vertical-align: middle;
3038
- }
3039
-
3040
- .collection .collection-item.avatar i.circle {
3041
- font-size: 18px;
3042
- line-height: 42px;
3043
- color: #fff;
3044
- background-color: #999;
3045
- text-align: center;
3046
- }
3047
-
3048
- .collection .collection-item.avatar .title {
3049
- font-size: 16px;
3050
- }
3051
-
3052
- .collection .collection-item.avatar p {
3053
- margin: 0;
3054
- }
3055
-
3056
- .collection .collection-item.avatar .secondary-content {
3057
- position: absolute;
3058
- top: 16px;
3059
- right: 16px;
3060
- }
3061
-
3062
- .collection .collection-item:last-child {
3063
- border-bottom: none;
3064
- }
3065
-
3066
- .collection .collection-item.active {
3067
- background-color: #26a69a;
3068
- color: #eafaf9;
3069
- }
3070
-
3071
- .collection .collection-item.active .secondary-content {
3072
- color: #fff;
3073
- }
3074
-
3075
- .collection a.collection-item {
3076
- display: block;
3077
- transition: .25s;
3078
- color: #26a69a;
3079
- }
3080
-
3081
- .collection a.collection-item:not(.active):hover {
3082
- background-color: #ddd;
3083
- }
3084
-
3085
- .collection.with-header .collection-header {
3086
- background-color: #fff;
3087
- border-bottom: 1px solid #e0e0e0;
3088
- padding: 10px 20px;
3089
- }
3090
-
3091
- .collection.with-header .collection-item {
3092
- padding-left: 30px;
3093
- }
3094
-
3095
- .collection.with-header .collection-item.avatar {
3096
- padding-left: 72px;
3097
- }
3098
-
3099
- .secondary-content {
3100
- float: right;
3101
- color: #26a69a;
3102
- }
3103
-
3104
- .collapsible .collection {
3105
- margin: 0;
3106
- border: none;
3107
- }
3108
-
3109
- .video-container {
3110
- position: relative;
3111
- padding-bottom: 56.25%;
3112
- height: 0;
3113
- overflow: hidden;
3114
- }
3115
-
3116
- .video-container iframe, .video-container object, .video-container embed {
3117
- position: absolute;
3118
- top: 0;
3119
- left: 0;
3120
- width: 100%;
3121
- height: 100%;
3122
- }
3123
-
3124
- .progress {
3125
- position: relative;
3126
- height: 4px;
3127
- display: block;
3128
- width: 100%;
3129
- background-color: #acece6;
3130
- border-radius: 2px;
3131
- margin: 0.5rem 0 1rem 0;
3132
- overflow: hidden;
3133
- }
3134
-
3135
- .progress .determinate {
3136
- position: absolute;
3137
- top: 0;
3138
- left: 0;
3139
- bottom: 0;
3140
- background-color: #26a69a;
3141
- transition: width .3s linear;
3142
- }
3143
-
3144
- .progress .indeterminate {
3145
- background-color: #26a69a;
3146
- }
3147
-
3148
- .progress .indeterminate:before {
3149
- content: '';
3150
- position: absolute;
3151
- background-color: inherit;
3152
- top: 0;
3153
- left: 0;
3154
- bottom: 0;
3155
- will-change: left, right;
3156
- -webkit-animation: indeterminate 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite;
3157
- animation: indeterminate 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite;
3158
- }
3159
-
3160
- .progress .indeterminate:after {
3161
- content: '';
3162
- position: absolute;
3163
- background-color: inherit;
3164
- top: 0;
3165
- left: 0;
3166
- bottom: 0;
3167
- will-change: left, right;
3168
- -webkit-animation: indeterminate-short 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) infinite;
3169
- animation: indeterminate-short 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) infinite;
3170
- -webkit-animation-delay: 1.15s;
3171
- animation-delay: 1.15s;
3172
- }
3173
-
3174
- @-webkit-keyframes indeterminate {
3175
- 0% {
3176
- left: -35%;
3177
- right: 100%;
3178
- }
3179
- 60% {
3180
- left: 100%;
3181
- right: -90%;
3182
- }
3183
- 100% {
3184
- left: 100%;
3185
- right: -90%;
3186
- }
3187
- }
3188
-
3189
- @keyframes indeterminate {
3190
- 0% {
3191
- left: -35%;
3192
- right: 100%;
3193
- }
3194
- 60% {
3195
- left: 100%;
3196
- right: -90%;
3197
- }
3198
- 100% {
3199
- left: 100%;
3200
- right: -90%;
3201
- }
3202
- }
3203
-
3204
- @-webkit-keyframes indeterminate-short {
3205
- 0% {
3206
- left: -200%;
3207
- right: 100%;
3208
- }
3209
- 60% {
3210
- left: 107%;
3211
- right: -8%;
3212
- }
3213
- 100% {
3214
- left: 107%;
3215
- right: -8%;
3216
- }
3217
- }
3218
-
3219
- @keyframes indeterminate-short {
3220
- 0% {
3221
- left: -200%;
3222
- right: 100%;
3223
- }
3224
- 60% {
3225
- left: 107%;
3226
- right: -8%;
3227
- }
3228
- 100% {
3229
- left: 107%;
3230
- right: -8%;
3231
- }
3232
- }
3233
-
3234
- /*******************
3235
- Utility Classes
3236
- *******************/
3237
- .hide {
3238
- display: none !important;
3239
- }
3240
-
3241
- .left-align {
3242
- text-align: left;
3243
- }
3244
-
3245
- .right-align {
3246
- text-align: right;
3247
- }
3248
-
3249
- .center, .center-align {
3250
- text-align: center;
3251
- }
3252
-
3253
- .left {
3254
- float: left !important;
3255
- }
3256
-
3257
- .right {
3258
- float: right !important;
3259
- }
3260
-
3261
- .no-select, input[type=range],
3262
- input[type=range] + .thumb {
3263
- -webkit-touch-callout: none;
3264
- -webkit-user-select: none;
3265
- -moz-user-select: none;
3266
- -ms-user-select: none;
3267
- user-select: none;
3268
- }
3269
-
3270
- .circle {
3271
- border-radius: 50%;
3272
- }
3273
-
3274
- .center-block {
3275
- display: block;
3276
- margin-left: auto;
3277
- margin-right: auto;
3278
- }
3279
-
3280
- .truncate {
3281
- display: block;
3282
- white-space: nowrap;
3283
- overflow: hidden;
3284
- text-overflow: ellipsis;
3285
- }
3286
-
3287
- .no-padding {
3288
- padding: 0 !important;
3289
- }
3290
-
3291
- span.badge {
3292
- min-width: 3rem;
3293
- padding: 0 6px;
3294
- margin-left: 14px;
3295
- text-align: center;
3296
- font-size: 1rem;
3297
- line-height: 22px;
3298
- height: 22px;
3299
- color: #757575;
3300
- float: right;
3301
- box-sizing: border-box;
3302
- }
3303
-
3304
- span.badge.new {
3305
- font-weight: 300;
3306
- font-size: 0.8rem;
3307
- color: #fff;
3308
- background-color: #26a69a;
3309
- border-radius: 2px;
3310
- }
3311
-
3312
- span.badge.new:after {
3313
- content: " new";
3314
- }
3315
-
3316
- span.badge[data-badge-caption]::after {
3317
- content: " " attr(data-badge-caption);
3318
- }
3319
-
3320
- nav ul a span.badge {
3321
- display: inline-block;
3322
- float: none;
3323
- margin-left: 4px;
3324
- line-height: 22px;
3325
- height: 22px;
3326
- }
3327
-
3328
- .collection-item span.badge {
3329
- margin-top: calc(0.75rem - 11px);
3330
- }
3331
-
3332
- .collapsible span.badge {
3333
- margin-top: calc(1.5rem - 11px);
3334
- }
3335
-
3336
- .side-nav span.badge {
3337
- margin-top: calc(24px - 11px);
3338
- }
3339
-
3340
- /* This is needed for some mobile phones to display the Google Icon font properly */
3341
- .material-icons {
3342
- text-rendering: optimizeLegibility;
3343
- -webkit-font-feature-settings: 'liga';
3344
- -moz-font-feature-settings: 'liga';
3345
- font-feature-settings: 'liga';
3346
- }
3347
-
3348
- .container {
3349
- margin: 0 auto;
3350
- max-width: 1280px;
3351
- width: 90%;
3352
- }
3353
-
3354
- @media only screen and (min-width: 601px) {
3355
- .container {
3356
- width: 85%;
3357
- }
3358
- }
3359
-
3360
- @media only screen and (min-width: 993px) {
3361
- .container {
3362
- width: 70%;
3363
- }
3364
- }
3365
-
3366
- .container .row {
3367
- margin-left: -0.75rem;
3368
- margin-right: -0.75rem;
3369
- }
3370
-
3371
- .section {
3372
- padding-top: 1rem;
3373
- padding-bottom: 1rem;
3374
- }
3375
-
3376
- .section.no-pad {
3377
- padding: 0;
3378
- }
3379
-
3380
- .section.no-pad-bot {
3381
- padding-bottom: 0;
3382
- }
3383
-
3384
- .section.no-pad-top {
3385
- padding-top: 0;
3386
- }
3387
-
3388
- .row {
3389
- margin-left: auto;
3390
- margin-right: auto;
3391
- margin-bottom: 20px;
3392
- }
3393
-
3394
- .row:after {
3395
- content: "";
3396
- display: table;
3397
- clear: both;
3398
- }
3399
-
3400
- .row .col {
3401
- float: left;
3402
- box-sizing: border-box;
3403
- padding: 0 0.75rem;
3404
- min-height: 1px;
3405
- }
3406
-
3407
- .row .col[class*="push-"], .row .col[class*="pull-"] {
3408
- position: relative;
3409
- }
3410
-
3411
- .row .col.s1 {
3412
- width: 8.3333333333%;
3413
- margin-left: auto;
3414
- left: auto;
3415
- right: auto;
3416
- }
3417
-
3418
- .row .col.s2 {
3419
- width: 16.6666666667%;
3420
- margin-left: auto;
3421
- left: auto;
3422
- right: auto;
3423
- }
3424
-
3425
- .row .col.s3 {
3426
- width: 25%;
3427
- margin-left: auto;
3428
- left: auto;
3429
- right: auto;
3430
- }
3431
-
3432
- .row .col.s4 {
3433
- width: 33.3333333333%;
3434
- margin-left: auto;
3435
- left: auto;
3436
- right: auto;
3437
- }
3438
-
3439
- .row .col.s5 {
3440
- width: 41.6666666667%;
3441
- margin-left: auto;
3442
- left: auto;
3443
- right: auto;
3444
- }
3445
-
3446
- .row .col.s6 {
3447
- width: 50%;
3448
- margin-left: auto;
3449
- left: auto;
3450
- right: auto;
3451
- }
3452
-
3453
- .row .col.s7 {
3454
- width: 58.3333333333%;
3455
- margin-left: auto;
3456
- left: auto;
3457
- right: auto;
3458
- }
3459
-
3460
- .row .col.s8 {
3461
- width: 66.6666666667%;
3462
- margin-left: auto;
3463
- left: auto;
3464
- right: auto;
3465
- }
3466
-
3467
- .row .col.s9 {
3468
- width: 75%;
3469
- margin-left: auto;
3470
- left: auto;
3471
- right: auto;
3472
- }
3473
-
3474
- .row .col.s10 {
3475
- width: 83.3333333333%;
3476
- margin-left: auto;
3477
- left: auto;
3478
- right: auto;
3479
- }
3480
-
3481
- .row .col.s11 {
3482
- width: 91.6666666667%;
3483
- margin-left: auto;
3484
- left: auto;
3485
- right: auto;
3486
- }
3487
-
3488
- .row .col.s12 {
3489
- width: 100%;
3490
- margin-left: auto;
3491
- left: auto;
3492
- right: auto;
3493
- }
3494
-
3495
- .row .col.offset-s1 {
3496
- margin-left: 8.3333333333%;
3497
- }
3498
-
3499
- .row .col.pull-s1 {
3500
- right: 8.3333333333%;
3501
- }
3502
-
3503
- .row .col.push-s1 {
3504
- left: 8.3333333333%;
3505
- }
3506
-
3507
- .row .col.offset-s2 {
3508
- margin-left: 16.6666666667%;
3509
- }
3510
-
3511
- .row .col.pull-s2 {
3512
- right: 16.6666666667%;
3513
- }
3514
-
3515
- .row .col.push-s2 {
3516
- left: 16.6666666667%;
3517
- }
3518
-
3519
- .row .col.offset-s3 {
3520
- margin-left: 25%;
3521
- }
3522
-
3523
- .row .col.pull-s3 {
3524
- right: 25%;
3525
- }
3526
-
3527
- .row .col.push-s3 {
3528
- left: 25%;
3529
- }
3530
-
3531
- .row .col.offset-s4 {
3532
- margin-left: 33.3333333333%;
3533
- }
3534
-
3535
- .row .col.pull-s4 {
3536
- right: 33.3333333333%;
3537
- }
3538
-
3539
- .row .col.push-s4 {
3540
- left: 33.3333333333%;
3541
- }
3542
-
3543
- .row .col.offset-s5 {
3544
- margin-left: 41.6666666667%;
3545
- }
3546
-
3547
- .row .col.pull-s5 {
3548
- right: 41.6666666667%;
3549
- }
3550
-
3551
- .row .col.push-s5 {
3552
- left: 41.6666666667%;
3553
- }
3554
-
3555
- .row .col.offset-s6 {
3556
- margin-left: 50%;
3557
- }
3558
-
3559
- .row .col.pull-s6 {
3560
- right: 50%;
3561
- }
3562
-
3563
- .row .col.push-s6 {
3564
- left: 50%;
3565
- }
3566
-
3567
- .row .col.offset-s7 {
3568
- margin-left: 58.3333333333%;
3569
- }
3570
-
3571
- .row .col.pull-s7 {
3572
- right: 58.3333333333%;
3573
- }
3574
-
3575
- .row .col.push-s7 {
3576
- left: 58.3333333333%;
3577
- }
3578
-
3579
- .row .col.offset-s8 {
3580
- margin-left: 66.6666666667%;
3581
- }
3582
-
3583
- .row .col.pull-s8 {
3584
- right: 66.6666666667%;
3585
- }
3586
-
3587
- .row .col.push-s8 {
3588
- left: 66.6666666667%;
3589
- }
3590
-
3591
- .row .col.offset-s9 {
3592
- margin-left: 75%;
3593
- }
3594
-
3595
- .row .col.pull-s9 {
3596
- right: 75%;
3597
- }
3598
-
3599
- .row .col.push-s9 {
3600
- left: 75%;
3601
- }
3602
-
3603
- .row .col.offset-s10 {
3604
- margin-left: 83.3333333333%;
3605
- }
3606
-
3607
- .row .col.pull-s10 {
3608
- right: 83.3333333333%;
3609
- }
3610
-
3611
- .row .col.push-s10 {
3612
- left: 83.3333333333%;
3613
- }
3614
-
3615
- .row .col.offset-s11 {
3616
- margin-left: 91.6666666667%;
3617
- }
3618
-
3619
- .row .col.pull-s11 {
3620
- right: 91.6666666667%;
3621
- }
3622
-
3623
- .row .col.push-s11 {
3624
- left: 91.6666666667%;
3625
- }
3626
-
3627
- .row .col.offset-s12 {
3628
- margin-left: 100%;
3629
- }
3630
-
3631
- .row .col.pull-s12 {
3632
- right: 100%;
3633
- }
3634
-
3635
- .row .col.push-s12 {
3636
- left: 100%;
3637
- }
3638
-
3639
- @media only screen and (min-width: 601px) {
3640
- .row .col.m1 {
3641
- width: 8.3333333333%;
3642
- margin-left: auto;
3643
- left: auto;
3644
- right: auto;
3645
- }
3646
- .row .col.m2 {
3647
- width: 16.6666666667%;
3648
- margin-left: auto;
3649
- left: auto;
3650
- right: auto;
3651
- }
3652
- .row .col.m3 {
3653
- width: 25%;
3654
- margin-left: auto;
3655
- left: auto;
3656
- right: auto;
3657
- }
3658
- .row .col.m4 {
3659
- width: 33.3333333333%;
3660
- margin-left: auto;
3661
- left: auto;
3662
- right: auto;
3663
- }
3664
- .row .col.m5 {
3665
- width: 41.6666666667%;
3666
- margin-left: auto;
3667
- left: auto;
3668
- right: auto;
3669
- }
3670
- .row .col.m6 {
3671
- width: 50%;
3672
- margin-left: auto;
3673
- left: auto;
3674
- right: auto;
3675
- }
3676
- .row .col.m7 {
3677
- width: 58.3333333333%;
3678
- margin-left: auto;
3679
- left: auto;
3680
- right: auto;
3681
- }
3682
- .row .col.m8 {
3683
- width: 66.6666666667%;
3684
- margin-left: auto;
3685
- left: auto;
3686
- right: auto;
3687
- }
3688
- .row .col.m9 {
3689
- width: 75%;
3690
- margin-left: auto;
3691
- left: auto;
3692
- right: auto;
3693
- }
3694
- .row .col.m10 {
3695
- width: 83.3333333333%;
3696
- margin-left: auto;
3697
- left: auto;
3698
- right: auto;
3699
- }
3700
- .row .col.m11 {
3701
- width: 91.6666666667%;
3702
- margin-left: auto;
3703
- left: auto;
3704
- right: auto;
3705
- }
3706
- .row .col.m12 {
3707
- width: 100%;
3708
- margin-left: auto;
3709
- left: auto;
3710
- right: auto;
3711
- }
3712
- .row .col.offset-m1 {
3713
- margin-left: 8.3333333333%;
3714
- }
3715
- .row .col.pull-m1 {
3716
- right: 8.3333333333%;
3717
- }
3718
- .row .col.push-m1 {
3719
- left: 8.3333333333%;
3720
- }
3721
- .row .col.offset-m2 {
3722
- margin-left: 16.6666666667%;
3723
- }
3724
- .row .col.pull-m2 {
3725
- right: 16.6666666667%;
3726
- }
3727
- .row .col.push-m2 {
3728
- left: 16.6666666667%;
3729
- }
3730
- .row .col.offset-m3 {
3731
- margin-left: 25%;
3732
- }
3733
- .row .col.pull-m3 {
3734
- right: 25%;
3735
- }
3736
- .row .col.push-m3 {
3737
- left: 25%;
3738
- }
3739
- .row .col.offset-m4 {
3740
- margin-left: 33.3333333333%;
3741
- }
3742
- .row .col.pull-m4 {
3743
- right: 33.3333333333%;
3744
- }
3745
- .row .col.push-m4 {
3746
- left: 33.3333333333%;
3747
- }
3748
- .row .col.offset-m5 {
3749
- margin-left: 41.6666666667%;
3750
- }
3751
- .row .col.pull-m5 {
3752
- right: 41.6666666667%;
3753
- }
3754
- .row .col.push-m5 {
3755
- left: 41.6666666667%;
3756
- }
3757
- .row .col.offset-m6 {
3758
- margin-left: 50%;
3759
- }
3760
- .row .col.pull-m6 {
3761
- right: 50%;
3762
- }
3763
- .row .col.push-m6 {
3764
- left: 50%;
3765
- }
3766
- .row .col.offset-m7 {
3767
- margin-left: 58.3333333333%;
3768
- }
3769
- .row .col.pull-m7 {
3770
- right: 58.3333333333%;
3771
- }
3772
- .row .col.push-m7 {
3773
- left: 58.3333333333%;
3774
- }
3775
- .row .col.offset-m8 {
3776
- margin-left: 66.6666666667%;
3777
- }
3778
- .row .col.pull-m8 {
3779
- right: 66.6666666667%;
3780
- }
3781
- .row .col.push-m8 {
3782
- left: 66.6666666667%;
3783
- }
3784
- .row .col.offset-m9 {
3785
- margin-left: 75%;
3786
- }
3787
- .row .col.pull-m9 {
3788
- right: 75%;
3789
- }
3790
- .row .col.push-m9 {
3791
- left: 75%;
3792
- }
3793
- .row .col.offset-m10 {
3794
- margin-left: 83.3333333333%;
3795
- }
3796
- .row .col.pull-m10 {
3797
- right: 83.3333333333%;
3798
- }
3799
- .row .col.push-m10 {
3800
- left: 83.3333333333%;
3801
- }
3802
- .row .col.offset-m11 {
3803
- margin-left: 91.6666666667%;
3804
- }
3805
- .row .col.pull-m11 {
3806
- right: 91.6666666667%;
3807
- }
3808
- .row .col.push-m11 {
3809
- left: 91.6666666667%;
3810
- }
3811
- .row .col.offset-m12 {
3812
- margin-left: 100%;
3813
- }
3814
- .row .col.pull-m12 {
3815
- right: 100%;
3816
- }
3817
- .row .col.push-m12 {
3818
- left: 100%;
3819
- }
3820
- }
3821
-
3822
- @media only screen and (min-width: 993px) {
3823
- .row .col.l1 {
3824
- width: 8.3333333333%;
3825
- margin-left: auto;
3826
- left: auto;
3827
- right: auto;
3828
- }
3829
- .row .col.l2 {
3830
- width: 16.6666666667%;
3831
- margin-left: auto;
3832
- left: auto;
3833
- right: auto;
3834
- }
3835
- .row .col.l3 {
3836
- width: 25%;
3837
- margin-left: auto;
3838
- left: auto;
3839
- right: auto;
3840
- }
3841
- .row .col.l4 {
3842
- width: 33.3333333333%;
3843
- margin-left: auto;
3844
- left: auto;
3845
- right: auto;
3846
- }
3847
- .row .col.l5 {
3848
- width: 41.6666666667%;
3849
- margin-left: auto;
3850
- left: auto;
3851
- right: auto;
3852
- }
3853
- .row .col.l6 {
3854
- width: 50%;
3855
- margin-left: auto;
3856
- left: auto;
3857
- right: auto;
3858
- }
3859
- .row .col.l7 {
3860
- width: 58.3333333333%;
3861
- margin-left: auto;
3862
- left: auto;
3863
- right: auto;
3864
- }
3865
- .row .col.l8 {
3866
- width: 66.6666666667%;
3867
- margin-left: auto;
3868
- left: auto;
3869
- right: auto;
3870
- }
3871
- .row .col.l9 {
3872
- width: 75%;
3873
- margin-left: auto;
3874
- left: auto;
3875
- right: auto;
3876
- }
3877
- .row .col.l10 {
3878
- width: 83.3333333333%;
3879
- margin-left: auto;
3880
- left: auto;
3881
- right: auto;
3882
- }
3883
- .row .col.l11 {
3884
- width: 91.6666666667%;
3885
- margin-left: auto;
3886
- left: auto;
3887
- right: auto;
3888
- }
3889
- .row .col.l12 {
3890
- width: 100%;
3891
- margin-left: auto;
3892
- left: auto;
3893
- right: auto;
3894
- }
3895
- .row .col.offset-l1 {
3896
- margin-left: 8.3333333333%;
3897
- }
3898
- .row .col.pull-l1 {
3899
- right: 8.3333333333%;
3900
- }
3901
- .row .col.push-l1 {
3902
- left: 8.3333333333%;
3903
- }
3904
- .row .col.offset-l2 {
3905
- margin-left: 16.6666666667%;
3906
- }
3907
- .row .col.pull-l2 {
3908
- right: 16.6666666667%;
3909
- }
3910
- .row .col.push-l2 {
3911
- left: 16.6666666667%;
3912
- }
3913
- .row .col.offset-l3 {
3914
- margin-left: 25%;
3915
- }
3916
- .row .col.pull-l3 {
3917
- right: 25%;
3918
- }
3919
- .row .col.push-l3 {
3920
- left: 25%;
3921
- }
3922
- .row .col.offset-l4 {
3923
- margin-left: 33.3333333333%;
3924
- }
3925
- .row .col.pull-l4 {
3926
- right: 33.3333333333%;
3927
- }
3928
- .row .col.push-l4 {
3929
- left: 33.3333333333%;
3930
- }
3931
- .row .col.offset-l5 {
3932
- margin-left: 41.6666666667%;
3933
- }
3934
- .row .col.pull-l5 {
3935
- right: 41.6666666667%;
3936
- }
3937
- .row .col.push-l5 {
3938
- left: 41.6666666667%;
3939
- }
3940
- .row .col.offset-l6 {
3941
- margin-left: 50%;
3942
- }
3943
- .row .col.pull-l6 {
3944
- right: 50%;
3945
- }
3946
- .row .col.push-l6 {
3947
- left: 50%;
3948
- }
3949
- .row .col.offset-l7 {
3950
- margin-left: 58.3333333333%;
3951
- }
3952
- .row .col.pull-l7 {
3953
- right: 58.3333333333%;
3954
- }
3955
- .row .col.push-l7 {
3956
- left: 58.3333333333%;
3957
- }
3958
- .row .col.offset-l8 {
3959
- margin-left: 66.6666666667%;
3960
- }
3961
- .row .col.pull-l8 {
3962
- right: 66.6666666667%;
3963
- }
3964
- .row .col.push-l8 {
3965
- left: 66.6666666667%;
3966
- }
3967
- .row .col.offset-l9 {
3968
- margin-left: 75%;
3969
- }
3970
- .row .col.pull-l9 {
3971
- right: 75%;
3972
- }
3973
- .row .col.push-l9 {
3974
- left: 75%;
3975
- }
3976
- .row .col.offset-l10 {
3977
- margin-left: 83.3333333333%;
3978
- }
3979
- .row .col.pull-l10 {
3980
- right: 83.3333333333%;
3981
- }
3982
- .row .col.push-l10 {
3983
- left: 83.3333333333%;
3984
- }
3985
- .row .col.offset-l11 {
3986
- margin-left: 91.6666666667%;
3987
- }
3988
- .row .col.pull-l11 {
3989
- right: 91.6666666667%;
3990
- }
3991
- .row .col.push-l11 {
3992
- left: 91.6666666667%;
3993
- }
3994
- .row .col.offset-l12 {
3995
- margin-left: 100%;
3996
- }
3997
- .row .col.pull-l12 {
3998
- right: 100%;
3999
- }
4000
- .row .col.push-l12 {
4001
- left: 100%;
4002
- }
4003
- }
4004
-
4005
- nav {
4006
- color: #fff;
4007
- background-color: #ee6e73;
4008
- width: 100%;
4009
- height: 56px;
4010
- line-height: 56px;
4011
- }
4012
-
4013
- nav.nav-extended {
4014
- height: auto;
4015
- }
4016
-
4017
- nav.nav-extended .nav-wrapper {
4018
- min-height: 56px;
4019
- height: auto;
4020
- }
4021
-
4022
- nav.nav-extended .nav-content {
4023
- position: relative;
4024
- line-height: normal;
4025
- }
4026
-
4027
- nav a {
4028
- color: #fff;
4029
- }
4030
-
4031
- nav i,
4032
- nav [class^="mdi-"], nav [class*="mdi-"],
4033
- nav i.material-icons {
4034
- display: block;
4035
- font-size: 24px;
4036
- height: 56px;
4037
- line-height: 56px;
4038
- }
4039
-
4040
- nav .nav-wrapper {
4041
- position: relative;
4042
- height: 100%;
4043
- }
4044
-
4045
- @media only screen and (min-width: 993px) {
4046
- nav a.button-collapse {
4047
- display: none;
4048
- }
4049
- }
4050
-
4051
- nav .button-collapse {
4052
- float: left;
4053
- position: relative;
4054
- z-index: 1;
4055
- height: 56px;
4056
- margin: 0 18px;
4057
- }
4058
-
4059
- nav .button-collapse i {
4060
- height: 56px;
4061
- line-height: 56px;
4062
- }
4063
-
4064
- nav .brand-logo {
4065
- position: absolute;
4066
- color: #fff;
4067
- display: inline-block;
4068
- font-size: 2.1rem;
4069
- padding: 0;
4070
- white-space: nowrap;
4071
- }
4072
-
4073
- nav .brand-logo.center {
4074
- left: 50%;
4075
- -webkit-transform: translateX(-50%);
4076
- transform: translateX(-50%);
4077
- }
4078
-
4079
- @media only screen and (max-width: 992px) {
4080
- nav .brand-logo {
4081
- left: 50%;
4082
- -webkit-transform: translateX(-50%);
4083
- transform: translateX(-50%);
4084
- }
4085
- nav .brand-logo.left, nav .brand-logo.right {
4086
- padding: 0;
4087
- -webkit-transform: none;
4088
- transform: none;
4089
- }
4090
- nav .brand-logo.left {
4091
- left: 0.5rem;
4092
- }
4093
- nav .brand-logo.right {
4094
- right: 0.5rem;
4095
- left: auto;
4096
- }
4097
- }
4098
-
4099
- nav .brand-logo.right {
4100
- right: 0.5rem;
4101
- padding: 0;
4102
- }
4103
-
4104
- nav .brand-logo i,
4105
- nav .brand-logo [class^="mdi-"], nav .brand-logo [class*="mdi-"],
4106
- nav .brand-logo i.material-icons {
4107
- float: left;
4108
- margin-right: 15px;
4109
- }
4110
-
4111
- nav .nav-title {
4112
- display: inline-block;
4113
- font-size: 32px;
4114
- padding: 28px 0;
4115
- }
4116
-
4117
- nav ul {
4118
- margin: 0;
4119
- }
4120
-
4121
- nav ul li {
4122
- transition: background-color .3s;
4123
- float: left;
4124
- padding: 0;
4125
- }
4126
-
4127
- nav ul li.active {
4128
- background-color: rgba(0, 0, 0, 0.1);
4129
- }
4130
-
4131
- nav ul a {
4132
- transition: background-color .3s;
4133
- font-size: 1rem;
4134
- color: #fff;
4135
- display: block;
4136
- padding: 0 15px;
4137
- cursor: pointer;
4138
- }
4139
-
4140
- nav ul a.btn, nav ul a.btn-large, nav ul a.btn-large, nav ul a.btn-flat, nav ul a.btn-floating {
4141
- margin-top: -2px;
4142
- margin-left: 15px;
4143
- margin-right: 15px;
4144
- }
4145
-
4146
- nav ul a.btn > .material-icons, nav ul a.btn-large > .material-icons, nav ul a.btn-large > .material-icons, nav ul a.btn-flat > .material-icons, nav ul a.btn-floating > .material-icons {
4147
- height: inherit;
4148
- line-height: inherit;
4149
- }
4150
-
4151
- nav ul a:hover {
4152
- background-color: rgba(0, 0, 0, 0.1);
4153
- }
4154
-
4155
- nav ul.left {
4156
- float: left;
4157
- }
4158
-
4159
- nav form {
4160
- height: 100%;
4161
- }
4162
-
4163
- nav .input-field {
4164
- margin: 0;
4165
- height: 100%;
4166
- }
4167
-
4168
- nav .input-field input {
4169
- height: 100%;
4170
- font-size: 1.2rem;
4171
- border: none;
4172
- padding-left: 2rem;
4173
- }
4174
-
4175
- 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 {
4176
- border: none;
4177
- box-shadow: none;
4178
- }
4179
-
4180
- nav .input-field label {
4181
- top: 0;
4182
- left: 0;
4183
- }
4184
-
4185
- nav .input-field label i {
4186
- color: rgba(255, 255, 255, 0.7);
4187
- transition: color .3s;
4188
- }
4189
-
4190
- nav .input-field label.active i {
4191
- color: #fff;
4192
- }
4193
-
4194
- .navbar-fixed {
4195
- position: relative;
4196
- height: 56px;
4197
- z-index: 997;
4198
- }
4199
-
4200
- .navbar-fixed nav {
4201
- position: fixed;
4202
- }
4203
-
4204
- @media only screen and (min-width: 601px) {
4205
- nav.nav-extended .nav-wrapper {
4206
- min-height: 64px;
4207
- }
4208
- nav, nav .nav-wrapper i, nav a.button-collapse, nav a.button-collapse i {
4209
- height: 64px;
4210
- line-height: 64px;
4211
- }
4212
- .navbar-fixed {
4213
- height: 64px;
4214
- }
4215
- }
4216
-
4217
- @font-face {
4218
- font-family: "Roboto";
4219
- src: local(Roboto Thin), url("../fonts/roboto/Roboto-Thin.eot");
4220
- src: url("../fonts/roboto/Roboto-Thin.eot?#iefix") format("embedded-opentype"), url("../fonts/roboto/Roboto-Thin.woff2") format("woff2"), url("../fonts/roboto/Roboto-Thin.woff") format("woff"), url("../fonts/roboto/Roboto-Thin.ttf") format("truetype");
4221
- font-weight: 200;
4222
- }
4223
-
4224
- @font-face {
4225
- font-family: "Roboto";
4226
- src: local(Roboto Light), url("../fonts/roboto/Roboto-Light.eot");
4227
- src: url("../fonts/roboto/Roboto-Light.eot?#iefix") format("embedded-opentype"), url("../fonts/roboto/Roboto-Light.woff2") format("woff2"), url("../fonts/roboto/Roboto-Light.woff") format("woff"), url("../fonts/roboto/Roboto-Light.ttf") format("truetype");
4228
- font-weight: 300;
4229
- }
4230
-
4231
- @font-face {
4232
- font-family: "Roboto";
4233
- src: local(Roboto Regular), url("../fonts/roboto/Roboto-Regular.eot");
4234
- src: url("../fonts/roboto/Roboto-Regular.eot?#iefix") format("embedded-opentype"), url("../fonts/roboto/Roboto-Regular.woff2") format("woff2"), url("../fonts/roboto/Roboto-Regular.woff") format("woff"), url("../fonts/roboto/Roboto-Regular.ttf") format("truetype");
4235
- font-weight: 400;
4236
- }
4237
-
4238
- @font-face {
4239
- font-family: "Roboto";
4240
- src: url("../fonts/roboto/Roboto-Medium.eot");
4241
- src: url("../fonts/roboto/Roboto-Medium.eot?#iefix") format("embedded-opentype"), url("../fonts/roboto/Roboto-Medium.woff2") format("woff2"), url("../fonts/roboto/Roboto-Medium.woff") format("woff"), url("../fonts/roboto/Roboto-Medium.ttf") format("truetype");
4242
- font-weight: 500;
4243
- }
4244
-
4245
- @font-face {
4246
- font-family: "Roboto";
4247
- src: url("../fonts/roboto/Roboto-Bold.eot");
4248
- src: url("../fonts/roboto/Roboto-Bold.eot?#iefix") format("embedded-opentype"), url("../fonts/roboto/Roboto-Bold.woff2") format("woff2"), url("../fonts/roboto/Roboto-Bold.woff") format("woff"), url("../fonts/roboto/Roboto-Bold.ttf") format("truetype");
4249
- font-weight: 700;
4250
- }
4251
-
4252
- a {
4253
- text-decoration: none;
4254
- }
4255
-
4256
- html {
4257
- line-height: 1.5;
4258
- font-family: "Roboto", sans-serif;
4259
- font-weight: normal;
4260
- color: rgba(0, 0, 0, 0.87);
4261
- }
4262
-
4263
- @media only screen and (min-width: 0) {
4264
- html {
4265
- font-size: 14px;
4266
- }
4267
- }
4268
-
4269
- @media only screen and (min-width: 992px) {
4270
- html {
4271
- font-size: 14.5px;
4272
- }
4273
- }
4274
-
4275
- @media only screen and (min-width: 1200px) {
4276
- html {
4277
- font-size: 15px;
4278
- }
4279
- }
4280
-
4281
- h1, h2, h3, h4, h5, h6 {
4282
- font-weight: 400;
4283
- line-height: 1.1;
4284
- }
4285
-
4286
- h1 a, h2 a, h3 a, h4 a, h5 a, h6 a {
4287
- font-weight: inherit;
4288
- }
4289
-
4290
- h1 {
4291
- font-size: 4.2rem;
4292
- line-height: 110%;
4293
- margin: 2.1rem 0 1.68rem 0;
4294
- }
4295
-
4296
- h2 {
4297
- font-size: 3.56rem;
4298
- line-height: 110%;
4299
- margin: 1.78rem 0 1.424rem 0;
4300
- }
4301
-
4302
- h3 {
4303
- font-size: 2.92rem;
4304
- line-height: 110%;
4305
- margin: 1.46rem 0 1.168rem 0;
4306
- }
4307
-
4308
- h4 {
4309
- font-size: 2.28rem;
4310
- line-height: 110%;
4311
- margin: 1.14rem 0 0.912rem 0;
4312
- }
4313
-
4314
- h5 {
4315
- font-size: 1.64rem;
4316
- line-height: 110%;
4317
- margin: 0.82rem 0 0.656rem 0;
4318
- }
4319
-
4320
- h6 {
4321
- font-size: 1rem;
4322
- line-height: 110%;
4323
- margin: 0.5rem 0 0.4rem 0;
4324
- }
4325
-
4326
- em {
4327
- font-style: italic;
4328
- }
4329
-
4330
- strong {
4331
- font-weight: 500;
4332
- }
4333
-
4334
- small {
4335
- font-size: 75%;
4336
- }
4337
-
4338
- .light, footer.page-footer .footer-copyright {
4339
- font-weight: 300;
4340
- }
4341
-
4342
- .thin {
4343
- font-weight: 200;
4344
- }
4345
-
4346
- .flow-text {
4347
- font-weight: 300;
4348
- }
4349
-
4350
- @media only screen and (min-width: 360px) {
4351
- .flow-text {
4352
- font-size: 1.2rem;
4353
- }
4354
- }
4355
-
4356
- @media only screen and (min-width: 390px) {
4357
- .flow-text {
4358
- font-size: 1.224rem;
4359
- }
4360
- }
4361
-
4362
- @media only screen and (min-width: 420px) {
4363
- .flow-text {
4364
- font-size: 1.248rem;
4365
- }
4366
- }
4367
-
4368
- @media only screen and (min-width: 450px) {
4369
- .flow-text {
4370
- font-size: 1.272rem;
4371
- }
4372
- }
4373
-
4374
- @media only screen and (min-width: 480px) {
4375
- .flow-text {
4376
- font-size: 1.296rem;
4377
- }
4378
- }
4379
-
4380
- @media only screen and (min-width: 510px) {
4381
- .flow-text {
4382
- font-size: 1.32rem;
4383
- }
4384
- }
4385
-
4386
- @media only screen and (min-width: 540px) {
4387
- .flow-text {
4388
- font-size: 1.344rem;
4389
- }
4390
- }
4391
-
4392
- @media only screen and (min-width: 570px) {
4393
- .flow-text {
4394
- font-size: 1.368rem;
4395
- }
4396
- }
4397
-
4398
- @media only screen and (min-width: 600px) {
4399
- .flow-text {
4400
- font-size: 1.392rem;
4401
- }
4402
- }
4403
-
4404
- @media only screen and (min-width: 630px) {
4405
- .flow-text {
4406
- font-size: 1.416rem;
4407
- }
4408
- }
4409
-
4410
- @media only screen and (min-width: 660px) {
4411
- .flow-text {
4412
- font-size: 1.44rem;
4413
- }
4414
- }
4415
-
4416
- @media only screen and (min-width: 690px) {
4417
- .flow-text {
4418
- font-size: 1.464rem;
4419
- }
4420
- }
4421
-
4422
- @media only screen and (min-width: 720px) {
4423
- .flow-text {
4424
- font-size: 1.488rem;
4425
- }
4426
- }
4427
-
4428
- @media only screen and (min-width: 750px) {
4429
- .flow-text {
4430
- font-size: 1.512rem;
4431
- }
4432
- }
4433
-
4434
- @media only screen and (min-width: 780px) {
4435
- .flow-text {
4436
- font-size: 1.536rem;
4437
- }
4438
- }
4439
-
4440
- @media only screen and (min-width: 810px) {
4441
- .flow-text {
4442
- font-size: 1.56rem;
4443
- }
4444
- }
4445
-
4446
- @media only screen and (min-width: 840px) {
4447
- .flow-text {
4448
- font-size: 1.584rem;
4449
- }
4450
- }
4451
-
4452
- @media only screen and (min-width: 870px) {
4453
- .flow-text {
4454
- font-size: 1.608rem;
4455
- }
4456
- }
4457
-
4458
- @media only screen and (min-width: 900px) {
4459
- .flow-text {
4460
- font-size: 1.632rem;
4461
- }
4462
- }
4463
-
4464
- @media only screen and (min-width: 930px) {
4465
- .flow-text {
4466
- font-size: 1.656rem;
4467
- }
4468
- }
4469
-
4470
- @media only screen and (min-width: 960px) {
4471
- .flow-text {
4472
- font-size: 1.68rem;
4473
- }
4474
- }
4475
-
4476
- @media only screen and (max-width: 360px) {
4477
- .flow-text {
4478
- font-size: 1.2rem;
4479
- }
4480
- }
4481
-
4482
- .scale-transition {
4483
- transition: -webkit-transform 0.3s cubic-bezier(0.53, 0.01, 0.36, 1.63) !important;
4484
- transition: transform 0.3s cubic-bezier(0.53, 0.01, 0.36, 1.63) !important;
4485
- 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;
4486
- }
4487
-
4488
- .scale-transition.scale-out {
4489
- -webkit-transform: scale(0);
4490
- transform: scale(0);
4491
- transition: -webkit-transform .2s !important;
4492
- transition: transform .2s !important;
4493
- transition: transform .2s, -webkit-transform .2s !important;
4494
- }
4495
-
4496
- .scale-transition.scale-in {
4497
- -webkit-transform: scale(1);
4498
- transform: scale(1);
4499
- }
4500
-
4501
- .card-panel {
4502
- transition: box-shadow .25s;
4503
- padding: 24px;
4504
- margin: 0.5rem 0 1rem 0;
4505
- border-radius: 2px;
4506
- background-color: #fff;
4507
- }
4508
-
4509
- .card {
4510
- position: relative;
4511
- margin: 0.5rem 0 1rem 0;
4512
- background-color: #fff;
4513
- transition: box-shadow .25s;
4514
- border-radius: 2px;
4515
- }
4516
-
4517
- .card .card-title {
4518
- font-size: 24px;
4519
- font-weight: 300;
4520
- }
4521
-
4522
- .card .card-title.activator {
4523
- cursor: pointer;
4524
- }
4525
-
4526
- .card.small, .card.medium, .card.large {
4527
- position: relative;
4528
- }
4529
-
4530
- .card.small .card-image, .card.medium .card-image, .card.large .card-image {
4531
- max-height: 60%;
4532
- overflow: hidden;
4533
- }
4534
-
4535
- .card.small .card-image + .card-content, .card.medium .card-image + .card-content, .card.large .card-image + .card-content {
4536
- max-height: 40%;
4537
- }
4538
-
4539
- .card.small .card-content, .card.medium .card-content, .card.large .card-content {
4540
- max-height: 100%;
4541
- overflow: hidden;
4542
- }
4543
-
4544
- .card.small .card-action, .card.medium .card-action, .card.large .card-action {
4545
- position: absolute;
4546
- bottom: 0;
4547
- left: 0;
4548
- right: 0;
4549
- }
4550
-
4551
- .card.small {
4552
- height: 300px;
4553
- }
4554
-
4555
- .card.medium {
4556
- height: 400px;
4557
- }
4558
-
4559
- .card.large {
4560
- height: 500px;
4561
- }
4562
-
4563
- .card.horizontal {
4564
- display: -webkit-flex;
4565
- display: -ms-flexbox;
4566
- display: flex;
4567
- }
4568
-
4569
- .card.horizontal.small .card-image, .card.horizontal.medium .card-image, .card.horizontal.large .card-image {
4570
- height: 100%;
4571
- max-height: none;
4572
- overflow: visible;
4573
- }
4574
-
4575
- .card.horizontal.small .card-image img, .card.horizontal.medium .card-image img, .card.horizontal.large .card-image img {
4576
- height: 100%;
4577
- }
4578
-
4579
- .card.horizontal .card-image {
4580
- max-width: 50%;
4581
- }
4582
-
4583
- .card.horizontal .card-image img {
4584
- border-radius: 2px 0 0 2px;
4585
- max-width: 100%;
4586
- width: auto;
4587
- }
4588
-
4589
- .card.horizontal .card-stacked {
4590
- display: -webkit-flex;
4591
- display: -ms-flexbox;
4592
- display: flex;
4593
- -webkit-flex-direction: column;
4594
- -ms-flex-direction: column;
4595
- flex-direction: column;
4596
- -webkit-flex: 1;
4597
- -ms-flex: 1;
4598
- flex: 1;
4599
- position: relative;
4600
- }
4601
-
4602
- .card.horizontal .card-stacked .card-content {
4603
- -webkit-flex-grow: 1;
4604
- -ms-flex-positive: 1;
4605
- flex-grow: 1;
4606
- }
4607
-
4608
- .card.sticky-action .card-action {
4609
- z-index: 2;
4610
- }
4611
-
4612
- .card.sticky-action .card-reveal {
4613
- z-index: 1;
4614
- padding-bottom: 64px;
4615
- }
4616
-
4617
- .card .card-image {
4618
- position: relative;
4619
- }
4620
-
4621
- .card .card-image img {
4622
- display: block;
4623
- border-radius: 2px 2px 0 0;
4624
- position: relative;
4625
- left: 0;
4626
- right: 0;
4627
- top: 0;
4628
- bottom: 0;
4629
- width: 100%;
4630
- }
4631
-
4632
- .card .card-image .card-title {
4633
- color: #fff;
4634
- position: absolute;
4635
- bottom: 0;
4636
- left: 0;
4637
- max-width: 100%;
4638
- padding: 24px;
4639
- }
4640
-
4641
- .card .card-content {
4642
- padding: 24px;
4643
- border-radius: 0 0 2px 2px;
4644
- }
4645
-
4646
- .card .card-content p {
4647
- margin: 0;
4648
- color: inherit;
4649
- }
4650
-
4651
- .card .card-content .card-title {
4652
- display: block;
4653
- line-height: 32px;
4654
- margin-bottom: 8px;
4655
- }
4656
-
4657
- .card .card-content .card-title i {
4658
- line-height: 32px;
4659
- }
4660
-
4661
- .card .card-action {
4662
- position: relative;
4663
- background-color: inherit;
4664
- border-top: 1px solid rgba(160, 160, 160, 0.2);
4665
- padding: 16px 24px;
4666
- }
4667
-
4668
- .card .card-action a:not(.btn):not(.btn-large):not(.btn-large):not(.btn-floating) {
4669
- color: #ffab40;
4670
- margin-right: 24px;
4671
- transition: color .3s ease;
4672
- text-transform: uppercase;
4673
- }
4674
-
4675
- .card .card-action a:not(.btn):not(.btn-large):not(.btn-large):not(.btn-floating):hover {
4676
- color: #ffd8a6;
4677
- }
4678
-
4679
- .card .card-reveal {
4680
- padding: 24px;
4681
- position: absolute;
4682
- background-color: #fff;
4683
- width: 100%;
4684
- overflow-y: auto;
4685
- left: 0;
4686
- top: 100%;
4687
- height: 100%;
4688
- z-index: 3;
4689
- display: none;
4690
- }
4691
-
4692
- .card .card-reveal .card-title {
4693
- cursor: pointer;
4694
- display: block;
4695
- }
4696
-
4697
- #toast-container {
4698
- display: block;
4699
- position: fixed;
4700
- z-index: 10000;
4701
- }
4702
-
4703
- @media only screen and (max-width: 600px) {
4704
- #toast-container {
4705
- min-width: 100%;
4706
- bottom: 0%;
4707
- }
4708
- }
4709
-
4710
- @media only screen and (min-width: 601px) and (max-width: 992px) {
4711
- #toast-container {
4712
- left: 5%;
4713
- bottom: 7%;
4714
- max-width: 90%;
4715
- }
4716
- }
4717
-
4718
- @media only screen and (min-width: 993px) {
4719
- #toast-container {
4720
- top: 10%;
4721
- right: 7%;
4722
- max-width: 86%;
4723
- }
4724
- }
4725
-
4726
- .toast {
4727
- border-radius: 2px;
4728
- top: 35px;
4729
- width: auto;
4730
- clear: both;
4731
- margin-top: 10px;
4732
- position: relative;
4733
- max-width: 100%;
4734
- height: auto;
4735
- min-height: 48px;
4736
- line-height: 1.5em;
4737
- word-break: break-all;
4738
- background-color: #323232;
4739
- padding: 10px 25px;
4740
- font-size: 1.1rem;
4741
- font-weight: 300;
4742
- color: #fff;
4743
- display: -webkit-flex;
4744
- display: -ms-flexbox;
4745
- display: flex;
4746
- -webkit-align-items: center;
4747
- -ms-flex-align: center;
4748
- align-items: center;
4749
- -webkit-justify-content: space-between;
4750
- -ms-flex-pack: justify;
4751
- justify-content: space-between;
4752
- }
4753
-
4754
- .toast .btn, .toast .btn-large, .toast .btn-flat {
4755
- margin: 0;
4756
- margin-left: 3rem;
4757
- }
4758
-
4759
- .toast.rounded {
4760
- border-radius: 24px;
4761
- }
4762
-
4763
- @media only screen and (max-width: 600px) {
4764
- .toast {
4765
- width: 100%;
4766
- border-radius: 0;
4767
- }
4768
- }
4769
-
4770
- @media only screen and (min-width: 601px) and (max-width: 992px) {
4771
- .toast {
4772
- float: left;
4773
- }
4774
- }
4775
-
4776
- @media only screen and (min-width: 993px) {
4777
- .toast {
4778
- float: right;
4779
- }
4780
- }
4781
-
4782
- .tabs {
4783
- position: relative;
4784
- overflow-x: auto;
4785
- overflow-y: hidden;
4786
- height: 48px;
4787
- width: 100%;
4788
- background-color: #fff;
4789
- margin: 0 auto;
4790
- white-space: nowrap;
4791
- }
4792
-
4793
- .tabs.tabs-transparent {
4794
- background-color: transparent;
4795
- }
4796
-
4797
- .tabs.tabs-transparent .tab a,
4798
- .tabs.tabs-transparent .tab.disabled a,
4799
- .tabs.tabs-transparent .tab.disabled a:hover {
4800
- color: rgba(255, 255, 255, 0.7);
4801
- }
4802
-
4803
- .tabs.tabs-transparent .tab a:hover,
4804
- .tabs.tabs-transparent .tab a.active {
4805
- color: #fff;
4806
- }
4807
-
4808
- .tabs.tabs-transparent .indicator {
4809
- background-color: #fff;
4810
- }
4811
-
4812
- .tabs.tabs-fixed-width {
4813
- display: -webkit-flex;
4814
- display: -ms-flexbox;
4815
- display: flex;
4816
- }
4817
-
4818
- .tabs.tabs-fixed-width .tab {
4819
- -webkit-flex-grow: 1;
4820
- -ms-flex-positive: 1;
4821
- flex-grow: 1;
4822
- }
4823
-
4824
- .tabs .tab {
4825
- display: inline-block;
4826
- text-align: center;
4827
- line-height: 48px;
4828
- height: 48px;
4829
- padding: 0;
4830
- margin: 0;
4831
- text-transform: uppercase;
4832
- }
4833
-
4834
- .tabs .tab a {
4835
- color: rgba(238, 110, 115, 0.7);
4836
- display: block;
4837
- width: 100%;
4838
- height: 100%;
4839
- padding: 0 24px;
4840
- font-size: 14px;
4841
- text-overflow: ellipsis;
4842
- overflow: hidden;
4843
- transition: color .28s ease;
4844
- }
4845
-
4846
- .tabs .tab a:hover, .tabs .tab a.active {
4847
- background-color: transparent;
4848
- color: #ee6e73;
4849
- }
4850
-
4851
- .tabs .tab.disabled a,
4852
- .tabs .tab.disabled a:hover {
4853
- color: rgba(238, 110, 115, 0.7);
4854
- cursor: default;
4855
- }
4856
-
4857
- .tabs .indicator {
4858
- position: absolute;
4859
- bottom: 0;
4860
- height: 2px;
4861
- background-color: #f6b2b5;
4862
- will-change: left, right;
4863
- }
4864
-
4865
- @media only screen and (max-width: 992px) {
4866
- .tabs {
4867
- display: -webkit-flex;
4868
- display: -ms-flexbox;
4869
- display: flex;
4870
- }
4871
- .tabs .tab {
4872
- -webkit-flex-grow: 1;
4873
- -ms-flex-positive: 1;
4874
- flex-grow: 1;
4875
- }
4876
- .tabs .tab a {
4877
- padding: 0 12px;
4878
- }
4879
- }
4880
-
4881
- .material-tooltip {
4882
- padding: 10px 8px;
4883
- font-size: 1rem;
4884
- z-index: 2000;
4885
- background-color: transparent;
4886
- border-radius: 2px;
4887
- color: #fff;
4888
- min-height: 36px;
4889
- line-height: 120%;
4890
- opacity: 0;
4891
- position: absolute;
4892
- text-align: center;
4893
- max-width: calc(100% - 4px);
4894
- overflow: hidden;
4895
- left: 0;
4896
- top: 0;
4897
- pointer-events: none;
4898
- visibility: hidden;
4899
- }
4900
-
4901
- .backdrop {
4902
- position: absolute;
4903
- opacity: 0;
4904
- height: 7px;
4905
- width: 14px;
4906
- border-radius: 0 0 50% 50%;
4907
- background-color: #323232;
4908
- z-index: -1;
4909
- -webkit-transform-origin: 50% 0%;
4910
- transform-origin: 50% 0%;
4911
- visibility: hidden;
4912
- }
4913
-
4914
- .btn, .btn-large,
4915
- .btn-flat {
4916
- border: none;
4917
- border-radius: 2px;
4918
- display: inline-block;
4919
- height: 36px;
4920
- line-height: 36px;
4921
- padding: 0 2rem;
4922
- text-transform: uppercase;
4923
- vertical-align: middle;
4924
- -webkit-tap-highlight-color: transparent;
4925
- }
4926
-
4927
- .btn.disabled, .disabled.btn-large,
4928
- .btn-floating.disabled,
4929
- .btn-large.disabled,
4930
- .btn-flat.disabled,
4931
- .btn:disabled,
4932
- .btn-large:disabled,
4933
- .btn-floating:disabled,
4934
- .btn-large:disabled,
4935
- .btn-flat:disabled,
4936
- .btn[disabled],
4937
- [disabled].btn-large,
4938
- .btn-floating[disabled],
4939
- .btn-large[disabled],
4940
- .btn-flat[disabled] {
4941
- pointer-events: none;
4942
- background-color: #DFDFDF !important;
4943
- box-shadow: none;
4944
- color: #9F9F9F !important;
4945
- cursor: default;
4946
- }
4947
-
4948
- .btn.disabled:hover, .disabled.btn-large:hover,
4949
- .btn-floating.disabled:hover,
4950
- .btn-large.disabled:hover,
4951
- .btn-flat.disabled:hover,
4952
- .btn:disabled:hover,
4953
- .btn-large:disabled:hover,
4954
- .btn-floating:disabled:hover,
4955
- .btn-large:disabled:hover,
4956
- .btn-flat:disabled:hover,
4957
- .btn[disabled]:hover,
4958
- [disabled].btn-large:hover,
4959
- .btn-floating[disabled]:hover,
4960
- .btn-large[disabled]:hover,
4961
- .btn-flat[disabled]:hover {
4962
- background-color: #DFDFDF !important;
4963
- color: #9F9F9F !important;
4964
- }
4965
-
4966
- .btn, .btn-large,
4967
- .btn-floating,
4968
- .btn-large,
4969
- .btn-flat {
4970
- outline: 0;
4971
- }
4972
-
4973
- .btn i, .btn-large i,
4974
- .btn-floating i,
4975
- .btn-large i,
4976
- .btn-flat i {
4977
- font-size: 1.3rem;
4978
- line-height: inherit;
4979
- }
4980
-
4981
- .btn:focus, .btn-large:focus,
4982
- .btn-floating:focus {
4983
- background-color: #1d7d74;
4984
- }
4985
-
4986
- .btn, .btn-large {
4987
- text-decoration: none;
4988
- color: #fff;
4989
- background-color: #26a69a;
4990
- text-align: center;
4991
- letter-spacing: .5px;
4992
- transition: .2s ease-out;
4993
- cursor: pointer;
4994
- }
4995
-
4996
- .btn:hover, .btn-large:hover {
4997
- background-color: #2bbbad;
4998
- }
4999
-
5000
- .btn-floating {
5001
- display: inline-block;
5002
- color: #fff;
5003
- position: relative;
5004
- overflow: hidden;
5005
- z-index: 1;
5006
- width: 40px;
5007
- height: 40px;
5008
- line-height: 40px;
5009
- padding: 0;
5010
- background-color: #26a69a;
5011
- border-radius: 50%;
5012
- transition: .3s;
5013
- cursor: pointer;
5014
- vertical-align: middle;
5015
- }
5016
-
5017
- .btn-floating:hover {
5018
- background-color: #26a69a;
5019
- }
5020
-
5021
- .btn-floating:before {
5022
- border-radius: 0;
5023
- }
5024
-
5025
- .btn-floating.btn-large {
5026
- width: 56px;
5027
- height: 56px;
5028
- }
5029
-
5030
- .btn-floating.btn-large i {
5031
- line-height: 56px;
5032
- }
5033
-
5034
- .btn-floating.halfway-fab {
5035
- position: absolute;
5036
- right: 24px;
5037
- bottom: 0;
5038
- -webkit-transform: translateY(50%);
5039
- transform: translateY(50%);
5040
- }
5041
-
5042
- .btn-floating.halfway-fab.left {
5043
- right: auto;
5044
- left: 24px;
5045
- }
5046
-
5047
- .btn-floating i {
5048
- width: inherit;
5049
- display: inline-block;
5050
- text-align: center;
5051
- color: #fff;
5052
- font-size: 1.6rem;
5053
- line-height: 40px;
5054
- }
5055
-
5056
- button.btn-floating {
5057
- border: none;
5058
- }
5059
-
5060
- .fixed-action-btn {
5061
- position: fixed;
5062
- right: 23px;
5063
- bottom: 23px;
5064
- padding-top: 15px;
5065
- margin-bottom: 0;
5066
- z-index: 998;
5067
- }
5068
-
5069
- .fixed-action-btn.active ul {
5070
- visibility: visible;
5071
- }
5072
-
5073
- .fixed-action-btn.horizontal {
5074
- padding: 0 0 0 15px;
5075
- }
5076
-
5077
- .fixed-action-btn.horizontal ul {
5078
- text-align: right;
5079
- right: 64px;
5080
- top: 50%;
5081
- -webkit-transform: translateY(-50%);
5082
- transform: translateY(-50%);
5083
- height: 100%;
5084
- left: auto;
5085
- width: 500px;
5086
- /*width 100% only goes to width of button container */
5087
- }
5088
-
5089
- .fixed-action-btn.horizontal ul li {
5090
- display: inline-block;
5091
- margin: 15px 15px 0 0;
5092
- }
5093
-
5094
- .fixed-action-btn.toolbar {
5095
- padding: 0;
5096
- height: 56px;
5097
- }
5098
-
5099
- .fixed-action-btn.toolbar.active > a i {
5100
- opacity: 0;
5101
- }
5102
-
5103
- .fixed-action-btn.toolbar ul {
5104
- display: -webkit-flex;
5105
- display: -ms-flexbox;
5106
- display: flex;
5107
- top: 0;
5108
- bottom: 0;
5109
- }
5110
-
5111
- .fixed-action-btn.toolbar ul li {
5112
- -webkit-flex: 1;
5113
- -ms-flex: 1;
5114
- flex: 1;
5115
- display: inline-block;
5116
- margin: 0;
5117
- height: 100%;
5118
- transition: none;
5119
- }
5120
-
5121
- .fixed-action-btn.toolbar ul li a {
5122
- display: block;
5123
- overflow: hidden;
5124
- position: relative;
5125
- width: 100%;
5126
- height: 100%;
5127
- background-color: transparent;
5128
- box-shadow: none;
5129
- color: #fff;
5130
- line-height: 56px;
5131
- z-index: 1;
5132
- }
5133
-
5134
- .fixed-action-btn.toolbar ul li a i {
5135
- line-height: inherit;
5136
- }
5137
-
5138
- .fixed-action-btn ul {
5139
- left: 0;
5140
- right: 0;
5141
- text-align: center;
5142
- position: absolute;
5143
- bottom: 64px;
5144
- margin: 0;
5145
- visibility: hidden;
5146
- }
5147
-
5148
- .fixed-action-btn ul li {
5149
- margin-bottom: 15px;
5150
- }
5151
-
5152
- .fixed-action-btn ul a.btn-floating {
5153
- opacity: 0;
5154
- }
5155
-
5156
- .fixed-action-btn .fab-backdrop {
5157
- position: absolute;
5158
- top: 0;
5159
- left: 0;
5160
- z-index: -1;
5161
- width: 40px;
5162
- height: 40px;
5163
- background-color: #26a69a;
5164
- border-radius: 50%;
5165
- -webkit-transform: scale(0);
5166
- transform: scale(0);
5167
- }
5168
-
5169
- .btn-flat {
5170
- box-shadow: none;
5171
- background-color: transparent;
5172
- color: #343434;
5173
- cursor: pointer;
5174
- transition: background-color .2s;
5175
- }
5176
-
5177
- .btn-flat:focus, .btn-flat:active {
5178
- background-color: transparent;
5179
- }
5180
-
5181
- .btn-flat:focus, .btn-flat:hover {
5182
- background-color: rgba(0, 0, 0, 0.1);
5183
- box-shadow: none;
5184
- }
5185
-
5186
- .btn-flat:active {
5187
- background-color: rgba(0, 0, 0, 0.2);
5188
- }
5189
-
5190
- .btn-flat.disabled {
5191
- background-color: transparent !important;
5192
- color: #b3b3b3 !important;
5193
- cursor: default;
5194
- }
5195
-
5196
- .btn-large {
5197
- height: 54px;
5198
- line-height: 54px;
5199
- }
5200
-
5201
- .btn-large i {
5202
- font-size: 1.6rem;
5203
- }
5204
-
5205
- .btn-block {
5206
- display: block;
5207
- }
5208
-
5209
- .dropdown-content {
5210
- background-color: #fff;
5211
- margin: 0;
5212
- display: none;
5213
- min-width: 100px;
5214
- max-height: 650px;
5215
- overflow-y: auto;
5216
- opacity: 0;
5217
- position: absolute;
5218
- z-index: 999;
5219
- will-change: width, height;
5220
- }
5221
-
5222
- .dropdown-content li {
5223
- clear: both;
5224
- color: rgba(0, 0, 0, 0.87);
5225
- cursor: pointer;
5226
- min-height: 50px;
5227
- line-height: 1.5rem;
5228
- width: 100%;
5229
- text-align: left;
5230
- text-transform: none;
5231
- }
5232
-
5233
- .dropdown-content li:hover, .dropdown-content li.active, .dropdown-content li.selected {
5234
- background-color: #eee;
5235
- }
5236
-
5237
- .dropdown-content li.active.selected {
5238
- background-color: #e1e1e1;
5239
- }
5240
-
5241
- .dropdown-content li.divider {
5242
- min-height: 0;
5243
- height: 1px;
5244
- }
5245
-
5246
- .dropdown-content li > a, .dropdown-content li > span {
5247
- font-size: 16px;
5248
- color: #26a69a;
5249
- display: block;
5250
- line-height: 22px;
5251
- padding: 14px 16px;
5252
- }
5253
-
5254
- .dropdown-content li > span > label {
5255
- top: 1px;
5256
- left: 0;
5257
- height: 18px;
5258
- }
5259
-
5260
- .dropdown-content li > a > i {
5261
- height: inherit;
5262
- line-height: inherit;
5263
- }
5264
-
5265
- .input-field.col .dropdown-content [type="checkbox"] + label {
5266
- top: 1px;
5267
- left: 0;
5268
- height: 18px;
5269
- }
5270
-
5271
- /*!
5272
- * Waves v0.6.0
5273
- * http://fian.my.id/Waves
5274
- *
5275
- * Copyright 2014 Alfiana E. Sibuea and other contributors
5276
- * Released under the MIT license
5277
- * https://github.com/fians/Waves/blob/master/LICENSE
5278
- */
5279
- .waves-effect {
5280
- position: relative;
5281
- cursor: pointer;
5282
- display: inline-block;
5283
- overflow: hidden;
5284
- -webkit-user-select: none;
5285
- -moz-user-select: none;
5286
- -ms-user-select: none;
5287
- user-select: none;
5288
- -webkit-tap-highlight-color: transparent;
5289
- vertical-align: middle;
5290
- z-index: 1;
5291
- transition: .3s ease-out;
5292
- }
5293
-
5294
- .waves-effect .waves-ripple {
5295
- position: absolute;
5296
- border-radius: 50%;
5297
- width: 20px;
5298
- height: 20px;
5299
- margin-top: -10px;
5300
- margin-left: -10px;
5301
- opacity: 0;
5302
- background: rgba(0, 0, 0, 0.2);
5303
- transition: all 0.7s ease-out;
5304
- transition-property: opacity, -webkit-transform;
5305
- transition-property: transform, opacity;
5306
- transition-property: transform, opacity, -webkit-transform;
5307
- -webkit-transform: scale(0);
5308
- transform: scale(0);
5309
- pointer-events: none;
5310
- }
5311
-
5312
- .waves-effect.waves-light .waves-ripple {
5313
- background-color: rgba(255, 255, 255, 0.45);
5314
- }
5315
-
5316
- .waves-effect.waves-red .waves-ripple {
5317
- background-color: rgba(244, 67, 54, 0.7);
5318
- }
5319
-
5320
- .waves-effect.waves-yellow .waves-ripple {
5321
- background-color: rgba(255, 235, 59, 0.7);
5322
- }
5323
-
5324
- .waves-effect.waves-orange .waves-ripple {
5325
- background-color: rgba(255, 152, 0, 0.7);
5326
- }
5327
-
5328
- .waves-effect.waves-purple .waves-ripple {
5329
- background-color: rgba(156, 39, 176, 0.7);
5330
- }
5331
-
5332
- .waves-effect.waves-green .waves-ripple {
5333
- background-color: rgba(76, 175, 80, 0.7);
5334
- }
5335
-
5336
- .waves-effect.waves-teal .waves-ripple {
5337
- background-color: rgba(0, 150, 136, 0.7);
5338
- }
5339
-
5340
- .waves-effect input[type="button"], .waves-effect input[type="reset"], .waves-effect input[type="submit"] {
5341
- border: 0;
5342
- font-style: normal;
5343
- font-size: inherit;
5344
- text-transform: inherit;
5345
- background: none;
5346
- }
5347
-
5348
- .waves-effect img {
5349
- position: relative;
5350
- z-index: -1;
5351
- }
5352
-
5353
- .waves-notransition {
5354
- transition: none !important;
5355
- }
5356
-
5357
- .waves-circle {
5358
- -webkit-transform: translateZ(0);
5359
- transform: translateZ(0);
5360
- -webkit-mask-image: -webkit-radial-gradient(circle, white 100%, black 100%);
5361
- }
5362
-
5363
- .waves-input-wrapper {
5364
- border-radius: 0.2em;
5365
- vertical-align: bottom;
5366
- }
5367
-
5368
- .waves-input-wrapper .waves-button-input {
5369
- position: relative;
5370
- top: 0;
5371
- left: 0;
5372
- z-index: 1;
5373
- }
5374
-
5375
- .waves-circle {
5376
- text-align: center;
5377
- width: 2.5em;
5378
- height: 2.5em;
5379
- line-height: 2.5em;
5380
- border-radius: 50%;
5381
- -webkit-mask-image: none;
5382
- }
5383
-
5384
- .waves-block {
5385
- display: block;
5386
- }
5387
-
5388
- /* Firefox Bug: link not triggered */
5389
- .waves-effect .waves-ripple {
5390
- z-index: -1;
5391
- }
5392
-
5393
- .modal {
5394
- display: none;
5395
- position: fixed;
5396
- left: 0;
5397
- right: 0;
5398
- background-color: #fafafa;
5399
- padding: 0;
5400
- max-height: 70%;
5401
- width: 55%;
5402
- margin: auto;
5403
- overflow-y: auto;
5404
- border-radius: 2px;
5405
- will-change: top, opacity;
5406
- }
5407
-
5408
- @media only screen and (max-width: 992px) {
5409
- .modal {
5410
- width: 80%;
5411
- }
5412
- }
5413
-
5414
- .modal h1, .modal h2, .modal h3, .modal h4 {
5415
- margin-top: 0;
5416
- }
5417
-
5418
- .modal .modal-content {
5419
- padding: 24px;
5420
- }
5421
-
5422
- .modal .modal-close {
5423
- cursor: pointer;
5424
- }
5425
-
5426
- .modal .modal-footer {
5427
- border-radius: 0 0 2px 2px;
5428
- background-color: #fafafa;
5429
- padding: 4px 6px;
5430
- height: 56px;
5431
- width: 100%;
5432
- }
5433
-
5434
- .modal .modal-footer .btn, .modal .modal-footer .btn-large, .modal .modal-footer .btn-flat {
5435
- float: right;
5436
- margin: 6px 0;
5437
- }
5438
-
5439
- .modal-overlay {
5440
- position: fixed;
5441
- z-index: 999;
5442
- top: -100px;
5443
- left: 0;
5444
- bottom: 0;
5445
- right: 0;
5446
- height: 125%;
5447
- width: 100%;
5448
- background: #000;
5449
- display: none;
5450
- will-change: opacity;
5451
- }
5452
-
5453
- .modal.modal-fixed-footer {
5454
- padding: 0;
5455
- height: 70%;
5456
- }
5457
-
5458
- .modal.modal-fixed-footer .modal-content {
5459
- position: absolute;
5460
- height: calc(100% - 56px);
5461
- max-height: 100%;
5462
- width: 100%;
5463
- overflow-y: auto;
5464
- }
5465
-
5466
- .modal.modal-fixed-footer .modal-footer {
5467
- border-top: 1px solid rgba(0, 0, 0, 0.1);
5468
- position: absolute;
5469
- bottom: 0;
5470
- }
5471
-
5472
- .modal.bottom-sheet {
5473
- top: auto;
5474
- bottom: -100%;
5475
- margin: 0;
5476
- width: 100%;
5477
- max-height: 45%;
5478
- border-radius: 0;
5479
- will-change: bottom, opacity;
5480
- }
5481
-
5482
- .collapsible {
5483
- border-top: 1px solid #ddd;
5484
- border-right: 1px solid #ddd;
5485
- border-left: 1px solid #ddd;
5486
- margin: 0.5rem 0 1rem 0;
5487
- }
5488
-
5489
- .collapsible-header {
5490
- display: block;
5491
- cursor: pointer;
5492
- min-height: 3rem;
5493
- line-height: 3rem;
5494
- padding: 0 1rem;
5495
- background-color: #fff;
5496
- border-bottom: 1px solid #ddd;
5497
- }
5498
-
5499
- .collapsible-header i {
5500
- width: 2rem;
5501
- font-size: 1.6rem;
5502
- line-height: 3rem;
5503
- display: block;
5504
- float: left;
5505
- text-align: center;
5506
- margin-right: 1rem;
5507
- }
5508
-
5509
- .collapsible-body {
5510
- display: none;
5511
- border-bottom: 1px solid #ddd;
5512
- box-sizing: border-box;
5513
- padding: 2rem;
5514
- }
5515
-
5516
- .side-nav .collapsible,
5517
- .side-nav.fixed .collapsible {
5518
- border: none;
5519
- box-shadow: none;
5520
- }
5521
-
5522
- .side-nav .collapsible li,
5523
- .side-nav.fixed .collapsible li {
5524
- padding: 0;
5525
- }
5526
-
5527
- .side-nav .collapsible-header,
5528
- .side-nav.fixed .collapsible-header {
5529
- background-color: transparent;
5530
- border: none;
5531
- line-height: inherit;
5532
- height: inherit;
5533
- padding: 0 16px;
5534
- }
5535
-
5536
- .side-nav .collapsible-header:hover,
5537
- .side-nav.fixed .collapsible-header:hover {
5538
- background-color: rgba(0, 0, 0, 0.05);
5539
- }
5540
-
5541
- .side-nav .collapsible-header i,
5542
- .side-nav.fixed .collapsible-header i {
5543
- line-height: inherit;
5544
- }
5545
-
5546
- .side-nav .collapsible-body,
5547
- .side-nav.fixed .collapsible-body {
5548
- border: 0;
5549
- background-color: #fff;
5550
- }
5551
-
5552
- .side-nav .collapsible-body li a,
5553
- .side-nav.fixed .collapsible-body li a {
5554
- padding: 0 23.5px 0 31px;
5555
- }
5556
-
5557
- .collapsible.popout {
5558
- border: none;
5559
- box-shadow: none;
5560
- }
5561
-
5562
- .collapsible.popout > li {
5563
- box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.16), 0 2px 10px 0 rgba(0, 0, 0, 0.12);
5564
- margin: 0 24px;
5565
- transition: margin 0.35s cubic-bezier(0.25, 0.46, 0.45, 0.94);
5566
- }
5567
-
5568
- .collapsible.popout > li.active {
5569
- box-shadow: 0 5px 11px 0 rgba(0, 0, 0, 0.18), 0 4px 15px 0 rgba(0, 0, 0, 0.15);
5570
- margin: 16px 0;
5571
- }
5572
-
5573
- .chip {
5574
- display: inline-block;
5575
- height: 32px;
5576
- font-size: 13px;
5577
- font-weight: 500;
5578
- color: rgba(0, 0, 0, 0.6);
5579
- line-height: 32px;
5580
- padding: 0 12px;
5581
- border-radius: 16px;
5582
- background-color: #e4e4e4;
5583
- margin-bottom: 5px;
5584
- margin-right: 5px;
5585
- }
5586
-
5587
- .chip img {
5588
- float: left;
5589
- margin: 0 8px 0 -12px;
5590
- height: 32px;
5591
- width: 32px;
5592
- border-radius: 50%;
5593
- }
5594
-
5595
- .chip .close {
5596
- cursor: pointer;
5597
- float: right;
5598
- font-size: 16px;
5599
- line-height: 32px;
5600
- padding-left: 8px;
5601
- }
5602
-
5603
- .chips {
5604
- border: none;
5605
- border-bottom: 1px solid #9e9e9e;
5606
- box-shadow: none;
5607
- margin: 0 0 20px 0;
5608
- min-height: 45px;
5609
- outline: none;
5610
- transition: all .3s;
5611
- }
5612
-
5613
- .chips.focus {
5614
- border-bottom: 1px solid #26a69a;
5615
- box-shadow: 0 1px 0 0 #26a69a;
5616
- }
5617
-
5618
- .chips:hover {
5619
- cursor: text;
5620
- }
5621
-
5622
- .chips .chip.selected {
5623
- background-color: #26a69a;
5624
- color: #fff;
5625
- }
5626
-
5627
- .chips .input {
5628
- background: none;
5629
- border: 0;
5630
- color: rgba(0, 0, 0, 0.6);
5631
- display: inline-block;
5632
- font-size: 1rem;
5633
- height: 3rem;
5634
- line-height: 32px;
5635
- outline: 0;
5636
- margin: 0;
5637
- padding: 0 !important;
5638
- width: 120px !important;
5639
- }
5640
-
5641
- .chips .input:focus {
5642
- border: 0 !important;
5643
- box-shadow: none !important;
5644
- }
5645
-
5646
- .prefix ~ .chips {
5647
- margin-left: 3rem;
5648
- width: 92%;
5649
- width: calc(100% - 3rem);
5650
- }
5651
-
5652
- .chips:empty ~ label {
5653
- font-size: 0.8rem;
5654
- -webkit-transform: translateY(-140%);
5655
- transform: translateY(-140%);
5656
- }
5657
-
5658
- .materialboxed {
5659
- display: block;
5660
- cursor: -webkit-zoom-in;
5661
- cursor: zoom-in;
5662
- position: relative;
5663
- transition: opacity .4s;
5664
- -webkit-backface-visibility: hidden;
5665
- }
5666
-
5667
- .materialboxed:hover:not(.active) {
5668
- opacity: .8;
5669
- }
5670
-
5671
- .materialboxed.active {
5672
- cursor: -webkit-zoom-out;
5673
- cursor: zoom-out;
5674
- }
5675
-
5676
- #materialbox-overlay {
5677
- position: fixed;
5678
- top: 0;
5679
- right: 0;
5680
- bottom: 0;
5681
- left: 0;
5682
- background-color: #292929;
5683
- z-index: 1000;
5684
- will-change: opacity;
5685
- }
5686
-
5687
- .materialbox-caption {
5688
- position: fixed;
5689
- display: none;
5690
- color: #fff;
5691
- line-height: 50px;
5692
- bottom: 0;
5693
- left: 0;
5694
- width: 100%;
5695
- text-align: center;
5696
- padding: 0% 15%;
5697
- height: 50px;
5698
- z-index: 1000;
5699
- -webkit-font-smoothing: antialiased;
5700
- }
5701
-
5702
- select:focus {
5703
- outline: 1px solid #c9f3ef;
5704
- }
5705
-
5706
- button:focus {
5707
- outline: none;
5708
- background-color: #2ab7a9;
5709
- }
5710
-
5711
- label {
5712
- font-size: 0.8rem;
5713
- color: #9e9e9e;
5714
- }
5715
-
5716
- /* Text Inputs + Textarea
5717
- ========================================================================== */
5718
- /* Style Placeholders */
5719
- ::-webkit-input-placeholder {
5720
- color: #d1d1d1;
5721
- }
5722
-
5723
- :-moz-placeholder {
5724
- /* Firefox 18- */
5725
- color: #d1d1d1;
5726
- }
5727
-
5728
- ::-moz-placeholder {
5729
- /* Firefox 19+ */
5730
- color: #d1d1d1;
5731
- }
5732
-
5733
- :-ms-input-placeholder {
5734
- color: #d1d1d1;
5735
- }
5736
-
5737
- /* Text inputs */
5738
- input:not([type]),
5739
- input[type=text],
5740
- input[type=password],
5741
- input[type=email],
5742
- input[type=url],
5743
- input[type=time],
5744
- input[type=date],
5745
- input[type=datetime],
5746
- input[type=datetime-local],
5747
- input[type=tel],
5748
- input[type=number],
5749
- input[type=search],
5750
- textarea.materialize-textarea {
5751
- background-color: transparent;
5752
- border: none;
5753
- border-bottom: 1px solid #9e9e9e;
5754
- border-radius: 0;
5755
- outline: none;
5756
- height: 3rem;
5757
- width: 100%;
5758
- font-size: 1rem;
5759
- margin: 0 0 20px 0;
5760
- padding: 0;
5761
- box-shadow: none;
5762
- box-sizing: content-box;
5763
- transition: all 0.3s;
5764
- }
5765
-
5766
- input:not([type]):disabled, input:not([type])[readonly="readonly"],
5767
- input[type=text]:disabled,
5768
- input[type=text][readonly="readonly"],
5769
- input[type=password]:disabled,
5770
- input[type=password][readonly="readonly"],
5771
- input[type=email]:disabled,
5772
- input[type=email][readonly="readonly"],
5773
- input[type=url]:disabled,
5774
- input[type=url][readonly="readonly"],
5775
- input[type=time]:disabled,
5776
- input[type=time][readonly="readonly"],
5777
- input[type=date]:disabled,
5778
- input[type=date][readonly="readonly"],
5779
- input[type=datetime]:disabled,
5780
- input[type=datetime][readonly="readonly"],
5781
- input[type=datetime-local]:disabled,
5782
- input[type=datetime-local][readonly="readonly"],
5783
- input[type=tel]:disabled,
5784
- input[type=tel][readonly="readonly"],
5785
- input[type=number]:disabled,
5786
- input[type=number][readonly="readonly"],
5787
- input[type=search]:disabled,
5788
- input[type=search][readonly="readonly"],
5789
- textarea.materialize-textarea:disabled,
5790
- textarea.materialize-textarea[readonly="readonly"] {
5791
- color: rgba(0, 0, 0, 0.26);
5792
- border-bottom: 1px dotted rgba(0, 0, 0, 0.26);
5793
- }
5794
-
5795
- input:not([type]):disabled + label,
5796
- input:not([type])[readonly="readonly"] + label,
5797
- input[type=text]:disabled + label,
5798
- input[type=text][readonly="readonly"] + label,
5799
- input[type=password]:disabled + label,
5800
- input[type=password][readonly="readonly"] + label,
5801
- input[type=email]:disabled + label,
5802
- input[type=email][readonly="readonly"] + label,
5803
- input[type=url]:disabled + label,
5804
- input[type=url][readonly="readonly"] + label,
5805
- input[type=time]:disabled + label,
5806
- input[type=time][readonly="readonly"] + label,
5807
- input[type=date]:disabled + label,
5808
- input[type=date][readonly="readonly"] + label,
5809
- input[type=datetime]:disabled + label,
5810
- input[type=datetime][readonly="readonly"] + label,
5811
- input[type=datetime-local]:disabled + label,
5812
- input[type=datetime-local][readonly="readonly"] + label,
5813
- input[type=tel]:disabled + label,
5814
- input[type=tel][readonly="readonly"] + label,
5815
- input[type=number]:disabled + label,
5816
- input[type=number][readonly="readonly"] + label,
5817
- input[type=search]:disabled + label,
5818
- input[type=search][readonly="readonly"] + label,
5819
- textarea.materialize-textarea:disabled + label,
5820
- textarea.materialize-textarea[readonly="readonly"] + label {
5821
- color: rgba(0, 0, 0, 0.26);
5822
- }
5823
-
5824
- input:not([type]):focus:not([readonly]),
5825
- input[type=text]:focus:not([readonly]),
5826
- input[type=password]:focus:not([readonly]),
5827
- input[type=email]:focus:not([readonly]),
5828
- input[type=url]:focus:not([readonly]),
5829
- input[type=time]:focus:not([readonly]),
5830
- input[type=date]:focus:not([readonly]),
5831
- input[type=datetime]:focus:not([readonly]),
5832
- input[type=datetime-local]:focus:not([readonly]),
5833
- input[type=tel]:focus:not([readonly]),
5834
- input[type=number]:focus:not([readonly]),
5835
- input[type=search]:focus:not([readonly]),
5836
- textarea.materialize-textarea:focus:not([readonly]) {
5837
- border-bottom: 1px solid #26a69a;
5838
- box-shadow: 0 1px 0 0 #26a69a;
5839
- }
5840
-
5841
- input:not([type]):focus:not([readonly]) + label,
5842
- input[type=text]:focus:not([readonly]) + label,
5843
- input[type=password]:focus:not([readonly]) + label,
5844
- input[type=email]:focus:not([readonly]) + label,
5845
- input[type=url]:focus:not([readonly]) + label,
5846
- input[type=time]:focus:not([readonly]) + label,
5847
- input[type=date]:focus:not([readonly]) + label,
5848
- input[type=datetime]:focus:not([readonly]) + label,
5849
- input[type=datetime-local]:focus:not([readonly]) + label,
5850
- input[type=tel]:focus:not([readonly]) + label,
5851
- input[type=number]:focus:not([readonly]) + label,
5852
- input[type=search]:focus:not([readonly]) + label,
5853
- textarea.materialize-textarea:focus:not([readonly]) + label {
5854
- color: #26a69a;
5855
- }
5856
-
5857
- input:not([type]).valid, input:not([type]):focus.valid,
5858
- input[type=text].valid,
5859
- input[type=text]:focus.valid,
5860
- input[type=password].valid,
5861
- input[type=password]:focus.valid,
5862
- input[type=email].valid,
5863
- input[type=email]:focus.valid,
5864
- input[type=url].valid,
5865
- input[type=url]:focus.valid,
5866
- input[type=time].valid,
5867
- input[type=time]:focus.valid,
5868
- input[type=date].valid,
5869
- input[type=date]:focus.valid,
5870
- input[type=datetime].valid,
5871
- input[type=datetime]:focus.valid,
5872
- input[type=datetime-local].valid,
5873
- input[type=datetime-local]:focus.valid,
5874
- input[type=tel].valid,
5875
- input[type=tel]:focus.valid,
5876
- input[type=number].valid,
5877
- input[type=number]:focus.valid,
5878
- input[type=search].valid,
5879
- input[type=search]:focus.valid,
5880
- textarea.materialize-textarea.valid,
5881
- textarea.materialize-textarea:focus.valid {
5882
- border-bottom: 1px solid #4CAF50;
5883
- box-shadow: 0 1px 0 0 #4CAF50;
5884
- }
5885
-
5886
- input:not([type]).valid + label:after,
5887
- input:not([type]):focus.valid + label:after,
5888
- input[type=text].valid + label:after,
5889
- input[type=text]:focus.valid + label:after,
5890
- input[type=password].valid + label:after,
5891
- input[type=password]:focus.valid + label:after,
5892
- input[type=email].valid + label:after,
5893
- input[type=email]:focus.valid + label:after,
5894
- input[type=url].valid + label:after,
5895
- input[type=url]:focus.valid + label:after,
5896
- input[type=time].valid + label:after,
5897
- input[type=time]:focus.valid + label:after,
5898
- input[type=date].valid + label:after,
5899
- input[type=date]:focus.valid + label:after,
5900
- input[type=datetime].valid + label:after,
5901
- input[type=datetime]:focus.valid + label:after,
5902
- input[type=datetime-local].valid + label:after,
5903
- input[type=datetime-local]:focus.valid + label:after,
5904
- input[type=tel].valid + label:after,
5905
- input[type=tel]:focus.valid + label:after,
5906
- input[type=number].valid + label:after,
5907
- input[type=number]:focus.valid + label:after,
5908
- input[type=search].valid + label:after,
5909
- input[type=search]:focus.valid + label:after,
5910
- textarea.materialize-textarea.valid + label:after,
5911
- textarea.materialize-textarea:focus.valid + label:after {
5912
- content: attr(data-success);
5913
- color: #4CAF50;
5914
- opacity: 1;
5915
- }
5916
-
5917
- input:not([type]).invalid, input:not([type]):focus.invalid,
5918
- input[type=text].invalid,
5919
- input[type=text]:focus.invalid,
5920
- input[type=password].invalid,
5921
- input[type=password]:focus.invalid,
5922
- input[type=email].invalid,
5923
- input[type=email]:focus.invalid,
5924
- input[type=url].invalid,
5925
- input[type=url]:focus.invalid,
5926
- input[type=time].invalid,
5927
- input[type=time]:focus.invalid,
5928
- input[type=date].invalid,
5929
- input[type=date]:focus.invalid,
5930
- input[type=datetime].invalid,
5931
- input[type=datetime]:focus.invalid,
5932
- input[type=datetime-local].invalid,
5933
- input[type=datetime-local]:focus.invalid,
5934
- input[type=tel].invalid,
5935
- input[type=tel]:focus.invalid,
5936
- input[type=number].invalid,
5937
- input[type=number]:focus.invalid,
5938
- input[type=search].invalid,
5939
- input[type=search]:focus.invalid,
5940
- textarea.materialize-textarea.invalid,
5941
- textarea.materialize-textarea:focus.invalid {
5942
- border-bottom: 1px solid #F44336;
5943
- box-shadow: 0 1px 0 0 #F44336;
5944
- }
5945
-
5946
- input:not([type]).invalid + label:after,
5947
- input:not([type]):focus.invalid + label:after,
5948
- input[type=text].invalid + label:after,
5949
- input[type=text]:focus.invalid + label:after,
5950
- input[type=password].invalid + label:after,
5951
- input[type=password]:focus.invalid + label:after,
5952
- input[type=email].invalid + label:after,
5953
- input[type=email]:focus.invalid + label:after,
5954
- input[type=url].invalid + label:after,
5955
- input[type=url]:focus.invalid + label:after,
5956
- input[type=time].invalid + label:after,
5957
- input[type=time]:focus.invalid + label:after,
5958
- input[type=date].invalid + label:after,
5959
- input[type=date]:focus.invalid + label:after,
5960
- input[type=datetime].invalid + label:after,
5961
- input[type=datetime]:focus.invalid + label:after,
5962
- input[type=datetime-local].invalid + label:after,
5963
- input[type=datetime-local]:focus.invalid + label:after,
5964
- input[type=tel].invalid + label:after,
5965
- input[type=tel]:focus.invalid + label:after,
5966
- input[type=number].invalid + label:after,
5967
- input[type=number]:focus.invalid + label:after,
5968
- input[type=search].invalid + label:after,
5969
- input[type=search]:focus.invalid + label:after,
5970
- textarea.materialize-textarea.invalid + label:after,
5971
- textarea.materialize-textarea:focus.invalid + label:after {
5972
- content: attr(data-error);
5973
- color: #F44336;
5974
- opacity: 1;
5975
- }
5976
-
5977
- input:not([type]).validate + label,
5978
- input[type=text].validate + label,
5979
- input[type=password].validate + label,
5980
- input[type=email].validate + label,
5981
- input[type=url].validate + label,
5982
- input[type=time].validate + label,
5983
- input[type=date].validate + label,
5984
- input[type=datetime].validate + label,
5985
- input[type=datetime-local].validate + label,
5986
- input[type=tel].validate + label,
5987
- input[type=number].validate + label,
5988
- input[type=search].validate + label,
5989
- textarea.materialize-textarea.validate + label {
5990
- width: 100%;
5991
- pointer-events: none;
5992
- }
5993
-
5994
- input:not([type]) + label:after,
5995
- input[type=text] + label:after,
5996
- input[type=password] + label:after,
5997
- input[type=email] + label:after,
5998
- input[type=url] + label:after,
5999
- input[type=time] + label:after,
6000
- input[type=date] + label:after,
6001
- input[type=datetime] + label:after,
6002
- input[type=datetime-local] + label:after,
6003
- input[type=tel] + label:after,
6004
- input[type=number] + label:after,
6005
- input[type=search] + label:after,
6006
- textarea.materialize-textarea + label:after {
6007
- display: block;
6008
- content: "";
6009
- position: absolute;
6010
- top: 60px;
6011
- opacity: 0;
6012
- transition: .2s opacity ease-out, .2s color ease-out;
6013
- }
6014
-
6015
- .input-field {
6016
- position: relative;
6017
- margin-top: 1rem;
6018
- }
6019
-
6020
- .input-field.inline {
6021
- display: inline-block;
6022
- vertical-align: middle;
6023
- margin-left: 5px;
6024
- }
6025
-
6026
- .input-field.inline input,
6027
- .input-field.inline .select-dropdown {
6028
- margin-bottom: 1rem;
6029
- }
6030
-
6031
- .input-field.col label {
6032
- left: 0.75rem;
6033
- }
6034
-
6035
- .input-field.col .prefix ~ label,
6036
- .input-field.col .prefix ~ .validate ~ label {
6037
- width: calc(100% - 3rem - 1.5rem);
6038
- }
6039
-
6040
- .input-field label {
6041
- color: #9e9e9e;
6042
- position: absolute;
6043
- top: 0.8rem;
6044
- left: 0;
6045
- font-size: 1rem;
6046
- cursor: text;
6047
- transition: .2s ease-out;
6048
- }
6049
-
6050
- .input-field label:not(.label-icon).active {
6051
- font-size: 0.8rem;
6052
- -webkit-transform: translateY(-140%);
6053
- transform: translateY(-140%);
6054
- }
6055
-
6056
- .input-field .prefix {
6057
- position: absolute;
6058
- width: 3rem;
6059
- font-size: 2rem;
6060
- transition: color .2s;
6061
- }
6062
-
6063
- .input-field .prefix.active {
6064
- color: #26a69a;
6065
- }
6066
-
6067
- .input-field .prefix ~ input,
6068
- .input-field .prefix ~ textarea,
6069
- .input-field .prefix ~ label,
6070
- .input-field .prefix ~ .validate ~ label,
6071
- .input-field .prefix ~ .autocomplete-content {
6072
- margin-left: 3rem;
6073
- width: 92%;
6074
- width: calc(100% - 3rem);
6075
- }
6076
-
6077
- .input-field .prefix ~ label {
6078
- margin-left: 3rem;
6079
- }
6080
-
6081
- @media only screen and (max-width: 992px) {
6082
- .input-field .prefix ~ input {
6083
- width: 86%;
6084
- width: calc(100% - 3rem);
6085
- }
6086
- }
6087
-
6088
- @media only screen and (max-width: 600px) {
6089
- .input-field .prefix ~ input {
6090
- width: 80%;
6091
- width: calc(100% - 3rem);
6092
- }
6093
- }
6094
-
6095
- /* Search Field */
6096
- .input-field input[type=search] {
6097
- display: block;
6098
- line-height: inherit;
6099
- padding-left: 4rem;
6100
- width: calc(100% - 4rem);
6101
- }
6102
-
6103
- .input-field input[type=search]:focus {
6104
- background-color: #fff;
6105
- border: 0;
6106
- box-shadow: none;
6107
- color: #444;
6108
- }
6109
-
6110
- .input-field input[type=search]:focus + label i,
6111
- .input-field input[type=search]:focus ~ .mdi-navigation-close,
6112
- .input-field input[type=search]:focus ~ .material-icons {
6113
- color: #444;
6114
- }
6115
-
6116
- .input-field input[type=search] + label {
6117
- left: 1rem;
6118
- }
6119
-
6120
- .input-field input[type=search] ~ .mdi-navigation-close,
6121
- .input-field input[type=search] ~ .material-icons {
6122
- position: absolute;
6123
- top: 0;
6124
- right: 1rem;
6125
- color: transparent;
6126
- cursor: pointer;
6127
- font-size: 2rem;
6128
- transition: .3s color;
6129
- }
6130
-
6131
- /* Textarea */
6132
- textarea {
6133
- width: 100%;
6134
- height: 3rem;
6135
- background-color: transparent;
6136
- }
6137
-
6138
- textarea.materialize-textarea {
6139
- overflow-y: hidden;
6140
- /* prevents scroll bar flash */
6141
- padding: .8rem 0 1.6rem 0;
6142
- /* prevents text jump on Enter keypress */
6143
- resize: none;
6144
- min-height: 3rem;
6145
- }
6146
-
6147
- .hiddendiv {
6148
- display: none;
6149
- white-space: pre-wrap;
6150
- word-wrap: break-word;
6151
- overflow-wrap: break-word;
6152
- /* future version of deprecated 'word-wrap' */
6153
- padding-top: 1.2rem;
6154
- /* prevents text jump on Enter keypress */
6155
- }
6156
-
6157
- /* Autocomplete */
6158
- .autocomplete-content {
6159
- margin-top: -15px;
6160
- display: block;
6161
- opacity: 1;
6162
- position: static;
6163
- }
6164
-
6165
- .autocomplete-content li .highlight {
6166
- color: #444;
6167
- }
6168
-
6169
- .autocomplete-content li img {
6170
- height: 40px;
6171
- width: 40px;
6172
- margin: 5px 15px;
6173
- }
6174
-
6175
- /* Radio Buttons
6176
- ========================================================================== */
6177
- [type="radio"]:not(:checked),
6178
- [type="radio"]:checked {
6179
- position: absolute;
6180
- left: -9999px;
6181
- opacity: 0;
6182
- }
6183
-
6184
- [type="radio"]:not(:checked) + label,
6185
- [type="radio"]:checked + label {
6186
- position: relative;
6187
- padding-left: 35px;
6188
- cursor: pointer;
6189
- display: inline-block;
6190
- height: 25px;
6191
- line-height: 25px;
6192
- font-size: 1rem;
6193
- transition: .28s ease;
6194
- /* webkit (konqueror) browsers */
6195
- -webkit-user-select: none;
6196
- -moz-user-select: none;
6197
- -ms-user-select: none;
6198
- user-select: none;
6199
- }
6200
-
6201
- [type="radio"] + label:before,
6202
- [type="radio"] + label:after {
6203
- content: '';
6204
- position: absolute;
6205
- left: 0;
6206
- top: 0;
6207
- margin: 4px;
6208
- width: 16px;
6209
- height: 16px;
6210
- z-index: 0;
6211
- transition: .28s ease;
6212
- }
6213
-
6214
- /* Unchecked styles */
6215
- [type="radio"]:not(:checked) + label:before,
6216
- [type="radio"]:not(:checked) + label:after,
6217
- [type="radio"]:checked + label:before,
6218
- [type="radio"]:checked + label:after,
6219
- [type="radio"].with-gap:checked + label:before,
6220
- [type="radio"].with-gap:checked + label:after {
6221
- border-radius: 50%;
6222
- }
6223
-
6224
- [type="radio"]:not(:checked) + label:before,
6225
- [type="radio"]:not(:checked) + label:after {
6226
- border: 2px solid #5a5a5a;
6227
- }
6228
-
6229
- [type="radio"]:not(:checked) + label:after {
6230
- -webkit-transform: scale(0);
6231
- transform: scale(0);
6232
- }
6233
-
6234
- /* Checked styles */
6235
- [type="radio"]:checked + label:before {
6236
- border: 2px solid transparent;
6237
- }
6238
-
6239
- [type="radio"]:checked + label:after,
6240
- [type="radio"].with-gap:checked + label:before,
6241
- [type="radio"].with-gap:checked + label:after {
6242
- border: 2px solid #26a69a;
6243
- }
6244
-
6245
- [type="radio"]:checked + label:after,
6246
- [type="radio"].with-gap:checked + label:after {
6247
- background-color: #26a69a;
6248
- }
6249
-
6250
- [type="radio"]:checked + label:after {
6251
- -webkit-transform: scale(1.02);
6252
- transform: scale(1.02);
6253
- }
6254
-
6255
- /* Radio With gap */
6256
- [type="radio"].with-gap:checked + label:after {
6257
- -webkit-transform: scale(0.5);
6258
- transform: scale(0.5);
6259
- }
6260
-
6261
- /* Focused styles */
6262
- [type="radio"].tabbed:focus + label:before {
6263
- box-shadow: 0 0 0 10px rgba(0, 0, 0, 0.1);
6264
- }
6265
-
6266
- /* Disabled Radio With gap */
6267
- [type="radio"].with-gap:disabled:checked + label:before {
6268
- border: 2px solid rgba(0, 0, 0, 0.26);
6269
- }
6270
-
6271
- [type="radio"].with-gap:disabled:checked + label:after {
6272
- border: none;
6273
- background-color: rgba(0, 0, 0, 0.26);
6274
- }
6275
-
6276
- /* Disabled style */
6277
- [type="radio"]:disabled:not(:checked) + label:before,
6278
- [type="radio"]:disabled:checked + label:before {
6279
- background-color: transparent;
6280
- border-color: rgba(0, 0, 0, 0.26);
6281
- }
6282
-
6283
- [type="radio"]:disabled + label {
6284
- color: rgba(0, 0, 0, 0.26);
6285
- }
6286
-
6287
- [type="radio"]:disabled:not(:checked) + label:before {
6288
- border-color: rgba(0, 0, 0, 0.26);
6289
- }
6290
-
6291
- [type="radio"]:disabled:checked + label:after {
6292
- background-color: rgba(0, 0, 0, 0.26);
6293
- border-color: #BDBDBD;
6294
- }
6295
-
6296
- /* Checkboxes
6297
- ========================================================================== */
6298
- /* CUSTOM CSS CHECKBOXES */
6299
- form p {
6300
- margin-bottom: 10px;
6301
- text-align: left;
6302
- }
6303
-
6304
- form p:last-child {
6305
- margin-bottom: 0;
6306
- }
6307
-
6308
- /* Remove default checkbox */
6309
- [type="checkbox"]:not(:checked),
6310
- [type="checkbox"]:checked {
6311
- position: absolute;
6312
- left: -9999px;
6313
- opacity: 0;
6314
- }
6315
-
6316
- [type="checkbox"] {
6317
- /* checkbox aspect */
6318
- }
6319
-
6320
- [type="checkbox"] + label {
6321
- position: relative;
6322
- padding-left: 35px;
6323
- cursor: pointer;
6324
- display: inline-block;
6325
- height: 25px;
6326
- line-height: 25px;
6327
- font-size: 1rem;
6328
- -webkit-user-select: none;
6329
- /* webkit (safari, chrome) browsers */
6330
- -moz-user-select: none;
6331
- /* mozilla browsers */
6332
- -khtml-user-select: none;
6333
- /* webkit (konqueror) browsers */
6334
- -ms-user-select: none;
6335
- /* IE10+ */
6336
- }
6337
-
6338
- [type="checkbox"] + label:before,
6339
- [type="checkbox"]:not(.filled-in) + label:after {
6340
- content: '';
6341
- position: absolute;
6342
- top: 0;
6343
- left: 0;
6344
- width: 18px;
6345
- height: 18px;
6346
- z-index: 0;
6347
- border: 2px solid #5a5a5a;
6348
- border-radius: 1px;
6349
- margin-top: 2px;
6350
- transition: .2s;
6351
- }
6352
-
6353
- [type="checkbox"]:not(.filled-in) + label:after {
6354
- border: 0;
6355
- -webkit-transform: scale(0);
6356
- transform: scale(0);
6357
- }
6358
-
6359
- [type="checkbox"]:not(:checked):disabled + label:before {
6360
- border: none;
6361
- background-color: rgba(0, 0, 0, 0.26);
6362
- }
6363
-
6364
- [type="checkbox"].tabbed:focus + label:after {
6365
- -webkit-transform: scale(1);
6366
- transform: scale(1);
6367
- border: 0;
6368
- border-radius: 50%;
6369
- box-shadow: 0 0 0 10px rgba(0, 0, 0, 0.1);
6370
- background-color: rgba(0, 0, 0, 0.1);
6371
- }
6372
-
6373
- [type="checkbox"]:checked + label:before {
6374
- top: -4px;
6375
- left: -5px;
6376
- width: 12px;
6377
- height: 22px;
6378
- border-top: 2px solid transparent;
6379
- border-left: 2px solid transparent;
6380
- border-right: 2px solid #26a69a;
6381
- border-bottom: 2px solid #26a69a;
6382
- -webkit-transform: rotate(40deg);
6383
- transform: rotate(40deg);
6384
- -webkit-backface-visibility: hidden;
6385
- backface-visibility: hidden;
6386
- -webkit-transform-origin: 100% 100%;
6387
- transform-origin: 100% 100%;
6388
- }
6389
-
6390
- [type="checkbox"]:checked:disabled + label:before {
6391
- border-right: 2px solid rgba(0, 0, 0, 0.26);
6392
- border-bottom: 2px solid rgba(0, 0, 0, 0.26);
6393
- }
6394
-
6395
- /* Indeterminate checkbox */
6396
- [type="checkbox"]:indeterminate + label:before {
6397
- top: -11px;
6398
- left: -12px;
6399
- width: 10px;
6400
- height: 22px;
6401
- border-top: none;
6402
- border-left: none;
6403
- border-right: 2px solid #26a69a;
6404
- border-bottom: none;
6405
- -webkit-transform: rotate(90deg);
6406
- transform: rotate(90deg);
6407
- -webkit-backface-visibility: hidden;
6408
- backface-visibility: hidden;
6409
- -webkit-transform-origin: 100% 100%;
6410
- transform-origin: 100% 100%;
6411
- }
6412
-
6413
- [type="checkbox"]:indeterminate:disabled + label:before {
6414
- border-right: 2px solid rgba(0, 0, 0, 0.26);
6415
- background-color: transparent;
6416
- }
6417
-
6418
- [type="checkbox"].filled-in + label:after {
6419
- border-radius: 2px;
6420
- }
6421
-
6422
- [type="checkbox"].filled-in + label:before,
6423
- [type="checkbox"].filled-in + label:after {
6424
- content: '';
6425
- left: 0;
6426
- position: absolute;
6427
- /* .1s delay is for check animation */
6428
- transition: border .25s, background-color .25s, width .20s .1s, height .20s .1s, top .20s .1s, left .20s .1s;
6429
- z-index: 1;
6430
- }
6431
-
6432
- [type="checkbox"].filled-in:not(:checked) + label:before {
6433
- width: 0;
6434
- height: 0;
6435
- border: 3px solid transparent;
6436
- left: 6px;
6437
- top: 10px;
6438
- -webkit-transform: rotateZ(37deg);
6439
- transform: rotateZ(37deg);
6440
- -webkit-transform-origin: 20% 40%;
6441
- transform-origin: 100% 100%;
6442
- }
6443
-
6444
- [type="checkbox"].filled-in:not(:checked) + label:after {
6445
- height: 20px;
6446
- width: 20px;
6447
- background-color: transparent;
6448
- border: 2px solid #5a5a5a;
6449
- top: 0px;
6450
- z-index: 0;
6451
- }
6452
-
6453
- [type="checkbox"].filled-in:checked + label:before {
6454
- top: 0;
6455
- left: 1px;
6456
- width: 8px;
6457
- height: 13px;
6458
- border-top: 2px solid transparent;
6459
- border-left: 2px solid transparent;
6460
- border-right: 2px solid #fff;
6461
- border-bottom: 2px solid #fff;
6462
- -webkit-transform: rotateZ(37deg);
6463
- transform: rotateZ(37deg);
6464
- -webkit-transform-origin: 100% 100%;
6465
- transform-origin: 100% 100%;
6466
- }
6467
-
6468
- [type="checkbox"].filled-in:checked + label:after {
6469
- top: 0;
6470
- width: 20px;
6471
- height: 20px;
6472
- border: 2px solid #26a69a;
6473
- background-color: #26a69a;
6474
- z-index: 0;
6475
- }
6476
-
6477
- [type="checkbox"].filled-in.tabbed:focus + label:after {
6478
- border-radius: 2px;
6479
- border-color: #5a5a5a;
6480
- background-color: rgba(0, 0, 0, 0.1);
6481
- }
6482
-
6483
- [type="checkbox"].filled-in.tabbed:checked:focus + label:after {
6484
- border-radius: 2px;
6485
- background-color: #26a69a;
6486
- border-color: #26a69a;
6487
- }
6488
-
6489
- [type="checkbox"].filled-in:disabled:not(:checked) + label:before {
6490
- background-color: transparent;
6491
- border: 2px solid transparent;
6492
- }
6493
-
6494
- [type="checkbox"].filled-in:disabled:not(:checked) + label:after {
6495
- border-color: transparent;
6496
- background-color: #BDBDBD;
6497
- }
6498
-
6499
- [type="checkbox"].filled-in:disabled:checked + label:before {
6500
- background-color: transparent;
6501
- }
6502
-
6503
- [type="checkbox"].filled-in:disabled:checked + label:after {
6504
- background-color: #BDBDBD;
6505
- border-color: #BDBDBD;
6506
- }
6507
-
6508
- /* Switch
6509
- ========================================================================== */
6510
- .switch,
6511
- .switch * {
6512
- -webkit-user-select: none;
6513
- -moz-user-select: none;
6514
- -khtml-user-select: none;
6515
- -ms-user-select: none;
6516
- }
6517
-
6518
- .switch label {
6519
- cursor: pointer;
6520
- }
6521
-
6522
- .switch label input[type=checkbox] {
6523
- opacity: 0;
6524
- width: 0;
6525
- height: 0;
6526
- }
6527
-
6528
- .switch label input[type=checkbox]:checked + .lever {
6529
- background-color: #84c7c1;
6530
- }
6531
-
6532
- .switch label input[type=checkbox]:checked + .lever:after {
6533
- background-color: #26a69a;
6534
- left: 24px;
6535
- }
6536
-
6537
- .switch label .lever {
6538
- content: "";
6539
- display: inline-block;
6540
- position: relative;
6541
- width: 40px;
6542
- height: 15px;
6543
- background-color: #818181;
6544
- border-radius: 15px;
6545
- margin-right: 10px;
6546
- transition: background 0.3s ease;
6547
- vertical-align: middle;
6548
- margin: 0 16px;
6549
- }
6550
-
6551
- .switch label .lever:after {
6552
- content: "";
6553
- position: absolute;
6554
- display: inline-block;
6555
- width: 21px;
6556
- height: 21px;
6557
- background-color: #F1F1F1;
6558
- border-radius: 21px;
6559
- box-shadow: 0 1px 3px 1px rgba(0, 0, 0, 0.4);
6560
- left: -5px;
6561
- top: -3px;
6562
- transition: left 0.3s ease, background .3s ease, box-shadow 0.1s ease;
6563
- }
6564
-
6565
- input[type=checkbox]:checked:not(:disabled) ~ .lever:active::after,
6566
- input[type=checkbox]:checked:not(:disabled).tabbed:focus ~ .lever::after {
6567
- box-shadow: 0 1px 3px 1px rgba(0, 0, 0, 0.4), 0 0 0 15px rgba(38, 166, 154, 0.1);
6568
- }
6569
-
6570
- input[type=checkbox]:not(:disabled) ~ .lever:active:after,
6571
- input[type=checkbox]:not(:disabled).tabbed:focus ~ .lever::after {
6572
- box-shadow: 0 1px 3px 1px rgba(0, 0, 0, 0.4), 0 0 0 15px rgba(0, 0, 0, 0.08);
6573
- }
6574
-
6575
- .switch input[type=checkbox][disabled] + .lever {
6576
- cursor: default;
6577
- }
6578
-
6579
- .switch label input[type=checkbox][disabled] + .lever:after,
6580
- .switch label input[type=checkbox][disabled]:checked + .lever:after {
6581
- background-color: #BDBDBD;
6582
- }
6583
-
6584
- /* Select Field
6585
- ========================================================================== */
6586
- select {
6587
- display: none;
6588
- }
6589
-
6590
- select.browser-default {
6591
- display: block;
6592
- }
6593
-
6594
- select {
6595
- background-color: rgba(255, 255, 255, 0.9);
6596
- width: 100%;
6597
- padding: 5px;
6598
- border: 1px solid #f2f2f2;
6599
- border-radius: 2px;
6600
- height: 3rem;
6601
- }
6602
-
6603
- .select-label {
6604
- position: absolute;
6605
- }
6606
-
6607
- .select-wrapper {
6608
- position: relative;
6609
- }
6610
-
6611
- .select-wrapper input.select-dropdown {
6612
- position: relative;
6613
- cursor: pointer;
6614
- background-color: transparent;
6615
- border: none;
6616
- border-bottom: 1px solid #9e9e9e;
6617
- outline: none;
6618
- height: 3rem;
6619
- line-height: 3rem;
6620
- width: 100%;
6621
- font-size: 1rem;
6622
- margin: 0 0 20px 0;
6623
- padding: 0;
6624
- display: block;
6625
- }
6626
-
6627
- .select-wrapper span.caret {
6628
- color: initial;
6629
- position: absolute;
6630
- right: 0;
6631
- top: 0;
6632
- bottom: 0;
6633
- height: 10px;
6634
- margin: auto 0;
6635
- font-size: 10px;
6636
- line-height: 10px;
6637
- }
6638
-
6639
- .select-wrapper span.caret.disabled {
6640
- color: rgba(0, 0, 0, 0.26);
6641
- }
6642
-
6643
- .select-wrapper + label {
6644
- position: absolute;
6645
- top: -14px;
6646
- font-size: 0.8rem;
6647
- }
6648
-
6649
- select:disabled {
6650
- color: rgba(0, 0, 0, 0.3);
6651
- }
6652
-
6653
- .select-wrapper input.select-dropdown:disabled {
6654
- color: rgba(0, 0, 0, 0.3);
6655
- cursor: default;
6656
- -webkit-user-select: none;
6657
- /* webkit (safari, chrome) browsers */
6658
- -moz-user-select: none;
6659
- /* mozilla browsers */
6660
- -ms-user-select: none;
6661
- /* IE10+ */
6662
- border-bottom: 1px solid rgba(0, 0, 0, 0.3);
6663
- }
6664
-
6665
- .select-wrapper i {
6666
- color: rgba(0, 0, 0, 0.3);
6667
- }
6668
-
6669
- .select-dropdown li.disabled,
6670
- .select-dropdown li.disabled > span,
6671
- .select-dropdown li.optgroup {
6672
- color: rgba(0, 0, 0, 0.3);
6673
- background-color: transparent;
6674
- }
6675
-
6676
- .prefix ~ .select-wrapper {
6677
- margin-left: 3rem;
6678
- width: 92%;
6679
- width: calc(100% - 3rem);
6680
- }
6681
-
6682
- .prefix ~ label {
6683
- margin-left: 3rem;
6684
- }
6685
-
6686
- .select-dropdown li img {
6687
- height: 40px;
6688
- width: 40px;
6689
- margin: 5px 15px;
6690
- float: right;
6691
- }
6692
-
6693
- .select-dropdown li.optgroup {
6694
- border-top: 1px solid #eee;
6695
- }
6696
-
6697
- .select-dropdown li.optgroup.selected > span {
6698
- color: rgba(0, 0, 0, 0.7);
6699
- }
6700
-
6701
- .select-dropdown li.optgroup > span {
6702
- color: rgba(0, 0, 0, 0.4);
6703
- }
6704
-
6705
- .select-dropdown li.optgroup ~ li.optgroup-option {
6706
- padding-left: 1rem;
6707
- }
6708
-
6709
- /* File Input
6710
- ========================================================================== */
6711
- .file-field {
6712
- position: relative;
6713
- }
6714
-
6715
- .file-field .file-path-wrapper {
6716
- overflow: hidden;
6717
- padding-left: 10px;
6718
- }
6719
-
6720
- .file-field input.file-path {
6721
- width: 100%;
6722
- }
6723
-
6724
- .file-field .btn, .file-field .btn-large {
6725
- float: left;
6726
- height: 3rem;
6727
- line-height: 3rem;
6728
- }
6729
-
6730
- .file-field span {
6731
- cursor: pointer;
6732
- }
6733
-
6734
- .file-field input[type=file] {
6735
- position: absolute;
6736
- top: 0;
6737
- right: 0;
6738
- left: 0;
6739
- bottom: 0;
6740
- width: 100%;
6741
- margin: 0;
6742
- padding: 0;
6743
- font-size: 20px;
6744
- cursor: pointer;
6745
- opacity: 0;
6746
- filter: alpha(opacity=0);
6747
- }
6748
-
6749
- /* Range
6750
- ========================================================================== */
6751
- .range-field {
6752
- position: relative;
6753
- }
6754
-
6755
- input[type=range],
6756
- input[type=range] + .thumb {
6757
- cursor: pointer;
6758
- }
6759
-
6760
- input[type=range] {
6761
- position: relative;
6762
- background-color: transparent;
6763
- border: none;
6764
- outline: none;
6765
- width: 100%;
6766
- margin: 15px 0;
6767
- padding: 0;
6768
- }
6769
-
6770
- input[type=range]:focus {
6771
- outline: none;
6772
- }
6773
-
6774
- input[type=range] + .thumb {
6775
- position: absolute;
6776
- border: none;
6777
- height: 0;
6778
- width: 0;
6779
- border-radius: 50%;
6780
- background-color: #26a69a;
6781
- top: 10px;
6782
- margin-left: -6px;
6783
- -webkit-transform-origin: 50% 50%;
6784
- transform-origin: 50% 50%;
6785
- -webkit-transform: rotate(-45deg);
6786
- transform: rotate(-45deg);
6787
- }
6788
-
6789
- input[type=range] + .thumb .value {
6790
- display: block;
6791
- width: 30px;
6792
- text-align: center;
6793
- color: #26a69a;
6794
- font-size: 0;
6795
- -webkit-transform: rotate(45deg);
6796
- transform: rotate(45deg);
6797
- }
6798
-
6799
- input[type=range] + .thumb.active {
6800
- border-radius: 50% 50% 50% 0;
6801
- }
6802
-
6803
- input[type=range] + .thumb.active .value {
6804
- color: #fff;
6805
- margin-left: -1px;
6806
- margin-top: 8px;
6807
- font-size: 10px;
6808
- }
6809
-
6810
- input[type=range] {
6811
- -webkit-appearance: none;
6812
- }
6813
-
6814
- input[type=range]::-webkit-slider-runnable-track {
6815
- height: 3px;
6816
- background: #c2c0c2;
6817
- border: none;
6818
- }
6819
-
6820
- input[type=range]::-webkit-slider-thumb {
6821
- -webkit-appearance: none;
6822
- border: none;
6823
- height: 14px;
6824
- width: 14px;
6825
- border-radius: 50%;
6826
- background-color: #26a69a;
6827
- -webkit-transform-origin: 50% 50%;
6828
- transform-origin: 50% 50%;
6829
- margin: -5px 0 0 0;
6830
- transition: .3s;
6831
- }
6832
-
6833
- input[type=range]:focus::-webkit-slider-runnable-track {
6834
- background: #ccc;
6835
- }
6836
-
6837
- input[type=range] {
6838
- /* fix for FF unable to apply focus style bug */
6839
- border: 1px solid white;
6840
- /*required for proper track sizing in FF*/
6841
- }
6842
-
6843
- input[type=range]::-moz-range-track {
6844
- height: 3px;
6845
- background: #ddd;
6846
- border: none;
6847
- }
6848
-
6849
- input[type=range]::-moz-range-thumb {
6850
- border: none;
6851
- height: 14px;
6852
- width: 14px;
6853
- border-radius: 50%;
6854
- background: #26a69a;
6855
- margin-top: -5px;
6856
- }
6857
-
6858
- input[type=range]:-moz-focusring {
6859
- outline: 1px solid #fff;
6860
- outline-offset: -1px;
6861
- }
6862
-
6863
- input[type=range]:focus::-moz-range-track {
6864
- background: #ccc;
6865
- }
6866
-
6867
- input[type=range]::-ms-track {
6868
- height: 3px;
6869
- background: transparent;
6870
- border-color: transparent;
6871
- border-width: 6px 0;
6872
- /*remove default tick marks*/
6873
- color: transparent;
6874
- }
6875
-
6876
- input[type=range]::-ms-fill-lower {
6877
- background: #777;
6878
- }
6879
-
6880
- input[type=range]::-ms-fill-upper {
6881
- background: #ddd;
6882
- }
6883
-
6884
- input[type=range]::-ms-thumb {
6885
- border: none;
6886
- height: 14px;
6887
- width: 14px;
6888
- border-radius: 50%;
6889
- background: #26a69a;
6890
- }
6891
-
6892
- input[type=range]:focus::-ms-fill-lower {
6893
- background: #888;
6894
- }
6895
-
6896
- input[type=range]:focus::-ms-fill-upper {
6897
- background: #ccc;
6898
- }
6899
-
6900
- /***************
6901
- Nav List
6902
- ***************/
6903
- .table-of-contents.fixed {
6904
- position: fixed;
6905
- }
6906
-
6907
- .table-of-contents li {
6908
- padding: 2px 0;
6909
- }
6910
-
6911
- .table-of-contents a {
6912
- display: inline-block;
6913
- font-weight: 300;
6914
- color: #757575;
6915
- padding-left: 20px;
6916
- height: 1.5rem;
6917
- line-height: 1.5rem;
6918
- letter-spacing: .4;
6919
- display: inline-block;
6920
- }
6921
-
6922
- .table-of-contents a:hover {
6923
- color: #a8a8a8;
6924
- padding-left: 19px;
6925
- border-left: 1px solid #ee6e73;
6926
- }
6927
-
6928
- .table-of-contents a.active {
6929
- font-weight: 500;
6930
- padding-left: 18px;
6931
- border-left: 2px solid #ee6e73;
6932
- }
6933
-
6934
- .side-nav {
6935
- position: fixed;
6936
- width: 300px;
6937
- left: 0;
6938
- top: 0;
6939
- margin: 0;
6940
- -webkit-transform: translateX(-100%);
6941
- transform: translateX(-100%);
6942
- height: 100%;
6943
- height: calc(100% + 60px);
6944
- height: -moz-calc(100%);
6945
- padding-bottom: 60px;
6946
- background-color: #fff;
6947
- z-index: 999;
6948
- overflow-y: auto;
6949
- will-change: transform;
6950
- -webkit-backface-visibility: hidden;
6951
- backface-visibility: hidden;
6952
- -webkit-transform: translateX(-105%);
6953
- transform: translateX(-105%);
6954
- }
6955
-
6956
- .side-nav.right-aligned {
6957
- right: 0;
6958
- -webkit-transform: translateX(105%);
6959
- transform: translateX(105%);
6960
- left: auto;
6961
- -webkit-transform: translateX(100%);
6962
- transform: translateX(100%);
6963
- }
6964
-
6965
- .side-nav .collapsible {
6966
- margin: 0;
6967
- }
6968
-
6969
- .side-nav li {
6970
- float: none;
6971
- line-height: 48px;
6972
- }
6973
-
6974
- .side-nav li.active {
6975
- background-color: rgba(0, 0, 0, 0.05);
6976
- }
6977
-
6978
- .side-nav a {
6979
- color: rgba(0, 0, 0, 0.87);
6980
- display: block;
6981
- font-size: 14px;
6982
- font-weight: 500;
6983
- height: 48px;
6984
- line-height: 48px;
6985
- padding: 0 32px;
6986
- }
6987
-
6988
- .side-nav a:hover {
6989
- background-color: rgba(0, 0, 0, 0.05);
6990
- }
6991
-
6992
- .side-nav a.btn, .side-nav a.btn-large, .side-nav a.btn-large, .side-nav a.btn-flat, .side-nav a.btn-floating {
6993
- margin: 10px 15px;
6994
- }
6995
-
6996
- .side-nav a.btn, .side-nav a.btn-large, .side-nav a.btn-large, .side-nav a.btn-floating {
6997
- color: #fff;
6998
- }
6999
-
7000
- .side-nav a.btn-flat {
7001
- color: #343434;
7002
- }
7003
-
7004
- .side-nav a.btn:hover, .side-nav a.btn-large:hover, .side-nav a.btn-large:hover {
7005
- background-color: #2bbbad;
7006
- }
7007
-
7008
- .side-nav a.btn-floating:hover {
7009
- background-color: #26a69a;
7010
- }
7011
-
7012
- .side-nav li > a > i,
7013
- .side-nav li > a > [class^="mdi-"], .side-nav li > a > [class*="mdi-"],
7014
- .side-nav li > a > i.material-icons {
7015
- float: left;
7016
- height: 48px;
7017
- line-height: 48px;
7018
- margin: 0 32px 0 0;
7019
- width: 24px;
7020
- color: rgba(0, 0, 0, 0.54);
7021
- }
7022
-
7023
- .side-nav .divider {
7024
- margin: 8px 0 0 0;
7025
- }
7026
-
7027
- .side-nav .subheader {
7028
- cursor: initial;
7029
- pointer-events: none;
7030
- color: rgba(0, 0, 0, 0.54);
7031
- font-size: 14px;
7032
- font-weight: 500;
7033
- line-height: 48px;
7034
- }
7035
-
7036
- .side-nav .subheader:hover {
7037
- background-color: transparent;
7038
- }
7039
-
7040
- .side-nav .userView {
7041
- position: relative;
7042
- padding: 32px 32px 0;
7043
- margin-bottom: 8px;
7044
- }
7045
-
7046
- .side-nav .userView > a {
7047
- height: auto;
7048
- padding: 0;
7049
- }
7050
-
7051
- .side-nav .userView > a:hover {
7052
- background-color: transparent;
7053
- }
7054
-
7055
- .side-nav .userView .background {
7056
- overflow: hidden;
7057
- position: absolute;
7058
- top: 0;
7059
- right: 0;
7060
- bottom: 0;
7061
- left: 0;
7062
- z-index: -1;
7063
- }
7064
-
7065
- .side-nav .userView .circle, .side-nav .userView .name, .side-nav .userView .email {
7066
- display: block;
7067
- }
7068
-
7069
- .side-nav .userView .circle {
7070
- height: 64px;
7071
- width: 64px;
7072
- }
7073
-
7074
- .side-nav .userView .name,
7075
- .side-nav .userView .email {
7076
- font-size: 14px;
7077
- line-height: 24px;
7078
- }
7079
-
7080
- .side-nav .userView .name {
7081
- margin-top: 16px;
7082
- font-weight: 500;
7083
- }
7084
-
7085
- .side-nav .userView .email {
7086
- padding-bottom: 16px;
7087
- font-weight: 400;
7088
- }
7089
-
7090
- .drag-target {
7091
- height: 100%;
7092
- width: 10px;
7093
- position: fixed;
7094
- top: 0;
7095
- z-index: 998;
7096
- }
7097
-
7098
- .side-nav.fixed {
7099
- left: 0;
7100
- -webkit-transform: translateX(0);
7101
- transform: translateX(0);
7102
- position: fixed;
7103
- }
7104
-
7105
- .side-nav.fixed.right-aligned {
7106
- right: 0;
7107
- left: auto;
7108
- }
7109
-
7110
- @media only screen and (max-width: 992px) {
7111
- .side-nav.fixed {
7112
- -webkit-transform: translateX(-105%);
7113
- transform: translateX(-105%);
7114
- }
7115
- .side-nav.fixed.right-aligned {
7116
- -webkit-transform: translateX(105%);
7117
- transform: translateX(105%);
7118
- }
7119
- .side-nav a {
7120
- padding: 0 16px;
7121
- }
7122
- .side-nav .userView {
7123
- padding: 16px 16px 0;
7124
- }
7125
- }
7126
-
7127
- .side-nav .collapsible-body > ul:not(.collapsible) > li.active,
7128
- .side-nav.fixed .collapsible-body > ul:not(.collapsible) > li.active {
7129
- background-color: #ee6e73;
7130
- }
7131
-
7132
- .side-nav .collapsible-body > ul:not(.collapsible) > li.active a,
7133
- .side-nav.fixed .collapsible-body > ul:not(.collapsible) > li.active a {
7134
- color: #fff;
7135
- }
7136
-
7137
- #sidenav-overlay {
7138
- position: fixed;
7139
- top: 0;
7140
- left: 0;
7141
- right: 0;
7142
- height: 120vh;
7143
- background-color: rgba(0, 0, 0, 0.5);
7144
- z-index: 997;
7145
- will-change: opacity;
7146
- }
7147
-
7148
- /*
7149
- @license
7150
- Copyright (c) 2014 The Polymer Project Authors. All rights reserved.
7151
- This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
7152
- The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
7153
- The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
7154
- Code distributed by Google as part of the polymer project is also
7155
- subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
7156
- */
7157
- /**************************/
7158
- /* STYLES FOR THE SPINNER */
7159
- /**************************/
7160
- /*
7161
- * Constants:
7162
- * STROKEWIDTH = 3px
7163
- * ARCSIZE = 270 degrees (amount of circle the arc takes up)
7164
- * ARCTIME = 1333ms (time it takes to expand and contract arc)
7165
- * ARCSTARTROT = 216 degrees (how much the start location of the arc
7166
- * should rotate each time, 216 gives us a
7167
- * 5 pointed star shape (it's 360/5 * 3).
7168
- * For a 7 pointed star, we might do
7169
- * 360/7 * 3 = 154.286)
7170
- * CONTAINERWIDTH = 28px
7171
- * SHRINK_TIME = 400ms
7172
- */
7173
- .preloader-wrapper {
7174
- display: inline-block;
7175
- position: relative;
7176
- width: 48px;
7177
- height: 48px;
7178
- }
7179
-
7180
- .preloader-wrapper.small {
7181
- width: 36px;
7182
- height: 36px;
7183
- }
7184
-
7185
- .preloader-wrapper.big {
7186
- width: 64px;
7187
- height: 64px;
7188
- }
7189
-
7190
- .preloader-wrapper.active {
7191
- /* duration: 360 * ARCTIME / (ARCSTARTROT + (360-ARCSIZE)) */
7192
- -webkit-animation: container-rotate 1568ms linear infinite;
7193
- animation: container-rotate 1568ms linear infinite;
7194
- }
7195
-
7196
- @-webkit-keyframes container-rotate {
7197
- to {
7198
- -webkit-transform: rotate(360deg);
7199
- }
7200
- }
7201
-
7202
- @keyframes container-rotate {
7203
- to {
7204
- -webkit-transform: rotate(360deg);
7205
- transform: rotate(360deg);
7206
- }
7207
- }
7208
-
7209
- .spinner-layer {
7210
- position: absolute;
7211
- width: 100%;
7212
- height: 100%;
7213
- opacity: 0;
7214
- border-color: #26a69a;
7215
- }
7216
-
7217
- .spinner-blue,
7218
- .spinner-blue-only {
7219
- border-color: #4285f4;
7220
- }
7221
-
7222
- .spinner-red,
7223
- .spinner-red-only {
7224
- border-color: #db4437;
7225
- }
7226
-
7227
- .spinner-yellow,
7228
- .spinner-yellow-only {
7229
- border-color: #f4b400;
7230
- }
7231
-
7232
- .spinner-green,
7233
- .spinner-green-only {
7234
- border-color: #0f9d58;
7235
- }
7236
-
7237
- /**
7238
- * IMPORTANT NOTE ABOUT CSS ANIMATION PROPERTIES (keanulee):
7239
- *
7240
- * iOS Safari (tested on iOS 8.1) does not handle animation-delay very well - it doesn't
7241
- * guarantee that the animation will start _exactly_ after that value. So we avoid using
7242
- * animation-delay and instead set custom keyframes for each color (as redundant as it
7243
- * seems).
7244
- *
7245
- * We write out each animation in full (instead of separating animation-name,
7246
- * animation-duration, etc.) because under the polyfill, Safari does not recognize those
7247
- * specific properties properly, treats them as -webkit-animation, and overrides the
7248
- * other animation rules. See https://github.com/Polymer/platform/issues/53.
7249
- */
7250
- .active .spinner-layer.spinner-blue {
7251
- /* durations: 4 * ARCTIME */
7252
- -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;
7253
- 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;
7254
- }
7255
-
7256
- .active .spinner-layer.spinner-red {
7257
- /* durations: 4 * ARCTIME */
7258
- -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;
7259
- 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;
7260
- }
7261
-
7262
- .active .spinner-layer.spinner-yellow {
7263
- /* durations: 4 * ARCTIME */
7264
- -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;
7265
- 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;
7266
- }
7267
-
7268
- .active .spinner-layer.spinner-green {
7269
- /* durations: 4 * ARCTIME */
7270
- -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;
7271
- 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;
7272
- }
7273
-
7274
- .active .spinner-layer,
7275
- .active .spinner-layer.spinner-blue-only,
7276
- .active .spinner-layer.spinner-red-only,
7277
- .active .spinner-layer.spinner-yellow-only,
7278
- .active .spinner-layer.spinner-green-only {
7279
- /* durations: 4 * ARCTIME */
7280
- opacity: 1;
7281
- -webkit-animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;
7282
- animation: fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;
7283
- }
7284
-
7285
- @-webkit-keyframes fill-unfill-rotate {
7286
- 12.5% {
7287
- -webkit-transform: rotate(135deg);
7288
- }
7289
- /* 0.5 * ARCSIZE */
7290
- 25% {
7291
- -webkit-transform: rotate(270deg);
7292
- }
7293
- /* 1 * ARCSIZE */
7294
- 37.5% {
7295
- -webkit-transform: rotate(405deg);
7296
- }
7297
- /* 1.5 * ARCSIZE */
7298
- 50% {
7299
- -webkit-transform: rotate(540deg);
7300
- }
7301
- /* 2 * ARCSIZE */
7302
- 62.5% {
7303
- -webkit-transform: rotate(675deg);
7304
- }
7305
- /* 2.5 * ARCSIZE */
7306
- 75% {
7307
- -webkit-transform: rotate(810deg);
7308
- }
7309
- /* 3 * ARCSIZE */
7310
- 87.5% {
7311
- -webkit-transform: rotate(945deg);
7312
- }
7313
- /* 3.5 * ARCSIZE */
7314
- to {
7315
- -webkit-transform: rotate(1080deg);
7316
- }
7317
- /* 4 * ARCSIZE */
7318
- }
7319
-
7320
- @keyframes fill-unfill-rotate {
7321
- 12.5% {
7322
- -webkit-transform: rotate(135deg);
7323
- transform: rotate(135deg);
7324
- }
7325
- /* 0.5 * ARCSIZE */
7326
- 25% {
7327
- -webkit-transform: rotate(270deg);
7328
- transform: rotate(270deg);
7329
- }
7330
- /* 1 * ARCSIZE */
7331
- 37.5% {
7332
- -webkit-transform: rotate(405deg);
7333
- transform: rotate(405deg);
7334
- }
7335
- /* 1.5 * ARCSIZE */
7336
- 50% {
7337
- -webkit-transform: rotate(540deg);
7338
- transform: rotate(540deg);
7339
- }
7340
- /* 2 * ARCSIZE */
7341
- 62.5% {
7342
- -webkit-transform: rotate(675deg);
7343
- transform: rotate(675deg);
7344
- }
7345
- /* 2.5 * ARCSIZE */
7346
- 75% {
7347
- -webkit-transform: rotate(810deg);
7348
- transform: rotate(810deg);
7349
- }
7350
- /* 3 * ARCSIZE */
7351
- 87.5% {
7352
- -webkit-transform: rotate(945deg);
7353
- transform: rotate(945deg);
7354
- }
7355
- /* 3.5 * ARCSIZE */
7356
- to {
7357
- -webkit-transform: rotate(1080deg);
7358
- transform: rotate(1080deg);
7359
- }
7360
- /* 4 * ARCSIZE */
7361
- }
7362
-
7363
- @-webkit-keyframes blue-fade-in-out {
7364
- from {
7365
- opacity: 1;
7366
- }
7367
- 25% {
7368
- opacity: 1;
7369
- }
7370
- 26% {
7371
- opacity: 0;
7372
- }
7373
- 89% {
7374
- opacity: 0;
7375
- }
7376
- 90% {
7377
- opacity: 1;
7378
- }
7379
- 100% {
7380
- opacity: 1;
7381
- }
7382
- }
7383
-
7384
- @keyframes blue-fade-in-out {
7385
- from {
7386
- opacity: 1;
7387
- }
7388
- 25% {
7389
- opacity: 1;
7390
- }
7391
- 26% {
7392
- opacity: 0;
7393
- }
7394
- 89% {
7395
- opacity: 0;
7396
- }
7397
- 90% {
7398
- opacity: 1;
7399
- }
7400
- 100% {
7401
- opacity: 1;
7402
- }
7403
- }
7404
-
7405
- @-webkit-keyframes red-fade-in-out {
7406
- from {
7407
- opacity: 0;
7408
- }
7409
- 15% {
7410
- opacity: 0;
7411
- }
7412
- 25% {
7413
- opacity: 1;
7414
- }
7415
- 50% {
7416
- opacity: 1;
7417
- }
7418
- 51% {
7419
- opacity: 0;
7420
- }
7421
- }
7422
-
7423
- @keyframes red-fade-in-out {
7424
- from {
7425
- opacity: 0;
7426
- }
7427
- 15% {
7428
- opacity: 0;
7429
- }
7430
- 25% {
7431
- opacity: 1;
7432
- }
7433
- 50% {
7434
- opacity: 1;
7435
- }
7436
- 51% {
7437
- opacity: 0;
7438
- }
7439
- }
7440
-
7441
- @-webkit-keyframes yellow-fade-in-out {
7442
- from {
7443
- opacity: 0;
7444
- }
7445
- 40% {
7446
- opacity: 0;
7447
- }
7448
- 50% {
7449
- opacity: 1;
7450
- }
7451
- 75% {
7452
- opacity: 1;
7453
- }
7454
- 76% {
7455
- opacity: 0;
7456
- }
7457
- }
7458
-
7459
- @keyframes yellow-fade-in-out {
7460
- from {
7461
- opacity: 0;
7462
- }
7463
- 40% {
7464
- opacity: 0;
7465
- }
7466
- 50% {
7467
- opacity: 1;
7468
- }
7469
- 75% {
7470
- opacity: 1;
7471
- }
7472
- 76% {
7473
- opacity: 0;
7474
- }
7475
- }
7476
-
7477
- @-webkit-keyframes green-fade-in-out {
7478
- from {
7479
- opacity: 0;
7480
- }
7481
- 65% {
7482
- opacity: 0;
7483
- }
7484
- 75% {
7485
- opacity: 1;
7486
- }
7487
- 90% {
7488
- opacity: 1;
7489
- }
7490
- 100% {
7491
- opacity: 0;
7492
- }
7493
- }
7494
-
7495
- @keyframes green-fade-in-out {
7496
- from {
7497
- opacity: 0;
7498
- }
7499
- 65% {
7500
- opacity: 0;
7501
- }
7502
- 75% {
7503
- opacity: 1;
7504
- }
7505
- 90% {
7506
- opacity: 1;
7507
- }
7508
- 100% {
7509
- opacity: 0;
7510
- }
7511
- }
7512
-
7513
- /**
7514
- * Patch the gap that appear between the two adjacent div.circle-clipper while the
7515
- * spinner is rotating (appears on Chrome 38, Safari 7.1, and IE 11).
7516
- */
7517
- .gap-patch {
7518
- position: absolute;
7519
- top: 0;
7520
- left: 45%;
7521
- width: 10%;
7522
- height: 100%;
7523
- overflow: hidden;
7524
- border-color: inherit;
7525
- }
7526
-
7527
- .gap-patch .circle {
7528
- width: 1000%;
7529
- left: -450%;
7530
- }
7531
-
7532
- .circle-clipper {
7533
- display: inline-block;
7534
- position: relative;
7535
- width: 50%;
7536
- height: 100%;
7537
- overflow: hidden;
7538
- border-color: inherit;
7539
- }
7540
-
7541
- .circle-clipper .circle {
7542
- width: 200%;
7543
- height: 100%;
7544
- border-width: 3px;
7545
- /* STROKEWIDTH */
7546
- border-style: solid;
7547
- border-color: inherit;
7548
- border-bottom-color: transparent !important;
7549
- border-radius: 50%;
7550
- -webkit-animation: none;
7551
- animation: none;
7552
- position: absolute;
7553
- top: 0;
7554
- right: 0;
7555
- bottom: 0;
7556
- }
7557
-
7558
- .circle-clipper.left .circle {
7559
- left: 0;
7560
- border-right-color: transparent !important;
7561
- -webkit-transform: rotate(129deg);
7562
- transform: rotate(129deg);
7563
- }
7564
-
7565
- .circle-clipper.right .circle {
7566
- left: -100%;
7567
- border-left-color: transparent !important;
7568
- -webkit-transform: rotate(-129deg);
7569
- transform: rotate(-129deg);
7570
- }
7571
-
7572
- .active .circle-clipper.left .circle {
7573
- /* duration: ARCTIME */
7574
- -webkit-animation: left-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;
7575
- animation: left-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;
7576
- }
7577
-
7578
- .active .circle-clipper.right .circle {
7579
- /* duration: ARCTIME */
7580
- -webkit-animation: right-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;
7581
- animation: right-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;
7582
- }
7583
-
7584
- @-webkit-keyframes left-spin {
7585
- from {
7586
- -webkit-transform: rotate(130deg);
7587
- }
7588
- 50% {
7589
- -webkit-transform: rotate(-5deg);
7590
- }
7591
- to {
7592
- -webkit-transform: rotate(130deg);
7593
- }
7594
- }
7595
-
7596
- @keyframes left-spin {
7597
- from {
7598
- -webkit-transform: rotate(130deg);
7599
- transform: rotate(130deg);
7600
- }
7601
- 50% {
7602
- -webkit-transform: rotate(-5deg);
7603
- transform: rotate(-5deg);
7604
- }
7605
- to {
7606
- -webkit-transform: rotate(130deg);
7607
- transform: rotate(130deg);
7608
- }
7609
- }
7610
-
7611
- @-webkit-keyframes right-spin {
7612
- from {
7613
- -webkit-transform: rotate(-130deg);
7614
- }
7615
- 50% {
7616
- -webkit-transform: rotate(5deg);
7617
- }
7618
- to {
7619
- -webkit-transform: rotate(-130deg);
7620
- }
7621
- }
7622
-
7623
- @keyframes right-spin {
7624
- from {
7625
- -webkit-transform: rotate(-130deg);
7626
- transform: rotate(-130deg);
7627
- }
7628
- 50% {
7629
- -webkit-transform: rotate(5deg);
7630
- transform: rotate(5deg);
7631
- }
7632
- to {
7633
- -webkit-transform: rotate(-130deg);
7634
- transform: rotate(-130deg);
7635
- }
7636
- }
7637
-
7638
- #spinnerContainer.cooldown {
7639
- /* duration: SHRINK_TIME */
7640
- -webkit-animation: container-rotate 1568ms linear infinite, fade-out 400ms cubic-bezier(0.4, 0, 0.2, 1);
7641
- animation: container-rotate 1568ms linear infinite, fade-out 400ms cubic-bezier(0.4, 0, 0.2, 1);
7642
- }
7643
-
7644
- @-webkit-keyframes fade-out {
7645
- from {
7646
- opacity: 1;
7647
- }
7648
- to {
7649
- opacity: 0;
7650
- }
7651
- }
7652
-
7653
- @keyframes fade-out {
7654
- from {
7655
- opacity: 1;
7656
- }
7657
- to {
7658
- opacity: 0;
7659
- }
7660
- }
7661
-
7662
- .slider {
7663
- position: relative;
7664
- height: 400px;
7665
- width: 100%;
7666
- }
7667
-
7668
- .slider.fullscreen {
7669
- height: 100%;
7670
- width: 100%;
7671
- position: absolute;
7672
- top: 0;
7673
- left: 0;
7674
- right: 0;
7675
- bottom: 0;
7676
- }
7677
-
7678
- .slider.fullscreen ul.slides {
7679
- height: 100%;
7680
- }
7681
-
7682
- .slider.fullscreen ul.indicators {
7683
- z-index: 2;
7684
- bottom: 30px;
7685
- }
7686
-
7687
- .slider .slides {
7688
- background-color: #9e9e9e;
7689
- margin: 0;
7690
- height: 400px;
7691
- }
7692
-
7693
- .slider .slides li {
7694
- opacity: 0;
7695
- position: absolute;
7696
- top: 0;
7697
- left: 0;
7698
- z-index: 1;
7699
- width: 100%;
7700
- height: inherit;
7701
- overflow: hidden;
7702
- }
7703
-
7704
- .slider .slides li img {
7705
- height: 100%;
7706
- width: 100%;
7707
- background-size: cover;
7708
- background-position: center;
7709
- }
7710
-
7711
- .slider .slides li .caption {
7712
- color: #fff;
7713
- position: absolute;
7714
- top: 15%;
7715
- left: 15%;
7716
- width: 70%;
7717
- opacity: 0;
7718
- }
7719
-
7720
- .slider .slides li .caption p {
7721
- color: #e0e0e0;
7722
- }
7723
-
7724
- .slider .slides li.active {
7725
- z-index: 2;
7726
- }
7727
-
7728
- .slider .indicators {
7729
- position: absolute;
7730
- text-align: center;
7731
- left: 0;
7732
- right: 0;
7733
- bottom: 0;
7734
- margin: 0;
7735
- }
7736
-
7737
- .slider .indicators .indicator-item {
7738
- display: inline-block;
7739
- position: relative;
7740
- cursor: pointer;
7741
- height: 16px;
7742
- width: 16px;
7743
- margin: 0 12px;
7744
- background-color: #e0e0e0;
7745
- transition: background-color .3s;
7746
- border-radius: 50%;
7747
- }
7748
-
7749
- .slider .indicators .indicator-item.active {
7750
- background-color: #4CAF50;
7751
- }
7752
-
7753
- .carousel {
7754
- overflow: hidden;
7755
- position: relative;
7756
- width: 100%;
7757
- height: 400px;
7758
- -webkit-perspective: 500px;
7759
- perspective: 500px;
7760
- -webkit-transform-style: preserve-3d;
7761
- transform-style: preserve-3d;
7762
- -webkit-transform-origin: 0% 50%;
7763
- transform-origin: 0% 50%;
7764
- }
7765
-
7766
- .carousel.carousel-slider {
7767
- top: 0;
7768
- left: 0;
7769
- height: 0;
7770
- }
7771
-
7772
- .carousel.carousel-slider .carousel-fixed-item {
7773
- position: absolute;
7774
- left: 0;
7775
- right: 0;
7776
- bottom: 20px;
7777
- z-index: 1;
7778
- }
7779
-
7780
- .carousel.carousel-slider .carousel-fixed-item.with-indicators {
7781
- bottom: 68px;
7782
- }
7783
-
7784
- .carousel.carousel-slider .carousel-item {
7785
- width: 100%;
7786
- height: 100%;
7787
- min-height: 400px;
7788
- position: absolute;
7789
- top: 0;
7790
- left: 0;
7791
- }
7792
-
7793
- .carousel.carousel-slider .carousel-item h2 {
7794
- font-size: 24px;
7795
- font-weight: 500;
7796
- line-height: 32px;
7797
- }
7798
-
7799
- .carousel.carousel-slider .carousel-item p {
7800
- font-size: 15px;
7801
- }
7802
-
7803
- .carousel .carousel-item {
7804
- display: none;
7805
- width: 200px;
7806
- height: 200px;
7807
- position: absolute;
7808
- top: 0;
7809
- left: 0;
7810
- }
7811
-
7812
- .carousel .carousel-item img {
7813
- width: 100%;
7814
- }
7815
-
7816
- .carousel .indicators {
7817
- position: absolute;
7818
- text-align: center;
7819
- left: 0;
7820
- right: 0;
7821
- bottom: 0;
7822
- margin: 0;
7823
- }
7824
-
7825
- .carousel .indicators .indicator-item {
7826
- display: inline-block;
7827
- position: relative;
7828
- cursor: pointer;
7829
- height: 8px;
7830
- width: 8px;
7831
- margin: 24px 4px;
7832
- background-color: rgba(255, 255, 255, 0.5);
7833
- transition: background-color .3s;
7834
- border-radius: 50%;
7835
- }
7836
-
7837
- .carousel .indicators .indicator-item.active {
7838
- background-color: #fff;
7839
- }
7840
-
7841
- /* ==========================================================================
7842
- $BASE-PICKER
7843
- ========================================================================== */
7844
- /**
7845
- * Note: the root picker element should *NOT* be styled more than what's here.
7846
- */
7847
- .picker {
7848
- font-size: 16px;
7849
- text-align: left;
7850
- line-height: 1.2;
7851
- color: #000000;
7852
- position: absolute;
7853
- z-index: 10000;
7854
- -webkit-user-select: none;
7855
- -moz-user-select: none;
7856
- -ms-user-select: none;
7857
- user-select: none;
7858
- }
7859
-
7860
- /**
7861
- * The picker input element.
7862
- */
7863
- .picker__input {
7864
- cursor: default;
7865
- }
7866
-
7867
- /**
7868
- * When the picker is opened, the input element is "activated".
7869
- */
7870
- .picker__input.picker__input--active {
7871
- border-color: #0089ec;
7872
- }
7873
-
7874
- /**
7875
- * The holder is the only "scrollable" top-level container element.
7876
- */
7877
- .picker__holder {
7878
- width: 100%;
7879
- overflow-y: auto;
7880
- -webkit-overflow-scrolling: touch;
7881
- }
7882
-
7883
- /*!
7884
- * Default mobile-first, responsive styling for pickadate.js
7885
- * Demo: http://amsul.github.io/pickadate.js
7886
- */
7887
- /**
7888
- * Note: the root picker element should *NOT* be styled more than what's here.
7889
- */
7890
- /**
7891
- * Make the holder and frame fullscreen.
7892
- */
7893
- .picker__holder,
7894
- .picker__frame {
7895
- bottom: 0;
7896
- left: 0;
7897
- right: 0;
7898
- top: 100%;
7899
- }
7900
-
7901
- /**
7902
- * The holder should overlay the entire screen.
7903
- */
7904
- .picker__holder {
7905
- position: fixed;
7906
- transition: background 0.15s ease-out, top 0s 0.15s;
7907
- -webkit-backface-visibility: hidden;
7908
- }
7909
-
7910
- /**
7911
- * The frame that bounds the box contents of the picker.
7912
- */
7913
- .picker__frame {
7914
- position: absolute;
7915
- margin: 0 auto;
7916
- min-width: 256px;
7917
- width: 300px;
7918
- max-height: 350px;
7919
- -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
7920
- filter: alpha(opacity=0);
7921
- -moz-opacity: 0;
7922
- opacity: 0;
7923
- transition: all 0.15s ease-out;
7924
- }
7925
-
7926
- @media (min-height: 28.875em) {
7927
- .picker__frame {
7928
- overflow: visible;
7929
- top: auto;
7930
- bottom: -100%;
7931
- max-height: 80%;
7932
- }
7933
- }
7934
-
7935
- @media (min-height: 40.125em) {
7936
- .picker__frame {
7937
- margin-bottom: 7.5%;
7938
- }
7939
- }
7940
-
7941
- /**
7942
- * The wrapper sets the stage to vertically align the box contents.
7943
- */
7944
- .picker__wrap {
7945
- display: table;
7946
- width: 100%;
7947
- height: 100%;
7948
- }
7949
-
7950
- @media (min-height: 28.875em) {
7951
- .picker__wrap {
7952
- display: block;
7953
- }
7954
- }
7955
-
7956
- /**
7957
- * The box contains all the picker contents.
7958
- */
7959
- .picker__box {
7960
- background: #ffffff;
7961
- display: table-cell;
7962
- vertical-align: middle;
7963
- }
7964
-
7965
- @media (min-height: 28.875em) {
7966
- .picker__box {
7967
- display: block;
7968
- border: 1px solid #777777;
7969
- border-top-color: #898989;
7970
- border-bottom-width: 0;
7971
- border-radius: 5px 5px 0 0;
7972
- box-shadow: 0 12px 36px 16px rgba(0, 0, 0, 0.24);
7973
- }
7974
- }
7975
-
7976
- /**
7977
- * When the picker opens...
7978
- */
7979
- .picker--opened .picker__holder {
7980
- top: 0;
7981
- background: transparent;
7982
- -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#1E000000,endColorstr=#1E000000)";
7983
- zoom: 1;
7984
- background: rgba(0, 0, 0, 0.32);
7985
- transition: background 0.15s ease-out;
7986
- }
7987
-
7988
- .picker--opened .picker__frame {
7989
- top: 0;
7990
- -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
7991
- filter: alpha(opacity=100);
7992
- -moz-opacity: 1;
7993
- opacity: 1;
7994
- }
7995
-
7996
- @media (min-height: 35.875em) {
7997
- .picker--opened .picker__frame {
7998
- top: 10%;
7999
- bottom: auto;
8000
- }
8001
- }
8002
-
8003
- /**
8004
- * For `large` screens, transform into an inline picker.
8005
- */
8006
- /* ==========================================================================
8007
- CUSTOM MATERIALIZE STYLES
8008
- ========================================================================== */
8009
- .picker__input.picker__input--active {
8010
- border-color: #E3F2FD;
8011
- }
8012
-
8013
- .picker__frame {
8014
- margin: 0 auto;
8015
- max-width: 325px;
8016
- }
8017
-
8018
- @media (min-height: 38.875em) {
8019
- .picker--opened .picker__frame {
8020
- top: 10%;
8021
- bottom: auto;
8022
- }
8023
- }
8024
-
8025
- /* ==========================================================================
8026
- $BASE-DATE-PICKER
8027
- ========================================================================== */
8028
- /**
8029
- * The picker box.
8030
- */
8031
- .picker__box {
8032
- padding: 0 1em;
8033
- }
8034
-
8035
- /**
8036
- * The header containing the month and year stuff.
8037
- */
8038
- .picker__header {
8039
- text-align: center;
8040
- position: relative;
8041
- margin-top: .75em;
8042
- }
8043
-
8044
- /**
8045
- * The month and year labels.
8046
- */
8047
- .picker__month,
8048
- .picker__year {
8049
- display: inline-block;
8050
- margin-left: .25em;
8051
- margin-right: .25em;
8052
- }
8053
-
8054
- /**
8055
- * The month and year selectors.
8056
- */
8057
- .picker__select--month,
8058
- .picker__select--year {
8059
- height: 2em;
8060
- padding: 0;
8061
- margin-left: .25em;
8062
- margin-right: .25em;
8063
- }
8064
-
8065
- .picker__select--month.browser-default {
8066
- display: inline;
8067
- background-color: #FFFFFF;
8068
- width: 40%;
8069
- }
8070
-
8071
- .picker__select--year.browser-default {
8072
- display: inline;
8073
- background-color: #FFFFFF;
8074
- width: 26%;
8075
- }
8076
-
8077
- .picker__select--month:focus,
8078
- .picker__select--year:focus {
8079
- border-color: rgba(0, 0, 0, 0.05);
8080
- }
8081
-
8082
- /**
8083
- * The month navigation buttons.
8084
- */
8085
- .picker__nav--prev,
8086
- .picker__nav--next {
8087
- position: absolute;
8088
- padding: .5em 1.25em;
8089
- width: 1em;
8090
- height: 1em;
8091
- box-sizing: content-box;
8092
- top: -0.25em;
8093
- }
8094
-
8095
- .picker__nav--prev {
8096
- left: -1em;
8097
- padding-right: 1.25em;
8098
- }
8099
-
8100
- .picker__nav--next {
8101
- right: -1em;
8102
- padding-left: 1.25em;
8103
- }
8104
-
8105
- .picker__nav--disabled,
8106
- .picker__nav--disabled:hover,
8107
- .picker__nav--disabled:before,
8108
- .picker__nav--disabled:before:hover {
8109
- cursor: default;
8110
- background: none;
8111
- border-right-color: #f5f5f5;
8112
- border-left-color: #f5f5f5;
8113
- }
8114
-
8115
- /**
8116
- * The calendar table of dates
8117
- */
8118
- .picker__table {
8119
- text-align: center;
8120
- border-collapse: collapse;
8121
- border-spacing: 0;
8122
- table-layout: fixed;
8123
- font-size: 1rem;
8124
- width: 100%;
8125
- margin-top: .75em;
8126
- margin-bottom: .5em;
8127
- }
8128
-
8129
- .picker__table th, .picker__table td {
8130
- text-align: center;
8131
- }
8132
-
8133
- .picker__table td {
8134
- margin: 0;
8135
- padding: 0;
8136
- }
8137
-
8138
- /**
8139
- * The weekday labels
8140
- */
8141
- .picker__weekday {
8142
- width: 14.285714286%;
8143
- font-size: .75em;
8144
- padding-bottom: .25em;
8145
- color: #999999;
8146
- font-weight: 500;
8147
- /* Increase the spacing a tad */
8148
- }
8149
-
8150
- @media (min-height: 33.875em) {
8151
- .picker__weekday {
8152
- padding-bottom: .5em;
8153
- }
8154
- }
8155
-
8156
- /**
8157
- * The days on the calendar
8158
- */
8159
- .picker__day--today {
8160
- position: relative;
8161
- color: #595959;
8162
- letter-spacing: -.3;
8163
- padding: .75rem 0;
8164
- font-weight: 400;
8165
- border: 1px solid transparent;
8166
- }
8167
-
8168
- .picker__day--disabled:before {
8169
- border-top-color: #aaaaaa;
8170
- }
8171
-
8172
- .picker__day--infocus:hover {
8173
- cursor: pointer;
8174
- color: #000;
8175
- font-weight: 500;
8176
- }
8177
-
8178
- .picker__day--outfocus {
8179
- display: none;
8180
- padding: .75rem 0;
8181
- color: #fff;
8182
- }
8183
-
8184
- .picker__day--outfocus:hover {
8185
- cursor: pointer;
8186
- color: #dddddd;
8187
- font-weight: 500;
8188
- }
8189
-
8190
- .picker__day--highlighted:hover,
8191
- .picker--focused .picker__day--highlighted {
8192
- cursor: pointer;
8193
- }
8194
-
8195
- .picker__day--selected,
8196
- .picker__day--selected:hover,
8197
- .picker--focused .picker__day--selected {
8198
- border-radius: 50%;
8199
- -webkit-transform: scale(0.75);
8200
- transform: scale(0.75);
8201
- background: #0089ec;
8202
- color: #ffffff;
8203
- }
8204
-
8205
- .picker__day--disabled,
8206
- .picker__day--disabled:hover,
8207
- .picker--focused .picker__day--disabled {
8208
- background: #f5f5f5;
8209
- border-color: #f5f5f5;
8210
- color: #dddddd;
8211
- cursor: default;
8212
- }
8213
-
8214
- .picker__day--highlighted.picker__day--disabled,
8215
- .picker__day--highlighted.picker__day--disabled:hover {
8216
- background: #bbbbbb;
8217
- }
8218
-
8219
- /**
8220
- * The footer containing the "today", "clear", and "close" buttons.
8221
- */
8222
- .picker__footer {
8223
- text-align: center;
8224
- display: -webkit-flex;
8225
- display: -ms-flexbox;
8226
- display: flex;
8227
- -webkit-align-items: center;
8228
- -ms-flex-align: center;
8229
- align-items: center;
8230
- -webkit-justify-content: space-between;
8231
- -ms-flex-pack: justify;
8232
- justify-content: space-between;
8233
- }
8234
-
8235
- .picker__button--today,
8236
- .picker__button--clear,
8237
- .picker__button--close {
8238
- border: 1px solid #ffffff;
8239
- background: #ffffff;
8240
- font-size: .8em;
8241
- padding: .66em 0;
8242
- font-weight: bold;
8243
- width: 33%;
8244
- display: inline-block;
8245
- vertical-align: bottom;
8246
- }
8247
-
8248
- .picker__button--today:hover,
8249
- .picker__button--clear:hover,
8250
- .picker__button--close:hover {
8251
- cursor: pointer;
8252
- color: #000000;
8253
- background: #b1dcfb;
8254
- border-bottom-color: #b1dcfb;
8255
- }
8256
-
8257
- .picker__button--today:focus,
8258
- .picker__button--clear:focus,
8259
- .picker__button--close:focus {
8260
- background: #b1dcfb;
8261
- border-color: rgba(0, 0, 0, 0.05);
8262
- outline: none;
8263
- }
8264
-
8265
- .picker__button--today:before,
8266
- .picker__button--clear:before,
8267
- .picker__button--close:before {
8268
- position: relative;
8269
- display: inline-block;
8270
- height: 0;
8271
- }
8272
-
8273
- .picker__button--today:before,
8274
- .picker__button--clear:before {
8275
- content: " ";
8276
- margin-right: .45em;
8277
- }
8278
-
8279
- .picker__button--today:before {
8280
- top: -0.05em;
8281
- width: 0;
8282
- border-top: 0.66em solid #0059bc;
8283
- border-left: .66em solid transparent;
8284
- }
8285
-
8286
- .picker__button--clear:before {
8287
- top: -0.25em;
8288
- width: .66em;
8289
- border-top: 3px solid #ee2200;
8290
- }
8291
-
8292
- .picker__button--close:before {
8293
- content: "\D7";
8294
- top: -0.1em;
8295
- vertical-align: top;
8296
- font-size: 1.1em;
8297
- margin-right: .35em;
8298
- color: #777777;
8299
- }
8300
-
8301
- .picker__button--today[disabled],
8302
- .picker__button--today[disabled]:hover {
8303
- background: #f5f5f5;
8304
- border-color: #f5f5f5;
8305
- color: #dddddd;
8306
- cursor: default;
8307
- }
8308
-
8309
- .picker__button--today[disabled]:before {
8310
- border-top-color: #aaaaaa;
8311
- }
8312
-
8313
- /* ==========================================================================
8314
- CUSTOM MATERIALIZE STYLES
8315
- ========================================================================== */
8316
- .picker__box {
8317
- border-radius: 2px;
8318
- overflow: hidden;
8319
- }
8320
-
8321
- .picker__date-display {
8322
- text-align: center;
8323
- background-color: #26a69a;
8324
- color: #fff;
8325
- padding-bottom: 15px;
8326
- font-weight: 300;
8327
- }
8328
-
8329
- .picker__nav--prev:hover,
8330
- .picker__nav--next:hover {
8331
- cursor: pointer;
8332
- color: #000000;
8333
- background: #a1ded8;
8334
- }
8335
-
8336
- .picker__weekday-display {
8337
- background-color: #1f897f;
8338
- padding: 10px;
8339
- font-weight: 200;
8340
- letter-spacing: .5;
8341
- font-size: 1rem;
8342
- margin-bottom: 15px;
8343
- }
8344
-
8345
- .picker__month-display {
8346
- text-transform: uppercase;
8347
- font-size: 2rem;
8348
- }
8349
-
8350
- .picker__day-display {
8351
- font-size: 4.5rem;
8352
- font-weight: 400;
8353
- }
8354
-
8355
- .picker__year-display {
8356
- font-size: 1.8rem;
8357
- color: rgba(255, 255, 255, 0.4);
8358
- }
8359
-
8360
- .picker__box {
8361
- padding: 0;
8362
- }
8363
-
8364
- .picker__calendar-container {
8365
- padding: 0 1rem;
8366
- }
8367
-
8368
- .picker__calendar-container thead {
8369
- border: none;
8370
- }
8371
-
8372
- .picker__table {
8373
- margin-top: 0;
8374
- margin-bottom: .5em;
8375
- }
8376
-
8377
- .picker__day--infocus {
8378
- color: #595959;
8379
- letter-spacing: -.3;
8380
- padding: .75rem 0;
8381
- font-weight: 400;
8382
- border: 1px solid transparent;
8383
- }
8384
-
8385
- .picker__day.picker__day--today {
8386
- color: #26a69a;
8387
- }
8388
-
8389
- .picker__day.picker__day--today.picker__day--selected {
8390
- color: #fff;
8391
- }
8392
-
8393
- .picker__weekday {
8394
- font-size: .9rem;
8395
- }
8396
-
8397
- .picker__day--selected,
8398
- .picker__day--selected:hover,
8399
- .picker--focused .picker__day--selected {
8400
- border-radius: 50%;
8401
- -webkit-transform: scale(0.9);
8402
- transform: scale(0.9);
8403
- background-color: #26a69a;
8404
- color: #ffffff;
8405
- }
8406
-
8407
- .picker__day--selected.picker__day--outfocus,
8408
- .picker__day--selected:hover.picker__day--outfocus,
8409
- .picker--focused .picker__day--selected.picker__day--outfocus {
8410
- background-color: #a1ded8;
8411
- }
8412
-
8413
- .picker__footer {
8414
- text-align: right;
8415
- padding: 5px 10px;
8416
- }
8417
-
8418
- .picker__close, .picker__today {
8419
- font-size: 1.1rem;
8420
- padding: 0 1rem;
8421
- color: #26a69a;
8422
- }
8423
-
8424
- .picker__nav--prev:before,
8425
- .picker__nav--next:before {
8426
- content: " ";
8427
- border-top: .5em solid transparent;
8428
- border-bottom: .5em solid transparent;
8429
- border-right: 0.75em solid #676767;
8430
- width: 0;
8431
- height: 0;
8432
- display: block;
8433
- margin: 0 auto;
8434
- }
8435
-
8436
- .picker__nav--next:before {
8437
- border-right: 0;
8438
- border-left: 0.75em solid #676767;
8439
- }
8440
-
8441
- button.picker__today:focus, button.picker__clear:focus, button.picker__close:focus {
8442
- background-color: #a1ded8;
8443
- }
8444
-
8445
- /* ==========================================================================
8446
- $BASE-TIME-PICKER
8447
- ========================================================================== */
8448
- /**
8449
- * The list of times.
8450
- */
8451
- .picker__list {
8452
- list-style: none;
8453
- padding: 0.75em 0 4.2em;
8454
- margin: 0;
8455
- }
8456
-
8457
- /**
8458
- * The times on the clock.
8459
- */
8460
- .picker__list-item {
8461
- border-bottom: 1px solid #dddddd;
8462
- border-top: 1px solid #dddddd;
8463
- margin-bottom: -1px;
8464
- position: relative;
8465
- background: #ffffff;
8466
- padding: .75em 1.25em;
8467
- }
8468
-
8469
- @media (min-height: 46.75em) {
8470
- .picker__list-item {
8471
- padding: .5em 1em;
8472
- }
8473
- }
8474
-
8475
- /* Hovered time */
8476
- .picker__list-item:hover {
8477
- cursor: pointer;
8478
- color: #000000;
8479
- background: #b1dcfb;
8480
- border-color: #0089ec;
8481
- z-index: 10;
8482
- }
8483
-
8484
- /* Highlighted and hovered/focused time */
8485
- .picker__list-item--highlighted {
8486
- border-color: #0089ec;
8487
- z-index: 10;
8488
- }
8489
-
8490
- .picker__list-item--highlighted:hover,
8491
- .picker--focused .picker__list-item--highlighted {
8492
- cursor: pointer;
8493
- color: #000000;
8494
- background: #b1dcfb;
8495
- }
8496
-
8497
- /* Selected and hovered/focused time */
8498
- .picker__list-item--selected,
8499
- .picker__list-item--selected:hover,
8500
- .picker--focused .picker__list-item--selected {
8501
- background: #0089ec;
8502
- color: #ffffff;
8503
- z-index: 10;
8504
- }
8505
-
8506
- /* Disabled time */
8507
- .picker__list-item--disabled,
8508
- .picker__list-item--disabled:hover,
8509
- .picker--focused .picker__list-item--disabled {
8510
- background: #f5f5f5;
8511
- border-color: #f5f5f5;
8512
- color: #dddddd;
8513
- cursor: default;
8514
- border-color: #dddddd;
8515
- z-index: auto;
8516
- }
8517
-
8518
- /**
8519
- * The clear button
8520
- */
8521
- .picker--time .picker__button--clear {
8522
- display: block;
8523
- width: 80%;
8524
- margin: 1em auto 0;
8525
- padding: 1em 1.25em;
8526
- background: none;
8527
- border: 0;
8528
- font-weight: 500;
8529
- font-size: .67em;
8530
- text-align: center;
8531
- text-transform: uppercase;
8532
- color: #666;
8533
- }
8534
-
8535
- .picker--time .picker__button--clear:hover,
8536
- .picker--time .picker__button--clear:focus {
8537
- color: #000000;
8538
- background: #b1dcfb;
8539
- background: #ee2200;
8540
- border-color: #ee2200;
8541
- cursor: pointer;
8542
- color: #ffffff;
8543
- outline: none;
8544
- }
8545
-
8546
- .picker--time .picker__button--clear:before {
8547
- top: -0.25em;
8548
- color: #666;
8549
- font-size: 1.25em;
8550
- font-weight: bold;
8551
- }
8552
-
8553
- .picker--time .picker__button--clear:hover:before,
8554
- .picker--time .picker__button--clear:focus:before {
8555
- color: #ffffff;
8556
- }
8557
-
8558
- /* ==========================================================================
8559
- $DEFAULT-TIME-PICKER
8560
- ========================================================================== */
8561
- /**
8562
- * The frame the bounds the time picker.
8563
- */
8564
- .picker--time .picker__frame {
8565
- min-width: 256px;
8566
- max-width: 320px;
8567
- }
8568
-
8569
- /**
8570
- * The picker box.
8571
- */
8572
- .picker--time .picker__box {
8573
- font-size: 1em;
8574
- background: #f2f2f2;
8575
- padding: 0;
8576
- }
8577
-
8578
- @media (min-height: 40.125em) {
8579
- .picker--time .picker__box {
8580
- margin-bottom: 5em;
8581
- }
8582
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
trunk/admin/css/materialize.min.css DELETED
@@ -1,16 +0,0 @@
1
- /*!
2
- * Materialize v0.98.0 (http://materializecss.com)
3
- * Copyright 2014-2015 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:transparent !important}.transparent-text{color:transparent !important}/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}h1{font-size:2em;margin:0.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace, monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0}input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{height:auto}input[type="search"]{-webkit-appearance:textfield;box-sizing:content-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:0.35em 0.625em 0.75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:bold}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}html{box-sizing:border-box}*,*:before,*:after{box-sizing:inherit}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-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.valign-wrapper .valign{display:block}.clearfix{clear:both}.z-depth-0{box-shadow:none !important}.z-depth-1,nav,.card-panel,.card,.toast,.btn,.btn-large,.btn-floating,.dropdown-content,.collapsible,.side-nav{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)}.z-depth-1-half,.btn:hover,.btn-large:hover,.btn-floating:hover{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{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{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)}.z-depth-4,.modal{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)}.z-depth-5{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)}.hoverable{transition:box-shadow .25s;box-shadow:0}.hoverable:hover{transition:box-shadow .25s;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{position:absolute;top:0;left:0;right:0;bottom:0;z-index:-1}.parallax img{display:none;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: 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}}footer.page-footer{padding-top:20px;background-color:#ee6e73}footer.page-footer .footer-copyright{overflow:hidden;min-height:50px;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center;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}table.bordered>thead>tr,table.bordered>tbody>tr{border-bottom:1px solid #d0d0d0}table.striped>tbody>tr:nth-child(odd){background-color:#f2f2f2}table.striped>tbody>tr>td{border-radius:0}table.highlight>tbody>tr{transition:background-color .25s ease}table.highlight>tbody>tr:hover{background-color:#f2f2f2}table.centered thead tr th,table.centered tbody tr td{text-align:center}thead{border-bottom:1px solid #d0d0d0}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{padding:0 10px}table.responsive-table thead{border:0;border-right:1px solid #d0d0d0}table.responsive-table.bordered th{border-bottom:0;border-left:0}table.responsive-table.bordered td{border-left:0;border-right:0;border-bottom:0}table.responsive-table.bordered tr{border:0}table.responsive-table.bordered tbody tr{border-right:1px solid #d0d0d0}}.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 .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;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;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-touch-callout:none;-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;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}.collection-item span.badge{margin-top:calc(.75rem - 11px)}.collapsible span.badge{margin-top:calc(1.5rem - 11px)}.side-nav span.badge{margin-top:calc(24px - 11px)}.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%}}.container .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;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%}}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.button-collapse{display:none}}nav .button-collapse{float:left;position:relative;z-index:1;height:56px;margin:0 18px}nav .button-collapse i{height:56px;line-height:56px}nav .brand-logo{position:absolute;color:#fff;display:inline-block;font-size:2.1rem;padding:0;white-space:nowrap}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{transition:background-color .3s;float:left;padding:0}nav ul li.active{background-color:rgba(0,0,0,0.1)}nav ul a{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-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-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;box-shadow:none}nav .input-field label{top:0;left:0}nav .input-field label i{color:rgba(255,255,255,0.7);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.button-collapse,nav a.button-collapse i{height:64px;line-height:64px}.navbar-fixed{height:64px}}@font-face{font-family:"Roboto";src:local(Roboto Thin),url("../fonts/roboto/Roboto-Thin.eot");src:url("../fonts/roboto/Roboto-Thin.eot?#iefix") format("embedded-opentype"),url("../fonts/roboto/Roboto-Thin.woff2") format("woff2"),url("../fonts/roboto/Roboto-Thin.woff") format("woff"),url("../fonts/roboto/Roboto-Thin.ttf") format("truetype");font-weight:200}@font-face{font-family:"Roboto";src:local(Roboto Light),url("../fonts/roboto/Roboto-Light.eot");src:url("../fonts/roboto/Roboto-Light.eot?#iefix") format("embedded-opentype"),url("../fonts/roboto/Roboto-Light.woff2") format("woff2"),url("../fonts/roboto/Roboto-Light.woff") format("woff"),url("../fonts/roboto/Roboto-Light.ttf") format("truetype");font-weight:300}@font-face{font-family:"Roboto";src:local(Roboto Regular),url("../fonts/roboto/Roboto-Regular.eot");src:url("../fonts/roboto/Roboto-Regular.eot?#iefix") format("embedded-opentype"),url("../fonts/roboto/Roboto-Regular.woff2") format("woff2"),url("../fonts/roboto/Roboto-Regular.woff") format("woff"),url("../fonts/roboto/Roboto-Regular.ttf") format("truetype");font-weight:400}@font-face{font-family:"Roboto";src:url("../fonts/roboto/Roboto-Medium.eot");src:url("../fonts/roboto/Roboto-Medium.eot?#iefix") format("embedded-opentype"),url("../fonts/roboto/Roboto-Medium.woff2") format("woff2"),url("../fonts/roboto/Roboto-Medium.woff") format("woff"),url("../fonts/roboto/Roboto-Medium.ttf") format("truetype");font-weight:500}@font-face{font-family:"Roboto";src:url("../fonts/roboto/Roboto-Bold.eot");src:url("../fonts/roboto/Roboto-Bold.eot?#iefix") format("embedded-opentype"),url("../fonts/roboto/Roboto-Bold.woff2") format("woff2"),url("../fonts/roboto/Roboto-Bold.woff") format("woff"),url("../fonts/roboto/Roboto-Bold.ttf") format("truetype");font-weight:700} a{text-decoration:none} html{line-height:1.5;font-family:"Roboto", 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.1} 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.1rem 0 1.68rem 0} h2{font-size:3.56rem;line-height:110%;margin:1.78rem 0 1.424rem 0} h3{font-size:2.92rem;line-height:110%;margin:1.46rem 0 1.168rem 0} h4{font-size:2.28rem;line-height:110%;margin:1.14rem 0 .912rem 0} h5{font-size:1.64rem;line-height:110%;margin:.82rem 0 .656rem 0} h6{font-size:1rem;line-height:110%;margin:.5rem 0 .4rem 0} em{font-style:italic} strong{font-weight:500} small{font-size:75%} .light,footer.page-footer .footer-copyright{font-weight:300} .thin{font-weight:200} .flow-text{font-weight:300}@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{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);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{transition: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;transition: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-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-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-flex:1;-ms-flex:1;flex:1;position:relative} .card.horizontal .card-stacked .card-content{-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;color:inherit} .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{position:relative;background-color:inherit;border-top:1px solid rgba(160,160,160,0.2);padding:16px 24px} .card .card-action a:not(.btn):not(.btn-large):not(.btn-large):not(.btn-floating){color:#ffab40;margin-right:24px;transition:color .3s ease;text-transform:uppercase} .card .card-action a:not(.btn):not(.btn-large):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;clear:both;margin-top:10px;position:relative;max-width:100%;height:auto;min-height:48px;line-height:1.5em;word-break:break-all;background-color:#323232;padding:10px 25px;font-size:1.1rem;font-weight:300;color:#fff;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between} .toast .btn,.toast .btn-large,.toast .btn-flat{margin:0;margin-left:3rem} .toast.rounded{border-radius:24px}@media only screen and (max-width: 600px){.toast{width:100%;border-radius:0}}@media only screen and (min-width: 601px) and (max-width: 992px){.toast{float:left}}@media only screen and (min-width: 993px){.toast{float:right}} .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-flex;display:-ms-flexbox;display:flex} .tabs.tabs-fixed-width .tab{-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;transition:color .28s ease} .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.7);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-flex;display:-ms-flexbox;display:flex}.tabs .tab{-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} .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-flat{border:none;border-radius:2px;display:inline-block;height:36px;line-height:36px;padding:0 2rem;text-transform:uppercase;vertical-align:middle;-webkit-tap-highlight-color:transparent} .btn.disabled,.disabled.btn-large,.btn-floating.disabled,.btn-large.disabled,.btn-flat.disabled,.btn:disabled,.btn-large:disabled,.btn-floating:disabled,.btn-large:disabled,.btn-flat:disabled,.btn[disabled],[disabled].btn-large,.btn-floating[disabled],.btn-large[disabled],.btn-flat[disabled]{pointer-events:none;background-color:#DFDFDF !important;box-shadow:none;color:#9F9F9F !important;cursor:default} .btn.disabled:hover,.disabled.btn-large:hover,.btn-floating.disabled:hover,.btn-large.disabled:hover,.btn-flat.disabled:hover,.btn:disabled:hover,.btn-large:disabled:hover,.btn-floating:disabled:hover,.btn-large:disabled:hover,.btn-flat:disabled:hover,.btn[disabled]:hover,[disabled].btn-large:hover,.btn-floating[disabled]:hover,.btn-large[disabled]:hover,.btn-flat[disabled]:hover{background-color:#DFDFDF !important;color:#9F9F9F !important} .btn,.btn-large,.btn-floating,.btn-large,.btn-flat{outline:0} .btn i,.btn-large i,.btn-floating i,.btn-large i,.btn-flat i{font-size:1.3rem;line-height:inherit} .btn:focus,.btn-large:focus,.btn-floating:focus{background-color:#1d7d74} .btn,.btn-large{text-decoration:none;color:#fff;background-color:#26a69a;text-align:center;letter-spacing:.5px;transition:.2s ease-out;cursor:pointer} .btn:hover,.btn-large: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%;transition:.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} .btn-floating.btn-large i{line-height:56px} .btn-floating.halfway-fab{position:absolute;right:24px;bottom:0;-webkit-transform:translateY(50%);transform:translateY(50%)} .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:998} .fixed-action-btn.active ul{visibility:visible} .fixed-action-btn.horizontal{padding:0 0 0 15px} .fixed-action-btn.horizontal ul{text-align:right;right:64px;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);height:100%;left:auto;width:500px} .fixed-action-btn.horizontal ul li{display:inline-block;margin:15px 15px 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-flex;display:-ms-flexbox;display:flex;top:0;bottom:0} .fixed-action-btn.toolbar ul li{-webkit-flex:1;-ms-flex:1;flex:1;display:inline-block;margin:0;height:100%;transition:none} .fixed-action-btn.toolbar ul li a{display:block;overflow:hidden;position:relative;width:100%;height:100%;background-color:transparent;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{box-shadow:none;background-color:transparent;color:#343434;cursor:pointer;transition:background-color .2s} .btn-flat:focus,.btn-flat:active{background-color:transparent} .btn-flat:focus,.btn-flat:hover{background-color:rgba(0,0,0,0.1);box-shadow:none} .btn-flat:active{background-color:rgba(0,0,0,0.2)} .btn-flat.disabled{background-color:transparent !important;color:#b3b3b3 !important;cursor:default} .btn-large{height:54px;line-height:54px} .btn-large i{font-size:1.6rem} .btn-block{display:block} .dropdown-content{background-color:#fff;margin:0;display:none;min-width:100px;max-height:650px;overflow-y:auto;opacity:0;position:absolute;z-index:999;will-change:width, height} .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;text-transform:none} .dropdown-content li:hover,.dropdown-content li.active,.dropdown-content li.selected{background-color:#eee} .dropdown-content li.active.selected{background-color:#e1e1e1} .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} .input-field.col .dropdown-content [type="checkbox"]+label{top:1px;left:0;height:18px}/*!
7
- * Waves v0.6.0
8
- * http://fian.my.id/Waves
9
- *
10
- * Copyright 2014 Alfiana E. Sibuea and other contributors
11
- * Released under the MIT license
12
- * https://github.com/fians/Waves/blob/master/LICENSE
13
- */.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;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);transition:all 0.7s ease-out;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{transition:none !important}.waves-circle{-webkit-transform:translateZ(0);transform:translateZ(0);-webkit-mask-image:-webkit-radial-gradient(circle, #fff 100%, #000 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}@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%}.modal .modal-footer .btn,.modal .modal-footer .btn-large,.modal .modal-footer .btn-flat{float:right;margin:6px 0}.modal-overlay{position:fixed;z-index:999;top:-100px;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:block;cursor:pointer;min-height:3rem;line-height:3rem;padding:0 1rem;background-color:#fff;border-bottom:1px solid #ddd}.collapsible-header i{width:2rem;font-size:1.6rem;line-height:3rem;display:block;float:left;text-align:center;margin-right:1rem}.collapsible-body{display:none;border-bottom:1px solid #ddd;box-sizing:border-box;padding:2rem}.side-nav .collapsible,.side-nav.fixed .collapsible{border:none;box-shadow:none}.side-nav .collapsible li,.side-nav.fixed .collapsible li{padding:0}.side-nav .collapsible-header,.side-nav.fixed .collapsible-header{background-color:transparent;border:none;line-height:inherit;height:inherit;padding:0 16px}.side-nav .collapsible-header:hover,.side-nav.fixed .collapsible-header:hover{background-color:rgba(0,0,0,0.05)}.side-nav .collapsible-header i,.side-nav.fixed .collapsible-header i{line-height:inherit}.side-nav .collapsible-body,.side-nav.fixed .collapsible-body{border:0;background-color:#fff}.side-nav .collapsible-body li a,.side-nav.fixed .collapsible-body li a{padding:0 23.5px 0 31px}.collapsible.popout{border:none;box-shadow:none}.collapsible.popout>li{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;transition:margin 0.35s cubic-bezier(0.25, 0.46, 0.45, 0.94)}.collapsible.popout>li.active{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 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;box-shadow:none;margin:0 0 20px 0;min-height:45px;outline:none;transition:all .3s}.chips.focus{border-bottom:1px solid #26a69a;box-shadow:0 1px 0 0 #26a69a}.chips:hover{cursor:text}.chips .chip.selected{background-color:#26a69a;color:#fff}.chips .input{background:none;border:0;color:rgba(0,0,0,0.6);display:inline-block;font-size:1rem;height:3rem;line-height:32px;outline:0;margin:0;padding:0 !important;width:120px !important}.chips .input:focus{border:0 !important;box-shadow:none !important}.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;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}::-moz-placeholder{color:#d1d1d1}:-ms-input-placeholder{color:#d1d1d1}input:not([type]),input[type=text],input[type=password],input[type=email],input[type=url],input[type=time],input[type=date],input[type=datetime],input[type=datetime-local],input[type=tel],input[type=number],input[type=search],textarea.materialize-textarea{background-color:transparent;border:none;border-bottom:1px solid #9e9e9e;border-radius:0;outline:none;height:3rem;width:100%;font-size:1rem;margin:0 0 20px 0;padding:0;box-shadow:none;box-sizing:content-box;transition:all 0.3s}input:not([type]):disabled,input:not([type])[readonly="readonly"],input[type=text]:disabled,input[type=text][readonly="readonly"],input[type=password]:disabled,input[type=password][readonly="readonly"],input[type=email]:disabled,input[type=email][readonly="readonly"],input[type=url]:disabled,input[type=url][readonly="readonly"],input[type=time]:disabled,input[type=time][readonly="readonly"],input[type=date]:disabled,input[type=date][readonly="readonly"],input[type=datetime]:disabled,input[type=datetime][readonly="readonly"],input[type=datetime-local]:disabled,input[type=datetime-local][readonly="readonly"],input[type=tel]:disabled,input[type=tel][readonly="readonly"],input[type=number]:disabled,input[type=number][readonly="readonly"],input[type=search]:disabled,input[type=search][readonly="readonly"],textarea.materialize-textarea:disabled,textarea.materialize-textarea[readonly="readonly"]{color:rgba(0,0,0,0.26);border-bottom:1px dotted rgba(0,0,0,0.26)}input:not([type]):disabled+label,input:not([type])[readonly="readonly"]+label,input[type=text]:disabled+label,input[type=text][readonly="readonly"]+label,input[type=password]:disabled+label,input[type=password][readonly="readonly"]+label,input[type=email]:disabled+label,input[type=email][readonly="readonly"]+label,input[type=url]:disabled+label,input[type=url][readonly="readonly"]+label,input[type=time]:disabled+label,input[type=time][readonly="readonly"]+label,input[type=date]:disabled+label,input[type=date][readonly="readonly"]+label,input[type=datetime]:disabled+label,input[type=datetime][readonly="readonly"]+label,input[type=datetime-local]:disabled+label,input[type=datetime-local][readonly="readonly"]+label,input[type=tel]:disabled+label,input[type=tel][readonly="readonly"]+label,input[type=number]:disabled+label,input[type=number][readonly="readonly"]+label,input[type=search]:disabled+label,input[type=search][readonly="readonly"]+label,textarea.materialize-textarea:disabled+label,textarea.materialize-textarea[readonly="readonly"]+label{color:rgba(0,0,0,0.26)}input:not([type]):focus:not([readonly]),input[type=text]:focus:not([readonly]),input[type=password]:focus:not([readonly]),input[type=email]:focus:not([readonly]),input[type=url]:focus:not([readonly]),input[type=time]:focus:not([readonly]),input[type=date]:focus:not([readonly]),input[type=datetime]:focus:not([readonly]),input[type=datetime-local]:focus:not([readonly]),input[type=tel]:focus:not([readonly]),input[type=number]:focus:not([readonly]),input[type=search]:focus:not([readonly]),textarea.materialize-textarea:focus:not([readonly]){border-bottom:1px solid #26a69a;box-shadow:0 1px 0 0 #26a69a}input:not([type]):focus:not([readonly])+label,input[type=text]:focus:not([readonly])+label,input[type=password]:focus:not([readonly])+label,input[type=email]:focus:not([readonly])+label,input[type=url]:focus:not([readonly])+label,input[type=time]:focus:not([readonly])+label,input[type=date]:focus:not([readonly])+label,input[type=datetime]:focus:not([readonly])+label,input[type=datetime-local]:focus:not([readonly])+label,input[type=tel]:focus:not([readonly])+label,input[type=number]:focus:not([readonly])+label,input[type=search]:focus:not([readonly])+label,textarea.materialize-textarea:focus:not([readonly])+label{color:#26a69a}input:not([type]).valid,input:not([type]):focus.valid,input[type=text].valid,input[type=text]:focus.valid,input[type=password].valid,input[type=password]:focus.valid,input[type=email].valid,input[type=email]:focus.valid,input[type=url].valid,input[type=url]:focus.valid,input[type=time].valid,input[type=time]:focus.valid,input[type=date].valid,input[type=date]:focus.valid,input[type=datetime].valid,input[type=datetime]:focus.valid,input[type=datetime-local].valid,input[type=datetime-local]:focus.valid,input[type=tel].valid,input[type=tel]:focus.valid,input[type=number].valid,input[type=number]:focus.valid,input[type=search].valid,input[type=search]:focus.valid,textarea.materialize-textarea.valid,textarea.materialize-textarea:focus.valid{border-bottom:1px solid #4CAF50;box-shadow:0 1px 0 0 #4CAF50}input:not([type]).valid+label:after,input:not([type]):focus.valid+label:after,input[type=text].valid+label:after,input[type=text]:focus.valid+label:after,input[type=password].valid+label:after,input[type=password]:focus.valid+label:after,input[type=email].valid+label:after,input[type=email]:focus.valid+label:after,input[type=url].valid+label:after,input[type=url]:focus.valid+label:after,input[type=time].valid+label:after,input[type=time]:focus.valid+label:after,input[type=date].valid+label:after,input[type=date]:focus.valid+label:after,input[type=datetime].valid+label:after,input[type=datetime]:focus.valid+label:after,input[type=datetime-local].valid+label:after,input[type=datetime-local]:focus.valid+label:after,input[type=tel].valid+label:after,input[type=tel]:focus.valid+label:after,input[type=number].valid+label:after,input[type=number]:focus.valid+label:after,input[type=search].valid+label:after,input[type=search]:focus.valid+label:after,textarea.materialize-textarea.valid+label:after,textarea.materialize-textarea:focus.valid+label:after{content:attr(data-success);color:#4CAF50;opacity:1}input:not([type]).invalid,input:not([type]):focus.invalid,input[type=text].invalid,input[type=text]:focus.invalid,input[type=password].invalid,input[type=password]:focus.invalid,input[type=email].invalid,input[type=email]:focus.invalid,input[type=url].invalid,input[type=url]:focus.invalid,input[type=time].invalid,input[type=time]:focus.invalid,input[type=date].invalid,input[type=date]:focus.invalid,input[type=datetime].invalid,input[type=datetime]:focus.invalid,input[type=datetime-local].invalid,input[type=datetime-local]:focus.invalid,input[type=tel].invalid,input[type=tel]:focus.invalid,input[type=number].invalid,input[type=number]:focus.invalid,input[type=search].invalid,input[type=search]:focus.invalid,textarea.materialize-textarea.invalid,textarea.materialize-textarea:focus.invalid{border-bottom:1px solid #F44336;box-shadow:0 1px 0 0 #F44336}input:not([type]).invalid+label:after,input:not([type]):focus.invalid+label:after,input[type=text].invalid+label:after,input[type=text]:focus.invalid+label:after,input[type=password].invalid+label:after,input[type=password]:focus.invalid+label:after,input[type=email].invalid+label:after,input[type=email]:focus.invalid+label:after,input[type=url].invalid+label:after,input[type=url]:focus.invalid+label:after,input[type=time].invalid+label:after,input[type=time]:focus.invalid+label:after,input[type=date].invalid+label:after,input[type=date]:focus.invalid+label:after,input[type=datetime].invalid+label:after,input[type=datetime]:focus.invalid+label:after,input[type=datetime-local].invalid+label:after,input[type=datetime-local]:focus.invalid+label:after,input[type=tel].invalid+label:after,input[type=tel]:focus.invalid+label:after,input[type=number].invalid+label:after,input[type=number]:focus.invalid+label:after,input[type=search].invalid+label:after,input[type=search]:focus.invalid+label:after,textarea.materialize-textarea.invalid+label:after,textarea.materialize-textarea:focus.invalid+label:after{content:attr(data-error);color:#F44336;opacity:1}input:not([type]).validate+label,input[type=text].validate+label,input[type=password].validate+label,input[type=email].validate+label,input[type=url].validate+label,input[type=time].validate+label,input[type=date].validate+label,input[type=datetime].validate+label,input[type=datetime-local].validate+label,input[type=tel].validate+label,input[type=number].validate+label,input[type=search].validate+label,textarea.materialize-textarea.validate+label{width:100%;pointer-events:none}input:not([type])+label:after,input[type=text]+label:after,input[type=password]+label:after,input[type=email]+label:after,input[type=url]+label:after,input[type=time]+label:after,input[type=date]+label:after,input[type=datetime]+label:after,input[type=datetime-local]+label:after,input[type=tel]+label:after,input[type=number]+label:after,input[type=search]+label:after,textarea.materialize-textarea+label:after{display:block;content:"";position:absolute;top:60px;opacity:0;transition:.2s opacity ease-out, .2s color ease-out}.input-field{position:relative;margin-top: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.8rem;left:0;font-size:1rem;cursor:text;transition:.2s ease-out}.input-field label:not(.label-icon).active{font-size:.8rem;-webkit-transform:translateY(-140%);transform:translateY(-140%)}.input-field .prefix{position:absolute;width:3rem;font-size:2rem;transition:color .2s}.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 ~ .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;padding-left:4rem;width:calc(100% - 4rem)}.input-field input[type=search]:focus{background-color:#fff;border:0;box-shadow:none;color:#444}.input-field input[type=search]:focus+label i,.input-field input[type=search]:focus ~ .mdi-navigation-close,.input-field input[type=search]:focus ~ .material-icons{color:#444}.input-field input[type=search]+label{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;transition:.3s color}textarea{width:100%;height:3rem;background-color:transparent}textarea.materialize-textarea{overflow-y:hidden;padding:.8rem 0 1.6rem 0;resize:none;min-height:3rem}.hiddendiv{display:none;white-space:pre-wrap;word-wrap:break-word;overflow-wrap:break-word;padding-top:1.2rem}.autocomplete-content{margin-top:-15px;display:block;opacity:1;position:static}.autocomplete-content li .highlight{color:#444}.autocomplete-content li img{height:40px;width:40px;margin:5px 15px}[type="radio"]:not(:checked),[type="radio"]:checked{position:absolute;left:-9999px;opacity:0}[type="radio"]:not(:checked)+label,[type="radio"]:checked+label{position:relative;padding-left:35px;cursor:pointer;display:inline-block;height:25px;line-height:25px;font-size:1rem;transition:.28s ease;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}[type="radio"]+label:before,[type="radio"]+label:after{content:'';position:absolute;left:0;top:0;margin:4px;width:16px;height:16px;z-index:0;transition:.28s ease}[type="radio"]:not(:checked)+label:before,[type="radio"]:not(:checked)+label:after,[type="radio"]:checked+label:before,[type="radio"]:checked+label:after,[type="radio"].with-gap:checked+label:before,[type="radio"].with-gap:checked+label:after{border-radius:50%}[type="radio"]:not(:checked)+label:before,[type="radio"]:not(:checked)+label:after{border:2px solid #5a5a5a}[type="radio"]:not(:checked)+label:after{-webkit-transform:scale(0);transform:scale(0)}[type="radio"]:checked+label:before{border:2px solid transparent}[type="radio"]:checked+label:after,[type="radio"].with-gap:checked+label:before,[type="radio"].with-gap:checked+label:after{border:2px solid #26a69a}[type="radio"]:checked+label:after,[type="radio"].with-gap:checked+label:after{background-color:#26a69a}[type="radio"]:checked+label:after{-webkit-transform:scale(1.02);transform:scale(1.02)}[type="radio"].with-gap:checked+label:after{-webkit-transform:scale(0.5);transform:scale(0.5)}[type="radio"].tabbed:focus+label:before{box-shadow:0 0 0 10px rgba(0,0,0,0.1)}[type="radio"].with-gap:disabled:checked+label:before{border:2px solid rgba(0,0,0,0.26)}[type="radio"].with-gap:disabled:checked+label:after{border:none;background-color:rgba(0,0,0,0.26)}[type="radio"]:disabled:not(:checked)+label:before,[type="radio"]:disabled:checked+label:before{background-color:transparent;border-color:rgba(0,0,0,0.26)}[type="radio"]:disabled+label{color:rgba(0,0,0,0.26)}[type="radio"]:disabled:not(:checked)+label:before{border-color:rgba(0,0,0,0.26)}[type="radio"]:disabled:checked+label:after{background-color:rgba(0,0,0,0.26);border-color:#BDBDBD}form p{margin-bottom:10px;text-align:left}form p:last-child{margin-bottom:0}[type="checkbox"]:not(:checked),[type="checkbox"]:checked{position:absolute;left:-9999px;opacity:0}[type="checkbox"]+label{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;-khtml-user-select:none;-ms-user-select:none}[type="checkbox"]+label:before,[type="checkbox"]:not(.filled-in)+label:after{content:'';position:absolute;top:0;left:0;width:18px;height:18px;z-index:0;border:2px solid #5a5a5a;border-radius:1px;margin-top:2px;transition:.2s}[type="checkbox"]:not(.filled-in)+label:after{border:0;-webkit-transform:scale(0);transform:scale(0)}[type="checkbox"]:not(:checked):disabled+label:before{border:none;background-color:rgba(0,0,0,0.26)}[type="checkbox"].tabbed:focus+label:after{-webkit-transform:scale(1);transform:scale(1);border:0;border-radius:50%;box-shadow:0 0 0 10px rgba(0,0,0,0.1);background-color:rgba(0,0,0,0.1)}[type="checkbox"]:checked+label: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+label:before{border-right:2px solid rgba(0,0,0,0.26);border-bottom:2px solid rgba(0,0,0,0.26)}[type="checkbox"]:indeterminate+label: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+label:before{border-right:2px solid rgba(0,0,0,0.26);background-color:transparent}[type="checkbox"].filled-in+label:after{border-radius:2px}[type="checkbox"].filled-in+label:before,[type="checkbox"].filled-in+label:after{content:'';left:0;position:absolute;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)+label:before{width:0;height:0;border:3px solid transparent;left:6px;top:10px;-webkit-transform:rotateZ(37deg);transform:rotateZ(37deg);-webkit-transform-origin:20% 40%;transform-origin:100% 100%}[type="checkbox"].filled-in:not(:checked)+label:after{height:20px;width:20px;background-color:transparent;border:2px solid #5a5a5a;top:0px;z-index:0}[type="checkbox"].filled-in:checked+label: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+label:after{top:0;width:20px;height:20px;border:2px solid #26a69a;background-color:#26a69a;z-index:0}[type="checkbox"].filled-in.tabbed:focus+label:after{border-radius:2px;border-color:#5a5a5a;background-color:rgba(0,0,0,0.1)}[type="checkbox"].filled-in.tabbed:checked:focus+label:after{border-radius:2px;background-color:#26a69a;border-color:#26a69a}[type="checkbox"].filled-in:disabled:not(:checked)+label:before{background-color:transparent;border:2px solid transparent}[type="checkbox"].filled-in:disabled:not(:checked)+label:after{border-color:transparent;background-color:#BDBDBD}[type="checkbox"].filled-in:disabled:checked+label:before{background-color:transparent}[type="checkbox"].filled-in:disabled:checked+label:after{background-color:#BDBDBD;border-color:#BDBDBD}.switch,.switch *{-webkit-user-select:none;-moz-user-select:none;-khtml-user-select:none;-ms-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:after{background-color:#26a69a;left:24px}.switch label .lever{content:"";display:inline-block;position:relative;width:40px;height:15px;background-color:#818181;border-radius:15px;margin-right:10px;transition:background 0.3s ease;vertical-align:middle;margin:0 16px}.switch label .lever:after{content:"";position:absolute;display:inline-block;width:21px;height:21px;background-color:#F1F1F1;border-radius:21px;box-shadow:0 1px 3px 1px rgba(0,0,0,0.4);left:-5px;top:-3px;transition:left 0.3s ease, background .3s ease, box-shadow 0.1s ease}input[type=checkbox]:checked:not(:disabled) ~ .lever:active::after,input[type=checkbox]:checked:not(:disabled).tabbed:focus ~ .lever::after{box-shadow:0 1px 3px 1px rgba(0,0,0,0.4),0 0 0 15px rgba(38,166,154,0.1)}input[type=checkbox]:not(:disabled) ~ .lever:active:after,input[type=checkbox]:not(:disabled).tabbed:focus ~ .lever::after{box-shadow:0 1px 3px 1px rgba(0,0,0,0.4),0 0 0 15px rgba(0,0,0,0.08)}.switch input[type=checkbox][disabled]+.lever{cursor:default}.switch label input[type=checkbox][disabled]+.lever:after,.switch label input[type=checkbox][disabled]:checked+.lever:after{background-color:#BDBDBD}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 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:1rem;margin:0 0 20px 0;padding:0;display:block}.select-wrapper span.caret{color:initial;position:absolute;right:0;top:0;bottom:0;height:10px;margin:auto 0;font-size:10px;line-height:10px}.select-wrapper span.caret.disabled{color:rgba(0,0,0,0.26)}.select-wrapper+label{position:absolute;top:-14px;font-size:.8rem}select:disabled{color:rgba(0,0,0,0.3)}.select-wrapper input.select-dropdown:disabled{color:rgba(0,0,0,0.3);cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;border-bottom:1px solid rgba(0,0,0,0.3)}.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}.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{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)}.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;border:none;height:0;width:0;border-radius:50%;background-color:#26a69a;top:10px;margin-left:-6px;-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{-webkit-appearance:none;border:none;height:14px;width:14px;border-radius:50%;background-color:#26a69a;-webkit-transform-origin:50% 50%;transform-origin:50% 50%;margin:-5px 0 0 0;transition:.3s}input[type=range]:focus::-webkit-slider-runnable-track{background:#ccc}input[type=range]{border:1px solid white}input[type=range]::-moz-range-track{height:3px;background:#ddd;border:none}input[type=range]::-moz-range-thumb{border:none;height:14px;width:14px;border-radius:50%;background:#26a69a;margin-top:-5px}input[type=range]:-moz-focusring{outline:1px solid #fff;outline-offset:-1px}input[type=range]:focus::-moz-range-track{background:#ccc}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}input[type=range]:focus::-ms-fill-lower{background:#888}input[type=range]:focus::-ms-fill-upper{background:#ccc}.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:20px;height:1.5rem;line-height:1.5rem;letter-spacing:.4;display:inline-block}.table-of-contents a:hover{color:#a8a8a8;padding-left:19px;border-left:1px solid #ee6e73}.table-of-contents a.active{font-weight:500;padding-left:18px;border-left:2px solid #ee6e73}.side-nav{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%)}.side-nav.right-aligned{right:0;-webkit-transform:translateX(105%);transform:translateX(105%);left:auto;-webkit-transform:translateX(100%);transform:translateX(100%)}.side-nav .collapsible{margin:0}.side-nav li{float:none;line-height:48px}.side-nav li.active{background-color:rgba(0,0,0,0.05)}.side-nav a{color:rgba(0,0,0,0.87);display:block;font-size:14px;font-weight:500;height:48px;line-height:48px;padding:0 32px}.side-nav a:hover{background-color:rgba(0,0,0,0.05)}.side-nav a.btn,.side-nav a.btn-large,.side-nav a.btn-large,.side-nav a.btn-flat,.side-nav a.btn-floating{margin:10px 15px}.side-nav a.btn,.side-nav a.btn-large,.side-nav a.btn-large,.side-nav a.btn-floating{color:#fff}.side-nav a.btn-flat{color:#343434}.side-nav a.btn:hover,.side-nav a.btn-large:hover,.side-nav a.btn-large:hover{background-color:#2bbbad}.side-nav a.btn-floating:hover{background-color:#26a69a}.side-nav li>a>i,.side-nav li>a>[class^="mdi-"],.side-nav li>a>[class*="mdi-"],.side-nav 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)}.side-nav .divider{margin:8px 0 0 0}.side-nav .subheader{cursor:initial;pointer-events:none;color:rgba(0,0,0,0.54);font-size:14px;font-weight:500;line-height:48px}.side-nav .subheader:hover{background-color:transparent}.side-nav .userView{position:relative;padding:32px 32px 0;margin-bottom:8px}.side-nav .userView>a{height:auto;padding:0}.side-nav .userView>a:hover{background-color:transparent}.side-nav .userView .background{overflow:hidden;position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1}.side-nav .userView .circle,.side-nav .userView .name,.side-nav .userView .email{display:block}.side-nav .userView .circle{height:64px;width:64px}.side-nav .userView .name,.side-nav .userView .email{font-size:14px;line-height:24px}.side-nav .userView .name{margin-top:16px;font-weight:500}.side-nav .userView .email{padding-bottom:16px;font-weight:400}.drag-target{height:100%;width:10px;position:fixed;top:0;z-index:998}.side-nav.fixed{left:0;-webkit-transform:translateX(0);transform:translateX(0);position:fixed}.side-nav.fixed.right-aligned{right:0;left:auto}@media only screen and (max-width: 992px){.side-nav.fixed{-webkit-transform:translateX(-105%);transform:translateX(-105%)}.side-nav.fixed.right-aligned{-webkit-transform:translateX(105%);transform:translateX(105%)}.side-nav a{padding:0 16px}.side-nav .userView{padding:16px 16px 0}}.side-nav .collapsible-body>ul:not(.collapsible)>li.active,.side-nav.fixed .collapsible-body>ul:not(.collapsible)>li.active{background-color:#ee6e73}.side-nav .collapsible-body>ul:not(.collapsible)>li.active a,.side-nav.fixed .collapsible-body>ul:not(.collapsible)>li.active a{color:#fff}#sidenav-overlay{position:fixed;top:0;left:0;right:0;height:120vh;background-color:rgba(0,0,0,0.5);z-index:997;will-change:opacity}.preloader-wrapper{display:inline-block;position:relative;width:48px;height:48px}.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;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;height: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{display:none;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);transition:background-color .3s;border-radius:50%}.carousel .indicators .indicator-item.active{background-color:#fff}.picker{font-size:16px;text-align:left;line-height:1.2;color:#000000;position:absolute;z-index:10000;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.picker__input{cursor:default}.picker__input.picker__input--active{border-color:#0089ec}.picker__holder{width:100%;overflow-y:auto;-webkit-overflow-scrolling:touch}/*!
14
- * Default mobile-first, responsive styling for pickadate.js
15
- * Demo: http://amsul.github.io/pickadate.js
16
- */.picker__holder,.picker__frame{bottom:0;left:0;right:0;top:100%}.picker__holder{position:fixed;transition:background 0.15s ease-out, top 0s 0.15s;-webkit-backface-visibility:hidden}.picker__frame{position:absolute;margin:0 auto;min-width:256px;width:300px;max-height:350px;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";filter:alpha(opacity=0);-moz-opacity:0;opacity:0;transition:all 0.15s ease-out}@media (min-height: 28.875em){.picker__frame{overflow:visible;top:auto;bottom:-100%;max-height:80%}}@media (min-height: 40.125em){.picker__frame{margin-bottom:7.5%}}.picker__wrap{display:table;width:100%;height:100%}@media (min-height: 28.875em){.picker__wrap{display:block}}.picker__box{background:#ffffff;display:table-cell;vertical-align:middle}@media (min-height: 28.875em){.picker__box{display:block;border:1px solid #777777;border-top-color:#898989;border-bottom-width:0;border-radius:5px 5px 0 0;box-shadow:0 12px 36px 16px rgba(0,0,0,0.24)}}.picker--opened .picker__holder{top:0;background:transparent;-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorstr=#1E000000,endColorstr=#1E000000)";zoom:1;background:rgba(0,0,0,0.32);transition:background 0.15s ease-out}.picker--opened .picker__frame{top:0;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";filter:alpha(opacity=100);-moz-opacity:1;opacity:1}@media (min-height: 35.875em){.picker--opened .picker__frame{top:10%;bottom:auto}}.picker__input.picker__input--active{border-color:#E3F2FD}.picker__frame{margin:0 auto;max-width:325px}@media (min-height: 38.875em){.picker--opened .picker__frame{top:10%;bottom:auto}}.picker__box{padding:0 1em}.picker__header{text-align:center;position:relative;margin-top:.75em}.picker__month,.picker__year{display:inline-block;margin-left:.25em;margin-right:.25em}.picker__select--month,.picker__select--year{height:2em;padding:0;margin-left:.25em;margin-right:.25em}.picker__select--month.browser-default{display:inline;background-color:#FFFFFF;width:40%}.picker__select--year.browser-default{display:inline;background-color:#FFFFFF;width:26%}.picker__select--month:focus,.picker__select--year:focus{border-color:rgba(0,0,0,0.05)}.picker__nav--prev,.picker__nav--next{position:absolute;padding:.5em 1.25em;width:1em;height:1em;box-sizing:content-box;top:-0.25em}.picker__nav--prev{left:-1em;padding-right:1.25em}.picker__nav--next{right:-1em;padding-left:1.25em}.picker__nav--disabled,.picker__nav--disabled:hover,.picker__nav--disabled:before,.picker__nav--disabled:before:hover{cursor:default;background:none;border-right-color:#f5f5f5;border-left-color:#f5f5f5}.picker__table{text-align:center;border-collapse:collapse;border-spacing:0;table-layout:fixed;font-size:1rem;width:100%;margin-top:.75em;margin-bottom:.5em}.picker__table th,.picker__table td{text-align:center}.picker__table td{margin:0;padding:0}.picker__weekday{width:14.285714286%;font-size:.75em;padding-bottom:.25em;color:#999999;font-weight:500}@media (min-height: 33.875em){.picker__weekday{padding-bottom:.5em}}.picker__day--today{position:relative;color:#595959;letter-spacing:-.3;padding:.75rem 0;font-weight:400;border:1px solid transparent}.picker__day--disabled:before{border-top-color:#aaaaaa}.picker__day--infocus:hover{cursor:pointer;color:#000;font-weight:500}.picker__day--outfocus{display:none;padding:.75rem 0;color:#fff}.picker__day--outfocus:hover{cursor:pointer;color:#dddddd;font-weight:500}.picker__day--highlighted:hover,.picker--focused .picker__day--highlighted{cursor:pointer}.picker__day--selected,.picker__day--selected:hover,.picker--focused .picker__day--selected{border-radius:50%;-webkit-transform:scale(0.75);transform:scale(0.75);background:#0089ec;color:#ffffff}.picker__day--disabled,.picker__day--disabled:hover,.picker--focused .picker__day--disabled{background:#f5f5f5;border-color:#f5f5f5;color:#dddddd;cursor:default}.picker__day--highlighted.picker__day--disabled,.picker__day--highlighted.picker__day--disabled:hover{background:#bbbbbb}.picker__footer{text-align:center;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between}.picker__button--today,.picker__button--clear,.picker__button--close{border:1px solid #ffffff;background:#ffffff;font-size:.8em;padding:.66em 0;font-weight:bold;width:33%;display:inline-block;vertical-align:bottom}.picker__button--today:hover,.picker__button--clear:hover,.picker__button--close:hover{cursor:pointer;color:#000000;background:#b1dcfb;border-bottom-color:#b1dcfb}.picker__button--today:focus,.picker__button--clear:focus,.picker__button--close:focus{background:#b1dcfb;border-color:rgba(0,0,0,0.05);outline:none}.picker__button--today:before,.picker__button--clear:before,.picker__button--close:before{position:relative;display:inline-block;height:0}.picker__button--today:before,.picker__button--clear:before{content:" ";margin-right:.45em}.picker__button--today:before{top:-0.05em;width:0;border-top:0.66em solid #0059bc;border-left:.66em solid transparent}.picker__button--clear:before{top:-0.25em;width:.66em;border-top:3px solid #ee2200}.picker__button--close:before{content:"\D7";top:-0.1em;vertical-align:top;font-size:1.1em;margin-right:.35em;color:#777777}.picker__button--today[disabled],.picker__button--today[disabled]:hover{background:#f5f5f5;border-color:#f5f5f5;color:#dddddd;cursor:default}.picker__button--today[disabled]:before{border-top-color:#aaaaaa}.picker__box{border-radius:2px;overflow:hidden}.picker__date-display{text-align:center;background-color:#26a69a;color:#fff;padding-bottom:15px;font-weight:300}.picker__nav--prev:hover,.picker__nav--next:hover{cursor:pointer;color:#000000;background:#a1ded8}.picker__weekday-display{background-color:#1f897f;padding:10px;font-weight:200;letter-spacing:.5;font-size:1rem;margin-bottom:15px}.picker__month-display{text-transform:uppercase;font-size:2rem}.picker__day-display{font-size:4.5rem;font-weight:400}.picker__year-display{font-size:1.8rem;color:rgba(255,255,255,0.4)}.picker__box{padding:0}.picker__calendar-container{padding:0 1rem}.picker__calendar-container thead{border:none}.picker__table{margin-top:0;margin-bottom:.5em}.picker__day--infocus{color:#595959;letter-spacing:-.3;padding:.75rem 0;font-weight:400;border:1px solid transparent}.picker__day.picker__day--today{color:#26a69a}.picker__day.picker__day--today.picker__day--selected{color:#fff}.picker__weekday{font-size:.9rem}.picker__day--selected,.picker__day--selected:hover,.picker--focused .picker__day--selected{border-radius:50%;-webkit-transform:scale(0.9);transform:scale(0.9);background-color:#26a69a;color:#ffffff}.picker__day--selected.picker__day--outfocus,.picker__day--selected:hover.picker__day--outfocus,.picker--focused .picker__day--selected.picker__day--outfocus{background-color:#a1ded8}.picker__footer{text-align:right;padding:5px 10px}.picker__close,.picker__today{font-size:1.1rem;padding:0 1rem;color:#26a69a}.picker__nav--prev:before,.picker__nav--next:before{content:" ";border-top:.5em solid transparent;border-bottom:.5em solid transparent;border-right:0.75em solid #676767;width:0;height:0;display:block;margin:0 auto}.picker__nav--next:before{border-right:0;border-left:0.75em solid #676767}button.picker__today:focus,button.picker__clear:focus,button.picker__close:focus{background-color:#a1ded8}.picker__list{list-style:none;padding:0.75em 0 4.2em;margin:0}.picker__list-item{border-bottom:1px solid #dddddd;border-top:1px solid #dddddd;margin-bottom:-1px;position:relative;background:#ffffff;padding:.75em 1.25em}@media (min-height: 46.75em){.picker__list-item{padding:.5em 1em}}.picker__list-item:hover{cursor:pointer;color:#000000;background:#b1dcfb;border-color:#0089ec;z-index:10}.picker__list-item--highlighted{border-color:#0089ec;z-index:10}.picker__list-item--highlighted:hover,.picker--focused .picker__list-item--highlighted{cursor:pointer;color:#000000;background:#b1dcfb}.picker__list-item--selected,.picker__list-item--selected:hover,.picker--focused .picker__list-item--selected{background:#0089ec;color:#ffffff;z-index:10}.picker__list-item--disabled,.picker__list-item--disabled:hover,.picker--focused .picker__list-item--disabled{background:#f5f5f5;border-color:#f5f5f5;color:#dddddd;cursor:default;border-color:#dddddd;z-index:auto}.picker--time .picker__button--clear{display:block;width:80%;margin:1em auto 0;padding:1em 1.25em;background:none;border:0;font-weight:500;font-size:.67em;text-align:center;text-transform:uppercase;color:#666}.picker--time .picker__button--clear:hover,.picker--time .picker__button--clear:focus{color:#000000;background:#b1dcfb;background:#ee2200;border-color:#ee2200;cursor:pointer;color:#ffffff;outline:none}.picker--time .picker__button--clear:before{top:-0.25em;color:#666;font-size:1.25em;font-weight:bold}.picker--time .picker__button--clear:hover:before,.picker--time .picker__button--clear:focus:before{color:#ffffff}.picker--time .picker__frame{min-width:256px;max-width:320px}.picker--time .picker__box{font-size:1em;background:#f2f2f2;padding:0}@media (min-height: 40.125em){.picker--time .picker__box{margin-bottom:5em}}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
trunk/admin/css/owl.carousel.css DELETED
@@ -1,186 +0,0 @@
1
- /**
2
- * Owl Carousel v2.3.4
3
- * Copyright 2013-2018 David Deutsch
4
- * Licensed under: SEE LICENSE IN https://github.com/OwlCarousel2/OwlCarousel2/blob/master/LICENSE
5
- */
6
- /*
7
- * Owl Carousel - Core
8
- */
9
- .vrowl-carousel {
10
- display: none;
11
- width: 100%;
12
- -webkit-tap-highlight-color: transparent;
13
- /* position relative and z-index fix webkit rendering fonts issue */
14
- position: relative;
15
- z-index: 1; }
16
- .vrowl-carousel .owl-stage {
17
- position: relative;
18
- -ms-touch-action: pan-Y;
19
- touch-action: manipulation;
20
- -moz-backface-visibility: hidden;
21
- /* fix firefox animation glitch */ }
22
- .vrowl-carousel .owl-stage:after {
23
- content: ".";
24
- display: block;
25
- clear: both;
26
- visibility: hidden;
27
- line-height: 0;
28
- height: 0; }
29
- .vrowl-carousel .owl-stage-outer {
30
- position: relative;
31
- overflow: hidden;
32
- /* fix for flashing background */
33
- -webkit-transform: translate3d(0px, 0px, 0px); }
34
- .vrowl-carousel .owl-wrapper,
35
- .vrowl-carousel .owl-item {
36
- -webkit-backface-visibility: hidden;
37
- -moz-backface-visibility: hidden;
38
- -ms-backface-visibility: hidden;
39
- -webkit-transform: translate3d(0, 0, 0);
40
- -moz-transform: translate3d(0, 0, 0);
41
- -ms-transform: translate3d(0, 0, 0); }
42
- .vrowl-carousel .owl-item {
43
- position: relative;
44
- min-height: 1px;
45
- float: left;
46
- -webkit-backface-visibility: hidden;
47
- -webkit-tap-highlight-color: transparent;
48
- -webkit-touch-callout: none; }
49
- .vrowl-carousel .owl-item img {
50
- display: block;
51
- width: 100%; }
52
- .vrowl-carousel .owl-nav.disabled,
53
- .vrowl-carousel .owl-dots.disabled {
54
- display: none; }
55
- .vrowl-carousel .owl-nav .owl-prev,
56
- .vrowl-carousel .owl-nav .owl-next,
57
- .vrowl-carousel .owl-dot {
58
- cursor: pointer;
59
- -webkit-user-select: none;
60
- -khtml-user-select: none;
61
- -moz-user-select: none;
62
- -ms-user-select: none;
63
- user-select: none; }
64
- .vrowl-carousel .owl-nav button.owl-prev,
65
- .vrowl-carousel .owl-nav button.owl-next,
66
- .vrowl-carousel button.owl-dot {
67
- background: none;
68
- color: inherit;
69
- border: none;
70
- padding: 0 !important;
71
- font: inherit; }
72
- .vrowl-carousel.owl-loaded {
73
- display: block; }
74
- .vrowl-carousel.owl-loading {
75
- opacity: 0;
76
- display: block; }
77
- .vrowl-carousel.owl-hidden {
78
- opacity: 0; }
79
- .vrowl-carousel.owl-refresh .owl-item {
80
- visibility: hidden; }
81
- .vrowl-carousel.owl-drag .owl-item {
82
- -ms-touch-action: pan-y;
83
- touch-action: pan-y;
84
- -webkit-user-select: none;
85
- -moz-user-select: none;
86
- -ms-user-select: none;
87
- user-select: none; }
88
- .vrowl-carousel.owl-grab {
89
- cursor: move;
90
- cursor: grab; }
91
- .vrowl-carousel.owl-rtl {
92
- direction: rtl; }
93
- .vrowl-carousel.owl-rtl .owl-item {
94
- float: right; }
95
-
96
- /* No Js */
97
- .no-js .vrowl-carousel {
98
- display: block; }
99
-
100
- /*
101
- * Owl Carousel - Animate Plugin
102
- */
103
- .vrowl-carousel .animated {
104
- animation-duration: 1000ms;
105
- animation-fill-mode: both; }
106
-
107
- .vrowl-carousel .owl-animated-in {
108
- z-index: 0; }
109
-
110
- .vrowl-carousel .owl-animated-out {
111
- z-index: 1; }
112
-
113
- .vrowl-carousel .fadeOut {
114
- animation-name: fadeOut; }
115
-
116
- @keyframes fadeOut {
117
- 0% {
118
- opacity: 1; }
119
- 100% {
120
- opacity: 0; } }
121
-
122
- /*
123
- * Owl Carousel - Auto Height Plugin
124
- */
125
- .owl-height {
126
- transition: height 500ms ease-in-out; }
127
-
128
- /*
129
- * Owl Carousel - Lazy Load Plugin
130
- */
131
- .vrowl-carousel .owl-item {
132
- /**
133
- This is introduced due to a bug in IE11 where lazy loading combined with autoheight plugin causes a wrong
134
- calculation of the height of the owl-item that breaks page layouts
135
- */ }
136
- .vrowl-carousel .owl-item .owl-lazy {
137
- opacity: 0;
138
- transition: opacity 400ms ease; }
139
- .vrowl-carousel .owl-item .owl-lazy[src^=""], .vrowl-carousel .owl-item .owl-lazy:not([src]) {
140
- max-height: 0; }
141
- .vrowl-carousel .owl-item img.owl-lazy {
142
- transform-style: preserve-3d; }
143
-
144
- /*
145
- * Owl Carousel - Video Plugin
146
- */
147
- .vrowl-carousel .owl-video-wrapper {
148
- position: relative;
149
- height: 100%;
150
- background: #000; }
151
-
152
- .vrowl-carousel .owl-video-play-icon {
153
- position: absolute;
154
- height: 80px;
155
- width: 80px;
156
- left: 50%;
157
- top: 50%;
158
- margin-left: -40px;
159
- margin-top: -40px;
160
- background: url("owl.video.play.png") no-repeat;
161
- cursor: pointer;
162
- z-index: 1;
163
- -webkit-backface-visibility: hidden;
164
- transition: transform 100ms ease; }
165
-
166
- .vrowl-carousel .owl-video-play-icon:hover {
167
- -ms-transform: scale(1.3, 1.3);
168
- transform: scale(1.3, 1.3); }
169
-
170
- .vrowl-carousel .owl-video-playing .owl-video-tn,
171
- .vrowl-carousel .owl-video-playing .owl-video-play-icon {
172
- display: none; }
173
-
174
- .vrowl-carousel .owl-video-tn {
175
- opacity: 0;
176
- height: 100%;
177
- background-position: center center;
178
- background-repeat: no-repeat;
179
- background-size: contain;
180
- transition: opacity 400ms ease; }
181
-
182
- .vrowl-carousel .owl-video-frame {
183
- position: relative;
184
- z-index: 1;
185
- height: 100%;
186
- width: 100%; }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
trunk/admin/css/owl.theme.default.css DELETED
@@ -1,50 +0,0 @@
1
- /**
2
- * Owl Carousel v2.3.4
3
- * Copyright 2013-2018 David Deutsch
4
- * Licensed under: SEE LICENSE IN https://github.com/OwlCarousel2/OwlCarousel2/blob/master/LICENSE
5
- */
6
- /*
7
- * Default theme - Owl Carousel CSS File
8
- */
9
- .owl-theme .owl-nav {
10
- margin-top: 10px;
11
- text-align: center;
12
- -webkit-tap-highlight-color: transparent; }
13
- .owl-theme .owl-nav [class*='owl-'] {
14
- color: #FFF;
15
- font-size: 14px;
16
- margin: 5px;
17
- padding: 4px 7px;
18
- background: #D6D6D6;
19
- display: inline-block;
20
- cursor: pointer;
21
- border-radius: 3px; }
22
- .owl-theme .owl-nav [class*='owl-']:hover {
23
- background: #869791;
24
- color: #FFF;
25
- text-decoration: none; }
26
- .owl-theme .owl-nav .disabled {
27
- opacity: 0.5;
28
- cursor: default; }
29
-
30
- .owl-theme .owl-nav.disabled + .owl-dots {
31
- margin-top: 10px; }
32
-
33
- .owl-theme .owl-dots {
34
- text-align: center;
35
- -webkit-tap-highlight-color: transparent; }
36
- .owl-theme .owl-dots .owl-dot {
37
- display: inline-block;
38
- zoom: 1;
39
- *display: inline; }
40
- .owl-theme .owl-dots .owl-dot span {
41
- width: 10px;
42
- height: 10px;
43
- margin: 5px 7px;
44
- background: #D6D6D6;
45
- display: block;
46
- -webkit-backface-visibility: visible;
47
- transition: opacity 200ms ease;
48
- border-radius: 30px; }
49
- .owl-theme .owl-dots .owl-dot.active span, .owl-theme .owl-dots .owl-dot:hover span {
50
- background: #869791; }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
trunk/admin/css/wpvr-admin.css DELETED
@@ -1,3855 +0,0 @@
1
- /**
2
- * All of the CSS for your admin-specific functionality should be
3
- * included in this file.
4
- */
5
-
6
- .wpvr_gt_settings_ruler {
7
- content: "";
8
- display: block;
9
- height: 5px;
10
- width: 100%;
11
- margin: 30px 0 30px 0;
12
- background: #929eaa;
13
- }
14
-
15
- .wpvr_tabs_row {
16
- width: 20% !important;
17
- }
18
-
19
-
20
- /* wpvr_role-container */
21
-
22
- .wpvr_role-container .switch {
23
- display: flex;
24
- justify-content: space-between;
25
- align-items: center;
26
- }
27
-
28
- .wpvr_role-container ul {
29
- padding: 10px;
30
- }
31
-
32
- .wpvr_role-container .switch h6 {
33
- width: calc(100% - 130px);
34
- padding-right: 20px;
35
- }
36
-
37
- #adminmenu .toplevel_page_wpvr .wp-menu-image img {
38
- padding: 7px 0 0px 0;
39
- }
40
-
41
- /* Absolute Center Spinner */
42
-
43
- .wpvr-loading {
44
- position: fixed;
45
- z-index: 999;
46
- height: 2em;
47
- width: 2em;
48
- overflow: visible;
49
- margin: auto;
50
- top: 0;
51
- left: 0;
52
- bottom: 0;
53
- right: 0;
54
- }
55
-
56
-
57
- /* Transparent Overlay */
58
-
59
- .wpvr-loading:before {
60
- content: '';
61
- display: block;
62
- position: fixed;
63
- top: 0;
64
- left: 0;
65
- width: 100%;
66
- height: 100%;
67
- background-color: rgba(0, 0, 0, 0.3);
68
- }
69
-
70
-
71
- /* :not(:required) hides these rules from IE9 and below */
72
-
73
- .wpvr-loading:not(:required) {
74
- /* hide "loading..." text */
75
- font: 0/0 a;
76
- color: transparent;
77
- text-shadow: none;
78
- background-color: transparent;
79
- border: 0;
80
- }
81
-
82
- .wpvr-loading:not(:required):after {
83
- content: '';
84
- display: block;
85
- font-size: 10px;
86
- width: 1em;
87
- height: 1em;
88
- margin-top: -0.5em;
89
- -webkit-animation: spinner 1500ms infinite linear;
90
- -moz-animation: spinner 1500ms infinite linear;
91
- -ms-animation: spinner 1500ms infinite linear;
92
- -o-animation: spinner 1500ms infinite linear;
93
- animation: spinner 1500ms infinite linear;
94
- border-radius: 0.5em;
95
- -webkit-box-shadow: rgba(0, 0, 0, 0.75) 1.5em 0 0 0, rgba(0, 0, 0, 0.75) 1.1em 1.1em 0 0, rgba(0, 0, 0, 0.75) 0 1.5em 0 0, rgba(0, 0, 0, 0.75) -1.1em 1.1em 0 0, rgba(0, 0, 0, 0.5) -1.5em 0 0 0, rgba(0, 0, 0, 0.5) -1.1em -1.1em 0 0, rgba(0, 0, 0, 0.75) 0 -1.5em 0 0, rgba(0, 0, 0, 0.75) 1.1em -1.1em 0 0;
96
- box-shadow: rgba(0, 0, 0, 0.75) 1.5em 0 0 0, rgba(0, 0, 0, 0.75) 1.1em 1.1em 0 0, rgba(0, 0, 0, 0.75) 0 1.5em 0 0, rgba(0, 0, 0, 0.75) -1.1em 1.1em 0 0, rgba(0, 0, 0, 0.75) -1.5em 0 0 0, rgba(0, 0, 0, 0.75) -1.1em -1.1em 0 0, rgba(0, 0, 0, 0.75) 0 -1.5em 0 0, rgba(0, 0, 0, 0.75) 1.1em -1.1em 0 0;
97
- }
98
-
99
-
100
- /* Animation */
101
-
102
- @-webkit-keyframes spinner {
103
- 0% {
104
- -webkit-transform: rotate(0deg);
105
- -moz-transform: rotate(0deg);
106
- -ms-transform: rotate(0deg);
107
- -o-transform: rotate(0deg);
108
- transform: rotate(0deg);
109
- }
110
- 100% {
111
- -webkit-transform: rotate(360deg);
112
- -moz-transform: rotate(360deg);
113
- -ms-transform: rotate(360deg);
114
- -o-transform: rotate(360deg);
115
- transform: rotate(360deg);
116
- }
117
- }
118
-
119
- @-moz-keyframes spinner {
120
- 0% {
121
- -webkit-transform: rotate(0deg);
122
- -moz-transform: rotate(0deg);
123
- -ms-transform: rotate(0deg);
124
- -o-transform: rotate(0deg);
125
- transform: rotate(0deg);
126
- }
127
- 100% {
128
- -webkit-transform: rotate(360deg);
129
- -moz-transform: rotate(360deg);
130
- -ms-transform: rotate(360deg);
131
- -o-transform: rotate(360deg);
132
- transform: rotate(360deg);
133
- }
134
- }
135
-
136
- @-o-keyframes spinner {
137
- 0% {
138
- -webkit-transform: rotate(0deg);
139
- -moz-transform: rotate(0deg);
140
- -ms-transform: rotate(0deg);
141
- -o-transform: rotate(0deg);
142
- transform: rotate(0deg);
143
- }
144
- 100% {
145
- -webkit-transform: rotate(360deg);
146
- -moz-transform: rotate(360deg);
147
- -ms-transform: rotate(360deg);
148
- -o-transform: rotate(360deg);
149
- transform: rotate(360deg);
150
- }
151
- }
152
-
153
- @keyframes spinner {
154
- 0% {
155
- -webkit-transform: rotate(0deg);
156
- -moz-transform: rotate(0deg);
157
- -ms-transform: rotate(0deg);
158
- -o-transform: rotate(0deg);
159
- transform: rotate(0deg);
160
- }
161
- 100% {
162
- -webkit-transform: rotate(360deg);
163
- -moz-transform: rotate(360deg);
164
- -ms-transform: rotate(360deg);
165
- -o-transform: rotate(360deg);
166
- transform: rotate(360deg);
167
- }
168
- }
169
-
170
- .pnlm-load-button p {
171
- color: #fff;
172
- }
173
-
174
- .icon-wpvrtourmake_icon:before {
175
- content: '';
176
- height: 30px;
177
- width: 30px;
178
- background: url('../images/icon.png') no-repeat center center / 100% 100%;
179
- }
180
-
181
- .scene-gallery {
182
- border-radius: 6px;
183
- max-width: 626px;
184
- margin: 0 auto;
185
- padding: 0 10px;
186
- color: #32373c;
187
- background-color: #eceef1;
188
- box-sizing: border-box;
189
- }
190
-
191
- .scene-gallery ul {
192
- display: inline-grid;
193
- }
194
-
195
- .scene-gallery ul li {
196
- text-transform: capitalize;
197
- font-weight: 500;
198
- position: relative;
199
- word-break: break-word;
200
- }
201
-
202
- .scene-gallery ul li.owlscene {
203
- margin-bottom: 5px;
204
- }
205
-
206
- .scene-gallery .marked .owlscene {
207
- color: #004efa;
208
- }
209
-
210
- .scene-gallery ul li img {
211
- filter: blur(0.5px) brightness(0.5);
212
- -webkit-filter: blur(0.5px) brightness(0.5);
213
- }
214
-
215
- .scene-gallery .marked ul li img {
216
- filter: blur(0) brightness(1);
217
- -webkit-filter: blur(0) brightness(1);
218
- }
219
-
220
-
221
- /* .scene-gallery ul li:not(.owlscene):before {
222
- content: "";
223
- position: absolute;
224
- left: 0;
225
- bottom: 0;
226
- width: 100%;
227
- height: 100%;
228
- background: rgba(51, 51, 51, 0.7);
229
- border-radius: 5px;
230
- transition: all 0.3s ease;
231
- }
232
- .scene-gallery .marked ul li:not(.owlscene):before {
233
- background: transparent;
234
- } */
235
-
236
- .scctrl {
237
- border-radius: 5px;
238
- width: 100px;
239
- height: 100px;
240
- display: inline-block;
241
- cursor: pointer;
242
- }
243
-
244
- .scctrl:hover {
245
- background: rgba(200, 200, 200, 1);
246
- }
247
-
248
- .vr-export {
249
- color: #fff!important;
250
- background-color: #2196F3!important;
251
- border: none;
252
- display: inline-block;
253
- padding: 8px 16px;
254
- vertical-align: middle;
255
- overflow: hidden;
256
- text-decoration: none;
257
- color: inherit;
258
- background-color: inherit;
259
- text-align: center;
260
- cursor: pointer;
261
- white-space: nowrap;
262
- }
263
-
264
- .rex-pano-tab-content ::-webkit-input-placeholder {
265
- color: #ccc;
266
- }
267
-
268
- .rex-pano-tab-content ::-moz-placeholder {
269
- color: #ccc;
270
- }
271
-
272
- .rex-pano-tab-content :-ms-input-placeholder {
273
- color: #ccc;
274
- }
275
-
276
- div.custom-tooltip span {
277
- visibility: hidden;
278
- position: absolute;
279
- border-radius: 3px;
280
- background-color: #fff;
281
- color: #000;
282
- text-align: center;
283
- padding: 5px 10px;
284
- cursor: default;
285
- margin: 0 0px 0px 12px !important;
286
- bottom: 40px;
287
- transform: translateX(-50%);
288
- min-width: 300px;
289
- font-size: 15px;
290
- line-height: 24px;
291
- }
292
-
293
- div.custom-tooltip:hover span {
294
- visibility: visible;
295
- }
296
-
297
- div.custom-tooltip:hover span:after {
298
- content: '';
299
- position: absolute;
300
- width: 0;
301
- height: 0;
302
- border-width: 10px;
303
- border-style: solid;
304
- border-color: #fff transparent transparent transparent;
305
- bottom: -20px;
306
- left: -10px;
307
- margin: 0 50%;
308
- }
309
-
310
- #custom-ifram {
311
- position: absolute;
312
- top: 50%;
313
- left: 50%;
314
- transform: translate(-50%, -50%);
315
- z-index: 99;
316
- width: 90%;
317
- height: 293px;
318
- overflow: auto;
319
- background: #fff;
320
- border-radius: 5px;
321
- }
322
-
323
- .icons-selector .selector {
324
- width: 100%;
325
- }
326
-
327
- .iframe-wrapper {
328
- max-width: 600px;
329
- position: relative;
330
- margin: 0 auto;
331
- width: 100%;
332
- height: 400px;
333
- }
334
-
335
- .iframe-wrapper .pnlm-container {
336
- height: 100%;
337
- width: 100%;
338
- }
339
-
340
- .pano-wrap:before {
341
- content: "";
342
- position: absolute;
343
- left: 0;
344
- top: 0;
345
- background: rgba(0, 0, 0, 0.4);
346
- width: 100%;
347
- height: 100%;
348
- z-index: 9;
349
- opacity: 0;
350
- visibility: hidden;
351
- transition: all 0.4s linear;
352
- }
353
-
354
- .iframe-wrapper.show-modal .pano-wrap:before {
355
- opacity: 1;
356
- visibility: visible;
357
- }
358
-
359
- .iframe-wrapper #cross {
360
- background: #fff;
361
- width: 24px;
362
- height: 24px;
363
- color: red;
364
- line-height: 26px;
365
- position: absolute;
366
- top: 43px;
367
- right: 26px;
368
- text-align: center;
369
- z-index: 999;
370
- font-size: 13px;
371
- border-radius: 100%;
372
- cursor: pointer;
373
- opacity: 0;
374
- visibility: hidden;
375
- transition: all 0.4s ease;
376
- }
377
-
378
- .iframe-wrapper.show-modal #cross {
379
- opacity: 1;
380
- visibility: visible;
381
- }
382
-
383
- .post-type-wpvr_item:before {
384
- content: "";
385
- background: rgba(0, 0, 0, 0.54);
386
- top: 0;
387
- left: 0;
388
- width: 100%;
389
- height: 100%;
390
- position: fixed;
391
- z-index: 2;
392
- opacity: 0;
393
- visibility: hidden;
394
- transition: all 0.4s ease;
395
- }
396
-
397
- .post-type-wpvr_item.error-overlay2:before,
398
- .post-type-wpvr_item.error-overlay:before {
399
- opacity: 1;
400
- visibility: visible;
401
- }
402
-
403
- #custom-ifram p {
404
- background-color: #fff;
405
- padding: 10px;
406
- margin: auto;
407
- border-radius: 5px;
408
- text-align: center;
409
- font-size: 15px;
410
- line-height: 24px;
411
- }
412
-
413
- .custom-tooltip p {
414
- background-color: #fff;
415
- padding: 10px 0;
416
- margin: auto;
417
- border-radius: 5px;
418
- width: 500px;
419
- font-size: 16px;
420
- line-height: 26px;
421
- }
422
-
423
- #custom-ifram img {
424
- max-width: 100%;
425
- height: auto;
426
- margin: 0 auto;
427
- display: block;
428
- }
429
-
430
- #custom-ifram iframe {
431
- max-width: 100%;
432
- margin: 0 auto;
433
- display: block;
434
- }
435
-
436
- .custom-tooltip span img {
437
- height: 220px;
438
- width: 400px;
439
- }
440
-
441
- .rex-add-coordinates ul li {
442
- display: inline-block;
443
- text-align: center !important;
444
- cursor: pointer;
445
- vertical-align: middle;
446
- margin-bottom: 0;
447
- }
448
-
449
- .rex-add-coordinates ul li #panodata {
450
- margin-top: 0!important;
451
- font-size: 13px;
452
- }
453
-
454
- .rex-add-coordinates ul li.add-pitch {
455
- margin-bottom: 0;
456
- width: 20px;
457
- height: 20px;
458
- background: #222;
459
- color: #fff;
460
- border-radius: 100%;
461
- box-sizing: border-box;
462
- margin-left: 6px;
463
- position: relative;
464
- }
465
-
466
- .rex-hide-coordinates {
467
- display: none !important;
468
- }
469
-
470
- .toppitch {
471
- font-size: 11px;
472
- vertical-align: middle;
473
- }
474
-
475
- .rex-add-coordinates ul li.add-pitch .rex-tooltiptext {
476
- visibility: hidden;
477
- opacity: 0;
478
- width: auto;
479
- background-color: #222;
480
- color: #fff;
481
- text-align: center;
482
- border-radius: 5px;
483
- position: absolute;
484
- z-index: 1;
485
- top: -100%;
486
- left: 50%;
487
- padding: 6px 12px;
488
- white-space: nowrap;
489
- font-size: 11px;
490
- margin-top: -16px;
491
- letter-spacing: 0.5px;
492
- -webkit-transform: translateX(-50%);
493
- -moz-transform: translateX(-50%);
494
- -ms-transform: translateX(-50%);
495
- -o-transform: translateX(-50%);
496
- transform: translateX(-50%);
497
- -webkit-transition: all 0.5s ease;
498
- -moz-transition: all 0.5s ease;
499
- -ms-transition: all 0.5s ease;
500
- -o-transition: all 0.5s ease;
501
- transition: all 0.5s ease;
502
- }
503
-
504
- .rex-add-coordinates ul li.add-pitch .rex-tooltiptext::after {
505
- content: "";
506
- position: absolute;
507
- top: 100%;
508
- left: 50%;
509
- margin-left: -5px;
510
- border-width: 5px;
511
- border-style: solid;
512
- border-color: #222 transparent transparent transparent;
513
- }
514
-
515
- .rex-add-coordinates ul li.add-pitch:hover .rex-tooltiptext {
516
- visibility: visible;
517
- margin-top: -18px;
518
- opacity: 1;
519
- }
520
-
521
- @media (max-width: 1199px) {
522
- .pnlm-container {
523
- width: 100%!important;
524
- }
525
- /* div.custom-tooltip span {
526
- width: 420px!important;
527
- } */
528
- .custom-tooltip p {
529
- width: 420px;
530
- }
531
- .custom-tooltip span img {
532
- height: 230px;
533
- width: 420px;
534
- }
535
- }
536
-
537
- @media (max-width: 991px) {
538
- /* div.custom-tooltip span {
539
- width: 540px!important;
540
- } */
541
- .custom-tooltip p {
542
- width: 530px;
543
- }
544
- .custom-tooltip span img {
545
- height: 310px;
546
- width: 540px;
547
- }
548
- }
549
-
550
- @media (max-width: 575px) {
551
- .pano-wrap .cross {
552
- top: 2px;
553
- right: 1px;
554
- }
555
- }
556
-
557
-
558
- /*------------------------------panolens layout style-----------------------------*/
559
-
560
- .post-type-wpvr_item #poststuff #post-body {
561
- margin-right: 0;
562
- display: flex;
563
- flex-flow: row wrap;
564
- }
565
-
566
- .post-type-wpvr_item #post-body-content {
567
- width: 100%;
568
- min-width: 463px;
569
- float: none;
570
- }
571
-
572
- .postbox-container {
573
- float: none;
574
- }
575
-
576
- .post-type-wpvr_item #post-body #postbox-container-1 {
577
- float: none;
578
- margin-right: 0;
579
- width: 650px;
580
- order: 2;
581
- }
582
-
583
- .post-type-wpvr_item #post-body #postbox-container-1 .iframe-wrapper {
584
- max-width: 625px;
585
- }
586
-
587
- .post-type-wpvr_item #post-body #postbox-container-1 #side-sortables {
588
- width: 100%;
589
- }
590
-
591
- .post-type-wpvr_item #post-body #postbox-container-2 {
592
- order: 1;
593
- width: calc(100% - 670px);
594
- margin-right: 20px;
595
- }
596
-
597
-
598
- /*------------------------------panolens tab style-----------------------------*/
599
-
600
- .pano-setup * {
601
- box-sizing: border-box;
602
- }
603
-
604
-
605
- /*-----------switcher style------- */
606
-
607
- .wpvr-switcher {
608
- position: relative;
609
- top: 2px;
610
- }
611
-
612
- .wpvr-switcher input[type="checkbox"] {
613
- display: none;
614
- }
615
-
616
- .wpvr-switcher label {
617
- display: block;
618
- position: relative;
619
- cursor: pointer;
620
- outline: none;
621
- border-radius: 80px;
622
- user-select: none;
623
- width: 44px;
624
- height: 24px;
625
- border-radius: 14px;
626
- background-color: #f7f7fa;
627
- border: 1px solid #e6e6ec;
628
- transition: all 0.3s ease;
629
- }
630
-
631
- .wpvr-switcher label:before {
632
- display: none;
633
- }
634
-
635
- .wpvr-switcher label:after {
636
- content: ""!important;
637
- width: 16px!important;
638
- height: 16px!important;
639
- border-radius: 9px!important;
640
- filter: drop-shadow(0px 2px 1px rgba(193, 193, 218, 0.45));
641
- background-color: #fff;
642
- border-radius: 100%!important;
643
- position: absolute!important;
644
- top: 3px!important;
645
- left: 4px!important;
646
- transition: all 0.3s ease!important;
647
- transform: none!important;
648
- margin: 0!important;
649
- }
650
-
651
- .wpvr-switcher input[type="checkbox"]:checked+label {
652
- border-color: #201cfe;
653
- background-color: #201cfe;
654
- }
655
-
656
- .wpvr-switcher input[type="checkbox"]:checked+label:after {
657
- margin-left: 19px!important;
658
- filter: none;
659
- }
660
-
661
- .wpvr-switcher input:disabled+label {
662
- cursor: not-allowed;
663
- }
664
- /*-----------/switcher style------- */
665
-
666
-
667
- /*-----------switcher-v2 style------- */
668
- .wpvr-switcher-v2 {
669
- margin-bottom: 0!important;
670
- }
671
- .wpvr-switcher-v2 input[type="checkbox"] {
672
- display: none;
673
- }
674
- .wpvr-switcher-v2 .switcher-box {
675
- display: block;
676
- position: relative;
677
- cursor: pointer;
678
- outline: none;
679
- border-radius: 80px;
680
- user-select: none;
681
- /* width: 36px;
682
- height: 18px; */
683
- width: 44px;
684
- height: 24px;
685
- border-radius: 14px;
686
- background-color: #f7f7fa;
687
- border: 1px solid #e6e6ec;
688
- transition: all 0.3s ease;
689
- }
690
- .wpvr-switcher-v2 .switcher-box:after {
691
- content: "";
692
- /* width: 12px;
693
- height: 12px; */
694
- width: 16px;
695
- height: 16px;
696
- filter: drop-shadow(0px 2px 1px rgba(193, 193, 218, 0.45));
697
- background-color: #fff;
698
- border-radius: 100%;
699
- position: absolute;
700
- top: 3px;
701
- left: 4px;
702
- transition: all 0.3s ease;
703
- transform: none;
704
- margin: 0;
705
- }
706
- .wpvr-switcher-v2 input[type="checkbox"]:checked + .switcher-box {
707
- border-color: #201cfe;
708
- background-color: #201cfe;
709
- }
710
- .wpvr-switcher-v2 input[type="checkbox"]:checked + .switcher-box:after {
711
- margin-left: 19px!important;
712
- filter: none;
713
- }
714
- .wpvr-switcher-v2 input:disabled + .switcher-box {
715
- cursor: not-allowed;
716
- }
717
- /*-----------end switcher-v2 style------- */
718
-
719
-
720
- .pano-setup {
721
- position: relative;
722
- font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
723
- direction: ltr;
724
- }
725
-
726
- .rex-pano-tabs {
727
- position: relative;
728
- display: flex;
729
- flex-flow: row;
730
- align-items: flex-start;
731
- justify-content: flex-start;
732
- margin-left: -12px;
733
- }
734
-
735
- .rex-pano-tabs .rex-pano-tab-nav {
736
- text-align: left;
737
- width: 120px;
738
- padding: 0;
739
- }
740
-
741
- .rex-pano-tabs .rex-pano-tab-nav ul {
742
- margin: 0;
743
- }
744
-
745
- .rex-pano-tabs .rex-pano-tab-nav li {
746
- display: block;
747
- margin: 0;
748
- border-bottom: 1px solid #e7e7ec;
749
- }
750
-
751
- .rex-pano-tabs .rex-pano-tab-nav li:last-child {
752
- border-bottom: none;
753
- }
754
-
755
- .rex-pano-tabs .rex-pano-tab-nav li.logo {
756
- height: 110px;
757
- padding: 10px;
758
- display: flex;
759
- flex-flow: column;
760
- align-items: center;
761
- justify-content: center;
762
- }
763
-
764
- .rex-pano-tabs .rex-pano-tab-nav li span {
765
- text-transform: uppercase;
766
- color: #a8a7be;
767
- cursor: pointer;
768
- font-weight: 500;
769
- font-size: 14px;
770
- -webkit-user-select: none;
771
- -moz-user-select: none;
772
- -ms-user-select: none;
773
- user-select: none;
774
- display: flex;
775
- flex-flow: column;
776
- align-items: center;
777
- justify-content: center;
778
- text-align: center;
779
- height: 124px;
780
- padding: 0 20px;
781
- position: relative;
782
- transition: all 0.3s ease;
783
- }
784
-
785
- .rex-pano-tabs .rex-pano-tab-nav li span img {
786
- margin-bottom: 10px;
787
- }
788
-
789
- .rex-pano-tabs .rex-pano-tab-nav li span img.hover {
790
- display: none;
791
- }
792
-
793
- .rex-pano-tabs .rex-pano-tab-nav li:hover>span,
794
- .rex-pano-tabs .rex-pano-tab-nav li.active>span {
795
- color: #fff;
796
- background: #004efa;
797
- }
798
-
799
- .rex-pano-tabs .rex-pano-tab-nav li:hover span img.hover,
800
- .rex-pano-tabs .rex-pano-tab-nav li.active span img.hover {
801
- display: block;
802
- }
803
-
804
- .rex-pano-tabs .rex-pano-tab-nav li:hover span img.regular,
805
- .rex-pano-tabs .rex-pano-tab-nav li.active span img.regular {
806
- display: none;
807
- }
808
-
809
- .rex-pano-sub-tabs .rex-pano-tab,
810
- .rex-pano-tabs .rex-pano-tab {
811
- display: none;
812
- }
813
-
814
- .rex-pano-sub-tabs .rex-pano-tab.active,
815
- .rex-pano-tabs .rex-pano-tab.active {
816
- display: block !important;
817
- }
818
-
819
- .rex-pano-sub-tabs .rex-pano-tab.clearfix,
820
- .rex-pano-tabs .rex-pano-tab.clearfix {
821
- overflow: initial;
822
- }
823
-
824
- .pano-alert {
825
- position: absolute;
826
- top: 50%;
827
- left: 62%;
828
- display: none;
829
- -webkit-transform: translate(-50%, -50%);
830
- -ms-transform: translate(-50%, -50%);
831
- -o-transform: translate(-50%, -50%);
832
- transform: translate(-50%, -50%);
833
- z-index: 9;
834
- max-width: 605px;
835
- width: 100%;
836
- }
837
-
838
-
839
-
840
- /*--------------tab content style----------------*/
841
-
842
- .rex-pano-tab-content {
843
- background: #f6f6f8;
844
- width: calc(100% - 120px);
845
- position: relative;
846
- align-self: stretch;
847
- border-radius: 20px;
848
- }
849
-
850
- .rex-pano-tab-content .title {
851
- font-size: 18px;
852
- font-weight: 600;
853
- color: #4775f6;
854
- margin: 0 0 40px 0;
855
- text-transform: capitalize;
856
- background: #f9fbff;
857
- border: 1px solid #ecf1fe;
858
- padding: 15px 30px;
859
- width: 100%;
860
- }
861
-
862
- .rex-pano-tab-content .single-hotspot .title span {
863
- color: #252525;
864
- }
865
-
866
- .rex-pano-tab-content .title .scene-num,
867
- .rex-pano-tab-content .single-hotspot .title .hotspot-num {
868
- color: #4775f6;
869
- }
870
-
871
- .rex-pano-tab-content .title i {
872
- margin-right: 10px;
873
- }
874
-
875
- .rex-pano-tab-content .rex-pano-tab.streetview,
876
- .rex-pano-tab-content .rex-pano-tab.background-tour,
877
- .rex-pano-tab-content .rex-pano-tab.video,
878
- .rex-pano-tab-content .rex-pano-tab.export,
879
- .rex-pano-tab-content .rex-pano-tab.general {
880
- padding: 20px;
881
- }
882
-
883
- .pro-tag {
884
- display: block;
885
- height: 19px;
886
- border-radius: 3px;
887
- filter: drop-shadow(0px 5px 4px rgba(105, 115, 137, 0.2));
888
- background-color: #004efa;
889
- font-size: 13px;
890
- color: #ffffff;
891
- font-weight: 400;
892
- padding: 0 6px;
893
- text-transform: capitalize;
894
- position: absolute;
895
- right: -8px;
896
- top: -11px;
897
- }
898
-
899
-
900
- /* ----general inner tab style----- */
901
-
902
- .rex-pano-tab-content .general .general-inner-tab .inner-nav {
903
- margin: 0 0 25px 0;
904
- padding: 0;
905
- list-style: none;
906
- display: flex;
907
- flex-flow: row;
908
- align-items: center;
909
- }
910
-
911
- .rex-pano-tab-content .general .general-inner-tab .inner-nav li {
912
- margin-right: 15px;
913
- margin-bottom: 0;
914
- }
915
-
916
- .rex-pano-tab-content .general .general-inner-tab .inner-nav li:last-child {
917
- margin-right: 0;
918
- }
919
-
920
- .rex-pano-tab-content .general .general-inner-tab .inner-nav li>span {
921
- border-radius: 5px;
922
- filter: drop-shadow(0px 2px 2px rgba(223, 223, 249, 0.42));
923
- background-color: #ffffff;
924
- font-size: 14px;
925
- color: #a8a7be;
926
- font-weight: 500;
927
- text-transform: capitalize;
928
- padding: 10px 15px;
929
- position: relative;
930
- display: flex;
931
- flex-flow: row;
932
- align-items: center;
933
- justify-content: center;
934
- transition: all 0.3s ease;
935
- cursor: pointer;
936
- }
937
-
938
- .rex-pano-tab-content .general .general-inner-tab .inner-nav li>span img {
939
- margin-right: 10px;
940
- }
941
-
942
- .rex-pano-tab-content .general .general-inner-tab .inner-nav li>span img.hover {
943
- display: none;
944
- }
945
-
946
- .rex-pano-tab-content .general .general-inner-tab .inner-nav li.active>span img.hover {
947
- display: block;
948
- }
949
-
950
- .rex-pano-tab-content .general .general-inner-tab .inner-nav li.active>span img.regular {
951
- display: none;
952
- }
953
-
954
- .rex-pano-tab-content .general .general-inner-tab .inner-nav li.active>span {
955
- background: #004efa;
956
- color: #fff;
957
- }
958
-
959
- .rex-pano-tab-content .general .general-inner-tab .inner-nav li.active .pro-tag {
960
- color: #004efa;
961
- background: #fff;
962
- }
963
-
964
- .rex-pano-tab-content .general .general-inner-tab .inner-nav li.vr-documentation {
965
- margin-left: auto;
966
- }
967
-
968
- .rex-pano-tab-content .general .general-inner-tab .inner-nav li.vr-documentation a {
969
- border-radius: 5px;
970
- background-color: rgb(32, 28, 254);
971
- height: 39px;
972
- line-height: 39px;
973
- font-size: 15px;
974
- color: #fff;
975
- display: inline-block;
976
- padding: 0 20px;
977
- box-shadow: none;
978
- margin-top: auto;
979
- transition: all 0.3s ease;
980
- text-decoration: none;
981
- }
982
-
983
-
984
- /* ---inner tab content style---- */
985
-
986
- .rex-pano-tab-content .general .inner-nav-content .inner-single-content {
987
- display: none;
988
- }
989
-
990
- .rex-pano-tab-content .general .inner-nav-content .inner-single-content.active {
991
- display: block;
992
- }
993
-
994
- .rex-pano-tab-content .general .inner-nav-content .inner-single-content .content-wrapper {
995
- display: flex;
996
- flex-flow: row wrap;
997
- border-bottom: 1px solid #e4e4e4;
998
- }
999
-
1000
- .rex-pano-tab-content .general .inner-nav-content .inner-single-content .content-wrapper .left {
1001
- width: 50%;
1002
- padding-right: 15px;
1003
- border-right: 1px solid #e4e4e4;
1004
- }
1005
-
1006
- .rex-pano-tab-content .general .inner-nav-content .inner-single-content .content-wrapper .right {
1007
- width: 50%;
1008
- padding-left: 15px;
1009
- }
1010
-
1011
-
1012
- /* ------img preview------- */
1013
-
1014
- .rex-pano-tab-content .general .single-settings.preview-setting {
1015
- display: block;
1016
- margin-bottom: 20px;
1017
- }
1018
-
1019
- .rex-pano-tab-content .general .single-settings.preview-setting .hints {
1020
- display: block;
1021
- font-weight: 400;
1022
- font-style: italic;
1023
- font-size: 14px;
1024
- padding: 0;
1025
- width: 100%;
1026
- margin-top: 4px;
1027
- color: #aaa;
1028
- }
1029
-
1030
- .rex-pano-tab-content .general .single-settings.preview-setting>span {
1031
- margin-bottom: 10px;
1032
- }
1033
-
1034
- .rex-pano-tab-content .general .single-settings.preview-setting .preview-attachment-url,
1035
- .rex-pano-tab-content .general .single-settings.preview-setting .preview-upload {
1036
- display: none;
1037
- }
1038
-
1039
- .rex-pano-tab-content .general .single-settings.preview-setting .img-upload-frame {
1040
- width: 100%;
1041
- height: 220px;
1042
- border-radius: 5px;
1043
- background-color: #ffffff;
1044
- background-repeat: no-repeat;
1045
- background-position: center;
1046
- background-size: cover;
1047
- position: relative;
1048
- }
1049
-
1050
- .rex-pano-tab-content .general .single-settings.preview-setting .img-upload-frame label {
1051
- width: 100%;
1052
- height: 100%;
1053
- display: flex;
1054
- flex-flow: column;
1055
- align-items: center;
1056
- justify-content: center;
1057
- }
1058
-
1059
- .rex-pano-tab-content .general .single-settings.preview-setting .img-upload-frame label span {
1060
- font-size: 14px;
1061
- color: #363b4e;
1062
- font-weight: 400;
1063
- margin-top: 10px;
1064
- }
1065
-
1066
- .rex-pano-tab-content .general .single-settings.preview-setting .img-upload-frame label img {
1067
- max-width: 100%;
1068
- }
1069
-
1070
- .rex-pano-tab-content .general .single-settings.preview-setting .img-upload-frame.img-uploaded span,
1071
- .rex-pano-tab-content .general .single-settings.preview-setting .img-upload-frame.img-uploaded img {
1072
- display: none;
1073
- }
1074
-
1075
-
1076
- /* -----remove attachment style----- */
1077
-
1078
- .rex-pano-tab-content .general .single-settings.preview-setting .remove-attachment {
1079
- position: absolute;
1080
- right: 6px;
1081
- top: 6px;
1082
- background: #fff;
1083
- padding: 5px;
1084
- text-indent: -9999px;
1085
- width: 24px;
1086
- height: 24px;
1087
- line-height: normal;
1088
- border-radius: 100%;
1089
- cursor: pointer;
1090
- display: none;
1091
- }
1092
-
1093
- .rex-pano-tab-content .general .single-settings.preview-setting .img-upload-frame.img-uploaded span.remove-attachment {
1094
- display: block;
1095
- }
1096
-
1097
- .rex-pano-tab-content .general .single-settings.preview-setting .remove-attachment:before,
1098
- .rex-pano-tab-content .general .single-settings.preview-setting .remove-attachment:after {
1099
- content: "";
1100
- position: absolute;
1101
- left: 50%;
1102
- top: 50%;
1103
- width: 2px;
1104
- height: calc(100% - 14px);
1105
- background: #201cfe;
1106
- transform: translate(-50%, -50%) rotate(45deg);
1107
- transform-origin: center;
1108
- }
1109
-
1110
- .rex-pano-tab-content .general .single-settings.preview-setting .remove-attachment:after {
1111
- transform: translate(-50%, -50%) rotate(-45deg);
1112
- }
1113
-
1114
-
1115
- /* ---autoload--- */
1116
-
1117
- .rex-pano-tab-content .background-tour .single-settings.inline-style,
1118
- .rex-pano-tab-content .general .inner-nav-content .single-settings:not(.preview-setting) {
1119
- width: 100%;
1120
- padding: 14px 15px;
1121
- border-radius: 5px;
1122
- margin-bottom: 20px;
1123
- background-color: #ffffff;
1124
- display: flex;
1125
- flex-flow: row;
1126
- align-items: center;
1127
- justify-content: space-between;
1128
- }
1129
-
1130
- .rex-pano-tab-content .general .inner-nav-content .single-settings.preview-img-message input {
1131
- padding: 2px 7px;
1132
- height: 33px;
1133
- }
1134
-
1135
- .rex-pano-tab-content .background-tour .single-settings.inline-style .wpvr-switcher,
1136
- .rex-pano-tab-content .general .inner-nav-content .single-settings .wpvr-switcher {
1137
- min-width: auto;
1138
- padding-right: 0;
1139
- margin-left: auto;
1140
- position: relative;
1141
- }
1142
-
1143
-
1144
- /* ---scene-fade-duration--- */
1145
-
1146
- .rex-pano-tab-content .general .inner-nav-content .single-settings.scene-fade-duration input {
1147
- width: 70px;
1148
- padding: 2px 7px;
1149
- height: 33px;
1150
- margin-left: auto;
1151
- }
1152
-
1153
-
1154
- /* ---autorotationdata--- */
1155
-
1156
- .rex-pano-tab-content .general .inner-nav-content .single-settings.autorotationdata input {
1157
- width: 70px;
1158
- padding: 2px 7px;
1159
- height: 33px;
1160
- margin-left: auto;
1161
- }
1162
-
1163
- .rex-pano-tab-content .general .inner-nav-content .autorotationdata-wrapper {
1164
- width: 100%;
1165
- padding: 25px 20px;
1166
- border-radius: 5px;
1167
- background-color: #ffffff;
1168
- display: none;
1169
- margin-top: -18px;
1170
- margin-bottom: 20px;
1171
- }
1172
-
1173
- .rex-pano-tab-content .general .inner-nav-content .autorotationdata-wrapper .single-settings {
1174
- padding: 0;
1175
- border-radius: 0;
1176
- }
1177
-
1178
- .rex-pano-tab-content .general .inner-nav-content .gyro-orientation {
1179
- display: none;
1180
- margin-bottom: 20px;
1181
- }
1182
-
1183
-
1184
- /* ---icon control settings--- */
1185
-
1186
- .rex-pano-tab-content .general .control-settings-content.inner-single-content .single-settings>span {
1187
- min-width: 106px;
1188
- padding-right: 10px;
1189
- }
1190
-
1191
- .rex-pano-tab-content .general .control-settings-content.inner-single-content .single-settings .wpvr-switcher {
1192
- margin-left: 0;
1193
- min-width: auto!important;
1194
- padding-right: 0!important;
1195
- }
1196
-
1197
- .rex-pano-tab-content .general .inner-nav-content .inner-single-content .color-icon {
1198
- margin-left: auto;
1199
- display: flex;
1200
- flex-flow: row;
1201
- align-items: center;
1202
- height: 32px;
1203
- border-right: 1px solid #ececf5;
1204
- padding-right: 15px;
1205
- margin-right: 15px;
1206
- }
1207
-
1208
- .rex-pano-tab-content .general .inner-nav-content .color-icon .icons {
1209
- position: relative;
1210
- top: 6px;
1211
- }
1212
-
1213
- .rex-pano-tab-content .general .inner-nav-content .color-icon .icons-selector .selector {
1214
- border: 1px solid #e5e8f3;
1215
- height: 32px;
1216
- background-color: #f7f7fa;
1217
- border-radius: 3px;
1218
- }
1219
-
1220
- .rex-pano-tab-content .general .inner-nav-content .color-icon .icons-selector .selected-icon {
1221
- width: 40px;
1222
- }
1223
-
1224
- .rex-pano-tab-content .general .inner-nav-content .color-icon .icons-selector .selected-icon i {
1225
- line-height: 30px;
1226
- font-size: 16px;
1227
- }
1228
-
1229
- .rex-pano-tab-content .general .inner-nav-content .color-icon .icons-selector .selector-button {
1230
- width: 32px;
1231
- border-left: 1px solid #e5e8f3;
1232
- }
1233
-
1234
- .rex-pano-tab-content .general .inner-nav-content .color-icon .icons-selector .selector-button i {
1235
- line-height: 30px;
1236
- text-align: center;
1237
- }
1238
-
1239
- .rex-pano-tab-content .general .inner-nav-content .color-icon .colors {
1240
- margin-right: 13px;
1241
- position: relative;
1242
- top: 1px;
1243
- }
1244
-
1245
- .rex-pano-tab-content .general .inner-nav-content .color-icon .colors input[type="color"] {
1246
- border: none;
1247
- padding: 0;
1248
- box-shadow: none;
1249
- margin: 0;
1250
- height: 36px;
1251
- display: block;
1252
- width: 36px;
1253
- }
1254
-
1255
- .rex-pano-tab-content .general .inner-nav-content .icons-selector .selector-popup {
1256
- width: 280px;
1257
- }
1258
-
1259
-
1260
- /* ---advanced settings--- */
1261
-
1262
- .rex-pano-tab-content .general .advanced-settings-content .single-settings .wpvr-switcher {
1263
- margin-left: auto;
1264
- }
1265
-
1266
- .rex-pano-tab-content .general .advanced-settings-content .single-settings .field-tooltip {
1267
- top: 4px;
1268
- }
1269
-
1270
- .rex-pano-tab-content .general .advanced-settings-content .gallery_title {
1271
- display: none;
1272
- margin-bottom: 20px;
1273
- }
1274
-
1275
-
1276
- /* -----audio setting style----- */
1277
-
1278
- .rex-pano-tab-content .general .inner-nav-content .inner-single-content .bg-music-content {
1279
- width: 100%;
1280
- padding: 25px 20px;
1281
- border-radius: 5px;
1282
- background-color: #ffffff;
1283
- margin-top: -18px;
1284
- margin-bottom: 20px;
1285
- }
1286
-
1287
- .rex-pano-tab-content .general .inner-nav-content .bg-music-content .single-settings {
1288
- padding: 0;
1289
- border-radius: 0;
1290
- }
1291
-
1292
- .rex-pano-tab-content .general .inner-nav-content .single-settings.audio-setting {
1293
- display: block;
1294
- position: relative;
1295
- }
1296
-
1297
- .rex-pano-tab-content .general .inner-nav-content .single-settings.audio-setting>span {
1298
- margin-bottom: 5px;
1299
- }
1300
-
1301
- .rex-pano-tab-content .general .inner-nav-content .single-settings.audio-setting input[type="text"] {
1302
- padding: 6px 60px 6px 14px;
1303
- max-width: 100%;
1304
- }
1305
-
1306
- .rex-pano-tab-content .general .inner-nav-content .single-settings.audio-setting .audio-upload {
1307
- padding: 9px 15px;
1308
- background: #004efa;
1309
- border: none;
1310
- position: absolute;
1311
- right: 5px;
1312
- bottom: 5px;
1313
- border-radius: 5px;
1314
- cursor: pointer;
1315
- }
1316
-
1317
- .rex-pano-tab-content .general .inner-nav-content .single-settings.audio-setting .audio-upload:focus {
1318
- outline: none;
1319
- }
1320
- /* -----------logo upload style-------- */
1321
-
1322
-
1323
- /*----company-info style-----*/
1324
- .rex-pano-tab-content .general .inner-nav-content .company-info-wrapper {
1325
- width: 100%;
1326
- padding: 25px 20px;
1327
- border-radius: 5px;
1328
- background-color: #ffffff;
1329
- margin-top: -18px;
1330
- margin-bottom: 20px;
1331
- }
1332
-
1333
- .rex-pano-tab-content .general .inner-nav-content .company-info-wrapper .single-settings {
1334
- padding: 0;
1335
- border-radius: 0;
1336
- }
1337
-
1338
- .rex-pano-tab-content .general .inner-nav-content .single-settings.cp-logo-area {
1339
- flex-wrap: wrap;
1340
- margin-bottom: 2px;
1341
- }
1342
-
1343
- .rex-pano-tab-content .general .inner-nav-content .single-settings.cp-logo-area .logo-title {
1344
- width: calc(100% - 125px);
1345
- }
1346
-
1347
- .rex-pano-tab-content .general .inner-nav-content .single-settings.cp-logo-area .cp-logo-upload {
1348
- display: none;
1349
- }
1350
-
1351
- .rex-pano-tab-content .general .inner-nav-content .single-settings.cp-logo-area .cp-logo-attachment-url {
1352
- display: none;
1353
- }
1354
-
1355
- .rex-pano-tab-content .general .inner-nav-content .single-settings.cp-logo-area .logo-upload-frame {
1356
- width: 120px;
1357
- height: 90px;
1358
- border: 1px dashed #dae3fd;
1359
- border-radius: 5px;
1360
- }
1361
-
1362
- .rex-pano-tab-content .general .inner-nav-content .single-settings.cp-logo-area .logo-upload-frame label {
1363
- height: 100%;
1364
- width: 100%;
1365
- display: flex;
1366
- flex-flow: column;
1367
- align-items: center;
1368
- justify-content: center;
1369
- text-align: center;
1370
- }
1371
-
1372
- .rex-pano-tab-content .general .inner-nav-content .single-settings.cp-logo-area .logo-upload-frame img {
1373
- max-width: 100px;
1374
- max-height: 70px;
1375
- display: block;
1376
- margin: 0 auto;
1377
- }
1378
-
1379
- .rex-pano-tab-content .general .inner-nav-content .single-settings.cp-logo-area .logo-upload-frame img.placeholder-icon {
1380
- width: 32px;
1381
- }
1382
-
1383
- .rex-pano-tab-content .general .inner-nav-content .single-settings.cp-logo-area .logo-upload-frame.img-uploaded img.placeholder-icon {
1384
- display: none;
1385
- }
1386
-
1387
- .rex-pano-tab-content .general .inner-nav-content .single-settings.cp-logo-area .hints {
1388
- display: block;
1389
- font-weight: 400;
1390
- font-style: italic;
1391
- font-size: 14px;
1392
- padding: 0;
1393
- width: 100%;
1394
- margin-top: 2px;
1395
- color: #aaa;
1396
- }
1397
-
1398
- .rex-pano-tab-content .general .inner-nav-content .single-settings.cp-details {
1399
- display: block;
1400
- }
1401
-
1402
- .rex-pano-tab-content .general .inner-nav-content .single-settings.cp-details span {
1403
- margin-bottom: 7px;
1404
- padding: 0;
1405
- min-width: auto;
1406
- }
1407
-
1408
- .rex-pano-tab-content .general .inner-nav-content .single-settings.cp-details textarea {
1409
- border: 1px solid #dae3fd;
1410
- width: 100%;
1411
- box-shadow: none;
1412
- }
1413
-
1414
- .rex-pano-tab-content .general .inner-nav-content .single-settings.cp-details textarea:focus {
1415
- outline: none;
1416
- }
1417
-
1418
-
1419
- /* --------Zoom Preferences-------- */
1420
- .rex-pano-tab-content .general .inner-nav-content .single-settings.czscenedata input {
1421
- width: 70px;
1422
- padding: 2px 7px;
1423
- height: 33px;
1424
- margin-left: auto;
1425
- }
1426
-
1427
- /* --------------end general inner tab style--------------- */
1428
-
1429
- .rex-pano-tab-content .general .inner-nav-content .wpvr-pro {
1430
- display: block;
1431
- }
1432
-
1433
- .rex-pano-tab-content .general .inner-nav-content .wpvr-pro:focus {
1434
- outline: none;
1435
- box-shadow: none;
1436
- }
1437
-
1438
- .rex-pano-tab-content .general .inner-nav-content .wpvr-pro .pro-tag {
1439
- right: 55px;
1440
- top: 2px;
1441
- background-color: #fff;
1442
- color: #004efa;
1443
- }
1444
-
1445
-
1446
- /* -------shortcode area style-------- */
1447
-
1448
- .wpvr-use-shortcode {
1449
- background: #fff;
1450
- border-radius: 5px;
1451
- margin-top: 20px;
1452
- width: 100%;
1453
- }
1454
-
1455
- .wpvr-use-shortcode .area-title {
1456
- width: 100%;
1457
- margin: 0;
1458
- font-size: 17px;
1459
- line-height: normal;
1460
- border-bottom: 1px solid #eee;
1461
- padding: 10px 15px;
1462
- font-weight: 600;
1463
- }
1464
-
1465
- .wpvr-use-shortcode .shortcode-wrapper {
1466
- padding: 0 20px 20px 20px;
1467
- display: flex;
1468
- flex-flow: row wrap;
1469
- }
1470
-
1471
- .wpvr-use-shortcode .single-shortcode {
1472
- width: 100%;
1473
- flex: 1;
1474
- background: #f6f6f8;
1475
- padding: 12px 15px 15px 15px;
1476
- border-radius: 5px;
1477
- margin-top: 20px;
1478
- }
1479
-
1480
- .wpvr-use-shortcode .shortcode-wrapper.col2 .single-shortcode {
1481
- width: calc(50% - 10px);
1482
- flex: 1;
1483
- margin-right: 10px;
1484
- }
1485
-
1486
- .wpvr-use-shortcode .shortcode-wrapper.col2 .single-shortcode.gutenberg {
1487
- display: block;
1488
- margin-right: 0;
1489
- margin-left: 10px;
1490
- }
1491
-
1492
- .wpvr-use-shortcode .shortcode-title {
1493
- font-size: 16px;
1494
- font-weight: 500;
1495
- display: block;
1496
- }
1497
-
1498
- .wpvr-use-shortcode .single-shortcode .field-wapper span {
1499
- display: block;
1500
- font-size: 14px;
1501
- line-height: 1.3;
1502
- margin-top: 10px;
1503
- }
1504
-
1505
- .wpvr-use-shortcode .single-shortcode .shortcode-field {
1506
- background: #fff;
1507
- display: inline-flex;
1508
- align-items: center;
1509
- justify-content: space-between;
1510
- padding: 8px 10px;
1511
- border-radius: 5px;
1512
- margin-top: 10px;
1513
- min-width: 183px;
1514
- }
1515
-
1516
- .wpvr-use-shortcode .single-shortcode .shortcode-field p {
1517
- margin: 0;
1518
- font-size: 16px;
1519
- font-weight: 500;
1520
- word-break: break-all;
1521
- }
1522
-
1523
- .wpvr-use-shortcode .single-shortcode .shortcode-field .wpvr-copy-shortcode {
1524
- background: #201cfe;
1525
- width: 36px;
1526
- height: 36px;
1527
- border-radius: 5px;
1528
- cursor: pointer;
1529
- margin-left: 10px;
1530
- margin-top: 0;
1531
- display: flex;
1532
- flex-flow: column;
1533
- align-items: center;
1534
- justify-content: center;
1535
- }
1536
-
1537
- .wpvr-use-shortcode .single-shortcode .shortcode-field .wpvr-copy-shortcode img {
1538
- width: 22px;
1539
- }
1540
-
1541
- .wpvr-use-shortcode .single-shortcode .wpvr-copied-notice {
1542
- display: inline-block!important;
1543
- margin-left: 10px;
1544
- }
1545
-
1546
-
1547
- /*----checkbox style----*/
1548
-
1549
- .rex-pano-tab .radio-btn {
1550
- position: relative;
1551
- margin: 0;
1552
- }
1553
-
1554
- .rex-pano-tab .styled-radio {
1555
- position: absolute;
1556
- opacity: 0;
1557
- visibility: hidden;
1558
- }
1559
-
1560
- .rex-pano-tab .styled-radio+label {
1561
- position: relative;
1562
- cursor: pointer;
1563
- padding: 0;
1564
- color: #555555;
1565
- font-size: 15px;
1566
- margin-bottom: 3px;
1567
- letter-spacing: 0;
1568
- width: 30px;
1569
- margin: 0 auto;
1570
- }
1571
-
1572
- .rex-pano-tab .styled-radio+label:before {
1573
- border: 1px solid #ddd;
1574
- border-radius: 100%;
1575
- content: "";
1576
- display: inline-block;
1577
- height: 18px;
1578
- margin-right: 6px;
1579
- vertical-align: text-top;
1580
- width: 18px;
1581
- -webkit-transition: all 0.3s ease;
1582
- -o-transition: all 0.3s ease;
1583
- transition: all 0.3s ease;
1584
- }
1585
-
1586
- .rex-pano-tab .styled-radio:focus+label:before {
1587
- box-shadow: 0 0 0 3px rgba(0, 0, 0, 0.12);
1588
- }
1589
-
1590
- .rex-pano-tab .styled-radio:disabled+label {
1591
- color: #b8b8b8;
1592
- cursor: auto;
1593
- }
1594
-
1595
- .rex-pano-tab .styled-radio:disabled+label:before {
1596
- box-shadow: none;
1597
- background: #ddd;
1598
- }
1599
-
1600
- .rex-pano-tab .styled-radio:checked+label:before {
1601
- border-color: #4775f6;
1602
- }
1603
-
1604
- .rex-pano-tab .styled-radio+label:after {
1605
- content: "";
1606
- color: #000;
1607
- left: 5px;
1608
- position: absolute;
1609
- top: 5px;
1610
- font-size: 18px;
1611
- opacity: 0;
1612
- visibility: hidden;
1613
- width: 10px;
1614
- height: 10px;
1615
- background: #4775f6;
1616
- border-radius: 100%;
1617
- -webkit-transition: all 0.3s ease;
1618
- ;
1619
- -o-transition: all 0.3s ease;
1620
- ;
1621
- transition: all 0.3s ease;
1622
- ;
1623
- }
1624
-
1625
- .rex-pano-tab .styled-radio:checked+label:after {
1626
- opacity: 1;
1627
- visibility: visible;
1628
- }
1629
-
1630
-
1631
- /*--------end checkbox style-------*/
1632
-
1633
- .rex-pano-tab .single-settings {
1634
- display: flex;
1635
- flex-flow: row;
1636
- align-items: center;
1637
- justify-content: flex-start;
1638
- margin-bottom: 30px;
1639
- }
1640
-
1641
- .rex-pano-tab .single-settings:last-child {
1642
- margin-bottom: 0px;
1643
- }
1644
-
1645
- .rex-pano-tab .single-settings>span {
1646
- min-width: 170px;
1647
- font-size: 16px;
1648
- display: block;
1649
- color: #494b51;
1650
- font-weight: 500;
1651
- }
1652
-
1653
- .rex-pano-tab.general .single-settings>span {
1654
- min-width: 200px;
1655
- padding-right: 20px;
1656
- }
1657
-
1658
- .general .auto-rotation-control-wrapper .single-settings>span {
1659
- min-width: 224px;
1660
- }
1661
-
1662
- .rex-pano-tab .single-settings ul {
1663
- margin: 0;
1664
- }
1665
-
1666
- .rex-pano-tab .single-settings ul li {
1667
- display: inline-block;
1668
- margin-right: 20px;
1669
- }
1670
-
1671
- .rex-pano-tab input[type="password"],
1672
- .rex-pano-tab input[type="email"],
1673
- .rex-pano-tab input[type="number"],
1674
- .rex-pano-tab input[type="text"] {
1675
- border: 1px solid #dae3fd;
1676
- box-shadow: none;
1677
- width: 100%;
1678
- max-width: 400px;
1679
- height: 46px;
1680
- padding: 10px 20px;
1681
- font-size: 16px;
1682
- color: #454545;
1683
- border-radius: 3px;
1684
- }
1685
-
1686
- .single-scene .scene-content .scene-setting {
1687
- max-width: 440px;
1688
- }
1689
-
1690
-
1691
- /*------------input field tooltip-----------*/
1692
-
1693
- .hotspot-icon input {
1694
- width: 20% !important;
1695
- }
1696
-
1697
- .rex-pano-tab.streetview .single-settings .field-tooltip,
1698
- .rex-pano-tab.backgroundTour .single-settings .field-tooltip,
1699
- .rex-pano-tab.general .single-settings .field-tooltip {
1700
- position: relative;
1701
- top: 2px;
1702
- padding-left: 10px;
1703
- }
1704
-
1705
- .single-scene .scene-setting .field-tooltip {
1706
- position: absolute;
1707
- right: -25px;
1708
- bottom: 13px;
1709
- }
1710
-
1711
- .hotspot-setup .hotspot-setting.custom-icon .field-tooltip {
1712
- position: absolute;
1713
- left: 112px;
1714
- bottom: 13px;
1715
- }
1716
-
1717
- .single-scene .scene-content .scene-setting.scene-upload-wrapper .field-tooltip {
1718
- right: initial;
1719
- left: 112px;
1720
- bottom: inherit;
1721
- top: 5px;
1722
- }
1723
-
1724
- .rex-pano-tab.streetview .single-settings .field-tooltip i,
1725
- .rex-pano-tab.backgroundTour .single-settings .field-tooltip i,
1726
- .single-scene .scene-setting .field-tooltip i,
1727
- .hotspot-setup .hotspot-setting.custom-icon .field-tooltip i,
1728
- .rex-pano-tab.general .single-settings .field-tooltip i {
1729
- font-size: 20px;
1730
- cursor: help;
1731
- }
1732
-
1733
- .rex-pano-tab.streetview .single-settings .field-tooltip span,
1734
- .rex-pano-tab.backgroundTour .single-settings .field-tooltip span,
1735
- .single-scene .scene-setting .field-tooltip span,
1736
- .hotspot-setup .hotspot-setting.custom-icon .field-tooltip span,
1737
- .rex-pano-tab.general .single-settings .field-tooltip span {
1738
- position: absolute;
1739
- top: 50%;
1740
- font-weight: 300;
1741
- background: #444;
1742
- color: #fff;
1743
- display: inline-block;
1744
- min-width: 240px;
1745
- max-width: 280px;
1746
- padding: 7px 8px;
1747
- font-size: 14px;
1748
- left: 40px;
1749
- line-height: 20px;
1750
- border-radius: 3px;
1751
- z-index: 1;
1752
- opacity: 0;
1753
- visibility: hidden;
1754
- -webkit-transform: translateY(-50%);
1755
- -moz-transform: translateY(-50%);
1756
- -ms-transform: translateY(-50%);
1757
- -o-transform: translateY(-50%);
1758
- transform: translateY(-50%);
1759
- -webkit-transition: all 0.5s ease;
1760
- -moz-transition: all 0.5s ease;
1761
- -ms-transition: all 0.5s ease;
1762
- -o-transition: all 0.5s ease;
1763
- transition: all 0.5s ease;
1764
- }
1765
-
1766
- .rex-pano-tab.streetview .single-settings .field-tooltip span:before,
1767
- .rex-pano-tab.backgroundTour .single-settings .field-tooltip span:before,
1768
- .single-scene .scene-setting .field-tooltip span:before,
1769
- .hotspot-setup .hotspot-setting.custom-icon .field-tooltip span:before,
1770
- .rex-pano-tab.general .single-settings .field-tooltip span:before {
1771
- content: "";
1772
- position: absolute;
1773
- left: -9px;
1774
- top: 50%;
1775
- width: 0;
1776
- height: 0;
1777
- border-top: 6px solid transparent;
1778
- border-right: 9px solid #444;
1779
- border-bottom: 6px solid transparent;
1780
- -webkit-transform: translateY(-50%);
1781
- -moz-transform: translateY(-50%);
1782
- -ms-transform: translateY(-50%);
1783
- -o-transform: translateY(-50%);
1784
- transform: translateY(-50%);
1785
- }
1786
-
1787
-
1788
-
1789
- .rex-pano-tab.streetview .single-settings .field-tooltip:hover span,
1790
- .rex-pano-tab.backgroundTour .single-settings .field-tooltip:hover span,
1791
- .single-scene .scene-setting .field-tooltip:hover span,
1792
- .hotspot-setup .hotspot-setting.custom-icon .field-tooltip:hover span,
1793
- .rex-pano-tab.general .single-settings .field-tooltip:hover span {
1794
- opacity: 1;
1795
- visibility: visible;
1796
- }
1797
-
1798
-
1799
-
1800
- .rex-pano-tab-content .general .inner-nav-content .right .field-tooltip span {
1801
- bottom: calc(100% + 13px);
1802
- top: initial;
1803
- left: initial;
1804
- right: -20px;
1805
- transform: translateY(0);
1806
- }
1807
-
1808
- .rex-pano-tab-content .general .inner-nav-content .right .field-tooltip span:before {
1809
- left: inherit;
1810
- right: 24px;
1811
- top: initial;
1812
- bottom: -10px;
1813
- transform: translateY(0) rotate(-92deg);
1814
- }
1815
-
1816
-
1817
- /*------------sub tab style----------*/
1818
-
1819
- .rex-pano-sub-tabs .rex-pano-tab-nav {
1820
- width: auto;
1821
- padding: 32px 30px 21px;
1822
- border-bottom: 1px solid #c3d3fc;
1823
- }
1824
-
1825
- .rex-pano-sub-tabs .rex-pano-tab-nav ul li {
1826
- display: inline-block;
1827
- margin-right: 17px;
1828
- margin-bottom: 10px;
1829
- width: auto;
1830
- }
1831
-
1832
- .rex-pano-sub-tabs .rex-pano-tab-nav ul li:last-child {
1833
- margin-right: 0;
1834
- }
1835
-
1836
- .rex-pano-sub-tabs .rex-pano-tab-nav li span {
1837
- text-transform: capitalize;
1838
- color: #494b51;
1839
- font-size: 16px;
1840
- border: 1px solid #c3d3fc;
1841
- height: 45px;
1842
- margin-bottom: 0;
1843
- line-height: 45px;
1844
- padding: 0 30px;
1845
- transition: all 0.25s ease-in-out;
1846
- }
1847
-
1848
- .rex-pano-sub-tabs .rex-pano-tab-nav li span:after {
1849
- right: 50%;
1850
- top: inherit;
1851
- bottom: -6px;
1852
- width: 14px;
1853
- height: 14px;
1854
- -webkit-transform: translateX(50%) rotate(45deg);
1855
- -ms-transform: translateX(50%) rotate(45deg);
1856
- -o-transform: translateX(50%) rotate(45deg);
1857
- transform: translateX(50%) rotate(45deg);
1858
- transition: all 0.2s ease-in-out 0.1s;
1859
- }
1860
-
1861
- .rex-pano-sub-tabs .rex-pano-tab-nav li.add>span,
1862
- .rex-pano-sub-tabs .rex-pano-tab-nav li:not(.active):hover>span {
1863
- border-color: #4775f6;
1864
- box-shadow: none;
1865
- color: #4775f6;
1866
- background: transparent;
1867
- }
1868
-
1869
- .rex-pano-sub-tabs .rex-pano-tab-nav li span .delete {
1870
- color: #4775f6;
1871
- border: 1px solid #4775f6;
1872
- font-size: 12px;
1873
- display: block;
1874
- position: absolute;
1875
- top: -12px;
1876
- right: -8px;
1877
- background: #fff;
1878
- width: 26px;
1879
- height: 26px;
1880
- border-radius: 100%;
1881
- cursor: pointer;
1882
- opacity: 0;
1883
- visibility: hidden;
1884
- transition: all 0.25s ease-in-out;
1885
- }
1886
-
1887
- .rex-pano-sub-tabs .rex-pano-tab-nav li span .delete:focus {
1888
- box-shadow: none;
1889
- outline: none;
1890
- }
1891
-
1892
- .rex-pano-sub-tabs .rex-pano-tab-nav li span .delete i {
1893
- font-size: 14px;
1894
- margin: 0;
1895
- }
1896
-
1897
- .rex-pano-sub-tabs .rex-pano-tab-nav li:hover span .delete,
1898
- .rex-pano-sub-tabs .rex-pano-tab-nav li.active span .delete {
1899
- visibility: visible;
1900
- opacity: 1;
1901
- }
1902
-
1903
- .rex-pano-sub-tabs .rex-pano-tab-nav li.add span:after {
1904
- display: none;
1905
- }
1906
-
1907
- .rex-pano-sub-tabs .rex-pano-tab-nav li.add span>i {
1908
- font-size: 17px;
1909
- margin-right: 0;
1910
- }
1911
-
1912
-
1913
- /*-----------sub tab content style-----------*/
1914
-
1915
- .rex-pano-sub-tabs .rex-pano-tab-content {
1916
- width: 100%;
1917
- padding: 30px 40px;
1918
- border-left: none;
1919
- position: relative;
1920
- }
1921
-
1922
- .single-hotspot .hotspot-setting,
1923
- .single-scene .scene-setting {
1924
- margin-bottom: 21px;
1925
- position: relative;
1926
- }
1927
-
1928
- .single-hotspot .hotspot-setting .change-icon {
1929
- position: absolute;
1930
- bottom: 14px;
1931
- right: 50px;
1932
- font-size: 18px;
1933
- }
1934
-
1935
- .single-hotspot .hotspot-setting .change-icon .custom-icon {
1936
- width: 20px;
1937
- height: 20px;
1938
- display: block;
1939
- }
1940
-
1941
- .pnlm-hotspot-base.icon1,
1942
- .single-hotspot .hotspot-setting .change-icon .icon1 {
1943
- background: url(../icon/audio.png) no-repeat center center / 100% 100%;
1944
- }
1945
-
1946
- .pnlm-hotspot-base.icon2,
1947
- .single-hotspot .hotspot-setting .change-icon .icon2 {
1948
- background: url(../icon/video.png) no-repeat center center / 100% 100%;
1949
- }
1950
-
1951
- .pnlm-hotspot-base.icon3,
1952
- .single-hotspot .hotspot-setting .change-icon .icon3 {
1953
- background: url(../icon/gallery.png) no-repeat center center / 100% 100%;
1954
- }
1955
-
1956
- .pnlm-hotspot-base.icon4,
1957
- .single-hotspot .hotspot-setting .change-icon .icon4 {
1958
- background: url(../icon/info.png) no-repeat center center / 100% 100%;
1959
- }
1960
-
1961
- .pnlm-hotspot-base.icon5,
1962
- .single-hotspot .hotspot-setting .change-icon .icon5 {
1963
- background: url(../icon/link.png) no-repeat center center / 100% 100%;
1964
- }
1965
-
1966
- .single-hotspot .hotspot-setting label,
1967
- .single-scene .scene-setting label {
1968
- color: #494b51;
1969
- font-size: 16px;
1970
- font-weight: 500;
1971
- display: block;
1972
- margin-bottom: 10px;
1973
- }
1974
-
1975
- .rex-pano-tab .streetview-setting .form-group input,
1976
- .rex-pano-tab .preview-setting input.preview-upload,
1977
- .rex-pano-tab .video-setting input.video-upload,
1978
- .single-hotspot .hotspot-setting select,
1979
- .single-hotspot .hotspot-setting textarea,
1980
- .single-hotspot .hotspot-setting input,
1981
- .single-scene .scene-setting input {
1982
- border: 1px solid #dae3fd;
1983
- box-shadow: none;
1984
- width: 100%;
1985
- max-width: 100%;
1986
- height: 46px;
1987
- padding: 10px 20px;
1988
- font-size: 16px;
1989
- color: #454545;
1990
- border-radius: 3px;
1991
- }
1992
-
1993
- .single-hotspot .hotspot-setting select {
1994
- padding: 0px 20px;
1995
- }
1996
-
1997
- .rex-pano-tab .streetview-setting .form-group input {
1998
- max-width: 100%;
1999
- }
2000
-
2001
- .single-scene .scene-setting .form-group img {
2002
- max-width: 400px;
2003
- width: 100%;
2004
- display: block;
2005
- margin-bottom: 15px;
2006
- }
2007
-
2008
- .rex-pano-tab .video-setting input.video-upload,
2009
- .single-scene .scene-setting input.scene-upload {
2010
- text-transform: uppercase;
2011
- font-weight: 500;
2012
- color: #fff;
2013
- background: #4775f6;
2014
- border: none;
2015
- cursor: pointer;
2016
- transition: all 0.3s ease;
2017
- }
2018
-
2019
- .rex-pano-tab .video-setting .single-settings input.video-upload:hover,
2020
- .single-scene .scene-setting input.scene-upload:hover {
2021
- background: #3869f3;
2022
- }
2023
-
2024
- .rex-pano-tab .streetview-setting .form-group input:focus,
2025
- .single-scene .scene-setting input.scene-upload:focus {
2026
- box-shadow: none;
2027
- outline: inherit;
2028
- }
2029
-
2030
- .rex-pano-tab .video-setting .single-settings {
2031
- align-items: flex-start;
2032
- }
2033
-
2034
- .rex-pano-tab .video-setting input.video-upload {
2035
- max-width: 160px;
2036
- margin-top: 20px;
2037
- }
2038
-
2039
- .rex-pano-tab .video-setting:before,
2040
- .rex-pano-tab .video-setting:after {
2041
- content: "";
2042
- display: table;
2043
- clear: both;
2044
- }
2045
-
2046
-
2047
- /*--------------------hotspot style-------------------*/
2048
-
2049
- .clearfix::before,
2050
- .clearfix::after {
2051
- content: " ";
2052
- display: table;
2053
- clear: both;
2054
- }
2055
-
2056
- .hotspot-setup .rex-pano-tab-nav {
2057
- padding: 20px 0px 30px;
2058
- }
2059
-
2060
- .hotspot-setup .rex-pano-tab-content {
2061
- padding: 30px 0px;
2062
- }
2063
-
2064
- .hotspot-setup .single-hotspot>.wrapper,
2065
- .hotspot-setup .single-hotspot .hotspot-type {
2066
- float: left;
2067
- width: 50%;
2068
- }
2069
-
2070
- .hotspot-setup .single-hotspot>.wrapper {
2071
- padding-right: 30px;
2072
- }
2073
-
2074
- .single-hotspot .hotspot-setting textarea {
2075
- height: auto;
2076
- resize: none;
2077
- min-height: 110px;
2078
- }
2079
-
2080
- .single-hotspot .hotspot-setting select,
2081
- .single-hotspot .hotspot-setting textarea,
2082
- .single-hotspot .hotspot-setting input {
2083
- max-width: 100%;
2084
- }
2085
-
2086
- .hotspot-setup .hotspot-setting.custom-icon select {
2087
- max-width: calc(100% - 30px);
2088
- }
2089
-
2090
- .single-hotspot .hotspot-type .hotspot-scene,
2091
- .single-hotspot .hotspot-type .hotspot-hover,
2092
- .single-hotspot .hotspot-type .hotspot-content,
2093
- .single-hotspot .hotspot-type .hotspot-url,
2094
- .single-hotspot .hotspot-type select {
2095
- margin-bottom: 21px;
2096
- }
2097
-
2098
- button.delete-hotspot,
2099
- button.delete-scene {
2100
- position: absolute;
2101
- top: 36px;
2102
- right: 46px;
2103
- text-transform: capitalize;
2104
- color: #fff;
2105
- font-size: 20px;
2106
- border: 1px solid #c3d3fc;
2107
- height: 38px;
2108
- margin-bottom: 0;
2109
- line-height: 38px;
2110
- padding: 0 15px;
2111
- transition: all 0.25s ease-in-out;
2112
- background: #4775f6;
2113
- cursor: pointer;
2114
- border-radius: 5px;
2115
- }
2116
-
2117
- button.delete-hotspot:hover,
2118
- button.delete-scene:hover {
2119
- background: #3869f3;
2120
- }
2121
-
2122
- button#panolenspreview:focus,
2123
- button.delete-hotspot:focus,
2124
- button.delete-scene:focus {
2125
- outline: none;
2126
- }
2127
-
2128
- button.delete-hotspot {
2129
- right: 12px;
2130
- top: 40px;
2131
- }
2132
- button.delete-scene {
2133
- top: 40px;
2134
- right: 52px;
2135
- }
2136
-
2137
-
2138
- .active_scene_id p {
2139
- margin: 0;
2140
- }
2141
-
2142
-
2143
- /* ---------background tour style---------- */
2144
- .rex-pano-tab-content .background-tour .content-wrapper {
2145
- display: flex;
2146
- flex-flow: row wrap;
2147
- border-bottom: 1px solid #e4e4e4;
2148
- }
2149
- .rex-pano-tab-content .background-tour .background-tour-left {
2150
- width: 50%;
2151
- padding-right: 15px;
2152
- /* border-right: 1px solid #e4e4e4; */
2153
- }
2154
- .rex-pano-tab-content .background-tour .background-tour-right {
2155
- width: 50%;
2156
- padding-left: 15px;
2157
- }
2158
- .rex-pano-tab-content .background-tour .single-settings:not(.inline-style) {
2159
- display: block;
2160
- margin-bottom: 20px;
2161
- }
2162
- .rex-pano-tab-content .background-tour .single-settings:not(.inline-style) > span {
2163
- margin-bottom: 6px;
2164
- }
2165
- .rex-pano-tab-content .background-tour .single-settings:not(.inline-style) > input {
2166
- max-width: 100%;
2167
- margin: 0;
2168
- }
2169
-
2170
-
2171
- /* -------product------- */
2172
- .single-hotspot .hotspot-products {
2173
- margin-bottom: 20px;
2174
- }
2175
-
2176
- .single-hotspot .hotspot-products .select2-container--default {
2177
- width: 100%!important;
2178
- }
2179
-
2180
- .single-hotspot .hotspot-products .select2-container--default .select2-selection--single {
2181
- background-color: #fff;
2182
- border: 1px solid #dae3fd;
2183
- box-shadow: none;
2184
- width: 100%;
2185
- max-width: 100%;
2186
- height: 46px;
2187
- padding: 10px 12px;
2188
- font-size: 16px;
2189
- color: #454545;
2190
- border-radius: 3px;
2191
- }
2192
-
2193
- .single-hotspot .hotspot-products .select2-container--default .select2-selection--single:focus {
2194
- outline: none;
2195
- }
2196
-
2197
- .select2-container--default .select2-dropdown {
2198
- border: 1px solid #dae3fd!important;
2199
- margin-top: -1px;
2200
- box-shadow: 0 7px 10px rgba(218, 227, 253, 0.3);
2201
- padding: 8px;
2202
- }
2203
-
2204
- .select2-container--default .select2-selection--single .select2-selection__clear {
2205
- line-height: normal;
2206
- }
2207
-
2208
- .select2-container--default .select2-selection--single .select2-selection__arrow {
2209
- top: 10px;
2210
- right: 5px;
2211
- }
2212
-
2213
- .select2-container--default .select2-dropdown .select2-search--dropdown {
2214
- display: block;
2215
- padding: 0;
2216
- }
2217
-
2218
- .select2-container--default .select2-search--dropdown .select2-search__field {
2219
- border: 1px solid #dae3fd;
2220
- padding: 4px 10px;
2221
- }
2222
-
2223
- .select2-container--default .select2-search--dropdown .select2-search__field:focus {
2224
- outline: none;
2225
- box-shadow: none;
2226
- }
2227
-
2228
- .select2-container--default .select2-results .select2-results__option {
2229
- padding: 0;
2230
- margin: 4px 0 0 4px;
2231
- }
2232
-
2233
-
2234
- /*--------preview-btn-area---------*/
2235
-
2236
- .preview-btn-wrapper {
2237
- padding: 0px 30px;
2238
- }
2239
-
2240
- .preview-btn-area {
2241
- padding: 30px 0px;
2242
- border-top: 1px solid #e4eafe;
2243
- }
2244
-
2245
- .streetview-setting #streetviewpreview,
2246
- .video-setting button#videopreview,
2247
- .preview-btn-area #panolenspreview {
2248
- text-transform: capitalize;
2249
- color: #fff;
2250
- font-size: 16px;
2251
- border: 1px solid #c3d3fc;
2252
- height: 45px;
2253
- font-weight: 500;
2254
- margin-bottom: 0;
2255
- line-height: 45px;
2256
- padding: 0 30px;
2257
- transition: all 0.25s ease-in-out;
2258
- background: #4775f6;
2259
- cursor: pointer;
2260
- border-radius: 5px;
2261
- box-shadow: 0px 7px 25px 0px rgba(56, 84, 163, 0.2);
2262
- width: 120px;
2263
- margin-left: auto;
2264
- display: block;
2265
- }
2266
-
2267
- .video-setting button#videopreview:hover,
2268
- .preview-btn-area #panolenspreview:hover {
2269
- background: #3869f3;
2270
- box-shadow: none;
2271
- }
2272
-
2273
- #error_occured {
2274
- display: none;
2275
- min-height: 15px;
2276
- position: absolute;
2277
- top: 50%;
2278
- right: 50%;
2279
- max-width: 605px;
2280
- width: 100%;
2281
- -webkit-transform: translate(50%, -50%);
2282
- -moz-transform: translate(50%, -50%);
2283
- -ms-transform: translate(50%, -50%);
2284
- -o-transform: translate(50%, -50%);
2285
- transform: translate(50%, -50%);
2286
- z-index: 2;
2287
- }
2288
-
2289
- .pano-error-wrapper {
2290
- width: 100%;
2291
- background: #FFFFFF;
2292
- border-radius: 5px;
2293
- border-left: 5px solid #FAAC14;
2294
- }
2295
-
2296
- .wpvr-delete-alert-wrapper .pano-error-wrapper {
2297
- max-width: 605px;
2298
- }
2299
-
2300
- .pano-default-warning .pano-error-wrapper {
2301
- border-left-color: #004EFA;
2302
- }
2303
-
2304
- .pano-error-color .pano-error-wrapper {
2305
- border-left-color: #F13637;
2306
- }
2307
- .pano-error-color .pano-error-wrapper .icon rect,
2308
- .pano-error-color .pano-error-wrapper .icon path {
2309
- fill: #F13637;
2310
- }
2311
- .pano-error-wrapper .pano-error-body {
2312
- position: relative;
2313
- padding: 40px;
2314
- text-align: center;
2315
- }
2316
- .pano-error-wrapper .pano-error-body .cross {
2317
- display: block;
2318
- position: absolute;
2319
- right: 15px;
2320
- top: 15px;
2321
- cursor: pointer;
2322
- }
2323
-
2324
- .pano-error-wrapper .pano-error-body .icon.pano-warning {
2325
- display: block;
2326
- margin-bottom: 15px;
2327
- }
2328
-
2329
- .pano-error-wrapper .pano-error-body .pano-error-message .pano-error-title {
2330
- padding: 0;
2331
- font-weight: 700;
2332
- color: #39393F;
2333
- font-size: 18px;
2334
- max-width: 370px;
2335
- margin: 0 auto 3px;
2336
- display: block;
2337
- }
2338
-
2339
- .pano-error-wrapper .pano-error-body .pano-error-message p {
2340
- padding: 0;
2341
- color: #868693;
2342
- font-size: 18px;
2343
- margin: 0;
2344
- }
2345
-
2346
- .pano-error-wrapper .pano-error-footer {
2347
- background: #F6F6F8;
2348
- border-radius: 0px 0px 5px 5px;
2349
- border-top: 1px solid #E6E6EF;
2350
- padding: 14px 14px 15px;
2351
- }
2352
- .pano-error-wrapper .pano-error-footer ul {
2353
- display: flex;
2354
- flex-flow: row wrap;
2355
- align-items: center;
2356
- justify-content: center;
2357
- margin: 0;
2358
- padding: 0;
2359
- }
2360
- .pano-error-wrapper .pano-error-footer ul li {
2361
- margin: 0 10px;
2362
- padding: 0;
2363
- }
2364
- .pano-error-wrapper .pano-error-footer ul li a,
2365
- .pano-error-wrapper .pano-error-footer ul li button {
2366
- background: #004EFA;
2367
- border-radius: 5px;
2368
- font-size: 16px;
2369
- color: #fff;
2370
- font-weight: 700;
2371
- text-transform: uppercase;
2372
- border: none;
2373
- padding: 12px 25px;
2374
- cursor: pointer;
2375
- display: inline-block;
2376
- }
2377
-
2378
- .wpvr-delete-alert-wrapper .pano-error-wrapper .pano-error-footer ul li a,
2379
- .wpvr-delete-alert-wrapper .pano-error-wrapper .pano-error-footer ul li button {
2380
- font-weight: 500;
2381
- text-transform: capitalize;
2382
- }
2383
- .wpvr-delete-alert-wrapper .pano-error-wrapper .pano-error-footer ul li button.yes {
2384
- background-color: #dedede;
2385
- color: #333;
2386
- }
2387
-
2388
- .pano-error-wrapper .pano-error-footer ul li a {
2389
- text-decoration: none;
2390
- text-transform: none;
2391
- }
2392
-
2393
- .hotspot-setup.rex-pano-sub-tabs {
2394
- display: none;
2395
- }
2396
-
2397
-
2398
- /* ----------------- */
2399
-
2400
- .single-scene .scene-content {
2401
- display: flex;
2402
- flex-flow: row wrap;
2403
- }
2404
-
2405
- .single-scene .scene-content .scene-left {
2406
- width: 50%;
2407
- padding-right: 15px;
2408
- }
2409
-
2410
- .single-scene .scene-content .scene-right {
2411
- width: 50%;
2412
- padding-left: 15px;
2413
- }
2414
-
2415
-
2416
- /* ---------woocomerce product hotspot style--------- */
2417
-
2418
- .wpvr-product-container {
2419
- display: flex;
2420
- align-items: center;
2421
- background: #fff;
2422
- padding: 15px;
2423
- border-radius: 5px;
2424
- }
2425
-
2426
- .wpvr-product-container .wpvr-pr-left-block {
2427
- width: 50%;
2428
- box-sizing: border-box;
2429
- }
2430
-
2431
- .wpvr-product-container .wpvr-pr-left-block .woocommerce-product-gallery__image img {
2432
- margin: 0;
2433
- max-width: 500px;
2434
- width: 100%;
2435
- height: auto;
2436
- }
2437
-
2438
- .wpvr-product-container .wpvr-pr-right-block {
2439
- width: 50%;
2440
- padding-left: 15px;
2441
- box-sizing: border-box;
2442
- text-align: left;
2443
- }
2444
-
2445
- .wpvr-product-container .wpvr-pr-right-block a {
2446
- text-decoration: none!important;
2447
- display: inline-block;
2448
- }
2449
-
2450
- .wpvr-product-container .wpvr-pr-right-block a h2 {
2451
- line-height: 1.4!important;
2452
- margin: 0 0 15px 0!important;
2453
- text-align: left;
2454
- padding: 0!important;
2455
- font-size: 23px!important;
2456
- color: #201cfe;
2457
- }
2458
-
2459
- .wpvr-product-container .wpvr-pr-right-block a:focus {
2460
- outline: none;
2461
- box-shadow: none;
2462
- }
2463
-
2464
- .wpvr-product-container .wpvr-pr-right-block a:hover h2 {
2465
- text-decoration: underline;
2466
- }
2467
-
2468
- .wpvr-product-container .wpvr-pr-right-block a h2:before {
2469
- display: none;
2470
- }
2471
-
2472
- .wpvr-product-container .wpvr-pr-right-block .wpvr-cart-wrap {
2473
- display: block;
2474
- }
2475
-
2476
- .wpvr-product-container .wpvr-pr-right-block .add_to_cart_inline {
2477
- border: none!important;
2478
- padding: 0!important;
2479
- text-align: left!important;
2480
- border-radius: 0!important;
2481
- }
2482
-
2483
- .wpvr-product-container .wpvr-pr-right-block .add_to_cart_inline .amount {
2484
- display: inline-block;
2485
- margin-bottom: 7px;
2486
- }
2487
-
2488
- .wpvr-product-container .wpvr-pr-right-block .add_to_cart_inline del .amount {
2489
- text-decoration: line-through;
2490
- opacity: 0.5;
2491
- }
2492
-
2493
- .wpvr-product-container .wpvr-pr-right-block .add_to_cart_inline a.button {
2494
- font-size: 16px;
2495
- text-align: center;
2496
- border-radius: 5px;
2497
- background-color: rgb(32, 28, 254);
2498
- color: #fff;
2499
- display: inline-block;
2500
- padding: 8px 10px;
2501
- box-shadow: none;
2502
- margin-top: auto;
2503
- transition: all 0.3s ease;
2504
- text-decoration: none;
2505
- white-space: normal;
2506
- line-height: normal;
2507
- border-color: transparent;
2508
- }
2509
-
2510
-
2511
- /*-----------------responsive style------------------*/
2512
-
2513
- @media (max-width: 1760px) and (min-width: 1701px) {
2514
- .rex-pano-tab-content .general .inner-nav-content .inner-single-content .color-icon img {
2515
- width: 96px;
2516
- }
2517
- .rex-pano-tab.general .single-settings>span {
2518
- min-width: 182px;
2519
- }
2520
- .rex-pano-tab-content .general .control-settings-content.inner-single-content .single-settings>span {
2521
- min-width: 102px;
2522
- }
2523
- .rex-pano-tab-content .general .inner-nav-content .inner-single-content .color-icon {
2524
- padding-right: 0px;
2525
- margin-right: 10px;
2526
- border-right: none;
2527
- }
2528
- .rex-pano-tab-content .general .inner-nav-content .color-icon .colors {
2529
- margin-right: 3px;
2530
- }
2531
- }
2532
-
2533
- @media (max-width: 1700px) {
2534
- .rex-pano-tab-content {
2535
- border-radius: 10px;
2536
- }
2537
- .rex-pano-tab-content .rex-pano-tab.streetview,
2538
- .rex-pano-tab-content .rex-pano-tab.backgroundTour,
2539
- .rex-pano-tab-content .rex-pano-tab.video,
2540
- .rex-pano-tab-content .rex-pano-tab.export,
2541
- .rex-pano-tab-content .rex-pano-tab.general {
2542
- padding: 20px;
2543
- }
2544
- .post-type-wpvr_item #post-body #postbox-container-1 {
2545
- width: 610px;
2546
- }
2547
- .post-type-wpvr_item #post-body #postbox-container-2 {
2548
- width: calc(100% - 630px);
2549
- }
2550
- #custom-ifram {
2551
- height: 278px;
2552
- }
2553
- .iframe-wrapper #cross {
2554
- top: 47px;
2555
- right: 20px;
2556
- }
2557
- .rex-pano-tab-content .general .general-inner-tab .inner-nav li>span {
2558
- flex-flow: column;
2559
- text-align: center;
2560
- }
2561
- .rex-pano-tab-content .general .general-inner-tab .inner-nav li>span img {
2562
- margin-right: 0;
2563
- margin-bottom: 5px;
2564
- }
2565
- .rex-pano-tab-content .background-tour .content-wrapper,
2566
- .rex-pano-tab-content .general .inner-nav-content .inner-single-content .content-wrapper {
2567
- display: block;
2568
- }
2569
-
2570
- .rex-pano-tab-content .background-tour .background-tour-left,
2571
- .rex-pano-tab-content .general .inner-nav-content .inner-single-content .content-wrapper .left {
2572
- width: 100%;
2573
- padding-right: 0;
2574
- border-right: none;
2575
- margin-bottom: 20px;
2576
- }
2577
- .rex-pano-tab-content .background-tour .background-tour-right,
2578
- .rex-pano-tab-content .general .inner-nav-content .inner-single-content .content-wrapper .right {
2579
- width: 100%;
2580
- padding-left: 0;
2581
- }
2582
- .rex-pano-tab-content .general .single-settings.preview-setting .img-upload-frame {
2583
- height: 210px;
2584
- }
2585
- .rex-pano-tab.general .control-settings-content .single-settings>span {
2586
- min-width: 120px;
2587
- }
2588
- .rex-pano-tab-content .general .inner-nav-content .inner-single-content .color-icon {
2589
- padding-right: 12px;
2590
- margin-right: 12px;
2591
- }
2592
- .rex-pano-tab-content .general .inner-nav-content .single-settings.audio-setting>span {
2593
- min-width: auto;
2594
- padding-right: 20px;
2595
- }
2596
- }
2597
-
2598
- @media (max-width: 1499px) {
2599
- .post-type-wpvr_item #post-body #postbox-container-1 {
2600
- width: 500px;
2601
- }
2602
- .post-type-wpvr_item #post-body #postbox-container-2 {
2603
- width: calc(100% - 520px);
2604
- }
2605
- .post-type-wpvr_item #post-body #postbox-container-1 .iframe-wrapper {
2606
- height: 290px;
2607
- }
2608
- #custom-ifram {
2609
- height: 228px;
2610
- }
2611
- .iframe-wrapper #cross {
2612
- top: 21px;
2613
- right: 17px;
2614
- }
2615
- .rex-pano-tabs {
2616
- display: block;
2617
- margin-left: 0;
2618
- }
2619
- .rex-pano-tabs .main-nav {
2620
- padding: 0;
2621
- width: 100%;
2622
- }
2623
- .rex-pano-tabs .main-nav>ul {
2624
- display: flex;
2625
- align-items: center;
2626
- }
2627
- .rex-pano-tabs .main-nav li {
2628
- display: inline-block;
2629
- border-bottom: none;
2630
- margin-right: 2px;
2631
- flex: 1;
2632
- }
2633
- .rex-pano-tabs .main-nav li:last-child {
2634
- margin-right: 0px;
2635
- }
2636
- .rex-pano-tabs .main-nav li span {
2637
- margin-bottom: 0;
2638
- }
2639
- .rex-pano-tabs .rex-pano-tab-nav.main-nav li span {
2640
- height: 80px;
2641
- padding: 0 15px;
2642
- }
2643
- .rex-pano-tabs .rex-pano-tab-nav.main-nav li.logo {
2644
- height: 76px;
2645
- }
2646
- .rex-pano-tab-content {
2647
- width: 100%;
2648
- }
2649
- }
2650
-
2651
- @media (max-width: 1399px) {
2652
- .post-type-wpvr_item #poststuff #post-body {
2653
- display: block;
2654
- }
2655
- .post-type-wpvr_item #post-body #postbox-container-1 {
2656
- width: 100%;
2657
- }
2658
- .post-type-wpvr_item #post-body #postbox-container-1 .iframe-wrapper {
2659
- height: 370px;
2660
- }
2661
- .post-type-wpvr_item #post-body #postbox-container-2 {
2662
- width: 100%;
2663
- margin-right: 0;
2664
- }
2665
- #custom-ifram {
2666
- height: 296px;
2667
- }
2668
- .iframe-wrapper #cross {
2669
- top: 24px;
2670
- right: 20px;
2671
- }
2672
- .rex-pano-tabs .rex-pano-tab-nav.main-nav li span {
2673
- padding: 0 10px;
2674
- }
2675
- .rex-pano-tab-content .general .general-inner-tab .inner-nav li>span {
2676
- flex-flow: row;
2677
- }
2678
- .rex-pano-tab-content .general .general-inner-tab .inner-nav li>span img {
2679
- margin-right: 10px;
2680
- margin-bottom: 0;
2681
- }
2682
- .rex-pano-tab-content .general .inner-nav-content .inner-single-content .content-wrapper {
2683
- display: flex;
2684
- }
2685
- .rex-pano-tab-content .general .inner-nav-content .inner-single-content .content-wrapper .left {
2686
- width: 50%;
2687
- padding-right: 15px;
2688
- border-right: 1px solid #e4e4e4;
2689
- }
2690
- .rex-pano-tab-content .general .inner-nav-content .inner-single-content .content-wrapper .right {
2691
- width: 50%;
2692
- padding-left: 15px;
2693
- }
2694
- /* ----------scene tab tooltip----- */
2695
- .single-scene .scene-content .scene-right .field-tooltip span {
2696
- bottom: calc(100% + 13px);
2697
- top: initial;
2698
- left: initial;
2699
- right: -20px;
2700
- transform: translateY(0);
2701
- }
2702
- .single-scene .scene-content .scene-right .field-tooltip span:before {
2703
- left: inherit;
2704
- right: 24px;
2705
- top: initial;
2706
- bottom: -10px;
2707
- transform: translateY(0) rotate(-92deg);
2708
- }
2709
- }
2710
-
2711
- @media (max-width: 1300px) {
2712
- .preview-btn-area #error_occured {
2713
- float: none;
2714
- margin-bottom: 20px;
2715
- }
2716
- .preview-btn-area #panolenspreview {
2717
- float: none;
2718
- }
2719
- }
2720
-
2721
- @media (max-width: 1199px) {
2722
- .rex-pano-tab-content {
2723
- border-left: none;
2724
- }
2725
- .rex-pano-tabs .main-nav li {
2726
- width: 144px;
2727
- margin-right: 12px;
2728
- }
2729
- .rex-pano-tabs .main-nav li span {
2730
- padding: 0 10px;
2731
- }
2732
- .rex-pano-tab-content .rex-pano-tab.video,
2733
- .rex-pano-tab-content .rex-pano-tab.export,
2734
- .rex-pano-tab-content .rex-pano-tab.general {
2735
- padding: 20px 20px;
2736
- }
2737
- .rex-pano-sub-tabs .rex-pano-tab-nav {
2738
- padding: 20px 20px 20px;
2739
- }
2740
- .rex-pano-sub-tabs .rex-pano-tab-content {
2741
- padding: 20px 20px;
2742
- }
2743
- /* .hotspot-setup .single-hotspot > .wrapper,
2744
- .hotspot-setup .single-hotspot .hotspot-type {
2745
- float: none;
2746
- width: 100%;
2747
- } */
2748
- /* .hotspot-setup .single-hotspot > .wrapper {
2749
- padding-right: 0;
2750
- } */
2751
- .hotspot-setup .rex-pano-tab-content {
2752
- padding: 30px 0px 0;
2753
- }
2754
- .preview-btn-area {
2755
- padding: 0 0 25px 0px;
2756
- border-top: none;
2757
- }
2758
- .preview-btn-wrapper {
2759
- padding: 0px 20px;
2760
- }
2761
- input.delete-hotspot,
2762
- input.delete-scene {
2763
- position: absolute;
2764
- top: 25px;
2765
- right: 25px;
2766
- }
2767
- input.delete-hotspot {
2768
- right: 5px;
2769
- top: 35px;
2770
- }
2771
- /* ----------------- */
2772
- .single-scene .scene-content .scene-left {
2773
- width: 48%;
2774
- }
2775
- .single-scene .scene-content .scene-right {
2776
- width: 48%;
2777
- }
2778
- .single-scene .scene-content .scene-setting {
2779
- max-width: 410px;
2780
- }
2781
- }
2782
-
2783
- @media only screen and (max-width: 1199px) and (min-width: 992px) {
2784
- .rex-pano-tabs .main-nav>ul {
2785
- flex-wrap: wrap;
2786
- }
2787
- .rex-pano-tab-content .general .inner-nav-content .single-settings.cp-logo-area .logo-upload-frame {
2788
- width: 90px;
2789
- height: 70px;
2790
- }
2791
- .rex-pano-tab-content .general .inner-nav-content .single-settings.cp-logo-area .logo-upload-frame img {
2792
- max-width: 70px;
2793
- max-height: 50px;
2794
- }
2795
- }
2796
-
2797
- @media only screen and (max-width: 991px) {
2798
- .rex-pano-tab-content .general .inner-nav-content .inner-single-content .content-wrapper {
2799
- display: block;
2800
- }
2801
- .rex-pano-tab-content .general .inner-nav-content .inner-single-content .content-wrapper .left {
2802
- width: 100%;
2803
- padding-right: 0;
2804
- border-right: none;
2805
- margin-bottom: 20px;
2806
- }
2807
- .rex-pano-tab-content .general .inner-nav-content .inner-single-content .content-wrapper .right {
2808
- width: 100%;
2809
- padding-left: 0;
2810
- }
2811
- .rex-pano-tab-content .general .inner-nav-content .left .field-tooltip span {
2812
- bottom: calc(100% + 13px);
2813
- top: initial;
2814
- left: initial;
2815
- right: -20px;
2816
- transform: translateY(0);
2817
- }
2818
- .rex-pano-tab-content .general .inner-nav-content .left .field-tooltip span:before {
2819
- left: inherit;
2820
- right: 24px;
2821
- top: initial;
2822
- bottom: -10px;
2823
- transform: translateY(0) rotate(-92deg);
2824
- }
2825
- }
2826
-
2827
-
2828
- /* -----------On Boarding Page style----------- */
2829
-
2830
- .rex-onboarding * {
2831
- box-sizing: border-box;
2832
- }
2833
-
2834
- .rex-onboarding {
2835
- border-radius: 15px;
2836
- background-color: #fff;
2837
- box-shadow: 0px 5px 30px 0px rgba(2, 0, 105, 0.05);
2838
- /* max-width: 1280px; */
2839
- width: calc(100% - 15px);
2840
- margin-top: 20px;
2841
- }
2842
-
2843
- .rex-onboarding ul.rex-tabs {
2844
- display: flex;
2845
- flex-flow: row;
2846
- align-items: center;
2847
- justify-content: center;
2848
- border-bottom: 1px solid #e9edf4;
2849
- border-radius: 15px 15px 0 0;
2850
- padding-top: 30px;
2851
- height: auto;
2852
- overflow: visible;
2853
- }
2854
-
2855
- .rex-onboarding ul.rex-tabs>.wpvr_tabs_row {
2856
- width: auto !important;
2857
- }
2858
-
2859
- .rex-onboarding ul.rex-tabs>li {
2860
- margin-left: 130px;
2861
- }
2862
-
2863
- .rex-onboarding ul.rex-tabs>li:first-child {
2864
- margin-left: 0;
2865
- }
2866
-
2867
- .rex-onboarding ul.rex-tabs>li>a {
2868
- font-size: 16px;
2869
- color: #787890;
2870
- text-transform: uppercase;
2871
- display: flex;
2872
- align-items: center;
2873
- padding: 0;
2874
- text-align: center;
2875
- position: relative;
2876
- overflow: visible;
2877
- }
2878
-
2879
- .rex-onboarding ul.rex-tabs>li>a:hover,
2880
- .rex-onboarding ul.rex-tabs>li>a.active {
2881
- color: #201cfe;
2882
- }
2883
-
2884
- .rex-onboarding ul.rex-tabs>li>a:focus {
2885
- box-shadow: none;
2886
- border: none;
2887
- }
2888
-
2889
- .rex-onboarding ul.rex-tabs>li>a::before {
2890
- content: "";
2891
- position: absolute;
2892
- left: 0;
2893
- bottom: -1px;
2894
- width: 100%;
2895
- height: 2px;
2896
- background: transparent;
2897
- transition: all 0.3s ease;
2898
- }
2899
-
2900
- .rex-onboarding ul.rex-tabs>li>a.active::before {
2901
- background: #201cfe;
2902
- }
2903
-
2904
- .rex-onboarding ul.rex-tabs>li>a svg {
2905
- height: 18px;
2906
- width: 18px;
2907
- margin-right: 14px;
2908
- }
2909
-
2910
- .rex-onboarding ul.rex-tabs>li>a svg path {
2911
- fill: #787890;
2912
- transition: all 0.3s ease;
2913
- }
2914
-
2915
- .rex-onboarding ul.rex-tabs>li>a:hover svg path,
2916
- .rex-onboarding ul.rex-tabs>li>a.active svg path {
2917
- fill: #201cfe;
2918
- }
2919
-
2920
- .rex-onboarding ul.rex-tabs .indicator {
2921
- display: none;
2922
- }
2923
-
2924
- .rex-onboarding .block-wrapper.info-tab {
2925
- display: flex;
2926
- align-items: flex-start;
2927
- }
2928
-
2929
- .rex-onboarding .block-wrapper {
2930
- padding: 40px 30px;
2931
- }
2932
-
2933
- .rex-onboarding .info-wrapper {
2934
- display: flex;
2935
- flex-flow: row wrap;
2936
- margin-left: -30px;
2937
- width: 75%;
2938
- }
2939
-
2940
- .rex-onboarding .single-block {
2941
- background-color: #fff;
2942
- border-radius: 10px;
2943
- padding: 30px 30px 40px;
2944
- margin-top: 30px;
2945
- margin-left: 30px;
2946
- width: calc(100% / 3 - 30px);
2947
- box-shadow: 0px 6px 60px 0px rgba(2, 0, 105, 0.08);
2948
- display: flex;
2949
- flex-flow: column;
2950
- align-items: flex-start;
2951
- position: relative;
2952
- }
2953
-
2954
- .rex-onboarding .single-block .icon {
2955
- background-color: #f0f1f3;
2956
- width: 40px;
2957
- height: 40px;
2958
- display: flex;
2959
- flex-flow: column;
2960
- align-items: center;
2961
- justify-content: center;
2962
- border-radius: 100%;
2963
- position: absolute;
2964
- }
2965
-
2966
- .rex-onboarding .single-block h4 {
2967
- font-size: 16px;
2968
- font-weight: 500;
2969
- color: #3c3e4a;
2970
- margin-top: 12px;
2971
- margin-left: 54px;
2972
- }
2973
-
2974
- .rex-onboarding .single-block p {
2975
- font-size: 14px;
2976
- color: #787890;
2977
- margin-bottom: 24px;
2978
- }
2979
-
2980
- .rex-onboarding .wpvr-btn {
2981
- border-radius: 5px;
2982
- background-color: rgb(32, 28, 254);
2983
- height: 40px;
2984
- line-height: 40px;
2985
- font-size: 15px;
2986
- color: #fff;
2987
- display: inline-block;
2988
- padding: 0 30px;
2989
- box-shadow: none;
2990
- margin-top: auto;
2991
- transition: all 0.3s ease;
2992
- }
2993
-
2994
- .rex-onboarding .wpvr-btn:hover {
2995
- background: #004EFA;
2996
- }
2997
-
2998
-
2999
- /* ---banner block--- */
3000
-
3001
- .rex-onboarding .single-block.banner {
3002
- border: 5px solid #fff;
3003
- padding: 0;
3004
- margin-top: 0;
3005
- width: calc(100% / 3 * 2 - 30px);
3006
- background: #f3f2ff;
3007
- display: flex;
3008
- flex-flow: column;
3009
- align-items: center;
3010
- justify-content: center;
3011
- }
3012
-
3013
- .rex-onboarding .single-block.banner img {
3014
- border-radius: 10px;
3015
- display: block;
3016
- max-width: 100%;
3017
- }
3018
-
3019
-
3020
- /* ---share block--- */
3021
-
3022
- .rex-onboarding .single-block.share-block {
3023
- border-radius: 0;
3024
- background: transparent;
3025
- box-shadow: none;
3026
- padding: 0;
3027
- display: block;
3028
- margin-top: 0;
3029
- }
3030
-
3031
- .rex-onboarding .single-block.share-block .social-share {
3032
- border-radius: 10px;
3033
- background: #fff;
3034
- box-shadow: 0px 6px 60px 0px rgba(2, 0, 105, 0.08);
3035
- padding: 20px 30px;
3036
- margin-top: 30px
3037
- }
3038
-
3039
- .rex-onboarding .single-block.share-block .social-share h4 {
3040
- display: block;
3041
- margin-top: 0;
3042
- margin-left: 0;
3043
- }
3044
-
3045
- .rex-onboarding .single-block.share-block .social-share ul {
3046
- margin: 0;
3047
- }
3048
-
3049
- .rex-onboarding .single-block.share-block .social-share li {
3050
- display: inline-block;
3051
- margin-bottom: 0;
3052
- margin-right: 17px;
3053
- }
3054
-
3055
- .rex-onboarding .single-block.share-block .social-share ul li a {
3056
- display: block;
3057
- width: 24px;
3058
- height: 24px;
3059
- position: relative;
3060
- }
3061
-
3062
- .rex-onboarding .single-block.share-block .social-share ul li a img {
3063
- position: absolute;
3064
- border-radius: 3px;
3065
- transition: all 0.3s ease;
3066
- }
3067
-
3068
- .rex-onboarding .single-block.share-block .social-share ul li a img.hover {
3069
- opacity: 0;
3070
- visibility: hidden;
3071
- }
3072
-
3073
- .rex-onboarding .single-block.share-block .social-share ul li a:hover img.hover {
3074
- opacity: 1;
3075
- visibility: visible;
3076
- }
3077
-
3078
- .rex-onboarding .single-block.share-block .social-share ul li a:hover img.regular {
3079
- opacity: 0;
3080
- visibility: hidden;
3081
- }
3082
-
3083
- .rex-onboarding .single-block.share-block .upgrade-pro {
3084
- border: 1px solid #201cfe;
3085
- display: flex;
3086
- flex-flow: column;
3087
- align-items: center;
3088
- justify-content: center;
3089
- padding: 25px 15px;
3090
- border-radius: 10px;
3091
- background: #fff;
3092
- min-height: 171px;
3093
- }
3094
-
3095
- .rex-onboarding .single-block.share-block .upgrade-pro .wpvr-btn {
3096
- margin-top: 20px;
3097
- }
3098
-
3099
-
3100
- /* -------promotion area------ */
3101
-
3102
- .rex-onboarding .promotion-area {
3103
- width: 25%;
3104
- margin-left: 30px;
3105
- background: #f1f1f1;
3106
- padding: 12px 20px 20px;
3107
- border-radius: 10px;
3108
- }
3109
-
3110
- .rex-onboarding .promotion-area h4.title {
3111
- margin-top: 0;
3112
- font-size: 20px;
3113
- line-height: 1.4;
3114
- font-weight: 700;
3115
- }
3116
-
3117
- .rex-onboarding .promotion-area .single-block {
3118
- width: 100%;
3119
- padding: 20px 20px 20px;
3120
- margin-left: 0;
3121
- min-height: 225px;
3122
- }
3123
-
3124
- .rex-onboarding .promotion-area .single-block .icon {
3125
- padding: 7px;
3126
- }
3127
-
3128
- .rex-onboarding .promotion-area .single-block .icon img {
3129
- max-width: 100%;
3130
- }
3131
-
3132
- .rex-onboarding .promotion-area .single-block.m2c .icon img {
3133
- border-radius: 100%;
3134
- }
3135
-
3136
-
3137
- /* ----------video tab style-------- */
3138
-
3139
- .rex-onboarding .video-wrapper {
3140
- display: flex;
3141
- flex-flow: row;
3142
- align-items: center;
3143
- max-width: 1170px;
3144
- width: 100%;
3145
- margin: 0 auto;
3146
- }
3147
-
3148
- .rex-onboarding .video-wrapper .video-left {
3149
- width: calc(100% - 280px);
3150
- height: 400px;
3151
- }
3152
-
3153
- .rex-onboarding .video-wrapper .video-left iframe {
3154
- border-radius: 10px;
3155
- }
3156
-
3157
- .rex-onboarding .video-wrapper .video-right {
3158
- width: 280px;
3159
- padding-left: 30px;
3160
- }
3161
-
3162
- .rex-onboarding .video-wrapper .video-right .single-block {
3163
- margin-left: 0;
3164
- width: 100%;
3165
- }
3166
-
3167
-
3168
- /* ----------wpvr-compare (free vs pro)-------- */
3169
-
3170
- .rex-onboarding .wpvr-compare {
3171
- width: 100%;
3172
- max-width: 1200px;
3173
- margin: 0 auto;
3174
- }
3175
-
3176
- .rex-onboarding .compare-tbl-wrapper {
3177
- margin-bottom: 75px;
3178
- }
3179
-
3180
- .rex-onboarding .wpvr-compare .compare-header {
3181
- display: flex;
3182
- flex-flow: row;
3183
- align-items: center;
3184
- justify-content: space-between;
3185
- margin-bottom: 20px;
3186
- }
3187
-
3188
- .rex-onboarding .wpvr-compare .compare-header h4 {
3189
- font-size: 24px;
3190
- line-height: 40px;
3191
- color: #363b4e;
3192
- font-weight: 500;
3193
- margin: 0;
3194
- }
3195
-
3196
- .rex-onboarding .wpvr-compare .compare-header .wpvr-btn {
3197
- height: 45px;
3198
- line-height: 45px;
3199
- }
3200
-
3201
- .rex-onboarding .wpvr-compare .single-feature {
3202
- display: flex;
3203
- flex-flow: row wrap;
3204
- align-items: center;
3205
- justify-content: space-between;
3206
- padding: 0 15px;
3207
- margin: 0;
3208
- }
3209
-
3210
- .rex-onboarding .wpvr-compare .single-feature:nth-child(odd) {
3211
- background: #f8f8fc;
3212
- }
3213
-
3214
- .rex-onboarding .wpvr-compare .single-feature li {
3215
- display: block;
3216
- font-size: 16px;
3217
- color: #787890;
3218
- line-height: 1.4;
3219
- padding: 10px 0;
3220
- margin: 0;
3221
- }
3222
-
3223
- .rex-onboarding .wpvr-compare .single-feature .feature {
3224
- width: 78%;
3225
- padding-right: 20px;
3226
- }
3227
-
3228
- .rex-onboarding .wpvr-compare .single-feature .free {
3229
- width: 10%;
3230
- text-align: center;
3231
- }
3232
-
3233
- .rex-onboarding .wpvr-compare .single-feature .pro {
3234
- width: 10%;
3235
- text-align: center;
3236
- }
3237
-
3238
- .rex-onboarding .wpvr-compare .feature-list .icon {
3239
- width: 25px;
3240
- height: 25px;
3241
- display: flex;
3242
- flex-flow: column;
3243
- align-items: center;
3244
- justify-content: center;
3245
- border-radius: 100%;
3246
- margin: 0 auto;
3247
- }
3248
-
3249
- .rex-onboarding .wpvr-compare .list-header {
3250
- background: #ececf6!important;
3251
- }
3252
-
3253
- .rex-onboarding .wpvr-compare .list-header li {
3254
- color: #201cfe;
3255
- text-transform: uppercase;
3256
- font-weight: 600;
3257
- padding: 14px 0;
3258
- }
3259
-
3260
- .rex-onboarding .wpvr-more-feature h5 {
3261
- font-size: 24px;
3262
- color: #3c3e4a;
3263
- font-weight: 500;
3264
- margin: 0 0 20px;
3265
- }
3266
-
3267
- .rex-onboarding .wpvr-more-feature ul {
3268
- column-count: 3;
3269
- }
3270
-
3271
- .rex-onboarding .wpvr-more-feature ul li {
3272
- font-size: 16px;
3273
- line-height: 1.4;
3274
- color: #787890;
3275
- position: relative;
3276
- padding-left: 34px;
3277
- margin-bottom: 16px;
3278
- }
3279
-
3280
- .rex-onboarding .wpvr-more-feature ul li img {
3281
- width: 17px;
3282
- position: absolute;
3283
- top: 4px;
3284
- left: 0;
3285
- }
3286
-
3287
- .rex-onboarding .wpvr-compare .footer-btn {
3288
- margin-top: 40px;
3289
- }
3290
-
3291
- .rex-onboarding .wpvr-compare .footer-btn .wpvr-btn {
3292
- height: 50px;
3293
- line-height: 50px;
3294
- text-transform: uppercase;
3295
- }
3296
-
3297
-
3298
- /* ----------import tab style---------- */
3299
-
3300
- .rex-onboarding .import-tab .tab-title {
3301
- margin-top: 0;
3302
- font-size: 20px;
3303
- line-height: 1.4;
3304
- font-weight: 700;
3305
- }
3306
-
3307
- .rex-onboarding .import-tab .file-path-wrapper input {
3308
- border: 1px solid #deddff;
3309
- background-color: #fafbff;
3310
- max-width: 650px;
3311
- border-radius: 5px;
3312
- height: 50px;
3313
- padding: 10px 15px;
3314
- box-sizing: border-box;
3315
- }
3316
-
3317
- .rex-onboarding .import-tab .file-path-wrapper input:focus {
3318
- box-shadow: none;
3319
- outline: none;
3320
- }
3321
-
3322
- .rex-onboarding .import-tab .btn-floating.btn-large {
3323
- width: 46px;
3324
- height: 46px;
3325
- margin-bottom: 10px;
3326
- background: #f3f3ff!important;
3327
- box-shadow: none;
3328
- border: 1px solid #8f8dfe;
3329
- border-radius: 10px;
3330
- }
3331
-
3332
- .rex-onboarding .import-tab .btn-floating.btn-large i {
3333
- line-height: 45px;
3334
- color: #1f1cfd;
3335
- }
3336
-
3337
- .rex-onboarding .import-tab .vr-notice {
3338
- margin-top: 0;
3339
- color: #e23636;
3340
- }
3341
-
3342
-
3343
- /* ---------wpvr-settings tab style------------ */
3344
-
3345
- .rex-onboarding .wpvr-settings h4 {
3346
- font-size: 24px;
3347
- color: #3c3e4a;
3348
- font-weight: 500;
3349
- margin: 0 0 35px 0;
3350
- }
3351
-
3352
- .rex-onboarding .wpvr-settings .settings-wrapper {
3353
- display: flex;
3354
- flex-flow: row;
3355
- align-items: flex-start;
3356
- }
3357
-
3358
- .rex-onboarding .wpvr-settings .wpvr_role-container {
3359
- width: 50%;
3360
- padding-right: 30px;
3361
- }
3362
-
3363
- .rex-onboarding .wpvr-settings.pro-active .wpvr_role-container {
3364
- padding-right: 0;
3365
- }
3366
-
3367
- .rex-onboarding .wpvr-settings .wpvr_role-container ul {
3368
- padding: 0;
3369
- margin: 0;
3370
- }
3371
-
3372
- .rex-onboarding .wpvr-settings .wpvr_role-container ul li {
3373
- display: flex;
3374
- margin-bottom: 28px;
3375
- }
3376
-
3377
- .rex-onboarding .wpvr-settings .wpvr_role-container ul li:last-child {
3378
- margin-bottom: 0;
3379
- }
3380
-
3381
- .rex-onboarding .wpvr-settings .wpvr_role-container ul li h6 {
3382
- margin: 0;
3383
- line-height: 1.5;
3384
- font-size: 16px;
3385
- width: calc(100% - 50px);
3386
- padding-right: 30px;
3387
- color: #787890;
3388
- }
3389
-
3390
- .rex-onboarding .wpvr-settings .wpvr_role-container ul li.enqueue-script {
3391
- display: flex;
3392
- flex-flow: row wrap;
3393
- }
3394
-
3395
- .rex-onboarding .wpvr-settings .wpvr_role-container ul li.enqueue-script h6 {
3396
- padding-right: 0;
3397
- }
3398
-
3399
- .rex-onboarding .wpvr-settings .wpvr_role-container ul li.front-notice h6 {
3400
- width: calc(100% - 91px);
3401
- }
3402
-
3403
- .rex-onboarding .wpvr-settings .wpvr_role-container ul li.enqueue-script textarea {
3404
- border: 1px solid #ddd;
3405
- margin: 10px 0 0 0;
3406
- padding: 10px 15px;
3407
- border-radius: 5px;
3408
- box-shadow: none;
3409
- box-sizing: border-box;
3410
- width: 100%;
3411
- }
3412
-
3413
- .rex-onboarding .wpvr-settings .wpvr_role-container ul li.enqueue-script textarea:focus {
3414
- box-shadow: none;
3415
- }
3416
-
3417
- .rex-onboarding .wpvr-settings .wpvr_role-container ul li .wpvr-version {
3418
- display: flex;
3419
- justify-content: space-between;
3420
- align-items: center;
3421
- width: 100%;
3422
- }
3423
-
3424
- .rex-onboarding .wpvr-settings .wpvr_role-container ul li .wpvr-version .wpvr-btn {
3425
- margin-top: 0;
3426
- height: 45px;
3427
- border: none;
3428
- }
3429
-
3430
- .rex-onboarding .wpvr-settings .wpvr_role-container ul li .wpvr-version select {
3431
- border: 1px solid #ddd;
3432
- padding: 5px 15px;
3433
- border-radius: 5px;
3434
- box-shadow: none;
3435
- box-sizing: border-box;
3436
- display: block;
3437
- margin-right: 10px;
3438
- width: 220px;
3439
- margin-left: auto;
3440
- }
3441
-
3442
- .rex-onboarding .wpvr-settings .wpvr_role-container ul li .wpvr-version select:focus {
3443
- outline: none;
3444
- }
3445
-
3446
- .rex-onboarding .wpvr-settings .wpvr_role-container .save-progress-bar {
3447
- height: 10px;
3448
- margin-bottom: 25px;
3449
- padding-top: 8px;
3450
- }
3451
-
3452
- .rex-onboarding .wpvr-settings .wpvr_role-container .save-progress-bar .progress {
3453
- background-color: #c3c2fd;
3454
- margin: 0;
3455
- }
3456
-
3457
- .rex-onboarding .wpvr-settings .wpvr_role-container .save-progress-bar .indeterminate {
3458
- background-color: #201cfe;
3459
- display: block;
3460
- }
3461
-
3462
- .rex-onboarding .wpvr-settings a.wpvr-pro {
3463
- position: absolute;
3464
- top: 14px;
3465
- left: -14px;
3466
- }
3467
-
3468
-
3469
- /* ----------- */
3470
-
3471
- .rex-onboarding .wpvr-settings .upgrade-pro {
3472
- border: 1px solid #201cfe;
3473
- display: flex;
3474
- flex-flow: column;
3475
- align-items: center;
3476
- justify-content: center;
3477
- padding: 25px 15px;
3478
- border-radius: 10px;
3479
- background: #fff;
3480
- width: 346px;
3481
- }
3482
-
3483
- .rex-onboarding .wpvr-settings .upgrade-pro img {
3484
- margin-bottom: 20px;
3485
- }
3486
-
3487
-
3488
- /*-----------wpvr-tooltip style------- */
3489
-
3490
- .wpvr-tooltip {
3491
- margin-left: 25px;
3492
- position: relative;
3493
- }
3494
-
3495
- .wpvr-tooltip .icon {
3496
- display: inline-block;
3497
- cursor: pointer;
3498
- position: relative;
3499
- top: 2px;
3500
- }
3501
-
3502
- .wpvr-tooltip p {
3503
- position: absolute;
3504
- top: 50%;
3505
- left: 40px;
3506
- transform: translateY(-50%);
3507
- font-size: 15px;
3508
- line-height: 24px;
3509
- color: #363b4e;
3510
- font-weight: 400;
3511
- background: #f8f5fd;
3512
- padding: 10px 15px;
3513
- border-radius: 5px;
3514
- width: 230px;
3515
- margin: 0;
3516
- opacity: 0;
3517
- visibility: hidden;
3518
- transition: all 0.3s ease;
3519
- }
3520
-
3521
- .wpvr-tooltip p:before {
3522
- content: "";
3523
- position: absolute;
3524
- left: -5px;
3525
- top: 50%;
3526
- width: 10px;
3527
- height: 10px;
3528
- background: #f8f5fd;
3529
- transform: translateY(-50%) rotate(45deg);
3530
- transform-origin: center;
3531
- }
3532
-
3533
- .wpvr-tooltip .icon:hover+p {
3534
- opacity: 1;
3535
- visibility: visible;
3536
- }
3537
-
3538
-
3539
- /*-----------setup wizard style-----------*/
3540
-
3541
- .setup-wizard-carousel .owl-nav {
3542
- display: flex;
3543
- flex-flow: row;
3544
- align-items: center;
3545
- justify-content: space-between;
3546
- margin-top: 30px;
3547
- }
3548
-
3549
- .setup-wizard-carousel .owl-nav button.owl-prev,
3550
- .setup-wizard-carousel .owl-nav button.owl-next {
3551
- border: none;
3552
- background: #1fb3fb !important;
3553
- display: inline-block;
3554
- padding: 12px 20px !important;
3555
- color: #fff;
3556
- margin: 0 3px;
3557
- border-radius: 5px;
3558
- font-size: 18px;
3559
- }
3560
-
3561
- .setup-wizard-carousel .owl-nav button.owl-prev.disabled,
3562
- .setup-wizard-carousel .owl-nav button.owl-next.disabled {
3563
- display: none;
3564
- }
3565
-
3566
- .setup-wizard-carousel .single-setup h2 {
3567
- font-size: 40px;
3568
- font-weight: 500;
3569
- margin: 0 0 20px 0;
3570
- }
3571
-
3572
- .setup-wizard-carousel .single-setup p {
3573
- font-size: 18px;
3574
- }
3575
-
3576
- .setup-wizard-carousel .single-setup .input-group {
3577
- margin-bottom: 15px;
3578
- }
3579
-
3580
- .setup-wizard-carousel .single-setup .input-group label {
3581
- font-size: 18px;
3582
- line-height: normal;
3583
- color: #333;
3584
- font-weight: 500;
3585
- position: relative;
3586
- padding-left: 35px;
3587
- }
3588
-
3589
- .setup-wizard-carousel .single-setup .input-group label:before {
3590
- content: "";
3591
- position: absolute;
3592
- width: 24px;
3593
- height: 24px;
3594
- border: 2px solid #1fb3fb;
3595
- top: -3px;
3596
- left: 0;
3597
- border-radius: 100%;
3598
- }
3599
-
3600
- .setup-wizard-carousel .single-setup .input-group label:after {
3601
- content: "";
3602
- position: absolute;
3603
- width: 14px;
3604
- height: 14px;
3605
- background: #1fb3fb;
3606
- top: 2px;
3607
- left: 5px;
3608
- transform: scale(0);
3609
- border-radius: 100%;
3610
- transition: all 0.3s ease;
3611
- border: none;
3612
- }
3613
-
3614
- .setup-wizard-carousel .single-setup .input-group input:checked~label:after {
3615
- transform: scale(1);
3616
- }
3617
-
3618
-
3619
- /*------------responsive style------------*/
3620
-
3621
- @media (max-width: 1499px) {
3622
- .rex-onboarding {
3623
- max-width: calc(100% - 15px);
3624
- }
3625
- .rex-onboarding .wpvr-settings .wpvr_role-container {
3626
- width: calc(100% - 346px);
3627
- }
3628
- .rex-onboarding .wpvr-settings.pro-active .wpvr_role-container {
3629
- width: 70%;
3630
- padding-right: 0;
3631
- }
3632
- }
3633
-
3634
-
3635
- /*--media max 1499px */
3636
-
3637
- @media (max-width: 1399px) {
3638
- .rex-onboarding .block-wrapper {
3639
- padding: 50px 30px;
3640
- flex-flow: column;
3641
- }
3642
- .rex-onboarding .compare-tbl-wrapper {
3643
- margin-bottom: 45px;
3644
- }
3645
- .rex-onboarding .info-wrapper {
3646
- margin-left: -30px;
3647
- width: calc(100% + 30px);
3648
- }
3649
- .rex-onboarding .promotion-area {
3650
- width: 100%;
3651
- margin-left: 0;
3652
- margin-top: 30px;
3653
- display: flex;
3654
- flex-flow: row wrap;
3655
- justify-content: space-between;
3656
- }
3657
- .rex-onboarding .promotion-area h4.title {
3658
- width: 100%;
3659
- }
3660
- .rex-onboarding .promotion-area .single-block {
3661
- width: calc(50% - 10px);
3662
- margin-left: 0;
3663
- min-height: auto;
3664
- margin-top: 0;
3665
- }
3666
- }
3667
-
3668
-
3669
- /*--media max 1399px */
3670
-
3671
- @media (max-width: 1199px) {
3672
- .rex-onboarding ul.rex-tabs>li {
3673
- margin-left: 70px;
3674
- }
3675
- .rex-onboarding .single-block {
3676
- width: calc(100% / 2 - 30px);
3677
- }
3678
- .rex-onboarding .single-block.banner {
3679
- width: calc(100% / 3 * 3 - 30px);
3680
- }
3681
- .rex-onboarding .single-block.share-block {
3682
- margin-top: 30px;
3683
- }
3684
- .rex-onboarding .wpvr-more-feature ul {
3685
- column-count: 2;
3686
- }
3687
- .rex-onboarding .wpvr-settings .settings-wrapper {
3688
- display: block;
3689
- }
3690
- .rex-onboarding .wpvr-settings .wpvr_role-container {
3691
- width: 100%;
3692
- padding-right: 0;
3693
- }
3694
- .rex-onboarding .wpvr-settings .wpvr-tooltip p {
3695
- top: inherit;
3696
- bottom: calc(100% + 11px);
3697
- left: inherit;
3698
- right: -10px;
3699
- transform: translateY(0);
3700
- }
3701
- .rex-onboarding .wpvr-settings .wpvr-tooltip p:before {
3702
- left: inherit;
3703
- right: 17px;
3704
- top: inherit;
3705
- bottom: -10px;
3706
- }
3707
- .rex-onboarding .wpvr-settings .upgrade-pro {
3708
- margin-top: 40px;
3709
- }
3710
- .rex-onboarding .wpvr-settings.pro-active .wpvr_role-container {
3711
- width: 100%;
3712
- padding-right: 0;
3713
- }
3714
- .rex-onboarding .video-wrapper {
3715
- display: block;
3716
- }
3717
- .rex-onboarding .video-wrapper .video-left {
3718
- width: 100%;
3719
- }
3720
- .rex-onboarding .video-wrapper .video-right {
3721
- padding-left: 0;
3722
- }
3723
- }
3724
-
3725
- .wpvr-delete-alert-wrapper {
3726
- position: fixed;
3727
- top: 0;
3728
- right: 0;
3729
- padding: 15px;
3730
- width: calc(100% - 160px);
3731
- height: 100%;
3732
- background: rgba(51, 51, 51, 0.4);
3733
- z-index: 999;
3734
- display: none;
3735
- flex-flow: row wrap;
3736
- align-items: center;
3737
- justify-content: center;
3738
- }
3739
-
3740
- .wpvr-delete-alert-wrapper .wpvr-delete-confirmation {
3741
- background: #fff;
3742
- box-shadow: 0 1px 34px rgba(0, 0, 0, 0.06);
3743
- border-radius: 10px;
3744
- padding: 30px 20px;
3745
- width: 100%;
3746
- max-width: 420px;
3747
- text-align: center;
3748
- animation: wpvr-bounce 0.3s;
3749
- }
3750
-
3751
- .wpvr-delete-alert-wrapper .wpvr-delete-confirmation h3 {
3752
- font-size: 16px;
3753
- font-weight: 500;
3754
- }
3755
-
3756
- .wpvr-delete-alert-wrapper .icon {
3757
- display: flex;
3758
- align-items: center;
3759
- justify-content: center;
3760
- border-radius: 100%;
3761
- }
3762
-
3763
- .wpvr-delete-alert-wrapper .wpvr-delete-confirm-btn {
3764
- display: flex;
3765
- flex-flow: row;
3766
- align-items: center;
3767
- justify-content: center;
3768
- margin-top: 30px;
3769
- }
3770
-
3771
- .wpvr-delete-alert-wrapper .wpvr-delete-confirm-btn li {
3772
- margin: 0 10px;
3773
- }
3774
-
3775
- .wpvr-delete-alert-wrapper .wpvr-delete-confirm-btn .btn-default {
3776
- height: 41px;
3777
- line-height: 40px;
3778
- padding: 0 20px;
3779
- min-width: 110px;
3780
- border-radius: 5px;
3781
- border: none;
3782
- outline: none;
3783
- font-size: 16px;
3784
- font-weight: 500;
3785
- transition: all 0.3s ease;
3786
- }
3787
-
3788
- .wpvr-delete-alert-wrapper .wpvr-delete-confirm-btn .btn-default.yes {
3789
- background-color: #004EFA;
3790
- color: #fff;
3791
- }
3792
-
3793
- .wpvr-delete-alert-wrapper .wpvr-delete-confirm-btn .btn-default.yes:hover {
3794
- background-color: #0c4ee0;
3795
- cursor: pointer;
3796
- }
3797
-
3798
- .wpvr-delete-alert-wrapper .wpvr-delete-confirm-btn .btn-default.cancel {
3799
- background-color: #eee;
3800
- color: #333;
3801
- cursor: pointer;
3802
- }
3803
-
3804
- .wpvr-delete-alert-wrapper .wpvr-delete-confirm-btn .btn-default.cancel:hover {
3805
- background-color: #e2e2e2;
3806
- }
3807
-
3808
- @keyframes wpvr-bounce {
3809
- 0% {
3810
- transform: scale(.7);
3811
- }
3812
- 45% {
3813
- transform: scale(1.05);
3814
- }
3815
- 80% {
3816
- transform: scale(.95);
3817
- }
3818
- 100% {
3819
- transform: scale(1);
3820
- }
3821
- }
3822
-
3823
- @media only screen and (max-width: 992px) {
3824
- .rex-onboarding ul.rex-tabs>.wpvr_tabs_row {
3825
- flex-grow: inherit;
3826
- }
3827
- }
3828
-
3829
- @media (max-width: 991px) {
3830
- .single-hotspot .hotspot-setting select {
3831
- height: 46px!important;
3832
- }
3833
- .hotspot-setup .hotspot-setting.custom-icon .field-tooltip span {
3834
- top: inherit;
3835
- left: inherit;
3836
- right: -5px;
3837
- -webkit-transform: inherit;
3838
- -moz-transform: inherit;
3839
- -ms-transform: inherit;
3840
- -o-transform: inherit;
3841
- transform: inherit;
3842
- bottom: 42px;
3843
- }
3844
- .hotspot-setup .hotspot-setting.custom-icon .field-tooltip span:before {
3845
- left: inherit;
3846
- top: inherit;
3847
- -webkit-transform: translateY(0) rotate(-90deg);
3848
- -moz-transform: translateY(0) rotate(-90deg);
3849
- -ms-transform: translateY(0) rotate(-90deg);
3850
- -o-transform: translateY(0) rotate(-90deg);
3851
- transform: translateY(0) rotate(-90deg);
3852
- bottom: -10px;
3853
- right: 10px;
3854
- }
3855
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
trunk/admin/icon/advance-control-hover.png DELETED
Binary file
trunk/admin/icon/advance-control-regular.png DELETED
Binary file
trunk/admin/icon/advanced-control.jpg DELETED
Binary file
trunk/admin/icon/basic-settings-hover.png DELETED
Binary file
trunk/admin/icon/basic-settings-regular.png DELETED
Binary file
trunk/admin/icon/bg-tour-hover.png DELETED
Binary file
trunk/admin/icon/bg-tour-regular.png DELETED
Binary file
trunk/admin/icon/cart-lift.png DELETED
Binary file
trunk/admin/icon/check.png DELETED
Binary file
trunk/admin/icon/control-button.jpg DELETED
Binary file
trunk/admin/icon/control-buttons-hover.png DELETED
Binary file
trunk/admin/icon/control-buttons-regular.png DELETED
Binary file
trunk/admin/icon/copy.png DELETED
Binary file
trunk/admin/icon/cross.png DELETED
Binary file
trunk/admin/icon/doc-icon.png DELETED
Binary file
trunk/admin/icon/export-hover.png DELETED
Binary file
trunk/admin/icon/export-regular.png DELETED
Binary file
trunk/admin/icon/fb-hover.jpg DELETED
Binary file
trunk/admin/icon/fb-regular.jpg DELETED
Binary file
trunk/admin/icon/full-screen.jpg DELETED
Binary file
trunk/admin/icon/general-hover.png DELETED
Binary file
trunk/admin/icon/general-regular.png DELETED
Binary file
trunk/admin/icon/gl-hover.jpg DELETED
Binary file
trunk/admin/icon/gl-regular.jpg DELETED
Binary file
trunk/admin/icon/gryscop.jpg DELETED
Binary file
trunk/admin/icon/home.jpg DELETED
Binary file
trunk/admin/icon/hotspot-hover.png DELETED
Binary file
trunk/admin/icon/hotspot-regular.png DELETED
Binary file
trunk/admin/icon/in-hover.jpg DELETED
Binary file
trunk/admin/icon/in-regular.jpg DELETED
Binary file
trunk/admin/icon/logo.png DELETED
Binary file
trunk/admin/icon/m2c.png DELETED
Binary file
trunk/admin/icon/move-down.jpg DELETED
Binary file
trunk/admin/icon/move-left.jpg DELETED
Binary file
trunk/admin/icon/move-right.jpg DELETED
Binary file
trunk/admin/icon/move-up.jpg DELETED
Binary file
trunk/admin/icon/question-icon.png DELETED
Binary file
trunk/admin/icon/question.png DELETED
Binary file
trunk/admin/icon/rating-icon.png DELETED
Binary file
trunk/admin/icon/scenes-hover.png DELETED
Binary file
trunk/admin/icon/scenes-regular.png DELETED
Binary file
trunk/admin/icon/social-booster.png DELETED
Binary file
trunk/admin/icon/street-view-hover.png DELETED
Binary file
trunk/admin/icon/street-view-regular.png DELETED
Binary file
trunk/admin/icon/support-icon.png DELETED
Binary file
trunk/admin/icon/tw-hover.jpg DELETED
Binary file
trunk/admin/icon/tw-regular.jpg DELETED
Binary file
trunk/admin/icon/uplad-icon.png DELETED
Binary file
trunk/admin/icon/upload.png DELETED
Binary file
trunk/admin/icon/video-hover.png DELETED
Binary file
trunk/admin/icon/video-regular.png DELETED
Binary file
trunk/admin/icon/wpvr-banner.jpg DELETED
Binary file
trunk/admin/icon/wpvr-logo.png DELETED
Binary file
trunk/admin/icon/zoom-in.jpg DELETED
Binary file
trunk/admin/icon/zoom-out.jpg DELETED
Binary file
trunk/admin/index.php DELETED
@@ -1 +0,0 @@
1
- <?php // Silence is golden
 
trunk/admin/js/jquery.repeater.min.js DELETED
@@ -1,5 +0,0 @@
1
- // jquery.repeater version 1.2.1
2
- // https://github.com/DubFriend/jquery.repeater
3
- // (MIT) 09-10-2016
4
- // Brian Detering <BDeterin@gmail.com> (http://www.briandetering.net/)
5
- !function(a){"use strict";var b=function(a){return a},c=function(b){return a.isArray(b)},d=function(a){return!c(a)&&a instanceof Object},e=function(b,c){return a.inArray(c,b)},f=function(a,b){return e(a,b)!==-1},g=function(a,b){for(var c in a)a.hasOwnProperty(c)&&b(a[c],c,a)},h=function(a){return a[a.length-1]},i=function(a){return Array.prototype.slice.call(a)},j=function(){var a={};return g(i(arguments),function(b){g(b,function(b,c){a[c]=b})}),a},k=function(a,b){var c=[];return g(a,function(a,d,e){c.push(b(a,d,e))}),c},l=function(a,b,c){var d={};return g(a,function(a,e,f){e=c?c(e,a):e,d[e]=b(a,e,f)}),d},m=function(a,b,d){return c(a)?k(a,b):l(a,b,d)},n=function(a,b){return m(a,function(a){return a[b]})},o=function(a,b){var d;return c(a)?(d=[],g(a,function(a,c,e){b(a,c,e)&&d.push(a)})):(d={},g(a,function(a,c,e){b(a,c,e)&&(d[c]=a)})),d},p=function(a,b,c){return m(a,function(a,d){return a[b].apply(a,c||[])})},q=function(a){a=a||{};var b={};return a.publish=function(a,c){g(b[a],function(a){a(c)})},a.subscribe=function(a,c){b[a]=b[a]||[],b[a].push(c)},a.unsubscribe=function(a){g(b,function(b){var c=e(b,a);c!==-1&&b.splice(c,1)})},a};!function(a){var b=function(a,b){var c=q(),d=a.$;return c.getType=function(){throw'implement me (return type. "text", "radio", etc.)'},c.$=function(a){return a?d.find(a):d},c.disable=function(){c.$().prop("disabled",!0),c.publish("isEnabled",!1)},c.enable=function(){c.$().prop("disabled",!1),c.publish("isEnabled",!0)},b.equalTo=function(a,b){return a===b},b.publishChange=function(){var a;return function(d,e){var f=c.get();b.equalTo(f,a)||c.publish("change",{e:d,domElement:e}),a=f}}(),c},i=function(a,c){var d=b(a,c);return d.get=function(){return d.$().val()},d.set=function(a){d.$().val(a)},d.clear=function(){d.set("")},c.buildSetter=function(a){return function(b){a.call(d,b)}},d},j=function(a,b){a=c(a)?a:[a],b=c(b)?b:[b];var d=!0;return a.length!==b.length?d=!1:g(a,function(a){f(b,a)||(d=!1)}),d},k=function(a){var b={},c=i(a,b);return c.getType=function(){return"button"},c.$().on("change",function(a){b.publishChange(a,this)}),c},l=function(b){var d={},e=i(b,d);return e.getType=function(){return"checkbox"},e.get=function(){var b=[];return e.$().filter(":checked").each(function(){b.push(a(this).val())}),b},e.set=function(b){b=c(b)?b:[b],e.$().each(function(){a(this).prop("checked",!1)}),g(b,function(a){e.$().filter('[value="'+a+'"]').prop("checked",!0)})},d.equalTo=j,e.$().change(function(a){d.publishChange(a,this)}),e},m=function(a){var b={},c=x(a,b);return c.getType=function(){return"email"},c},n=function(c){var d={},e=b(c,d);return e.getType=function(){return"file"},e.get=function(){return h(e.$().val().split("\\"))},e.clear=function(){this.$().each(function(){a(this).wrap("<form>").closest("form").get(0).reset(),a(this).unwrap()})},e.$().change(function(a){d.publishChange(a,this)}),e},o=function(a){var b={},c=i(a,b);return c.getType=function(){return"hidden"},c.$().change(function(a){b.publishChange(a,this)}),c},r=function(c){var d={},e=b(c,d);return e.getType=function(){return"file[multiple]"},e.get=function(){var a,b=e.$().get(0).files||[],c=[];for(a=0;a<(b.length||0);a+=1)c.push(b[a].name);return c},e.clear=function(){this.$().each(function(){a(this).wrap("<form>").closest("form").get(0).reset(),a(this).unwrap()})},e.$().change(function(a){d.publishChange(a,this)}),e},s=function(a){var b={},d=i(a,b);return d.getType=function(){return"select[multiple]"},d.get=function(){return d.$().val()||[]},d.set=function(a){d.$().val(""===a?[]:c(a)?a:[a])},b.equalTo=j,d.$().change(function(a){b.publishChange(a,this)}),d},t=function(a){var b={},c=x(a,b);return c.getType=function(){return"password"},c},u=function(b){var c={},d=i(b,c);return d.getType=function(){return"radio"},d.get=function(){return d.$().filter(":checked").val()||null},d.set=function(b){b?d.$().filter('[value="'+b+'"]').prop("checked",!0):d.$().each(function(){a(this).prop("checked",!1)})},d.$().change(function(a){c.publishChange(a,this)}),d},v=function(a){var b={},c=i(a,b);return c.getType=function(){return"range"},c.$().change(function(a){b.publishChange(a,this)}),c},w=function(a){var b={},c=i(a,b);return c.getType=function(){return"select"},c.$().change(function(a){b.publishChange(a,this)}),c},x=function(a){var b={},c=i(a,b);return c.getType=function(){return"text"},c.$().on("change keyup keydown",function(a){b.publishChange(a,this)}),c},y=function(a){var b={},c=i(a,b);return c.getType=function(){return"textarea"},c.$().on("change keyup keydown",function(a){b.publishChange(a,this)}),c},z=function(a){var b={},c=x(a,b);return c.getType=function(){return"url"},c},A=function(b){var c={},f=b.$,h=b.constructorOverride||{button:k,text:x,url:z,email:m,password:t,range:v,textarea:y,select:w,"select[multiple]":s,radio:u,checkbox:l,file:n,"file[multiple]":r,hidden:o},i=function(b,e){var g=d(e)?e:f.find(e);g.each(function(){var d=a(this).attr("name");c[d]=h[b]({$:a(this)})})},j=function(b,i){var j=[],k=d(i)?i:f.find(i);d(i)?c[k.attr("name")]=h[b]({$:k}):(k.each(function(){e(j,a(this).attr("name"))===-1&&j.push(a(this).attr("name"))}),g(j,function(a){c[a]=h[b]({$:f.find('input[name="'+a+'"]')})}))};return f.is("input, select, textarea")?f.is('input[type="button"], button, input[type="submit"]')?i("button",f):f.is("textarea")?i("textarea",f):f.is('input[type="text"]')||f.is("input")&&!f.attr("type")?i("text",f):f.is('input[type="password"]')?i("password",f):f.is('input[type="email"]')?i("email",f):f.is('input[type="url"]')?i("url",f):f.is('input[type="range"]')?i("range",f):f.is("select")?f.is("[multiple]")?i("select[multiple]",f):i("select",f):f.is('input[type="file"]')?f.is("[multiple]")?i("file[multiple]",f):i("file",f):f.is('input[type="hidden"]')?i("hidden",f):f.is('input[type="radio"]')?j("radio",f):f.is('input[type="checkbox"]')?j("checkbox",f):i("text",f):(i("button",'input[type="button"], button, input[type="submit"]'),i("text",'input[type="text"]'),i("password",'input[type="password"]'),i("email",'input[type="email"]'),i("url",'input[type="url"]'),i("range",'input[type="range"]'),i("textarea","textarea"),i("select","select:not([multiple])"),i("select[multiple]","select[multiple]"),i("file",'input[type="file"]:not([multiple])'),i("file[multiple]",'input[type="file"][multiple]'),i("hidden",'input[type="hidden"]'),j("radio",'input[type="radio"]'),j("checkbox",'input[type="checkbox"]')),c};a.fn.inputVal=function(b){var c=a(this),d=A({$:c});return c.is("input, textarea, select")?"undefined"==typeof b?d[c.attr("name")].get():(d[c.attr("name")].set(b),c):"undefined"==typeof b?p(d,"get"):(g(b,function(a,b){d[b].set(a)}),c)},a.fn.inputOnChange=function(b){var c=a(this),d=A({$:c});return g(d,function(a){a.subscribe("change",function(a){b.call(a.domElement,a.e)})}),c},a.fn.inputDisable=function(){var b=a(this);return p(A({$:b}),"disable"),b},a.fn.inputEnable=function(){var b=a(this);return p(A({$:b}),"enable"),b},a.fn.inputClear=function(){var b=a(this);return p(A({$:b}),"clear"),b}}(jQuery),a.fn.repeaterVal=function(){var b=function(a){var b=[];return g(a,function(a,c){var d=[];"undefined"!==c&&(d.push(c.match(/^[^\[]*/)[0]),d=d.concat(m(c.match(/\[[^\]]*\]/g),function(a){return a.replace(/[\[\]]/g,"")})),b.push({val:a,key:d}))}),b},c=function(a){if(1===a.length&&(0===a[0].key.length||1===a[0].key.length&&!a[0].key[0]))return a[0].val;g(a,function(a){a.head=a.key.shift()});var b,d=function(){var b={};return g(a,function(a){b[a.head]||(b[a.head]=[]),b[a.head].push(a)}),b}();return/^[0-9]+$/.test(a[0].head)?(b=[],g(d,function(a){b.push(c(a))})):(b={},g(d,function(a,d){b[d]=c(a)})),b};return c(b(a(this).inputVal()))},a.fn.repeater=function(c){c=c||{};var d;return a(this).each(function(){var e=a(this),f=c.show||function(){a(this).show()},i=c.hide||function(a){a()},k=e.find("[data-repeater-list]").first(),l=function(b,c){return b.filter(function(){return!c||0===a(this).closest(n(c,"selector").join(",")).length})},p=function(){return l(k.find("[data-repeater-item]"),c.repeaters)},q=k.find("[data-repeater-item]").first().clone().hide(),r=l(l(a(this).find("[data-repeater-item]"),c.repeaters).first().find("[data-repeater-delete]"),c.repeaters);c.isFirstItemUndeletable&&r&&r.remove();var s=function(){var a=k.data("repeater-list");return c.$parent?c.$parent.data("item-name")+"["+a+"]":a},t=function(b){c.repeaters&&b.each(function(){var b=a(this);g(c.repeaters,function(a){b.find(a.selector).repeater(j(a,{$parent:b}))})})},u=function(a,b,c){a&&g(a,function(a){c.call(b.find(a.selector)[0],a)})},v=function(b,c,d){b.each(function(b){var e=a(this);e.data("item-name",c+"["+b+"]"),l(e.find("[name]"),d).each(function(){var f=a(this),g=f.attr("name").match(/\[[^\]]+\]/g),i=g?h(g).replace(/\[|\]/g,""):f.attr("name"),j=c+"["+b+"]["+i+"]"+(f.is(":checkbox")||f.attr("multiple")?"[]":"");f.attr("name",j),u(d,e,function(d){var e=a(this);v(l(e.find("[data-repeater-item]"),d.repeaters||[]),c+"["+b+"]["+e.find("[data-repeater-list]").first().data("repeater-list")+"]",d.repeaters)})})}),k.find("input[name][checked]").removeAttr("checked").prop("checked",!0)};v(p(),s(),c.repeaters),t(p()),c.initEmpty&&p().remove(),c.ready&&c.ready(function(){v(p(),s(),c.repeaters)});var w=function(){var d=function(e,f,h){if(f||c.defaultValues){var i={};l(e.find("[name]"),h).each(function(){var b=a(this).attr("name").match(/\[([^\]]*)(\]|\]\[\])$/)[1];i[b]=a(this).attr("name")}),e.inputVal(m(o(f||c.defaultValues,function(a,b){return i[b]}),b,function(a){return i[a]}))}u(h,e,function(b){var c=a(this);l(c.find("[data-repeater-item]"),b.repeaters).each(function(){var e=c.find("[data-repeater-list]").data("repeater-list");if(f&&f[e]){var h=a(this).clone();c.find("[data-repeater-item]").remove(),g(f[e],function(a){var e=h.clone();d(e,a,b.repeaters||[]),c.find("[data-repeater-list]").append(e)})}else d(a(this),b.defaultValues,b.repeaters||[])})})};return function(b,e){k.append(b),v(p(),s(),c.repeaters),b.find("[name]").each(function(){a(this).inputClear()}),d(b,e||c.defaultValues,c.repeaters)}}(),x=function(a){var b=q.clone();w(b,a),c.repeaters&&t(b),f.call(b.get(0))};d=function(a){p().remove(),g(a,x)},l(e.find("[data-repeater-create]"),c.repeaters).click(function(){x()}),k.on("click","[data-repeater-delete]",function(){var b=a(this).closest("[data-repeater-item]").get(0);i.call(b,function(){a(b).remove(),v(p(),s(),c.repeaters)})})}),this.setList=d,this}}(jQuery);
 
 
 
 
 
trunk/admin/js/materialize.js DELETED
@@ -1,8031 +0,0 @@
1
- /*!
2
- * Materialize v0.98.0 (http://materializecss.com)
3
- * Copyright 2014-2015 Materialize
4
- * MIT License (https://raw.githubusercontent.com/Dogfalo/materialize/master/LICENSE)
5
- */
6
- // Check for jQuery.
7
- if (typeof(jQuery) === 'undefined') {
8
- var jQuery;
9
- // Check if require is a defined function.
10
- if (typeof(require) === 'function') {
11
- jQuery = $ = require('jquery');
12
- // Else use the dollar sign alias.
13
- } else {
14
- jQuery = $;
15
- }
16
- }
17
- ;/*
18
- * jQuery Easing v1.3 - http://gsgd.co.uk/sandbox/jquery/easing/
19
- *
20
- * Uses the built in easing capabilities added In jQuery 1.1
21
- * to offer multiple easing options
22
- *
23
- * TERMS OF USE - jQuery Easing
24
- *
25
- * Open source under the BSD License.
26
- *
27
- * Copyright © 2008 George McGinley Smith
28
- * All rights reserved.
29
- *
30
- * Redistribution and use in source and binary forms, with or without modification,
31
- * are permitted provided that the following conditions are met:
32
- *
33
- * Redistributions of source code must retain the above copyright notice, this list of
34
- * conditions and the following disclaimer.
35
- * Redistributions in binary form must reproduce the above copyright notice, this list
36
- * of conditions and the following disclaimer in the documentation and/or other materials
37
- * provided with the distribution.
38
- *
39
- * Neither the name of the author nor the names of contributors may be used to endorse
40
- * or promote products derived from this software without specific prior written permission.
41
- *
42
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
43
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
44
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
45
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
46
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
47
- * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
48
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
49
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
50
- * OF THE POSSIBILITY OF SUCH DAMAGE.
51
- *
52
- */
53
-
54
- // t: current time, b: begInnIng value, c: change In value, d: duration
55
- jQuery.easing['jswing'] = jQuery.easing['swing'];
56
-
57
- jQuery.extend( jQuery.easing,
58
- {
59
- def: 'easeOutQuad',
60
- swing: function (x, t, b, c, d) {
61
- //alert(jQuery.easing.default);
62
- return jQuery.easing[jQuery.easing.def](x, t, b, c, d);
63
- },
64
- easeInQuad: function (x, t, b, c, d) {
65
- return c*(t/=d)*t + b;
66
- },
67
- easeOutQuad: function (x, t, b, c, d) {
68
- return -c *(t/=d)*(t-2) + b;
69
- },
70
- easeInOutQuad: function (x, t, b, c, d) {
71
- if ((t/=d/2) < 1) return c/2*t*t + b;
72
- return -c/2 * ((--t)*(t-2) - 1) + b;
73
- },
74
- easeInCubic: function (x, t, b, c, d) {
75
- return c*(t/=d)*t*t + b;
76
- },
77
- easeOutCubic: function (x, t, b, c, d) {
78
- return c*((t=t/d-1)*t*t + 1) + b;
79
- },
80
- easeInOutCubic: function (x, t, b, c, d) {
81
- if ((t/=d/2) < 1) return c/2*t*t*t + b;
82
- return c/2*((t-=2)*t*t + 2) + b;
83
- },
84
- easeInQuart: function (x, t, b, c, d) {
85
- return c*(t/=d)*t*t*t + b;
86
- },
87
- easeOutQuart: function (x, t, b, c, d) {
88
- return -c * ((t=t/d-1)*t*t*t - 1) + b;
89
- },
90
- easeInOutQuart: function (x, t, b, c, d) {
91
- if ((t/=d/2) < 1) return c/2*t*t*t*t + b;
92
- return -c/2 * ((t-=2)*t*t*t - 2) + b;
93
- },
94
- easeInQuint: function (x, t, b, c, d) {
95
- return c*(t/=d)*t*t*t*t + b;
96
- },
97
- easeOutQuint: function (x, t, b, c, d) {
98
- return c*((t=t/d-1)*t*t*t*t + 1) + b;
99
- },
100
- easeInOutQuint: function (x, t, b, c, d) {
101
- if ((t/=d/2) < 1) return c/2*t*t*t*t*t + b;
102
- return c/2*((t-=2)*t*t*t*t + 2) + b;
103
- },
104
- easeInSine: function (x, t, b, c, d) {
105
- return -c * Math.cos(t/d * (Math.PI/2)) + c + b;
106
- },
107
- easeOutSine: function (x, t, b, c, d) {
108
- return c * Math.sin(t/d * (Math.PI/2)) + b;
109
- },
110
- easeInOutSine: function (x, t, b, c, d) {
111
- return -c/2 * (Math.cos(Math.PI*t/d) - 1) + b;
112
- },
113
- easeInExpo: function (x, t, b, c, d) {
114
- return (t==0) ? b : c * Math.pow(2, 10 * (t/d - 1)) + b;
115
- },
116
- easeOutExpo: function (x, t, b, c, d) {
117
- return (t==d) ? b+c : c * (-Math.pow(2, -10 * t/d) + 1) + b;
118
- },
119
- easeInOutExpo: function (x, t, b, c, d) {
120
- if (t==0) return b;
121
- if (t==d) return b+c;
122
- if ((t/=d/2) < 1) return c/2 * Math.pow(2, 10 * (t - 1)) + b;
123
- return c/2 * (-Math.pow(2, -10 * --t) + 2) + b;
124
- },
125
- easeInCirc: function (x, t, b, c, d) {
126
- return -c * (Math.sqrt(1 - (t/=d)*t) - 1) + b;
127
- },
128
- easeOutCirc: function (x, t, b, c, d) {
129
- return c * Math.sqrt(1 - (t=t/d-1)*t) + b;
130
- },
131
- easeInOutCirc: function (x, t, b, c, d) {
132
- if ((t/=d/2) < 1) return -c/2 * (Math.sqrt(1 - t*t) - 1) + b;
133
- return c/2 * (Math.sqrt(1 - (t-=2)*t) + 1) + b;
134
- },
135
- easeInElastic: function (x, t, b, c, d) {
136
- var s=1.70158;var p=0;var a=c;
137
- if (t==0) return b; if ((t/=d)==1) return b+c; if (!p) p=d*.3;
138
- if (a < Math.abs(c)) { a=c; var s=p/4; }
139
- else var s = p/(2*Math.PI) * Math.asin (c/a);
140
- return -(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;
141
- },
142
- easeOutElastic: function (x, t, b, c, d) {
143
- var s=1.70158;var p=0;var a=c;
144
- if (t==0) return b; if ((t/=d)==1) return b+c; if (!p) p=d*.3;
145
- if (a < Math.abs(c)) { a=c; var s=p/4; }
146
- else var s = p/(2*Math.PI) * Math.asin (c/a);
147
- return a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b;
148
- },
149
- easeInOutElastic: function (x, t, b, c, d) {
150
- var s=1.70158;var p=0;var a=c;
151
- if (t==0) return b; if ((t/=d/2)==2) return b+c; if (!p) p=d*(.3*1.5);
152
- if (a < Math.abs(c)) { a=c; var s=p/4; }
153
- else var s = p/(2*Math.PI) * Math.asin (c/a);
154
- if (t < 1) return -.5*(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;
155
- return a*Math.pow(2,-10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )*.5 + c + b;
156
- },
157
- easeInBack: function (x, t, b, c, d, s) {
158
- if (s == undefined) s = 1.70158;
159
- return c*(t/=d)*t*((s+1)*t - s) + b;
160
- },
161
- easeOutBack: function (x, t, b, c, d, s) {
162
- if (s == undefined) s = 1.70158;
163
- return c*((t=t/d-1)*t*((s+1)*t + s) + 1) + b;
164
- },
165
- easeInOutBack: function (x, t, b, c, d, s) {
166
- if (s == undefined) s = 1.70158;
167
- if ((t/=d/2) < 1) return c/2*(t*t*(((s*=(1.525))+1)*t - s)) + b;
168
- return c/2*((t-=2)*t*(((s*=(1.525))+1)*t + s) + 2) + b;
169
- },
170
- easeInBounce: function (x, t, b, c, d) {
171
- return c - jQuery.easing.easeOutBounce (x, d-t, 0, c, d) + b;
172
- },
173
- easeOutBounce: function (x, t, b, c, d) {
174
- if ((t/=d) < (1/2.75)) {
175
- return c*(7.5625*t*t) + b;
176
- } else if (t < (2/2.75)) {
177
- return c*(7.5625*(t-=(1.5/2.75))*t + .75) + b;
178
- } else if (t < (2.5/2.75)) {
179
- return c*(7.5625*(t-=(2.25/2.75))*t + .9375) + b;
180
- } else {
181
- return c*(7.5625*(t-=(2.625/2.75))*t + .984375) + b;
182
- }
183
- },
184
- easeInOutBounce: function (x, t, b, c, d) {
185
- if (t < d/2) return jQuery.easing.easeInBounce (x, t*2, 0, c, d) * .5 + b;
186
- return jQuery.easing.easeOutBounce (x, t*2-d, 0, c, d) * .5 + c*.5 + b;
187
- }
188
- });
189
-
190
- /*
191
- *
192
- * TERMS OF USE - EASING EQUATIONS
193
- *
194
- * Open source under the BSD License.
195
- *
196
- * Copyright © 2001 Robert Penner
197
- * All rights reserved.
198
- *
199
- * Redistribution and use in source and binary forms, with or without modification,
200
- * are permitted provided that the following conditions are met:
201
- *
202
- * Redistributions of source code must retain the above copyright notice, this list of
203
- * conditions and the following disclaimer.
204
- * Redistributions in binary form must reproduce the above copyright notice, this list
205
- * of conditions and the following disclaimer in the documentation and/or other materials
206
- * provided with the distribution.
207
- *
208
- * Neither the name of the author nor the names of contributors may be used to endorse
209
- * or promote products derived from this software without specific prior written permission.
210
- *
211
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
212
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
213
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
214
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
215
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
216
- * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
217
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
218
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
219
- * OF THE POSSIBILITY OF SUCH DAMAGE.
220
- *
221
- */;// Custom Easing
222
- jQuery.extend( jQuery.easing,
223
- {
224
- easeInOutMaterial: function (x, t, b, c, d) {
225
- if ((t/=d/2) < 1) return c/2*t*t + b;
226
- return c/4*((t-=2)*t*t + 2) + b;
227
- }
228
- });;/*! VelocityJS.org (1.2.3). (C) 2014 Julian Shapiro. MIT @license: en.wikipedia.org/wiki/MIT_License */
229
- /*! VelocityJS.org jQuery Shim (1.0.1). (C) 2014 The jQuery Foundation. MIT @license: en.wikipedia.org/wiki/MIT_License. */
230
- /*! Note that this has been modified by Materialize to confirm that Velocity is not already being imported. */
231
- jQuery.Velocity?console.log("Velocity is already loaded. You may be needlessly importing Velocity again; note that Materialize includes Velocity."):(!function(e){function t(e){var t=e.length,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}if(!e.jQuery){var r=function(e,t){return new r.fn.init(e,t)};r.isWindow=function(e){return null!=e&&e==e.window},r.type=function(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[i.call(e)]||"object":typeof e},r.isArray=Array.isArray||function(e){return"array"===r.type(e)},r.isPlainObject=function(e){var t;if(!e||"object"!==r.type(e)||e.nodeType||r.isWindow(e))return!1;try{if(e.constructor&&!o.call(e,"constructor")&&!o.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(a){return!1}for(t in e);return void 0===t||o.call(e,t)},r.each=function(e,r,a){var n,o=0,i=e.length,s=t(e);if(a){if(s)for(;i>o&&(n=r.apply(e[o],a),n!==!1);o++);else for(o in e)if(n=r.apply(e[o],a),n===!1)break}else if(s)for(;i>o&&(n=r.call(e[o],o,e[o]),n!==!1);o++);else for(o in e)if(n=r.call(e[o],o,e[o]),n===!1)break;return e},r.data=function(e,t,n){if(void 0===n){var o=e[r.expando],i=o&&a[o];if(void 0===t)return i;if(i&&t in i)return i[t]}else if(void 0!==t){var o=e[r.expando]||(e[r.expando]=++r.uuid);return a[o]=a[o]||{},a[o][t]=n,n}},r.removeData=function(e,t){var n=e[r.expando],o=n&&a[n];o&&r.each(t,function(e,t){delete o[t]})},r.extend=function(){var e,t,a,n,o,i,s=arguments[0]||{},l=1,u=arguments.length,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++)if(null!=(o=arguments[l]))for(n in o)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));return s},r.queue=function(e,a,n){function o(e,r){var a=r||[];return null!=e&&(t(Object(e))?!function(e,t){for(var r=+t.length,a=0,n=e.length;r>a;)e[n++]=t[a++];if(r!==r)for(;void 0!==t[a];)e[n++]=t[a++];return e.length=n,e}(a,"string"==typeof e?[e]:e):[].push.call(a,e)),a}if(e){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||[]}},r.dequeue=function(e,t){r.each(e.nodeType?[e]:e,function(e,a){t=t||"fx";var n=r.queue(a,t),o=n.shift();"inprogress"===o&&(o=n.shift()),o&&("fx"===t&&n.unshift("inprogress"),o.call(a,function(){r.dequeue(a,t)}))})},r.fn=r.prototype={init:function(e){if(e.nodeType)return this[0]=e,this;throw new Error("Not a DOM node.")},offset:function(){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)}},position:function(){function e(){for(var e=this.offsetParent||document;e&&"html"===!e.nodeType.toLowerCase&&"static"===e.style.position;)e=e.offsetParent;return e||document}var t=this[0],e=e.apply(t),a=this.offset(),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}}};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++)n["[object "+s[l]+"]"]=s[l].toLowerCase();r.fn.init.prototype=r.fn,e.Velocity={Utilities:r}}}(window),function(e){"object"==typeof module&&"object"==typeof module.exports?module.exports=e():"function"==typeof define&&define.amd?define(e):e()}(function(){return function(e,t,r,a){function n(e){for(var t=-1,r=e?e.length:0,a=[];++t<r;){var n=e[t];n&&a.push(n)}return a}function o(e){return m.isWrapped(e)?e=[].slice.call(e):m.isNode(e)&&(e=[e]),e}function i(e){var t=f.data(e,"velocity");return null===t?a:t}function s(e){return function(t){return Math.round(t*e)*(1/e)}}function l(e,r,a,n){function o(e,t){return 1-3*t+3*e}function i(e,t){return 3*t-6*e}function s(e){return 3*e}function l(e,t,r){return((o(t,r)*e+i(t,r))*e+s(t))*e}function u(e,t,r){return 3*o(t,r)*e*e+2*i(t,r)*e+s(t)}function c(t,r){for(var n=0;m>n;++n){var o=u(r,e,a);if(0===o)return r;var i=l(r,e,a)-t;r-=i/o}return r}function p(){for(var t=0;b>t;++t)w[t]=l(t*x,e,a)}function f(t,r,n){var o,i,s=0;do i=r+(n-r)/2,o=l(i,e,a)-t,o>0?n=i:r=i;while(Math.abs(o)>h&&++s<v);return i}function d(t){for(var r=0,n=1,o=b-1;n!=o&&w[n]<=t;++n)r+=x;--n;var i=(t-w[n])/(w[n+1]-w[n]),s=r+i*x,l=u(s,e,a);return l>=y?c(t,s):0==l?s:f(t,r,r+x)}function g(){V=!0,(e!=r||a!=n)&&p()}var m=4,y=.001,h=1e-7,v=10,b=11,x=1/(b-1),S="Float32Array"in t;if(4!==arguments.length)return!1;for(var P=0;4>P;++P)if("number"!=typeof arguments[P]||isNaN(arguments[P])||!isFinite(arguments[P]))return!1;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),V=!1,C=function(t){return V||g(),e===r&&a===n?t:0===t?0:1===t?1:l(d(t),r,n)};C.getControlPoints=function(){return[{x:e,y:r},{x:a,y:n}]};var T="generateBezier("+[e,r,a,n]+")";return C.toString=function(){return T},C}function u(e,t){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}function c(e){if(e){var t=(new Date).getTime(),r=b.State.calls.length;r>1e4&&(b.State.calls=n(b.State.calls));for(var o=0;r>o;o++)if(b.State.calls[o]){var s=b.State.calls[o],l=s[0],u=s[2],d=s[3],g=!!d,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++){var P=l[v],V=P.element;if(i(V)){var C=!1;if(u.display!==a&&null!==u.display&&"none"!==u.display){if("flex"===u.display){var T=["-webkit-box","-moz-box","-ms-flexbox","-webkit-flex"];f.each(T,function(e,t){S.setPropertyValue(V,"display",t)})}S.setPropertyValue(V,"display",u.display)}u.visibility!==a&&"hidden"!==u.visibility&&S.setPropertyValue(V,"visibility",u.visibility);for(var k in P)if("element"!==k){var A,F=P[k],j=m.isString(F.easing)?b.Easings[F.easing]:F.easing;if(1===h)A=F.endValue;else{var E=F.endValue-F.startValue;if(A=F.startValue+E*j(h,u,E),!g&&A===F.currentValue)continue}if(F.currentValue=A,"tween"===k)y=A;else{if(S.Hooks.registered[k]){var H=S.Hooks.getRoot(k),N=i(V).rootPropertyValueCache[H];N&&(F.rootPropertyValue=N)}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)}}u.mobileHA&&i(V).transformCache.translate3d===a&&(i(V).transformCache.translate3d="(0px, 0px, 0px)",C=!0),C&&S.flushTransformCache(V)}}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)}}b.State.isTicking&&w(c)}function p(e,t){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++){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)){i(p).isAnimating=!1,i(p).rootPropertyValueCache={};var d=!1;f.each(S.Lists.transforms3D,function(e,t){var r=/^scale/.test(t)?1:0,n=i(p).transformCache[t];i(p).transformCache[t]!==a&&new RegExp("^\\("+r+"[^.]").test(n)&&(d=!0,delete i(p).transformCache[t])}),o.mobileHA&&(d=!0,delete i(p).transformCache.translate3d),d&&S.flushTransformCache(p),S.Values.removeClass(p,"velocity-animating")}if(!t&&o.complete&&!o.loop&&u===c-1)try{o.complete.call(n,n)}catch(g){setTimeout(function(){throw g},1)}s&&o.loop!==!0&&s(n),i(p)&&o.loop===!0&&!t&&(f.each(i(p).tweensContainer,function(e,t){/^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)}),b(p,"reverse",{loop:!0,delay:o.delay})),o.queue!==!1&&f.dequeue(p,o.queue)}b.State.calls[e]=!1;for(var m=0,y=b.State.calls.length;y>m;m++)if(b.State.calls[m]!==!1){l=!0;break}l===!1&&(b.State.isTicking=!1,delete b.State.calls,b.State.calls=[])}var f,d=function(){if(r.documentMode)return r.documentMode;for(var e=7;e>4;e--){var t=r.createElement("div");if(t.innerHTML="<!--[if IE "+e+"]><span></span><![endif]-->",t.getElementsByTagName("span").length)return t=null,e}return a}(),g=function(){var e=0;return t.webkitRequestAnimationFrame||t.mozRequestAnimationFrame||function(t){var r,a=(new Date).getTime();return r=Math.max(0,16-(a-e)),e=a+r,setTimeout(function(){t(a+r)},r)}}(),m={isString:function(e){return"string"==typeof e},isArray:Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)},isFunction:function(e){return"[object Function]"===Object.prototype.toString.call(e)},isNode:function(e){return e&&e.nodeType},isNodeList:function(e){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)},isWrapped:function(e){return e&&(e.jquery||t.Zepto&&t.Zepto.zepto.isZ(e))},isSVG:function(e){return t.SVGElement&&e instanceof t.SVGElement},isEmptyObject:function(e){for(var t in e)return!1;return!0}},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,v="swing",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){f.data(e,"velocity",{isSVG:m.isSVG(e),isAnimating:!1,computedStyle:null,tweensContainer:null,rootPropertyValueCache:{},transformCache:{}})},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(){function e(e){return-e.tension*e.x-e.friction*e.v}function t(t,r,a){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)}}function r(r,a){var n={dx:r.v,dv:e(r)},o=t(r,.5*a,n),i=t(r,.5*a,o),s=t(r,a,i),l=1/6*(n.dx+2*(o.dx+i.dx)+s.dx),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}return function a(e,t,n){var o,i,s,l={x:-1,v:0,tension:null,friction:null},u=[0],c=0,p=1e-4,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){return u[e*(u.length-1)|0]}:c}}();b.Easings={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},spring:function(e){return 1-Math.cos(4.5*e*Math.PI)*Math.exp(6*-e)}},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){b.Easings[t[0]]=l.apply(null,t[1])});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(){for(var e=0;e<S.Lists.colors.length;e++){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]}var r,a,n;if(d)for(r in S.Hooks.templates){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(" ")])}for(r in S.Hooks.templates){a=S.Hooks.templates[r],n=a[0].split(" ");for(var e in n){var i=r+n[e],s=e;S.Hooks.registered[i]=[r,s]}}},getRoot:function(e){var t=S.Hooks.registered[e];return t?t[0]:e},cleanRootPropertyValue:function(e,t){return S.RegEx.valueUnwrap.test(t)&&(t=t.match(S.RegEx.valueUnwrap)[1]),S.Values.isCSSNullValue(t)&&(t=S.Hooks.templates[e][1]),t},extractValue:function(e,t){var r=S.Hooks.registered[e];if(r){var a=r[0],n=r[1];return t=S.Hooks.cleanRootPropertyValue(a,t),t.toString().match(S.RegEx.valueSplit)[n]}return t},injectValue:function(e,t,r){var a=S.Hooks.registered[e];if(a){var n,o,i=a[0],s=a[1];return r=S.Hooks.cleanRootPropertyValue(i,r),n=r.toString().match(S.RegEx.valueSplit),n[s]=t,o=n.join(" ")}return r}},Normalizations:{registered:{clip:function(e,t,r){switch(e){case"name":return"clip";case"extract":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":return"rect("+r+")"}},blur:function(e,t,r){switch(e){case"name":return b.State.isFirefox?"filter":"-webkit-filter";case"extract":var a=parseFloat(r);if(!a&&0!==a){var n=r.toString().match(/blur\(([0-9]+[A-z]+)\)/i);a=n?n[1]:0}return a;case"inject":return parseFloat(r)?"blur("+r+")":"none"}},opacity:function(e,t,r){if(8>=d)switch(e){case"name":return"filter";case"extract":var a=r.toString().match(/alpha\(opacity=(.*)\)/i);return r=a?a[1]/100:1;case"inject":return t.style.zoom=1,parseFloat(r)>=1?"":"alpha(opacity="+parseInt(100*parseFloat(r),10)+")"}else switch(e){case"name":return"opacity";case"extract":return r;case"inject":return r}}},register:function(){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++)!function(){var t=S.Lists.transformsBase[e];S.Normalizations.registered[t]=function(e,r,n){switch(e){case"name":return"transform";case"extract":return i(r)===a||i(r).transformCache[t]===a?/^scale/i.test(t)?1:0:i(r).transformCache[t].replace(/[()]/g,"");case"inject":var o=!1;switch(t.substr(0,t.length-1)){case"translate":o=!/(%|px|em|rem|vw|vh|\d)$/i.test(n);break;case"scal":case"scale":b.State.isAndroid&&i(r).transformCache[t]===a&&1>n&&(n=1),o=!/(\d)$/i.test(n);break;case"skew":o=!/(deg|\d)$/i.test(n);break;case"rotate":o=!/(deg|\d)$/i.test(n)}return o||(i(r).transformCache[t]="("+n+")"),i(r).transformCache[t]}}}();for(var e=0;e<S.Lists.colors.length;e++)!function(){var t=S.Lists.colors[e];S.Normalizations.registered[t]=function(e,r,n){switch(e){case"name":return t;case"extract":var o;if(S.RegEx.wrappedValueAlreadyExtracted.test(n))o=n;else{var i,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," ")}return 8>=d||3!==o.split(" ").length||(o+=" 1"),o;case"inject":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,"")+")"}}}()}},Names:{camelCase:function(e){return e.replace(/-(\w)/g,function(e,t){return t.toUpperCase()})},SVGAttribute:function(e){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)},prefixCheck:function(e){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++){var n;if(n=0===r?e:t[r]+e.replace(/^\w/,function(e){return e.toUpperCase()}),m.isString(b.State.prefixElement.style[n]))return b.State.prefixMatches[e]=n,[n,!0]}return[e,!1]}},Values:{hexToRgb:function(e){var t,r=/^#?([a-f\d])([a-f\d])([a-f\d])$/i,a=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i;return e=e.replace(r,function(e,t,r,a){return t+t+r+r+a+a}),t=a.exec(e),t?[parseInt(t[1],16),parseInt(t[2],16),parseInt(t[3],16)]:[0,0,0]},isCSSNullValue:function(e){return 0==e||/^(none|auto|transparent|(rgba\(0, ?0, ?0, ?0\)))$/i.test(e)},getUnitType:function(e){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"},getDisplayType:function(e){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"},addClass:function(e,t){e.classList?e.classList.add(t):e.className+=(e.className.length?" ":"")+t},removeClass:function(e,t){e.classList?e.classList.remove(t):e.className=e.className.toString().replace(new RegExp("(^|\\s)"+t.split(" ").join("|")+"(\\s|$)","gi")," ")}},getPropertyValue:function(e,r,n,o){function s(e,r){function n(){u&&S.setPropertyValue(e,"display","none")}var l=0;if(8>=d)l=f.css(e,r);else{var u=!1;if(/^(width|height)$/.test(r)&&0===S.getPropertyValue(e,"display")&&(u=!0,S.setPropertyValue(e,"display",S.Values.getDisplayType(e))),!o){if("height"===r&&"border-box"!==S.getPropertyValue(e,"boxSizing").toString().toLowerCase()){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}if("width"===r&&"border-box"!==S.getPropertyValue(e,"boxSizing").toString().toLowerCase()){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}}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()}if("auto"===l&&/^(top|right|bottom|left)$/i.test(r)){var m=s(e,"position");("fixed"===m||"absolute"===m&&/top|left/i.test(r))&&(l=f(e).position()[r]+"px")}return l}var l;if(S.Hooks.registered[r]){var u=r,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)}else if(S.Normalizations.registered[r]){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)}if(!/^[\d-]/.test(l))if(i(e)&&i(e).isSVG&&S.Names.SVGAttribute(r))if(/^(height|width)$/i.test(r))try{l=e.getBBox()[r]}catch(m){l=0}else l=e.getAttribute(r);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},setPropertyValue:function(e,r,a,n,o){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{if(S.Hooks.registered[r]){var l=r,u=S.Hooks.getRoot(r);n=n||S.getPropertyValue(e,u),a=S.Hooks.injectValue(l,a,n),r=u}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{e.style[s]=a}catch(c){b.debug&&console.log("Browser does not support ["+a+"] for ["+s+"]")}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)}return[s,a]},flushTransformCache:function(e){function t(t){return parseFloat(S.getPropertyValue(e,t))}var r="";if((d||b.State.isAndroid&&!b.State.isChrome)&&i(e).isSVG){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){/^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])})}else{var n,o;f.each(i(e).transformCache,function(t){return n=i(e).transformCache[t],"transformPerspective"===t?(o=n,!0):(9===d&&"rotateZ"===t&&(t="rotate"),void(r+=t+n+" "))}),o&&(r="perspective"+o+" "+r)}S.setPropertyValue(e,"transform",r)}};S.Hooks.register(),S.Normalizations.register(),b.hook=function(e,t,r){var n=a;return e=o(e),f.each(e,function(e,o){if(i(o)===a&&b.init(o),r===a)n===a&&(n=b.CSS.getPropertyValue(o,t));else{var s=b.CSS.setPropertyValue(o,t,r);"transform"===s[0]&&b.CSS.flushTransformCache(o),n=s}}),n};var P=function(){function e(){return s?k.promise||null:l}function n(){function e(e){function p(e,t){var r=a,n=a,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]}function d(e,t){var r,a;return a=(t||"0").toString().toLowerCase().replace(/[%A-z]+$/,function(e){return r=e,""}),r||(r=S.Values.getUnitType(e)),[a,r]}function h(){var e={myParent:o.parentNode||r.body,position:S.getPropertyValue(o,"position"),fontSize:S.getPropertyValue(o,"fontSize")},a=e.position===L.lastPosition&&e.myParent===L.lastParent,n=e.fontSize===L.lastFontSize;L.lastParent=e.myParent,L.lastPosition=e.position,L.lastFontSize=e.fontSize;var s=100,l={};if(n&&a)l.emToPx=L.lastEmToPx,l.percentToPxWidth=L.lastPercentToPxWidth,l.percentToPxHeight=L.lastPercentToPxHeight;else{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){b.CSS.setPropertyValue(u,t,"hidden")}),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){b.CSS.setPropertyValue(u,t,s+"%")}),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)}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}if(s.begin&&0===V)try{s.begin.call(g,g)}catch(x){setTimeout(function(){throw x},1)}if("scroll"===A){var P,C,T,F=/^x$/i.test(s.axis)?"Left":"Top",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)}else if("reverse"===A){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)if("element"!==H){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)}l=E}else if("start"===A){var E;i(o).tweensContainer&&i(o).isAnimating===!0&&(E=i(o).tweensContainer),f.each(y,function(e,t){if(RegExp("^"+S.Lists.colors.join("$|^")+"$").test(e)){var r=p(t,!0),n=r[0],o=r[1],i=r[2];if(S.RegEx.isHex.test(n)){for(var s=["Red","Green","Blue"],l=S.Values.hexToRgb(n),u=i?S.Values.hexToRgb(i):a,c=0;c<s.length;c++){var f=[l[c]];o&&f.push(o),u!==a&&f.push(u[c]),y[e+s[c]]=f}delete y[e]}}});for(var z in y){var O=p(y[z]),q=O[0],$=O[1],M=O[2];z=S.Names.camelCase(z);var I=S.Hooks.getRoot(z),B=!1;if(i(o).isSVG||"tween"===I||S.Names.prefixCheck(I)[1]!==!1||S.Normalizations.registered[I]!==a){(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,G,Y,D=!1;if(W=d(z,M),M=W[0],Y=W[1],W=d(z,q),q=W[0].replace(/^([+-\/*])=/,function(e,t){return D=t,""}),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{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"%":M*="x"===Q?n.percentToPxWidth:n.percentToPxHeight;break;case"px":break;default:M*=n[Y+"ToPx"]}switch(G){case"%":M*=1/("x"===Q?n.percentToPxWidth:n.percentToPxHeight);break;case"px":break;default:M*=1/n[G+"ToPx"]}}switch(D){case"+":q=M+q;break;case"-":q=M-q;break;case"*":q=M*q;break;case"/":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)}else b.debug&&console.log("Skipping ["+I+"] due to a lack of browser support.")}l.element=o}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++)}var n,o=this,s=f.extend({},b.defaults,v),l={};switch(i(o)===a&&b.init(o),parseFloat(s.delay)&&s.queue!==!1&&f.queue(o,s.queue,function(e){b.velocityQueueEntryFlag=!0,i(o).delayTimer={setTimeout:setTimeout(e,parseFloat(s.delay)),next:e}}),s.duration.toString().toLowerCase()){case"fast":s.duration=200;break;case"normal":s.duration=h;break;case"slow":s.duration=600;break;default: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){return r===!0?(k.promise&&k.resolver(g),!0):(b.velocityQueueEntryFlag=!0,void e(t))}),""!==s.queue&&"fx"!==s.queue||"inprogress"===f.queue(o)[0]||f.dequeue(o)}var s,l,d,g,y,v,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)){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,V=0;if(!/^(stop|finish)$/i.test(y)&&!f.isPlainObject(v)){var C=d+1;v={};for(var T=C;T<arguments.length;T++)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]}var k={promise:null,resolver:null,rejecter:null};s&&b.Promise&&(k.promise=new b.Promise(function(e,t){k.resolver=e,k.rejecter=t}));var A;switch(y){case"scroll":A="scroll";break;case"reverse":A="reverse";break;case"finish":case"stop":f.each(g,function(e,t){i(t)&&i(t).delayTimer&&(clearTimeout(i(t).delayTimer.setTimeout),i(t).delayTimer.next&&i(t).delayTimer.next(),delete i(t).delayTimer)});var F=[];return f.each(b.State.calls,function(e,t){t&&f.each(t[1],function(r,n){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){a===n&&((v===!0||m.isString(v))&&(f.each(f.queue(a,m.isString(v)?v:""),function(e,t){
232
- m.isFunction(t)&&t(null,!0)}),f.queue(a,m.isString(v)?v:"",[])),"stop"===y?(i(a)&&i(a).tweensContainer&&o!==!1&&f.each(i(a).tweensContainer,function(e,t){t.endValue=t.currentValue}),F.push(e)):"finish"===y&&(t[2].duration=1))}):!0})}),"stop"===y&&(f.each(F,function(e,t){p(t,!0)}),k.promise&&k.resolver(g)),e();default:if(!f.isPlainObject(y)||m.isEmptyObject(y)){if(m.isString(y)&&b.Redirects[y]){var j=f.extend({},v),E=j.duration,H=j.delay||0;return j.backwards===!0&&(g=f.extend(!0,[],g).reverse()),f.each(g,function(e,t){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)}),e()}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()}A="start"}var L={lastParent:null,lastPosition:null,lastFontSize:null,lastPercentToPxWidth:null,lastPercentToPxHeight:null,lastEmToPx:null,remToPx:null,vwToPx:null,vhToPx:null},R=[];f.each(g,function(e,t){m.isNode(t)&&n.call(t)});var z,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++){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)}return e()}};b=f.extend(P,b),b.animate=P;var w=t.requestAnimationFrame||g;return b.State.isMobile||r.hidden===a||r.addEventListener("visibilitychange",function(){r.hidden?(w=function(e){return setTimeout(function(){e(!0)},16)},c()):w=t.requestAnimationFrame||g}),e.Velocity=b,e!==t&&(e.fn.velocity=P,e.fn.velocity.defaults=b.defaults),f.each(["Down","Up"],function(e,t){b.Redirects["slide"+t]=function(e,r,n,o,i,s){var l=f.extend({},r),u=l.begin,c=l.complete,p={height:"",marginTop:"",marginBottom:"",paddingTop:"",paddingBottom:""},d={};l.display===a&&(l.display="Down"===t?"inline"===b.CSS.Values.getDisplayType(e)?"inline-block":"block":"none"),l.begin=function(){u&&u.call(i,i);for(var r in p){d[r]=e.style[r];var a=b.CSS.getPropertyValue(e,r);p[r]="Down"===t?[a,0]:[0,a]}d.overflow=e.style.overflow,e.style.overflow="hidden"},l.complete=function(){for(var t in d)e.style[t]=d[t];c&&c.call(i,i),s&&s.resolver(i)},b(e,p,l)}}),f.each(["In","Out"],function(e,t){b.Redirects["fade"+t]=function(e,r,n,o,i,s){var l=f.extend({},r),u={opacity:"In"===t?1:0},c=l.complete;l.complete=n!==o-1?l.begin=null:function(){c&&c.call(i,i),s&&s.resolver(i)},l.display===a&&(l.display="In"===t?"auto":"none"),b(this,u,l)}}),b}(window.jQuery||window.Zepto||window,window,document)}));
233
- ;!function(a,b,c,d){"use strict";function k(a,b,c){return setTimeout(q(a,c),b)}function l(a,b,c){return Array.isArray(a)?(m(a,c[b],c),!0):!1}function m(a,b,c){var e;if(a)if(a.forEach)a.forEach(b,c);else if(a.length!==d)for(e=0;e<a.length;)b.call(c,a[e],e,a),e++;else for(e in a)a.hasOwnProperty(e)&&b.call(c,a[e],e,a)}function n(a,b,c){for(var e=Object.keys(b),f=0;f<e.length;)(!c||c&&a[e[f]]===d)&&(a[e[f]]=b[e[f]]),f++;return a}function o(a,b){return n(a,b,!0)}function p(a,b,c){var e,d=b.prototype;e=a.prototype=Object.create(d),e.constructor=a,e._super=d,c&&n(e,c)}function q(a,b){return function(){return a.apply(b,arguments)}}function r(a,b){return typeof a==g?a.apply(b?b[0]||d:d,b):a}function s(a,b){return a===d?b:a}function t(a,b,c){m(x(b),function(b){a.addEventListener(b,c,!1)})}function u(a,b,c){m(x(b),function(b){a.removeEventListener(b,c,!1)})}function v(a,b){for(;a;){if(a==b)return!0;a=a.parentNode}return!1}function w(a,b){return a.indexOf(b)>-1}function x(a){return a.trim().split(/\s+/g)}function y(a,b,c){if(a.indexOf&&!c)return a.indexOf(b);for(var d=0;d<a.length;){if(c&&a[d][c]==b||!c&&a[d]===b)return d;d++}return-1}function z(a){return Array.prototype.slice.call(a,0)}function A(a,b,c){for(var d=[],e=[],f=0;f<a.length;){var g=b?a[f][b]:a[f];y(e,g)<0&&d.push(a[f]),e[f]=g,f++}return c&&(d=b?d.sort(function(a,c){return a[b]>c[b]}):d.sort()),d}function B(a,b){for(var c,f,g=b[0].toUpperCase()+b.slice(1),h=0;h<e.length;){if(c=e[h],f=c?c+g:b,f in a)return f;h++}return d}function D(){return C++}function E(a){var b=a.ownerDocument;return b.defaultView||b.parentWindow}function ab(a,b){var c=this;this.manager=a,this.callback=b,this.element=a.element,this.target=a.options.inputTarget,this.domHandler=function(b){r(a.options.enable,[a])&&c.handler(b)},this.init()}function bb(a){var b,c=a.options.inputClass;return b=c?c:H?wb:I?Eb:G?Gb:rb,new b(a,cb)}function cb(a,b,c){var d=c.pointers.length,e=c.changedPointers.length,f=b&O&&0===d-e,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}function db(a,b){var c=a.session,d=b.pointers,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,g=c.firstMultiple,h=g?g.center:f.center,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}function eb(a,b){var c=b.center,d=a.offsetDelta||{},e=a.prevDelta||{},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)}function fb(a,b){var f,g,h,j,c=a.lastInterval||b,e=b.timeStamp-c.timeStamp;if(b.eventType!=R&&(e>N||c.velocity===d)){var k=c.deltaX-b.deltaX,l=c.deltaY-b.deltaY,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}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}function gb(a){for(var b=[],c=0;c<a.pointers.length;)b[c]={clientX:h(a.pointers[c].clientX),clientY:h(a.pointers[c].clientY)},c++;return{timeStamp:j(),pointers:b,center:hb(b),deltaX:a.deltaX,deltaY:a.deltaY}}function hb(a){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;)c+=a[e].clientX,d+=a[e].clientY,e++;return{x:h(c/b),y:h(d/b)}}function ib(a,b,c){return{x:b/a||0,y:c/a||0}}function jb(a,b){return a===b?S:i(a)>=i(b)?a>0?T:U:b>0?V:W}function kb(a,b,c){c||(c=$);var d=b[c[0]]-a[c[0]],e=b[c[1]]-a[c[1]];return Math.sqrt(d*d+e*e)}function lb(a,b,c){c||(c=$);var d=b[c[0]]-a[c[0]],e=b[c[1]]-a[c[1]];return 180*Math.atan2(e,d)/Math.PI}function mb(a,b){return lb(b[1],b[0],_)-lb(a[1],a[0],_)}function nb(a,b){return kb(b[0],b[1],_)/kb(a[0],a[1],_)}function rb(){this.evEl=pb,this.evWin=qb,this.allow=!0,this.pressed=!1,ab.apply(this,arguments)}function wb(){this.evEl=ub,this.evWin=vb,ab.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}function Ab(){this.evTarget=yb,this.evWin=zb,this.started=!1,ab.apply(this,arguments)}function Bb(a,b){var c=z(a.touches),d=z(a.changedTouches);return b&(Q|R)&&(c=A(c.concat(d),"identifier",!0)),[c,d]}function Eb(){this.evTarget=Db,this.targetIds={},ab.apply(this,arguments)}function Fb(a,b){var c=z(a.touches),d=this.targetIds;if(b&(O|P)&&1===c.length)return d[c[0].identifier]=!0,[c,c];var e,f,g=z(a.changedTouches),h=[],i=this.target;if(f=c.filter(function(a){return v(a.target,i)}),b===O)for(e=0;e<f.length;)d[f[e].identifier]=!0,e++;for(e=0;e<g.length;)d[g[e].identifier]&&h.push(g[e]),b&(Q|R)&&delete d[g[e].identifier],e++;return h.length?[A(f.concat(h),"identifier",!0),h]:void 0}function Gb(){ab.apply(this,arguments);var a=q(this.handler,this);this.touch=new Eb(this.manager,a),this.mouse=new rb(this.manager,a)}function Pb(a,b){this.manager=a,this.set(b)}function Qb(a){if(w(a,Mb))return Mb;var b=w(a,Nb),c=w(a,Ob);return b&&c?Nb+" "+Ob:b||c?b?Nb:Ob:w(a,Lb)?Lb:Kb}function Yb(a){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=[]}function Zb(a){return a&Wb?"cancel":a&Ub?"end":a&Tb?"move":a&Sb?"start":""}function $b(a){return a==W?"down":a==V?"up":a==T?"left":a==U?"right":""}function _b(a,b){var c=b.manager;return c?c.get(a):a}function ac(){Yb.apply(this,arguments)}function bc(){ac.apply(this,arguments),this.pX=null,this.pY=null}function cc(){ac.apply(this,arguments)}function dc(){Yb.apply(this,arguments),this._timer=null,this._input=null}function ec(){ac.apply(this,arguments)}function fc(){ac.apply(this,arguments)}function gc(){Yb.apply(this,arguments),this.pTime=!1,this.pCenter=!1,this._timer=null,this._input=null,this.count=0}function hc(a,b){return b=b||{},b.recognizers=s(b.recognizers,hc.defaults.preset),new kc(a,b)}function kc(a,b){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){var b=this.add(new a[0](a[1]));a[2]&&b.recognizeWith(a[2]),a[3]&&b.requireFailure(a[3])},this)}function lc(a,b){var c=a.element;m(a.options.cssProps,function(a,d){c.style[B(c.style,d)]=b?a:""})}function mc(a,c){var d=b.createEvent("Event");d.initEvent(a,!0,!0),d.gesture=c,c.target.dispatchEvent(d)}var e=["","webkit","moz","MS","ms","o"],f=b.createElement("div"),g="function",h=Math.round,i=Math.abs,j=Date.now,C=1,F=/mobile|tablet|ip(ad|hone|od)|android/i,G="ontouchstart"in a,H=B(a,"PointerEvent")!==d,I=G&&F.test(navigator.userAgent),J="touch",K="pen",L="mouse",M="kinect",N=25,O=1,P=2,Q=4,R=8,S=1,T=2,U=4,V=8,W=16,X=T|U,Y=V|W,Z=X|Y,$=["x","y"],_=["clientX","clientY"];ab.prototype={handler:function(){},init:function(){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)},destroy:function(){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)}};var ob={mousedown:O,mousemove:P,mouseup:Q},pb="mousedown",qb="mousemove mouseup";p(rb,ab,{handler:function(a){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}))}});var sb={pointerdown:O,pointermove:P,pointerup:Q,pointercancel:R,pointerout:R},tb={2:J,3:K,4:L,5:M},ub="pointerdown",vb="pointermove pointerup pointercancel";a.MSPointerEvent&&(ub="MSPointerDown",vb="MSPointerMove MSPointerUp MSPointerCancel"),p(wb,ab,{handler:function(a){var b=this.store,c=!1,d=a.type.toLowerCase().replace("ms",""),e=sb[d],f=tb[a.pointerType]||a.pointerType,g=f==J,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))}});var xb={touchstart:O,touchmove:P,touchend:Q,touchcancel:R},yb="touchstart",zb="touchstart touchmove touchend touchcancel";p(Ab,ab,{handler:function(a){var b=xb[a.type];if(b===O&&(this.started=!0),this.started){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})}}});var Cb={touchstart:O,touchmove:P,touchend:Q,touchcancel:R},Db="touchstart touchmove touchend touchcancel";p(Eb,ab,{handler:function(a){var b=Cb[a.type],c=Fb.call(this,a,b);c&&this.callback(this.manager,b,{pointers:c[0],changedPointers:c[1],pointerType:J,srcEvent:a})}}),p(Gb,ab,{handler:function(a,b,c){var d=c.pointerType==J,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)},destroy:function(){this.touch.destroy(),this.mouse.destroy()}});var Hb=B(f.style,"touchAction"),Ib=Hb!==d,Jb="compute",Kb="auto",Lb="manipulation",Mb="none",Nb="pan-x",Ob="pan-y";Pb.prototype={set:function(a){a==Jb&&(a=this.compute()),Ib&&(this.manager.element.style[Hb]=a),this.actions=a.toLowerCase().trim()},update:function(){this.set(this.manager.options.touchAction)},compute:function(){var a=[];return m(this.manager.recognizers,function(b){r(b.options.enable,[b])&&(a=a.concat(b.getTouchAction()))}),Qb(a.join(" "))},preventDefaults:function(a){if(!Ib){var b=a.srcEvent,c=a.offsetDirection;if(this.manager.session.prevented)return b.preventDefault(),void 0;var d=this.actions,e=w(d,Mb),f=w(d,Ob),g=w(d,Nb);return e||f&&c&X||g&&c&Y?this.preventSrc(b):void 0}},preventSrc:function(a){this.manager.session.prevented=!0,a.preventDefault()}};var Rb=1,Sb=2,Tb=4,Ub=8,Vb=Ub,Wb=16,Xb=32;Yb.prototype={defaults:{},set:function(a){return n(this.options,a),this.manager&&this.manager.touchAction.update(),this},recognizeWith:function(a){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},dropRecognizeWith:function(a){return l(a,"dropRecognizeWith",this)?this:(a=_b(a,this),delete this.simultaneous[a.id],this)},requireFailure:function(a){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},dropRequireFailure:function(a){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},hasRequireFailures:function(){return this.requireFail.length>0},canRecognizeWith:function(a){return!!this.simultaneous[a.id]},emit:function(a){function d(d){b.manager.emit(b.options.event+(d?Zb(c):""),a)}var b=this,c=this.state;Ub>c&&d(!0),d(),c>=Ub&&d(!0)},tryEmit:function(a){return this.canEmit()?this.emit(a):(this.state=Xb,void 0)},canEmit:function(){for(var a=0;a<this.requireFail.length;){if(!(this.requireFail[a].state&(Xb|Rb)))return!1;a++}return!0},recognize:function(a){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)},process:function(){},getTouchAction:function(){},reset:function(){}},p(ac,Yb,{defaults:{pointers:1},attrTest:function(a){var b=this.options.pointers;return 0===b||a.pointers.length===b},process:function(a){var b=this.state,c=a.eventType,d=b&(Sb|Tb),e=this.attrTest(a);return d&&(c&R||!e)?b|Wb:d||e?c&Q?b|Ub:b&Sb?b|Tb:Sb:Xb}}),p(bc,ac,{defaults:{event:"pan",threshold:10,pointers:1,direction:Z},getTouchAction:function(){var a=this.options.direction,b=[];return a&X&&b.push(Ob),a&Y&&b.push(Nb),b},directionTest:function(a){var b=this.options,c=!0,d=a.distance,e=a.direction,f=a.deltaX,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},attrTest:function(a){return ac.prototype.attrTest.call(this,a)&&(this.state&Sb||!(this.state&Sb)&&this.directionTest(a))},emit:function(a){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)}}),p(cc,ac,{defaults:{event:"pinch",threshold:0,pointers:2},getTouchAction:function(){return[Mb]},attrTest:function(a){return this._super.attrTest.call(this,a)&&(Math.abs(a.scale-1)>this.options.threshold||this.state&Sb)},emit:function(a){if(this._super.emit.call(this,a),1!==a.scale){var b=a.scale<1?"in":"out";this.manager.emit(this.options.event+b,a)}}}),p(dc,Yb,{defaults:{event:"press",pointers:1,time:500,threshold:5},getTouchAction:function(){return[Kb]},process:function(a){var b=this.options,c=a.pointers.length===b.pointers,d=a.distance<b.threshold,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(){this.state=Vb,this.tryEmit()},b.time,this);else if(a.eventType&Q)return Vb;return Xb},reset:function(){clearTimeout(this._timer)},emit:function(a){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)))}}),p(ec,ac,{defaults:{event:"rotate",threshold:0,pointers:2},getTouchAction:function(){return[Mb]},attrTest:function(a){return this._super.attrTest.call(this,a)&&(Math.abs(a.rotation)>this.options.threshold||this.state&Sb)}}),p(fc,ac,{defaults:{event:"swipe",threshold:10,velocity:.65,direction:X|Y,pointers:1},getTouchAction:function(){return bc.prototype.getTouchAction.call(this)},attrTest:function(a){var c,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},emit:function(a){var b=$b(a.direction);b&&this.manager.emit(this.options.event+b,a),this.manager.emit(this.options.event,a)}}),p(gc,Yb,{defaults:{event:"tap",pointers:1,taps:1,interval:300,time:250,threshold:2,posThreshold:10},getTouchAction:function(){return[Lb]},process:function(a){var b=this.options,c=a.pointers.length===b.pointers,d=a.distance<b.threshold,e=a.deltaTime<b.time;if(this.reset(),a.eventType&O&&0===this.count)return this.failTimeout();if(d&&e&&c){if(a.eventType!=Q)return this.failTimeout();var f=this.pTime?a.timeStamp-this.pTime<b.interval:!0,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(){this.state=Vb,this.tryEmit()},b.interval,this),Sb):Vb}return Xb},failTimeout:function(){return this._timer=k(function(){this.state=Xb},this.options.interval,this),Xb},reset:function(){clearTimeout(this._timer)},emit:function(){this.state==Vb&&(this._input.tapCount=this.count,this.manager.emit(this.options.event,this._input))}}),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,jc=2;kc.prototype={set:function(a){return n(this.options,a),a.touchAction&&this.touchAction.update(),a.inputTarget&&(this.input.destroy(),this.input.target=a.inputTarget,this.input.init()),this},stop:function(a){this.session.stopped=a?jc:ic},recognize:function(a){var b=this.session;if(!b.stopped){this.touchAction.preventDefaults(a);var c,d=this.recognizers,e=b.curRecognizer;(!e||e&&e.state&Vb)&&(e=b.curRecognizer=null);for(var f=0;f<d.length;)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++}},get:function(a){if(a instanceof Yb)return a;for(var b=this.recognizers,c=0;c<b.length;c++)if(b[c].options.event==a)return b[c];return null},add:function(a){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},remove:function(a){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},on:function(a,b){var c=this.handlers;return m(x(a),function(a){c[a]=c[a]||[],c[a].push(b)}),this},off:function(a,b){var c=this.handlers;return m(x(a),function(a){b?c[a].splice(y(c[a],b),1):delete c[a]}),this},emit:function(a,b){this.options.domEvents&&mc(a,b);var c=this.handlers[a]&&this.handlers[a].slice();if(c&&c.length){b.type=a,b.preventDefault=function(){b.srcEvent.preventDefault()};for(var d=0;d<c.length;)c[d](b),d++}},destroy:function(){this.element&&lc(this,!1),this.handlers={},this.session={},this.input.destroy(),this.element=null}},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}),typeof define==g&&define.amd?define(function(){return hc}):"undefined"!=typeof module&&module.exports?module.exports=hc:a[c]=hc}(window,document,"Hammer");;(function(factory) {
234
- if (typeof define === 'function' && define.amd) {
235
- define(['jquery', 'hammerjs'], factory);
236
- } else if (typeof exports === 'object') {
237
- factory(require('jquery'), require('hammerjs'));
238
- } else {
239
- factory(jQuery, Hammer);
240
- }
241
- }(function($, Hammer) {
242
- function hammerify(el, options) {
243
- var $el = $(el);
244
- if(!$el.data("hammer")) {
245
- $el.data("hammer", new Hammer($el[0], options));
246
- }
247
- }
248
-
249
- $.fn.hammer = function(options) {
250
- return this.each(function() {
251
- hammerify(this, options);
252
- });
253
- };
254
-
255
- // extend the emit method to also trigger jQuery events
256
- Hammer.Manager.prototype.emit = (function(originalEmit) {
257
- return function(type, data) {
258
- originalEmit.call(this, type, data);
259
- $(this.element).trigger({
260
- type: type,
261
- gesture: data
262
- });
263
- };
264
- })(Hammer.Manager.prototype.emit);
265
- }));
266
- ;// Required for Meteor package, the use of window prevents export by Meteor
267
- (function(window){
268
- if(window.Package){
269
- Materialize = {};
270
- } else {
271
- window.Materialize = {};
272
- }
273
- })(window);
274
-
275
-
276
- /*
277
- * raf.js
278
- * https://github.com/ngryman/raf.js
279
- *
280
- * original requestAnimationFrame polyfill by Erik Möller
281
- * inspired from paul_irish gist and post
282
- *
283
- * Copyright (c) 2013 ngryman
284
- * Licensed under the MIT license.
285
- */
286
- (function(window) {
287
- var lastTime = 0,
288
- vendors = ['webkit', 'moz'],
289
- requestAnimationFrame = window.requestAnimationFrame,
290
- cancelAnimationFrame = window.cancelAnimationFrame,
291
- i = vendors.length;
292
-
293
- // try to un-prefix existing raf
294
- while (--i >= 0 && !requestAnimationFrame) {
295
- requestAnimationFrame = window[vendors[i] + 'RequestAnimationFrame'];
296
- cancelAnimationFrame = window[vendors[i] + 'CancelRequestAnimationFrame'];
297
- }
298
-
299
- // polyfill with setTimeout fallback
300
- // heavily inspired from @darius gist mod: https://gist.github.com/paulirish/1579671#comment-837945
301
- if (!requestAnimationFrame || !cancelAnimationFrame) {
302
- requestAnimationFrame = function(callback) {
303
- var now = +Date.now(),
304
- nextTime = Math.max(lastTime + 16, now);
305
- return setTimeout(function() {
306
- callback(lastTime = nextTime);
307
- }, nextTime - now);
308
- };
309
-
310
- cancelAnimationFrame = clearTimeout;
311
- }
312
-
313
- // export to window
314
- window.requestAnimationFrame = requestAnimationFrame;
315
- window.cancelAnimationFrame = cancelAnimationFrame;
316
- }(window));
317
-
318
-
319
- // Unique ID
320
- Materialize.guid = (function() {
321
- function s4() {
322
- return Math.floor((1 + Math.random()) * 0x10000)
323
- .toString(16)
324
- .substring(1);
325
- }
326
- return function() {
327
- return s4() + s4() + '-' + s4() + '-' + s4() + '-' +
328
- s4() + '-' + s4() + s4() + s4();
329
- };
330
- })();
331
-
332
- /**
333
- * Escapes hash from special characters
334
- * @param {string} hash String returned from this.hash
335
- * @returns {string}
336
- */
337
- Materialize.escapeHash = function(hash) {
338
- return hash.replace( /(:|\.|\[|\]|,|=)/g, "\\$1" );
339
- };
340
-
341
- Materialize.elementOrParentIsFixed = function(element) {
342
- var $element = $(element);
343
- var $checkElements = $element.add($element.parents());
344
- var isFixed = false;
345
- $checkElements.each(function(){
346
- if ($(this).css("position") === "fixed") {
347
- isFixed = true;
348
- return false;
349
- }
350
- });
351
- return isFixed;
352
- };
353
-
354
-
355
- /**
356
- * Get time in ms
357
- * @license https://raw.github.com/jashkenas/underscore/master/LICENSE
358
- * @type {function}
359
- * @return {number}
360
- */
361
- var getTime = (Date.now || function () {
362
- return new Date().getTime();
363
- });
364
-
365
-
366
- /**
367
- * Returns a function, that, when invoked, will only be triggered at most once
368
- * during a given window of time. Normally, the throttled function will run
369
- * as much as it can, without ever going more than once per `wait` duration;
370
- * but if you'd like to disable the execution on the leading edge, pass
371
- * `{leading: false}`. To disable execution on the trailing edge, ditto.
372
- * @license https://raw.github.com/jashkenas/underscore/master/LICENSE
373
- * @param {function} func
374
- * @param {number} wait
375
- * @param {Object=} options
376
- * @returns {Function}
377
- */
378
- Materialize.throttle = function(func, wait, options) {
379
- var context, args, result;
380
- var timeout = null;
381
- var previous = 0;
382
- options || (options = {});
383
- var later = function () {
384
- previous = options.leading === false ? 0 : getTime();
385
- timeout = null;
386
- result = func.apply(context, args);
387
- context = args = null;
388
- };
389
- return function () {
390
- var now = getTime();
391
- if (!previous && options.leading === false) previous = now;
392
- var remaining = wait - (now - previous);
393
- context = this;
394
- args = arguments;
395
- if (remaining <= 0) {
396
- clearTimeout(timeout);
397
- timeout = null;
398
- previous = now;
399
- result = func.apply(context, args);
400
- context = args = null;
401
- } else if (!timeout && options.trailing !== false) {
402
- timeout = setTimeout(later, remaining);
403
- }
404
- return result;
405
- };
406
- };
407
-
408
-
409
- // Velocity has conflicts when loaded with jQuery, this will check for it
410
- // First, check if in noConflict mode
411
- var Vel;
412
- if (jQuery) {
413
- Vel = jQuery.Velocity;
414
- } else if ($) {
415
- Vel = $.Velocity;
416
- } else {
417
- Vel = Velocity;
418
- }
419
- ;(function ($) {
420
- $.fn.collapsible = function(options) {
421
- var defaults = {
422
- accordion: undefined,
423
- onOpen: undefined,
424
- onClose: undefined
425
- };
426
-
427
- options = $.extend(defaults, options);
428
-
429
-
430
- return this.each(function() {
431
-
432
- var $this = $(this);
433
-
434
- var $panel_headers = $(this).find('> li > .collapsible-header');
435
-
436
- var collapsible_type = $this.data("collapsible");
437
-
438
- // Turn off any existing event handlers
439
- $this.off('click.collapse', '> li > .collapsible-header');
440
- $panel_headers.off('click.collapse');
441
-
442
-
443
- /****************
444
- Helper Functions
445
- ****************/
446
-
447
- // Accordion Open
448
- function accordionOpen(object) {
449
- $panel_headers = $this.find('> li > .collapsible-header');
450
- if (object.hasClass('active')) {
451
- object.parent().addClass('active');
452
- }
453
- else {
454
- object.parent().removeClass('active');
455
- }
456
- if (object.parent().hasClass('active')){
457
- object.siblings('.collapsible-body').stop(true,false).slideDown({ duration: 350, easing: "easeOutQuart", queue: false, complete: function() {$(this).css('height', '');}});
458
- }
459
- else{
460
- object.siblings('.collapsible-body').stop(true,false).slideUp({ duration: 350, easing: "easeOutQuart", queue: false, complete: function() {$(this).css('height', '');}});
461
- }
462
-
463
- $panel_headers.not(object).removeClass('active').parent().removeClass('active');
464
-
465
- // Close previously open accordion elements.
466
- $panel_headers.not(object).parent().children('.collapsible-body').stop(true,false).each(function() {
467
- if ($(this).is(':visible')) {
468
- $(this).slideUp({
469
- duration: 350,
470
- easing: "easeOutQuart",
471
- queue: false,
472
- complete:
473
- function() {
474
- $(this).css('height', '');
475
- execCallbacks($(this).siblings('.collapsible-header'));
476
- }
477
- });
478
- }
479
- });
480
- }
481
-
482
- // Expandable Open
483
- function expandableOpen(object) {
484
- if (object.hasClass('active')) {
485
- object.parent().addClass('active');
486
- }
487
- else {
488
- object.parent().removeClass('active');
489
- }
490
- if (object.parent().hasClass('active')){
491
- object.siblings('.collapsible-body').stop(true,false).slideDown({ duration: 350, easing: "easeOutQuart", queue: false, complete: function() {$(this).css('height', '');}});
492
- }
493
- else {
494
- object.siblings('.collapsible-body').stop(true,false).slideUp({ duration: 350, easing: "easeOutQuart", queue: false, complete: function() {$(this).css('height', '');}});
495
- }
496
- }
497
-
498
- // Open collapsible. object: .collapsible-header
499
- function collapsibleOpen(object) {
500
- if (options.accordion || collapsible_type === "accordion" || collapsible_type === undefined) { // Handle Accordion
501
- accordionOpen(object);
502
- } else { // Handle Expandables
503
- expandableOpen(object);
504
- }
505
-
506
- execCallbacks(object);
507
- }
508
-
509
- // Handle callbacks
510
- function execCallbacks(object) {
511
- if (object.hasClass('active')) {
512
- if (typeof(options.onOpen) === "function") {
513
- options.onOpen.call(this, object.parent());
514
- }
515
- } else {
516
- if (typeof(options.onClose) === "function") {
517
- options.onClose.call(this, object.parent());
518
- }
519
- }
520
- }
521
-
522
- /**
523
- * Check if object is children of panel header
524
- * @param {Object} object Jquery object
525
- * @return {Boolean} true if it is children
526
- */
527
- function isChildrenOfPanelHeader(object) {
528
-
529
- var panelHeader = getPanelHeader(object);
530
-
531
- return panelHeader.length > 0;
532
- }
533
-
534
- /**
535
- * Get panel header from a children element
536
- * @param {Object} object Jquery object
537
- * @return {Object} panel header object
538
- */
539
- function getPanelHeader(object) {
540
-
541
- return object.closest('li > .collapsible-header');
542
- }
543
-
544
- /***** End Helper Functions *****/
545
-
546
-
547
-
548
- // Add click handler to only direct collapsible header children
549
- $this.on('click.collapse', '> li > .collapsible-header', function(e) {
550
- var element = $(e.target);
551
-
552
- if (isChildrenOfPanelHeader(element)) {
553
- element = getPanelHeader(element);
554
- }
555
-
556
- element.toggleClass('active');
557
-
558
- collapsibleOpen(element);
559
- });
560
-
561
-
562
- // Open first active
563
- if (options.accordion || collapsible_type === "accordion" || collapsible_type === undefined) { // Handle Accordion
564
- collapsibleOpen($panel_headers.filter('.active').first());
565
-
566
- } else { // Handle Expandables
567
- $panel_headers.filter('.active').each(function() {
568
- collapsibleOpen($(this));
569
- });
570
- }
571
-
572
- });
573
- };
574
-
575
- $(document).ready(function(){
576
- $('.collapsible').collapsible();
577
- });
578
- }( jQuery ));;(function ($) {
579
-
580
- // Add posibility to scroll to selected option
581
- // usefull for select for example
582
- $.fn.scrollTo = function(elem) {
583
- $(this).scrollTop($(this).scrollTop() - $(this).offset().top + $(elem).offset().top);
584
- return this;
585
- };
586
-
587
- $.fn.dropdown = function (options) {
588
- var defaults = {
589
- inDuration: 300,
590
- outDuration: 225,
591
- constrainWidth: true, // Constrains width of dropdown to the activator
592
- hover: false,
593
- gutter: 0, // Spacing from edge
594
- belowOrigin: false,
595
- alignment: 'left',
596
- stopPropagation: false
597
- };
598
-
599
- // Open dropdown.
600
- if (options === "open") {
601
- this.each(function() {
602
- $(this).trigger('open');
603
- });
604
- return false;
605
- }
606
-
607
- // Close dropdown.
608
- if (options === "close") {
609
- this.each(function() {
610
- $(this).trigger('close');
611
- });
612
- return false;
613
- }
614
-
615
- this.each(function(){
616
- var origin = $(this);
617
- var curr_options = $.extend({}, defaults, options);
618
- var isFocused = false;
619
-
620
- // Dropdown menu
621
- var activates = $("#"+ origin.attr('data-activates'));
622
-
623
- function updateOptions() {
624
- if (origin.data('induration') !== undefined)
625
- curr_options.inDuration = origin.data('induration');
626
- if (origin.data('outduration') !== undefined)
627
- curr_options.outDuration = origin.data('outduration');
628
- if (origin.data('constrainwidth') !== undefined)
629
- curr_options.constrainWidth = origin.data('constrainwidth');
630
- if (origin.data('hover') !== undefined)
631
- curr_options.hover = origin.data('hover');
632
- if (origin.data('gutter') !== undefined)
633
- curr_options.gutter = origin.data('gutter');
634
- if (origin.data('beloworigin') !== undefined)
635
- curr_options.belowOrigin = origin.data('beloworigin');
636
- if (origin.data('alignment') !== undefined)
637
- curr_options.alignment = origin.data('alignment');
638
- if (origin.data('stoppropagation') !== undefined)
639
- curr_options.stopPropagation = origin.data('stoppropagation');
640
- }
641
-
642
- updateOptions();
643
-
644
- // Attach dropdown to its activator
645
- origin.after(activates);
646
-
647
- /*
648
- Helper function to position and resize dropdown.
649
- Used in hover and click handler.
650
- */
651
- function placeDropdown(eventType) {
652
- // Check for simultaneous focus and click events.
653
- if (eventType === 'focus') {
654
- isFocused = true;
655
- }
656
-
657
- // Check html data attributes
658
- updateOptions();
659
-
660
- // Set Dropdown state
661
- activates.addClass('active');
662
- origin.addClass('active');
663
-
664
- // Constrain width
665
- if (curr_options.constrainWidth === true) {
666
- activates.css('width', origin.outerWidth());
667
-
668
- } else {
669
- activates.css('white-space', 'nowrap');
670
- }
671
-
672
- // Offscreen detection
673
- var windowHeight = window.innerHeight;
674
- var originHeight = origin.innerHeight();
675
- var offsetLeft = origin.offset().left;
676
- var offsetTop = origin.offset().top - $(window).scrollTop();
677
- var currAlignment = curr_options.alignment;
678
- var gutterSpacing = 0;
679
- var leftPosition = 0;
680
-
681
- // Below Origin
682
- var verticalOffset = 0;
683
- if (curr_options.belowOrigin === true) {
684
- verticalOffset = originHeight;
685
- }
686
-
687
- // Check for scrolling positioned container.
688
- var scrollYOffset = 0;
689
- var scrollXOffset = 0;
690
- var wrapper = origin.parent();
691
- if (!wrapper.is('body')) {
692
- if (wrapper[0].scrollHeight > wrapper[0].clientHeight) {
693
- scrollYOffset = wrapper[0].scrollTop;
694
- }
695
- if (wrapper[0].scrollWidth > wrapper[0].clientWidth) {
696
- scrollXOffset = wrapper[0].scrollLeft;
697
- }
698
- }
699
-
700
-
701
- if (offsetLeft + activates.innerWidth() > $(window).width()) {
702
- // Dropdown goes past screen on right, force right alignment
703
- currAlignment = 'right';
704
-
705
- } else if (offsetLeft - activates.innerWidth() + origin.innerWidth() < 0) {
706
- // Dropdown goes past screen on left, force left alignment
707
- currAlignment = 'left';
708
- }
709
- // Vertical bottom offscreen detection
710
- if (offsetTop + activates.innerHeight() > windowHeight) {
711
- // If going upwards still goes offscreen, just crop height of dropdown.
712
- if (offsetTop + originHeight - activates.innerHeight() < 0) {
713
- var adjustedHeight = windowHeight - offsetTop - verticalOffset;
714
- activates.css('max-height', adjustedHeight);
715
- } else {
716
- // Flow upwards.
717
- if (!verticalOffset) {
718
- verticalOffset += originHeight;
719
- }
720
- verticalOffset -= activates.innerHeight();
721
- }
722
- }
723
-
724
- // Handle edge alignment
725
- if (currAlignment === 'left') {
726
- gutterSpacing = curr_options.gutter;
727
- leftPosition = origin.position().left + gutterSpacing;
728
- }
729
- else if (currAlignment === 'right') {
730
- var offsetRight = origin.position().left + origin.outerWidth() - activates.outerWidth();
731
- gutterSpacing = -curr_options.gutter;
732
- leftPosition = offsetRight + gutterSpacing;
733
- }
734
-
735
- // Position dropdown
736
- activates.css({
737
- position: 'absolute',
738
- top: origin.position().top + verticalOffset + scrollYOffset,
739
- left: leftPosition + scrollXOffset
740
- });
741
-
742
-
743
- // Show dropdown
744
- activates.stop(true, true).css('opacity', 0)
745
- .slideDown({
746
- queue: false,
747
- duration: curr_options.inDuration,
748
- easing: 'easeOutCubic',
749
- complete: function() {
750
- $(this).css('height', '');
751
- }
752
- })
753
- .animate( {opacity: 1}, {queue: false, duration: curr_options.inDuration, easing: 'easeOutSine'});
754
-
755
- // Add click close handler to document
756
- $(document).bind('click.'+ activates.attr('id') + ' touchstart.' + activates.attr('id'), function (e) {
757
- if (!activates.is(e.target) && !origin.is(e.target) && (!origin.find(e.target).length) ) {
758
- hideDropdown();
759
- $(document).unbind('click.'+ activates.attr('id') + ' touchstart.' + activates.attr('id'));
760
- }
761
- });
762
- }
763
-
764
- function hideDropdown() {
765
- // Check for simultaneous focus and click events.
766
- isFocused = false;
767
- activates.fadeOut(curr_options.outDuration);
768
- activates.removeClass('active');
769
- origin.removeClass('active');
770
- $(document).unbind('click.'+ activates.attr('id') + ' touchstart.' + activates.attr('id'));
771
- setTimeout(function() { activates.css('max-height', ''); }, curr_options.outDuration);
772
- }
773
-
774
- // Hover
775
- if (curr_options.hover) {
776
- var open = false;
777
- origin.unbind('click.' + origin.attr('id'));
778
- // Hover handler to show dropdown
779
- origin.on('mouseenter', function(e){ // Mouse over
780
- if (open === false) {
781
- placeDropdown();
782
- open = true;
783
- }
784
- });
785
- origin.on('mouseleave', function(e){
786
- // If hover on origin then to something other than dropdown content, then close
787
- var toEl = e.toElement || e.relatedTarget; // added browser compatibility for target element
788
- if(!$(toEl).closest('.dropdown-content').is(activates)) {
789
- activates.stop(true, true);
790
- hideDropdown();
791
- open = false;
792
- }
793
- });
794
-
795
- activates.on('mouseleave', function(e){ // Mouse out
796
- var toEl = e.toElement || e.relatedTarget;
797
- if(!$(toEl).closest('.dropdown-button').is(origin)) {
798
- activates.stop(true, true);
799
- hideDropdown();
800
- open = false;
801
- }
802
- });
803
-
804
- // Click
805
- } else {
806
- // Click handler to show dropdown
807
- origin.unbind('click.' + origin.attr('id'));
808
- origin.bind('click.'+origin.attr('id'), function(e){
809
- if (!isFocused) {
810
- if ( origin[0] == e.currentTarget &&
811
- !origin.hasClass('active') &&
812
- ($(e.target).closest('.dropdown-content').length === 0)) {
813
- e.preventDefault(); // Prevents button click from moving window
814
- if (curr_options.stopPropagation) {
815
- e.stopPropagation();
816
- }
817
- placeDropdown('click');
818
- }
819
- // If origin is clicked and menu is open, close menu
820
- else if (origin.hasClass('active')) {
821
- hideDropdown();
822
- $(document).unbind('click.'+ activates.attr('id') + ' touchstart.' + activates.attr('id'));
823
- }
824
- }
825
- });
826
-
827
- } // End else
828
-
829
- // Listen to open and close event - useful for select component
830
- origin.on('open', function(e, eventType) {
831
- placeDropdown(eventType);
832
- });
833
- origin.on('close', hideDropdown);
834
-
835
-
836
- });
837
- }; // End dropdown plugin
838
-
839
- $(document).ready(function(){
840
- $('.dropdown-button').dropdown();
841
- });
842
- }( jQuery ));
843
- ;(function($) {
844
- var _stack = 0,
845
- _lastID = 0,
846
- _generateID = function() {
847
- _lastID++;
848
- return 'materialize-modal-overlay-' + _lastID;
849
- };
850
-
851
- var methods = {
852
- init : function(options) {
853
- var defaults = {
854
- opacity: 0.5,
855
- inDuration: 350,
856
- outDuration: 250,
857
- ready: undefined,
858
- complete: undefined,
859
- dismissible: true,
860
- startingTop: '4%',
861
- endingTop: '10%'
862
- };
863
-
864
- // Override defaults
865
- options = $.extend(defaults, options);
866
-
867
- return this.each(function() {
868
- var $modal = $(this);
869
- var modal_id = $(this).attr("id") || '#' + $(this).data('target');
870
-
871
- var closeModal = function() {
872
- var overlayID = $modal.data('overlay-id');
873
- var $overlay = $('#' + overlayID);
874
- $modal.removeClass('open');
875
-
876
- // Enable scrolling
877
- $('body').css({
878
- overflow: '',
879
- width: ''
880
- });
881
-
882
- $modal.find('.modal-close').off('click.close');
883
- $(document).off('keyup.modal' + overlayID);
884
-
885
- $overlay.velocity( { opacity: 0}, {duration: options.outDuration, queue: false, ease: "easeOutQuart"});
886
-
887
-
888
- // Define Bottom Sheet animation
889
- var exitVelocityOptions = {
890
- duration: options.outDuration,
891
- queue: false,
892
- ease: "easeOutCubic",
893
- // Handle modal ready callback
894
- complete: function() {
895
- $(this).css({display:"none"});
896
-
897
- // Call complete callback
898
- if (typeof(options.complete) === "function") {
899
- options.complete.call(this, $modal);
900
- }
901
- $overlay.remove();
902
- _stack--;
903
- }
904
- };
905
- if ($modal.hasClass('bottom-sheet')) {
906
- $modal.velocity({bottom: "-100%", opacity: 0}, exitVelocityOptions);
907
- }
908
- else {
909
- $modal.velocity(
910
- { top: options.startingTop, opacity: 0, scaleX: 0.7},
911
- exitVelocityOptions
912
- );
913
- }
914
- };
915
-
916
- var openModal = function($trigger) {
917
- var $body = $('body');
918
- var oldWidth = $body.innerWidth();
919
- $body.css('overflow', 'hidden');
920
- $body.width(oldWidth);
921
-
922
- if ($modal.hasClass('open')) {
923
- return;
924
- }
925
-
926
- var overlayID = _generateID();
927
- var $overlay = $('<div class="modal-overlay"></div>');
928
- lStack = (++_stack);
929
-
930
- // Store a reference of the overlay
931
- $overlay.attr('id', overlayID).css('z-index', 1000 + lStack * 2);
932
- $modal.data('overlay-id', overlayID).css('z-index', 1000 + lStack * 2 + 1);
933
- $modal.addClass('open');
934
-
935
- $("body").append($overlay);
936
-
937
- if (options.dismissible) {
938
- $overlay.click(function() {
939
- closeModal();
940
- });
941
- // Return on ESC
942
- $(document).on('keyup.modal' + overlayID, function(e) {
943
- if (e.keyCode === 27) { // ESC key
944
- closeModal();
945
- }
946
- });
947
- }
948
-
949
- $modal.find(".modal-close").on('click.close', function(e) {
950
- closeModal();
951
- });
952
-
953
- $overlay.css({ display : "block", opacity : 0 });
954
-
955
- $modal.css({
956
- display : "block",
957
- opacity: 0
958
- });
959
-
960
- $overlay.velocity({opacity: options.opacity}, {duration: options.inDuration, queue: false, ease: "easeOutCubic"});
961
- $modal.data('associated-overlay', $overlay[0]);
962
-
963
- // Define Bottom Sheet animation
964
- var enterVelocityOptions = {
965
- duration: options.inDuration,
966
- queue: false,
967
- ease: "easeOutCubic",
968
- // Handle modal ready callback
969
- complete: function() {
970
- if (typeof(options.ready) === "function") {
971
- options.ready.call(this, $modal, $trigger);
972
- }
973
- }
974
- };
975
- if ($modal.hasClass('bottom-sheet')) {
976
- $modal.velocity({bottom: "0", opacity: 1}, enterVelocityOptions);
977
- }
978
- else {
979
- $.Velocity.hook($modal, "scaleX", 0.7);
980
- $modal.css({ top: options.startingTop });
981
- $modal.velocity({top: options.endingTop, opacity: 1, scaleX: '1'}, enterVelocityOptions);
982
- }
983
-
984
- };
985
-
986
- // Reset handlers
987
- $(document).off('click.modalTrigger', 'a[href="#' + modal_id + '"], [data-target="' + modal_id + '"]');
988
- $(this).off('openModal');
989
- $(this).off('closeModal');
990
-
991
- // Close Handlers
992
- $(document).on('click.modalTrigger', 'a[href="#' + modal_id + '"], [data-target="' + modal_id + '"]', function(e) {
993
- options.startingTop = ($(this).offset().top - $(window).scrollTop()) /1.15;
994
- openModal($(this));
995
- e.preventDefault();
996
- }); // done set on click
997
-
998
- $(this).on('openModal', function() {
999
- var modal_id = $(this).attr("href") || '#' + $(this).data('target');
1000
- openModal();
1001
- });
1002
-
1003
- $(this).on('closeModal', function() {
1004
- closeModal();
1005
- });
1006
- }); // done return
1007
- },
1008
- open : function() {
1009
- $(this).trigger('openModal');
1010
- },
1011
- close : function() {
1012
- $(this).trigger('closeModal');
1013
- }
1014
- };
1015
-
1016
- $.fn.modal = function(methodOrOptions) {
1017
- if ( methods[methodOrOptions] ) {
1018
- return methods[ methodOrOptions ].apply( this, Array.prototype.slice.call( arguments, 1 ));
1019
- } else if ( typeof methodOrOptions === 'object' || ! methodOrOptions ) {
1020
- // Default to "init"
1021
- return methods.init.apply( this, arguments );
1022
- } else {
1023
- $.error( 'Method ' + methodOrOptions + ' does not exist on jQuery.modal' );
1024
- }
1025
- };
1026
- })(jQuery);
1027
- ;(function ($) {
1028
-
1029
- $.fn.materialbox = function () {
1030
-
1031
- return this.each(function() {
1032
-
1033
- if ($(this).hasClass('initialized')) {
1034
- return;
1035
- }
1036
-
1037
- $(this).addClass('initialized');
1038
-
1039
- var overlayActive = false;
1040
- var doneAnimating = true;
1041
- var inDuration = 275;
1042
- var outDuration = 200;
1043
- var origin = $(this);
1044
- var placeholder = $('<div></div>').addClass('material-placeholder');
1045
- var originalWidth = 0;
1046
- var originalHeight = 0;
1047
- var ancestorsChanged;
1048
- var ancestor;
1049
- origin.wrap(placeholder);
1050
-
1051
-
1052
- origin.on('click', function(){
1053
- var placeholder = origin.parent('.material-placeholder');
1054
- var windowWidth = window.innerWidth;
1055
- var windowHeight = window.innerHeight;
1056
- var originalWidth = origin.width();
1057
- var originalHeight = origin.height();
1058
-
1059
-
1060
- // If already modal, return to original
1061
- if (doneAnimating === false) {
1062
- returnToOriginal();
1063
- return false;
1064
- }
1065
- else if (overlayActive && doneAnimating===true) {
1066
- returnToOriginal();
1067
- return false;
1068
- }
1069
-
1070
-
1071
- // Set states
1072
- doneAnimating = false;
1073
- origin.addClass('active');
1074
- overlayActive = true;
1075
-
1076
- // Set positioning for placeholder
1077
- placeholder.css({
1078
- width: placeholder[0].getBoundingClientRect().width,
1079
- height: placeholder[0].getBoundingClientRect().height,
1080
- position: 'relative',
1081
- top: 0,
1082
- left: 0
1083
- });
1084
-
1085
- // Find ancestor with overflow: hidden; and remove it
1086
- ancestorsChanged = undefined;
1087
- ancestor = placeholder[0].parentNode;
1088
- var count = 0;
1089
- while (ancestor !== null && !$(ancestor).is(document)) {
1090
- var curr = $(ancestor);
1091
- if (curr.css('overflow') !== 'visible') {
1092
- curr.css('overflow', 'visible');
1093
- if (ancestorsChanged === undefined) {
1094
- ancestorsChanged = curr;
1095
- }
1096
- else {
1097
- ancestorsChanged = ancestorsChanged.add(curr);
1098
- }
1099
- }
1100
- ancestor = ancestor.parentNode;
1101
- }
1102
-
1103
- // Set css on origin
1104
- origin.css({
1105
- position: 'absolute',
1106
- 'z-index': 1000,
1107
- 'will-change': 'left, top, width, height'
1108
- })
1109
- .data('width', originalWidth)
1110
- .data('height', originalHeight);
1111
-
1112
- // Add overlay
1113
- var overlay = $('<div id="materialbox-overlay"></div>')
1114
- .css({
1115
- opacity: 0
1116
- })
1117
- .click(function(){
1118
- if (doneAnimating === true)
1119
- returnToOriginal();
1120
- });
1121
-
1122
- // Put before in origin image to preserve z-index layering.
1123
- origin.before(overlay);
1124
-
1125
- // Set dimensions if needed
1126
- var overlayOffset = overlay[0].getBoundingClientRect();
1127
- overlay.css({
1128
- width: windowWidth,
1129
- height: windowHeight,
1130
- left: -1 * overlayOffset.left,
1131
- top: -1 * overlayOffset.top
1132
- })
1133
-
1134
- // Animate Overlay
1135
- overlay.velocity({opacity: 1},
1136
- {duration: inDuration, queue: false, easing: 'easeOutQuad'} );
1137
-
1138
- // Add and animate caption if it exists
1139
- if (origin.data('caption') !== "") {
1140
- var $photo_caption = $('<div class="materialbox-caption"></div>');
1141
- $photo_caption.text(origin.data('caption'));
1142
- $('body').append($photo_caption);
1143
- $photo_caption.css({ "display": "inline" });
1144
- $photo_caption.velocity({opacity: 1}, {duration: inDuration, queue: false, easing: 'easeOutQuad'});
1145
- }
1146
-
1147
- // Resize Image
1148
- var ratio = 0;
1149
- var widthPercent = originalWidth / windowWidth;
1150
- var heightPercent = originalHeight / windowHeight;
1151
- var newWidth = 0;
1152
- var newHeight = 0;
1153
-
1154
- if (widthPercent > heightPercent) {
1155
- ratio = originalHeight / originalWidth;
1156
- newWidth = windowWidth * 0.9;
1157
- newHeight = windowWidth * 0.9 * ratio;
1158
- }
1159
- else {
1160
- ratio = originalWidth / originalHeight;
1161
- newWidth = (windowHeight * 0.9) * ratio;
1162
- newHeight = windowHeight * 0.9;
1163
- }
1164
-
1165
- // Animate image + set z-index
1166
- if(origin.hasClass('responsive-img')) {
1167
- origin.velocity({'max-width': newWidth, 'width': originalWidth}, {duration: 0, queue: false,
1168
- complete: function(){
1169
- origin.css({left: 0, top: 0})
1170
- .velocity(
1171
- {
1172
- height: newHeight,
1173
- width: newWidth,
1174
- left: $(document).scrollLeft() + windowWidth/2 - origin.parent('.material-placeholder').offset().left - newWidth/2,
1175
- top: $(document).scrollTop() + windowHeight/2 - origin.parent('.material-placeholder').offset().top - newHeight/ 2
1176
- },
1177
- {
1178
- duration: inDuration,
1179
- queue: false,
1180
- easing: 'easeOutQuad',
1181
- complete: function(){doneAnimating = true;}
1182
- }
1183
- );
1184
- } // End Complete
1185
- }); // End Velocity
1186
- }
1187
- else {
1188
- origin.css('left', 0)
1189
- .css('top', 0)
1190
- .velocity(
1191
- {
1192
- height: newHeight,
1193
- width: newWidth,
1194
- left: $(document).scrollLeft() + windowWidth/2 - origin.parent('.material-placeholder').offset().left - newWidth/2,
1195
- top: $(document).scrollTop() + windowHeight/2 - origin.parent('.material-placeholder').offset().top - newHeight/ 2
1196
- },
1197
- {
1198
- duration: inDuration,
1199
- queue: false,
1200
- easing: 'easeOutQuad',
1201
- complete: function(){doneAnimating = true;}
1202
- }
1203
- ); // End Velocity
1204
- }
1205
-
1206
- }); // End origin on click
1207
-
1208
-
1209
- // Return on scroll
1210
- $(window).scroll(function() {
1211
- if (overlayActive) {
1212
- returnToOriginal();
1213
- }
1214
- });
1215
-
1216
- // Return on ESC
1217
- $(document).keyup(function(e) {
1218
-
1219
- if (e.keyCode === 27 && doneAnimating === true) { // ESC key
1220
- if (overlayActive) {
1221
- returnToOriginal();
1222
- }
1223
- }
1224
- });
1225
-
1226
-
1227
- // This function returns the modaled image to the original spot
1228
- function returnToOriginal() {
1229
-
1230
- doneAnimating = false;
1231
-
1232
- var placeholder = origin.parent('.material-placeholder');
1233
- var windowWidth = window.innerWidth;
1234
- var windowHeight = window.innerHeight;
1235
- var originalWidth = origin.data('width');
1236
- var originalHeight = origin.data('height');
1237
-
1238
- origin.velocity("stop", true);
1239
- $('#materialbox-overlay').velocity("stop", true);
1240
- $('.materialbox-caption').velocity("stop", true);
1241
-
1242
-
1243
- $('#materialbox-overlay').velocity({opacity: 0}, {
1244
- duration: outDuration, // Delay prevents animation overlapping
1245
- queue: false, easing: 'easeOutQuad',
1246
- complete: function(){
1247
- // Remove Overlay
1248
- overlayActive = false;
1249
- $(this).remove();
1250
- }
1251
- });
1252
-
1253
- // Resize Image
1254
- origin.velocity(
1255
- {
1256
- width: originalWidth,
1257
- height: originalHeight,
1258
- left: 0,
1259
- top: 0
1260
- },
1261
- {
1262
- duration: outDuration,
1263
- queue: false, easing: 'easeOutQuad'
1264
- }
1265
- );
1266
-
1267
- // Remove Caption + reset css settings on image
1268
- $('.materialbox-caption').velocity({opacity: 0}, {
1269
- duration: outDuration, // Delay prevents animation overlapping
1270
- queue: false, easing: 'easeOutQuad',
1271
- complete: function(){
1272
- placeholder.css({
1273
- height: '',
1274
- width: '',
1275
- position: '',
1276
- top: '',
1277
- left: ''
1278
- });
1279
-
1280
- origin.css({
1281
- height: '',
1282
- top: '',
1283
- left: '',
1284
- width: '',
1285
- 'max-width': '',
1286
- position: '',
1287
- 'z-index': '',
1288
- 'will-change': ''
1289
- });
1290
-
1291
- // Remove class
1292
- origin.removeClass('active');
1293
- doneAnimating = true;
1294
- $(this).remove();
1295
-
1296
- // Remove overflow overrides on ancestors
1297
- if (ancestorsChanged) {
1298
- ancestorsChanged.css('overflow', '');
1299
- }
1300
- }
1301
- });
1302
-
1303
- }
1304
- });
1305
- };
1306
-
1307
- $(document).ready(function(){
1308
- $('.materialboxed').materialbox();
1309
- });
1310
-
1311
- }( jQuery ));
1312
- ;(function ($) {
1313
-
1314
- $.fn.parallax = function () {
1315
- var window_width = $(window).width();
1316
- // Parallax Scripts
1317
- return this.each(function(i) {
1318
- var $this = $(this);
1319
- $this.addClass('parallax');
1320
-
1321
- function updateParallax(initial) {
1322
- var container_height;
1323
- if (window_width < 601) {
1324
- container_height = ($this.height() > 0) ? $this.height() : $this.children("img").height();
1325
- }
1326
- else {
1327
- container_height = ($this.height() > 0) ? $this.height() : 500;
1328
- }
1329
- var $img = $this.children("img").first();
1330
- var img_height = $img.height();
1331
- var parallax_dist = img_height - container_height;
1332
- var bottom = $this.offset().top + container_height;
1333
- var top = $this.offset().top;
1334
- var scrollTop = $(window).scrollTop();
1335
- var windowHeight = window.innerHeight;
1336
- var windowBottom = scrollTop + windowHeight;
1337
- var percentScrolled = (windowBottom - top) / (container_height + windowHeight);
1338
- var parallax = Math.round((parallax_dist * percentScrolled));
1339
-
1340
- if (initial) {
1341
- $img.css('display', 'block');
1342
- }
1343
- if ((bottom > scrollTop) && (top < (scrollTop + windowHeight))) {
1344
- $img.css('transform', "translate3D(-50%," + parallax + "px, 0)");
1345
- }
1346
-
1347
- }
1348
-
1349
- // Wait for image load
1350
- $this.children("img").one("load", function() {
1351
- updateParallax(true);
1352
- }).each(function() {
1353
- if (this.complete) $(this).trigger("load");
1354
- });
1355
-
1356
- $(window).scroll(function() {
1357
- window_width = $(window).width();
1358
- updateParallax(false);
1359
- });
1360
-
1361
- $(window).resize(function() {
1362
- window_width = $(window).width();
1363
- updateParallax(false);
1364
- });
1365
-
1366
- });
1367
-
1368
- };
1369
- }( jQuery ));
1370
- ;(function ($) {
1371
-
1372
- var methods = {
1373
- init : function(options) {
1374
- var defaults = {
1375
- onShow: null,
1376
- swipeable: false,
1377
- responsiveThreshold: Infinity, // breakpoint for swipeable
1378
- };
1379
- options = $.extend(defaults, options);
1380
-
1381
- return this.each(function() {
1382
-
1383
- // For each set of tabs, we want to keep track of
1384
- // which tab is active and its associated content
1385
- var $this = $(this),
1386
- window_width = $(window).width();
1387
-
1388
- var $active, $content, $links = $this.find('li.tab a'),
1389
- $tabs_width = $this.width(),
1390
- $tabs_content = $(),
1391
- $tabs_wrapper,
1392
- $tab_width = Math.max($tabs_width, $this[0].scrollWidth) / $links.length,
1393
- $indicator,
1394
- index = prev_index = 0,
1395
- clicked = false,
1396
- clickedTimeout,
1397
- transition = 300;
1398
-
1399
-
1400
- // Finds right attribute for indicator based on active tab.
1401
- // el: jQuery Object
1402
- var calcRightPos = function(el) {
1403
- return $tabs_width - el.position().left - el.outerWidth() - $this.scrollLeft();
1404
- };
1405
-
1406
- // Finds left attribute for indicator based on active tab.
1407
- // el: jQuery Object
1408
- var calcLeftPos = function(el) {
1409
- return el.position().left + $this.scrollLeft();
1410
- };
1411
-
1412
- // Animates Indicator to active tab.
1413
- // prev_index: Number
1414
- var animateIndicator = function(prev_index) {
1415
- if ((index - prev_index) >= 0) {
1416
- $indicator.velocity({"right": calcRightPos($active) }, { duration: transition, queue: false, easing: 'easeOutQuad'});
1417
- $indicator.velocity({"left": calcLeftPos($active) }, {duration: transition, queue: false, easing: 'easeOutQuad', delay: 90});
1418
-
1419
- } else {
1420
- $indicator.velocity({"left": calcLeftPos($active) }, { duration: transition, queue: false, easing: 'easeOutQuad'});
1421
- $indicator.velocity({"right": calcRightPos($active) }, {duration: transition, queue: false, easing: 'easeOutQuad', delay: 90});
1422
- }
1423
- };
1424
-
1425
- // Change swipeable according to responsive threshold
1426
- if (options.swipeable) {
1427
- if (window_width > options.responsiveThreshold) {
1428
- options.swipeable = false;
1429
- }
1430
- }
1431
-
1432
-
1433
- // If the location.hash matches one of the links, use that as the active tab.
1434
- $active = $($links.filter('[href="'+location.hash+'"]'));
1435
-
1436
- // If no match is found, use the first link or any with class 'active' as the initial active tab.
1437
- if ($active.length === 0) {
1438
- $active = $(this).find('li.tab a.active').first();
1439
- }
1440
- if ($active.length === 0) {
1441
- $active = $(this).find('li.tab a').first();
1442
- }
1443
-
1444
- $active.addClass('active');
1445
- index = $links.index($active);
1446
- if (index < 0) {
1447
- index = 0;
1448
- }
1449
-
1450
- if ($active[0] !== undefined) {
1451
- $content = $($active[0].hash);
1452
- $content.addClass('active');
1453
- }
1454
-
1455
- // append indicator then set indicator width to tab width
1456
- if (!$this.find('.indicator').length) {
1457
- $this.append('<div class="indicator"></div>');
1458
- }
1459
- $indicator = $this.find('.indicator');
1460
-
1461
- // we make sure that the indicator is at the end of the tabs
1462
- $this.append($indicator);
1463
-
1464
- if ($this.is(":visible")) {
1465
- // $indicator.css({"right": $tabs_width - ((index + 1) * $tab_width)});
1466
- // $indicator.css({"left": index * $tab_width});
1467
- setTimeout(function() {
1468
- $indicator.css({"right": calcRightPos($active) });
1469
- $indicator.css({"left": calcLeftPos($active) });
1470
- }, 0);
1471
- }
1472
- $(window).resize(function () {
1473
- $tabs_width = $this.width();
1474
- $tab_width = Math.max($tabs_width, $this[0].scrollWidth) / $links.length;
1475
- if (index < 0) {
1476
- index = 0;
1477
- }
1478
- if ($tab_width !== 0 && $tabs_width !== 0) {
1479
- $indicator.css({"right": calcRightPos($active) });
1480
- $indicator.css({"left": calcLeftPos($active) });
1481
- }
1482
- });
1483
-
1484
- // Initialize Tabs Content.
1485
- if (options.swipeable) {
1486
- // TODO: Duplicate calls with swipeable? handle multiple div wrapping.
1487
- $links.each(function () {
1488
- var $curr_content = $(Materialize.escapeHash(this.hash));
1489
- $curr_content.addClass('carousel-item');
1490
- $tabs_content = $tabs_content.add($curr_content);
1491
- });
1492
- $tabs_wrapper = $tabs_content.wrapAll('<div class="tabs-content carousel"></div>');
1493
- $tabs_content.css('display', '');
1494
- $('.tabs-content.carousel').carousel({
1495
- fullWidth: true,
1496
- noWrap: true,
1497
- onCycleTo: function(item) {
1498
- if (!clicked) {
1499
- var prev_index = index;
1500
- index = $tabs_wrapper.index(item);
1501
- $active = $links.eq(index);
1502
- animateIndicator(prev_index);
1503
- }
1504
- },
1505
- });
1506
- } else {
1507
- // Hide the remaining content
1508
- $links.not($active).each(function () {
1509
- $(Materialize.escapeHash(this.hash)).hide();
1510
- });
1511
- }
1512
-
1513
-
1514
- // Bind the click event handler
1515
- $this.on('click', 'a', function(e) {
1516
- if ($(this).parent().hasClass('disabled')) {
1517
- e.preventDefault();
1518
- return;
1519
- }
1520
-
1521
- // Act as regular link if target attribute is specified.
1522
- if (!!$(this).attr("target")) {
1523
- return;
1524
- }
1525
-
1526
- clicked = true;
1527
- $tabs_width = $this.width();
1528
- $tab_width = Math.max($tabs_width, $this[0].scrollWidth) / $links.length;
1529
-
1530
- // Make the old tab inactive.
1531
- $active.removeClass('active');
1532
- var $oldContent = $content
1533
-
1534
- // Update the variables with the new link and content
1535
- $active = $(this);
1536
- $content = $(Materialize.escapeHash(this.hash));
1537
- $links = $this.find('li.tab a');
1538
- var activeRect = $active.position();
1539
-
1540
- // Make the tab active.
1541
- $active.addClass('active');
1542
- prev_index = index;
1543
- index = $links.index($(this));
1544
- if (index < 0) {
1545
- index = 0;
1546
- }
1547
- // Change url to current tab
1548
- // window.location.hash = $active.attr('href');
1549
-
1550
- // Swap content
1551
- if (options.swipeable) {
1552
- if ($tabs_content.length) {
1553
- $tabs_content.carousel('set', index);
1554
- }
1555
- } else {
1556
- if ($content !== undefined) {
1557
- $content.show();
1558
- $content.addClass('active');
1559
- if (typeof(options.onShow) === "function") {
1560
- options.onShow.call(this, $content);
1561
- }
1562
- }
1563
-
1564
- if ($oldContent !== undefined &&
1565
- !$oldContent.is($content)) {
1566
- $oldContent.hide();
1567
- $oldContent.removeClass('active');
1568
- }
1569
- }
1570
-
1571
- // Reset clicked state
1572
- clickedTimeout = setTimeout(function(){ clicked = false; }, transition);
1573
-
1574
- // Update indicator
1575
- animateIndicator(prev_index);
1576
-
1577
- // Prevent the anchor's default click action
1578
- e.preventDefault();
1579
- });
1580
- });
1581
-
1582
- },
1583
- select_tab : function( id ) {
1584
- this.find('a[href="#' + id + '"]').trigger('click');
1585
- }
1586
- };
1587
-
1588
- $.fn.tabs = function(methodOrOptions) {
1589
- if ( methods[methodOrOptions] ) {
1590
- return methods[ methodOrOptions ].apply( this, Array.prototype.slice.call( arguments, 1 ));
1591
- } else if ( typeof methodOrOptions === 'object' || ! methodOrOptions ) {
1592
- // Default to "init"
1593
- return methods.init.apply( this, arguments );
1594
- } else {
1595
- $.error( 'Method ' + methodOrOptions + ' does not exist on jQuery.tabs' );
1596
- }
1597
- };
1598
-
1599
- $(document).ready(function(){
1600
- $('ul.tabs').tabs();
1601
- });
1602
- }( jQuery ));
1603
- ;(function ($) {
1604
- $.fn.tooltip = function (options) {
1605
- var timeout = null,
1606
- margin = 5;
1607
-
1608
- // Defaults
1609
- var defaults = {
1610
- delay: 350,
1611
- tooltip: '',
1612
- position: 'bottom',
1613
- html: false
1614
- };
1615
-
1616
- // Remove tooltip from the activator
1617
- if (options === "remove") {
1618
- this.each(function() {
1619
- $('#' + $(this).attr('data-tooltip-id')).remove();
1620
- $(this).off('mouseenter.tooltip mouseleave.tooltip');
1621
- });
1622
- return false;
1623
- }
1624
-
1625
- options = $.extend(defaults, options);
1626
-
1627
- return this.each(function() {
1628
- var tooltipId = Materialize.guid();
1629
- var origin = $(this);
1630
-
1631
- // Destroy old tooltip
1632
- if (origin.attr('data-tooltip-id')) {
1633
- $('#' + origin.attr('data-tooltip-id')).remove();
1634
- }
1635
-
1636
- origin.attr('data-tooltip-id', tooltipId);
1637
-
1638
- // Get attributes.
1639
- var allowHtml,
1640
- tooltipDelay,
1641
- tooltipPosition,
1642
- tooltipText,
1643
- tooltipEl,
1644
- backdrop;
1645
- var setAttributes = function() {
1646
- allowHtml = origin.attr('data-html') ? origin.attr('data-html') === 'true' : options.html;
1647
- tooltipDelay = origin.attr('data-delay');
1648
- tooltipDelay = (tooltipDelay === undefined || tooltipDelay === '') ?
1649
- options.delay : tooltipDelay;
1650
- tooltipPosition = origin.attr('data-position');
1651
- tooltipPosition = (tooltipPosition === undefined || tooltipPosition === '') ?
1652
- options.position : tooltipPosition;
1653
- tooltipText = origin.attr('data-tooltip');
1654
- tooltipText = (tooltipText === undefined || tooltipText === '') ?
1655
- options.tooltip : tooltipText;
1656
- };
1657
- setAttributes();
1658
-
1659
- var renderTooltipEl = function() {
1660
- var tooltip = $('<div class="material-tooltip"></div>');
1661
-
1662
- // Create Text span
1663
- if (allowHtml) {
1664
- tooltipText = $('<span></span>').html(tooltipText);
1665
- } else{
1666
- tooltipText = $('<span></span>').text(tooltipText);
1667
- }
1668
-
1669
- // Create tooltip
1670
- tooltip.append(tooltipText)
1671
- .appendTo($('body'))
1672
- .attr('id', tooltipId);
1673
-
1674
- // Create backdrop
1675
- backdrop = $('<div class="backdrop"></div>');
1676
- backdrop.appendTo(tooltip);
1677
- return tooltip;
1678
- };
1679
- tooltipEl = renderTooltipEl();
1680
-
1681
- // Destroy previously binded events
1682
- origin.off('mouseenter.tooltip mouseleave.tooltip');
1683
- // Mouse In
1684
- var started = false, timeoutRef;
1685
- origin.on({'mouseenter.tooltip': function(e) {
1686
- var showTooltip = function() {
1687
- setAttributes();
1688
- started = true;
1689
- tooltipEl.velocity('stop');
1690
- backdrop.velocity('stop');
1691
- tooltipEl.css({ visibility: 'visible', left: '0px', top: '0px' });
1692
-
1693
- // Tooltip positioning
1694
- var originWidth = origin.outerWidth();
1695
- var originHeight = origin.outerHeight();
1696
- var tooltipHeight = tooltipEl.outerHeight();
1697
- var tooltipWidth = tooltipEl.outerWidth();
1698
- var tooltipVerticalMovement = '0px';
1699
- var tooltipHorizontalMovement = '0px';
1700
- var backdropOffsetWidth = backdrop[0].offsetWidth;
1701
- var backdropOffsetHeight = backdrop[0].offsetHeight;
1702
- var scaleXFactor = 8;
1703
- var scaleYFactor = 8;
1704
- var scaleFactor = 0;
1705
- var targetTop, targetLeft, newCoordinates;
1706
-
1707
- if (tooltipPosition === "top") {
1708
- // Top Position
1709
- targetTop = origin.offset().top - tooltipHeight - margin;
1710
- targetLeft = origin.offset().left + originWidth/2 - tooltipWidth/2;
1711
- newCoordinates = repositionWithinScreen(targetLeft, targetTop, tooltipWidth, tooltipHeight);
1712
- tooltipVerticalMovement = '-10px';
1713
- backdrop.css({
1714
- bottom: 0,
1715
- left: 0,
1716
- borderRadius: '14px 14px 0 0',
1717
- transformOrigin: '50% 100%',
1718
- marginTop: tooltipHeight,
1719
- marginLeft: (tooltipWidth/2) - (backdropOffsetWidth/2)
1720
- });
1721
- }
1722
- // Left Position
1723
- else if (tooltipPosition === "left") {
1724
- targetTop = origin.offset().top + originHeight/2 - tooltipHeight/2;
1725
- targetLeft = origin.offset().left - tooltipWidth - margin;
1726
- newCoordinates = repositionWithinScreen(targetLeft, targetTop, tooltipWidth, tooltipHeight);
1727
-
1728
- tooltipHorizontalMovement = '-10px';
1729
- backdrop.css({
1730
- top: '-7px',
1731
- right: 0,
1732
- width: '14px',
1733
- height: '14px',
1734
- borderRadius: '14px 0 0 14px',
1735
- transformOrigin: '95% 50%',
1736
- marginTop: tooltipHeight/2,
1737
- marginLeft: tooltipWidth
1738
- });
1739
- }
1740
- // Right Position
1741
- else if (tooltipPosition === "right") {
1742
- targetTop = origin.offset().top + originHeight/2 - tooltipHeight/2;
1743
- targetLeft = origin.offset().left + originWidth + margin;
1744
- newCoordinates = repositionWithinScreen(targetLeft, targetTop, tooltipWidth, tooltipHeight);
1745
-
1746
- tooltipHorizontalMovement = '+10px';
1747
- backdrop.css({
1748
- top: '-7px',
1749
- left: 0,
1750
- width: '14px',
1751
- height: '14px',
1752
- borderRadius: '0 14px 14px 0',
1753
- transformOrigin: '5% 50%',
1754
- marginTop: tooltipHeight/2,
1755
- marginLeft: '0px'
1756
- });
1757
- }
1758
- else {
1759
- // Bottom Position
1760
- targetTop = origin.offset().top + origin.outerHeight() + margin;
1761
- targetLeft = origin.offset().left + originWidth/2 - tooltipWidth/2;
1762
- newCoordinates = repositionWithinScreen(targetLeft, targetTop, tooltipWidth, tooltipHeight);
1763
- tooltipVerticalMovement = '+10px';
1764
- backdrop.css({
1765
- top: 0,
1766
- left: 0,
1767
- marginLeft: (tooltipWidth/2) - (backdropOffsetWidth/2)
1768
- });
1769
- }
1770
-
1771
- // Set tooptip css placement
1772
- tooltipEl.css({
1773
- top: newCoordinates.y,
1774
- left: newCoordinates.x
1775
- });
1776
-
1777
- // Calculate Scale to fill
1778
- scaleXFactor = Math.SQRT2 * tooltipWidth / parseInt(backdropOffsetWidth);
1779
- scaleYFactor = Math.SQRT2 * tooltipHeight / parseInt(backdropOffsetHeight);
1780
- scaleFactor = Math.max(scaleXFactor, scaleYFactor);
1781
-
1782
- tooltipEl.velocity({ translateY: tooltipVerticalMovement, translateX: tooltipHorizontalMovement}, { duration: 350, queue: false })
1783
- .velocity({opacity: 1}, {duration: 300, delay: 50, queue: false});
1784
- backdrop.css({ visibility: 'visible' })
1785
- .velocity({opacity:1},{duration: 55, delay: 0, queue: false})
1786
- .velocity({scaleX: scaleFactor, scaleY: scaleFactor}, {duration: 300, delay: 0, queue: false, easing: 'easeInOutQuad'});
1787
- };
1788
-
1789
- timeoutRef = setTimeout(showTooltip, tooltipDelay); // End Interval
1790
-
1791
- // Mouse Out
1792
- },
1793
- 'mouseleave.tooltip': function(){
1794
- // Reset State
1795
- started = false;
1796
- clearTimeout(timeoutRef);
1797
-
1798
- // Animate back
1799
- setTimeout(function() {
1800
- if (started !== true) {
1801
- tooltipEl.velocity({
1802
- opacity: 0, translateY: 0, translateX: 0}, { duration: 225, queue: false});
1803
- backdrop.velocity({opacity: 0, scaleX: 1, scaleY: 1}, {
1804
- duration:225,
1805
- queue: false,
1806
- complete: function(){
1807
- backdrop.css({ visibility: 'hidden' });
1808
- tooltipEl.css({ visibility: 'hidden' });
1809
- started = false;}
1810
- });
1811
- }
1812
- },225);
1813
- }
1814
- });
1815
- });
1816
- };
1817
-
1818
- var repositionWithinScreen = function(x, y, width, height) {
1819
- var newX = x;
1820
- var newY = y;
1821
-
1822
- if (newX < 0) {
1823
- newX = 4;
1824
- } else if (newX + width > window.innerWidth) {
1825
- newX -= newX + width - window.innerWidth;
1826
- }
1827
-
1828
- if (newY < 0) {
1829
- newY = 4;
1830
- } else if (newY + height > window.innerHeight + $(window).scrollTop) {
1831
- newY -= newY + height - window.innerHeight;
1832
- }
1833
-
1834
- return {x: newX, y: newY};
1835
- };
1836
-
1837
- $(document).ready(function(){
1838
- $('.tooltipped').tooltip();
1839
- });
1840
- }( jQuery ));
1841
- ;/*!
1842
- * Waves v0.6.4
1843
- * http://fian.my.id/Waves
1844
- *
1845
- * Copyright 2014 Alfiana E. Sibuea and other contributors
1846
- * Released under the MIT license
1847
- * https://github.com/fians/Waves/blob/master/LICENSE
1848
- */
1849
-
1850
- ;(function(window) {
1851
- 'use strict';
1852
-
1853
- var Waves = Waves || {};
1854
- var $$ = document.querySelectorAll.bind(document);
1855
-
1856
- // Find exact position of element
1857
- function isWindow(obj) {
1858
- return obj !== null && obj === obj.window;
1859
- }
1860
-
1861
- function getWindow(elem) {
1862
- return isWindow(elem) ? elem : elem.nodeType === 9 && elem.defaultView;
1863
- }
1864
-
1865
- function offset(elem) {
1866
- var docElem, win,
1867
- box = {top: 0, left: 0},
1868
- doc = elem && elem.ownerDocument;
1869
-
1870
- docElem = doc.documentElement;
1871
-
1872
- if (typeof elem.getBoundingClientRect !== typeof undefined) {
1873
- box = elem.getBoundingClientRect();
1874
- }
1875
- win = getWindow(doc);
1876
- return {
1877
- top: box.top + win.pageYOffset - docElem.clientTop,
1878
- left: box.left + win.pageXOffset - docElem.clientLeft
1879
- };
1880
- }
1881
-
1882
- function convertStyle(obj) {
1883
- var style = '';
1884
-
1885
- for (var a in obj) {
1886
- if (obj.hasOwnProperty(a)) {
1887
- style += (a + ':' + obj[a] + ';');
1888
- }
1889
- }
1890
-
1891
- return style;
1892
- }
1893
-
1894
- var Effect = {
1895
-
1896
- // Effect delay
1897
- duration: 750,
1898
-
1899
- show: function(e, element) {
1900
-
1901
- // Disable right click
1902
- if (e.button === 2) {
1903
- return false;
1904
- }
1905
-
1906
- var el = element || this;
1907
-
1908
- // Create ripple
1909
- var ripple = document.createElement('div');
1910
- ripple.className = 'waves-ripple';
1911
- el.appendChild(ripple);
1912
-
1913
- // Get click coordinate and element witdh
1914
- var pos = offset(el);
1915
- var relativeY = (e.pageY - pos.top);
1916
- var relativeX = (e.pageX - pos.left);
1917
- var scale = 'scale('+((el.clientWidth / 100) * 10)+')';
1918
-
1919
- // Support for touch devices
1920
- if ('touches' in e) {
1921
- relativeY = (e.touches[0].pageY - pos.top);
1922
- relativeX = (e.touches[0].pageX - pos.left);
1923
- }
1924
-
1925
- // Attach data to element
1926
- ripple.setAttribute('data-hold', Date.now());
1927
- ripple.setAttribute('data-scale', scale);
1928
- ripple.setAttribute('data-x', relativeX);
1929
- ripple.setAttribute('data-y', relativeY);
1930
-
1931
- // Set ripple position
1932
- var rippleStyle = {
1933
- 'top': relativeY+'px',
1934
- 'left': relativeX+'px'
1935
- };
1936
-
1937
- ripple.className = ripple.className + ' waves-notransition';
1938
- ripple.setAttribute('style', convertStyle(rippleStyle));
1939
- ripple.className = ripple.className.replace('waves-notransition', '');
1940
-
1941
- // Scale the ripple
1942
- rippleStyle['-webkit-transform'] = scale;
1943
- rippleStyle['-moz-transform'] = scale;
1944
- rippleStyle['-ms-transform'] = scale;
1945
- rippleStyle['-o-transform'] = scale;
1946
- rippleStyle.transform = scale;
1947
- rippleStyle.opacity = '1';
1948
-
1949
- rippleStyle['-webkit-transition-duration'] = Effect.duration + 'ms';
1950
- rippleStyle['-moz-transition-duration'] = Effect.duration + 'ms';
1951
- rippleStyle['-o-transition-duration'] = Effect.duration + 'ms';
1952
- rippleStyle['transition-duration'] = Effect.duration + 'ms';
1953
-
1954
- rippleStyle['-webkit-transition-timing-function'] = 'cubic-bezier(0.250, 0.460, 0.450, 0.940)';
1955
- rippleStyle['-moz-transition-timing-function'] = 'cubic-bezier(0.250, 0.460, 0.450, 0.940)';
1956
- rippleStyle['-o-transition-timing-function'] = 'cubic-bezier(0.250, 0.460, 0.450, 0.940)';
1957
- rippleStyle['transition-timing-function'] = 'cubic-bezier(0.250, 0.460, 0.450, 0.940)';
1958
-
1959
- ripple.setAttribute('style', convertStyle(rippleStyle));
1960
- },
1961
-
1962
- hide: function(e) {
1963
- TouchHandler.touchup(e);
1964
-
1965
- var el = this;
1966
- var width = el.clientWidth * 1.4;
1967
-
1968
- // Get first ripple
1969
- var ripple = null;
1970
- var ripples = el.getElementsByClassName('waves-ripple');
1971
- if (ripples.length > 0) {
1972
- ripple = ripples[ripples.length - 1];
1973
- } else {
1974
- return false;
1975
- }
1976
-
1977
- var relativeX = ripple.getAttribute('data-x');
1978
- var relativeY = ripple.getAttribute('data-y');
1979
- var scale = ripple.getAttribute('data-scale');
1980
-
1981
- // Get delay beetween mousedown and mouse leave
1982
- var diff = Date.now() - Number(ripple.getAttribute('data-hold'));
1983
- var delay = 350 - diff;
1984
-
1985
- if (delay < 0) {
1986
- delay = 0;
1987
- }
1988
-
1989
- // Fade out ripple after delay
1990
- setTimeout(function() {
1991
- var style = {
1992
- 'top': relativeY+'px',
1993
- 'left': relativeX+'px',
1994
- 'opacity': '0',
1995
-
1996
- // Duration
1997
- '-webkit-transition-duration': Effect.duration + 'ms',
1998
- '-moz-transition-duration': Effect.duration + 'ms',
1999
- '-o-transition-duration': Effect.duration + 'ms',
2000
- 'transition-duration': Effect.duration + 'ms',
2001
- '-webkit-transform': scale,
2002
- '-moz-transform': scale,
2003
- '-ms-transform': scale,
2004
- '-o-transform': scale,
2005
- 'transform': scale,
2006
- };
2007
-
2008
- ripple.setAttribute('style', convertStyle(style));
2009
-
2010
- setTimeout(function() {
2011
- try {
2012
- el.removeChild(ripple);
2013
- } catch(e) {
2014
- return false;
2015
- }
2016
- }, Effect.duration);
2017
- }, delay);
2018
- },
2019
-
2020
- // Little hack to make <input> can perform waves effect
2021
- wrapInput: function(elements) {
2022
- for (var a = 0; a < elements.length; a++) {
2023
- var el = elements[a];
2024
-
2025
- if (el.tagName.toLowerCase() === 'input') {
2026
- var parent = el.parentNode;
2027
-
2028
- // If input already have parent just pass through
2029
- if (parent.tagName.toLowerCase() === 'i' && parent.className.indexOf('waves-effect') !== -1) {
2030
- continue;
2031
- }
2032
-
2033
- // Put element class and style to the specified parent
2034
- var wrapper = document.createElement('i');
2035
- wrapper.className = el.className + ' waves-input-wrapper';
2036
-
2037
- var elementStyle = el.getAttribute('style');
2038
-
2039
- if (!elementStyle) {
2040
- elementStyle = '';
2041
- }
2042
-
2043
- wrapper.setAttribute('style', elementStyle);
2044
-
2045
- el.className = 'waves-button-input';
2046
- el.removeAttribute('style');
2047
-
2048
- // Put element as child
2049
- parent.replaceChild(wrapper, el);
2050
- wrapper.appendChild(el);
2051
- }
2052
- }
2053
- }
2054
- };
2055
-
2056
-
2057
- /**
2058
- * Disable mousedown event for 500ms during and after touch
2059
- */
2060
- var TouchHandler = {
2061
- /* uses an integer rather than bool so there's no issues with
2062
- * needing to clear timeouts if another touch event occurred
2063
- * within the 500ms. Cannot mouseup between touchstart and
2064
- * touchend, nor in the 500ms after touchend. */
2065
- touches: 0,
2066
- allowEvent: function(e) {
2067
- var allow = true;
2068
-
2069
- if (e.type === 'touchstart') {
2070
- TouchHandler.touches += 1; //push
2071
- } else if (e.type === 'touchend' || e.type === 'touchcancel') {
2072
- setTimeout(function() {
2073
- if (TouchHandler.touches > 0) {
2074
- TouchHandler.touches -= 1; //pop after 500ms
2075
- }
2076
- }, 500);
2077
- } else if (e.type === 'mousedown' && TouchHandler.touches > 0) {
2078
- allow = false;
2079
- }
2080
-
2081
- return allow;
2082
- },
2083
- touchup: function(e) {
2084
- TouchHandler.allowEvent(e);
2085
- }
2086
- };
2087
-
2088
-
2089
- /**
2090
- * Delegated click handler for .waves-effect element.
2091
- * returns null when .waves-effect element not in "click tree"
2092
- */
2093
- function getWavesEffectElement(e) {
2094
- if (TouchHandler.allowEvent(e) === false) {
2095
- return null;
2096
- }
2097
-
2098
- var element = null;
2099
- var target = e.target || e.srcElement;
2100
-
2101
- while (target.parentElement !== null) {
2102
- if (!(target instanceof SVGElement) && target.className.indexOf('waves-effect') !== -1) {
2103
- element = target;
2104
- break;
2105
- } else if (target.classList.contains('waves-effect')) {
2106
- element = target;
2107
- break;
2108
- }
2109
- target = target.parentElement;
2110
- }
2111
-
2112
- return element;
2113
- }
2114
-
2115
- /**
2116
- * Bubble the click and show effect if .waves-effect elem was found
2117
- */
2118
- function showEffect(e) {
2119
- var element = getWavesEffectElement(e);
2120
-
2121
- if (element !== null) {
2122
- Effect.show(e, element);
2123
-
2124
- if ('ontouchstart' in window) {
2125
- element.addEventListener('touchend', Effect.hide, false);
2126
- element.addEventListener('touchcancel', Effect.hide, false);
2127
- }
2128
-
2129
- element.addEventListener('mouseup', Effect.hide, false);
2130
- element.addEventListener('mouseleave', Effect.hide, false);
2131
- }
2132
- }
2133
-
2134
- Waves.displayEffect = function(options) {
2135
- options = options || {};
2136
-
2137
- if ('duration' in options) {
2138
- Effect.duration = options.duration;
2139
- }
2140
-
2141
- //Wrap input inside <i> tag
2142
- Effect.wrapInput($$('.waves-effect'));
2143
-
2144
- if ('ontouchstart' in window) {
2145
- document.body.addEventListener('touchstart', showEffect, false);
2146
- }
2147
-
2148
- document.body.addEventListener('mousedown', showEffect, false);
2149
- };
2150
-
2151
- /**
2152
- * Attach Waves to an input element (or any element which doesn't
2153
- * bubble mouseup/mousedown events).
2154
- * Intended to be used with dynamically loaded forms/inputs, or
2155
- * where the user doesn't want a delegated click handler.
2156
- */
2157
- Waves.attach = function(element) {
2158
- //FUTURE: automatically add waves classes and allow users
2159
- // to specify them with an options param? Eg. light/classic/button
2160
- if (element.tagName.toLowerCase() === 'input') {
2161
- Effect.wrapInput([element]);
2162
- element = element.parentElement;
2163
- }
2164
-
2165
- if ('ontouchstart' in window) {
2166
- element.addEventListener('touchstart', showEffect, false);
2167
- }
2168
-
2169
- element.addEventListener('mousedown', showEffect, false);
2170
- };
2171
-
2172
- window.Waves = Waves;
2173
-
2174
- document.addEventListener('DOMContentLoaded', function() {
2175
- Waves.displayEffect();
2176
- }, false);
2177
-
2178
- })(window);
2179
- ;Materialize.toast = function (message, displayLength, className, completeCallback) {
2180
- className = className || "";
2181
-
2182
- var container = document.getElementById('toast-container');
2183
-
2184
- // Create toast container if it does not exist
2185
- if (container === null) {
2186
- // create notification container
2187
- container = document.createElement('div');
2188
- container.id = 'toast-container';
2189
- document.body.appendChild(container);
2190
- }
2191
-
2192
- // Select and append toast
2193
- var newToast = createToast(message);
2194
-
2195
- // only append toast if message is not undefined
2196
- if(message){
2197
- container.appendChild(newToast);
2198
- }
2199
-
2200
- newToast.style.opacity = 0;
2201
-
2202
- // Animate toast in
2203
- Vel(newToast, {translateY: '-35px', opacity: 1 }, {duration: 300,
2204
- easing: 'easeOutCubic',
2205
- queue: false});
2206
-
2207
- // Allows timer to be pause while being panned
2208
- var timeLeft = displayLength;
2209
- var counterInterval;
2210
- if (timeLeft != null) {
2211
- counterInterval = setInterval (function(){
2212
- if (newToast.parentNode === null)
2213
- window.clearInterval(counterInterval);
2214
-
2215
- // If toast is not being dragged, decrease its time remaining
2216
- if (!newToast.classList.contains('panning')) {
2217
- timeLeft -= 20;
2218
- }
2219
-
2220
- if (timeLeft <= 0) {
2221
- // Animate toast out
2222
- Vel(newToast, {"opacity": 0, marginTop: '-40px'}, { duration: 375,
2223
- easing: 'easeOutExpo',
2224
- queue: false,
2225
- complete: function(){
2226
- // Call the optional callback
2227
- if(typeof(completeCallback) === "function")
2228
- completeCallback();
2229
- // Remove toast after it times out
2230
- this[0].parentNode.removeChild(this[0]);
2231
- }
2232
- });
2233
- window.clearInterval(counterInterval);
2234
- }
2235
- }, 20);
2236
- }
2237
-
2238
-
2239
-
2240
- function createToast(html) {
2241
-
2242
- // Create toast
2243
- var toast = document.createElement('div');
2244
- toast.classList.add('toast');
2245
- if (className) {
2246
- var classes = className.split(' ');
2247
-
2248
- for (var i = 0, count = classes.length; i < count; i++) {
2249
- toast.classList.add(classes[i]);
2250
- }
2251
- }
2252
- // If type of parameter is HTML Element
2253
- if ( typeof HTMLElement === "object" ? html instanceof HTMLElement : html && typeof html === "object" && html !== null && html.nodeType === 1 && typeof html.nodeName==="string"
2254
- ) {
2255
- toast.appendChild(html);
2256
- }
2257
- else if (html instanceof jQuery) {
2258
- // Check if it is jQuery object
2259
- toast.appendChild(html[0]);
2260
- }
2261
- else {
2262
- // Insert as text;
2263
- toast.innerHTML = html;
2264
- }
2265
- // Bind hammer
2266
- var hammerHandler = new Hammer(toast, {prevent_default: false});
2267
- hammerHandler.on('pan', function(e) {
2268
- var deltaX = e.deltaX;
2269
- var activationDistance = 80;
2270
-
2271
- // Change toast state
2272
- if (!toast.classList.contains('panning')){
2273
- toast.classList.add('panning');
2274
- }
2275
-
2276
- var opacityPercent = 1-Math.abs(deltaX / activationDistance);
2277
- if (opacityPercent < 0)
2278
- opacityPercent = 0;
2279
-
2280
- Vel(toast, {left: deltaX, opacity: opacityPercent }, {duration: 50, queue: false, easing: 'easeOutQuad'});
2281
-
2282
- });
2283
-
2284
- hammerHandler.on('panend', function(e) {
2285
- var deltaX = e.deltaX;
2286
- var activationDistance = 80;
2287
-
2288
- // If toast dragged past activation point
2289
- if (Math.abs(deltaX) > activationDistance) {
2290
- Vel(toast, {marginTop: '-40px'}, { duration: 375,
2291
- easing: 'easeOutExpo',
2292
- queue: false,
2293
- complete: function(){
2294
- if(typeof(completeCallback) === "function") {
2295
- completeCallback();
2296
- }
2297
- toast.parentNode.removeChild(toast);
2298
- }
2299
- });
2300
-
2301
- } else {
2302
- toast.classList.remove('panning');
2303
- // Put toast back into original position
2304
- Vel(toast, { left: 0, opacity: 1 }, { duration: 300,
2305
- easing: 'easeOutExpo',
2306
- queue: false
2307
- });
2308
-
2309
- }
2310
- });
2311
-
2312
- return toast;
2313
- }
2314
- };
2315
- ;(function ($) {
2316
-
2317
- var methods = {
2318
- init : function(options) {
2319
- var defaults = {
2320
- menuWidth: 300,
2321
- edge: 'left',
2322
- closeOnClick: false,
2323
- draggable: true
2324
- };
2325
- options = $.extend(defaults, options);
2326
-
2327
- $(this).each(function(){
2328
- var $this = $(this);
2329
- var menuId = $this.attr('data-activates');
2330
- var menu = $("#"+ menuId);
2331
-
2332
- // Set to width
2333
- if (options.menuWidth != 300) {
2334
- menu.css('width', options.menuWidth);
2335
- }
2336
-
2337
- // Add Touch Area
2338
- var $dragTarget = $('.drag-target[data-sidenav="' + menuId + '"]');
2339
- if (options.draggable) {
2340
- // Regenerate dragTarget
2341
- if ($dragTarget.length) {
2342
- $dragTarget.remove();
2343
- }
2344
-
2345
- $dragTarget = $('<div class="drag-target"></div>').attr('data-sidenav', menuId);
2346
- $('body').append($dragTarget);
2347
- } else {
2348
- $dragTarget = $();
2349
- }
2350
-
2351
- if (options.edge == 'left') {
2352
- menu.css('transform', 'translateX(-100%)');
2353
- $dragTarget.css({'left': 0}); // Add Touch Area
2354
- }
2355
- else {
2356
- menu.addClass('right-aligned') // Change text-alignment to right
2357
- .css('transform', 'translateX(100%)');
2358
- $dragTarget.css({'right': 0}); // Add Touch Area
2359
- }
2360
-
2361
- // If fixed sidenav, bring menu out
2362
- if (menu.hasClass('fixed')) {
2363
- if (window.innerWidth > 992) {
2364
- menu.css('transform', 'translateX(0)');
2365
- }
2366
- }
2367
-
2368
- // Window resize to reset on large screens fixed
2369
- if (menu.hasClass('fixed')) {
2370
- $(window).resize( function() {
2371
- if (window.innerWidth > 992) {
2372
- // Close menu if window is resized bigger than 992 and user has fixed sidenav
2373
- if ($('#sidenav-overlay').length !== 0 && menuOut) {
2374
- removeMenu(true);
2375
- }
2376
- else {
2377
- // menu.removeAttr('style');
2378
- menu.css('transform', 'translateX(0%)');
2379
- // menu.css('width', options.menuWidth);
2380
- }
2381
- }
2382
- else if (menuOut === false){
2383
- if (options.edge === 'left') {
2384
- menu.css('transform', 'translateX(-100%)');
2385
- } else {
2386
- menu.css('transform', 'translateX(100%)');
2387
- }
2388
-
2389
- }
2390
-
2391
- });
2392
- }
2393
-
2394
- // if closeOnClick, then add close event for all a tags in side sideNav
2395
- if (options.closeOnClick === true) {
2396
- menu.on("click.itemclick", "a:not(.collapsible-header)", function(){
2397
- removeMenu();
2398
- });
2399
- }
2400
-
2401
- var removeMenu = function(restoreNav) {
2402
- panning = false;
2403
- menuOut = false;
2404
- // Reenable scrolling
2405
- $('body').css({
2406
- overflow: '',
2407
- width: ''
2408
- });
2409
-
2410
- $('#sidenav-overlay').velocity({opacity: 0}, {duration: 200,
2411
- queue: false, easing: 'easeOutQuad',
2412
- complete: function() {
2413
- $(this).remove();
2414
- } });
2415
- if (options.edge === 'left') {
2416
- // Reset phantom div
2417
- $dragTarget.css({width: '', right: '', left: '0'});
2418
- menu.velocity(
2419
- {'translateX': '-100%'},
2420
- { duration: 200,
2421
- queue: false,
2422
- easing: 'easeOutCubic',
2423
- complete: function() {
2424
- if (restoreNav === true) {
2425
- // Restore Fixed sidenav
2426
- menu.removeAttr('style');
2427
- menu.css('width', options.menuWidth);
2428
- }
2429
- }
2430
-
2431
- });
2432
- }
2433
- else {
2434
- // Reset phantom div
2435
- $dragTarget.css({width: '', right: '0', left: ''});
2436
- menu.velocity(
2437
- {'translateX': '100%'},
2438
- { duration: 200,
2439
- queue: false,
2440
- easing: 'easeOutCubic',
2441
- complete: function() {
2442
- if (restoreNav === true) {
2443
- // Restore Fixed sidenav
2444
- menu.removeAttr('style');
2445
- menu.css('width', options.menuWidth);
2446
- }
2447
- }
2448
- });
2449
- }
2450
- };
2451
-
2452
-
2453
-
2454
- // Touch Event
2455
- var panning = false;
2456
- var menuOut = false;
2457
-
2458
- if (options.draggable) {
2459
- $dragTarget.on('click', function(){
2460
- if (menuOut) {
2461
- removeMenu();
2462
- }
2463
- });
2464
-
2465
- $dragTarget.hammer({
2466
- prevent_default: false
2467
- }).bind('pan', function(e) {
2468
-
2469
- if (e.gesture.pointerType == "touch") {
2470
-
2471
- var direction = e.gesture.direction;
2472
- var x = e.gesture.center.x;
2473
- var y = e.gesture.center.y;
2474
- var velocityX = e.gesture.velocityX;
2475
-
2476
- // Disable Scrolling
2477
- var $body = $('body');
2478
- var $overlay = $('#sidenav-overlay');
2479
- var oldWidth = $body.innerWidth();
2480
- $body.css('overflow', 'hidden');
2481
- $body.width(oldWidth);
2482
-
2483
- // If overlay does not exist, create one and if it is clicked, close menu
2484
- if ($overlay.length === 0) {
2485
- $overlay = $('<div id="sidenav-overlay"></div>');
2486
- $overlay.css('opacity', 0).click( function(){
2487
- removeMenu();
2488
- });
2489
- $('body').append($overlay);
2490
- }
2491
-
2492
- // Keep within boundaries
2493
- if (options.edge === 'left') {
2494
- if (x > options.menuWidth) { x = options.menuWidth; }
2495
- else if (x < 0) { x = 0; }
2496
- }
2497
-
2498
- if (options.edge === 'left') {
2499
- // Left Direction
2500
- if (x < (options.menuWidth / 2)) { menuOut = false; }
2501
- // Right Direction
2502
- else if (x >= (options.menuWidth / 2)) { menuOut = true; }
2503
- menu.css('transform', 'translateX(' + (x - options.menuWidth) + 'px)');
2504
- }
2505
- else {
2506
- // Left Direction
2507
- if (x < (window.innerWidth - options.menuWidth / 2)) {
2508
- menuOut = true;
2509
- }
2510
- // Right Direction
2511
- else if (x >= (window.innerWidth - options.menuWidth / 2)) {
2512
- menuOut = false;
2513
- }
2514
- var rightPos = (x - options.menuWidth / 2);
2515
- if (rightPos < 0) {
2516
- rightPos = 0;
2517
- }
2518
-
2519
- menu.css('transform', 'translateX(' + rightPos + 'px)');
2520
- }
2521
-
2522
-
2523
- // Percentage overlay
2524
- var overlayPerc;
2525
- if (options.edge === 'left') {
2526
- overlayPerc = x / options.menuWidth;
2527
- $overlay.velocity({opacity: overlayPerc }, {duration: 10, queue: false, easing: 'easeOutQuad'});
2528
- }
2529
- else {
2530
- overlayPerc = Math.abs((x - window.innerWidth) / options.menuWidth);
2531
- $overlay.velocity({opacity: overlayPerc }, {duration: 10, queue: false, easing: 'easeOutQuad'});
2532
- }
2533
- }
2534
-
2535
- }).bind('panend', function(e) {
2536
-
2537
- if (e.gesture.pointerType == "touch") {
2538
- var $overlay = $('<div id="sidenav-overlay"></div>');
2539
- var velocityX = e.gesture.velocityX;
2540
- var x = e.gesture.center.x;
2541
- var leftPos = x - options.menuWidth;
2542
- var rightPos = x - options.menuWidth / 2;
2543
- if (leftPos > 0 ) {
2544
- leftPos = 0;
2545
- }
2546
- if (rightPos < 0) {
2547
- rightPos = 0;
2548
- }
2549
- panning = false;
2550
-
2551
- if (options.edge === 'left') {
2552
- // If velocityX <= 0.3 then the user is flinging the menu closed so ignore menuOut
2553
- if ((menuOut && velocityX <= 0.3) || velocityX < -0.5) {
2554
- // Return menu to open
2555
- if (leftPos !== 0) {
2556
- menu.velocity({'translateX': [0, leftPos]}, {duration: 300, queue: false, easing: 'easeOutQuad'});
2557
- }
2558
-
2559
- $overlay.velocity({opacity: 1 }, {duration: 50, queue: false, easing: 'easeOutQuad'});
2560
- $dragTarget.css({width: '50%', right: 0, left: ''});
2561
- menuOut = true;
2562
- }
2563
- else if (!menuOut || velocityX > 0.3) {
2564
- // Enable Scrolling
2565
- $('body').css({
2566
- overflow: '',
2567
- width: ''
2568
- });
2569
- // Slide menu closed
2570
- menu.velocity({'translateX': [-1 * options.menuWidth - 10, leftPos]}, {duration: 200, queue: false, easing: 'easeOutQuad'});
2571
- $overlay.velocity({opacity: 0 }, {duration: 200, queue: false, easing: 'easeOutQuad',
2572
- complete: function () {
2573
- $(this).remove();
2574
- }});
2575
- $dragTarget.css({width: '10px', right: '', left: 0});
2576
- }
2577
- }
2578
- else {
2579
- if ((menuOut && velocityX >= -0.3) || velocityX > 0.5) {
2580
- // Return menu to open
2581
- if (rightPos !== 0) {
2582
- menu.velocity({'translateX': [0, rightPos]}, {duration: 300, queue: false, easing: 'easeOutQuad'});
2583
- }
2584
-
2585
- $overlay.velocity({opacity: 1 }, {duration: 50, queue: false, easing: 'easeOutQuad'});
2586
- $dragTarget.css({width: '50%', right: '', left: 0});
2587
- menuOut = true;
2588
- }
2589
- else if (!menuOut || velocityX < -0.3) {
2590
- // Enable Scrolling
2591
- $('body').css({
2592
- overflow: '',
2593
- width: ''
2594
- });
2595
-
2596
- // Slide menu closed
2597
- menu.velocity({'translateX': [options.menuWidth + 10, rightPos]}, {duration: 200, queue: false, easing: 'easeOutQuad'});
2598
- $overlay.velocity({opacity: 0 }, {duration: 200, queue: false, easing: 'easeOutQuad',
2599
- complete: function () {
2600
- $(this).remove();
2601
- }});
2602
- $dragTarget.css({width: '10px', right: 0, left: ''});
2603
- }
2604
- }
2605
-
2606
- }
2607
- });
2608
- }
2609
-
2610
- $this.off('click.sidenav').on('click.sidenav', function() {
2611
- if (menuOut === true) {
2612
- menuOut = false;
2613
- panning = false;
2614
- removeMenu();
2615
- }
2616
- else {
2617
-
2618
- // Disable Scrolling
2619
- var $body = $('body');
2620
- var $overlay = $('<div id="sidenav-overlay"></div>');
2621
- var oldWidth = $body.innerWidth();
2622
- $body.css('overflow', 'hidden');
2623
- $body.width(oldWidth);
2624
-
2625
- // Push current drag target on top of DOM tree
2626
- $('body').append($dragTarget);
2627
-
2628
- if (options.edge === 'left') {
2629
- $dragTarget.css({width: '50%', right: 0, left: ''});
2630
- menu.velocity({'translateX': [0, -1 * options.menuWidth]}, {duration: 300, queue: false, easing: 'easeOutQuad'});
2631
- }
2632
- else {
2633
- $dragTarget.css({width: '50%', right: '', left: 0});
2634
- menu.velocity({'translateX': [0, options.menuWidth]}, {duration: 300, queue: false, easing: 'easeOutQuad'});
2635
- }
2636
-
2637
- $overlay.css('opacity', 0)
2638
- .click(function(){
2639
- menuOut = false;
2640
- panning = false;
2641
- removeMenu();
2642
- $overlay.velocity({opacity: 0}, {duration: 300, queue: false, easing: 'easeOutQuad',
2643
- complete: function() {
2644
- $(this).remove();
2645
- } });
2646
-
2647
- });
2648
- $('body').append($overlay);
2649
- $overlay.velocity({opacity: 1}, {duration: 300, queue: false, easing: 'easeOutQuad',
2650
- complete: function () {
2651
- menuOut = true;
2652
- panning = false;
2653
- }
2654
- });
2655
- }
2656
-
2657
- return false;
2658
- });
2659
- });
2660
-
2661
-
2662
- },
2663
- destroy: function () {
2664
- var $overlay = $('#sidenav-overlay');
2665
- var $dragTarget = $('.drag-target[data-sidenav="' + $(this).attr('data-activates') + '"]');
2666
- $overlay.trigger('click');
2667
- $dragTarget.remove();
2668
- $(this).off('click');
2669
- $overlay.remove();
2670
- },
2671
- show : function() {
2672
- this.trigger('click');
2673
- },
2674
- hide : function() {
2675
- $('#sidenav-overlay').trigger('click');
2676
- }
2677
- };
2678
-
2679
-
2680
- $.fn.sideNav = function(methodOrOptions) {
2681
- if ( methods[methodOrOptions] ) {
2682
- return methods[ methodOrOptions ].apply( this, Array.prototype.slice.call( arguments, 1 ));
2683
- } else if ( typeof methodOrOptions === 'object' || ! methodOrOptions ) {
2684
- // Default to "init"
2685
- return methods.init.apply( this, arguments );
2686
- } else {
2687
- $.error( 'Method ' + methodOrOptions + ' does not exist on jQuery.sideNav' );
2688
- }
2689
- }; // Plugin end
2690
- }( jQuery ));
2691
- ;/**
2692
- * Extend jquery with a scrollspy plugin.
2693
- * This watches the window scroll and fires events when elements are scrolled into viewport.
2694
- *
2695
- * throttle() and getTime() taken from Underscore.js
2696
- * https://github.com/jashkenas/underscore
2697
- *
2698
- * @author Copyright 2013 John Smart
2699
- * @license https://raw.github.com/thesmart/jquery-scrollspy/master/LICENSE
2700
- * @see https://github.com/thesmart
2701
- * @version 0.1.2
2702
- */
2703
- (function($) {
2704
-
2705
- var jWindow = $(window);
2706
- var elements = [];
2707
- var elementsInView = [];
2708
- var isSpying = false;
2709
- var ticks = 0;
2710
- var unique_id = 1;
2711
- var offset = {
2712
- top : 0,
2713
- right : 0,
2714
- bottom : 0,
2715
- left : 0,
2716
- }
2717
-
2718
- /**
2719
- * Find elements that are within the boundary
2720
- * @param {number} top
2721
- * @param {number} right
2722
- * @param {number} bottom
2723
- * @param {number} left
2724
- * @return {jQuery} A collection of elements
2725
- */
2726
- function findElements(top, right, bottom, left) {
2727
- var hits = $();
2728
- $.each(elements, function(i, element) {
2729
- if (element.height() > 0) {
2730
- var elTop = element.offset().top,
2731
- elLeft = element.offset().left,
2732
- elRight = elLeft + element.width(),
2733
- elBottom = elTop + element.height();
2734
-
2735
- var isIntersect = !(elLeft > right ||
2736
- elRight < left ||
2737
- elTop > bottom ||
2738
- elBottom < top);
2739
-
2740
- if (isIntersect) {
2741
- hits.push(element);
2742
- }
2743
- }
2744
- });
2745
-
2746
- return hits;
2747
- }
2748
-
2749
-
2750
- /**
2751
- * Called when the user scrolls the window
2752
- */
2753
- function onScroll(scrollOffset) {
2754
- // unique tick id
2755
- ++ticks;
2756
-
2757
- // viewport rectangle
2758
- var top = jWindow.scrollTop(),
2759
- left = jWindow.scrollLeft(),
2760
- right = left + jWindow.width(),
2761
- bottom = top + jWindow.height();
2762
-
2763
- // determine which elements are in view
2764
- var intersections = findElements(top+offset.top + scrollOffset || 200, right+offset.right, bottom+offset.bottom, left+offset.left);
2765
- $.each(intersections, function(i, element) {
2766
-
2767
- var lastTick = element.data('scrollSpy:ticks');
2768
- if (typeof lastTick != 'number') {
2769
- // entered into view
2770
- element.triggerHandler('scrollSpy:enter');
2771
- }
2772
-
2773
- // update tick id
2774
- element.data('scrollSpy:ticks', ticks);
2775
- });
2776
-
2777
- // determine which elements are no longer in view
2778
- $.each(elementsInView, function(i, element) {
2779
- var lastTick = element.data('scrollSpy:ticks');
2780
- if (typeof lastTick == 'number' && lastTick !== ticks) {
2781
- // exited from view
2782
- element.triggerHandler('scrollSpy:exit');
2783
- element.data('scrollSpy:ticks', null);
2784
- }
2785
- });
2786
-
2787
- // remember elements in view for next tick
2788
- elementsInView = intersections;
2789
- }
2790
-
2791
- /**
2792
- * Called when window is resized
2793
- */
2794
- function onWinSize() {
2795
- jWindow.trigger('scrollSpy:winSize');
2796
- }
2797
-
2798
-
2799
- /**
2800
- * Enables ScrollSpy using a selector
2801
- * @param {jQuery|string} selector The elements collection, or a selector
2802
- * @param {Object=} options Optional.
2803
- throttle : number -> scrollspy throttling. Default: 100 ms
2804
- offsetTop : number -> offset from top. Default: 0
2805
- offsetRight : number -> offset from right. Default: 0
2806
- offsetBottom : number -> offset from bottom. Default: 0
2807
- offsetLeft : number -> offset from left. Default: 0
2808
- * @returns {jQuery}
2809
- */
2810
- $.scrollSpy = function(selector, options) {
2811
- var defaults = {
2812
- throttle: 100,
2813
- scrollOffset: 200 // offset - 200 allows elements near bottom of page to scroll
2814
- };
2815
- options = $.extend(defaults, options);
2816
-
2817
- var visible = [];
2818
- selector = $(selector);
2819
- selector.each(function(i, element) {
2820
- elements.push($(element));
2821
- $(element).data("scrollSpy:id", i);
2822
- // Smooth scroll to section
2823
- $('a[href="#' + $(element).attr('id') + '"]').click(function(e) {
2824
- e.preventDefault();
2825
- var offset = $(Materialize.escapeHash(this.hash)).offset().top + 1;
2826
- $('html, body').animate({ scrollTop: offset - options.scrollOffset }, {duration: 400, queue: false, easing: 'easeOutCubic'});
2827
- });
2828
- });
2829
-
2830
- offset.top = options.offsetTop || 0;
2831
- offset.right = options.offsetRight || 0;
2832
- offset.bottom = options.offsetBottom || 0;
2833
- offset.left = options.offsetLeft || 0;
2834
-
2835
- var throttledScroll = Materialize.throttle(function() {
2836
- onScroll(options.scrollOffset);
2837
- }, options.throttle || 100);
2838
- var readyScroll = function(){
2839
- $(document).ready(throttledScroll);
2840
- };
2841
-
2842
- if (!isSpying) {
2843
- jWindow.on('scroll', readyScroll);
2844
- jWindow.on('resize', readyScroll);
2845
- isSpying = true;
2846
- }
2847
-
2848
- // perform a scan once, after current execution context, and after dom is ready
2849
- setTimeout(readyScroll, 0);
2850
-
2851
-
2852
- selector.on('scrollSpy:enter', function() {
2853
- visible = $.grep(visible, function(value) {
2854
- return value.height() != 0;
2855
- });
2856
-
2857
- var $this = $(this);
2858
-
2859
- if (visible[0]) {
2860
- $('a[href="#' + visible[0].attr('id') + '"]').removeClass('active');
2861
- if ($this.data('scrollSpy:id') < visible[0].data('scrollSpy:id')) {
2862
- visible.unshift($(this));
2863
- }
2864
- else {
2865
- visible.push($(this));
2866
- }
2867
- }
2868
- else {
2869
- visible.push($(this));
2870
- }
2871
-
2872
-
2873
- $('a[href="#' + visible[0].attr('id') + '"]').addClass('active');
2874
- });
2875
- selector.on('scrollSpy:exit', function() {
2876
- visible = $.grep(visible, function(value) {
2877
- return value.height() != 0;
2878
- });
2879
-
2880
- if (visible[0]) {
2881
- $('a[href="#' + visible[0].attr('id') + '"]').removeClass('active');
2882
- var $this = $(this);
2883
- visible = $.grep(visible, function(value) {
2884
- return value.attr('id') != $this.attr('id');
2885
- });
2886
- if (visible[0]) { // Check if empty
2887
- $('a[href="#' + visible[0].attr('id') + '"]').addClass('active');
2888
- }
2889
- }
2890
- });
2891
-
2892
- return selector;
2893
- };
2894
-
2895
- /**
2896
- * Listen for window resize events
2897
- * @param {Object=} options Optional. Set { throttle: number } to change throttling. Default: 100 ms
2898
- * @returns {jQuery} $(window)
2899
- */
2900
- $.winSizeSpy = function(options) {
2901
- $.winSizeSpy = function() { return jWindow; }; // lock from multiple calls
2902
- options = options || {
2903
- throttle: 100
2904
- };
2905
- return jWindow.on('resize', Materialize.throttle(onWinSize, options.throttle || 100));
2906
- };
2907
-
2908
- /**
2909
- * Enables ScrollSpy on a collection of elements
2910
- * e.g. $('.scrollSpy').scrollSpy()
2911
- * @param {Object=} options Optional.
2912
- throttle : number -> scrollspy throttling. Default: 100 ms
2913
- offsetTop : number -> offset from top. Default: 0
2914
- offsetRight : number -> offset from right. Default: 0
2915
- offsetBottom : number -> offset from bottom. Default: 0
2916
- offsetLeft : number -> offset from left. Default: 0
2917
- * @returns {jQuery}
2918
- */
2919
- $.fn.scrollSpy = function(options) {
2920
- return $.scrollSpy($(this), options);
2921
- };
2922
-
2923
- })(jQuery);
2924
- ;(function ($) {
2925
- $(document).ready(function() {
2926
-
2927
- // Function to update labels of text fields
2928
- Materialize.updateTextFields = function() {
2929
- var input_selector = 'input[type=text], input[type=password], input[type=email], input[type=url], input[type=tel], input[type=number], input[type=search], textarea';
2930
- $(input_selector).each(function(index, element) {
2931
- var $this = $(this);
2932
- if ($(element).val().length > 0 || element.autofocus || $this.attr('placeholder') !== undefined) {
2933
- $this.siblings('label').addClass('active');
2934
- } else if ($(element)[0].validity) {
2935
- $this.siblings('label').toggleClass('active', $(element)[0].validity.badInput === true);
2936
- } else {
2937
- $this.siblings('label').removeClass('active');
2938
- }
2939
- });
2940
- };
2941
-
2942
- // Text based inputs
2943
- var input_selector = 'input[type=text], input[type=password], input[type=email], input[type=url], input[type=tel], input[type=number], input[type=search], textarea';
2944
-
2945
- // Add active if form auto complete
2946
- $(document).on('change', input_selector, function () {
2947
- if($(this).val().length !== 0 || $(this).attr('placeholder') !== undefined) {
2948
- $(this).siblings('label').addClass('active');
2949
- }
2950
- validate_field($(this));
2951
- });
2952
-
2953
- // Add active if input element has been pre-populated on document ready
2954
- $(document).ready(function() {
2955
- Materialize.updateTextFields();
2956
- });
2957
-
2958
- // HTML DOM FORM RESET handling
2959
- $(document).on('reset', function(e) {
2960
- var formReset = $(e.target);
2961
- if (formReset.is('form')) {
2962
- formReset.find(input_selector).removeClass('valid').removeClass('invalid');
2963
- formReset.find(input_selector).each(function () {
2964
- if ($(this).attr('value') === '') {
2965
- $(this).siblings('label').removeClass('active');
2966
- }
2967
- });
2968
-
2969
- // Reset select
2970
- formReset.find('select.initialized').each(function () {
2971
- var reset_text = formReset.find('option[selected]').text();
2972
- formReset.siblings('input.select-dropdown').val(reset_text);
2973
- });
2974
- }
2975
- });
2976
-
2977
- // Add active when element has focus
2978
- $(document).on('focus', input_selector, function () {
2979
- $(this).siblings('label, .prefix').addClass('active');
2980
- });
2981
-
2982
- $(document).on('blur', input_selector, function () {
2983
- var $inputElement = $(this);
2984
- var selector = ".prefix";
2985
-
2986
- if ($inputElement.val().length === 0 && $inputElement[0].validity.badInput !== true && $inputElement.attr('placeholder') === undefined) {
2987
- selector += ", label";
2988
- }
2989
-
2990
- $inputElement.siblings(selector).removeClass('active');
2991
-
2992
- validate_field($inputElement);
2993
- });
2994
-
2995
- window.validate_field = function(object) {
2996
- var hasLength = object.attr('data-length') !== undefined;
2997
- var lenAttr = parseInt(object.attr('data-length'));
2998
- var len = object.val().length;
2999
-
3000
- if (object.val().length === 0 && object[0].validity.badInput === false) {
3001
- if (object.hasClass('validate')) {
3002
- object.removeClass('valid');
3003
- object.removeClass('invalid');
3004
- }
3005
- }
3006
- else {
3007
- if (object.hasClass('validate')) {
3008
- // Check for character counter attributes
3009
- if ((object.is(':valid') && hasLength && (len <= lenAttr)) || (object.is(':valid') && !hasLength)) {
3010
- object.removeClass('invalid');
3011
- object.addClass('valid');
3012
- }
3013
- else {
3014
- object.removeClass('valid');
3015
- object.addClass('invalid');
3016
- }
3017
- }
3018
- }
3019
- };
3020
-
3021
- // Radio and Checkbox focus class
3022
- var radio_checkbox = 'input[type=radio], input[type=checkbox]';
3023
- $(document).on('keyup.radio', radio_checkbox, function(e) {
3024
- // TAB, check if tabbing to radio or checkbox.
3025
- if (e.which === 9) {
3026
- $(this).addClass('tabbed');
3027
- var $this = $(this);
3028
- $this.one('blur', function(e) {
3029
-
3030
- $(this).removeClass('tabbed');
3031
- });
3032
- return;
3033
- }
3034
- });
3035
-
3036
- // Textarea Auto Resize
3037
- var hiddenDiv = $('.hiddendiv').first();
3038
- if (!hiddenDiv.length) {
3039
- hiddenDiv = $('<div class="hiddendiv common"></div>');
3040
- $('body').append(hiddenDiv);
3041
- }
3042
- var text_area_selector = '.materialize-textarea';
3043
-
3044
- function textareaAutoResize($textarea) {
3045
- // Set font properties of hiddenDiv
3046
-
3047
- var fontFamily = $textarea.css('font-family');
3048
- var fontSize = $textarea.css('font-size');
3049
- var lineHeight = $textarea.css('line-height');
3050
-
3051
- if (fontSize) { hiddenDiv.css('font-size', fontSize); }
3052
- if (fontFamily) { hiddenDiv.css('font-family', fontFamily); }
3053
- if (lineHeight) { hiddenDiv.css('line-height', lineHeight); }
3054
-
3055
- if ($textarea.attr('wrap') === "off") {
3056
- hiddenDiv.css('overflow-wrap', "normal")
3057
- .css('white-space', "pre");
3058
- }
3059
-
3060
- hiddenDiv.text($textarea.val() + '\n');
3061
- var content = hiddenDiv.html().replace(/\n/g, '<br>');
3062
- hiddenDiv.html(content);
3063
-
3064
-
3065
- // When textarea is hidden, width goes crazy.
3066
- // Approximate with half of window size
3067
-
3068
- if ($textarea.is(':visible')) {
3069
- hiddenDiv.css('width', $textarea.width());
3070
- }
3071
- else {
3072
- hiddenDiv.css('width', $(window).width()/2);
3073
- }
3074
-
3075
- $textarea.css('height', hiddenDiv.height());
3076
- }
3077
-
3078
- $(text_area_selector).each(function () {
3079
- var $textarea = $(this);
3080
- if ($textarea.val().length) {
3081
- textareaAutoResize($textarea);
3082
- }
3083
- });
3084
-
3085
- $('body').on('keyup keydown autoresize', text_area_selector, function () {
3086
- textareaAutoResize($(this));
3087
- });
3088
-
3089
- // File Input Path
3090
- $(document).on('change', '.file-field input[type="file"]', function () {
3091
- var file_field = $(this).closest('.file-field');
3092
- var path_input = file_field.find('input.file-path');
3093
- var files = $(this)[0].files;
3094
- var file_names = [];
3095
- for (var i = 0; i < files.length; i++) {
3096
- file_names.push(files[i].name);
3097
- }
3098
- path_input.val(file_names.join(", "));
3099
- path_input.trigger('change');
3100
- });
3101
-
3102
- /****************
3103
- * Range Input *
3104
- ****************/
3105
-
3106
- var range_type = 'input[type=range]';
3107
- var range_mousedown = false;
3108
- var left;
3109
-
3110
- $(range_type).each(function () {
3111
- var thumb = $('<span class="thumb"><span class="value"></span></span>');
3112
- $(this).after(thumb);
3113
- });
3114
-
3115
- var range_wrapper = '.range-field';
3116
- $(document).on('change', range_type, function(e) {
3117
- var thumb = $(this).siblings('.thumb');
3118
- thumb.find('.value').html($(this).val());
3119
- });
3120
-
3121
- $(document).on('input mousedown touchstart', range_type, function(e) {
3122
- var thumb = $(this).siblings('.thumb');
3123
- var width = $(this).outerWidth();
3124
-
3125
- // If thumb indicator does not exist yet, create it
3126
- if (thumb.length <= 0) {
3127
- thumb = $('<span class="thumb"><span class="value"></span></span>');
3128
- $(this).after(thumb);
3129
- }
3130
-
3131
- // Set indicator value
3132
- thumb.find('.value').html($(this).val());
3133
-
3134
- range_mousedown = true;
3135
- $(this).addClass('active');
3136
-
3137
- if (!thumb.hasClass('active')) {
3138
- thumb.velocity({ height: "30px", width: "30px", top: "-20px", marginLeft: "-15px"}, { duration: 300, easing: 'easeOutExpo' });
3139
- }
3140
-
3141
- if (e.type !== 'input') {
3142
- if(e.pageX === undefined || e.pageX === null){//mobile
3143
- left = e.originalEvent.touches[0].pageX - $(this).offset().left;
3144
- }
3145
- else{ // desktop
3146
- left = e.pageX - $(this).offset().left;
3147
- }
3148
- if (left < 0) {
3149
- left = 0;
3150
- }
3151
- else if (left > width) {
3152
- left = width;
3153
- }
3154
- thumb.addClass('active').css('left', left);
3155
- }
3156
-
3157
- thumb.find('.value').html($(this).val());
3158
- });
3159
-
3160
- $(document).on('mouseup touchend', range_wrapper, function() {
3161
- range_mousedown = false;
3162
- $(this).removeClass('active');
3163
- });
3164
-
3165
- $(document).on('mousemove touchmove', range_wrapper, function(e) {
3166
- var thumb = $(this).children('.thumb');
3167
- var left;
3168
- if (range_mousedown) {
3169
- if (!thumb.hasClass('active')) {
3170
- thumb.velocity({ height: '30px', width: '30px', top: '-20px', marginLeft: '-15px'}, { duration: 300, easing: 'easeOutExpo' });
3171
- }
3172
- if (e.pageX === undefined || e.pageX === null) { //mobile
3173
- left = e.originalEvent.touches[0].pageX - $(this).offset().left;
3174
- }
3175
- else{ // desktop
3176
- left = e.pageX - $(this).offset().left;
3177
- }
3178
- var width = $(this).outerWidth();
3179
-
3180
- if (left < 0) {
3181
- left = 0;
3182
- }
3183
- else if (left > width) {
3184
- left = width;
3185
- }
3186
- thumb.addClass('active').css('left', left);
3187
- thumb.find('.value').html(thumb.siblings(range_type).val());
3188
- }
3189
- });
3190
-
3191
- $(document).on('mouseout touchleave', range_wrapper, function() {
3192
- if (!range_mousedown) {
3193
-
3194
- var thumb = $(this).children('.thumb');
3195
-
3196
- if (thumb.hasClass('active')) {
3197
- thumb.velocity({ height: '0', width: '0', top: '10px', marginLeft: '-6px'}, { duration: 100 });
3198
- }
3199
- thumb.removeClass('active');
3200
- }
3201
- });
3202
-
3203
- /**************************
3204
- * Auto complete plugin *
3205
- *************************/
3206
- $.fn.autocomplete = function (options) {
3207
- // Defaults
3208
- var defaults = {
3209
- data: {},
3210
- limit: Infinity,
3211
- onAutocomplete: null
3212
- };
3213
-
3214
- options = $.extend(defaults, options);
3215
-
3216
- return this.each(function() {
3217
- var $input = $(this);
3218
- var data = options.data,
3219
- count = 0,
3220
- activeIndex = 0,
3221
- oldVal,
3222
- $inputDiv = $input.closest('.input-field'); // Div to append on
3223
-
3224
- // Check if data isn't empty
3225
- if (!$.isEmptyObject(data)) {
3226
- var $autocomplete = $('<ul class="autocomplete-content dropdown-content"></ul>');
3227
- var $oldAutocomplete;
3228
-
3229
- // Append autocomplete element.
3230
- // Prevent double structure init.
3231
- if ($inputDiv.length) {
3232
- $oldAutocomplete = $inputDiv.children('.autocomplete-content.dropdown-content').first();
3233
- if (!$oldAutocomplete.length) {
3234
- $inputDiv.append($autocomplete); // Set ul in body
3235
- }
3236
- } else {
3237
- $oldAutocomplete = $input.next('.autocomplete-content.dropdown-content');
3238
- if (!$oldAutocomplete.length) {
3239
- $input.after($autocomplete);
3240
- }
3241
- }
3242
- if ($oldAutocomplete.length) {
3243
- $autocomplete = $oldAutocomplete;
3244
- }
3245
-
3246
- // Highlight partial match.
3247
- var highlight = function(string, $el) {
3248
- var img = $el.find('img');
3249
- var matchStart = $el.text().toLowerCase().indexOf("" + string.toLowerCase() + ""),
3250
- matchEnd = matchStart + string.length - 1,
3251
- beforeMatch = $el.text().slice(0, matchStart),
3252
- matchText = $el.text().slice(matchStart, matchEnd + 1),
3253
- afterMatch = $el.text().slice(matchEnd + 1);
3254
- $el.html("<span>" + beforeMatch + "<span class='highlight'>" + matchText + "</span>" + afterMatch + "</span>");
3255
- if (img.length) {
3256
- $el.prepend(img);
3257
- }
3258
- };
3259
-
3260
- // Reset current element position
3261
- var resetCurrentElement = function() {
3262
- activeIndex = 0;
3263
- $autocomplete.find('.active').removeClass('active');
3264
- }
3265
-
3266
- // Perform search
3267
- $input.off('keyup.autocomplete').on('keyup.autocomplete', function (e) {
3268
- // Reset count.
3269
- count = 0;
3270
-
3271
- // Don't capture enter or arrow key usage.
3272
- if (e.which === 13 ||
3273
- e.which === 38 ||
3274
- e.which === 40) {
3275
- return;
3276
- }
3277
-
3278
- var val = $input.val().toLowerCase();
3279
-
3280
- // Check if the input isn't empty
3281
- if (oldVal !== val) {
3282
- $autocomplete.empty();
3283
- resetCurrentElement();
3284
-
3285
- if (val !== '') {
3286
- for(var key in data) {
3287
- if (data.hasOwnProperty(key) &&
3288
- key.toLowerCase().indexOf(val) !== -1 &&
3289
- key.toLowerCase() !== val) {
3290
- // Break if past limit
3291
- if (count >= options.limit) {
3292
- break;
3293
- }
3294
-
3295
- var autocompleteOption = $('<li></li>');
3296
- if (!!data[key]) {
3297
- autocompleteOption.append('<img src="'+ data[key] +'" class="right circle"><span>'+ key +'</span>');
3298
- } else {
3299
- autocompleteOption.append('<span>'+ key +'</span>');
3300
- }
3301
-
3302
- $autocomplete.append(autocompleteOption);
3303
- highlight(val, autocompleteOption);
3304
- count++;
3305
- }
3306
- }
3307
- }
3308
- }
3309
-
3310
- // Update oldVal
3311
- oldVal = val;
3312
- });
3313
-
3314
- $input.off('keydown.autocomplete').on('keydown.autocomplete', function (e) {
3315
- // Arrow keys and enter key usage
3316
- var keyCode = e.which,
3317
- liElement,
3318
- numItems = $autocomplete.children('li').length,
3319
- $active = $autocomplete.children('.active').first();
3320
-
3321
- // select element on Enter
3322
- if (keyCode === 13) {
3323
- liElement = $autocomplete.children('li').eq(activeIndex);
3324
- if (liElement.length) {
3325
- liElement.click();
3326
- e.preventDefault();
3327
- }
3328
- return;
3329
- }
3330
-
3331
- // Capture up and down key
3332
- if ( keyCode === 38 || keyCode === 40 ) {
3333
- e.preventDefault();
3334
-
3335
- if (keyCode === 38 &&
3336
- activeIndex > 0) {
3337
- activeIndex--;
3338
- }
3339
-
3340
- if (keyCode === 40 &&
3341
- activeIndex < (numItems - 1) &&
3342
- $active.length) {
3343
- activeIndex++;
3344
- }
3345
-
3346
- $active.removeClass('active');
3347
- $autocomplete.children('li').eq(activeIndex).addClass('active');
3348
- }
3349
- });
3350
-
3351
- // Set input value
3352
- $autocomplete.on('click', 'li', function () {
3353
- var text = $(this).text().trim();
3354
- $input.val(text);
3355
- $input.trigger('change');
3356
- $autocomplete.empty();
3357
- resetCurrentElement();
3358
-
3359
- // Handle onAutocomplete callback.
3360
- if (typeof(options.onAutocomplete) === "function") {
3361
- options.onAutocomplete.call(this, text);
3362
- }
3363
- });
3364
- }
3365
- });
3366
- };
3367
-
3368
- }); // End of $(document).ready
3369
-
3370
- /*******************
3371
- * Select Plugin *
3372
- ******************/
3373
- $.fn.material_select = function (callback) {
3374
- $(this).each(function(){
3375
- var $select = $(this);
3376
-
3377
- if ($select.hasClass('browser-default')) {
3378
- return; // Continue to next (return false breaks out of entire loop)
3379
- }
3380
-
3381
- var multiple = $select.attr('multiple') ? true : false,
3382
- lastID = $select.data('select-id'); // Tear down structure if Select needs to be rebuilt
3383
-
3384
- if (lastID) {
3385
- $select.parent().find('span.caret').remove();
3386
- $select.parent().find('input').remove();
3387
-
3388
- $select.unwrap();
3389
- $('ul#select-options-'+lastID).remove();
3390
- }
3391
-
3392
- // If destroying the select, remove the selelct-id and reset it to it's uninitialized state.
3393
- if(callback === 'destroy') {
3394
- $select.data('select-id', null).removeClass('initialized');
3395
- return;
3396
- }
3397
-
3398
- var uniqueID = Materialize.guid();
3399
- $select.data('select-id', uniqueID);
3400
- var wrapper = $('<div class="select-wrapper"></div>');
3401
- wrapper.addClass($select.attr('class'));
3402
- var options = $('<ul id="select-options-' + uniqueID +'" class="dropdown-content select-dropdown ' + (multiple ? 'multiple-select-dropdown' : '') + '"></ul>'),
3403
- selectChildren = $select.children('option, optgroup'),
3404
- valuesSelected = [],
3405
- optionsHover = false;
3406
-
3407
- var label = $select.find('option:selected').html() || $select.find('option:first').html() || "";
3408
-
3409
- // Function that renders and appends the option taking into
3410
- // account type and possible image icon.
3411
- var appendOptionWithIcon = function(select, option, type) {
3412
- // Add disabled attr if disabled
3413
- var disabledClass = (option.is(':disabled')) ? 'disabled ' : '';
3414
- var optgroupClass = (type === 'optgroup-option') ? 'optgroup-option ' : '';
3415
-
3416
- // add icons
3417
- var icon_url = option.data('icon');
3418
- var classes = option.attr('class');
3419
- if (!!icon_url) {
3420
- var classString = '';
3421
- if (!!classes) classString = ' class="' + classes + '"';
3422
-
3423
- // Check for multiple type.
3424
- if (type === 'multiple') {
3425
- options.append($('<li class="' + disabledClass + '"><img alt="" src="' + icon_url + '"' + classString + '><span><input type="checkbox"' + disabledClass + '/><label></label>' + option.html() + '</span></li>'));
3426
- } else {
3427
- options.append($('<li class="' + disabledClass + optgroupClass + '"><img alt="" src="' + icon_url + '"' + classString + '><span>' + option.html() + '</span></li>'));
3428
- }
3429
- return true;
3430
- }
3431
-
3432
- // Check for multiple type.
3433
- if (type === 'multiple') {
3434
- options.append($('<li class="' + disabledClass + '"><span><input type="checkbox"' + disabledClass + '/><label></label>' + option.html() + '</span></li>'));
3435
- } else {
3436
- options.append($('<li class="' + disabledClass + optgroupClass + '"><span>' + option.html() + '</span></li>'));
3437
- }
3438
- };
3439
-
3440
- /* Create dropdown structure. */
3441
- if (selectChildren.length) {
3442
- selectChildren.each(function() {
3443
- if ($(this).is('option')) {
3444
- // Direct descendant option.
3445
- if (multiple) {
3446
- appendOptionWithIcon($select, $(this), 'multiple');
3447
-
3448
- } else {
3449
- appendOptionWithIcon($select, $(this));
3450
- }
3451
- } else if ($(this).is('optgroup')) {
3452
- // Optgroup.
3453
- var selectOptions = $(this).children('option');
3454
- options.append($('<li class="optgroup"><span>' + $(this).attr('label') + '</span></li>'));
3455
-
3456
- selectOptions.each(function() {
3457
- appendOptionWithIcon($select, $(this), 'optgroup-option');
3458
- });
3459
- }
3460
- });
3461
- }
3462
-
3463
- options.find('li:not(.optgroup)').each(function (i) {
3464
- $(this).click(function (e) {
3465
- // Check if option element is disabled
3466
- if (!$(this).hasClass('disabled') && !$(this).hasClass('optgroup')) {
3467
- var selected = true;
3468
-
3469
- if (multiple) {
3470
- $('input[type="checkbox"]', this).prop('checked', function(i, v) { return !v; });
3471
- selected = toggleEntryFromArray(valuesSelected, $(this).index(), $select);
3472
- $newSelect.trigger('focus');
3473
- } else {
3474
- options.find('li').removeClass('active');
3475
- $(this).toggleClass('active');
3476
- $newSelect.val($(this).text());
3477
- }
3478
-
3479
- activateOption(options, $(this));
3480
- $select.find('option').eq(i).prop('selected', selected);
3481
- // Trigger onchange() event
3482
- $select.trigger('change');
3483
- if (typeof callback !== 'undefined') callback();
3484
- }
3485
-
3486
- e.stopPropagation();
3487
- });
3488
- });
3489
-
3490
- // Wrap Elements
3491
- $select.wrap(wrapper);
3492
- // Add Select Display Element
3493
- var dropdownIcon = $('<span class="caret">&#9660;</span>');
3494
- if ($select.is(':disabled'))
3495
- dropdownIcon.addClass('disabled');
3496
-
3497
- // escape double quotes
3498
- var sanitizedLabelHtml = label.replace(/"/g, '&quot;');
3499
-
3500
- var $newSelect = $('<input type="text" class="select-dropdown" readonly="true" ' + (($select.is(':disabled')) ? 'disabled' : '') + ' data-activates="select-options-' + uniqueID +'" value="'+ sanitizedLabelHtml +'"/>');
3501
- $select.before($newSelect);
3502
- $newSelect.before(dropdownIcon);
3503
-
3504
- $newSelect.after(options);
3505
- // Check if section element is disabled
3506
- if (!$select.is(':disabled')) {
3507
- $newSelect.dropdown({'hover': false, 'closeOnClick': false});
3508
- }
3509
-
3510
- // Copy tabindex
3511
- if ($select.attr('tabindex')) {
3512
- $($newSelect[0]).attr('tabindex', $select.attr('tabindex'));
3513
- }
3514
-
3515
- $select.addClass('initialized');
3516
-
3517
- $newSelect.on({
3518
- 'focus': function (){
3519
- if ($('ul.select-dropdown').not(options[0]).is(':visible')) {
3520
- $('input.select-dropdown').trigger('close');
3521
- }
3522
- if (!options.is(':visible')) {
3523
- $(this).trigger('open', ['focus']);
3524
- var label = $(this).val();
3525
- if (multiple && label.indexOf(',') >= 0) {
3526
- label = label.split(',')[0];
3527
- }
3528
-
3529
- var selectedOption = options.find('li').filter(function() {
3530
- return $(this).text().toLowerCase() === label.toLowerCase();
3531
- })[0];
3532
- activateOption(options, selectedOption, true);
3533
- }
3534
- },
3535
- 'click': function (e){
3536
- e.stopPropagation();
3537
- }
3538
- });
3539
-
3540
- $newSelect.on('blur', function() {
3541
- if (!multiple) {
3542
- $(this).trigger('close');
3543
- }
3544
- options.find('li.selected').removeClass('selected');
3545
- });
3546
-
3547
- options.hover(function() {
3548
- optionsHover = true;
3549
- }, function () {
3550
- optionsHover = false;
3551
- });
3552
-
3553
- $(window).on({
3554
- 'click': function () {
3555
- multiple && (optionsHover || $newSelect.trigger('close'));
3556
- }
3557
- });
3558
-
3559
- // Add initial multiple selections.
3560
- if (multiple) {
3561
- $select.find("option:selected:not(:disabled)").each(function () {
3562
- var index = $(this).index();
3563
-
3564
- toggleEntryFromArray(valuesSelected, index, $select);
3565
- options.find("li").eq(index).find(":checkbox").prop("checked", true);
3566
- });
3567
- }
3568
-
3569
- /**
3570
- * Make option as selected and scroll to selected position
3571
- * @param {jQuery} collection Select options jQuery element
3572
- * @param {Element} newOption element of the new option
3573
- * @param {Boolean} firstActivation If on first activation of select
3574
- */
3575
- var activateOption = function(collection, newOption, firstActivation) {
3576
- if (newOption) {
3577
- collection.find('li.selected').removeClass('selected');
3578
- var option = $(newOption);
3579
- option.addClass('selected');
3580
- if (!multiple || !!firstActivation) {
3581
- options.scrollTo(option);
3582
- }
3583
- }
3584
- };
3585
-
3586
- // Allow user to search by typing
3587
- // this array is cleared after 1 second
3588
- var filterQuery = [],
3589
- onKeyDown = function(e){
3590
- // TAB - switch to another input
3591
- if(e.which == 9){
3592
- $newSelect.trigger('close');
3593
- return;
3594
- }
3595
-
3596
- // ARROW DOWN WHEN SELECT IS CLOSED - open select options
3597
- if(e.which == 40 && !options.is(':visible')){
3598
- $newSelect.trigger('open');
3599
- return;
3600
- }
3601
-
3602
- // ENTER WHEN SELECT IS CLOSED - submit form
3603
- if(e.which == 13 && !options.is(':visible')){
3604
- return;
3605
- }
3606
-
3607
- e.preventDefault();
3608
-
3609
- // CASE WHEN USER TYPE LETTERS
3610
- var letter = String.fromCharCode(e.which).toLowerCase(),
3611
- nonLetters = [9,13,27,38,40];
3612
- if (letter && (nonLetters.indexOf(e.which) === -1)) {
3613
- filterQuery.push(letter);
3614
-
3615
- var string = filterQuery.join(''),
3616
- newOption = options.find('li').filter(function() {
3617
- return $(this).text().toLowerCase().indexOf(string) === 0;
3618
- })[0];
3619
-
3620
- if (newOption) {
3621
- activateOption(options, newOption);
3622
- }
3623
- }
3624
-
3625
- // ENTER - select option and close when select options are opened
3626
- if (e.which == 13) {
3627
- var activeOption = options.find('li.selected:not(.disabled)')[0];
3628
- if(activeOption){
3629
- $(activeOption).trigger('click');
3630
- if (!multiple) {
3631
- $newSelect.trigger('close');
3632
- }
3633
- }
3634
- }
3635
-
3636
- // ARROW DOWN - move to next not disabled option
3637
- if (e.which == 40) {
3638
- if (options.find('li.selected').length) {
3639
- newOption = options.find('li.selected').next('li:not(.disabled)')[0];
3640
- } else {
3641
- newOption = options.find('li:not(.disabled)')[0];
3642
- }
3643
- activateOption(options, newOption);
3644
- }
3645
-
3646
- // ESC - close options
3647
- if (e.which == 27) {
3648
- $newSelect.trigger('close');
3649
- }
3650
-
3651
- // ARROW UP - move to previous not disabled option
3652
- if (e.which == 38) {
3653
- newOption = options.find('li.selected').prev('li:not(.disabled)')[0];
3654
- if(newOption)
3655
- activateOption(options, newOption);
3656
- }
3657
-
3658
- // Automaticaly clean filter query so user can search again by starting letters
3659
- setTimeout(function(){ filterQuery = []; }, 1000);
3660
- };
3661
-
3662
- $newSelect.on('keydown', onKeyDown);
3663
- });
3664
-
3665
- function toggleEntryFromArray(entriesArray, entryIndex, select) {
3666
- var index = entriesArray.indexOf(entryIndex),
3667
- notAdded = index === -1;
3668
-
3669
- if (notAdded) {
3670
- entriesArray.push(entryIndex);
3671
- } else {
3672
- entriesArray.splice(index, 1);
3673
- }
3674
-
3675
- select.siblings('ul.dropdown-content').find('li').eq(entryIndex).toggleClass('active');
3676
-
3677
- // use notAdded instead of true (to detect if the option is selected or not)
3678
- select.find('option').eq(entryIndex).prop('selected', notAdded);
3679
- setValueToInput(entriesArray, select);
3680
-
3681
- return notAdded;
3682
- }
3683
-
3684
- function setValueToInput(entriesArray, select) {
3685
- var value = '';
3686
-
3687
- for (var i = 0, count = entriesArray.length; i < count; i++) {
3688
- var text = select.find('option').eq(entriesArray[i]).text();
3689
-
3690
- i === 0 ? value += text : value += ', ' + text;
3691
- }
3692
-
3693
- if (value === '') {
3694
- value = select.find('option:disabled').eq(0).text();
3695
- }
3696
-
3697
- select.siblings('input.select-dropdown').val(value);
3698
- }
3699
- };
3700
-
3701
- }( jQuery ));
3702
- ;(function ($) {
3703
-
3704
- var methods = {
3705
-
3706
- init : function(options) {
3707
- var defaults = {
3708
- indicators: true,
3709
- height: 400,
3710
- transition: 500,
3711
- interval: 6000
3712
- };
3713
- options = $.extend(defaults, options);
3714
-
3715
- return this.each(function() {
3716
-
3717
- // For each slider, we want to keep track of
3718
- // which slide is active and its associated content
3719
- var $this = $(this);
3720
- var $slider = $this.find('ul.slides').first();
3721
- var $slides = $slider.find('> li');
3722
- var $active_index = $slider.find('.active').index();
3723
- var $active, $indicators, $interval;
3724
- if ($active_index != -1) { $active = $slides.eq($active_index); }
3725
-
3726
- // Transitions the caption depending on alignment
3727
- function captionTransition(caption, duration) {
3728
- if (caption.hasClass("center-align")) {
3729
- caption.velocity({opacity: 0, translateY: -100}, {duration: duration, queue: false});
3730
- }
3731
- else if (caption.hasClass("right-align")) {
3732
- caption.velocity({opacity: 0, translateX: 100}, {duration: duration, queue: false});
3733
- }
3734
- else if (caption.hasClass("left-align")) {
3735
- caption.velocity({opacity: 0, translateX: -100}, {duration: duration, queue: false});
3736
- }
3737
- }
3738
-
3739
- // This function will transition the slide to any index of the next slide
3740
- function moveToSlide(index) {
3741
- // Wrap around indices.
3742
- if (index >= $slides.length) index = 0;
3743
- else if (index < 0) index = $slides.length -1;
3744
-
3745
- $active_index = $slider.find('.active').index();
3746
-
3747
- // Only do if index changes
3748
- if ($active_index != index) {
3749
- $active = $slides.eq($active_index);
3750
- $caption = $active.find('.caption');
3751
-
3752
- $active.removeClass('active');
3753
- $active.velocity({opacity: 0}, {duration: options.transition, queue: false, easing: 'easeOutQuad',
3754
- complete: function() {
3755
- $slides.not('.active').velocity({opacity: 0, translateX: 0, translateY: 0}, {duration: 0, queue: false});
3756
- } });
3757
- captionTransition($caption, options.transition);
3758
-
3759
-
3760
- // Update indicators
3761
- if (options.indicators) {
3762
- $indicators.eq($active_index).removeClass('active');
3763
- }
3764
-
3765
- $slides.eq(index).velocity({opacity: 1}, {duration: options.transition, queue: false, easing: 'easeOutQuad'});
3766
- $slides.eq(index).find('.caption').velocity({opacity: 1, translateX: 0, translateY: 0}, {duration: options.transition, delay: options.transition, queue: false, easing: 'easeOutQuad'});
3767
- $slides.eq(index).addClass('active');
3768
-
3769
-
3770
- // Update indicators
3771
- if (options.indicators) {
3772
- $indicators.eq(index).addClass('active');
3773
- }
3774
- }
3775
- }
3776
-
3777
- // Set height of slider
3778
- // If fullscreen, do nothing
3779
- if (!$this.hasClass('fullscreen')) {
3780
- if (options.indicators) {
3781
- // Add height if indicators are present
3782
- $this.height(options.height + 40);
3783
- }
3784
- else {
3785
- $this.height(options.height);
3786
- }
3787
- $slider.height(options.height);
3788
- }
3789
-
3790
-
3791
- // Set initial positions of captions
3792
- $slides.find('.caption').each(function () {
3793
- captionTransition($(this), 0);
3794
- });
3795
-
3796
- // Move img src into background-image
3797
- $slides.find('img').each(function () {
3798
- var placeholderBase64 = 'data:image/gif;base64,R0lGODlhAQABAIABAP///wAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==';
3799
- if ($(this).attr('src') !== placeholderBase64) {
3800
- $(this).css('background-image', 'url(' + $(this).attr('src') + ')' );
3801
- $(this).attr('src', placeholderBase64);
3802
- }
3803
- });
3804
-
3805
- // dynamically add indicators
3806
- if (options.indicators) {
3807
- $indicators = $('<ul class="indicators"></ul>');
3808
- $slides.each(function( index ) {
3809
- var $indicator = $('<li class="indicator-item"></li>');
3810
-
3811
- // Handle clicks on indicators
3812
- $indicator.click(function () {
3813
- var $parent = $slider.parent();
3814
- var curr_index = $parent.find($(this)).index();
3815
- moveToSlide(curr_index);
3816
-
3817
- // reset interval
3818
- clearInterval($interval);
3819
- $interval = setInterval(
3820
- function(){
3821
- $active_index = $slider.find('.active').index();
3822
- if ($slides.length == $active_index + 1) $active_index = 0; // loop to start
3823
- else $active_index += 1;
3824
-
3825
- moveToSlide($active_index);
3826
-
3827
- }, options.transition + options.interval
3828
- );
3829
- });
3830
- $indicators.append($indicator);
3831
- });
3832
- $this.append($indicators);
3833
- $indicators = $this.find('ul.indicators').find('li.indicator-item');
3834
- }
3835
-
3836
- if ($active) {
3837
- $active.show();
3838
- }
3839
- else {
3840
- $slides.first().addClass('active').velocity({opacity: 1}, {duration: options.transition, queue: false, easing: 'easeOutQuad'});
3841
-
3842
- $active_index = 0;
3843
- $active = $slides.eq($active_index);
3844
-
3845
- // Update indicators
3846
- if (options.indicators) {
3847
- $indicators.eq($active_index).addClass('active');
3848
- }
3849
- }
3850
-
3851
- // Adjust height to current slide
3852
- $active.find('img').each(function() {
3853
- $active.find('.caption').velocity({opacity: 1, translateX: 0, translateY: 0}, {duration: options.transition, queue: false, easing: 'easeOutQuad'});
3854
- });
3855
-
3856
- // auto scroll
3857
- $interval = setInterval(
3858
- function(){
3859
- $active_index = $slider.find('.active').index();
3860
- moveToSlide($active_index + 1);
3861
-
3862
- }, options.transition + options.interval
3863
- );
3864
-
3865
-
3866
- // HammerJS, Swipe navigation
3867
-
3868
- // Touch Event
3869
- var panning = false;
3870
- var swipeLeft = false;
3871
- var swipeRight = false;
3872
-
3873
- $this.hammer({
3874
- prevent_default: false
3875
- }).bind('pan', function(e) {
3876
- if (e.gesture.pointerType === "touch") {
3877
-
3878
- // reset interval
3879
- clearInterval($interval);
3880
-
3881
- var direction = e.gesture.direction;
3882
- var x = e.gesture.deltaX;
3883
- var velocityX = e.gesture.velocityX;
3884
- var velocityY = e.gesture.velocityY;
3885
-
3886
- $curr_slide = $slider.find('.active');
3887
- if (Math.abs(velocityX) > Math.abs(velocityY)) {
3888
- $curr_slide.velocity({ translateX: x
3889
- }, {duration: 50, queue: false, easing: 'easeOutQuad'});
3890
- }
3891
-
3892
- // Swipe Left
3893
- if (direction === 4 && (x > ($this.innerWidth() / 2) || velocityX < -0.65)) {
3894
- swipeRight = true;
3895
- }
3896
- // Swipe Right
3897
- else if (direction === 2 && (x < (-1 * $this.innerWidth() / 2) || velocityX > 0.65)) {
3898
- swipeLeft = true;
3899
- }
3900
-
3901
- // Make Slide Behind active slide visible
3902
- var next_slide;
3903
- if (swipeLeft) {
3904
- next_slide = $curr_slide.next();
3905
- if (next_slide.length === 0) {
3906
- next_slide = $slides.first();
3907
- }
3908
- next_slide.velocity({ opacity: 1
3909
- }, {duration: 300, queue: false, easing: 'easeOutQuad'});
3910
- }
3911
- if (swipeRight) {
3912
- next_slide = $curr_slide.prev();
3913
- if (next_slide.length === 0) {
3914
- next_slide = $slides.last();
3915
- }
3916
- next_slide.velocity({ opacity: 1
3917
- }, {duration: 300, queue: false, easing: 'easeOutQuad'});
3918
- }
3919
-
3920
-
3921
- }
3922
-
3923
- }).bind('panend', function(e) {
3924
- if (e.gesture.pointerType === "touch") {
3925
-
3926
- $curr_slide = $slider.find('.active');
3927
- panning = false;
3928
- curr_index = $slider.find('.active').index();
3929
-
3930
- if (!swipeRight && !swipeLeft || $slides.length <=1) {
3931
- // Return to original spot
3932
- $curr_slide.velocity({ translateX: 0
3933
- }, {duration: 300, queue: false, easing: 'easeOutQuad'});
3934
- }
3935
- else if (swipeLeft) {
3936
- moveToSlide(curr_index + 1);
3937
- $curr_slide.velocity({translateX: -1 * $this.innerWidth() }, {duration: 300, queue: false, easing: 'easeOutQuad',
3938
- complete: function() {
3939
- $curr_slide.velocity({opacity: 0, translateX: 0}, {duration: 0, queue: false});
3940
- } });
3941
- }
3942
- else if (swipeRight) {
3943
- moveToSlide(curr_index - 1);
3944
- $curr_slide.velocity({translateX: $this.innerWidth() }, {duration: 300, queue: false, easing: 'easeOutQuad',
3945
- complete: function() {
3946
- $curr_slide.velocity({opacity: 0, translateX: 0}, {duration: 0, queue: false});
3947
- } });
3948
- }
3949
- swipeLeft = false;
3950
- swipeRight = false;
3951
-
3952
- // Restart interval
3953
- clearInterval($interval);
3954
- $interval = setInterval(
3955
- function(){
3956
- $active_index = $slider.find('.active').index();
3957
- if ($slides.length == $active_index + 1) $active_index = 0; // loop to start
3958
- else $active_index += 1;
3959
-
3960
- moveToSlide($active_index);
3961
-
3962
- }, options.transition + options.interval
3963
- );
3964
- }
3965
- });
3966
-
3967
- $this.on('sliderPause', function() {
3968
- clearInterval($interval);
3969
- });
3970
-
3971
- $this.on('sliderStart', function() {
3972
- clearInterval($interval);
3973
- $interval = setInterval(
3974
- function(){
3975
- $active_index = $slider.find('.active').index();
3976
- if ($slides.length == $active_index + 1) $active_index = 0; // loop to start
3977
- else $active_index += 1;
3978
-
3979
- moveToSlide($active_index);
3980
-
3981
- }, options.transition + options.interval
3982
- );
3983
- });
3984
-
3985
- $this.on('sliderNext', function() {
3986
- $active_index = $slider.find('.active').index();
3987
- moveToSlide($active_index + 1);
3988
- });
3989
-
3990
- $this.on('sliderPrev', function() {
3991
- $active_index = $slider.find('.active').index();
3992
- moveToSlide($active_index - 1);
3993
- });
3994
-
3995
- });
3996
-
3997
-
3998
-
3999
- },
4000
- pause : function() {
4001
- $(this).trigger('sliderPause');
4002
- },
4003
- start : function() {
4004
- $(this).trigger('sliderStart');
4005
- },
4006
- next : function() {
4007
- $(this).trigger('sliderNext');
4008
- },
4009
- prev : function() {
4010
- $(this).trigger('sliderPrev');
4011
- }
4012
- };
4013
-
4014
-
4015
- $.fn.slider = function(methodOrOptions) {
4016
- if ( methods[methodOrOptions] ) {
4017
- return methods[ methodOrOptions ].apply( this, Array.prototype.slice.call( arguments, 1 ));
4018
- } else if ( typeof methodOrOptions === 'object' || ! methodOrOptions ) {
4019
- // Default to "init"
4020
- return methods.init.apply( this, arguments );
4021
- } else {
4022
- $.error( 'Method ' + methodOrOptions + ' does not exist on jQuery.tooltip' );
4023
- }
4024
- }; // Plugin end
4025
- }( jQuery ));
4026
- ;(function ($) {
4027
- $(document).ready(function() {
4028
-
4029
- $(document).on('click.card', '.card', function (e) {
4030
- if ($(this).find('> .card-reveal').length) {
4031
- if ($(e.target).is($('.card-reveal .card-title')) || $(e.target).is($('.card-reveal .card-title i'))) {
4032
- // Make Reveal animate down and display none
4033
- $(this).find('.card-reveal').velocity(
4034
- {translateY: 0}, {
4035
- duration: 225,
4036
- queue: false,
4037
- easing: 'easeInOutQuad',
4038
- complete: function() { $(this).css({ display: 'none'}); }
4039
- }
4040
- );
4041
- }
4042
- else if ($(e.target).is($('.card .activator')) ||
4043
- $(e.target).is($('.card .activator i')) ) {
4044
- $(e.target).closest('.card').css('overflow', 'hidden');
4045
- $(this).find('.card-reveal').css({ display: 'block'}).velocity("stop", false).velocity({translateY: '-100%'}, {duration: 300, queue: false, easing: 'easeInOutQuad'});
4046
- }
4047
- }
4048
- });
4049
-
4050
- });
4051
- }( jQuery ));;(function ($) {
4052
- var materialChipsDefaults = {
4053
- data: [],
4054
- placeholder: '',
4055
- secondaryPlaceholder: '',
4056
- autocompleteData: {},
4057
- autocompleteLimit: Infinity,
4058
- };
4059
-
4060
- $(document).ready(function() {
4061
- // Handle removal of static chips.
4062
- $(document).on('click', '.chip .close', function(e){
4063
- var $chips = $(this).closest('.chips');
4064
- if ($chips.attr('data-initialized')) {
4065
- return;
4066
- }
4067
- $(this).closest('.chip').remove();
4068
- });
4069
- });
4070
-
4071
- $.fn.material_chip = function (options) {
4072
- var self = this;
4073
- this.$el = $(this);
4074
- this.$document = $(document);
4075
- this.SELS = {
4076
- CHIPS: '.chips',
4077
- CHIP: '.chip',
4078
- INPUT: 'input',
4079
- DELETE: '.material-icons',
4080
- SELECTED_CHIP: '.selected',
4081
- };
4082
-
4083
- if ('data' === options) {
4084
- return this.$el.data('chips');
4085
- }
4086
-
4087
- var curr_options = $.extend({}, materialChipsDefaults, options);
4088
- self.hasAutocomplete = !$.isEmptyObject(curr_options.autocompleteData);
4089
-
4090
- // Initialize
4091
- this.init = function() {
4092
- var i = 0;
4093
- var chips;
4094
- self.$el.each(function(){
4095
- var $chips = $(this);
4096
- var chipId = Materialize.guid();
4097
- self.chipId = chipId;
4098
-
4099
- if (!curr_options.data || !(curr_options.data instanceof Array)) {
4100
- curr_options.data = [];
4101
- }
4102
- $chips.data('chips', curr_options.data);
4103
- $chips.attr('data-index', i);
4104
- $chips.attr('data-initialized', true);
4105
-
4106
- if (!$chips.hasClass(self.SELS.CHIPS)) {
4107
- $chips.addClass('chips');
4108
- }
4109
-
4110
- self.chips($chips, chipId);
4111
- i++;
4112
- });
4113
- };
4114
-
4115
- this.handleEvents = function() {
4116
- var SELS = self.SELS;
4117
-
4118
- self.$document.off('click.chips-focus', SELS.CHIPS).on('click.chips-focus', SELS.CHIPS, function(e){
4119
- $(e.target).find(SELS.INPUT).focus();
4120
- });
4121
-
4122
- self.$document.off('click.chips-select', SELS.CHIP).on('click.chips-select', SELS.CHIP, function(e){
4123
- var $chip = $(e.target);
4124
- if ($chip.length) {
4125
- var wasSelected = $chip.hasClass('selected');
4126
- var $chips = $chip.closest(SELS.CHIPS);
4127
- $(SELS.CHIP).removeClass('selected');
4128
-
4129
- if (!wasSelected) {
4130
- self.selectChip($chip.index(), $chips);
4131
- }
4132
- }
4133
- });
4134
-
4135
- self.$document.off('keydown.chips').on('keydown.chips', function(e){
4136
- if ($(e.target).is('input, textarea')) {
4137
- return;
4138
- }
4139
-
4140
- // delete
4141
- var $chip = self.$document.find(SELS.CHIP + SELS.SELECTED_CHIP);
4142
- var $chips = $chip.closest(SELS.CHIPS);
4143
- var length = $chip.siblings(SELS.CHIP).length;
4144
- var index;
4145
-
4146
- if (!$chip.length) {
4147
- return;
4148
- }
4149
-
4150
- if (e.which === 8 || e.which === 46) {
4151
- e.preventDefault();
4152
-
4153
- index = $chip.index();
4154
- self.deleteChip(index, $chips);
4155
-
4156
- var selectIndex = null;
4157
- if ((index + 1) < length) {
4158
- selectIndex = index;
4159
- } else if (index === length || (index + 1) === length) {
4160
- selectIndex = length - 1;
4161
- }
4162
-
4163
- if (selectIndex < 0) selectIndex = null;
4164
-
4165
- if (null !== selectIndex) {
4166
- self.selectChip(selectIndex, $chips);
4167
- }
4168
- if (!length) $chips.find('input').focus();
4169
-
4170
- // left
4171
- } else if (e.which === 37) {
4172
- index = $chip.index() - 1;
4173
- if (index < 0) {
4174
- return;
4175
- }
4176
- $(SELS.CHIP).removeClass('selected');
4177
- self.selectChip(index, $chips);
4178
-
4179
- // right
4180
- } else if (e.which === 39) {
4181
- index = $chip.index() + 1;
4182
- $(SELS.CHIP).removeClass('selected');
4183
- if (index > length) {
4184
- $chips.find('input').focus();
4185
- return;
4186
- }
4187
- self.selectChip(index, $chips);
4188
- }
4189
- });
4190
-
4191
- self.$document.off('focusin.chips', SELS.CHIPS + ' ' + SELS.INPUT).on('focusin.chips', SELS.CHIPS + ' ' + SELS.INPUT, function(e){
4192
- var $currChips = $(e.target).closest(SELS.CHIPS);
4193
- $currChips.addClass('focus');
4194
- $currChips.siblings('label, .prefix').addClass('active');
4195
- $(SELS.CHIP).removeClass('selected');
4196
- });
4197
-
4198
- self.$document.off('focusout.chips', SELS.CHIPS + ' ' + SELS.INPUT).on('focusout.chips', SELS.CHIPS + ' ' + SELS.INPUT, function(e){
4199
- var $currChips = $(e.target).closest(SELS.CHIPS);
4200
- $currChips.removeClass('focus');
4201
-
4202
- // Remove active if empty
4203
- if (!$currChips.data('chips').length) {
4204
- $currChips.siblings('label').removeClass('active');
4205
- }
4206
- $currChips.siblings('.prefix').removeClass('active');
4207
- });
4208
-
4209
- self.$document.off('keydown.chips-add', SELS.CHIPS + ' ' + SELS.INPUT).on('keydown.chips-add', SELS.CHIPS + ' ' + SELS.INPUT, function(e){
4210
- var $target = $(e.target);
4211
- var $chips = $target.closest(SELS.CHIPS);
4212
- var chipsLength = $chips.children(SELS.CHIP).length;
4213
-
4214
- // enter
4215
- if (13 === e.which) {
4216
- // Override enter if autocompleting.
4217
- if (self.hasAutocomplete &&
4218
- $chips.find('.autocomplete-content.dropdown-content').length &&
4219
- $chips.find('.autocomplete-content.dropdown-content').children().length) {
4220
- return;
4221
- }
4222
-
4223
- e.preventDefault();
4224
- self.addChip({tag: $target.val()}, $chips);
4225
- $target.val('');
4226
- return;
4227
- }
4228
-
4229
- // delete or left
4230
- if ((8 === e.keyCode || 37 === e.keyCode) && '' === $target.val() && chipsLength) {
4231
- e.preventDefault();
4232
- self.selectChip(chipsLength - 1, $chips);
4233
- $target.blur();
4234
- return;
4235
- }
4236
- });
4237
-
4238
- // Click on delete icon in chip.
4239
- self.$document.off('click.chips-delete', SELS.CHIPS + ' ' + SELS.DELETE).on('click.chips-delete', SELS.CHIPS + ' ' + SELS.DELETE, function(e) {
4240
- var $target = $(e.target);
4241
- var $chips = $target.closest(SELS.CHIPS);
4242
- var $chip = $target.closest(SELS.CHIP);
4243
- e.stopPropagation();
4244
- self.deleteChip($chip.index(), $chips);
4245
- $chips.find('input').focus();
4246
- });
4247
- };
4248
-
4249
- this.chips = function($chips, chipId) {
4250
- var html = '';
4251
- $chips.data('chips').forEach(function(elem){
4252
- html += self.renderChip(elem);
4253
- });
4254
- html += '<input id="' + chipId +'" class="input" placeholder="">';
4255
- $chips.html(html);
4256
- self.setPlaceholder($chips);
4257
-
4258
- // Set for attribute for label
4259
- var label = $chips.next('label');
4260
- if (label.length) {
4261
- label.attr('for', chipId);
4262
-
4263
- if ($chips.data('chips').length) {
4264
- label.addClass('active');
4265
- }
4266
- }
4267
-
4268
- // Setup autocomplete if needed.
4269
- var input = $('#' + chipId);
4270
- if (self.hasAutocomplete) {
4271
- input.autocomplete({
4272
- data: curr_options.autocompleteData,
4273
- limit: curr_options.autocompleteLimit,
4274
- onAutocomplete: function(val) {
4275
- self.addChip({tag: val}, $chips);
4276
- input.val('');
4277
- input.focus();
4278
- },
4279
- })
4280
- }
4281
- };
4282
-
4283
- this.renderChip = function(elem) {
4284
- if (!elem.tag) return;
4285
-
4286
- var html = '<div class="chip">' + elem.tag;
4287
- if (elem.image) {
4288
- html += ' <img src="' + elem.image + '"> ';
4289
- }
4290
- html += '<i class="material-icons close">close</i>';
4291
- html += '</div>';
4292
- return html;
4293
- };
4294
-
4295
- this.setPlaceholder = function($chips) {
4296
- if ($chips.data('chips').length && curr_options.placeholder) {
4297
- $chips.find('input').prop('placeholder', curr_options.placeholder);
4298
-
4299
- } else if (!$chips.data('chips').length && curr_options.secondaryPlaceholder) {
4300
- $chips.find('input').prop('placeholder', curr_options.secondaryPlaceholder);
4301
- }
4302
- };
4303
-
4304
- this.isValid = function($chips, elem) {
4305
- var chips = $chips.data('chips');
4306
- var exists = false;
4307
- for (var i=0; i < chips.length; i++) {
4308
- if (chips[i].tag === elem.tag) {
4309
- exists = true;
4310
- return;
4311
- }
4312
- }
4313
- return '' !== elem.tag && !exists;
4314
- };
4315
-
4316
- this.addChip = function(elem, $chips) {
4317
- if (!self.isValid($chips, elem)) {
4318
- return;
4319
- }
4320
- var chipHtml = self.renderChip(elem);
4321
- var newData = [];
4322
- var oldData = $chips.data('chips');
4323
- for (var i = 0; i < oldData.length; i++) {
4324
- newData.push(oldData[i]);
4325
- }
4326
- newData.push(elem);
4327
-
4328
- $chips.data('chips', newData);
4329
- $(chipHtml).insertBefore($chips.find('input'));
4330
- $chips.trigger('chip.add', elem);
4331
- self.setPlaceholder($chips);
4332
- };
4333
-
4334
- this.deleteChip = function(chipIndex, $chips) {
4335
- var chip = $chips.data('chips')[chipIndex];
4336
- $chips.find('.chip').eq(chipIndex).remove();
4337
-
4338
- var newData = [];
4339
- var oldData = $chips.data('chips');
4340
- for (var i = 0; i < oldData.length; i++) {
4341
- if (i !== chipIndex) {
4342
- newData.push(oldData[i]);
4343
- }
4344
- }
4345
-
4346
- $chips.data('chips', newData);
4347
- $chips.trigger('chip.delete', chip);
4348
- self.setPlaceholder($chips);
4349
- };
4350
-
4351
- this.selectChip = function(chipIndex, $chips) {
4352
- var $chip = $chips.find('.chip').eq(chipIndex);
4353
- if ($chip && false === $chip.hasClass('selected')) {
4354
- $chip.addClass('selected');
4355
- $chips.trigger('chip.select', $chips.data('chips')[chipIndex]);
4356
- }
4357
- };
4358
-
4359
- this.getChipsElement = function(index, $chips) {
4360
- return $chips.eq(index);
4361
- };
4362
-
4363
- // init
4364
- this.init();
4365
-
4366
- this.handleEvents();
4367
- };
4368
- }( jQuery ));
4369
- ;(function ($) {
4370
- $.fn.pushpin = function (options) {
4371
- // Defaults
4372
- var defaults = {
4373
- top: 0,
4374
- bottom: Infinity,
4375
- offset: 0
4376
- };
4377
-
4378
- // Remove pushpin event and classes
4379
- if (options === "remove") {
4380
- this.each(function () {
4381
- if (id = $(this).data('pushpin-id')) {
4382
- $(window).off('scroll.' + id);
4383
- $(this).removeData('pushpin-id').removeClass('pin-top pinned pin-bottom').removeAttr('style');
4384
- }
4385
- });
4386
- return false;
4387
- }
4388
-
4389
- options = $.extend(defaults, options);
4390
-
4391
-
4392
- $index = 0;
4393
- return this.each(function() {
4394
- var $uniqueId = Materialize.guid(),
4395
- $this = $(this),
4396
- $original_offset = $(this).offset().top;
4397
-
4398
- function removePinClasses(object) {
4399
- object.removeClass('pin-top');
4400
- object.removeClass('pinned');
4401
- object.removeClass('pin-bottom');
4402
- }
4403
-
4404
- function updateElements(objects, scrolled) {
4405
- objects.each(function () {
4406
- // Add position fixed (because its between top and bottom)
4407
- if (options.top <= scrolled && options.bottom >= scrolled && !$(this).hasClass('pinned')) {
4408
- removePinClasses($(this));
4409
- $(this).css('top', options.offset);
4410
- $(this).addClass('pinned');
4411
- }
4412
-
4413
- // Add pin-top (when scrolled position is above top)
4414
- if (scrolled < options.top && !$(this).hasClass('pin-top')) {
4415
- removePinClasses($(this));
4416
- $(this).css('top', 0);
4417
- $(this).addClass('pin-top');
4418
- }
4419
-
4420
- // Add pin-bottom (when scrolled position is below bottom)
4421
- if (scrolled > options.bottom && !$(this).hasClass('pin-bottom')) {
4422
- removePinClasses($(this));
4423
- $(this).addClass('pin-bottom');
4424
- $(this).css('top', options.bottom - $original_offset);
4425
- }
4426
- });
4427
- }
4428
-
4429
- $(this).data('pushpin-id', $uniqueId);
4430
- updateElements($this, $(window).scrollTop());
4431
- $(window).on('scroll.' + $uniqueId, function () {
4432
- var $scrolled = $(window).scrollTop() + options.offset;
4433
- updateElements($this, $scrolled);
4434
- });
4435
-
4436
- });
4437
-
4438
- };
4439
- }( jQuery ));;(function ($) {
4440
- $(document).ready(function() {
4441
-
4442
- // jQuery reverse
4443
- $.fn.reverse = [].reverse;
4444
-
4445
- // Hover behaviour: make sure this doesn't work on .click-to-toggle FABs!
4446
- $(document).on('mouseenter.fixedActionBtn', '.fixed-action-btn:not(.click-to-toggle):not(.toolbar)', function(e) {
4447
- var $this = $(this);
4448
- openFABMenu($this);
4449
- });
4450
- $(document).on('mouseleave.fixedActionBtn', '.fixed-action-btn:not(.click-to-toggle):not(.toolbar)', function(e) {
4451
- var $this = $(this);
4452
- closeFABMenu($this);
4453
- });
4454
-
4455
- // Toggle-on-click behaviour.
4456
- $(document).on('click.fabClickToggle', '.fixed-action-btn.click-to-toggle > a', function(e) {
4457
- var $this = $(this);
4458
- var $menu = $this.parent();
4459
- if ($menu.hasClass('active')) {
4460
- closeFABMenu($menu);
4461
- } else {
4462
- openFABMenu($menu);
4463
- }
4464
- });
4465
-
4466
- // Toolbar transition behaviour.
4467
- $(document).on('click.fabToolbar', '.fixed-action-btn.toolbar > a', function(e) {
4468
- var $this = $(this);
4469
- var $menu = $this.parent();
4470
- FABtoToolbar($menu);
4471
- });
4472
-
4473
- });
4474
-
4475
- $.fn.extend({
4476
- openFAB: function() {
4477
- openFABMenu($(this));
4478
- },
4479
- closeFAB: function() {
4480
- closeFABMenu($(this));
4481
- },
4482
- openToolbar: function() {
4483
- FABtoToolbar($(this));
4484
- },
4485
- closeToolbar: function() {
4486
- toolbarToFAB($(this));
4487
- }
4488
- });
4489
-
4490
-
4491
- var openFABMenu = function (btn) {
4492
- var $this = btn;
4493
- if ($this.hasClass('active') === false) {
4494
-
4495
- // Get direction option
4496
- var horizontal = $this.hasClass('horizontal');
4497
- var offsetY, offsetX;
4498
-
4499
- if (horizontal === true) {
4500
- offsetX = 40;
4501
- } else {
4502
- offsetY = 40;
4503
- }
4504
-
4505
- $this.addClass('active');
4506
- $this.find('ul .btn-floating').velocity(
4507
- { scaleY: ".4", scaleX: ".4", translateY: offsetY + 'px', translateX: offsetX + 'px'},
4508
- { duration: 0 });
4509
-
4510
- var time = 0;
4511
- $this.find('ul .btn-floating').reverse().each( function () {
4512
- $(this).velocity(
4513
- { opacity: "1", scaleX: "1", scaleY: "1", translateY: "0", translateX: '0'},
4514
- { duration: 80, delay: time });
4515
- time += 40;
4516
- });
4517
- }
4518
- };
4519
-
4520
- var closeFABMenu = function (btn) {
4521
- var $this = btn;
4522
- // Get direction option
4523
- var horizontal = $this.hasClass('horizontal');
4524
- var offsetY, offsetX;
4525
-
4526
- if (horizontal === true) {
4527
- offsetX = 40;
4528
- } else {
4529
- offsetY = 40;
4530
- }
4531
-
4532
- $this.removeClass('active');
4533
- var time = 0;
4534
- $this.find('ul .btn-floating').velocity("stop", true);
4535
- $this.find('ul .btn-floating').velocity(
4536
- { opacity: "0", scaleX: ".4", scaleY: ".4", translateY: offsetY + 'px', translateX: offsetX + 'px'},
4537
- { duration: 80 }
4538
- );
4539
- };
4540
-
4541
-
4542
- /**
4543
- * Transform FAB into toolbar
4544
- * @param {Object} object jQuery object
4545
- */
4546
- var FABtoToolbar = function(btn) {
4547
- if (btn.attr('data-open') === "true") {
4548
- return;
4549
- }
4550
-
4551
- var offsetX, offsetY, scaleFactor;
4552
- var windowWidth = window.innerWidth;
4553
- var windowHeight = window.innerHeight;
4554
- var btnRect = btn[0].getBoundingClientRect();
4555
- var anchor = btn.find('> a').first();
4556
- var menu = btn.find('> ul').first();
4557
- var backdrop = $('<div class="fab-backdrop"></div>');
4558
- var fabColor = anchor.css('background-color');
4559
- anchor.append(backdrop);
4560
-
4561
- offsetX = btnRect.left - (windowWidth / 2) + (btnRect.width / 2);
4562
- offsetY = windowHeight - btnRect.bottom;
4563
- scaleFactor = windowWidth / backdrop.width();
4564
- btn.attr('data-origin-bottom', btnRect.bottom);
4565
- btn.attr('data-origin-left', btnRect.left);
4566
- btn.attr('data-origin-width', btnRect.width);
4567
-
4568
- // Set initial state
4569
- btn.addClass('active');
4570
- btn.attr('data-open', true);
4571
- btn.css({
4572
- 'text-align': 'center',
4573
- width: '100%',
4574
- bottom: 0,
4575
- left: 0,
4576
- transform: 'translateX(' + offsetX + 'px)',
4577
- transition: 'none'
4578
- });
4579
- anchor.css({
4580
- transform: 'translateY(' + -offsetY + 'px)',
4581
- transition: 'none'
4582
- });
4583
- backdrop.css({
4584
- 'background-color': fabColor
4585
- });
4586
-
4587
-
4588
- setTimeout(function() {
4589
- btn.css({
4590
- transform: '',
4591
- transition: 'transform .2s cubic-bezier(0.550, 0.085, 0.680, 0.530), background-color 0s linear .2s'
4592
- });
4593
- anchor.css({
4594
- overflow: 'visible',
4595
- transform: '',
4596
- transition: 'transform .2s'
4597
- });
4598
-
4599
- setTimeout(function() {
4600
- btn.css({
4601
- overflow: 'hidden',
4602
- 'background-color': fabColor
4603
- });
4604
- backdrop.css({
4605
- transform: 'scale(' + scaleFactor + ')',
4606
- transition: 'transform .2s cubic-bezier(0.550, 0.055, 0.675, 0.190)'
4607
- });
4608
- menu.find('> li > a').css({
4609
- opacity: 1
4610
- });
4611
-
4612
- // Scroll to close.
4613
- $(window).on('scroll.fabToolbarClose', function() {
4614
- toolbarToFAB(btn);
4615
- $(window).off('scroll.fabToolbarClose');
4616
- $(document).off('click.fabToolbarClose');
4617
- });
4618
-
4619
- $(document).on('click.fabToolbarClose', function(e) {
4620
- if (!$(e.target).closest(menu).length) {
4621
- toolbarToFAB(btn);
4622
- $(window).off('scroll.fabToolbarClose');
4623
- $(document).off('click.fabToolbarClose');
4624
- }
4625
- });
4626
- }, 100);
4627
- }, 0);
4628
- };
4629
-
4630
- /**
4631
- * Transform toolbar back into FAB
4632
- * @param {Object} object jQuery object
4633
- */
4634
- var toolbarToFAB = function(btn) {
4635
- if (btn.attr('data-open') !== "true") {
4636
- return;
4637
- }
4638
-
4639
- var offsetX, offsetY, scaleFactor;
4640
- var windowWidth = window.innerWidth;
4641
- var windowHeight = window.innerHeight;
4642
- var btnWidth = btn.attr('data-origin-width');
4643
- var btnBottom = btn.attr('data-origin-bottom');
4644
- var btnLeft = btn.attr('data-origin-left');
4645
- var anchor = btn.find('> .btn-floating').first();
4646
- var menu = btn.find('> ul').first();
4647
- var backdrop = btn.find('.fab-backdrop');
4648
- var fabColor = anchor.css('background-color');
4649
-
4650
- offsetX = btnLeft - (windowWidth / 2) + (btnWidth / 2);
4651
- offsetY = windowHeight - btnBottom;
4652
- scaleFactor = windowWidth / backdrop.width();
4653
-
4654
-
4655
- // Hide backdrop
4656
- btn.removeClass('active');
4657
- btn.attr('data-open', false);
4658
- btn.css({
4659
- 'background-color': 'transparent',
4660
- transition: 'none'
4661
- });
4662
- anchor.css({
4663
- transition: 'none'
4664
- });
4665
- backdrop.css({
4666
- transform: 'scale(0)',
4667
- 'background-color': fabColor
4668
- });
4669
- menu.find('> li > a').css({
4670
- opacity: ''
4671
- });
4672
-
4673
- setTimeout(function() {
4674
- backdrop.remove();
4675
-
4676
- // Set initial state.
4677
- btn.css({
4678
- 'text-align': '',
4679
- width: '',
4680
- bottom: '',
4681
- left: '',
4682
- overflow: '',
4683
- 'background-color': '',
4684
- transform: 'translate3d(' + -offsetX + 'px,0,0)'
4685
- });
4686
- anchor.css({
4687
- overflow: '',
4688
- transform: 'translate3d(0,' + offsetY + 'px,0)'
4689
- });
4690
-
4691
- setTimeout(function() {
4692
- btn.css({
4693
- transform: 'translate3d(0,0,0)',
4694
- transition: 'transform .2s'
4695
- });
4696
- anchor.css({
4697
- transform: 'translate3d(0,0,0)',
4698
- transition: 'transform .2s cubic-bezier(0.550, 0.055, 0.675, 0.190)'
4699
- });
4700
- }, 20);
4701
- }, 200);
4702
- };
4703
-
4704
-
4705
- }( jQuery ));
4706
- ;(function ($) {
4707
- // Image transition function
4708
- Materialize.fadeInImage = function(selectorOrEl) {
4709
- var element;
4710
- if (typeof(selectorOrEl) === 'string') {
4711
- element = $(selectorOrEl);
4712
- } else if (typeof(selectorOrEl) === 'object') {
4713
- element = selectorOrEl;
4714
- } else {
4715
- return;
4716
- }
4717
- element.css({opacity: 0});
4718
- $(element).velocity({opacity: 1}, {
4719
- duration: 650,
4720
- queue: false,
4721
- easing: 'easeOutSine'
4722
- });
4723
- $(element).velocity({opacity: 1}, {
4724
- duration: 1300,
4725
- queue: false,
4726
- easing: 'swing',
4727
- step: function(now, fx) {
4728
- fx.start = 100;
4729
- var grayscale_setting = now/100;
4730
- var brightness_setting = 150 - (100 - now)/1.75;
4731
-
4732
- if (brightness_setting < 100) {
4733
- brightness_setting = 100;
4734
- }
4735
- if (now >= 0) {
4736
- $(this).css({
4737
- "-webkit-filter": "grayscale("+grayscale_setting+")" + "brightness("+brightness_setting+"%)",
4738
- "filter": "grayscale("+grayscale_setting+")" + "brightness("+brightness_setting+"%)"
4739
- });
4740
- }
4741
- }
4742
- });
4743
- };
4744
-
4745
- // Horizontal staggered list
4746
- Materialize.showStaggeredList = function(selectorOrEl) {
4747
- var element;
4748
- if (typeof(selectorOrEl) === 'string') {
4749
- element = $(selectorOrEl);
4750
- } else if (typeof(selectorOrEl) === 'object') {
4751
- element = selectorOrEl;
4752
- } else {
4753
- return;
4754
- }
4755
- var time = 0;
4756
- element.find('li').velocity(
4757
- { translateX: "-100px"},
4758
- { duration: 0 });
4759
-
4760
- element.find('li').each(function() {
4761
- $(this).velocity(
4762
- { opacity: "1", translateX: "0"},
4763
- { duration: 800, delay: time, easing: [60, 10] });
4764
- time += 120;
4765
- });
4766
- };
4767
-
4768
-
4769
- $(document).ready(function() {
4770
- // Hardcoded .staggered-list scrollFire
4771
- // var staggeredListOptions = [];
4772
- // $('ul.staggered-list').each(function (i) {
4773
-
4774
- // var label = 'scrollFire-' + i;
4775
- // $(this).addClass(label);
4776
- // staggeredListOptions.push(
4777
- // {selector: 'ul.staggered-list.' + label,
4778
- // offset: 200,
4779
- // callback: 'showStaggeredList("ul.staggered-list.' + label + '")'});
4780
- // });
4781
- // scrollFire(staggeredListOptions);
4782
-
4783
- // HammerJS, Swipe navigation
4784
-
4785
- // Touch Event
4786
- var swipeLeft = false;
4787
- var swipeRight = false;
4788
-
4789
-
4790
- // Dismissible Collections
4791
- $('.dismissable').each(function() {
4792
- $(this).hammer({
4793
- prevent_default: false
4794
- }).bind('pan', function(e) {
4795
- if (e.gesture.pointerType === "touch") {
4796
- var $this = $(this);
4797
- var direction = e.gesture.direction;
4798
- var x = e.gesture.deltaX;
4799
- var velocityX = e.gesture.velocityX;
4800
-
4801
- $this.velocity({ translateX: x
4802
- }, {duration: 50, queue: false, easing: 'easeOutQuad'});
4803
-
4804
- // Swipe Left
4805
- if (direction === 4 && (x > ($this.innerWidth() / 2) || velocityX < -0.75)) {
4806
- swipeLeft = true;
4807
- }
4808
-
4809
- // Swipe Right
4810
- if (direction === 2 && (x < (-1 * $this.innerWidth() / 2) || velocityX > 0.75)) {
4811
- swipeRight = true;
4812
- }
4813
- }
4814
- }).bind('panend', function(e) {
4815
- // Reset if collection is moved back into original position
4816
- if (Math.abs(e.gesture.deltaX) < ($(this).innerWidth() / 2)) {
4817
- swipeRight = false;
4818
- swipeLeft = false;
4819
- }
4820
-
4821
- if (e.gesture.pointerType === "touch") {
4822
- var $this = $(this);
4823
- if (swipeLeft || swipeRight) {
4824
- var fullWidth;
4825
- if (swipeLeft) { fullWidth = $this.innerWidth(); }
4826
- else { fullWidth = -1 * $this.innerWidth(); }
4827
-
4828
- $this.velocity({ translateX: fullWidth,
4829
- }, {duration: 100, queue: false, easing: 'easeOutQuad', complete:
4830
- function() {
4831
- $this.css('border', 'none');
4832
- $this.velocity({ height: 0, padding: 0,
4833
- }, {duration: 200, queue: false, easing: 'easeOutQuad', complete:
4834
- function() { $this.remove(); }
4835
- });
4836
- }
4837
- });
4838
- }
4839
- else {
4840
- $this.velocity({ translateX: 0,
4841
- }, {duration: 100, queue: false, easing: 'easeOutQuad'});
4842
- }
4843
- swipeLeft = false;
4844
- swipeRight = false;
4845
- }
4846
- });
4847
-
4848
- });
4849
-
4850
-
4851
- // time = 0
4852
- // // Vertical Staggered list
4853
- // $('ul.staggered-list.vertical li').velocity(
4854
- // { translateY: "100px"},
4855
- // { duration: 0 });
4856
-
4857
- // $('ul.staggered-list.vertical li').each(function() {
4858
- // $(this).velocity(
4859
- // { opacity: "1", translateY: "0"},
4860
- // { duration: 800, delay: time, easing: [60, 25] });
4861
- // time += 120;
4862
- // });
4863
-
4864
- // // Fade in and Scale
4865
- // $('.fade-in.scale').velocity(
4866
- // { scaleX: .4, scaleY: .4, translateX: -600},
4867
- // { duration: 0});
4868
- // $('.fade-in').each(function() {
4869
- // $(this).velocity(
4870
- // { opacity: "1", scaleX: 1, scaleY: 1, translateX: 0},
4871
- // { duration: 800, easing: [60, 10] });
4872
- // });
4873
- });
4874
- }( jQuery ));
4875
- ;(function($) {
4876
-
4877
- var scrollFireEventsHandled = false;
4878
-
4879
- // Input: Array of JSON objects {selector, offset, callback}
4880
- Materialize.scrollFire = function(options) {
4881
- var onScroll = function() {
4882
- var windowScroll = window.pageYOffset + window.innerHeight;
4883
-
4884
- for (var i = 0 ; i < options.length; i++) {
4885
- // Get options from each line
4886
- var value = options[i];
4887
- var selector = value.selector,
4888
- offset = value.offset,
4889
- callback = value.callback;
4890
-
4891
- var currentElement = document.querySelector(selector);
4892
- if ( currentElement !== null) {
4893
- var elementOffset = currentElement.getBoundingClientRect().top + window.pageYOffset;
4894
-
4895
- if (windowScroll > (elementOffset + offset)) {
4896
- if (value.done !== true) {
4897
- if (typeof(callback) === 'function') {
4898
- callback.call(this, currentElement);
4899
- } else if (typeof(callback) === 'string') {
4900
- var callbackFunc = new Function(callback);
4901
- callbackFunc(currentElement);
4902
- }
4903
- value.done = true;
4904
- }
4905
- }
4906
- }
4907
- }
4908
- };
4909
-
4910
-
4911
- var throttledScroll = Materialize.throttle(function() {
4912
- onScroll();
4913
- }, options.throttle || 100);
4914
-
4915
- if (!scrollFireEventsHandled) {
4916
- window.addEventListener("scroll", throttledScroll);
4917
- window.addEventListener("resize", throttledScroll);
4918
- scrollFireEventsHandled = true;
4919
- }
4920
-
4921
- // perform a scan once, after current execution context, and after dom is ready
4922
- setTimeout(throttledScroll, 0);
4923
- };
4924
-
4925
- })(jQuery);
4926
- ;/*!
4927
- * pickadate.js v3.5.0, 2014/04/13
4928
- * By Amsul, http://amsul.ca
4929
- * Hosted on http://amsul.github.io/pickadate.js
4930
- * Licensed under MIT
4931
- */
4932
-
4933
- (function ( factory ) {
4934
-
4935
- // AMD.
4936
- if ( typeof define == 'function' && define.amd )
4937
- define( 'picker', ['jquery'], factory )
4938
-
4939
- // Node.js/browserify.
4940
- else if ( typeof exports == 'object' )
4941
- module.exports = factory( require('jquery') )
4942
-
4943
- // Browser globals.
4944
- else this.Picker = factory( jQuery )
4945
-
4946
- }(function( $ ) {
4947
-
4948
- var $window = $( window )
4949
- var $document = $( document )
4950
- var $html = $( document.documentElement )
4951
-
4952
-
4953
- /**
4954
- * The picker constructor that creates a blank picker.
4955
- */
4956
- function PickerConstructor( ELEMENT, NAME, COMPONENT, OPTIONS ) {
4957
-
4958
- // If there’s no element, return the picker constructor.
4959
- if ( !ELEMENT ) return PickerConstructor
4960
-
4961
-
4962
- var
4963
- IS_DEFAULT_THEME = false,
4964
-
4965
-
4966
- // The state of the picker.
4967
- STATE = {
4968
- id: ELEMENT.id || 'P' + Math.abs( ~~(Math.random() * new Date()) )
4969
- },
4970
-
4971
-
4972
- // Merge the defaults and options passed.
4973
- SETTINGS = COMPONENT ? $.extend( true, {}, COMPONENT.defaults, OPTIONS ) : OPTIONS || {},
4974
-
4975
-
4976
- // Merge the default classes with the settings classes.
4977
- CLASSES = $.extend( {}, PickerConstructor.klasses(), SETTINGS.klass ),
4978
-
4979
-
4980
- // The element node wrapper into a jQuery object.
4981
- $ELEMENT = $( ELEMENT ),
4982
-
4983
-
4984
- // Pseudo picker constructor.
4985
- PickerInstance = function() {
4986
- return this.start()
4987
- },
4988
-
4989
-
4990
- // The picker prototype.
4991
- P = PickerInstance.prototype = {
4992
-
4993
- constructor: PickerInstance,
4994
-
4995
- $node: $ELEMENT,
4996
-
4997
-
4998
- /**
4999
- * Initialize everything
5000
- */
5001
- start: function() {
5002
-
5003
- // If it’s already started, do nothing.
5004
- if ( STATE && STATE.start ) return P
5005
-
5006
-
5007
- // Update the picker states.
5008
- STATE.methods = {}
5009
- STATE.start = true
5010
- STATE.open = false
5011
- STATE.type = ELEMENT.type
5012
-
5013
-
5014
- // Confirm focus state, convert into text input to remove UA stylings,
5015
- // and set as readonly to prevent keyboard popup.
5016
- ELEMENT.autofocus = ELEMENT == getActiveElement()
5017
- ELEMENT.readOnly = !SETTINGS.editable
5018
- ELEMENT.id = ELEMENT.id || STATE.id
5019
- if ( ELEMENT.type != 'text' ) {
5020
- ELEMENT.type = 'text'
5021
- }
5022
-
5023
-
5024
- // Create a new picker component with the settings.
5025
- P.component = new COMPONENT(P, SETTINGS)
5026
-
5027
-
5028
- // Create the picker root with a holder and then prepare it.
5029
- P.$root = $( PickerConstructor._.node('div', createWrappedComponent(), CLASSES.picker, 'id="' + ELEMENT.id + '_root" tabindex="0"') )
5030
- prepareElementRoot()
5031
-
5032
-
5033
- // If there’s a format for the hidden input element, create the element.
5034
- if ( SETTINGS.formatSubmit ) {
5035
- prepareElementHidden()
5036
- }
5037
-
5038
-
5039
- // Prepare the input element.
5040
- prepareElement()
5041
-
5042
-
5043
- // Insert the root as specified in the settings.
5044
- if ( SETTINGS.container ) $( SETTINGS.container ).append( P.$root )
5045
- else $ELEMENT.after( P.$root )
5046
-
5047
-
5048
- // Bind the default component and settings events.
5049
- P.on({
5050
- start: P.component.onStart,
5051
- render: P.component.onRender,
5052
- stop: P.component.onStop,
5053
- open: P.component.onOpen,
5054
- close: P.component.onClose,
5055
- set: P.component.onSet
5056
- }).on({
5057
- start: SETTINGS.onStart,
5058
- render: SETTINGS.onRender,
5059
- stop: SETTINGS.onStop,
5060
- open: SETTINGS.onOpen,
5061
- close: SETTINGS.onClose,
5062
- set: SETTINGS.onSet
5063
- })
5064
-
5065
-
5066
- // Once we’re all set, check the theme in use.
5067
- IS_DEFAULT_THEME = isUsingDefaultTheme( P.$root.children()[ 0 ] )
5068
-
5069
-
5070
- // If the element has autofocus, open the picker.
5071
- if ( ELEMENT.autofocus ) {
5072
- P.open()
5073
- }
5074
-
5075
-
5076
- // Trigger queued the “start” and “render” events.
5077
- return P.trigger( 'start' ).trigger( 'render' )
5078
- }, //start
5079
-
5080
-
5081
- /**
5082
- * Render a new picker
5083
- */
5084
- render: function( entireComponent ) {
5085
-
5086
- // Insert a new component holder in the root or box.
5087
- if ( entireComponent ) P.$root.html( createWrappedComponent() )
5088
- else P.$root.find( '.' + CLASSES.box ).html( P.component.nodes( STATE.open ) )
5089
-
5090
- // Trigger the queued “render” events.
5091
- return P.trigger( 'render' )
5092
- }, //render
5093
-
5094
-
5095
- /**
5096
- * Destroy everything
5097
- */
5098
- stop: function() {
5099
-
5100
- // If it’s already stopped, do nothing.
5101
- if ( !STATE.start ) return P
5102
-
5103
- // Then close the picker.
5104
- P.close()
5105
-
5106
- // Remove the hidden field.
5107
- if ( P._hidden ) {
5108
- P._hidden.parentNode.removeChild( P._hidden )
5109
- }
5110
-
5111
- // Remove the root.
5112
- P.$root.remove()
5113
-
5114
- // Remove the input class, remove the stored data, and unbind
5115
- // the events (after a tick for IE - see `P.close`).
5116
- $ELEMENT.removeClass( CLASSES.input ).removeData( NAME )
5117
- setTimeout( function() {
5118
- $ELEMENT.off( '.' + STATE.id )
5119
- }, 0)
5120
-
5121
- // Restore the element state
5122
- ELEMENT.type = STATE.type
5123
- ELEMENT.readOnly = false
5124
-
5125
- // Trigger the queued “stop” events.
5126
- P.trigger( 'stop' )
5127
-
5128
- // Reset the picker states.
5129
- STATE.methods = {}
5130
- STATE.start = false
5131
-
5132
- return P
5133
- }, //stop
5134
-
5135
-
5136
- /**
5137
- * Open up the picker
5138
- */
5139
- open: function( dontGiveFocus ) {
5140
-
5141
- // If it’s already open, do nothing.
5142
- if ( STATE.open ) return P
5143
-
5144
- // Add the “active” class.
5145
- $ELEMENT.addClass( CLASSES.active )
5146
- aria( ELEMENT, 'expanded', true )
5147
-
5148
- // * A Firefox bug, when `html` has `overflow:hidden`, results in
5149
- // killing transitions :(. So add the “opened” state on the next tick.
5150
- // Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=625289
5151
- setTimeout( function() {
5152
-
5153
- // Add the “opened” class to the picker root.
5154
- P.$root.addClass( CLASSES.opened )
5155
- aria( P.$root[0], 'hidden', false )
5156
-
5157
- }, 0 )
5158
-
5159
- // If we have to give focus, bind the element and doc events.
5160
- if ( dontGiveFocus !== false ) {
5161
-
5162
- // Set it as open.
5163
- STATE.open = true
5164
-
5165
- // Prevent the page from scrolling.
5166
- if ( IS_DEFAULT_THEME ) {
5167
- $html.
5168
- css( 'overflow', 'hidden' ).
5169
- css( 'padding-right', '+=' + getScrollbarWidth() )
5170
- }
5171
-
5172
- // Pass focus to the root element’s jQuery object.
5173
- // * Workaround for iOS8 to bring the picker’s root into view.
5174
- P.$root.eq(0).focus()
5175
-
5176
- // Bind the document events.
5177
- $document.on( 'click.' + STATE.id + ' focusin.' + STATE.id, function( event ) {
5178
-
5179
- var target = event.target
5180
-
5181
- // If the target of the event is not the element, close the picker picker.
5182
- // * Don’t worry about clicks or focusins on the root because those don’t bubble up.
5183
- // Also, for Firefox, a click on an `option` element bubbles up directly
5184
- // to the doc. So make sure the target wasn't the doc.
5185
- // * In Firefox stopPropagation() doesn’t prevent right-click events from bubbling,
5186
- // which causes the picker to unexpectedly close when right-clicking it. So make
5187
- // sure the event wasn’t a right-click.
5188
- if ( target != ELEMENT && target != document && event.which != 3 ) {
5189
-
5190
- // If the target was the holder that covers the screen,
5191
- // keep the element focused to maintain tabindex.
5192
- P.close( target === P.$root.children()[0] )
5193
- }
5194
-
5195
- }).on( 'keydown.' + STATE.id, function( event ) {
5196
-
5197
- var
5198
- // Get the keycode.
5199
- keycode = event.keyCode,
5200
-
5201
- // Translate that to a selection change.
5202
- keycodeToMove = P.component.key[ keycode ],
5203
-
5204
- // Grab the target.
5205
- target = event.target
5206
-
5207
-
5208
- // On escape, close the picker and give focus.
5209
- if ( keycode == 27 ) {
5210
- P.close( true )
5211
- }
5212
-
5213
-
5214
- // Check if there is a key movement or “enter” keypress on the element.
5215
- else if ( target == P.$root[0] && ( keycodeToMove || keycode == 13 ) ) {
5216
-
5217
- // Prevent the default action to stop page movement.
5218
- event.preventDefault()
5219
-
5220
- // Trigger the key movement action.
5221
- if ( keycodeToMove ) {
5222
- PickerConstructor._.trigger( P.component.key.go, P, [ PickerConstructor._.trigger( keycodeToMove ) ] )
5223
- }
5224
-
5225
- // On “enter”, if the highlighted item isn’t disabled, set the value and close.
5226
- else if ( !P.$root.find( '.' + CLASSES.highlighted ).hasClass( CLASSES.disabled ) ) {
5227
- P.set( 'select', P.component.item.highlight ).close()
5228
- }
5229
- }
5230
-
5231
-
5232
- // If the target is within the root and “enter” is pressed,
5233
- // prevent the default action and trigger a click on the target instead.
5234
- else if ( $.contains( P.$root[0], target ) && keycode == 13 ) {
5235
- event.preventDefault()
5236
- target.click()
5237
- }
5238
- })
5239
- }
5240
-
5241
- // Trigger the queued “open” events.
5242
- return P.trigger( 'open' )
5243
- }, //open
5244
-
5245
-
5246
- /**
5247
- * Close the picker
5248
- */
5249
- close: function( giveFocus ) {
5250
-
5251
- // If we need to give focus, do it before changing states.
5252
- if ( giveFocus ) {
5253
- // ....ah yes! It would’ve been incomplete without a crazy workaround for IE :|
5254
- // The focus is triggered *after* the close has completed - causing it
5255
- // to open again. So unbind and rebind the event at the next tick.
5256
- P.$root.off( 'focus.toOpen' ).eq(0).focus()
5257
- setTimeout( function() {
5258
- P.$root.on( 'focus.toOpen', handleFocusToOpenEvent )
5259
- }, 0 )
5260
- }
5261
-
5262
- // Remove the “active” class.
5263
- $ELEMENT.removeClass( CLASSES.active )
5264
- aria( ELEMENT, 'expanded', false )
5265
-
5266
- // * A Firefox bug, when `html` has `overflow:hidden`, results in
5267
- // killing transitions :(. So remove the “opened” state on the next tick.
5268
- // Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=625289
5269
- setTimeout( function() {
5270
-
5271
- // Remove the “opened” and “focused” class from the picker root.
5272
- P.$root.removeClass( CLASSES.opened + ' ' + CLASSES.focused )
5273
- aria( P.$root[0], 'hidden', true )
5274
-
5275
- }, 0 )
5276
-
5277
- // If it’s already closed, do nothing more.
5278
- if ( !STATE.open ) return P
5279
-
5280
- // Set it as closed.
5281
- STATE.open = false
5282
-
5283
- // Allow the page to scroll.
5284
- if ( IS_DEFAULT_THEME ) {
5285
- $html.
5286
- css( 'overflow', '' ).
5287
- css( 'padding-right', '-=' + getScrollbarWidth() )
5288
- }
5289
-
5290
- // Unbind the document events.
5291
- $document.off( '.' + STATE.id )
5292
-
5293
- // Trigger the queued “close” events.
5294
- return P.trigger( 'close' )
5295
- }, //close
5296
-
5297
-
5298
- /**
5299
- * Clear the values
5300
- */
5301
- clear: function( options ) {
5302
- return P.set( 'clear', null, options )
5303
- }, //clear
5304
-
5305
-
5306
- /**
5307
- * Set something
5308
- */
5309
- set: function( thing, value, options ) {
5310
-
5311
- var thingItem, thingValue,
5312
- thingIsObject = $.isPlainObject( thing ),
5313
- thingObject = thingIsObject ? thing : {}
5314
-
5315
- // Make sure we have usable options.
5316
- options = thingIsObject && $.isPlainObject( value ) ? value : options || {}
5317
-
5318
- if ( thing ) {
5319
-
5320
- // If the thing isn’t an object, make it one.
5321
- if ( !thingIsObject ) {
5322
- thingObject[ thing ] = value
5323
- }
5324
-
5325
- // Go through the things of items to set.
5326
- for ( thingItem in thingObject ) {
5327
-
5328
- // Grab the value of the thing.
5329
- thingValue = thingObject[ thingItem ]
5330
-
5331
- // First, if the item exists and there’s a value, set it.
5332
- if ( thingItem in P.component.item ) {
5333
- if ( thingValue === undefined ) thingValue = null
5334
- P.component.set( thingItem, thingValue, options )
5335
- }
5336
-
5337
- // Then, check to update the element value and broadcast a change.
5338
- if ( thingItem == 'select' || thingItem == 'clear' ) {
5339
- $ELEMENT.
5340
- val( thingItem == 'clear' ? '' : P.get( thingItem, SETTINGS.format ) ).
5341
- trigger( 'change' )
5342
- }
5343
- }
5344
-
5345
- // Render a new picker.
5346
- P.render()
5347
- }
5348
-
5349
- // When the method isn’t muted, trigger queued “set” events and pass the `thingObject`.
5350
- return options.muted ? P : P.trigger( 'set', thingObject )
5351
- }, //set
5352
-
5353
-
5354
- /**
5355
- * Get something
5356
- */
5357
- get: function( thing, format ) {
5358
-
5359
- // Make sure there’s something to get.
5360
- thing = thing || 'value'
5361
-
5362
- // If a picker state exists, return that.
5363
- if ( STATE[ thing ] != null ) {
5364
- return STATE[ thing ]
5365
- }
5366
-
5367
- // Return the submission value, if that.
5368
- if ( thing == 'valueSubmit' ) {
5369
- if ( P._hidden ) {
5370
- return P._hidden.value
5371
- }
5372
- thing = 'value'
5373
- }
5374
-
5375
- // Return the value, if that.
5376
- if ( thing == 'value' ) {
5377
- return ELEMENT.value
5378
- }
5379
-
5380
- // Check if a component item exists, return that.
5381
- if ( thing in P.component.item ) {
5382
- if ( typeof format == 'string' ) {
5383
- var thingValue = P.component.get( thing )
5384
- return thingValue ?
5385
- PickerConstructor._.trigger(
5386
- P.component.formats.toString,
5387
- P.component,
5388
- [ format, thingValue ]
5389
- ) : ''
5390
- }
5391
- return P.component.get( thing )
5392
- }
5393
- }, //get
5394
-
5395
-
5396
-
5397
- /**
5398
- * Bind events on the things.
5399
- */
5400
- on: function( thing, method, internal ) {
5401
-
5402
- var thingName, thingMethod,
5403
- thingIsObject = $.isPlainObject( thing ),
5404
- thingObject = thingIsObject ? thing : {}
5405
-
5406
- if ( thing ) {
5407
-
5408
- // If the thing isn’t an object, make it one.
5409
- if ( !thingIsObject ) {
5410
- thingObject[ thing ] = method
5411
- }
5412
-
5413
- // Go through the things to bind to.
5414
- for ( thingName in thingObject ) {
5415
-
5416
- // Grab the method of the thing.
5417
- thingMethod = thingObject[ thingName ]
5418
-
5419
- // If it was an internal binding, prefix it.
5420
- if ( internal ) {
5421
- thingName = '_' + thingName
5422
- }
5423
-
5424
- // Make sure the thing methods collection exists.
5425
- STATE.methods[ thingName ] = STATE.methods[ thingName ] || []
5426
-
5427
- // Add the method to the relative method collection.
5428
- STATE.methods[ thingName ].push( thingMethod )
5429
- }
5430
- }
5431
-
5432
- return P
5433
- }, //on
5434
-
5435
-
5436
-
5437
- /**
5438
- * Unbind events on the things.
5439
- */
5440
- off: function() {
5441
- var i, thingName,
5442
- names = arguments;
5443
- for ( i = 0, namesCount = names.length; i < namesCount; i += 1 ) {
5444
- thingName = names[i]
5445
- if ( thingName in STATE.methods ) {
5446
- delete STATE.methods[thingName]
5447
- }
5448
- }
5449
- return P
5450
- },
5451
-
5452
-
5453
- /**
5454
- * Fire off method events.
5455
- */
5456
- trigger: function( name, data ) {
5457
- var _trigger = function( name ) {
5458
- var methodList = STATE.methods[ name ]
5459
- if ( methodList ) {
5460
- methodList.map( function( method ) {
5461
- PickerConstructor._.trigger( method, P, [ data ] )
5462
- })
5463
- }
5464
- }
5465
- _trigger( '_' + name )
5466
- _trigger( name )
5467
- return P
5468
- } //trigger
5469
- } //PickerInstance.prototype
5470
-
5471
-
5472
- /**
5473
- * Wrap the picker holder components together.
5474
- */
5475
- function createWrappedComponent() {
5476
-
5477
- // Create a picker wrapper holder
5478
- return PickerConstructor._.node( 'div',
5479
-
5480
- // Create a picker wrapper node
5481
- PickerConstructor._.node( 'div',
5482
-
5483
- // Create a picker frame
5484
- PickerConstructor._.node( 'div',
5485
-
5486
- // Create a picker box node
5487
- PickerConstructor._.node( 'div',
5488
-
5489
- // Create the components nodes.
5490
- P.component.nodes( STATE.open ),
5491
-
5492
- // The picker box class
5493
- CLASSES.box
5494
- ),
5495
-
5496
- // Picker wrap class
5497
- CLASSES.wrap
5498
- ),
5499
-
5500
- // Picker frame class
5501
- CLASSES.frame
5502
- ),
5503
-
5504
- // Picker holder class
5505
- CLASSES.holder
5506
- ) //endreturn
5507
- } //createWrappedComponent
5508
-
5509
-
5510
-
5511
- /**
5512
- * Prepare the input element with all bindings.
5513
- */
5514
- function prepareElement() {
5515
-
5516
- $ELEMENT.
5517
-
5518
- // Store the picker data by component name.
5519
- data(NAME, P).
5520
-
5521
- // Add the “input” class name.
5522
- addClass(CLASSES.input).
5523
-
5524
- // Remove the tabindex.
5525
- attr('tabindex', -1).
5526
-
5527
- // If there’s a `data-value`, update the value of the element.
5528
- val( $ELEMENT.data('value') ?
5529
- P.get('select', SETTINGS.format) :
5530
- ELEMENT.value
5531
- )
5532
-
5533
-
5534
- // Only bind keydown events if the element isn’t editable.
5535
- if ( !SETTINGS.editable ) {
5536
-
5537
- $ELEMENT.
5538
-
5539
- // On focus/click, focus onto the root to open it up.
5540
- on( 'focus.' + STATE.id + ' click.' + STATE.id, function( event ) {
5541
- event.preventDefault()
5542
- P.$root.eq(0).focus()
5543
- }).
5544
-
5545
- // Handle keyboard event based on the picker being opened or not.
5546
- on( 'keydown.' + STATE.id, handleKeydownEvent )
5547
- }
5548
-
5549
-
5550
- // Update the aria attributes.
5551
- aria(ELEMENT, {
5552
- haspopup: true,
5553
- expanded: false,
5554
- readonly: false,
5555
- owns: ELEMENT.id + '_root'
5556
- })
5557
- }
5558
-
5559
-
5560
- /**
5561
- * Prepare the root picker element with all bindings.
5562
- */
5563
- function prepareElementRoot() {
5564
-
5565
- P.$root.
5566
-
5567
- on({
5568
-
5569
- // For iOS8.
5570
- keydown: handleKeydownEvent,
5571
-
5572
- // When something within the root is focused, stop from bubbling
5573
- // to the doc and remove the “focused” state from the root.
5574
- focusin: function( event ) {
5575
- P.$root.removeClass( CLASSES.focused )
5576
- event.stopPropagation()
5577
- },
5578
-
5579
- // When something within the root holder is clicked, stop it
5580
- // from bubbling to the doc.
5581
- 'mousedown click': function( event ) {
5582
-
5583
- var target = event.target
5584
-
5585
- // Make sure the target isn’t the root holder so it can bubble up.
5586
- if ( target != P.$root.children()[ 0 ] ) {
5587
-
5588
- event.stopPropagation()
5589
-
5590
- // * For mousedown events, cancel the default action in order to
5591
- // prevent cases where focus is shifted onto external elements
5592
- // when using things like jQuery mobile or MagnificPopup (ref: #249 & #120).
5593
- // Also, for Firefox, don’t prevent action on the `option` element.
5594
- if ( event.type == 'mousedown' && !$( target ).is( 'input, select, textarea, button, option' )) {
5595
-
5596
- event.preventDefault()
5597
-
5598
- // Re-focus onto the root so that users can click away
5599
- // from elements focused within the picker.
5600
- P.$root.eq(0).focus()
5601
- }
5602
- }
5603
- }
5604
- }).
5605
-
5606
- // Add/remove the “target” class on focus and blur.
5607
- on({
5608
- focus: function() {
5609
- $ELEMENT.addClass( CLASSES.target )
5610
- },
5611
- blur: function() {
5612
- $ELEMENT.removeClass( CLASSES.target )
5613
- }
5614
- }).
5615
-
5616
- // Open the picker and adjust the root “focused” state
5617
- on( 'focus.toOpen', handleFocusToOpenEvent ).
5618
-
5619
- // If there’s a click on an actionable element, carry out the actions.
5620
- on( 'click', '[data-pick], [data-nav], [data-clear], [data-close]', function() {
5621
-
5622
- var $target = $( this ),
5623
- targetData = $target.data(),
5624
- targetDisabled = $target.hasClass( CLASSES.navDisabled ) || $target.hasClass( CLASSES.disabled ),
5625
-
5626
- // * For IE, non-focusable elements can be active elements as well
5627
- // (http://stackoverflow.com/a/2684561).
5628
- activeElement = getActiveElement()
5629
- activeElement = activeElement && ( activeElement.type || activeElement.href )
5630
-
5631
- // If it’s disabled or nothing inside is actively focused, re-focus the element.
5632
- if ( targetDisabled || activeElement && !$.contains( P.$root[0], activeElement ) ) {
5633
- P.$root.eq(0).focus()
5634
- }
5635
-
5636
- // If something is superficially changed, update the `highlight` based on the `nav`.
5637
- if ( !targetDisabled && targetData.nav ) {
5638
- P.set( 'highlight', P.component.item.highlight, { nav: targetData.nav } )
5639
- }
5640
-
5641
- // If something is picked, set `select` then close with focus.
5642
- else if ( !targetDisabled && 'pick' in targetData ) {
5643
- P.set( 'select', targetData.pick )
5644
- }
5645
-
5646
- // If a “clear” button is pressed, empty the values and close with focus.
5647
- else if ( targetData.clear ) {
5648
- P.clear().close( true )
5649
- }
5650
-
5651
- else if ( targetData.close ) {
5652
- P.close( true )
5653
- }
5654
-
5655
- }) //P.$root
5656
-
5657
- aria( P.$root[0], 'hidden', true )
5658
- }
5659
-
5660
-
5661
- /**
5662
- * Prepare the hidden input element along with all bindings.
5663
- */
5664
- function prepareElementHidden() {
5665
-
5666
- var name
5667
-
5668
- if ( SETTINGS.hiddenName === true ) {
5669
- name = ELEMENT.name
5670
- ELEMENT.name = ''
5671
- }
5672
- else {
5673
- name = [
5674
- typeof SETTINGS.hiddenPrefix == 'string' ? SETTINGS.hiddenPrefix : '',
5675
- typeof SETTINGS.hiddenSuffix == 'string' ? SETTINGS.hiddenSuffix : '_submit'
5676
- ]
5677
- name = name[0] + ELEMENT.name + name[1]
5678
- }
5679
-
5680
- P._hidden = $(
5681
- '<input ' +
5682
- 'type=hidden ' +
5683
-
5684
- // Create the name using the original input’s with a prefix and suffix.
5685
- 'name="' + name + '"' +
5686
-
5687
- // If the element has a value, set the hidden value as well.
5688
- (
5689
- $ELEMENT.data('value') || ELEMENT.value ?
5690
- ' value="' + P.get('select', SETTINGS.formatSubmit) + '"' :
5691
- ''
5692
- ) +
5693
- '>'
5694
- )[0]
5695
-
5696
- $ELEMENT.
5697
-
5698
- // If the value changes, update the hidden input with the correct format.
5699
- on('change.' + STATE.id, function() {
5700
- P._hidden.value = ELEMENT.value ?
5701
- P.get('select', SETTINGS.formatSubmit) :
5702
- ''
5703
- })
5704
-
5705
-
5706
- // Insert the hidden input as specified in the settings.
5707
- if ( SETTINGS.container ) $( SETTINGS.container ).append( P._hidden )
5708
- else $ELEMENT.after( P._hidden )
5709
- }
5710
-
5711
-
5712
- // For iOS8.
5713
- function handleKeydownEvent( event ) {
5714
-
5715
- var keycode = event.keyCode,
5716
-
5717
- // Check if one of the delete keys was pressed.
5718
- isKeycodeDelete = /^(8|46)$/.test(keycode)
5719
-
5720
- // For some reason IE clears the input value on “escape”.
5721
- if ( keycode == 27 ) {
5722
- P.close()
5723
- return false
5724
- }
5725
-
5726
- // Check if `space` or `delete` was pressed or the picker is closed with a key movement.
5727
- if ( keycode == 32 || isKeycodeDelete || !STATE.open && P.component.key[keycode] ) {
5728
-
5729
- // Prevent it from moving the page and bubbling to doc.
5730
- event.preventDefault()
5731
- event.stopPropagation()
5732
-
5733
- // If `delete` was pressed, clear the values and close the picker.
5734
- // Otherwise open the picker.
5735
- if ( isKeycodeDelete ) { P.clear().close() }
5736
- else { P.open() }
5737
- }
5738
- }
5739
-
5740
-
5741
- // Separated for IE
5742
- function handleFocusToOpenEvent( event ) {
5743
-
5744
- // Stop the event from propagating to the doc.
5745
- event.stopPropagation()
5746
-
5747
- // If it’s a focus event, add the “focused” class to the root.
5748
- if ( event.type == 'focus' ) {
5749
- P.$root.addClass( CLASSES.focused )
5750
- }
5751
-
5752
- // And then finally open the picker.
5753
- P.open()
5754
- }
5755
-
5756
-
5757
- // Return a new picker instance.
5758
- return new PickerInstance()
5759
- } //PickerConstructor
5760
-
5761
-
5762
-
5763
- /**
5764
- * The default classes and prefix to use for the HTML classes.
5765
- */
5766
- PickerConstructor.klasses = function( prefix ) {
5767
- prefix = prefix || 'picker'
5768
- return {
5769
-
5770
- picker: prefix,
5771
- opened: prefix + '--opened',
5772
- focused: prefix + '--focused',
5773
-
5774
- input: prefix + '__input',
5775
- active: prefix + '__input--active',
5776
- target: prefix + '__input--target',
5777
-
5778
- holder: prefix + '__holder',
5779
-
5780
- frame: prefix + '__frame',
5781
- wrap: prefix + '__wrap',
5782
-
5783
- box: prefix + '__box'
5784
- }
5785
- } //PickerConstructor.klasses
5786
-
5787
-
5788
-
5789
- /**
5790
- * Check if the default theme is being used.
5791
- */
5792
- function isUsingDefaultTheme( element ) {
5793
-
5794
- var theme,
5795
- prop = 'position'
5796
-
5797
- // For IE.
5798
- if ( element.currentStyle ) {
5799
- theme = element.currentStyle[prop]
5800
- }
5801
-
5802
- // For normal browsers.
5803
- else if ( window.getComputedStyle ) {
5804
- theme = getComputedStyle( element )[prop]
5805
- }
5806
-
5807
- return theme == 'fixed'
5808
- }
5809
-
5810
-
5811
-
5812
- /**
5813
- * Get the width of the browser’s scrollbar.
5814
- * Taken from: https://github.com/VodkaBears/Remodal/blob/master/src/jquery.remodal.js
5815
- */
5816
- function getScrollbarWidth() {
5817
-
5818
- if ( $html.height() <= $window.height() ) {
5819
- return 0
5820
- }
5821
-
5822
- var $outer = $( '<div style="visibility:hidden;width:100px" />' ).
5823
- appendTo( 'body' )
5824
-
5825
- // Get the width without scrollbars.
5826
- var widthWithoutScroll = $outer[0].offsetWidth
5827
-
5828
- // Force adding scrollbars.
5829
- $outer.css( 'overflow', 'scroll' )
5830
-
5831
- // Add the inner div.
5832
- var $inner = $( '<div style="width:100%" />' ).appendTo( $outer )
5833
-
5834
- // Get the width with scrollbars.
5835
- var widthWithScroll = $inner[0].offsetWidth
5836
-
5837
- // Remove the divs.
5838
- $outer.remove()
5839
-
5840
- // Return the difference between the widths.
5841
- return widthWithoutScroll - widthWithScroll
5842
- }
5843
-
5844
-
5845
-
5846
- /**
5847
- * PickerConstructor helper methods.
5848
- */
5849
- PickerConstructor._ = {
5850
-
5851
- /**
5852
- * Create a group of nodes. Expects:
5853
- * `
5854
- {
5855
- min: {Integer},
5856
- max: {Integer},
5857
- i: {Integer},
5858
- node: {String},
5859
- item: {Function}
5860
- }
5861
- * `
5862
- */
5863
- group: function( groupObject ) {
5864
-
5865
- var
5866
- // Scope for the looped object
5867
- loopObjectScope,
5868
-
5869
- // Create the nodes list
5870
- nodesList = '',
5871
-
5872
- // The counter starts from the `min`
5873
- counter = PickerConstructor._.trigger( groupObject.min, groupObject )
5874
-
5875
-
5876
- // Loop from the `min` to `max`, incrementing by `i`
5877
- for ( ; counter <= PickerConstructor._.trigger( groupObject.max, groupObject, [ counter ] ); counter += groupObject.i ) {
5878
-
5879
- // Trigger the `item` function within scope of the object
5880
- loopObjectScope = PickerConstructor._.trigger( groupObject.item, groupObject, [ counter ] )
5881
-
5882
- // Splice the subgroup and create nodes out of the sub nodes
5883
- nodesList += PickerConstructor._.node(
5884
- groupObject.node,
5885
- loopObjectScope[ 0 ], // the node
5886
- loopObjectScope[ 1 ], // the classes
5887
- loopObjectScope[ 2 ] // the attributes
5888
- )
5889
- }
5890
-
5891
- // Return the list of nodes
5892
- return nodesList
5893
- }, //group
5894
-
5895
-
5896
- /**
5897
- * Create a dom node string
5898
- */
5899
- node: function( wrapper, item, klass, attribute ) {
5900
-
5901
- // If the item is false-y, just return an empty string
5902
- if ( !item ) return ''
5903
-
5904
- // If the item is an array, do a join
5905
- item = $.isArray( item ) ? item.join( '' ) : item
5906
-
5907
- // Check for the class
5908
- klass = klass ? ' class="' + klass + '"' : ''
5909
-
5910
- // Check for any attributes
5911
- attribute = attribute ? ' ' + attribute : ''
5912
-
5913
- // Return the wrapped item
5914
- return '<' + wrapper + klass + attribute + '>' + item + '</' + wrapper + '>'
5915
- }, //node
5916
-
5917
-
5918
- /**
5919
- * Lead numbers below 10 with a zero.
5920
- */
5921
- lead: function( number ) {
5922
- return ( number < 10 ? '0': '' ) + number
5923
- },
5924
-
5925
-
5926
- /**
5927
- * Trigger a function otherwise return the value.
5928
- */
5929
- trigger: function( callback, scope, args ) {
5930
- return typeof callback == 'function' ? callback.apply( scope, args || [] ) : callback
5931
- },
5932
-
5933
-
5934
- /**
5935
- * If the second character is a digit, length is 2 otherwise 1.
5936
- */
5937
- digits: function( string ) {
5938
- return ( /\d/ ).test( string[ 1 ] ) ? 2 : 1
5939
- },
5940
-
5941
-
5942
- /**
5943
- * Tell if something is a date object.
5944
- */
5945
- isDate: function( value ) {
5946
- return {}.toString.call( value ).indexOf( 'Date' ) > -1 && this.isInteger( value.getDate() )
5947
- },
5948
-
5949
-
5950
- /**
5951
- * Tell if something is an integer.
5952
- */
5953
- isInteger: function( value ) {
5954
- return {}.toString.call( value ).indexOf( 'Number' ) > -1 && value % 1 === 0
5955
- },
5956
-
5957
-
5958
- /**
5959
- * Create ARIA attribute strings.
5960
- */
5961
- ariaAttr: ariaAttr
5962
- } //PickerConstructor._
5963
-
5964
-
5965
-
5966
- /**
5967
- * Extend the picker with a component and defaults.
5968
- */
5969
- PickerConstructor.extend = function( name, Component ) {
5970
-
5971
- // Extend jQuery.
5972
- $.fn[ name ] = function( options, action ) {
5973
-
5974
- // Grab the component data.
5975
- var componentData = this.data( name )
5976
-
5977
- // If the picker is requested, return the data object.
5978
- if ( options == 'picker' ) {
5979
- return componentData
5980
- }
5981
-
5982
- // If the component data exists and `options` is a string, carry out the action.
5983
- if ( componentData && typeof options == 'string' ) {
5984
- return PickerConstructor._.trigger( componentData[ options ], componentData, [ action ] )
5985
- }
5986
-
5987
- // Otherwise go through each matched element and if the component
5988
- // doesn’t exist, create a new picker using `this` element
5989
- // and merging the defaults and options with a deep copy.
5990
- return this.each( function() {
5991
- var $this = $( this )
5992
- if ( !$this.data( name ) ) {
5993
- new PickerConstructor( this, name, Component, options )
5994
- }
5995
- })
5996
- }
5997
-
5998
- // Set the defaults.
5999
- $.fn[ name ].defaults = Component.defaults
6000
- } //PickerConstructor.extend
6001
-
6002
-
6003
-
6004
- function aria(element, attribute, value) {
6005
- if ( $.isPlainObject(attribute) ) {
6006
- for ( var key in attribute ) {
6007
- ariaSet(element, key, attribute[key])
6008
- }
6009
- }
6010
- else {
6011
- ariaSet(element, attribute, value)
6012
- }
6013
- }
6014
- function ariaSet(element, attribute, value) {
6015
- element.setAttribute(
6016
- (attribute == 'role' ? '' : 'aria-') + attribute,
6017
- value
6018
- )
6019
- }
6020
- function ariaAttr(attribute, data) {
6021
- if ( !$.isPlainObject(attribute) ) {
6022
- attribute = { attribute: data }
6023
- }
6024
- data = ''
6025
- for ( var key in attribute ) {
6026
- var attr = (key == 'role' ? '' : 'aria-') + key,
6027
- attrVal = attribute[key]
6028
- data += attrVal == null ? '' : attr + '="' + attribute[key] + '"'
6029
- }
6030
- return data
6031
- }
6032
-
6033
- // IE8 bug throws an error for activeElements within iframes.
6034
- function getActiveElement() {
6035
- try {
6036
- return document.activeElement
6037
- } catch ( err ) { }
6038
- }
6039
-
6040
-
6041
-
6042
- // Expose the picker constructor.
6043
- return PickerConstructor
6044
-
6045
-
6046
- }));
6047
-
6048
-
6049
- ;/*!
6050
- * Date picker for pickadate.js v3.5.0
6051
- * http://amsul.github.io/pickadate.js/date.htm
6052
- */
6053
-
6054
- (function ( factory ) {
6055
-
6056
- // AMD.
6057
- if ( typeof define == 'function' && define.amd )
6058
- define( ['picker', 'jquery'], factory )
6059
-
6060
- // Node.js/browserify.
6061
- else if ( typeof exports == 'object' )
6062
- module.exports = factory( require('./picker.js'), require('jquery') )
6063
-
6064
- // Browser globals.
6065
- else factory( Picker, jQuery )
6066
-
6067
- }(function( Picker, $ ) {
6068
-
6069
-
6070
- /**
6071
- * Globals and constants
6072
- */
6073
- var DAYS_IN_WEEK = 7,
6074
- WEEKS_IN_CALENDAR = 6,
6075
- _ = Picker._
6076
-
6077
-
6078
-
6079
- /**
6080
- * The date picker constructor
6081
- */
6082
- function DatePicker( picker, settings ) {
6083
-
6084
- var calendar = this,
6085
- element = picker.$node[ 0 ],
6086
- elementValue = element.value,
6087
- elementDataValue = picker.$node.data( 'value' ),
6088
- valueString = elementDataValue || elementValue,
6089
- formatString = elementDataValue ? settings.formatSubmit : settings.format,
6090
- isRTL = function() {
6091
-
6092
- return element.currentStyle ?
6093
-
6094
- // For IE.
6095
- element.currentStyle.direction == 'rtl' :
6096
-
6097
- // For normal browsers.
6098
- getComputedStyle( picker.$root[0] ).direction == 'rtl'
6099
- }
6100
-
6101
- calendar.settings = settings
6102
- calendar.$node = picker.$node
6103
-
6104
- // The queue of methods that will be used to build item objects.
6105
- calendar.queue = {
6106
- min: 'measure create',
6107
- max: 'measure create',
6108
- now: 'now create',
6109
- select: 'parse create validate',
6110
- highlight: 'parse navigate create validate',
6111
- view: 'parse create validate viewset',
6112
- disable: 'deactivate',
6113
- enable: 'activate'
6114
- }
6115
-
6116
- // The component's item object.
6117
- calendar.item = {}
6118
-
6119
- calendar.item.clear = null
6120
- calendar.item.disable = ( settings.disable || [] ).slice( 0 )
6121
- calendar.item.enable = -(function( collectionDisabled ) {
6122
- return collectionDisabled[ 0 ] === true ? collectionDisabled.shift() : -1
6123
- })( calendar.item.disable )
6124
-
6125
- calendar.
6126
- set( 'min', settings.min ).
6127
- set( 'max', settings.max ).
6128
- set( 'now' )
6129
-
6130
- // When there’s a value, set the `select`, which in turn
6131
- // also sets the `highlight` and `view`.
6132
- if ( valueString ) {
6133
- calendar.set( 'select', valueString, { format: formatString })
6134
- }
6135
-
6136
- // If there’s no value, default to highlighting “today”.
6137
- else {
6138
- calendar.
6139
- set( 'select', null ).
6140
- set( 'highlight', calendar.item.now )
6141
- }
6142
-
6143
-
6144
- // The keycode to movement mapping.
6145
- calendar.key = {
6146
- 40: 7, // Down
6147
- 38: -7, // Up
6148
- 39: function() { return isRTL() ? -1 : 1 }, // Right
6149
- 37: function() { return isRTL() ? 1 : -1 }, // Left
6150
- go: function( timeChange ) {
6151
- var highlightedObject = calendar.item.highlight,
6152
- targetDate = new Date( highlightedObject.year, highlightedObject.month, highlightedObject.date + timeChange )
6153
- calendar.set(
6154
- 'highlight',
6155
- targetDate,
6156
- { interval: timeChange }
6157
- )
6158
- this.render()
6159
- }
6160
- }
6161
-
6162
-
6163
- // Bind some picker events.
6164
- picker.
6165
- on( 'render', function() {
6166
- picker.$root.find( '.' + settings.klass.selectMonth ).on( 'change', function() {
6167
- var value = this.value
6168
- if ( value ) {
6169
- picker.set( 'highlight', [ picker.get( 'view' ).year, value, picker.get( 'highlight' ).date ] )
6170
- picker.$root.find( '.' + settings.klass.selectMonth ).trigger( 'focus' )
6171
- }
6172
- })
6173
- picker.$root.find( '.' + settings.klass.selectYear ).on( 'change', function() {
6174
- var value = this.value
6175
- if ( value ) {
6176
- picker.set( 'highlight', [ value, picker.get( 'view' ).month, picker.get( 'highlight' ).date ] )
6177
- picker.$root.find( '.' + settings.klass.selectYear ).trigger( 'focus' )
6178
- }
6179
- })
6180
- }, 1 ).
6181
- on( 'open', function() {
6182
- var includeToday = ''
6183
- if ( calendar.disabled( calendar.get('now') ) ) {
6184
- includeToday = ':not(.' + settings.klass.buttonToday + ')'
6185
- }
6186
- picker.$root.find( 'button' + includeToday + ', select' ).attr( 'disabled', false )
6187
- }, 1 ).
6188
- on( 'close', function() {
6189
- picker.$root.find( 'button, select' ).attr( 'disabled', true )
6190
- }, 1 )
6191
-
6192
- } //DatePicker
6193
-
6194
-
6195
- /**
6196
- * Set a datepicker item object.
6197
- */
6198
- DatePicker.prototype.set = function( type, value, options ) {
6199
-
6200
- var calendar = this,
6201
- calendarItem = calendar.item
6202
-
6203
- // If the value is `null` just set it immediately.
6204
- if ( value === null ) {
6205
- if ( type == 'clear' ) type = 'select'
6206
- calendarItem[ type ] = value
6207
- return calendar
6208
- }
6209
-
6210
- // Otherwise go through the queue of methods, and invoke the functions.
6211
- // Update this as the time unit, and set the final value as this item.
6212
- // * In the case of `enable`, keep the queue but set `disable` instead.
6213
- // And in the case of `flip`, keep the queue but set `enable` instead.
6214
- calendarItem[ ( type == 'enable' ? 'disable' : type == 'flip' ? 'enable' : type ) ] = calendar.queue[ type ].split( ' ' ).map( function( method ) {
6215
- value = calendar[ method ]( type, value, options )
6216
- return value
6217
- }).pop()
6218
-
6219
- // Check if we need to cascade through more updates.
6220
- if ( type == 'select' ) {
6221
- calendar.set( 'highlight', calendarItem.select, options )
6222
- }
6223
- else if ( type == 'highlight' ) {
6224
- calendar.set( 'view', calendarItem.highlight, options )
6225
- }
6226
- else if ( type.match( /^(flip|min|max|disable|enable)$/ ) ) {
6227
- if ( calendarItem.select && calendar.disabled( calendarItem.select ) ) {
6228
- calendar.set( 'select', calendarItem.select, options )
6229
- }
6230
- if ( calendarItem.highlight && calendar.disabled( calendarItem.highlight ) ) {
6231
- calendar.set( 'highlight', calendarItem.highlight, options )
6232
- }
6233
- }
6234
-
6235
- return calendar
6236
- } //DatePicker.prototype.set
6237
-
6238
-
6239
- /**
6240
- * Get a datepicker item object.
6241
- */
6242
- DatePicker.prototype.get = function( type ) {
6243
- return this.item[ type ]
6244
- } //DatePicker.prototype.get
6245
-
6246
-
6247
- /**
6248
- * Create a picker date object.
6249
- */
6250
- DatePicker.prototype.create = function( type, value, options ) {
6251
-
6252
- var isInfiniteValue,
6253
- calendar = this
6254
-
6255
- // If there’s no value, use the type as the value.
6256
- value = value === undefined ? type : value
6257
-
6258
-
6259
- // If it’s infinity, update the value.
6260
- if ( value == -Infinity || value == Infinity ) {
6261
- isInfiniteValue = value
6262
- }
6263
-
6264
- // If it’s an object, use the native date object.
6265
- else if ( $.isPlainObject( value ) && _.isInteger( value.pick ) ) {
6266
- value = value.obj
6267
- }
6268
-
6269
- // If it’s an array, convert it into a date and make sure
6270
- // that it’s a valid date – otherwise default to today.
6271
- else if ( $.isArray( value ) ) {
6272
- value = new Date( value[ 0 ], value[ 1 ], value[ 2 ] )
6273
- value = _.isDate( value ) ? value : calendar.create().obj
6274
- }
6275
-
6276
- // If it’s a number or date object, make a normalized date.
6277
- else if ( _.isInteger( value ) || _.isDate( value ) ) {
6278
- value = calendar.normalize( new Date( value ), options )
6279
- }
6280
-
6281
- // If it’s a literal true or any other case, set it to now.
6282
- else /*if ( value === true )*/ {
6283
- value = calendar.now( type, value, options )
6284
- }
6285
-
6286
- // Return the compiled object.
6287
- return {
6288
- year: isInfiniteValue || value.getFullYear(),
6289
- month: isInfiniteValue || value.getMonth(),
6290
- date: isInfiniteValue || value.getDate(),
6291
- day: isInfiniteValue || value.getDay(),
6292
- obj: isInfiniteValue || value,
6293
- pick: isInfiniteValue || value.getTime()
6294
- }
6295
- } //DatePicker.prototype.create
6296
-
6297
-
6298
- /**
6299
- * Create a range limit object using an array, date object,
6300
- * literal “true”, or integer relative to another time.
6301
- */
6302
- DatePicker.prototype.createRange = function( from, to ) {
6303
-
6304
- var calendar = this,
6305
- createDate = function( date ) {
6306
- if ( date === true || $.isArray( date ) || _.isDate( date ) ) {
6307
- return calendar.create( date )
6308
- }
6309
- return date
6310
- }
6311
-
6312
- // Create objects if possible.
6313
- if ( !_.isInteger( from ) ) {
6314
- from = createDate( from )
6315
- }
6316
- if ( !_.isInteger( to ) ) {
6317
- to = createDate( to )
6318
- }
6319
-
6320
- // Create relative dates.
6321
- if ( _.isInteger( from ) && $.isPlainObject( to ) ) {
6322
- from = [ to.year, to.month, to.date + from ];
6323
- }
6324
- else if ( _.isInteger( to ) && $.isPlainObject( from ) ) {
6325
- to = [ from.year, from.month, from.date + to ];
6326
- }
6327
-
6328
- return {
6329
- from: createDate( from ),
6330
- to: createDate( to )
6331
- }
6332
- } //DatePicker.prototype.createRange
6333
-
6334
-
6335
- /**
6336
- * Check if a date unit falls within a date range object.
6337
- */
6338
- DatePicker.prototype.withinRange = function( range, dateUnit ) {
6339
- range = this.createRange(range.from, range.to)
6340
- return dateUnit.pick >= range.from.pick && dateUnit.pick <= range.to.pick
6341
- }
6342
-
6343
-
6344
- /**
6345
- * Check if two date range objects overlap.
6346
- */
6347
- DatePicker.prototype.overlapRanges = function( one, two ) {
6348
-
6349
- var calendar = this
6350
-
6351
- // Convert the ranges into comparable dates.
6352
- one = calendar.createRange( one.from, one.to )
6353
- two = calendar.createRange( two.from, two.to )
6354
-
6355
- return calendar.withinRange( one, two.from ) || calendar.withinRange( one, two.to ) ||
6356
- calendar.withinRange( two, one.from ) || calendar.withinRange( two, one.to )
6357
- }
6358
-
6359
-
6360
- /**
6361
- * Get the date today.
6362
- */
6363
- DatePicker.prototype.now = function( type, value, options ) {
6364
- value = new Date()
6365
- if ( options && options.rel ) {
6366
- value.setDate( value.getDate() + options.rel )
6367
- }
6368
- return this.normalize( value, options )
6369
- }
6370
-
6371
-
6372
- /**
6373
- * Navigate to next/prev month.
6374
- */
6375
- DatePicker.prototype.navigate = function( type, value, options ) {
6376
-
6377
- var targetDateObject,
6378
- targetYear,
6379
- targetMonth,
6380
- targetDate,
6381
- isTargetArray = $.isArray( value ),
6382
- isTargetObject = $.isPlainObject( value ),
6383
- viewsetObject = this.item.view/*,
6384
- safety = 100*/
6385
-
6386
-
6387
- if ( isTargetArray || isTargetObject ) {
6388
-
6389
- if ( isTargetObject ) {
6390
- targetYear = value.year
6391
- targetMonth = value.month
6392
- targetDate = value.date
6393
- }
6394
- else {
6395
- targetYear = +value[0]
6396
- targetMonth = +value[1]
6397
- targetDate = +value[2]
6398
- }
6399
-
6400
- // If we’re navigating months but the view is in a different
6401
- // month, navigate to the view’s year and month.
6402
- if ( options && options.nav && viewsetObject && viewsetObject.month !== targetMonth ) {
6403
- targetYear = viewsetObject.year
6404
- targetMonth = viewsetObject.month
6405
- }
6406
-
6407
- // Figure out the expected target year and month.
6408
- targetDateObject = new