diff --git a/a3-portfolio.php b/a3-portfolio.php
index ecf583a..e5e426f 100644
--- a/a3-portfolio.php
+++ b/a3-portfolio.php
@@ -2,11 +2,11 @@
/*
Plugin Name: a3 Portfolio
Description: Creates a beautiful fully mobile responsive, fully customizable, Google images style portfolio to showcase your work.
-Version: 2.6.8
+Version: 2.6.9
Author: a3rev Software
Author URI: https://a3rev.com/
-Requires at least: 4.1
-Tested up to: 4.9.8
+Requires at least: 4.6
+Tested up to: 5.0.2
Text Domain: a3-portfolio
Domain Path: /languages
License: GPLv2 or later
@@ -33,7 +33,8 @@
define('A3_PORTFOLIO_TEMPLATE_IMAGES_URL', A3_PORTFOLIO_URL . '/templates/images');
define( 'A3_PORTFOLIO_KEY', 'a3_portfolios' );
-define( 'A3_PORTFOLIO_VERSION', '2.6.8' );
+define( 'A3_PORTFOLIO_VERSION', '2.6.9' );
+define( 'A3_PORTFOLIO_G_FONTS', true );
/**
* Load Localisation files.
diff --git a/admin/admin-interface.php b/admin/admin-interface.php
index d713c95..73cbaaf 100644
--- a/admin/admin-interface.php
+++ b/admin/admin-interface.php
@@ -90,9 +90,30 @@ public function register_fontawesome_style() {
public function register_modal_scripts() {
$suffix = defined('SCRIPT_DEBUG') && SCRIPT_DEBUG ? '' : '.min';
wp_register_style( 'bootstrap-modal', $this->admin_plugin_url() . '/assets/css/modal' . $suffix . '.css', array(), '4.1.1', 'all' );
- wp_register_script( 'bootstrap-util', $this->admin_plugin_url() . '/assets/js/bootstrap/util' . $suffix . '.js', array( 'jquery' ), '4.1.1', false );
+
+ if ( ! wp_script_is( 'bootstrap-util', 'registered' ) ) {
+ wp_register_script( 'bootstrap-util', $this->admin_plugin_url() . '/assets/js/bootstrap/util' . $suffix . '.js', array( 'jquery' ), '4.1.1', false );
+ }
+
wp_register_script( 'bootstrap-modal', $this->admin_plugin_url() . '/assets/js/bootstrap/modal' . $suffix . '.js', array( 'jquery', 'bootstrap-util' ), '4.1.1', false );
}
+
+ public function register_popover_scripts() {
+ $suffix = defined('SCRIPT_DEBUG') && SCRIPT_DEBUG ? '' : '.min';
+ wp_enqueue_style( 'bootstrap-popover', $this->admin_plugin_url() . '/assets/css/popover' . $suffix . '.css', array(), '4.1.1', 'all' );
+
+ wp_register_script( 'bootstrap-popper', $this->admin_plugin_url() . '/assets/js/bootstrap/popper.min.js', array( 'jquery' ), '4.1.1', false );
+
+ if ( ! wp_script_is( 'bootstrap-tooltip', 'registered' ) ) {
+ wp_register_script( 'bootstrap-tooltip', $this->admin_plugin_url() . '/assets/js/bootstrap/tooltip' . $suffix . '.js', array( 'jquery' ), '4.1.1', false );
+ }
+
+ if ( ! wp_script_is( 'bootstrap-util', 'registered' ) ) {
+ wp_register_script( 'bootstrap-util', $this->admin_plugin_url() . '/assets/js/bootstrap/util' . $suffix . '.js', array( 'jquery' ), '4.1.1', false );
+ }
+
+ 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 );
+ }
/*-----------------------------------------------------------------------------------*/
/* admin_script_load */
@@ -102,16 +123,18 @@ public function admin_script_load() {
$suffix = defined('SCRIPT_DEBUG') && SCRIPT_DEBUG ? '' : '.min';
$rtl = is_rtl() ? '.rtl' : '';
+
+ $this->register_popover_scripts();
wp_register_script( 'chosen', $this->admin_plugin_url() . '/assets/js/chosen/chosen.jquery' . $suffix . '.js', array( 'jquery' ), true, false );
wp_register_script( 'a3rev-chosen-new', $this->admin_plugin_url() . '/assets/js/chosen/chosen.jquery' . $suffix . '.js', array( 'jquery' ), $this->framework_version, false );
+ 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 );
wp_register_script( 'a3rev-style-checkboxes', $this->admin_plugin_url() . '/assets/js/iphone-style-checkboxes' . $rtl . '.js', array('jquery'), $this->framework_version, false );
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 );
- wp_register_script( 'a3rev-admin-ui-script', $this->admin_plugin_url() . '/assets/js/admin-ui-script.js', array('jquery'), $this->framework_version, true );
+ 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 );
wp_register_script( 'a3rev-typography-preview', $this->admin_plugin_url() . '/assets/js/a3rev-typography-preview.js', array('jquery'), $this->framework_version, true );
wp_register_script( 'a3rev-settings-preview', $this->admin_plugin_url() . '/assets/js/a3rev-settings-preview.js', array('jquery'), $this->framework_version, true );
- wp_register_script( 'jquery-tiptip', $this->admin_plugin_url() . '/assets/js/tipTip/jquery.tipTip' . $suffix . '.js', array( 'jquery' ), true, true );
wp_register_script( 'a3rev-metabox-ui', $this->admin_plugin_url() . '/assets/js/data-meta-boxes.js', array( 'jquery' ), $this->framework_version, true );
wp_register_script( 'jquery-rwd-image-maps', $this->admin_plugin_url() . '/assets/js/rwdImageMaps/jquery.rwdImageMaps.min.js', array( 'jquery' ), true, true );
wp_register_script( 'jquery-datetime-picker', $this->admin_plugin_url() . '/assets/js/datetimepicker/jquery.datetimepicker.js', array( 'jquery' ), true, true );
@@ -125,12 +148,11 @@ public function admin_script_load() {
wp_enqueue_script( 'jquery-ui-slider' );
}
wp_enqueue_script( 'chosen' );
- wp_enqueue_script( 'a3rev-chosen-new' );
+ wp_enqueue_script( 'a3rev-chosen-ajaxify' );
wp_enqueue_script( 'a3rev-style-checkboxes' );
wp_enqueue_script( 'a3rev-admin-ui-script' );
wp_enqueue_script( 'a3rev-typography-preview' );
wp_enqueue_script( 'a3rev-settings-preview' );
- wp_enqueue_script( 'jquery-tiptip' );
wp_enqueue_script( 'a3rev-metabox-ui' );
} // End admin_script_load()
@@ -235,7 +257,6 @@ public function admin_css_load () {
wp_enqueue_style( 'wp-color-picker' );
wp_enqueue_style( 'jquery-datetime-picker', $this->admin_plugin_url() . '/assets/css/jquery.datetimepicker.css' );
wp_enqueue_style( 'a3rev-chosen-new-style', $this->admin_plugin_url() . '/assets/js/chosen/chosen' . $suffix . '.css', array(), $this->framework_version );
- wp_enqueue_style( 'a3rev-tiptip-style', $this->admin_plugin_url() . '/assets/js/tipTip/tipTip.css' );
wp_enqueue_style( 'a3rev-metabox-ui-style', $this->admin_plugin_url() . '/assets/css/a3_admin_metabox.css', array(), $this->framework_version );
if ( is_rtl() ) {
@@ -363,7 +384,7 @@ public function get_settings_default( $options, $option_name = '' ) {
default :
// Do not include when it's separate option
- if ( isset( $value['separate_option'] ) && $value['separate_option'] != false ) continue;
+ if ( isset( $value['separate_option'] ) && $value['separate_option'] != false ) break;
// Remove [, ] characters from id argument
if ( strstr( $value['id'], '[' ) ) {
@@ -1123,7 +1144,7 @@ public function settings_get_option( $option_name, $default = '' ) {
* @return void
* ========================================================================
* Option Array Structure :
- * type => row | column | heading | ajax_submit | ajax_multi_submit | google_api_key | onoff_toggle_box
+ * type => row | column | heading | ajax_submit | ajax_multi_submit | google_api_key | google_map_api_key | onoff_toggle_box
* | text | email | number | password | color | bg_color | textarea | select | multiselect | radio | onoff_radio | checkbox | onoff_checkbox
* | switcher_checkbox | image_size | single_select_page | typography | border | border_styles | border_corner | box_shadow
* | slider | upload | wp_editor | array_textfields | time_picker
@@ -1160,6 +1181,7 @@ public function settings_get_option( $option_name, $default = '' ) {
* checked_label => text : apply for onoff_checkbox, switcher_checkbox only ( set it to show the text instead ON word default )
* unchecked_label => text : apply for onoff_checkbox, switcher_checkbox only ( set it to show the text instead OFF word default )
* options => array : apply for select, multiselect, radio types
+ * options_url => url : apply for select, multiselect
*
* onoff_options => array : apply for onoff_radio only
* ---------------- example ---------------------
@@ -1459,7 +1481,7 @@ public function admin_forms( $options, $form_key, $option_name = '', $form_messa
} elseif ( $tip ) {
- $tip = '
';
+ $tip = '';
}
@@ -1812,6 +1834,62 @@ class="a3rev-ui-text a3rev-ui- settings_get_option( $this->google_map_api_key_option );
+ $google_map_api_key_enable = $this->settings_get_option( $this->google_map_api_key_option . '_enable', 0 );
+ if ( ! isset( $value['checked_label'] ) ) $value['checked_label'] = __( 'ON', 'a3-portfolio' );
+ if ( ! isset( $value['unchecked_label'] ) ) $value['unchecked_label'] = __( 'OFF', 'a3-portfolio' );
+
+ ?>
+
+
+
+ |
+
+
+ />
+
+
+
+ Google Maps API to create a key", 'a3-portfolio' ), 'https://developers.google.com/maps/documentation/javascript/get-api-key' ); ?>
+
+
+ |
+
-button -button -button "
style=""
+
+ data-confirm_message=""
+
>
+
+
+
@@ -2161,6 +2251,12 @@ class="a3rev-ui-
@@ -2176,6 +2272,11 @@ class="a3rev-ui- "
+
>
0 ) {
diff --git a/admin/admin-ui.php b/admin/admin-ui.php
index 0a26e24..24abebd 100644
--- a/admin/admin-ui.php
+++ b/admin/admin-ui.php
@@ -31,13 +31,15 @@ class A3_Portfolio_Admin_UI
* You must change to correct plugin name that you are working
*/
- public $framework_version = '2.0.5';
+ public $framework_version = '2.1.0';
public $plugin_name = A3_PORTFOLIO_KEY;
public $plugin_path = A3_PORTFOLIO_NAME;
public $google_api_key_option = '';
+ public $google_map_api_key_option = '';
public $toggle_box_open_option = '';
public $version_transient = '';
public $is_free_plugin = true;
+ public $is_load_google_fonts = true;
public $support_url = '';
@@ -71,11 +73,18 @@ class A3_Portfolio_Admin_UI
public $admin_pages = array();
public function __construct() {
- $this->google_api_key_option = A3_PORTFOLIO_KEY . '_google_api_key';
- $this->toggle_box_open_option = A3_PORTFOLIO_KEY . '_toggle_box_open';
- $this->version_transient = A3_PORTFOLIO_KEY . '_licinfo';
+ $this->google_api_key_option = A3_PORTFOLIO_KEY . '_google_api_key';
+ $this->google_map_api_key_option = A3_PORTFOLIO_KEY . '_google_map_api_key';
+ $this->toggle_box_open_option = A3_PORTFOLIO_KEY . '_toggle_box_open';
+ $this->version_transient = A3_PORTFOLIO_KEY . '_licinfo';
+
+ if ( defined( 'A3_PORTFOLIO_G_FONTS' ) ) {
+ $this->is_load_google_fonts = (boolean) A3_PORTFOLIO_G_FONTS;
+ }
$this->support_url = 'https://wordpress.org/support/plugin/a3-portfolio/';
+
+ $this->update_google_map_api_key();
}
@@ -104,6 +113,95 @@ public function admin_pages() {
return (array)$admin_pages;
}
+ public function is_valid_google_map_api_key( $cache=true ) {
+ $is_valid = false;
+
+ $this->google_map_api_key = get_option( $this->google_map_api_key_option, '' );
+ $google_map_api_key_enable = get_option( $this->google_map_api_key_option . '_enable', 0 );
+
+ if ( '' != trim( $this->google_map_api_key ) && 1 == $google_map_api_key_enable ) {
+
+ $google_map_api_key_status = get_transient( $this->google_map_api_key_option . '_status' );
+
+ if ( ! $cache ) {
+ $google_map_api_key_status = null;
+ }
+
+ if ( ! $google_map_api_key_status ) {
+ $respone_api = wp_remote_get( "https://maps.googleapis.com/maps/api/geocode/json?address=Australia&key=" . trim( $this->google_map_api_key ),
+ array(
+ 'sslverify' => false,
+ 'timeout' => 45
+ )
+ );
+
+ $response_map = array();
+
+ // Check it is a valid request
+ if ( ! is_wp_error( $respone_api ) ) {
+
+ $json_string = get_magic_quotes_gpc() ? stripslashes( $respone_api['body'] ) : $respone_api['body'];
+ $response_map = json_decode( $json_string, true );
+
+ // Make sure that the valid response from google is not an error message
+ if ( ! isset( $response_map['error_message'] ) ) {
+ $google_map_api_key_status = 'valid';
+ } else {
+ $google_map_api_key_status = 'invalid';
+ }
+
+ } else {
+ $google_map_api_key_status = 'invalid';
+ }
+
+ //caching google map api status for 24 hours
+ set_transient( $this->google_map_api_key_option . '_status', $google_map_api_key_status, 86400 );
+ }
+
+ if ( 'valid' == $google_map_api_key_status ) {
+ $is_valid = true;
+ }
+
+ }
+
+ return $is_valid;
+ }
+
+ public function update_google_map_api_key() {
+ // Enable Google Map API Key
+ if ( isset( $_POST[ $this->google_map_api_key_option . '_enable' ] ) ) {
+ $old_google_map_api_key_enable = get_option( $this->google_map_api_key_option . '_enable', 0 );
+
+ update_option( $this->google_map_api_key_option . '_enable', 1 );
+
+ $option_value = trim( $_POST[ $this->google_map_api_key_option ] );
+
+ $old_google_map_api_key_option = get_option( $this->google_map_api_key_option );
+
+ if ( 1 != $old_google_map_api_key_enable || $option_value != $old_google_map_api_key_option ) {
+
+ update_option( $this->google_map_api_key_option, $option_value );
+
+ // Clear cached of google map api key status
+ delete_transient( $this->google_map_api_key_option . '_status' );
+ }
+
+ // Disable Google Map API Key
+ } elseif ( isset( $_POST[ $this->google_map_api_key_option ] ) ) {
+ $old_google_map_api_key_enable = get_option( $this->google_map_api_key_option . '_enable', 0 );
+
+ update_option( $this->google_map_api_key_option . '_enable', 0 );
+
+ $option_value = trim( $_POST[ $this->google_map_api_key_option ] );
+ update_option( $this->google_map_api_key_option, $option_value );
+
+ if ( 0 != $old_google_map_api_key_enable ) {
+ // Clear cached of google map api key status
+ delete_transient( $this->google_map_api_key_option . '_status' );
+ }
+ }
+ }
+
/**
* get_premium_video_data()
* return array
diff --git a/admin/assets/css/a3_admin_metabox.css b/admin/assets/css/a3_admin_metabox.css
index 55a8fd9..4fbb725 100644
--- a/admin/assets/css/a3_admin_metabox.css
+++ b/admin/assets/css/a3_admin_metabox.css
@@ -105,16 +105,6 @@ ul.a3-metabox-data-tabs li.active a {
padding: 0;
color: #555
}
-.a3-metabox-panel .options_group {
- border-bottom: 1px solid #dfdfdf;
- border-top: 1px solid #fff;
-}
-.a3-metabox-panel .options_group:first-child {
- border-top: none;
-}
-.a3-metabox-panel .options_group:last-child {
- border-bottom: none;
-}
.a3-metabox-panel table.form-table td label,
.a3-metabox-panel table.form-table td span,
.a3-metabox-panel table.form-table td a,
diff --git a/admin/assets/css/a3_admin_metabox.rtl.less b/admin/assets/css/a3_admin_metabox.rtl.less
index f2ea995..fbd8745 100644
--- a/admin/assets/css/a3_admin_metabox.rtl.less
+++ b/admin/assets/css/a3_admin_metabox.rtl.less
@@ -103,4 +103,4 @@
}
}
}
-}
\ No newline at end of file
+}
diff --git a/admin/assets/css/admin-ui-style.css b/admin/assets/css/admin-ui-style.css
index 1437b07..d34a6f3 100644
--- a/admin/assets/css/admin-ui-style.css
+++ b/admin/assets/css/admin-ui-style.css
@@ -248,7 +248,8 @@
.a3rev_panel_container .a3rev-ui-password { width:300px; max-width:70%; }
/* Google API KEY Control */
-.a3rev_panel_container .a3rev-ui-google_api_key { width:350px; max-width: 100%; }
+.a3rev_panel_container .a3rev-ui-google_api_key,
+.a3rev_panel_container .a3rev-ui-google_map_api_key { width:350px; max-width: 100%; }
.a3rev_panel_container .a3rev-ui-google-api-key-inside { margin-top: 10px; }
.a3rev_panel_container .a3rev-ui-google-valid-key-message,
.a3rev_panel_container .a3rev-ui-google-unvalid-key-message { display: none; }
@@ -271,6 +272,7 @@
.a3rev_panel_container .a3rev-ui-ajax_submit-control,
.a3rev_panel_container .a3rev-ui-ajax_multi_submit-control {
margin-bottom: 6px;
+ position: relative;
}
.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 {
@@ -321,6 +323,14 @@
max-width: 600px;
position: relative;
}
+.a3rev_panel_container .a3rev-ui-progress-notice {
+ display: none;
+ position: absolute;
+ text-align: center;
+ top: -25px;
+ width: 100%;
+ color: #f00;
+}
.a3rev_panel_container .a3rev-ui-progress-inner {
animation: progress-bar 1s infinite linear;
-ms-animation: progress-bar 1s infinite linear;
@@ -877,6 +887,9 @@
margin-bottom:5px;
margin-right:2px;
}
+.chzn-select-ajaxify ~ .chosen-container .no-results span {
+ display: none;
+}
/* Custom for each element web icons font */
.a3-plugin-ui-delete-icon:before {
diff --git a/admin/assets/css/admin-ui-style.min.css b/admin/assets/css/admin-ui-style.min.css
index 9c1ca4c..46b8153 100644
--- a/admin/assets/css/admin-ui-style.min.css
+++ b/admin/assets/css/admin-ui-style.min.css
@@ -1,230 +1,365 @@
+/*-------------------------------------------------------------------------------------------*/
+
+/* A3rev Panel UI */
+
+/*-------------------------------------------------------------------------------------------*/
@charset "UTF-8";
-@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}
-@-webkit-keyframes progress-bar {
-from{background-position:0 0}
-to{background-position:24px 40px}
+
+/* A3 Plugin Framework Font Icons */
+
+/* GENERATE by Fontastic http://fontastic.me */
+@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;}
+@-webkit-keyframes progress-bar{
+ from{background-position:0 0;}
+ to{background-position:24px 40px;}
}
-@keyframes progress-bar {
-from{background-position:0 0}
-to{background-position:24px 40px}
+@keyframes progress-bar{
+ from{background-position:0 0;}
+ to{background-position:24px 40px;}
}
-[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}
-.a3-plugin-ui-a3-plugins-icon:before{content:"a"}
-.a3-plugin-ui-a3-rev-logo:before{content:"b"}
-.a3-plugin-ui-a3-thumb-icon:before{content:"c"}
-.a3-plugin-ui-delete-icon:before{content:"d"}
-.a3-plugin-ui-help-icon:before{content:"e"}
-.a3-plugin-ui-key-icon:before{content:"f"}
-.a3-plugin-ui-preview-icon:before{content:"g"}
-.a3-plugin-ui-refresh-icon:before{content:"h"}
-.a3-plugin-ui-loading-icon:before{content:"k"}
-.a3-plugin-ui-a3-plugins-icon-1:before{content:"i"}
-.a3-plugin-ui-a3-rev-logo-1:before{content:"j"}
-.a3rev_panel_container{visibility:hidden;height:0;overflow:hidden;margin-top:10px;float:left;width:100%}
-.a3rev_panel_container .a3rev_panel_row{display:table;width:100%;table-layout:fixed;clear:both;position:relative}
-.a3rev_panel_container .a3rev_panel_row:after{display:table;clear:both;content:''}
-.a3rev_panel_container .a3rev_panel_column{display:table-cell;width:50%;box-sizing:border-box;padding:0 10px;position:relative;vertical-align:top}
-.a3rev_panel_container .a3rev_panel_column:last-child{padding-right:0}
-.a3rev_panel_container .a3rev_panel_column:first-child{padding-left:0;padding-right:10px}
-.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}
-.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)}
-.a3rev_panel_container .a3rev_panel_box_handle{padding:8px 12px 8px 38px;position:relative}
-.a3rev_panel_container .a3rev_panel_box_handle .pro_feature_top_message{text-align:left;margin:5px 0 0}
-.a3rev_panel_container .a3-plugin-ui-panel-box{cursor:pointer;margin:0}
-.a3rev_panel_container .a3-plugin-ui-panel-box:before{content:"j";color:#aaa;position:absolute;top:7px;left:10px;font-size:20px}
-.a3rev_panel_container .box_active .a3-plugin-ui-panel-box:before{color:#22ef00}
-.a3rev_panel_container .a3-plugin-ui-panel-box.box_open:before{content:"m";color:#000}
-.a3rev_panel_container .a3-plugin-ui-panel-box:hover:before{color:#000}
-.a3rev_panel_container .a3rev_panel_box_handle h3{margin:0}
-.a3rev_panel_container .a3rev_panel_box_handle p{font-size:12px;margin:5px 0}
-.a3rev_panel_container .a3rev_panel_box_handle p:last-child{margin-bottom:0}
-.a3rev_panel_container .a3rev_panel_box_inside{overflow:hidden;height:0;visibility:hidden;border-top:1px solid #eee;padding:0 12px}
-.a3rev_panel_container .a3rev_panel_box_inside.box_open{overflow:inherit;height:auto;visibility:visible}
-.a3rev_panel_container .a3rev_panel_box.pro_feature_fields .a3rev_panel_box_handle{background-color:#edfed0}
-.a3rev_panel_container .a3rev_panel_box.pro_feature_fields .a3rev_panel_box_inside{border-color:#7ebd14}
-.a3rev_panel_container .a3rev_panel_inner{clear:both;display:block;padding-bottom:10px}
-.a3rev_panel_container .a3rev_panel_inner h3{margin-bottom:0}
-.a3rev_panel_container .a3rev_panel_inner .form-table{margin-bottom:0}
-.icon32-a3rev-ui-settings{background:url(../images/a3-plugins.png) no-repeat left top}
-.a3_subsubsub_section{float:left;width:100%}
-.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}
-.a3rev_panel_container .a3rev-ui-typography-size{width:80px}
-.a3rev_panel_container .a3rev-ui-typography-line_height{width:80px}
-.a3rev_panel_container .a3rev-ui-typography-face{width:160px}
-.a3rev_panel_container .a3rev-ui-typography-style{width:100px}
-.a3rev_panel_container .a3rev-ui-typography-preview{display:inline-block}
-.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}
-.a3rev_panel_container .a3rev-ui-typography-preview-button{float:left;margin:0;padding-top:0;height:24px;line-height:24px}
-.a3rev_panel_container .typography-preview-container{clear:both;position:relative;width:50%;margin-top:10px}
-.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}
-.a3rev_panel_container .wp-picker-holder{position:absolute;z-index:10000}
-.a3rev_panel_container input.wp-picker-default{height:24px!important}
-.a3rev_panel_container .wp-color-result{top:0}
-.a3rev_panel_container .a3rev-ui-text{width:300px;max-width:70%}
-.a3rev_panel_container .a3rev-ui-email{width:300px;max-width:70%}
-.a3rev_panel_container .a3rev-ui-number{width:40px;max-width:70%}
-.a3rev_panel_container .a3rev-ui-password{width:300px;max-width:70%}
-.a3rev_panel_container .a3rev-ui-google_api_key{width:350px;max-width:100%}
-.a3rev_panel_container .a3rev-ui-google-api-key-inside{margin-top:10px}
-.a3rev_panel_container .a3rev-ui-google-valid-key-message,.a3rev_panel_container .a3rev-ui-google-unvalid-key-message{display:none}
-.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)}
-.a3rev_panel_container .a3rev-ui-google-valid-key{background-color:#dff0d8;border:1px solid #468847;color:#468847}
-.a3rev_panel_container .a3rev-ui-google-unvalid-key{background-color:#ffebe8;border:1px solid #dd3d36;color:#dd3d36}
-.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}
-.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}
-.a3rev_panel_container .a3rev-ui-check-version-message{font-size:13px}
-.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}
-.a3rev_panel_container .a3rev-ui-latest-version-message{background-color:#dff0d8;border:1px solid #468847;color:#468847}
-.a3rev_panel_container .a3rev-ui-new-version-message{background-color:#ffebe8;border:1px solid #dd3d36;color:#dd3d36}
-.a3rev_panel_container .a3rev-ui-ajax_submit-control,.a3rev_panel_container .a3rev-ui-ajax_multi_submit-control{margin-bottom:6px}
-.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}
-.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}
-.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}
-.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}
-.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}
-.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}
-.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}
-.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}
-.a3rev_panel_container .a3rev-ui-completed-text{display:none}
-.a3rev_panel_container .a3rev-ui-ajax_multi_submit-control .a3rev-ui-ajax_multi_submit-button{margin-bottom:0}
-.a3rev_panel_container .a3rev-ui-statistics-wrap{float:left;width:100%;max-width:600px;margin-top:20px}
-.a3rev_panel_container .a3rev-ui-statistic-item{float:left;width:100%;box-sizing:border-box;margin-bottom:30px}
-.a3rev_panel_container .a3rev-ui-pie-wrap{height:80px;width:80px;margin:0 auto 5px;position:relative}
-.a3rev_panel_container .a3rev-ui-pie-shadow{border:10px solid #ddd;border-radius:100%;height:100%;width:100%;box-sizing:border-box}
-.a3rev_panel_container .a3rev-ui-pie{clip:rect(0px,80px,80px,40px);height:100%;width:100%;position:absolute;left:0;top:0}
-.a3rev_panel_container .a3rev-ui-pie.pie-more-50{clip:rect(auto,auto,auto,auto)}
-.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}
-.a3rev_panel_container .a3rev-ui-statistic-text{text-align:center;text-transform:uppercase;color:#777}
-.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}
-.a3rev_panel_container .a3rev-ui-textarea{width:600px;max-width:70%}
-.a3rev_panel_container .a3rev-ui-select{width:160px;max-width:70%}
-.a3rev_panel_container .a3rev-ui-multiselect{width:300px;max-width:70%}
-.a3rev_panel_container .forminp-radio ul{margin:0}
-.a3rev_panel_container .a3rev-ui-image_size-width{width:40px}
-.a3rev_panel_container .a3rev-ui-image_size-height{width:40px}
-.a3rev_panel_container .a3rev-ui-single_select_page{width:300px;max-width:70%}
-.a3rev_panel_container .a3rev-ui-settings-preview{display:inline-block}
-.a3rev_panel_container .settings-apply-preview{padding:10px;background:#FF0}
-.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}
-.a3rev_panel_container .a3rev-ui-settings-preview-button{float:left;margin:0;padding-top:0;height:24px;line-height:24px}
-.a3rev_panel_container .settings-preview-container{clear:both;position:relative;margin-top:12px;width:50%}
-.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}
-.a3rev_panel_container .a3rev-ui-border_styles-width{width:80px}
-.a3rev_panel_container .a3rev-ui-border_styles-style{width:80px}
-.a3rev_panel_container .forminp-border_corner .desc{margin-bottom:10px!important}
-.a3rev_panel_container .forminp-border_corner .iPhoneCheckContainer{margin-right:30px}
-.a3rev_panel_container .a3rev-ui-border-corner-value-container{float:left;width:100%}
-.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}
-.a3rev_panel_container .a3rev-ui-border_corner-span{float:left;width:140px;margin-bottom:8px}
-.a3rev_panel_container .a3rev-ui-border_corner-px{float:left;margin-right:10px}
-.a3rev_panel_container .forminp-border_corner .settings-apply-preview{border:1px solid #515151}
-.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)}
-.a3rev_panel_container .a3rev-ui-bg_color-enable-container{margin-top:10px}
-.a3rev_panel_container .a3rev-ui-box_shadow-h_shadow{width:80px}
-.a3rev_panel_container .a3rev-ui-box_shadow-v_shadow{width:80px}
-.a3rev_panel_container .a3rev-ui-box_shadow-blur{width:80px}
-.a3rev_panel_container .a3rev-ui-box_shadow-spread{width:80px}
-.a3rev_panel_container .a3rev-ui-box_shadow-enable-container{margin-top:10px}
-.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}
-.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)}
-.a3rev_panel_container .a3rev-ui-upload{width:300px;height:24px}
-.a3rev_panel_container .a3rev-ui-slide-container{white-space:nowrap;float:left}
-.a3rev_panel_container .a3rev-ui-slide-container-start{padding-left:12px;margin-bottom:15px;margin-right:20px;float:left}
-.a3rev_panel_container .a3rev-ui-slide-result-container{float:left;white-space:nowrap}
-.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}
-.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}
-.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%}
-.a3rev_panel_container .a3rev-ui-slider{float:left;width:50px;padding:3px;margin-top:-1px}
-.a3rev_panel_container .a3rev-ui-array_textfields{width:40px}
-.a3rev_panel_container .forminp-onoff_radio ul{float:left;width:100%;margin:0}
-.a3rev_panel_container .forminp-onoff_radio li{float:left;width:100%;padding-top:10px}
-.a3rev_panel_container .forminp-onoff_radio .iPhoneCheckDisabled,.a3rev_panel_container .forminp-onoff_radio .iOSCheckDisabled{filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100);opacity:1}
-.a3rev_panel_container .iPhoneCheckContainer,.a3rev_panel_container .iOSCheckContainer{position:relative;height:25px;cursor:pointer;margin-right:10px;float:left;margin-top:-3px}
-.a3rev_panel_container .iPhoneCheckContainer input,.a3rev_panel_container .iOSCheckContainer input{display:none}
-.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}
-.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}
-.a3rev_panel_container label.iPhoneCheckLabelOff span,.a3rev_panel_container label.iOSCheckLabelOff span{padding-right:10px;padding-left:0;display:inline-block;text-transform:uppercase}
-.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}
-.a3rev_panel_container label.iPhoneCheckLabelOn span,.a3rev_panel_container label.iOSCheckLabelOn span{padding-left:10px;display:inline-block;text-transform:uppercase}
-.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}
-.a3rev_panel_container .iPhoneCheckDisabled,.a3rev_panel_container .iOSCheckDisabled{filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=50);opacity:.5}
-.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)}
-.a3rev_panel_container .a3rev-ui-time_picker{width:76px;text-align:center;cursor:pointer}
-.a3rev_panel_container table.form-table th img.help_tip{float:right;margin:0 -12px 0 0}
-.a3rev_panel_container table.form-table img.help_tip{cursor:help;line-height:1;margin:-4px 0 0 5px;padding:0;vertical-align:middle}
-.subsubsub{white-space:normal}
-.subsubsub li{white-space:nowrap}
-.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}
-#a3_plugin_premium_video_container{margin-top:10px}
-#a3_plugin_premium_video_container .a3rev_panel_box{margin-bottom:0}
-#a3_plugin_premium_video_container .a3-plugin-ui-panel-box{color:#006799;cursor:default}
-#a3_plugin_premium_video_container .a3-plugin-ui-panel-box::before{color:#006799;content:"f"}
-#a3_plugin_premium_video_container .a3rev_panel_video_box{border-top:1px solid #eee;overflow:hidden;padding:0;position:relative}
-#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}
-#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}
-#a3_plugin_premium_video_container .a3-plugin-premium-image{position:relative;float:left;width:50%;margin-right:15px}
-#a3_plugin_premium_video_container .a3-plugin-premium-image img{height:auto;width:100%;float:left}
-#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)}
-#a3_plugin_premium_video_container .a3-plugin-video-play:hover{background-color:rgba(0,0,0,0.6)}
-#a3_plugin_panel_container{position:relative;margin-top:10px;float:left;width:100%}
-#a3_plugin_panel_fields{padding-right:280px}
-#a3_plugin_panel_upgrade_area{float:right;padding-left:20px;width:260px;margin-top:10px}
-#a3_plugin_panel_extensions .a3_plugin_panel_extension_box{border:1px solid #E6DB55;color:#555;margin-bottom:17px;padding:5px 10px;background:#fff}
-#a3_plugin_panel_extensions img{width:auto;max-width:100%}
-.pro_feature_top_message{font-size:11px;text-align:center;margin:10px 0}
-.pro_feature_fields{position:relative;border:2px solid #E6DB55;-webkit-border-radius:10px;-moz-border-radius:10px;-o-border-radius:10px;border-radius:10px}
-.pro_feature_hidden{display:none!important}
-.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}
-.a3rev_blue_message_box a{color:red}
-.a3rev_panel_container .chosen-container{margin-bottom:5px;margin-right:2px}
-.a3-plugin-ui-delete-icon:before{vertical-align:top}
-.a3-plugin-ui-icon{color:#46719d;overflow:hidden}
-.a3-plugin-ui-a3-rev-logo{font-size:170px;height:125px;margin-top:-30px}
-.a3-plugin-ui-help-icon{color:#777;float:right;margin-right:-15px;width:14px;height:14px;cursor:pointer;font-size:12px;margin-top:5px}
-.a3-plugin-ui-preview-icon{color:#000;display:block;width:14px;height:16px}
-.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}
-.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}
-.wf-loading .a3rev_panel_container .typography-preview.current:before,.wf-loading .a3rev_panel_container .settings-preview.current:before{content:"k"!important}
-.a3-plugin-ui-delete-icon{font-size:10px;color:#C00}
-@media screen and ( max-width: 1100px ) {
-.a3rev_panel_column .form-table th,.a3rev_panel_column .form-table td{display:block;vertical-align:middle;width:auto}
-.a3rev_panel_column .form-table th{border-bottom:0;padding-bottom:0;padding-top:10px}
-.a3rev_panel_column .form-table td{margin-bottom:0;padding-bottom:6px;padding-left:0;padding-top:4px}
+[class^="a3-plugin-ui-"]:before,
+[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;}
+.a3-plugin-ui-a3-plugins-icon:before{content:"a";}
+.a3-plugin-ui-a3-rev-logo:before{content:"b";}
+.a3-plugin-ui-a3-thumb-icon:before{content:"c";}
+.a3-plugin-ui-delete-icon:before{content:"d";}
+.a3-plugin-ui-help-icon:before{content:"e";}
+.a3-plugin-ui-key-icon:before{content:"f";}
+.a3-plugin-ui-preview-icon:before{content:"g";}
+.a3-plugin-ui-refresh-icon:before{content:"h";}
+.a3-plugin-ui-loading-icon:before{content:"k";}
+.a3-plugin-ui-a3-plugins-icon-1:before{content:"i";}
+.a3-plugin-ui-a3-rev-logo-1:before{content:"j";}
+.a3rev_panel_container{visibility:hidden;height:0;overflow:hidden;margin-top:10px;float:left;width:100%;}
+.a3rev_panel_container .a3rev_panel_row{display:table;width:100%;table-layout:fixed;clear:both;position:relative;}
+.a3rev_panel_container .a3rev_panel_row:after{display:table;clear:both;content:'';}
+.a3rev_panel_container .a3rev_panel_column{display:table-cell;width:50%;box-sizing:border-box;padding:0 10px;position:relative;vertical-align:top;}
+.a3rev_panel_container .a3rev_panel_column:last-child{padding-right:0;}
+.a3rev_panel_container .a3rev_panel_column:first-child{padding-left:0;padding-right:10px;}
+.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;}
+.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);}
+.a3rev_panel_container .a3rev_panel_box_handle{padding:8px 12px 8px 38px;position:relative;}
+.a3rev_panel_container .a3rev_panel_box_handle .pro_feature_top_message{text-align:left;margin:5px 0 0;}
+.a3rev_panel_container .a3-plugin-ui-panel-box{cursor:pointer;margin:0;}
+.a3rev_panel_container .a3-plugin-ui-panel-box:before{content:"j";color:#aaa;position:absolute;top:7px;left:10px;font-size:20px;}
+.a3rev_panel_container .box_active .a3-plugin-ui-panel-box:before{color:#22ef00;}
+.a3rev_panel_container .a3-plugin-ui-panel-box.box_open:before{content:"m";color:#000;}
+.a3rev_panel_container .a3-plugin-ui-panel-box:hover:before{color:#000;}
+.a3rev_panel_container .a3rev_panel_box_handle h3{margin:0;}
+.a3rev_panel_container .a3rev_panel_box_handle p{font-size:12px;margin:5px 0;}
+.a3rev_panel_container .a3rev_panel_box_handle p:last-child{margin-bottom:0;}
+.a3rev_panel_container .a3rev_panel_box_inside{overflow:hidden;height:0;visibility:hidden;border-top:1px solid #eee;padding:0 12px;}
+.a3rev_panel_container .a3rev_panel_box_inside.box_open{overflow:inherit;height:auto;visibility:visible;}
+.a3rev_panel_container .a3rev_panel_box.pro_feature_fields .a3rev_panel_box_handle{background-color:#edfed0;}
+.a3rev_panel_container .a3rev_panel_box.pro_feature_fields .a3rev_panel_box_inside{border-color:#7ebd14;}
+.a3rev_panel_container .a3rev_panel_inner{clear:both;display:block;padding-bottom:10px;}
+.a3rev_panel_container .a3rev_panel_inner h3{margin-bottom:0;}
+.a3rev_panel_container .a3rev_panel_inner .form-table{margin-bottom:0;}
+.icon32-a3rev-ui-settings{background:url("../images/a3-plugins.png") no-repeat left top;}
+.a3_subsubsub_section{float:left;width:100%;}
+.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;}
+
+/* Font Control */
+.a3rev_panel_container .a3rev-ui-typography-size{width:80px;}
+.a3rev_panel_container .a3rev-ui-typography-line_height{width:80px;}
+.a3rev_panel_container .a3rev-ui-typography-face{width:160px;}
+.a3rev_panel_container .a3rev-ui-typography-style{width:100px;}
+.a3rev_panel_container .a3rev-ui-typography-preview{display:inline-block;}
+.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;}
+.a3rev_panel_container .a3rev-ui-typography-preview-button{float:left;margin:0px;padding-top:0px;height:24px;line-height:24px;}
+.a3rev_panel_container .typography-preview-container{clear:both;position:relative;width:50%;margin-top:10px;}
+.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;}
+
+/* Class is dynamically added to the "html" tag. */
+
+/* Color Control */
+.a3rev_panel_container .wp-picker-holder{position:absolute;z-index:10000;}
+.a3rev_panel_container input.wp-picker-default{height:24px!important;}
+.a3rev_panel_container .wp-color-result{top:0px;}
+
+/* Text Input Control */
+.a3rev_panel_container .a3rev-ui-text{width:300px;max-width:70%;}
+
+/* Email Input Control */
+.a3rev_panel_container .a3rev-ui-email{width:300px;max-width:70%;}
+
+/* Number Input Control */
+.a3rev_panel_container .a3rev-ui-number{width:40px;max-width:70%;}
+
+/* Password Input Control */
+.a3rev_panel_container .a3rev-ui-password{width:300px;max-width:70%;}
+
+/* Google API KEY Control */
+.a3rev_panel_container .a3rev-ui-google_api_key,
+.a3rev_panel_container .a3rev-ui-google_map_api_key{width:350px;max-width:100%;}
+.a3rev_panel_container .a3rev-ui-google-api-key-inside{margin-top:10px;}
+.a3rev_panel_container .a3rev-ui-google-valid-key-message,
+.a3rev_panel_container .a3rev-ui-google-unvalid-key-message{display:none;}
+.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);}
+.a3rev_panel_container .a3rev-ui-google-valid-key{background-color:#dff0d8;border:1px solid #468847;color:#468847;}
+.a3rev_panel_container .a3rev-ui-google-unvalid-key{background-color:#ffebe8;border:1px solid #dd3d36;color:#dd3d36;}
+.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;}
+
+/* Manual Check New Version Control */
+.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;}
+.a3rev_panel_container .a3rev-ui-check-version-message{font-size:13px;}
+.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;}
+.a3rev_panel_container .a3rev-ui-latest-version-message{background-color:#dff0d8;border:1px solid #468847;color:#468847;}
+.a3rev_panel_container .a3rev-ui-new-version-message{background-color:#ffebe8;border:1px solid #dd3d36;color:#dd3d36;}
+
+/* Ajax Submit Control */
+.a3rev_panel_container .a3rev-ui-ajax_submit-control,
+.a3rev_panel_container .a3rev-ui-ajax_multi_submit-control{margin-bottom:6px;position:relative;}
+.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 0.5s ease 0.1s;cursor:pointer;height:40px;box-sizing:border-box;margin-bottom:5px;}
+.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;}
+.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;}
+.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 0.1s;height:40px;box-sizing:border-box;}
+.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 0.1s;}
+.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;}
+.a3rev_panel_container .a3rev-ui-progress-notice{display:none;position:absolute;text-align:center;top:-25px;width:100%;color:#f00;}
+.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;}
+.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: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;}
+.a3rev_panel_container .a3rev-ui-completed-text{display:none;}
+
+/* Ajax Multi Submit Control */
+.a3rev_panel_container .a3rev-ui-ajax_multi_submit-control .a3rev-ui-ajax_multi_submit-button{margin-bottom:0px;}
+.a3rev_panel_container .a3rev-ui-statistics-wrap{float:left;width:100%;max-width:600px;margin-top:20px;}
+.a3rev_panel_container .a3rev-ui-statistic-item{float:left;width:100%;box-sizing:border-box;margin-bottom:30px;}
+.a3rev_panel_container .a3rev-ui-pie-wrap{height:80px;width:80px;margin:0 auto 5px auto;position:relative;}
+.a3rev_panel_container .a3rev-ui-pie-shadow{border:10px solid #ddd;border-radius:100%;height:100%;width:100%;box-sizing:border-box;}
+.a3rev_panel_container .a3rev-ui-pie{clip:rect(0px,80px,80px,40px);height:100%;width:100%;position:absolute;left:0;top:0;}
+.a3rev_panel_container .a3rev-ui-pie.pie-more-50{clip:rect(auto,auto,auto,auto);}
+.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;}
+.a3rev_panel_container .a3rev-ui-statistic-text{text-align:center;text-transform:uppercase;color:#777;}
+.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:0px;}
+
+/* Textarea Control */
+.a3rev_panel_container .a3rev-ui-textarea{width:600px;max-width:70%;}
+
+/* Select Control */
+.a3rev_panel_container .a3rev-ui-select{width:160px;max-width:70%;}
+
+/* Multiselect Control */
+.a3rev_panel_container .a3rev-ui-multiselect{width:300px;max-width:70%;}
+
+/* Radio Control */
+.a3rev_panel_container .forminp-radio ul{margin:0;}
+
+/* Image Size Control */
+.a3rev_panel_container .a3rev-ui-image_size-width{width:40px;}
+.a3rev_panel_container .a3rev-ui-image_size-height{width:40px;}
+.a3rev_panel_container .a3rev-ui-image_size-crop{}
+
+/* Single Select Page Control */
+.a3rev_panel_container .a3rev-ui-single_select_page{width:300px;max-width:70%;}
+
+/* Settings Preview */
+.a3rev_panel_container .a3rev-ui-settings-preview{display:inline-block;}
+.a3rev_panel_container .settings-apply-preview{padding:10px;background:#FF0;}
+.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;}
+.a3rev_panel_container .a3rev-ui-settings-preview-button{float:left;margin:0px;padding-top:0px;height:24px;line-height:24px;}
+.a3rev_panel_container .settings-preview-container{clear:both;position:relative;margin-top:12px;width:50%;}
+.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;}
+
+/* Border Styles Control */
+.a3rev_panel_container .a3rev-ui-border_styles-width{width:80px;}
+.a3rev_panel_container .a3rev-ui-border_styles-style{width:80px;}
+
+/* Border Rounded Corner Control */
+.a3rev_panel_container .forminp-border_corner .desc{margin-bottom:10px!important;}
+.a3rev_panel_container .forminp-border_corner .iPhoneCheckContainer{margin-right:30px;}
+.a3rev_panel_container .a3rev-ui-border-corner-value-container{float:left;width:100%;}
+.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;}
+.a3rev_panel_container .a3rev-ui-border_corner-span{float:left;width:140px;margin-bottom:8px;}
+.a3rev_panel_container .a3rev-ui-border_corner-px{float:left;margin-right:10px;}
+.a3rev_panel_container .forminp-border_corner .settings-apply-preview{border:1px solid #515151;}
+.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 #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);}
+
+/* Background Color Control */
+.a3rev_panel_container .a3rev-ui-bg_color-enable-container{margin-top:10px;}
+
+/* Box Shadow Control */
+.a3rev_panel_container .a3rev-ui-box_shadow-h_shadow{width:80px;}
+.a3rev_panel_container .a3rev-ui-box_shadow-v_shadow{width:80px;}
+.a3rev_panel_container .a3rev-ui-box_shadow-blur{width:80px;}
+.a3rev_panel_container .a3rev-ui-box_shadow-spread{width:80px;}
+.a3rev_panel_container .a3rev-ui-box_shadow-enable-container{margin-top:10px;}
+.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:0px;}
+.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 #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);}
+
+/* Uploader Control */
+.a3rev_panel_container .a3rev-ui-upload{width:300px;height:24px;}
+
+/* SLIDER Control */
+.a3rev_panel_container .a3rev-ui-slide-container{white-space:nowrap;float:left;}
+.a3rev_panel_container .a3rev-ui-slide-container-start{padding-left:12px;margin-bottom:15px;margin-right:20px;float:left;}
+.a3rev_panel_container .a3rev-ui-slide-result-container{float:left;white-space:nowrap;}
+.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;}
+.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;}
+.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%;}
+.a3rev_panel_container .a3rev-ui-slider{float:left;width:50px;padding:3px;margin-top:-1px;}
+
+/* Array TextFields Control */
+.a3rev_panel_container .a3rev-ui-array_textfields{width:40px;}
+
+/* OnOff Radio Control */
+.a3rev_panel_container .forminp-onoff_radio ul{float:left;width:100%;margin:0;}
+.a3rev_panel_container .forminp-onoff_radio li{float:left;width:100%;padding-top:10px;}
+.a3rev_panel_container .forminp-onoff_radio .iPhoneCheckDisabled,
+.a3rev_panel_container .forminp-onoff_radio .iOSCheckDisabled{filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100);opacity:1;}
+
+/* OnOff Checkbox & Radio Control */
+.a3rev_panel_container .iPhoneCheckContainer,
+.a3rev_panel_container .iOSCheckContainer{position:relative;height:25px;cursor:pointer;margin-right:10px;float:left;margin-top:-3px;}
+.a3rev_panel_container .iPhoneCheckContainer input,
+.a3rev_panel_container .iOSCheckContainer input{display:none;}
+.a3rev_panel_container .iPhoneCheckContainer label,
+.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;}
+.a3rev_panel_container label.iPhoneCheckLabelOff,
+.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;}
+.a3rev_panel_container label.iPhoneCheckLabelOff span,
+.a3rev_panel_container label.iOSCheckLabelOff span{padding-right:10px;padding-left:0px;display:inline-block;text-transform:uppercase;}
+.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 #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;}
+.a3rev_panel_container label.iPhoneCheckLabelOn span,
+.a3rev_panel_container label.iOSCheckLabelOn span{padding-left:10px;display:inline-block;text-transform:uppercase;}
+.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 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;}
+.a3rev_panel_container .iPhoneCheckDisabled,
+.a3rev_panel_container .iOSCheckDisabled{filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=50);opacity:0.5;}
+
+/* Switcher Checkbox Control */
+.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 #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);}
+
+/* Time Picker Control */
+.a3rev_panel_container .a3rev-ui-time_picker{width:76px;text-align:center;cursor:pointer;}
+
+/* Help Tip */
+.a3rev_panel_container table.form-table th img.help_tip{float:right;margin:0 -12px 0 0;}
+.a3rev_panel_container table.form-table img.help_tip{cursor:help;line-height:1;margin:-4px 0 0 5px;padding:0;vertical-align:middle;}
+
+/* Sub tab ui */
+.subsubsub{white-space:normal;}
+.subsubsub li{white-space:nowrap;}
+
+/* View Doc button */
+.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;}
+
+/* Style for Premium Video Box */
+#a3_plugin_premium_video_container{margin-top:10px;}
+#a3_plugin_premium_video_container .a3rev_panel_box{margin-bottom:0px;}
+#a3_plugin_premium_video_container .a3-plugin-ui-panel-box{color:#006799;cursor:default;}
+#a3_plugin_premium_video_container .a3-plugin-ui-panel-box::before{color:#006799;content:"f";}
+#a3_plugin_premium_video_container .a3rev_panel_video_box{border-top:1px solid #eee;overflow:hidden;padding:0;position:relative;}
+#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 12px;box-sizing:border-box;float:left;}
+#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;}
+#a3_plugin_premium_video_container .a3-plugin-premium-image{position:relative;float:left;width:50%;margin-right:15px;}
+#a3_plugin_premium_video_container .a3-plugin-premium-image img{height:auto;width:100%;float:left;}
+#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);}
+#a3_plugin_premium_video_container .a3-plugin-video-play:hover{background-color:rgba(0,0,0,0.6);}
+
+/* Style for yellow box about Pro or Ultimate version */
+#a3_plugin_panel_container{position:relative;margin-top:10px;float:left;width:100%;}
+#a3_plugin_panel_fields{padding-right:280px;}
+#a3_plugin_panel_upgrade_area{float:right;padding-left:20px;width:260px;margin-top:10px;}
+#a3_plugin_panel_extensions .a3_plugin_panel_extension_box{border:1px solid #E6DB55;color:#555555;margin-bottom:17px;padding:5px 10px;background:#fff;}
+#a3_plugin_panel_extensions img{width:auto;max-width:100%;}
+.pro_feature_top_message{font-size:11px;text-align:center;margin:10px 0;}
+.pro_feature_fields{position:relative;border:2px solid #E6DB55;-webkit-border-radius:10px;-moz-border-radius:10px;-o-border-radius:10px;border-radius:10px;}
+.pro_feature_hidden{display:none!important;}
+
+/* Style for Blue message box */
+.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;}
+.a3rev_blue_message_box a{color:#F00;}
+
+/* Chosen Style */
+.a3rev_panel_container .chosen-container{margin-bottom:5px;margin-right:2px;}
+.chzn-select-ajaxify ~ .chosen-container .no-results span{display:none;}
+
+/* Custom for each element web icons font */
+.a3-plugin-ui-delete-icon:before{vertical-align:top;}
+.a3-plugin-ui-icon{color:#46719d;overflow:hidden;}
+.a3-plugin-ui-a3-rev-logo{font-size:170px;height:125px;margin-top:-30px;}
+.a3-plugin-ui-help-icon{color:#777;float:right;margin-right:-15px;width:14px;height:14px;cursor:pointer;font-size:12px;margin-top:5px;}
+.a3-plugin-ui-preview-icon{color:#000;display:block;width:14px;height:16px;}
+.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: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;}
+.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;}
+.wf-loading .a3rev_panel_container .typography-preview.current:before,
+.wf-loading .a3rev_panel_container .settings-preview.current:before{content:"k"!important;}
+.a3-plugin-ui-delete-icon{font-size:10px;color:#C00;}
+
+/* END A3 Plugin Framework Font Icons */
+@media screen and (max-width:1100px){
+ .a3rev_panel_column .form-table th,
+ .a3rev_panel_column .form-table td{display:block;vertical-align:middle;width:auto;}
+ .a3rev_panel_column .form-table th{border-bottom:0;padding-bottom:0;padding-top:10px;}
+ .a3rev_panel_column .form-table td{margin-bottom:0;padding-bottom:6px;padding-left:0;padding-top:4px;}
}
-@media screen and ( min-width: 783px ) {
-.a3rev_panel_container .chosen-container-multi{min-width:300px}
+@media screen and (min-width:783px){
+ .a3rev_panel_container .chosen-container-multi{min-width:300px;}
}
-@media screen and ( max-width: 782px ) {
-#a3_plugin_panel_fields{width:100%}
-#a3_plugin_panel_upgrade_area{display:none}
-.a3rev_panel_container .pro_feature_fields{margin-right:0}
-.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%}
-.a3rev_panel_container .a3rev-ui-text{max-width:none;width:100%}
-.a3rev_panel_container .a3rev-ui-textarea{max-width:none!important;width:100%!important}
-.a3rev_panel_container .a3rev-ui-slider{width:50px!important}
-.a3rev_panel_container .typography-preview-container,.a3rev_panel_container .settings-preview-container{width:90%}
-.a3rev_panel_container .a3rev-ui-typography-preview-button:active,.a3rev_panel_container .a3rev-ui-settings-preview-button:active{padding-top:inherit!important}
-.a3rev_panel_container .wp-picker-container input.wp-color-picker[type="text"]{width:75px!important;padding:3px 10px!important}
-.wp-core-ui .button.wp-picker-default{padding:0 8px 1px}
-.a3rev_panel_container input.a3rev-color-picker{margin-top:1px!important}
-.a3rev_panel_container input.wp-picker-default{margin-top:1px!important;padding:2px 8px!important}
-.a3rev_panel_container .chosen-container-multi{width:100%!important}
-.a3rev_blue_message_box_container{width:100%!important}
-.a3-plugin-ui-help-icon{margin-right:0}
-.a3rev_panel_container .a3rev-ui-statistic-item{width:100%!important}
+@media screen and (max-width:782px){
+ #a3_plugin_panel_fields{width:100%;}
+ #a3_plugin_panel_upgrade_area{display:none;}
+ .a3rev_panel_container .pro_feature_fields{margin-right:0px;}
+ .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%;}
+ .a3rev_panel_container .a3rev-ui-text{max-width:none;width:100%;}
+ .a3rev_panel_container .a3rev-ui-textarea{max-width:none!important;width:100%!important;}
+ .a3rev_panel_container .a3rev-ui-slider{width:50px!important;}
+ .a3rev_panel_container .typography-preview-container,
+ .a3rev_panel_container .settings-preview-container{width:90%;}
+ .a3rev_panel_container .a3rev-ui-typography-preview-button:active,
+ .a3rev_panel_container .a3rev-ui-settings-preview-button:active{padding-top:inherit!important;}
+ .a3rev_panel_container .wp-picker-container input.wp-color-picker[type="text"]{width:75px!important;padding:3px 10px!important;}
+ .wp-core-ui .button.wp-picker-default{padding:0 8px 1px;}
+ .a3rev_panel_container input.a3rev-color-picker{margin-top:1px!important;}
+ .a3rev_panel_container input.wp-picker-default{margin-top:1px!important;padding:2px 8px!important;}
+ .a3rev_panel_container .chosen-container-multi{width:100%!important;}
+ .a3rev_blue_message_box_container{width:100%!important;}
+ .a3-plugin-ui-help-icon{margin-right:0px;}
+ .a3rev_panel_container .a3rev-ui-statistic-item{width:100%!important;}
}
-@media screen and ( max-width: 640px ) {
-.a3rev_panel_container .a3rev_panel_row{display:block}
-.a3rev_panel_container .a3rev_panel_column{display:block;width:100%;padding:0}
-.a3rev_panel_container .a3rev_panel_column:first-child,.a3rev_panel_container .a3rev_panel_column:last-child{padding:0}
+@media screen and (max-width:640px){
+ .a3rev_panel_container .a3rev_panel_row{display:block;}
+ .a3rev_panel_container .a3rev_panel_column{display:block;width:100%;padding:0;}
+ .a3rev_panel_container .a3rev_panel_column:first-child,
+ .a3rev_panel_container .a3rev_panel_column:last-child{padding:0;}
}
-@media screen and ( max-width: 600px ) {
-#a3_plugin_premium_video_container .a3rev_panel_box_left_inside,#a3_plugin_premium_video_container .a3rev_panel_box_right_inside{width:100%;float:left}
-#a3_plugin_premium_video_container .a3rev_panel_box_separate{width:100%;height:1px;position:relative;margin-left:0;float:left;left:auto;top:auto}
+@media screen and (max-width:600px){
+ #a3_plugin_premium_video_container .a3rev_panel_box_left_inside,
+ #a3_plugin_premium_video_container .a3rev_panel_box_right_inside{width:100%;float:left;}
+ #a3_plugin_premium_video_container .a3rev_panel_box_separate{width:100%;height:1px;position:relative;margin-left:0;float:left;left:auto;top:auto;}
+}
+@media screen and (max-width:480px){
+ .a3rev_panel_container .a3rev-ui-slide-container-start{margin-top:5px;}
+ .a3_subsubsub_section .subsubsub{text-align:left;}
+ .a3rev_panel_container .chosen-container-single{max-width:300px!important;}
+ #a3_plugin_premium_video_container .a3-plugin-premium-image{width:100%;margin-right:0px;margin-bottom:10px;}
}
-@media screen and ( max-width: 480px ) {
-.a3rev_panel_container .a3rev-ui-slide-container-start{margin-top:5px}
-.a3_subsubsub_section .subsubsub{text-align:left}
-.a3rev_panel_container .chosen-container-single{max-width:300px!important}
-#a3_plugin_premium_video_container .a3-plugin-premium-image{width:100%;margin-right:0;margin-bottom:10px}
-}
\ No newline at end of file
diff --git a/admin/assets/css/popover.css b/admin/assets/css/popover.css
new file mode 100644
index 0000000..033861f
--- /dev/null
+++ b/admin/assets/css/popover.css
@@ -0,0 +1,192 @@
+/*!
+ * Bootstrap v4.1.1 (https://getbootstrap.com/)
+ * Copyright 2011-2018 The Bootstrap Authors
+ * Copyright 2011-2018 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ */
+
+.popover {
+ position: absolute;
+ top: 0;
+ left: 0;
+ z-index: 1060;
+ display: block;
+ 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: 0.875rem;
+ word-wrap: break-word;
+ background-color: #fff;
+ background-clip: padding-box;
+ border: 1px solid rgba(0, 0, 0, 0.2);
+ border-radius: 0.3rem;
+}
+
+.popover .arrow {
+ position: absolute;
+ display: block;
+ width: 1rem;
+ height: 0.5rem;
+ margin: 0 0.3rem;
+}
+
+.popover .arrow::before, .popover .arrow::after {
+ position: absolute;
+ display: block;
+ content: "";
+ border-color: transparent;
+ border-style: solid;
+}
+
+.bs-popover-top, .bs-popover-auto[x-placement^="top"] {
+ margin-bottom: 0.5rem;
+}
+
+.bs-popover-top .arrow, .bs-popover-auto[x-placement^="top"] .arrow {
+ bottom: calc((0.5rem + 1px) * -1);
+}
+
+.bs-popover-top .arrow::before, .bs-popover-auto[x-placement^="top"] .arrow::before,
+.bs-popover-top .arrow::after,
+.bs-popover-auto[x-placement^="top"] .arrow::after {
+ border-width: 0.5rem 0.5rem 0;
+}
+
+.bs-popover-top .arrow::before, .bs-popover-auto[x-placement^="top"] .arrow::before {
+ bottom: 0;
+ border-top-color: rgba(0, 0, 0, 0.25);
+}
+
+
+.bs-popover-top .arrow::after,
+.bs-popover-auto[x-placement^="top"] .arrow::after {
+ bottom: 1px;
+ border-top-color: #fff;
+}
+
+.bs-popover-right, .bs-popover-auto[x-placement^="right"] {
+ margin-left: 0.5rem;
+}
+
+.bs-popover-right .arrow, .bs-popover-auto[x-placement^="right"] .arrow {
+ left: calc((0.5rem + 1px) * -1);
+ width: 0.5rem;
+ height: 1rem;
+ margin: 0.3rem 0;
+}
+
+.bs-popover-right .arrow::before, .bs-popover-auto[x-placement^="right"] .arrow::before,
+.bs-popover-right .arrow::after,
+.bs-popover-auto[x-placement^="right"] .arrow::after {
+ border-width: 0.5rem 0.5rem 0.5rem 0;
+}
+
+.bs-popover-right .arrow::before, .bs-popover-auto[x-placement^="right"] .arrow::before {
+ left: 0;
+ border-right-color: rgba(0, 0, 0, 0.25);
+}
+
+
+.bs-popover-right .arrow::after,
+.bs-popover-auto[x-placement^="right"] .arrow::after {
+ left: 1px;
+ border-right-color: #fff;
+}
+
+.bs-popover-bottom, .bs-popover-auto[x-placement^="bottom"] {
+ margin-top: 0.5rem;
+}
+
+.bs-popover-bottom .arrow, .bs-popover-auto[x-placement^="bottom"] .arrow {
+ top: calc((0.5rem + 1px) * -1);
+}
+
+.bs-popover-bottom .arrow::before, .bs-popover-auto[x-placement^="bottom"] .arrow::before,
+.bs-popover-bottom .arrow::after,
+.bs-popover-auto[x-placement^="bottom"] .arrow::after {
+ border-width: 0 0.5rem 0.5rem 0.5rem;
+}
+
+.bs-popover-bottom .arrow::before, .bs-popover-auto[x-placement^="bottom"] .arrow::before {
+ top: 0;
+ border-bottom-color: rgba(0, 0, 0, 0.25);
+}
+
+
+.bs-popover-bottom .arrow::after,
+.bs-popover-auto[x-placement^="bottom"] .arrow::after {
+ top: 1px;
+ border-bottom-color: #fff;
+}
+
+.bs-popover-bottom .popover-header::before, .bs-popover-auto[x-placement^="bottom"] .popover-header::before {
+ position: absolute;
+ top: 0;
+ left: 50%;
+ display: block;
+ width: 1rem;
+ margin-left: -0.5rem;
+ content: "";
+ border-bottom: 1px solid #f7f7f7;
+}
+
+.bs-popover-left, .bs-popover-auto[x-placement^="left"] {
+ margin-right: 0.5rem;
+}
+
+.bs-popover-left .arrow, .bs-popover-auto[x-placement^="left"] .arrow {
+ right: calc((0.5rem + 1px) * -1);
+ width: 0.5rem;
+ height: 1rem;
+ margin: 0.3rem 0;
+}
+
+.bs-popover-left .arrow::before, .bs-popover-auto[x-placement^="left"] .arrow::before,
+.bs-popover-left .arrow::after,
+.bs-popover-auto[x-placement^="left"] .arrow::after {
+ border-width: 0.5rem 0 0.5rem 0.5rem;
+}
+
+.bs-popover-left .arrow::before, .bs-popover-auto[x-placement^="left"] .arrow::before {
+ right: 0;
+ border-left-color: rgba(0, 0, 0, 0.25);
+}
+
+
+.bs-popover-left .arrow::after,
+.bs-popover-auto[x-placement^="left"] .arrow::after {
+ right: 1px;
+ border-left-color: #fff;
+}
+
+.popover-header {
+ padding: 0.5rem 0.75rem;
+ margin-bottom: 0;
+ font-size: 1rem;
+ color: inherit;
+ background-color: #f7f7f7;
+ border-bottom: 1px solid #ebebeb;
+ border-top-left-radius: calc(0.3rem - 1px);
+ border-top-right-radius: calc(0.3rem - 1px);
+}
+
+.popover-header:empty {
+ display: none;
+}
+
+.popover-body {
+ padding: 0.5rem 0.75rem;
+ color: #212529;
+}
\ No newline at end of file
diff --git a/admin/assets/css/popover.min.css b/admin/assets/css/popover.min.css
new file mode 100644
index 0000000..ede7dc4
--- /dev/null
+++ b/admin/assets/css/popover.min.css
@@ -0,0 +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}
\ No newline at end of file
diff --git a/admin/assets/js/admin-ui-script.js b/admin/assets/js/admin-ui-script.js
index 4607f71..1a04c1f 100755
--- a/admin/assets/js/admin-ui-script.js
+++ b/admin/assets/js/admin-ui-script.js
@@ -102,12 +102,18 @@
/* Apply for Google API Key */
elem.parents('.forminp-google_api_key').find('.a3rev-ui-google-api-key-container').slideDown();
+
+ /* Apply for Google Map API Key */
+ elem.parents('.forminp-google_map_api_key').find('.a3rev-ui-google-api-key-container').slideDown();
} else {
/* Apply for Border Corner */
elem.parents('.a3rev-ui-settings-control').find('.a3rev-ui-border-corner-value-container').slideUp();
/* Apply for Google API Key */
elem.parents('.forminp-google_api_key').find('.a3rev-ui-google-api-key-container').slideUp();
+
+ /* Apply for Google Map API Key */
+ elem.parents('.forminp-google_map_api_key').find('.a3rev-ui-google-api-key-container').slideUp();
}
$('input[name="' + input_name + '"]').trigger("a3rev-ui-onoff_checkbox-switch", [elem.val(), status]);
@@ -186,14 +192,13 @@
/* Apply chosen script for dropdown */
$(".a3rev_panel_container .chzn-select").chosen();
- $(".a3rev_panel_container .chzn-select-deselect").chosen({ allow_single_deselect:true });
+ $(".a3rev_panel_container .chzn-select-deselect").chosen({ allow_single_deselect:true, search_contains: true });
+ $(".chzn-select-ajaxify").each( function(){
+ chosen_ajaxify($(this).attr('id'), $(this).attr('options_url'));
+ });
/* Apply help tip script */
- $(".a3rev_panel_container .help_tip").tipTip({
- "attribute" : "data-tip",
- "fadeIn" : 50,
- "fadeOut" : 50
- });
+ $('.a3rev_panel_container .help_tip').popover({ html: true, placement: 'bottom' });
/* Apply Time Picker */
$('.a3rev_panel_container input.a3rev-ui-time_picker').each(function(i){
@@ -465,6 +470,7 @@
var submit_successsed = bt_ajax_submit.siblings('.a3rev-ui-ajax_multi_submit-successed');
var submit_errors = bt_ajax_submit.siblings('.a3rev-ui-ajax_multi_submit-errors');
var progress_bar_wrap = bt_ajax_submit.siblings('.a3rev-ui-progress-bar-wrap');
+ var progress_notice = bt_ajax_submit.siblings('.a3rev-ui-progress-notice');
var progress_inner = progress_bar_wrap.find('.a3rev-ui-progress-inner');
var progressing_text = progress_bar_wrap.find('.a3rev-ui-progressing-text');
var completed_text = progress_bar_wrap.find('.a3rev-ui-completed-text');
@@ -559,6 +565,11 @@
progress_bar_wrap.hide();
progressing_text.show();
completed_text.hide();
+
+ if ( typeof progress_notice !== undefined ) {
+ progress_notice.hide();
+ }
+
}, 2000 );
}
});
@@ -653,6 +664,7 @@
var submit_successsed = bt_ajax_submit.siblings('.a3rev-ui-ajax_multi_submit-successed');
var submit_errors = bt_ajax_submit.siblings('.a3rev-ui-ajax_multi_submit-errors');
var progress_bar_wrap = bt_ajax_submit.siblings('.a3rev-ui-progress-bar-wrap');
+ var progress_notice = bt_ajax_submit.siblings('.a3rev-ui-progress-notice');
var progress_inner = progress_bar_wrap.find('.a3rev-ui-progress-inner');
var progressing_text = progress_bar_wrap.find('.a3rev-ui-progressing-text');
var completed_text = progress_bar_wrap.find('.a3rev-ui-completed-text');
@@ -674,12 +686,24 @@
progressing_text.show();
completed_text.hide();
progress_inner.css({width: '0%'});
+ if ( typeof progress_notice !== undefined ) {
+ progress_notice.hide();
+ }
}, 3000 );
});
});
$(document).on( 'click', '.a3rev-ui-ajax_multi_submit-button', function(){
var bt_ajax_submit = $(this);
+
+ var confirm_message = $(this).data('confirm_message');
+ if ( typeof confirm_message !== 'undefined' && '' != confirm_message ) {
+ var confirm_submit = confirm( confirm_message );
+ if ( ! confirm_submit ) {
+ return false;
+ }
+ }
+
var resubmit = bt_ajax_submit.data('resubmit');
bt_ajax_submit.data('resubmit', 0);
@@ -688,6 +712,7 @@
var submit_successsed = bt_ajax_submit.siblings('.a3rev-ui-ajax_multi_submit-successed');
var submit_errors = bt_ajax_submit.siblings('.a3rev-ui-ajax_multi_submit-errors');
var progress_bar_wrap = bt_ajax_submit.siblings('.a3rev-ui-progress-bar-wrap');
+ var progress_notice = bt_ajax_submit.siblings('.a3rev-ui-progress-notice');
var progress_inner = progress_bar_wrap.find('.a3rev-ui-progress-inner');
var progressing_text = progress_bar_wrap.find('.a3rev-ui-progressing-text');
var completed_text = progress_bar_wrap.find('.a3rev-ui-completed-text');
@@ -696,6 +721,9 @@
submit_successsed.hide();
submit_errors.hide();
progress_bar_wrap.show();
+ if ( typeof progress_notice !== undefined ) {
+ progress_notice.show();
+ }
// Reset progressing start point to 0 for resubmit
if ( resubmit == 1 ) {
diff --git a/admin/assets/js/bootstrap/popover.js b/admin/assets/js/bootstrap/popover.js
new file mode 100755
index 0000000..93b9bd8
--- /dev/null
+++ b/admin/assets/js/bootstrap/popover.js
@@ -0,0 +1,205 @@
+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); } }
+
+function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
+
+function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }
+
+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; }
+
+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; }
+
+/**
+ * --------------------------------------------------------------------------
+ * Bootstrap (v4.1.1): popover.js
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ * --------------------------------------------------------------------------
+ */
+var Popover = function ($) {
+ /**
+ * ------------------------------------------------------------------------
+ * Constants
+ * ------------------------------------------------------------------------
+ */
+ var NAME = 'popover';
+ var VERSION = '4.1.1';
+ var DATA_KEY = 'bs.popover';
+ var EVENT_KEY = "." + DATA_KEY;
+ var JQUERY_NO_CONFLICT = $.fn[NAME];
+ var CLASS_PREFIX = 'bs-popover';
+ var BSCLS_PREFIX_REGEX = new RegExp("(^|\\s)" + CLASS_PREFIX + "\\S+", 'g');
+
+ var Default = _objectSpread({}, Tooltip.Default, {
+ placement: 'right',
+ trigger: 'click',
+ content: '',
+ template: ''
+ });
+
+ var DefaultType = _objectSpread({}, Tooltip.DefaultType, {
+ content: '(string|element|function)'
+ });
+
+ var ClassName = {
+ FADE: 'fade',
+ SHOW: 'show'
+ };
+ var Selector = {
+ TITLE: '.popover-header',
+ CONTENT: '.popover-body'
+ };
+ var Event = {
+ HIDE: "hide" + EVENT_KEY,
+ HIDDEN: "hidden" + EVENT_KEY,
+ SHOW: "show" + EVENT_KEY,
+ SHOWN: "shown" + EVENT_KEY,
+ INSERTED: "inserted" + EVENT_KEY,
+ CLICK: "click" + EVENT_KEY,
+ FOCUSIN: "focusin" + EVENT_KEY,
+ FOCUSOUT: "focusout" + EVENT_KEY,
+ MOUSEENTER: "mouseenter" + EVENT_KEY,
+ MOUSELEAVE: "mouseleave" + EVENT_KEY
+ /**
+ * ------------------------------------------------------------------------
+ * Class Definition
+ * ------------------------------------------------------------------------
+ */
+
+ };
+
+ var Popover =
+ /*#__PURE__*/
+ function (_Tooltip) {
+ _inheritsLoose(Popover, _Tooltip);
+
+ function Popover() {
+ return _Tooltip.apply(this, arguments) || this;
+ }
+
+ var _proto = Popover.prototype;
+
+ // Overrides
+ _proto.isWithContent = function isWithContent() {
+ return this.getTitle() || this._getContent();
+ };
+
+ _proto.addAttachmentClass = function addAttachmentClass(attachment) {
+ $(this.getTipElement()).addClass(CLASS_PREFIX + "-" + attachment);
+ };
+
+ _proto.getTipElement = function getTipElement() {
+ this.tip = this.tip || $(this.config.template)[0];
+ return this.tip;
+ };
+
+ _proto.setContent = function setContent() {
+ var $tip = $(this.getTipElement()); // We use append for html objects to maintain js events
+
+ this.setElementContent($tip.find(Selector.TITLE), this.getTitle());
+
+ var content = this._getContent();
+
+ if (typeof content === 'function') {
+ content = content.call(this.element);
+ }
+
+ this.setElementContent($tip.find(Selector.CONTENT), content);
+ $tip.removeClass(ClassName.FADE + " " + ClassName.SHOW);
+ }; // Private
+
+
+ _proto._getContent = function _getContent() {
+ return this.element.getAttribute('data-content') || this.config.content;
+ };
+
+ _proto._cleanTipClass = function _cleanTipClass() {
+ var $tip = $(this.getTipElement());
+ var tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX);
+
+ if (tabClass !== null && tabClass.length > 0) {
+ $tip.removeClass(tabClass.join(''));
+ }
+ }; // Static
+
+
+ Popover._jQueryInterface = function _jQueryInterface(config) {
+ return this.each(function () {
+ var data = $(this).data(DATA_KEY);
+
+ var _config = typeof config === 'object' ? config : null;
+
+ if (!data && /destroy|hide/.test(config)) {
+ return;
+ }
+
+ if (!data) {
+ data = new Popover(this, _config);
+ $(this).data(DATA_KEY, data);
+ }
+
+ if (typeof config === 'string') {
+ if (typeof data[config] === 'undefined') {
+ throw new TypeError("No method named \"" + config + "\"");
+ }
+
+ data[config]();
+ }
+ });
+ };
+
+ _createClass(Popover, null, [{
+ key: "VERSION",
+ // Getters
+ get: function get() {
+ return VERSION;
+ }
+ }, {
+ key: "Default",
+ get: function get() {
+ return Default;
+ }
+ }, {
+ key: "NAME",
+ get: function get() {
+ return NAME;
+ }
+ }, {
+ key: "DATA_KEY",
+ get: function get() {
+ return DATA_KEY;
+ }
+ }, {
+ key: "Event",
+ get: function get() {
+ return Event;
+ }
+ }, {
+ key: "EVENT_KEY",
+ get: function get() {
+ return EVENT_KEY;
+ }
+ }, {
+ key: "DefaultType",
+ get: function get() {
+ return DefaultType;
+ }
+ }]);
+
+ return Popover;
+ }(Tooltip);
+ /**
+ * ------------------------------------------------------------------------
+ * jQuery
+ * ------------------------------------------------------------------------
+ */
+
+
+ $.fn[NAME] = Popover._jQueryInterface;
+ $.fn[NAME].Constructor = Popover;
+
+ $.fn[NAME].noConflict = function () {
+ $.fn[NAME] = JQUERY_NO_CONFLICT;
+ return Popover._jQueryInterface;
+ };
+
+ return Popover;
+}(jQuery);
\ No newline at end of file
diff --git a/admin/assets/js/bootstrap/popover.min.js b/admin/assets/js/bootstrap/popover.min.js
new file mode 100755
index 0000000..ea50d2e
--- /dev/null
+++ b/admin/assets/js/bootstrap/popover.min.js
@@ -0,0 +1,7 @@
+function _defineProperties(b,a){for(var c=0;c'}),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",
+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=
+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=o.clientWidth&&n>=o.clientHeight}),l=0a[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[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]-us[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.top)||'bottom'===n&&f(a.top)f(o.right),g=f(a.top)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.bottomo.right||t.top>o.bottom||t.right' + '' + '',
+ trigger: 'hover focus',
+ title: '',
+ delay: 0,
+ html: false,
+ selector: false,
+ placement: 'top',
+ offset: 0,
+ container: false,
+ fallbackPlacement: 'flip',
+ boundary: 'scrollParent'
+ };
+ var HoverState = {
+ SHOW: 'show',
+ OUT: 'out'
+ };
+ var Event = {
+ HIDE: "hide" + EVENT_KEY,
+ HIDDEN: "hidden" + EVENT_KEY,
+ SHOW: "show" + EVENT_KEY,
+ SHOWN: "shown" + EVENT_KEY,
+ INSERTED: "inserted" + EVENT_KEY,
+ CLICK: "click" + EVENT_KEY,
+ FOCUSIN: "focusin" + EVENT_KEY,
+ FOCUSOUT: "focusout" + EVENT_KEY,
+ MOUSEENTER: "mouseenter" + EVENT_KEY,
+ MOUSELEAVE: "mouseleave" + EVENT_KEY
+ };
+ var ClassName = {
+ FADE: 'fade',
+ SHOW: 'show'
+ };
+ var Selector = {
+ TOOLTIP: '.tooltip',
+ TOOLTIP_INNER: '.tooltip-inner',
+ ARROW: '.arrow'
+ };
+ var Trigger = {
+ HOVER: 'hover',
+ FOCUS: 'focus',
+ CLICK: 'click',
+ MANUAL: 'manual'
+ /**
+ * ------------------------------------------------------------------------
+ * Class Definition
+ * ------------------------------------------------------------------------
+ */
+
+ };
+
+ var Tooltip =
+ /*#__PURE__*/
+ function () {
+ function Tooltip(element, config) {
+ /**
+ * Check for Popper dependency
+ * Popper - https://popper.js.org
+ */
+ if (typeof Popper === 'undefined') {
+ throw new TypeError('Bootstrap tooltips require Popper.js (https://popper.js.org)');
+ } // private
+
+
+ this._isEnabled = true;
+ this._timeout = 0;
+ this._hoverState = '';
+ this._activeTrigger = {};
+ this._popper = null; // Protected
+
+ this.element = element;
+ this.config = this._getConfig(config);
+ this.tip = null;
+
+ this._setListeners();
+ } // Getters
+
+
+ var _proto = Tooltip.prototype;
+
+ // Public
+ _proto.enable = function enable() {
+ this._isEnabled = true;
+ };
+
+ _proto.disable = function disable() {
+ this._isEnabled = false;
+ };
+
+ _proto.toggleEnabled = function toggleEnabled() {
+ this._isEnabled = !this._isEnabled;
+ };
+
+ _proto.toggle = function toggle(event) {
+ if (!this._isEnabled) {
+ return;
+ }
+
+ if (event) {
+ var dataKey = this.constructor.DATA_KEY;
+ var context = $(event.currentTarget).data(dataKey);
+
+ if (!context) {
+ context = new this.constructor(event.currentTarget, this._getDelegateConfig());
+ $(event.currentTarget).data(dataKey, context);
+ }
+
+ context._activeTrigger.click = !context._activeTrigger.click;
+
+ if (context._isWithActiveTrigger()) {
+ context._enter(null, context);
+ } else {
+ context._leave(null, context);
+ }
+ } else {
+ if ($(this.getTipElement()).hasClass(ClassName.SHOW)) {
+ this._leave(null, this);
+
+ return;
+ }
+
+ this._enter(null, this);
+ }
+ };
+
+ _proto.dispose = function dispose() {
+ clearTimeout(this._timeout);
+ $.removeData(this.element, this.constructor.DATA_KEY);
+ $(this.element).off(this.constructor.EVENT_KEY);
+ $(this.element).closest('.modal').off('hide.bs.modal');
+
+ if (this.tip) {
+ $(this.tip).remove();
+ }
+
+ this._isEnabled = null;
+ this._timeout = null;
+ this._hoverState = null;
+ this._activeTrigger = null;
+
+ if (this._popper !== null) {
+ this._popper.destroy();
+ }
+
+ this._popper = null;
+ this.element = null;
+ this.config = null;
+ this.tip = null;
+ };
+
+ _proto.show = function show() {
+ var _this = this;
+
+ if ($(this.element).css('display') === 'none') {
+ throw new Error('Please use show on visible elements');
+ }
+
+ var showEvent = $.Event(this.constructor.Event.SHOW);
+
+ if (this.isWithContent() && this._isEnabled) {
+ $(this.element).trigger(showEvent);
+ var isInTheDom = $.contains(this.element.ownerDocument.documentElement, this.element);
+
+ if (showEvent.isDefaultPrevented() || !isInTheDom) {
+ return;
+ }
+
+ var tip = this.getTipElement();
+ var tipId = Util.getUID(this.constructor.NAME);
+ tip.setAttribute('id', tipId);
+ this.element.setAttribute('aria-describedby', tipId);
+ this.setContent();
+
+ if (this.config.animation) {
+ $(tip).addClass(ClassName.FADE);
+ }
+
+ var placement = typeof this.config.placement === 'function' ? this.config.placement.call(this, tip, this.element) : this.config.placement;
+
+ var attachment = this._getAttachment(placement);
+
+ this.addAttachmentClass(attachment);
+ var container = this.config.container === false ? document.body : $(this.config.container);
+ $(tip).data(this.constructor.DATA_KEY, this);
+
+ if (!$.contains(this.element.ownerDocument.documentElement, this.tip)) {
+ $(tip).appendTo(container);
+ }
+
+ $(this.element).trigger(this.constructor.Event.INSERTED);
+ this._popper = new Popper(this.element, tip, {
+ placement: attachment,
+ modifiers: {
+ offset: {
+ offset: this.config.offset
+ },
+ flip: {
+ behavior: this.config.fallbackPlacement
+ },
+ arrow: {
+ element: Selector.ARROW
+ },
+ preventOverflow: {
+ boundariesElement: this.config.boundary
+ }
+ },
+ onCreate: function onCreate(data) {
+ if (data.originalPlacement !== data.placement) {
+ _this._handlePopperPlacementChange(data);
+ }
+ },
+ onUpdate: function onUpdate(data) {
+ _this._handlePopperPlacementChange(data);
+ }
+ });
+ $(tip).addClass(ClassName.SHOW); // If this is a touch-enabled device we add extra
+ // empty mouseover listeners to the body's immediate children;
+ // only needed because of broken event delegation on iOS
+ // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html
+
+ if ('ontouchstart' in document.documentElement) {
+ $(document.body).children().on('mouseover', null, $.noop);
+ }
+
+ var complete = function complete() {
+ if (_this.config.animation) {
+ _this._fixTransition();
+ }
+
+ var prevHoverState = _this._hoverState;
+ _this._hoverState = null;
+ $(_this.element).trigger(_this.constructor.Event.SHOWN);
+
+ if (prevHoverState === HoverState.OUT) {
+ _this._leave(null, _this);
+ }
+ };
+
+ if ($(this.tip).hasClass(ClassName.FADE)) {
+ var transitionDuration = Util.getTransitionDurationFromElement(this.tip);
+ $(this.tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);
+ } else {
+ complete();
+ }
+ }
+ };
+
+ _proto.hide = function hide(callback) {
+ var _this2 = this;
+
+ var tip = this.getTipElement();
+ var hideEvent = $.Event(this.constructor.Event.HIDE);
+
+ var complete = function complete() {
+ if (_this2._hoverState !== HoverState.SHOW && tip.parentNode) {
+ tip.parentNode.removeChild(tip);
+ }
+
+ _this2._cleanTipClass();
+
+ _this2.element.removeAttribute('aria-describedby');
+
+ $(_this2.element).trigger(_this2.constructor.Event.HIDDEN);
+
+ if (_this2._popper !== null) {
+ _this2._popper.destroy();
+ }
+
+ if (callback) {
+ callback();
+ }
+ };
+
+ $(this.element).trigger(hideEvent);
+
+ if (hideEvent.isDefaultPrevented()) {
+ return;
+ }
+
+ $(tip).removeClass(ClassName.SHOW); // If this is a touch-enabled device we remove the extra
+ // empty mouseover listeners we added for iOS support
+
+ if ('ontouchstart' in document.documentElement) {
+ $(document.body).children().off('mouseover', null, $.noop);
+ }
+
+ this._activeTrigger[Trigger.CLICK] = false;
+ this._activeTrigger[Trigger.FOCUS] = false;
+ this._activeTrigger[Trigger.HOVER] = false;
+
+ if ($(this.tip).hasClass(ClassName.FADE)) {
+ var transitionDuration = Util.getTransitionDurationFromElement(tip);
+ $(tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);
+ } else {
+ complete();
+ }
+
+ this._hoverState = '';
+ };
+
+ _proto.update = function update() {
+ if (this._popper !== null) {
+ this._popper.scheduleUpdate();
+ }
+ }; // Protected
+
+
+ _proto.isWithContent = function isWithContent() {
+ return Boolean(this.getTitle());
+ };
+
+ _proto.addAttachmentClass = function addAttachmentClass(attachment) {
+ $(this.getTipElement()).addClass(CLASS_PREFIX + "-" + attachment);
+ };
+
+ _proto.getTipElement = function getTipElement() {
+ this.tip = this.tip || $(this.config.template)[0];
+ return this.tip;
+ };
+
+ _proto.setContent = function setContent() {
+ var $tip = $(this.getTipElement());
+ this.setElementContent($tip.find(Selector.TOOLTIP_INNER), this.getTitle());
+ $tip.removeClass(ClassName.FADE + " " + ClassName.SHOW);
+ };
+
+ _proto.setElementContent = function setElementContent($element, content) {
+ var html = this.config.html;
+
+ if (typeof content === 'object' && (content.nodeType || content.jquery)) {
+ // Content is a DOM node or a jQuery
+ if (html) {
+ if (!$(content).parent().is($element)) {
+ $element.empty().append(content);
+ }
+ } else {
+ $element.text($(content).text());
+ }
+ } else {
+ $element[html ? 'html' : 'text'](content);
+ }
+ };
+
+ _proto.getTitle = function getTitle() {
+ var title = this.element.getAttribute('data-original-title');
+
+ if (!title) {
+ title = typeof this.config.title === 'function' ? this.config.title.call(this.element) : this.config.title;
+ }
+
+ return title;
+ }; // Private
+
+
+ _proto._getAttachment = function _getAttachment(placement) {
+ return AttachmentMap[placement.toUpperCase()];
+ };
+
+ _proto._setListeners = function _setListeners() {
+ var _this3 = this;
+
+ var triggers = this.config.trigger.split(' ');
+ triggers.forEach(function (trigger) {
+ if (trigger === 'click') {
+ $(_this3.element).on(_this3.constructor.Event.CLICK, _this3.config.selector, function (event) {
+ return _this3.toggle(event);
+ });
+ } else if (trigger !== Trigger.MANUAL) {
+ var eventIn = trigger === Trigger.HOVER ? _this3.constructor.Event.MOUSEENTER : _this3.constructor.Event.FOCUSIN;
+ var eventOut = trigger === Trigger.HOVER ? _this3.constructor.Event.MOUSELEAVE : _this3.constructor.Event.FOCUSOUT;
+ $(_this3.element).on(eventIn, _this3.config.selector, function (event) {
+ return _this3._enter(event);
+ }).on(eventOut, _this3.config.selector, function (event) {
+ return _this3._leave(event);
+ });
+ }
+
+ $(_this3.element).closest('.modal').on('hide.bs.modal', function () {
+ return _this3.hide();
+ });
+ });
+
+ if (this.config.selector) {
+ this.config = _objectSpread({}, this.config, {
+ trigger: 'manual',
+ selector: ''
+ });
+ } else {
+ this._fixTitle();
+ }
+ };
+
+ _proto._fixTitle = function _fixTitle() {
+ var titleType = typeof this.element.getAttribute('data-original-title');
+
+ if (this.element.getAttribute('title') || titleType !== 'string') {
+ this.element.setAttribute('data-original-title', this.element.getAttribute('title') || '');
+ this.element.setAttribute('title', '');
+ }
+ };
+
+ _proto._enter = function _enter(event, context) {
+ var dataKey = this.constructor.DATA_KEY;
+ context = context || $(event.currentTarget).data(dataKey);
+
+ if (!context) {
+ context = new this.constructor(event.currentTarget, this._getDelegateConfig());
+ $(event.currentTarget).data(dataKey, context);
+ }
+
+ if (event) {
+ context._activeTrigger[event.type === 'focusin' ? Trigger.FOCUS : Trigger.HOVER] = true;
+ }
+
+ if ($(context.getTipElement()).hasClass(ClassName.SHOW) || context._hoverState === HoverState.SHOW) {
+ context._hoverState = HoverState.SHOW;
+ return;
+ }
+
+ clearTimeout(context._timeout);
+ context._hoverState = HoverState.SHOW;
+
+ if (!context.config.delay || !context.config.delay.show) {
+ context.show();
+ return;
+ }
+
+ context._timeout = setTimeout(function () {
+ if (context._hoverState === HoverState.SHOW) {
+ context.show();
+ }
+ }, context.config.delay.show);
+ };
+
+ _proto._leave = function _leave(event, context) {
+ var dataKey = this.constructor.DATA_KEY;
+ context = context || $(event.currentTarget).data(dataKey);
+
+ if (!context) {
+ context = new this.constructor(event.currentTarget, this._getDelegateConfig());
+ $(event.currentTarget).data(dataKey, context);
+ }
+
+ if (event) {
+ context._activeTrigger[event.type === 'focusout' ? Trigger.FOCUS : Trigger.HOVER] = false;
+ }
+
+ if (context._isWithActiveTrigger()) {
+ return;
+ }
+
+ clearTimeout(context._timeout);
+ context._hoverState = HoverState.OUT;
+
+ if (!context.config.delay || !context.config.delay.hide) {
+ context.hide();
+ return;
+ }
+
+ context._timeout = setTimeout(function () {
+ if (context._hoverState === HoverState.OUT) {
+ context.hide();
+ }
+ }, context.config.delay.hide);
+ };
+
+ _proto._isWithActiveTrigger = function _isWithActiveTrigger() {
+ for (var trigger in this._activeTrigger) {
+ if (this._activeTrigger[trigger]) {
+ return true;
+ }
+ }
+
+ return false;
+ };
+
+ _proto._getConfig = function _getConfig(config) {
+ config = _objectSpread({}, this.constructor.Default, $(this.element).data(), typeof config === 'object' && config ? config : {});
+
+ if (typeof config.delay === 'number') {
+ config.delay = {
+ show: config.delay,
+ hide: config.delay
+ };
+ }
+
+ if (typeof config.title === 'number') {
+ config.title = config.title.toString();
+ }
+
+ if (typeof config.content === 'number') {
+ config.content = config.content.toString();
+ }
+
+ Util.typeCheckConfig(NAME, config, this.constructor.DefaultType);
+ return config;
+ };
+
+ _proto._getDelegateConfig = function _getDelegateConfig() {
+ var config = {};
+
+ if (this.config) {
+ for (var key in this.config) {
+ if (this.constructor.Default[key] !== this.config[key]) {
+ config[key] = this.config[key];
+ }
+ }
+ }
+
+ return config;
+ };
+
+ _proto._cleanTipClass = function _cleanTipClass() {
+ var $tip = $(this.getTipElement());
+ var tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX);
+
+ if (tabClass !== null && tabClass.length > 0) {
+ $tip.removeClass(tabClass.join(''));
+ }
+ };
+
+ _proto._handlePopperPlacementChange = function _handlePopperPlacementChange(data) {
+ this._cleanTipClass();
+
+ this.addAttachmentClass(this._getAttachment(data.placement));
+ };
+
+ _proto._fixTransition = function _fixTransition() {
+ var tip = this.getTipElement();
+ var initConfigAnimation = this.config.animation;
+
+ if (tip.getAttribute('x-placement') !== null) {
+ return;
+ }
+
+ $(tip).removeClass(ClassName.FADE);
+ this.config.animation = false;
+ this.hide();
+ this.show();
+ this.config.animation = initConfigAnimation;
+ }; // Static
+
+
+ Tooltip._jQueryInterface = function _jQueryInterface(config) {
+ return this.each(function () {
+ var data = $(this).data(DATA_KEY);
+
+ var _config = typeof config === 'object' && config;
+
+ if (!data && /dispose|hide/.test(config)) {
+ return;
+ }
+
+ if (!data) {
+ data = new Tooltip(this, _config);
+ $(this).data(DATA_KEY, data);
+ }
+
+ if (typeof config === 'string') {
+ if (typeof data[config] === 'undefined') {
+ throw new TypeError("No method named \"" + config + "\"");
+ }
+
+ data[config]();
+ }
+ });
+ };
+
+ _createClass(Tooltip, null, [{
+ key: "VERSION",
+ get: function get() {
+ return VERSION;
+ }
+ }, {
+ key: "Default",
+ get: function get() {
+ return Default;
+ }
+ }, {
+ key: "NAME",
+ get: function get() {
+ return NAME;
+ }
+ }, {
+ key: "DATA_KEY",
+ get: function get() {
+ return DATA_KEY;
+ }
+ }, {
+ key: "Event",
+ get: function get() {
+ return Event;
+ }
+ }, {
+ key: "EVENT_KEY",
+ get: function get() {
+ return EVENT_KEY;
+ }
+ }, {
+ key: "DefaultType",
+ get: function get() {
+ return DefaultType;
+ }
+ }]);
+
+ return Tooltip;
+ }();
+ /**
+ * ------------------------------------------------------------------------
+ * jQuery
+ * ------------------------------------------------------------------------
+ */
+
+
+ $.fn[NAME] = Tooltip._jQueryInterface;
+ $.fn[NAME].Constructor = Tooltip;
+
+ $.fn[NAME].noConflict = function () {
+ $.fn[NAME] = JQUERY_NO_CONFLICT;
+ return Tooltip._jQueryInterface;
+ };
+
+ return Tooltip;
+}(jQuery, Popper);
\ No newline at end of file
diff --git a/admin/assets/js/bootstrap/tooltip.min.js b/admin/assets/js/bootstrap/tooltip.min.js
new file mode 100755
index 0000000..e88d700
--- /dev/null
+++ b/admin/assets/js/bootstrap/tooltip.min.js
@@ -0,0 +1,21 @@
+function _objectSpread(c){for(var e=1;e',
+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)");
+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()),
+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=
+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);
+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);
+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=
+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();
+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,
+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=
+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"===
+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=
+_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,
+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,
+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:
+{});"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);
+null!==a&&0= 37 && event.keyCode <= 40){
+ return null;
+ }
+ // ignore enter
+ if(event.keyCode == 13){
+ return null;
+ }
+ // abort previous ajax
+ if(REQUEST[id] != null){
+ REQUEST[id].abort();
+ }
+ // get keyword and build regex pattern (use to emphasis search result)
+ var keyword = jQuery('div#' + div_id + '_chosen' + ' .chosen-search input').val();
+ if ( keyword.length < 3 ) {
+ return null;
+ }
+ var keyword_pattern = new RegExp(keyword, 'gi');
+ // remove all options of chosen
+ jQuery('div#' + div_id + '_chosen ul.chosen-results').empty();
+ // remove all options of original select
+ jQuery("#"+id).empty();
+ REQUEST[id] = jQuery.ajax({
+ url: ajax_url + keyword,
+ dataType: "json",
+ success: function(response){
+ // map, just as in functional programming :). Other way to say "foreach"
+ // add new options to original select
+ jQuery('#'+id).append('');
+ jQuery.map(response, function(item){
+ jQuery('#'+id).append('');
+ });
+ },
+ complete: function(){
+ keyword = jQuery('div#' + div_id + '_chosen' + ' .chosen-search input').val();
+ // update chosen
+ jQuery("#"+id).trigger("chosen:updated");
+ // some trivial UI adjustment
+ jQuery('div#' + div_id + '_chosen').removeClass('chosen-container-single-nosearch');
+
+ jQuery('div#' + div_id + '_chosen' + ' .chosen-search input').val(keyword);
+ jQuery('div#' + div_id + '_chosen' + ' .chosen-search input').removeAttr('readonly');
+ jQuery('div#' + div_id + '_chosen' + ' .chosen-search input').focus();
+ // emphasis keywords
+ jQuery('div#' + div_id + '_chosen' + ' .active-result').each(function(){
+ var html = jQuery(this).html();
+ jQuery(this).html(html.replace(keyword_pattern, function(matched){
+ return '' + matched + '';
+ }));
+ });
+ }
+ }, 500);
+ });
+ } else if(jQuery('div#' + div_id + '_chosen').hasClass('chosen-container-multi')){ // if multi
+ jQuery('div#' + div_id + '_chosen' + ' input').bindWithDelay('keyup', function(event){
+ // ignore arrow key
+ if(event.keyCode >= 37 && event.keyCode <= 40){
+ return null;
+ }
+ // ignore enter
+ if(event.keyCode == 13){
+ return null;
+ }
+ if(REQUEST[id] != null){
+ REQUEST[id].abort();
+ }
+ var old_input_width = jQuery('div#' + div_id + '_chosen' + ' input').css('width');
+ // get keyword and build regex pattern (use to emphasis search result)
+ var keyword = jQuery(this).val();
+ if ( keyword.length < 3 ) {
+ return null;
+ }
+
+ var keyword_pattern = new RegExp(keyword, 'gi');
+ // old values and captions
+ var old_values = new Array();
+ jQuery('#'+id+' option:selected').each(function(){
+ old_value = jQuery(this).val();
+ old_values.push(old_value);
+ });
+ // remove all options of chosen
+ jQuery('div#' + div_id + '_chosen ul.chosen-results').empty();
+ jQuery('option', '#'+id).not(':selected').remove();
+ REQUEST[id] = jQuery.ajax({
+ url: ajax_url + keyword,
+ dataType: "json",
+ success: function(response){
+ // map, just as in functional programming :). Other way to say "foreach"
+ jQuery.map(response, function(item){
+ // this is ineffective, is there any "in" syntax in javascript?
+ var found = false;
+ for(i=0; i' + item.caption + '');
+ }
+ });
+ },
+ complete: function(response){
+ keyword = jQuery('div#' + div_id + '_chosen' + ' input').val();
+ jQuery("#"+id).trigger("chosen:updated");
+ jQuery('div#' + div_id + '_chosen').removeClass('chosen-container-single-nosearch');
+ jQuery('div#' + div_id + '_chosen' + ' input').val(keyword);
+ jQuery('div#' + div_id + '_chosen' + ' input').removeAttr('readonly');
+ jQuery('div#' + div_id + '_chosen' + ' input').css('width', old_input_width);
+ jQuery('div#' + div_id + '_chosen' + ' input').focus();
+ // put that underscores
+ jQuery('div#' + div_id + '_chosen' + ' .active-result').each(function(){
+ var html = jQuery(this).html();
+ jQuery(this).html(html.replace(keyword_pattern, function(matched){
+ return '' + matched + '';
+ }));
+ });
+ }
+ });
+ }, 500);
+ }
+}
+
+function chosen_depend_on(id, id_depend_on, ajax_url){
+ var OLD_VALUE = jQuery('#'+id_depend_on).val();
+ jQuery('#'+id_depend_on).change(function(event){
+ var val = jQuery(this).val();
+ if(val != OLD_VALUE){
+ jQuery.ajax({
+ 'url' : ajax_url + val,
+ 'dataType' : 'json',
+ 'success' : function(response){
+ jQuery('#'+id).empty();
+ jQuery.map(response, function(item){
+ jQuery('#'+id).append('');
+ });
+ jQuery('#'+id).trigger("chosen:updated");
+ jQuery('#'+id).trigger("change");
+ }
+ });
+ }
+ })
+}
diff --git a/admin/assets/js/tipTip/jquery.tipTip.js b/admin/assets/js/tipTip/jquery.tipTip.js
deleted file mode 100644
index 7eacf35..0000000
--- a/admin/assets/js/tipTip/jquery.tipTip.js
+++ /dev/null
@@ -1,191 +0,0 @@
- /*
- * TipTip
- * Copyright 2010 Drew Wilson
- * www.drewwilson.com
- * code.drewwilson.com/entry/tiptip-jquery-plugin
- *
- * Version 1.3 - Updated: Mar. 23, 2010
- *
- * This Plug-In will create a custom tooltip to replace the default
- * browser tooltip. It is extremely lightweight and very smart in
- * that it detects the edges of the browser window and will make sure
- * the tooltip stays within the current window size. As a result the
- * tooltip will adjust itself to be displayed above, below, to the left
- * or to the right depending on what is necessary to stay within the
- * browser window. It is completely customizable as well via CSS.
- *
- * This TipTip jQuery plug-in is dual licensed under the MIT and GPL licenses:
- * http://www.opensource.org/licenses/mit-license.php
- * http://www.gnu.org/licenses/gpl.html
- */
-
-(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, // HTML or String to fill TipTIp with
- enter: function(){},
- exit: function(){}
- };
- var opts = $.extend(defaults, options);
-
- // Setup tip tip elements and render them to the DOM
- if($("#tiptip_holder").length <= 0){
- var tiptip_holder = $('');
- var tiptip_content = $('');
- var tiptip_arrow = $('');
- $("body").append(tiptip_holder.html(tiptip_content).prepend(tiptip_arrow.html('')));
- } 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); //remove original 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);
\ No newline at end of file
diff --git a/admin/assets/js/tipTip/jquery.tipTip.min.js b/admin/assets/js/tipTip/jquery.tipTip.min.js
deleted file mode 100644
index cdf3a89..0000000
--- a/admin/assets/js/tipTip/jquery.tipTip.min.js
+++ /dev/null
@@ -1,21 +0,0 @@
- /*
- * TipTip
- * Copyright 2010 Drew Wilson
- * www.drewwilson.com
- * code.drewwilson.com/entry/tiptip-jquery-plugin
- *
- * Version 1.3 - Updated: Mar. 23, 2010
- *
- * This Plug-In will create a custom tooltip to replace the default
- * browser tooltip. It is extremely lightweight and very smart in
- * that it detects the edges of the browser window and will make sure
- * the tooltip stays within the current window size. As a result the
- * tooltip will adjust itself to be displayed above, below, to the left
- * or to the right depending on what is necessary to stay within the
- * browser window. It is completely customizable as well via CSS.
- *
- * This TipTip jQuery plug-in is dual licensed under the MIT and GPL licenses:
- * http://www.opensource.org/licenses/mit-license.php
- * http://www.gnu.org/licenses/gpl.html
- */
-(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=$('');var tiptip_content=$('');var tiptip_arrow=$('');$("body").append(tiptip_holder.html(tiptip_content).prepend(tiptip_arrow.html('')))}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).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);
\ No newline at end of file
diff --git a/admin/assets/js/tipTip/tipTip.css b/admin/assets/js/tipTip/tipTip.css
deleted file mode 100644
index 4fb95d3..0000000
--- a/admin/assets/js/tipTip/tipTip.css
+++ /dev/null
@@ -1,113 +0,0 @@
-/* TipTip CSS - Version 1.2 */
-
-#tiptip_holder {
- display: none;
- position: absolute;
- top: 0;
- left: 0;
- z-index: 99999;
-}
-
-#tiptip_holder.tip_top {
- padding-bottom: 5px;
-}
-
-#tiptip_holder.tip_bottom {
- padding-top: 5px;
-}
-
-#tiptip_holder.tip_right {
- padding-left: 5px;
-}
-
-#tiptip_holder.tip_left {
- padding-right: 5px;
-}
-
-#tiptip_content {
- font-size: 11px;
- color: #fff;
- text-shadow: 0 0 2px #000;
- padding: 4px 8px;
- border: 1px solid rgba(255,255,255,0.25);
- background-color: rgb(25,25,25);
- background-color: rgba(25,25,25,0.92);
- background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, from(transparent), to(#000));
- border-radius: 3px;
- -webkit-border-radius: 3px;
- -moz-border-radius: 3px;
- box-shadow: 0 0 3px #555;
- -webkit-box-shadow: 0 0 3px #555;
- -moz-box-shadow: 0 0 3px #555;
-}
-
-#tiptip_arrow, #tiptip_arrow_inner {
- position: absolute;
- border-color: transparent;
- border-style: solid;
- border-width: 6px;
- height: 0;
- width: 0;
-}
-
-#tiptip_holder.tip_top #tiptip_arrow {
- border-top-color: #fff;
- border-top-color: rgba(255,255,255,0.35);
-}
-
-#tiptip_holder.tip_bottom #tiptip_arrow {
- border-bottom-color: #fff;
- border-bottom-color: rgba(255,255,255,0.35);
-}
-
-#tiptip_holder.tip_right #tiptip_arrow {
- border-right-color: #fff;
- border-right-color: rgba(255,255,255,0.35);
-}
-
-#tiptip_holder.tip_left #tiptip_arrow {
- border-left-color: #fff;
- border-left-color: rgba(255,255,255,0.35);
-}
-
-#tiptip_holder.tip_top #tiptip_arrow_inner {
- margin-top: -7px;
- margin-left: -6px;
- border-top-color: rgb(25,25,25);
- border-top-color: rgba(25,25,25,0.92);
-}
-
-#tiptip_holder.tip_bottom #tiptip_arrow_inner {
- margin-top: -5px;
- margin-left: -6px;
- border-bottom-color: rgb(25,25,25);
- border-bottom-color: rgba(25,25,25,0.92);
-}
-
-#tiptip_holder.tip_right #tiptip_arrow_inner {
- margin-top: -6px;
- margin-left: -5px;
- border-right-color: rgb(25,25,25);
- border-right-color: rgba(25,25,25,0.92);
-}
-
-#tiptip_holder.tip_left #tiptip_arrow_inner {
- margin-top: -6px;
- margin-left: -7px;
- border-left-color: rgb(25,25,25);
- border-left-color: rgba(25,25,25,0.92);
-}
-
-/* Webkit Hacks */
-@media screen and (-webkit-min-device-pixel-ratio:0) {
- #tiptip_content {
- padding: 4px 8px 5px 8px;
- background-color: rgba(45,45,45,0.88);
- }
- #tiptip_holder.tip_bottom #tiptip_arrow_inner {
- border-bottom-color: rgba(45,45,45,0.88);
- }
- #tiptip_holder.tip_top #tiptip_arrow_inner {
- border-top-color: rgba(20,20,20,0.92);
- }
-}
\ No newline at end of file
diff --git a/admin/includes/fonts_face.php b/admin/includes/fonts_face.php
index 347962e..46c2165 100644
--- a/admin/includes/fonts_face.php
+++ b/admin/includes/fonts_face.php
@@ -357,6 +357,11 @@ class A3_Portfolio_Fonts_Face extends A3_Portfolio_Admin_UI
public function __construct() {
parent::__construct();
+ if ( ! $this->is_load_google_fonts ) {
+ $this->google_fonts = array();
+ return;
+ }
+
// Enable Google Font API Key
if ( isset( $_POST[ $this->google_api_key_option . '_enable' ] ) ) {
$old_google_api_key_enable = get_option( $this->google_api_key_option . '_enable', 0 );
@@ -415,6 +420,10 @@ public function __construct() {
public function is_valid_google_api_key( $cache=true ) {
$is_valid = false;
+ if ( ! $this->is_load_google_fonts ) {
+ return false;
+ }
+
$this->google_api_key = get_option( $this->google_api_key_option, '' );
$google_api_key_enable = get_option( $this->google_api_key_option . '_enable', 0 );
@@ -456,7 +465,7 @@ public function is_valid_google_api_key( $cache=true ) {
// Get font list from default webfonts.json file of plugin
if ( 'invalid' == $google_api_key_status && file_exists( $this->admin_plugin_dir() . '/assets/webfonts/webfonts.json' ) ) {
- $webfonts = wp_remote_fopen( $this->admin_plugin_url() . '/assets/webfonts/webfonts.json' );
+ $webfonts = file_get_contents( $this->admin_plugin_dir() . '/assets/webfonts/webfonts.json' );
if ( false != $webfonts ) {
$json_string = get_magic_quotes_gpc() ? stripslashes( $webfonts ) : $webfonts;
$response_fonts = json_decode( $json_string, true );
@@ -509,7 +518,7 @@ public function is_valid_google_api_key( $cache=true ) {
// Get font list from default webfonts.json file of plugin
if ( file_exists( $this->admin_plugin_dir() . '/assets/webfonts/webfonts.json' ) ) {
- $webfonts = wp_remote_fopen( $this->admin_plugin_url() . '/assets/webfonts/webfonts.json' );
+ $webfonts = file_get_contents( $this->admin_plugin_dir() . '/assets/webfonts/webfonts.json' );
if ( false != $webfonts ) {
$json_string = get_magic_quotes_gpc() ? stripslashes( $webfonts ) : $webfonts;
$response_fonts = json_decode( $json_string, true );
diff --git a/admin/less/lib/cssmin.inc.php b/admin/less/lib/cssmin.inc.php
index 6de24cb..23120c2 100755
--- a/admin/less/lib/cssmin.inc.php
+++ b/admin/less/lib/cssmin.inc.php
@@ -766,9 +766,9 @@ private function normalize_int($size)
{
if (is_string($size)) {
switch (substr($size, -1)) {
- case 'M': case 'm': return $size * 1048576;
- case 'K': case 'k': return $size * 1024;
- case 'G': case 'g': return $size * 1073741824;
+ case 'M': case 'm': return (int) $size * 1048576;
+ case 'K': case 'k': return (int) $size * 1024;
+ case 'G': case 'g': return (int) $size * 1073741824;
}
}
diff --git a/admin/less/sass.php b/admin/less/sass.php
index d7245d1..816cc28 100644
--- a/admin/less/sass.php
+++ b/admin/less/sass.php
@@ -19,11 +19,22 @@ public function __construct()
add_action( 'wp_enqueue_scripts', array ($this, 'apply_style_css_fontend') , 9 );
}
+ public function register_dynamic_style_file()
+ {
+ $_upload_dir = wp_upload_dir();
+ if ( file_exists( $_upload_dir['basedir'] . '/sass/' . $this->css_file_name . '.min.css' ) ) {
+ wp_register_style( 'a3' . $this->css_file_name, str_replace( array('http:','https:'), '', $_upload_dir['baseurl'] ) . '/sass/' . $this->css_file_name . '.min.css', array(), $this->get_css_file_version() );
+
+ return true;
+ }
+
+ return false;
+ }
+
public function apply_style_css_fontend()
{
- $_upload_dir = wp_upload_dir();
- if ( file_exists( $_upload_dir['basedir'] . '/sass/' . $this->css_file_name . '.min.css' ) ) {
- wp_enqueue_style( 'a3' . $this->css_file_name, str_replace( array('http:','https:'), '', $_upload_dir['baseurl'] ) . '/sass/' . $this->css_file_name . '.min.css', array(), $this->get_css_file_version() );
+ if ( $this->register_dynamic_style_file() ) {
+ wp_enqueue_style( 'a3' . $this->css_file_name );
}
}
diff --git a/changelog.txt b/changelog.txt
index a91218b..b401a8b 100644
--- a/changelog.txt
+++ b/changelog.txt
@@ -1,5 +1,17 @@
== Changelog ==
+= 2.6.9 - 2019/01/05 =
+* This maintenance update is for compatibility with WordPress 5.0.2 and PHP 7.3. It also includes performance updates to the plugin framework.
+* Tweak - Test for compatibility with WordPress 5.0.2 and WordPress 4.9.9
+* Tweak - Create new structure for future development of Gutenberg Blocks
+* Framework - Performance improvement. Replace wp_remote_fopen with file_get_contents for get web fonts
+* Framework - Performance improvement. Define new variable `is_load_google_fonts` if admin does not require to load google fonts
+* Credit - Props to Derek for alerting us to the framework google fonts performance issue
+* Framework - Register style name for dynamic style of plugin for use with Gutenberg block
+* Framework - Update Modal script and style to version 4.1.1
+* Framework - Update a3rev Plugin Framework to version 2.1.0
+* Framework - Test and update for compatibility with PHP 7.3
+
= 2.6.8 - 2018/09/18 =
* This maintenance update fixes an item card layout bug when 1 card is added to show full width in a single column when inserted by shortcode.
* Tweak - Test for compatibility with WordPress 4.9.8
diff --git a/includes/meta-boxes/a3-portfolio-data-metabox.php b/includes/meta-boxes/a3-portfolio-data-metabox.php
index a5e0ca9..ec98cee 100644
--- a/includes/meta-boxes/a3-portfolio-data-metabox.php
+++ b/includes/meta-boxes/a3-portfolio-data-metabox.php
@@ -25,8 +25,12 @@ public function add_meta_box( $post_type ) {
,__( 'Portfolio Item Meta', 'a3-portfolio' )
,array( $this, 'output' )
,$post_type
- ,'normal'
+ ,'side'
,'high'
+ , array(
+ '__block_editor_compatible_meta_box' => true,
+ '__back_compat_meta_box' => false,
+ )
);
}
}
diff --git a/readme.txt b/readme.txt
index edaf69d..e14f7e4 100644
--- a/readme.txt
+++ b/readme.txt
@@ -2,9 +2,9 @@
Contributors: a3rev, nguyencongtuan
Tags: a3 Portfolio, Portfolio, Post Portfolio, Showcase, Image Showcase, Image Portfolio, Gallery, Photo Gallery, Image Gallery
-Requires at least: 4.5
-Tested up to: 4.9.8
-Stable tag: 2.6.8
+Requires at least: 4.6
+Tested up to: 5.0.2
+Stable tag: 2.6.9
License: GPLv3
License URI: http://www.gnu.org/licenses/gpl-3.0.html
@@ -152,6 +152,18 @@ Automatic installation is the easiest option as WordPress handles the file trans
== Changelog ==
+= 2.6.9 - 2019/01/05 =
+* This maintenance update is for compatibility with WordPress 5.0.2 and PHP 7.3. It also includes performance updates to the plugin framework.
+* Tweak - Test for compatibility with WordPress 5.0.2 and WordPress 4.9.9
+* Tweak - Create new structure for future development of Gutenberg Blocks
+* Framework - Performance improvement. Replace wp_remote_fopen with file_get_contents for get web fonts
+* Framework - Performance improvement. Define new variable `is_load_google_fonts` if admin does not require to load google fonts
+* Credit - Props to Derek for alerting us to the framework google fonts performance issue
+* Framework - Register style name for dynamic style of plugin for use with Gutenberg block
+* Framework - Update Modal script and style to version 4.1.1
+* Framework - Update a3rev Plugin Framework to version 2.1.0
+* Framework - Test and update for compatibility with PHP 7.3
+
= 2.6.8 - 2018/09/18 =
* This maintenance update fixes an item card layout bug when 1 card is added to show full width in a single column when inserted by shortcode.
* Tweak - Test for compatibility with WordPress 4.9.8
|