a3 Lazy Load - Version 1.9.0

Version Description

This feature upgrade is focused on adding a number of new options for excluding Lazy Load from sections of a site plus Compatibility with WordPress 4.9.8, Gutenberg 3.4.0 and WooCommerce 3.4.4

Download this release

Release Info

Developer a3rev
Plugin Icon 128x128 a3 Lazy Load
Version 1.9.0
Comparing to
See all releases

Code changes from version 1.8.9 to 1.9.0

Files changed (38) hide show
  1. a3-lazy-load.php +5 -4
  2. admin/a3-lazy-load-admin.php +5 -5
  3. admin/admin-init.php +1 -1
  4. admin/admin-interface.php +87 -40
  5. admin/admin-ui.php +6 -4
  6. admin/assets/css/admin-ui-style.css +12 -0
  7. admin/assets/css/admin-ui-style.min.css +356 -222
  8. admin/assets/css/modal.css +94 -65
  9. admin/assets/css/modal.min.css +1 -172
  10. admin/assets/css/popover.css +192 -0
  11. admin/assets/css/popover.min.css +1 -0
  12. admin/assets/js/admin-ui-script.js +28 -6
  13. admin/assets/js/bootstrap/modal.js +175 -126
  14. admin/assets/js/bootstrap/modal.min.js +18 -1
  15. admin/assets/js/bootstrap/popover.js +205 -0
  16. admin/assets/js/bootstrap/popover.min.js +7 -0
  17. admin/assets/js/bootstrap/popper.min.js +5 -0
  18. admin/assets/js/bootstrap/tooltip.js +673 -0
  19. admin/assets/js/bootstrap/tooltip.min.js +21 -0
  20. admin/assets/js/bootstrap/util.js +45 -64
  21. admin/assets/js/bootstrap/util.min.js +3 -1
  22. admin/assets/js/chosen/chosen.ajaxify.js +189 -0
  23. admin/assets/js/tipTip/jquery.tipTip.js +0 -191
  24. admin/assets/js/tipTip/jquery.tipTip.min.js +0 -21
  25. admin/assets/js/tipTip/tipTip.css +0 -113
  26. admin/includes/fonts_face.php +1 -0
  27. admin/less/lib/cssmin.inc.php +3 -3
  28. admin/settings/template-settings/global-settings.php +65 -6
  29. assets/js/jquery.lazyloadxt.extend.js +1 -0
  30. assets/js/jquery.lazyloadxt.extra.js +348 -0
  31. assets/js/jquery.lazyloadxt.extra.min.js +2 -0
  32. assets/js/jquery.lazyloadxt.js +30 -26
  33. assets/js/jquery.lazyloadxt.min.js +2 -1
  34. assets/js/jquery.lazyloadxt.srcset.js +4 -4
  35. assets/js/jquery.lazyloadxt.srcset.min.js +2 -2
  36. classes/class-a3-lazy-load-excludes.php +163 -0
  37. classes/class-a3-lazy-load.php +18 -6
  38. readme.txt +19 -2
a3-lazy-load.php CHANGED
@@ -2,15 +2,15 @@
2
  /*
3
  Plugin Name: a3 Lazy Load
4
  Description: Speed up your site and enhance frontend user's visual experience in PC's, Tablets and mobile with a3 Lazy Load.
5
- Version: 1.8.9
6
  Author: a3rev Software
7
  Author URI: https://a3rev.com/
8
  Requires at least: 4.0
9
- Tested up to: 4.9.6
10
  Text Domain: a3-lazy-load
11
  Domain Path: /languages
12
  WC requires at least: 2.0.0
13
- WC tested up to: 3.4.1
14
  License: GPLv2 or later
15
  Copyright © 2011 a3 Revolution Software Development team
16
  a3 Revolution Software Development team
@@ -32,7 +32,7 @@ define('A3_LAZY_LOAD_CSS_URL', A3_LAZY_LOAD_URL . '/assets/css');
32
  define('A3_LAZY_LOAD_IMAGES_URL', A3_LAZY_LOAD_URL . '/assets/images');
33
 
34
  define( 'A3_LAZY_LOAD_KEY', 'a3_lazy_load' );
35
- define( 'A3_LAZY_VERSION', '1.8.9' );
36
 
37
  /**
38
  * Load Localisation files.
@@ -62,6 +62,7 @@ include( 'admin/admin-pages/admin-settings-page.php' );
62
  include( 'admin/admin-init.php' );
63
  include( 'admin/less/sass.php' );
64
 
 
65
  include( 'classes/class-a3-lazy-load.php' );
66
  include( 'classes/class-a3-lazy-load-filter.php' );
67
 
2
  /*
3
  Plugin Name: a3 Lazy Load
4
  Description: Speed up your site and enhance frontend user's visual experience in PC's, Tablets and mobile with a3 Lazy Load.
5
+ Version: 1.9.0
6
  Author: a3rev Software
7
  Author URI: https://a3rev.com/
8
  Requires at least: 4.0
9
+ Tested up to: 4.9.8
10
  Text Domain: a3-lazy-load
11
  Domain Path: /languages
12
  WC requires at least: 2.0.0
13
+ WC tested up to: 3.4.4
14
  License: GPLv2 or later
15
  Copyright © 2011 a3 Revolution Software Development team
16
  a3 Revolution Software Development team
32
  define('A3_LAZY_LOAD_IMAGES_URL', A3_LAZY_LOAD_URL . '/assets/images');
33
 
34
  define( 'A3_LAZY_LOAD_KEY', 'a3_lazy_load' );
35
+ define( 'A3_LAZY_VERSION', '1.9.0' );
36
 
37
  /**
38
  * Load Localisation files.
62
  include( 'admin/admin-init.php' );
63
  include( 'admin/less/sass.php' );
64
 
65
+ include( 'classes/class-a3-lazy-load-excludes.php' );
66
  include( 'classes/class-a3-lazy-load.php' );
67
  include( 'classes/class-a3-lazy-load-filter.php' );
68
 
admin/a3-lazy-load-admin.php CHANGED
@@ -3,10 +3,7 @@
3
  function a3_lazy_load_activated(){
4
  update_option('a3_lazy_load_version', A3_LAZY_VERSION );
5
 
6
- // Set Settings Default from Admin Init
7
  global $a3_lazy_load_admin_init;
8
- $a3_lazy_load_admin_init->set_default_settings();
9
-
10
  delete_metadata( 'user', 0, $a3_lazy_load_admin_init->plugin_name . '-' . 'plugin_framework_global_box' . '-' . 'opened', '', true );
11
 
12
  update_option('a3_lazy_load_just_installed', true);
@@ -16,10 +13,13 @@ function a3_lazy_load_activated(){
16
  * Load languages file
17
  */
18
  function a3_lazy_load_init() {
19
- global $a3_lazy_load_global_settings;
20
 
21
  if ( get_option( 'a3_lazy_load_just_installed' ) ) {
22
  delete_option( 'a3_lazy_load_just_installed' );
 
 
 
 
23
  }
24
 
25
  a3_lazy_load_plugin_textdomain();
@@ -34,7 +34,7 @@ $a3_lazy_load_admin_init->init();
34
  add_filter( $a3_lazy_load_admin_init->plugin_name . '_plugin_extension_boxes', array( 'A3_Lazy_Load_Hook_Filter', 'plugin_extension_box' ) );
35
 
36
  // Add language
37
- add_action('init', 'a3_lazy_load_init');
38
 
39
  // Add custom style to dashboard
40
  add_action( 'admin_enqueue_scripts', array( 'A3_Lazy_Load_Hook_Filter', 'a3_wp_admin' ) );
3
  function a3_lazy_load_activated(){
4
  update_option('a3_lazy_load_version', A3_LAZY_VERSION );
5
 
 
6
  global $a3_lazy_load_admin_init;
 
 
7
  delete_metadata( 'user', 0, $a3_lazy_load_admin_init->plugin_name . '-' . 'plugin_framework_global_box' . '-' . 'opened', '', true );
8
 
9
  update_option('a3_lazy_load_just_installed', true);
13
  * Load languages file
14
  */
15
  function a3_lazy_load_init() {
 
16
 
17
  if ( get_option( 'a3_lazy_load_just_installed' ) ) {
18
  delete_option( 'a3_lazy_load_just_installed' );
19
+
20
+ // Set Settings Default from Admin Init
21
+ global $a3_lazy_load_admin_init;
22
+ $a3_lazy_load_admin_init->set_default_settings();
23
  }
24
 
25
  a3_lazy_load_plugin_textdomain();
34
  add_filter( $a3_lazy_load_admin_init->plugin_name . '_plugin_extension_boxes', array( 'A3_Lazy_Load_Hook_Filter', 'plugin_extension_box' ) );
35
 
36
  // Add language
37
+ add_action('init', 'a3_lazy_load_init', 105);
38
 
39
  // Add custom style to dashboard
40
  add_action( 'admin_enqueue_scripts', array( 'A3_Lazy_Load_Hook_Filter', 'a3_wp_admin' ) );
admin/admin-init.php CHANGED
@@ -42,7 +42,7 @@ class A3_Lazy_Load_Admin_Init extends A3_Lazy_Load_Admin_UI
42
  $menu_hook = 'admin_menu';
43
  add_action( $menu_hook, array( $this, 'register_admin_menu' ) );
44
 
45
- add_action( 'plugins_loaded', array( $this, 'get_all_settings' ), 8 );
46
  }
47
 
48
  /*-----------------------------------------------------------------------------------*/
42
  $menu_hook = 'admin_menu';
43
  add_action( $menu_hook, array( $this, 'register_admin_menu' ) );
44
 
45
+ add_action( 'init', array( $this, 'get_all_settings' ), 101 );
46
  }
47
 
48
  /*-----------------------------------------------------------------------------------*/
admin/admin-interface.php CHANGED
@@ -40,6 +40,8 @@ class A3_Lazy_Load_Admin_Interface extends A3_Lazy_Load_Admin_UI
40
  /*-----------------------------------------------------------------------------------*/
41
  public function __construct() {
42
 
 
 
43
  $this->admin_includes();
44
 
45
  add_action( 'init', array( $this, 'init_scripts' ) );
@@ -87,9 +89,30 @@ class A3_Lazy_Load_Admin_Interface extends A3_Lazy_Load_Admin_UI
87
 
88
  public function register_modal_scripts() {
89
  $suffix = defined('SCRIPT_DEBUG') && SCRIPT_DEBUG ? '' : '.min';
90
- wp_register_style( 'bootstrap-modal', $this->admin_plugin_url() . '/assets/css/modal' . $suffix . '.css', array(), '4.0.0', 'all' );
91
- wp_register_script( 'bootstrap-util', $this->admin_plugin_url() . '/assets/js/bootstrap/util' . $suffix . '.js', array( 'jquery' ), '4.0.0', false );
92
- wp_register_script( 'bootstrap-modal', $this->admin_plugin_url() . '/assets/js/bootstrap/modal' . $suffix . '.js', array( 'jquery', 'bootstrap-util' ), '4.0.0', false );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
93
  }
94
 
95
  /*-----------------------------------------------------------------------------------*/
@@ -100,16 +123,18 @@ class A3_Lazy_Load_Admin_Interface extends A3_Lazy_Load_Admin_UI
100
 
101
  $suffix = defined('SCRIPT_DEBUG') && SCRIPT_DEBUG ? '' : '.min';
102
  $rtl = is_rtl() ? '.rtl' : '';
 
 
103
 
104
  wp_register_script( 'chosen', $this->admin_plugin_url() . '/assets/js/chosen/chosen.jquery' . $suffix . '.js', array( 'jquery' ), true, false );
105
  wp_register_script( 'a3rev-chosen-new', $this->admin_plugin_url() . '/assets/js/chosen/chosen.jquery' . $suffix . '.js', array( 'jquery' ), $this->framework_version, false );
 
106
  wp_register_script( 'a3rev-style-checkboxes', $this->admin_plugin_url() . '/assets/js/iphone-style-checkboxes' . $rtl . '.js', array('jquery'), $this->framework_version, false );
107
  wp_register_script( 'jquery-ui-slider-rtl', $this->admin_plugin_url() . '/assets/js/ui-slider/jquery.ui.slider.rtl' . $suffix . '.js', array('jquery'), true, true );
108
 
109
- wp_register_script( 'a3rev-admin-ui-script', $this->admin_plugin_url() . '/assets/js/admin-ui-script.js', array('jquery'), $this->framework_version, true );
110
  wp_register_script( 'a3rev-typography-preview', $this->admin_plugin_url() . '/assets/js/a3rev-typography-preview.js', array('jquery'), $this->framework_version, true );
111
  wp_register_script( 'a3rev-settings-preview', $this->admin_plugin_url() . '/assets/js/a3rev-settings-preview.js', array('jquery'), $this->framework_version, true );
112
- wp_register_script( 'jquery-tiptip', $this->admin_plugin_url() . '/assets/js/tipTip/jquery.tipTip' . $suffix . '.js', array( 'jquery' ), true, true );
113
  wp_register_script( 'a3rev-metabox-ui', $this->admin_plugin_url() . '/assets/js/data-meta-boxes.js', array( 'jquery' ), $this->framework_version, true );
114
  wp_register_script( 'jquery-rwd-image-maps', $this->admin_plugin_url() . '/assets/js/rwdImageMaps/jquery.rwdImageMaps.min.js', array( 'jquery' ), true, true );
115
  wp_register_script( 'jquery-datetime-picker', $this->admin_plugin_url() . '/assets/js/datetimepicker/jquery.datetimepicker.js', array( 'jquery' ), true, true );
@@ -123,12 +148,11 @@ class A3_Lazy_Load_Admin_Interface extends A3_Lazy_Load_Admin_UI
123
  wp_enqueue_script( 'jquery-ui-slider' );
124
  }
125
  wp_enqueue_script( 'chosen' );
126
- wp_enqueue_script( 'a3rev-chosen-new' );
127
  wp_enqueue_script( 'a3rev-style-checkboxes' );
128
  wp_enqueue_script( 'a3rev-admin-ui-script' );
129
  wp_enqueue_script( 'a3rev-typography-preview' );
130
  wp_enqueue_script( 'a3rev-settings-preview' );
131
- wp_enqueue_script( 'jquery-tiptip' );
132
  wp_enqueue_script( 'a3rev-metabox-ui' );
133
 
134
  } // End admin_script_load()
@@ -233,7 +257,6 @@ class A3_Lazy_Load_Admin_Interface extends A3_Lazy_Load_Admin_UI
233
  wp_enqueue_style( 'wp-color-picker' );
234
  wp_enqueue_style( 'jquery-datetime-picker', $this->admin_plugin_url() . '/assets/css/jquery.datetimepicker.css' );
235
  wp_enqueue_style( 'a3rev-chosen-new-style', $this->admin_plugin_url() . '/assets/js/chosen/chosen' . $suffix . '.css', array(), $this->framework_version );
236
- wp_enqueue_style( 'a3rev-tiptip-style', $this->admin_plugin_url() . '/assets/js/tipTip/tipTip.css' );
237
  wp_enqueue_style( 'a3rev-metabox-ui-style', $this->admin_plugin_url() . '/assets/css/a3_admin_metabox.css', array(), $this->framework_version );
238
 
239
  if ( is_rtl() ) {
@@ -1158,6 +1181,7 @@ class A3_Lazy_Load_Admin_Interface extends A3_Lazy_Load_Admin_UI
1158
  * checked_label => text : apply for onoff_checkbox, switcher_checkbox only ( set it to show the text instead ON word default )
1159
  * unchecked_label => text : apply for onoff_checkbox, switcher_checkbox only ( set it to show the text instead OFF word default )
1160
  * options => array : apply for select, multiselect, radio types
 
1161
  *
1162
  * onoff_options => array : apply for onoff_radio only
1163
  * ---------------- example ---------------------
@@ -1457,7 +1481,7 @@ class A3_Lazy_Load_Admin_Interface extends A3_Lazy_Load_Admin_UI
1457
 
1458
  } elseif ( $tip ) {
1459
 
1460
- $tip = '<div class="help_tip a3-plugin-ui-icon a3-plugin-ui-help-icon" data-tip="' . esc_attr( $tip ) . '"></div>';
1461
 
1462
  }
1463
 
@@ -1712,7 +1736,7 @@ class A3_Lazy_Load_Admin_Interface extends A3_Lazy_Load_Admin_UI
1712
  // open box handle
1713
  echo '<div data-form-key="'. esc_attr( trim( $form_key ) ) .'" data-box-id="'. esc_attr( $heading_box_id ) .'" class="a3rev_panel_box_handle ' . $box_handle_class .'" >' . "\n\n";
1714
 
1715
- echo ( ! empty( $value['name'] ) ) ? '<h3 class="a3-plugin-ui-panel-box '. $toggle_box_class . ' ' . $opened_class . '">'. esc_html( $value['name'] ) .' '. $view_doc .'</h3>' : '';
1716
 
1717
  if ( stristr( $value['class'], 'pro_feature_fields' ) !== false && ! empty( $value['id'] ) ) $this->upgrade_top_message( true, sanitize_title( $value['id'] ) );
1718
  elseif ( stristr( $value['class'], 'pro_feature_fields' ) !== false ) $this->upgrade_top_message( true );
@@ -1738,7 +1762,7 @@ class A3_Lazy_Load_Admin_Interface extends A3_Lazy_Load_Admin_UI
1738
  if ( stristr( $value['class'], 'pro_feature_fields' ) !== false && ! empty( $value['id'] ) ) $this->upgrade_top_message( true, sanitize_title( $value['id'] ) );
1739
  elseif ( stristr( $value['class'], 'pro_feature_fields' ) !== false ) $this->upgrade_top_message( true );
1740
 
1741
- echo ( ! empty( $value['name'] ) ) ? '<h3>'. esc_html( $value['name'] ) .' '. $view_doc .'</h3>' : '';
1742
  }
1743
 
1744
  if ( ! empty( $value['desc'] ) ) {
@@ -1850,7 +1874,7 @@ class A3_Lazy_Load_Admin_Interface extends A3_Lazy_Load_Admin_UI
1850
  $submit_data = json_encode( $value['submit_data'] );
1851
 
1852
  ?><tr valign="top">
1853
- <th scope="row" class="titledesc"><?php echo $tip; ?><?php echo esc_html( $value['name'] ) ?></th>
1854
  <td class="forminp">
1855
 
1856
  <div class="a3rev-ui-<?php echo sanitize_title( $value['type'] ) ?>-control">
@@ -1891,6 +1915,12 @@ class A3_Lazy_Load_Admin_Interface extends A3_Lazy_Load_Admin_UI
1891
  $errors_text = $value['errors_text'];
1892
  $statistic_column = isset( $value['statistic_column'] ) ? $value['statistic_column'] : 1;
1893
 
 
 
 
 
 
 
1894
  $multi_current_items = 0;
1895
  $multi_total_items = 0;
1896
 
@@ -1917,7 +1947,7 @@ class A3_Lazy_Load_Admin_Interface extends A3_Lazy_Load_Admin_UI
1917
  $multi_ajax = json_encode( $multi_ajax );
1918
 
1919
  ?><tr valign="top">
1920
- <th scope="row" class="titledesc"><?php echo $tip; ?><?php echo esc_html( $value['name'] ) ?></th>
1921
  <td class="forminp">
1922
 
1923
  <div class="a3rev-ui-<?php echo sanitize_title( $value['type'] ) ?>-control">
@@ -1931,11 +1961,17 @@ class A3_Lazy_Load_Admin_Interface extends A3_Lazy_Load_Admin_UI
1931
  class="a3rev-ui-<?php echo sanitize_title( $value['type'] ) ?>-button <?php echo esc_attr( $value['class'] ); ?>"
1932
  style="<?php echo esc_attr( $value['css'] ); ?>"
1933
  <?php echo implode( ' ', $custom_attributes ); ?>
 
 
 
1934
  ><?php echo $button_name; ?></button>
1935
  <span class="a3rev-ui-<?php echo sanitize_title( $value['type'] ) ?>-successed"><?php echo $successed_text; ?></span>
1936
  <span class="a3rev-ui-<?php echo sanitize_title( $value['type'] ) ?>-errors"><?php echo $errors_text; ?></span>
1937
 
1938
  <!-- Progress Bar -->
 
 
 
1939
  <div class="a3rev-ui-progress-bar-wrap">
1940
  <div class="a3rev-ui-progress-inner" data-current="<?php echo $multi_current_items; ?>" data-total="<?php echo $multi_total_items; ?>" ></div>
1941
  <div class="a3rev-ui-progressing-text"><?php echo $progressing_text; ?></div>
@@ -2039,7 +2075,7 @@ class A3_Lazy_Load_Admin_Interface extends A3_Lazy_Load_Admin_UI
2039
  ?><tr valign="top">
2040
  <th scope="row" class="titledesc">
2041
  <?php echo $tip; ?>
2042
- <label for="<?php echo $id_attribute; ?>"><?php echo esc_html( $value['name'] ); ?></label>
2043
  </th>
2044
  <td class="forminp forminp-<?php echo sanitize_title( $value['type'] ) ?>">
2045
  <input
@@ -2066,7 +2102,7 @@ class A3_Lazy_Load_Admin_Interface extends A3_Lazy_Load_Admin_UI
2066
  ?><tr valign="top">
2067
  <th scope="row" class="titledesc">
2068
  <?php echo $tip; ?>
2069
- <label for="<?php echo $id_attribute; ?>"><?php echo esc_html( $value['name'] ); ?></label>
2070
  </th>
2071
  <td class="forminp forminp-<?php echo sanitize_title( $value['type'] ) ?>">
2072
  <input
@@ -2097,7 +2133,7 @@ class A3_Lazy_Load_Admin_Interface extends A3_Lazy_Load_Admin_UI
2097
  ?><tr valign="top">
2098
  <th scope="row" class="titledesc">
2099
  <?php echo $tip; ?>
2100
- <label for="<?php echo $id_attribute; ?>"><?php echo esc_html( $value['name'] ); ?></label>
2101
  </th>
2102
  <td class="forminp forminp-<?php echo sanitize_title( $value['type'] ) ?>">
2103
  <input
@@ -2133,7 +2169,7 @@ class A3_Lazy_Load_Admin_Interface extends A3_Lazy_Load_Admin_UI
2133
  ?><tr valign="top">
2134
  <th scope="row" class="titledesc">
2135
  <?php echo $tip; ?>
2136
- <label for="<?php echo $id_attribute; ?>"><?php echo esc_html( $value['name'] ); ?></label>
2137
  </th>
2138
  <td class="forminp forminp-<?php echo sanitize_title( $value['type'] ) ?>">
2139
  <?php echo $description; ?>
@@ -2159,11 +2195,17 @@ class A3_Lazy_Load_Admin_Interface extends A3_Lazy_Load_Admin_UI
2159
  $value['class'] .= ' chzn-rtl';
2160
  }
2161
  if ( ! isset( $value['options'] ) ) $value['options'] = array();
 
 
 
 
 
 
2162
 
2163
  ?><tr valign="top">
2164
  <th scope="row" class="titledesc">
2165
  <?php echo $tip; ?>
2166
- <label for="<?php echo $id_attribute; ?>"><?php echo esc_html( $value['name'] ); ?></label>
2167
  </th>
2168
  <td class="forminp forminp-<?php echo sanitize_title( $value['type'] ) ?>">
2169
  <select
@@ -2174,6 +2216,11 @@ class A3_Lazy_Load_Admin_Interface extends A3_Lazy_Load_Admin_UI
2174
  data-placeholder="<?php echo esc_html( $value['placeholder'] ); ?>"
2175
  <?php echo implode( ' ', $custom_attributes ); ?>
2176
  <?php if ( $value['type'] == 'multiselect' ) echo 'multiple="multiple"'; ?>
 
 
 
 
 
2177
  >
2178
  <?php
2179
  if ( is_array( $value['options'] ) && count( $value['options'] ) > 0 ) {
@@ -2225,7 +2272,7 @@ class A3_Lazy_Load_Admin_Interface extends A3_Lazy_Load_Admin_UI
2225
  ?><tr valign="top">
2226
  <th scope="row" class="titledesc">
2227
  <?php echo $tip; ?>
2228
- <label for="<?php echo $id_attribute; ?>"><?php echo esc_html( $value['name'] ); ?></label>
2229
  </th>
2230
  <td class="forminp forminp-<?php echo sanitize_title( $value['type'] ) ?>">
2231
  <fieldset>
@@ -2264,7 +2311,7 @@ class A3_Lazy_Load_Admin_Interface extends A3_Lazy_Load_Admin_UI
2264
  ?><tr valign="top">
2265
  <th scope="row" class="titledesc">
2266
  <?php echo $tip; ?>
2267
- <label for="<?php echo $id_attribute; ?>"><?php echo esc_html( $value['name'] ); ?></label>
2268
  </th>
2269
  <td class="forminp forminp-<?php echo sanitize_title( $value['type'] ) ?>">
2270
  <fieldset>
@@ -2316,7 +2363,7 @@ class A3_Lazy_Load_Admin_Interface extends A3_Lazy_Load_Admin_UI
2316
  if ( $value['show_if_checked'] == 'option' ) echo 'show_options_if_checked';
2317
  ?>">
2318
  <th scope="row" class="titledesc">
2319
- <label for="<?php echo $id_attribute; ?>"><?php echo esc_html( $value['name'] ); ?></label>
2320
  </th>
2321
  <td class="forminp forminp-checkbox">
2322
  <fieldset>
@@ -2332,7 +2379,7 @@ class A3_Lazy_Load_Admin_Interface extends A3_Lazy_Load_Admin_UI
2332
  }
2333
 
2334
  ?>
2335
- <legend class="screen-reader-text"><span><?php echo esc_html( $value['name'] ) ?></span></legend>
2336
 
2337
  <label for="<?php echo $id_attribute; ?>">
2338
  <input
@@ -2369,7 +2416,7 @@ class A3_Lazy_Load_Admin_Interface extends A3_Lazy_Load_Admin_UI
2369
  ?><tr valign="top">
2370
  <th scope="row" class="titledesc">
2371
  <?php echo $tip; ?>
2372
- <label for="<?php echo $id_attribute; ?>"><?php echo esc_html( $value['name'] ); ?></label>
2373
  </th>
2374
  <td class="forminp forminp-<?php echo sanitize_title( $value['type'] ) ?>">
2375
  <input
@@ -2398,7 +2445,7 @@ class A3_Lazy_Load_Admin_Interface extends A3_Lazy_Load_Admin_UI
2398
  ?><tr valign="top">
2399
  <th scope="row" class="titledesc">
2400
  <?php echo $tip; ?>
2401
- <label for="<?php echo $id_attribute; ?>"><?php echo esc_html( $value['name'] ); ?></label>
2402
  </th>
2403
  <td class="forminp forminp-<?php echo sanitize_title( $value['type'] ) ?>">
2404
  <input
@@ -2425,7 +2472,7 @@ class A3_Lazy_Load_Admin_Interface extends A3_Lazy_Load_Admin_UI
2425
  $crop = checked( 1, $option_value['crop'], false );
2426
 
2427
  ?><tr valign="top">
2428
- <th scope="row" class="titledesc"><?php echo $tip; ?><?php echo esc_html( $value['name'] ) ?></th>
2429
  <td class="forminp forminp-<?php echo sanitize_title( $value['type'] ) ?>">
2430
 
2431
  <label><?php _e( 'Width', 'a3-lazy-load' ); ?> <input name="<?php echo $name_attribute; ?>[width]" id="<?php echo $id_attribute; ?>-width" type="text" class="a3rev-ui-<?php echo sanitize_title( $value['type'] ) ?>-width" value="<?php echo $width; ?>" /></label>
@@ -2460,7 +2507,7 @@ class A3_Lazy_Load_Admin_Interface extends A3_Lazy_Load_Admin_UI
2460
  $args = wp_parse_args( $value['args'], $args );
2461
 
2462
  ?><tr valign="top">
2463
- <th scope="row" class="titledesc"><?php echo $tip; ?><?php echo esc_html( $value['name'] ) ?></th>
2464
  <td class="forminp">
2465
  <?php echo str_replace(' id=', " data-placeholder='" . esc_html( $value['placeholder'] ) . "' style='" . $value['css'] . "' class='" . $value['class'] . "' id=", wp_dropdown_pages( $args ) ); ?> <?php echo $description; ?>
2466
  </td>
@@ -2483,7 +2530,7 @@ class A3_Lazy_Load_Admin_Interface extends A3_Lazy_Load_Admin_UI
2483
  $color = $option_value['color'];
2484
 
2485
  ?><tr valign="top">
2486
- <th scope="row" class="titledesc"><?php echo $tip; ?><?php echo esc_html( $value['name'] ) ?></th>
2487
  <td class="forminp">
2488
  <?php echo $description; ?>
2489
  <div class="a3rev-ui-<?php echo sanitize_title( $value['type'] ) ?>-control">
@@ -2637,7 +2684,7 @@ class A3_Lazy_Load_Admin_Interface extends A3_Lazy_Load_Admin_UI
2637
  $bottom_right_corner = intval( $bottom_right_corner );
2638
 
2639
  ?><tr valign="top">
2640
- <th scope="row" class="titledesc"><?php echo $tip; ?><?php echo esc_html( $value['name'] ) ?></th>
2641
  <td class="forminp forminp-border_corner">
2642
  <?php echo $description; ?>
2643
  <div class="a3rev-ui-settings-control">
@@ -2804,7 +2851,7 @@ class A3_Lazy_Load_Admin_Interface extends A3_Lazy_Load_Admin_UI
2804
  $color = $option_value['color'];
2805
 
2806
  ?><tr valign="top">
2807
- <th scope="row" class="titledesc"><?php echo $tip; ?><?php echo esc_html( $value['name'] ) ?></th>
2808
  <td class="forminp">
2809
  <?php echo $description; ?>
2810
  <div class="a3rev-ui-settings-control">
@@ -2903,7 +2950,7 @@ class A3_Lazy_Load_Admin_Interface extends A3_Lazy_Load_Admin_UI
2903
  $bottom_right_corner = intval( $bottom_right_corner );
2904
 
2905
  ?><tr valign="top">
2906
- <th scope="row" class="titledesc"><?php echo $tip; ?><?php echo esc_html( $value['name'] ) ?></th>
2907
  <td class="forminp forminp-<?php echo sanitize_title( $value['type'] ) ?>">
2908
  <div class="a3rev-ui-settings-control">
2909
  <!-- Border Corner : Rounded or Square -->
@@ -3029,7 +3076,7 @@ class A3_Lazy_Load_Admin_Interface extends A3_Lazy_Load_Admin_UI
3029
  $inset = $option_value['inset'];
3030
 
3031
  ?><tr valign="top">
3032
- <th scope="row" class="titledesc"><?php echo $tip; ?><?php echo esc_html( $value['name'] ) ?></th>
3033
  <td class="forminp forminp-box_shadow">
3034
  <input
3035
  name="<?php echo $name_attribute; ?>[enable]"
@@ -3163,7 +3210,7 @@ class A3_Lazy_Load_Admin_Interface extends A3_Lazy_Load_Admin_UI
3163
  ?><tr valign="top">
3164
  <th scope="row" class="titledesc">
3165
  <?php echo $tip; ?>
3166
- <label for="<?php echo $id_attribute; ?>"><?php echo esc_html( $value['name'] ); ?></label>
3167
  </th>
3168
  <td class="forminp forminp-<?php echo sanitize_title( $value['type'] ) ?>">
3169
  <div class="a3rev-ui-slide-container">
@@ -3207,11 +3254,11 @@ class A3_Lazy_Load_Admin_Interface extends A3_Lazy_Load_Admin_UI
3207
  ?><tr valign="top">
3208
  <th scope="row" class="titledesc">
3209
  <?php echo $tip; ?>
3210
- <label for="<?php echo $id_attribute; ?>"><?php echo esc_html( $value['name'] ); ?></label>
3211
  </th>
3212
  <td class="forminp forminp-<?php echo sanitize_title( $value['type'] ) ?>">
3213
  <?php echo $description; ?>
3214
- <?php echo $a3_lazy_load_uploader->upload_input( $name_attribute, $id_attribute, $option_value, $attachment_id, $value['default'], esc_html( $value['name'] ), $class, esc_attr( $value['css'] ) , '', $strip_methods );?>
3215
  </td>
3216
  </tr><?php
3217
 
@@ -3225,7 +3272,7 @@ class A3_Lazy_Load_Admin_Interface extends A3_Lazy_Load_Admin_UI
3225
  ?><tr valign="top">
3226
  <th scope="row" class="titledesc">
3227
  <?php echo $tip; ?>
3228
- <label for="<?php echo $id_attribute; ?>"><?php echo esc_html( $value['name'] ); ?></label>
3229
  </th>
3230
  <td class="forminp forminp-<?php echo sanitize_title( $value['type'] ) ?>">
3231
  <?php echo $description; ?>
@@ -3249,7 +3296,7 @@ class A3_Lazy_Load_Admin_Interface extends A3_Lazy_Load_Admin_UI
3249
  ?><tr valign="top">
3250
  <th scope="row" class="titledesc">
3251
  <?php echo $tip; ?>
3252
- <label for="<?php echo $id_attribute; ?>"><?php echo esc_html( $value['name'] ); ?></label>
3253
  </th>
3254
  <td class="forminp forminp-<?php echo sanitize_title( $value['type'] ) ?>">
3255
  <?php echo $description; ?>
@@ -3315,7 +3362,7 @@ class A3_Lazy_Load_Admin_Interface extends A3_Lazy_Load_Admin_UI
3315
  style="<?php echo esc_attr( $text_field['css'] ); ?>"
3316
  value="<?php echo esc_attr( $option_value ); ?>"
3317
  class="a3rev-ui-<?php echo sanitize_title( $value['type'] ) ?> <?php echo esc_attr( $text_field['class'] ); ?>"
3318
- /> <span><?php echo esc_html( $text_field['name'] ); ?></span></label>
3319
  <?php
3320
  }
3321
  ?>
@@ -3334,7 +3381,7 @@ class A3_Lazy_Load_Admin_Interface extends A3_Lazy_Load_Admin_UI
3334
  ?><tr valign="top">
3335
  <th scope="row" class="titledesc">
3336
  <?php echo $tip; ?>
3337
- <label for="<?php echo $id_attribute; ?>"><?php echo esc_html( $value['name'] ); ?></label>
3338
  </th>
3339
  <td class="forminp forminp-<?php echo sanitize_title( $value['type'] ) ?>">
3340
  <input
@@ -3533,7 +3580,7 @@ class A3_Lazy_Load_Admin_Interface extends A3_Lazy_Load_Admin_UI
3533
  // open box handle
3534
  echo '<div data-form-key="custom-boxes" data-box-id="'. esc_attr( $heading_box_id ) .'" class="a3rev_panel_box_handle" >' . "\n\n";
3535
 
3536
- echo ( ! empty( $options['name'] ) ) ? '<h3 class="a3-plugin-ui-panel-box '. $toggle_box_class . ' ' . $opened_class . '">'. esc_html( $options['name'] ) .' '. $view_doc .'</h3>' : '';
3537
 
3538
  if ( stristr( $options['class'], 'pro_feature_fields' ) !== false && ! empty( $options['id'] ) ) $this->upgrade_top_message( true, sanitize_title( $options['id'] ) );
3539
  elseif ( stristr( $options['class'], 'pro_feature_fields' ) !== false ) $this->upgrade_top_message( true );
@@ -3551,7 +3598,7 @@ class A3_Lazy_Load_Admin_Interface extends A3_Lazy_Load_Admin_UI
3551
  if ( stristr( $options['class'], 'pro_feature_fields' ) !== false && ! empty( $options['id'] ) ) $this->upgrade_top_message( true, sanitize_title( $options['id'] ) );
3552
  elseif ( stristr( $options['class'], 'pro_feature_fields' ) !== false ) $this->upgrade_top_message( true );
3553
 
3554
- echo ( ! empty( $options['name'] ) ) ? '<h3>'. esc_html( $options['name'] ) .' '. $view_doc .'</h3>' : '';
3555
  }
3556
 
3557
  if ( ! empty( $options['desc'] ) ) {
40
  /*-----------------------------------------------------------------------------------*/
41
  public function __construct() {
42
 
43
+ parent::__construct();
44
+
45
  $this->admin_includes();
46
 
47
  add_action( 'init', array( $this, 'init_scripts' ) );
89
 
90
  public function register_modal_scripts() {
91
  $suffix = defined('SCRIPT_DEBUG') && SCRIPT_DEBUG ? '' : '.min';
92
+ wp_register_style( 'bootstrap-modal', $this->admin_plugin_url() . '/assets/css/modal' . $suffix . '.css', array(), '4.1.1', 'all' );
93
+
94
+ if ( ! wp_script_is( 'bootstrap-util', 'registered' ) ) {
95
+ wp_register_script( 'bootstrap-util', $this->admin_plugin_url() . '/assets/js/bootstrap/util' . $suffix . '.js', array( 'jquery' ), '4.1.1', false );
96
+ }
97
+
98
+ wp_register_script( 'bootstrap-modal', $this->admin_plugin_url() . '/assets/js/bootstrap/modal' . $suffix . '.js', array( 'jquery', 'bootstrap-util' ), '4.1.1', false );
99
+ }
100
+
101
+ public function register_popover_scripts() {
102
+ $suffix = defined('SCRIPT_DEBUG') && SCRIPT_DEBUG ? '' : '.min';
103
+ wp_enqueue_style( 'bootstrap-popover', $this->admin_plugin_url() . '/assets/css/popover' . $suffix . '.css', array(), '4.1.1', 'all' );
104
+
105
+ wp_register_script( 'bootstrap-popper', $this->admin_plugin_url() . '/assets/js/bootstrap/popper.min.js', array( 'jquery' ), '4.1.1', false );
106
+
107
+ if ( ! wp_script_is( 'bootstrap-tooltip', 'registered' ) ) {
108
+ wp_register_script( 'bootstrap-tooltip', $this->admin_plugin_url() . '/assets/js/bootstrap/tooltip' . $suffix . '.js', array( 'jquery' ), '4.1.1', false );
109
+ }
110
+
111
+ if ( ! wp_script_is( 'bootstrap-util', 'registered' ) ) {
112
+ wp_register_script( 'bootstrap-util', $this->admin_plugin_url() . '/assets/js/bootstrap/util' . $suffix . '.js', array( 'jquery' ), '4.1.1', false );
113
+ }
114
+
115
+ wp_register_script( 'bootstrap-popover', $this->admin_plugin_url() . '/assets/js/bootstrap/popover' . $suffix . '.js', array( 'jquery', 'bootstrap-popper', 'bootstrap-util', 'bootstrap-tooltip' ), '4.1.1', false );
116
  }
117
 
118
  /*-----------------------------------------------------------------------------------*/
123
 
124
  $suffix = defined('SCRIPT_DEBUG') && SCRIPT_DEBUG ? '' : '.min';
125
  $rtl = is_rtl() ? '.rtl' : '';
126
+
127
+ $this->register_popover_scripts();
128
 
129
  wp_register_script( 'chosen', $this->admin_plugin_url() . '/assets/js/chosen/chosen.jquery' . $suffix . '.js', array( 'jquery' ), true, false );
130
  wp_register_script( 'a3rev-chosen-new', $this->admin_plugin_url() . '/assets/js/chosen/chosen.jquery' . $suffix . '.js', array( 'jquery' ), $this->framework_version, false );
131
+ wp_register_script( 'a3rev-chosen-ajaxify', $this->admin_plugin_url() . '/assets/js/chosen/chosen.ajaxify.js', array( 'jquery', 'a3rev-chosen-new' ), $this->framework_version, false );
132
  wp_register_script( 'a3rev-style-checkboxes', $this->admin_plugin_url() . '/assets/js/iphone-style-checkboxes' . $rtl . '.js', array('jquery'), $this->framework_version, false );
133
  wp_register_script( 'jquery-ui-slider-rtl', $this->admin_plugin_url() . '/assets/js/ui-slider/jquery.ui.slider.rtl' . $suffix . '.js', array('jquery'), true, true );
134
 
135
+ wp_register_script( 'a3rev-admin-ui-script', $this->admin_plugin_url() . '/assets/js/admin-ui-script.js', array('jquery', 'bootstrap-popover' ), $this->framework_version, true );
136
  wp_register_script( 'a3rev-typography-preview', $this->admin_plugin_url() . '/assets/js/a3rev-typography-preview.js', array('jquery'), $this->framework_version, true );
137
  wp_register_script( 'a3rev-settings-preview', $this->admin_plugin_url() . '/assets/js/a3rev-settings-preview.js', array('jquery'), $this->framework_version, true );
 
138
  wp_register_script( 'a3rev-metabox-ui', $this->admin_plugin_url() . '/assets/js/data-meta-boxes.js', array( 'jquery' ), $this->framework_version, true );
139
  wp_register_script( 'jquery-rwd-image-maps', $this->admin_plugin_url() . '/assets/js/rwdImageMaps/jquery.rwdImageMaps.min.js', array( 'jquery' ), true, true );
140
  wp_register_script( 'jquery-datetime-picker', $this->admin_plugin_url() . '/assets/js/datetimepicker/jquery.datetimepicker.js', array( 'jquery' ), true, true );
148
  wp_enqueue_script( 'jquery-ui-slider' );
149
  }
150
  wp_enqueue_script( 'chosen' );
151
+ wp_enqueue_script( 'a3rev-chosen-ajaxify' );
152
  wp_enqueue_script( 'a3rev-style-checkboxes' );
153
  wp_enqueue_script( 'a3rev-admin-ui-script' );
154
  wp_enqueue_script( 'a3rev-typography-preview' );
155
  wp_enqueue_script( 'a3rev-settings-preview' );
 
156
  wp_enqueue_script( 'a3rev-metabox-ui' );
157
 
158
  } // End admin_script_load()
257
  wp_enqueue_style( 'wp-color-picker' );
258
  wp_enqueue_style( 'jquery-datetime-picker', $this->admin_plugin_url() . '/assets/css/jquery.datetimepicker.css' );
259
  wp_enqueue_style( 'a3rev-chosen-new-style', $this->admin_plugin_url() . '/assets/js/chosen/chosen' . $suffix . '.css', array(), $this->framework_version );
 
260
  wp_enqueue_style( 'a3rev-metabox-ui-style', $this->admin_plugin_url() . '/assets/css/a3_admin_metabox.css', array(), $this->framework_version );
261
 
262
  if ( is_rtl() ) {
1181
  * checked_label => text : apply for onoff_checkbox, switcher_checkbox only ( set it to show the text instead ON word default )
1182
  * unchecked_label => text : apply for onoff_checkbox, switcher_checkbox only ( set it to show the text instead OFF word default )
1183
  * options => array : apply for select, multiselect, radio types
1184
+ * options_url => url : apply for select, multiselect
1185
  *
1186
  * onoff_options => array : apply for onoff_radio only
1187
  * ---------------- example ---------------------
1481
 
1482
  } elseif ( $tip ) {
1483
 
1484
+ $tip = '<div class="help_tip a3-plugin-ui-icon a3-plugin-ui-help-icon" data-trigger="hover" data-content="' . esc_attr( $tip ) . '"></div>';
1485
 
1486
  }
1487
 
1736
  // open box handle
1737
  echo '<div data-form-key="'. esc_attr( trim( $form_key ) ) .'" data-box-id="'. esc_attr( $heading_box_id ) .'" class="a3rev_panel_box_handle ' . $box_handle_class .'" >' . "\n\n";
1738
 
1739
+ echo ( ! empty( $value['name'] ) ) ? '<h3 class="a3-plugin-ui-panel-box '. $toggle_box_class . ' ' . $opened_class . '">'. $value['name'] .' '. $view_doc .'</h3>' : '';
1740
 
1741
  if ( stristr( $value['class'], 'pro_feature_fields' ) !== false && ! empty( $value['id'] ) ) $this->upgrade_top_message( true, sanitize_title( $value['id'] ) );
1742
  elseif ( stristr( $value['class'], 'pro_feature_fields' ) !== false ) $this->upgrade_top_message( true );
1762
  if ( stristr( $value['class'], 'pro_feature_fields' ) !== false && ! empty( $value['id'] ) ) $this->upgrade_top_message( true, sanitize_title( $value['id'] ) );
1763
  elseif ( stristr( $value['class'], 'pro_feature_fields' ) !== false ) $this->upgrade_top_message( true );
1764
 
1765
+ echo ( ! empty( $value['name'] ) ) ? '<h3>'. $value['name'] .' '. $view_doc .'</h3>' : '';
1766
  }
1767
 
1768
  if ( ! empty( $value['desc'] ) ) {
1874
  $submit_data = json_encode( $value['submit_data'] );
1875
 
1876
  ?><tr valign="top">
1877
+ <th scope="row" class="titledesc"><?php echo $tip; ?><?php echo $value['name']; ?></th>
1878
  <td class="forminp">
1879
 
1880
  <div class="a3rev-ui-<?php echo sanitize_title( $value['type'] ) ?>-control">
1915
  $errors_text = $value['errors_text'];
1916
  $statistic_column = isset( $value['statistic_column'] ) ? $value['statistic_column'] : 1;
1917
 
1918
+ $notice = isset( $value['notice'] ) ? $value['notice'] : '';
1919
+ $confirm_message = '';
1920
+ if ( isset( $value['confirm_run'] ) && $value['confirm_run']['allow'] ) {
1921
+ $confirm_message = isset( $value['confirm_run']['message'] ) ? $value['confirm_run']['message'] : '';
1922
+ }
1923
+
1924
  $multi_current_items = 0;
1925
  $multi_total_items = 0;
1926
 
1947
  $multi_ajax = json_encode( $multi_ajax );
1948
 
1949
  ?><tr valign="top">
1950
+ <th scope="row" class="titledesc"><?php echo $tip; ?><?php echo $value['name']; ?></th>
1951
  <td class="forminp">
1952
 
1953
  <div class="a3rev-ui-<?php echo sanitize_title( $value['type'] ) ?>-control">
1961
  class="a3rev-ui-<?php echo sanitize_title( $value['type'] ) ?>-button <?php echo esc_attr( $value['class'] ); ?>"
1962
  style="<?php echo esc_attr( $value['css'] ); ?>"
1963
  <?php echo implode( ' ', $custom_attributes ); ?>
1964
+ <?php if ( ! empty( $confirm_message ) ) { ?>
1965
+ data-confirm_message="<?php echo esc_attr( $confirm_message ); ?>"
1966
+ <?php } ?>
1967
  ><?php echo $button_name; ?></button>
1968
  <span class="a3rev-ui-<?php echo sanitize_title( $value['type'] ) ?>-successed"><?php echo $successed_text; ?></span>
1969
  <span class="a3rev-ui-<?php echo sanitize_title( $value['type'] ) ?>-errors"><?php echo $errors_text; ?></span>
1970
 
1971
  <!-- Progress Bar -->
1972
+ <?php if ( ! empty( $notice ) ) { ?>
1973
+ <div class="a3rev-ui-progress-notice"><?php echo $notice; ?></div>
1974
+ <?php } ?>
1975
  <div class="a3rev-ui-progress-bar-wrap">
1976
  <div class="a3rev-ui-progress-inner" data-current="<?php echo $multi_current_items; ?>" data-total="<?php echo $multi_total_items; ?>" ></div>
1977
  <div class="a3rev-ui-progressing-text"><?php echo $progressing_text; ?></div>
2075
  ?><tr valign="top">
2076
  <th scope="row" class="titledesc">
2077
  <?php echo $tip; ?>
2078
+ <label for="<?php echo $id_attribute; ?>"><?php echo $value['name']; ?></label>
2079
  </th>
2080
  <td class="forminp forminp-<?php echo sanitize_title( $value['type'] ) ?>">
2081
  <input
2102
  ?><tr valign="top">
2103
  <th scope="row" class="titledesc">
2104
  <?php echo $tip; ?>
2105
+ <label for="<?php echo $id_attribute; ?>"><?php echo $value['name']; ?></label>
2106
  </th>
2107
  <td class="forminp forminp-<?php echo sanitize_title( $value['type'] ) ?>">
2108
  <input
2133
  ?><tr valign="top">
2134
  <th scope="row" class="titledesc">
2135
  <?php echo $tip; ?>
2136
+ <label for="<?php echo $id_attribute; ?>"><?php echo $value['name']; ?></label>
2137
  </th>
2138
  <td class="forminp forminp-<?php echo sanitize_title( $value['type'] ) ?>">
2139
  <input
2169
  ?><tr valign="top">
2170
  <th scope="row" class="titledesc">
2171
  <?php echo $tip; ?>
2172
+ <label for="<?php echo $id_attribute; ?>"><?php echo $value['name']; ?></label>
2173
  </th>
2174
  <td class="forminp forminp-<?php echo sanitize_title( $value['type'] ) ?>">
2175
  <?php echo $description; ?>
2195
  $value['class'] .= ' chzn-rtl';
2196
  }
2197
  if ( ! isset( $value['options'] ) ) $value['options'] = array();
2198
+
2199
+ $is_ajax = false;
2200
+ if ( isset( $value['options_url'] ) && ! empty( $value['options_url'] ) ) {
2201
+ $is_ajax = true;
2202
+ $value['class'] .= ' chzn-select-ajaxify';
2203
+ }
2204
 
2205
  ?><tr valign="top">
2206
  <th scope="row" class="titledesc">
2207
  <?php echo $tip; ?>
2208
+ <label for="<?php echo $id_attribute; ?>"><?php echo $value['name']; ?></label>
2209
  </th>
2210
  <td class="forminp forminp-<?php echo sanitize_title( $value['type'] ) ?>">
2211
  <select
2216
  data-placeholder="<?php echo esc_html( $value['placeholder'] ); ?>"
2217
  <?php echo implode( ' ', $custom_attributes ); ?>
2218
  <?php if ( $value['type'] == 'multiselect' ) echo 'multiple="multiple"'; ?>
2219
+ <?php if ( $is_ajax ) {
2220
+ echo 'options_url="'.esc_url( $value['options_url'] ).'"';
2221
+ echo 'data-no_results_text="Please enter 3 or more characters"';
2222
+ }
2223
+ ?>
2224
  >
2225
  <?php
2226
  if ( is_array( $value['options'] ) && count( $value['options'] ) > 0 ) {
2272
  ?><tr valign="top">
2273
  <th scope="row" class="titledesc">
2274
  <?php echo $tip; ?>
2275
+ <label for="<?php echo $id_attribute; ?>"><?php echo $value['name']; ?></label>
2276
  </th>
2277
  <td class="forminp forminp-<?php echo sanitize_title( $value['type'] ) ?>">
2278
  <fieldset>
2311
  ?><tr valign="top">
2312
  <th scope="row" class="titledesc">
2313
  <?php echo $tip; ?>
2314
+ <label for="<?php echo $id_attribute; ?>"><?php echo $value['name']; ?></label>
2315
  </th>
2316
  <td class="forminp forminp-<?php echo sanitize_title( $value['type'] ) ?>">
2317
  <fieldset>
2363
  if ( $value['show_if_checked'] == 'option' ) echo 'show_options_if_checked';
2364
  ?>">
2365
  <th scope="row" class="titledesc">
2366
+ <label for="<?php echo $id_attribute; ?>"><?php echo $value['name']; ?></label>
2367
  </th>
2368
  <td class="forminp forminp-checkbox">
2369
  <fieldset>
2379
  }
2380
 
2381
  ?>
2382
+ <legend class="screen-reader-text"><span><?php echo $value['name']; ?></span></legend>
2383
 
2384
  <label for="<?php echo $id_attribute; ?>">
2385
  <input
2416
  ?><tr valign="top">
2417
  <th scope="row" class="titledesc">
2418
  <?php echo $tip; ?>
2419
+ <label for="<?php echo $id_attribute; ?>"><?php echo $value['name']; ?></label>
2420
  </th>
2421
  <td class="forminp forminp-<?php echo sanitize_title( $value['type'] ) ?>">
2422
  <input
2445
  ?><tr valign="top">
2446
  <th scope="row" class="titledesc">
2447
  <?php echo $tip; ?>
2448
+ <label for="<?php echo $id_attribute; ?>"><?php echo $value['name']; ?></label>
2449
  </th>
2450
  <td class="forminp forminp-<?php echo sanitize_title( $value['type'] ) ?>">
2451
  <input
2472
  $crop = checked( 1, $option_value['crop'], false );
2473
 
2474
  ?><tr valign="top">
2475
+ <th scope="row" class="titledesc"><?php echo $tip; ?><?php echo $value['name']; ?></th>
2476
  <td class="forminp forminp-<?php echo sanitize_title( $value['type'] ) ?>">
2477
 
2478
  <label><?php _e( 'Width', 'a3-lazy-load' ); ?> <input name="<?php echo $name_attribute; ?>[width]" id="<?php echo $id_attribute; ?>-width" type="text" class="a3rev-ui-<?php echo sanitize_title( $value['type'] ) ?>-width" value="<?php echo $width; ?>" /></label>
2507
  $args = wp_parse_args( $value['args'], $args );
2508
 
2509
  ?><tr valign="top">
2510
+ <th scope="row" class="titledesc"><?php echo $tip; ?><?php echo $value['name']; ?></th>
2511
  <td class="forminp">
2512
  <?php echo str_replace(' id=', " data-placeholder='" . esc_html( $value['placeholder'] ) . "' style='" . $value['css'] . "' class='" . $value['class'] . "' id=", wp_dropdown_pages( $args ) ); ?> <?php echo $description; ?>
2513
  </td>
2530
  $color = $option_value['color'];
2531
 
2532
  ?><tr valign="top">
2533
+ <th scope="row" class="titledesc"><?php echo $tip; ?><?php echo $value['name']; ?></th>
2534
  <td class="forminp">
2535
  <?php echo $description; ?>
2536
  <div class="a3rev-ui-<?php echo sanitize_title( $value['type'] ) ?>-control">
2684
  $bottom_right_corner = intval( $bottom_right_corner );
2685
 
2686
  ?><tr valign="top">
2687
+ <th scope="row" class="titledesc"><?php echo $tip; ?><?php echo $value['name']; ?></th>
2688
  <td class="forminp forminp-border_corner">
2689
  <?php echo $description; ?>
2690
  <div class="a3rev-ui-settings-control">
2851
  $color = $option_value['color'];
2852
 
2853
  ?><tr valign="top">
2854
+ <th scope="row" class="titledesc"><?php echo $tip; ?><?php echo $value['name']; ?></th>
2855
  <td class="forminp">
2856
  <?php echo $description; ?>
2857
  <div class="a3rev-ui-settings-control">
2950
  $bottom_right_corner = intval( $bottom_right_corner );
2951
 
2952
  ?><tr valign="top">
2953
+ <th scope="row" class="titledesc"><?php echo $tip; ?><?php echo $value['name']; ?></th>
2954
  <td class="forminp forminp-<?php echo sanitize_title( $value['type'] ) ?>">
2955
  <div class="a3rev-ui-settings-control">
2956
  <!-- Border Corner : Rounded or Square -->
3076
  $inset = $option_value['inset'];
3077
 
3078
  ?><tr valign="top">
3079
+ <th scope="row" class="titledesc"><?php echo $tip; ?><?php echo $value['name']; ?></th>
3080
  <td class="forminp forminp-box_shadow">
3081
  <input
3082
  name="<?php echo $name_attribute; ?>[enable]"
3210
  ?><tr valign="top">
3211
  <th scope="row" class="titledesc">
3212
  <?php echo $tip; ?>
3213
+ <label for="<?php echo $id_attribute; ?>"><?php echo $value['name']; ?></label>
3214
  </th>
3215
  <td class="forminp forminp-<?php echo sanitize_title( $value['type'] ) ?>">
3216
  <div class="a3rev-ui-slide-container">
3254
  ?><tr valign="top">
3255
  <th scope="row" class="titledesc">
3256
  <?php echo $tip; ?>
3257
+ <label for="<?php echo $id_attribute; ?>"><?php echo $value['name']; ?></label>
3258
  </th>
3259
  <td class="forminp forminp-<?php echo sanitize_title( $value['type'] ) ?>">
3260
  <?php echo $description; ?>
3261
+ <?php echo $a3_lazy_load_uploader->upload_input( $name_attribute, $id_attribute, $option_value, $attachment_id, $value['default'], $value['name'], $class, esc_attr( $value['css'] ) , '', $strip_methods );?>
3262
  </td>
3263
  </tr><?php
3264
 
3272
  ?><tr valign="top">
3273
  <th scope="row" class="titledesc">
3274
  <?php echo $tip; ?>
3275
+ <label for="<?php echo $id_attribute; ?>"><?php echo $value['name']; ?></label>
3276
  </th>
3277
  <td class="forminp forminp-<?php echo sanitize_title( $value['type'] ) ?>">
3278
  <?php echo $description; ?>
3296
  ?><tr valign="top">
3297
  <th scope="row" class="titledesc">
3298
  <?php echo $tip; ?>
3299
+ <label for="<?php echo $id_attribute; ?>"><?php echo $value['name']; ?></label>
3300
  </th>
3301
  <td class="forminp forminp-<?php echo sanitize_title( $value['type'] ) ?>">
3302
  <?php echo $description; ?>
3362
  style="<?php echo esc_attr( $text_field['css'] ); ?>"
3363
  value="<?php echo esc_attr( $option_value ); ?>"
3364
  class="a3rev-ui-<?php echo sanitize_title( $value['type'] ) ?> <?php echo esc_attr( $text_field['class'] ); ?>"
3365
+ /> <span><?php echo $text_field['name']; ?></span></label>
3366
  <?php
3367
  }
3368
  ?>
3381
  ?><tr valign="top">
3382
  <th scope="row" class="titledesc">
3383
  <?php echo $tip; ?>
3384
+ <label for="<?php echo $id_attribute; ?>"><?php echo $value['name']; ?></label>
3385
  </th>
3386
  <td class="forminp forminp-<?php echo sanitize_title( $value['type'] ) ?>">
3387
  <input
3580
  // open box handle
3581
  echo '<div data-form-key="custom-boxes" data-box-id="'. esc_attr( $heading_box_id ) .'" class="a3rev_panel_box_handle" >' . "\n\n";
3582
 
3583
+ echo ( ! empty( $options['name'] ) ) ? '<h3 class="a3-plugin-ui-panel-box '. $toggle_box_class . ' ' . $opened_class . '">'. $options['name'] .' '. $view_doc .'</h3>' : '';
3584
 
3585
  if ( stristr( $options['class'], 'pro_feature_fields' ) !== false && ! empty( $options['id'] ) ) $this->upgrade_top_message( true, sanitize_title( $options['id'] ) );
3586
  elseif ( stristr( $options['class'], 'pro_feature_fields' ) !== false ) $this->upgrade_top_message( true );
3598
  if ( stristr( $options['class'], 'pro_feature_fields' ) !== false && ! empty( $options['id'] ) ) $this->upgrade_top_message( true, sanitize_title( $options['id'] ) );
3599
  elseif ( stristr( $options['class'], 'pro_feature_fields' ) !== false ) $this->upgrade_top_message( true );
3600
 
3601
+ echo ( ! empty( $options['name'] ) ) ? '<h3>'. $options['name'] .' '. $view_doc .'</h3>' : '';
3602
  }
3603
 
3604
  if ( ! empty( $options['desc'] ) ) {
admin/admin-ui.php CHANGED
@@ -31,7 +31,7 @@ class A3_Lazy_Load_Admin_UI
31
  * You must change to correct plugin name that you are working
32
  */
33
 
34
- public $framework_version = '2.0.3';
35
  public $plugin_name = A3_LAZY_LOAD_KEY;
36
  public $plugin_path = A3_LAZY_LOAD_NAME;
37
  public $google_api_key_option = '';
@@ -39,7 +39,7 @@ class A3_Lazy_Load_Admin_UI
39
  public $version_transient = '';
40
  public $is_free_plugin = true;
41
 
42
- public $support_url = 'https://wordpress.org/support/plugin/a3-lazy-load/';
43
 
44
 
45
  /**
@@ -74,9 +74,11 @@ class A3_Lazy_Load_Admin_UI
74
  $this->google_api_key_option = A3_LAZY_LOAD_KEY . '_google_api_key';
75
  $this->toggle_box_open_option = A3_LAZY_LOAD_KEY . '_toggle_box_open';
76
  $this->version_transient = A3_LAZY_LOAD_KEY . '_licinfo';
77
- }
78
-
79
 
 
 
 
 
80
  /*-----------------------------------------------------------------------------------*/
81
  /* admin_plugin_url() */
82
  /*-----------------------------------------------------------------------------------*/
31
  * You must change to correct plugin name that you are working
32
  */
33
 
34
+ public $framework_version = '2.0.7';
35
  public $plugin_name = A3_LAZY_LOAD_KEY;
36
  public $plugin_path = A3_LAZY_LOAD_NAME;
37
  public $google_api_key_option = '';
39
  public $version_transient = '';
40
  public $is_free_plugin = true;
41
 
42
+ public $support_url = '';
43
 
44
 
45
  /**
74
  $this->google_api_key_option = A3_LAZY_LOAD_KEY . '_google_api_key';
75
  $this->toggle_box_open_option = A3_LAZY_LOAD_KEY . '_toggle_box_open';
76
  $this->version_transient = A3_LAZY_LOAD_KEY . '_licinfo';
 
 
77
 
78
+ $this->support_url = 'https://wordpress.org/support/plugin/a3-lazy-load/';
79
+ }
80
+
81
+
82
  /*-----------------------------------------------------------------------------------*/
83
  /* admin_plugin_url() */
84
  /*-----------------------------------------------------------------------------------*/
admin/assets/css/admin-ui-style.css CHANGED
@@ -271,6 +271,7 @@
271
  .a3rev_panel_container .a3rev-ui-ajax_submit-control,
272
  .a3rev_panel_container .a3rev-ui-ajax_multi_submit-control {
273
  margin-bottom: 6px;
 
274
  }
275
  .a3rev_panel_container .a3rev-ui-ajax_submit-control .a3rev-ui-ajax_submit-button,
276
  .a3rev_panel_container .a3rev-ui-ajax_multi_submit-control .a3rev-ui-ajax_multi_submit-button {
@@ -321,6 +322,14 @@
321
  max-width: 600px;
322
  position: relative;
323
  }
 
 
 
 
 
 
 
 
324
  .a3rev_panel_container .a3rev-ui-progress-inner {
325
  animation: progress-bar 1s infinite linear;
326
  -ms-animation: progress-bar 1s infinite linear;
@@ -877,6 +886,9 @@
877
  margin-bottom:5px;
878
  margin-right:2px;
879
  }
 
 
 
880
 
881
  /* Custom for each element web icons font */
882
  .a3-plugin-ui-delete-icon:before {
271
  .a3rev_panel_container .a3rev-ui-ajax_submit-control,
272
  .a3rev_panel_container .a3rev-ui-ajax_multi_submit-control {
273
  margin-bottom: 6px;
274
+ position: relative;
275
  }
276
  .a3rev_panel_container .a3rev-ui-ajax_submit-control .a3rev-ui-ajax_submit-button,
277
  .a3rev_panel_container .a3rev-ui-ajax_multi_submit-control .a3rev-ui-ajax_multi_submit-button {
322
  max-width: 600px;
323
  position: relative;
324
  }
325
+ .a3rev_panel_container .a3rev-ui-progress-notice {
326
+ display: none;
327
+ position: absolute;
328
+ text-align: center;
329
+ top: -25px;
330
+ width: 100%;
331
+ color: #f00;
332
+ }
333
  .a3rev_panel_container .a3rev-ui-progress-inner {
334
  animation: progress-bar 1s infinite linear;
335
  -ms-animation: progress-bar 1s infinite linear;
886
  margin-bottom:5px;
887
  margin-right:2px;
888
  }
889
+ .chzn-select-ajaxify ~ .chosen-container .no-results span {
890
+ display: none;
891
+ }
892
 
893
  /* Custom for each element web icons font */
894
  .a3-plugin-ui-delete-icon:before {
admin/assets/css/admin-ui-style.min.css CHANGED
@@ -1,230 +1,364 @@
 
 
 
 
 
1
  @charset "UTF-8";
2
- @font-face{font-family:"a3-plugin-framework";src:url(../fonts/a3-plugin-framework.eot);src:url(../fonts/a3-plugin-framework.eot?#iefix) format("embedded-opentype"),url(../fonts/a3-plugin-framework.woff) format("woff"),url(../fonts/a3-plugin-framework.ttf) format("truetype"),url(../fonts/a3-plugin-framework.svg#a3-plugin-framework) format("svg");font-weight:400;font-style:normal}
3
- @-webkit-keyframes progress-bar {
4
- from{background-position:0 0}
5
- to{background-position:24px 40px}
 
 
 
 
6
  }
7
- @keyframes progress-bar {
8
- from{background-position:0 0}
9
- to{background-position:24px 40px}
10
  }
11
- [class^="a3-plugin-ui-"]:before,[class*=" a3-plugin-ui-"]:before{font-family:"a3-plugin-framework"!important;font-style:normal!important;font-weight:400!important;font-variant:normal!important;text-transform:none!important;speak:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
12
- .a3-plugin-ui-a3-plugins-icon:before{content:"a"}
13
- .a3-plugin-ui-a3-rev-logo:before{content:"b"}
14
- .a3-plugin-ui-a3-thumb-icon:before{content:"c"}
15
- .a3-plugin-ui-delete-icon:before{content:"d"}
16
- .a3-plugin-ui-help-icon:before{content:"e"}
17
- .a3-plugin-ui-key-icon:before{content:"f"}
18
- .a3-plugin-ui-preview-icon:before{content:"g"}
19
- .a3-plugin-ui-refresh-icon:before{content:"h"}
20
- .a3-plugin-ui-loading-icon:before{content:"k"}
21
- .a3-plugin-ui-a3-plugins-icon-1:before{content:"i"}
22
- .a3-plugin-ui-a3-rev-logo-1:before{content:"j"}
23
- .a3rev_panel_container{visibility:hidden;height:0;overflow:hidden;margin-top:10px;float:left;width:100%}
24
- .a3rev_panel_container .a3rev_panel_row{display:table;width:100%;table-layout:fixed;clear:both;position:relative}
25
- .a3rev_panel_container .a3rev_panel_row:after{display:table;clear:both;content:''}
26
- .a3rev_panel_container .a3rev_panel_column{display:table-cell;width:50%;box-sizing:border-box;padding:0 10px;position:relative;vertical-align:top}
27
- .a3rev_panel_container .a3rev_panel_column:last-child{padding-right:0}
28
- .a3rev_panel_container .a3rev_panel_column:first-child{padding-left:0;padding-right:10px}
29
- .a3rev_panel_container .a3rev_panel_box{position:relative;border:1px solid #e5e5e5;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.06);box-shadow:0 1px 1px rgba(0,0,0,0.06);background:#fff;margin-bottom:20px;border-radius:0}
30
- .a3rev_panel_container .a3rev_panel_box .a3rev_panel_box{-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.1);box-shadow:0 1px 1px rgba(0,0,0,0.1)}
31
- .a3rev_panel_container .a3rev_panel_box_handle{padding:8px 12px 8px 38px;position:relative}
32
- .a3rev_panel_container .a3rev_panel_box_handle .pro_feature_top_message{text-align:left;margin:5px 0 0}
33
- .a3rev_panel_container .a3-plugin-ui-panel-box{cursor:pointer;margin:0}
34
- .a3rev_panel_container .a3-plugin-ui-panel-box:before{content:"j";color:#aaa;position:absolute;top:7px;left:10px;font-size:20px}
35
- .a3rev_panel_container .box_active .a3-plugin-ui-panel-box:before{color:#22ef00}
36
- .a3rev_panel_container .a3-plugin-ui-panel-box.box_open:before{content:"m";color:#000}
37
- .a3rev_panel_container .a3-plugin-ui-panel-box:hover:before{color:#000}
38
- .a3rev_panel_container .a3rev_panel_box_handle h3{margin:0}
39
- .a3rev_panel_container .a3rev_panel_box_handle p{font-size:12px;margin:5px 0}
40
- .a3rev_panel_container .a3rev_panel_box_handle p:last-child{margin-bottom:0}
41
- .a3rev_panel_container .a3rev_panel_box_inside{overflow:hidden;height:0;visibility:hidden;border-top:1px solid #eee;padding:0 12px}
42
- .a3rev_panel_container .a3rev_panel_box_inside.box_open{overflow:inherit;height:auto;visibility:visible}
43
- .a3rev_panel_container .a3rev_panel_box.pro_feature_fields .a3rev_panel_box_handle{background-color:#edfed0}
44
- .a3rev_panel_container .a3rev_panel_box.pro_feature_fields .a3rev_panel_box_inside{border-color:#7ebd14}
45
- .a3rev_panel_container .a3rev_panel_inner{clear:both;display:block;padding-bottom:10px}
46
- .a3rev_panel_container .a3rev_panel_inner h3{margin-bottom:0}
47
- .a3rev_panel_container .a3rev_panel_inner .form-table{margin-bottom:0}
48
- .icon32-a3rev-ui-settings{background:url(../images/a3-plugins.png) no-repeat left top}
49
- .a3_subsubsub_section{float:left;width:100%}
50
- .a3rev_panel_container input[type="text"],.a3rev_panel_container input[type="email"],.a3rev_panel_container input[type="number"],.a3rev_panel_container input[type="password"]{height:24px}
51
- .a3rev_panel_container .a3rev-ui-typography-size{width:80px}
52
- .a3rev_panel_container .a3rev-ui-typography-line_height{width:80px}
53
- .a3rev_panel_container .a3rev-ui-typography-face{width:160px}
54
- .a3rev_panel_container .a3rev-ui-typography-style{width:100px}
55
- .a3rev_panel_container .a3rev-ui-typography-preview{display:inline-block}
56
- .a3rev_panel_container .typography-preview-container .preview_remove{background:#EEE;border:1px solid #DDD;border-radius:2px 2px 2px 2px;-webkit-border-radius:2px 2px 2px 2px;-moz-border-radius:2px;cursor:pointer;height:10px;padding:2px;position:absolute;right:-10px;top:-10px;width:10px;z-index:99;text-decoration:none!important}
57
- .a3rev_panel_container .a3rev-ui-typography-preview-button{float:left;margin:0;padding-top:0;height:24px;line-height:24px}
58
- .a3rev_panel_container .typography-preview-container{clear:both;position:relative;width:50%;margin-top:10px}
59
- .a3rev_panel_container .typography-preview{word-wrap:break-word;clear:both;padding:20px;border:1px solid #CCC;background:#FDFDFD;border-radius:3px;-moz-border-radius:3px;-webkit-border-radius:3px}
60
- .a3rev_panel_container .wp-picker-holder{position:absolute;z-index:10000}
61
- .a3rev_panel_container input.wp-picker-default{height:24px!important}
62
- .a3rev_panel_container .wp-color-result{top:0}
63
- .a3rev_panel_container .a3rev-ui-text{width:300px;max-width:70%}
64
- .a3rev_panel_container .a3rev-ui-email{width:300px;max-width:70%}
65
- .a3rev_panel_container .a3rev-ui-number{width:40px;max-width:70%}
66
- .a3rev_panel_container .a3rev-ui-password{width:300px;max-width:70%}
67
- .a3rev_panel_container .a3rev-ui-google_api_key{width:350px;max-width:100%}
68
- .a3rev_panel_container .a3rev-ui-google-api-key-inside{margin-top:10px}
69
- .a3rev_panel_container .a3rev-ui-google-valid-key-message,.a3rev_panel_container .a3rev-ui-google-unvalid-key-message{display:none}
70
- .a3rev_panel_container .a3rev-ui-google-valid-key,.a3rev_panel_container .a3rev-ui-google-unvalid-key{padding:10px;box-shadow:0 1px 1px rgba(0,0,0,0.1)}
71
- .a3rev_panel_container .a3rev-ui-google-valid-key{background-color:#dff0d8;border:1px solid #468847;color:#468847}
72
- .a3rev_panel_container .a3rev-ui-google-unvalid-key{background-color:#ffebe8;border:1px solid #dd3d36;color:#dd3d36}
73
- .a3rev_panel_container .a3rev-ui-google-valid-key .a3rev-ui-google-valid-key-message,.a3rev_panel_container .a3rev-ui-google-unvalid-key .a3rev-ui-google-unvalid-key-message{display:block}
74
- .a3rev_panel_container .a3rev-ui-version-checking{display:none;margin-top:6px;background-image:url(../images/loading-bottom.gif);background-repeat:no-repeat;background-size:100% auto;width:16px;height:16px}
75
- .a3rev_panel_container .a3rev-ui-check-version-message{font-size:13px}
76
- .a3rev_panel_container .a3rev-ui-new-version-message,.a3rev_panel_container .a3rev-ui-latest-version-message{padding:8px 10px;box-shadow:0 1px 1px rgba(0,0,0,0.1);margin-top:8px}
77
- .a3rev_panel_container .a3rev-ui-latest-version-message{background-color:#dff0d8;border:1px solid #468847;color:#468847}
78
- .a3rev_panel_container .a3rev-ui-new-version-message{background-color:#ffebe8;border:1px solid #dd3d36;color:#dd3d36}
79
- .a3rev_panel_container .a3rev-ui-ajax_submit-control,.a3rev_panel_container .a3rev-ui-ajax_multi_submit-control{margin-bottom:6px}
80
- .a3rev_panel_container .a3rev-ui-ajax_submit-control .a3rev-ui-ajax_submit-button,.a3rev_panel_container .a3rev-ui-ajax_multi_submit-control .a3rev-ui-ajax_multi_submit-button{border-radius:5px;border:none;background:#2186fa;color:#fff;font-size:16px;padding:8px 15px;transition:all .5s ease .1s;cursor:pointer;height:40px;box-sizing:border-box;margin-bottom:5px}
81
- .a3rev_panel_container .a3rev-ui-ajax_submit-control .a3rev-ui-ajax_submit-button:hover,.a3rev_panel_container .a3rev-ui-ajax_multi_submit-control .a3rev-ui-ajax_multi_submit-button:hover{background:#f4741b}
82
- .a3rev_panel_container .a3rev-ui-ajax_submit-control .a3rev-ui-ajax_submit-button.disabled,.a3rev_panel_container .a3rev-ui-ajax_multi_submit-control .a3rev-ui-ajax_multi_submit-button.disabled{background:#999;cursor:default}
83
- .a3rev_panel_container .a3rev-ui-ajax_submit-control .a3rev-ui-ajax_submit-successed,.a3rev_panel_container .a3rev-ui-ajax_multi_submit-control .a3rev-ui-ajax_multi_submit-successed{display:none;color:#46b450;font-size:14px;transition:all 1.5s ease .1s;height:40px;box-sizing:border-box}
84
- .a3rev_panel_container .a3rev-ui-ajax_submit-control .a3rev-ui-ajax_submit-errors,.a3rev_panel_container .a3rev-ui-ajax_multi_submit-control .a3rev-ui-ajax_multi_submit-errors{display:none;color:#dc3232;font-size:14px;transition:all 1.5s ease .1s}
85
- .a3rev_panel_container .a3rev-ui-progress-bar-wrap{background:rgba(0,0,0,0.6) none repeat scroll 0 0;border-radius:6px;box-shadow:0 1px 5px rgba(0,0,0,0.6) inset;display:none;padding:3px;width:100%;max-width:600px;position:relative}
86
- .a3rev_panel_container .a3rev-ui-progress-inner{animation:progress-bar 1s infinite linear;-ms-animation:progress-bar 1s infinite linear;-moz-animation:progress-bar 1s infinite linear;-webkit-animation:progress-bar 1s infinite linear;background:rgba(0,0,0,0) repeating-linear-gradient(-45deg,#07f,#07f 10px,#c3defd 10px,#c3defd 24px) repeat scroll 0 0 / 68px 68px;border-radius:4px;box-shadow:0 1px 0 rgba(0,0,0,0.75);height:34px;overflow:hidden;transition:width 2s ease .1s;width:0}
87
- .a3rev_panel_container .a3rev-ui-progressing-text,.a3rev_panel_container .a3rev-ui-completed-text{box-sizing:border-box;color:#fff;display:block;font-size:16px;left:0;top:0;padding:0 10px;position:absolute;text-align:center;text-shadow:0 0 2px #000;width:100%;height:100%;line-height:40px;z-index:1;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}
88
- .a3rev_panel_container .a3rev-ui-completed-text{display:none}
89
- .a3rev_panel_container .a3rev-ui-ajax_multi_submit-control .a3rev-ui-ajax_multi_submit-button{margin-bottom:0}
90
- .a3rev_panel_container .a3rev-ui-statistics-wrap{float:left;width:100%;max-width:600px;margin-top:20px}
91
- .a3rev_panel_container .a3rev-ui-statistic-item{float:left;width:100%;box-sizing:border-box;margin-bottom:30px}
92
- .a3rev_panel_container .a3rev-ui-pie-wrap{height:80px;width:80px;margin:0 auto 5px;position:relative}
93
- .a3rev_panel_container .a3rev-ui-pie-shadow{border:10px solid #ddd;border-radius:100%;height:100%;width:100%;box-sizing:border-box}
94
- .a3rev_panel_container .a3rev-ui-pie{clip:rect(0px,80px,80px,40px);height:100%;width:100%;position:absolute;left:0;top:0}
95
- .a3rev_panel_container .a3rev-ui-pie.pie-more-50{clip:rect(auto,auto,auto,auto)}
96
- .a3rev_panel_container .a3rev-ui-pie-half-circle{clip:rect(0px,40px,80px,0px);border:10px solid #3498db;border-radius:100%;height:100%;width:100%;position:absolute;left:0;top:0;box-sizing:border-box}
97
- .a3rev_panel_container .a3rev-ui-statistic-text{text-align:center;text-transform:uppercase;color:#777}
98
- .a3rev_panel_container .a3rev-ui-statistic-separate,.a3rev_panel_container .a3rev-ui-statistic-current-item,.a3rev_panel_container .a3rev-ui-statistic-total-item{color:#000;font-size:25px;margin:0}
99
- .a3rev_panel_container .a3rev-ui-textarea{width:600px;max-width:70%}
100
- .a3rev_panel_container .a3rev-ui-select{width:160px;max-width:70%}
101
- .a3rev_panel_container .a3rev-ui-multiselect{width:300px;max-width:70%}
102
- .a3rev_panel_container .forminp-radio ul{margin:0}
103
- .a3rev_panel_container .a3rev-ui-image_size-width{width:40px}
104
- .a3rev_panel_container .a3rev-ui-image_size-height{width:40px}
105
- .a3rev_panel_container .a3rev-ui-single_select_page{width:300px;max-width:70%}
106
- .a3rev_panel_container .a3rev-ui-settings-preview{display:inline-block}
107
- .a3rev_panel_container .settings-apply-preview{padding:10px;background:#FF0}
108
- .a3rev_panel_container .settings-preview-container .preview_remove{background:#EEE;border:1px solid #DDD;border-radius:2px 2px 2px 2px;-webkit-border-radius:2px 2px 2px 2px;-moz-border-radius:2px;cursor:pointer;height:10px;padding:2px;position:absolute;right:-10px;top:-10px;width:10px;z-index:99;text-decoration:none!important}
109
- .a3rev_panel_container .a3rev-ui-settings-preview-button{float:left;margin:0;padding-top:0;height:24px;line-height:24px}
110
- .a3rev_panel_container .settings-preview-container{clear:both;position:relative;margin-top:12px;width:50%}
111
- .a3rev_panel_container .settings-preview{word-wrap:break-word;clear:both;padding:30px;border:1px solid #CCC;background:#FDFDFD;border-radius:3px;-moz-border-radius:3px;-webkit-border-radius:3px}
112
- .a3rev_panel_container .a3rev-ui-border_styles-width{width:80px}
113
- .a3rev_panel_container .a3rev-ui-border_styles-style{width:80px}
114
- .a3rev_panel_container .forminp-border_corner .desc{margin-bottom:10px!important}
115
- .a3rev_panel_container .forminp-border_corner .iPhoneCheckContainer{margin-right:30px}
116
- .a3rev_panel_container .a3rev-ui-border-corner-value-container{float:left;width:100%}
117
- .a3rev_panel_container .a3rev-ui-border_corner-top_left,.a3rev_panel_container .a3rev-ui-border_corner-top_right,.a3rev_panel_container .a3rev-ui-border_corner-bottom_left,.a3rev_panel_container .a3rev-ui-border_corner-bottom_right{float:left;width:100%;clear:both;padding-top:5px}
118
- .a3rev_panel_container .a3rev-ui-border_corner-span{float:left;width:140px;margin-bottom:8px}
119
- .a3rev_panel_container .a3rev-ui-border_corner-px{float:left;margin-right:10px}
120
- .a3rev_panel_container .forminp-border_corner .settings-apply-preview{border:1px solid #515151}
121
- .a3rev_panel_container .forminp-border_corner .iPhoneCheckContainer .iPhoneCheckLabelOff,.a3rev_panel_container .forminp-border_corner .iOSCheckContainer .iOSCheckLabelOff{background:#569aef;background:-moz-linear-gradient(top,#468be0 20%,#569aef 50%,#6aa7f6 52%,#82b3f5 100%);background:-webkit-gradient(linear,0 0,0 100%,color-stop(20%,#468be0),color-stop(50%,#569aef),color-stop(52%,#6aa7f6),color-stop(100%,#82b3f5));background:-webkit-linear-gradient(top,#468be0 20%,#569aef 50%,#6aa7f6 52%,#82b3f5 100%);background:-o-linear-gradient(top,#468be0 20%,#569aef 50%,#6aa7f6 52%,#82b3f5 100%);background:-ms-linear-gradient(top,#468be0 20%,#569aef 50%,#6aa7f6 52%,#82b3f5 100%);background:linear-gradient(#468be0 20%,#569aef 50%,#6aa7f6 52%,#82b3f5 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#468be0',endColorstr='#82b3f5',GradientType=0);box-shadow:0 1px 2px 0 rgba(0,0,0,0.5) inset,0 1px 0 0 rgba(250,250,250,0.5);-webkit-box-shadow:0 1px 2px 0 rgba(0,0,0,0.5) inset,0 1px 0 0 rgba(250,250,250,0.5);border:1px solid #666;border-radius:5px;-webkit-border-radius:5px 5px 5px 5px;-moz-border-radius:5px;color:#FFF;text-shadow:0 0 2px rgba(0,0,0,0.6)}
122
- .a3rev_panel_container .a3rev-ui-bg_color-enable-container{margin-top:10px}
123
- .a3rev_panel_container .a3rev-ui-box_shadow-h_shadow{width:80px}
124
- .a3rev_panel_container .a3rev-ui-box_shadow-v_shadow{width:80px}
125
- .a3rev_panel_container .a3rev-ui-box_shadow-blur{width:80px}
126
- .a3rev_panel_container .a3rev-ui-box_shadow-spread{width:80px}
127
- .a3rev_panel_container .a3rev-ui-box_shadow-enable-container{margin-top:10px}
128
- .a3rev_panel_container .forminp-box_shadow .a3rev-ui-settings-control .iPhoneCheckContainer,.a3rev_panel_container .forminp-box_shadow .a3rev-ui-settings-control .iOSCheckContainer{float:none;display:inline-block;margin-top:0;top:-12px;margin-right:0}
129
- .a3rev_panel_container .forminp-box_shadow .a3rev-ui-settings-control .iPhoneCheckContainer .iPhoneCheckLabelOff,.a3rev_panel_container .forminp-box_shadow .a3rev-ui-settings-control .iOSCheckContainer .iOSCheckLabelOff{background:#569aef;background:-moz-linear-gradient(top,#468be0 20%,#569aef 50%,#6aa7f6 52%,#82b3f5 100%);background:-webkit-gradient(linear,0 0,0 100%,color-stop(20%,#468be0),color-stop(50%,#569aef),color-stop(52%,#6aa7f6),color-stop(100%,#82b3f5));background:-webkit-linear-gradient(top,#468be0 20%,#569aef 50%,#6aa7f6 52%,#82b3f5 100%);background:-o-linear-gradient(top,#468be0 20%,#569aef 50%,#6aa7f6 52%,#82b3f5 100%);background:-ms-linear-gradient(top,#468be0 20%,#569aef 50%,#6aa7f6 52%,#82b3f5 100%);background:linear-gradient(#468be0 20%,#569aef 50%,#6aa7f6 52%,#82b3f5 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#468be0',endColorstr='#82b3f5',GradientType=0);box-shadow:0 1px 2px 0 rgba(0,0,0,0.5) inset,0 1px 0 0 rgba(250,250,250,0.5);-webkit-box-shadow:0 1px 2px 0 rgba(0,0,0,0.5) inset,0 1px 0 0 rgba(250,250,250,0.5);border:1px solid #666;border-radius:5px;-webkit-border-radius:5px 5px 5px 5px;-moz-border-radius:5px;color:#FFF;text-shadow:0 0 2px rgba(0,0,0,0.6)}
130
- .a3rev_panel_container .a3rev-ui-upload{width:300px;height:24px}
131
- .a3rev_panel_container .a3rev-ui-slide-container{white-space:nowrap;float:left}
132
- .a3rev_panel_container .a3rev-ui-slide-container-start{padding-left:12px;margin-bottom:15px;margin-right:20px;float:left}
133
- .a3rev_panel_container .a3rev-ui-slide-result-container{float:left;white-space:nowrap}
134
- .a3rev_panel_container .a3rev-ui-slide{background:#ededed;background:-moz-linear-gradient(top,#dcdcdc 20%,#ededed 50%,#f7f6f6 52%,#fff 100%);background:-webkit-gradient(linear,0 0,0 100%,color-stop(20%,#ededed),color-stop(50%,#ededed),color-stop(52%,#f7f6f6),color-stop(100%,#fff));background:-webkit-linear-gradient(top,#dcdcdc 20%,#ededed 50%,#f7f6f6 52%,#fff 100%);background:-o-linear-gradient(top,#dcdcdc 20%,#ededed 50%,#f7f6f6 52%,#fff 100%);background:-ms-linear-gradient(top,#dcdcdc 20%,#ededed 50%,#f7f6f6 52%,#fff 100%);background:linear-gradient(#dcdcdc 20%,#ededed 50%,#f7f6f6 52%,#fff 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#dcdcdc',endColorstr='#ffffff',GradientType=0);border:1px solid #d0d0d9;border-radius:3px;-webkit-border-radius:3px 3px 3px 3px;-moz-border-radius:3px;height:10px;width:220px;position:relative;float:left;margin-top:4px}
135
- .a3rev_panel_container .a3rev-ui-slide .ui-slider-handle{background:#569aef;background:-moz-linear-gradient(top,#bcbcbc 20%,#d5d5d5 50%,#d8d8d8 52%,#efefef 100%);background:-webkit-gradient(linear,0 0,0 100%,color-stop(20%,#bcbcbc),color-stop(50%,#d5d5d5),color-stop(52%,#d8d8d8),color-stop(100%,#efefef));background:-webkit-linear-gradient(top,#bcbcbc 20%,#d5d5d5 50%,#d8d8d8 52%,#efefef 100%);background:-o-linear-gradient(top,#bcbcbc 20%,#d5d5d5 50%,#d8d8d8 52%,#efefef 100%);background:-ms-linear-gradient(top,#bcbcbc 20%,#d5d5d5 50%,#d8d8d8 52%,#efefef 100%);background:linear-gradient(#bcbcbc 20%,#d5d5d5 50%,#d8d8d8 52%,#efefef 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#bcbcbc',endColorstr='#efefef',GradientType=0);box-shadow:0 1px 0 0 #FFF inset;-webkit-box-shadow:0 1px 0 0 #FFF inset;border:1px solid #999;border-radius:3px;-webkit-border-radius:3px 3px 3px 3px;-moz-border-radius:3px;position:absolute;z-index:2;width:22px;height:23px;cursor:pointer;font-weight:700;color:#1C94C4;outline:none;top:-8px;margin-left:-11px}
136
- .a3rev_panel_container .a3rev-ui-slide .ui-slider-range{background:#569aef;background:-moz-linear-gradient(top,#468be0 20%,#569aef 50%,#6aa7f6 52%,#82b3f5 100%);background:-webkit-gradient(linear,0 0,0 100%,color-stop(20%,#468be0),color-stop(50%,#569aef),color-stop(52%,#6aa7f6),color-stop(100%,#82b3f5));background:-webkit-linear-gradient(top,#468be0 20%,#569aef 50%,#6aa7f6 52%,#82b3f5 100%);background:-o-linear-gradient(top,#468be0 20%,#569aef 50%,#6aa7f6 52%,#82b3f5 100%);background:-ms-linear-gradient(top,#468be0 20%,#569aef 50%,#6aa7f6 52%,#82b3f5 100%);background:linear-gradient(#468be0 20%,#569aef 50%,#6aa7f6 52%,#82b3f5 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#468be0',endColorstr='#82b3f5',GradientType=0);box-shadow:0 1px 2px 0 rgba(0,0,0,0.5) inset,0 1px 0 0 rgba(250,250,250,0.5);-webkit-box-shadow:0 1px 2px 0 rgba(0,0,0,0.5) inset,0 1px 0 0 rgba(250,250,250,0.5);border:1px solid #255399;border-radius:3px;-webkit-border-radius:3px 3px 3px 3px;-moz-border-radius:3px;position:absolute;top:-1px;height:100%}
137
- .a3rev_panel_container .a3rev-ui-slider{float:left;width:50px;padding:3px;margin-top:-1px}
138
- .a3rev_panel_container .a3rev-ui-array_textfields{width:40px}
139
- .a3rev_panel_container .forminp-onoff_radio ul{float:left;width:100%;margin:0}
140
- .a3rev_panel_container .forminp-onoff_radio li{float:left;width:100%;padding-top:10px}
141
- .a3rev_panel_container .forminp-onoff_radio .iPhoneCheckDisabled,.a3rev_panel_container .forminp-onoff_radio .iOSCheckDisabled{filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100);opacity:1}
142
- .a3rev_panel_container .iPhoneCheckContainer,.a3rev_panel_container .iOSCheckContainer{position:relative;height:25px;cursor:pointer;margin-right:10px;float:left;margin-top:-3px}
143
- .a3rev_panel_container .iPhoneCheckContainer input,.a3rev_panel_container .iOSCheckContainer input{display:none}
144
- .a3rev_panel_container .iPhoneCheckContainer label,.a3rev_panel_container .iOSCheckContainer label{white-space:nowrap;font-size:14px;line-height:24px;font-weight:700;font-family:"Helvetica Neue",Arial,Helvetica,sans-serif;cursor:pointer;display:block;position:absolute;width:auto;top:0;overflow:hidden;user-select:none;-moz-user-select:none;-khtml-user-select:none}
145
- .a3rev_panel_container label.iPhoneCheckLabelOff,.a3rev_panel_container label.iOSCheckLabelOff{background:#ededed;background:-moz-linear-gradient(top,#dcdcdc 20%,#ededed 50%,#f7f6f6 52%,#fff 100%);background:-webkit-gradient(linear,0 0,0 100%,color-stop(20%,#ededed),color-stop(50%,#ededed),color-stop(52%,#f7f6f6),color-stop(100%,#fff));background:-webkit-linear-gradient(top,#dcdcdc 20%,#ededed 50%,#f7f6f6 52%,#fff 100%);background:-o-linear-gradient(top,#dcdcdc 20%,#ededed 50%,#f7f6f6 52%,#fff 100%);background:-ms-linear-gradient(top,#dcdcdc 20%,#ededed 50%,#f7f6f6 52%,#fff 100%);background:linear-gradient(#dcdcdc 20%,#ededed 50%,#f7f6f6 52%,#fff 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#dcdcdc',endColorstr='#ffffff',GradientType=0);box-shadow:0 1px 2px 0 rgba(0,0,0,0.5) inset,0 1px 0 0 rgba(250,250,250,0.5);-webkit-box-shadow:0 1px 2px 0 rgba(0,0,0,0.5) inset,0 1px 0 0 rgba(250,250,250,0.5);border:1px solid #999;border-radius:5px;-webkit-border-radius:5px 5px 5px 5px;-moz-border-radius:5px;height:23px;color:#8b8b8b;text-shadow:0 0 2px rgba(255,255,255,0.6);text-align:right;right:0}
146
- .a3rev_panel_container label.iPhoneCheckLabelOff span,.a3rev_panel_container label.iOSCheckLabelOff span{padding-right:10px;padding-left:0;display:inline-block;text-transform:uppercase}
147
- .a3rev_panel_container label.iPhoneCheckLabelOn,.a3rev_panel_container label.iOSCheckLabelOn{background:#569aef;background:-moz-linear-gradient(top,#468be0 20%,#569aef 50%,#6aa7f6 52%,#82b3f5 100%);background:-webkit-gradient(linear,0 0,0 100%,color-stop(20%,#468be0),color-stop(50%,#569aef),color-stop(52%,#6aa7f6),color-stop(100%,#82b3f5));background:-webkit-linear-gradient(top,#468be0 20%,#569aef 50%,#6aa7f6 52%,#82b3f5 100%);background:-o-linear-gradient(top,#468be0 20%,#569aef 50%,#6aa7f6 52%,#82b3f5 100%);background:-ms-linear-gradient(top,#468be0 20%,#569aef 50%,#6aa7f6 52%,#82b3f5 100%);background:linear-gradient(#468be0 20%,#569aef 50%,#6aa7f6 52%,#82b3f5 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#468be0',endColorstr='#82b3f5',GradientType=0);box-shadow:0 1px 2px 0 rgba(0,0,0,0.5) inset,0 1px 0 0 rgba(250,250,250,0.5);-webkit-box-shadow:0 1px 2px 0 rgba(0,0,0,0.5) inset,0 1px 0 0 rgba(250,250,250,0.5);border:1px solid #999;border-radius:5px;-webkit-border-radius:5px 5px 5px 5px;-moz-border-radius:5px;height:23px;text-align:left;color:#FFF;text-shadow:0 0 2px rgba(0,0,0,0.6);left:0}
148
- .a3rev_panel_container label.iPhoneCheckLabelOn span,.a3rev_panel_container label.iOSCheckLabelOn span{padding-left:10px;display:inline-block;text-transform:uppercase}
149
- .a3rev_panel_container .iPhoneCheckHandle,.a3rev_panel_container .iOSCheckHandle{background:#569aef;background:-moz-linear-gradient(top,#bcbcbc 20%,#d5d5d5 50%,#d8d8d8 52%,#efefef 100%);background:-webkit-gradient(linear,0 0,0 100%,color-stop(20%,#bcbcbc),color-stop(50%,#d5d5d5),color-stop(52%,#d8d8d8),color-stop(100%,#efefef));background:-webkit-linear-gradient(top,#bcbcbc 20%,#d5d5d5 50%,#d8d8d8 52%,#efefef 100%);background:-o-linear-gradient(top,#bcbcbc 20%,#d5d5d5 50%,#d8d8d8 52%,#efefef 100%);background:-ms-linear-gradient(top,#bcbcbc 20%,#d5d5d5 50%,#d8d8d8 52%,#efefef 100%);background:linear-gradient(#bcbcbc 20%,#d5d5d5 50%,#d8d8d8 52%,#efefef 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#bcbcbc',endColorstr='#efefef',GradientType=0);box-shadow:0 1px 0 0 #FFF inset;-webkit-box-shadow:0 1px 0 0 #FFF inset;border:1px solid #999;border-radius:5px;-webkit-border-radius:5px 5px 5px 5px;-moz-border-radius:5px;display:block;cursor:pointer;position:absolute;top:0;left:-1px;width:35px;height:23px}
150
- .a3rev_panel_container .iPhoneCheckDisabled,.a3rev_panel_container .iOSCheckDisabled{filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=50);opacity:.5}
151
- .a3rev_panel_container .forminp-switcher_checkbox .iPhoneCheckContainer .iPhoneCheckLabelOff,.a3rev_panel_container .forminp-switcher_checkbox .iOSCheckContainer .iOSCheckLabelOff{background:#569aef;background:-moz-linear-gradient(top,#468be0 20%,#569aef 50%,#6aa7f6 52%,#82b3f5 100%);background:-webkit-gradient(linear,0 0,0 100%,color-stop(20%,#468be0),color-stop(50%,#569aef),color-stop(52%,#6aa7f6),color-stop(100%,#82b3f5));background:-webkit-linear-gradient(top,#468be0 20%,#569aef 50%,#6aa7f6 52%,#82b3f5 100%);background:-o-linear-gradient(top,#468be0 20%,#569aef 50%,#6aa7f6 52%,#82b3f5 100%);background:-ms-linear-gradient(top,#468be0 20%,#569aef 50%,#6aa7f6 52%,#82b3f5 100%);background:linear-gradient(#468be0 20%,#569aef 50%,#6aa7f6 52%,#82b3f5 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#468be0',endColorstr='#82b3f5',GradientType=0);box-shadow:0 1px 2px 0 rgba(0,0,0,0.5) inset,0 1px 0 0 rgba(250,250,250,0.5);-webkit-box-shadow:0 1px 2px 0 rgba(0,0,0,0.5) inset,0 1px 0 0 rgba(250,250,250,0.5);border:1px solid #666;border-radius:5px;-webkit-border-radius:5px 5px 5px 5px;-moz-border-radius:5px;color:#FFF;text-shadow:0 0 2px rgba(0,0,0,0.6)}
152
- .a3rev_panel_container .a3rev-ui-time_picker{width:76px;text-align:center;cursor:pointer}
153
- .a3rev_panel_container table.form-table th img.help_tip{float:right;margin:0 -12px 0 0}
154
- .a3rev_panel_container table.form-table img.help_tip{cursor:help;line-height:1;margin:-4px 0 0 5px;padding:0;vertical-align:middle}
155
- .subsubsub{white-space:normal}
156
- .subsubsub li{white-space:nowrap}
157
- .a3-view-docs-button{background-color:#FFFFE0!important;border:1px solid #E6DB55!important;display:inline-block!important;font-weight:400!important;margin:5px 10px 0!important;text-shadow:none!important}
158
- #a3_plugin_premium_video_container{margin-top:10px}
159
- #a3_plugin_premium_video_container .a3rev_panel_box{margin-bottom:0}
160
- #a3_plugin_premium_video_container .a3-plugin-ui-panel-box{color:#006799;cursor:default}
161
- #a3_plugin_premium_video_container .a3-plugin-ui-panel-box::before{color:#006799;content:"f"}
162
- #a3_plugin_premium_video_container .a3rev_panel_video_box{border-top:1px solid #eee;overflow:hidden;padding:0;position:relative}
163
- #a3_plugin_premium_video_container .a3rev_panel_box_left_inside,#a3_plugin_premium_video_container .a3rev_panel_box_right_inside{width:calc(50% - 1px);padding:12px 12px 30px;box-sizing:border-box;float:left}
164
- #a3_plugin_premium_video_container .a3rev_panel_box_separate{width:1px;height:100%;background-color:#eee;position:absolute;top:0;left:50%;margin-left:-2px}
165
- #a3_plugin_premium_video_container .a3-plugin-premium-image{position:relative;float:left;width:50%;margin-right:15px}
166
- #a3_plugin_premium_video_container .a3-plugin-premium-image img{height:auto;width:100%;float:left}
167
- #a3_plugin_premium_video_container .a3-plugin-premium-video-play{position:absolute;top:0;left:0;width:100%;height:100%;background-image:url(../images/play_video.png);background-repeat:no-repeat;background-position:center center;background-size:80px auto;background-color:rgba(0,0,0,0.2)}
168
- #a3_plugin_premium_video_container .a3-plugin-video-play:hover{background-color:rgba(0,0,0,0.6)}
169
- #a3_plugin_panel_container{position:relative;margin-top:10px;float:left;width:100%}
170
- #a3_plugin_panel_fields{padding-right:280px}
171
- #a3_plugin_panel_upgrade_area{float:right;padding-left:20px;width:260px;margin-top:10px}
172
- #a3_plugin_panel_extensions .a3_plugin_panel_extension_box{border:1px solid #E6DB55;color:#555;margin-bottom:17px;padding:5px 10px;background:#fff}
173
- #a3_plugin_panel_extensions img{width:auto;max-width:100%}
174
- .pro_feature_top_message{font-size:11px;text-align:center;margin:10px 0}
175
- .pro_feature_fields{position:relative;border:2px solid #E6DB55;-webkit-border-radius:10px;-moz-border-radius:10px;-o-border-radius:10px;border-radius:10px}
176
- .pro_feature_hidden{display:none!important}
177
- .a3rev_blue_message_box{margin:0!important;background-color:#F0F8FF;border-color:#CEE1EF;padding:5px 10px;border-radius:3px 3px 3px 3px;-webkit-border-radius:3px 3px 3px 3px;-moz-border-radius:3px;border-style:solid;border-width:1px}
178
- .a3rev_blue_message_box a{color:red}
179
- .a3rev_panel_container .chosen-container{margin-bottom:5px;margin-right:2px}
180
- .a3-plugin-ui-delete-icon:before{vertical-align:top}
181
- .a3-plugin-ui-icon{color:#46719d;overflow:hidden}
182
- .a3-plugin-ui-a3-rev-logo{font-size:170px;height:125px;margin-top:-30px}
183
- .a3-plugin-ui-help-icon{color:#777;float:right;margin-right:-15px;width:14px;height:14px;cursor:pointer;font-size:12px;margin-top:5px}
184
- .a3-plugin-ui-preview-icon{color:#000;display:block;width:14px;height:16px}
185
- .a3rev_panel_container .a3rev-ui-typography-preview-button span:before,.a3rev_panel_container .a3rev-ui-settings-preview-button span:before{font-family:"a3-plugin-framework"!important;font-style:normal!important;font-weight:400!important;font-variant:normal!important;text-transform:none!important;speak:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:"g";width:14px;height:16px;font-size:12px}
186
- .a3rev_panel_container .a3rev-ui-typography-preview-button span.refresh:before,.a3rev_panel_container .a3rev-ui-settings-preview-button span.refresh:before{content:"h"!important}
187
- .wf-loading .a3rev_panel_container .typography-preview.current:before,.wf-loading .a3rev_panel_container .settings-preview.current:before{content:"k"!important}
188
- .a3-plugin-ui-delete-icon{font-size:10px;color:#C00}
189
- @media screen and ( max-width: 1100px ) {
190
- .a3rev_panel_column .form-table th,.a3rev_panel_column .form-table td{display:block;vertical-align:middle;width:auto}
191
- .a3rev_panel_column .form-table th{border-bottom:0;padding-bottom:0;padding-top:10px}
192
- .a3rev_panel_column .form-table td{margin-bottom:0;padding-bottom:6px;padding-left:0;padding-top:4px}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
193
  }
194
- @media screen and ( min-width: 783px ) {
195
- .a3rev_panel_container .chosen-container-multi{min-width:300px}
196
  }
197
- @media screen and ( max-width: 782px ) {
198
- #a3_plugin_panel_fields{width:100%}
199
- #a3_plugin_panel_upgrade_area{display:none}
200
- .a3rev_panel_container .pro_feature_fields{margin-right:0}
201
- .a3rev_panel_container input[type="text"],.a3rev_panel_container input[type="email"],.a3rev_panel_container input[type="number"],.a3rev_panel_container input[type="password"]{min-width:50px;width:100%}
202
- .a3rev_panel_container .a3rev-ui-text{max-width:none;width:100%}
203
- .a3rev_panel_container .a3rev-ui-textarea{max-width:none!important;width:100%!important}
204
- .a3rev_panel_container .a3rev-ui-slider{width:50px!important}
205
- .a3rev_panel_container .typography-preview-container,.a3rev_panel_container .settings-preview-container{width:90%}
206
- .a3rev_panel_container .a3rev-ui-typography-preview-button:active,.a3rev_panel_container .a3rev-ui-settings-preview-button:active{padding-top:inherit!important}
207
- .a3rev_panel_container .wp-picker-container input.wp-color-picker[type="text"]{width:75px!important;padding:3px 10px!important}
208
- .wp-core-ui .button.wp-picker-default{padding:0 8px 1px}
209
- .a3rev_panel_container input.a3rev-color-picker{margin-top:1px!important}
210
- .a3rev_panel_container input.wp-picker-default{margin-top:1px!important;padding:2px 8px!important}
211
- .a3rev_panel_container .chosen-container-multi{width:100%!important}
212
- .a3rev_blue_message_box_container{width:100%!important}
213
- .a3-plugin-ui-help-icon{margin-right:0}
214
- .a3rev_panel_container .a3rev-ui-statistic-item{width:100%!important}
 
 
 
 
 
215
  }
216
- @media screen and ( max-width: 640px ) {
217
- .a3rev_panel_container .a3rev_panel_row{display:block}
218
- .a3rev_panel_container .a3rev_panel_column{display:block;width:100%;padding:0}
219
- .a3rev_panel_container .a3rev_panel_column:first-child,.a3rev_panel_container .a3rev_panel_column:last-child{padding:0}
 
220
  }
221
- @media screen and ( max-width: 600px ) {
222
- #a3_plugin_premium_video_container .a3rev_panel_box_left_inside,#a3_plugin_premium_video_container .a3rev_panel_box_right_inside{width:100%;float:left}
223
- #a3_plugin_premium_video_container .a3rev_panel_box_separate{width:100%;height:1px;position:relative;margin-left:0;float:left;left:auto;top:auto}
 
 
 
 
 
 
 
224
  }
225
- @media screen and ( max-width: 480px ) {
226
- .a3rev_panel_container .a3rev-ui-slide-container-start{margin-top:5px}
227
- .a3_subsubsub_section .subsubsub{text-align:left}
228
- .a3rev_panel_container .chosen-container-single{max-width:300px!important}
229
- #a3_plugin_premium_video_container .a3-plugin-premium-image{width:100%;margin-right:0;margin-bottom:10px}
230
- }
1
+ /*-------------------------------------------------------------------------------------------*/
2
+
3
+ /* A3rev Panel UI */
4
+
5
+ /*-------------------------------------------------------------------------------------------*/
6
  @charset "UTF-8";
7
+
8
+ /* A3 Plugin Framework Font Icons */
9
+
10
+ /* GENERATE by Fontastic http://fontastic.me */
11
+ @font-face{font-family:"a3-plugin-framework";src:url("../fonts/a3-plugin-framework.eot");src:url("../fonts/a3-plugin-framework.eot?#iefix") format("embedded-opentype"),url("../fonts/a3-plugin-framework.woff") format("woff"),url("../fonts/a3-plugin-framework.ttf") format("truetype"),url("../fonts/a3-plugin-framework.svg#a3-plugin-framework") format("svg");font-weight:normal;font-style:normal;}
12
+ @-webkit-keyframes progress-bar{
13
+ from{background-position:0 0;}
14
+ to{background-position:24px 40px;}
15
  }
16
+ @keyframes progress-bar{
17
+ from{background-position:0 0;}
18
+ to{background-position:24px 40px;}
19
  }
20
+ [class^="a3-plugin-ui-"]:before,
21
+ [class*=" a3-plugin-ui-"]:before{font-family:"a3-plugin-framework"!important;font-style:normal!important;font-weight:normal!important;font-variant:normal!important;text-transform:none!important;speak:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;}
22
+ .a3-plugin-ui-a3-plugins-icon:before{content:"a";}
23
+ .a3-plugin-ui-a3-rev-logo:before{content:"b";}
24
+ .a3-plugin-ui-a3-thumb-icon:before{content:"c";}
25
+ .a3-plugin-ui-delete-icon:before{content:"d";}
26
+ .a3-plugin-ui-help-icon:before{content:"e";}
27
+ .a3-plugin-ui-key-icon:before{content:"f";}
28
+ .a3-plugin-ui-preview-icon:before{content:"g";}
29
+ .a3-plugin-ui-refresh-icon:before{content:"h";}
30
+ .a3-plugin-ui-loading-icon:before{content:"k";}
31
+ .a3-plugin-ui-a3-plugins-icon-1:before{content:"i";}
32
+ .a3-plugin-ui-a3-rev-logo-1:before{content:"j";}
33
+ .a3rev_panel_container{visibility:hidden;height:0;overflow:hidden;margin-top:10px;float:left;width:100%;}
34
+ .a3rev_panel_container .a3rev_panel_row{display:table;width:100%;table-layout:fixed;clear:both;position:relative;}
35
+ .a3rev_panel_container .a3rev_panel_row:after{display:table;clear:both;content:'';}
36
+ .a3rev_panel_container .a3rev_panel_column{display:table-cell;width:50%;box-sizing:border-box;padding:0 10px;position:relative;vertical-align:top;}
37
+ .a3rev_panel_container .a3rev_panel_column:last-child{padding-right:0;}
38
+ .a3rev_panel_container .a3rev_panel_column:first-child{padding-left:0;padding-right:10px;}
39
+ .a3rev_panel_container .a3rev_panel_box{position:relative;border:1px solid #e5e5e5;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.06);box-shadow:0 1px 1px rgba(0,0,0,0.06);background:#fff;margin-bottom:20px;border-radius:0px;}
40
+ .a3rev_panel_container .a3rev_panel_box .a3rev_panel_box{-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.1);box-shadow:0 1px 1px rgba(0,0,0,0.1);}
41
+ .a3rev_panel_container .a3rev_panel_box_handle{padding:8px 12px 8px 38px;position:relative;}
42
+ .a3rev_panel_container .a3rev_panel_box_handle .pro_feature_top_message{text-align:left;margin:5px 0 0;}
43
+ .a3rev_panel_container .a3-plugin-ui-panel-box{cursor:pointer;margin:0;}
44
+ .a3rev_panel_container .a3-plugin-ui-panel-box:before{content:"j";color:#aaa;position:absolute;top:7px;left:10px;font-size:20px;}
45
+ .a3rev_panel_container .box_active .a3-plugin-ui-panel-box:before{color:#22ef00;}
46
+ .a3rev_panel_container .a3-plugin-ui-panel-box.box_open:before{content:"m";color:#000;}
47
+ .a3rev_panel_container .a3-plugin-ui-panel-box:hover:before{color:#000;}
48
+ .a3rev_panel_container .a3rev_panel_box_handle h3{margin:0;}
49
+ .a3rev_panel_container .a3rev_panel_box_handle p{font-size:12px;margin:5px 0;}
50
+ .a3rev_panel_container .a3rev_panel_box_handle p:last-child{margin-bottom:0;}
51
+ .a3rev_panel_container .a3rev_panel_box_inside{overflow:hidden;height:0;visibility:hidden;border-top:1px solid #eee;padding:0 12px;}
52
+ .a3rev_panel_container .a3rev_panel_box_inside.box_open{overflow:inherit;height:auto;visibility:visible;}
53
+ .a3rev_panel_container .a3rev_panel_box.pro_feature_fields .a3rev_panel_box_handle{background-color:#edfed0;}
54
+ .a3rev_panel_container .a3rev_panel_box.pro_feature_fields .a3rev_panel_box_inside{border-color:#7ebd14;}
55
+ .a3rev_panel_container .a3rev_panel_inner{clear:both;display:block;padding-bottom:10px;}
56
+ .a3rev_panel_container .a3rev_panel_inner h3{margin-bottom:0;}
57
+ .a3rev_panel_container .a3rev_panel_inner .form-table{margin-bottom:0;}
58
+ .icon32-a3rev-ui-settings{background:url("../images/a3-plugins.png") no-repeat left top;}
59
+ .a3_subsubsub_section{float:left;width:100%;}
60
+ .a3rev_panel_container input[type="text"],
61
+ .a3rev_panel_container input[type="email"],
62
+ .a3rev_panel_container input[type="number"],
63
+ .a3rev_panel_container input[type="password"]{height:24px;}
64
+
65
+ /* Font Control */
66
+ .a3rev_panel_container .a3rev-ui-typography-size{width:80px;}
67
+ .a3rev_panel_container .a3rev-ui-typography-line_height{width:80px;}
68
+ .a3rev_panel_container .a3rev-ui-typography-face{width:160px;}
69
+ .a3rev_panel_container .a3rev-ui-typography-style{width:100px;}
70
+ .a3rev_panel_container .a3rev-ui-typography-preview{display:inline-block;}
71
+ .a3rev_panel_container .typography-preview-container .preview_remove{background:#EEEEEE;border:1px solid #DDDDDD;border-radius:2px 2px 2px 2px;-webkit-border-radius:2px 2px 2px 2px;-moz-border-radius:2px 2px 2px 2px;cursor:pointer;height:10px;padding:2px;position:absolute;right:-10px;top:-10px;width:10px;z-index:99;text-decoration:none!important;}
72
+ .a3rev_panel_container .a3rev-ui-typography-preview-button{float:left;margin:0px;padding-top:0px;height:24px;line-height:24px;}
73
+ .a3rev_panel_container .typography-preview-container{clear:both;position:relative;width:50%;margin-top:10px;}
74
+ .a3rev_panel_container .typography-preview{word-wrap:break-word;clear:both;padding:20px;border:1px solid #CCCCCC;background:#FDFDFD;border-radius:3px;-moz-border-radius:3px;-webkit-border-radius:3px;}
75
+
76
+ /* Class is dynamically added to the "html" tag. */
77
+
78
+ /* Color Control */
79
+ .a3rev_panel_container .wp-picker-holder{position:absolute;z-index:10000;}
80
+ .a3rev_panel_container input.wp-picker-default{height:24px!important;}
81
+ .a3rev_panel_container .wp-color-result{top:0px;}
82
+
83
+ /* Text Input Control */
84
+ .a3rev_panel_container .a3rev-ui-text{width:300px;max-width:70%;}
85
+
86
+ /* Email Input Control */
87
+ .a3rev_panel_container .a3rev-ui-email{width:300px;max-width:70%;}
88
+
89
+ /* Number Input Control */
90
+ .a3rev_panel_container .a3rev-ui-number{width:40px;max-width:70%;}
91
+
92
+ /* Password Input Control */
93
+ .a3rev_panel_container .a3rev-ui-password{width:300px;max-width:70%;}
94
+
95
+ /* Google API KEY Control */
96
+ .a3rev_panel_container .a3rev-ui-google_api_key{width:350px;max-width:100%;}
97
+ .a3rev_panel_container .a3rev-ui-google-api-key-inside{margin-top:10px;}
98
+ .a3rev_panel_container .a3rev-ui-google-valid-key-message,
99
+ .a3rev_panel_container .a3rev-ui-google-unvalid-key-message{display:none;}
100
+ .a3rev_panel_container .a3rev-ui-google-valid-key,
101
+ .a3rev_panel_container .a3rev-ui-google-unvalid-key{padding:10px;box-shadow:0 1px 1px rgba(0,0,0,0.1);}
102
+ .a3rev_panel_container .a3rev-ui-google-valid-key{background-color:#dff0d8;border:1px solid #468847;color:#468847;}
103
+ .a3rev_panel_container .a3rev-ui-google-unvalid-key{background-color:#ffebe8;border:1px solid #dd3d36;color:#dd3d36;}
104
+ .a3rev_panel_container .a3rev-ui-google-valid-key .a3rev-ui-google-valid-key-message,
105
+ .a3rev_panel_container .a3rev-ui-google-unvalid-key .a3rev-ui-google-unvalid-key-message{display:block;}
106
+
107
+ /* Manual Check New Version Control */
108
+ .a3rev_panel_container .a3rev-ui-version-checking{display:none;margin-top:6px;background-image:url('../images/loading-bottom.gif');background-repeat:no-repeat;background-size:100% auto;width:16px;height:16px;}
109
+ .a3rev_panel_container .a3rev-ui-check-version-message{font-size:13px;}
110
+ .a3rev_panel_container .a3rev-ui-new-version-message,
111
+ .a3rev_panel_container .a3rev-ui-latest-version-message{padding:8px 10px;box-shadow:0 1px 1px rgba(0,0,0,0.1);margin-top:8px;}
112
+ .a3rev_panel_container .a3rev-ui-latest-version-message{background-color:#dff0d8;border:1px solid #468847;color:#468847;}
113
+ .a3rev_panel_container .a3rev-ui-new-version-message{background-color:#ffebe8;border:1px solid #dd3d36;color:#dd3d36;}
114
+
115
+ /* Ajax Submit Control */
116
+ .a3rev_panel_container .a3rev-ui-ajax_submit-control,
117
+ .a3rev_panel_container .a3rev-ui-ajax_multi_submit-control{margin-bottom:6px;position:relative;}
118
+ .a3rev_panel_container .a3rev-ui-ajax_submit-control .a3rev-ui-ajax_submit-button,
119
+ .a3rev_panel_container .a3rev-ui-ajax_multi_submit-control .a3rev-ui-ajax_multi_submit-button{border-radius:5px;border:none;background:#2186fa;color:#fff;font-size:16px;padding:8px 15px;transition:all 0.5s ease 0.1s;cursor:pointer;height:40px;box-sizing:border-box;margin-bottom:5px;}
120
+ .a3rev_panel_container .a3rev-ui-ajax_submit-control .a3rev-ui-ajax_submit-button:hover,
121
+ .a3rev_panel_container .a3rev-ui-ajax_multi_submit-control .a3rev-ui-ajax_multi_submit-button:hover{background:#f4741b;}
122
+ .a3rev_panel_container .a3rev-ui-ajax_submit-control .a3rev-ui-ajax_submit-button.disabled,
123
+ .a3rev_panel_container .a3rev-ui-ajax_multi_submit-control .a3rev-ui-ajax_multi_submit-button.disabled{background:#999;cursor:default;}
124
+ .a3rev_panel_container .a3rev-ui-ajax_submit-control .a3rev-ui-ajax_submit-successed,
125
+ .a3rev_panel_container .a3rev-ui-ajax_multi_submit-control .a3rev-ui-ajax_multi_submit-successed{display:none;color:#46b450;font-size:14px;transition:all 1.5s ease 0.1s;height:40px;box-sizing:border-box;}
126
+ .a3rev_panel_container .a3rev-ui-ajax_submit-control .a3rev-ui-ajax_submit-errors,
127
+ .a3rev_panel_container .a3rev-ui-ajax_multi_submit-control .a3rev-ui-ajax_multi_submit-errors{display:none;color:#dc3232;font-size:14px;transition:all 1.5s ease 0.1s;}
128
+ .a3rev_panel_container .a3rev-ui-progress-bar-wrap{background:rgba(0,0,0,0.6) none repeat scroll 0 0;border-radius:6px;box-shadow:0 1px 5px rgba(0,0,0,0.6) inset;display:none;padding:3px;width:100%;max-width:600px;position:relative;}
129
+ .a3rev_panel_container .a3rev-ui-progress-notice{display:none;position:absolute;text-align:center;top:-25px;width:100%;color:#f00;}
130
+ .a3rev_panel_container .a3rev-ui-progress-inner{animation:progress-bar 1s infinite linear;-ms-animation:progress-bar 1s infinite linear;-moz-animation:progress-bar 1s infinite linear;-webkit-animation:progress-bar 1s infinite linear;background:rgba(0,0,0,0) repeating-linear-gradient(-45deg,#0077ff,#0077ff 10px,#c3defd 10px,#c3defd 24px) repeat scroll 0 0 / 68px 68px;border-radius:4px;box-shadow:0 1px 0 rgba(0,0,0,0.75);height:34px;overflow:hidden;transition:width 2s ease 0.1s;width:0px;}
131
+ .a3rev_panel_container .a3rev-ui-progressing-text,
132
+ .a3rev_panel_container .a3rev-ui-completed-text{box-sizing:border-box;color:#fff;display:block;font-size:16px;left:0;top:0;padding:0px 10px;position:absolute;text-align:center;text-shadow:0px 0px 2px #000;width:100%;height:100%;line-height:40px;z-index:1;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;}
133
+ .a3rev_panel_container .a3rev-ui-completed-text{display:none;}
134
+
135
+ /* Ajax Multi Submit Control */
136
+ .a3rev_panel_container .a3rev-ui-ajax_multi_submit-control .a3rev-ui-ajax_multi_submit-button{margin-bottom:0px;}
137
+ .a3rev_panel_container .a3rev-ui-statistics-wrap{float:left;width:100%;max-width:600px;margin-top:20px;}
138
+ .a3rev_panel_container .a3rev-ui-statistic-item{float:left;width:100%;box-sizing:border-box;margin-bottom:30px;}
139
+ .a3rev_panel_container .a3rev-ui-pie-wrap{height:80px;width:80px;margin:0 auto 5px auto;position:relative;}
140
+ .a3rev_panel_container .a3rev-ui-pie-shadow{border:10px solid #ddd;border-radius:100%;height:100%;width:100%;box-sizing:border-box;}
141
+ .a3rev_panel_container .a3rev-ui-pie{clip:rect(0px,80px,80px,40px);height:100%;width:100%;position:absolute;left:0;top:0;}
142
+ .a3rev_panel_container .a3rev-ui-pie.pie-more-50{clip:rect(auto,auto,auto,auto);}
143
+ .a3rev_panel_container .a3rev-ui-pie-half-circle{clip:rect(0px,40px,80px,0px);border:10px solid #3498db;border-radius:100%;height:100%;width:100%;position:absolute;left:0;top:0;box-sizing:border-box;}
144
+ .a3rev_panel_container .a3rev-ui-statistic-text{text-align:center;text-transform:uppercase;color:#777;}
145
+ .a3rev_panel_container .a3rev-ui-statistic-separate,
146
+ .a3rev_panel_container .a3rev-ui-statistic-current-item,
147
+ .a3rev_panel_container .a3rev-ui-statistic-total-item{color:#000;font-size:25px;margin:0px;}
148
+
149
+ /* Textarea Control */
150
+ .a3rev_panel_container .a3rev-ui-textarea{width:600px;max-width:70%;}
151
+
152
+ /* Select Control */
153
+ .a3rev_panel_container .a3rev-ui-select{width:160px;max-width:70%;}
154
+
155
+ /* Multiselect Control */
156
+ .a3rev_panel_container .a3rev-ui-multiselect{width:300px;max-width:70%;}
157
+
158
+ /* Radio Control */
159
+ .a3rev_panel_container .forminp-radio ul{margin:0;}
160
+
161
+ /* Image Size Control */
162
+ .a3rev_panel_container .a3rev-ui-image_size-width{width:40px;}
163
+ .a3rev_panel_container .a3rev-ui-image_size-height{width:40px;}
164
+ .a3rev_panel_container .a3rev-ui-image_size-crop{}
165
+
166
+ /* Single Select Page Control */
167
+ .a3rev_panel_container .a3rev-ui-single_select_page{width:300px;max-width:70%;}
168
+
169
+ /* Settings Preview */
170
+ .a3rev_panel_container .a3rev-ui-settings-preview{display:inline-block;}
171
+ .a3rev_panel_container .settings-apply-preview{padding:10px;background:#FF0;}
172
+ .a3rev_panel_container .settings-preview-container .preview_remove{background:#EEEEEE;border:1px solid #DDDDDD;border-radius:2px 2px 2px 2px;-webkit-border-radius:2px 2px 2px 2px;-moz-border-radius:2px 2px 2px 2px;cursor:pointer;height:10px;padding:2px;position:absolute;right:-10px;top:-10px;width:10px;z-index:99;text-decoration:none!important;}
173
+ .a3rev_panel_container .a3rev-ui-settings-preview-button{float:left;margin:0px;padding-top:0px;height:24px;line-height:24px;}
174
+ .a3rev_panel_container .settings-preview-container{clear:both;position:relative;margin-top:12px;width:50%;}
175
+ .a3rev_panel_container .settings-preview{word-wrap:break-word;clear:both;padding:30px;border:1px solid #CCCCCC;background:#FDFDFD;border-radius:3px;-moz-border-radius:3px;-webkit-border-radius:3px;}
176
+
177
+ /* Border Styles Control */
178
+ .a3rev_panel_container .a3rev-ui-border_styles-width{width:80px;}
179
+ .a3rev_panel_container .a3rev-ui-border_styles-style{width:80px;}
180
+
181
+ /* Border Rounded Corner Control */
182
+ .a3rev_panel_container .forminp-border_corner .desc{margin-bottom:10px!important;}
183
+ .a3rev_panel_container .forminp-border_corner .iPhoneCheckContainer{margin-right:30px;}
184
+ .a3rev_panel_container .a3rev-ui-border-corner-value-container{float:left;width:100%;}
185
+ .a3rev_panel_container .a3rev-ui-border_corner-top_left,
186
+ .a3rev_panel_container .a3rev-ui-border_corner-top_right,
187
+ .a3rev_panel_container .a3rev-ui-border_corner-bottom_left,
188
+ .a3rev_panel_container .a3rev-ui-border_corner-bottom_right{float:left;width:100%;clear:both;padding-top:5px;}
189
+ .a3rev_panel_container .a3rev-ui-border_corner-span{float:left;width:140px;margin-bottom:8px;}
190
+ .a3rev_panel_container .a3rev-ui-border_corner-px{float:left;margin-right:10px;}
191
+ .a3rev_panel_container .forminp-border_corner .settings-apply-preview{border:1px solid #515151;}
192
+ .a3rev_panel_container .forminp-border_corner .iPhoneCheckContainer .iPhoneCheckLabelOff,
193
+ .a3rev_panel_container .forminp-border_corner .iOSCheckContainer .iOSCheckLabelOff{background:#569aef;background:-moz-linear-gradient(top,#468be0 20%,#569aef 50%,#6aa7f6 52%,#82b3f5 100%);background:-webkit-gradient(linear,0 0,0 100%,color-stop(20%,#468be0),color-stop(50%,#569aef),color-stop(52%,#6aa7f6),color-stop(100%,#82b3f5));background:-webkit-linear-gradient(top,#468be0 20%,#569aef 50%,#6aa7f6 52%,#82b3f5 100%);background:-o-linear-gradient(top,#468be0 20%,#569aef 50%,#6aa7f6 52%,#82b3f5 100%);background:-ms-linear-gradient(top,#468be0 20%,#569aef 50%,#6aa7f6 52%,#82b3f5 100%);background:linear-gradient(#468be0 20%,#569aef 50%,#6aa7f6 52%,#82b3f5 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#468be0',endColorstr='#82b3f5',GradientType=0);box-shadow:0 1px 2px 0 rgba(0,0,0,0.5) inset,0 1px 0 0 rgba(250,250,250,0.5);-webkit-box-shadow:0 1px 2px 0 rgba(0,0,0,0.5) inset,0 1px 0 0 rgba(250,250,250,0.5);border:1px solid #666666;border-radius:5px;-webkit-border-radius:5px 5px 5px 5px;-moz-border-radius:5px 5px 5px 5px;color:#FFFFFF;text-shadow:0px 0px 2px rgba(0,0,0,0.6);}
194
+
195
+ /* Background Color Control */
196
+ .a3rev_panel_container .a3rev-ui-bg_color-enable-container{margin-top:10px;}
197
+
198
+ /* Box Shadow Control */
199
+ .a3rev_panel_container .a3rev-ui-box_shadow-h_shadow{width:80px;}
200
+ .a3rev_panel_container .a3rev-ui-box_shadow-v_shadow{width:80px;}
201
+ .a3rev_panel_container .a3rev-ui-box_shadow-blur{width:80px;}
202
+ .a3rev_panel_container .a3rev-ui-box_shadow-spread{width:80px;}
203
+ .a3rev_panel_container .a3rev-ui-box_shadow-enable-container{margin-top:10px;}
204
+ .a3rev_panel_container .forminp-box_shadow .a3rev-ui-settings-control .iPhoneCheckContainer,
205
+ .a3rev_panel_container .forminp-box_shadow .a3rev-ui-settings-control .iOSCheckContainer{float:none;display:inline-block;margin-top:0;top:-12px;margin-right:0px;}
206
+ .a3rev_panel_container .forminp-box_shadow .a3rev-ui-settings-control .iPhoneCheckContainer .iPhoneCheckLabelOff,
207
+ .a3rev_panel_container .forminp-box_shadow .a3rev-ui-settings-control .iOSCheckContainer .iOSCheckLabelOff{background:#569aef;background:-moz-linear-gradient(top,#468be0 20%,#569aef 50%,#6aa7f6 52%,#82b3f5 100%);background:-webkit-gradient(linear,0 0,0 100%,color-stop(20%,#468be0),color-stop(50%,#569aef),color-stop(52%,#6aa7f6),color-stop(100%,#82b3f5));background:-webkit-linear-gradient(top,#468be0 20%,#569aef 50%,#6aa7f6 52%,#82b3f5 100%);background:-o-linear-gradient(top,#468be0 20%,#569aef 50%,#6aa7f6 52%,#82b3f5 100%);background:-ms-linear-gradient(top,#468be0 20%,#569aef 50%,#6aa7f6 52%,#82b3f5 100%);background:linear-gradient(#468be0 20%,#569aef 50%,#6aa7f6 52%,#82b3f5 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#468be0',endColorstr='#82b3f5',GradientType=0);box-shadow:0 1px 2px 0 rgba(0,0,0,0.5) inset,0 1px 0 0 rgba(250,250,250,0.5);-webkit-box-shadow:0 1px 2px 0 rgba(0,0,0,0.5) inset,0 1px 0 0 rgba(250,250,250,0.5);border:1px solid #666666;border-radius:5px;-webkit-border-radius:5px 5px 5px 5px;-moz-border-radius:5px 5px 5px 5px;color:#FFFFFF;text-shadow:0px 0px 2px rgba(0,0,0,0.6);}
208
+
209
+ /* Uploader Control */
210
+ .a3rev_panel_container .a3rev-ui-upload{width:300px;height:24px;}
211
+
212
+ /* SLIDER Control */
213
+ .a3rev_panel_container .a3rev-ui-slide-container{white-space:nowrap;float:left;}
214
+ .a3rev_panel_container .a3rev-ui-slide-container-start{padding-left:12px;margin-bottom:15px;margin-right:20px;float:left;}
215
+ .a3rev_panel_container .a3rev-ui-slide-result-container{float:left;white-space:nowrap;}
216
+ .a3rev_panel_container .a3rev-ui-slide{background:#ededed;background:-moz-linear-gradient(top,#dcdcdc 20%,#ededed 50%,#f7f6f6 52%,#ffffff 100%);background:-webkit-gradient(linear,0 0,0 100%,color-stop(20%,#ededed),color-stop(50%,#ededed),color-stop(52%,#f7f6f6),color-stop(100%,#ffffff));background:-webkit-linear-gradient(top,#dcdcdc 20%,#ededed 50%,#f7f6f6 52%,#ffffff 100%);background:-o-linear-gradient(top,#dcdcdc 20%,#ededed 50%,#f7f6f6 52%,#ffffff 100%);background:-ms-linear-gradient(top,#dcdcdc 20%,#ededed 50%,#f7f6f6 52%,#ffffff 100%);background:linear-gradient(#dcdcdc 20%,#ededed 50%,#f7f6f6 52%,#ffffff 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#dcdcdc',endColorstr='#ffffff',GradientType=0);border:1px solid #d0d0d9;border-radius:3px;-webkit-border-radius:3px 3px 3px 3px;-moz-border-radius:3px 3px 3px 3px;height:10px;width:220px;position:relative;float:left;margin-top:4px;}
217
+ .a3rev_panel_container .a3rev-ui-slide .ui-slider-handle{background:#569aef;background:-moz-linear-gradient(top,#bcbcbc 20%,#d5d5d5 50%,#d8d8d8 52%,#efefef 100%);background:-webkit-gradient(linear,0 0,0 100%,color-stop(20%,#bcbcbc),color-stop(50%,#d5d5d5),color-stop(52%,#d8d8d8),color-stop(100%,#efefef));background:-webkit-linear-gradient(top,#bcbcbc 20%,#d5d5d5 50%,#d8d8d8 52%,#efefef 100%);background:-o-linear-gradient(top,#bcbcbc 20%,#d5d5d5 50%,#d8d8d8 52%,#efefef 100%);background:-ms-linear-gradient(top,#bcbcbc 20%,#d5d5d5 50%,#d8d8d8 52%,#efefef 100%);background:linear-gradient(#bcbcbc 20%,#d5d5d5 50%,#d8d8d8 52%,#efefef 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#bcbcbc',endColorstr='#efefef',GradientType=0);box-shadow:0 1px 0px 0px #FFFFFF inset;-webkit-box-shadow:0 1px 0px 0px #FFFFFF inset;border:1px solid #999999;border-radius:3px;-webkit-border-radius:3px 3px 3px 3px;-moz-border-radius:3px 3px 3px 3px;position:absolute;z-index:2;width:22px;height:23px;cursor:pointer;font-weight:bold;color:#1C94C4;outline:none;top:-8px;margin-left:-11px;}
218
+ .a3rev_panel_container .a3rev-ui-slide .ui-slider-range{background:#569aef;background:-moz-linear-gradient(top,#468be0 20%,#569aef 50%,#6aa7f6 52%,#82b3f5 100%);background:-webkit-gradient(linear,0 0,0 100%,color-stop(20%,#468be0),color-stop(50%,#569aef),color-stop(52%,#6aa7f6),color-stop(100%,#82b3f5));background:-webkit-linear-gradient(top,#468be0 20%,#569aef 50%,#6aa7f6 52%,#82b3f5 100%);background:-o-linear-gradient(top,#468be0 20%,#569aef 50%,#6aa7f6 52%,#82b3f5 100%);background:-ms-linear-gradient(top,#468be0 20%,#569aef 50%,#6aa7f6 52%,#82b3f5 100%);background:linear-gradient(#468be0 20%,#569aef 50%,#6aa7f6 52%,#82b3f5 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#468be0',endColorstr='#82b3f5',GradientType=0);box-shadow:0 1px 2px 0 rgba(0,0,0,0.5) inset,0 1px 0 0 rgba(250,250,250,0.5);-webkit-box-shadow:0 1px 2px 0 rgba(0,0,0,0.5) inset,0 1px 0 0 rgba(250,250,250,0.5);border:1px solid #255399;border-radius:3px;-webkit-border-radius:3px 3px 3px 3px;-moz-border-radius:3px 3px 3px 3px;position:absolute;top:-1px;height:100%;}
219
+ .a3rev_panel_container .a3rev-ui-slider{float:left;width:50px;padding:3px;margin-top:-1px;}
220
+
221
+ /* Array TextFields Control */
222
+ .a3rev_panel_container .a3rev-ui-array_textfields{width:40px;}
223
+
224
+ /* OnOff Radio Control */
225
+ .a3rev_panel_container .forminp-onoff_radio ul{float:left;width:100%;margin:0;}
226
+ .a3rev_panel_container .forminp-onoff_radio li{float:left;width:100%;padding-top:10px;}
227
+ .a3rev_panel_container .forminp-onoff_radio .iPhoneCheckDisabled,
228
+ .a3rev_panel_container .forminp-onoff_radio .iOSCheckDisabled{filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100);opacity:1;}
229
+
230
+ /* OnOff Checkbox & Radio Control */
231
+ .a3rev_panel_container .iPhoneCheckContainer,
232
+ .a3rev_panel_container .iOSCheckContainer{position:relative;height:25px;cursor:pointer;margin-right:10px;float:left;margin-top:-3px;}
233
+ .a3rev_panel_container .iPhoneCheckContainer input,
234
+ .a3rev_panel_container .iOSCheckContainer input{display:none;}
235
+ .a3rev_panel_container .iPhoneCheckContainer label,
236
+ .a3rev_panel_container .iOSCheckContainer label{white-space:nowrap;font-size:14px;line-height:24px;font-weight:bold;font-family:"Helvetica Neue",Arial,Helvetica,sans-serif;cursor:pointer;display:block;position:absolute;width:auto;top:0;overflow:hidden;user-select:none;-moz-user-select:none;-khtml-user-select:none;}
237
+ .a3rev_panel_container label.iPhoneCheckLabelOff,
238
+ .a3rev_panel_container label.iOSCheckLabelOff{background:#ededed;background:-moz-linear-gradient(top,#dcdcdc 20%,#ededed 50%,#f7f6f6 52%,#ffffff 100%);background:-webkit-gradient(linear,0 0,0 100%,color-stop(20%,#ededed),color-stop(50%,#ededed),color-stop(52%,#f7f6f6),color-stop(100%,#ffffff));background:-webkit-linear-gradient(top,#dcdcdc 20%,#ededed 50%,#f7f6f6 52%,#ffffff 100%);background:-o-linear-gradient(top,#dcdcdc 20%,#ededed 50%,#f7f6f6 52%,#ffffff 100%);background:-ms-linear-gradient(top,#dcdcdc 20%,#ededed 50%,#f7f6f6 52%,#ffffff 100%);background:linear-gradient(#dcdcdc 20%,#ededed 50%,#f7f6f6 52%,#ffffff 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#dcdcdc',endColorstr='#ffffff',GradientType=0);box-shadow:0 1px 2px 0 rgba(0,0,0,0.5) inset,0 1px 0 0 rgba(250,250,250,0.5);-webkit-box-shadow:0 1px 2px 0 rgba(0,0,0,0.5) inset,0 1px 0 0 rgba(250,250,250,0.5);border:1px solid #999999;border-radius:5px;-webkit-border-radius:5px 5px 5px 5px;-moz-border-radius:5px 5px 5px 5px;height:23px;color:#8b8b8b;text-shadow:0px 0px 2px rgba(255,255,255,0.6);text-align:right;right:0;}
239
+ .a3rev_panel_container label.iPhoneCheckLabelOff span,
240
+ .a3rev_panel_container label.iOSCheckLabelOff span{padding-right:10px;padding-left:0px;display:inline-block;text-transform:uppercase;}
241
+ .a3rev_panel_container label.iPhoneCheckLabelOn,
242
+ .a3rev_panel_container label.iOSCheckLabelOn{background:#569aef;background:-moz-linear-gradient(top,#468be0 20%,#569aef 50%,#6aa7f6 52%,#82b3f5 100%);background:-webkit-gradient(linear,0 0,0 100%,color-stop(20%,#468be0),color-stop(50%,#569aef),color-stop(52%,#6aa7f6),color-stop(100%,#82b3f5));background:-webkit-linear-gradient(top,#468be0 20%,#569aef 50%,#6aa7f6 52%,#82b3f5 100%);background:-o-linear-gradient(top,#468be0 20%,#569aef 50%,#6aa7f6 52%,#82b3f5 100%);background:-ms-linear-gradient(top,#468be0 20%,#569aef 50%,#6aa7f6 52%,#82b3f5 100%);background:linear-gradient(#468be0 20%,#569aef 50%,#6aa7f6 52%,#82b3f5 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#468be0',endColorstr='#82b3f5',GradientType=0);box-shadow:0 1px 2px 0 rgba(0,0,0,0.5) inset,0 1px 0 0 rgba(250,250,250,0.5);-webkit-box-shadow:0 1px 2px 0 rgba(0,0,0,0.5) inset,0 1px 0 0 rgba(250,250,250,0.5);border:1px solid #999999;border-radius:5px;-webkit-border-radius:5px 5px 5px 5px;-moz-border-radius:5px 5px 5px 5px;height:23px;text-align:left;color:#FFFFFF;text-shadow:0px 0px 2px rgba(0,0,0,0.6);left:0;}
243
+ .a3rev_panel_container label.iPhoneCheckLabelOn span,
244
+ .a3rev_panel_container label.iOSCheckLabelOn span{padding-left:10px;display:inline-block;text-transform:uppercase;}
245
+ .a3rev_panel_container .iPhoneCheckHandle,
246
+ .a3rev_panel_container .iOSCheckHandle{background:#569aef;background:-moz-linear-gradient(top,#bcbcbc 20%,#d5d5d5 50%,#d8d8d8 52%,#efefef 100%);background:-webkit-gradient(linear,0 0,0 100%,color-stop(20%,#bcbcbc),color-stop(50%,#d5d5d5),color-stop(52%,#d8d8d8),color-stop(100%,#efefef));background:-webkit-linear-gradient(top,#bcbcbc 20%,#d5d5d5 50%,#d8d8d8 52%,#efefef 100%);background:-o-linear-gradient(top,#bcbcbc 20%,#d5d5d5 50%,#d8d8d8 52%,#efefef 100%);background:-ms-linear-gradient(top,#bcbcbc 20%,#d5d5d5 50%,#d8d8d8 52%,#efefef 100%);background:linear-gradient(#bcbcbc 20%,#d5d5d5 50%,#d8d8d8 52%,#efefef 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#bcbcbc',endColorstr='#efefef',GradientType=0);box-shadow:0 1px 0px 0px #FFFFFF inset;-webkit-box-shadow:0 1px 0px 0px #FFFFFF inset;border:1px solid #999999;border-radius:5px;-webkit-border-radius:5px 5px 5px 5px;-moz-border-radius:5px 5px 5px 5px;display:block;cursor:pointer;position:absolute;top:0px;left:-1px;width:35px;height:23px;}
247
+ .a3rev_panel_container .iPhoneCheckDisabled,
248
+ .a3rev_panel_container .iOSCheckDisabled{filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=50);opacity:0.5;}
249
+
250
+ /* Switcher Checkbox Control */
251
+ .a3rev_panel_container .forminp-switcher_checkbox .iPhoneCheckContainer .iPhoneCheckLabelOff,
252
+ .a3rev_panel_container .forminp-switcher_checkbox .iOSCheckContainer .iOSCheckLabelOff{background:#569aef;background:-moz-linear-gradient(top,#468be0 20%,#569aef 50%,#6aa7f6 52%,#82b3f5 100%);background:-webkit-gradient(linear,0 0,0 100%,color-stop(20%,#468be0),color-stop(50%,#569aef),color-stop(52%,#6aa7f6),color-stop(100%,#82b3f5));background:-webkit-linear-gradient(top,#468be0 20%,#569aef 50%,#6aa7f6 52%,#82b3f5 100%);background:-o-linear-gradient(top,#468be0 20%,#569aef 50%,#6aa7f6 52%,#82b3f5 100%);background:-ms-linear-gradient(top,#468be0 20%,#569aef 50%,#6aa7f6 52%,#82b3f5 100%);background:linear-gradient(#468be0 20%,#569aef 50%,#6aa7f6 52%,#82b3f5 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#468be0',endColorstr='#82b3f5',GradientType=0);box-shadow:0 1px 2px 0 rgba(0,0,0,0.5) inset,0 1px 0 0 rgba(250,250,250,0.5);-webkit-box-shadow:0 1px 2px 0 rgba(0,0,0,0.5) inset,0 1px 0 0 rgba(250,250,250,0.5);border:1px solid #666666;border-radius:5px;-webkit-border-radius:5px 5px 5px 5px;-moz-border-radius:5px 5px 5px 5px;color:#FFFFFF;text-shadow:0px 0px 2px rgba(0,0,0,0.6);}
253
+
254
+ /* Time Picker Control */
255
+ .a3rev_panel_container .a3rev-ui-time_picker{width:76px;text-align:center;cursor:pointer;}
256
+
257
+ /* Help Tip */
258
+ .a3rev_panel_container table.form-table th img.help_tip{float:right;margin:0 -12px 0 0;}
259
+ .a3rev_panel_container table.form-table img.help_tip{cursor:help;line-height:1;margin:-4px 0 0 5px;padding:0;vertical-align:middle;}
260
+
261
+ /* Sub tab ui */
262
+ .subsubsub{white-space:normal;}
263
+ .subsubsub li{white-space:nowrap;}
264
+
265
+ /* View Doc button */
266
+ .a3-view-docs-button{background-color:#FFFFE0!important;border:1px solid #E6DB55!important;display:inline-block!important;font-weight:normal!important;margin:5px 10px 0!important;text-shadow:none!important;}
267
+
268
+ /* Style for Premium Video Box */
269
+ #a3_plugin_premium_video_container{margin-top:10px;}
270
+ #a3_plugin_premium_video_container .a3rev_panel_box{margin-bottom:0px;}
271
+ #a3_plugin_premium_video_container .a3-plugin-ui-panel-box{color:#006799;cursor:default;}
272
+ #a3_plugin_premium_video_container .a3-plugin-ui-panel-box::before{color:#006799;content:"f";}
273
+ #a3_plugin_premium_video_container .a3rev_panel_video_box{border-top:1px solid #eee;overflow:hidden;padding:0;position:relative;}
274
+ #a3_plugin_premium_video_container .a3rev_panel_box_left_inside,
275
+ #a3_plugin_premium_video_container .a3rev_panel_box_right_inside{width:calc(50% - 1px);padding:12px 12px 30px 12px;box-sizing:border-box;float:left;}
276
+ #a3_plugin_premium_video_container .a3rev_panel_box_separate{width:1px;height:100%;background-color:#eee;position:absolute;top:0;left:50%;margin-left:-2px;}
277
+ #a3_plugin_premium_video_container .a3-plugin-premium-image{position:relative;float:left;width:50%;margin-right:15px;}
278
+ #a3_plugin_premium_video_container .a3-plugin-premium-image img{height:auto;width:100%;float:left;}
279
+ #a3_plugin_premium_video_container .a3-plugin-premium-video-play{position:absolute;top:0;left:0;width:100%;height:100%;background-image:url('../images/play_video.png');background-repeat:no-repeat;background-position:center center;background-size:80px auto;background-color:rgba(0,0,0,0.2);}
280
+ #a3_plugin_premium_video_container .a3-plugin-video-play:hover{background-color:rgba(0,0,0,0.6);}
281
+
282
+ /* Style for yellow box about Pro or Ultimate version */
283
+ #a3_plugin_panel_container{position:relative;margin-top:10px;float:left;width:100%;}
284
+ #a3_plugin_panel_fields{padding-right:280px;}
285
+ #a3_plugin_panel_upgrade_area{float:right;padding-left:20px;width:260px;margin-top:10px;}
286
+ #a3_plugin_panel_extensions .a3_plugin_panel_extension_box{border:1px solid #E6DB55;color:#555555;margin-bottom:17px;padding:5px 10px;background:#fff;}
287
+ #a3_plugin_panel_extensions img{width:auto;max-width:100%;}
288
+ .pro_feature_top_message{font-size:11px;text-align:center;margin:10px 0;}
289
+ .pro_feature_fields{position:relative;border:2px solid #E6DB55;-webkit-border-radius:10px;-moz-border-radius:10px;-o-border-radius:10px;border-radius:10px;}
290
+ .pro_feature_hidden{display:none!important;}
291
+
292
+ /* Style for Blue message box */
293
+ .a3rev_blue_message_box{margin:0!important;background-color:#F0F8FF;border-color:#CEE1EF;padding:5px 10px;border-radius:3px 3px 3px 3px;-webkit-border-radius:3px 3px 3px 3px;-moz-border-radius:3px 3px 3px 3px;border-style:solid;border-width:1px;}
294
+ .a3rev_blue_message_box a{color:#F00;}
295
+
296
+ /* Chosen Style */
297
+ .a3rev_panel_container .chosen-container{margin-bottom:5px;margin-right:2px;}
298
+ .chzn-select-ajaxify ~ .chosen-container .no-results span{display:none;}
299
+
300
+ /* Custom for each element web icons font */
301
+ .a3-plugin-ui-delete-icon:before{vertical-align:top;}
302
+ .a3-plugin-ui-icon{color:#46719d;overflow:hidden;}
303
+ .a3-plugin-ui-a3-rev-logo{font-size:170px;height:125px;margin-top:-30px;}
304
+ .a3-plugin-ui-help-icon{color:#777;float:right;margin-right:-15px;width:14px;height:14px;cursor:pointer;font-size:12px;margin-top:5px;}
305
+ .a3-plugin-ui-preview-icon{color:#000;display:block;width:14px;height:16px;}
306
+ .a3rev_panel_container .a3rev-ui-typography-preview-button span:before,
307
+ .a3rev_panel_container .a3rev-ui-settings-preview-button span:before{font-family:"a3-plugin-framework"!important;font-style:normal!important;font-weight:normal!important;font-variant:normal!important;text-transform:none!important;speak:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:"g";width:14px;height:16px;font-size:12px;}
308
+ .a3rev_panel_container .a3rev-ui-typography-preview-button span.refresh:before,
309
+ .a3rev_panel_container .a3rev-ui-settings-preview-button span.refresh:before{content:"h"!important;}
310
+ .wf-loading .a3rev_panel_container .typography-preview.current:before,
311
+ .wf-loading .a3rev_panel_container .settings-preview.current:before{content:"k"!important;}
312
+ .a3-plugin-ui-delete-icon{font-size:10px;color:#C00;}
313
+
314
+ /* END A3 Plugin Framework Font Icons */
315
+ @media screen and (max-width:1100px){
316
+ .a3rev_panel_column .form-table th,
317
+ .a3rev_panel_column .form-table td{display:block;vertical-align:middle;width:auto;}
318
+ .a3rev_panel_column .form-table th{border-bottom:0;padding-bottom:0;padding-top:10px;}
319
+ .a3rev_panel_column .form-table td{margin-bottom:0;padding-bottom:6px;padding-left:0;padding-top:4px;}
320
  }
321
+ @media screen and (min-width:783px){
322
+ .a3rev_panel_container .chosen-container-multi{min-width:300px;}
323
  }
324
+ @media screen and (max-width:782px){
325
+ #a3_plugin_panel_fields{width:100%;}
326
+ #a3_plugin_panel_upgrade_area{display:none;}
327
+ .a3rev_panel_container .pro_feature_fields{margin-right:0px;}
328
+ .a3rev_panel_container input[type="text"],
329
+ .a3rev_panel_container input[type="email"],
330
+ .a3rev_panel_container input[type="number"],
331
+ .a3rev_panel_container input[type="password"]{min-width:50px;width:100%;}
332
+ .a3rev_panel_container .a3rev-ui-text{max-width:none;width:100%;}
333
+ .a3rev_panel_container .a3rev-ui-textarea{max-width:none!important;width:100%!important;}
334
+ .a3rev_panel_container .a3rev-ui-slider{width:50px!important;}
335
+ .a3rev_panel_container .typography-preview-container,
336
+ .a3rev_panel_container .settings-preview-container{width:90%;}
337
+ .a3rev_panel_container .a3rev-ui-typography-preview-button:active,
338
+ .a3rev_panel_container .a3rev-ui-settings-preview-button:active{padding-top:inherit!important;}
339
+ .a3rev_panel_container .wp-picker-container input.wp-color-picker[type="text"]{width:75px!important;padding:3px 10px!important;}
340
+ .wp-core-ui .button.wp-picker-default{padding:0 8px 1px;}
341
+ .a3rev_panel_container input.a3rev-color-picker{margin-top:1px!important;}
342
+ .a3rev_panel_container input.wp-picker-default{margin-top:1px!important;padding:2px 8px!important;}
343
+ .a3rev_panel_container .chosen-container-multi{width:100%!important;}
344
+ .a3rev_blue_message_box_container{width:100%!important;}
345
+ .a3-plugin-ui-help-icon{margin-right:0px;}
346
+ .a3rev_panel_container .a3rev-ui-statistic-item{width:100%!important;}
347
  }
348
+ @media screen and (max-width:640px){
349
+ .a3rev_panel_container .a3rev_panel_row{display:block;}
350
+ .a3rev_panel_container .a3rev_panel_column{display:block;width:100%;padding:0;}
351
+ .a3rev_panel_container .a3rev_panel_column:first-child,
352
+ .a3rev_panel_container .a3rev_panel_column:last-child{padding:0;}
353
  }
354
+ @media screen and (max-width:600px){
355
+ #a3_plugin_premium_video_container .a3rev_panel_box_left_inside,
356
+ #a3_plugin_premium_video_container .a3rev_panel_box_right_inside{width:100%;float:left;}
357
+ #a3_plugin_premium_video_container .a3rev_panel_box_separate{width:100%;height:1px;position:relative;margin-left:0;float:left;left:auto;top:auto;}
358
+ }
359
+ @media screen and (max-width:480px){
360
+ .a3rev_panel_container .a3rev-ui-slide-container-start{margin-top:5px;}
361
+ .a3_subsubsub_section .subsubsub{text-align:left;}
362
+ .a3rev_panel_container .chosen-container-single{max-width:300px!important;}
363
+ #a3_plugin_premium_video_container .a3-plugin-premium-image{width:100%;margin-right:0px;margin-bottom:10px;}
364
  }
 
 
 
 
 
 
admin/assets/css/modal.css CHANGED
@@ -1,10 +1,36 @@
1
  /*!
2
- * Bootstrap v4.0.0-alpha.6 (https://getbootstrap.com)
3
- * Copyright 2011-2017 The Bootstrap Authors
4
- * Copyright 2011-2017 Twitter, Inc.
5
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
6
  */
7
- /*! normalize.css v5.0.0 | MIT License | github.com/necolas/normalize.css */
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8
 
9
  .modal-open {
10
  overflow: hidden;
@@ -16,54 +42,65 @@
16
  right: 0;
17
  bottom: 0;
18
  left: 0;
19
- z-index: 10500000;
20
  display: none;
21
  overflow: hidden;
22
  outline: 0;
23
  }
24
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
25
  .modal.fade .modal-dialog {
26
- -webkit-transition: -webkit-transform 0.3s ease-out;
27
  transition: -webkit-transform 0.3s ease-out;
28
- -o-transition: -o-transform 0.3s ease-out;
29
  transition: transform 0.3s ease-out;
30
- transition: transform 0.3s ease-out, -webkit-transform 0.3s ease-out, -o-transform 0.3s ease-out;
31
  -webkit-transform: translate(0, -25%);
32
- -o-transform: translate(0, -25%);
33
- transform: translate(0, -25%);
34
  }
35
 
36
- .modal.show .modal-dialog {
37
- -webkit-transform: translate(0, 0);
38
- -o-transform: translate(0, 0);
39
- transform: translate(0, 0);
40
  }
41
 
42
- .modal-open .modal {
43
- overflow-x: hidden;
44
- overflow-y: auto;
45
  }
46
 
47
- .modal-dialog {
48
- position: relative;
49
- width: auto;
50
- margin: 50px 10px 10px 10px;
 
 
51
  }
52
 
53
  .modal-content {
54
  position: relative;
55
- display: -webkit-box;
56
- display: -webkit-flex;
57
  display: -ms-flexbox;
58
  display: flex;
59
- -webkit-box-orient: vertical;
60
- -webkit-box-direction: normal;
61
- -webkit-flex-direction: column;
62
- -ms-flex-direction: column;
63
- flex-direction: column;
64
  background-color: #fff;
65
- -webkit-background-clip: padding-box;
66
- background-clip: padding-box;
67
  border: 1px solid rgba(0, 0, 0, 0.2);
68
  border-radius: 0.3rem;
69
  outline: 0;
@@ -75,14 +112,10 @@
75
  right: 0;
76
  bottom: 0;
77
  left: 0;
78
- z-index: 10400000;
79
  background-color: #000;
80
  }
81
 
82
- .fade.show {
83
- opacity: 1;
84
- }
85
-
86
  .modal-backdrop.fade {
87
  opacity: 0;
88
  }
@@ -92,20 +125,21 @@
92
  }
93
 
94
  .modal-header {
95
- display: -webkit-box;
96
- display: -webkit-flex;
97
  display: -ms-flexbox;
98
  display: flex;
99
- -webkit-box-align: center;
100
- -webkit-align-items: center;
101
- -ms-flex-align: center;
102
- align-items: center;
103
- -webkit-box-pack: justify;
104
- -webkit-justify-content: space-between;
105
- -ms-flex-pack: justify;
106
- justify-content: space-between;
107
- padding: 15px;
108
- border-bottom: 1px solid #eceeef;
 
 
 
109
  }
110
 
111
  .modal-title {
@@ -115,28 +149,20 @@
115
 
116
  .modal-body {
117
  position: relative;
118
- -webkit-box-flex: 1;
119
- -webkit-flex: 1 1 auto;
120
- -ms-flex: 1 1 auto;
121
- flex: 1 1 auto;
122
- padding: 15px;
123
  }
124
 
125
  .modal-footer {
126
- display: -webkit-box;
127
- display: -webkit-flex;
128
  display: -ms-flexbox;
129
  display: flex;
130
- -webkit-box-align: center;
131
- -webkit-align-items: center;
132
- -ms-flex-align: center;
133
- align-items: center;
134
- -webkit-box-pack: end;
135
- -webkit-justify-content: flex-end;
136
- -ms-flex-pack: end;
137
- justify-content: flex-end;
138
- padding: 15px;
139
- border-top: 1px solid #eceeef;
140
  }
141
 
142
  .modal-footer > :not(:first-child) {
@@ -158,7 +184,10 @@
158
  @media (min-width: 576px) {
159
  .modal-dialog {
160
  max-width: 500px;
161
- margin: 50px auto 30px auto;
 
 
 
162
  }
163
  .modal-sm {
164
  max-width: 300px;
1
  /*!
2
+ * Bootstrap v4.1.1 (https://getbootstrap.com/)
3
+ * Copyright 2011-2018 The Bootstrap Authors
4
+ * Copyright 2011-2018 Twitter, Inc.
5
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
6
  */
7
+
8
+ .modal .close {
9
+ float: right;
10
+ font-size: 1.5rem;
11
+ font-weight: 700;
12
+ line-height: 1;
13
+ color: #000;
14
+ text-shadow: 0 1px 0 #fff;
15
+ opacity: .5;
16
+ }
17
+
18
+ .modal .close:hover, .modal .close:focus {
19
+ color: #000;
20
+ text-decoration: none;
21
+ opacity: .75;
22
+ }
23
+
24
+ .modal .close:not(:disabled):not(.disabled) {
25
+ cursor: pointer;
26
+ }
27
+
28
+ .modal button.close {
29
+ padding: 0;
30
+ background-color: transparent;
31
+ border: 0;
32
+ -webkit-appearance: none;
33
+ }
34
 
35
  .modal-open {
36
  overflow: hidden;
42
  right: 0;
43
  bottom: 0;
44
  left: 0;
45
+ z-index: 1050;
46
  display: none;
47
  overflow: hidden;
48
  outline: 0;
49
  }
50
 
51
+ .modal-open .modal {
52
+ overflow-x: hidden;
53
+ overflow-y: auto;
54
+ }
55
+
56
+ .modal-dialog {
57
+ position: relative;
58
+ width: auto;
59
+ margin: 0.5rem;
60
+ pointer-events: none;
61
+ }
62
+
63
+ .modal.fade{
64
+ opacity: 1;
65
+ }
66
+
67
  .modal.fade .modal-dialog {
 
68
  transition: -webkit-transform 0.3s ease-out;
 
69
  transition: transform 0.3s ease-out;
70
+ transition: transform 0.3s ease-out, -webkit-transform 0.3s ease-out;
71
  -webkit-transform: translate(0, -25%);
72
+ transform: translate(0, -25%);
 
73
  }
74
 
75
+ @media screen and (prefers-reduced-motion: reduce) {
76
+ .modal.fade .modal-dialog {
77
+ transition: none;
78
+ }
79
  }
80
 
81
+ .modal.show .modal-dialog {
82
+ -webkit-transform: translate(0, 0);
83
+ transform: translate(0, 0);
84
  }
85
 
86
+ .modal-dialog-centered {
87
+ display: -ms-flexbox;
88
+ display: flex;
89
+ -ms-flex-align: center;
90
+ align-items: center;
91
+ min-height: calc(100% - (0.5rem * 2));
92
  }
93
 
94
  .modal-content {
95
  position: relative;
 
 
96
  display: -ms-flexbox;
97
  display: flex;
98
+ -ms-flex-direction: column;
99
+ flex-direction: column;
100
+ width: 100%;
101
+ pointer-events: auto;
 
102
  background-color: #fff;
103
+ background-clip: padding-box;
 
104
  border: 1px solid rgba(0, 0, 0, 0.2);
105
  border-radius: 0.3rem;
106
  outline: 0;
112
  right: 0;
113
  bottom: 0;
114
  left: 0;
115
+ z-index: 1040;
116
  background-color: #000;
117
  }
118
 
 
 
 
 
119
  .modal-backdrop.fade {
120
  opacity: 0;
121
  }
125
  }
126
 
127
  .modal-header {
 
 
128
  display: -ms-flexbox;
129
  display: flex;
130
+ -ms-flex-align: start;
131
+ align-items: flex-start;
132
+ -ms-flex-pack: justify;
133
+ justify-content: space-between;
134
+ padding: 1rem;
135
+ border-bottom: 1px solid #e9ecef;
136
+ border-top-left-radius: 0.3rem;
137
+ border-top-right-radius: 0.3rem;
138
+ }
139
+
140
+ .modal-header .close {
141
+ padding: 1rem;
142
+ margin: -1rem -1rem -1rem auto;
143
  }
144
 
145
  .modal-title {
149
 
150
  .modal-body {
151
  position: relative;
152
+ -ms-flex: 1 1 auto;
153
+ flex: 1 1 auto;
154
+ padding: 1rem;
 
 
155
  }
156
 
157
  .modal-footer {
 
 
158
  display: -ms-flexbox;
159
  display: flex;
160
+ -ms-flex-align: center;
161
+ align-items: center;
162
+ -ms-flex-pack: end;
163
+ justify-content: flex-end;
164
+ padding: 1rem;
165
+ border-top: 1px solid #e9ecef;
 
 
 
 
166
  }
167
 
168
  .modal-footer > :not(:first-child) {
184
  @media (min-width: 576px) {
185
  .modal-dialog {
186
  max-width: 500px;
187
+ margin: 1.75rem auto;
188
+ }
189
+ .modal-dialog-centered {
190
+ min-height: calc(100% - (1.75rem * 2));
191
  }
192
  .modal-sm {
193
  max-width: 300px;
admin/assets/css/modal.min.css CHANGED
@@ -1,172 +1 @@
1
- /*!
2
- * Bootstrap v4.0.0-alpha.6 (https://getbootstrap.com)
3
- * Copyright 2011-2017 The Bootstrap Authors
4
- * Copyright 2011-2017 Twitter, Inc.
5
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
6
- */
7
- /*! normalize.css v5.0.0 | MIT License | github.com/necolas/normalize.css */
8
-
9
- .modal-open {
10
- overflow: hidden;
11
- }
12
-
13
- .modal {
14
- position: fixed;
15
- top: 0;
16
- right: 0;
17
- bottom: 0;
18
- left: 0;
19
- z-index: 10500000;
20
- display: none;
21
- overflow: hidden;
22
- outline: 0;
23
- }
24
-
25
- .modal.fade .modal-dialog {
26
- -webkit-transition: -webkit-transform 0.3s ease-out;
27
- transition: -webkit-transform 0.3s ease-out;
28
- -o-transition: -o-transform 0.3s ease-out;
29
- transition: transform 0.3s ease-out;
30
- transition: transform 0.3s ease-out, -webkit-transform 0.3s ease-out, -o-transform 0.3s ease-out;
31
- -webkit-transform: translate(0, -25%);
32
- -o-transform: translate(0, -25%);
33
- transform: translate(0, -25%);
34
- }
35
-
36
- .modal.show .modal-dialog {
37
- -webkit-transform: translate(0, 0);
38
- -o-transform: translate(0, 0);
39
- transform: translate(0, 0);
40
- }
41
-
42
- .modal-open .modal {
43
- overflow-x: hidden;
44
- overflow-y: auto;
45
- }
46
-
47
- .modal-dialog {
48
- position: relative;
49
- width: auto;
50
- margin: 50px 10px 10px 10px;
51
- }
52
-
53
- .modal-content {
54
- position: relative;
55
- display: -webkit-box;
56
- display: -webkit-flex;
57
- display: -ms-flexbox;
58
- display: flex;
59
- -webkit-box-orient: vertical;
60
- -webkit-box-direction: normal;
61
- -webkit-flex-direction: column;
62
- -ms-flex-direction: column;
63
- flex-direction: column;
64
- background-color: #fff;
65
- -webkit-background-clip: padding-box;
66
- background-clip: padding-box;
67
- border: 1px solid rgba(0, 0, 0, 0.2);
68
- border-radius: 0.3rem;
69
- outline: 0;
70
- }
71
-
72
- .modal-backdrop {
73
- position: fixed;
74
- top: 0;
75
- right: 0;
76
- bottom: 0;
77
- left: 0;
78
- z-index: 10400000;
79
- background-color: #000;
80
- }
81
-
82
- .fade.show {
83
- opacity: 1;
84
- }
85
-
86
- .modal-backdrop.fade {
87
- opacity: 0;
88
- }
89
-
90
- .modal-backdrop.show {
91
- opacity: 0.5;
92
- }
93
-
94
- .modal-header {
95
- display: -webkit-box;
96
- display: -webkit-flex;
97
- display: -ms-flexbox;
98
- display: flex;
99
- -webkit-box-align: center;
100
- -webkit-align-items: center;
101
- -ms-flex-align: center;
102
- align-items: center;
103
- -webkit-box-pack: justify;
104
- -webkit-justify-content: space-between;
105
- -ms-flex-pack: justify;
106
- justify-content: space-between;
107
- padding: 15px;
108
- border-bottom: 1px solid #eceeef;
109
- }
110
-
111
- .modal-title {
112
- margin-bottom: 0;
113
- line-height: 1.5;
114
- }
115
-
116
- .modal-body {
117
- position: relative;
118
- -webkit-box-flex: 1;
119
- -webkit-flex: 1 1 auto;
120
- -ms-flex: 1 1 auto;
121
- flex: 1 1 auto;
122
- padding: 15px;
123
- }
124
-
125
- .modal-footer {
126
- display: -webkit-box;
127
- display: -webkit-flex;
128
- display: -ms-flexbox;
129
- display: flex;
130
- -webkit-box-align: center;
131
- -webkit-align-items: center;
132
- -ms-flex-align: center;
133
- align-items: center;
134
- -webkit-box-pack: end;
135
- -webkit-justify-content: flex-end;
136
- -ms-flex-pack: end;
137
- justify-content: flex-end;
138
- padding: 15px;
139
- border-top: 1px solid #eceeef;
140
- }
141
-
142
- .modal-footer > :not(:first-child) {
143
- margin-left: .25rem;
144
- }
145
-
146
- .modal-footer > :not(:last-child) {
147
- margin-right: .25rem;
148
- }
149
-
150
- .modal-scrollbar-measure {
151
- position: absolute;
152
- top: -9999px;
153
- width: 50px;
154
- height: 50px;
155
- overflow: scroll;
156
- }
157
-
158
- @media (min-width: 576px) {
159
- .modal-dialog {
160
- max-width: 500px;
161
- margin: 50px auto 30px auto;
162
- }
163
- .modal-sm {
164
- max-width: 300px;
165
- }
166
- }
167
-
168
- @media (min-width: 992px) {
169
- .modal-lg {
170
- max-width: 800px;
171
- }
172
- }
1
+ .modal .close{float:right;font-size:1.5rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}.modal .close:hover,.modal .close:focus{color:#000;text-decoration:none;opacity:.75}.modal .close:not(:disabled):not(.disabled){cursor:pointer}.modal button.close{padding:0;background-color:transparent;border:0;-webkit-appearance:none}.modal-open{overflow:hidden}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;display:none;overflow:hidden;outline:0}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:0.5rem;pointer-events:none}.modal.fade{opacity:1}.modal.fade .modal-dialog{transition:-webkit-transform 0.3s ease-out;transition:transform 0.3s ease-out;transition:transform 0.3s ease-out,-webkit-transform 0.3s ease-out;-webkit-transform:translate(0,-25%);transform:translate(0,-25%)}@media screen and (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{-webkit-transform:translate(0,0);transform:translate(0,0)}.modal-dialog-centered{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;min-height:calc(100% - (0.5rem * 2))}.modal-content{position:relative;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,0.2);border-radius:0.3rem;outline:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:0.5}.modal-header{display:-ms-flexbox;display:flex;-ms-flex-align:start;align-items:flex-start;-ms-flex-pack:justify;justify-content:space-between;padding:1rem;border-bottom:1px solid #e9ecef;border-top-left-radius:0.3rem;border-top-right-radius:0.3rem}.modal-header .close{padding:1rem;margin:-1rem -1rem -1rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;-ms-flex:1 1 auto;flex:1 1 auto;padding:1rem}.modal-footer{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:end;justify-content:flex-end;padding:1rem;border-top:1px solid #e9ecef}.modal-footer >:not(:first-child){margin-left:.25rem}.modal-footer >:not(:last-child){margin-right:.25rem}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-centered{min-height:calc(100% - (1.75rem * 2))}.modal-sm{max-width:300px}}@media (min-width:992px){.modal-lg{max-width:800px}}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
admin/assets/css/popover.css ADDED
@@ -0,0 +1,192 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*!
2
+ * Bootstrap v4.1.1 (https://getbootstrap.com/)
3
+ * Copyright 2011-2018 The Bootstrap Authors
4
+ * Copyright 2011-2018 Twitter, Inc.
5
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
6
+ */
7
+
8
+ .popover {
9
+ position: absolute;
10
+ top: 0;
11
+ left: 0;
12
+ z-index: 1060;
13
+ display: block;
14
+ max-width: 276px;
15
+ font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
16
+ font-style: normal;
17
+ font-weight: 400;
18
+ line-height: 1.5;
19
+ text-align: left;
20
+ text-align: start;
21
+ text-decoration: none;
22
+ text-shadow: none;
23
+ text-transform: none;
24
+ letter-spacing: normal;
25
+ word-break: normal;
26
+ word-spacing: normal;
27
+ white-space: normal;
28
+ line-break: auto;
29
+ font-size: 0.875rem;
30
+ word-wrap: break-word;
31
+ background-color: #fff;
32
+ background-clip: padding-box;
33
+ border: 1px solid rgba(0, 0, 0, 0.2);
34
+ border-radius: 0.3rem;
35
+ }
36
+
37
+ .popover .arrow {
38
+ position: absolute;
39
+ display: block;
40
+ width: 1rem;
41
+ height: 0.5rem;
42
+ margin: 0 0.3rem;
43
+ }
44
+
45
+ .popover .arrow::before, .popover .arrow::after {
46
+ position: absolute;
47
+ display: block;
48
+ content: "";
49
+ border-color: transparent;
50
+ border-style: solid;
51
+ }
52
+
53
+ .bs-popover-top, .bs-popover-auto[x-placement^="top"] {
54
+ margin-bottom: 0.5rem;
55
+ }
56
+
57
+ .bs-popover-top .arrow, .bs-popover-auto[x-placement^="top"] .arrow {
58
+ bottom: calc((0.5rem + 1px) * -1);
59
+ }
60
+
61
+ .bs-popover-top .arrow::before, .bs-popover-auto[x-placement^="top"] .arrow::before,
62
+ .bs-popover-top .arrow::after,
63
+ .bs-popover-auto[x-placement^="top"] .arrow::after {
64
+ border-width: 0.5rem 0.5rem 0;
65
+ }
66
+
67
+ .bs-popover-top .arrow::before, .bs-popover-auto[x-placement^="top"] .arrow::before {
68
+ bottom: 0;
69
+ border-top-color: rgba(0, 0, 0, 0.25);
70
+ }
71
+
72
+
73
+ .bs-popover-top .arrow::after,
74
+ .bs-popover-auto[x-placement^="top"] .arrow::after {
75
+ bottom: 1px;
76
+ border-top-color: #fff;
77
+ }
78
+
79
+ .bs-popover-right, .bs-popover-auto[x-placement^="right"] {
80
+ margin-left: 0.5rem;
81
+ }
82
+
83
+ .bs-popover-right .arrow, .bs-popover-auto[x-placement^="right"] .arrow {
84
+ left: calc((0.5rem + 1px) * -1);
85
+ width: 0.5rem;
86
+ height: 1rem;
87
+ margin: 0.3rem 0;
88
+ }
89
+
90
+ .bs-popover-right .arrow::before, .bs-popover-auto[x-placement^="right"] .arrow::before,
91
+ .bs-popover-right .arrow::after,
92
+ .bs-popover-auto[x-placement^="right"] .arrow::after {
93
+ border-width: 0.5rem 0.5rem 0.5rem 0;
94
+ }
95
+
96
+ .bs-popover-right .arrow::before, .bs-popover-auto[x-placement^="right"] .arrow::before {
97
+ left: 0;
98
+ border-right-color: rgba(0, 0, 0, 0.25);
99
+ }
100
+
101
+
102
+ .bs-popover-right .arrow::after,
103
+ .bs-popover-auto[x-placement^="right"] .arrow::after {
104
+ left: 1px;
105
+ border-right-color: #fff;
106
+ }
107
+
108
+ .bs-popover-bottom, .bs-popover-auto[x-placement^="bottom"] {
109
+ margin-top: 0.5rem;
110
+ }
111
+
112
+ .bs-popover-bottom .arrow, .bs-popover-auto[x-placement^="bottom"] .arrow {
113
+ top: calc((0.5rem + 1px) * -1);
114
+ }
115
+
116
+ .bs-popover-bottom .arrow::before, .bs-popover-auto[x-placement^="bottom"] .arrow::before,
117
+ .bs-popover-bottom .arrow::after,
118
+ .bs-popover-auto[x-placement^="bottom"] .arrow::after {
119
+ border-width: 0 0.5rem 0.5rem 0.5rem;
120
+ }
121
+
122
+ .bs-popover-bottom .arrow::before, .bs-popover-auto[x-placement^="bottom"] .arrow::before {
123
+ top: 0;
124
+ border-bottom-color: rgba(0, 0, 0, 0.25);
125
+ }
126
+
127
+
128
+ .bs-popover-bottom .arrow::after,
129
+ .bs-popover-auto[x-placement^="bottom"] .arrow::after {
130
+ top: 1px;
131
+ border-bottom-color: #fff;
132
+ }
133
+
134
+ .bs-popover-bottom .popover-header::before, .bs-popover-auto[x-placement^="bottom"] .popover-header::before {
135
+ position: absolute;
136
+ top: 0;
137
+ left: 50%;
138
+ display: block;
139
+ width: 1rem;
140
+ margin-left: -0.5rem;
141
+ content: "";
142
+ border-bottom: 1px solid #f7f7f7;
143
+ }
144
+
145
+ .bs-popover-left, .bs-popover-auto[x-placement^="left"] {
146
+ margin-right: 0.5rem;
147
+ }
148
+
149
+ .bs-popover-left .arrow, .bs-popover-auto[x-placement^="left"] .arrow {
150
+ right: calc((0.5rem + 1px) * -1);
151
+ width: 0.5rem;
152
+ height: 1rem;
153
+ margin: 0.3rem 0;
154
+ }
155
+
156
+ .bs-popover-left .arrow::before, .bs-popover-auto[x-placement^="left"] .arrow::before,
157
+ .bs-popover-left .arrow::after,
158
+ .bs-popover-auto[x-placement^="left"] .arrow::after {
159
+ border-width: 0.5rem 0 0.5rem 0.5rem;
160
+ }
161
+
162
+ .bs-popover-left .arrow::before, .bs-popover-auto[x-placement^="left"] .arrow::before {
163
+ right: 0;
164
+ border-left-color: rgba(0, 0, 0, 0.25);
165
+ }
166
+
167
+
168
+ .bs-popover-left .arrow::after,
169
+ .bs-popover-auto[x-placement^="left"] .arrow::after {
170
+ right: 1px;
171
+ border-left-color: #fff;
172
+ }
173
+
174
+ .popover-header {
175
+ padding: 0.5rem 0.75rem;
176
+ margin-bottom: 0;
177
+ font-size: 1rem;
178
+ color: inherit;
179
+ background-color: #f7f7f7;
180
+ border-bottom: 1px solid #ebebeb;
181
+ border-top-left-radius: calc(0.3rem - 1px);
182
+ border-top-right-radius: calc(0.3rem - 1px);
183
+ }
184
+
185
+ .popover-header:empty {
186
+ display: none;
187
+ }
188
+
189
+ .popover-body {
190
+ padding: 0.5rem 0.75rem;
191
+ color: #212529;
192
+ }
admin/assets/css/popover.min.css ADDED
@@ -0,0 +1 @@
 
1
+ .popover,.popover .arrow{position:absolute;display:block}.popover{top:0;left:0;z-index:1060;max-width:276px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.popover .arrow{width:1rem;height:.5rem;margin:0 .3rem}.popover .arrow::after,.popover .arrow::before{position:absolute;display:block;content:"";border-color:transparent;border-style:solid}.bs-popover-auto[x-placement^=top],.bs-popover-top{margin-bottom:.5rem}.bs-popover-auto[x-placement^=top] .arrow,.bs-popover-top .arrow{bottom:calc((.5rem + 1px) * -1)}.bs-popover-auto[x-placement^=top] .arrow::after,.bs-popover-auto[x-placement^=top] .arrow::before,.bs-popover-top .arrow::after,.bs-popover-top .arrow::before{border-width:.5rem .5rem 0}.bs-popover-auto[x-placement^=top] .arrow::before,.bs-popover-top .arrow::before{bottom:0;border-top-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=top] .arrow::after,.bs-popover-top .arrow::after{bottom:1px;border-top-color:#fff}.bs-popover-auto[x-placement^=right],.bs-popover-right{margin-left:.5rem}.bs-popover-auto[x-placement^=right] .arrow,.bs-popover-right .arrow{left:calc((.5rem + 1px) * -1);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=right] .arrow::after,.bs-popover-auto[x-placement^=right] .arrow::before,.bs-popover-right .arrow::after,.bs-popover-right .arrow::before{border-width:.5rem .5rem .5rem 0}.bs-popover-auto[x-placement^=right] .arrow::before,.bs-popover-right .arrow::before{left:0;border-right-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=right] .arrow::after,.bs-popover-right .arrow::after{left:1px;border-right-color:#fff}.bs-popover-auto[x-placement^=bottom],.bs-popover-bottom{margin-top:.5rem}.bs-popover-auto[x-placement^=bottom] .arrow,.bs-popover-bottom .arrow{top:calc((.5rem + 1px) * -1)}.bs-popover-auto[x-placement^=bottom] .arrow::after,.bs-popover-auto[x-placement^=bottom] .arrow::before,.bs-popover-bottom .arrow::after,.bs-popover-bottom .arrow::before{border-width:0 .5rem .5rem}.bs-popover-auto[x-placement^=bottom] .arrow::before,.bs-popover-bottom .arrow::before{top:0;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=bottom] .arrow::after,.bs-popover-bottom .arrow::after{top:1px;border-bottom-color:#fff}.bs-popover-auto[x-placement^=bottom] .popover-header::before,.bs-popover-bottom .popover-header::before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:"";border-bottom:1px solid #f7f7f7}.bs-popover-auto[x-placement^=left],.bs-popover-left{margin-right:.5rem}.bs-popover-auto[x-placement^=left] .arrow,.bs-popover-left .arrow{right:calc((.5rem + 1px) * -1);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=left] .arrow::after,.bs-popover-auto[x-placement^=left] .arrow::before,.bs-popover-left .arrow::after,.bs-popover-left .arrow::before{border-width:.5rem 0 .5rem .5rem}.bs-popover-auto[x-placement^=left] .arrow::before,.bs-popover-left .arrow::before{right:0;border-left-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=left] .arrow::after,.bs-popover-left .arrow::after{right:1px;border-left-color:#fff}.popover-header{padding:.5rem .75rem;margin-bottom:0;font-size:1rem;color:inherit;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:.5rem .75rem;color:#212529}
admin/assets/js/admin-ui-script.js CHANGED
@@ -186,14 +186,13 @@
186
 
187
  /* Apply chosen script for dropdown */
188
  $(".a3rev_panel_container .chzn-select").chosen();
189
- $(".a3rev_panel_container .chzn-select-deselect").chosen({ allow_single_deselect:true });
 
 
 
190
 
191
  /* Apply help tip script */
192
- $(".a3rev_panel_container .help_tip").tipTip({
193
- "attribute" : "data-tip",
194
- "fadeIn" : 50,
195
- "fadeOut" : 50
196
- });
197
 
198
  /* Apply Time Picker */
199
  $('.a3rev_panel_container input.a3rev-ui-time_picker').each(function(i){
@@ -465,6 +464,7 @@
465
  var submit_successsed = bt_ajax_submit.siblings('.a3rev-ui-ajax_multi_submit-successed');
466
  var submit_errors = bt_ajax_submit.siblings('.a3rev-ui-ajax_multi_submit-errors');
467
  var progress_bar_wrap = bt_ajax_submit.siblings('.a3rev-ui-progress-bar-wrap');
 
468
  var progress_inner = progress_bar_wrap.find('.a3rev-ui-progress-inner');
469
  var progressing_text = progress_bar_wrap.find('.a3rev-ui-progressing-text');
470
  var completed_text = progress_bar_wrap.find('.a3rev-ui-completed-text');
@@ -559,6 +559,11 @@
559
  progress_bar_wrap.hide();
560
  progressing_text.show();
561
  completed_text.hide();
 
 
 
 
 
562
  }, 2000 );
563
  }
564
  });
@@ -653,6 +658,7 @@
653
  var submit_successsed = bt_ajax_submit.siblings('.a3rev-ui-ajax_multi_submit-successed');
654
  var submit_errors = bt_ajax_submit.siblings('.a3rev-ui-ajax_multi_submit-errors');
655
  var progress_bar_wrap = bt_ajax_submit.siblings('.a3rev-ui-progress-bar-wrap');
 
656
  var progress_inner = progress_bar_wrap.find('.a3rev-ui-progress-inner');
657
  var progressing_text = progress_bar_wrap.find('.a3rev-ui-progressing-text');
658
  var completed_text = progress_bar_wrap.find('.a3rev-ui-completed-text');
@@ -674,12 +680,24 @@
674
  progressing_text.show();
675
  completed_text.hide();
676
  progress_inner.css({width: '0%'});
 
 
 
677
  }, 3000 );
678
  });
679
  });
680
 
681
  $(document).on( 'click', '.a3rev-ui-ajax_multi_submit-button', function(){
682
  var bt_ajax_submit = $(this);
 
 
 
 
 
 
 
 
 
683
  var resubmit = bt_ajax_submit.data('resubmit');
684
  bt_ajax_submit.data('resubmit', 0);
685
 
@@ -688,6 +706,7 @@
688
  var submit_successsed = bt_ajax_submit.siblings('.a3rev-ui-ajax_multi_submit-successed');
689
  var submit_errors = bt_ajax_submit.siblings('.a3rev-ui-ajax_multi_submit-errors');
690
  var progress_bar_wrap = bt_ajax_submit.siblings('.a3rev-ui-progress-bar-wrap');
 
691
  var progress_inner = progress_bar_wrap.find('.a3rev-ui-progress-inner');
692
  var progressing_text = progress_bar_wrap.find('.a3rev-ui-progressing-text');
693
  var completed_text = progress_bar_wrap.find('.a3rev-ui-completed-text');
@@ -696,6 +715,9 @@
696
  submit_successsed.hide();
697
  submit_errors.hide();
698
  progress_bar_wrap.show();
 
 
 
699
 
700
  // Reset progressing start point to 0 for resubmit
701
  if ( resubmit == 1 ) {
186
 
187
  /* Apply chosen script for dropdown */
188
  $(".a3rev_panel_container .chzn-select").chosen();
189
+ $(".a3rev_panel_container .chzn-select-deselect").chosen({ allow_single_deselect:true, search_contains: true });
190
+ $(".chzn-select-ajaxify").each( function(){
191
+ chosen_ajaxify($(this).attr('id'), $(this).attr('options_url'));
192
+ });
193
 
194
  /* Apply help tip script */
195
+ $('.a3rev_panel_container .help_tip').popover({ html: true, placement: 'bottom' });
 
 
 
 
196
 
197
  /* Apply Time Picker */
198
  $('.a3rev_panel_container input.a3rev-ui-time_picker').each(function(i){
464
  var submit_successsed = bt_ajax_submit.siblings('.a3rev-ui-ajax_multi_submit-successed');
465
  var submit_errors = bt_ajax_submit.siblings('.a3rev-ui-ajax_multi_submit-errors');
466
  var progress_bar_wrap = bt_ajax_submit.siblings('.a3rev-ui-progress-bar-wrap');
467
+ var progress_notice = bt_ajax_submit.siblings('.a3rev-ui-progress-notice');
468
  var progress_inner = progress_bar_wrap.find('.a3rev-ui-progress-inner');
469
  var progressing_text = progress_bar_wrap.find('.a3rev-ui-progressing-text');
470
  var completed_text = progress_bar_wrap.find('.a3rev-ui-completed-text');
559
  progress_bar_wrap.hide();
560
  progressing_text.show();
561
  completed_text.hide();
562
+
563
+ if ( typeof progress_notice !== undefined ) {
564
+ progress_notice.hide();
565
+ }
566
+
567
  }, 2000 );
568
  }
569
  });
658
  var submit_successsed = bt_ajax_submit.siblings('.a3rev-ui-ajax_multi_submit-successed');
659
  var submit_errors = bt_ajax_submit.siblings('.a3rev-ui-ajax_multi_submit-errors');
660
  var progress_bar_wrap = bt_ajax_submit.siblings('.a3rev-ui-progress-bar-wrap');
661
+ var progress_notice = bt_ajax_submit.siblings('.a3rev-ui-progress-notice');
662
  var progress_inner = progress_bar_wrap.find('.a3rev-ui-progress-inner');
663
  var progressing_text = progress_bar_wrap.find('.a3rev-ui-progressing-text');
664
  var completed_text = progress_bar_wrap.find('.a3rev-ui-completed-text');
680
  progressing_text.show();
681
  completed_text.hide();
682
  progress_inner.css({width: '0%'});
683
+ if ( typeof progress_notice !== undefined ) {
684
+ progress_notice.hide();
685
+ }
686
  }, 3000 );
687
  });
688
  });
689
 
690
  $(document).on( 'click', '.a3rev-ui-ajax_multi_submit-button', function(){
691
  var bt_ajax_submit = $(this);
692
+
693
+ var confirm_message = $(this).data('confirm_message');
694
+ if ( typeof confirm_message !== 'undefined' && '' != confirm_message ) {
695
+ var confirm_submit = confirm( confirm_message );
696
+ if ( ! confirm_submit ) {
697
+ return false;
698
+ }
699
+ }
700
+
701
  var resubmit = bt_ajax_submit.data('resubmit');
702
  bt_ajax_submit.data('resubmit', 0);
703
 
706
  var submit_successsed = bt_ajax_submit.siblings('.a3rev-ui-ajax_multi_submit-successed');
707
  var submit_errors = bt_ajax_submit.siblings('.a3rev-ui-ajax_multi_submit-errors');
708
  var progress_bar_wrap = bt_ajax_submit.siblings('.a3rev-ui-progress-bar-wrap');
709
+ var progress_notice = bt_ajax_submit.siblings('.a3rev-ui-progress-notice');
710
  var progress_inner = progress_bar_wrap.find('.a3rev-ui-progress-inner');
711
  var progressing_text = progress_bar_wrap.find('.a3rev-ui-progressing-text');
712
  var completed_text = progress_bar_wrap.find('.a3rev-ui-completed-text');
715
  submit_successsed.hide();
716
  submit_errors.hide();
717
  progress_bar_wrap.show();
718
+ if ( typeof progress_notice !== undefined ) {
719
+ progress_notice.show();
720
+ }
721
 
722
  // Reset progressing start point to 0 for resubmit
723
  if ( resubmit == 1 ) {
admin/assets/js/bootstrap/modal.js CHANGED
@@ -1,32 +1,29 @@
1
- var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
2
 
3
- var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
4
 
5
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
 
 
6
 
7
  /**
8
  * --------------------------------------------------------------------------
9
- * Bootstrap (v4.0.0-alpha.6): modal.js
10
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
11
  * --------------------------------------------------------------------------
12
  */
13
-
14
  var Modal = function ($) {
15
-
16
  /**
17
  * ------------------------------------------------------------------------
18
  * Constants
19
  * ------------------------------------------------------------------------
20
  */
21
-
22
  var NAME = 'modal';
23
- var VERSION = '4.0.0-alpha.6';
24
  var DATA_KEY = 'bs.modal';
25
- var EVENT_KEY = '.' + DATA_KEY;
26
  var DATA_API_KEY = '.data-api';
27
  var JQUERY_NO_CONFLICT = $.fn[NAME];
28
- var TRANSITION_DURATION = 300;
29
- var BACKDROP_TRANSITION_DURATION = 150;
30
  var ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key
31
 
32
  var Default = {
@@ -35,28 +32,25 @@ var Modal = function ($) {
35
  focus: true,
36
  show: true
37
  };
38
-
39
  var DefaultType = {
40
  backdrop: '(boolean|string)',
41
  keyboard: 'boolean',
42
  focus: 'boolean',
43
  show: 'boolean'
44
  };
45
-
46
  var Event = {
47
- HIDE: 'hide' + EVENT_KEY,
48
- HIDDEN: 'hidden' + EVENT_KEY,
49
- SHOW: 'show' + EVENT_KEY,
50
- SHOWN: 'shown' + EVENT_KEY,
51
- FOCUSIN: 'focusin' + EVENT_KEY,
52
- RESIZE: 'resize' + EVENT_KEY,
53
- CLICK_DISMISS: 'click.dismiss' + EVENT_KEY,
54
- KEYDOWN_DISMISS: 'keydown.dismiss' + EVENT_KEY,
55
- MOUSEUP_DISMISS: 'mouseup.dismiss' + EVENT_KEY,
56
- MOUSEDOWN_DISMISS: 'mousedown.dismiss' + EVENT_KEY,
57
- CLICK_DATA_API: 'click' + EVENT_KEY + DATA_API_KEY
58
  };
59
-
60
  var ClassName = {
61
  SCROLLBAR_MEASURER: 'modal-scrollbar-measure',
62
  BACKDROP: 'modal-backdrop',
@@ -64,24 +58,25 @@ var Modal = function ($) {
64
  FADE: 'fade',
65
  SHOW: 'show'
66
  };
67
-
68
  var Selector = {
69
  DIALOG: '.modal-dialog',
70
  DATA_TOGGLE: '[data-toggle="modal"]',
71
  DATA_DISMISS: '[data-dismiss="modal"]',
72
- FIXED_CONTENT: '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top'
73
- };
 
 
 
 
 
 
74
 
75
- /**
76
- * ------------------------------------------------------------------------
77
- * Class Definition
78
- * ------------------------------------------------------------------------
79
- */
80
 
81
- var Modal = function () {
 
 
82
  function Modal(element, config) {
83
- _classCallCheck(this, Modal);
84
-
85
  this._config = this._getConfig(config);
86
  this._element = element;
87
  this._dialog = $(element).find(Selector.DIALOG)[0];
@@ -89,33 +84,31 @@ var Modal = function ($) {
89
  this._isShown = false;
90
  this._isBodyOverflowing = false;
91
  this._ignoreBackdropClick = false;
92
- this._isTransitioning = false;
93
- this._originalBodyPadding = 0;
94
  this._scrollbarWidth = 0;
95
- }
96
 
97
- // getters
98
 
99
- // public
100
 
101
- Modal.prototype.toggle = function toggle(relatedTarget) {
 
102
  return this._isShown ? this.hide() : this.show(relatedTarget);
103
  };
104
 
105
- Modal.prototype.show = function show(relatedTarget) {
106
  var _this = this;
107
 
108
- if (this._isTransitioning) {
109
- throw new Error('Modal is transitioning');
110
  }
111
 
112
- if (Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.FADE)) {
113
  this._isTransitioning = true;
114
  }
 
115
  var showEvent = $.Event(Event.SHOW, {
116
  relatedTarget: relatedTarget
117
  });
118
-
119
  $(this._element).trigger(showEvent);
120
 
121
  if (this._isShown || showEvent.isDefaultPrevented()) {
@@ -125,17 +118,20 @@ var Modal = function ($) {
125
  this._isShown = true;
126
 
127
  this._checkScrollbar();
 
128
  this._setScrollbar();
129
 
 
 
130
  $(document.body).addClass(ClassName.OPEN);
131
 
132
  this._setEscapeEvent();
 
133
  this._setResizeEvent();
134
 
135
  $(this._element).on(Event.CLICK_DISMISS, Selector.DATA_DISMISS, function (event) {
136
  return _this.hide(event);
137
  });
138
-
139
  $(this._dialog).on(Event.MOUSEDOWN_DISMISS, function () {
140
  $(_this._element).one(Event.MOUSEUP_DISMISS, function (event) {
141
  if ($(event.target).is(_this._element)) {
@@ -149,20 +145,15 @@ var Modal = function ($) {
149
  });
150
  };
151
 
152
- Modal.prototype.hide = function hide(event) {
153
  var _this2 = this;
154
 
155
  if (event) {
156
  event.preventDefault();
157
  }
158
 
159
- if (this._isTransitioning) {
160
- throw new Error('Modal is transitioning');
161
- }
162
-
163
- var transition = Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.FADE);
164
- if (transition) {
165
- this._isTransitioning = true;
166
  }
167
 
168
  var hideEvent = $.Event(Event.HIDE);
@@ -173,31 +164,34 @@ var Modal = function ($) {
173
  }
174
 
175
  this._isShown = false;
 
 
 
 
 
176
 
177
  this._setEscapeEvent();
 
178
  this._setResizeEvent();
179
 
180
  $(document).off(Event.FOCUSIN);
181
-
182
  $(this._element).removeClass(ClassName.SHOW);
183
-
184
  $(this._element).off(Event.CLICK_DISMISS);
185
  $(this._dialog).off(Event.MOUSEDOWN_DISMISS);
186
 
187
  if (transition) {
 
188
  $(this._element).one(Util.TRANSITION_END, function (event) {
189
  return _this2._hideModal(event);
190
- }).emulateTransitionEnd(TRANSITION_DURATION);
191
  } else {
192
  this._hideModal();
193
  }
194
  };
195
 
196
- Modal.prototype.dispose = function dispose() {
197
  $.removeData(this._element, DATA_KEY);
198
-
199
  $(window, document, this._element, this._backdrop).off(EVENT_KEY);
200
-
201
  this._config = null;
202
  this._element = null;
203
  this._dialog = null;
@@ -205,30 +199,34 @@ var Modal = function ($) {
205
  this._isShown = null;
206
  this._isBodyOverflowing = null;
207
  this._ignoreBackdropClick = null;
208
- this._originalBodyPadding = null;
209
  this._scrollbarWidth = null;
210
  };
211
 
212
- // private
 
 
213
 
214
- Modal.prototype._getConfig = function _getConfig(config) {
215
- config = $.extend({}, Default, config);
 
216
  Util.typeCheckConfig(NAME, config, DefaultType);
217
  return config;
218
  };
219
 
220
- Modal.prototype._showElement = function _showElement(relatedTarget) {
221
  var _this3 = this;
222
 
223
- var transition = Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.FADE);
224
 
225
  if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {
226
- // don't move modals dom position
227
  document.body.appendChild(this._element);
228
  }
229
 
230
  this._element.style.display = 'block';
 
231
  this._element.removeAttribute('aria-hidden');
 
232
  this._element.scrollTop = 0;
233
 
234
  if (transition) {
@@ -249,34 +247,38 @@ var Modal = function ($) {
249
  if (_this3._config.focus) {
250
  _this3._element.focus();
251
  }
 
252
  _this3._isTransitioning = false;
253
  $(_this3._element).trigger(shownEvent);
254
  };
255
 
256
  if (transition) {
257
- $(this._dialog).one(Util.TRANSITION_END, transitionComplete).emulateTransitionEnd(TRANSITION_DURATION);
 
258
  } else {
259
  transitionComplete();
260
  }
261
  };
262
 
263
- Modal.prototype._enforceFocus = function _enforceFocus() {
264
  var _this4 = this;
265
 
266
- $(document).off(Event.FOCUSIN) // guard against infinite focus loop
267
  .on(Event.FOCUSIN, function (event) {
268
- if (document !== event.target && _this4._element !== event.target && !$(_this4._element).has(event.target).length) {
269
  _this4._element.focus();
270
  }
271
  });
272
  };
273
 
274
- Modal.prototype._setEscapeEvent = function _setEscapeEvent() {
275
  var _this5 = this;
276
 
277
  if (this._isShown && this._config.keyboard) {
278
  $(this._element).on(Event.KEYDOWN_DISMISS, function (event) {
279
  if (event.which === ESCAPE_KEYCODE) {
 
 
280
  _this5.hide();
281
  }
282
  });
@@ -285,47 +287,51 @@ var Modal = function ($) {
285
  }
286
  };
287
 
288
- Modal.prototype._setResizeEvent = function _setResizeEvent() {
289
  var _this6 = this;
290
 
291
  if (this._isShown) {
292
  $(window).on(Event.RESIZE, function (event) {
293
- return _this6._handleUpdate(event);
294
  });
295
  } else {
296
  $(window).off(Event.RESIZE);
297
  }
298
  };
299
 
300
- Modal.prototype._hideModal = function _hideModal() {
301
  var _this7 = this;
302
 
303
  this._element.style.display = 'none';
304
- this._element.setAttribute('aria-hidden', 'true');
 
 
305
  this._isTransitioning = false;
 
306
  this._showBackdrop(function () {
307
  $(document.body).removeClass(ClassName.OPEN);
 
308
  _this7._resetAdjustments();
 
309
  _this7._resetScrollbar();
 
310
  $(_this7._element).trigger(Event.HIDDEN);
311
  });
312
  };
313
 
314
- Modal.prototype._removeBackdrop = function _removeBackdrop() {
315
  if (this._backdrop) {
316
  $(this._backdrop).remove();
317
  this._backdrop = null;
318
  }
319
  };
320
 
321
- Modal.prototype._showBackdrop = function _showBackdrop(callback) {
322
  var _this8 = this;
323
 
324
  var animate = $(this._element).hasClass(ClassName.FADE) ? ClassName.FADE : '';
325
 
326
  if (this._isShown && this._config.backdrop) {
327
- var doAnimate = Util.supportsTransitionEnd() && animate;
328
-
329
  this._backdrop = document.createElement('div');
330
  this._backdrop.className = ClassName.BACKDROP;
331
 
@@ -334,15 +340,16 @@ var Modal = function ($) {
334
  }
335
 
336
  $(this._backdrop).appendTo(document.body);
337
-
338
  $(this._element).on(Event.CLICK_DISMISS, function (event) {
339
  if (_this8._ignoreBackdropClick) {
340
  _this8._ignoreBackdropClick = false;
341
  return;
342
  }
 
343
  if (event.target !== event.currentTarget) {
344
  return;
345
  }
 
346
  if (_this8._config.backdrop === 'static') {
347
  _this8._element.focus();
348
  } else {
@@ -350,7 +357,7 @@ var Modal = function ($) {
350
  }
351
  });
352
 
353
- if (doAnimate) {
354
  Util.reflow(this._backdrop);
355
  }
356
 
@@ -360,93 +367,135 @@ var Modal = function ($) {
360
  return;
361
  }
362
 
363
- if (!doAnimate) {
364
  callback();
365
  return;
366
  }
367
 
368
- $(this._backdrop).one(Util.TRANSITION_END, callback).emulateTransitionEnd(BACKDROP_TRANSITION_DURATION);
 
369
  } else if (!this._isShown && this._backdrop) {
370
  $(this._backdrop).removeClass(ClassName.SHOW);
371
 
372
  var callbackRemove = function callbackRemove() {
373
  _this8._removeBackdrop();
 
374
  if (callback) {
375
  callback();
376
  }
377
  };
378
 
379
- if (Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.FADE)) {
380
- $(this._backdrop).one(Util.TRANSITION_END, callbackRemove).emulateTransitionEnd(BACKDROP_TRANSITION_DURATION);
 
 
381
  } else {
382
  callbackRemove();
383
  }
384
  } else if (callback) {
385
  callback();
386
  }
387
- };
388
-
389
- // ----------------------------------------------------------------------
390
  // the following methods are used to handle overflowing modals
391
  // todo (fat): these should probably be refactored out of modal.js
392
  // ----------------------------------------------------------------------
393
 
394
- Modal.prototype._handleUpdate = function _handleUpdate() {
395
- this._adjustDialog();
396
- };
397
 
398
- Modal.prototype._adjustDialog = function _adjustDialog() {
399
  var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;
400
 
401
  if (!this._isBodyOverflowing && isModalOverflowing) {
402
- this._element.style.paddingLeft = this._scrollbarWidth + 'px';
403
  }
404
 
405
  if (this._isBodyOverflowing && !isModalOverflowing) {
406
- this._element.style.paddingRight = this._scrollbarWidth + 'px';
407
  }
408
  };
409
 
410
- Modal.prototype._resetAdjustments = function _resetAdjustments() {
411
  this._element.style.paddingLeft = '';
412
  this._element.style.paddingRight = '';
413
  };
414
 
415
- Modal.prototype._checkScrollbar = function _checkScrollbar() {
416
- this._isBodyOverflowing = document.body.clientWidth < window.innerWidth;
 
417
  this._scrollbarWidth = this._getScrollbarWidth();
418
  };
419
 
420
- Modal.prototype._setScrollbar = function _setScrollbar() {
421
- var bodyPadding = parseInt($(Selector.FIXED_CONTENT).css('padding-right') || 0, 10);
422
-
423
- this._originalBodyPadding = document.body.style.paddingRight || '';
424
 
425
  if (this._isBodyOverflowing) {
426
- document.body.style.paddingRight = bodyPadding + this._scrollbarWidth + 'px';
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
427
  }
428
  };
429
 
430
- Modal.prototype._resetScrollbar = function _resetScrollbar() {
431
- document.body.style.paddingRight = this._originalBodyPadding;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
432
  };
433
 
434
- Modal.prototype._getScrollbarWidth = function _getScrollbarWidth() {
435
  // thx d.walsh
436
  var scrollDiv = document.createElement('div');
437
  scrollDiv.className = ClassName.SCROLLBAR_MEASURER;
438
  document.body.appendChild(scrollDiv);
439
- var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth;
440
  document.body.removeChild(scrollDiv);
441
  return scrollbarWidth;
442
- };
443
 
444
- // static
445
 
446
  Modal._jQueryInterface = function _jQueryInterface(config, relatedTarget) {
447
  return this.each(function () {
448
  var data = $(this).data(DATA_KEY);
449
- var _config = $.extend({}, Modal.Default, $(this).data(), (typeof config === 'undefined' ? 'undefined' : _typeof(config)) === 'object' && config);
 
450
 
451
  if (!data) {
452
  data = new Modal(this, _config);
@@ -454,9 +503,10 @@ var Modal = function ($) {
454
  }
455
 
456
  if (typeof config === 'string') {
457
- if (data[config] === undefined) {
458
- throw new Error('No method named "' + config + '"');
459
  }
 
460
  data[config](relatedTarget);
461
  } else if (_config.show) {
462
  data.show(relatedTarget);
@@ -465,12 +515,12 @@ var Modal = function ($) {
465
  };
466
 
467
  _createClass(Modal, null, [{
468
- key: 'VERSION',
469
  get: function get() {
470
  return VERSION;
471
  }
472
  }, {
473
- key: 'Default',
474
  get: function get() {
475
  return Default;
476
  }
@@ -478,24 +528,24 @@ var Modal = function ($) {
478
 
479
  return Modal;
480
  }();
481
-
482
  /**
483
  * ------------------------------------------------------------------------
484
  * Data Api implementation
485
  * ------------------------------------------------------------------------
486
  */
487
 
 
488
  $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
489
- var _this9 = this;
490
 
491
- var target = void 0;
492
  var selector = Util.getSelectorFromElement(this);
493
 
494
  if (selector) {
495
  target = $(selector)[0];
496
  }
497
 
498
- var config = $(target).data(DATA_KEY) ? 'toggle' : $.extend({}, $(target).data(), $(this).data());
499
 
500
  if (this.tagName === 'A' || this.tagName === 'AREA') {
501
  event.preventDefault();
@@ -503,20 +553,19 @@ var Modal = function ($) {
503
 
504
  var $target = $(target).one(Event.SHOW, function (showEvent) {
505
  if (showEvent.isDefaultPrevented()) {
506
- // only register focus restorer if modal will actually get shown
507
  return;
508
  }
509
 
510
  $target.one(Event.HIDDEN, function () {
511
- if ($(_this9).is(':visible')) {
512
- _this9.focus();
513
  }
514
  });
515
  });
516
 
517
  Modal._jQueryInterface.call($(target), config, this);
518
  });
519
-
520
  /**
521
  * ------------------------------------------------------------------------
522
  * jQuery
@@ -525,11 +574,11 @@ var Modal = function ($) {
525
 
526
  $.fn[NAME] = Modal._jQueryInterface;
527
  $.fn[NAME].Constructor = Modal;
 
528
  $.fn[NAME].noConflict = function () {
529
  $.fn[NAME] = JQUERY_NO_CONFLICT;
530
  return Modal._jQueryInterface;
531
  };
532
 
533
  return Modal;
534
- }(jQuery);
535
- //# sourceMappingURL=modal.js.map
1
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }
2
 
3
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
4
 
5
+ function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
6
+
7
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
8
 
9
  /**
10
  * --------------------------------------------------------------------------
11
+ * Bootstrap (v4.1.1): modal.js
12
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
13
  * --------------------------------------------------------------------------
14
  */
 
15
  var Modal = function ($) {
 
16
  /**
17
  * ------------------------------------------------------------------------
18
  * Constants
19
  * ------------------------------------------------------------------------
20
  */
 
21
  var NAME = 'modal';
22
+ var VERSION = '4.1.1';
23
  var DATA_KEY = 'bs.modal';
24
+ var EVENT_KEY = "." + DATA_KEY;
25
  var DATA_API_KEY = '.data-api';
26
  var JQUERY_NO_CONFLICT = $.fn[NAME];
 
 
27
  var ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key
28
 
29
  var Default = {
32
  focus: true,
33
  show: true
34
  };
 
35
  var DefaultType = {
36
  backdrop: '(boolean|string)',
37
  keyboard: 'boolean',
38
  focus: 'boolean',
39
  show: 'boolean'
40
  };
 
41
  var Event = {
42
+ HIDE: "hide" + EVENT_KEY,
43
+ HIDDEN: "hidden" + EVENT_KEY,
44
+ SHOW: "show" + EVENT_KEY,
45
+ SHOWN: "shown" + EVENT_KEY,
46
+ FOCUSIN: "focusin" + EVENT_KEY,
47
+ RESIZE: "resize" + EVENT_KEY,
48
+ CLICK_DISMISS: "click.dismiss" + EVENT_KEY,
49
+ KEYDOWN_DISMISS: "keydown.dismiss" + EVENT_KEY,
50
+ MOUSEUP_DISMISS: "mouseup.dismiss" + EVENT_KEY,
51
+ MOUSEDOWN_DISMISS: "mousedown.dismiss" + EVENT_KEY,
52
+ CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY
53
  };
 
54
  var ClassName = {
55
  SCROLLBAR_MEASURER: 'modal-scrollbar-measure',
56
  BACKDROP: 'modal-backdrop',
58
  FADE: 'fade',
59
  SHOW: 'show'
60
  };
 
61
  var Selector = {
62
  DIALOG: '.modal-dialog',
63
  DATA_TOGGLE: '[data-toggle="modal"]',
64
  DATA_DISMISS: '[data-dismiss="modal"]',
65
+ FIXED_CONTENT: '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',
66
+ STICKY_CONTENT: '.sticky-top',
67
+ NAVBAR_TOGGLER: '.navbar-toggler'
68
+ /**
69
+ * ------------------------------------------------------------------------
70
+ * Class Definition
71
+ * ------------------------------------------------------------------------
72
+ */
73
 
74
+ };
 
 
 
 
75
 
76
+ var Modal =
77
+ /*#__PURE__*/
78
+ function () {
79
  function Modal(element, config) {
 
 
80
  this._config = this._getConfig(config);
81
  this._element = element;
82
  this._dialog = $(element).find(Selector.DIALOG)[0];
84
  this._isShown = false;
85
  this._isBodyOverflowing = false;
86
  this._ignoreBackdropClick = false;
 
 
87
  this._scrollbarWidth = 0;
88
+ } // Getters
89
 
 
90
 
91
+ var _proto = Modal.prototype;
92
 
93
+ // Public
94
+ _proto.toggle = function toggle(relatedTarget) {
95
  return this._isShown ? this.hide() : this.show(relatedTarget);
96
  };
97
 
98
+ _proto.show = function show(relatedTarget) {
99
  var _this = this;
100
 
101
+ if (this._isTransitioning || this._isShown) {
102
+ return;
103
  }
104
 
105
+ if ($(this._element).hasClass(ClassName.FADE)) {
106
  this._isTransitioning = true;
107
  }
108
+
109
  var showEvent = $.Event(Event.SHOW, {
110
  relatedTarget: relatedTarget
111
  });
 
112
  $(this._element).trigger(showEvent);
113
 
114
  if (this._isShown || showEvent.isDefaultPrevented()) {
118
  this._isShown = true;
119
 
120
  this._checkScrollbar();
121
+
122
  this._setScrollbar();
123
 
124
+ this._adjustDialog();
125
+
126
  $(document.body).addClass(ClassName.OPEN);
127
 
128
  this._setEscapeEvent();
129
+
130
  this._setResizeEvent();
131
 
132
  $(this._element).on(Event.CLICK_DISMISS, Selector.DATA_DISMISS, function (event) {
133
  return _this.hide(event);
134
  });
 
135
  $(this._dialog).on(Event.MOUSEDOWN_DISMISS, function () {
136
  $(_this._element).one(Event.MOUSEUP_DISMISS, function (event) {
137
  if ($(event.target).is(_this._element)) {
145
  });
146
  };
147
 
148
+ _proto.hide = function hide(event) {
149
  var _this2 = this;
150
 
151
  if (event) {
152
  event.preventDefault();
153
  }
154
 
155
+ if (this._isTransitioning || !this._isShown) {
156
+ return;
 
 
 
 
 
157
  }
158
 
159
  var hideEvent = $.Event(Event.HIDE);
164
  }
165
 
166
  this._isShown = false;
167
+ var transition = $(this._element).hasClass(ClassName.FADE);
168
+
169
+ if (transition) {
170
+ this._isTransitioning = true;
171
+ }
172
 
173
  this._setEscapeEvent();
174
+
175
  this._setResizeEvent();
176
 
177
  $(document).off(Event.FOCUSIN);
 
178
  $(this._element).removeClass(ClassName.SHOW);
 
179
  $(this._element).off(Event.CLICK_DISMISS);
180
  $(this._dialog).off(Event.MOUSEDOWN_DISMISS);
181
 
182
  if (transition) {
183
+ var transitionDuration = Util.getTransitionDurationFromElement(this._element);
184
  $(this._element).one(Util.TRANSITION_END, function (event) {
185
  return _this2._hideModal(event);
186
+ }).emulateTransitionEnd(transitionDuration);
187
  } else {
188
  this._hideModal();
189
  }
190
  };
191
 
192
+ _proto.dispose = function dispose() {
193
  $.removeData(this._element, DATA_KEY);
 
194
  $(window, document, this._element, this._backdrop).off(EVENT_KEY);
 
195
  this._config = null;
196
  this._element = null;
197
  this._dialog = null;
199
  this._isShown = null;
200
  this._isBodyOverflowing = null;
201
  this._ignoreBackdropClick = null;
 
202
  this._scrollbarWidth = null;
203
  };
204
 
205
+ _proto.handleUpdate = function handleUpdate() {
206
+ this._adjustDialog();
207
+ }; // Private
208
 
209
+
210
+ _proto._getConfig = function _getConfig(config) {
211
+ config = _objectSpread({}, Default, config);
212
  Util.typeCheckConfig(NAME, config, DefaultType);
213
  return config;
214
  };
215
 
216
+ _proto._showElement = function _showElement(relatedTarget) {
217
  var _this3 = this;
218
 
219
+ var transition = $(this._element).hasClass(ClassName.FADE);
220
 
221
  if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {
222
+ // Don't move modal's DOM position
223
  document.body.appendChild(this._element);
224
  }
225
 
226
  this._element.style.display = 'block';
227
+
228
  this._element.removeAttribute('aria-hidden');
229
+
230
  this._element.scrollTop = 0;
231
 
232
  if (transition) {
247
  if (_this3._config.focus) {
248
  _this3._element.focus();
249
  }
250
+
251
  _this3._isTransitioning = false;
252
  $(_this3._element).trigger(shownEvent);
253
  };
254
 
255
  if (transition) {
256
+ var transitionDuration = Util.getTransitionDurationFromElement(this._element);
257
+ $(this._dialog).one(Util.TRANSITION_END, transitionComplete).emulateTransitionEnd(transitionDuration);
258
  } else {
259
  transitionComplete();
260
  }
261
  };
262
 
263
+ _proto._enforceFocus = function _enforceFocus() {
264
  var _this4 = this;
265
 
266
+ $(document).off(Event.FOCUSIN) // Guard against infinite focus loop
267
  .on(Event.FOCUSIN, function (event) {
268
+ if (document !== event.target && _this4._element !== event.target && $(_this4._element).has(event.target).length === 0) {
269
  _this4._element.focus();
270
  }
271
  });
272
  };
273
 
274
+ _proto._setEscapeEvent = function _setEscapeEvent() {
275
  var _this5 = this;
276
 
277
  if (this._isShown && this._config.keyboard) {
278
  $(this._element).on(Event.KEYDOWN_DISMISS, function (event) {
279
  if (event.which === ESCAPE_KEYCODE) {
280
+ event.preventDefault();
281
+
282
  _this5.hide();
283
  }
284
  });
287
  }
288
  };
289
 
290
+ _proto._setResizeEvent = function _setResizeEvent() {
291
  var _this6 = this;
292
 
293
  if (this._isShown) {
294
  $(window).on(Event.RESIZE, function (event) {
295
+ return _this6.handleUpdate(event);
296
  });
297
  } else {
298
  $(window).off(Event.RESIZE);
299
  }
300
  };
301
 
302
+ _proto._hideModal = function _hideModal() {
303
  var _this7 = this;
304
 
305
  this._element.style.display = 'none';
306
+
307
+ this._element.setAttribute('aria-hidden', true);
308
+
309
  this._isTransitioning = false;
310
+
311
  this._showBackdrop(function () {
312
  $(document.body).removeClass(ClassName.OPEN);
313
+
314
  _this7._resetAdjustments();
315
+
316
  _this7._resetScrollbar();
317
+
318
  $(_this7._element).trigger(Event.HIDDEN);
319
  });
320
  };
321
 
322
+ _proto._removeBackdrop = function _removeBackdrop() {
323
  if (this._backdrop) {
324
  $(this._backdrop).remove();
325
  this._backdrop = null;
326
  }
327
  };
328
 
329
+ _proto._showBackdrop = function _showBackdrop(callback) {
330
  var _this8 = this;
331
 
332
  var animate = $(this._element).hasClass(ClassName.FADE) ? ClassName.FADE : '';
333
 
334
  if (this._isShown && this._config.backdrop) {
 
 
335
  this._backdrop = document.createElement('div');
336
  this._backdrop.className = ClassName.BACKDROP;
337
 
340
  }
341
 
342
  $(this._backdrop).appendTo(document.body);
 
343
  $(this._element).on(Event.CLICK_DISMISS, function (event) {
344
  if (_this8._ignoreBackdropClick) {
345
  _this8._ignoreBackdropClick = false;
346
  return;
347
  }
348
+
349
  if (event.target !== event.currentTarget) {
350
  return;
351
  }
352
+
353
  if (_this8._config.backdrop === 'static') {
354
  _this8._element.focus();
355
  } else {
357
  }
358
  });
359
 
360
+ if (animate) {
361
  Util.reflow(this._backdrop);
362
  }
363
 
367
  return;
368
  }
369
 
370
+ if (!animate) {
371
  callback();
372
  return;
373
  }
374
 
375
+ var backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop);
376
+ $(this._backdrop).one(Util.TRANSITION_END, callback).emulateTransitionEnd(backdropTransitionDuration);
377
  } else if (!this._isShown && this._backdrop) {
378
  $(this._backdrop).removeClass(ClassName.SHOW);
379
 
380
  var callbackRemove = function callbackRemove() {
381
  _this8._removeBackdrop();
382
+
383
  if (callback) {
384
  callback();
385
  }
386
  };
387
 
388
+ if ($(this._element).hasClass(ClassName.FADE)) {
389
+ var _backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop);
390
+
391
+ $(this._backdrop).one(Util.TRANSITION_END, callbackRemove).emulateTransitionEnd(_backdropTransitionDuration);
392
  } else {
393
  callbackRemove();
394
  }
395
  } else if (callback) {
396
  callback();
397
  }
398
+ }; // ----------------------------------------------------------------------
 
 
399
  // the following methods are used to handle overflowing modals
400
  // todo (fat): these should probably be refactored out of modal.js
401
  // ----------------------------------------------------------------------
402
 
 
 
 
403
 
404
+ _proto._adjustDialog = function _adjustDialog() {
405
  var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;
406
 
407
  if (!this._isBodyOverflowing && isModalOverflowing) {
408
+ this._element.style.paddingLeft = this._scrollbarWidth + "px";
409
  }
410
 
411
  if (this._isBodyOverflowing && !isModalOverflowing) {
412
+ this._element.style.paddingRight = this._scrollbarWidth + "px";
413
  }
414
  };
415
 
416
+ _proto._resetAdjustments = function _resetAdjustments() {
417
  this._element.style.paddingLeft = '';
418
  this._element.style.paddingRight = '';
419
  };
420
 
421
+ _proto._checkScrollbar = function _checkScrollbar() {
422
+ var rect = document.body.getBoundingClientRect();
423
+ this._isBodyOverflowing = rect.left + rect.right < window.innerWidth;
424
  this._scrollbarWidth = this._getScrollbarWidth();
425
  };
426
 
427
+ _proto._setScrollbar = function _setScrollbar() {
428
+ var _this9 = this;
 
 
429
 
430
  if (this._isBodyOverflowing) {
431
+ // Note: DOMNode.style.paddingRight returns the actual value or '' if not set
432
+ // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set
433
+ // Adjust fixed content padding
434
+ $(Selector.FIXED_CONTENT).each(function (index, element) {
435
+ var actualPadding = $(element)[0].style.paddingRight;
436
+ var calculatedPadding = $(element).css('padding-right');
437
+ $(element).data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + _this9._scrollbarWidth + "px");
438
+ }); // Adjust sticky content margin
439
+
440
+ $(Selector.STICKY_CONTENT).each(function (index, element) {
441
+ var actualMargin = $(element)[0].style.marginRight;
442
+ var calculatedMargin = $(element).css('margin-right');
443
+ $(element).data('margin-right', actualMargin).css('margin-right', parseFloat(calculatedMargin) - _this9._scrollbarWidth + "px");
444
+ }); // Adjust navbar-toggler margin
445
+
446
+ $(Selector.NAVBAR_TOGGLER).each(function (index, element) {
447
+ var actualMargin = $(element)[0].style.marginRight;
448
+ var calculatedMargin = $(element).css('margin-right');
449
+ $(element).data('margin-right', actualMargin).css('margin-right', parseFloat(calculatedMargin) + _this9._scrollbarWidth + "px");
450
+ }); // Adjust body padding
451
+
452
+ var actualPadding = document.body.style.paddingRight;
453
+ var calculatedPadding = $(document.body).css('padding-right');
454
+ $(document.body).data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + this._scrollbarWidth + "px");
455
  }
456
  };
457
 
458
+ _proto._resetScrollbar = function _resetScrollbar() {
459
+ // Restore fixed content padding
460
+ $(Selector.FIXED_CONTENT).each(function (index, element) {
461
+ var padding = $(element).data('padding-right');
462
+
463
+ if (typeof padding !== 'undefined') {
464
+ $(element).css('padding-right', padding).removeData('padding-right');
465
+ }
466
+ }); // Restore sticky content and navbar-toggler margin
467
+
468
+ $(Selector.STICKY_CONTENT + ", " + Selector.NAVBAR_TOGGLER).each(function (index, element) {
469
+ var margin = $(element).data('margin-right');
470
+
471
+ if (typeof margin !== 'undefined') {
472
+ $(element).css('margin-right', margin).removeData('margin-right');
473
+ }
474
+ }); // Restore body padding
475
+
476
+ var padding = $(document.body).data('padding-right');
477
+
478
+ if (typeof padding !== 'undefined') {
479
+ $(document.body).css('padding-right', padding).removeData('padding-right');
480
+ }
481
  };
482
 
483
+ _proto._getScrollbarWidth = function _getScrollbarWidth() {
484
  // thx d.walsh
485
  var scrollDiv = document.createElement('div');
486
  scrollDiv.className = ClassName.SCROLLBAR_MEASURER;
487
  document.body.appendChild(scrollDiv);
488
+ var scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth;
489
  document.body.removeChild(scrollDiv);
490
  return scrollbarWidth;
491
+ }; // Static
492
 
 
493
 
494
  Modal._jQueryInterface = function _jQueryInterface(config, relatedTarget) {
495
  return this.each(function () {
496
  var data = $(this).data(DATA_KEY);
497
+
498
+ var _config = _objectSpread({}, Default, $(this).data(), typeof config === 'object' && config ? config : {});
499
 
500
  if (!data) {
501
  data = new Modal(this, _config);
503
  }
504
 
505
  if (typeof config === 'string') {
506
+ if (typeof data[config] === 'undefined') {
507
+ throw new TypeError("No method named \"" + config + "\"");
508
  }
509
+
510
  data[config](relatedTarget);
511
  } else if (_config.show) {
512
  data.show(relatedTarget);
515
  };
516
 
517
  _createClass(Modal, null, [{
518
+ key: "VERSION",
519
  get: function get() {
520
  return VERSION;
521
  }
522
  }, {
523
+ key: "Default",
524
  get: function get() {
525
  return Default;
526
  }
528
 
529
  return Modal;
530
  }();
 
531
  /**
532
  * ------------------------------------------------------------------------
533
  * Data Api implementation
534
  * ------------------------------------------------------------------------
535
  */
536
 
537
+
538
  $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
539
+ var _this10 = this;
540
 
541
+ var target;
542
  var selector = Util.getSelectorFromElement(this);
543
 
544
  if (selector) {
545
  target = $(selector)[0];
546
  }
547
 
548
+ var config = $(target).data(DATA_KEY) ? 'toggle' : _objectSpread({}, $(target).data(), $(this).data());
549
 
550
  if (this.tagName === 'A' || this.tagName === 'AREA') {
551
  event.preventDefault();
553
 
554
  var $target = $(target).one(Event.SHOW, function (showEvent) {
555
  if (showEvent.isDefaultPrevented()) {
556
+ // Only register focus restorer if modal will actually get shown
557
  return;
558
  }
559
 
560
  $target.one(Event.HIDDEN, function () {
561
+ if ($(_this10).is(':visible')) {
562
+ _this10.focus();
563
  }
564
  });
565
  });
566
 
567
  Modal._jQueryInterface.call($(target), config, this);
568
  });
 
569
  /**
570
  * ------------------------------------------------------------------------
571
  * jQuery
574
 
575
  $.fn[NAME] = Modal._jQueryInterface;
576
  $.fn[NAME].Constructor = Modal;
577
+
578
  $.fn[NAME].noConflict = function () {
579
  $.fn[NAME] = JQUERY_NO_CONFLICT;
580
  return Modal._jQueryInterface;
581
  };
582
 
583
  return Modal;
584
+ }(jQuery);
 
admin/assets/js/bootstrap/modal.min.js CHANGED
@@ -1 +1,18 @@
1
- function _classCallCheck(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}var _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(a){return typeof a}:function(a){return a&&"function"==typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a},_createClass=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1,d.configurable=!0,"value"in d&&(d.writable=!0),Object.defineProperty(a,d.key,d)}}return function(b,c,d){return c&&a(b.prototype,c),d&&a(b,d),b}}(),Modal=function(a){var b="modal",c="4.0.0-alpha.6",d="bs.modal",e="."+d,f=".data-api",g=a.fn[b],h=300,i=150,j=27,k={backdrop:!0,keyboard:!0,focus:!0,show:!0},l={backdrop:"(boolean|string)",keyboard:"boolean",focus:"boolean",show:"boolean"},m={HIDE:"hide"+e,HIDDEN:"hidden"+e,SHOW:"show"+e,SHOWN:"shown"+e,FOCUSIN:"focusin"+e,RESIZE:"resize"+e,CLICK_DISMISS:"click.dismiss"+e,KEYDOWN_DISMISS:"keydown.dismiss"+e,MOUSEUP_DISMISS:"mouseup.dismiss"+e,MOUSEDOWN_DISMISS:"mousedown.dismiss"+e,CLICK_DATA_API:"click"+e+f},n={SCROLLBAR_MEASURER:"modal-scrollbar-measure",BACKDROP:"modal-backdrop",OPEN:"modal-open",FADE:"fade",SHOW:"show"},o={DIALOG:".modal-dialog",DATA_TOGGLE:'[data-toggle="modal"]',DATA_DISMISS:'[data-dismiss="modal"]',FIXED_CONTENT:".fixed-top, .fixed-bottom, .is-fixed, .sticky-top"},p=function(){function f(b,c){_classCallCheck(this,f),this._config=this._getConfig(c),this._element=b,this._dialog=a(b).find(o.DIALOG)[0],this._backdrop=null,this._isShown=!1,this._isBodyOverflowing=!1,this._ignoreBackdropClick=!1,this._isTransitioning=!1,this._originalBodyPadding=0,this._scrollbarWidth=0}return f.prototype.toggle=function(b){return this._isShown?this.hide():this.show(b)},f.prototype.show=function(c){var d=this;if(this._isTransitioning)throw new Error("Modal is transitioning");Util.supportsTransitionEnd()&&a(this._element).hasClass(n.FADE)&&(this._isTransitioning=!0);var e=a.Event(m.SHOW,{relatedTarget:c});a(this._element).trigger(e),this._isShown||e.isDefaultPrevented()||(this._isShown=!0,this._checkScrollbar(),this._setScrollbar(),a(document.body).addClass(n.OPEN),this._setEscapeEvent(),this._setResizeEvent(),a(this._element).on(m.CLICK_DISMISS,o.DATA_DISMISS,function(a){return d.hide(a)}),a(this._dialog).on(m.MOUSEDOWN_DISMISS,function(){a(d._element).one(m.MOUSEUP_DISMISS,function(b){a(b.target).is(d._element)&&(d._ignoreBackdropClick=!0)})}),this._showBackdrop(function(){return d._showElement(c)}))},f.prototype.hide=function(c){var d=this;if(c&&c.preventDefault(),this._isTransitioning)throw new Error("Modal is transitioning");var e=Util.supportsTransitionEnd()&&a(this._element).hasClass(n.FADE);e&&(this._isTransitioning=!0);var f=a.Event(m.HIDE);a(this._element).trigger(f),this._isShown&&!f.isDefaultPrevented()&&(this._isShown=!1,this._setEscapeEvent(),this._setResizeEvent(),a(document).off(m.FOCUSIN),a(this._element).removeClass(n.SHOW),a(this._element).off(m.CLICK_DISMISS),a(this._dialog).off(m.MOUSEDOWN_DISMISS),e?a(this._element).one(Util.TRANSITION_END,function(a){return d._hideModal(a)}).emulateTransitionEnd(h):this._hideModal())},f.prototype.dispose=function(){a.removeData(this._element,d),a(window,document,this._element,this._backdrop).off(e),this._config=null,this._element=null,this._dialog=null,this._backdrop=null,this._isShown=null,this._isBodyOverflowing=null,this._ignoreBackdropClick=null,this._originalBodyPadding=null,this._scrollbarWidth=null},f.prototype._getConfig=function(d){return d=a.extend({},k,d),Util.typeCheckConfig(b,d,l),d},f.prototype._showElement=function(c){var d=this,e=Util.supportsTransitionEnd()&&a(this._element).hasClass(n.FADE);this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE||document.body.appendChild(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.scrollTop=0,e&&Util.reflow(this._element),a(this._element).addClass(n.SHOW),this._config.focus&&this._enforceFocus();var f=a.Event(m.SHOWN,{relatedTarget:c}),g=function(){d._config.focus&&d._element.focus(),d._isTransitioning=!1,a(d._element).trigger(f)};e?a(this._dialog).one(Util.TRANSITION_END,g).emulateTransitionEnd(h):g()},f.prototype._enforceFocus=function(){var c=this;a(document).off(m.FOCUSIN).on(m.FOCUSIN,function(b){document===b.target||c._element===b.target||a(c._element).has(b.target).length||c._element.focus()})},f.prototype._setEscapeEvent=function(){var c=this;this._isShown&&this._config.keyboard?a(this._element).on(m.KEYDOWN_DISMISS,function(a){a.which===j&&c.hide()}):this._isShown||a(this._element).off(m.KEYDOWN_DISMISS)},f.prototype._setResizeEvent=function(){var c=this;this._isShown?a(window).on(m.RESIZE,function(a){return c._handleUpdate(a)}):a(window).off(m.RESIZE)},f.prototype._hideModal=function(){var c=this;this._element.style.display="none",this._element.setAttribute("aria-hidden","true"),this._isTransitioning=!1,this._showBackdrop(function(){a(document.body).removeClass(n.OPEN),c._resetAdjustments(),c._resetScrollbar(),a(c._element).trigger(m.HIDDEN)})},f.prototype._removeBackdrop=function(){this._backdrop&&(a(this._backdrop).remove(),this._backdrop=null)},f.prototype._showBackdrop=function(c){var d=this,e=a(this._element).hasClass(n.FADE)?n.FADE:"";if(this._isShown&&this._config.backdrop){var f=Util.supportsTransitionEnd()&&e;if(this._backdrop=document.createElement("div"),this._backdrop.className=n.BACKDROP,e&&a(this._backdrop).addClass(e),a(this._backdrop).appendTo(document.body),a(this._element).on(m.CLICK_DISMISS,function(a){if(d._ignoreBackdropClick)return void(d._ignoreBackdropClick=!1);a.target===a.currentTarget&&("static"===d._config.backdrop?d._element.focus():d.hide())}),f&&Util.reflow(this._backdrop),a(this._backdrop).addClass(n.SHOW),!c)return;if(!f)return void c();a(this._backdrop).one(Util.TRANSITION_END,c).emulateTransitionEnd(i)}else if(!this._isShown&&this._backdrop){a(this._backdrop).removeClass(n.SHOW);var g=function(){d._removeBackdrop(),c&&c()};Util.supportsTransitionEnd()&&a(this._element).hasClass(n.FADE)?a(this._backdrop).one(Util.TRANSITION_END,g).emulateTransitionEnd(i):g()}else c&&c()},f.prototype._handleUpdate=function(){this._adjustDialog()},f.prototype._adjustDialog=function(){var b=this._element.scrollHeight>document.documentElement.clientHeight;!this._isBodyOverflowing&&b&&(this._element.style.paddingLeft=this._scrollbarWidth+"px"),this._isBodyOverflowing&&!b&&(this._element.style.paddingRight=this._scrollbarWidth+"px")},f.prototype._resetAdjustments=function(){this._element.style.paddingLeft="",this._element.style.paddingRight=""},f.prototype._checkScrollbar=function(){this._isBodyOverflowing=document.body.clientWidth<window.innerWidth,this._scrollbarWidth=this._getScrollbarWidth()},f.prototype._setScrollbar=function(){var c=parseInt(a(o.FIXED_CONTENT).css("padding-right")||0,10);this._originalBodyPadding=document.body.style.paddingRight||"",this._isBodyOverflowing&&(document.body.style.paddingRight=c+this._scrollbarWidth+"px")},f.prototype._resetScrollbar=function(){document.body.style.paddingRight=this._originalBodyPadding},f.prototype._getScrollbarWidth=function(){var b=document.createElement("div");b.className=n.SCROLLBAR_MEASURER,document.body.appendChild(b);var c=b.offsetWidth-b.clientWidth;return document.body.removeChild(b),c},f._jQueryInterface=function(c,e){return this.each(function(){var b=a(this).data(d),g=a.extend({},f.Default,a(this).data(),"object"===(void 0===c?"undefined":_typeof(c))&&c);if(b||(b=new f(this,g),a(this).data(d,b)),"string"==typeof c){if(void 0===b[c])throw new Error('No method named "'+c+'"');b[c](e)}else g.show&&b.show(e)})},_createClass(f,null,[{key:"VERSION",get:function(){return c}},{key:"Default",get:function(){return k}}]),f}();return a(document).on(m.CLICK_DATA_API,o.DATA_TOGGLE,function(b){var c=this,e=void 0,f=Util.getSelectorFromElement(this);f&&(e=a(f)[0]);var g=a(e).data(d)?"toggle":a.extend({},a(e).data(),a(this).data());"A"!==this.tagName&&"AREA"!==this.tagName||b.preventDefault();var h=a(e).one(m.SHOW,function(b){b.isDefaultPrevented()||h.one(m.HIDDEN,function(){a(c).is(":visible")&&c.focus()})});p._jQueryInterface.call(a(e),g,this)}),a.fn[b]=p._jQueryInterface,a.fn[b].Constructor=p,a.fn[b].noConflict=function(){return a.fn[b]=g,p._jQueryInterface},p}(jQuery);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ function _objectSpread(a){for(var e=1;e<arguments.length;e++){var g=null!=arguments[e]?arguments[e]:{},h=Object.keys(g);"function"===typeof Object.getOwnPropertySymbols&&(h=h.concat(Object.getOwnPropertySymbols(g).filter(function(a){return Object.getOwnPropertyDescriptor(g,a).enumerable})));h.forEach(function(e){_defineProperty(a,e,g[e])})}return a}function _defineProperty(a,e,g){e in a?Object.defineProperty(a,e,{value:g,enumerable:!0,configurable:!0,writable:!0}):a[e]=g;return a}
2
+ function _defineProperties(a,e){for(var g=0;g<e.length;g++){var h=e[g];h.enumerable=h.enumerable||!1;h.configurable=!0;"value"in h&&(h.writable=!0);Object.defineProperty(a,h.key,h)}}function _createClass(a,e,g){e&&_defineProperties(a.prototype,e);g&&_defineProperties(a,g);return a}
3
+ var Modal=function(a){var e=a.fn.modal,g={backdrop:!0,keyboard:!0,focus:!0,show:!0},h={backdrop:"(boolean|string)",keyboard:"boolean",focus:"boolean",show:"boolean"},k=function(){function e(b,c){this._config=this._getConfig(c);this._element=b;this._dialog=a(b).find(".modal-dialog")[0];this._backdrop=null;this._ignoreBackdropClick=this._isBodyOverflowing=this._isShown=!1;this._scrollbarWidth=0}var f=e.prototype;f.toggle=function(a){return this._isShown?this.hide():this.show(a)};f.show=function(b){var c=
4
+ this;if(!this._isTransitioning&&!this._isShown){a(this._element).hasClass("fade")&&(this._isTransitioning=!0);var d=a.Event("show.bs.modal",{relatedTarget:b});a(this._element).trigger(d);this._isShown||d.isDefaultPrevented()||(this._isShown=!0,this._checkScrollbar(),this._setScrollbar(),this._adjustDialog(),a(document.body).addClass("modal-open"),this._setEscapeEvent(),this._setResizeEvent(),a(this._element).on("click.dismiss.bs.modal",'[data-dismiss="modal"]',function(a){return c.hide(a)}),a(this._dialog).on("mousedown.dismiss.bs.modal",
5
+ function(){a(c._element).one("mouseup.dismiss.bs.modal",function(b){a(b.target).is(c._element)&&(c._ignoreBackdropClick=!0)})}),this._showBackdrop(function(){return c._showElement(b)}))}};f.hide=function(b){var c=this;b&&b.preventDefault();if(!this._isTransitioning&&this._isShown&&(b=a.Event("hide.bs.modal"),a(this._element).trigger(b),this._isShown&&!b.isDefaultPrevented())){this._isShown=!1;if(b=a(this._element).hasClass("fade"))this._isTransitioning=!0;this._setEscapeEvent();this._setResizeEvent();
6
+ a(document).off("focusin.bs.modal");a(this._element).removeClass("show");a(this._element).off("click.dismiss.bs.modal");a(this._dialog).off("mousedown.dismiss.bs.modal");b?(b=Util.getTransitionDurationFromElement(this._element),a(this._element).one(Util.TRANSITION_END,function(a){return c._hideModal(a)}).emulateTransitionEnd(b)):this._hideModal()}};f.dispose=function(){a.removeData(this._element,"bs.modal");a(window,document,this._element,this._backdrop).off(".bs.modal");this._scrollbarWidth=this._ignoreBackdropClick=
7
+ this._isBodyOverflowing=this._isShown=this._backdrop=this._dialog=this._element=this._config=null};f.handleUpdate=function(){this._adjustDialog()};f._getConfig=function(a){a=_objectSpread({},g,a);Util.typeCheckConfig("modal",a,h);return a};f._showElement=function(b){var c=this,d=a(this._element).hasClass("fade");this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE||document.body.appendChild(this._element);this._element.style.display="block";this._element.removeAttribute("aria-hidden");
8
+ this._element.scrollTop=0;d&&Util.reflow(this._element);a(this._element).addClass("show");this._config.focus&&this._enforceFocus();var e=a.Event("shown.bs.modal",{relatedTarget:b});b=function(){c._config.focus&&c._element.focus();c._isTransitioning=!1;a(c._element).trigger(e)};d?(d=Util.getTransitionDurationFromElement(this._element),a(this._dialog).one(Util.TRANSITION_END,b).emulateTransitionEnd(d)):b()};f._enforceFocus=function(){var b=this;a(document).off("focusin.bs.modal").on("focusin.bs.modal",
9
+ function(c){document!==c.target&&b._element!==c.target&&0===a(b._element).has(c.target).length&&b._element.focus()})};f._setEscapeEvent=function(){var b=this;if(this._isShown&&this._config.keyboard)a(this._element).on("keydown.dismiss.bs.modal",function(a){27===a.which&&(a.preventDefault(),b.hide())});else this._isShown||a(this._element).off("keydown.dismiss.bs.modal")};f._setResizeEvent=function(){var b=this;if(this._isShown)a(window).on("resize.bs.modal",function(a){return b.handleUpdate(a)});else a(window).off("resize.bs.modal")};
10
+ f._hideModal=function(){var b=this;this._element.style.display="none";this._element.setAttribute("aria-hidden",!0);this._isTransitioning=!1;this._showBackdrop(function(){a(document.body).removeClass("modal-open");b._resetAdjustments();b._resetScrollbar();a(b._element).trigger("hidden.bs.modal")})};f._removeBackdrop=function(){this._backdrop&&(a(this._backdrop).remove(),this._backdrop=null)};f._showBackdrop=function(b){var c=this,d=a(this._element).hasClass("fade")?"fade":"";if(this._isShown&&this._config.backdrop)this._backdrop=
11
+ document.createElement("div"),this._backdrop.className="modal-backdrop",d&&a(this._backdrop).addClass(d),a(this._backdrop).appendTo(document.body),a(this._element).on("click.dismiss.bs.modal",function(a){c._ignoreBackdropClick?c._ignoreBackdropClick=!1:a.target===a.currentTarget&&("static"===c._config.backdrop?c._element.focus():c.hide())}),d&&Util.reflow(this._backdrop),a(this._backdrop).addClass("show"),b&&(d?(d=Util.getTransitionDurationFromElement(this._backdrop),a(this._backdrop).one(Util.TRANSITION_END,
12
+ b).emulateTransitionEnd(d)):b());else if(!this._isShown&&this._backdrop)if(a(this._backdrop).removeClass("show"),d=function(){c._removeBackdrop();b&&b()},a(this._element).hasClass("fade")){var e=Util.getTransitionDurationFromElement(this._backdrop);a(this._backdrop).one(Util.TRANSITION_END,d).emulateTransitionEnd(e)}else d();else b&&b()};f._adjustDialog=function(){var a=this._element.scrollHeight>document.documentElement.clientHeight;!this._isBodyOverflowing&&a&&(this._element.style.paddingLeft=this._scrollbarWidth+
13
+ "px");this._isBodyOverflowing&&!a&&(this._element.style.paddingRight=this._scrollbarWidth+"px")};f._resetAdjustments=function(){this._element.style.paddingLeft="";this._element.style.paddingRight=""};f._checkScrollbar=function(){var a=document.body.getBoundingClientRect();this._isBodyOverflowing=a.left+a.right<window.innerWidth;this._scrollbarWidth=this._getScrollbarWidth()};f._setScrollbar=function(){var b=this;if(this._isBodyOverflowing){a(".fixed-top, .fixed-bottom, .is-fixed, .sticky-top").each(function(c,
14
+ d){var e=a(d)[0].style.paddingRight,f=a(d).css("padding-right");a(d).data("padding-right",e).css("padding-right",parseFloat(f)+b._scrollbarWidth+"px")});a(".sticky-top").each(function(c,d){var e=a(d)[0].style.marginRight,f=a(d).css("margin-right");a(d).data("margin-right",e).css("margin-right",parseFloat(f)-b._scrollbarWidth+"px")});a(".navbar-toggler").each(function(d,c){var e=a(c)[0].style.marginRight,f=a(c).css("margin-right");a(c).data("margin-right",e).css("margin-right",parseFloat(f)+b._scrollbarWidth+
15
+ "px")});var c=document.body.style.paddingRight,d=a(document.body).css("padding-right");a(document.body).data("padding-right",c).css("padding-right",parseFloat(d)+this._scrollbarWidth+"px")}};f._resetScrollbar=function(){a(".fixed-top, .fixed-bottom, .is-fixed, .sticky-top").each(function(b,d){var c=a(d).data("padding-right");"undefined"!==typeof c&&a(d).css("padding-right",c).removeData("padding-right")});a(".sticky-top, .navbar-toggler").each(function(b,d){var c=a(d).data("margin-right");"undefined"!==
16
+ typeof c&&a(d).css("margin-right",c).removeData("margin-right")});var b=a(document.body).data("padding-right");"undefined"!==typeof b&&a(document.body).css("padding-right",b).removeData("padding-right")};f._getScrollbarWidth=function(){var a=document.createElement("div");a.className="modal-scrollbar-measure";document.body.appendChild(a);var c=a.getBoundingClientRect().width-a.clientWidth;document.body.removeChild(a);return c};e._jQueryInterface=function(b,c){return this.each(function(){var d=a(this).data("bs.modal"),
17
+ f=_objectSpread({},g,a(this).data(),"object"===typeof b&&b?b:{});d||(d=new e(this,f),a(this).data("bs.modal",d));if("string"===typeof b){if("undefined"===typeof d[b])throw new TypeError('No method named "'+b+'"');d[b](c)}else f.show&&d.show(c)})};_createClass(e,null,[{key:"VERSION",get:function(){return"4.1.1"}},{key:"Default",get:function(){return g}}]);return e}();a(document).on("click.bs.modal.data-api",'[data-toggle="modal"]',function(e){var f=this,b,c=Util.getSelectorFromElement(this);c&&(b=
18
+ a(c)[0]);c=a(b).data("bs.modal")?"toggle":_objectSpread({},a(b).data(),a(this).data());"A"!==this.tagName&&"AREA"!==this.tagName||e.preventDefault();var d=a(b).one("show.bs.modal",function(b){if(!b.isDefaultPrevented())d.one("hidden.bs.modal",function(){a(f).is(":visible")&&f.focus()})});k._jQueryInterface.call(a(b),c,this)});a.fn.modal=k._jQueryInterface;a.fn.modal.Constructor=k;a.fn.modal.noConflict=function(){a.fn.modal=e;return k._jQueryInterface};return k}(jQuery);
admin/assets/js/bootstrap/popover.js ADDED
@@ -0,0 +1,205 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
2
+
3
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
4
+
5
+ function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }
6
+
7
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }
8
+
9
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
10
+
11
+ /**
12
+ * --------------------------------------------------------------------------
13
+ * Bootstrap (v4.1.1): popover.js
14
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
15
+ * --------------------------------------------------------------------------
16
+ */
17
+ var Popover = function ($) {
18
+ /**
19
+ * ------------------------------------------------------------------------
20
+ * Constants
21
+ * ------------------------------------------------------------------------
22
+ */
23
+ var NAME = 'popover';
24
+ var VERSION = '4.1.1';
25
+ var DATA_KEY = 'bs.popover';
26
+ var EVENT_KEY = "." + DATA_KEY;
27
+ var JQUERY_NO_CONFLICT = $.fn[NAME];
28
+ var CLASS_PREFIX = 'bs-popover';
29
+ var BSCLS_PREFIX_REGEX = new RegExp("(^|\\s)" + CLASS_PREFIX + "\\S+", 'g');
30
+
31
+ var Default = _objectSpread({}, Tooltip.Default, {
32
+ placement: 'right',
33
+ trigger: 'click',
34
+ content: '',
35
+ template: '<div class="popover" role="tooltip">' + '<div class="arrow"></div>' + '<h3 class="popover-header"></h3>' + '<div class="popover-body"></div></div>'
36
+ });
37
+
38
+ var DefaultType = _objectSpread({}, Tooltip.DefaultType, {
39
+ content: '(string|element|function)'
40
+ });
41
+
42
+ var ClassName = {
43
+ FADE: 'fade',
44
+ SHOW: 'show'
45
+ };
46
+ var Selector = {
47
+ TITLE: '.popover-header',
48
+ CONTENT: '.popover-body'
49
+ };
50
+ var Event = {
51
+ HIDE: "hide" + EVENT_KEY,
52
+ HIDDEN: "hidden" + EVENT_KEY,
53
+ SHOW: "show" + EVENT_KEY,
54
+ SHOWN: "shown" + EVENT_KEY,
55
+ INSERTED: "inserted" + EVENT_KEY,
56
+ CLICK: "click" + EVENT_KEY,
57
+ FOCUSIN: "focusin" + EVENT_KEY,
58
+ FOCUSOUT: "focusout" + EVENT_KEY,
59
+ MOUSEENTER: "mouseenter" + EVENT_KEY,
60
+ MOUSELEAVE: "mouseleave" + EVENT_KEY
61
+ /**
62
+ * ------------------------------------------------------------------------
63
+ * Class Definition
64
+ * ------------------------------------------------------------------------
65
+ */
66
+
67
+ };
68
+
69
+ var Popover =
70
+ /*#__PURE__*/
71
+ function (_Tooltip) {
72
+ _inheritsLoose(Popover, _Tooltip);
73
+
74
+ function Popover() {
75
+ return _Tooltip.apply(this, arguments) || this;
76
+ }
77
+
78
+ var _proto = Popover.prototype;
79
+
80
+ // Overrides
81
+ _proto.isWithContent = function isWithContent() {
82
+ return this.getTitle() || this._getContent();
83
+ };
84
+
85
+ _proto.addAttachmentClass = function addAttachmentClass(attachment) {
86
+ $(this.getTipElement()).addClass(CLASS_PREFIX + "-" + attachment);
87
+ };
88
+
89
+ _proto.getTipElement = function getTipElement() {
90
+ this.tip = this.tip || $(this.config.template)[0];
91
+ return this.tip;
92
+ };
93
+
94
+ _proto.setContent = function setContent() {
95
+ var $tip = $(this.getTipElement()); // We use append for html objects to maintain js events
96
+
97
+ this.setElementContent($tip.find(Selector.TITLE), this.getTitle());
98
+
99
+ var content = this._getContent();
100
+
101
+ if (typeof content === 'function') {
102
+ content = content.call(this.element);
103
+ }
104
+
105
+ this.setElementContent($tip.find(Selector.CONTENT), content);
106
+ $tip.removeClass(ClassName.FADE + " " + ClassName.SHOW);
107
+ }; // Private
108
+
109
+
110
+ _proto._getContent = function _getContent() {
111
+ return this.element.getAttribute('data-content') || this.config.content;
112
+ };
113
+
114
+ _proto._cleanTipClass = function _cleanTipClass() {
115
+ var $tip = $(this.getTipElement());
116
+ var tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX);
117
+
118
+ if (tabClass !== null && tabClass.length > 0) {
119
+ $tip.removeClass(tabClass.join(''));
120
+ }
121
+ }; // Static
122
+
123
+
124
+ Popover._jQueryInterface = function _jQueryInterface(config) {
125
+ return this.each(function () {
126
+ var data = $(this).data(DATA_KEY);
127
+
128
+ var _config = typeof config === 'object' ? config : null;
129
+
130
+ if (!data && /destroy|hide/.test(config)) {
131
+ return;
132
+ }
133
+
134
+ if (!data) {
135
+ data = new Popover(this, _config);
136
+ $(this).data(DATA_KEY, data);
137
+ }
138
+
139
+ if (typeof config === 'string') {
140
+ if (typeof data[config] === 'undefined') {
141
+ throw new TypeError("No method named \"" + config + "\"");
142
+ }
143
+
144
+ data[config]();
145
+ }
146
+ });
147
+ };
148
+
149
+ _createClass(Popover, null, [{
150
+ key: "VERSION",
151
+ // Getters
152
+ get: function get() {
153
+ return VERSION;
154
+ }
155
+ }, {
156
+ key: "Default",
157
+ get: function get() {
158
+ return Default;
159
+ }
160
+ }, {
161
+ key: "NAME",
162
+ get: function get() {
163
+ return NAME;
164
+ }
165
+ }, {
166
+ key: "DATA_KEY",
167
+ get: function get() {
168
+ return DATA_KEY;
169
+ }
170
+ }, {
171
+ key: "Event",
172
+ get: function get() {
173
+ return Event;
174
+ }
175
+ }, {
176
+ key: "EVENT_KEY",
177
+ get: function get() {
178
+ return EVENT_KEY;
179
+ }
180
+ }, {
181
+ key: "DefaultType",
182
+ get: function get() {
183
+ return DefaultType;
184
+ }
185
+ }]);
186
+
187
+ return Popover;
188
+ }(Tooltip);
189
+ /**
190
+ * ------------------------------------------------------------------------
191
+ * jQuery
192
+ * ------------------------------------------------------------------------
193
+ */
194
+
195
+
196
+ $.fn[NAME] = Popover._jQueryInterface;
197
+ $.fn[NAME].Constructor = Popover;
198
+
199
+ $.fn[NAME].noConflict = function () {
200
+ $.fn[NAME] = JQUERY_NO_CONFLICT;
201
+ return Popover._jQueryInterface;
202
+ };
203
+
204
+ return Popover;
205
+ }(jQuery);
admin/assets/js/bootstrap/popover.min.js ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
1
+ function _defineProperties(b,a){for(var c=0;c<a.length;c++){var d=a[c];d.enumerable=d.enumerable||!1;d.configurable=!0;"value"in d&&(d.writable=!0);Object.defineProperty(b,d.key,d)}}function _createClass(b,a,c){a&&_defineProperties(b.prototype,a);c&&_defineProperties(b,c);return b}function _inheritsLoose(b,a){b.prototype=Object.create(a.prototype);b.prototype.constructor=b;b.__proto__=a}
2
+ function _objectSpread(b){for(var a=1;a<arguments.length;a++){var c=null!=arguments[a]?arguments[a]:{},d=Object.keys(c);"function"===typeof Object.getOwnPropertySymbols&&(d=d.concat(Object.getOwnPropertySymbols(c).filter(function(b){return Object.getOwnPropertyDescriptor(c,b).enumerable})));d.forEach(function(a){_defineProperty(b,a,c[a])})}return b}function _defineProperty(b,a,c){a in b?Object.defineProperty(b,a,{value:c,enumerable:!0,configurable:!0,writable:!0}):b[a]=c;return b}
3
+ var Popover=function(b){var a=b.fn.popover,c=RegExp("(^|\\s)bs-popover\\S+","g"),d=_objectSpread({},Tooltip.Default,{placement:"right",trigger:"click",content:"",template:'<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>'}),h=_objectSpread({},Tooltip.DefaultType,{content:"(string|element|function)"}),k={HIDE:"hide.bs.popover",HIDDEN:"hidden.bs.popover",SHOW:"show.bs.popover",SHOWN:"shown.bs.popover",INSERTED:"inserted.bs.popover",
4
+ CLICK:"click.bs.popover",FOCUSIN:"focusin.bs.popover",FOCUSOUT:"focusout.bs.popover",MOUSEENTER:"mouseenter.bs.popover",MOUSELEAVE:"mouseleave.bs.popover"},g=function(a){function e(){return a.apply(this,arguments)||this}_inheritsLoose(e,a);var f=e.prototype;f.isWithContent=function(){return this.getTitle()||this._getContent()};f.addAttachmentClass=function(a){b(this.getTipElement()).addClass("bs-popover-"+a)};f.getTipElement=function(){return this.tip=this.tip||b(this.config.template)[0]};f.setContent=
5
+ function(){var a=b(this.getTipElement());this.setElementContent(a.find(".popover-header"),this.getTitle());var c=this._getContent();"function"===typeof c&&(c=c.call(this.element));this.setElementContent(a.find(".popover-body"),c);a.removeClass("fade show")};f._getContent=function(){return this.element.getAttribute("data-content")||this.config.content};f._cleanTipClass=function(){var a=b(this.getTipElement()),d=a.attr("class").match(c);null!==d&&0<d.length&&a.removeClass(d.join(""))};e._jQueryInterface=
6
+ function(a){return this.each(function(){var c=b(this).data("bs.popover"),d="object"===typeof a?a:null;if(c||!/destroy|hide/.test(a))if(c||(c=new e(this,d),b(this).data("bs.popover",c)),"string"===typeof a){if("undefined"===typeof c[a])throw new TypeError('No method named "'+a+'"');c[a]()}})};_createClass(e,null,[{key:"VERSION",get:function(){return"4.1.1"}},{key:"Default",get:function(){return d}},{key:"NAME",get:function(){return"popover"}},{key:"DATA_KEY",get:function(){return"bs.popover"}},{key:"Event",
7
+ get:function(){return k}},{key:"EVENT_KEY",get:function(){return".bs.popover"}},{key:"DefaultType",get:function(){return h}}]);return e}(Tooltip);b.fn.popover=g._jQueryInterface;b.fn.popover.Constructor=g;b.fn.popover.noConflict=function(){b.fn.popover=a;return g._jQueryInterface};return g}(jQuery);
admin/assets/js/bootstrap/popper.min.js ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
1
+ /*
2
+ Copyright (C) Federico Zivolo 2018
3
+ Distributed under the MIT License (license terms are at http://opensource.org/licenses/MIT).
4
+ */(function(e,t){'object'==typeof exports&&'undefined'!=typeof module?module.exports=t():'function'==typeof define&&define.amd?define(t):e.Popper=t()})(this,function(){'use strict';function e(e){return e&&'[object Function]'==={}.toString.call(e)}function t(e,t){if(1!==e.nodeType)return[];var o=getComputedStyle(e,null);return t?o[t]:o}function o(e){return'HTML'===e.nodeName?e:e.parentNode||e.host}function n(e){if(!e)return document.body;switch(e.nodeName){case'HTML':case'BODY':return e.ownerDocument.body;case'#document':return e.body;}var i=t(e),r=i.overflow,p=i.overflowX,s=i.overflowY;return /(auto|scroll|overlay)/.test(r+s+p)?e:n(o(e))}function r(e){return 11===e?re:10===e?pe:re||pe}function p(e){if(!e)return document.documentElement;for(var o=r(10)?document.body:null,n=e.offsetParent;n===o&&e.nextElementSibling;)n=(e=e.nextElementSibling).offsetParent;var i=n&&n.nodeName;return i&&'BODY'!==i&&'HTML'!==i?-1!==['TD','TABLE'].indexOf(n.nodeName)&&'static'===t(n,'position')?p(n):n:e?e.ownerDocument.documentElement:document.documentElement}function s(e){var t=e.nodeName;return'BODY'!==t&&('HTML'===t||p(e.firstElementChild)===e)}function d(e){return null===e.parentNode?e:d(e.parentNode)}function a(e,t){if(!e||!e.nodeType||!t||!t.nodeType)return document.documentElement;var o=e.compareDocumentPosition(t)&Node.DOCUMENT_POSITION_FOLLOWING,n=o?e:t,i=o?t:e,r=document.createRange();r.setStart(n,0),r.setEnd(i,0);var l=r.commonAncestorContainer;if(e!==l&&t!==l||n.contains(i))return s(l)?l:p(l);var f=d(e);return f.host?a(f.host,t):a(e,d(t).host)}function l(e){var t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:'top',o='top'===t?'scrollTop':'scrollLeft',n=e.nodeName;if('BODY'===n||'HTML'===n){var i=e.ownerDocument.documentElement,r=e.ownerDocument.scrollingElement||i;return r[o]}return e[o]}function f(e,t){var o=2<arguments.length&&void 0!==arguments[2]&&arguments[2],n=l(t,'top'),i=l(t,'left'),r=o?-1:1;return e.top+=n*r,e.bottom+=n*r,e.left+=i*r,e.right+=i*r,e}function m(e,t){var o='x'===t?'Left':'Top',n='Left'==o?'Right':'Bottom';return parseFloat(e['border'+o+'Width'],10)+parseFloat(e['border'+n+'Width'],10)}function h(e,t,o,n){return $(t['offset'+e],t['scroll'+e],o['client'+e],o['offset'+e],o['scroll'+e],r(10)?o['offset'+e]+n['margin'+('Height'===e?'Top':'Left')]+n['margin'+('Height'===e?'Bottom':'Right')]:0)}function c(){var e=document.body,t=document.documentElement,o=r(10)&&getComputedStyle(t);return{height:h('Height',e,t,o),width:h('Width',e,t,o)}}function g(e){return le({},e,{right:e.left+e.width,bottom:e.top+e.height})}function u(e){var o={};try{if(r(10)){o=e.getBoundingClientRect();var n=l(e,'top'),i=l(e,'left');o.top+=n,o.left+=i,o.bottom+=n,o.right+=i}else o=e.getBoundingClientRect()}catch(t){}var p={left:o.left,top:o.top,width:o.right-o.left,height:o.bottom-o.top},s='HTML'===e.nodeName?c():{},d=s.width||e.clientWidth||p.right-p.left,a=s.height||e.clientHeight||p.bottom-p.top,f=e.offsetWidth-d,h=e.offsetHeight-a;if(f||h){var u=t(e);f-=m(u,'x'),h-=m(u,'y'),p.width-=f,p.height-=h}return g(p)}function b(e,o){var i=2<arguments.length&&void 0!==arguments[2]&&arguments[2],p=r(10),s='HTML'===o.nodeName,d=u(e),a=u(o),l=n(e),m=t(o),h=parseFloat(m.borderTopWidth,10),c=parseFloat(m.borderLeftWidth,10);i&&'HTML'===o.nodeName&&(a.top=$(a.top,0),a.left=$(a.left,0));var b=g({top:d.top-a.top-h,left:d.left-a.left-c,width:d.width,height:d.height});if(b.marginTop=0,b.marginLeft=0,!p&&s){var y=parseFloat(m.marginTop,10),w=parseFloat(m.marginLeft,10);b.top-=h-y,b.bottom-=h-y,b.left-=c-w,b.right-=c-w,b.marginTop=y,b.marginLeft=w}return(p&&!i?o.contains(l):o===l&&'BODY'!==l.nodeName)&&(b=f(b,o)),b}function y(e){var t=1<arguments.length&&void 0!==arguments[1]&&arguments[1],o=e.ownerDocument.documentElement,n=b(e,o),i=$(o.clientWidth,window.innerWidth||0),r=$(o.clientHeight,window.innerHeight||0),p=t?0:l(o),s=t?0:l(o,'left'),d={top:p-n.top+n.marginTop,left:s-n.left+n.marginLeft,width:i,height:r};return g(d)}function w(e){var n=e.nodeName;return'BODY'===n||'HTML'===n?!1:'fixed'===t(e,'position')||w(o(e))}function E(e){if(!e||!e.parentElement||r())return document.documentElement;for(var o=e.parentElement;o&&'none'===t(o,'transform');)o=o.parentElement;return o||document.documentElement}function v(e,t,i,r){var p=4<arguments.length&&void 0!==arguments[4]&&arguments[4],s={top:0,left:0},d=p?E(e):a(e,t);if('viewport'===r)s=y(d,p);else{var l;'scrollParent'===r?(l=n(o(t)),'BODY'===l.nodeName&&(l=e.ownerDocument.documentElement)):'window'===r?l=e.ownerDocument.documentElement:l=r;var f=b(l,d,p);if('HTML'===l.nodeName&&!w(d)){var m=c(),h=m.height,g=m.width;s.top+=f.top-f.marginTop,s.bottom=h+f.top,s.left+=f.left-f.marginLeft,s.right=g+f.left}else s=f}return s.left+=i,s.top+=i,s.right-=i,s.bottom-=i,s}function x(e){var t=e.width,o=e.height;return t*o}function O(e,t,o,n,i){var r=5<arguments.length&&void 0!==arguments[5]?arguments[5]:0;if(-1===e.indexOf('auto'))return e;var p=v(o,n,r,i),s={top:{width:p.width,height:t.top-p.top},right:{width:p.right-t.right,height:p.height},bottom:{width:p.width,height:p.bottom-t.bottom},left:{width:t.left-p.left,height:p.height}},d=Object.keys(s).map(function(e){return le({key:e},s[e],{area:x(s[e])})}).sort(function(e,t){return t.area-e.area}),a=d.filter(function(e){var t=e.width,n=e.height;return t>=o.clientWidth&&n>=o.clientHeight}),l=0<a.length?a[0].key:d[0].key,f=e.split('-')[1];return l+(f?'-'+f:'')}function L(e,t,o){var n=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null,i=n?E(t):a(t,o);return b(o,i,n)}function S(e){var t=getComputedStyle(e),o=parseFloat(t.marginTop)+parseFloat(t.marginBottom),n=parseFloat(t.marginLeft)+parseFloat(t.marginRight),i={width:e.offsetWidth+n,height:e.offsetHeight+o};return i}function T(e){var t={left:'right',right:'left',bottom:'top',top:'bottom'};return e.replace(/left|right|bottom|top/g,function(e){return t[e]})}function C(e,t,o){o=o.split('-')[0];var n=S(e),i={width:n.width,height:n.height},r=-1!==['right','left'].indexOf(o),p=r?'top':'left',s=r?'left':'top',d=r?'height':'width',a=r?'width':'height';return i[p]=t[p]+t[d]/2-n[d]/2,i[s]=o===s?t[s]-n[a]:t[T(s)],i}function D(e,t){return Array.prototype.find?e.find(t):e.filter(t)[0]}function N(e,t,o){if(Array.prototype.findIndex)return e.findIndex(function(e){return e[t]===o});var n=D(e,function(e){return e[t]===o});return e.indexOf(n)}function P(t,o,n){var i=void 0===n?t:t.slice(0,N(t,'name',n));return i.forEach(function(t){t['function']&&console.warn('`modifier.function` is deprecated, use `modifier.fn`!');var n=t['function']||t.fn;t.enabled&&e(n)&&(o.offsets.popper=g(o.offsets.popper),o.offsets.reference=g(o.offsets.reference),o=n(o,t))}),o}function k(){if(!this.state.isDestroyed){var e={instance:this,styles:{},arrowStyles:{},attributes:{},flipped:!1,offsets:{}};e.offsets.reference=L(this.state,this.popper,this.reference,this.options.positionFixed),e.placement=O(this.options.placement,e.offsets.reference,this.popper,this.reference,this.options.modifiers.flip.boundariesElement,this.options.modifiers.flip.padding),e.originalPlacement=e.placement,e.positionFixed=this.options.positionFixed,e.offsets.popper=C(this.popper,e.offsets.reference,e.placement),e.offsets.popper.position=this.options.positionFixed?'fixed':'absolute',e=P(this.modifiers,e),this.state.isCreated?this.options.onUpdate(e):(this.state.isCreated=!0,this.options.onCreate(e))}}function W(e,t){return e.some(function(e){var o=e.name,n=e.enabled;return n&&o===t})}function B(e){for(var t=[!1,'ms','Webkit','Moz','O'],o=e.charAt(0).toUpperCase()+e.slice(1),n=0;n<t.length;n++){var i=t[n],r=i?''+i+o:e;if('undefined'!=typeof document.body.style[r])return r}return null}function H(){return this.state.isDestroyed=!0,W(this.modifiers,'applyStyle')&&(this.popper.removeAttribute('x-placement'),this.popper.style.position='',this.popper.style.top='',this.popper.style.left='',this.popper.style.right='',this.popper.style.bottom='',this.popper.style.willChange='',this.popper.style[B('transform')]=''),this.disableEventListeners(),this.options.removeOnDestroy&&this.popper.parentNode.removeChild(this.popper),this}function A(e){var t=e.ownerDocument;return t?t.defaultView:window}function M(e,t,o,i){var r='BODY'===e.nodeName,p=r?e.ownerDocument.defaultView:e;p.addEventListener(t,o,{passive:!0}),r||M(n(p.parentNode),t,o,i),i.push(p)}function I(e,t,o,i){o.updateBound=i,A(e).addEventListener('resize',o.updateBound,{passive:!0});var r=n(e);return M(r,'scroll',o.updateBound,o.scrollParents),o.scrollElement=r,o.eventsEnabled=!0,o}function F(){this.state.eventsEnabled||(this.state=I(this.reference,this.options,this.state,this.scheduleUpdate))}function R(e,t){return A(e).removeEventListener('resize',t.updateBound),t.scrollParents.forEach(function(e){e.removeEventListener('scroll',t.updateBound)}),t.updateBound=null,t.scrollParents=[],t.scrollElement=null,t.eventsEnabled=!1,t}function U(){this.state.eventsEnabled&&(cancelAnimationFrame(this.scheduleUpdate),this.state=R(this.reference,this.state))}function Y(e){return''!==e&&!isNaN(parseFloat(e))&&isFinite(e)}function j(e,t){Object.keys(t).forEach(function(o){var n='';-1!==['width','height','top','right','bottom','left'].indexOf(o)&&Y(t[o])&&(n='px'),e.style[o]=t[o]+n})}function K(e,t){Object.keys(t).forEach(function(o){var n=t[o];!1===n?e.removeAttribute(o):e.setAttribute(o,t[o])})}function q(e,t,o){var n=D(e,function(e){var o=e.name;return o===t}),i=!!n&&e.some(function(e){return e.name===o&&e.enabled&&e.order<n.order});if(!i){var r='`'+t+'`';console.warn('`'+o+'`'+' modifier is required by '+r+' modifier in order to work, be sure to include it before '+r+'!')}return i}function G(e){return'end'===e?'start':'start'===e?'end':e}function z(e){var t=1<arguments.length&&void 0!==arguments[1]&&arguments[1],o=me.indexOf(e),n=me.slice(o+1).concat(me.slice(0,o));return t?n.reverse():n}function V(e,t,o,n){var i=e.match(/((?:\-|\+)?\d*\.?\d*)(.*)/),r=+i[1],p=i[2];if(!r)return e;if(0===p.indexOf('%')){var s;switch(p){case'%p':s=o;break;case'%':case'%r':default:s=n;}var d=g(s);return d[t]/100*r}if('vh'===p||'vw'===p){var a;return a='vh'===p?$(document.documentElement.clientHeight,window.innerHeight||0):$(document.documentElement.clientWidth,window.innerWidth||0),a/100*r}return r}function _(e,t,o,n){var i=[0,0],r=-1!==['right','left'].indexOf(n),p=e.split(/(\+|\-)/).map(function(e){return e.trim()}),s=p.indexOf(D(p,function(e){return-1!==e.search(/,|\s/)}));p[s]&&-1===p[s].indexOf(',')&&console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');var d=/\s*,\s*|\s+/,a=-1===s?[p]:[p.slice(0,s).concat([p[s].split(d)[0]]),[p[s].split(d)[1]].concat(p.slice(s+1))];return a=a.map(function(e,n){var i=(1===n?!r:r)?'height':'width',p=!1;return e.reduce(function(e,t){return''===e[e.length-1]&&-1!==['+','-'].indexOf(t)?(e[e.length-1]=t,p=!0,e):p?(e[e.length-1]+=t,p=!1,e):e.concat(t)},[]).map(function(e){return V(e,i,t,o)})}),a.forEach(function(e,t){e.forEach(function(o,n){Y(o)&&(i[t]+=o*('-'===e[n-1]?-1:1))})}),i}function X(e,t){var o,n=t.offset,i=e.placement,r=e.offsets,p=r.popper,s=r.reference,d=i.split('-')[0];return o=Y(+n)?[+n,0]:_(n,p,s,d),'left'===d?(p.top+=o[0],p.left-=o[1]):'right'===d?(p.top+=o[0],p.left+=o[1]):'top'===d?(p.left+=o[0],p.top-=o[1]):'bottom'===d&&(p.left+=o[0],p.top+=o[1]),e.popper=p,e}for(var J=Math.min,Q=Math.round,Z=Math.floor,$=Math.max,ee='undefined'!=typeof window&&'undefined'!=typeof document,te=['Edge','Trident','Firefox'],oe=0,ne=0;ne<te.length;ne+=1)if(ee&&0<=navigator.userAgent.indexOf(te[ne])){oe=1;break}var i=ee&&window.Promise,ie=i?function(e){var t=!1;return function(){t||(t=!0,window.Promise.resolve().then(function(){t=!1,e()}))}}:function(e){var t=!1;return function(){t||(t=!0,setTimeout(function(){t=!1,e()},oe))}},re=ee&&!!(window.MSInputMethodContext&&document.documentMode),pe=ee&&/MSIE 10/.test(navigator.userAgent),se=function(e,t){if(!(e instanceof t))throw new TypeError('Cannot call a class as a function')},de=function(){function e(e,t){for(var o,n=0;n<t.length;n++)o=t[n],o.enumerable=o.enumerable||!1,o.configurable=!0,'value'in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}return function(t,o,n){return o&&e(t.prototype,o),n&&e(t,n),t}}(),ae=function(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e},le=Object.assign||function(e){for(var t,o=1;o<arguments.length;o++)for(var n in t=arguments[o],t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e},fe=['auto-start','auto','auto-end','top-start','top','top-end','right-start','right','right-end','bottom-end','bottom','bottom-start','left-end','left','left-start'],me=fe.slice(3),he={FLIP:'flip',CLOCKWISE:'clockwise',COUNTERCLOCKWISE:'counterclockwise'},ce=function(){function t(o,n){var i=this,r=2<arguments.length&&void 0!==arguments[2]?arguments[2]:{};se(this,t),this.scheduleUpdate=function(){return requestAnimationFrame(i.update)},this.update=ie(this.update.bind(this)),this.options=le({},t.Defaults,r),this.state={isDestroyed:!1,isCreated:!1,scrollParents:[]},this.reference=o&&o.jquery?o[0]:o,this.popper=n&&n.jquery?n[0]:n,this.options.modifiers={},Object.keys(le({},t.Defaults.modifiers,r.modifiers)).forEach(function(e){i.options.modifiers[e]=le({},t.Defaults.modifiers[e]||{},r.modifiers?r.modifiers[e]:{})}),this.modifiers=Object.keys(this.options.modifiers).map(function(e){return le({name:e},i.options.modifiers[e])}).sort(function(e,t){return e.order-t.order}),this.modifiers.forEach(function(t){t.enabled&&e(t.onLoad)&&t.onLoad(i.reference,i.popper,i.options,t,i.state)}),this.update();var p=this.options.eventsEnabled;p&&this.enableEventListeners(),this.state.eventsEnabled=p}return de(t,[{key:'update',value:function(){return k.call(this)}},{key:'destroy',value:function(){return H.call(this)}},{key:'enableEventListeners',value:function(){return F.call(this)}},{key:'disableEventListeners',value:function(){return U.call(this)}}]),t}();return ce.Utils=('undefined'==typeof window?global:window).PopperUtils,ce.placements=fe,ce.Defaults={placement:'bottom',positionFixed:!1,eventsEnabled:!0,removeOnDestroy:!1,onCreate:function(){},onUpdate:function(){},modifiers:{shift:{order:100,enabled:!0,fn:function(e){var t=e.placement,o=t.split('-')[0],n=t.split('-')[1];if(n){var i=e.offsets,r=i.reference,p=i.popper,s=-1!==['bottom','top'].indexOf(o),d=s?'left':'top',a=s?'width':'height',l={start:ae({},d,r[d]),end:ae({},d,r[d]+r[a]-p[a])};e.offsets.popper=le({},p,l[n])}return e}},offset:{order:200,enabled:!0,fn:X,offset:0},preventOverflow:{order:300,enabled:!0,fn:function(e,t){var o=t.boundariesElement||p(e.instance.popper);e.instance.reference===o&&(o=p(o));var n=B('transform'),i=e.instance.popper.style,r=i.top,s=i.left,d=i[n];i.top='',i.left='',i[n]='';var a=v(e.instance.popper,e.instance.reference,t.padding,o,e.positionFixed);i.top=r,i.left=s,i[n]=d,t.boundaries=a;var l=t.priority,f=e.offsets.popper,m={primary:function(e){var o=f[e];return f[e]<a[e]&&!t.escapeWithReference&&(o=$(f[e],a[e])),ae({},e,o)},secondary:function(e){var o='right'===e?'left':'top',n=f[o];return f[e]>a[e]&&!t.escapeWithReference&&(n=J(f[o],a[e]-('right'===e?f.width:f.height))),ae({},o,n)}};return l.forEach(function(e){var t=-1===['left','top'].indexOf(e)?'secondary':'primary';f=le({},f,m[t](e))}),e.offsets.popper=f,e},priority:['left','right','top','bottom'],padding:5,boundariesElement:'scrollParent'},keepTogether:{order:400,enabled:!0,fn:function(e){var t=e.offsets,o=t.popper,n=t.reference,i=e.placement.split('-')[0],r=Z,p=-1!==['top','bottom'].indexOf(i),s=p?'right':'bottom',d=p?'left':'top',a=p?'width':'height';return o[s]<r(n[d])&&(e.offsets.popper[d]=r(n[d])-o[a]),o[d]>r(n[s])&&(e.offsets.popper[d]=r(n[s])),e}},arrow:{order:500,enabled:!0,fn:function(e,o){var n;if(!q(e.instance.modifiers,'arrow','keepTogether'))return e;var i=o.element;if('string'==typeof i){if(i=e.instance.popper.querySelector(i),!i)return e;}else if(!e.instance.popper.contains(i))return console.warn('WARNING: `arrow.element` must be child of its popper element!'),e;var r=e.placement.split('-')[0],p=e.offsets,s=p.popper,d=p.reference,a=-1!==['left','right'].indexOf(r),l=a?'height':'width',f=a?'Top':'Left',m=f.toLowerCase(),h=a?'left':'top',c=a?'bottom':'right',u=S(i)[l];d[c]-u<s[m]&&(e.offsets.popper[m]-=s[m]-(d[c]-u)),d[m]+u>s[c]&&(e.offsets.popper[m]+=d[m]+u-s[c]),e.offsets.popper=g(e.offsets.popper);var b=d[m]+d[l]/2-u/2,y=t(e.instance.popper),w=parseFloat(y['margin'+f],10),E=parseFloat(y['border'+f+'Width'],10),v=b-e.offsets.popper[m]-w-E;return v=$(J(s[l]-u,v),0),e.arrowElement=i,e.offsets.arrow=(n={},ae(n,m,Q(v)),ae(n,h,''),n),e},element:'[x-arrow]'},flip:{order:600,enabled:!0,fn:function(e,t){if(W(e.instance.modifiers,'inner'))return e;if(e.flipped&&e.placement===e.originalPlacement)return e;var o=v(e.instance.popper,e.instance.reference,t.padding,t.boundariesElement,e.positionFixed),n=e.placement.split('-')[0],i=T(n),r=e.placement.split('-')[1]||'',p=[];switch(t.behavior){case he.FLIP:p=[n,i];break;case he.CLOCKWISE:p=z(n);break;case he.COUNTERCLOCKWISE:p=z(n,!0);break;default:p=t.behavior;}return p.forEach(function(s,d){if(n!==s||p.length===d+1)return e;n=e.placement.split('-')[0],i=T(n);var a=e.offsets.popper,l=e.offsets.reference,f=Z,m='left'===n&&f(a.right)>f(l.left)||'right'===n&&f(a.left)<f(l.right)||'top'===n&&f(a.bottom)>f(l.top)||'bottom'===n&&f(a.top)<f(l.bottom),h=f(a.left)<f(o.left),c=f(a.right)>f(o.right),g=f(a.top)<f(o.top),u=f(a.bottom)>f(o.bottom),b='left'===n&&h||'right'===n&&c||'top'===n&&g||'bottom'===n&&u,y=-1!==['top','bottom'].indexOf(n),w=!!t.flipVariations&&(y&&'start'===r&&h||y&&'end'===r&&c||!y&&'start'===r&&g||!y&&'end'===r&&u);(m||b||w)&&(e.flipped=!0,(m||b)&&(n=p[d+1]),w&&(r=G(r)),e.placement=n+(r?'-'+r:''),e.offsets.popper=le({},e.offsets.popper,C(e.instance.popper,e.offsets.reference,e.placement)),e=P(e.instance.modifiers,e,'flip'))}),e},behavior:'flip',padding:5,boundariesElement:'viewport'},inner:{order:700,enabled:!1,fn:function(e){var t=e.placement,o=t.split('-')[0],n=e.offsets,i=n.popper,r=n.reference,p=-1!==['left','right'].indexOf(o),s=-1===['top','left'].indexOf(o);return i[p?'left':'top']=r[o]-(s?i[p?'width':'height']:0),e.placement=T(t),e.offsets.popper=g(i),e}},hide:{order:800,enabled:!0,fn:function(e){if(!q(e.instance.modifiers,'hide','preventOverflow'))return e;var t=e.offsets.reference,o=D(e.instance.modifiers,function(e){return'preventOverflow'===e.name}).boundaries;if(t.bottom<o.top||t.left>o.right||t.top>o.bottom||t.right<o.left){if(!0===e.hide)return e;e.hide=!0,e.attributes['x-out-of-boundaries']=''}else{if(!1===e.hide)return e;e.hide=!1,e.attributes['x-out-of-boundaries']=!1}return e}},computeStyle:{order:850,enabled:!0,fn:function(e,t){var o=t.x,n=t.y,i=e.offsets.popper,r=D(e.instance.modifiers,function(e){return'applyStyle'===e.name}).gpuAcceleration;void 0!==r&&console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');var s,d,a=void 0===r?t.gpuAcceleration:r,l=p(e.instance.popper),f=u(l),m={position:i.position},h={left:Z(i.left),top:Q(i.top),bottom:Q(i.bottom),right:Z(i.right)},c='bottom'===o?'top':'bottom',g='right'===n?'left':'right',b=B('transform');if(d='bottom'==c?-f.height+h.bottom:h.top,s='right'==g?-f.width+h.right:h.left,a&&b)m[b]='translate3d('+s+'px, '+d+'px, 0)',m[c]=0,m[g]=0,m.willChange='transform';else{var y='bottom'==c?-1:1,w='right'==g?-1:1;m[c]=d*y,m[g]=s*w,m.willChange=c+', '+g}var E={"x-placement":e.placement};return e.attributes=le({},E,e.attributes),e.styles=le({},m,e.styles),e.arrowStyles=le({},e.offsets.arrow,e.arrowStyles),e},gpuAcceleration:!0,x:'bottom',y:'right'},applyStyle:{order:900,enabled:!0,fn:function(e){return j(e.instance.popper,e.styles),K(e.instance.popper,e.attributes),e.arrowElement&&Object.keys(e.arrowStyles).length&&j(e.arrowElement,e.arrowStyles),e},onLoad:function(e,t,o,n,i){var r=L(i,t,e,o.positionFixed),p=O(o.placement,r,t,e,o.modifiers.flip.boundariesElement,o.modifiers.flip.padding);return t.setAttribute('x-placement',p),j(t,{position:o.positionFixed?'fixed':'absolute'}),o},gpuAcceleration:void 0}}},ce});
5
+ //# sourceMappingURL=popper.min.js.map
admin/assets/js/bootstrap/tooltip.js ADDED
@@ -0,0 +1,673 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }
2
+
3
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
4
+
5
+ function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
6
+
7
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
8
+
9
+ /**
10
+ * --------------------------------------------------------------------------
11
+ * Bootstrap (v4.1.1): tooltip.js
12
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
13
+ * --------------------------------------------------------------------------
14
+ */
15
+ var Tooltip = function ($) {
16
+ /**
17
+ * ------------------------------------------------------------------------
18
+ * Constants
19
+ * ------------------------------------------------------------------------
20
+ */
21
+ var NAME = 'tooltip';
22
+ var VERSION = '4.1.1';
23
+ var DATA_KEY = 'bs.tooltip';
24
+ var EVENT_KEY = "." + DATA_KEY;
25
+ var JQUERY_NO_CONFLICT = $.fn[NAME];
26
+ var CLASS_PREFIX = 'bs-tooltip';
27
+ var BSCLS_PREFIX_REGEX = new RegExp("(^|\\s)" + CLASS_PREFIX + "\\S+", 'g');
28
+ var DefaultType = {
29
+ animation: 'boolean',
30
+ template: 'string',
31
+ title: '(string|element|function)',
32
+ trigger: 'string',
33
+ delay: '(number|object)',
34
+ html: 'boolean',
35
+ selector: '(string|boolean)',
36
+ placement: '(string|function)',
37
+ offset: '(number|string)',
38
+ container: '(string|element|boolean)',
39
+ fallbackPlacement: '(string|array)',
40
+ boundary: '(string|element)'
41
+ };
42
+ var AttachmentMap = {
43
+ AUTO: 'auto',
44
+ TOP: 'top',
45
+ RIGHT: 'right',
46
+ BOTTOM: 'bottom',
47
+ LEFT: 'left'
48
+ };
49
+ var Default = {
50
+ animation: true,
51
+ template: '<div class="tooltip" role="tooltip">' + '<div class="arrow"></div>' + '<div class="tooltip-inner"></div></div>',
52
+ trigger: 'hover focus',
53
+ title: '',
54
+ delay: 0,
55
+ html: false,
56
+ selector: false,
57
+ placement: 'top',
58
+ offset: 0,
59
+ container: false,
60
+ fallbackPlacement: 'flip',
61
+ boundary: 'scrollParent'
62
+ };
63
+ var HoverState = {
64
+ SHOW: 'show',
65
+ OUT: 'out'
66
+ };
67
+ var Event = {
68
+ HIDE: "hide" + EVENT_KEY,
69
+ HIDDEN: "hidden" + EVENT_KEY,
70
+ SHOW: "show" + EVENT_KEY,
71
+ SHOWN: "shown" + EVENT_KEY,
72
+ INSERTED: "inserted" + EVENT_KEY,
73
+ CLICK: "click" + EVENT_KEY,
74
+ FOCUSIN: "focusin" + EVENT_KEY,
75
+ FOCUSOUT: "focusout" + EVENT_KEY,
76
+ MOUSEENTER: "mouseenter" + EVENT_KEY,
77
+ MOUSELEAVE: "mouseleave" + EVENT_KEY
78
+ };
79
+ var ClassName = {
80
+ FADE: 'fade',
81
+ SHOW: 'show'
82
+ };
83
+ var Selector = {
84
+ TOOLTIP: '.tooltip',
85
+ TOOLTIP_INNER: '.tooltip-inner',
86
+ ARROW: '.arrow'
87
+ };
88
+ var Trigger = {
89
+ HOVER: 'hover',
90
+ FOCUS: 'focus',
91
+ CLICK: 'click',
92
+ MANUAL: 'manual'
93
+ /**
94
+ * ------------------------------------------------------------------------
95
+ * Class Definition
96
+ * ------------------------------------------------------------------------
97
+ */
98
+
99
+ };
100
+
101
+ var Tooltip =
102
+ /*#__PURE__*/
103
+ function () {
104
+ function Tooltip(element, config) {
105
+ /**
106
+ * Check for Popper dependency
107
+ * Popper - https://popper.js.org
108
+ */
109
+ if (typeof Popper === 'undefined') {
110
+ throw new TypeError('Bootstrap tooltips require Popper.js (https://popper.js.org)');
111
+ } // private
112
+
113
+
114
+ this._isEnabled = true;
115
+ this._timeout = 0;
116
+ this._hoverState = '';
117
+ this._activeTrigger = {};
118
+ this._popper = null; // Protected
119
+
120
+ this.element = element;
121
+ this.config = this._getConfig(config);
122
+ this.tip = null;
123
+
124
+ this._setListeners();
125
+ } // Getters
126
+
127
+
128
+ var _proto = Tooltip.prototype;
129
+
130
+ // Public
131
+ _proto.enable = function enable() {
132
+ this._isEnabled = true;
133
+ };
134
+
135
+ _proto.disable = function disable() {
136
+ this._isEnabled = false;
137
+ };
138
+
139
+ _proto.toggleEnabled = function toggleEnabled() {
140
+ this._isEnabled = !this._isEnabled;
141
+ };
142
+
143
+ _proto.toggle = function toggle(event) {
144
+ if (!this._isEnabled) {
145
+ return;
146
+ }
147
+
148
+ if (event) {
149
+ var dataKey = this.constructor.DATA_KEY;
150
+ var context = $(event.currentTarget).data(dataKey);
151
+
152
+ if (!context) {
153
+ context = new this.constructor(event.currentTarget, this._getDelegateConfig());
154
+ $(event.currentTarget).data(dataKey, context);
155
+ }
156
+
157
+ context._activeTrigger.click = !context._activeTrigger.click;
158
+
159
+ if (context._isWithActiveTrigger()) {
160
+ context._enter(null, context);
161
+ } else {
162
+ context._leave(null, context);
163
+ }
164
+ } else {
165
+ if ($(this.getTipElement()).hasClass(ClassName.SHOW)) {
166
+ this._leave(null, this);
167
+
168
+ return;
169
+ }
170
+
171
+ this._enter(null, this);
172
+ }
173
+ };
174
+
175
+ _proto.dispose = function dispose() {
176
+ clearTimeout(this._timeout);
177
+ $.removeData(this.element, this.constructor.DATA_KEY);
178
+ $(this.element).off(this.constructor.EVENT_KEY);
179
+ $(this.element).closest('.modal').off('hide.bs.modal');
180
+
181
+ if (this.tip) {
182
+ $(this.tip).remove();
183
+ }
184
+
185
+ this._isEnabled = null;
186
+ this._timeout = null;
187
+ this._hoverState = null;
188
+ this._activeTrigger = null;
189
+
190
+ if (this._popper !== null) {
191
+ this._popper.destroy();
192
+ }
193
+
194
+ this._popper = null;
195
+ this.element = null;
196
+ this.config = null;
197
+ this.tip = null;
198
+ };
199
+
200
+ _proto.show = function show() {
201
+ var _this = this;
202
+
203
+ if ($(this.element).css('display') === 'none') {
204
+ throw new Error('Please use show on visible elements');
205
+ }
206
+
207
+ var showEvent = $.Event(this.constructor.Event.SHOW);
208
+
209
+ if (this.isWithContent() && this._isEnabled) {
210
+ $(this.element).trigger(showEvent);
211
+ var isInTheDom = $.contains(this.element.ownerDocument.documentElement, this.element);
212
+
213
+ if (showEvent.isDefaultPrevented() || !isInTheDom) {
214
+ return;
215
+ }
216
+
217
+ var tip = this.getTipElement();
218
+ var tipId = Util.getUID(this.constructor.NAME);
219
+ tip.setAttribute('id', tipId);
220
+ this.element.setAttribute('aria-describedby', tipId);
221
+ this.setContent();
222
+
223
+ if (this.config.animation) {
224
+ $(tip).addClass(ClassName.FADE);
225
+ }
226
+
227
+ var placement = typeof this.config.placement === 'function' ? this.config.placement.call(this, tip, this.element) : this.config.placement;
228
+
229
+ var attachment = this._getAttachment(placement);
230
+
231
+ this.addAttachmentClass(attachment);
232
+ var container = this.config.container === false ? document.body : $(this.config.container);
233
+ $(tip).data(this.constructor.DATA_KEY, this);
234
+
235
+ if (!$.contains(this.element.ownerDocument.documentElement, this.tip)) {
236
+ $(tip).appendTo(container);
237
+ }
238
+
239
+ $(this.element).trigger(this.constructor.Event.INSERTED);
240
+ this._popper = new Popper(this.element, tip, {
241
+ placement: attachment,
242
+ modifiers: {
243
+ offset: {
244
+ offset: this.config.offset
245
+ },
246
+ flip: {
247
+ behavior: this.config.fallbackPlacement
248
+ },
249
+ arrow: {
250
+ element: Selector.ARROW
251
+ },
252
+ preventOverflow: {
253
+ boundariesElement: this.config.boundary
254
+ }
255
+ },
256
+ onCreate: function onCreate(data) {
257
+ if (data.originalPlacement !== data.placement) {
258
+ _this._handlePopperPlacementChange(data);
259
+ }
260
+ },
261
+ onUpdate: function onUpdate(data) {
262
+ _this._handlePopperPlacementChange(data);
263
+ }
264
+ });
265
+ $(tip).addClass(ClassName.SHOW); // If this is a touch-enabled device we add extra
266
+ // empty mouseover listeners to the body's immediate children;
267
+ // only needed because of broken event delegation on iOS
268
+ // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html
269
+
270
+ if ('ontouchstart' in document.documentElement) {
271
+ $(document.body).children().on('mouseover', null, $.noop);
272
+ }
273
+
274
+ var complete = function complete() {
275
+ if (_this.config.animation) {
276
+ _this._fixTransition();
277
+ }
278
+
279
+ var prevHoverState = _this._hoverState;
280
+ _this._hoverState = null;
281
+ $(_this.element).trigger(_this.constructor.Event.SHOWN);
282
+
283
+ if (prevHoverState === HoverState.OUT) {
284
+ _this._leave(null, _this);
285
+ }
286
+ };
287
+
288
+ if ($(this.tip).hasClass(ClassName.FADE)) {
289
+ var transitionDuration = Util.getTransitionDurationFromElement(this.tip);
290
+ $(this.tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);
291
+ } else {
292
+ complete();
293
+ }
294
+ }
295
+ };
296
+
297
+ _proto.hide = function hide(callback) {
298
+ var _this2 = this;
299
+
300
+ var tip = this.getTipElement();
301
+ var hideEvent = $.Event(this.constructor.Event.HIDE);
302
+
303
+ var complete = function complete() {
304
+ if (_this2._hoverState !== HoverState.SHOW && tip.parentNode) {
305
+ tip.parentNode.removeChild(tip);
306
+ }
307
+
308
+ _this2._cleanTipClass();
309
+
310
+ _this2.element.removeAttribute('aria-describedby');
311
+
312
+ $(_this2.element).trigger(_this2.constructor.Event.HIDDEN);
313
+
314
+ if (_this2._popper !== null) {
315
+ _this2._popper.destroy();
316
+ }
317
+
318
+ if (callback) {
319
+ callback();
320
+ }
321
+ };
322
+
323
+ $(this.element).trigger(hideEvent);
324
+
325
+ if (hideEvent.isDefaultPrevented()) {
326
+ return;
327
+ }
328
+
329
+ $(tip).removeClass(ClassName.SHOW); // If this is a touch-enabled device we remove the extra
330
+ // empty mouseover listeners we added for iOS support
331
+
332
+ if ('ontouchstart' in document.documentElement) {
333
+ $(document.body).children().off('mouseover', null, $.noop);
334
+ }
335
+
336
+ this._activeTrigger[Trigger.CLICK] = false;
337
+ this._activeTrigger[Trigger.FOCUS] = false;
338
+ this._activeTrigger[Trigger.HOVER] = false;
339
+
340
+ if ($(this.tip).hasClass(ClassName.FADE)) {
341
+ var transitionDuration = Util.getTransitionDurationFromElement(tip);
342
+ $(tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);
343
+ } else {
344
+ complete();
345
+ }
346
+
347
+ this._hoverState = '';
348
+ };
349
+
350
+ _proto.update = function update() {
351
+ if (this._popper !== null) {
352
+ this._popper.scheduleUpdate();
353
+ }
354
+ }; // Protected
355
+
356
+
357
+ _proto.isWithContent = function isWithContent() {
358
+ return Boolean(this.getTitle());
359
+ };
360
+
361
+ _proto.addAttachmentClass = function addAttachmentClass(attachment) {
362
+ $(this.getTipElement()).addClass(CLASS_PREFIX + "-" + attachment);
363
+ };
364
+
365
+ _proto.getTipElement = function getTipElement() {
366
+ this.tip = this.tip || $(this.config.template)[0];
367
+ return this.tip;
368
+ };
369
+
370
+ _proto.setContent = function setContent() {
371
+ var $tip = $(this.getTipElement());
372
+ this.setElementContent($tip.find(Selector.TOOLTIP_INNER), this.getTitle());
373
+ $tip.removeClass(ClassName.FADE + " " + ClassName.SHOW);
374
+ };
375
+
376
+ _proto.setElementContent = function setElementContent($element, content) {
377
+ var html = this.config.html;
378
+
379
+ if (typeof content === 'object' && (content.nodeType || content.jquery)) {
380
+ // Content is a DOM node or a jQuery
381
+ if (html) {
382
+ if (!$(content).parent().is($element)) {
383
+ $element.empty().append(content);
384
+ }
385
+ } else {
386
+ $element.text($(content).text());
387
+ }
388
+ } else {
389
+ $element[html ? 'html' : 'text'](content);
390
+ }
391
+ };
392
+
393
+ _proto.getTitle = function getTitle() {
394
+ var title = this.element.getAttribute('data-original-title');
395
+
396
+ if (!title) {
397
+ title = typeof this.config.title === 'function' ? this.config.title.call(this.element) : this.config.title;
398
+ }
399
+
400
+ return title;
401
+ }; // Private
402
+
403
+
404
+ _proto._getAttachment = function _getAttachment(placement) {
405
+ return AttachmentMap[placement.toUpperCase()];
406
+ };
407
+
408
+ _proto._setListeners = function _setListeners() {
409
+ var _this3 = this;
410
+
411
+ var triggers = this.config.trigger.split(' ');
412
+ triggers.forEach(function (trigger) {
413
+ if (trigger === 'click') {
414
+ $(_this3.element).on(_this3.constructor.Event.CLICK, _this3.config.selector, function (event) {
415
+ return _this3.toggle(event);
416
+ });
417
+ } else if (trigger !== Trigger.MANUAL) {
418
+ var eventIn = trigger === Trigger.HOVER ? _this3.constructor.Event.MOUSEENTER : _this3.constructor.Event.FOCUSIN;
419
+ var eventOut = trigger === Trigger.HOVER ? _this3.constructor.Event.MOUSELEAVE : _this3.constructor.Event.FOCUSOUT;
420
+ $(_this3.element).on(eventIn, _this3.config.selector, function (event) {
421
+ return _this3._enter(event);
422
+ }).on(eventOut, _this3.config.selector, function (event) {
423
+ return _this3._leave(event);
424
+ });
425
+ }
426
+
427
+ $(_this3.element).closest('.modal').on('hide.bs.modal', function () {
428
+ return _this3.hide();
429
+ });
430
+ });
431
+
432
+ if (this.config.selector) {
433
+ this.config = _objectSpread({}, this.config, {
434
+ trigger: 'manual',
435
+ selector: ''
436
+ });
437
+ } else {
438
+ this._fixTitle();
439
+ }
440
+ };
441
+
442
+ _proto._fixTitle = function _fixTitle() {
443
+ var titleType = typeof this.element.getAttribute('data-original-title');
444
+
445
+ if (this.element.getAttribute('title') || titleType !== 'string') {
446
+ this.element.setAttribute('data-original-title', this.element.getAttribute('title') || '');
447
+ this.element.setAttribute('title', '');
448
+ }
449
+ };
450
+
451
+ _proto._enter = function _enter(event, context) {
452
+ var dataKey = this.constructor.DATA_KEY;
453
+ context = context || $(event.currentTarget).data(dataKey);
454
+
455
+ if (!context) {
456
+ context = new this.constructor(event.currentTarget, this._getDelegateConfig());
457
+ $(event.currentTarget).data(dataKey, context);
458
+ }
459
+
460
+ if (event) {
461
+ context._activeTrigger[event.type === 'focusin' ? Trigger.FOCUS : Trigger.HOVER] = true;
462
+ }
463
+
464
+ if ($(context.getTipElement()).hasClass(ClassName.SHOW) || context._hoverState === HoverState.SHOW) {
465
+ context._hoverState = HoverState.SHOW;
466
+ return;
467
+ }
468
+
469
+ clearTimeout(context._timeout);
470
+ context._hoverState = HoverState.SHOW;
471
+
472
+ if (!context.config.delay || !context.config.delay.show) {
473
+ context.show();
474
+ return;
475
+ }
476
+
477
+ context._timeout = setTimeout(function () {
478
+ if (context._hoverState === HoverState.SHOW) {
479
+ context.show();
480
+ }
481
+ }, context.config.delay.show);
482
+ };
483
+
484
+ _proto._leave = function _leave(event, context) {
485
+ var dataKey = this.constructor.DATA_KEY;
486
+ context = context || $(event.currentTarget).data(dataKey);
487
+
488
+ if (!context) {
489
+ context = new this.constructor(event.currentTarget, this._getDelegateConfig());
490
+ $(event.currentTarget).data(dataKey, context);
491
+ }
492
+
493
+ if (event) {
494
+ context._activeTrigger[event.type === 'focusout' ? Trigger.FOCUS : Trigger.HOVER] = false;
495
+ }
496
+
497
+ if (context._isWithActiveTrigger()) {
498
+ return;
499
+ }
500
+
501
+ clearTimeout(context._timeout);
502
+ context._hoverState = HoverState.OUT;
503
+
504
+ if (!context.config.delay || !context.config.delay.hide) {
505
+ context.hide();
506
+ return;
507
+ }
508
+
509
+ context._timeout = setTimeout(function () {
510
+ if (context._hoverState === HoverState.OUT) {
511
+ context.hide();
512
+ }
513
+ }, context.config.delay.hide);
514
+ };
515
+
516
+ _proto._isWithActiveTrigger = function _isWithActiveTrigger() {
517
+ for (var trigger in this._activeTrigger) {
518
+ if (this._activeTrigger[trigger]) {
519
+ return true;
520
+ }
521
+ }
522
+
523
+ return false;
524
+ };
525
+
526
+ _proto._getConfig = function _getConfig(config) {
527
+ config = _objectSpread({}, this.constructor.Default, $(this.element).data(), typeof config === 'object' && config ? config : {});
528
+
529
+ if (typeof config.delay === 'number') {
530
+ config.delay = {
531
+ show: config.delay,
532
+ hide: config.delay
533
+ };
534
+ }
535
+
536
+ if (typeof config.title === 'number') {
537
+ config.title = config.title.toString();
538
+ }
539
+
540
+ if (typeof config.content === 'number') {
541
+ config.content = config.content.toString();
542
+ }
543
+
544
+ Util.typeCheckConfig(NAME, config, this.constructor.DefaultType);
545
+ return config;
546
+ };
547
+
548
+ _proto._getDelegateConfig = function _getDelegateConfig() {
549
+ var config = {};
550
+
551
+ if (this.config) {
552
+ for (var key in this.config) {
553
+ if (this.constructor.Default[key] !== this.config[key]) {
554
+ config[key] = this.config[key];
555
+ }
556
+ }
557
+ }
558
+
559
+ return config;
560
+ };
561
+
562
+ _proto._cleanTipClass = function _cleanTipClass() {
563
+ var $tip = $(this.getTipElement());
564
+ var tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX);
565
+
566
+ if (tabClass !== null && tabClass.length > 0) {
567
+ $tip.removeClass(tabClass.join(''));
568
+ }
569
+ };
570
+
571
+ _proto._handlePopperPlacementChange = function _handlePopperPlacementChange(data) {
572
+ this._cleanTipClass();
573
+
574
+ this.addAttachmentClass(this._getAttachment(data.placement));
575
+ };
576
+
577
+ _proto._fixTransition = function _fixTransition() {
578
+ var tip = this.getTipElement();
579
+ var initConfigAnimation = this.config.animation;
580
+
581
+ if (tip.getAttribute('x-placement') !== null) {
582
+ return;
583
+ }
584
+
585
+ $(tip).removeClass(ClassName.FADE);
586
+ this.config.animation = false;
587
+ this.hide();
588
+ this.show();
589
+ this.config.animation = initConfigAnimation;
590
+ }; // Static
591
+
592
+
593
+ Tooltip._jQueryInterface = function _jQueryInterface(config) {
594
+ return this.each(function () {
595
+ var data = $(this).data(DATA_KEY);
596
+
597
+ var _config = typeof config === 'object' && config;
598
+
599
+ if (!data && /dispose|hide/.test(config)) {
600
+ return;
601
+ }
602
+
603
+ if (!data) {
604
+ data = new Tooltip(this, _config);
605
+ $(this).data(DATA_KEY, data);
606
+ }
607
+
608
+ if (typeof config === 'string') {
609
+ if (typeof data[config] === 'undefined') {
610
+ throw new TypeError("No method named \"" + config + "\"");
611
+ }
612
+
613
+ data[config]();
614
+ }
615
+ });
616
+ };
617
+
618
+ _createClass(Tooltip, null, [{
619
+ key: "VERSION",
620
+ get: function get() {
621
+ return VERSION;
622
+ }
623
+ }, {
624
+ key: "Default",
625
+ get: function get() {
626
+ return Default;
627
+ }
628
+ }, {
629
+ key: "NAME",
630
+ get: function get() {
631
+ return NAME;
632
+ }
633
+ }, {
634
+ key: "DATA_KEY",
635
+ get: function get() {
636
+ return DATA_KEY;
637
+ }
638
+ }, {
639
+ key: "Event",
640
+ get: function get() {
641
+ return Event;
642
+ }
643
+ }, {
644
+ key: "EVENT_KEY",
645
+ get: function get() {
646
+ return EVENT_KEY;
647
+ }
648
+ }, {
649
+ key: "DefaultType",
650
+ get: function get() {
651
+ return DefaultType;
652
+ }
653
+ }]);
654
+
655
+ return Tooltip;
656
+ }();
657
+ /**
658
+ * ------------------------------------------------------------------------
659
+ * jQuery
660
+ * ------------------------------------------------------------------------
661
+ */
662
+
663
+
664
+ $.fn[NAME] = Tooltip._jQueryInterface;
665
+ $.fn[NAME].Constructor = Tooltip;
666
+
667
+ $.fn[NAME].noConflict = function () {
668
+ $.fn[NAME] = JQUERY_NO_CONFLICT;
669
+ return Tooltip._jQueryInterface;
670
+ };
671
+
672
+ return Tooltip;
673
+ }(jQuery, Popper);
admin/assets/js/bootstrap/tooltip.min.js ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ function _objectSpread(c){for(var e=1;e<arguments.length;e++){var g=null!=arguments[e]?arguments[e]:{},h=Object.keys(g);"function"===typeof Object.getOwnPropertySymbols&&(h=h.concat(Object.getOwnPropertySymbols(g).filter(function(c){return Object.getOwnPropertyDescriptor(g,c).enumerable})));h.forEach(function(e){_defineProperty(c,e,g[e])})}return c}function _defineProperty(c,e,g){e in c?Object.defineProperty(c,e,{value:g,enumerable:!0,configurable:!0,writable:!0}):c[e]=g;return c}
2
+ function _defineProperties(c,e){for(var g=0;g<e.length;g++){var h=e[g];h.enumerable=h.enumerable||!1;h.configurable=!0;"value"in h&&(h.writable=!0);Object.defineProperty(c,h.key,h)}}function _createClass(c,e,g){e&&_defineProperties(c.prototype,e);g&&_defineProperties(c,g);return c}
3
+ var Tooltip=function(c){var e=c.fn.tooltip,g=RegExp("(^|\\s)bs-tooltip\\S+","g"),h={animation:"boolean",template:"string",title:"(string|element|function)",trigger:"string",delay:"(number|object)",html:"boolean",selector:"(string|boolean)",placement:"(string|function)",offset:"(number|string)",container:"(string|element|boolean)",fallbackPlacement:"(string|array)",boundary:"(string|element)"},l={AUTO:"auto",TOP:"top",RIGHT:"right",BOTTOM:"bottom",LEFT:"left"},m={animation:!0,template:'<div class="tooltip" role="tooltip"><div class="arrow"></div><div class="tooltip-inner"></div></div>',
4
+ trigger:"hover focus",title:"",delay:0,html:!1,selector:!1,placement:"top",offset:0,container:!1,fallbackPlacement:"flip",boundary:"scrollParent"},n={HIDE:"hide.bs.tooltip",HIDDEN:"hidden.bs.tooltip",SHOW:"show.bs.tooltip",SHOWN:"shown.bs.tooltip",INSERTED:"inserted.bs.tooltip",CLICK:"click.bs.tooltip",FOCUSIN:"focusin.bs.tooltip",FOCUSOUT:"focusout.bs.tooltip",MOUSEENTER:"mouseenter.bs.tooltip",MOUSELEAVE:"mouseleave.bs.tooltip"},k=function(){function e(b,a){if("undefined"===typeof Popper)throw new TypeError("Bootstrap tooltips require Popper.js (https://popper.js.org)");
5
+ this._isEnabled=!0;this._timeout=0;this._hoverState="";this._activeTrigger={};this._popper=null;this.element=b;this.config=this._getConfig(a);this.tip=null;this._setListeners()}var f=e.prototype;f.enable=function(){this._isEnabled=!0};f.disable=function(){this._isEnabled=!1};f.toggleEnabled=function(){this._isEnabled=!this._isEnabled};f.toggle=function(b){if(this._isEnabled)if(b){var a=this.constructor.DATA_KEY,d=c(b.currentTarget).data(a);d||(d=new this.constructor(b.currentTarget,this._getDelegateConfig()),
6
+ c(b.currentTarget).data(a,d));d._activeTrigger.click=!d._activeTrigger.click;d._isWithActiveTrigger()?d._enter(null,d):d._leave(null,d)}else c(this.getTipElement()).hasClass("show")?this._leave(null,this):this._enter(null,this)};f.dispose=function(){clearTimeout(this._timeout);c.removeData(this.element,this.constructor.DATA_KEY);c(this.element).off(this.constructor.EVENT_KEY);c(this.element).closest(".modal").off("hide.bs.modal");this.tip&&c(this.tip).remove();this._activeTrigger=this._hoverState=
7
+ this._timeout=this._isEnabled=null;null!==this._popper&&this._popper.destroy();this.tip=this.config=this.element=this._popper=null};f.show=function(){var b=this;if("none"===c(this.element).css("display"))throw Error("Please use show on visible elements");var a=c.Event(this.constructor.Event.SHOW);if(this.isWithContent()&&this._isEnabled){c(this.element).trigger(a);var d=c.contains(this.element.ownerDocument.documentElement,this.element);if(!a.isDefaultPrevented()&&d){a=this.getTipElement();d=Util.getUID(this.constructor.NAME);
8
+ a.setAttribute("id",d);this.element.setAttribute("aria-describedby",d);this.setContent();this.config.animation&&c(a).addClass("fade");d="function"===typeof this.config.placement?this.config.placement.call(this,a,this.element):this.config.placement;d=this._getAttachment(d);this.addAttachmentClass(d);var e=!1===this.config.container?document.body:c(this.config.container);c(a).data(this.constructor.DATA_KEY,this);c.contains(this.element.ownerDocument.documentElement,this.tip)||c(a).appendTo(e);c(this.element).trigger(this.constructor.Event.INSERTED);
9
+ this._popper=new Popper(this.element,a,{placement:d,modifiers:{offset:{offset:this.config.offset},flip:{behavior:this.config.fallbackPlacement},arrow:{element:".arrow"},preventOverflow:{boundariesElement:this.config.boundary}},onCreate:function(a){a.originalPlacement!==a.placement&&b._handlePopperPlacementChange(a)},onUpdate:function(a){b._handlePopperPlacementChange(a)}});c(a).addClass("show");if("ontouchstart"in document.documentElement)c(document.body).children().on("mouseover",null,c.noop);a=
10
+ function(){b.config.animation&&b._fixTransition();var a=b._hoverState;b._hoverState=null;c(b.element).trigger(b.constructor.Event.SHOWN);"out"===a&&b._leave(null,b)};c(this.tip).hasClass("fade")?(d=Util.getTransitionDurationFromElement(this.tip),c(this.tip).one(Util.TRANSITION_END,a).emulateTransitionEnd(d)):a()}}};f.hide=function(b){var a=this,d=this.getTipElement(),e=c.Event(this.constructor.Event.HIDE),f=function(){"show"!==a._hoverState&&d.parentNode&&d.parentNode.removeChild(d);a._cleanTipClass();
11
+ a.element.removeAttribute("aria-describedby");c(a.element).trigger(a.constructor.Event.HIDDEN);null!==a._popper&&a._popper.destroy();b&&b()};c(this.element).trigger(e);e.isDefaultPrevented()||(c(d).removeClass("show"),"ontouchstart"in document.documentElement&&c(document.body).children().off("mouseover",null,c.noop),this._activeTrigger.click=!1,this._activeTrigger.focus=!1,this._activeTrigger.hover=!1,c(this.tip).hasClass("fade")?(e=Util.getTransitionDurationFromElement(d),c(d).one(Util.TRANSITION_END,
12
+ f).emulateTransitionEnd(e)):f(),this._hoverState="")};f.update=function(){null!==this._popper&&this._popper.scheduleUpdate()};f.isWithContent=function(){return!!this.getTitle()};f.addAttachmentClass=function(b){c(this.getTipElement()).addClass("bs-tooltip-"+b)};f.getTipElement=function(){return this.tip=this.tip||c(this.config.template)[0]};f.setContent=function(){var b=c(this.getTipElement());this.setElementContent(b.find(".tooltip-inner"),this.getTitle());b.removeClass("fade show")};f.setElementContent=
13
+ function(b,a){var d=this.config.html;if("object"===typeof a&&(a.nodeType||a.jquery))d?c(a).parent().is(b)||b.empty().append(a):b.text(c(a).text());else b[d?"html":"text"](a)};f.getTitle=function(){var b=this.element.getAttribute("data-original-title");b||(b="function"===typeof this.config.title?this.config.title.call(this.element):this.config.title);return b};f._getAttachment=function(b){return l[b.toUpperCase()]};f._setListeners=function(){var b=this;this.config.trigger.split(" ").forEach(function(a){if("click"===
14
+ a)c(b.element).on(b.constructor.Event.CLICK,b.config.selector,function(a){return b.toggle(a)});else if("manual"!==a){var d="hover"===a?b.constructor.Event.MOUSEENTER:b.constructor.Event.FOCUSIN;a="hover"===a?b.constructor.Event.MOUSELEAVE:b.constructor.Event.FOCUSOUT;c(b.element).on(d,b.config.selector,function(a){return b._enter(a)}).on(a,b.config.selector,function(a){return b._leave(a)})}c(b.element).closest(".modal").on("hide.bs.modal",function(){return b.hide()})});this.config.selector?this.config=
15
+ _objectSpread({},this.config,{trigger:"manual",selector:""}):this._fixTitle()};f._fixTitle=function(){var b=typeof this.element.getAttribute("data-original-title");if(this.element.getAttribute("title")||"string"!==b)this.element.setAttribute("data-original-title",this.element.getAttribute("title")||""),this.element.setAttribute("title","")};f._enter=function(b,a){var d=this.constructor.DATA_KEY;a=a||c(b.currentTarget).data(d);a||(a=new this.constructor(b.currentTarget,this._getDelegateConfig()),c(b.currentTarget).data(d,
16
+ a));b&&(a._activeTrigger["focusin"===b.type?"focus":"hover"]=!0);c(a.getTipElement()).hasClass("show")||"show"===a._hoverState?a._hoverState="show":(clearTimeout(a._timeout),a._hoverState="show",a.config.delay&&a.config.delay.show?a._timeout=setTimeout(function(){"show"===a._hoverState&&a.show()},a.config.delay.show):a.show())};f._leave=function(b,a){var d=this.constructor.DATA_KEY;a=a||c(b.currentTarget).data(d);a||(a=new this.constructor(b.currentTarget,this._getDelegateConfig()),c(b.currentTarget).data(d,
17
+ a));b&&(a._activeTrigger["focusout"===b.type?"focus":"hover"]=!1);a._isWithActiveTrigger()||(clearTimeout(a._timeout),a._hoverState="out",a.config.delay&&a.config.delay.hide?a._timeout=setTimeout(function(){"out"===a._hoverState&&a.hide()},a.config.delay.hide):a.hide())};f._isWithActiveTrigger=function(){for(var b in this._activeTrigger)if(this._activeTrigger[b])return!0;return!1};f._getConfig=function(b){b=_objectSpread({},this.constructor.Default,c(this.element).data(),"object"===typeof b&&b?b:
18
+ {});"number"===typeof b.delay&&(b.delay={show:b.delay,hide:b.delay});"number"===typeof b.title&&(b.title=b.title.toString());"number"===typeof b.content&&(b.content=b.content.toString());Util.typeCheckConfig("tooltip",b,this.constructor.DefaultType);return b};f._getDelegateConfig=function(){var b={};if(this.config)for(var a in this.config)this.constructor.Default[a]!==this.config[a]&&(b[a]=this.config[a]);return b};f._cleanTipClass=function(){var b=c(this.getTipElement()),a=b.attr("class").match(g);
19
+ null!==a&&0<a.length&&b.removeClass(a.join(""))};f._handlePopperPlacementChange=function(b){this._cleanTipClass();this.addAttachmentClass(this._getAttachment(b.placement))};f._fixTransition=function(){var b=this.getTipElement(),a=this.config.animation;null===b.getAttribute("x-placement")&&(c(b).removeClass("fade"),this.config.animation=!1,this.hide(),this.show(),this.config.animation=a)};e._jQueryInterface=function(b){return this.each(function(){var a=c(this).data("bs.tooltip"),d="object"===typeof b&&
20
+ b;if(a||!/dispose|hide/.test(b))if(a||(a=new e(this,d),c(this).data("bs.tooltip",a)),"string"===typeof b){if("undefined"===typeof a[b])throw new TypeError('No method named "'+b+'"');a[b]()}})};_createClass(e,null,[{key:"VERSION",get:function(){return"4.1.1"}},{key:"Default",get:function(){return m}},{key:"NAME",get:function(){return"tooltip"}},{key:"DATA_KEY",get:function(){return"bs.tooltip"}},{key:"Event",get:function(){return n}},{key:"EVENT_KEY",get:function(){return".bs.tooltip"}},{key:"DefaultType",
21
+ get:function(){return h}}]);return e}();c.fn.tooltip=k._jQueryInterface;c.fn.tooltip.Constructor=k;c.fn.tooltip.noConflict=function(){c.fn.tooltip=e;return k._jQueryInterface};return k}(jQuery,Popper);
admin/assets/js/bootstrap/util.js CHANGED
@@ -1,150 +1,131 @@
1
  /**
2
  * --------------------------------------------------------------------------
3
- * Bootstrap (v4.0.0-alpha.6): util.js
4
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
5
  * --------------------------------------------------------------------------
6
  */
7
-
8
  var Util = function ($) {
9
-
10
  /**
11
  * ------------------------------------------------------------------------
12
  * Private TransitionEnd Helpers
13
  * ------------------------------------------------------------------------
14
  */
15
-
16
- var transition = false;
17
-
18
  var MAX_UID = 1000000;
 
19
 
20
- var TransitionEndEvent = {
21
- WebkitTransition: 'webkitTransitionEnd',
22
- MozTransition: 'transitionend',
23
- OTransition: 'oTransitionEnd otransitionend',
24
- transition: 'transitionend'
25
- };
26
-
27
- // shoutout AngusCroll (https://goo.gl/pxwQGp)
28
  function toType(obj) {
29
- return {}.toString.call(obj).match(/\s([a-zA-Z]+)/)[1].toLowerCase();
30
- }
31
-
32
- function isElement(obj) {
33
- return (obj[0] || obj).nodeType;
34
  }
35
 
36
  function getSpecialTransitionEndEvent() {
37
  return {
38
- bindType: transition.end,
39
- delegateType: transition.end,
40
  handle: function handle(event) {
41
  if ($(event.target).is(this)) {
42
  return event.handleObj.handler.apply(this, arguments); // eslint-disable-line prefer-rest-params
43
  }
44
- return undefined;
45
- }
46
- };
47
- }
48
-
49
- function transitionEndTest() {
50
- if (window.QUnit) {
51
- return false;
52
- }
53
 
54
- var el = document.createElement('bootstrap');
55
-
56
- for (var name in TransitionEndEvent) {
57
- if (el.style[name] !== undefined) {
58
- return {
59
- end: TransitionEndEvent[name]
60
- };
61
  }
62
- }
63
-
64
- return false;
65
  }
66
 
67
  function transitionEndEmulator(duration) {
68
  var _this = this;
69
 
70
  var called = false;
71
-
72
  $(this).one(Util.TRANSITION_END, function () {
73
  called = true;
74
  });
75
-
76
  setTimeout(function () {
77
  if (!called) {
78
  Util.triggerTransitionEnd(_this);
79
  }
80
  }, duration);
81
-
82
  return this;
83
  }
84
 
85
  function setTransitionEndSupport() {
86
- transition = transitionEndTest();
87
-
88
  $.fn.emulateTransitionEnd = transitionEndEmulator;
89
-
90
- if (Util.supportsTransitionEnd()) {
91
- $.event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent();
92
- }
93
  }
94
-
95
  /**
96
  * --------------------------------------------------------------------------
97
  * Public Util Api
98
  * --------------------------------------------------------------------------
99
  */
100
 
101
- var Util = {
102
 
 
103
  TRANSITION_END: 'bsTransitionEnd',
104
-
105
  getUID: function getUID(prefix) {
106
  do {
107
  // eslint-disable-next-line no-bitwise
108
  prefix += ~~(Math.random() * MAX_UID); // "~~" acts like a faster Math.floor() here
109
  } while (document.getElementById(prefix));
 
110
  return prefix;
111
  },
112
  getSelectorFromElement: function getSelectorFromElement(element) {
113
  var selector = element.getAttribute('data-target');
114
 
115
- if (!selector) {
116
  selector = element.getAttribute('href') || '';
117
- selector = /^#[a-z]/i.test(selector) ? selector : null;
118
  }
119
 
120
- return selector;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
121
  },
122
  reflow: function reflow(element) {
123
  return element.offsetHeight;
124
  },
125
  triggerTransitionEnd: function triggerTransitionEnd(element) {
126
- $(element).trigger(transition.end);
127
  },
 
128
  supportsTransitionEnd: function supportsTransitionEnd() {
129
- return Boolean(transition);
 
 
 
130
  },
131
  typeCheckConfig: function typeCheckConfig(componentName, config, configTypes) {
132
  for (var property in configTypes) {
133
- if (configTypes.hasOwnProperty(property)) {
134
  var expectedTypes = configTypes[property];
135
  var value = config[property];
136
- var valueType = value && isElement(value) ? 'element' : toType(value);
137
 
138
  if (!new RegExp(expectedTypes).test(valueType)) {
139
- throw new Error(componentName.toUpperCase() + ': ' + ('Option "' + property + '" provided type "' + valueType + '" ') + ('but expected type "' + expectedTypes + '".'));
140
  }
141
  }
142
  }
143
  }
144
  };
145
-
146
  setTransitionEndSupport();
147
-
148
  return Util;
149
- }(jQuery);
150
- //# sourceMappingURL=util.js.map
1
  /**
2
  * --------------------------------------------------------------------------
3
+ * Bootstrap (v4.1.1): util.js
4
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
5
  * --------------------------------------------------------------------------
6
  */
 
7
  var Util = function ($) {
 
8
  /**
9
  * ------------------------------------------------------------------------
10
  * Private TransitionEnd Helpers
11
  * ------------------------------------------------------------------------
12
  */
13
+ var TRANSITION_END = 'transitionend';
 
 
14
  var MAX_UID = 1000000;
15
+ var MILLISECONDS_MULTIPLIER = 1000; // Shoutout AngusCroll (https://goo.gl/pxwQGp)
16
 
 
 
 
 
 
 
 
 
17
  function toType(obj) {
18
+ return {}.toString.call(obj).match(/\s([a-z]+)/i)[1].toLowerCase();
 
 
 
 
19
  }
20
 
21
  function getSpecialTransitionEndEvent() {
22
  return {
23
+ bindType: TRANSITION_END,
24
+ delegateType: TRANSITION_END,
25
  handle: function handle(event) {
26
  if ($(event.target).is(this)) {
27
  return event.handleObj.handler.apply(this, arguments); // eslint-disable-line prefer-rest-params
28
  }
 
 
 
 
 
 
 
 
 
29
 
30
+ return undefined; // eslint-disable-line no-undefined
 
 
 
 
 
 
31
  }
32
+ };
 
 
33
  }
34
 
35
  function transitionEndEmulator(duration) {
36
  var _this = this;
37
 
38
  var called = false;
 
39
  $(this).one(Util.TRANSITION_END, function () {
40
  called = true;
41
  });
 
42
  setTimeout(function () {
43
  if (!called) {
44
  Util.triggerTransitionEnd(_this);
45
  }
46
  }, duration);
 
47
  return this;
48
  }
49
 
50
  function setTransitionEndSupport() {
 
 
51
  $.fn.emulateTransitionEnd = transitionEndEmulator;
52
+ $.event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent();
 
 
 
53
  }
 
54
  /**
55
  * --------------------------------------------------------------------------
56
  * Public Util Api
57
  * --------------------------------------------------------------------------
58
  */
59
 
 
60
 
61
+ var Util = {
62
  TRANSITION_END: 'bsTransitionEnd',
 
63
  getUID: function getUID(prefix) {
64
  do {
65
  // eslint-disable-next-line no-bitwise
66
  prefix += ~~(Math.random() * MAX_UID); // "~~" acts like a faster Math.floor() here
67
  } while (document.getElementById(prefix));
68
+
69
  return prefix;
70
  },
71
  getSelectorFromElement: function getSelectorFromElement(element) {
72
  var selector = element.getAttribute('data-target');
73
 
74
+ if (!selector || selector === '#') {
75
  selector = element.getAttribute('href') || '';
 
76
  }
77
 
78
+ try {
79
+ var $selector = $(document).find(selector);
80
+ return $selector.length > 0 ? selector : null;
81
+ } catch (err) {
82
+ return null;
83
+ }
84
+ },
85
+ getTransitionDurationFromElement: function getTransitionDurationFromElement(element) {
86
+ if (!element) {
87
+ return 0;
88
+ } // Get transition-duration of the element
89
+
90
+
91
+ var transitionDuration = $(element).css('transition-duration');
92
+ var floatTransitionDuration = parseFloat(transitionDuration); // Return 0 if element or transition duration is not found
93
+
94
+ if (!floatTransitionDuration) {
95
+ return 0;
96
+ } // If multiple durations are defined, take the first
97
+
98
+
99
+ transitionDuration = transitionDuration.split(',')[0];
100
+ return parseFloat(transitionDuration) * MILLISECONDS_MULTIPLIER;
101
  },
102
  reflow: function reflow(element) {
103
  return element.offsetHeight;
104
  },
105
  triggerTransitionEnd: function triggerTransitionEnd(element) {
106
+ $(element).trigger(TRANSITION_END);
107
  },
108
+ // TODO: Remove in v5
109
  supportsTransitionEnd: function supportsTransitionEnd() {
110
+ return Boolean(TRANSITION_END);
111
+ },
112
+ isElement: function isElement(obj) {
113
+ return (obj[0] || obj).nodeType;
114
  },
115
  typeCheckConfig: function typeCheckConfig(componentName, config, configTypes) {
116
  for (var property in configTypes) {
117
+ if (Object.prototype.hasOwnProperty.call(configTypes, property)) {
118
  var expectedTypes = configTypes[property];
119
  var value = config[property];
120
+ var valueType = value && Util.isElement(value) ? 'element' : toType(value);
121
 
122
  if (!new RegExp(expectedTypes).test(valueType)) {
123
+ throw new Error(componentName.toUpperCase() + ": " + ("Option \"" + property + "\" provided type \"" + valueType + "\" ") + ("but expected type \"" + expectedTypes + "\"."));
124
  }
125
  }
126
  }
127
  }
128
  };
 
129
  setTransitionEndSupport();
 
130
  return Util;
131
+ }(jQuery);
 
admin/assets/js/bootstrap/util.min.js CHANGED
@@ -1 +1,3 @@
1
- var Util=function(a){function e(a){return{}.toString.call(a).match(/\s([a-zA-Z]+)/)[1].toLowerCase()}function f(a){return(a[0]||a).nodeType}function g(){return{bindType:b.end,delegateType:b.end,handle:function(c){if(a(c.target).is(this))return c.handleObj.handler.apply(this,arguments)}}}function h(){if(window.QUnit)return!1;var a=document.createElement("bootstrap");for(var b in d)if(void 0!==a.style[b])return{end:d[b]};return!1}function i(b){var c=this,d=!1;return a(this).one(k.TRANSITION_END,function(){d=!0}),setTimeout(function(){d||k.triggerTransitionEnd(c)},b),this}function j(){b=h(),a.fn.emulateTransitionEnd=i,k.supportsTransitionEnd()&&(a.event.special[k.TRANSITION_END]=g())}var b=!1,c=1e6,d={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"},k={TRANSITION_END:"bsTransitionEnd",getUID:function(b){do{b+=~~(Math.random()*c)}while(document.getElementById(b));return b},getSelectorFromElement:function(b){var c=b.getAttribute("data-target");return c||(c=b.getAttribute("href")||"",c=/^#[a-z]/i.test(c)?c:null),c},reflow:function(b){return b.offsetHeight},triggerTransitionEnd:function(d){a(d).trigger(b.end)},supportsTransitionEnd:function(){return Boolean(b)},typeCheckConfig:function(b,c,d){for(var g in d)if(d.hasOwnProperty(g)){var h=d[g],i=c[g],j=i&&f(i)?"element":e(i);if(!new RegExp(h).test(j))throw new Error(b.toUpperCase()+': Option "'+g+'" provided type "'+j+'" but expected type "'+h+'".')}}};return j(),k}(jQuery);
 
 
1
+ var Util=function(b){var f={TRANSITION_END:"bsTransitionEnd",getUID:function(a){do a+=~~(1E6*Math.random());while(document.getElementById(a));return a},getSelectorFromElement:function(a){var c=a.getAttribute("data-target");c&&"#"!==c||(c=a.getAttribute("href")||"");try{return 0<b(document).find(c).length?c:null}catch(d){return null}},getTransitionDurationFromElement:function(a){if(!a)return 0;a=b(a).css("transition-duration");if(!parseFloat(a))return 0;a=a.split(",")[0];return 1E3*parseFloat(a)},
2
+ reflow:function(a){return a.offsetHeight},triggerTransitionEnd:function(a){b(a).trigger("transitionend")},supportsTransitionEnd:function(){return!0},isElement:function(a){return(a[0]||a).nodeType},typeCheckConfig:function(a,c,b){for(var g in b)if(Object.prototype.hasOwnProperty.call(b,g)){var d=b[g],e=c[g];e=e&&f.isElement(e)?"element":{}.toString.call(e).match(/\s([a-z]+)/i)[1].toLowerCase();if(!(new RegExp(d)).test(e))throw Error(a.toUpperCase()+": "+('Option "'+g+'" provided type "'+e+'" ')+('but expected type "'+
3
+ d+'".'));}}};b.fn.emulateTransitionEnd=function(a){var c=this,d=!1;b(this).one(f.TRANSITION_END,function(){d=!0});setTimeout(function(){d||f.triggerTransitionEnd(c)},a);return this};b.event.special[f.TRANSITION_END]=function(){return{bindType:"transitionend",delegateType:"transitionend",handle:function(a){if(b(a.target).is(this))return a.handleObj.handler.apply(this,arguments)}}}();return f}(jQuery);
admin/assets/js/chosen/chosen.ajaxify.js ADDED
@@ -0,0 +1,189 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ (function($) {
2
+
3
+ $.fn.bindWithDelay = function( type, data, fn, timeout, throttle ) {
4
+
5
+ if ( $.isFunction( data ) ) {
6
+ throttle = timeout;
7
+ timeout = fn;
8
+ fn = data;
9
+ data = undefined;
10
+ }
11
+
12
+ // Allow delayed function to be removed with fn in unbind function
13
+ fn.guid = fn.guid || ($.guid && $.guid++);
14
+
15
+ // Bind each separately so that each element has its own delay
16
+ return this.each(function() {
17
+
18
+ var wait = null;
19
+
20
+ function cb() {
21
+ var e = $.extend(true, { }, arguments[0]);
22
+ var ctx = this;
23
+ var throttler = function() {
24
+ wait = null;
25
+ fn.apply(ctx, [e]);
26
+ };
27
+
28
+ if (!throttle) { clearTimeout(wait); wait = null; }
29
+ if (!wait) { wait = setTimeout(throttler, timeout); }
30
+ }
31
+
32
+ cb.guid = fn.guid;
33
+
34
+ $(this).bind(type, data, cb);
35
+ });
36
+ };
37
+
38
+ })(jQuery);
39
+
40
+ var REQUEST = new Object();
41
+ function chosen_ajaxify(id, ajax_url){
42
+ var div_id = id;
43
+ div_id = div_id.split("-").join("_");
44
+ // if single
45
+ if(jQuery('div#' + div_id + '_chosen').hasClass('chosen-container-single')){
46
+ jQuery('div#' + div_id + '_chosen' + ' .chosen-search input').bindWithDelay('keyup', function(event){
47
+ // ignore arrow key
48
+ if(event.keyCode >= 37 && event.keyCode <= 40){
49
+ return null;
50
+ }
51
+ // ignore enter
52
+ if(event.keyCode == 13){
53
+ return null;
54
+ }
55
+ // abort previous ajax
56
+ if(REQUEST[id] != null){
57
+ REQUEST[id].abort();
58
+ }
59
+ // get keyword and build regex pattern (use to emphasis search result)
60
+ var keyword = jQuery('div#' + div_id + '_chosen' + ' .chosen-search input').val();
61
+ if ( keyword.length < 3 ) {
62
+ return null;
63
+ }
64
+ var keyword_pattern = new RegExp(keyword, 'gi');
65
+ // remove all options of chosen
66
+ jQuery('div#' + div_id + '_chosen ul.chosen-results').empty();
67
+ // remove all options of original select
68
+ jQuery("#"+id).empty();
69
+ REQUEST[id] = jQuery.ajax({
70
+ url: ajax_url + keyword,
71
+ dataType: "json",
72
+ success: function(response){
73
+ // map, just as in functional programming :). Other way to say "foreach"
74
+ // add new options to original select
75
+ jQuery('#'+id).append('<option value=""></option>');
76
+ jQuery.map(response, function(item){
77
+ jQuery('#'+id).append('<option value="' + item.value + '">' + item.caption + '</option>');
78
+ });
79
+ },
80
+ complete: function(){
81
+ keyword = jQuery('div#' + div_id + '_chosen' + ' .chosen-search input').val();
82
+ // update chosen
83
+ jQuery("#"+id).trigger("chosen:updated");
84
+ // some trivial UI adjustment
85
+ jQuery('div#' + div_id + '_chosen').removeClass('chosen-container-single-nosearch');
86
+
87
+ jQuery('div#' + div_id + '_chosen' + ' .chosen-search input').val(keyword);
88
+ jQuery('div#' + div_id + '_chosen' + ' .chosen-search input').removeAttr('readonly');
89
+ jQuery('div#' + div_id + '_chosen' + ' .chosen-search input').focus();
90
+ // emphasis keywords
91
+ jQuery('div#' + div_id + '_chosen' + ' .active-result').each(function(){
92
+ var html = jQuery(this).html();
93
+ jQuery(this).html(html.replace(keyword_pattern, function(matched){
94
+ return '<em>' + matched + '</em>';
95
+ }));
96
+ });
97
+ }
98
+ }, 500);
99
+ });
100
+ } else if(jQuery('div#' + div_id + '_chosen').hasClass('chosen-container-multi')){ // if multi
101
+ jQuery('div#' + div_id + '_chosen' + ' input').bindWithDelay('keyup', function(event){
102
+ // ignore arrow key
103
+ if(event.keyCode >= 37 && event.keyCode <= 40){
104
+ return null;
105
+ }
106
+ // ignore enter
107
+ if(event.keyCode == 13){
108
+ return null;
109
+ }
110
+ if(REQUEST[id] != null){
111
+ REQUEST[id].abort();
112
+ }
113
+ var old_input_width = jQuery('div#' + div_id + '_chosen' + ' input').css('width');
114
+ // get keyword and build regex pattern (use to emphasis search result)
115
+ var keyword = jQuery(this).val();
116
+ if ( keyword.length < 3 ) {
117
+ return null;
118
+ }
119
+
120
+ var keyword_pattern = new RegExp(keyword, 'gi');
121
+ // old values and captions
122
+ var old_values = new Array();
123
+ jQuery('#'+id+' option:selected').each(function(){
124
+ old_value = jQuery(this).val();
125
+ old_values.push(old_value);
126
+ });
127
+ // remove all options of chosen
128
+ jQuery('div#' + div_id + '_chosen ul.chosen-results').empty();
129
+ jQuery('option', '#'+id).not(':selected').remove();
130
+ REQUEST[id] = jQuery.ajax({
131
+ url: ajax_url + keyword,
132
+ dataType: "json",
133
+ success: function(response){
134
+ // map, just as in functional programming :). Other way to say "foreach"
135
+ jQuery.map(response, function(item){
136
+ // this is ineffective, is there any "in" syntax in javascript?
137
+ var found = false;
138
+ for(i=0; i<old_values[i]; i++){
139
+ if(old_values[i] == item.value){
140
+ found = true;
141
+ break;
142
+ }
143
+ }
144
+ if(!found){
145
+ jQuery('#'+id).append('<option value="' + item.value + '">' + item.caption + '</option>');
146
+ }
147
+ });
148
+ },
149
+ complete: function(response){
150
+ keyword = jQuery('div#' + div_id + '_chosen' + ' input').val();
151
+ jQuery("#"+id).trigger("chosen:updated");
152
+ jQuery('div#' + div_id + '_chosen').removeClass('chosen-container-single-nosearch');
153
+ jQuery('div#' + div_id + '_chosen' + ' input').val(keyword);
154
+ jQuery('div#' + div_id + '_chosen' + ' input').removeAttr('readonly');
155
+ jQuery('div#' + div_id + '_chosen' + ' input').css('width', old_input_width);
156
+ jQuery('div#' + div_id + '_chosen' + ' input').focus();
157
+ // put that underscores
158
+ jQuery('div#' + div_id + '_chosen' + ' .active-result').each(function(){
159
+ var html = jQuery(this).html();
160
+ jQuery(this).html(html.replace(keyword_pattern, function(matched){
161
+ return '<em>' + matched + '</em>';
162
+ }));
163
+ });
164
+ }
165
+ });
166
+ }, 500);
167
+ }
168
+ }
169
+
170
+ function chosen_depend_on(id, id_depend_on, ajax_url){
171
+ var OLD_VALUE = jQuery('#'+id_depend_on).val();
172
+ jQuery('#'+id_depend_on).change(function(event){
173
+ var val = jQuery(this).val();
174
+ if(val != OLD_VALUE){
175
+ jQuery.ajax({
176
+ 'url' : ajax_url + val,
177
+ 'dataType' : 'json',
178
+ 'success' : function(response){
179
+ jQuery('#'+id).empty();
180
+ jQuery.map(response, function(item){
181
+ jQuery('#'+id).append('<option value="' + item.value + '">' + item.caption + '</option>');
182
+ });
183
+ jQuery('#'+id).trigger("chosen:updated");
184
+ jQuery('#'+id).trigger("change");
185
+ }
186
+ });
187
+ }
188
+ })
189
+ }
admin/assets/js/tipTip/jquery.tipTip.js DELETED
@@ -1,191 +0,0 @@
1
- /*
2
- * TipTip
3
- * Copyright 2010 Drew Wilson
4
- * www.drewwilson.com
5
- * code.drewwilson.com/entry/tiptip-jquery-plugin
6
- *
7
- * Version 1.3 - Updated: Mar. 23, 2010
8
- *
9
- * This Plug-In will create a custom tooltip to replace the default
10
- * browser tooltip. It is extremely lightweight and very smart in
11
- * that it detects the edges of the browser window and will make sure
12
- * the tooltip stays within the current window size. As a result the
13
- * tooltip will adjust itself to be displayed above, below, to the left
14
- * or to the right depending on what is necessary to stay within the
15
- * browser window. It is completely customizable as well via CSS.
16
- *
17
- * This TipTip jQuery plug-in is dual licensed under the MIT and GPL licenses:
18
- * http://www.opensource.org/licenses/mit-license.php
19
- * http://www.gnu.org/licenses/gpl.html
20
- */
21
-
22
- (function($){
23
- $.fn.tipTip = function(options) {
24
- var defaults = {
25
- activation: "hover",
26
- keepAlive: false,
27
- maxWidth: "200px",
28
- edgeOffset: 3,
29
- defaultPosition: "bottom",
30
- delay: 400,
31
- fadeIn: 200,
32
- fadeOut: 200,
33
- attribute: "title",
34
- content: false, // HTML or String to fill TipTIp with
35
- enter: function(){},
36
- exit: function(){}
37
- };
38
- var opts = $.extend(defaults, options);
39
-
40
- // Setup tip tip elements and render them to the DOM
41
- if($("#tiptip_holder").length <= 0){
42
- var tiptip_holder = $('<div id="tiptip_holder" style="max-width:'+ opts.maxWidth +';"></div>');
43
- var tiptip_content = $('<div id="tiptip_content"></div>');
44
- var tiptip_arrow = $('<div id="tiptip_arrow"></div>');
45
- $("body").append(tiptip_holder.html(tiptip_content).prepend(tiptip_arrow.html('<div id="tiptip_arrow_inner"></div>')));
46
- } else {
47
- var tiptip_holder = $("#tiptip_holder");
48
- var tiptip_content = $("#tiptip_content");
49
- var tiptip_arrow = $("#tiptip_arrow");
50
- }
51
-
52
- return this.each(function(){
53
- var org_elem = $(this);
54
- if(opts.content){
55
- var org_title = opts.content;
56
- } else {
57
- var org_title = org_elem.attr(opts.attribute);
58
- }
59
- if(org_title != ""){
60
- if(!opts.content){
61
- org_elem.removeAttr(opts.attribute); //remove original Attribute
62
- }
63
- var timeout = false;
64
-
65
- if(opts.activation == "hover"){
66
- org_elem.hover(function(){
67
- active_tiptip();
68
- }, function(){
69
- if(!opts.keepAlive){
70
- deactive_tiptip();
71
- }
72
- });
73
- if(opts.keepAlive){
74
- tiptip_holder.hover(function(){}, function(){
75
- deactive_tiptip();
76
- });
77
- }
78
- } else if(opts.activation == "focus"){
79
- org_elem.focus(function(){
80
- active_tiptip();
81
- }).blur(function(){
82
- deactive_tiptip();
83
- });
84
- } else if(opts.activation == "click"){
85
- org_elem.click(function(){
86
- active_tiptip();
87
- return false;
88
- }).hover(function(){},function(){
89
- if(!opts.keepAlive){
90
- deactive_tiptip();
91
- }
92
- });
93
- if(opts.keepAlive){
94
- tiptip_holder.hover(function(){}, function(){
95
- deactive_tiptip();
96
- });
97
- }
98
- }
99
-
100
- function active_tiptip(){
101
- opts.enter.call(this);
102
- tiptip_content.html(org_title);
103
- tiptip_holder.hide().removeAttr("class").css("margin","0");
104
- tiptip_arrow.removeAttr("style");
105
-
106
- var top = parseInt(org_elem.offset()['top']);
107
- var left = parseInt(org_elem.offset()['left']);
108
- var org_width = parseInt(org_elem.outerWidth());
109
- var org_height = parseInt(org_elem.outerHeight());
110
- var tip_w = tiptip_holder.outerWidth();
111
- var tip_h = tiptip_holder.outerHeight();
112
- var w_compare = Math.round((org_width - tip_w) / 2);
113
- var h_compare = Math.round((org_height - tip_h) / 2);
114
- var marg_left = Math.round(left + w_compare);
115
- var marg_top = Math.round(top + org_height + opts.edgeOffset);
116
- var t_class = "";
117
- var arrow_top = "";
118
- var arrow_left = Math.round(tip_w - 12) / 2;
119
-
120
- if(opts.defaultPosition == "bottom"){
121
- t_class = "_bottom";
122
- } else if(opts.defaultPosition == "top"){
123
- t_class = "_top";
124
- } else if(opts.defaultPosition == "left"){
125
- t_class = "_left";
126
- } else if(opts.defaultPosition == "right"){
127
- t_class = "_right";
128
- }
129
-
130
- var right_compare = (w_compare + left) < parseInt($(window).scrollLeft());
131
- var left_compare = (tip_w + left) > parseInt($(window).width());
132
-
133
- if((right_compare && w_compare < 0) || (t_class == "_right" && !left_compare) || (t_class == "_left" && left < (tip_w + opts.edgeOffset + 5))){
134
- t_class = "_right";
135
- arrow_top = Math.round(tip_h - 13) / 2;
136
- arrow_left = -12;
137
- marg_left = Math.round(left + org_width + opts.edgeOffset);
138
- marg_top = Math.round(top + h_compare);
139
- } else if((left_compare && w_compare < 0) || (t_class == "_left" && !right_compare)){
140
- t_class = "_left";
141
- arrow_top = Math.round(tip_h - 13) / 2;
142
- arrow_left = Math.round(tip_w);
143
- marg_left = Math.round(left - (tip_w + opts.edgeOffset + 5));
144
- marg_top = Math.round(top + h_compare);
145
- }
146
-
147
- var top_compare = (top + org_height + opts.edgeOffset + tip_h + 8) > parseInt($(window).height() + $(window).scrollTop());
148
- var bottom_compare = ((top + org_height) - (opts.edgeOffset + tip_h + 8)) < 0;
149
-
150
- if(top_compare || (t_class == "_bottom" && top_compare) || (t_class == "_top" && !bottom_compare)){
151
- if(t_class == "_top" || t_class == "_bottom"){
152
- t_class = "_top";
153
- } else {
154
- t_class = t_class+"_top";
155
- }
156
- arrow_top = tip_h;
157
- marg_top = Math.round(top - (tip_h + 5 + opts.edgeOffset));
158
- } else if(bottom_compare | (t_class == "_top" && bottom_compare) || (t_class == "_bottom" && !top_compare)){
159
- if(t_class == "_top" || t_class == "_bottom"){
160
- t_class = "_bottom";
161
- } else {
162
- t_class = t_class+"_bottom";
163
- }
164
- arrow_top = -12;
165
- marg_top = Math.round(top + org_height + opts.edgeOffset);
166
- }
167
-
168
- if(t_class == "_right_top" || t_class == "_left_top"){
169
- marg_top = marg_top + 5;
170
- } else if(t_class == "_right_bottom" || t_class == "_left_bottom"){
171
- marg_top = marg_top - 5;
172
- }
173
- if(t_class == "_left_top" || t_class == "_left_bottom"){
174
- marg_left = marg_left + 5;
175
- }
176
- tiptip_arrow.css({"margin-left": arrow_left+"px", "margin-top": arrow_top+"px"});
177
- tiptip_holder.css({"margin-left": marg_left+"px", "margin-top": marg_top+"px"}).attr("class","tip"+t_class);
178
-
179
- if (timeout){ clearTimeout(timeout); }
180
- timeout = setTimeout(function(){ tiptip_holder.stop(true,true).fadeIn(opts.fadeIn); }, opts.delay);
181
- }
182
-
183
- function deactive_tiptip(){
184
- opts.exit.call(this);
185
- if (timeout){ clearTimeout(timeout); }
186
- tiptip_holder.fadeOut(opts.fadeOut);
187
- }
188
- }
189
- });
190
- }
191
- })(jQuery);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
admin/assets/js/tipTip/jquery.tipTip.min.js DELETED
@@ -1,21 +0,0 @@
1
- /*
2
- * TipTip
3
- * Copyright 2010 Drew Wilson
4
- * www.drewwilson.com
5
- * code.drewwilson.com/entry/tiptip-jquery-plugin
6
- *
7
- * Version 1.3 - Updated: Mar. 23, 2010
8
- *
9
- * This Plug-In will create a custom tooltip to replace the default
10
- * browser tooltip. It is extremely lightweight and very smart in
11
- * that it detects the edges of the browser window and will make sure
12
- * the tooltip stays within the current window size. As a result the
13
- * tooltip will adjust itself to be displayed above, below, to the left
14
- * or to the right depending on what is necessary to stay within the
15
- * browser window. It is completely customizable as well via CSS.
16
- *
17
- * This TipTip jQuery plug-in is dual licensed under the MIT and GPL licenses:
18
- * http://www.opensource.org/licenses/mit-license.php
19
- * http://www.gnu.org/licenses/gpl.html
20
- */
21
- (function($){$.fn.tipTip=function(options){var defaults={activation:"hover",keepAlive:false,maxWidth:"200px",edgeOffset:3,defaultPosition:"bottom",delay:400,fadeIn:200,fadeOut:200,attribute:"title",content:false,enter:function(){},exit:function(){}};var opts=$.extend(defaults,options);if($("#tiptip_holder").length<=0){var tiptip_holder=$('<div id="tiptip_holder" style="max-width:'+opts.maxWidth+';"></div>');var tiptip_content=$('<div id="tiptip_content"></div>');var tiptip_arrow=$('<div id="tiptip_arrow"></div>');$("body").append(tiptip_holder.html(tiptip_content).prepend(tiptip_arrow.html('<div id="tiptip_arrow_inner"></div>')))}else{var tiptip_holder=$("#tiptip_holder");var tiptip_content=$("#tiptip_content");var tiptip_arrow=$("#tiptip_arrow")}return this.each(function(){var org_elem=$(this);if(opts.content){var org_title=opts.content}else{var org_title=org_elem.attr(opts.attribute)}if(org_title!=""){if(!opts.content){org_elem.removeAttr(opts.attribute)}var timeout=false;if(opts.activation=="hover"){org_elem.hover(function(){active_tiptip()},function(){if(!opts.keepAlive){deactive_tiptip()}});if(opts.keepAlive){tiptip_holder.hover(function(){},function(){deactive_tiptip()})}}else if(opts.activation=="focus"){org_elem.focus(function(){active_tiptip()}).blur(function(){deactive_tiptip()})}else if(opts.activation=="click"){org_elem.click(function(){active_tiptip();return false}).hover(function(){},function(){if(!opts.keepAlive){deactive_tiptip()}});if(opts.keepAlive){tiptip_holder.hover(function(){},function(){deactive_tiptip()})}}function active_tiptip(){opts.enter.call(this);tiptip_content.html(org_title);tiptip_holder.hide().removeAttr("class").css("margin","0");tiptip_arrow.removeAttr("style");var top=parseInt(org_elem.offset()['top']);var left=parseInt(org_elem.offset()['left']);var org_width=parseInt(org_elem.outerWidth());var org_height=parseInt(org_elem.outerHeight());var tip_w=tiptip_holder.outerWidth();var tip_h=tiptip_holder.outerHeight();var w_compare=Math.round((org_width-tip_w)/2);var h_compare=Math.round((org_height-tip_h)/2);var marg_left=Math.round(left+w_compare);var marg_top=Math.round(top+org_height+opts.edgeOffset);var t_class="";var arrow_top="";var arrow_left=Math.round(tip_w-12)/2;if(opts.defaultPosition=="bottom"){t_class="_bottom"}else if(opts.defaultPosition=="top"){t_class="_top"}else if(opts.defaultPosition=="left"){t_class="_left"}else if(opts.defaultPosition=="right"){t_class="_right"}var right_compare=(w_compare+left)<parseInt($(window).scrollLeft());var left_compare=(tip_w+left)>parseInt($(window).width());if((right_compare&&w_compare<0)||(t_class=="_right"&&!left_compare)||(t_class=="_left"&&left<(tip_w+opts.edgeOffset+5))){t_class="_right";arrow_top=Math.round(tip_h-13)/2;arrow_left=-12;marg_left=Math.round(left+org_width+opts.edgeOffset);marg_top=Math.round(top+h_compare)}else if((left_compare&&w_compare<0)||(t_class=="_left"&&!right_compare)){t_class="_left";arrow_top=Math.round(tip_h-13)/2;arrow_left=Math.round(tip_w);marg_left=Math.round(left-(tip_w+opts.edgeOffset+5));marg_top=Math.round(top+h_compare)}var top_compare=(top+org_height+opts.edgeOffset+tip_h+8)>parseInt($(window).height()+$(window).scrollTop());var bottom_compare=((top+org_height)-(opts.edgeOffset+tip_h+8))<0;if(top_compare||(t_class=="_bottom"&&top_compare)||(t_class=="_top"&&!bottom_compare)){if(t_class=="_top"||t_class=="_bottom"){t_class="_top"}else{t_class=t_class+"_top"}arrow_top=tip_h;marg_top=Math.round(top-(tip_h+5+opts.edgeOffset))}else if(bottom_compare|(t_class=="_top"&&bottom_compare)||(t_class=="_bottom"&&!top_compare)){if(t_class=="_top"||t_class=="_bottom"){t_class="_bottom"}else{t_class=t_class+"_bottom"}arrow_top=-12;marg_top=Math.round(top+org_height+opts.edgeOffset)}if(t_class=="_right_top"||t_class=="_left_top"){marg_top=marg_top+5}else if(t_class=="_right_bottom"||t_class=="_left_bottom"){marg_top=marg_top-5}if(t_class=="_left_top"||t_class=="_left_bottom"){marg_left=marg_left+5}tiptip_arrow.css({"margin-left":arrow_left+"px","margin-top":arrow_top+"px"});tiptip_holder.css({"margin-left":marg_left+"px","margin-top":marg_top+"px"}).attr("class","tip"+t_class);if(timeout){clearTimeout(timeout)}timeout=setTimeout(function(){tiptip_holder.stop(true,true).fadeIn(opts.fadeIn)},opts.delay)}function deactive_tiptip(){opts.exit.call(this);if(timeout){clearTimeout(timeout)}tiptip_holder.fadeOut(opts.fadeOut)}}})}})(jQuery);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
admin/assets/js/tipTip/tipTip.css DELETED
@@ -1,113 +0,0 @@
1
- /* TipTip CSS - Version 1.2 */
2
-
3
- #tiptip_holder {
4
- display: none;
5
- position: absolute;
6
- top: 0;
7
- left: 0;
8
- z-index: 99999;
9
- }
10
-
11
- #tiptip_holder.tip_top {
12
- padding-bottom: 5px;
13
- }
14
-
15
- #tiptip_holder.tip_bottom {
16
- padding-top: 5px;
17
- }
18
-
19
- #tiptip_holder.tip_right {
20
- padding-left: 5px;
21
- }
22
-
23
- #tiptip_holder.tip_left {
24
- padding-right: 5px;
25
- }
26
-
27
- #tiptip_content {
28
- font-size: 11px;
29
- color: #fff;
30
- text-shadow: 0 0 2px #000;
31
- padding: 4px 8px;
32
- border: 1px solid rgba(255,255,255,0.25);
33
- background-color: rgb(25,25,25);
34
- background-color: rgba(25,25,25,0.92);
35
- background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, from(transparent), to(#000));
36
- border-radius: 3px;
37
- -webkit-border-radius: 3px;
38
- -moz-border-radius: 3px;
39
- box-shadow: 0 0 3px #555;
40
- -webkit-box-shadow: 0 0 3px #555;
41
- -moz-box-shadow: 0 0 3px #555;
42
- }
43
-
44
- #tiptip_arrow, #tiptip_arrow_inner {
45
- position: absolute;
46
- border-color: transparent;
47
- border-style: solid;
48
- border-width: 6px;
49
- height: 0;
50
- width: 0;
51
- }
52
-
53
- #tiptip_holder.tip_top #tiptip_arrow {
54
- border-top-color: #fff;
55
- border-top-color: rgba(255,255,255,0.35);
56
- }
57
-
58
- #tiptip_holder.tip_bottom #tiptip_arrow {
59
- border-bottom-color: #fff;
60
- border-bottom-color: rgba(255,255,255,0.35);
61
- }
62
-
63
- #tiptip_holder.tip_right #tiptip_arrow {
64
- border-right-color: #fff;
65
- border-right-color: rgba(255,255,255,0.35);
66
- }
67
-
68
- #tiptip_holder.tip_left #tiptip_arrow {
69
- border-left-color: #fff;
70
- border-left-color: rgba(255,255,255,0.35);
71
- }
72
-
73
- #tiptip_holder.tip_top #tiptip_arrow_inner {
74
- margin-top: -7px;
75
- margin-left: -6px;
76
- border-top-color: rgb(25,25,25);
77
- border-top-color: rgba(25,25,25,0.92);
78
- }
79
-
80
- #tiptip_holder.tip_bottom #tiptip_arrow_inner {
81
- margin-top: -5px;
82
- margin-left: -6px;
83
- border-bottom-color: rgb(25,25,25);
84
- border-bottom-color: rgba(25,25,25,0.92);
85
- }
86
-
87
- #tiptip_holder.tip_right #tiptip_arrow_inner {
88
- margin-top: -6px;
89
- margin-left: -5px;
90
- border-right-color: rgb(25,25,25);
91
- border-right-color: rgba(25,25,25,0.92);
92
- }
93
-
94
- #tiptip_holder.tip_left #tiptip_arrow_inner {
95
- margin-top: -6px;
96
- margin-left: -7px;
97
- border-left-color: rgb(25,25,25);
98
- border-left-color: rgba(25,25,25,0.92);
99
- }
100
-
101
- /* Webkit Hacks */
102
- @media screen and (-webkit-min-device-pixel-ratio:0) {
103
- #tiptip_content {
104
- padding: 4px 8px 5px 8px;
105
- background-color: rgba(45,45,45,0.88);
106
- }
107
- #tiptip_holder.tip_bottom #tiptip_arrow_inner {
108
- border-bottom-color: rgba(45,45,45,0.88);
109
- }
110
- #tiptip_holder.tip_top #tiptip_arrow_inner {
111
- border-top-color: rgba(20,20,20,0.92);
112
- }
113
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
admin/includes/fonts_face.php CHANGED
@@ -355,6 +355,7 @@ class A3_Lazy_Load_Fonts_Face extends A3_Lazy_Load_Admin_UI
355
  /* Fonts Face Constructor */
356
  /*-----------------------------------------------------------------------------------*/
357
  public function __construct() {
 
358
 
359
  // Enable Google Font API Key
360
  if ( isset( $_POST[ $this->google_api_key_option . '_enable' ] ) ) {
355
  /* Fonts Face Constructor */
356
  /*-----------------------------------------------------------------------------------*/
357
  public function __construct() {
358
+ parent::__construct();
359
 
360
  // Enable Google Font API Key
361
  if ( isset( $_POST[ $this->google_api_key_option . '_enable' ] ) ) {
admin/less/lib/cssmin.inc.php CHANGED
@@ -766,9 +766,9 @@ class a3_CSSmin
766
  {
767
  if (is_string($size)) {
768
  switch (substr($size, -1)) {
769
- case 'M': case 'm': return $size * 1048576;
770
- case 'K': case 'k': return $size * 1024;
771
- case 'G': case 'g': return $size * 1073741824;
772
  }
773
  }
774
 
766
  {
767
  if (is_string($size)) {
768
  switch (substr($size, -1)) {
769
+ case 'M': case 'm': return (int) $size * 1048576;
770
+ case 'K': case 'k': return (int) $size * 1024;
771
+ case 'G': case 'g': return (int) $size * 1073741824;
772
  }
773
  }
774
 
admin/settings/template-settings/global-settings.php CHANGED
@@ -74,7 +74,9 @@ class A3_Lazy_Load_Global_Settings extends A3_Lazy_Load_Admin_UI
74
  /* Settings Constructor */
75
  /*-----------------------------------------------------------------------------------*/
76
  public function __construct() {
77
- $this->init_form_fields();
 
 
78
  $this->subtab_init();
79
 
80
  $this->form_messages = array(
@@ -190,8 +192,10 @@ class A3_Lazy_Load_Global_Settings extends A3_Lazy_Load_Admin_UI
190
  /*-----------------------------------------------------------------------------------*/
191
  public function init_form_fields() {
192
 
 
 
193
  // Define settings
194
- $this->form_fields = apply_filters( $this->option_name . '_settings_fields', array(
195
  array(
196
  'name' => __( 'Plugin Framework Global Settings', 'a3-lazy-load' ),
197
  'id' => 'plugin_framework_global_box',
@@ -309,7 +313,7 @@ class A3_Lazy_Load_Global_Settings extends A3_Lazy_Load_Admin_UI
309
  array(
310
  'name' => __( 'Skip Images Classes', 'a3-lazy-load' ),
311
  'id' => 'a3l_skip_image_with_class',
312
- 'desc' => __('Find and enter image class name. If more than 1 then comma seperate.<br>Example: image-class1, image-class2', 'a3-lazy-load' ),
313
  'type' => 'text',
314
  'default' => ""
315
  ),
@@ -325,7 +329,6 @@ class A3_Lazy_Load_Global_Settings extends A3_Lazy_Load_Admin_UI
325
  'unchecked_label' => __( 'OFF', 'a3-lazy-load' ),
326
  ),
327
 
328
-
329
  array(
330
  'name' => __( 'Lazy Load Videos and iframes', 'a3-lazy-load' ),
331
  'type' => 'heading',
@@ -373,7 +376,7 @@ class A3_Lazy_Load_Global_Settings extends A3_Lazy_Load_Admin_UI
373
  array(
374
  'name' => __( 'Skip Videos Classes', 'a3-lazy-load' ),
375
  'id' => 'a3l_skip_video_with_class',
376
- 'desc' => __('Find and enter video class name. If more than 1 then comma seperate.<br>Example: video-class1, video-class2', 'a3-lazy-load' ),
377
  'type' => 'text',
378
  'default' => ""
379
  ),
@@ -388,7 +391,62 @@ class A3_Lazy_Load_Global_Settings extends A3_Lazy_Load_Admin_UI
388
  'checked_label' => __( 'ON', 'a3-lazy-load' ),
389
  'unchecked_label' => __( 'OFF', 'a3-lazy-load' ),
390
  ),
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
391
 
 
392
  array(
393
  'name' => __( 'Script Load Optimization', 'a3-lazy-load' ),
394
  'type' => 'heading',
@@ -477,8 +535,9 @@ class A3_Lazy_Load_Global_Settings extends A3_Lazy_Load_Admin_UI
477
  'default' => 0,
478
  'css' => 'width: 80px;'
479
  ),
 
480
 
481
- ));
482
  }
483
 
484
  public function include_script() {
74
  /* Settings Constructor */
75
  /*-----------------------------------------------------------------------------------*/
76
  public function __construct() {
77
+
78
+ add_action( 'init', array( $this, 'init_form_fields' ), 100 );
79
+ //$this->init_form_fields();
80
  $this->subtab_init();
81
 
82
  $this->form_messages = array(
192
  /*-----------------------------------------------------------------------------------*/
193
  public function init_form_fields() {
194
 
195
+ global $a3_lazy_load_excludes;
196
+
197
  // Define settings
198
+ $this->form_fields = array(
199
  array(
200
  'name' => __( 'Plugin Framework Global Settings', 'a3-lazy-load' ),
201
  'id' => 'plugin_framework_global_box',
313
  array(
314
  'name' => __( 'Skip Images Classes', 'a3-lazy-load' ),
315
  'id' => 'a3l_skip_image_with_class',
316
+ 'desc' => __('Find and enter image class name. If more than 1 then comma seperate.<br>Example: image-class1, image-class2. Supports Wild Cards image*, .*thumbnail', 'a3-lazy-load' ),
317
  'type' => 'text',
318
  'default' => ""
319
  ),
329
  'unchecked_label' => __( 'OFF', 'a3-lazy-load' ),
330
  ),
331
 
 
332
  array(
333
  'name' => __( 'Lazy Load Videos and iframes', 'a3-lazy-load' ),
334
  'type' => 'heading',
376
  array(
377
  'name' => __( 'Skip Videos Classes', 'a3-lazy-load' ),
378
  'id' => 'a3l_skip_video_with_class',
379
+ 'desc' => __('Find and enter video class name. If more than 1 then comma seperate.<br>Example: video-class1, video-class2. Supports WildCards video*, .*video', 'a3-lazy-load' ),
380
  'type' => 'text',
381
  'default' => ""
382
  ),
391
  'checked_label' => __( 'ON', 'a3-lazy-load' ),
392
  'unchecked_label' => __( 'OFF', 'a3-lazy-load' ),
393
  ),
394
+ );
395
+
396
+ $this->form_fields = array_merge( $this->form_fields, array(
397
+ array(
398
+ 'name' => __( "Exclude by URI's and Page Types", 'a3-lazy-load' ),
399
+ 'type' => 'heading',
400
+ 'class' => 'a3l_apply_to_load_container',
401
+ 'id' => 'a3l_exclude_box',
402
+ 'is_box' => true,
403
+ ),
404
+ array(
405
+ 'name' => __( 'Exclude by URIs', 'a3-lazy-load' ),
406
+ 'type' => 'heading',
407
+ 'desc' => __("Add strings, 1 per line (not full filenames) that are to be excluded from Lazy Load. Example, if your URL looks like this /domain-name/2018/example-post/ and you just want to exclude that post enter /example-post/. If you want to exclude all posts in /2018/ just year enter /2018/ and Lazy Load won't be applied to /example-post/ and all other posts prefixed by /2018/ in the URL.", 'a3-lazy-load' ),
408
+ ),
409
+ array(
410
+ 'name' => __( 'URIs', 'a3-lazy-load' ),
411
+ 'id' => 'a3l_uris_exclude',
412
+ 'type' => 'textarea',
413
+ 'css' => 'width: 100%; max-width: 90%;',
414
+ 'custom_attributes' => array(
415
+ 'cols' => 50,
416
+ 'rows' => 10,
417
+ ),
418
+ 'placeholder' => __('Enter each URI per row', 'a3-lazy-load' ),
419
+ ),
420
+ array(
421
+ 'name' => __( 'Page Type Exclusions', 'a3-lazy-load' ),
422
+ 'type' => 'heading',
423
+ 'desc' => __("Do not apply lazy load for the following page types", 'a3-lazy-load' ),
424
+ ),
425
+ ) );
426
+
427
+ $objects_exclude_options = array();
428
+ $objects_list = $a3_lazy_load_excludes->get_hard_objects_list();
429
+ $post_types_list = $a3_lazy_load_excludes->get_post_types_list();
430
+ $objects_list = array_merge( $objects_list, $post_types_list );
431
+
432
+ if ( ! empty( $objects_list ) ) {
433
+ foreach ( $objects_list as $object_key => $object_name ) {
434
+ $objects_exclude_options[] = array(
435
+ 'name' => $object_name,
436
+ 'id' => 'a3l_objects_exclude['.$object_key.']',
437
+ 'type' => 'onoff_checkbox',
438
+ 'default' => 0,
439
+ 'checked_value' => 1,
440
+ 'unchecked_value' => 0,
441
+ 'checked_label' => __( 'ON', 'a3-lazy-load' ),
442
+ 'unchecked_label' => __( 'OFF', 'a3-lazy-load' ),
443
+ );
444
+ }
445
+
446
+ $this->form_fields = array_merge( $this->form_fields, $objects_exclude_options );
447
+ }
448
 
449
+ $this->form_fields = array_merge( $this->form_fields, array(
450
  array(
451
  'name' => __( 'Script Load Optimization', 'a3-lazy-load' ),
452
  'type' => 'heading',
535
  'default' => 0,
536
  'css' => 'width: 80px;'
537
  ),
538
+ ) );
539
 
540
+ $this->form_fields = apply_filters( $this->option_name . '_settings_fields', $this->form_fields );
541
  }
542
 
543
  public function include_script() {
assets/js/jquery.lazyloadxt.extend.js CHANGED
@@ -1,5 +1,6 @@
1
  jQuery.lazyLoadXT.updateEvent = 'load orientationchange resize scroll touchmove focus click customlazyloadxtevent';
2
  jQuery.lazyLoadXT.edgeY = a3_lazyload_extend_params.edgeY;
 
3
 
4
  jQuery( document ).ready( function( $ ) {
5
  jQuery(document).on( 'mouseenter', '.site-header-cart', function() {
1
  jQuery.lazyLoadXT.updateEvent = 'load orientationchange resize scroll touchmove focus click customlazyloadxtevent';
2
  jQuery.lazyLoadXT.edgeY = a3_lazyload_extend_params.edgeY;
3
+ jQuery.lazyLoadXT.srcsetExtended = false;
4
 
5
  jQuery( document ).ready( function( $ ) {
6
  jQuery(document).on( 'mouseenter', '.site-header-cart', function() {
assets/js/jquery.lazyloadxt.extra.js ADDED
@@ -0,0 +1,348 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*! Lazy Load XT v1.1.0 2016-01-12
2
+ * http://ressio.github.io/lazy-load-xt
3
+ * (C) 2016 RESS.io
4
+ * Licensed under MIT */
5
+
6
+ (function ($, window, document, undefined) {
7
+ // options
8
+ var lazyLoadXT = 'lazyLoadXT',
9
+ dataLazied = 'lazied',
10
+ load_error = 'load error',
11
+ classLazyHidden = 'lazy-hidden',
12
+ docElement = document.documentElement || document.body,
13
+ // force load all images in Opera Mini and some mobile browsers without scroll event or getBoundingClientRect()
14
+ forceLoad = (window.onscroll === undefined || !!window.operamini || !docElement.getBoundingClientRect),
15
+ options = {
16
+ autoInit: true, // auto initialize in $.ready
17
+ selector: 'img[data-src]', // selector for lazyloading elements
18
+ blankImage: 'data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7',
19
+ throttle: 99, // interval (ms) for changes check
20
+ forceLoad: forceLoad, // force auto load all images
21
+
22
+ loadEvent: 'pageshow', // check AJAX-loaded content in jQueryMobile
23
+ updateEvent: 'load orientationchange resize scroll touchmove focus', // page-modified events
24
+ forceEvent: 'lazyloadall', // force loading of all elements
25
+
26
+ //onstart: null,
27
+ oninit: {removeClass: 'lazy'}, // init handler
28
+ onshow: {addClass: classLazyHidden}, // start loading handler
29
+ onload: {removeClass: classLazyHidden, addClass: 'lazy-loaded'}, // load success handler
30
+ onerror: {removeClass: classLazyHidden}, // error handler
31
+ //oncomplete: null, // complete handler
32
+
33
+ //scrollContainer: undefined,
34
+ checkDuplicates: true
35
+ },
36
+ elementOptions = {
37
+ srcAttr: 'data-src',
38
+ edgeX: 0,
39
+ edgeY: 0,
40
+ visibleOnly: true
41
+ },
42
+ $window = $(window),
43
+ $isFunction = $.isFunction,
44
+ $extend = $.extend,
45
+ $data = $.data || function (el, name) {
46
+ return $(el).data(name);
47
+ },
48
+ elements = [],
49
+ topLazy = 0,
50
+ /*
51
+ waitingMode=0 : no setTimeout
52
+ waitingMode=1 : setTimeout, no deferred events
53
+ waitingMode=2 : setTimeout, deferred events
54
+ */
55
+ waitingMode = 0;
56
+
57
+ $[lazyLoadXT] = $extend(options, elementOptions, $[lazyLoadXT]);
58
+
59
+ /**
60
+ * Return options.prop if obj.prop is undefined, otherwise return obj.prop
61
+ * @param {*} obj
62
+ * @param {*} prop
63
+ * @returns *
64
+ */
65
+ function getOrDef(obj, prop) {
66
+ return obj[prop] === undefined ? options[prop] : obj[prop];
67
+ }
68
+
69
+ /**
70
+ * @returns {number}
71
+ */
72
+ function scrollTop() {
73
+ var scroll = window.pageYOffset;
74
+ return (scroll === undefined) ? docElement.scrollTop : scroll;
75
+ }
76
+
77
+ /**
78
+ * Add new elements to lazy-load list:
79
+ * $(elements).lazyLoadXT() or $(window).lazyLoadXT()
80
+ *
81
+ * @param {object} [overrides] override global options
82
+ */
83
+ $.fn[lazyLoadXT] = function (overrides) {
84
+ overrides = overrides || {};
85
+
86
+ var blankImage = getOrDef(overrides, 'blankImage'),
87
+ checkDuplicates = getOrDef(overrides, 'checkDuplicates'),
88
+ scrollContainer = getOrDef(overrides, 'scrollContainer'),
89
+ forceShow = getOrDef(overrides, 'show'),
90
+ elementOptionsOverrides = {},
91
+ prop;
92
+
93
+ // empty overrides.scrollContainer is supported by both jQuery and Zepto
94
+ $(scrollContainer).on('scroll', queueCheckLazyElements);
95
+
96
+ for (prop in elementOptions) {
97
+ elementOptionsOverrides[prop] = getOrDef(overrides, prop);
98
+ }
99
+
100
+ return this.each(function (index, el) {
101
+ if (el === window) {
102
+ $(options.selector).lazyLoadXT(overrides);
103
+ } else {
104
+ var duplicate = checkDuplicates && $data(el, dataLazied),
105
+ $el = $(el).data(dataLazied, forceShow ? -1 : 1);
106
+
107
+ // prevent duplicates
108
+ if (duplicate) {
109
+ queueCheckLazyElements();
110
+ return;
111
+ }
112
+
113
+ if (blankImage && el.tagName === 'IMG' && !el.src) {
114
+ el.src = blankImage;
115
+ }
116
+
117
+ // clone elementOptionsOverrides object
118
+ $el[lazyLoadXT] = $extend({}, elementOptionsOverrides);
119
+
120
+ triggerEvent('init', $el);
121
+
122
+ elements.push($el);
123
+ queueCheckLazyElements();
124
+ }
125
+ });
126
+ };
127
+
128
+
129
+ /**
130
+ * Process function/object event handler
131
+ * @param {string} event suffix
132
+ * @param {jQuery} $el
133
+ */
134
+ function triggerEvent(event, $el) {
135
+ var handler = options['on' + event];
136
+ if (handler) {
137
+ if ($isFunction(handler)) {
138
+ handler.call($el[0]);
139
+ } else {
140
+ if (handler.addClass) {
141
+ $el.addClass(handler.addClass);
142
+ }
143
+ if (handler.removeClass) {
144
+ $el.removeClass(handler.removeClass);
145
+ }
146
+ }
147
+ }
148
+
149
+ $el.trigger('lazy' + event, [$el]);
150
+
151
+ // queue next check as images may be resized after loading of actual file
152
+ queueCheckLazyElements();
153
+ }
154
+
155
+
156
+ /**
157
+ * Trigger onload/onerror handler
158
+ * @param {Event} e
159
+ */
160
+ function triggerLoadOrError(e) {
161
+ triggerEvent(e.type, $(this).off(load_error, triggerLoadOrError));
162
+ }
163
+
164
+
165
+ /**
166
+ * Load visible elements
167
+ * @param {bool} [force] loading of all elements
168
+ */
169
+ function checkLazyElements(force) {
170
+ if (!elements.length) {
171
+ return;
172
+ }
173
+
174
+ force = force || options.forceLoad;
175
+
176
+ topLazy = Infinity;
177
+
178
+ var viewportTop = scrollTop(),
179
+ viewportHeight = window.innerHeight || docElement.clientHeight,
180
+ viewportWidth = window.innerWidth || docElement.clientWidth,
181
+ i,
182
+ length;
183
+
184
+ for (i = 0, length = elements.length; i < length; i++) {
185
+ var $el = elements[i],
186
+ el = $el[0],
187
+ objData = $el[lazyLoadXT],
188
+ removeNode = false,
189
+ visible = force || $data(el, dataLazied) < 0,
190
+ topEdge;
191
+
192
+ // remove items that are not in DOM
193
+ if (!$.contains(docElement, el)) {
194
+ removeNode = true;
195
+ } else if (force || !objData.visibleOnly || el.offsetWidth || el.offsetHeight) {
196
+
197
+ if (!visible) {
198
+ var elPos = el.getBoundingClientRect(),
199
+ edgeX = objData.edgeX,
200
+ edgeY = objData.edgeY;
201
+
202
+ topEdge = (elPos.top + viewportTop - edgeY) - viewportHeight;
203
+
204
+ visible = (topEdge <= viewportTop && elPos.bottom > -edgeY &&
205
+ elPos.left <= viewportWidth + edgeX && elPos.right > -edgeX);
206
+ }
207
+
208
+ if (visible) {
209
+ $el.on(load_error, triggerLoadOrError);
210
+
211
+ triggerEvent('show', $el);
212
+
213
+ var srcAttr = objData.srcAttr,
214
+ src = $isFunction(srcAttr) ? srcAttr($el) : el.getAttribute(srcAttr);
215
+
216
+ if (src) {
217
+ el.src = src;
218
+ }
219
+
220
+ removeNode = true;
221
+ } else {
222
+ if (topEdge < topLazy) {
223
+ topLazy = topEdge;
224
+ }
225
+ }
226
+ }
227
+
228
+ if (removeNode) {
229
+ $data(el, dataLazied, 0);
230
+ elements.splice(i--, 1);
231
+ length--;
232
+ }
233
+ }
234
+
235
+ if (!length) {
236
+ triggerEvent('complete', $(docElement));
237
+ }
238
+ }
239
+
240
+
241
+ /**
242
+ * Run check of lazy elements after timeout
243
+ */
244
+ function timeoutLazyElements() {
245
+ if (waitingMode > 1) {
246
+ waitingMode = 1;
247
+ checkLazyElements();
248
+ setTimeout(timeoutLazyElements, options.throttle);
249
+ } else {
250
+ waitingMode = 0;
251
+ }
252
+ }
253
+
254
+
255
+ /**
256
+ * Queue check of lazy elements because of event e
257
+ * @param {Event} [e]
258
+ */
259
+ function queueCheckLazyElements(e) {
260
+ if (!elements.length) {
261
+ return;
262
+ }
263
+
264
+ // fast check for scroll event without new visible elements
265
+ if (e && e.type === 'scroll' && e.currentTarget === window) {
266
+ if (topLazy >= scrollTop()) {
267
+ return;
268
+ }
269
+ }
270
+
271
+ if (!waitingMode) {
272
+ setTimeout(timeoutLazyElements, 0);
273
+ }
274
+ waitingMode = 2;
275
+ }
276
+
277
+
278
+ /**
279
+ * Initialize list of hidden elements
280
+ */
281
+ function initLazyElements() {
282
+ $window.lazyLoadXT();
283
+ }
284
+
285
+
286
+ /**
287
+ * Loading of all elements
288
+ */
289
+ function forceLoadAll() {
290
+ checkLazyElements(true);
291
+ }
292
+
293
+
294
+ /**
295
+ * Initialization
296
+ */
297
+ $(document).ready(function () {
298
+ triggerEvent('start', $window);
299
+
300
+ $window
301
+ .on(options.updateEvent, queueCheckLazyElements)
302
+ .on(options.forceEvent, forceLoadAll);
303
+
304
+ $(document).on(options.updateEvent, queueCheckLazyElements);
305
+
306
+ if (options.autoInit) {
307
+ $window.on(options.loadEvent, initLazyElements);
308
+ initLazyElements(); // standard initialization
309
+ }
310
+ });
311
+
312
+ })(window.jQuery || window.Zepto || window.$, window, document);
313
+
314
+
315
+ (function ($) {
316
+ var options = $.lazyLoadXT;
317
+
318
+ options.selector += ',video,iframe[data-src],embed[data-src]';
319
+ options.videoPoster = 'data-poster';
320
+
321
+ $(document).on('lazyshow', 'video', function (e, $el) {
322
+ var srcAttr = $el.lazyLoadXT.srcAttr,
323
+ isFuncSrcAttr = $.isFunction(srcAttr),
324
+ changed = false;
325
+
326
+ $el.attr('poster', $el.attr(options.videoPoster));
327
+ $el.children('source,track')
328
+ .each(function (index, el) {
329
+ var $child = $(el),
330
+ src = isFuncSrcAttr ? srcAttr($child) : $child.attr(srcAttr);
331
+ if (src) {
332
+ $child.attr('src', src);
333
+ changed = true;
334
+ }
335
+ });
336
+
337
+ // reload video
338
+ if (changed && typeof $(this).attr('preload') !== 'undefined' && 'none' != $(this).attr('preload') ) {
339
+ this.load();
340
+ }
341
+ $(this).removeClass('lazy-hidden');
342
+ });
343
+
344
+ $(document).on('lazyshow', 'embed', function (e, $el) {
345
+ $(this).removeClass('lazy-hidden');
346
+ });
347
+
348
+ })(window.jQuery || window.Zepto || window.$);
assets/js/jquery.lazyloadxt.extra.min.js ADDED
@@ -0,0 +1,2 @@
 
 
1
+ /* Lazy Load XT 1.1.0 | MIT License */
2
+ !function(m,y,e,o){var p="lazyLoadXT",w="lazied",z="load error",t="lazy-hidden",C=e.documentElement||e.body,b={autoInit:!0,selector:"img[data-src]",blankImage:"data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7",throttle:99,forceLoad:y.onscroll===o||!!y.operamini||!C.getBoundingClientRect,loadEvent:"pageshow",updateEvent:"load orientationchange resize scroll touchmove focus",forceEvent:"lazyloadall",oninit:{removeClass:"lazy"},onshow:{addClass:t},onload:{removeClass:t,addClass:"lazy-loaded"},onerror:{removeClass:t},checkDuplicates:!0},n={srcAttr:"data-src",edgeX:0,edgeY:0,visibleOnly:!0},a=m(y),E=m.isFunction,d=m.extend,T=m.data||function(e,t){return m(e).data(t)},L=[],I=0,r=0;function c(e,t){return e[t]===o?b[t]:e[t]}function X(){var e=y.pageYOffset;return e===o?C.scrollTop:e}function B(e,t){var o=b["on"+e];o&&(E(o)?o.call(t[0]):(o.addClass&&t.addClass(o.addClass),o.removeClass&&t.removeClass(o.removeClass))),t.trigger("lazy"+e,[t]),u()}function k(e){B(e.type,m(this).off(z,k))}function i(e){if(L.length){e=e||b.forceLoad,I=1/0;var t,o,n=X(),a=y.innerHeight||C.clientHeight,r=y.innerWidth||C.clientWidth;for(t=0,o=L.length;t<o;t++){var i,s=L[t],l=s[0],d=s[p],c=!1,u=e||T(l,w)<0;if(m.contains(C,l)){if(e||!d.visibleOnly||l.offsetWidth||l.offsetHeight){if(!u){var f=l.getBoundingClientRect(),h=d.edgeX,v=d.edgeY;u=(i=f.top+n-v-a)<=n&&f.bottom>-v&&f.left<=r+h&&f.right>-h}if(u){s.on(z,k),B("show",s);var A=d.srcAttr,g=E(A)?A(s):l.getAttribute(A);g&&(l.src=g),c=!0}else i<I&&(I=i)}}else c=!0;c&&(T(l,w,0),L.splice(t--,1),o--)}o||B("complete",m(C))}}function s(){1<r?(r=1,i(),setTimeout(s,b.throttle)):r=0}function u(e){L.length&&(e&&"scroll"===e.type&&e.currentTarget===y&&I>=X()||(r||setTimeout(s,0),r=2))}function l(){a.lazyLoadXT()}function f(){i(!0)}m[p]=d(b,n,m[p]),m.fn[p]=function(a){var e,r=c(a=a||{},"blankImage"),i=c(a,"checkDuplicates"),t=c(a,"scrollContainer"),s=c(a,"show"),l={};for(e in m(t).on("scroll",u),n)l[e]=c(a,e);return this.each(function(e,t){if(t===y)m(b.selector).lazyLoadXT(a);else{var o=i&&T(t,w),n=m(t).data(w,s?-1:1);if(o)return void u();r&&"IMG"===t.tagName&&!t.src&&(t.src=r),n[p]=d({},l),B("init",n),L.push(n),u()}})},m(e).ready(function(){B("start",a),a.on(b.updateEvent,u).on(b.forceEvent,f),m(e).on(b.updateEvent,u),b.autoInit&&(a.on(b.loadEvent,l),l())})}(window.jQuery||window.Zepto||window.$,window,document),function(s){var o=s.lazyLoadXT;o.selector+=",video,iframe[data-src],embed[data-src]",o.videoPoster="data-poster",s(document).on("lazyshow","video",function(e,t){var a=t.lazyLoadXT.srcAttr,r=s.isFunction(a),i=!1;t.attr("poster",t.attr(o.videoPoster)),t.children("source,track").each(function(e,t){var o=s(t),n=r?a(o):o.attr(a);n&&(o.attr("src",n),i=!0)}),i&&void 0!==s(this).attr("preload")&&"none"!=s(this).attr("preload")&&this.load(),s(this).removeClass("lazy-hidden")}),s(document).on("lazyshow","embed",function(e,t){s(this).removeClass("lazy-hidden")})}(window.jQuery||window.Zepto||window.$);
assets/js/jquery.lazyloadxt.js CHANGED
@@ -1,6 +1,6 @@
1
- /*! Lazy Load XT v1.0.6 2014-11-19
2
  * http://ressio.github.io/lazy-load-xt
3
- * (C) 2014 RESS.io
4
  * Licensed under MIT */
5
 
6
  (function ($, window, document, undefined) {
@@ -21,7 +21,7 @@
21
 
22
  loadEvent: 'pageshow', // check AJAX-loaded content in jQueryMobile
23
  updateEvent: 'load orientationchange resize scroll touchmove focus', // page-modified events
24
- forceEvent: '', // force loading of all elements
25
 
26
  //onstart: null,
27
  oninit: {removeClass: 'lazy'}, // init handler
@@ -45,15 +45,6 @@
45
  $data = $.data || function (el, name) {
46
  return $(el).data(name);
47
  },
48
- // $.contains is not included into DOMtastic, so implement it there
49
- $contains = $.contains || function (parent, el) {
50
- while (el = el.parentNode) {
51
- if (el === parent) {
52
- return true;
53
- }
54
- }
55
- return false;
56
- },
57
  elements = [],
58
  topLazy = 0,
59
  /*
@@ -95,6 +86,7 @@
95
  var blankImage = getOrDef(overrides, 'blankImage'),
96
  checkDuplicates = getOrDef(overrides, 'checkDuplicates'),
97
  scrollContainer = getOrDef(overrides, 'scrollContainer'),
 
98
  elementOptionsOverrides = {},
99
  prop;
100
 
@@ -109,13 +101,15 @@
109
  if (el === window) {
110
  $(options.selector).lazyLoadXT(overrides);
111
  } else {
 
 
 
112
  // prevent duplicates
113
- if (checkDuplicates && $data(el, dataLazied)) {
 
114
  return;
115
  }
116
 
117
- var $el = $(el).data(dataLazied, 1);
118
-
119
  if (blankImage && el.tagName === 'IMG' && !el.src) {
120
  el.src = blankImage;
121
  }
@@ -126,6 +120,7 @@
126
  triggerEvent('init', $el);
127
 
128
  elements.push($el);
 
129
  }
130
  });
131
  };
@@ -191,11 +186,11 @@
191
  el = $el[0],
192
  objData = $el[lazyLoadXT],
193
  removeNode = false,
194
- visible = force,
195
  topEdge;
196
 
197
  // remove items that are not in DOM
198
- if (!$contains(docElement, el)) {
199
  removeNode = true;
200
  } else if (force || !objData.visibleOnly || el.offsetWidth || el.offsetHeight) {
201
 
@@ -211,12 +206,14 @@
211
  }
212
 
213
  if (visible) {
 
 
214
  triggerEvent('show', $el);
215
 
216
  var srcAttr = objData.srcAttr,
217
  src = $isFunction(srcAttr) ? srcAttr($el) : el.getAttribute(srcAttr);
 
218
  if (src) {
219
- $el.on(load_error, triggerLoadOrError);
220
  el.src = src;
221
  }
222
 
@@ -229,6 +226,7 @@
229
  }
230
 
231
  if (removeNode) {
 
232
  elements.splice(i--, 1);
233
  length--;
234
  }
@@ -300,19 +298,20 @@
300
  triggerEvent('start', $window);
301
 
302
  $window
303
- .on(options.loadEvent, initLazyElements)
304
  .on(options.updateEvent, queueCheckLazyElements)
305
  .on(options.forceEvent, forceLoadAll);
306
 
307
  $(document).on(options.updateEvent, queueCheckLazyElements);
308
 
309
  if (options.autoInit) {
 
310
  initLazyElements(); // standard initialization
311
  }
312
  });
313
 
314
  })(window.jQuery || window.Zepto || window.$, window, document);
315
 
 
316
  (function ($) {
317
  var options = $.lazyLoadXT;
318
 
@@ -321,17 +320,22 @@
321
 
322
  $(document).on('lazyshow', 'video', function (e, $el) {
323
  var srcAttr = $el.lazyLoadXT.srcAttr,
324
- isFuncSrcAttr = $.isFunction(srcAttr);
 
325
 
326
- $el
327
- .attr('poster', $el.attr(options.videoPoster))
328
- .children('source,track')
329
  .each(function (index, el) {
330
- var $child = $(el);
331
- $child.attr('src', isFuncSrcAttr ? srcAttr($child) : $child.attr(srcAttr));
 
 
 
 
332
  });
 
333
  // reload video
334
- if ( typeof $(this).attr('preload') !== 'undefined' && 'none' != $(this).attr('preload') ) {
335
  this.load();
336
  }
337
  $(this).removeClass('lazy-hidden');
1
+ /*! Lazy Load XT v1.1.0 2016-01-12
2
  * http://ressio.github.io/lazy-load-xt
3
+ * (C) 2016 RESS.io
4
  * Licensed under MIT */
5
 
6
  (function ($, window, document, undefined) {
21
 
22
  loadEvent: 'pageshow', // check AJAX-loaded content in jQueryMobile
23
  updateEvent: 'load orientationchange resize scroll touchmove focus', // page-modified events
24
+ forceEvent: 'lazyloadall', // force loading of all elements
25
 
26
  //onstart: null,
27
  oninit: {removeClass: 'lazy'}, // init handler
45
  $data = $.data || function (el, name) {
46
  return $(el).data(name);
47
  },
 
 
 
 
 
 
 
 
 
48
  elements = [],
49
  topLazy = 0,
50
  /*
86
  var blankImage = getOrDef(overrides, 'blankImage'),
87
  checkDuplicates = getOrDef(overrides, 'checkDuplicates'),
88
  scrollContainer = getOrDef(overrides, 'scrollContainer'),
89
+ forceShow = getOrDef(overrides, 'show'),
90
  elementOptionsOverrides = {},
91
  prop;
92
 
101
  if (el === window) {
102
  $(options.selector).lazyLoadXT(overrides);
103
  } else {
104
+ var duplicate = checkDuplicates && $data(el, dataLazied),
105
+ $el = $(el).data(dataLazied, forceShow ? -1 : 1);
106
+
107
  // prevent duplicates
108
+ if (duplicate) {
109
+ queueCheckLazyElements();
110
  return;
111
  }
112
 
 
 
113
  if (blankImage && el.tagName === 'IMG' && !el.src) {
114
  el.src = blankImage;
115
  }
120
  triggerEvent('init', $el);
121
 
122
  elements.push($el);
123
+ queueCheckLazyElements();
124
  }
125
  });
126
  };
186
  el = $el[0],
187
  objData = $el[lazyLoadXT],
188
  removeNode = false,
189
+ visible = force || $data(el, dataLazied) < 0,
190
  topEdge;
191
 
192
  // remove items that are not in DOM
193
+ if (!$.contains(docElement, el)) {
194
  removeNode = true;
195
  } else if (force || !objData.visibleOnly || el.offsetWidth || el.offsetHeight) {
196
 
206
  }
207
 
208
  if (visible) {
209
+ $el.on(load_error, triggerLoadOrError);
210
+
211
  triggerEvent('show', $el);
212
 
213
  var srcAttr = objData.srcAttr,
214
  src = $isFunction(srcAttr) ? srcAttr($el) : el.getAttribute(srcAttr);
215
+
216
  if (src) {
 
217
  el.src = src;
218
  }
219
 
226
  }
227
 
228
  if (removeNode) {
229
+ $data(el, dataLazied, 0);
230
  elements.splice(i--, 1);
231
  length--;
232
  }
298
  triggerEvent('start', $window);
299
 
300
  $window
 
301
  .on(options.updateEvent, queueCheckLazyElements)
302
  .on(options.forceEvent, forceLoadAll);
303
 
304
  $(document).on(options.updateEvent, queueCheckLazyElements);
305
 
306
  if (options.autoInit) {
307
+ $window.on(options.loadEvent, initLazyElements);
308
  initLazyElements(); // standard initialization
309
  }
310
  });
311
 
312
  })(window.jQuery || window.Zepto || window.$, window, document);
313
 
314
+
315
  (function ($) {
316
  var options = $.lazyLoadXT;
317
 
320
 
321
  $(document).on('lazyshow', 'video', function (e, $el) {
322
  var srcAttr = $el.lazyLoadXT.srcAttr,
323
+ isFuncSrcAttr = $.isFunction(srcAttr),
324
+ changed = false;
325
 
326
+ $el.attr('poster', $el.attr(options.videoPoster));
327
+ $el.children('source,track')
 
328
  .each(function (index, el) {
329
+ var $child = $(el),
330
+ src = isFuncSrcAttr ? srcAttr($child) : $child.attr(srcAttr);
331
+ if (src) {
332
+ $child.attr('src', src);
333
+ changed = true;
334
+ }
335
  });
336
+
337
  // reload video
338
+ if (changed && typeof $(this).attr('preload') !== 'undefined' && 'none' != $(this).attr('preload') ) {
339
  this.load();
340
  }
341
  $(this).removeClass('lazy-hidden');
assets/js/jquery.lazyloadxt.min.js CHANGED
@@ -1 +1,2 @@
1
- (function(e,t,n,r){function w(e,t){return e[t]===r?l[t]:e[t]}function E(){var e=t.pageYOffset;return e===r?a.scrollTop:e}function S(e,t){var n=l["on"+e];if(n){if(p(n)){n.call(t[0])}else{if(n.addClass){t.addClass(n.addClass)}if(n.removeClass){t.removeClass(n.removeClass)}}}t.trigger("lazy"+e,[t]);C()}function x(t){S(t.type,e(this).off(o,x))}function T(n){if(!g.length){return}n=n||l.forceLoad;y=Infinity;var r=E(),s=t.innerHeight||a.clientHeight,u=t.innerWidth||a.clientWidth,f,c;for(f=0,c=g.length;f<c;f++){var h=g[f],d=h[0],v=h[i],b=false,w=n,T;if(!m(a,d)){b=true}else if(n||!v.visibleOnly||d.offsetWidth||d.offsetHeight){if(!w){var N=d.getBoundingClientRect(),C=v.edgeX,k=v.edgeY;T=N.top+r-k-s;w=T<=r&&N.bottom>-k&&N.left<=u+C&&N.right>-C}if(w){S("show",h);var L=v.srcAttr,A=p(L)?L(h):d.getAttribute(L);if(A){h.on(o,x);d.src=A}b=true}else{if(T<y){y=T}}}if(b){g.splice(f--,1);c--}}if(!c){S("complete",e(a))}}function N(){if(b>1){b=1;T();setTimeout(N,l.throttle)}else{b=0}}function C(e){if(!g.length){return}if(e&&e.type==="scroll"&&e.currentTarget===t){if(y>=E()){return}}if(!b){setTimeout(N,0)}b=2}function k(){h.lazyLoadXT()}function L(){T(true)}var i="lazyLoadXT",s="lazied",o="load error",u="lazy-hidden",a=n.documentElement||n.body,f=t.onscroll===r||!!t.operamini||!a.getBoundingClientRect,l={autoInit:true,selector:"img[data-src]",blankImage:"data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7",throttle:99,forceLoad:f,loadEvent:"pageshow",updateEvent:"load orientationchange resize scroll touchmove focus",forceEvent:"",oninit:{removeClass:"lazy"},onshow:{addClass:u},onload:{removeClass:u,addClass:"lazy-loaded"},onerror:{removeClass:u},checkDuplicates:true},c={srcAttr:"data-src",edgeX:0,edgeY:0,visibleOnly:true},h=e(t),p=e.isFunction,d=e.extend,v=e.data||function(t,n){return e(t).data(n)},m=e.contains||function(e,t){while(t=t.parentNode){if(t===e){return true}}return false},g=[],y=0,b=0;e[i]=d(l,c,e[i]);e.fn[i]=function(n){n=n||{};var r=w(n,"blankImage"),o=w(n,"checkDuplicates"),u=w(n,"scrollContainer"),a={},f;e(u).on("scroll",C);for(f in c){a[f]=w(n,f)}return this.each(function(u,f){if(f===t){e(l.selector).lazyLoadXT(n)}else{if(o&&v(f,s)){return}var c=e(f).data(s,1);if(r&&f.tagName==="IMG"&&!f.src){f.src=r}c[i]=d({},a);S("init",c);g.push(c)}})};e(n).ready(function(){S("start",h);h.on(l.loadEvent,k).on(l.updateEvent,C).on(l.forceEvent,L);e(n).on(l.updateEvent,C);if(l.autoInit){k()}})})(window.jQuery||window.Zepto||window.$,window,document);(function(e){var t=e.lazyLoadXT;t.selector+=",video,iframe[data-src],embed[data-src]";t.videoPoster="data-poster";e(document).on("lazyshow","video",function(n,r){var i=r.lazyLoadXT.srcAttr,s=e.isFunction(i);r.attr("poster",r.attr(t.videoPoster)).children("source,track").each(function(t,n){var r=e(n);r.attr("src",s?i(r):r.attr(i))});if(typeof e(this).attr('preload')!=='undefined'&&'none'!=e(this).attr('preload')){this.load()}e(this).removeClass("lazy-hidden")});e(document).on("lazyshow","embed",function(t,n){e(this).removeClass("lazy-hidden")})})(window.jQuery||window.Zepto||window.$)
 
1
+ /* Lazy Load XT 1.1.0 | MIT License */
2
+ !function(m,y,e,o){var p="lazyLoadXT",w="lazied",z="load error",t="lazy-hidden",C=e.documentElement||e.body,b={autoInit:!0,selector:"img[data-src]",blankImage:"data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7",throttle:99,forceLoad:y.onscroll===o||!!y.operamini||!C.getBoundingClientRect,loadEvent:"pageshow",updateEvent:"load orientationchange resize scroll touchmove focus",forceEvent:"lazyloadall",oninit:{removeClass:"lazy"},onshow:{addClass:t},onload:{removeClass:t,addClass:"lazy-loaded"},onerror:{removeClass:t},checkDuplicates:!0},n={srcAttr:"data-src",edgeX:0,edgeY:0,visibleOnly:!0},a=m(y),E=m.isFunction,d=m.extend,T=m.data||function(e,t){return m(e).data(t)},L=[],I=0,r=0;function c(e,t){return e[t]===o?b[t]:e[t]}function X(){var e=y.pageYOffset;return e===o?C.scrollTop:e}function B(e,t){var o=b["on"+e];o&&(E(o)?o.call(t[0]):(o.addClass&&t.addClass(o.addClass),o.removeClass&&t.removeClass(o.removeClass))),t.trigger("lazy"+e,[t]),u()}function k(e){B(e.type,m(this).off(z,k))}function i(e){if(L.length){e=e||b.forceLoad,I=1/0;var t,o,n=X(),a=y.innerHeight||C.clientHeight,r=y.innerWidth||C.clientWidth;for(t=0,o=L.length;t<o;t++){var i,s=L[t],l=s[0],d=s[p],c=!1,u=e||T(l,w)<0;if(m.contains(C,l)){if(e||!d.visibleOnly||l.offsetWidth||l.offsetHeight){if(!u){var f=l.getBoundingClientRect(),h=d.edgeX,v=d.edgeY;u=(i=f.top+n-v-a)<=n&&f.bottom>-v&&f.left<=r+h&&f.right>-h}if(u){s.on(z,k),B("show",s);var A=d.srcAttr,g=E(A)?A(s):l.getAttribute(A);g&&(l.src=g),c=!0}else i<I&&(I=i)}}else c=!0;c&&(T(l,w,0),L.splice(t--,1),o--)}o||B("complete",m(C))}}function s(){1<r?(r=1,i(),setTimeout(s,b.throttle)):r=0}function u(e){L.length&&(e&&"scroll"===e.type&&e.currentTarget===y&&I>=X()||(r||setTimeout(s,0),r=2))}function l(){a.lazyLoadXT()}function f(){i(!0)}m[p]=d(b,n,m[p]),m.fn[p]=function(a){var e,r=c(a=a||{},"blankImage"),i=c(a,"checkDuplicates"),t=c(a,"scrollContainer"),s=c(a,"show"),l={};for(e in m(t).on("scroll",u),n)l[e]=c(a,e);return this.each(function(e,t){if(t===y)m(b.selector).lazyLoadXT(a);else{var o=i&&T(t,w),n=m(t).data(w,s?-1:1);if(o)return void u();r&&"IMG"===t.tagName&&!t.src&&(t.src=r),n[p]=d({},l),B("init",n),L.push(n),u()}})},m(e).ready(function(){B("start",a),a.on(b.updateEvent,u).on(b.forceEvent,f),m(e).on(b.updateEvent,u),b.autoInit&&(a.on(b.loadEvent,l),l())})}(window.jQuery||window.Zepto||window.$,window,document),function(s){var o=s.lazyLoadXT;o.selector+=",video,iframe[data-src],embed[data-src]",o.videoPoster="data-poster",s(document).on("lazyshow","video",function(e,t){var a=t.lazyLoadXT.srcAttr,r=s.isFunction(a),i=!1;t.attr("poster",t.attr(o.videoPoster)),t.children("source,track").each(function(e,t){var o=s(t),n=r?a(o):o.attr(a);n&&(o.attr("src",n),i=!0)}),i&&void 0!==s(this).attr("preload")&&"none"!=s(this).attr("preload")&&this.load(),s(this).removeClass("lazy-hidden")}),s(document).on("lazyshow","embed",function(e,t){s(this).removeClass("lazy-hidden")})}(window.jQuery||window.Zepto||window.$);
assets/js/jquery.lazyloadxt.srcset.js CHANGED
@@ -1,6 +1,6 @@
1
- /*! Lazy Load XT v1.0.6 2014-11-19
2
  * http://ressio.github.io/lazy-load-xt
3
- * (C) 2014 RESS.io
4
  * Licensed under MIT */
5
 
6
  (function ($, window, document, undefined) {
@@ -16,7 +16,7 @@
16
  one = [0, 1],
17
  srcsetOptions = {
18
  srcsetAttr: 'data-srcset',
19
- srcsetExtended: false,
20
  srcsetBaseAttr: 'data-srcset-base',
21
  srcsetExtAttr: 'data-srcset-ext'
22
  },
@@ -56,7 +56,7 @@
56
  return false;
57
  }
58
 
59
- var list = $.map(srcset.split(','), function (item) {
60
  return {
61
  url: reUrl.exec(item)[1],
62
  w: parseFloat((reWidth.exec(item) || infty)[1]),
1
+ /*! Lazy Load XT v1.1.0 2016-01-12
2
  * http://ressio.github.io/lazy-load-xt
3
+ * (C) 2016 RESS.io
4
  * Licensed under MIT */
5
 
6
  (function ($, window, document, undefined) {
16
  one = [0, 1],
17
  srcsetOptions = {
18
  srcsetAttr: 'data-srcset',
19
+ srcsetExtended: true,
20
  srcsetBaseAttr: 'data-srcset-base',
21
  srcsetExtAttr: 'data-srcset-ext'
22
  },
56
  return false;
57
  }
58
 
59
+ var list = $.map(srcset.replace(/(\s[\d.]+[whx]),/g, '$1 @,@ ').split(' @,@ '), function (item) {
60
  return {
61
  url: reUrl.exec(item)[1],
62
  w: parseFloat((reWidth.exec(item) || infty)[1]),
assets/js/jquery.lazyloadxt.srcset.min.js CHANGED
@@ -1,2 +1,2 @@
1
- /* Lazy Load XT 1.0.6 | MIT License */
2
- !function(t,r,e,n){function s(r,e){return Math[e].apply(null,t.map(r,function(t){return t[o]}))}function a(t){return t[o]>=g[o]||t[o]===d}function c(t){return t[o]===d}function i(n){var i=n.attr(u.srcsetAttr);if(!i)return!1;var l=t.map(i.split(","),function(t){return{url:x.exec(t)[1],w:parseFloat((f.exec(t)||p)[1]),h:parseFloat((w.exec(t)||p)[1]),x:parseFloat((h.exec(t)||m)[1])}});if(!l.length)return!1;var A,v,E=e.documentElement;g={w:r.innerWidth||E.clientWidth,h:r.innerHeight||E.clientHeight,x:r.devicePixelRatio||1};for(A in g)o=A,d=s(l,"max"),l=t.grep(l,a);for(A in g)o=A,d=s(l,"min"),l=t.grep(l,c);return v=l[0].url,u.srcsetExtended&&(v=(n.attr(u.srcsetBaseAttr)||"")+v+(n.attr(u.srcsetExtAttr)||"")),v}var o,d,u=t.lazyLoadXT,l=function(){return"srcset"in new Image}(),x=/^\s*(\S*)/,f=/\S\s+(\d+)w/,w=/\S\s+(\d+)h/,h=/\S\s+([\d\.]+)x/,p=[0,1/0],m=[0,1],A={srcsetAttr:"data-srcset",srcsetExtended:!1,srcsetBaseAttr:"data-srcset-base",srcsetExtAttr:"data-srcset-ext"},g={w:0,h:0,x:0};for(o in A)u[o]===n&&(u[o]=A[o]);u.selector+=",img["+u.srcsetAttr+"]",t(e).on("lazyshow","img",function(t,r){var e=r.attr(u.srcsetAttr);e&&(!u.srcsetExtended&&l?(r.attr("srcset",e),r.attr("data-srcset","")):r.lazyLoadXT.srcAttr=i)})}(window.jQuery||window.Zepto||window.$,window,document);
1
+ /* Lazy Load XT 1.1.0 | MIT License */
2
+ !function(c,i,o,t){var d,u,l=c.lazyLoadXT,n="srcset"in new Image,x=/^\s*(\S*)/,w=/\S\s+(\d+)w/,f=/\S\s+(\d+)h/,h=/\S\s+([\d\.]+)x/,p=[0,1/0],m=[0,1],e={srcsetAttr:"data-srcset",srcsetExtended:!0,srcsetBaseAttr:"data-srcset-base",srcsetExtAttr:"data-srcset-ext"},g={w:0,h:0,x:0};for(d in e)void 0===l[d]&&(l[d]=e[d]);function A(t,e){return Math[e].apply(null,c.map(t,function(t){return t[d]}))}function v(t){return t[d]>=g[d]||t[d]===u}function E(t){return t[d]===u}function s(t){var e=t.attr(l.srcsetAttr);if(!e)return!1;var r=c.map(e.replace(/(\s[\d.]+[whx]),/g,"$1 @,@ ").split(" @,@ "),function(t){return{url:x.exec(t)[1],w:parseFloat((w.exec(t)||p)[1]),h:parseFloat((f.exec(t)||p)[1]),x:parseFloat((h.exec(t)||m)[1])}});if(!r.length)return!1;var n,s,a=o.documentElement;for(n in g={w:i.innerWidth||a.clientWidth,h:i.innerHeight||a.clientHeight,x:i.devicePixelRatio||1})d=n,u=A(r,"max"),r=c.grep(r,v);for(n in g)d=n,u=A(r,"min"),r=c.grep(r,E);return s=r[0].url,l.srcsetExtended&&(s=(t.attr(l.srcsetBaseAttr)||"")+s+(t.attr(l.srcsetExtAttr)||"")),s}l.selector+=",img["+l.srcsetAttr+"]",c(o).on("lazyshow","img",function(t,e){var r=e.attr(l.srcsetAttr);r&&(!l.srcsetExtended&&n?(e.attr("srcset",r),e.attr("data-srcset","")):e.lazyLoadXT.srcAttr=s)})}(window.jQuery||window.Zepto||window.$,window,document);
classes/class-a3-lazy-load-excludes.php ADDED
@@ -0,0 +1,163 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class A3_Lazy_Load_Excludes
3
+ {
4
+ public function __construct() {
5
+
6
+ add_action( 'wp', array( $this, 'init_global_a3lz_query_vars' ), 9 );
7
+ }
8
+
9
+ public function get_hard_objects_list() {
10
+
11
+ $objects_list = array(
12
+ 'home' => __( 'Home Page', 'a3-lazy-load' ),
13
+ 'front' => __( 'Front Page', 'a3-lazy-load' ),
14
+ 'post' => __( 'Posts', 'a3-lazy-load' ),
15
+ 'page' => __( 'Pages', 'a3-lazy-load' ),
16
+ 'category' => __( 'Post Categories', 'a3-lazy-load' ),
17
+ 'tag' => __( 'Post Tags', 'a3-lazy-load' ),
18
+ 'search' => __( 'Search Page', 'a3-lazy-load' ),
19
+ 'author' => __( 'Author Pages', 'a3-lazy-load' ),
20
+ 'archive' => __( 'Archive Pages', 'a3-lazy-load' ),
21
+ );
22
+
23
+ return $objects_list;
24
+ }
25
+
26
+ public function get_post_types_list() {
27
+
28
+ $objects_list = array();
29
+ $post_types = get_post_types( array( 'public' => true, '_builtin' => false ) , 'objects' );
30
+
31
+ if ( $post_types ) {
32
+ foreach ( $post_types as $post_type => $post_type_data ) {
33
+ $objects_list[$post_type] = '"' . $post_type_data->labels->name . '" Post Type';
34
+ }
35
+ }
36
+
37
+ return $objects_list;
38
+ }
39
+
40
+ public function init_global_a3lz_query_vars() {
41
+ global $a3lz_query;
42
+
43
+ if ( is_home() ) $a3lz_query[ 'is_home' ] = 1;
44
+
45
+ if ( is_front_page() ) $a3lz_query[ 'is_front' ] = 1;
46
+
47
+ if ( is_search() ) $a3lz_query[ 'is_search' ] = 1;
48
+
49
+ if ( is_author() ) $a3lz_query[ 'is_author' ] = 1;
50
+
51
+ if ( is_singular( 'post' ) ) $a3lz_query[ 'is_post' ] = 1;
52
+
53
+ if ( is_page() ) $a3lz_query[ 'is_page' ] = 1;
54
+
55
+ if ( is_category() ) $a3lz_query[ 'is_category' ] = 1;
56
+
57
+ if ( is_tag() ) $a3lz_query[ 'is_tag' ] = 1;
58
+
59
+ if ( is_archive() && ! is_category() && ! is_tag() && ! is_author() ) $a3lz_query[ 'is_archive' ] = 1;
60
+
61
+ // Custom Post Types
62
+ $post_types_list = $this->get_post_types_list();
63
+ if ( ! empty( $post_types_list ) ) {
64
+ foreach ( $post_types_list as $post_type => $post_type_name ) {
65
+ if ( is_singular( $post_type ) ) {
66
+ $a3lz_query[ 'is_' . $post_type ] = 1;
67
+ break;
68
+ }
69
+ }
70
+ }
71
+
72
+ // REST API
73
+ if ( ( defined( 'REST_REQUEST' ) && REST_REQUEST ) || ( defined( 'JSON_REQUEST' ) && JSON_REQUEST ) || ( defined( 'WC_API_REQUEST' ) && WC_API_REQUEST )
74
+ ) $a3lz_query[ 'is_rest' ] = 1;
75
+
76
+ if ( get_query_var( 'sitemap' ) || get_query_var( 'xsl' ) || get_query_var( 'xml_sitemap' ) ) {
77
+ $a3lz_query[ 'is_sitemap' ] = 1;
78
+ } elseif ( is_robots() ) {
79
+ $a3lz_query[ 'is_robots' ] = 1;
80
+ }
81
+
82
+ // Reset everything if it's 404
83
+ if ( is_404() ) $a3lz_query = array( 'is_404' => 1 );
84
+
85
+ return $a3lz_query;
86
+ }
87
+
88
+ public function check_excluded() {
89
+
90
+ // Check for URI is excluded
91
+ $is_excluded = $this->is_uri_excluded( add_query_arg( 'a3lz' , false ) );
92
+ if ( $is_excluded ) {
93
+ return true;
94
+ }
95
+
96
+ // Check for Object is excluded
97
+ $is_excluded = $this->is_object_excluded();
98
+ if ( $is_excluded ) {
99
+ return true;
100
+ }
101
+
102
+ return false;
103
+ }
104
+
105
+ public function is_uri_excluded( $uri ) {
106
+ global $a3_lazy_load_global_settings;
107
+
108
+ if ( empty( $a3_lazy_load_global_settings[ 'a3l_uris_exclude' ] ) ) {
109
+ return false;
110
+ }
111
+
112
+ $uris_exclude = explode( "\n", $a3_lazy_load_global_settings[ 'a3l_uris_exclude' ] );
113
+ if ( empty( $uris_exclude ) ) {
114
+ return false;
115
+ }
116
+
117
+ $uris_exclude = array_map( 'trim', $uris_exclude );
118
+
119
+ foreach ( $uris_exclude as $expr ) {
120
+ if ( '' !== $expr && @preg_match( "~$expr~", $uri ) ) {
121
+ return true;
122
+ }
123
+ }
124
+
125
+ return false;
126
+ }
127
+
128
+ public function is_object_excluded() {
129
+ global $a3_lazy_load_global_settings;
130
+
131
+ if ( empty( $a3_lazy_load_global_settings[ 'a3l_objects_exclude' ] ) ) {
132
+ return false;
133
+ }
134
+
135
+ $objects_exclude = $a3_lazy_load_global_settings[ 'a3l_objects_exclude' ];
136
+
137
+ global $a3lz_query;
138
+ if ( empty( $a3lz_query ) ) {
139
+ $a3lz_query = $this->init_global_a3lz_query_vars();
140
+ }
141
+
142
+ $objects_list = $this->get_hard_objects_list();
143
+ $post_types_list = $this->get_post_types_list();
144
+ $objects_list = array_merge( $objects_list, $post_types_list );
145
+
146
+ if ( ! empty( $objects_list ) ) {
147
+ foreach ( $objects_list as $object_key => $object_name ) {
148
+ if ( isset( $objects_exclude[ $object_key ] ) && 1 == $objects_exclude[ $object_key ] && isset( $a3lz_query[ 'is_' . $object_key ] ) ) return true;
149
+ }
150
+ }
151
+
152
+ if ( isset( $a3lz_query[ 'is_404' ] ) || isset( $a3lz_query[ 'is_rest' ] ) || isset( $a3lz_query[ 'is_sitemap' ] ) || isset( $a3lz_query[ 'is_robots' ] ) ) {
153
+ return true;
154
+ }
155
+
156
+ return false;
157
+ }
158
+ }
159
+
160
+ global $a3_lazy_load_excludes;
161
+ $a3_lazy_load_excludes = new A3_Lazy_Load_Excludes();
162
+
163
+ ?>
classes/class-a3-lazy-load.php CHANGED
@@ -43,6 +43,13 @@ class A3_Lazy_Load
43
  return;
44
  }
45
 
 
 
 
 
 
 
 
46
  add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_scripts' ), 11 );
47
 
48
  add_filter( 'a3_lazy_load_html', array( $this, 'filter_html' ), 10, 2 );
@@ -155,7 +162,7 @@ class A3_Lazy_Load
155
  do_action('before_a3_lazy_load_xt_script');
156
 
157
  wp_deregister_script( 'jquery-lazyloadxt' );
158
- wp_register_script( 'jquery-lazyloadxt', apply_filters( 'a3_lazy_load_main_script', A3_LAZY_LOAD_JS_URL.'/jquery.lazyloadxt'.$suffix.'.js' ), array( 'jquery' ), self::version, $in_footer );
159
  wp_register_script( 'jquery-lazyloadxt-srcset', apply_filters( 'a3_lazy_load_main_script', A3_LAZY_LOAD_JS_URL.'/jquery.lazyloadxt.srcset'.$suffix.'.js' ), array( 'jquery', 'jquery-lazyloadxt' ), self::version, $in_footer );
160
  wp_register_script( 'jquery-lazyloadxt-extend', apply_filters( 'a3_lazy_load_extend_script', A3_LAZY_LOAD_JS_URL.'/jquery.lazyloadxt.extend.js' ), array( 'jquery', 'jquery-lazyloadxt', 'jquery-lazyloadxt-srcset' ), self::version, $in_footer );
161
 
@@ -226,6 +233,11 @@ class A3_Lazy_Load
226
  return false;
227
  }
228
 
 
 
 
 
 
229
  static function add_lazy_attributes( $allowedposttags, $context ) {
230
 
231
  if ( 'post' === $context && ! empty( $allowedposttags ) ) {
@@ -337,7 +349,7 @@ class A3_Lazy_Load
337
  $A3_Lazy_Load = A3_Lazy_Load::_instance();
338
 
339
  if ( is_array( $A3_Lazy_Load->_skip_images_classes ) ) {
340
- $skip_images_preg_quoted = array_map( 'preg_quote', $A3_Lazy_Load->_skip_images_classes );
341
  $skip_images_regex = sprintf( '/class=".*(%s).*"/s', implode( '|', $skip_images_preg_quoted ) );
342
  }
343
 
@@ -372,7 +384,7 @@ class A3_Lazy_Load
372
  $replace = array();
373
 
374
  if ( is_array( $this->_skip_images_classes ) ) {
375
- $skip_images_preg_quoted = array_map( 'preg_quote', $this->_skip_images_classes );
376
  $skip_images_regex = sprintf( '/class=".*(%s).*"/s', implode( '|', $skip_images_preg_quoted ) );
377
  }
378
 
@@ -476,7 +488,7 @@ class A3_Lazy_Load
476
  $replace = array();
477
 
478
  if ( is_array( $this->_skip_videos_classes ) ) {
479
- $skip_images_preg_quoted = array_map( 'preg_quote', $this->_skip_videos_classes );
480
  $skip_images_regex = sprintf( '/class=".*(%s).*"/s', implode( '|', $skip_images_preg_quoted ) );
481
  }
482
 
@@ -522,7 +534,7 @@ class A3_Lazy_Load
522
  $replace = array();
523
 
524
  if ( is_array( $this->_skip_videos_classes ) ) {
525
- $skip_images_preg_quoted = array_map( 'preg_quote', $this->_skip_videos_classes );
526
  $skip_images_regex = sprintf( '/class=".*(%s).*"/s', implode( '|', $skip_images_preg_quoted ) );
527
  }
528
 
@@ -570,7 +582,7 @@ class A3_Lazy_Load
570
  $replace = array();
571
 
572
  if ( is_array( $this->_skip_videos_classes ) ) {
573
- $skip_images_preg_quoted = array_map( 'preg_quote', $this->_skip_videos_classes );
574
  $skip_images_regex = sprintf( '/class=".*(%s).*"/s', implode( '|', $skip_images_preg_quoted ) );
575
  }
576
 
43
  return;
44
  }
45
 
46
+ // Check for current page is excluded
47
+ global $a3_lazy_load_excludes;
48
+ $is_excluded = $a3_lazy_load_excludes->check_excluded();
49
+ if ( $is_excluded ) {
50
+ return;
51
+ }
52
+
53
  add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_scripts' ), 11 );
54
 
55
  add_filter( 'a3_lazy_load_html', array( $this, 'filter_html' ), 10, 2 );
162
  do_action('before_a3_lazy_load_xt_script');
163
 
164
  wp_deregister_script( 'jquery-lazyloadxt' );
165
+ wp_register_script( 'jquery-lazyloadxt', apply_filters( 'a3_lazy_load_main_script', A3_LAZY_LOAD_JS_URL.'/jquery.lazyloadxt.extra'.$suffix.'.js' ), array( 'jquery' ), self::version, $in_footer );
166
  wp_register_script( 'jquery-lazyloadxt-srcset', apply_filters( 'a3_lazy_load_main_script', A3_LAZY_LOAD_JS_URL.'/jquery.lazyloadxt.srcset'.$suffix.'.js' ), array( 'jquery', 'jquery-lazyloadxt' ), self::version, $in_footer );
167
  wp_register_script( 'jquery-lazyloadxt-extend', apply_filters( 'a3_lazy_load_extend_script', A3_LAZY_LOAD_JS_URL.'/jquery.lazyloadxt.extend.js' ), array( 'jquery', 'jquery-lazyloadxt', 'jquery-lazyloadxt-srcset' ), self::version, $in_footer );
168
 
233
  return false;
234
  }
235
 
236
+ static public function preg_quote_with_wildcards( $what ){
237
+ // Perform preg_quote, but still allow `.*` to be used in the class list as a wildcard.
238
+ return str_replace( array( '\*', '\.' ), '', preg_quote( $what, '/' ) );
239
+ }
240
+
241
  static function add_lazy_attributes( $allowedposttags, $context ) {
242
 
243
  if ( 'post' === $context && ! empty( $allowedposttags ) ) {
349
  $A3_Lazy_Load = A3_Lazy_Load::_instance();
350
 
351
  if ( is_array( $A3_Lazy_Load->_skip_images_classes ) ) {
352
+ $skip_images_preg_quoted = array_map( array( $A3_Lazy_Load, 'preg_quote_with_wildcards' ), $A3_Lazy_Load->_skip_images_classes );
353
  $skip_images_regex = sprintf( '/class=".*(%s).*"/s', implode( '|', $skip_images_preg_quoted ) );
354
  }
355
 
384
  $replace = array();
385
 
386
  if ( is_array( $this->_skip_images_classes ) ) {
387
+ $skip_images_preg_quoted = array_map( array( $this, 'preg_quote_with_wildcards' ), $this->_skip_images_classes );
388
  $skip_images_regex = sprintf( '/class=".*(%s).*"/s', implode( '|', $skip_images_preg_quoted ) );
389
  }
390
 
488
  $replace = array();
489
 
490
  if ( is_array( $this->_skip_videos_classes ) ) {
491
+ $skip_images_preg_quoted = array_map( array( $this, 'preg_quote_with_wildcards' ), $this->_skip_videos_classes );
492
  $skip_images_regex = sprintf( '/class=".*(%s).*"/s', implode( '|', $skip_images_preg_quoted ) );
493
  }
494
 
534
  $replace = array();
535
 
536
  if ( is_array( $this->_skip_videos_classes ) ) {
537
+ $skip_images_preg_quoted = array_map( array( $this, 'preg_quote_with_wildcards' ), $this->_skip_videos_classes );
538
  $skip_images_regex = sprintf( '/class=".*(%s).*"/s', implode( '|', $skip_images_preg_quoted ) );
539
  }
540
 
582
  $replace = array();
583
 
584
  if ( is_array( $this->_skip_videos_classes ) ) {
585
+ $skip_images_preg_quoted = array_map( array( $this, 'preg_quote_with_wildcards' ), $this->_skip_videos_classes );
586
  $skip_images_regex = sprintf( '/class=".*(%s).*"/s', implode( '|', $skip_images_preg_quoted ) );
587
  }
588
 
readme.txt CHANGED
@@ -2,8 +2,8 @@
2
  Contributors: a3rev, a3rev Software, nguyencongtuan
3
  Tags: a3 lazy load, Lazy Loading , image lazy load, lazyload
4
  Requires at least: 4.5
5
- Tested up to: 4.9.6
6
- Stable tag: 1.8.9
7
  License: GPLv3
8
  License URI: http://www.gnu.org/licenses/gpl-3.0.html
9
 
@@ -194,6 +194,20 @@ Filter tags to add to class name of theme to exclude lazy load on images or vide
194
 
195
  == Changelog ==
196
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
197
  = 1.8.9 - 2018/06/04 =
198
  * This Maintenance update has 2 code tweaks for compatibility with themes and plugins that load images via the wp_kses_post sanitizer as WooCommerce does since version 3.4.0 with widgets and on Cart page.
199
  * Tweak - Append lazy attributes to attribute list of allowed post tags list so that lazy load can run on frontend when that content is output via wp_kses_post
@@ -387,6 +401,9 @@ Filter tags to add to class name of theme to exclude lazy load on images or vide
387
 
388
  == Upgrade Notice ==
389
 
 
 
 
390
  = 1.8.9 =
391
  Maintenance update. This upgrade has 2 code tweaks for compatibility with themes and plugins that load images via the wp_kses_post sanitizer as WooCommerce does since version 3.4.0 with widgets and on Cart page.
392
 
2
  Contributors: a3rev, a3rev Software, nguyencongtuan
3
  Tags: a3 lazy load, Lazy Loading , image lazy load, lazyload
4
  Requires at least: 4.5
5
+ Tested up to: 4.9.8
6
+ Stable tag: 1.9.0
7
  License: GPLv3
8
  License URI: http://www.gnu.org/licenses/gpl-3.0.html
9
 
194
 
195
  == Changelog ==
196
 
197
+ = 1.9.0 - 2018/08/06 =
198
+ * This feature upgrade is focused on adding a number of new options for excluding Lazy Load from sections of a site. Compatibility with WordPress 4.9.8, Gutenberg 3.4.0 and WooCommerce 3.4.4
199
+ * Feature - Add exclude from Lazy Load by URI
200
+ * Feature - Add exclude from Lazy Load by Page types
201
+ * Feature - Add support for using Wildcards in images and videos skipped classes
202
+ * Tweak - Upgrade lazyloadxt lib to latest version 1.1.0
203
+ * Tweak - Rename jquery.lazyloadxt.js to jquery.lazyloadxt.extra.js
204
+ * Tweak - Add new Exclude by URI’s and Page Types Options box and help text
205
+ * Tweak - Test for compatibility with WordPress 4.9.8
206
+ * Tweak - Test for compatibility with WooCommerce 3.4.4
207
+ * Tweak - Test for compatibility with Gutenberg 3.4.0
208
+ * Fix - Make Skip Classes feature work when have entered it to that list
209
+ * Credit - Props to Kurt @AMPERAGE-Marketing for his contribution to this release
210
+
211
  = 1.8.9 - 2018/06/04 =
212
  * This Maintenance update has 2 code tweaks for compatibility with themes and plugins that load images via the wp_kses_post sanitizer as WooCommerce does since version 3.4.0 with widgets and on Cart page.
213
  * Tweak - Append lazy attributes to attribute list of allowed post tags list so that lazy load can run on frontend when that content is output via wp_kses_post
401
 
402
  == Upgrade Notice ==
403
 
404
+ = 1.9.0 =
405
+ This feature upgrade is focused on adding a number of new options for excluding Lazy Load from sections of a site plus Compatibility with WordPress 4.9.8, Gutenberg 3.4.0 and WooCommerce 3.4.4
406
+
407
  = 1.8.9 =
408
  Maintenance update. This upgrade has 2 code tweaks for compatibility with themes and plugins that load images via the wp_kses_post sanitizer as WooCommerce does since version 3.4.0 with widgets and on Cart page.
409