Version Description
2017/Nov/14 =
FEATURE: Allow a slide to be restored after deletion
FEATURE: Allow the background image to be changed
FEATURE: Adds a guided tour
FIX: Loads inline JS properly
FIX: FlexSlider touch events respect pause on hover setting
FIX: Allow for https image URLs
TRANSLATIONS: Addresses spelling/localization issues
TWEAK: Accessibility enhancements
TWEAK: Adds links to activation page
TWEAK: Updates FlexSlider to latest
TWEAK: Change the label "Meta Slider" to "MetaSlider"
TWEAK: Add dashboard notices
Download this release
Release Info
Developer | DavidAnderson |
Plugin | MetaSlider |
Version | 3.6.0 |
Comparing to | |
See all releases |
Code changes from version 3.5.1 to 3.6.0
- admin/Notices.php +638 -0
- admin/Pages.php +162 -0
- admin/Tour.php +143 -0
- admin/assets/css/admin.css +1529 -0
- assets/metaslider/global.css → admin/assets/css/icon.css +2 -1
- admin/assets/css/notices.css +97 -0
- admin/assets/css/upgrade.css +172 -0
- admin/assets/fonts/interface/Interface-Bold.woff +0 -0
- admin/assets/fonts/interface/Interface-Bold.woff2 +0 -0
- admin/assets/fonts/interface/Interface-BoldItalic.woff +0 -0
- admin/assets/fonts/interface/Interface-BoldItalic.woff2 +0 -0
- admin/assets/fonts/interface/Interface-Medium.woff +0 -0
- admin/assets/fonts/interface/Interface-Medium.woff2 +0 -0
- admin/assets/fonts/interface/Interface-MediumItalic.woff +0 -0
- admin/assets/fonts/interface/Interface-MediumItalic.woff2 +0 -0
- admin/assets/fonts/interface/Interface-Regular.woff +0 -0
- admin/assets/fonts/interface/Interface-Regular.woff2 +0 -0
- admin/assets/fonts/interface/Interface-RegularItalic.woff +0 -0
- admin/assets/fonts/interface/Interface-RegularItalic.woff2 +0 -0
- {assets → admin/assets}/fonts/metaslider.eot +0 -0
- {assets → admin/assets}/fonts/metaslider.svg +0 -0
- {assets → admin/assets}/fonts/metaslider.ttf +0 -0
- {assets → admin/assets}/fonts/metaslider.woff +0 -0
- admin/assets/js/admin.js +728 -0
- admin/assets/js/tour.js +261 -0
- admin/assets/tether-shepherd/LICENSE +8 -0
- admin/assets/tether-shepherd/shepherd-theme-arrows-fix.css +5 -0
- admin/assets/tether-shepherd/shepherd-theme-arrows-fix.min.css +1 -0
- admin/assets/tether-shepherd/shepherd-theme-arrows-plain-buttons.css +215 -0
- admin/assets/tether-shepherd/shepherd-theme-arrows-plain-buttons.min.css +1 -0
- admin/assets/tether-shepherd/shepherd-theme-arrows.css +229 -0
- admin/assets/tether-shepherd/shepherd-theme-arrows.min.css +1 -0
- admin/assets/tether-shepherd/shepherd-theme-dark.css +246 -0
- admin/assets/tether-shepherd/shepherd-theme-dark.min.css +1 -0
- admin/assets/tether-shepherd/shepherd-theme-default.css +246 -0
- admin/assets/tether-shepherd/shepherd-theme-default.min.css +1 -0
- admin/assets/tether-shepherd/shepherd-theme-square-dark.css +248 -0
- admin/assets/tether-shepherd/shepherd-theme-square-dark.min.css +1 -0
- admin/assets/tether-shepherd/shepherd-theme-square.css +248 -0
- admin/assets/tether-shepherd/shepherd-theme-square.min.css +1 -0
- admin/assets/tether-shepherd/shepherd.js +745 -0
- admin/assets/tether-shepherd/shepherd.min.js +1 -0
- admin/assets/tether-shepherd/tether.js +1443 -0
- admin/assets/tether/LICENSE +8 -0
- admin/assets/tether/tether.js +1811 -0
- admin/assets/tether/tether.min.js +1 -0
- {assets → admin/assets/vendor}/colorbox/colorbox.css +0 -0
- {assets → admin/assets/vendor}/colorbox/images/border.png +0 -0
- {assets → admin/assets/vendor}/colorbox/images/controls.png +0 -0
- {assets → admin/assets/vendor}/colorbox/images/ie6/borderBottomCenter.png +0 -0
- {assets → admin/assets/vendor}/colorbox/images/ie6/borderBottomLeft.png +0 -0
- {assets → admin/assets/vendor}/colorbox/images/ie6/borderBottomRight.png +0 -0
- {assets → admin/assets/vendor}/colorbox/images/ie6/borderMiddleLeft.png +0 -0
- {assets → admin/assets/vendor}/colorbox/images/ie6/borderMiddleRight.png +0 -0
- {assets → admin/assets/vendor}/colorbox/images/ie6/borderTopCenter.png +0 -0
- {assets → admin/assets/vendor}/colorbox/images/ie6/borderTopLeft.png +0 -0
- {assets → admin/assets/vendor}/colorbox/images/ie6/borderTopRight.png +0 -0
- {assets → admin/assets/vendor}/colorbox/images/loading.gif +0 -0
- {assets → admin/assets/vendor}/colorbox/images/loading_background.png +0 -0
- {assets → admin/assets/vendor}/colorbox/images/overlay.png +0 -0
- {assets → admin/assets/vendor}/colorbox/jquery.colorbox-min.js +0 -0
- {assets → admin/assets/vendor}/tipsy/jquery.tipsy.js +0 -0
- {assets → admin/assets/vendor}/tipsy/tipsy.css +0 -0
- admin/images/features/auto-optimize.png +0 -0
- admin/images/features/automatic-clean-ups.png +0 -0
- admin/images/features/automatically cleans.png +0 -0
- admin/images/features/choice-n-flexibility.png +0 -0
- admin/images/features/displays-database-table-sta.png +0 -0
- admin/images/features/enables-disables-trackbacks.png +0 -0
- admin/images/features/enhanced-robustness.png +0 -0
- admin/images/features/keyy_logo.png +0 -0
- admin/images/features/logging-n-reporting.png +0 -0
- admin/images/features/metaslider_logo.png +0 -0
- admin/images/features/multisite-support.png +0 -0
- admin/images/features/number_of_weeks.png +0 -0
- admin/images/features/optimize-individual.png +0 -0
- admin/images/features/premium-support.png +0 -0
- admin/images/features/remove-unwanted-img.png +0 -0
- admin/images/features/scheduling.png +0 -0
- admin/images/features/updraftcentral_logo.png +0 -0
- admin/images/features/updraftplus_logo.png +0 -0
- admin/images/features/wpo_logo.png +0 -0
- admin/images/keyy_logo.png +0 -0
- admin/images/metaslider_logo.png +0 -0
- admin/images/metaslider_logo3.png +0 -0
- admin/images/metaslider_logo_large.png +0 -0
- admin/images/notices/keyy_logo.png +0 -0
- admin/images/notices/metaslider_logo.png +0 -0
- admin/images/notices/updraft_logo.png +0 -0
- admin/images/notices/wp_optimize_logo.png +0 -0
- admin/images/seasonal/black_friday.png +0 -0
- admin/images/seasonal/christmas.png +0 -0
- admin/images/seasonal/new_year.png +0 -0
- admin/images/seasonal/spring.png +0 -0
- admin/images/seasonal/summer.png +0 -0
- admin/images/updraft_logo.png +0 -0
- admin/images/wp_optimize_logo.png +0 -0
- admin/lib/Updraft_Notices.php +212 -0
- admin/lib/helpers.php +170 -0
- admin/views/notices/dashboard-notice.php +28 -0
- admin/views/notices/header-notice.php +31 -0
- admin/views/pages/upgrade.php +169 -0
- assets/metaslider/admin.css +0 -948
- assets/metaslider/admin.js +0 -388
- assets/metaslider/public.css +96 -37
- assets/sliders/flexslider/LICENSE.md +339 -0
- assets/sliders/flexslider/flexslider.css +255 -141
- assets/sliders/flexslider/flexslider.min.css +1 -0
- assets/sliders/flexslider/{jquery.flexslider-min.js → jquery.flexslider.js} +151 -97
- assets/sliders/flexslider/jquery.flexslider.min.js +1 -0
- assets/sliders/nivoslider/jquery.nivo.slider.pack.js +1 -1
- inc/metaslider.imagehelper.class.php +51 -51
- inc/metaslider.systemcheck.class.php +2 -2
- inc/metaslider.widget.class.php +3 -3
- inc/slide/metaslide.class.php +103 -83
- inc/slide/metaslide.image.class.php +125 -47
- inc/slider/metaslider.class.php +15 -13
- inc/slider/metaslider.flex.class.php +2 -2
- languages/ml-slider-de_DE.po +4 -4
- languages/ml-slider-es_ES.po +3 -3
- languages/ml-slider-fa_IR.po +3 -3
- languages/ml-slider-fr_FR.po +5 -5
- languages/ml-slider-he_IL.po +8 -8
- languages/ml-slider-hr_HR.po +4 -4
- languages/ml-slider-hu_HU.po +4 -4
- languages/ml-slider-ja.po +4 -4
- languages/ml-slider-nb_NO.po +3 -3
- languages/ml-slider-nl_NL.po +3 -3
- languages/ml-slider-pl_PL.po +3 -3
- languages/ml-slider-pt_BR.po +4 -4
- languages/ml-slider-ro_RO.po +4 -4
- languages/ml-slider-ru_RU.po +3 -3
- languages/ml-slider-uk.po +4 -4
- languages/ml-slider-zh_CN.po +3 -3
- languages/ml-slider-zh_TW.po +3 -3
- languages/ml-slider.mo +0 -0
- languages/ml-slider.po +0 -676
- languages/ml-slider.pot +1226 -0
- ml-slider.php +414 -447
- readme.txt +46 -32
admin/Notices.php
ADDED
@@ -0,0 +1,638 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
if (!defined('ABSPATH')) die('No direct access allowed');
|
4 |
+
|
5 |
+
if (!class_exists('Updraft_Notices_1_0')) require_once(METASLIDER_PATH.'admin/lib/Updraft_Notices.php');
|
6 |
+
|
7 |
+
class MetaSlider_Notices extends Updraft_Notices_1_0 {
|
8 |
+
|
9 |
+
/**
|
10 |
+
* @var object $ads - all ads
|
11 |
+
*/
|
12 |
+
protected $ads;
|
13 |
+
|
14 |
+
/**
|
15 |
+
* @var object $notices_content
|
16 |
+
*/
|
17 |
+
protected $notices_content;
|
18 |
+
|
19 |
+
/**
|
20 |
+
* @var object $plugin
|
21 |
+
*/
|
22 |
+
protected $plugin;
|
23 |
+
|
24 |
+
|
25 |
+
/**
|
26 |
+
* Populates ad content and loads assets
|
27 |
+
*/
|
28 |
+
public function __construct($plugin) {
|
29 |
+
$this->ads = $this->is_metasliderpro_installed() ? $this->pro_notices() : $this->lite_notices();
|
30 |
+
|
31 |
+
// To avoid showing the user ads off the start, lets wait
|
32 |
+
$this->notices_content = ($this->ad_delay_has_finished()) ? $this->ads : array();
|
33 |
+
$this->plugin = $plugin;
|
34 |
+
|
35 |
+
add_action('admin_enqueue_scripts', array($this, 'add_notice_assets'));
|
36 |
+
add_action('wp_ajax_notice_handler', array($this, 'ajax_notice_handler'));
|
37 |
+
add_action('admin_notices', array($this, 'show_dashboard_notices'));
|
38 |
+
}
|
39 |
+
|
40 |
+
/**
|
41 |
+
* Handles assets for the notices
|
42 |
+
*/
|
43 |
+
public function add_notice_assets() {
|
44 |
+
wp_enqueue_style('ml-slider-notices-css', METASLIDER_ADMIN_URL . 'assets/css/notices.css', false, METASLIDER_VERSION);
|
45 |
+
wp_localize_script('jquery', 'metaslider_notices', array(
|
46 |
+
'handle_notices_nonce' => wp_create_nonce('metaslider_handle_notices_nonce')
|
47 |
+
));
|
48 |
+
}
|
49 |
+
|
50 |
+
/**
|
51 |
+
* Deprecated for MetaSlider for now
|
52 |
+
*/
|
53 |
+
public function notices_init() { return; }
|
54 |
+
|
55 |
+
/**
|
56 |
+
* Returns notices that free/lite users should see. dismiss_time should match the key
|
57 |
+
* hide_time is in weeks. Use a string to hide for 9999 weeks.
|
58 |
+
* @return array returns an array of notices
|
59 |
+
*/
|
60 |
+
protected function lite_notices() {
|
61 |
+
return array_merge(array(
|
62 |
+
'updraftplus' => array(
|
63 |
+
'title' => __('Always backup WordPress to avoid losing your site!', 'ml-slider'),
|
64 |
+
'text' => __("UpdraftPlus is the world's #1 backup plugin from the makers of MetaSlider. Backup to the cloud, on a schedule and restore with 1 click!", 'ml-slider'),
|
65 |
+
'image' => 'updraft_logo.png',
|
66 |
+
'button_link' => 'https://wordpress.org/plugins/updraftplus/',
|
67 |
+
'button_meta' => 'updraftplus',
|
68 |
+
'dismiss_time' => 'updraftplus',
|
69 |
+
'hide_time' => 12,
|
70 |
+
'supported_positions' => array('header', 'dashboard'),
|
71 |
+
'validity_function' => 'is_updraftplus_installed',
|
72 |
+
),
|
73 |
+
'keyy' => array(
|
74 |
+
'title' => __('Keyy: Instant and secure logon with a wave of your phone', 'ml-slider'),
|
75 |
+
'text' => __('No more forgotten passwords. Find out more about our revolutionary new WordPress plugin', 'ml-slider'),
|
76 |
+
'image' => 'keyy_logo.png',
|
77 |
+
'button_link' => 'https://getkeyy.com/?utm_source=metaslider-plugin-page&utm_medium=banner',
|
78 |
+
'button_meta' => 'keyy',
|
79 |
+
'dismiss_time' => 'keyy',
|
80 |
+
'hide_time' => 12,
|
81 |
+
'supported_positions' => array('header', 'dashboard'),
|
82 |
+
'validity_function' => 'is_keyy_installed',
|
83 |
+
),
|
84 |
+
'updraftcentral' => array(
|
85 |
+
'title' => __('Save Time and Money. Manage multiple WordPress sites from one location.', 'ml-slider'),
|
86 |
+
'text' => __('UpdraftCentral is a highly efficient way to take backup, update and manage multiple WP sites from one location', 'ml-slider'),
|
87 |
+
'image' => 'updraft_logo.png',
|
88 |
+
'button_link' => 'https://updraftcentral.com?utm_source=metaslider-plugin-page&utm_medium=banner',
|
89 |
+
'button_meta' => 'updraftcentral',
|
90 |
+
'dismiss_time' => 'updraftcentral',
|
91 |
+
'hide_time' => 12,
|
92 |
+
'supported_positions' => array('header', 'dashboard'),
|
93 |
+
'validity_function' => 'is_updraftcentral_installed',
|
94 |
+
),
|
95 |
+
'rate_plugin' => array(
|
96 |
+
'title' => __('Like MetaSlider and have a minute to spare?', 'ml-slider'),
|
97 |
+
'text' => __('Please help MetaSlider by giving a positive review at wordpress.org.', 'ml-slider'),
|
98 |
+
'image' => 'metaslider_logo.png',
|
99 |
+
'button_link' => 'https://wordpress.org/support/plugin/ml-slider/reviews/?rate=5#new-post',
|
100 |
+
'button_meta' => 'review',
|
101 |
+
'dismiss_time' => 'rate_plugin',
|
102 |
+
'hide_time' => 12,
|
103 |
+
'supported_positions' => array('header', 'dashboard'),
|
104 |
+
),
|
105 |
+
'lite_survey' => array(
|
106 |
+
'title' => __('Help us to get even better MetaSlider', 'ml-slider'),
|
107 |
+
'text' => __('Let us know how you use MetaSlider by answering 4 simple questions. We will make MetaSlider to suit you better.', 'ml-slider'),
|
108 |
+
'image' => 'metaslider_logo.png',
|
109 |
+
'button_link' => 'https://www.metaslider.com/survey?utm_source=metaslider-plugin-page&utm_medium=banner',
|
110 |
+
'button_meta' => 'lets_start',
|
111 |
+
'dismiss_time' => 'lite_survey',
|
112 |
+
'hide_time' => 12,
|
113 |
+
'supported_positions' => array('header'),
|
114 |
+
),
|
115 |
+
'pro_layers' => array(
|
116 |
+
'title' => __('Spice up your site with animated layers and video slides', 'ml-slider'),
|
117 |
+
'text' => __('With the MetaSlider Add-on pack you can give your slideshows a professional look!', 'ml-slider'),
|
118 |
+
'image' => 'metaslider_logo.png',
|
119 |
+
'button_link' => apply_filters('metaslider_hoplink', 'https://www.metaslider.com/upgrade') . '?utm_source=metaslider-plugin-page&utm_medium=banner',
|
120 |
+
'button_meta' => 'ml-slider',
|
121 |
+
'dismiss_time' => 'pro_layers',
|
122 |
+
'hide_time' => 12,
|
123 |
+
'supported_positions' => array('header'),
|
124 |
+
),
|
125 |
+
'pro_features' => array(
|
126 |
+
'title' => __('Increase your revenue and conversion with video slides and many more features', 'ml-slider'),
|
127 |
+
'text' => __('Upgrade today to benefit from many more premium features. Find out more.', 'ml-slider'),
|
128 |
+
'image' => 'metaslider_logo.png',
|
129 |
+
'button_link' => apply_filters('metaslider_hoplink', 'https://www.metaslider.com/upgrade') . '?utm_source=metaslider-plugin-page&utm_medium=banner',
|
130 |
+
'button_meta' => 'ml-slider',
|
131 |
+
'dismiss_time' => 'pro_features',
|
132 |
+
'hide_time' => 12,
|
133 |
+
'supported_positions' => array('header'),
|
134 |
+
),
|
135 |
+
'translation' => array(
|
136 |
+
'title' => __('Can you translate? Want to improve MetaSlider for speakers of your language?', 'ml-slider'),
|
137 |
+
'text' => __('Please go here for instructions - it is easy.', 'ml-slider'),
|
138 |
+
'image' => 'metaslider_logo.png',
|
139 |
+
'button_link' => 'https://translate.wordpress.org/projects/wp-plugins/ml-slider',
|
140 |
+
'button_meta' => 'lets_start',
|
141 |
+
'dismiss_time' => 'translation',
|
142 |
+
'hide_time' => 12,
|
143 |
+
'supported_positions' => array('header'),
|
144 |
+
'validity_function' => 'translation_needed',
|
145 |
+
),
|
146 |
+
'thankyou' => array(
|
147 |
+
'title' => __('Thank you for installing MetaSlider', 'ml-slider'),
|
148 |
+
'text' => __('Supercharge & secure your WordPress site with our other top plugins:', 'ml-slider'),
|
149 |
+
'image' => 'metaslider_logo_large.png',
|
150 |
+
'dismiss_time' => 'thankyou',
|
151 |
+
'hide_time' => 24,
|
152 |
+
'mega' => true,
|
153 |
+
'supported_positions' => array('dashboard'),
|
154 |
+
),
|
155 |
+
), $this->valid_seasonal_notices());
|
156 |
+
}
|
157 |
+
|
158 |
+
/**
|
159 |
+
* Premium user notices, if any.
|
160 |
+
* @return string
|
161 |
+
*/
|
162 |
+
protected function pro_notices() {
|
163 |
+
return array(
|
164 |
+
'pro_survey' => array(
|
165 |
+
'title' => __("We’re making changes and need your help.", 'ml-slider'),
|
166 |
+
'text' => __('If you could spare a minute, we would like to ask you 4 easy questions about how you use MetaSlider. Your voice is important to us!', 'ml-slider'),
|
167 |
+
'image' => 'metaslider_logo.png',
|
168 |
+
'button_link' => 'https://www.metaslider.com/survey-pro',
|
169 |
+
'button_meta' => 'lets_start',
|
170 |
+
'dismiss_time' => 'pro_survey',
|
171 |
+
'hide_time' => __('forever', 'ml-slider'),
|
172 |
+
'supported_positions' => array('header'),
|
173 |
+
),
|
174 |
+
);
|
175 |
+
}
|
176 |
+
|
177 |
+
/**
|
178 |
+
* Seasonal Notices. Note that if dismissed, they will stay dismissed for two weeks
|
179 |
+
* which is the default for any notice. Since the parent class forces these,
|
180 |
+
* there's no need to edit the key/dismiss_time
|
181 |
+
* @return string
|
182 |
+
*/
|
183 |
+
protected function seasonal_notices() {
|
184 |
+
return array(
|
185 |
+
'blackfriday' => array(
|
186 |
+
'title' => __('Black Friday - 50% off the MetaSlider Add-on Pack until November 30th', 'ml-slider'),
|
187 |
+
'text' => __('To benefit, use this discount code:', 'ml-slider').' ',
|
188 |
+
'image' => 'seasonal/black_friday.png',
|
189 |
+
'button_link' => apply_filters('metaslider_hoplink', 'https://www.metaslider.com/upgrade') . '?utm_source=metaslider-plugin-page&utm_medium=banner',
|
190 |
+
'button_meta' => 'ml-slider',
|
191 |
+
'dismiss_time' => 'blackfriday',
|
192 |
+
'discount_code' => 'blackfriday2017sale',
|
193 |
+
'valid_from' => '2017-11-20 00:00:00',
|
194 |
+
'valid_to' => '2017-11-30 23:59:59',
|
195 |
+
'hide_time' => __('until next year', 'ml-slider'),
|
196 |
+
'supported_positions' => array('header', 'dashboard'),
|
197 |
+
),
|
198 |
+
'christmas' => array(
|
199 |
+
'title' => __('Christmas sale - 50% off the MetaSlider Add-on Pack until December 25th', 'ml-slider'),
|
200 |
+
'text' => __('To benefit, use this discount code:', 'ml-slider').' ',
|
201 |
+
'image' => 'seasonal/christmas.png',
|
202 |
+
'button_link' => apply_filters('metaslider_hoplink', 'https://www.metaslider.com/upgrade') . '?utm_source=metaslider-plugin-page&utm_medium=banner',
|
203 |
+
'button_meta' => 'ml-slider',
|
204 |
+
'dismiss_time' => 'christmas',
|
205 |
+
'discount_code' => 'christmas2017sale',
|
206 |
+
'valid_from' => '2017-12-01 00:00:00',
|
207 |
+
'valid_to' => '2017-12-25 23:59:59',
|
208 |
+
'hide_time' => __('until next year', 'ml-slider'),
|
209 |
+
'supported_positions' => array('header', 'dashboard'),
|
210 |
+
),
|
211 |
+
'newyear' => array(
|
212 |
+
'title' => __('Happy New Year - 50% off the MetaSlider Add-on Pack until January 1st', 'ml-slider'),
|
213 |
+
'text' => __('To benefit, use this discount code:', 'ml-slider').' ',
|
214 |
+
'image' => 'seasonal/new_year.png',
|
215 |
+
'button_link' => apply_filters('metaslider_hoplink', 'https://www.metaslider.com/upgrade') . '?utm_source=metaslider-plugin-page&utm_medium=banner',
|
216 |
+
'button_meta' => 'ml-slider',
|
217 |
+
'dismiss_time' => 'newyear',
|
218 |
+
'discount_code' => 'newyear2018sale',
|
219 |
+
'valid_from' => '2017-12-26 00:00:00',
|
220 |
+
'valid_to' => '2018-01-14 23:59:59',
|
221 |
+
'hide_time' => __('until next year', 'ml-slider'),
|
222 |
+
'supported_positions' => array('header', 'dashboard'),
|
223 |
+
),
|
224 |
+
'spring' => array(
|
225 |
+
'title' => __('Spring sale - 50% off the MetaSlider Add-on Pack until April 31st', 'ml-slider'),
|
226 |
+
'text' => __('To benefit, use this discount code:', 'ml-slider').' ',
|
227 |
+
'image' => 'seasonal/spring.png',
|
228 |
+
'button_link' => apply_filters('metaslider_hoplink', 'https://www.metaslider.com/upgrade') . '?utm_source=metaslider-plugin-page&utm_medium=banner',
|
229 |
+
'button_meta' => 'ml-slider',
|
230 |
+
'dismiss_time' => 'spring',
|
231 |
+
'discount_code' => 'spring2018sale',
|
232 |
+
'valid_from' => '2018-04-01 00:00:00',
|
233 |
+
'valid_to' => '2018-04-30 23:59:59',
|
234 |
+
'hide_time' => __('until next year', 'ml-slider'),
|
235 |
+
'supported_positions' => array('header', 'dashboard'),
|
236 |
+
),
|
237 |
+
'summer' => array(
|
238 |
+
'title' => __('Summer sale - 50% off the MetaSlider Add-on Pack until July 31st', 'ml-slider'),
|
239 |
+
'text' => __('To benefit, use this discount code:', 'ml-slider').' ',
|
240 |
+
'image' => 'seasonal/summer.png',
|
241 |
+
'button_link' => apply_filters('metaslider_hoplink', 'https://www.metaslider.com/upgrade') . '?utm_source=metaslider-plugin-page&utm_medium=banner',
|
242 |
+
'button_meta' => 'ml-slider',
|
243 |
+
'dismiss_time' => 'summer',
|
244 |
+
'discount_code' => 'summer2018sale',
|
245 |
+
'valid_from' => '2018-07-01 00:00:00',
|
246 |
+
'valid_to' => '2018-07-31 23:59:59',
|
247 |
+
'hide_time' => __('until next year', 'ml-slider'),
|
248 |
+
'supported_positions' => array('header', 'dashboard'),
|
249 |
+
)
|
250 |
+
);
|
251 |
+
}
|
252 |
+
|
253 |
+
/**
|
254 |
+
* These appear inside a mega ad.
|
255 |
+
* @return string
|
256 |
+
*/
|
257 |
+
protected function mega_notice_parts() {
|
258 |
+
return array(
|
259 |
+
'ms_pro' => array(
|
260 |
+
'title' => __('MetaSlider Add-on Pack:'),
|
261 |
+
'text' => __('Increase your conversion rate with video slides and many more options.', 'ml-slider'),
|
262 |
+
'image' => '',
|
263 |
+
'button_link' => apply_filters('metaslider_hoplink', 'https://www.metaslider.com/upgrade') . '?utm_source=metaslider-plugin-page&utm_medium=banner',
|
264 |
+
'button_meta' => 'ml-slider',
|
265 |
+
),
|
266 |
+
// 'wpo_pro' => array(
|
267 |
+
// 'title' => __('WP-Optimize Premium'),
|
268 |
+
// 'text' => __('offers unparalleled choice and flexibility, allowing you to select one or a combination of over a dozen optimization options.', 'ml-slider'),
|
269 |
+
// 'image' => '',
|
270 |
+
// 'button_link' => 'https://getwpo.com?utm_source=metaslider-plugin-page&utm_medium=banner',
|
271 |
+
// 'button_meta' => 'ml-slider',
|
272 |
+
// ),
|
273 |
+
// 'udp_pro' => array(
|
274 |
+
// 'title' => __('UpdraftPlus Premium'),
|
275 |
+
// 'text' => __('provides personal support, the ability to copy sites, more storage destinations, encrypted backups for security, multiple backup destinations, better reporting, no adverts and plenty more.', 'ml-slider'),
|
276 |
+
// 'image' => '',
|
277 |
+
// 'button_link' => 'https://updraftplus.com?utm_source=metaslider-plugin-page&utm_medium=banner',
|
278 |
+
// 'button_meta' => 'ml-slider',
|
279 |
+
// ),
|
280 |
+
'udp' => array(
|
281 |
+
'title' => __('UpdraftPlus'),
|
282 |
+
'text' => __('simplifies backups and restoration. It is the world\'s highest ranking and most popular scheduled backup plugin, with over a million currently-active installs.', 'ml-slider'),
|
283 |
+
'image' => '',
|
284 |
+
'button_link' => 'https://wordpress.org/plugins/updraftplus/',
|
285 |
+
'button_meta' => 'updraftplus',
|
286 |
+
),
|
287 |
+
'wpo' => array(
|
288 |
+
'title' => __('WP-Optimize:'),
|
289 |
+
'text' => __('auto-clean your WordPress database so that it runs at maximum efficiency.', 'ml-slider'),
|
290 |
+
'image' => '',
|
291 |
+
'button_link' => 'https://wordpress.org/plugins/wp-optimize/',
|
292 |
+
'button_meta' => 'wp-optimize',
|
293 |
+
),
|
294 |
+
'keyy' => array(
|
295 |
+
'title' => __('Keyy:'),
|
296 |
+
'text' => htmlspecialchars(__('Simple & secure login with a wave of your phone.', 'ml-slider')),
|
297 |
+
'image' => '',
|
298 |
+
'button_link' => 'https://getkeyy.com/?utm_source=metaslider-plugin-page&utm_medium=banner',
|
299 |
+
'button_meta' => 'keyy',
|
300 |
+
),
|
301 |
+
'updraftcentral' => array(
|
302 |
+
'title' => __('UpdraftCentral'),
|
303 |
+
'text' => __('is a highly efficient way to manage, update and backup multiple websites from one place.', 'ml-slider'),
|
304 |
+
'image' => '',
|
305 |
+
'button_link' => 'https://updraftcentral.com?utm_source=metaslider-plugin-page&utm_medium=banner',
|
306 |
+
'button_meta' => 'updraftcentral',
|
307 |
+
),
|
308 |
+
);
|
309 |
+
}
|
310 |
+
|
311 |
+
/**
|
312 |
+
* Check to disable ads on the Pro version. The parent function returns
|
313 |
+
* false if installed, so this is reversed and shouldn't be used for the validity function
|
314 |
+
* @return bool
|
315 |
+
*/
|
316 |
+
protected function is_metasliderpro_installed() {
|
317 |
+
return !parent::is_plugin_installed('ml-slider-pro', false);
|
318 |
+
}
|
319 |
+
|
320 |
+
/**
|
321 |
+
* Check to see if UpdraftPlus is installed
|
322 |
+
* @return bool
|
323 |
+
*/
|
324 |
+
protected function is_updraftplus_installed() {
|
325 |
+
return parent::is_plugin_installed('updraftplus', false);
|
326 |
+
}
|
327 |
+
|
328 |
+
/**
|
329 |
+
* Check to see if UpdraftPlus is installed
|
330 |
+
* @return bool
|
331 |
+
*/
|
332 |
+
protected function is_keyy_installed() {
|
333 |
+
return parent::is_plugin_installed('keyy', false);
|
334 |
+
}
|
335 |
+
|
336 |
+
/**
|
337 |
+
* Check to see if UpdraftCentral is installed
|
338 |
+
* @return bool
|
339 |
+
*/
|
340 |
+
protected function is_updraftcentral_installed() {
|
341 |
+
return parent::is_plugin_installed('updraftcentral', false);
|
342 |
+
}
|
343 |
+
|
344 |
+
/**
|
345 |
+
* Checks if the user agent isn't set as en_GB or en_US, and if the language file doesn't exist
|
346 |
+
* @param string $plugin_base_dir
|
347 |
+
* @param string $product_name
|
348 |
+
* @return bool
|
349 |
+
*/
|
350 |
+
protected function translation_needed($plugin_base_dir = null, $product_name = null) {
|
351 |
+
return parent::translation_needed(METASLIDER_PATH, 'ml-slider');
|
352 |
+
}
|
353 |
+
|
354 |
+
/**
|
355 |
+
* This method checks to see if the ad has been dismissed
|
356 |
+
* @param string $ad_identifier - identifier for the ad
|
357 |
+
* @return bool returns true when we dont want to show the ad
|
358 |
+
*/
|
359 |
+
protected function check_notice_dismissed($ad_identifier) {
|
360 |
+
return (time() < get_option("ms_hide_{$ad_identifier}_ads_until"));
|
361 |
+
}
|
362 |
+
|
363 |
+
/**
|
364 |
+
* Returns all active seasonal ads
|
365 |
+
* @return array
|
366 |
+
*/
|
367 |
+
protected function valid_seasonal_notices() {
|
368 |
+
$valid = array();
|
369 |
+
$time_now = time();
|
370 |
+
// $time_now = strtotime('2017-11-20 00:00:01'); // Black Friday
|
371 |
+
// $time_now = strtotime('2017-12-01 00:00:01'); // XMAS
|
372 |
+
// $time_now = strtotime('2017-12-26 00:00:01'); // NY
|
373 |
+
// $time_now = strtotime('2018-04-01 00:00:01'); // Spring
|
374 |
+
// $time_now = strtotime('2018-07-01 00:00:01'); // Summer
|
375 |
+
foreach($this->seasonal_notices() as $ad_identifier => $notice) {
|
376 |
+
$valid_from = strtotime($notice['valid_from']);
|
377 |
+
$valid_to = strtotime($notice['valid_to']);
|
378 |
+
if ($valid_from < $time_now && $time_now <= $valid_to) {
|
379 |
+
$valid[$ad_identifier] = $notice;
|
380 |
+
}
|
381 |
+
}
|
382 |
+
return $valid;
|
383 |
+
}
|
384 |
+
|
385 |
+
/**
|
386 |
+
* The logic is handled elsewhere. This being true does not skip
|
387 |
+
* the seasonal notices. Overrides parent function
|
388 |
+
* @return array
|
389 |
+
*/
|
390 |
+
protected function skip_seasonal_notices($notice_data) {
|
391 |
+
return true;
|
392 |
+
}
|
393 |
+
|
394 |
+
/**
|
395 |
+
* Checks whether this is an ad page - hard-coded
|
396 |
+
* @return bool
|
397 |
+
*/
|
398 |
+
protected function is_page_with_ads() {
|
399 |
+
global $pagenow;
|
400 |
+
$page = isset($_GET['page']) ? $_GET['page'] : '';
|
401 |
+
|
402 |
+
// I'm thinking to limit the check to the actual settings page for now
|
403 |
+
// This way, if the activaye the plugin but don't start using it until
|
404 |
+
// a few weeks after, it won't bother them with ads.
|
405 |
+
// return ('index.php' === $pagenow) || ($page === 'metaslider');
|
406 |
+
return ($page === 'metaslider');
|
407 |
+
}
|
408 |
+
|
409 |
+
/**
|
410 |
+
* This method checks to see if the ad waiting period is over (2 weeks)
|
411 |
+
* If not, it will set a two week time
|
412 |
+
* @return bool returns true when we dont want to show the ad
|
413 |
+
*/
|
414 |
+
protected function ad_delay_has_finished() {
|
415 |
+
|
416 |
+
if (metaslider_is_pro_installed()) {
|
417 |
+
|
418 |
+
// If they are pro don't check anything but show the pro ad.
|
419 |
+
return true;
|
420 |
+
}
|
421 |
+
|
422 |
+
// Disable this for now so that after a dismiss, ads hide for 24 hours
|
423 |
+
// if (get_option("ms_ads_first_seen_on")) {
|
424 |
+
|
425 |
+
// // They have seen ads before which means the delay is over
|
426 |
+
// return true;
|
427 |
+
// }
|
428 |
+
|
429 |
+
|
430 |
+
$delay = get_option("ms_hide_all_ads_until");
|
431 |
+
|
432 |
+
// Only start the timer if they see a page that has ads
|
433 |
+
if (!$this->is_page_with_ads() && !$delay) {
|
434 |
+
return false;
|
435 |
+
}
|
436 |
+
if (!$delay) {
|
437 |
+
|
438 |
+
// Set the delay for when to see an ad, 2 weeks; returns false
|
439 |
+
return !update_option("ms_hide_all_ads_until", time() + 2*7*86400);
|
440 |
+
} else if ((time() > $delay) && !get_option("ms_ads_first_seen_on")) {
|
441 |
+
|
442 |
+
// Note the time they first saw ads
|
443 |
+
update_option("ms_ads_first_seen_on", time());
|
444 |
+
|
445 |
+
// Now that they can see ads, make sure the rate_plugin is shown first
|
446 |
+
// TODO: Enable this next time
|
447 |
+
// $notices = $this->lite_notices();
|
448 |
+
// $this->ads = array('rate_plugin' => $notices['rate_plugin']);
|
449 |
+
return true;
|
450 |
+
} else if (time() < $delay) {
|
451 |
+
|
452 |
+
// This means an ad was dismissed and there's a 24h delay
|
453 |
+
return false;
|
454 |
+
} else if (get_option("ms_ads_first_seen_on")) {
|
455 |
+
|
456 |
+
// This means the delay has elapsed, the 24hr period expired
|
457 |
+
// and there are still ads that haven't been dismissed
|
458 |
+
return true;
|
459 |
+
}
|
460 |
+
// Default to not show an ad, in case there's some error
|
461 |
+
return false;
|
462 |
+
}
|
463 |
+
|
464 |
+
/*
|
465 |
+
* Method to handle dashboard notices
|
466 |
+
*/
|
467 |
+
public function show_dashboard_notices() {
|
468 |
+
$current_page = get_current_screen();
|
469 |
+
if ('dashboard' === $current_page->base && metaslider_sees_notices($this->plugin)) {
|
470 |
+
|
471 |
+
// Override the delay to show the thankyou notice on activation
|
472 |
+
// if (!empty($_GET['ms_activated'])) {
|
473 |
+
// $lite_notices = $this->lite_notices();
|
474 |
+
// $this->notices_content['thankyou'] = $lite_notices['thankyou'];
|
475 |
+
// }
|
476 |
+
echo $this->do_notice(false, 'dashboard', true);
|
477 |
+
}
|
478 |
+
}
|
479 |
+
|
480 |
+
/**
|
481 |
+
* Selects the template and returns or displays the notice
|
482 |
+
* @param array $notice_information - variable names/values to pass through to the template
|
483 |
+
* @param bool $return_instead_of_echo - whether to
|
484 |
+
* @param string $position - where the notice is being displayed
|
485 |
+
* @return null|string - depending on the value of $return_instead_of_echo
|
486 |
+
*/
|
487 |
+
protected function render_specified_notice($notice_information, $return_instead_of_echo = false, $position = 'header') {
|
488 |
+
$views = array(
|
489 |
+
'header' => 'header-notice.php',
|
490 |
+
'dashboard' => 'dashboard-notice.php',
|
491 |
+
);
|
492 |
+
$view = isset($views[$position]) ? $views[$position] : 'header-notice.php';
|
493 |
+
return $this->include_template($view, $return_instead_of_echo, $notice_information);
|
494 |
+
}
|
495 |
+
|
496 |
+
/**
|
497 |
+
* Displays or returns the template
|
498 |
+
* @param string $path file name of the template
|
499 |
+
* @param bool $return_instead_of_echo
|
500 |
+
* @param array $args
|
501 |
+
* @return null|string
|
502 |
+
*/
|
503 |
+
public function include_template($path, $return_instead_of_echo = false, $args = array()) {
|
504 |
+
if ($return_instead_of_echo) ob_start();
|
505 |
+
|
506 |
+
extract($args);
|
507 |
+
if (is_int($hide_time)) {
|
508 |
+
$hide_time = $hide_time . ' ' . __('weeks', 'ml-slider');
|
509 |
+
}
|
510 |
+
include METASLIDER_PATH.'admin/views/notices/'.$path;
|
511 |
+
|
512 |
+
if ($return_instead_of_echo) return ob_get_clean();
|
513 |
+
}
|
514 |
+
|
515 |
+
/**
|
516 |
+
* Builds a link based on the type of notice being requested
|
517 |
+
* @param string $link - the URL to link to
|
518 |
+
* @param string $type - which notice is being displayed
|
519 |
+
* @return string - the resulting HTML
|
520 |
+
*/
|
521 |
+
public function get_button_link($link, $type) {
|
522 |
+
$messages = array(
|
523 |
+
'updraftplus' => __('Get UpdraftPlus', 'ml-slider'),
|
524 |
+
'keyy' => __('Get Keyy', 'ml-slider'),
|
525 |
+
'wp-optimize' => __('Optimize today', 'ml-slider'),
|
526 |
+
'updraftcentral' => __('Get UpdraftCentral', 'ml-slider'),
|
527 |
+
'lets_start' => __('Let\'s Start', 'ml-slider'),
|
528 |
+
'review' => __('Review MetaSlider', 'ml-slider'),
|
529 |
+
'ml-slider' => __('Find out more', 'ml-slider'),
|
530 |
+
'signup' => __('Sign up', 'ml-slider'),
|
531 |
+
'go_there' => __('Go there', 'ml-slider')
|
532 |
+
);
|
533 |
+
$message = isset($messages[$type]) ? $messages[$type] : __('Read more', 'ml-slider');
|
534 |
+
$link = apply_filters('updraftplus_com_link', $link);
|
535 |
+
|
536 |
+
return '<a class="updraft_notice_link" href="' . esc_url($link) . '">' . $message . '</a>';
|
537 |
+
}
|
538 |
+
|
539 |
+
/**
|
540 |
+
* Handles any notice related ajax calls
|
541 |
+
* @return string - (JSON) Sends a success response unless an error is encountered
|
542 |
+
*/
|
543 |
+
public function ajax_notice_handler() {
|
544 |
+
if (!wp_verify_nonce($_REQUEST['_wpnonce'], 'metaslider_handle_notices_nonce')) {
|
545 |
+
return wp_send_json_error(array(
|
546 |
+
'message' => __('The security check failed. Please refresh the page and try again.', 'ml-slider')
|
547 |
+
), 401);
|
548 |
+
}
|
549 |
+
|
550 |
+
if (is_wp_error($ad_data = $this->ad_exists($_POST['ad_identifier']))) {
|
551 |
+
return wp_send_json_error(array(
|
552 |
+
'message' => __('This item does not exist. Please refresh the page and try again.', 'ml-slider')
|
553 |
+
), 401);
|
554 |
+
}
|
555 |
+
|
556 |
+
$result = $this->dismiss_ad($ad_data['dismiss_time'], $ad_data['hide_time']);
|
557 |
+
|
558 |
+
if (is_wp_error($result)) {
|
559 |
+
return wp_send_json_error(array(
|
560 |
+
'message' => $result->get_error_message()
|
561 |
+
), 409);
|
562 |
+
}
|
563 |
+
|
564 |
+
return wp_send_json_success(array(
|
565 |
+
'message' => __('The option was successfully updated', 'ml-slider'),
|
566 |
+
), 200);
|
567 |
+
}
|
568 |
+
|
569 |
+
/**
|
570 |
+
* Returns the available ads that havent been dismissed by the user
|
571 |
+
* @param string|array the location for the ad
|
572 |
+
* @return array the identifier for the ad
|
573 |
+
*/
|
574 |
+
public function active_ads($location = 'header', $bypass_delay = false) {
|
575 |
+
$dismissed_ads = array();
|
576 |
+
|
577 |
+
$ads = ($bypass_delay) ? $this->ads : $this->notices_content;
|
578 |
+
|
579 |
+
// Filter through all site options (cached)
|
580 |
+
foreach(wp_load_alloptions() as $key => $value){
|
581 |
+
if (strpos($key, 'ms_hide_') && strpos($key, '_ads_until')) {
|
582 |
+
$key = str_replace(array('ms_hide_', '_ads_until'), '', $key);
|
583 |
+
$dismissed_ads[$key] = $value;
|
584 |
+
}
|
585 |
+
}
|
586 |
+
|
587 |
+
// Filter out if the dismiss time has expired, then compare to the database
|
588 |
+
$valid_ads = array();
|
589 |
+
foreach ($ads as $ad_identifier => $values) {
|
590 |
+
$is_valid = isset($values['validity_function']) ? call_user_func(array($this, $values['validity_function'])) : true;
|
591 |
+
$not_dismissed = !$this->check_notice_dismissed($ad_identifier);
|
592 |
+
$is_supported = in_array($location, $values['supported_positions']);
|
593 |
+
if ($is_valid && $not_dismissed && $is_supported) {
|
594 |
+
$valid_ads[$ad_identifier] = $values;
|
595 |
+
}
|
596 |
+
}
|
597 |
+
|
598 |
+
return array_diff_key($valid_ads, $dismissed_ads);
|
599 |
+
}
|
600 |
+
|
601 |
+
/**
|
602 |
+
* Returns all possible ads or the specified identifier
|
603 |
+
* @param string $ad_identifier
|
604 |
+
* @return string|null the data of the ad
|
605 |
+
*/
|
606 |
+
public function get_ad($ad_identifier = null) {
|
607 |
+
$all_notices = array_merge($this->pro_notices(), $this->lite_notices());
|
608 |
+
return is_null($ad_identifier) ? $all_notices : $all_notices['ad_identifier'];
|
609 |
+
}
|
610 |
+
|
611 |
+
/**
|
612 |
+
* Checks if the ad identifier exists in any of the ads above
|
613 |
+
* @param string $ad_identifier
|
614 |
+
* @return bool the data of the ad
|
615 |
+
*/
|
616 |
+
public function ad_exists($ad_identifier) {
|
617 |
+
$all_notices = array_merge($this->pro_notices(), $this->lite_notices());
|
618 |
+
return isset($all_notices[$ad_identifier]) ? $all_notices[$ad_identifier] : new WP_Error('bad_call', __('The requested data does not exist.', 'ml-slider'), array('status' => 401));
|
619 |
+
}
|
620 |
+
|
621 |
+
/**
|
622 |
+
* Updates the stored value for how long to hide the ads
|
623 |
+
* @param string $ad_identifier
|
624 |
+
* @param int|string time in weeks or a string to show
|
625 |
+
* @return bool|WP_Error whether the update was a success
|
626 |
+
*/
|
627 |
+
public function dismiss_ad($ad_identifier, $weeks) {
|
628 |
+
|
629 |
+
// if the time isn't specified it will hide forever (9999 weeks)
|
630 |
+
$weeks = is_int($weeks) ? $weeks : 9999;
|
631 |
+
$result = update_option("ms_hide_{$ad_identifier}_ads_until", time() + $weeks*7*86400);
|
632 |
+
|
633 |
+
// Hide all ads for 24 hours
|
634 |
+
update_option("ms_hide_all_ads_until", time() + 1*86400);
|
635 |
+
|
636 |
+
return $result ? $result : new WP_Error('update_failed', __('The attempt to update the option failed.', 'ml-slider'), array('status' => 409));
|
637 |
+
}
|
638 |
+
}
|
admin/Pages.php
ADDED
@@ -0,0 +1,162 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/*
|
4 |
+
* Entry point for building the wordpress admin pages.
|
5 |
+
* Temporarily extends the MetaSlider Class until more refactoring can be done.
|
6 |
+
*/
|
7 |
+
|
8 |
+
Class MetaSlider_Admin_Pages extends MetaSliderPlugin {
|
9 |
+
|
10 |
+
/**
|
11 |
+
* @property string $capability - The minimum capability to view the admin page
|
12 |
+
*/
|
13 |
+
private $capability;
|
14 |
+
|
15 |
+
/**
|
16 |
+
* @property object $plugin - The MetaSlider plugin class
|
17 |
+
*/
|
18 |
+
private $plugin;
|
19 |
+
|
20 |
+
/*
|
21 |
+
* @property string $current_page - The current admin page
|
22 |
+
*/
|
23 |
+
private $current_page;
|
24 |
+
|
25 |
+
/**
|
26 |
+
* Sets up the notices, security and loads assets for the admin page
|
27 |
+
*/
|
28 |
+
public function __construct($plugin) {
|
29 |
+
$this->plugin = $plugin;
|
30 |
+
$this->capability = apply_filters('metaslider_capability', 'edit_others_posts');
|
31 |
+
$this->notices = new MetaSlider_Notices($plugin);
|
32 |
+
$this->tour = new MetaSlider_Tour($plugin, 'toplevel_page_metaslider');
|
33 |
+
add_action('admin_enqueue_scripts', array($this, 'load_icon_css'));
|
34 |
+
add_action('admin_enqueue_scripts', array($this, 'load_upgrade_page_assets'));
|
35 |
+
}
|
36 |
+
|
37 |
+
/**
|
38 |
+
* Loads the icon on the top levelmenu page name
|
39 |
+
*/
|
40 |
+
public function load_icon_css() {
|
41 |
+
wp_enqueue_style('metaslider-global', METASLIDER_ADMIN_URL . 'assets/css/icon.css', array(), METASLIDER_VERSION);
|
42 |
+
}
|
43 |
+
|
44 |
+
/**
|
45 |
+
* Loads in the overlay assets
|
46 |
+
*/
|
47 |
+
public function load_overlay() {
|
48 |
+
wp_enqueue_style('metaslider-colorbox-styles', METASLIDER_ADMIN_URL . 'assets/vendor/colorbox/colorbox.css', false, METASLIDER_VERSION);
|
49 |
+
wp_enqueue_script('metaslider-colorbox', METASLIDER_ADMIN_URL . 'assets/vendor/colorbox/jquery.colorbox-min.js', array('jquery'), METASLIDER_VERSION, true);
|
50 |
+
}
|
51 |
+
|
52 |
+
/**
|
53 |
+
* Loads in tooltips
|
54 |
+
*/
|
55 |
+
public function load_tooltips() {
|
56 |
+
wp_enqueue_style('metaslider-tipsy-styles', METASLIDER_ADMIN_URL . 'assets/vendor/tipsy/tipsy.css', false, METASLIDER_VERSION);
|
57 |
+
wp_enqueue_script('metaslider-tipsy', METASLIDER_ADMIN_URL . 'assets/vendor/tipsy/jquery.tipsy.js', array('jquery'), METASLIDER_VERSION, true);
|
58 |
+
}
|
59 |
+
|
60 |
+
/**
|
61 |
+
* Loads in custom javascript
|
62 |
+
*/
|
63 |
+
public function load_javascript() {
|
64 |
+
|
65 |
+
wp_enqueue_media();
|
66 |
+
wp_enqueue_script('jquery-ui-core');
|
67 |
+
wp_enqueue_script('jquery-ui-sortable');
|
68 |
+
|
69 |
+
wp_register_script('metaslider-admin-script', METASLIDER_ADMIN_URL . 'assets/js/admin.js', array('jquery'), METASLIDER_VERSION, true);
|
70 |
+
wp_localize_script('metaslider-admin-script', 'metaslider', array(
|
71 |
+
'url' => __("URL", "ml-slider"),
|
72 |
+
'caption' => __("Caption", "ml-slider"),
|
73 |
+
'new_window' => __("New Window", "ml-slider"),
|
74 |
+
'confirm' => __("Are you sure?", "ml-slider"),
|
75 |
+
'restore_language' => __("Undo", "ml-slider"),
|
76 |
+
'restored_language' => __("Slide restored", "ml-slider"),
|
77 |
+
'deleted_language' => __("Slide deleted", "ml-slider"),
|
78 |
+
'click_to_undo_language' => __("Press to undo", "ml-slider"),
|
79 |
+
'ajaxurl' => admin_url('admin-ajax.php'),
|
80 |
+
'update_image' => __("Select replacement image", "ml-slider"),
|
81 |
+
'resize_nonce' => wp_create_nonce('metaslider_resize'),
|
82 |
+
'create_slide_nonce' => wp_create_nonce('metaslider_create_slide'),
|
83 |
+
'delete_slide_nonce' => wp_create_nonce('metaslider_delete_slide'),
|
84 |
+
'undelete_slide_nonce' => wp_create_nonce('metaslider_undelete_slide'),
|
85 |
+
'update_slide_image_nonce' => wp_create_nonce('metaslider_update_slide_image'),
|
86 |
+
'handle_notices_nonce' => wp_create_nonce('metaslider_handle_notices_nonce'),
|
87 |
+
'iframeurl' => admin_url('admin-post.php?action=metaslider_preview'),
|
88 |
+
'useWithCaution' => __("Caution: This setting is for advanced developers only. If you're unsure, leave it checked.", "ml-slider")
|
89 |
+
));
|
90 |
+
wp_enqueue_script('metaslider-admin-script');
|
91 |
+
do_action('metaslider_register_admin_scripts');
|
92 |
+
}
|
93 |
+
|
94 |
+
/**
|
95 |
+
* Loads in custom styling for upgrade page
|
96 |
+
*/
|
97 |
+
public function load_upgrade_page_assets() {
|
98 |
+
if ('upgrade' == $this->current_page) {
|
99 |
+
wp_enqueue_style('metaslider-upgrade-styles', METASLIDER_ADMIN_URL . 'assets/css/upgrade.css', false, METASLIDER_VERSION);
|
100 |
+
}
|
101 |
+
}
|
102 |
+
|
103 |
+
/**
|
104 |
+
* Loads in custom styling
|
105 |
+
*/
|
106 |
+
public function load_styles() {
|
107 |
+
wp_enqueue_style('metaslider-admin-styles', METASLIDER_ADMIN_URL . 'assets/css/admin.css', false, METASLIDER_VERSION);
|
108 |
+
|
109 |
+
// Hook to load more styles and scripts (from pro)
|
110 |
+
do_action('metaslider_register_admin_styles');
|
111 |
+
}
|
112 |
+
|
113 |
+
/**
|
114 |
+
* Area used to handle any third-party plugin conflicts
|
115 |
+
*/
|
116 |
+
public function fix_conflicts() {
|
117 |
+
|
118 |
+
// WP Posts Filter Fix (Advanced Settings not toggling)
|
119 |
+
wp_dequeue_script('link');
|
120 |
+
|
121 |
+
// All In One Events Calendar Fix (Advanced Settings not toggling)
|
122 |
+
wp_dequeue_script('ai1ec_requirejs');
|
123 |
+
}
|
124 |
+
|
125 |
+
/**
|
126 |
+
* Method to add pages
|
127 |
+
* @param string $title - The title of the page
|
128 |
+
* @param string $slug - The slug used for the page
|
129 |
+
* @param string $parent - Setting a parent will make this page a submenu item
|
130 |
+
*/
|
131 |
+
public function add_page($title, $slug = '', $parent = '') {
|
132 |
+
$slug = ('' == $slug) ? sanitize_title($title) : $slug;
|
133 |
+
$method = 'render_'.str_replace("-", "_", $slug).'_page';
|
134 |
+
if (!method_exists($this, $method)) {
|
135 |
+
return false;
|
136 |
+
}
|
137 |
+
$this->current_page = $slug;
|
138 |
+
$page = ('' == $parent) ? add_menu_page($title, $title, $this->capability, $slug, array($this, $method)) : add_submenu_page($parent, $title, $title, $this->capability, $slug, array($this, $method));
|
139 |
+
|
140 |
+
// Load assets on all pages
|
141 |
+
add_action('load-' . $page, array($this, 'fix_conflicts'));
|
142 |
+
add_action('load-' . $page, array($this, 'load_overlay'));
|
143 |
+
add_action('load-' . $page, array($this, 'load_tooltips'));
|
144 |
+
add_action('load-' . $page, array($this, 'load_javascript'));
|
145 |
+
add_action('load-' . $page, array($this, 'load_styles'));
|
146 |
+
}
|
147 |
+
|
148 |
+
/**
|
149 |
+
* Sets up any logic needed for the main page
|
150 |
+
* TODO continue refactoring from here
|
151 |
+
*/
|
152 |
+
public function render_metaslider_page() {
|
153 |
+
parent::render_admin_page();
|
154 |
+
}
|
155 |
+
|
156 |
+
/**
|
157 |
+
* Sets up any logic needed for the upgrade page
|
158 |
+
*/
|
159 |
+
public function render_upgrade_page() {
|
160 |
+
include METASLIDER_PATH."admin/views/pages/upgrade.php";
|
161 |
+
}
|
162 |
+
}
|
admin/Tour.php
ADDED
@@ -0,0 +1,143 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
if (!defined('ABSPATH')) die('No direct access allowed');
|
4 |
+
|
5 |
+
/*
|
6 |
+
* Class for guided tour
|
7 |
+
*/
|
8 |
+
|
9 |
+
Class MetaSlider_Tour {
|
10 |
+
|
11 |
+
/**
|
12 |
+
* The plugin object
|
13 |
+
*/
|
14 |
+
protected $plugin;
|
15 |
+
|
16 |
+
/**
|
17 |
+
* Sets up the notices, security and loads assets for the admin page
|
18 |
+
*/
|
19 |
+
public function __construct($plugin, $page) {
|
20 |
+
$this->plugin = $plugin;
|
21 |
+
add_action('load-' . $page, array($this, 'load_tour'));
|
22 |
+
add_action('wp_ajax_set_tour_status', array($this, 'handle_ajax'));
|
23 |
+
add_action('wp_ajax_reset_tour_status', array($this, 'handle_ajax'));
|
24 |
+
}
|
25 |
+
|
26 |
+
/**
|
27 |
+
* Loads in tour assets
|
28 |
+
*/
|
29 |
+
public function load_tour() {
|
30 |
+
wp_enqueue_script('metaslider-tether-js', METASLIDER_ADMIN_URL . 'assets/tether/tether.min.js', METASLIDER_VERSION, true);
|
31 |
+
wp_enqueue_script('metaslider-shepherd-js', METASLIDER_ADMIN_URL . 'assets/tether-shepherd/shepherd.min.js', array('metaslider-tether-js'), METASLIDER_VERSION, true);
|
32 |
+
wp_enqueue_style('metaslider-shepherd-css', METASLIDER_ADMIN_URL . 'assets/tether-shepherd/shepherd-theme-arrows.css', false, METASLIDER_VERSION);
|
33 |
+
|
34 |
+
wp_register_script('metaslider-tour-js', METASLIDER_ADMIN_URL . 'assets/js/tour.js', array('metaslider-tether-js'), METASLIDER_VERSION, true);
|
35 |
+
wp_localize_script('metaslider-tour-js', 'metaslider_tour', array(
|
36 |
+
'no_slideshows' => array(
|
37 |
+
'show' => ! (bool) count($this->plugin->all_meta_sliders()),
|
38 |
+
'title' => __("Welcome", "ml-slider"),
|
39 |
+
'message' => __("Thanks for using the MetaSlider WordPress plugin. It looks like you don’t have any slideshows yet! To get started, click above to add your first one.", "ml-slider")
|
40 |
+
),
|
41 |
+
'main_tour' => array(
|
42 |
+
'show' => (bool) count($this->plugin->all_meta_sliders()) && ! (bool) get_option('metaslider_tour_cancelled_on'),
|
43 |
+
'nonce' => wp_create_nonce('metaslider_tour_nonce'),
|
44 |
+
// 'has_slides' => ms
|
45 |
+
'learn_more_language' => __('Learn More', 'ml-slider'),
|
46 |
+
'next_language' => __('Next', 'ml-slider'),
|
47 |
+
'skip_language' => __('Skip this step', 'ml-slider'),
|
48 |
+
'upgrade_link' => metaslider_get_upgrade_link(),
|
49 |
+
'is_pro' => metaslider_is_pro_active(),
|
50 |
+
'step1' => array(
|
51 |
+
'title' => __("Add A Slide", "ml-slider"),
|
52 |
+
'message' => __("Congratulations! Now that you've created a slideshow, click here to add a slide.", "ml-slider")
|
53 |
+
),
|
54 |
+
'step2a' => array(
|
55 |
+
'title' => __("Select Slide Type", "ml-slider"),
|
56 |
+
'message' => metaslider_is_pro_active() ? 'Thanks for activating the Add-on Pack! Premium users can choose from any of these slide types' : __("Premium users that have the Add-on Pack activated can access additional slide types!", "ml-slider")
|
57 |
+
),
|
58 |
+
'step2b' => array(
|
59 |
+
'title' => __("Select Media", "ml-slider"),
|
60 |
+
'message' => __("After you have selected your media from the left, click below to continue.", "ml-slider")
|
61 |
+
),
|
62 |
+
'step3' => array(
|
63 |
+
'title' => __("Preview Slideshow", "ml-slider"),
|
64 |
+
'message' => __("Now that you have some slides set, you can preview your slideshow by clicking here.", "ml-slider")
|
65 |
+
),
|
66 |
+
'step4' => array(
|
67 |
+
'title' => __("Adjust Settings", "ml-slider"),
|
68 |
+
'message' => __("If you need to adjust the settings for this slideshow, you may do so here.", "ml-slider")
|
69 |
+
),
|
70 |
+
'step5' => array(
|
71 |
+
'title' => __("Shortcode Usage", "ml-slider"),
|
72 |
+
'message' => __("You are all set! If you want to add the slideshow to a post, you may use this shortcode.", "ml-slider"),
|
73 |
+
'button' => __('Finish')
|
74 |
+
),
|
75 |
+
'final_ad' => array(
|
76 |
+
'title' => __("Congratulations!", "ml-slider"),
|
77 |
+
'message' => __("You've completed the tour and are ready to add great slideshows to your website. Don't forget, if you want your slideshows to really stand out, pick up the add-on pack today. ", "ml-slider"),
|
78 |
+
'button' => __('Finish')
|
79 |
+
)
|
80 |
+
)
|
81 |
+
));
|
82 |
+
wp_enqueue_script('metaslider-tour-js');
|
83 |
+
}
|
84 |
+
|
85 |
+
/**
|
86 |
+
* Removes the tour status so the tour can be seen again
|
87 |
+
*
|
88 |
+
* @return bool|WP_Error The Boolean should be true
|
89 |
+
*/
|
90 |
+
public function reset_tour_status() {
|
91 |
+
|
92 |
+
// If the option isn't set, the tour hasn't been cancelled
|
93 |
+
if (!get_option('metaslider_tour_cancelled_on')) {
|
94 |
+
return 'The tour is still active. Everything should be ok.';
|
95 |
+
}
|
96 |
+
|
97 |
+
$result = delete_option('metaslider_tour_cancelled_on');
|
98 |
+
return $result ? 'The tour status was successfully reset' : new WP_Error('update_failed', 'The attempt to update the tour option failed.', array('status' => 409));
|
99 |
+
}
|
100 |
+
|
101 |
+
/**
|
102 |
+
* Updates the stored value for which step the tour ended on
|
103 |
+
* @param object $request - the http $_REQUEST obj
|
104 |
+
* @return bool|WP_Error The Boolean should be true
|
105 |
+
*/
|
106 |
+
public function set_tour_status($request) {
|
107 |
+
$result = update_option('metaslider_tour_cancelled_on', $request['current_step']);
|
108 |
+
return $result ? 'The tour status was successfully updated' : new WP_Error('update_failed', 'The attempt to update the tour option failed.', array('status' => 409));
|
109 |
+
}
|
110 |
+
|
111 |
+
/**
|
112 |
+
* Handles AJAX calls
|
113 |
+
*
|
114 |
+
* @return String - (JSON) Sends a success response unless an error is encountered
|
115 |
+
*/
|
116 |
+
public function handle_ajax() {
|
117 |
+
if (!wp_verify_nonce($_REQUEST['_wpnonce'], 'metaslider_tour_nonce')) {
|
118 |
+
return wp_send_json_error(array(
|
119 |
+
'message' => __('The security check failed. Please refresh the page and try again.', 'ml-slider')
|
120 |
+
), 401);
|
121 |
+
}
|
122 |
+
|
123 |
+
$method = str_replace('ajax_', '', $_POST['action']);
|
124 |
+
if (!method_exists($this, $method)) {
|
125 |
+
return wp_send_json_error(array(
|
126 |
+
'message' => __('This method does not exist. Please refresh the page and try again.', 'ml-slider')
|
127 |
+
), 401);
|
128 |
+
}
|
129 |
+
|
130 |
+
// Call the dynamic method
|
131 |
+
$result = $this->{$method}($_REQUEST);
|
132 |
+
|
133 |
+
if (is_wp_error($result)) {
|
134 |
+
return wp_send_json_error(array(
|
135 |
+
'message' => $result->get_error_message()
|
136 |
+
), 409);
|
137 |
+
}
|
138 |
+
|
139 |
+
return wp_send_json_success(array(
|
140 |
+
'message' => $result,
|
141 |
+
), 200);
|
142 |
+
}
|
143 |
+
}
|
admin/assets/css/admin.css
ADDED
@@ -0,0 +1,1529 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
.metaslider.wrap div.updated,
|
2 |
+
.metaslider.wrap div.error {
|
3 |
+
clear: both
|
4 |
+
}
|
5 |
+
|
6 |
+
.metaslider #post-body.columns-2 #postbox-container-1 {
|
7 |
+
margin-right: -320px;
|
8 |
+
width: 300px;
|
9 |
+
}
|
10 |
+
|
11 |
+
.metaslider #poststuff #post-body.columns-2 {
|
12 |
+
margin-right: 320px;
|
13 |
+
}
|
14 |
+
|
15 |
+
.rtl .metaslider #post-body.columns-2 #postbox-container-1 {
|
16 |
+
margin-left: -320px;
|
17 |
+
margin-right: 0;
|
18 |
+
}
|
19 |
+
|
20 |
+
.rtl .metaslider #poststuff #post-body.columns-2 {
|
21 |
+
margin-left: 320px;
|
22 |
+
margin-right: 0;
|
23 |
+
}
|
24 |
+
|
25 |
+
|
26 |
+
.metaslider .left input,
|
27 |
+
.metaslider .left textarea {
|
28 |
+
border: 1px solid #ccc;
|
29 |
+
border-radius: 0;
|
30 |
+
resize: none;
|
31 |
+
box-shadow: inherit;
|
32 |
+
}
|
33 |
+
|
34 |
+
.media-frame-menu .separator {
|
35 |
+
display: none
|
36 |
+
}
|
37 |
+
|
38 |
+
.msTipsy .tipsy-arrow-s {
|
39 |
+
border-top-color: #555
|
40 |
+
}
|
41 |
+
|
42 |
+
.msTipsy .tipsy-arrow-w {
|
43 |
+
border-right-color: #555
|
44 |
+
}
|
45 |
+
|
46 |
+
.msTipsy .tipsy-arrow-n {
|
47 |
+
border-bottom-color: #555
|
48 |
+
}
|
49 |
+
|
50 |
+
.msTipsy .tipsy-inner {
|
51 |
+
color: white;
|
52 |
+
background-color: #555;
|
53 |
+
}
|
54 |
+
|
55 |
+
.msTipsy .tipsy-arrow-e {
|
56 |
+
border-left-color: #555
|
57 |
+
}
|
58 |
+
|
59 |
+
#cboxLoadedContent {
|
60 |
+
overflow: hidden !important
|
61 |
+
}
|
62 |
+
|
63 |
+
#cboxLoadedContent iframe {
|
64 |
+
border: 0 none;
|
65 |
+
display: block;
|
66 |
+
height: 100%;
|
67 |
+
width: 100%;
|
68 |
+
}
|
69 |
+
|
70 |
+
.metaslider .right input[type=submit] {
|
71 |
+
margin: 0 3px;
|
72 |
+
}
|
73 |
+
|
74 |
+
.metaslider #poststuff .right .configuration {
|
75 |
+
padding: 7px 7px 7px 12px;
|
76 |
+
line-height: 27px;
|
77 |
+
float: left;
|
78 |
+
width: 100%;
|
79 |
+
box-sizing: border-box;
|
80 |
+
}
|
81 |
+
|
82 |
+
.metaslider .left table tr.slide input.url {
|
83 |
+
width: 100%;
|
84 |
+
margin: 0;
|
85 |
+
padding: 4px;
|
86 |
+
}
|
87 |
+
|
88 |
+
.metaslider .section {
|
89 |
+
cursor: pointer
|
90 |
+
}
|
91 |
+
|
92 |
+
.metaslider .hidden {
|
93 |
+
display: none
|
94 |
+
}
|
95 |
+
|
96 |
+
.metaslider .tipsy-tooltip {
|
97 |
+
cursor: default
|
98 |
+
}
|
99 |
+
|
100 |
+
.metaslider .ui-sortable-helper {
|
101 |
+
box-shadow: 3px 3px 5px #cccccc
|
102 |
+
}
|
103 |
+
|
104 |
+
.metaslider .left table tr.slide textarea {
|
105 |
+
width: 100%;
|
106 |
+
height: 60px;
|
107 |
+
margin: 0 0 5px 0;
|
108 |
+
padding: 2px 5px;
|
109 |
+
}
|
110 |
+
|
111 |
+
.branch-3-5 .metaslider .left table tr.slide .tabs-content .new_window,
|
112 |
+
.branch-3-6 .metaslider .left table tr.slide .tabs-content .new_window,
|
113 |
+
.branch-3-7 .metaslider .left table tr.slide .tabs-content .new_window {
|
114 |
+
right: 6px;
|
115 |
+
bottom: 20px;
|
116 |
+
}
|
117 |
+
|
118 |
+
.branch-3-5 .metaslider .left table tr.slide .tabs-content .new_window label,
|
119 |
+
.branch-3-6 .metaslider .left table tr.slide .tabs-content .new_window label,
|
120 |
+
.branch-3-7 .metaslider .left table tr.slide .tabs-content .new_window label {
|
121 |
+
line-height: 18px;
|
122 |
+
vertical-align: top;
|
123 |
+
}
|
124 |
+
|
125 |
+
.branch-3-5 .metaslider .left table tr.slide .tabs-content .new_window input,
|
126 |
+
.branch-3-6 .metaslider .left table tr.slide .tabs-content .new_window input,
|
127 |
+
.branch-3-7 .metaslider .left table tr.slide .tabs-content .new_window input {
|
128 |
+
margin: -2px 0 0 4px;
|
129 |
+
}
|
130 |
+
|
131 |
+
.metaslider .left table tr.slide .tabs-content .new_window {
|
132 |
+
position: relative;
|
133 |
+
float: right;
|
134 |
+
padding: 0px;
|
135 |
+
color: #a9a9a9;
|
136 |
+
line-height: 20px;
|
137 |
+
bottom: 22px;
|
138 |
+
right: 0;
|
139 |
+
}
|
140 |
+
|
141 |
+
.rtl .metaslider .left table tr.slide .tabs-content .new_window {
|
142 |
+
position: relative;
|
143 |
+
float: left;
|
144 |
+
}
|
145 |
+
|
146 |
+
.metaslider .left table tr.slide .tabs-content .new_window input {
|
147 |
+
margin-left: 3px
|
148 |
+
}
|
149 |
+
|
150 |
+
.rtl .metaslider .left table tr.slide .tabs-content .new_window input {
|
151 |
+
margin-right: 3px
|
152 |
+
}
|
153 |
+
|
154 |
+
.metaslider .left table tr.slide .tabs-content .new_window label {
|
155 |
+
width: 120px;
|
156 |
+
text-align: right;
|
157 |
+
font-size: 11px;
|
158 |
+
}
|
159 |
+
|
160 |
+
.metaslider tr.radio {
|
161 |
+
display: table-row;
|
162 |
+
}
|
163 |
+
|
164 |
+
.metaslider .right .highlight {
|
165 |
+
background: transparent;
|
166 |
+
border: 0;
|
167 |
+
font-weight: bold;
|
168 |
+
}
|
169 |
+
|
170 |
+
/* *
|
171 |
+
* Change background color for label next to checked radio button
|
172 |
+
* to make it look like highlighted button
|
173 |
+
================================================== */
|
174 |
+
|
175 |
+
.metaslider .right .slider-lib-row input[type=radio]:checked + label {
|
176 |
+
background-image: none;
|
177 |
+
background-color: #d0d0d0;
|
178 |
+
}
|
179 |
+
|
180 |
+
.metaslider .right .slider-lib-row input[type=radio] {
|
181 |
+
display: none;
|
182 |
+
}
|
183 |
+
|
184 |
+
.ie8 .metaslider .right .slider-lib-row input[type=radio] {
|
185 |
+
display: inline;
|
186 |
+
}
|
187 |
+
|
188 |
+
.metaslider .right .slider-lib-row input[type=radio] + label {
|
189 |
+
display: inline-block;
|
190 |
+
margin: -2px;
|
191 |
+
padding: 4px 0;
|
192 |
+
margin-bottom: 0;
|
193 |
+
font-size: 11px;
|
194 |
+
line-height: 20px;
|
195 |
+
color: #333;
|
196 |
+
text-align: center;
|
197 |
+
vertical-align: middle;
|
198 |
+
cursor: pointer;
|
199 |
+
background-color: #f5f5f5;
|
200 |
+
background-image: -moz-linear-gradient(top,#fff,#e6e6e6);
|
201 |
+
background-image: -webkit-gradient(linear,0 0,0 100%,from(#fff),to(#e6e6e6));
|
202 |
+
background-image: -webkit-linear-gradient(top,#fff,#e6e6e6);
|
203 |
+
background-image: -o-linear-gradient(top,#fff,#e6e6e6);
|
204 |
+
background-image: linear-gradient(to bottom,#fff,#e6e6e6);
|
205 |
+
background-repeat: repeat-x;
|
206 |
+
border: 1px solid #ddd;
|
207 |
+
border-color: #e6e6e6 #e6e6e6 #bfbfbf;
|
208 |
+
border-color: rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);
|
209 |
+
border-bottom-color: #b3b3b3;
|
210 |
+
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#ffe6e6e6',GradientType=0);
|
211 |
+
filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
|
212 |
+
-webkit-box-shadow: inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);
|
213 |
+
-moz-box-shadow: inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);
|
214 |
+
box-shadow: inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);
|
215 |
+
width: 24%;
|
216 |
+
}
|
217 |
+
|
218 |
+
input[type=radio]:checked + label {
|
219 |
+
background-image: none;
|
220 |
+
outline: 0;
|
221 |
+
-webkit-box-shadow: inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);
|
222 |
+
-moz-box-shadow: inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);
|
223 |
+
box-shadow: inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);
|
224 |
+
background-color: #e0e0e0;
|
225 |
+
}
|
226 |
+
|
227 |
+
.metaslider .right #nivo + label:hover,
|
228 |
+
.metaslider .right #nivo:checked + label {
|
229 |
+
color: white;
|
230 |
+
background: #b6e026;
|
231 |
+
background: -moz-linear-gradient(top, #b6e026 0%, #abdc28 100%);
|
232 |
+
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #b6e026), color-stop(100%, #abdc28));
|
233 |
+
background: -webkit-linear-gradient(top, #b6e026 0%, #abdc28 100%);
|
234 |
+
background: -o-linear-gradient(top, #b6e026 0%, #abdc28 100%);
|
235 |
+
background: -ms-linear-gradient(top, #b6e026 0%, #abdc28 100%);
|
236 |
+
background: linear-gradient(to bottom, #b6e026 0%, #abdc28 100%);
|
237 |
+
}
|
238 |
+
|
239 |
+
.metaslider .right #responsive + label:hover,
|
240 |
+
.metaslider .right #responsive:checked + label,
|
241 |
+
.metaslider .right #responsive:checked {
|
242 |
+
color: white;
|
243 |
+
background: #ff5db1; /* Old browsers */
|
244 |
+
background: -moz-linear-gradient(top, #ff5db1 0%, #ef017c 100%); /* FF3.6+ */
|
245 |
+
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#ff5db1), color-stop(100%,#ef017c)); /* Chrome,Safari4+ */
|
246 |
+
background: -webkit-linear-gradient(top, #ff5db1 0%,#ef017c 100%); /* Chrome10+,Safari5.1+ */
|
247 |
+
background: -o-linear-gradient(top, #ff5db1 0%,#ef017c 100%); /* Opera 11.10+ */
|
248 |
+
background: -ms-linear-gradient(top, #ff5db1 0%,#ef017c 100%); /* IE10+ */
|
249 |
+
background: linear-gradient(to bottom, #ff5db1 0%,#ef017c 100%); /* W3C */
|
250 |
+
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ff5db1', endColorstr='#ef017c',GradientType=0 ); /* IE6-9 */
|
251 |
+
}
|
252 |
+
|
253 |
+
.metaslider .right #coin + label:hover,
|
254 |
+
.metaslider .right #coin:checked + label {
|
255 |
+
color: white;
|
256 |
+
background: #ffd65e;
|
257 |
+
background: -moz-linear-gradient(top, #ffd65e 0%, #febf04 100%);
|
258 |
+
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #ffd65e), color-stop(100%, #febf04));
|
259 |
+
background: -webkit-linear-gradient(top, #ffd65e 0%, #febf04 100%);
|
260 |
+
background: -o-linear-gradient(top, #ffd65e 0%, #febf04 100%);
|
261 |
+
background: -ms-linear-gradient(top, #ffd65e 0%, #febf04 100%);
|
262 |
+
background: linear-gradient(to bottom, #ffd65e 0%, #febf04 100%);
|
263 |
+
}
|
264 |
+
|
265 |
+
.metaslider .right #flex + label:hover,
|
266 |
+
.metaslider .right #flex:checked + label {
|
267 |
+
color: white;
|
268 |
+
background: #00b7ea;
|
269 |
+
background: -moz-linear-gradient(top, #00b7ea 0%, #009ec3 100%);
|
270 |
+
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #00b7ea), color-stop(100%, #009ec3));
|
271 |
+
background: -webkit-linear-gradient(top, #00b7ea 0%, #009ec3 100%);
|
272 |
+
background: -o-linear-gradient(top, #00b7ea 0%, #009ec3 100%);
|
273 |
+
background: -ms-linear-gradient(top, #00b7ea 0%, #009ec3 100%);
|
274 |
+
background: linear-gradient(to bottom, #00b7ea 0%, #009ec3 100%);
|
275 |
+
}
|
276 |
+
.metaslider .right .slider-lib-row label:focus,
|
277 |
+
.metaslider .right .slider-lib-row label:active {
|
278 |
+
background: #acd7fd !important;
|
279 |
+
box-shadow: none !important;
|
280 |
+
outline: none;
|
281 |
+
}
|
282 |
+
.metaslider .right .slider-lib-row {
|
283 |
+
padding: 17px 0 9px 0;
|
284 |
+
text-align: center;
|
285 |
+
}
|
286 |
+
|
287 |
+
.metaslider .right #save {
|
288 |
+
margin-right: 0
|
289 |
+
}
|
290 |
+
.rtl .metaslider .right #save {
|
291 |
+
margin-right: 4px;
|
292 |
+
margin-left: 0;
|
293 |
+
}
|
294 |
+
|
295 |
+
.metaslider .right .number input:focus {
|
296 |
+
outline: none;
|
297 |
+
outline-style: none;
|
298 |
+
box-shadow: none;
|
299 |
+
background-color: #acd7fd;
|
300 |
+
color: #444;
|
301 |
+
}
|
302 |
+
|
303 |
+
.metaslider .right .number .after,
|
304 |
+
.metaslider .right .number input {
|
305 |
+
display: block;
|
306 |
+
float: left;
|
307 |
+
height: 26px;
|
308 |
+
margin: 0;
|
309 |
+
}
|
310 |
+
|
311 |
+
.rtl .metaslider .right .number .after,
|
312 |
+
.rtl .metaslider .right .number input {
|
313 |
+
float: right;
|
314 |
+
}
|
315 |
+
.rtl .metaslider .right .number .after {
|
316 |
+
border-left: 1px solid #ddd;
|
317 |
+
border-right: 0;
|
318 |
+
}
|
319 |
+
.rtl .metaslider .right .number input {
|
320 |
+
border-right: 1px solid #ddd;
|
321 |
+
border-left: 0;
|
322 |
+
}
|
323 |
+
|
324 |
+
.metaslider .right .radio ul {
|
325 |
+
margin: 0;
|
326 |
+
}
|
327 |
+
.metaslider .right .radio li {
|
328 |
+
margin: 0 0 2px 0;
|
329 |
+
clear: both;
|
330 |
+
}
|
331 |
+
.metaslider .right .radio input[type="radio"] {
|
332 |
+
margin-top: 0;
|
333 |
+
}
|
334 |
+
.rtl .metaslider .right .radio input[type="radio"] {
|
335 |
+
float: right;
|
336 |
+
}
|
337 |
+
|
338 |
+
.metaslider .right .number input {
|
339 |
+
width: 70px;
|
340 |
+
margin-right: 0;
|
341 |
+
box-shadow: none;
|
342 |
+
border-right: 0;
|
343 |
+
}
|
344 |
+
|
345 |
+
.metaslider .right .number .after {
|
346 |
+
border: 1px solid #ddd;
|
347 |
+
border-left: 0;
|
348 |
+
box-shadow: none;
|
349 |
+
font-size: 11px;
|
350 |
+
height: 24px;
|
351 |
+
line-height: 24px;
|
352 |
+
padding: 0 3px;
|
353 |
+
background: white;
|
354 |
+
}
|
355 |
+
|
356 |
+
.metaslider .right input[type="text"],
|
357 |
+
.metaslider .right select {
|
358 |
+
width: 130px;
|
359 |
+
}
|
360 |
+
|
361 |
+
.metaslider #poststuff .right .ms-postbox .inside {
|
362 |
+
padding: 8px 12px 12px 12px;
|
363 |
+
margin: 0;
|
364 |
+
}
|
365 |
+
|
366 |
+
.ms-postbox .handlediv {
|
367 |
+
float: right;
|
368 |
+
width: 27px;
|
369 |
+
height: 30px;
|
370 |
+
cursor: pointer;
|
371 |
+
color: #aaa;
|
372 |
+
}
|
373 |
+
|
374 |
+
.ms-postbox .handlediv:before {
|
375 |
+
right: 12px;
|
376 |
+
font: 400 20px/1 dashicons;
|
377 |
+
speak: none;
|
378 |
+
display: inline-block;
|
379 |
+
padding: 8px 10px;
|
380 |
+
top: 0;
|
381 |
+
position: relative;
|
382 |
+
-webkit-font-smoothing: antialiased;
|
383 |
+
-moz-osx-font-smoothing: grayscale;
|
384 |
+
text-decoration: none !important;
|
385 |
+
content: '\f142';
|
386 |
+
}
|
387 |
+
|
388 |
+
.ms-postbox.closed .handlediv:before {
|
389 |
+
content: '\f140';
|
390 |
+
}
|
391 |
+
|
392 |
+
.metaslider .shortcode .inside {
|
393 |
+
padding: 15px 10px;
|
394 |
+
}
|
395 |
+
|
396 |
+
.metaslider .social .inside {
|
397 |
+
padding: 10px;
|
398 |
+
}
|
399 |
+
|
400 |
+
.metaslider .social .inside ul.info {
|
401 |
+
width: 100%;
|
402 |
+
margin: 0;
|
403 |
+
height: 20px;
|
404 |
+
}
|
405 |
+
|
406 |
+
.metaslider .shortcode input[type=text],
|
407 |
+
.metaslider .shortcode input[type=text]:active,
|
408 |
+
.metaslider .shortcode textarea,
|
409 |
+
.metaslider .shortcode textarea:active {
|
410 |
+
font-family: monospace;
|
411 |
+
font-size: 11px;
|
412 |
+
width: 100%;
|
413 |
+
background: transparent;
|
414 |
+
border: 0;
|
415 |
+
box-shadow: none;
|
416 |
+
}
|
417 |
+
|
418 |
+
.metaslider .shortcode textarea {
|
419 |
+
height: 65px;
|
420 |
+
}
|
421 |
+
|
422 |
+
.metaslider .shortcode ul.tabs {
|
423 |
+
margin: 0;
|
424 |
+
}
|
425 |
+
|
426 |
+
.metaslider .shortcode ul.tabs li.selected {
|
427 |
+
background: #fdfdfd;
|
428 |
+
border-bottom: 1px solid #fdfdfd;
|
429 |
+
}
|
430 |
+
|
431 |
+
.metaslider .shortcode .tabs-content {
|
432 |
+
clear: both;
|
433 |
+
background: #fdfdfd;
|
434 |
+
border-left: 1px solid #ccc;
|
435 |
+
border-right: 1px solid #ccc;
|
436 |
+
border-bottom: 1px solid #ccc;
|
437 |
+
padding: 10px;
|
438 |
+
}
|
439 |
+
|
440 |
+
.metaslider .right .ms-postbox table {
|
441 |
+
border: 0;
|
442 |
+
width: 100%;
|
443 |
+
}
|
444 |
+
|
445 |
+
.metaslider .right .ms-postbox table textarea {
|
446 |
+
width: 100%;
|
447 |
+
height: 100px;
|
448 |
+
font-family: monospace;
|
449 |
+
background: #272822;
|
450 |
+
color: #a6e22e;
|
451 |
+
}
|
452 |
+
|
453 |
+
.metaslider .right .ms-postbox h3 {
|
454 |
+
cursor: inherit;
|
455 |
+
}
|
456 |
+
|
457 |
+
.metaslider .right .ms-postbox.ms-toggle h3 {
|
458 |
+
cursor: pointer;
|
459 |
+
}
|
460 |
+
|
461 |
+
.metaslider .right table {
|
462 |
+
margin: 0 0 5px 0;
|
463 |
+
}
|
464 |
+
|
465 |
+
.metaslider .right table td {
|
466 |
+
vertical-align: middle;
|
467 |
+
padding: 8px 4px;
|
468 |
+
border: 0;
|
469 |
+
height: 21px;
|
470 |
+
}
|
471 |
+
|
472 |
+
.metaslider select {
|
473 |
+
height: auto;
|
474 |
+
}
|
475 |
+
|
476 |
+
.metaslider .warning {
|
477 |
+
background-color: #ffebe8;
|
478 |
+
border: 1px solid #c00;
|
479 |
+
margin-bottom: 5px;
|
480 |
+
border-radius: 3px;
|
481 |
+
padding: 5px 10px;
|
482 |
+
}
|
483 |
+
|
484 |
+
input:-ms-input-placeholder {
|
485 |
+
color: LightGray;
|
486 |
+
}
|
487 |
+
|
488 |
+
textarea:-ms-input-placeholder {
|
489 |
+
color: LightGray;
|
490 |
+
}
|
491 |
+
|
492 |
+
.attachment-display-settings {
|
493 |
+
display: none;
|
494 |
+
}
|
495 |
+
|
496 |
+
.metaslider .tabs-content,
|
497 |
+
.metaslider .tabs-content ul,
|
498 |
+
.metaslider .tabs-content li {
|
499 |
+
font-size: 12px;
|
500 |
+
}
|
501 |
+
|
502 |
+
.metaslider .tabs-content input,
|
503 |
+
.metaslider .tabs-content select {
|
504 |
+
font-size: 11px;
|
505 |
+
}
|
506 |
+
.metaslider .tabs-content input:focus,
|
507 |
+
.metaslider .tabs-content textarea:focus,
|
508 |
+
.metaslider .tabs-content select:focus {
|
509 |
+
color: #444;
|
510 |
+
border-color: #acd7fd;
|
511 |
+
background: rgba(172, 215, 253, 0.2);
|
512 |
+
}
|
513 |
+
|
514 |
+
.metaslider .left .tabs-content {
|
515 |
+
clear: both;
|
516 |
+
}
|
517 |
+
|
518 |
+
.metaslider .tabs-content .row {
|
519 |
+
float: left;
|
520 |
+
clear: both;
|
521 |
+
width: 100%;
|
522 |
+
vertical-align: middle;
|
523 |
+
margin-bottom: 6px;
|
524 |
+
}
|
525 |
+
|
526 |
+
.metaslider .tabs-content .row.last {
|
527 |
+
margin-bottom: 0;
|
528 |
+
}
|
529 |
+
|
530 |
+
.metaslider .tabs-content .row label {
|
531 |
+
color: #999;
|
532 |
+
display: inline-block;
|
533 |
+
text-indent: 3px;
|
534 |
+
}
|
535 |
+
|
536 |
+
.metaslider .tabs-content .row input {
|
537 |
+
margin-right: 5px;
|
538 |
+
margin-bottom: 0px;
|
539 |
+
margin-left: 0px;
|
540 |
+
}
|
541 |
+
|
542 |
+
.metaslider .tabs-content .row input[type=text] {
|
543 |
+
width: 100%;
|
544 |
+
}
|
545 |
+
|
546 |
+
.metaslider .tabs-content ul {
|
547 |
+
margin: 0;
|
548 |
+
}
|
549 |
+
|
550 |
+
.metaslider .tabs-content li {
|
551 |
+
margin: 0 0 3px 0;
|
552 |
+
}
|
553 |
+
|
554 |
+
.metaslider .tabs-content select {
|
555 |
+
font-size: 11px;
|
556 |
+
}
|
557 |
+
|
558 |
+
.metaslider .tabs-content p {
|
559 |
+
font-style: italic;
|
560 |
+
color: #999999;
|
561 |
+
}
|
562 |
+
|
563 |
+
.metaslider ul.tabs {
|
564 |
+
float: left;
|
565 |
+
width: 100%;
|
566 |
+
margin: 0 0 10px 0;
|
567 |
+
border-bottom: 1px solid #ccc;
|
568 |
+
}
|
569 |
+
|
570 |
+
.metaslider ul.tabs li {
|
571 |
+
margin: 0 0 0 5px;
|
572 |
+
cursor: pointer;
|
573 |
+
padding: 3px 5px;
|
574 |
+
display: inline-block;
|
575 |
+
line-height: 14px;
|
576 |
+
color: #ccc;
|
577 |
+
position: relative;
|
578 |
+
top: 1px;
|
579 |
+
border: 1px solid transparent;
|
580 |
+
}
|
581 |
+
.metaslider ul.tabs li a {
|
582 |
+
color: #aaaaaa;
|
583 |
+
outline: 0;
|
584 |
+
box-shadow: none;
|
585 |
+
}
|
586 |
+
.metaslider ul.tabs li a:focus {
|
587 |
+
background-color: #acd7fd;
|
588 |
+
color: #444!important;
|
589 |
+
}
|
590 |
+
.metaslider ul.tabs li a:hover,
|
591 |
+
.metaslider ul.tabs li.selected a {
|
592 |
+
color: #e1642e;
|
593 |
+
}
|
594 |
+
|
595 |
+
.metaslider ul.tabs li:hover {
|
596 |
+
color: #333;
|
597 |
+
}
|
598 |
+
|
599 |
+
.metaslider ul.tabs li.selected {
|
600 |
+
font-weight: bold;
|
601 |
+
color: #666;
|
602 |
+
border: 1px solid #ccc;
|
603 |
+
border-bottom: 1px solid white;
|
604 |
+
}
|
605 |
+
|
606 |
+
.metaslider .left table tr.slide:nth-child(odd) ul.tabs li.selected {
|
607 |
+
border-bottom: 1px solid #ffffff;
|
608 |
+
}
|
609 |
+
|
610 |
+
.metaslider .dropdown_container {
|
611 |
+
margin: 40px 0 10px 0;
|
612 |
+
}
|
613 |
+
|
614 |
+
#screen-meta-links #screen-options-switch-view-wrap {
|
615 |
+
float: right;
|
616 |
+
height: 28px;
|
617 |
+
margin: 0 0 0 6px;
|
618 |
+
border: 1px solid #ddd;
|
619 |
+
border-top: 0;
|
620 |
+
background: #fff;
|
621 |
+
-webkit-box-shadow: 0 1px 1px -1px rgba(0,0,0,.1);
|
622 |
+
box-shadow: 0 1px 1px -1px rgba(0,0,0,.1);
|
623 |
+
}
|
624 |
+
|
625 |
+
#screen-meta-links #screen-options-switch-view-wrap a {
|
626 |
+
padding: 3px 6px 3px 8px;
|
627 |
+
display: block;
|
628 |
+
font-size: 13px;
|
629 |
+
height: 22px;
|
630 |
+
line-height: 22px;
|
631 |
+
text-decoration: none;
|
632 |
+
z-index: 1;
|
633 |
+
color: #777;
|
634 |
+
}
|
635 |
+
|
636 |
+
#screen-meta-links #screen-options-link-wrap a {
|
637 |
+
padding: 3px 6px;
|
638 |
+
text-decoration: none;
|
639 |
+
line-height: 28px;
|
640 |
+
}
|
641 |
+
#screen-meta-links #screen-options-link-wrap a:before {
|
642 |
+
line-height: 28px;
|
643 |
+
}
|
644 |
+
|
645 |
+
#screen-meta-links #screen-options-link-wrap a:after,
|
646 |
+
#screen-meta-links #screen-options-switch-view-wrap a:after {
|
647 |
+
content: '';
|
648 |
+
}
|
649 |
+
#screen-meta-links #screen-options-link-wrap a:before,
|
650 |
+
#screen-meta-links #screen-options-switch-view-wrap a:before {
|
651 |
+
padding: 0px 8px 0 0;
|
652 |
+
}
|
653 |
+
|
654 |
+
.metaslider_gopro li:before {
|
655 |
+
top: 4px;
|
656 |
+
font: 400 20px/1 dashicons;
|
657 |
+
speak: none;
|
658 |
+
display: inline-block;
|
659 |
+
position: relative;
|
660 |
+
-webkit-font-smoothing: antialiased;
|
661 |
+
-moz-osx-font-smoothing: grayscale;
|
662 |
+
text-decoration: none !important;
|
663 |
+
content: '\f147';
|
664 |
+
color: #de6826;
|
665 |
+
}
|
666 |
+
|
667 |
+
#adminmenu .toplevel_page_metaslider .wp-menu-image img {
|
668 |
+
opacity: 1;
|
669 |
+
}
|
670 |
+
|
671 |
+
.metaslider_pro {
|
672 |
+
margin-top: 50px;
|
673 |
+
}
|
674 |
+
.metaslider_pro p {
|
675 |
+
text-align: center;
|
676 |
+
font-size: 1.2em;
|
677 |
+
}
|
678 |
+
|
679 |
+
.metaslider_pro .probutton,
|
680 |
+
.metaslider_pro .probutton:hover {
|
681 |
+
width: 36%;
|
682 |
+
margin: 20px 32% 10px 32%;
|
683 |
+
float: left;
|
684 |
+
font-size: 1.4em;
|
685 |
+
padding: 15px 0;
|
686 |
+
border-color: #3793B7;
|
687 |
+
background-color: #41add7;
|
688 |
+
background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #41add7), color-stop(100%, #218cb7));
|
689 |
+
background-image: -webkit-linear-gradient(top, #41add7, #218cb7);
|
690 |
+
background-image: -moz-linear-gradient(top, #41add7, #218cb7);
|
691 |
+
background-image: -o-linear-gradient(top, #41add7, #218cb7);
|
692 |
+
background-image: linear-gradient(top, #41add7, #218cb7);
|
693 |
+
-webkit-box-shadow: inset 0 1px rgba(255, 255, 255, 0.2), 0 1px 3px rgba(0, 0, 0, 0.2);
|
694 |
+
-moz-box-shadow: inset 0 1px rgba(255, 255, 255, 0.2), 0 1px 3px rgba(0, 0, 0, 0.2);
|
695 |
+
box-shadow: inset 0 1px rgba(255, 255, 255, 0.2), 0 1px 3px rgba(0, 0, 0, 0.2);
|
696 |
+
border-radius: 4px;
|
697 |
+
-webkit-box-shadow: inset 0 0 2px 0 rgba(57, 140, 255, 0.8);
|
698 |
+
box-shadow: inset 0 0 2px 0 rgba(57, 140, 255, 0.8);
|
699 |
+
color: #fff;
|
700 |
+
font-family: Interface, sans-serif;
|
701 |
+
text-shadow: 0 -1px 1px #1a5ad9;
|
702 |
+
color: white;
|
703 |
+
text-align: center;
|
704 |
+
text-decoration: none;
|
705 |
+
border-radius: 5px;
|
706 |
+
line-height: 2em;
|
707 |
+
}
|
708 |
+
|
709 |
+
.metaslider_pro .super {
|
710 |
+
text-transform: uppercase;
|
711 |
+
font-size: 0.7em;
|
712 |
+
vertical-align: top;
|
713 |
+
line-height: 2em;
|
714 |
+
}
|
715 |
+
|
716 |
+
.metaslider_pro .subtext {
|
717 |
+
float: left;
|
718 |
+
width: 100%;
|
719 |
+
text-align: center;
|
720 |
+
font-style: italic;
|
721 |
+
}
|
722 |
+
|
723 |
+
.metaslider_pro .logo {
|
724 |
+
text-transform: uppercase;
|
725 |
+
}
|
726 |
+
|
727 |
+
@font-face {
|
728 |
+
font-family: 'Interface';
|
729 |
+
font-style: normal;
|
730 |
+
font-weight: 400;
|
731 |
+
src: url("../fonts/interface/Interface-Regular.woff2") format("woff2"),
|
732 |
+
url("../fonts/interface/Interface-Regular.woff") format("woff");
|
733 |
+
}
|
734 |
+
@font-face {
|
735 |
+
font-family: 'Interface';
|
736 |
+
font-style: italic;
|
737 |
+
font-weight: 400;
|
738 |
+
src: url("../fonts/interface/Interface-RegularItalic.woff2") format("woff2"),
|
739 |
+
url("../fonts/interface/Interface-RegularItalic.woff") format("woff");
|
740 |
+
}
|
741 |
+
@font-face {
|
742 |
+
font-family: 'Interface';
|
743 |
+
font-style: normal;
|
744 |
+
font-weight: 500;
|
745 |
+
src: url("../fonts/interface/Interface-Medium.woff2") format("woff2"),
|
746 |
+
url("../fonts/interface/Interface-Medium.woff") format("woff");
|
747 |
+
}
|
748 |
+
@font-face {
|
749 |
+
font-family: 'Interface';
|
750 |
+
font-style: italic;
|
751 |
+
font-weight: 500;
|
752 |
+
src: url("../fonts/interface/Interface-MediumItalic.woff2") format("woff2"),
|
753 |
+
url("../fonts/interface/Interface-MediumItalic.woff") format("woff");
|
754 |
+
}
|
755 |
+
/* @font-face {
|
756 |
+
font-family: 'Interface';
|
757 |
+
font-style: normal;
|
758 |
+
font-weight: 700;
|
759 |
+
src: url("../fonts/interface/Interface-Bold.woff2") format("woff2"),
|
760 |
+
url("../fonts/interface/Interface-Bold.woff") format("woff");
|
761 |
+
}
|
762 |
+
@font-face {
|
763 |
+
font-family: 'Interface';
|
764 |
+
font-style: italic;
|
765 |
+
font-weight: 700;
|
766 |
+
src: url("../fonts/interface/Interface-BoldItalic.woff2") format("woff2"),
|
767 |
+
url("../fonts/interface/Interface-BoldItalic.woff") format("woff");
|
768 |
+
} */
|
769 |
+
|
770 |
+
.brand-color {
|
771 |
+
color:#de6826!important;
|
772 |
+
}
|
773 |
+
.metaslider-ui,
|
774 |
+
.metaslider-ui-top {
|
775 |
+
font-family: Interface, sans-serif;
|
776 |
+
}
|
777 |
+
.update-nag ~ .metaslider-ui-top {
|
778 |
+
float: right;
|
779 |
+
}
|
780 |
+
|
781 |
+
.metaslider-ui h1.metaslider-title {
|
782 |
+
font-size: 3.5em;
|
783 |
+
line-height: 1;
|
784 |
+
font-weight: 700;
|
785 |
+
color: #de6826;
|
786 |
+
padding: 0;
|
787 |
+
margin-bottom: 1rem;
|
788 |
+
text-shadow: 1px 1px 1px rgba(51, 51, 51, 0.12);
|
789 |
+
}
|
790 |
+
.metaslider-ui h1.metaslider-title img {
|
791 |
+
width: 50px;
|
792 |
+
position: relative;
|
793 |
+
bottom: -0.6rem;
|
794 |
+
}
|
795 |
+
|
796 |
+
/* Slider UI wrap */
|
797 |
+
.metaslider-ui {
|
798 |
+
max-width: 1200px;
|
799 |
+
margin: 0 auto;
|
800 |
+
}
|
801 |
+
.metaslider-ui .metaslider-inner {
|
802 |
+
border: 1px solid #ccc;
|
803 |
+
border-top: 0;
|
804 |
+
box-sizing: border-box;
|
805 |
+
padding: 0 1rem 0;
|
806 |
+
}
|
807 |
+
.metaslider-ui #post-body-content {
|
808 |
+
margin-bottom: 0;
|
809 |
+
}
|
810 |
+
|
811 |
+
/* Slide Title */
|
812 |
+
.metaslider-ui .slider-title {
|
813 |
+
padding: 10px 0 13px;
|
814 |
+
position: relative;
|
815 |
+
padding-right: 100px;
|
816 |
+
}
|
817 |
+
.metaslider-ui .slider-title h3 {
|
818 |
+
font-weight: normal;
|
819 |
+
margin: 0 0.5rem 0 0;
|
820 |
+
}
|
821 |
+
.metaslider-ui .slider-title .metaslider-shortcode {
|
822 |
+
border: 0;
|
823 |
+
box-shadow: none;
|
824 |
+
font-family: monospace;
|
825 |
+
margin: 0;
|
826 |
+
color: #de6826;
|
827 |
+
cursor: pointer;
|
828 |
+
}
|
829 |
+
.metaslider-ui .slider-title .add-slide {
|
830 |
+
padding-top: 1px !important;
|
831 |
+
position: absolute !important;
|
832 |
+
right: 0px;
|
833 |
+
top: 12px;
|
834 |
+
}
|
835 |
+
|
836 |
+
/* Slide Listing */
|
837 |
+
.metaslider-ui .metaslider-slides-container * {
|
838 |
+
box-sizing: border-box;
|
839 |
+
}
|
840 |
+
.metaslider-ui .metaslider-slides-container {
|
841 |
+
border-collapse: separate;
|
842 |
+
background: none;
|
843 |
+
border: 0;
|
844 |
+
margin-top: 12px;
|
845 |
+
box-shadow: none;
|
846 |
+
}
|
847 |
+
.metaslider-ui .metaslider-slides-container .slide {
|
848 |
+
background: white;
|
849 |
+
max-height: 215px;
|
850 |
+
overflow: hidden;
|
851 |
+
transition: all .3s ease-in-out;
|
852 |
+
-moz-transition: all .3s ease-in-out;
|
853 |
+
-webkit-transition: all .3s ease-in-out;
|
854 |
+
box-shadow: 0 1px 1px 0 rgba(0, 0, 0, 0.1);
|
855 |
+
position: relative;
|
856 |
+
display: block;
|
857 |
+
margin-bottom: 22px;
|
858 |
+
padding-top: 31px;
|
859 |
+
}
|
860 |
+
.metaslider-ui .metaslider-slides-container .slide > td {
|
861 |
+
padding: 0;
|
862 |
+
transition: all .25s ease-in-out;
|
863 |
+
-moz-transition: all .25s ease-in-out;
|
864 |
+
-webkit-transition: all .25s ease-in-out;
|
865 |
+
}
|
866 |
+
.metaslider-ui .metaslider-slides-container .slide .slide-details {
|
867 |
+
margin: 0;
|
868 |
+
font-size: 0.9em;
|
869 |
+
display: inline-block;
|
870 |
+
margin-top: 8px;
|
871 |
+
color: #666666;
|
872 |
+
font-weight: 400;
|
873 |
+
}
|
874 |
+
.metaslider-ui .metaslider-slides-container .slide .metaslider-ui-controls {
|
875 |
+
padding-left: 0.5rem;
|
876 |
+
height: 31px;
|
877 |
+
font-size: 1.2em;
|
878 |
+
cursor: move;
|
879 |
+
background-color: #f7f7f7;
|
880 |
+
border-bottom: 1px solid #eeeeee;
|
881 |
+
position: absolute;
|
882 |
+
top: 0;
|
883 |
+
left: 0;
|
884 |
+
width: 100%;
|
885 |
+
}
|
886 |
+
.metaslider-ui .metaslider-slides-container .metaslider-ui-inner {
|
887 |
+
margin: 1rem;
|
888 |
+
}
|
889 |
+
.metaslider-ui .metaslider-slides-container .slide .col-2 {
|
890 |
+
width: 100%;
|
891 |
+
}
|
892 |
+
.metaslider-ui .metaslider-slides-container .slide .thumb {
|
893 |
+
border: 1px solid #eee;
|
894 |
+
position: relative;
|
895 |
+
height: 150px;
|
896 |
+
width: 150px;
|
897 |
+
background-size: auto 150px;
|
898 |
+
background-position: center;
|
899 |
+
}
|
900 |
+
.metaslider-ui .metaslider-slides-container .update-image,
|
901 |
+
.metaslider-ui .metaslider-slides-container .delete-slide,
|
902 |
+
.metaslider-ui .metaslider-slides-container .undo-delete-slide {
|
903 |
+
color: #aaa;
|
904 |
+
outline: 0;
|
905 |
+
cursor: pointer;
|
906 |
+
background: none;
|
907 |
+
box-shadow: none;
|
908 |
+
border: 0;
|
909 |
+
width: 30px;
|
910 |
+
height: 30px;
|
911 |
+
}
|
912 |
+
.metaslider-ui .metaslider-slides-container .update-image {
|
913 |
+
padding: 0px 0 0 6px;
|
914 |
+
}
|
915 |
+
.metaslider-ui .metaslider-slides-container .update-image.image-button {
|
916 |
+
padding: 0;
|
917 |
+
margin: 0;
|
918 |
+
display: block;
|
919 |
+
width: auto;
|
920 |
+
height: auto;
|
921 |
+
}
|
922 |
+
.metaslider-ui .metaslider-slides-container .update-image.image-button:active,
|
923 |
+
.metaslider-ui .metaslider-slides-container .update-image.image-button:focus {
|
924 |
+
box-shadow: 0 0 3px 3px #acd7fd;
|
925 |
+
}
|
926 |
+
.metaslider-ui .metaslider-slides-container .update-image.image-button:focus .thumb {
|
927 |
+
background-color: #acd7fd;
|
928 |
+
}
|
929 |
+
.metaslider-ui .metaslider-slides-container .delete-slide {
|
930 |
+
padding: 3px 0 0 3px;
|
931 |
+
}
|
932 |
+
.metaslider-ui .metaslider-slides-container .update-image:hover {
|
933 |
+
color: white;
|
934 |
+
background: #1d8abf;
|
935 |
+
}
|
936 |
+
.metaslider-ui .metaslider-slides-container .delete-slide:hover {
|
937 |
+
color: white;
|
938 |
+
background: #e82323;
|
939 |
+
}
|
940 |
+
.metaslider-ui .metaslider-slides-container .update-image:active,
|
941 |
+
.metaslider-ui .metaslider-slides-container .update-image:focus {
|
942 |
+
color: #444;
|
943 |
+
background: #acd7fd;
|
944 |
+
}
|
945 |
+
.metaslider-ui .metaslider-slides-container .delete-slide:active,
|
946 |
+
.metaslider-ui .metaslider-slides-container .delete-slide:focus {
|
947 |
+
color: #444;
|
948 |
+
background: #acd7fd;
|
949 |
+
}
|
950 |
+
.metaslider-ui .metaslider-slides-container .update-image svg,
|
951 |
+
.metaslider-ui .metaslider-slides-container .delete-slide svg {
|
952 |
+
display: block;
|
953 |
+
}
|
954 |
+
|
955 |
+
/* Sorting */
|
956 |
+
.metaslider-ui .metaslider-slides-container .ui-sortable-helper {
|
957 |
+
transition: none;
|
958 |
+
-moz-transition: none;
|
959 |
+
-webkit-transition: none;
|
960 |
+
-webkit-transform: translate3d(0, 0, 0) rotate(2deg);
|
961 |
+
-ms-transform: translate3d(0, 0, 0) rotate(2deg);
|
962 |
+
transform: translate3d(0, 0, 0) rotate(2deg);
|
963 |
+
box-shadow: 0 3px 3px 0 rgba(0, 0, 0, 0.2) !important;
|
964 |
+
}
|
965 |
+
.metaslider-ui .metaslider-slides-container .ui-sortable-placeholder {
|
966 |
+
background: rgba(204, 204, 204, 0.33);
|
967 |
+
padding: 4rem;
|
968 |
+
visibility: visible !important;
|
969 |
+
border: 3px dashed #e0e0e0;
|
970 |
+
box-shadow: none;
|
971 |
+
}
|
972 |
+
|
973 |
+
/* Navigation */
|
974 |
+
.metaslider-ui .nav-tab * {
|
975 |
+
box-sizing: border-box;
|
976 |
+
}
|
977 |
+
.metaslider-ui .nav-tab {
|
978 |
+
font-weight: 400;
|
979 |
+
font-size: 13px;
|
980 |
+
color: #aaaaaa;
|
981 |
+
line-height: 13px;
|
982 |
+
padding: 0.5rem;
|
983 |
+
max-width: 100px;
|
984 |
+
text-overflow: ellipsis;
|
985 |
+
overflow: hidden;
|
986 |
+
outline: 0;
|
987 |
+
}
|
988 |
+
|
989 |
+
.metaslider-ui .nav-tab:active,
|
990 |
+
.metaslider-ui .nav-tab:focus {
|
991 |
+
background: #acd7fd;
|
992 |
+
box-shadow: none;
|
993 |
+
color: #444;
|
994 |
+
}
|
995 |
+
|
996 |
+
.metaslider-ui .nav-tab-active {
|
997 |
+
border: 1px solid #ccc;
|
998 |
+
border-bottom: 1px solid #f1f1f1;
|
999 |
+
background: #f1f1f1;
|
1000 |
+
position: relative;
|
1001 |
+
margin-bottom: -1px;
|
1002 |
+
padding: 0.15rem 0.4rem;
|
1003 |
+
max-width: none;
|
1004 |
+
}
|
1005 |
+
.metaslider-ui .nav-tab-active:hover {
|
1006 |
+
background: none;
|
1007 |
+
}
|
1008 |
+
|
1009 |
+
.metaslider-ui .nav-tab-active input {
|
1010 |
+
height: 100%;
|
1011 |
+
transition: width .25s ease-in-out;
|
1012 |
+
-moz-transition: width .25s ease-in-out;
|
1013 |
+
-webkit-transition: width .25s ease-in-out;
|
1014 |
+
display: block;
|
1015 |
+
padding: 0.25rem 0.5rem;
|
1016 |
+
margin: 0;
|
1017 |
+
border: 0;
|
1018 |
+
background: transparent;
|
1019 |
+
box-shadow: none;
|
1020 |
+
width: 150px;
|
1021 |
+
min-width: 150px;
|
1022 |
+
text-overflow: ellipsis;
|
1023 |
+
}
|
1024 |
+
|
1025 |
+
.metaslider-ui .nav-tab-active input:active,
|
1026 |
+
.metaslider-ui .nav-tab-active input:focus,
|
1027 |
+
.metaslider-ui .nav-tab-active input:hover {
|
1028 |
+
box-shadow: 0 1px 1px rgba(0,0,0,.04);
|
1029 |
+
background-color: #fff;
|
1030 |
+
}
|
1031 |
+
.metaslider-ui .nav-tab-active input:active,
|
1032 |
+
.metaslider-ui .nav-tab-active input:focus {
|
1033 |
+
box-shadow: 0 0 1px 2px #acd7fd;
|
1034 |
+
max-width: none;
|
1035 |
+
}
|
1036 |
+
.metaslider-ui .ml-add-new {
|
1037 |
+
background: none;
|
1038 |
+
font-weight: 400;
|
1039 |
+
font-size: 13px;
|
1040 |
+
color: #aaaaaa;
|
1041 |
+
text-decoration: none;
|
1042 |
+
border: 0;
|
1043 |
+
line-height: 18px;
|
1044 |
+
padding: 0;
|
1045 |
+
position: relative;
|
1046 |
+
bottom: -5px;
|
1047 |
+
max-width: none;
|
1048 |
+
}
|
1049 |
+
.metaslider-ui .ml-add-new:hover {
|
1050 |
+
background: none;
|
1051 |
+
color: #de6826;
|
1052 |
+
}
|
1053 |
+
.metaslider-ui .ml-add-new i {
|
1054 |
+
position: relative;
|
1055 |
+
bottom: -3px;
|
1056 |
+
}
|
1057 |
+
|
1058 |
+
/* Buttons */
|
1059 |
+
/* TODO: Consider to set up pre-processors to make this more modular */
|
1060 |
+
.metaslider-ui-top:after,
|
1061 |
+
.metaslider-ui:after {
|
1062 |
+
content: "";
|
1063 |
+
display: table;
|
1064 |
+
clear: both;
|
1065 |
+
}
|
1066 |
+
.metaslider-ui-top .ml-hanging-button {
|
1067 |
+
text-decoration: none;
|
1068 |
+
color: #888;
|
1069 |
+
line-height: 17px;
|
1070 |
+
float: right;
|
1071 |
+
background: white;
|
1072 |
+
padding: 0.5rem;
|
1073 |
+
margin-left: 0.5rem;
|
1074 |
+
border: 1px solid #e5e5e5;
|
1075 |
+
box-shadow: 0 1px 1px rgba(0,0,0,.04);
|
1076 |
+
}
|
1077 |
+
.metaslider-ui-top .ml-hanging-button.ml-has-icon {
|
1078 |
+
position: relative;
|
1079 |
+
padding-left: 1.5rem;
|
1080 |
+
}
|
1081 |
+
.metaslider-ui-top .ml-hanging-button:focus,
|
1082 |
+
.metaslider-ui-top .ml-hanging-button:hover {
|
1083 |
+
color: #444;
|
1084 |
+
background: #acd7fd;
|
1085 |
+
}
|
1086 |
+
.metaslider-ui .ml-button i,
|
1087 |
+
.metaslider-ui-top .ml-hanging-button i {
|
1088 |
+
position: absolute;
|
1089 |
+
left: 0.3rem;
|
1090 |
+
top: 0.5rem;
|
1091 |
+
}
|
1092 |
+
.metaslider-ui .ml-button {
|
1093 |
+
display: inline-block;
|
1094 |
+
text-decoration: none;
|
1095 |
+
line-height: 17px;
|
1096 |
+
cursor: pointer;
|
1097 |
+
background: #00b1d5;
|
1098 |
+
color: #ffffff;
|
1099 |
+
padding: 0.5rem;
|
1100 |
+
border: 1px solid #e5e5e5;
|
1101 |
+
box-shadow: 0 1px 1px rgba(0,0,0,.04);
|
1102 |
+
border-radius: 3px;
|
1103 |
+
white-space: nowrap;
|
1104 |
+
box-sizing: border-box;
|
1105 |
+
}
|
1106 |
+
.metaslider-ui .ml-button:hover,
|
1107 |
+
.metaslider-ui .ml-button:focus,
|
1108 |
+
.metaslider-ui .ml-button:active {
|
1109 |
+
background: #acd7fd;
|
1110 |
+
color: #444;
|
1111 |
+
}
|
1112 |
+
.metaslider-ui .ml-button.ml-skinless-button {
|
1113 |
+
padding-bottom: 0;
|
1114 |
+
padding-top: 0;
|
1115 |
+
background: none;
|
1116 |
+
border: 0;
|
1117 |
+
box-shadow: none;
|
1118 |
+
color: #888;
|
1119 |
+
}
|
1120 |
+
.metaslider-ui .ml-button.ml-skinless-button.ml-has-icon i {
|
1121 |
+
top: auto;
|
1122 |
+
}
|
1123 |
+
.metaslider-ui .ml-button.ml-skinless-button.ml-has-icon i svg {
|
1124 |
+
display: block;
|
1125 |
+
}
|
1126 |
+
.metaslider-ui .ml-button.ml-skinless-button:hover {
|
1127 |
+
color: #444;
|
1128 |
+
}
|
1129 |
+
.metaslider-ui .ml-button.ml-has-icon {
|
1130 |
+
position: relative;
|
1131 |
+
padding-left: 1.5rem;
|
1132 |
+
}
|
1133 |
+
.metaslider-ui .ml-button.add-slide:hover {
|
1134 |
+
color: #de6826;
|
1135 |
+
}
|
1136 |
+
.metaslider-ui .ml-button.add-slide:active,
|
1137 |
+
.metaslider-ui .ml-button.add-slide:focus {
|
1138 |
+
background: #acd7fd;
|
1139 |
+
outline: 0;
|
1140 |
+
box-shadow: none;
|
1141 |
+
color: #444;
|
1142 |
+
}
|
1143 |
+
.metaslider-ui .ml-delete-button {
|
1144 |
+
background: #e82323;
|
1145 |
+
color: rgba(255, 255, 255, 0.97);
|
1146 |
+
border-color: #e00000;
|
1147 |
+
margin-bottom: 1rem;
|
1148 |
+
}
|
1149 |
+
.metaslider-ui .ml-delete-button:focus,
|
1150 |
+
.metaslider-ui .ml-delete-button:active,
|
1151 |
+
.metaslider-ui .ml-delete-button:hover {
|
1152 |
+
background: #ff3333;
|
1153 |
+
color: white;
|
1154 |
+
}
|
1155 |
+
.metaslider-ui .ml-delete-button:focus,
|
1156 |
+
.metaslider-ui .ml-delete-button:active {
|
1157 |
+
box-shadow: 0 0 3px 4px #5aa9ef;
|
1158 |
+
}
|
1159 |
+
|
1160 |
+
/* Slider Settings Area */
|
1161 |
+
.metaslider-ui .metaslider-settings-area {
|
1162 |
+
margin-top: 11px;
|
1163 |
+
}
|
1164 |
+
.metaslider-ui .metaslider-settings-area .metaslider-actions {
|
1165 |
+
background-color: #f7f7f7;
|
1166 |
+
border-bottom: 1px solid #eeeeee;
|
1167 |
+
position: relative;
|
1168 |
+
}
|
1169 |
+
.metaslider-ui .metaslider-settings-area .metaslider-preview {
|
1170 |
+
margin: 0;
|
1171 |
+
height: 28px;
|
1172 |
+
}
|
1173 |
+
.metaslider-ui .metaslider-settings-area .metaslider-preview:hover {
|
1174 |
+
color: #de6826;
|
1175 |
+
}
|
1176 |
+
.metaslider-ui .metaslider-settings-area .metaslider-preview:focus {
|
1177 |
+
background-color: #acd7fd;
|
1178 |
+
color: #444;
|
1179 |
+
}
|
1180 |
+
.metaslider-ui .metaslider-settings-area .metaslider-preview i {
|
1181 |
+
top: 5px;
|
1182 |
+
left: 3px;
|
1183 |
+
}
|
1184 |
+
.metaslider-ui .metaslider-settings-area .metaslider-preview:active,
|
1185 |
+
.metaslider-ui .metaslider-settings-area .metaslider-preview:focus {
|
1186 |
+
box-shadow: none;
|
1187 |
+
outline: 0;
|
1188 |
+
}
|
1189 |
+
.metaslider .ms-postbox {
|
1190 |
+
position: relative;
|
1191 |
+
min-width: 255px;
|
1192 |
+
border: 1px solid #e5e5e5;
|
1193 |
+
box-shadow: 0 1px 1px rgba(0,0,0,.04);
|
1194 |
+
background: #ffffff;
|
1195 |
+
margin-bottom: 20px;
|
1196 |
+
padding: 0;
|
1197 |
+
line-height: 1;
|
1198 |
+
}
|
1199 |
+
|
1200 |
+
.metaslider-ui .settings .disabled {
|
1201 |
+
color:#bbb;
|
1202 |
+
font-style: italic;
|
1203 |
+
}
|
1204 |
+
|
1205 |
+
.metaslider-ui .settings .disabled input {
|
1206 |
+
border-color: #bbb;
|
1207 |
+
}
|
1208 |
+
|
1209 |
+
/* Grid and add-on page */
|
1210 |
+
.btn-cta-gradient {
|
1211 |
+
background-image: -webkit-linear-gradient(to left, #00b1d5, #bf2fcb), -webkit-linear-gradient(to left, #00b1d5, #bf2fcb)!important;
|
1212 |
+
background-image: linear-gradient(to left, #00b1d5, #bf2fcb), linear-gradient(to left, #00b1d5, #bf2fcb)!important;
|
1213 |
+
}
|
1214 |
+
|
1215 |
+
/* Spin an svg */
|
1216 |
+
.ms-spin {
|
1217 |
+
-webkit-animation: ms-spin 2s infinite linear;
|
1218 |
+
animation: ms-spin 2s infinite linear;
|
1219 |
+
}
|
1220 |
+
@-webkit-keyframes ms-spin {
|
1221 |
+
0% {
|
1222 |
+
-webkit-transform: rotate(0deg);
|
1223 |
+
transform: rotate(0deg);
|
1224 |
+
}
|
1225 |
+
100% {
|
1226 |
+
-webkit-transform: rotate(359deg);
|
1227 |
+
transform: rotate(359deg);
|
1228 |
+
}
|
1229 |
+
}
|
1230 |
+
@keyframes ms-spin {
|
1231 |
+
0% {
|
1232 |
+
-webkit-transform: rotate(0deg);
|
1233 |
+
transform: rotate(0deg);
|
1234 |
+
}
|
1235 |
+
100% {
|
1236 |
+
-webkit-transform: rotate(359deg);
|
1237 |
+
transform: rotate(359deg);
|
1238 |
+
}
|
1239 |
+
}
|
1240 |
+
|
1241 |
+
/* Deleting a slide */
|
1242 |
+
.ms-deleting > td {
|
1243 |
+
-webkit-filter: blur(2px);
|
1244 |
+
-moz-filter: blur(2px);
|
1245 |
+
-o-filter: blur(2px);
|
1246 |
+
-ms-filter: blur(2px);
|
1247 |
+
filter: blur(2px);
|
1248 |
+
}
|
1249 |
+
.ms-deleting button {
|
1250 |
+
background: none !important;
|
1251 |
+
color: #aaa!important;
|
1252 |
+
}
|
1253 |
+
.ms-deleted {
|
1254 |
+
max-height: 0 !important;
|
1255 |
+
margin-bottom: 0 !important;
|
1256 |
+
overflow: hidden;
|
1257 |
+
background-color: transparent!important;
|
1258 |
+
border: 0!important;
|
1259 |
+
box-shadow: none!important;
|
1260 |
+
padding: 0!important;
|
1261 |
+
}
|
1262 |
+
.slide.hide-status .ms-delete-status {
|
1263 |
+
display:none;
|
1264 |
+
}
|
1265 |
+
.slide:not(.hide-status) .ms-delete-status.is-error {
|
1266 |
+
font-size: 0.8em;
|
1267 |
+
line-height: 31px;
|
1268 |
+
color: #e82323;
|
1269 |
+
}
|
1270 |
+
.slide:not(.hide-status) .ms-delete-status.is-success {
|
1271 |
+
font-size: 0.8em;
|
1272 |
+
margin-left: 5px;
|
1273 |
+
float: right;
|
1274 |
+
padding: 0.5em;
|
1275 |
+
color: #46b450;
|
1276 |
+
}
|
1277 |
+
.ms-deleted .slide-details,
|
1278 |
+
.ms-deleted .metaslider-ui-controls button.delete-slide,
|
1279 |
+
.ms-deleted .metaslider-ui-controls button.update-image {
|
1280 |
+
display: none !important;
|
1281 |
+
}
|
1282 |
+
.ms-deleted .metaslider-ui-inner {
|
1283 |
+
max-height: 0 !important;
|
1284 |
+
overflow: hidden;
|
1285 |
+
transition: all .75s ease-in-out;
|
1286 |
+
-moz-transition: all .75s ease-in-out;
|
1287 |
+
-webkit-transition: all .75s ease-in-out;
|
1288 |
+
}
|
1289 |
+
.ms-deleted .metaslider-ui-controls {
|
1290 |
+
cursor: default !important;
|
1291 |
+
background-color: #f1f1f1 !important;
|
1292 |
+
border: 0 !important;
|
1293 |
+
box-shadow: none !important;
|
1294 |
+
}
|
1295 |
+
.ms-deleted .metaslider-ui-controls button.undo-delete-slide {
|
1296 |
+
display: inline-block;
|
1297 |
+
font-size: 0.7em;
|
1298 |
+
width: auto;
|
1299 |
+
text-transform: lowercase;
|
1300 |
+
}
|
1301 |
+
.ms-deleted .metaslider-ui-controls button.undo-delete-slide i {
|
1302 |
+
top: 1px;
|
1303 |
+
position: relative;
|
1304 |
+
margin-right: 0px;
|
1305 |
+
}
|
1306 |
+
.ms-deleted .metaslider-ui-controls button.undo-delete-slide:focus {
|
1307 |
+
text-decoration: underline;
|
1308 |
+
}
|
1309 |
+
.ms-deleted .metaslider-ui-controls button.undo-delete-slide:hover {
|
1310 |
+
color: #de6826;
|
1311 |
+
}
|
1312 |
+
.ms-deleted .metaslider-ui-controls .countdown {
|
1313 |
+
display: inline-block;
|
1314 |
+
margin-left: 5px;
|
1315 |
+
color: #ccc;
|
1316 |
+
text-shadow: 1px 1px 1px #fff;
|
1317 |
+
}
|
1318 |
+
.ms-delete-overlay {
|
1319 |
+
position: absolute;
|
1320 |
+
top: 0;
|
1321 |
+
left: 0;
|
1322 |
+
width: 100%;
|
1323 |
+
height: 100%;
|
1324 |
+
background: rgba(255, 255, 255, 0.5);
|
1325 |
+
color: #666;
|
1326 |
+
display: -webkit-box;
|
1327 |
+
display: -ms-flexbox;
|
1328 |
+
display: flex;
|
1329 |
+
-webkit-box-align: center;
|
1330 |
+
-ms-flex-align: center;
|
1331 |
+
align-items: center;
|
1332 |
+
-webkit-box-pack: center;
|
1333 |
+
-ms-flex-pack: center;
|
1334 |
+
justify-content: center;
|
1335 |
+
}
|
1336 |
+
|
1337 |
+
.metaslider-ui .restore-slide-link {
|
1338 |
+
text-decoration: none;
|
1339 |
+
display: block;
|
1340 |
+
float: right;
|
1341 |
+
}
|
1342 |
+
.metaslider-ui .restore-slide-link span {
|
1343 |
+
color: #555d66;
|
1344 |
+
}
|
1345 |
+
.metaslider-ui .restore-slide-link:hover,
|
1346 |
+
.metaslider-ui .restore-slide-link:hover span {
|
1347 |
+
color: #de6826;
|
1348 |
+
}
|
1349 |
+
.metaslider-ui .restore-slide-link svg {
|
1350 |
+
position: relative;
|
1351 |
+
top: 2px;
|
1352 |
+
left: -2px;
|
1353 |
+
}
|
1354 |
+
.metaslider-ui .trashed-header {
|
1355 |
+
padding: 0 0 0.5rem;
|
1356 |
+
}
|
1357 |
+
.metaslider-ui .trashed-header h3 {
|
1358 |
+
color: #de6826;
|
1359 |
+
font-weight: normal;
|
1360 |
+
display: inline-block;
|
1361 |
+
margin: 0;
|
1362 |
+
}
|
1363 |
+
.metaslider-ui .trashed-header small {
|
1364 |
+
color: #ccc;
|
1365 |
+
}
|
1366 |
+
.metaslider-ui .trashed-header a {
|
1367 |
+
color: #666;
|
1368 |
+
text-decoration: underline;
|
1369 |
+
}
|
1370 |
+
.metaslider-ui .trashed-header a:hover {
|
1371 |
+
color: #de6826;
|
1372 |
+
}
|
1373 |
+
.metaslider-ui .trash-btns {
|
1374 |
+
float: right;
|
1375 |
+
position: static;
|
1376 |
+
padding: 0;
|
1377 |
+
}
|
1378 |
+
.metaslider-ui .trash-btns a {
|
1379 |
+
padding: 0.37rem;
|
1380 |
+
display: block;
|
1381 |
+
}
|
1382 |
+
.metaslider-ui .trashed-notice {
|
1383 |
+
line-height: 1.4;
|
1384 |
+
margin-top: 31px;
|
1385 |
+
}
|
1386 |
+
.metaslider-ui .trashed-notice .notice-info {
|
1387 |
+
padding: 1rem;
|
1388 |
+
background: #fff;
|
1389 |
+
border-left: 4px solid #00a0d2;
|
1390 |
+
-webkit-box-shadow: 0 1px 1px 0 rgba(0, 0, 0, 0.1);
|
1391 |
+
box-shadow: 0 1px 1px 0 rgba(0, 0, 0, 0.1);
|
1392 |
+
}
|
1393 |
+
|
1394 |
+
/* Notification */
|
1395 |
+
#ms-notifications * {
|
1396 |
+
box-sizing: border-box;
|
1397 |
+
}
|
1398 |
+
#ms-notifications {
|
1399 |
+
position: fixed;
|
1400 |
+
overflow: hidden;
|
1401 |
+
right: 0.5rem;
|
1402 |
+
bottom: 0.5rem;
|
1403 |
+
}
|
1404 |
+
.ms-notification {
|
1405 |
+
cursor: pointer;
|
1406 |
+
min-width: 250px;
|
1407 |
+
min-height: 56px;
|
1408 |
+
background: #de6826;
|
1409 |
+
border-left: 5px solid rgb(199, 87, 39);
|
1410 |
+
margin: 0.5rem 0 0;
|
1411 |
+
padding: 0.5rem;
|
1412 |
+
overflow: hidden;
|
1413 |
+
box-shadow: 0 0 5px 0px rgb(199, 87, 39);
|
1414 |
+
}
|
1415 |
+
.ms-notification:hover {
|
1416 |
+
background: rgb(199, 87, 39);
|
1417 |
+
}
|
1418 |
+
.ms-notification.finished {
|
1419 |
+
position: relative;
|
1420 |
+
right: 0;
|
1421 |
+
-webkit-animation: slide-right 0.5s forwards;
|
1422 |
+
animation: slide-right 0.5s forwards;
|
1423 |
+
}
|
1424 |
+
@-webkit-keyframes slide-right {
|
1425 |
+
100% { right: -250px; }
|
1426 |
+
}
|
1427 |
+
@keyframes slide-right {
|
1428 |
+
100% { right: -250px; }
|
1429 |
+
}
|
1430 |
+
.ms-notification.has-image .ms-notification-content {
|
1431 |
+
width: 150px;
|
1432 |
+
float: left;
|
1433 |
+
}
|
1434 |
+
.ms-notification.has-image .img {
|
1435 |
+
width: 56px;
|
1436 |
+
height: 56px;
|
1437 |
+
overflow: hidden;
|
1438 |
+
float: right;
|
1439 |
+
border: 3px solid rgb(255, 127, 71);
|
1440 |
+
margin-left: 1rem;
|
1441 |
+
}
|
1442 |
+
.ms-notification .img img {
|
1443 |
+
width: auto;
|
1444 |
+
display: block;
|
1445 |
+
}
|
1446 |
+
.ms-notification h3 {
|
1447 |
+
margin: 0;
|
1448 |
+
color: rgba(0, 0, 0, 0.4);
|
1449 |
+
}
|
1450 |
+
.ms-notification p {
|
1451 |
+
margin: 0 0 0 0.1rem;
|
1452 |
+
color: rgb(240, 240, 240);
|
1453 |
+
}
|
1454 |
+
.ms-notification.is-success {
|
1455 |
+
background: #46b450;
|
1456 |
+
border-left: 5px solid #4e9a55;
|
1457 |
+
}
|
1458 |
+
.ms-notification.is-success.has-image .img {
|
1459 |
+
border: 3px solid rgb(124, 202, 131);
|
1460 |
+
}
|
1461 |
+
.ms-notification.is-success:hover {
|
1462 |
+
background: #4e9a55
|
1463 |
+
}
|
1464 |
+
.ms-notification.is-success h3 {
|
1465 |
+
color: #fff;
|
1466 |
+
}
|
1467 |
+
|
1468 |
+
/* Tour Specific Styles */
|
1469 |
+
.metaslider-ui .fake-tabs {
|
1470 |
+
padding: 0.7rem 1rem 0.2rem;
|
1471 |
+
}
|
1472 |
+
.metaslider-ui .fake-tabs span {
|
1473 |
+
max-width: 100px;
|
1474 |
+
text-overflow: ellipsis;
|
1475 |
+
overflow: hidden;
|
1476 |
+
display: inline-block;
|
1477 |
+
}
|
1478 |
+
.metaslider-ui .fake-tabs:hover {
|
1479 |
+
color: #aaa;
|
1480 |
+
}
|
1481 |
+
.blurred-out {
|
1482 |
+
cursor: default;
|
1483 |
+
-webkit-filter: blur(2px);
|
1484 |
+
-moz-filter: blur(2px);
|
1485 |
+
-o-filter: blur(2px);
|
1486 |
+
-ms-filter: blur(2px);
|
1487 |
+
filter: blur(2px);
|
1488 |
+
}
|
1489 |
+
|
1490 |
+
.shepherd-theme-arrows {
|
1491 |
+
z-index: 99;
|
1492 |
+
max-width: 300px!important;
|
1493 |
+
}
|
1494 |
+
.shepherd-theme-arrows.super-index {
|
1495 |
+
z-index: 999999;
|
1496 |
+
}
|
1497 |
+
.shepherd-element-attached-bottom.shepherd-element-attached-right.shepherd-target-attached-top.shepherd-target-attached-left .shepherd-content:before,
|
1498 |
+
.shepherd-element-attached-bottom.shepherd-element-attached-left.shepherd-target-attached-top.shepherd-target-attached-right .shepherd-content:before,
|
1499 |
+
.shepherd-element-attached-top.shepherd-element-attached-right.shepherd-target-attached-bottom.shepherd-target-attached-left .shepherd-content:before,
|
1500 |
+
.shepherd-element-attached-top.shepherd-element-attached-left.shepherd-target-attached-bottom.shepherd-target-attached-right .shepherd-content:before {
|
1501 |
+
display: none; }
|
1502 |
+
.shepherd-element.shepherd-theme-arrows.shepherd-element-attached-top.shepherd-element-attached-center.shepherd-has-title .shepherd-content:before,
|
1503 |
+
.shepherd-element.shepherd-theme-arrows.shepherd-element-attached-top.shepherd-element-attached-right.shepherd-target-attached-bottom.shepherd-has-title .shepherd-content:before,
|
1504 |
+
.shepherd-element.shepherd-theme-arrows.shepherd-element-attached-top.shepherd-element-attached-left.shepherd-target-attached-bottom.shepherd-has-title .shepherd-content:before {
|
1505 |
+
border-bottom-color: #dd6823;
|
1506 |
+
}
|
1507 |
+
.shepherd-element.shepherd-theme-arrows.shepherd-has-title .shepherd-content header {
|
1508 |
+
background-color: #dd6823
|
1509 |
+
}
|
1510 |
+
.shepherd-element.shepherd-theme-arrows .shepherd-content header h3 {
|
1511 |
+
color: #ffffff;
|
1512 |
+
}
|
1513 |
+
.shepherd-element.shepherd-theme-arrows.shepherd-element-attached-top.shepherd-element-attached-left.shepherd-target-attached-right .shepherd-content:before {
|
1514 |
+
top: 44px;
|
1515 |
+
}
|
1516 |
+
.shepherd-element.shepherd-theme-arrows .shepherd-content footer .shepherd-buttons li .shepherd-button {
|
1517 |
+
padding: .75em 1.3em;
|
1518 |
+
}
|
1519 |
+
|
1520 |
+
/* Styles for edge cases */
|
1521 |
+
|
1522 |
+
/* Removes styling for LastPass autofill */
|
1523 |
+
input.no_last_pass {
|
1524 |
+
background-image: none !important;
|
1525 |
+
background-attachment: none !important;
|
1526 |
+
}
|
1527 |
+
#__lpform_title {
|
1528 |
+
display: none;
|
1529 |
+
}
|
assets/metaslider/global.css → admin/assets/css/icon.css
RENAMED
@@ -9,7 +9,8 @@
|
|
9 |
font-style: normal;
|
10 |
}
|
11 |
|
12 |
-
#adminmenu .toplevel_page_metaslider div.wp-menu-image:before
|
|
|
13 |
content: "\e900" !important;
|
14 |
font-family: "metaslider" !important;
|
15 |
speak: none;
|
9 |
font-style: normal;
|
10 |
}
|
11 |
|
12 |
+
#adminmenu .toplevel_page_metaslider div.wp-menu-image:before,
|
13 |
+
#adminmenu .toplevel_page_metaslider-pro div.wp-menu-image:before {
|
14 |
content: "\e900" !important;
|
15 |
font-family: "metaslider" !important;
|
16 |
speak: none;
|
admin/assets/css/notices.css
ADDED
@@ -0,0 +1,97 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* CSS for adverts */
|
2 |
+
|
3 |
+
.updraft-ad-container {
|
4 |
+
position: relative;
|
5 |
+
padding-right: 150px!important;
|
6 |
+
}
|
7 |
+
|
8 |
+
.updraft-ad-container > h1 {
|
9 |
+
color: #e1642e;
|
10 |
+
font-weight: 700;
|
11 |
+
}
|
12 |
+
|
13 |
+
.updraft-ad-container > p {
|
14 |
+
font-size: 110%;
|
15 |
+
}
|
16 |
+
|
17 |
+
.updraft_notice_container {
|
18 |
+
display: -webkit-box;
|
19 |
+
display: -ms-flexbox;
|
20 |
+
display: flex;
|
21 |
+
-webkit-box-align: center;
|
22 |
+
-ms-flex-align: center;
|
23 |
+
align-items: center;
|
24 |
+
height: auto;
|
25 |
+
overflow: hidden;
|
26 |
+
}
|
27 |
+
|
28 |
+
.updraft_advert_content_left {
|
29 |
+
float:none;
|
30 |
+
width:65px;
|
31 |
+
}
|
32 |
+
|
33 |
+
.updraft_advert_content_right {
|
34 |
+
max-width: 800px;
|
35 |
+
float:none;
|
36 |
+
width:auto;
|
37 |
+
overflow: hidden;
|
38 |
+
}
|
39 |
+
|
40 |
+
.updraft_advert_bottom {
|
41 |
+
margin: 10px 0;
|
42 |
+
padding: 10px;
|
43 |
+
font-size: 140%;
|
44 |
+
background-color: white;
|
45 |
+
border-color: #E6DB55;
|
46 |
+
border: 1px solid;
|
47 |
+
border-radius: 4px;
|
48 |
+
}
|
49 |
+
|
50 |
+
.updraft-advert-dismiss {
|
51 |
+
position: absolute;
|
52 |
+
font-size: 13px;
|
53 |
+
top: 5px;
|
54 |
+
right: 10px;
|
55 |
+
}
|
56 |
+
|
57 |
+
h3.updraft_advert_heading {
|
58 |
+
margin-top: 5px !important;
|
59 |
+
margin-bottom: 5px !important;
|
60 |
+
}
|
61 |
+
|
62 |
+
h4.updraft_advert_heading {
|
63 |
+
margin-top: 2px !important;
|
64 |
+
margin-bottom: 3px !important;
|
65 |
+
}
|
66 |
+
|
67 |
+
.updraft_center_content {
|
68 |
+
text-align: center;
|
69 |
+
margin-bottom:5px;
|
70 |
+
}
|
71 |
+
|
72 |
+
.updraft_notice_link {
|
73 |
+
padding-left:5px;
|
74 |
+
}
|
75 |
+
|
76 |
+
.updraft_text_center {
|
77 |
+
text-align: center;
|
78 |
+
}
|
79 |
+
|
80 |
+
.updraft_ad_meta {
|
81 |
+
color: #c5c5c5;
|
82 |
+
margin: 0;
|
83 |
+
font-size: 0.9em;
|
84 |
+
position: absolute;
|
85 |
+
bottom: 0;
|
86 |
+
right: 10px;
|
87 |
+
}
|
88 |
+
|
89 |
+
.mega_list strong {
|
90 |
+
font-weight: 700;
|
91 |
+
}
|
92 |
+
|
93 |
+
@media screen and (min-width: 560px) {
|
94 |
+
.updraft_advert_content_left {
|
95 |
+
float: left;
|
96 |
+
}
|
97 |
+
}
|
admin/assets/css/upgrade.css
ADDED
@@ -0,0 +1,172 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
@font-face {
|
2 |
+
font-family: 'Interface';
|
3 |
+
font-style: normal;
|
4 |
+
font-weight: 400;
|
5 |
+
src: url("../fonts/interface/Interface-Regular.woff2") format("woff2"),
|
6 |
+
url("../fonts/interface/Interface-Regular.woff") format("woff");
|
7 |
+
}
|
8 |
+
|
9 |
+
@font-face {
|
10 |
+
font-family: 'Interface';
|
11 |
+
font-style: italic;
|
12 |
+
font-weight: 400;
|
13 |
+
src: url("../fonts/interface/Interface-RegularItalic.woff2") format("woff2"),
|
14 |
+
url("../fonts/interface/Interface-RegularItalic.woff") format("woff");
|
15 |
+
}
|
16 |
+
|
17 |
+
@font-face {
|
18 |
+
font-family: 'Interface';
|
19 |
+
font-style: normal;
|
20 |
+
font-weight: 500;
|
21 |
+
src: url("../fonts/interface/Interface-Medium.woff2") format("woff2"),
|
22 |
+
url("../fonts/interface/Interface-Medium.woff") format("woff");
|
23 |
+
}
|
24 |
+
|
25 |
+
@font-face {
|
26 |
+
font-family: 'Interface';
|
27 |
+
font-style: italic;
|
28 |
+
font-weight: 500;
|
29 |
+
src: url("../fonts/interface/Interface-MediumItalic.woff2") format("woff2"),
|
30 |
+
url("../fonts/interface/Interface-MediumItalic.woff") format("woff");
|
31 |
+
}
|
32 |
+
|
33 |
+
.ms-addon-headers {
|
34 |
+
margin: 1em 0 0.5em;
|
35 |
+
}
|
36 |
+
|
37 |
+
.metaslider_feat_table th {
|
38 |
+
font-size: 1.1em;
|
39 |
+
}
|
40 |
+
|
41 |
+
.metaslider_feat_table th span {
|
42 |
+
text-transform: uppercase;
|
43 |
+
}
|
44 |
+
|
45 |
+
.metaslider_feat_table th img {
|
46 |
+
width: 50px;
|
47 |
+
height: 50px;
|
48 |
+
display: block;
|
49 |
+
margin: 0 auto -5px;
|
50 |
+
}
|
51 |
+
|
52 |
+
/* COLUMN SETUP */
|
53 |
+
.metaslider_col {
|
54 |
+
display: block;
|
55 |
+
float: left;
|
56 |
+
margin: 1% 0 1% 1%;
|
57 |
+
font-family: Interface, sans-serif;
|
58 |
+
}
|
59 |
+
|
60 |
+
.metaslider_col:first-child {
|
61 |
+
margin-left: 0;
|
62 |
+
}
|
63 |
+
|
64 |
+
.metaslider_col .postbox {
|
65 |
+
max-width: 600px;
|
66 |
+
}
|
67 |
+
|
68 |
+
.metaslider_half_width {
|
69 |
+
width: 48%;
|
70 |
+
max-width: 820px;
|
71 |
+
}
|
72 |
+
|
73 |
+
.other-plugin-title {
|
74 |
+
text-decoration: none;
|
75 |
+
}
|
76 |
+
|
77 |
+
/* Added for the Image on Addons tab*/
|
78 |
+
img.addons {
|
79 |
+
display: block;
|
80 |
+
margin-left: auto;
|
81 |
+
margin-right: auto;
|
82 |
+
height: 44px;
|
83 |
+
}
|
84 |
+
|
85 |
+
.metaslider_feature_cont {
|
86 |
+
width: 54.5%;
|
87 |
+
}
|
88 |
+
|
89 |
+
.metaslider_plugin_family_cont {
|
90 |
+
width: 44.5%;
|
91 |
+
}
|
92 |
+
|
93 |
+
.metaslider_feat_table, .metaslider_feat_th, .metaslider_feat_table td {
|
94 |
+
border: 1px solid #e0e0e0;
|
95 |
+
border-collapse: collapse;
|
96 |
+
background-color: white;
|
97 |
+
}
|
98 |
+
|
99 |
+
.metaslider_installed_status,
|
100 |
+
.metaslider_feat_table p {
|
101 |
+
color: #666666;
|
102 |
+
padding: 0 10px;
|
103 |
+
margin: 7px 0 5px;
|
104 |
+
font-size: 16px;
|
105 |
+
line-height: 1.1;
|
106 |
+
}
|
107 |
+
|
108 |
+
.metaslider_installed_status {
|
109 |
+
padding: 10px;
|
110 |
+
text-align: center;
|
111 |
+
}
|
112 |
+
|
113 |
+
.metaslider_feat_table h4 {
|
114 |
+
font-size: 1.7em;
|
115 |
+
line-height: 1;
|
116 |
+
margin: 5px 0;
|
117 |
+
}
|
118 |
+
|
119 |
+
.metaslider_feat_table .dashicons {
|
120 |
+
display: block;
|
121 |
+
margin: auto;
|
122 |
+
width: 25px;
|
123 |
+
height: 25px;
|
124 |
+
font-size: 25px;
|
125 |
+
line-height: 1;
|
126 |
+
}
|
127 |
+
|
128 |
+
.metaslider_feat_table .dashicons-yes, .metaslider_feat_table .updraft-yes {
|
129 |
+
color: green;
|
130 |
+
}
|
131 |
+
|
132 |
+
.metaslider_feat_table .dashicons-no-alt, .metaslider_feat_table .updraft-no {
|
133 |
+
color: red;
|
134 |
+
}
|
135 |
+
|
136 |
+
.metaslider-premium-image {
|
137 |
+
display: none;
|
138 |
+
-webkit-box-align: center;
|
139 |
+
-ms-flex-align: center;
|
140 |
+
align-items: center;
|
141 |
+
-webkit-box-pack: center;
|
142 |
+
-ms-flex-pack: center;
|
143 |
+
justify-content: center;
|
144 |
+
color: #de6826;
|
145 |
+
float: left;
|
146 |
+
padding: 14px 8px;
|
147 |
+
margin: 5px;
|
148 |
+
}
|
149 |
+
|
150 |
+
|
151 |
+
@media screen and (max-width: 768px) {
|
152 |
+
#wpcontent {
|
153 |
+
padding: 0 10px;
|
154 |
+
}
|
155 |
+
.metaslider_col {
|
156 |
+
margin: 1% 0 !important;
|
157 |
+
}
|
158 |
+
.metaslider_half_width {
|
159 |
+
width: 100% !important;
|
160 |
+
}
|
161 |
+
.metaslider_feat_table h4 {
|
162 |
+
margin-left: 10px;
|
163 |
+
}
|
164 |
+
}
|
165 |
+
|
166 |
+
@media screen and (min-width: 720px) {
|
167 |
+
.metaslider-premium-image {
|
168 |
+
display: -webkit-box;
|
169 |
+
display: -ms-flexbox;
|
170 |
+
display: flex;
|
171 |
+
}
|
172 |
+
}
|
admin/assets/fonts/interface/Interface-Bold.woff
ADDED
Binary file
|
admin/assets/fonts/interface/Interface-Bold.woff2
ADDED
Binary file
|
admin/assets/fonts/interface/Interface-BoldItalic.woff
ADDED
Binary file
|
admin/assets/fonts/interface/Interface-BoldItalic.woff2
ADDED
Binary file
|
admin/assets/fonts/interface/Interface-Medium.woff
ADDED
Binary file
|
admin/assets/fonts/interface/Interface-Medium.woff2
ADDED
Binary file
|
admin/assets/fonts/interface/Interface-MediumItalic.woff
ADDED
Binary file
|
admin/assets/fonts/interface/Interface-MediumItalic.woff2
ADDED
Binary file
|
admin/assets/fonts/interface/Interface-Regular.woff
ADDED
Binary file
|
admin/assets/fonts/interface/Interface-Regular.woff2
ADDED
Binary file
|
admin/assets/fonts/interface/Interface-RegularItalic.woff
ADDED
Binary file
|
admin/assets/fonts/interface/Interface-RegularItalic.woff2
ADDED
Binary file
|
{assets → admin/assets}/fonts/metaslider.eot
RENAMED
File without changes
|
{assets → admin/assets}/fonts/metaslider.svg
RENAMED
File without changes
|
{assets → admin/assets}/fonts/metaslider.ttf
RENAMED
File without changes
|
{assets → admin/assets}/fonts/metaslider.woff
RENAMED
File without changes
|
admin/assets/js/admin.js
ADDED
@@ -0,0 +1,728 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
jQuery(function($) {
|
2 |
+
|
3 |
+
/*
|
4 |
+
* UI for adding a slide. Managed through the WP media upload UI
|
5 |
+
* Event managed here.
|
6 |
+
*/
|
7 |
+
var create_slides = wp.media.frames.file_frame = wp.media({
|
8 |
+
multiple: 'add',
|
9 |
+
frame: 'post',
|
10 |
+
library: {type: 'image'}
|
11 |
+
});
|
12 |
+
create_slides.on('insert', function() {
|
13 |
+
MetaSlider_Helpers.loading(true)
|
14 |
+
|
15 |
+
var slide_ids = [];
|
16 |
+
create_slides.state().get('selection').map(function(media) {
|
17 |
+
slide_ids.push(media.toJSON().id);
|
18 |
+
});
|
19 |
+
|
20 |
+
var data = {
|
21 |
+
action: 'create_image_slide',
|
22 |
+
slider_id: window.parent.metaslider_slider_id,
|
23 |
+
selection: slide_ids,
|
24 |
+
_wpnonce: metaslider.create_slide_nonce
|
25 |
+
};
|
26 |
+
|
27 |
+
// TODO: Create micro feedback to the user.
|
28 |
+
// TODO: Adding lots of slides locks up the page due to 'resizeSlides' event
|
29 |
+
$.ajax({
|
30 |
+
url: metaslider.ajaxurl,
|
31 |
+
data: data,
|
32 |
+
method: 'POST',
|
33 |
+
beforeSend: function() { MetaSlider_Helpers.loading(true); },
|
34 |
+
complete: function() {MetaSlider_Helpers.loading(false); },
|
35 |
+
error: function(response) {
|
36 |
+
alert(response.responseJSON.data.message);
|
37 |
+
},
|
38 |
+
success: function(response) {
|
39 |
+
|
40 |
+
/*
|
41 |
+
* Echo Slide on success
|
42 |
+
* TODO: instead have it return data and use JS to render it
|
43 |
+
*/
|
44 |
+
$(".metaslider .left table").append(response);
|
45 |
+
MetaSlider_Helpers.loading(false)
|
46 |
+
$(".metaslider .left table").trigger('resizeSlides');
|
47 |
+
}
|
48 |
+
});
|
49 |
+
});
|
50 |
+
|
51 |
+
/*
|
52 |
+
* UI for changing slide image. Managed through the WP media upload UI
|
53 |
+
* Initialized dynamically due to multiple slides.
|
54 |
+
*/
|
55 |
+
var update_slide_frame;
|
56 |
+
|
57 |
+
/*
|
58 |
+
* Opens the UI for the slide selection.
|
59 |
+
*/
|
60 |
+
$('.metaslider').on('click', '.add-slide', function(event){
|
61 |
+
event.preventDefault();
|
62 |
+
create_slides.open();
|
63 |
+
|
64 |
+
// Remove the Media Library tab (media_upload_tabs filter is broken in 3.6)
|
65 |
+
// TODO investigate if this is needed
|
66 |
+
$(".media-menu a:contains('Media Library')").remove();
|
67 |
+
});
|
68 |
+
|
69 |
+
/**
|
70 |
+
* Handles changing an image when edited by the user.
|
71 |
+
*/
|
72 |
+
$('.metaslider').on('click', '.update-image', function(event) {
|
73 |
+
event.preventDefault();
|
74 |
+
var $this = $(this);
|
75 |
+
|
76 |
+
/*
|
77 |
+
* Opens up a media window showing images
|
78 |
+
*/
|
79 |
+
update_slide_frame = wp.media.frames.file_frame = wp.media({
|
80 |
+
title: MetaSlider_Helpers.capitalize(metaslider.update_image),
|
81 |
+
library: {type: 'image'},
|
82 |
+
button: {
|
83 |
+
text: MetaSlider_Helpers.capitalize($this.attr('data-button-text'))
|
84 |
+
}
|
85 |
+
}).open();
|
86 |
+
|
87 |
+
/*
|
88 |
+
* Handles changing an image in DB and UI
|
89 |
+
*/
|
90 |
+
update_slide_frame.on('select', function() {
|
91 |
+
var selection = update_slide_frame.state().get('selection');
|
92 |
+
selection.map(function(attachment) {
|
93 |
+
attachment = attachment.toJSON();
|
94 |
+
new_image_id = attachment.id;
|
95 |
+
});
|
96 |
+
|
97 |
+
/**
|
98 |
+
* Updates the meta information on the slide
|
99 |
+
*/
|
100 |
+
var data = {
|
101 |
+
action: 'update_slide_image',
|
102 |
+
_wpnonce: metaslider.update_slide_image_nonce,
|
103 |
+
slide_id: $this.data('slideId'),
|
104 |
+
slider_id: window.parent.metaslider_slider_id,
|
105 |
+
image_id: new_image_id
|
106 |
+
};
|
107 |
+
|
108 |
+
$.ajax({
|
109 |
+
url: metaslider.ajaxurl,
|
110 |
+
data: data,
|
111 |
+
method: 'POST',
|
112 |
+
beforeSend: function() { MetaSlider_Helpers.loading(true); },
|
113 |
+
complete: function() {MetaSlider_Helpers.loading(false); },
|
114 |
+
error: function(response) {
|
115 |
+
alert(response.responseJSON.data.message);
|
116 |
+
},
|
117 |
+
success: function(response) {
|
118 |
+
|
119 |
+
/*
|
120 |
+
* Updates the image on success
|
121 |
+
*/
|
122 |
+
$('#slide-' + $this.data('slideId') + ' .thumb')
|
123 |
+
.css('background-image', 'url(' + response.data.img_url + ')');
|
124 |
+
$(".metaslider .left table").trigger('resizeSlides');
|
125 |
+
}
|
126 |
+
});
|
127 |
+
});
|
128 |
+
});
|
129 |
+
|
130 |
+
|
131 |
+
/**
|
132 |
+
* delete a slide using ajax (avoid losing changes)
|
133 |
+
*/
|
134 |
+
$(".metaslider").on('click', '.delete-slide', function(event) {
|
135 |
+
event.preventDefault();
|
136 |
+
var $this = $(this);
|
137 |
+
var data = {
|
138 |
+
action: 'delete_slide',
|
139 |
+
_wpnonce: metaslider.delete_slide_nonce,
|
140 |
+
slide_id: $this.data('slideId'),
|
141 |
+
slider_id: window.parent.metaslider_slider_id
|
142 |
+
};
|
143 |
+
|
144 |
+
// Set the slider state to deleting
|
145 |
+
$this.parents('#slide-' + $this.data('slideId'))
|
146 |
+
.removeClass('ms-restored')
|
147 |
+
.addClass('ms-deleting')
|
148 |
+
.append('<div class="ms-delete-overlay"><i style="height:24px;width:24px"><svg class="ms-spin" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-loader"><line x1="12" y1="2" x2="12" y2="6"/><line x1="12" y1="18" x2="12" y2="22"/><line x1="4.93" y1="4.93" x2="7.76" y2="7.76"/><line x1="16.24" y1="16.24" x2="19.07" y2="19.07"/><line x1="2" y1="12" x2="6" y2="12"/><line x1="18" y1="12" x2="22" y2="12"/><line x1="4.93" y1="19.07" x2="7.76" y2="16.24"/><line x1="16.24" y1="7.76" x2="19.07" y2="4.93"/></svg></i></div>');
|
149 |
+
$this.parents('#slide-' + $this.data('slideId'))
|
150 |
+
.find('.ms-delete-status')
|
151 |
+
.remove();
|
152 |
+
|
153 |
+
$.ajax({
|
154 |
+
url: metaslider.ajaxurl,
|
155 |
+
data: data,
|
156 |
+
method: 'POST',
|
157 |
+
error: function(response) {
|
158 |
+
|
159 |
+
// Delete failed. Remove delete state UI
|
160 |
+
alert(response.responseJSON.data.message);
|
161 |
+
$slide = $this.parents('#slide-' + $this.data('slideId'));
|
162 |
+
$slide.removeClass('ms-deleting');
|
163 |
+
$slide.find('.ms-delete-overlay').remove();
|
164 |
+
},
|
165 |
+
success: function(response) {
|
166 |
+
var count = 10;
|
167 |
+
|
168 |
+
// Remove deleting state and add a deleted state with restore option
|
169 |
+
setTimeout(function() {
|
170 |
+
$slide = $this.parents('#slide-' + $this.data('slideId'));
|
171 |
+
$slide.addClass('ms-deleted')
|
172 |
+
.removeClass('ms-deleting')
|
173 |
+
.find('.metaslider-ui-controls').append(
|
174 |
+
'<button class="undo-delete-slide" title="' + metaslider.restore_language + '" data-slide-id="' + $this.data('slideId') + '">' + metaslider.restore_language + '</button>'
|
175 |
+
);
|
176 |
+
|
177 |
+
// Grab the image from the slide
|
178 |
+
var img = $slide.find('.thumb').css('background-image')
|
179 |
+
.replace(/^url\(["']?/, '')
|
180 |
+
.replace(/["']?\)$/, '');
|
181 |
+
|
182 |
+
// If the image is the same as the URL then it's empty (external slide type)
|
183 |
+
img = (window.location.href === img) ? '' : img;
|
184 |
+
|
185 |
+
// Send a notice to the user
|
186 |
+
var notice = new MS_Notification(metaslider.deleted_language, metaslider.click_to_undo_language, img);
|
187 |
+
|
188 |
+
// Fire the notice and set callback to undo
|
189 |
+
notice.fire(10000, function() {
|
190 |
+
jQuery('#slide-' + $this.data('slideId'))
|
191 |
+
.addClass('hide-status')
|
192 |
+
.find('.undo-delete-slide').trigger('click');
|
193 |
+
});
|
194 |
+
|
195 |
+
// If the trash link isn't there, add it in (without counter)
|
196 |
+
if ('none' == $('.restore-slide-link').css('display')) {
|
197 |
+
$('.restore-slide-link').css('display', 'inline');
|
198 |
+
}
|
199 |
+
}, 1000);
|
200 |
+
}
|
201 |
+
});
|
202 |
+
});
|
203 |
+
|
204 |
+
/**
|
205 |
+
* delete a slide using ajax (avoid losing changes)
|
206 |
+
*/
|
207 |
+
$(".metaslider").on('click', '.undo-delete-slide, .trash-view-restore', function(event) {
|
208 |
+
event.preventDefault();
|
209 |
+
var $this = $(this);
|
210 |
+
var data = {
|
211 |
+
action: 'undelete_slide',
|
212 |
+
_wpnonce: metaslider.undelete_slide_nonce,
|
213 |
+
slide_id: $this.data('slideId'),
|
214 |
+
slider_id: window.parent.metaslider_slider_id
|
215 |
+
};
|
216 |
+
|
217 |
+
// Remove undo button
|
218 |
+
$('#slide-' + $this.data('slideId')).find('.undo-delete-slide').html('');
|
219 |
+
|
220 |
+
// Set the slider state to deleting
|
221 |
+
$this.parents('#slide-' + $this.data('slideId'))
|
222 |
+
.removeClass('ms-deleted')
|
223 |
+
.addClass('ms-deleting')
|
224 |
+
.css('padding-top', '31px')
|
225 |
+
.append('<div class="ms-delete-overlay"><i style="height:24px;width:24px"><svg class="ms-spin" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-loader"><line x1="12" y1="2" x2="12" y2="6"/><line x1="12" y1="18" x2="12" y2="22"/><line x1="4.93" y1="4.93" x2="7.76" y2="7.76"/><line x1="16.24" y1="16.24" x2="19.07" y2="19.07"/><line x1="2" y1="12" x2="6" y2="12"/><line x1="18" y1="12" x2="22" y2="12"/><line x1="4.93" y1="19.07" x2="7.76" y2="16.24"/><line x1="16.24" y1="7.76" x2="19.07" y2="4.93"/></svg></i></div>');
|
226 |
+
$this.parents('#slide-' + $this.data('slideId'))
|
227 |
+
.find('.ms-delete-status')
|
228 |
+
.remove();
|
229 |
+
$this.parents('#slide-' + $this.data('slideId'))
|
230 |
+
.find('.delete-slide')
|
231 |
+
.focus();
|
232 |
+
|
233 |
+
$.ajax({
|
234 |
+
url: metaslider.ajaxurl,
|
235 |
+
data: data,
|
236 |
+
method: 'POST',
|
237 |
+
error: function(response) {
|
238 |
+
|
239 |
+
// Undelete failed. Remove delete state UI
|
240 |
+
$slide = $this.parents('#slide-' + $this.data('slideId'));
|
241 |
+
$slide.removeClass('ms-restoring').addClass('ms-deleted');
|
242 |
+
$slide.find('.ms-delete-overlay').remove();
|
243 |
+
|
244 |
+
// If there was a WP error, this should be populated:
|
245 |
+
if (response.responseJSON) {
|
246 |
+
alert(response.responseJSON.data.message);
|
247 |
+
} else {
|
248 |
+
alert('There was an error with the server and the action could not be completed.');
|
249 |
+
}
|
250 |
+
},
|
251 |
+
success: function(response) {
|
252 |
+
|
253 |
+
// Restore to original state
|
254 |
+
$slide = $this.parents('#slide-' + $this.data('slideId'));
|
255 |
+
$slide.addClass('ms-restored')
|
256 |
+
$slide.removeClass('ms-deleting')
|
257 |
+
.find('.undo-delete-slide, .trash-view-restore').remove();
|
258 |
+
$slide.find('.ms-delete-overlay').remove();
|
259 |
+
$('#slide-' + $this.data('slideId') + ' h4').after('<span class="ms-delete-status is-success">' + metaslider.restored_language + '</span>');
|
260 |
+
|
261 |
+
// We can try to remove the buton actions too (trashed view)
|
262 |
+
$('#slide-' + $this.data('slideId')).find('.row-actions.trash-btns').html('');
|
263 |
+
|
264 |
+
// Grab the image from the slide
|
265 |
+
var img = $slide.find('.thumb').css('background-image')
|
266 |
+
.replace(/^url\(["']?/, '')
|
267 |
+
.replace(/["']?\)$/, '');
|
268 |
+
|
269 |
+
// If the image is the same as the URL then it's empty (external slide type)
|
270 |
+
img = (window.location.href === img) ? '' : img;
|
271 |
+
|
272 |
+
// Send a success notification
|
273 |
+
var notice = new MS_Notification(metaslider.restored_language, '', img, 'is-success');
|
274 |
+
|
275 |
+
// Fire the notice
|
276 |
+
notice.fire(5000);
|
277 |
+
}
|
278 |
+
});
|
279 |
+
});
|
280 |
+
|
281 |
+
// Enable the correct options for this slider type
|
282 |
+
var switchType = function(slider) {
|
283 |
+
$('.metaslider .option:not(.' + slider + ')').attr('disabled', 'disabled').parents('tr').hide();
|
284 |
+
$('.metaslider .option.' + slider).removeAttr('disabled').parents('tr').show();
|
285 |
+
$('.metaslider input.radio:not(.' + slider + ')').attr('disabled', 'disabled');
|
286 |
+
$('.metaslider input.radio.' + slider).removeAttr('disabled');
|
287 |
+
|
288 |
+
$('.metaslider .showNextWhenChecked:visible').parent().parent().next('tr').hide();
|
289 |
+
$('.metaslider .showNextWhenChecked:visible:checked').parent().parent().next('tr').show();
|
290 |
+
|
291 |
+
// make sure that the selected option is available for this slider type
|
292 |
+
if ($('.effect option:selected').attr('disabled') === 'disabled') {
|
293 |
+
$('.effect option:enabled:first').attr('selected', 'selected');
|
294 |
+
}
|
295 |
+
|
296 |
+
// make sure that the selected option is available for this slider type
|
297 |
+
if ($('.theme option:selected').attr('disabled') === 'disabled') {
|
298 |
+
$('.theme option:enabled:first').attr('selected', 'selected');
|
299 |
+
}
|
300 |
+
};
|
301 |
+
|
302 |
+
// enable the correct options on page load
|
303 |
+
switchType($(".metaslider .select-slider:checked").attr("rel"));
|
304 |
+
|
305 |
+
var toggleNextRow = function(checkbox) {
|
306 |
+
if(checkbox.is(':checked')){
|
307 |
+
checkbox.parent().parent().next("tr").show();
|
308 |
+
} else {
|
309 |
+
checkbox.parent().parent().next("tr").hide();
|
310 |
+
}
|
311 |
+
}
|
312 |
+
|
313 |
+
toggleNextRow($(".metaslider .showNextWhenChecked"));
|
314 |
+
|
315 |
+
$(".metaslider .showNextWhenChecked").on("change", function() {
|
316 |
+
toggleNextRow($(this));
|
317 |
+
});
|
318 |
+
|
319 |
+
// mark the slide for resizing when the crop position has changed
|
320 |
+
$(".metaslider").on('change', '.left tr.slide .crop_position', function() {
|
321 |
+
$(this).closest('tr').data('crop_changed', true);
|
322 |
+
});
|
323 |
+
|
324 |
+
// handle slide libary switching
|
325 |
+
$(".metaslider .select-slider").on("click", function() {
|
326 |
+
switchType($(this).attr("rel"));
|
327 |
+
});
|
328 |
+
|
329 |
+
// return a helper with preserved width of cells
|
330 |
+
var metaslider_sortable_helper = function(e, ui) {
|
331 |
+
ui.children().each(function() {
|
332 |
+
$(this).width($(this).width());
|
333 |
+
});
|
334 |
+
return ui;
|
335 |
+
};
|
336 |
+
|
337 |
+
// drag and drop slides, update the slide order on drop
|
338 |
+
$(".metaslider .left table tbody").sortable({
|
339 |
+
helper: metaslider_sortable_helper,
|
340 |
+
handle: "td.col-1",
|
341 |
+
stop: function() {
|
342 |
+
$(".metaslider .left table").trigger("updateSlideOrder");
|
343 |
+
$("#ms-save").click();
|
344 |
+
}
|
345 |
+
});
|
346 |
+
|
347 |
+
// bind an event to the slides table to update the menu order of each slide
|
348 |
+
$(".metaslider .left table").live("updateSlideOrder", function(event) {
|
349 |
+
$("tr", this).each(function() {
|
350 |
+
$("input.menu_order", $(this)).val($(this).index());
|
351 |
+
});
|
352 |
+
});
|
353 |
+
|
354 |
+
// bind an event to the slides table to update the menu order of each slide
|
355 |
+
$(".metaslider .left table").live("resizeSlides", function(event) {
|
356 |
+
var slideshow_width = $("input.width").val();
|
357 |
+
var slideshow_height = $("input.height").val();
|
358 |
+
|
359 |
+
$("tr.slide input[name='resize_slide_id']", this).each(function() {
|
360 |
+
$this = $(this);
|
361 |
+
|
362 |
+
var thumb_width = $this.attr("data-width");
|
363 |
+
var thumb_height = $this.attr("data-height");
|
364 |
+
var slide_row = $(this).closest('tr');
|
365 |
+
var crop_changed = slide_row.data('crop_changed');
|
366 |
+
|
367 |
+
if (thumb_width != slideshow_width || thumb_height != slideshow_height || crop_changed === true ) {
|
368 |
+
$this.attr("data-width", slideshow_width);
|
369 |
+
$this.attr("data-height", slideshow_height);
|
370 |
+
|
371 |
+
var data = {
|
372 |
+
action: "resize_image_slide",
|
373 |
+
slider_id: window.parent.metaslider_slider_id,
|
374 |
+
slide_id: $this.attr("data-slide_id"),
|
375 |
+
_wpnonce: metaslider.resize_nonce
|
376 |
+
};
|
377 |
+
|
378 |
+
$.ajax({
|
379 |
+
type: "POST",
|
380 |
+
data : data,
|
381 |
+
async: false,
|
382 |
+
cache: false,
|
383 |
+
url: metaslider.ajaxurl,
|
384 |
+
success: function(data) {
|
385 |
+
if (crop_changed === true) {
|
386 |
+
slide_row.data('crop_changed', false);
|
387 |
+
}
|
388 |
+
|
389 |
+
if (console && console.log) {
|
390 |
+
console.log(data);
|
391 |
+
}
|
392 |
+
}
|
393 |
+
});
|
394 |
+
}
|
395 |
+
});
|
396 |
+
});
|
397 |
+
|
398 |
+
$(document).ajaxStop(function() {
|
399 |
+
$(".metaslider .spinner").hide().css('visibility', '');
|
400 |
+
$(".metaslider button[type=submit]").removeAttr("disabled");
|
401 |
+
});
|
402 |
+
|
403 |
+
$(".useWithCaution").on("change", function(){
|
404 |
+
if(!this.checked) {
|
405 |
+
return alert(metaslider.useWithCaution);
|
406 |
+
}
|
407 |
+
});
|
408 |
+
|
409 |
+
// helptext tooltips
|
410 |
+
$(".tipsy-tooltip").tipsy({className: 'msTipsy', live: true, delayIn: 500, html: true, gravity: 'e'});
|
411 |
+
$(".tipsy-tooltip-top").tipsy({live: true, delayIn: 500, html: true, gravity: 's'});
|
412 |
+
|
413 |
+
// Select input field contents when clicked
|
414 |
+
$(".metaslider .shortcode input, .metaslider .shortcode textarea").on('click', function() {
|
415 |
+
this.select();
|
416 |
+
});
|
417 |
+
|
418 |
+
// return lightbox width
|
419 |
+
var getLightboxWidth = function() {
|
420 |
+
var width = parseInt($('input.width').val(), 10);
|
421 |
+
|
422 |
+
if ($('.carouselMode').is(':checked')) {
|
423 |
+
width = '75%';
|
424 |
+
}
|
425 |
+
|
426 |
+
return width;
|
427 |
+
};
|
428 |
+
|
429 |
+
// return lightbox height
|
430 |
+
var getLightboxHeight = function() {
|
431 |
+
var height = parseInt($('input.height').val(), 10);
|
432 |
+
var thumb_height = parseInt($('input.thumb_height').val(), 10);
|
433 |
+
|
434 |
+
if (isNaN(height)) {
|
435 |
+
height = '70%';
|
436 |
+
} else {
|
437 |
+
height = height + 50;
|
438 |
+
|
439 |
+
if (!isNaN(thumb_height)) {
|
440 |
+
height = height + thumb_height;
|
441 |
+
}
|
442 |
+
}
|
443 |
+
|
444 |
+
return height;
|
445 |
+
};
|
446 |
+
|
447 |
+
|
448 |
+
// IE10 treats placeholder text as the actual value of a textarea
|
449 |
+
// http://stackoverflow.com/questions/13764607/html5-placeholder-attribute-on-textarea-via-$-in-ie10
|
450 |
+
var fixIE10PlaceholderText = function() {
|
451 |
+
$("textarea").each(function() {
|
452 |
+
if ($(this).val() == $(this).attr('placeholder')) {
|
453 |
+
$(this).val('');
|
454 |
+
}
|
455 |
+
});
|
456 |
+
};
|
457 |
+
|
458 |
+
$(".metaslider .ms-toggle .hndle, .metaslider .ms-toggle .handlediv").on('click', function() {
|
459 |
+
$(this).parent().toggleClass('closed');
|
460 |
+
});
|
461 |
+
|
462 |
+
// Switch tabs within a slide on space press
|
463 |
+
$('.metaslider-ui').on('keypress', 'ul.tabs > li > a', function(event) {
|
464 |
+
if (32 === event.which) {
|
465 |
+
event.preventDefault();
|
466 |
+
$(':focus').trigger('click');
|
467 |
+
}
|
468 |
+
});
|
469 |
+
|
470 |
+
// Event to switch tabs within a slide
|
471 |
+
$(".metaslider-ui").on('click', 'ul.tabs > li > a', function(event) {
|
472 |
+
event.preventDefault();
|
473 |
+
var tab = $(this);
|
474 |
+
|
475 |
+
// Hide all the tabs
|
476 |
+
tab.parents('.metaslider-ui-inner')
|
477 |
+
.children('.tabs-content')
|
478 |
+
.find('div.tab').hide();
|
479 |
+
|
480 |
+
// Show the selected tab
|
481 |
+
tab.parents('.metaslider-ui-inner')
|
482 |
+
.children('.tabs-content')
|
483 |
+
.find('div.' + tab.data('tab_id')).show();
|
484 |
+
|
485 |
+
// Add the class
|
486 |
+
tab.parent().addClass("selected")
|
487 |
+
.siblings().removeClass("selected");
|
488 |
+
});
|
489 |
+
|
490 |
+
// Switch slider types when on the label and pressing enter
|
491 |
+
$('.metaslider-ui').on('keypress', '.slider-lib-row label', function (event) {
|
492 |
+
if (32 === event.which) {
|
493 |
+
event.preventDefault();
|
494 |
+
$('.slider-lib-row #' + $(this).attr('for')).trigger('click');
|
495 |
+
}
|
496 |
+
});
|
497 |
+
|
498 |
+
// show the confirm dialogue
|
499 |
+
$(".metaslider").on('click', '.delete-slider', function() {
|
500 |
+
return confirm(metaslider.confirm);
|
501 |
+
});
|
502 |
+
|
503 |
+
// AJAX save & preview
|
504 |
+
$(".metaslider form").find("button[type=submit]").on("click", function(e) {
|
505 |
+
e.preventDefault();
|
506 |
+
|
507 |
+
$(".metaslider .spinner").show().css('visibility', 'visible');
|
508 |
+
$(".metaslider input[type=submit]").attr("disabled", "disabled");
|
509 |
+
|
510 |
+
// update slide order
|
511 |
+
$(".metaslider .left table").trigger('updateSlideOrder');
|
512 |
+
|
513 |
+
fixIE10PlaceholderText();
|
514 |
+
|
515 |
+
// get some values from elements on the page:
|
516 |
+
var the_form = $(this).parents("form");
|
517 |
+
var data = the_form.serialize();
|
518 |
+
var url = the_form.attr("action");
|
519 |
+
var button = $(this);
|
520 |
+
|
521 |
+
$.ajax({
|
522 |
+
type: "POST",
|
523 |
+
data : data,
|
524 |
+
cache: false,
|
525 |
+
url: url,
|
526 |
+
success: function(data) {
|
527 |
+
var response = $(data);
|
528 |
+
$.when($(".metaslider .left table").trigger("resizeSlides")).done(function() {
|
529 |
+
|
530 |
+
$("button[data-thumb]", response).each(function() {
|
531 |
+
var $this = $(this);
|
532 |
+
var editor_id = $this.attr("data-editor_id");
|
533 |
+
$("button[data-editor_id=" + editor_id + "]")
|
534 |
+
.attr("data-thumb", $this.attr("data-thumb"))
|
535 |
+
.attr("data-width", $this.attr("data-width"))
|
536 |
+
.attr("data-height", $this.attr("data-height"));
|
537 |
+
});
|
538 |
+
|
539 |
+
fixIE10PlaceholderText();
|
540 |
+
|
541 |
+
if ("ms-preview" === button.prop("id")) {
|
542 |
+
$.colorbox({
|
543 |
+
iframe: true,
|
544 |
+
href: metaslider.iframeurl + "&slider_id=" + button.data("slider_id"),
|
545 |
+
transition: "elastic",
|
546 |
+
innerHeight: getLightboxHeight(),
|
547 |
+
innerWidth: getLightboxWidth(),
|
548 |
+
scrolling: false,
|
549 |
+
fastIframe: false
|
550 |
+
});
|
551 |
+
}
|
552 |
+
|
553 |
+
});
|
554 |
+
}
|
555 |
+
});
|
556 |
+
});
|
557 |
+
|
558 |
+
// UI/Feedback
|
559 |
+
|
560 |
+
// Events for the slideshow title
|
561 |
+
$('.metaslider .nav-tab-active input[name="title"]').on('focusin', function() {
|
562 |
+
|
563 |
+
// Expand the input box when a user wants to edit a slider title
|
564 |
+
$(this).css('width', ($(this).val().length + 1) * 9);
|
565 |
+
}).on('focusout', function() {
|
566 |
+
|
567 |
+
// Retract and save the slideshow title
|
568 |
+
$(this).css('width', 150);
|
569 |
+
$("#ms-save").trigger('click');
|
570 |
+
}).on('keypress', function() {
|
571 |
+
|
572 |
+
// Pressing enter on the slide title saves it and focuses outside.
|
573 |
+
if (13 === event.which) {
|
574 |
+
event.preventDefault();
|
575 |
+
$("#ms-save").trigger('click');
|
576 |
+
$("button.add-slide").focus();
|
577 |
+
}
|
578 |
+
});
|
579 |
+
|
580 |
+
|
581 |
+
// Bind the slider title to the input.
|
582 |
+
$('.metaslider input[name="title"]').on('input', function(event) {
|
583 |
+
event.preventDefault();
|
584 |
+
|
585 |
+
var title = new MS_Binder(".slider-title > h3");
|
586 |
+
title.bind($(this).val());
|
587 |
+
});
|
588 |
+
});
|
589 |
+
|
590 |
+
/**
|
591 |
+
* Various helper functions to use throughout
|
592 |
+
*/
|
593 |
+
var MetaSlider_Helpers = {
|
594 |
+
|
595 |
+
/**
|
596 |
+
* Various helper functions to use throughout
|
597 |
+
*/
|
598 |
+
capitalize: function(string) {
|
599 |
+
return string.replace(/\b\w/g, function(l){ return l.toUpperCase(); });
|
600 |
+
},
|
601 |
+
|
602 |
+
/**
|
603 |
+
* Sets some basic loading state UI elements of the app. Currently,
|
604 |
+
* it only enables or disables the input and shows a loading spinner.
|
605 |
+
* @property {boolean} state
|
606 |
+
*/
|
607 |
+
loading: function(state) {
|
608 |
+
if (state) {
|
609 |
+
jQuery(".metaslider .spinner").show().css('visibility', 'visible');
|
610 |
+
jQuery(".metaslider button[type=submit]").attr('disabled', 'disabled');
|
611 |
+
} else {
|
612 |
+
jQuery(".metaslider .spinner").hide().css('visibility', '');
|
613 |
+
jQuery(".metaslider button[type=submit]").removeAttr("disabled");
|
614 |
+
}
|
615 |
+
},
|
616 |
+
};
|
617 |
+
|
618 |
+
/**
|
619 |
+
* Simple view binder
|
620 |
+
* var elm = new MS_Binder("#selector");
|
621 |
+
* elm.bind(200);
|
622 |
+
*/
|
623 |
+
var MS_Binder = function(selector) {
|
624 |
+
this.dom = document.querySelector(selector);
|
625 |
+
this.value = null;
|
626 |
+
};
|
627 |
+
|
628 |
+
MS_Binder.prototype.bind = function(value){
|
629 |
+
if (value === this.value) return;
|
630 |
+
|
631 |
+
this.value = value;
|
632 |
+
this.dom.innerText = this.value;
|
633 |
+
};
|
634 |
+
|
635 |
+
/**
|
636 |
+
* Simple notifications
|
637 |
+
* var notice = new MS_Notification("Slide Deleted", "click to undo", 'img.jpg', 'success');
|
638 |
+
* Can use a custom function for the callback as well
|
639 |
+
* requires jQuery
|
640 |
+
*/
|
641 |
+
var MS_Notification = function(message, submessage, image, _classname) {
|
642 |
+
this.panel = document.getElementById('ms-notifications');
|
643 |
+
if (!this.panel) {
|
644 |
+
this.panel = document.createElement('div');
|
645 |
+
this.panel.id = "ms-notifications";
|
646 |
+
}
|
647 |
+
this.notice = jQuery('<div class="ms-notification"><div class="ms-notification-content"><h3></h3><p></p></div><div class="img"></div></div>');
|
648 |
+
this.notice.find('h3').text(message);
|
649 |
+
this.notice.find('p').text(submessage);
|
650 |
+
|
651 |
+
// If there is an image, let's add it.
|
652 |
+
if (('undefined' !== typeof image) && image.length) {
|
653 |
+
this.notice.addClass('has-image')
|
654 |
+
.find('.img')
|
655 |
+
.append('<img width=50 height=50 src="' + image + '">');
|
656 |
+
}
|
657 |
+
|
658 |
+
// TODO add an option for svg
|
659 |
+
|
660 |
+
// If an extra class is set, set it
|
661 |
+
('undefined' !== typeof _classname) && this.notice.addClass(_classname);
|
662 |
+
|
663 |
+
// Append the panel to the body and
|
664 |
+
jQuery(this.panel).appendTo(jQuery('body'));
|
665 |
+
};
|
666 |
+
|
667 |
+
/**
|
668 |
+
* Hide a notification
|
669 |
+
*/
|
670 |
+
MS_Notification.prototype.hide = function() {
|
671 |
+
var _this = this;
|
672 |
+
_this.notice.addClass('finished');
|
673 |
+
this.notice.fadeOut(500, function () {
|
674 |
+
_this.notice.remove();
|
675 |
+
});
|
676 |
+
};
|
677 |
+
|
678 |
+
/**
|
679 |
+
* Launch a notification and add a click event
|
680 |
+
* @param int delay the time in milliseconds
|
681 |
+
* @param string callback a method on the object or anon function
|
682 |
+
*/
|
683 |
+
MS_Notification.prototype.fire = function(delay, callback) {
|
684 |
+
var _this = this;
|
685 |
+
var _callback = ('undefined' !== typeof callback) ? callback : 'hide';
|
686 |
+
|
687 |
+
// Prepend this to the notification stack
|
688 |
+
this.notice.prependTo(this.panel);
|
689 |
+
|
690 |
+
// Automatically hide after the delay
|
691 |
+
this.timeout = setTimeout(function() {
|
692 |
+
_this.hide();
|
693 |
+
}, delay);
|
694 |
+
|
695 |
+
// Clear this timeout on click
|
696 |
+
this.notice.on('click', function() {
|
697 |
+
clearTimeout(_this.timeout);
|
698 |
+
});
|
699 |
+
|
700 |
+
// Pause the timeout on hover
|
701 |
+
this.notice.on('mouseenter', function() {
|
702 |
+
clearTimeout(_this.timeout);
|
703 |
+
});
|
704 |
+
|
705 |
+
// Restart the timeout after leaving
|
706 |
+
this.notice.on('mouseleave', function() {
|
707 |
+
_this.timeout = setTimeout(function() {
|
708 |
+
_this.hide();
|
709 |
+
}, delay);
|
710 |
+
});
|
711 |
+
|
712 |
+
// If callback is a method
|
713 |
+
if (MS_Notification.prototype.hasOwnProperty(_callback)) {
|
714 |
+
this.notice.on('click', function() {
|
715 |
+
if ('hide' !== _callback) {
|
716 |
+
_this.hide();
|
717 |
+
}
|
718 |
+
MS_Notification.call(_this[_callback]());
|
719 |
+
});
|
720 |
+
} else {
|
721 |
+
|
722 |
+
// If the callback is a custom function
|
723 |
+
this.notice.on('click', function() {
|
724 |
+
_this.hide();
|
725 |
+
_callback();
|
726 |
+
});
|
727 |
+
}
|
728 |
+
};
|
admin/assets/js/tour.js
ADDED
@@ -0,0 +1,261 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// Not really a tour, but uses the same library to introduce the plugin.
|
2 |
+
// This should always show when the user has no slideshows
|
3 |
+
var no_slideshows = new Shepherd.Tour({
|
4 |
+
defaults: {
|
5 |
+
classes: 'shepherd-theme-arrows shepherd-no-slideshows'
|
6 |
+
}
|
7 |
+
});
|
8 |
+
no_slideshows.addStep('welcome', {
|
9 |
+
title: metaslider_tour.no_slideshows.title,
|
10 |
+
text: metaslider_tour.no_slideshows.message,
|
11 |
+
attachTo: '#create_new_tab bottom',
|
12 |
+
tetherOptions: {
|
13 |
+
offset: '-5px 0'
|
14 |
+
},
|
15 |
+
buttons: []
|
16 |
+
});
|
17 |
+
|
18 |
+
metaslider_tour.no_slideshows.show && no_slideshows.start();
|
19 |
+
|
20 |
+
// Main tour to introduce the plugin
|
21 |
+
var main_tour = new Shepherd.Tour();
|
22 |
+
|
23 |
+
// Set up the defaults for each step
|
24 |
+
main_tour.options.defaults = {
|
25 |
+
classes: 'shepherd-theme-arrows shepherd-main-tour',
|
26 |
+
showCancelLink: true
|
27 |
+
};
|
28 |
+
|
29 |
+
// If we have passed step two, don't let the media
|
30 |
+
// uploader events below effect the UX
|
31 |
+
main_tour.can_still_go_back = true;
|
32 |
+
|
33 |
+
// If they have slides already, allow them to skip this step
|
34 |
+
var skip_button = jQuery('.metaslider-ui .slide').length ? [{
|
35 |
+
text: metaslider_tour.main_tour.skip_language,
|
36 |
+
action: function() {
|
37 |
+
main_tour.show('step_preview_slideshow');
|
38 |
+
}
|
39 |
+
}] : [];
|
40 |
+
main_tour.addStep('step_add_slide', {
|
41 |
+
title: metaslider_tour.main_tour.step1.title,
|
42 |
+
text: metaslider_tour.main_tour.step1.message,
|
43 |
+
attachTo: 'button.add-slide bottom',
|
44 |
+
tetherOptions: {
|
45 |
+
offset: '-5px 0'
|
46 |
+
},
|
47 |
+
buttons: skip_button
|
48 |
+
});
|
49 |
+
main_tour.addStep('step_show_slide_types', {
|
50 |
+
title: metaslider_tour.main_tour.step2a.title,
|
51 |
+
text: metaslider_tour.main_tour.step2a.message,
|
52 |
+
attachTo: '.media-menu right',
|
53 |
+
classes: 'shepherd-theme-arrows shepherd-main-tour super-index',
|
54 |
+
tetherOptions: {
|
55 |
+
constraints: null,
|
56 |
+
attachment: 'top left',
|
57 |
+
targetAttachment: 'top right',
|
58 |
+
targetOffset: '10% -35px'
|
59 |
+
},
|
60 |
+
buttons: [
|
61 |
+
{
|
62 |
+
text: metaslider_tour.main_tour.next_language,
|
63 |
+
action: function() {
|
64 |
+
main_tour.next();
|
65 |
+
}
|
66 |
+
}
|
67 |
+
]
|
68 |
+
});
|
69 |
+
main_tour.addStep('step_add_media', {
|
70 |
+
title: metaslider_tour.main_tour.step2b.title,
|
71 |
+
text: metaslider_tour.main_tour.step2b.message,
|
72 |
+
attachTo: '.media-modal.wp-core-ui top',
|
73 |
+
classes: 'shepherd-theme-arrows shepherd-main-tour super-index',
|
74 |
+
tetherOptions: {
|
75 |
+
targetAttachment: 'bottom right',
|
76 |
+
offset: '50px 140px'
|
77 |
+
},
|
78 |
+
buttons: []
|
79 |
+
});
|
80 |
+
main_tour.addStep('step_preview_slideshow', {
|
81 |
+
title: metaslider_tour.main_tour.step3.title,
|
82 |
+
text: metaslider_tour.main_tour.step3.message,
|
83 |
+
attachTo: '.metaslider-actions left',
|
84 |
+
classes: 'shepherd-theme-arrows shepherd-main-tour',
|
85 |
+
tetherOptions: {
|
86 |
+
offset: '0 5px'
|
87 |
+
},
|
88 |
+
buttons: [
|
89 |
+
{
|
90 |
+
text: metaslider_tour.main_tour.next_language,
|
91 |
+
action: function() {
|
92 |
+
main_tour.next();
|
93 |
+
}
|
94 |
+
}
|
95 |
+
]
|
96 |
+
});
|
97 |
+
main_tour.addStep('step_edit_settings', {
|
98 |
+
title: metaslider_tour.main_tour.step4.title,
|
99 |
+
text: metaslider_tour.main_tour.step4.message,
|
100 |
+
attachTo: '#metaslider_configuration left',
|
101 |
+
classes: 'shepherd-theme-arrows shepherd-main-tour',
|
102 |
+
scrollTo: true,
|
103 |
+
tetherOptions: {
|
104 |
+
offset: '0 5px'
|
105 |
+
},
|
106 |
+
buttons: [
|
107 |
+
{
|
108 |
+
text: metaslider_tour.main_tour.next_language,
|
109 |
+
action: function() {
|
110 |
+
main_tour.next();
|
111 |
+
}
|
112 |
+
}
|
113 |
+
]
|
114 |
+
});
|
115 |
+
main_tour.addStep('step_view_shortcode', {
|
116 |
+
title: metaslider_tour.main_tour.step5.title,
|
117 |
+
text: metaslider_tour.main_tour.step5.message,
|
118 |
+
attachTo: '.metaslider-shortcode bottom',
|
119 |
+
classes: 'shepherd-theme-arrows shepherd-main-tour',
|
120 |
+
when: {
|
121 |
+
show: function() {
|
122 |
+
window.scrollTo(0, 0);
|
123 |
+
}
|
124 |
+
},
|
125 |
+
tetherOptions: {
|
126 |
+
offset: '-5px 0'
|
127 |
+
},
|
128 |
+
buttons: [
|
129 |
+
{
|
130 |
+
text : metaslider_tour.main_tour.step5.button,
|
131 |
+
action : main_tour.cancel
|
132 |
+
}
|
133 |
+
]
|
134 |
+
});
|
135 |
+
main_tour.addStep('step_show_ad', {
|
136 |
+
title: metaslider_tour.main_tour.final_ad.title,
|
137 |
+
text: metaslider_tour.main_tour.final_ad.message,
|
138 |
+
classes: 'shepherd-theme-arrows shepherd-main-tour super-index',
|
139 |
+
showCancelLink: false,
|
140 |
+
buttons: [
|
141 |
+
{
|
142 |
+
text: metaslider_tour.main_tour.learn_more_language,
|
143 |
+
action: function() {
|
144 |
+
window.open(metaslider_tour.main_tour.upgrade_link, '_blank').focus();
|
145 |
+
},
|
146 |
+
classes: 'btn-cta-gradient'
|
147 |
+
},
|
148 |
+
{
|
149 |
+
text : metaslider_tour.main_tour.final_ad.button,
|
150 |
+
action : function() {
|
151 |
+
jQuery('#wpwrap, .media-modal').removeClass('blurred-out');
|
152 |
+
main_tour.hide();
|
153 |
+
}
|
154 |
+
}
|
155 |
+
]
|
156 |
+
});
|
157 |
+
main_tour.on('cancel', function() {
|
158 |
+
|
159 |
+
// The tour is either finished or they hit the x
|
160 |
+
main_tour.can_still_go_back = false;
|
161 |
+
var data = {
|
162 |
+
action: 'set_tour_status',
|
163 |
+
_wpnonce: metaslider_tour.main_tour.nonce,
|
164 |
+
current_step: this.getCurrentStep().id
|
165 |
+
};
|
166 |
+
jQuery.ajax({
|
167 |
+
url: metaslider.ajaxurl,
|
168 |
+
data: data,
|
169 |
+
method: 'POST',
|
170 |
+
error: function(response) {
|
171 |
+
|
172 |
+
// Error to the console (useful if we get support feedback
|
173 |
+
// that the tour always shows)
|
174 |
+
console.log("Tour error: " + response.responseJSON.data.message);
|
175 |
+
},
|
176 |
+
success: function(response) {
|
177 |
+
|
178 |
+
// We will show a final ad to lite users only when they cancel
|
179 |
+
// and there are no errors (don't want to annoy them if there's a bug)
|
180 |
+
if (!metaslider_tour.main_tour.is_pro) {
|
181 |
+
jQuery('#wpwrap, .media-modal').addClass('blurred-out');
|
182 |
+
main_tour.show('step_show_ad');
|
183 |
+
}
|
184 |
+
|
185 |
+
}
|
186 |
+
});
|
187 |
+
});
|
188 |
+
|
189 |
+
metaslider_tour.main_tour.show && main_tour.start();
|
190 |
+
|
191 |
+
// Specifics for lite users (i.e. ads)
|
192 |
+
if (!metaslider_tour.main_tour.is_pro) {
|
193 |
+
|
194 |
+
// Add a CTA button to this step if add-on pack is disabled
|
195 |
+
main_tour.getById('step_show_slide_types').options.buttons.unshift({
|
196 |
+
text: metaslider_tour.main_tour.learn_more_language,
|
197 |
+
action: function() {
|
198 |
+
window.open(metaslider_tour.main_tour.upgrade_link, '_blank').focus();
|
199 |
+
},
|
200 |
+
classes: 'btn-cta-gradient'
|
201 |
+
});
|
202 |
+
}
|
203 |
+
|
204 |
+
// Load jQuery events after DOM load
|
205 |
+
jQuery(function($) {
|
206 |
+
if (metaslider_tour.main_tour.show) {
|
207 |
+
|
208 |
+
// When the add slide UI is opened, progress the tour
|
209 |
+
$('body').on('click', '.add-slide.shepherd-target', function(event) {
|
210 |
+
window.setTimeout(function() {
|
211 |
+
main_tour.can_still_go_back && main_tour.show('step_show_slide_types');
|
212 |
+
|
213 |
+
// If it's an image, we can progress (see below for other slides)
|
214 |
+
var add_to_slideshow_event = function() {
|
215 |
+
$('.media-button').on('click', function(event) {
|
216 |
+
main_tour.can_still_go_back && main_tour.show('step_preview_slideshow');
|
217 |
+
main_tour.can_still_go_back = false;
|
218 |
+
});
|
219 |
+
};
|
220 |
+
add_to_slideshow_event();
|
221 |
+
|
222 |
+
// If we're on pro, call the above function. But if we're on lite, then
|
223 |
+
// we have to rebind the events. I'm not really sure why, but it works,
|
224 |
+
// and without it, it doesn't work.
|
225 |
+
metaslider_tour.main_tour.is_pro || $('.media-menu-item').on('click', function(event) {
|
226 |
+
add_to_slideshow_event();
|
227 |
+
if($('.media-menu-item').eq(0).is(this)) {
|
228 |
+
main_tour.show('step_add_media');
|
229 |
+
} else {
|
230 |
+
main_tour.hide();
|
231 |
+
}
|
232 |
+
});
|
233 |
+
}, 500);
|
234 |
+
});
|
235 |
+
|
236 |
+
// When the UI is closed and no slide is set, reverse the tour
|
237 |
+
$('body').on('click', '.media-modal-close, .media-modal-backdrop', function(event) {
|
238 |
+
|
239 |
+
// If the user is pro, and adds a non-image slide, the way it's handled
|
240 |
+
// is the iFrame triggers a click on the main add media button. So this will also
|
241 |
+
// fire. Let's move forward if the count of slides is more than 1
|
242 |
+
var slide_count = $('.metaslider-slides-container .slide').length;
|
243 |
+
if (metaslider_tour.main_tour.is_pro && slide_count) {
|
244 |
+
main_tour.can_still_go_back && main_tour.show('step_preview_slideshow');
|
245 |
+
main_tour.can_still_go_back = false;
|
246 |
+
}
|
247 |
+
|
248 |
+
// Only go back if we still can (i.e. reopening the UI doesn't reset the tour)
|
249 |
+
main_tour.can_still_go_back && main_tour.show('step_add_slide');
|
250 |
+
});
|
251 |
+
|
252 |
+
// This is to handle the Escape key.
|
253 |
+
$(document).keyup(function(event) {
|
254 |
+
|
255 |
+
// If they press escape during the add-media step, send them back one step.
|
256 |
+
if (27 == event.keyCode && ('add-media' === main_tour.getCurrentStep().id)) {
|
257 |
+
main_tour.can_still_go_back && main_tour.show('step_add_slide');
|
258 |
+
}
|
259 |
+
});
|
260 |
+
}
|
261 |
+
});
|
admin/assets/tether-shepherd/LICENSE
ADDED
@@ -0,0 +1,8 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
Copyright (c) 2015 HubSpot, Inc.
|
2 |
+
|
3 |
+
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
4 |
+
|
5 |
+
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
6 |
+
|
7 |
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
8 |
+
|
admin/assets/tether-shepherd/shepherd-theme-arrows-fix.css
ADDED
@@ -0,0 +1,5 @@
|
|
|
|
|
|
|
|
|
|
|
1 |
+
.shepherd-element-attached-bottom.shepherd-element-attached-right.shepherd-target-attached-top.shepherd-target-attached-left .shepherd-content:before,
|
2 |
+
.shepherd-element-attached-bottom.shepherd-element-attached-left.shepherd-target-attached-top.shepherd-target-attached-right .shepherd-content:before,
|
3 |
+
.shepherd-element-attached-top.shepherd-element-attached-right.shepherd-target-attached-bottom.shepherd-target-attached-left .shepherd-content:before,
|
4 |
+
.shepherd-element-attached-top.shepherd-element-attached-left.shepherd-target-attached-bottom.shepherd-target-attached-right .shepherd-content:before {
|
5 |
+
display: none; }
|
admin/assets/tether-shepherd/shepherd-theme-arrows-fix.min.css
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
.shepherd-element-attached-bottom.shepherd-element-attached-right.shepherd-target-attached-top.shepherd-target-attached-left .shepherd-content:before,.shepherd-element-attached-bottom.shepherd-element-attached-left.shepherd-target-attached-top.shepherd-target-attached-right .shepherd-content:before,.shepherd-element-attached-top.shepherd-element-attached-right.shepherd-target-attached-bottom.shepherd-target-attached-left .shepherd-content:before,.shepherd-element-attached-top.shepherd-element-attached-left.shepherd-target-attached-bottom.shepherd-target-attached-right .shepherd-content:before{display:none}
|
admin/assets/tether-shepherd/shepherd-theme-arrows-plain-buttons.css
ADDED
@@ -0,0 +1,215 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
.shepherd-element-attached-bottom.shepherd-element-attached-right.shepherd-target-attached-top.shepherd-target-attached-left .shepherd-content:before,
|
2 |
+
.shepherd-element-attached-bottom.shepherd-element-attached-left.shepherd-target-attached-top.shepherd-target-attached-right .shepherd-content:before,
|
3 |
+
.shepherd-element-attached-top.shepherd-element-attached-right.shepherd-target-attached-bottom.shepherd-target-attached-left .shepherd-content:before,
|
4 |
+
.shepherd-element-attached-top.shepherd-element-attached-left.shepherd-target-attached-bottom.shepherd-target-attached-right .shepherd-content:before {
|
5 |
+
display: none; }
|
6 |
+
|
7 |
+
.shepherd-element, .shepherd-element:after, .shepherd-element:before, .shepherd-element *, .shepherd-element *:after, .shepherd-element *:before {
|
8 |
+
box-sizing: border-box; }
|
9 |
+
|
10 |
+
.shepherd-element {
|
11 |
+
position: absolute;
|
12 |
+
display: none; }
|
13 |
+
.shepherd-element.shepherd-open {
|
14 |
+
display: block; }
|
15 |
+
|
16 |
+
.shepherd-element.shepherd-theme-arrows-plain-buttons {
|
17 |
+
max-width: 100%;
|
18 |
+
max-height: 100%; }
|
19 |
+
.shepherd-element.shepherd-theme-arrows-plain-buttons .shepherd-content {
|
20 |
+
border-radius: 5px;
|
21 |
+
position: relative;
|
22 |
+
font-family: inherit;
|
23 |
+
background: #fff;
|
24 |
+
color: #444;
|
25 |
+
padding: 1em;
|
26 |
+
font-size: 1.1em;
|
27 |
+
line-height: 1.5em;
|
28 |
+
-webkit-transform: translateZ(0);
|
29 |
+
transform: translateZ(0);
|
30 |
+
-webkit-filter: drop-shadow(0 1px 4px rgba(0, 0, 0, 0.2));
|
31 |
+
filter: drop-shadow(0 1px 4px rgba(0, 0, 0, 0.2)); }
|
32 |
+
.shepherd-element.shepherd-theme-arrows-plain-buttons .shepherd-content:before {
|
33 |
+
content: "";
|
34 |
+
display: block;
|
35 |
+
position: absolute;
|
36 |
+
width: 0;
|
37 |
+
height: 0;
|
38 |
+
border-color: transparent;
|
39 |
+
border-width: 16px;
|
40 |
+
border-style: solid;
|
41 |
+
pointer-events: none; }
|
42 |
+
.shepherd-element.shepherd-theme-arrows-plain-buttons.shepherd-element-attached-bottom.shepherd-element-attached-center .shepherd-content {
|
43 |
+
margin-bottom: 16px; }
|
44 |
+
.shepherd-element.shepherd-theme-arrows-plain-buttons.shepherd-element-attached-bottom.shepherd-element-attached-center .shepherd-content:before {
|
45 |
+
top: 100%;
|
46 |
+
left: 50%;
|
47 |
+
margin-left: -16px;
|
48 |
+
border-top-color: #fff; }
|
49 |
+
.shepherd-element.shepherd-theme-arrows-plain-buttons.shepherd-element-attached-top.shepherd-element-attached-center .shepherd-content {
|
50 |
+
margin-top: 16px; }
|
51 |
+
.shepherd-element.shepherd-theme-arrows-plain-buttons.shepherd-element-attached-top.shepherd-element-attached-center .shepherd-content:before {
|
52 |
+
bottom: 100%;
|
53 |
+
left: 50%;
|
54 |
+
margin-left: -16px;
|
55 |
+
border-bottom-color: #fff; }
|
56 |
+
.shepherd-element.shepherd-theme-arrows-plain-buttons.shepherd-element-attached-right.shepherd-element-attached-middle .shepherd-content {
|
57 |
+
margin-right: 16px; }
|
58 |
+
.shepherd-element.shepherd-theme-arrows-plain-buttons.shepherd-element-attached-right.shepherd-element-attached-middle .shepherd-content:before {
|
59 |
+
left: 100%;
|
60 |
+
top: 50%;
|
61 |
+
margin-top: -16px;
|
62 |
+
border-left-color: #fff; }
|
63 |
+
.shepherd-element.shepherd-theme-arrows-plain-buttons.shepherd-element-attached-left.shepherd-element-attached-middle .shepherd-content {
|
64 |
+
margin-left: 16px; }
|
65 |
+
.shepherd-element.shepherd-theme-arrows-plain-buttons.shepherd-element-attached-left.shepherd-element-attached-middle .shepherd-content:before {
|
66 |
+
right: 100%;
|
67 |
+
top: 50%;
|
68 |
+
margin-top: -16px;
|
69 |
+
border-right-color: #fff; }
|
70 |
+
.shepherd-element.shepherd-theme-arrows-plain-buttons.shepherd-element-attached-left.shepherd-target-attached-center .shepherd-content {
|
71 |
+
left: -32px; }
|
72 |
+
.shepherd-element.shepherd-theme-arrows-plain-buttons.shepherd-element-attached-right.shepherd-target-attached-center .shepherd-content {
|
73 |
+
left: 32px; }
|
74 |
+
.shepherd-element.shepherd-theme-arrows-plain-buttons.shepherd-element-attached-top.shepherd-element-attached-left.shepherd-target-attached-middle .shepherd-content {
|
75 |
+
margin-top: 16px; }
|
76 |
+
.shepherd-element.shepherd-theme-arrows-plain-buttons.shepherd-element-attached-top.shepherd-element-attached-left.shepherd-target-attached-middle .shepherd-content:before {
|
77 |
+
bottom: 100%;
|
78 |
+
left: 16px;
|
79 |
+
border-bottom-color: #fff; }
|
80 |
+
.shepherd-element.shepherd-theme-arrows-plain-buttons.shepherd-element-attached-top.shepherd-element-attached-right.shepherd-target-attached-middle .shepherd-content {
|
81 |
+
margin-top: 16px; }
|
82 |
+
.shepherd-element.shepherd-theme-arrows-plain-buttons.shepherd-element-attached-top.shepherd-element-attached-right.shepherd-target-attached-middle .shepherd-content:before {
|
83 |
+
bottom: 100%;
|
84 |
+
right: 16px;
|
85 |
+
border-bottom-color: #fff; }
|
86 |
+
.shepherd-element.shepherd-theme-arrows-plain-buttons.shepherd-element-attached-bottom.shepherd-element-attached-left.shepherd-target-attached-middle .shepherd-content {
|
87 |
+
margin-bottom: 16px; }
|
88 |
+
.shepherd-element.shepherd-theme-arrows-plain-buttons.shepherd-element-attached-bottom.shepherd-element-attached-left.shepherd-target-attached-middle .shepherd-content:before {
|
89 |
+
top: 100%;
|
90 |
+
left: 16px;
|
91 |
+
border-top-color: #fff; }
|
92 |
+
.shepherd-element.shepherd-theme-arrows-plain-buttons.shepherd-element-attached-bottom.shepherd-element-attached-right.shepherd-target-attached-middle .shepherd-content {
|
93 |
+
margin-bottom: 16px; }
|
94 |
+
.shepherd-element.shepherd-theme-arrows-plain-buttons.shepherd-element-attached-bottom.shepherd-element-attached-right.shepherd-target-attached-middle .shepherd-content:before {
|
95 |
+
top: 100%;
|
96 |
+
right: 16px;
|
97 |
+
border-top-color: #fff; }
|
98 |
+
.shepherd-element.shepherd-theme-arrows-plain-buttons.shepherd-element-attached-top.shepherd-element-attached-left.shepherd-target-attached-bottom .shepherd-content {
|
99 |
+
margin-top: 16px; }
|
100 |
+
.shepherd-element.shepherd-theme-arrows-plain-buttons.shepherd-element-attached-top.shepherd-element-attached-left.shepherd-target-attached-bottom .shepherd-content:before {
|
101 |
+
bottom: 100%;
|
102 |
+
left: 16px;
|
103 |
+
border-bottom-color: #fff; }
|
104 |
+
.shepherd-element.shepherd-theme-arrows-plain-buttons.shepherd-element-attached-top.shepherd-element-attached-right.shepherd-target-attached-bottom .shepherd-content {
|
105 |
+
margin-top: 16px; }
|
106 |
+
.shepherd-element.shepherd-theme-arrows-plain-buttons.shepherd-element-attached-top.shepherd-element-attached-right.shepherd-target-attached-bottom .shepherd-content:before {
|
107 |
+
bottom: 100%;
|
108 |
+
right: 16px;
|
109 |
+
border-bottom-color: #fff; }
|
110 |
+
.shepherd-element.shepherd-theme-arrows-plain-buttons.shepherd-element-attached-bottom.shepherd-element-attached-left.shepherd-target-attached-top .shepherd-content {
|
111 |
+
margin-bottom: 16px; }
|
112 |
+
.shepherd-element.shepherd-theme-arrows-plain-buttons.shepherd-element-attached-bottom.shepherd-element-attached-left.shepherd-target-attached-top .shepherd-content:before {
|
113 |
+
top: 100%;
|
114 |
+
left: 16px;
|
115 |
+
border-top-color: #fff; }
|
116 |
+
.shepherd-element.shepherd-theme-arrows-plain-buttons.shepherd-element-attached-bottom.shepherd-element-attached-right.shepherd-target-attached-top .shepherd-content {
|
117 |
+
margin-bottom: 16px; }
|
118 |
+
.shepherd-element.shepherd-theme-arrows-plain-buttons.shepherd-element-attached-bottom.shepherd-element-attached-right.shepherd-target-attached-top .shepherd-content:before {
|
119 |
+
top: 100%;
|
120 |
+
right: 16px;
|
121 |
+
border-top-color: #fff; }
|
122 |
+
.shepherd-element.shepherd-theme-arrows-plain-buttons.shepherd-element-attached-top.shepherd-element-attached-right.shepherd-target-attached-left .shepherd-content {
|
123 |
+
margin-right: 16px; }
|
124 |
+
.shepherd-element.shepherd-theme-arrows-plain-buttons.shepherd-element-attached-top.shepherd-element-attached-right.shepherd-target-attached-left .shepherd-content:before {
|
125 |
+
top: 16px;
|
126 |
+
left: 100%;
|
127 |
+
border-left-color: #fff; }
|
128 |
+
.shepherd-element.shepherd-theme-arrows-plain-buttons.shepherd-element-attached-top.shepherd-element-attached-left.shepherd-target-attached-right .shepherd-content {
|
129 |
+
margin-left: 16px; }
|
130 |
+
.shepherd-element.shepherd-theme-arrows-plain-buttons.shepherd-element-attached-top.shepherd-element-attached-left.shepherd-target-attached-right .shepherd-content:before {
|
131 |
+
top: 16px;
|
132 |
+
right: 100%;
|
133 |
+
border-right-color: #fff; }
|
134 |
+
.shepherd-element.shepherd-theme-arrows-plain-buttons.shepherd-element-attached-bottom.shepherd-element-attached-right.shepherd-target-attached-left .shepherd-content {
|
135 |
+
margin-right: 16px; }
|
136 |
+
.shepherd-element.shepherd-theme-arrows-plain-buttons.shepherd-element-attached-bottom.shepherd-element-attached-right.shepherd-target-attached-left .shepherd-content:before {
|
137 |
+
bottom: 16px;
|
138 |
+
left: 100%;
|
139 |
+
border-left-color: #fff; }
|
140 |
+
.shepherd-element.shepherd-theme-arrows-plain-buttons.shepherd-element-attached-bottom.shepherd-element-attached-left.shepherd-target-attached-right .shepherd-content {
|
141 |
+
margin-left: 16px; }
|
142 |
+
.shepherd-element.shepherd-theme-arrows-plain-buttons.shepherd-element-attached-bottom.shepherd-element-attached-left.shepherd-target-attached-right .shepherd-content:before {
|
143 |
+
bottom: 16px;
|
144 |
+
right: 100%;
|
145 |
+
border-right-color: #fff; }
|
146 |
+
|
147 |
+
.shepherd-element.shepherd-theme-arrows-plain-buttons.shepherd-element-attached-top.shepherd-element-attached-center.shepherd-has-title .shepherd-content:before, .shepherd-element.shepherd-theme-arrows-plain-buttons.shepherd-element-attached-top.shepherd-element-attached-right.shepherd-target-attached-bottom.shepherd-has-title .shepherd-content:before, .shepherd-element.shepherd-theme-arrows-plain-buttons.shepherd-element-attached-top.shepherd-element-attached-left.shepherd-target-attached-bottom.shepherd-has-title .shepherd-content:before {
|
148 |
+
border-bottom-color: #eee; }
|
149 |
+
|
150 |
+
.shepherd-element.shepherd-theme-arrows-plain-buttons.shepherd-has-title .shepherd-content header {
|
151 |
+
background: #eee;
|
152 |
+
padding: 1em; }
|
153 |
+
.shepherd-element.shepherd-theme-arrows-plain-buttons.shepherd-has-title .shepherd-content header a.shepherd-cancel-link {
|
154 |
+
padding: 0;
|
155 |
+
margin-bottom: 0; }
|
156 |
+
|
157 |
+
.shepherd-element.shepherd-theme-arrows-plain-buttons.shepherd-has-cancel-link .shepherd-content header h3 {
|
158 |
+
float: left; }
|
159 |
+
|
160 |
+
.shepherd-element.shepherd-theme-arrows-plain-buttons .shepherd-content {
|
161 |
+
padding: 0; }
|
162 |
+
.shepherd-element.shepherd-theme-arrows-plain-buttons .shepherd-content header {
|
163 |
+
*zoom: 1;
|
164 |
+
border-radius: 5px 5px 0 0; }
|
165 |
+
.shepherd-element.shepherd-theme-arrows-plain-buttons .shepherd-content header:after {
|
166 |
+
content: "";
|
167 |
+
display: table;
|
168 |
+
clear: both; }
|
169 |
+
.shepherd-element.shepherd-theme-arrows-plain-buttons .shepherd-content header h3 {
|
170 |
+
margin: 0;
|
171 |
+
line-height: 1;
|
172 |
+
font-weight: normal; }
|
173 |
+
.shepherd-element.shepherd-theme-arrows-plain-buttons .shepherd-content header a.shepherd-cancel-link {
|
174 |
+
float: right;
|
175 |
+
text-decoration: none;
|
176 |
+
font-size: 1.25em;
|
177 |
+
line-height: .8em;
|
178 |
+
font-weight: normal;
|
179 |
+
color: rgba(0, 0, 0, 0.5);
|
180 |
+
opacity: 0.25;
|
181 |
+
position: relative;
|
182 |
+
top: .1em;
|
183 |
+
padding: .8em;
|
184 |
+
margin-bottom: -.8em; }
|
185 |
+
.shepherd-element.shepherd-theme-arrows-plain-buttons .shepherd-content header a.shepherd-cancel-link:hover {
|
186 |
+
opacity: 1; }
|
187 |
+
.shepherd-element.shepherd-theme-arrows-plain-buttons .shepherd-content .shepherd-text {
|
188 |
+
padding: 1em; }
|
189 |
+
.shepherd-element.shepherd-theme-arrows-plain-buttons .shepherd-content .shepherd-text p {
|
190 |
+
margin: 0 0 .5em 0;
|
191 |
+
line-height: 1.3em; }
|
192 |
+
.shepherd-element.shepherd-theme-arrows-plain-buttons .shepherd-content .shepherd-text p:last-child {
|
193 |
+
margin-bottom: 0; }
|
194 |
+
.shepherd-element.shepherd-theme-arrows-plain-buttons .shepherd-content footer {
|
195 |
+
padding: 0 1em 1em; }
|
196 |
+
.shepherd-element.shepherd-theme-arrows-plain-buttons .shepherd-content footer .shepherd-buttons {
|
197 |
+
text-align: right;
|
198 |
+
list-style: none;
|
199 |
+
padding: 0;
|
200 |
+
margin: 0; }
|
201 |
+
.shepherd-element.shepherd-theme-arrows-plain-buttons .shepherd-content footer .shepherd-buttons li {
|
202 |
+
display: inline;
|
203 |
+
padding: 0;
|
204 |
+
margin: 0; }
|
205 |
+
.shepherd-element.shepherd-theme-arrows-plain-buttons .shepherd-content footer .shepherd-buttons li .shepherd-button {
|
206 |
+
display: inline-block;
|
207 |
+
vertical-align: middle;
|
208 |
+
*vertical-align: auto;
|
209 |
+
*zoom: 1;
|
210 |
+
*display: inline;
|
211 |
+
cursor: pointer;
|
212 |
+
margin: 0 .5em 0 0;
|
213 |
+
text-decoration: none; }
|
214 |
+
.shepherd-element.shepherd-theme-arrows-plain-buttons .shepherd-content footer .shepherd-buttons li:last-child .shepherd-button {
|
215 |
+
margin-right: 0; }
|
admin/assets/tether-shepherd/shepherd-theme-arrows-plain-buttons.min.css
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
.shepherd-element-attached-bottom.shepherd-element-attached-right.shepherd-target-attached-top.shepherd-target-attached-left .shepherd-content:before,.shepherd-element-attached-bottom.shepherd-element-attached-left.shepherd-target-attached-top.shepherd-target-attached-right .shepherd-content:before,.shepherd-element-attached-top.shepherd-element-attached-right.shepherd-target-attached-bottom.shepherd-target-attached-left .shepherd-content:before,.shepherd-element-attached-top.shepherd-element-attached-left.shepherd-target-attached-bottom.shepherd-target-attached-right .shepherd-content:before{display:none}.shepherd-element,.shepherd-element:after,.shepherd-element:before,.shepherd-element *,.shepherd-element *:after,.shepherd-element *:before{box-sizing:border-box}.shepherd-element{position:absolute;display:none}.shepherd-element.shepherd-open{display:block}.shepherd-element.shepherd-theme-arrows-plain-buttons{max-width:100%;max-height:100%}.shepherd-element.shepherd-theme-arrows-plain-buttons .shepherd-content{border-radius:5px;position:relative;font-family:inherit;background:#fff;color:#444;padding:1em;font-size:1.1em;line-height:1.5em;-webkit-transform:translateZ(0);transform:translateZ(0);-webkit-filter:drop-shadow(0 1px 4px rgba(0,0,0,0.2));filter:drop-shadow(0 1px 4px rgba(0,0,0,0.2))}.shepherd-element.shepherd-theme-arrows-plain-buttons .shepherd-content:before{content:"";display:block;position:absolute;width:0;height:0;border-color:transparent;border-width:16px;border-style:solid;pointer-events:none}.shepherd-element.shepherd-theme-arrows-plain-buttons.shepherd-element-attached-bottom.shepherd-element-attached-center .shepherd-content{margin-bottom:16px}.shepherd-element.shepherd-theme-arrows-plain-buttons.shepherd-element-attached-bottom.shepherd-element-attached-center .shepherd-content:before{top:100%;left:50%;margin-left:-16px;border-top-color:#fff}.shepherd-element.shepherd-theme-arrows-plain-buttons.shepherd-element-attached-top.shepherd-element-attached-center .shepherd-content{margin-top:16px}.shepherd-element.shepherd-theme-arrows-plain-buttons.shepherd-element-attached-top.shepherd-element-attached-center .shepherd-content:before{bottom:100%;left:50%;margin-left:-16px;border-bottom-color:#fff}.shepherd-element.shepherd-theme-arrows-plain-buttons.shepherd-element-attached-right.shepherd-element-attached-middle .shepherd-content{margin-right:16px}.shepherd-element.shepherd-theme-arrows-plain-buttons.shepherd-element-attached-right.shepherd-element-attached-middle .shepherd-content:before{left:100%;top:50%;margin-top:-16px;border-left-color:#fff}.shepherd-element.shepherd-theme-arrows-plain-buttons.shepherd-element-attached-left.shepherd-element-attached-middle .shepherd-content{margin-left:16px}.shepherd-element.shepherd-theme-arrows-plain-buttons.shepherd-element-attached-left.shepherd-element-attached-middle .shepherd-content:before{right:100%;top:50%;margin-top:-16px;border-right-color:#fff}.shepherd-element.shepherd-theme-arrows-plain-buttons.shepherd-element-attached-left.shepherd-target-attached-center .shepherd-content{left:-32px}.shepherd-element.shepherd-theme-arrows-plain-buttons.shepherd-element-attached-right.shepherd-target-attached-center .shepherd-content{left:32px}.shepherd-element.shepherd-theme-arrows-plain-buttons.shepherd-element-attached-top.shepherd-element-attached-left.shepherd-target-attached-middle .shepherd-content{margin-top:16px}.shepherd-element.shepherd-theme-arrows-plain-buttons.shepherd-element-attached-top.shepherd-element-attached-left.shepherd-target-attached-middle .shepherd-content:before{bottom:100%;left:16px;border-bottom-color:#fff}.shepherd-element.shepherd-theme-arrows-plain-buttons.shepherd-element-attached-top.shepherd-element-attached-right.shepherd-target-attached-middle .shepherd-content{margin-top:16px}.shepherd-element.shepherd-theme-arrows-plain-buttons.shepherd-element-attached-top.shepherd-element-attached-right.shepherd-target-attached-middle .shepherd-content:before{bottom:100%;right:16px;border-bottom-color:#fff}.shepherd-element.shepherd-theme-arrows-plain-buttons.shepherd-element-attached-bottom.shepherd-element-attached-left.shepherd-target-attached-middle .shepherd-content{margin-bottom:16px}.shepherd-element.shepherd-theme-arrows-plain-buttons.shepherd-element-attached-bottom.shepherd-element-attached-left.shepherd-target-attached-middle .shepherd-content:before{top:100%;left:16px;border-top-color:#fff}.shepherd-element.shepherd-theme-arrows-plain-buttons.shepherd-element-attached-bottom.shepherd-element-attached-right.shepherd-target-attached-middle .shepherd-content{margin-bottom:16px}.shepherd-element.shepherd-theme-arrows-plain-buttons.shepherd-element-attached-bottom.shepherd-element-attached-right.shepherd-target-attached-middle .shepherd-content:before{top:100%;right:16px;border-top-color:#fff}.shepherd-element.shepherd-theme-arrows-plain-buttons.shepherd-element-attached-top.shepherd-element-attached-left.shepherd-target-attached-bottom .shepherd-content{margin-top:16px}.shepherd-element.shepherd-theme-arrows-plain-buttons.shepherd-element-attached-top.shepherd-element-attached-left.shepherd-target-attached-bottom .shepherd-content:before{bottom:100%;left:16px;border-bottom-color:#fff}.shepherd-element.shepherd-theme-arrows-plain-buttons.shepherd-element-attached-top.shepherd-element-attached-right.shepherd-target-attached-bottom .shepherd-content{margin-top:16px}.shepherd-element.shepherd-theme-arrows-plain-buttons.shepherd-element-attached-top.shepherd-element-attached-right.shepherd-target-attached-bottom .shepherd-content:before{bottom:100%;right:16px;border-bottom-color:#fff}.shepherd-element.shepherd-theme-arrows-plain-buttons.shepherd-element-attached-bottom.shepherd-element-attached-left.shepherd-target-attached-top .shepherd-content{margin-bottom:16px}.shepherd-element.shepherd-theme-arrows-plain-buttons.shepherd-element-attached-bottom.shepherd-element-attached-left.shepherd-target-attached-top .shepherd-content:before{top:100%;left:16px;border-top-color:#fff}.shepherd-element.shepherd-theme-arrows-plain-buttons.shepherd-element-attached-bottom.shepherd-element-attached-right.shepherd-target-attached-top .shepherd-content{margin-bottom:16px}.shepherd-element.shepherd-theme-arrows-plain-buttons.shepherd-element-attached-bottom.shepherd-element-attached-right.shepherd-target-attached-top .shepherd-content:before{top:100%;right:16px;border-top-color:#fff}.shepherd-element.shepherd-theme-arrows-plain-buttons.shepherd-element-attached-top.shepherd-element-attached-right.shepherd-target-attached-left .shepherd-content{margin-right:16px}.shepherd-element.shepherd-theme-arrows-plain-buttons.shepherd-element-attached-top.shepherd-element-attached-right.shepherd-target-attached-left .shepherd-content:before{top:16px;left:100%;border-left-color:#fff}.shepherd-element.shepherd-theme-arrows-plain-buttons.shepherd-element-attached-top.shepherd-element-attached-left.shepherd-target-attached-right .shepherd-content{margin-left:16px}.shepherd-element.shepherd-theme-arrows-plain-buttons.shepherd-element-attached-top.shepherd-element-attached-left.shepherd-target-attached-right .shepherd-content:before{top:16px;right:100%;border-right-color:#fff}.shepherd-element.shepherd-theme-arrows-plain-buttons.shepherd-element-attached-bottom.shepherd-element-attached-right.shepherd-target-attached-left .shepherd-content{margin-right:16px}.shepherd-element.shepherd-theme-arrows-plain-buttons.shepherd-element-attached-bottom.shepherd-element-attached-right.shepherd-target-attached-left .shepherd-content:before{bottom:16px;left:100%;border-left-color:#fff}.shepherd-element.shepherd-theme-arrows-plain-buttons.shepherd-element-attached-bottom.shepherd-element-attached-left.shepherd-target-attached-right .shepherd-content{margin-left:16px}.shepherd-element.shepherd-theme-arrows-plain-buttons.shepherd-element-attached-bottom.shepherd-element-attached-left.shepherd-target-attached-right .shepherd-content:before{bottom:16px;right:100%;border-right-color:#fff}.shepherd-element.shepherd-theme-arrows-plain-buttons.shepherd-element-attached-top.shepherd-element-attached-center.shepherd-has-title .shepherd-content:before,.shepherd-element.shepherd-theme-arrows-plain-buttons.shepherd-element-attached-top.shepherd-element-attached-right.shepherd-target-attached-bottom.shepherd-has-title .shepherd-content:before,.shepherd-element.shepherd-theme-arrows-plain-buttons.shepherd-element-attached-top.shepherd-element-attached-left.shepherd-target-attached-bottom.shepherd-has-title .shepherd-content:before{border-bottom-color:#eee}.shepherd-element.shepherd-theme-arrows-plain-buttons.shepherd-has-title .shepherd-content header{background:#eee;padding:1em}.shepherd-element.shepherd-theme-arrows-plain-buttons.shepherd-has-title .shepherd-content header a.shepherd-cancel-link{padding:0;margin-bottom:0}.shepherd-element.shepherd-theme-arrows-plain-buttons.shepherd-has-cancel-link .shepherd-content header h3{float:left}.shepherd-element.shepherd-theme-arrows-plain-buttons .shepherd-content{padding:0}.shepherd-element.shepherd-theme-arrows-plain-buttons .shepherd-content header{*zoom:1;border-radius:5px 5px 0 0}.shepherd-element.shepherd-theme-arrows-plain-buttons .shepherd-content header:after{content:"";display:table;clear:both}.shepherd-element.shepherd-theme-arrows-plain-buttons .shepherd-content header h3{margin:0;line-height:1;font-weight:normal}.shepherd-element.shepherd-theme-arrows-plain-buttons .shepherd-content header a.shepherd-cancel-link{float:right;text-decoration:none;font-size:1.25em;line-height:.8em;font-weight:normal;color:rgba(0,0,0,0.5);opacity:.25;position:relative;top:.1em;padding:.8em;margin-bottom:-.8em}.shepherd-element.shepherd-theme-arrows-plain-buttons .shepherd-content header a.shepherd-cancel-link:hover{opacity:1}.shepherd-element.shepherd-theme-arrows-plain-buttons .shepherd-content .shepherd-text{padding:1em}.shepherd-element.shepherd-theme-arrows-plain-buttons .shepherd-content .shepherd-text p{margin:0 0 .5em 0;line-height:1.3em}.shepherd-element.shepherd-theme-arrows-plain-buttons .shepherd-content .shepherd-text p:last-child{margin-bottom:0}.shepherd-element.shepherd-theme-arrows-plain-buttons .shepherd-content footer{padding:0 1em 1em}.shepherd-element.shepherd-theme-arrows-plain-buttons .shepherd-content footer .shepherd-buttons{text-align:right;list-style:none;padding:0;margin:0}.shepherd-element.shepherd-theme-arrows-plain-buttons .shepherd-content footer .shepherd-buttons li{display:inline;padding:0;margin:0}.shepherd-element.shepherd-theme-arrows-plain-buttons .shepherd-content footer .shepherd-buttons li .shepherd-button{display:inline-block;vertical-align:middle;*vertical-align:auto;*zoom:1;*display:inline;cursor:pointer;margin:0 .5em 0 0;text-decoration:none}.shepherd-element.shepherd-theme-arrows-plain-buttons .shepherd-content footer .shepherd-buttons li:last-child .shepherd-button{margin-right:0}
|
admin/assets/tether-shepherd/shepherd-theme-arrows.css
ADDED
@@ -0,0 +1,229 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
.shepherd-element-attached-bottom.shepherd-element-attached-right.shepherd-target-attached-top.shepherd-target-attached-left .shepherd-content:before,
|
2 |
+
.shepherd-element-attached-bottom.shepherd-element-attached-left.shepherd-target-attached-top.shepherd-target-attached-right .shepherd-content:before,
|
3 |
+
.shepherd-element-attached-top.shepherd-element-attached-right.shepherd-target-attached-bottom.shepherd-target-attached-left .shepherd-content:before,
|
4 |
+
.shepherd-element-attached-top.shepherd-element-attached-left.shepherd-target-attached-bottom.shepherd-target-attached-right .shepherd-content:before {
|
5 |
+
display: none; }
|
6 |
+
|
7 |
+
.shepherd-element, .shepherd-element:after, .shepherd-element:before, .shepherd-element *, .shepherd-element *:after, .shepherd-element *:before {
|
8 |
+
box-sizing: border-box; }
|
9 |
+
|
10 |
+
.shepherd-element {
|
11 |
+
position: absolute;
|
12 |
+
display: none; }
|
13 |
+
.shepherd-element.shepherd-open {
|
14 |
+
display: block; }
|
15 |
+
|
16 |
+
.shepherd-element.shepherd-theme-arrows {
|
17 |
+
max-width: 100%;
|
18 |
+
max-height: 100%; }
|
19 |
+
.shepherd-element.shepherd-theme-arrows .shepherd-content {
|
20 |
+
border-radius: 5px;
|
21 |
+
position: relative;
|
22 |
+
font-family: inherit;
|
23 |
+
background: #fff;
|
24 |
+
color: #444;
|
25 |
+
padding: 1em;
|
26 |
+
font-size: 1.1em;
|
27 |
+
line-height: 1.5em;
|
28 |
+
-webkit-transform: translateZ(0);
|
29 |
+
transform: translateZ(0);
|
30 |
+
-webkit-filter: drop-shadow(0 1px 4px rgba(0, 0, 0, 0.2));
|
31 |
+
filter: drop-shadow(0 1px 4px rgba(0, 0, 0, 0.2)); }
|
32 |
+
.shepherd-element.shepherd-theme-arrows .shepherd-content:before {
|
33 |
+
content: "";
|
34 |
+
display: block;
|
35 |
+
position: absolute;
|
36 |
+
width: 0;
|
37 |
+
height: 0;
|
38 |
+
border-color: transparent;
|
39 |
+
border-width: 16px;
|
40 |
+
border-style: solid;
|
41 |
+
pointer-events: none; }
|
42 |
+
.shepherd-element.shepherd-theme-arrows.shepherd-element-attached-bottom.shepherd-element-attached-center .shepherd-content {
|
43 |
+
margin-bottom: 16px; }
|
44 |
+
.shepherd-element.shepherd-theme-arrows.shepherd-element-attached-bottom.shepherd-element-attached-center .shepherd-content:before {
|
45 |
+
top: 100%;
|
46 |
+
left: 50%;
|
47 |
+
margin-left: -16px;
|
48 |
+
border-top-color: #fff; }
|
49 |
+
.shepherd-element.shepherd-theme-arrows.shepherd-element-attached-top.shepherd-element-attached-center .shepherd-content {
|
50 |
+
margin-top: 16px; }
|
51 |
+
.shepherd-element.shepherd-theme-arrows.shepherd-element-attached-top.shepherd-element-attached-center .shepherd-content:before {
|
52 |
+
bottom: 100%;
|
53 |
+
left: 50%;
|
54 |
+
margin-left: -16px;
|
55 |
+
border-bottom-color: #fff; }
|
56 |
+
.shepherd-element.shepherd-theme-arrows.shepherd-element-attached-right.shepherd-element-attached-middle .shepherd-content {
|
57 |
+
margin-right: 16px; }
|
58 |
+
.shepherd-element.shepherd-theme-arrows.shepherd-element-attached-right.shepherd-element-attached-middle .shepherd-content:before {
|
59 |
+
left: 100%;
|
60 |
+
top: 50%;
|
61 |
+
margin-top: -16px;
|
62 |
+
border-left-color: #fff; }
|
63 |
+
.shepherd-element.shepherd-theme-arrows.shepherd-element-attached-left.shepherd-element-attached-middle .shepherd-content {
|
64 |
+
margin-left: 16px; }
|
65 |
+
.shepherd-element.shepherd-theme-arrows.shepherd-element-attached-left.shepherd-element-attached-middle .shepherd-content:before {
|
66 |
+
right: 100%;
|
67 |
+
top: 50%;
|
68 |
+
margin-top: -16px;
|
69 |
+
border-right-color: #fff; }
|
70 |
+
.shepherd-element.shepherd-theme-arrows.shepherd-element-attached-left.shepherd-target-attached-center .shepherd-content {
|
71 |
+
left: -32px; }
|
72 |
+
.shepherd-element.shepherd-theme-arrows.shepherd-element-attached-right.shepherd-target-attached-center .shepherd-content {
|
73 |
+
left: 32px; }
|
74 |
+
.shepherd-element.shepherd-theme-arrows.shepherd-element-attached-top.shepherd-element-attached-left.shepherd-target-attached-middle .shepherd-content {
|
75 |
+
margin-top: 16px; }
|
76 |
+
.shepherd-element.shepherd-theme-arrows.shepherd-element-attached-top.shepherd-element-attached-left.shepherd-target-attached-middle .shepherd-content:before {
|
77 |
+
bottom: 100%;
|
78 |
+
left: 16px;
|
79 |
+
border-bottom-color: #fff; }
|
80 |
+
.shepherd-element.shepherd-theme-arrows.shepherd-element-attached-top.shepherd-element-attached-right.shepherd-target-attached-middle .shepherd-content {
|
81 |
+
margin-top: 16px; }
|
82 |
+
.shepherd-element.shepherd-theme-arrows.shepherd-element-attached-top.shepherd-element-attached-right.shepherd-target-attached-middle .shepherd-content:before {
|
83 |
+
bottom: 100%;
|
84 |
+
right: 16px;
|
85 |
+
border-bottom-color: #fff; }
|
86 |
+
.shepherd-element.shepherd-theme-arrows.shepherd-element-attached-bottom.shepherd-element-attached-left.shepherd-target-attached-middle .shepherd-content {
|
87 |
+
margin-bottom: 16px; }
|
88 |
+
.shepherd-element.shepherd-theme-arrows.shepherd-element-attached-bottom.shepherd-element-attached-left.shepherd-target-attached-middle .shepherd-content:before {
|
89 |
+
top: 100%;
|
90 |
+
left: 16px;
|
91 |
+
border-top-color: #fff; }
|
92 |
+
.shepherd-element.shepherd-theme-arrows.shepherd-element-attached-bottom.shepherd-element-attached-right.shepherd-target-attached-middle .shepherd-content {
|
93 |
+
margin-bottom: 16px; }
|
94 |
+
.shepherd-element.shepherd-theme-arrows.shepherd-element-attached-bottom.shepherd-element-attached-right.shepherd-target-attached-middle .shepherd-content:before {
|
95 |
+
top: 100%;
|
96 |
+
right: 16px;
|
97 |
+
border-top-color: #fff; }
|
98 |
+
.shepherd-element.shepherd-theme-arrows.shepherd-element-attached-top.shepherd-element-attached-left.shepherd-target-attached-bottom .shepherd-content {
|
99 |
+
margin-top: 16px; }
|
100 |
+
.shepherd-element.shepherd-theme-arrows.shepherd-element-attached-top.shepherd-element-attached-left.shepherd-target-attached-bottom .shepherd-content:before {
|
101 |
+
bottom: 100%;
|
102 |
+
left: 16px;
|
103 |
+
border-bottom-color: #fff; }
|
104 |
+
.shepherd-element.shepherd-theme-arrows.shepherd-element-attached-top.shepherd-element-attached-right.shepherd-target-attached-bottom .shepherd-content {
|
105 |
+
margin-top: 16px; }
|
106 |
+
.shepherd-element.shepherd-theme-arrows.shepherd-element-attached-top.shepherd-element-attached-right.shepherd-target-attached-bottom .shepherd-content:before {
|
107 |
+
bottom: 100%;
|
108 |
+
right: 16px;
|
109 |
+
border-bottom-color: #fff; }
|
110 |
+
.shepherd-element.shepherd-theme-arrows.shepherd-element-attached-bottom.shepherd-element-attached-left.shepherd-target-attached-top .shepherd-content {
|
111 |
+
margin-bottom: 16px; }
|
112 |
+
.shepherd-element.shepherd-theme-arrows.shepherd-element-attached-bottom.shepherd-element-attached-left.shepherd-target-attached-top .shepherd-content:before {
|
113 |
+
top: 100%;
|
114 |
+
left: 16px;
|
115 |
+
border-top-color: #fff; }
|
116 |
+
.shepherd-element.shepherd-theme-arrows.shepherd-element-attached-bottom.shepherd-element-attached-right.shepherd-target-attached-top .shepherd-content {
|
117 |
+
margin-bottom: 16px; }
|
118 |
+
.shepherd-element.shepherd-theme-arrows.shepherd-element-attached-bottom.shepherd-element-attached-right.shepherd-target-attached-top .shepherd-content:before {
|
119 |
+
top: 100%;
|
120 |
+
right: 16px;
|
121 |
+
border-top-color: #fff; }
|
122 |
+
.shepherd-element.shepherd-theme-arrows.shepherd-element-attached-top.shepherd-element-attached-right.shepherd-target-attached-left .shepherd-content {
|
123 |
+
margin-right: 16px; }
|
124 |
+
.shepherd-element.shepherd-theme-arrows.shepherd-element-attached-top.shepherd-element-attached-right.shepherd-target-attached-left .shepherd-content:before {
|
125 |
+
top: 16px;
|
126 |
+
left: 100%;
|
127 |
+
border-left-color: #fff; }
|
128 |
+
.shepherd-element.shepherd-theme-arrows.shepherd-element-attached-top.shepherd-element-attached-left.shepherd-target-attached-right .shepherd-content {
|
129 |
+
margin-left: 16px; }
|
130 |
+
.shepherd-element.shepherd-theme-arrows.shepherd-element-attached-top.shepherd-element-attached-left.shepherd-target-attached-right .shepherd-content:before {
|
131 |
+
top: 16px;
|
132 |
+
right: 100%;
|
133 |
+
border-right-color: #fff; }
|
134 |
+
.shepherd-element.shepherd-theme-arrows.shepherd-element-attached-bottom.shepherd-element-attached-right.shepherd-target-attached-left .shepherd-content {
|
135 |
+
margin-right: 16px; }
|
136 |
+
.shepherd-element.shepherd-theme-arrows.shepherd-element-attached-bottom.shepherd-element-attached-right.shepherd-target-attached-left .shepherd-content:before {
|
137 |
+
bottom: 16px;
|
138 |
+
left: 100%;
|
139 |
+
border-left-color: #fff; }
|
140 |
+
.shepherd-element.shepherd-theme-arrows.shepherd-element-attached-bottom.shepherd-element-attached-left.shepherd-target-attached-right .shepherd-content {
|
141 |
+
margin-left: 16px; }
|
142 |
+
.shepherd-element.shepherd-theme-arrows.shepherd-element-attached-bottom.shepherd-element-attached-left.shepherd-target-attached-right .shepherd-content:before {
|
143 |
+
bottom: 16px;
|
144 |
+
right: 100%;
|
145 |
+
border-right-color: #fff; }
|
146 |
+
|
147 |
+
.shepherd-element.shepherd-theme-arrows.shepherd-element-attached-top.shepherd-element-attached-center.shepherd-has-title .shepherd-content:before, .shepherd-element.shepherd-theme-arrows.shepherd-element-attached-top.shepherd-element-attached-right.shepherd-target-attached-bottom.shepherd-has-title .shepherd-content:before, .shepherd-element.shepherd-theme-arrows.shepherd-element-attached-top.shepherd-element-attached-left.shepherd-target-attached-bottom.shepherd-has-title .shepherd-content:before {
|
148 |
+
border-bottom-color: #eee; }
|
149 |
+
|
150 |
+
.shepherd-element.shepherd-theme-arrows.shepherd-has-title .shepherd-content header {
|
151 |
+
background: #eee;
|
152 |
+
padding: 1em; }
|
153 |
+
.shepherd-element.shepherd-theme-arrows.shepherd-has-title .shepherd-content header a.shepherd-cancel-link {
|
154 |
+
padding: 0;
|
155 |
+
margin-bottom: 0; }
|
156 |
+
|
157 |
+
.shepherd-element.shepherd-theme-arrows.shepherd-has-cancel-link .shepherd-content header h3 {
|
158 |
+
float: left; }
|
159 |
+
|
160 |
+
.shepherd-element.shepherd-theme-arrows .shepherd-content {
|
161 |
+
padding: 0; }
|
162 |
+
.shepherd-element.shepherd-theme-arrows .shepherd-content * {
|
163 |
+
font-size: inherit; }
|
164 |
+
.shepherd-element.shepherd-theme-arrows .shepherd-content header {
|
165 |
+
*zoom: 1;
|
166 |
+
border-radius: 5px 5px 0 0; }
|
167 |
+
.shepherd-element.shepherd-theme-arrows .shepherd-content header:after {
|
168 |
+
content: "";
|
169 |
+
display: table;
|
170 |
+
clear: both; }
|
171 |
+
.shepherd-element.shepherd-theme-arrows .shepherd-content header h3 {
|
172 |
+
margin: 0;
|
173 |
+
line-height: 1;
|
174 |
+
font-weight: normal; }
|
175 |
+
.shepherd-element.shepherd-theme-arrows .shepherd-content header a.shepherd-cancel-link {
|
176 |
+
float: right;
|
177 |
+
text-decoration: none;
|
178 |
+
font-size: 1.25em;
|
179 |
+
line-height: .8em;
|
180 |
+
font-weight: normal;
|
181 |
+
color: rgba(0, 0, 0, 0.5);
|
182 |
+
opacity: 0.25;
|
183 |
+
position: relative;
|
184 |
+
top: .1em;
|
185 |
+
padding: .8em;
|
186 |
+
margin-bottom: -.8em; }
|
187 |
+
.shepherd-element.shepherd-theme-arrows .shepherd-content header a.shepherd-cancel-link:hover {
|
188 |
+
opacity: 1; }
|
189 |
+
.shepherd-element.shepherd-theme-arrows .shepherd-content .shepherd-text {
|
190 |
+
padding: 1em; }
|
191 |
+
.shepherd-element.shepherd-theme-arrows .shepherd-content .shepherd-text p {
|
192 |
+
margin: 0 0 .5em 0;
|
193 |
+
line-height: 1.3em; }
|
194 |
+
.shepherd-element.shepherd-theme-arrows .shepherd-content .shepherd-text p:last-child {
|
195 |
+
margin-bottom: 0; }
|
196 |
+
.shepherd-element.shepherd-theme-arrows .shepherd-content footer {
|
197 |
+
padding: 0 1em 1em; }
|
198 |
+
.shepherd-element.shepherd-theme-arrows .shepherd-content footer .shepherd-buttons {
|
199 |
+
text-align: right;
|
200 |
+
list-style: none;
|
201 |
+
padding: 0;
|
202 |
+
margin: 0; }
|
203 |
+
.shepherd-element.shepherd-theme-arrows .shepherd-content footer .shepherd-buttons li {
|
204 |
+
display: inline;
|
205 |
+
padding: 0;
|
206 |
+
margin: 0; }
|
207 |
+
.shepherd-element.shepherd-theme-arrows .shepherd-content footer .shepherd-buttons li .shepherd-button {
|
208 |
+
display: inline-block;
|
209 |
+
vertical-align: middle;
|
210 |
+
*vertical-align: auto;
|
211 |
+
*zoom: 1;
|
212 |
+
*display: inline;
|
213 |
+
border-radius: 3px;
|
214 |
+
cursor: pointer;
|
215 |
+
border: 0;
|
216 |
+
margin: 0 .5em 0 0;
|
217 |
+
font-family: inherit;
|
218 |
+
text-transform: uppercase;
|
219 |
+
letter-spacing: .1em;
|
220 |
+
font-size: .8em;
|
221 |
+
line-height: 1em;
|
222 |
+
padding: .75em 2em;
|
223 |
+
background: #3288e6;
|
224 |
+
color: #fff; }
|
225 |
+
.shepherd-element.shepherd-theme-arrows .shepherd-content footer .shepherd-buttons li .shepherd-button.shepherd-button-secondary {
|
226 |
+
background: #eee;
|
227 |
+
color: #888; }
|
228 |
+
.shepherd-element.shepherd-theme-arrows .shepherd-content footer .shepherd-buttons li:last-child .shepherd-button {
|
229 |
+
margin-right: 0; }
|
admin/assets/tether-shepherd/shepherd-theme-arrows.min.css
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
.shepherd-element-attached-bottom.shepherd-element-attached-right.shepherd-target-attached-top.shepherd-target-attached-left .shepherd-content:before,.shepherd-element-attached-bottom.shepherd-element-attached-left.shepherd-target-attached-top.shepherd-target-attached-right .shepherd-content:before,.shepherd-element-attached-top.shepherd-element-attached-right.shepherd-target-attached-bottom.shepherd-target-attached-left .shepherd-content:before,.shepherd-element-attached-top.shepherd-element-attached-left.shepherd-target-attached-bottom.shepherd-target-attached-right .shepherd-content:before{display:none}.shepherd-element,.shepherd-element:after,.shepherd-element:before,.shepherd-element *,.shepherd-element *:after,.shepherd-element *:before{box-sizing:border-box}.shepherd-element{position:absolute;display:none}.shepherd-element.shepherd-open{display:block}.shepherd-element.shepherd-theme-arrows{max-width:100%;max-height:100%}.shepherd-element.shepherd-theme-arrows .shepherd-content{border-radius:5px;position:relative;font-family:inherit;background:#fff;color:#444;padding:1em;font-size:1.1em;line-height:1.5em;-webkit-transform:translateZ(0);transform:translateZ(0);-webkit-filter:drop-shadow(0 1px 4px rgba(0,0,0,0.2));filter:drop-shadow(0 1px 4px rgba(0,0,0,0.2))}.shepherd-element.shepherd-theme-arrows .shepherd-content:before{content:"";display:block;position:absolute;width:0;height:0;border-color:transparent;border-width:16px;border-style:solid;pointer-events:none}.shepherd-element.shepherd-theme-arrows.shepherd-element-attached-bottom.shepherd-element-attached-center .shepherd-content{margin-bottom:16px}.shepherd-element.shepherd-theme-arrows.shepherd-element-attached-bottom.shepherd-element-attached-center .shepherd-content:before{top:100%;left:50%;margin-left:-16px;border-top-color:#fff}.shepherd-element.shepherd-theme-arrows.shepherd-element-attached-top.shepherd-element-attached-center .shepherd-content{margin-top:16px}.shepherd-element.shepherd-theme-arrows.shepherd-element-attached-top.shepherd-element-attached-center .shepherd-content:before{bottom:100%;left:50%;margin-left:-16px;border-bottom-color:#fff}.shepherd-element.shepherd-theme-arrows.shepherd-element-attached-right.shepherd-element-attached-middle .shepherd-content{margin-right:16px}.shepherd-element.shepherd-theme-arrows.shepherd-element-attached-right.shepherd-element-attached-middle .shepherd-content:before{left:100%;top:50%;margin-top:-16px;border-left-color:#fff}.shepherd-element.shepherd-theme-arrows.shepherd-element-attached-left.shepherd-element-attached-middle .shepherd-content{margin-left:16px}.shepherd-element.shepherd-theme-arrows.shepherd-element-attached-left.shepherd-element-attached-middle .shepherd-content:before{right:100%;top:50%;margin-top:-16px;border-right-color:#fff}.shepherd-element.shepherd-theme-arrows.shepherd-element-attached-left.shepherd-target-attached-center .shepherd-content{left:-32px}.shepherd-element.shepherd-theme-arrows.shepherd-element-attached-right.shepherd-target-attached-center .shepherd-content{left:32px}.shepherd-element.shepherd-theme-arrows.shepherd-element-attached-top.shepherd-element-attached-left.shepherd-target-attached-middle .shepherd-content{margin-top:16px}.shepherd-element.shepherd-theme-arrows.shepherd-element-attached-top.shepherd-element-attached-left.shepherd-target-attached-middle .shepherd-content:before{bottom:100%;left:16px;border-bottom-color:#fff}.shepherd-element.shepherd-theme-arrows.shepherd-element-attached-top.shepherd-element-attached-right.shepherd-target-attached-middle .shepherd-content{margin-top:16px}.shepherd-element.shepherd-theme-arrows.shepherd-element-attached-top.shepherd-element-attached-right.shepherd-target-attached-middle .shepherd-content:before{bottom:100%;right:16px;border-bottom-color:#fff}.shepherd-element.shepherd-theme-arrows.shepherd-element-attached-bottom.shepherd-element-attached-left.shepherd-target-attached-middle .shepherd-content{margin-bottom:16px}.shepherd-element.shepherd-theme-arrows.shepherd-element-attached-bottom.shepherd-element-attached-left.shepherd-target-attached-middle .shepherd-content:before{top:100%;left:16px;border-top-color:#fff}.shepherd-element.shepherd-theme-arrows.shepherd-element-attached-bottom.shepherd-element-attached-right.shepherd-target-attached-middle .shepherd-content{margin-bottom:16px}.shepherd-element.shepherd-theme-arrows.shepherd-element-attached-bottom.shepherd-element-attached-right.shepherd-target-attached-middle .shepherd-content:before{top:100%;right:16px;border-top-color:#fff}.shepherd-element.shepherd-theme-arrows.shepherd-element-attached-top.shepherd-element-attached-left.shepherd-target-attached-bottom .shepherd-content{margin-top:16px}.shepherd-element.shepherd-theme-arrows.shepherd-element-attached-top.shepherd-element-attached-left.shepherd-target-attached-bottom .shepherd-content:before{bottom:100%;left:16px;border-bottom-color:#fff}.shepherd-element.shepherd-theme-arrows.shepherd-element-attached-top.shepherd-element-attached-right.shepherd-target-attached-bottom .shepherd-content{margin-top:16px}.shepherd-element.shepherd-theme-arrows.shepherd-element-attached-top.shepherd-element-attached-right.shepherd-target-attached-bottom .shepherd-content:before{bottom:100%;right:16px;border-bottom-color:#fff}.shepherd-element.shepherd-theme-arrows.shepherd-element-attached-bottom.shepherd-element-attached-left.shepherd-target-attached-top .shepherd-content{margin-bottom:16px}.shepherd-element.shepherd-theme-arrows.shepherd-element-attached-bottom.shepherd-element-attached-left.shepherd-target-attached-top .shepherd-content:before{top:100%;left:16px;border-top-color:#fff}.shepherd-element.shepherd-theme-arrows.shepherd-element-attached-bottom.shepherd-element-attached-right.shepherd-target-attached-top .shepherd-content{margin-bottom:16px}.shepherd-element.shepherd-theme-arrows.shepherd-element-attached-bottom.shepherd-element-attached-right.shepherd-target-attached-top .shepherd-content:before{top:100%;right:16px;border-top-color:#fff}.shepherd-element.shepherd-theme-arrows.shepherd-element-attached-top.shepherd-element-attached-right.shepherd-target-attached-left .shepherd-content{margin-right:16px}.shepherd-element.shepherd-theme-arrows.shepherd-element-attached-top.shepherd-element-attached-right.shepherd-target-attached-left .shepherd-content:before{top:16px;left:100%;border-left-color:#fff}.shepherd-element.shepherd-theme-arrows.shepherd-element-attached-top.shepherd-element-attached-left.shepherd-target-attached-right .shepherd-content{margin-left:16px}.shepherd-element.shepherd-theme-arrows.shepherd-element-attached-top.shepherd-element-attached-left.shepherd-target-attached-right .shepherd-content:before{top:16px;right:100%;border-right-color:#fff}.shepherd-element.shepherd-theme-arrows.shepherd-element-attached-bottom.shepherd-element-attached-right.shepherd-target-attached-left .shepherd-content{margin-right:16px}.shepherd-element.shepherd-theme-arrows.shepherd-element-attached-bottom.shepherd-element-attached-right.shepherd-target-attached-left .shepherd-content:before{bottom:16px;left:100%;border-left-color:#fff}.shepherd-element.shepherd-theme-arrows.shepherd-element-attached-bottom.shepherd-element-attached-left.shepherd-target-attached-right .shepherd-content{margin-left:16px}.shepherd-element.shepherd-theme-arrows.shepherd-element-attached-bottom.shepherd-element-attached-left.shepherd-target-attached-right .shepherd-content:before{bottom:16px;right:100%;border-right-color:#fff}.shepherd-element.shepherd-theme-arrows.shepherd-element-attached-top.shepherd-element-attached-center.shepherd-has-title .shepherd-content:before,.shepherd-element.shepherd-theme-arrows.shepherd-element-attached-top.shepherd-element-attached-right.shepherd-target-attached-bottom.shepherd-has-title .shepherd-content:before,.shepherd-element.shepherd-theme-arrows.shepherd-element-attached-top.shepherd-element-attached-left.shepherd-target-attached-bottom.shepherd-has-title .shepherd-content:before{border-bottom-color:#eee}.shepherd-element.shepherd-theme-arrows.shepherd-has-title .shepherd-content header{background:#eee;padding:1em}.shepherd-element.shepherd-theme-arrows.shepherd-has-title .shepherd-content header a.shepherd-cancel-link{padding:0;margin-bottom:0}.shepherd-element.shepherd-theme-arrows.shepherd-has-cancel-link .shepherd-content header h3{float:left}.shepherd-element.shepherd-theme-arrows .shepherd-content{padding:0}.shepherd-element.shepherd-theme-arrows .shepherd-content *{font-size:inherit}.shepherd-element.shepherd-theme-arrows .shepherd-content header{*zoom:1;border-radius:5px 5px 0 0}.shepherd-element.shepherd-theme-arrows .shepherd-content header:after{content:"";display:table;clear:both}.shepherd-element.shepherd-theme-arrows .shepherd-content header h3{margin:0;line-height:1;font-weight:normal}.shepherd-element.shepherd-theme-arrows .shepherd-content header a.shepherd-cancel-link{float:right;text-decoration:none;font-size:1.25em;line-height:.8em;font-weight:normal;color:rgba(0,0,0,0.5);opacity:.25;position:relative;top:.1em;padding:.8em;margin-bottom:-.8em}.shepherd-element.shepherd-theme-arrows .shepherd-content header a.shepherd-cancel-link:hover{opacity:1}.shepherd-element.shepherd-theme-arrows .shepherd-content .shepherd-text{padding:1em}.shepherd-element.shepherd-theme-arrows .shepherd-content .shepherd-text p{margin:0 0 .5em 0;line-height:1.3em}.shepherd-element.shepherd-theme-arrows .shepherd-content .shepherd-text p:last-child{margin-bottom:0}.shepherd-element.shepherd-theme-arrows .shepherd-content footer{padding:0 1em 1em}.shepherd-element.shepherd-theme-arrows .shepherd-content footer .shepherd-buttons{text-align:right;list-style:none;padding:0;margin:0}.shepherd-element.shepherd-theme-arrows .shepherd-content footer .shepherd-buttons li{display:inline;padding:0;margin:0}.shepherd-element.shepherd-theme-arrows .shepherd-content footer .shepherd-buttons li .shepherd-button{display:inline-block;vertical-align:middle;*vertical-align:auto;*zoom:1;*display:inline;border-radius:3px;cursor:pointer;border:0;margin:0 .5em 0 0;font-family:inherit;text-transform:uppercase;letter-spacing:.1em;font-size:.8em;line-height:1em;padding:.75em 2em;background:#3288e6;color:#fff}.shepherd-element.shepherd-theme-arrows .shepherd-content footer .shepherd-buttons li .shepherd-button.shepherd-button-secondary{background:#eee;color:#888}.shepherd-element.shepherd-theme-arrows .shepherd-content footer .shepherd-buttons li:last-child .shepherd-button{margin-right:0}
|
admin/assets/tether-shepherd/shepherd-theme-dark.css
ADDED
@@ -0,0 +1,246 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
.shepherd-element-attached-bottom.shepherd-element-attached-right.shepherd-target-attached-top.shepherd-target-attached-left .shepherd-content:before,
|
2 |
+
.shepherd-element-attached-bottom.shepherd-element-attached-left.shepherd-target-attached-top.shepherd-target-attached-right .shepherd-content:before,
|
3 |
+
.shepherd-element-attached-top.shepherd-element-attached-right.shepherd-target-attached-bottom.shepherd-target-attached-left .shepherd-content:before,
|
4 |
+
.shepherd-element-attached-top.shepherd-element-attached-left.shepherd-target-attached-bottom.shepherd-target-attached-right .shepherd-content:before {
|
5 |
+
display: none; }
|
6 |
+
|
7 |
+
.shepherd-element, .shepherd-element:after, .shepherd-element:before, .shepherd-element *, .shepherd-element *:after, .shepherd-element *:before {
|
8 |
+
box-sizing: border-box; }
|
9 |
+
|
10 |
+
.shepherd-element {
|
11 |
+
position: absolute;
|
12 |
+
display: none; }
|
13 |
+
.shepherd-element.shepherd-open {
|
14 |
+
display: block; }
|
15 |
+
|
16 |
+
.shepherd-element.shepherd-theme-dark {
|
17 |
+
max-width: 100%;
|
18 |
+
max-height: 100%; }
|
19 |
+
.shepherd-element.shepherd-theme-dark .shepherd-content {
|
20 |
+
border-radius: 5px;
|
21 |
+
position: relative;
|
22 |
+
font-family: inherit;
|
23 |
+
background: #232323;
|
24 |
+
color: #eee;
|
25 |
+
padding: 1em;
|
26 |
+
font-size: 1.1em;
|
27 |
+
line-height: 1.5em; }
|
28 |
+
.shepherd-element.shepherd-theme-dark .shepherd-content:before {
|
29 |
+
content: "";
|
30 |
+
display: block;
|
31 |
+
position: absolute;
|
32 |
+
width: 0;
|
33 |
+
height: 0;
|
34 |
+
border-color: transparent;
|
35 |
+
border-width: 16px;
|
36 |
+
border-style: solid;
|
37 |
+
pointer-events: none; }
|
38 |
+
.shepherd-element.shepherd-theme-dark.shepherd-element-attached-bottom.shepherd-element-attached-center .shepherd-content {
|
39 |
+
margin-bottom: 16px; }
|
40 |
+
.shepherd-element.shepherd-theme-dark.shepherd-element-attached-bottom.shepherd-element-attached-center .shepherd-content:before {
|
41 |
+
top: 100%;
|
42 |
+
left: 50%;
|
43 |
+
margin-left: -16px;
|
44 |
+
border-top-color: #232323; }
|
45 |
+
.shepherd-element.shepherd-theme-dark.shepherd-element-attached-top.shepherd-element-attached-center .shepherd-content {
|
46 |
+
margin-top: 16px; }
|
47 |
+
.shepherd-element.shepherd-theme-dark.shepherd-element-attached-top.shepherd-element-attached-center .shepherd-content:before {
|
48 |
+
bottom: 100%;
|
49 |
+
left: 50%;
|
50 |
+
margin-left: -16px;
|
51 |
+
border-bottom-color: #232323; }
|
52 |
+
.shepherd-element.shepherd-theme-dark.shepherd-element-attached-right.shepherd-element-attached-middle .shepherd-content {
|
53 |
+
margin-right: 16px; }
|
54 |
+
.shepherd-element.shepherd-theme-dark.shepherd-element-attached-right.shepherd-element-attached-middle .shepherd-content:before {
|
55 |
+
left: 100%;
|
56 |
+
top: 50%;
|
57 |
+
margin-top: -16px;
|
58 |
+
border-left-color: #232323; }
|
59 |
+
.shepherd-element.shepherd-theme-dark.shepherd-element-attached-left.shepherd-element-attached-middle .shepherd-content {
|
60 |
+
margin-left: 16px; }
|
61 |
+
.shepherd-element.shepherd-theme-dark.shepherd-element-attached-left.shepherd-element-attached-middle .shepherd-content:before {
|
62 |
+
right: 100%;
|
63 |
+
top: 50%;
|
64 |
+
margin-top: -16px;
|
65 |
+
border-right-color: #232323; }
|
66 |
+
.shepherd-element.shepherd-theme-dark.shepherd-element-attached-left.shepherd-target-attached-center .shepherd-content {
|
67 |
+
left: -32px; }
|
68 |
+
.shepherd-element.shepherd-theme-dark.shepherd-element-attached-right.shepherd-target-attached-center .shepherd-content {
|
69 |
+
left: 32px; }
|
70 |
+
.shepherd-element.shepherd-theme-dark.shepherd-element-attached-top.shepherd-element-attached-left.shepherd-target-attached-middle .shepherd-content {
|
71 |
+
margin-top: 16px; }
|
72 |
+
.shepherd-element.shepherd-theme-dark.shepherd-element-attached-top.shepherd-element-attached-left.shepherd-target-attached-middle .shepherd-content:before {
|
73 |
+
bottom: 100%;
|
74 |
+
left: 16px;
|
75 |
+
border-bottom-color: #232323; }
|
76 |
+
.shepherd-element.shepherd-theme-dark.shepherd-element-attached-top.shepherd-element-attached-right.shepherd-target-attached-middle .shepherd-content {
|
77 |
+
margin-top: 16px; }
|
78 |
+
.shepherd-element.shepherd-theme-dark.shepherd-element-attached-top.shepherd-element-attached-right.shepherd-target-attached-middle .shepherd-content:before {
|
79 |
+
bottom: 100%;
|
80 |
+
right: 16px;
|
81 |
+
border-bottom-color: #232323; }
|
82 |
+
.shepherd-element.shepherd-theme-dark.shepherd-element-attached-bottom.shepherd-element-attached-left.shepherd-target-attached-middle .shepherd-content {
|
83 |
+
margin-bottom: 16px; }
|
84 |
+
.shepherd-element.shepherd-theme-dark.shepherd-element-attached-bottom.shepherd-element-attached-left.shepherd-target-attached-middle .shepherd-content:before {
|
85 |
+
top: 100%;
|
86 |
+
left: 16px;
|
87 |
+
border-top-color: #232323; }
|
88 |
+
.shepherd-element.shepherd-theme-dark.shepherd-element-attached-bottom.shepherd-element-attached-right.shepherd-target-attached-middle .shepherd-content {
|
89 |
+
margin-bottom: 16px; }
|
90 |
+
.shepherd-element.shepherd-theme-dark.shepherd-element-attached-bottom.shepherd-element-attached-right.shepherd-target-attached-middle .shepherd-content:before {
|
91 |
+
top: 100%;
|
92 |
+
right: 16px;
|
93 |
+
border-top-color: #232323; }
|
94 |
+
.shepherd-element.shepherd-theme-dark.shepherd-element-attached-top.shepherd-element-attached-left.shepherd-target-attached-bottom .shepherd-content {
|
95 |
+
margin-top: 16px; }
|
96 |
+
.shepherd-element.shepherd-theme-dark.shepherd-element-attached-top.shepherd-element-attached-left.shepherd-target-attached-bottom .shepherd-content:before {
|
97 |
+
bottom: 100%;
|
98 |
+
left: 16px;
|
99 |
+
border-bottom-color: #232323; }
|
100 |
+
.shepherd-element.shepherd-theme-dark.shepherd-element-attached-top.shepherd-element-attached-right.shepherd-target-attached-bottom .shepherd-content {
|
101 |
+
margin-top: 16px; }
|
102 |
+
.shepherd-element.shepherd-theme-dark.shepherd-element-attached-top.shepherd-element-attached-right.shepherd-target-attached-bottom .shepherd-content:before {
|
103 |
+
bottom: 100%;
|
104 |
+
right: 16px;
|
105 |
+
border-bottom-color: #232323; }
|
106 |
+
.shepherd-element.shepherd-theme-dark.shepherd-element-attached-bottom.shepherd-element-attached-left.shepherd-target-attached-top .shepherd-content {
|
107 |
+
margin-bottom: 16px; }
|
108 |
+
.shepherd-element.shepherd-theme-dark.shepherd-element-attached-bottom.shepherd-element-attached-left.shepherd-target-attached-top .shepherd-content:before {
|
109 |
+
top: 100%;
|
110 |
+
left: 16px;
|
111 |
+
border-top-color: #232323; }
|
112 |
+
.shepherd-element.shepherd-theme-dark.shepherd-element-attached-bottom.shepherd-element-attached-right.shepherd-target-attached-top .shepherd-content {
|
113 |
+
margin-bottom: 16px; }
|
114 |
+
.shepherd-element.shepherd-theme-dark.shepherd-element-attached-bottom.shepherd-element-attached-right.shepherd-target-attached-top .shepherd-content:before {
|
115 |
+
top: 100%;
|
116 |
+
right: 16px;
|
117 |
+
border-top-color: #232323; }
|
118 |
+
.shepherd-element.shepherd-theme-dark.shepherd-element-attached-top.shepherd-element-attached-right.shepherd-target-attached-left .shepherd-content {
|
119 |
+
margin-right: 16px; }
|
120 |
+
.shepherd-element.shepherd-theme-dark.shepherd-element-attached-top.shepherd-element-attached-right.shepherd-target-attached-left .shepherd-content:before {
|
121 |
+
top: 16px;
|
122 |
+
left: 100%;
|
123 |
+
border-left-color: #232323; }
|
124 |
+
.shepherd-element.shepherd-theme-dark.shepherd-element-attached-top.shepherd-element-attached-left.shepherd-target-attached-right .shepherd-content {
|
125 |
+
margin-left: 16px; }
|
126 |
+
.shepherd-element.shepherd-theme-dark.shepherd-element-attached-top.shepherd-element-attached-left.shepherd-target-attached-right .shepherd-content:before {
|
127 |
+
top: 16px;
|
128 |
+
right: 100%;
|
129 |
+
border-right-color: #232323; }
|
130 |
+
.shepherd-element.shepherd-theme-dark.shepherd-element-attached-bottom.shepherd-element-attached-right.shepherd-target-attached-left .shepherd-content {
|
131 |
+
margin-right: 16px; }
|
132 |
+
.shepherd-element.shepherd-theme-dark.shepherd-element-attached-bottom.shepherd-element-attached-right.shepherd-target-attached-left .shepherd-content:before {
|
133 |
+
bottom: 16px;
|
134 |
+
left: 100%;
|
135 |
+
border-left-color: #232323; }
|
136 |
+
.shepherd-element.shepherd-theme-dark.shepherd-element-attached-bottom.shepherd-element-attached-left.shepherd-target-attached-right .shepherd-content {
|
137 |
+
margin-left: 16px; }
|
138 |
+
.shepherd-element.shepherd-theme-dark.shepherd-element-attached-bottom.shepherd-element-attached-left.shepherd-target-attached-right .shepherd-content:before {
|
139 |
+
bottom: 16px;
|
140 |
+
right: 100%;
|
141 |
+
border-right-color: #232323; }
|
142 |
+
|
143 |
+
.shepherd-element.shepherd-theme-dark {
|
144 |
+
z-index: 9999;
|
145 |
+
max-width: 24em;
|
146 |
+
font-size: 1em; }
|
147 |
+
.shepherd-element.shepherd-theme-dark.shepherd-element-attached-top.shepherd-element-attached-center.shepherd-has-title .shepherd-content:before, .shepherd-element.shepherd-theme-dark.shepherd-element-attached-top.shepherd-element-attached-right.shepherd-target-attached-bottom.shepherd-has-title .shepherd-content:before, .shepherd-element.shepherd-theme-dark.shepherd-element-attached-top.shepherd-element-attached-left.shepherd-target-attached-bottom.shepherd-has-title .shepherd-content:before {
|
148 |
+
border-bottom-color: #303030; }
|
149 |
+
.shepherd-element.shepherd-theme-dark.shepherd-has-title .shepherd-content header {
|
150 |
+
background: #303030;
|
151 |
+
padding: 1em; }
|
152 |
+
.shepherd-element.shepherd-theme-dark.shepherd-has-title .shepherd-content header a.shepherd-cancel-link {
|
153 |
+
padding: 0;
|
154 |
+
margin-bottom: 0; }
|
155 |
+
.shepherd-element.shepherd-theme-dark.shepherd-has-cancel-link .shepherd-content header h3 {
|
156 |
+
float: left; }
|
157 |
+
.shepherd-element.shepherd-theme-dark .shepherd-content {
|
158 |
+
box-shadow: 0 0 1em rgba(0, 0, 0, 0.2);
|
159 |
+
padding: 0; }
|
160 |
+
.shepherd-element.shepherd-theme-dark .shepherd-content * {
|
161 |
+
font-size: inherit; }
|
162 |
+
.shepherd-element.shepherd-theme-dark .shepherd-content header {
|
163 |
+
*zoom: 1;
|
164 |
+
border-radius: 5px 5px 0 0; }
|
165 |
+
.shepherd-element.shepherd-theme-dark .shepherd-content header:after {
|
166 |
+
content: "";
|
167 |
+
display: table;
|
168 |
+
clear: both; }
|
169 |
+
.shepherd-element.shepherd-theme-dark .shepherd-content header h3 {
|
170 |
+
margin: 0;
|
171 |
+
line-height: 1;
|
172 |
+
font-weight: normal; }
|
173 |
+
.shepherd-element.shepherd-theme-dark .shepherd-content header a.shepherd-cancel-link {
|
174 |
+
float: right;
|
175 |
+
text-decoration: none;
|
176 |
+
font-size: 1.25em;
|
177 |
+
line-height: .8em;
|
178 |
+
font-weight: normal;
|
179 |
+
color: rgba(0, 0, 0, 0.5);
|
180 |
+
opacity: 0.25;
|
181 |
+
position: relative;
|
182 |
+
top: .1em;
|
183 |
+
padding: .8em;
|
184 |
+
margin-bottom: -.8em; }
|
185 |
+
.shepherd-element.shepherd-theme-dark .shepherd-content header a.shepherd-cancel-link:hover {
|
186 |
+
opacity: 1; }
|
187 |
+
.shepherd-element.shepherd-theme-dark .shepherd-content .shepherd-text {
|
188 |
+
padding: 1em; }
|
189 |
+
.shepherd-element.shepherd-theme-dark .shepherd-content .shepherd-text p {
|
190 |
+
margin: 0 0 .5em 0;
|
191 |
+
line-height: 1.3em; }
|
192 |
+
.shepherd-element.shepherd-theme-dark .shepherd-content .shepherd-text p:last-child {
|
193 |
+
margin-bottom: 0; }
|
194 |
+
.shepherd-element.shepherd-theme-dark .shepherd-content footer {
|
195 |
+
padding: 0 1em 1em; }
|
196 |
+
.shepherd-element.shepherd-theme-dark .shepherd-content footer .shepherd-buttons {
|
197 |
+
text-align: right;
|
198 |
+
list-style: none;
|
199 |
+
padding: 0;
|
200 |
+
margin: 0; }
|
201 |
+
.shepherd-element.shepherd-theme-dark .shepherd-content footer .shepherd-buttons li {
|
202 |
+
display: inline;
|
203 |
+
padding: 0;
|
204 |
+
margin: 0; }
|
205 |
+
.shepherd-element.shepherd-theme-dark .shepherd-content footer .shepherd-buttons li .shepherd-button {
|
206 |
+
display: inline-block;
|
207 |
+
vertical-align: middle;
|
208 |
+
*vertical-align: auto;
|
209 |
+
*zoom: 1;
|
210 |
+
*display: inline;
|
211 |
+
border-radius: 3px;
|
212 |
+
cursor: pointer;
|
213 |
+
border: 0;
|
214 |
+
margin: 0 .5em 0 0;
|
215 |
+
font-family: inherit;
|
216 |
+
text-transform: uppercase;
|
217 |
+
letter-spacing: .1em;
|
218 |
+
font-size: .8em;
|
219 |
+
line-height: 1em;
|
220 |
+
padding: .75em 2em;
|
221 |
+
background: #3288e6;
|
222 |
+
color: #fff; }
|
223 |
+
.shepherd-element.shepherd-theme-dark .shepherd-content footer .shepherd-buttons li .shepherd-button.shepherd-button-secondary {
|
224 |
+
background: #eee;
|
225 |
+
color: #888; }
|
226 |
+
.shepherd-element.shepherd-theme-dark .shepherd-content footer .shepherd-buttons li:last-child .shepherd-button {
|
227 |
+
margin-right: 0; }
|
228 |
+
|
229 |
+
.shepherd-start-tour-button.shepherd-theme-dark {
|
230 |
+
display: inline-block;
|
231 |
+
vertical-align: middle;
|
232 |
+
*vertical-align: auto;
|
233 |
+
*zoom: 1;
|
234 |
+
*display: inline;
|
235 |
+
border-radius: 3px;
|
236 |
+
cursor: pointer;
|
237 |
+
border: 0;
|
238 |
+
margin: 0 .5em 0 0;
|
239 |
+
font-family: inherit;
|
240 |
+
text-transform: uppercase;
|
241 |
+
letter-spacing: .1em;
|
242 |
+
font-size: .8em;
|
243 |
+
line-height: 1em;
|
244 |
+
padding: .75em 2em;
|
245 |
+
background: #3288e6;
|
246 |
+
color: #fff; }
|
admin/assets/tether-shepherd/shepherd-theme-dark.min.css
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
.shepherd-element-attached-bottom.shepherd-element-attached-right.shepherd-target-attached-top.shepherd-target-attached-left .shepherd-content:before,.shepherd-element-attached-bottom.shepherd-element-attached-left.shepherd-target-attached-top.shepherd-target-attached-right .shepherd-content:before,.shepherd-element-attached-top.shepherd-element-attached-right.shepherd-target-attached-bottom.shepherd-target-attached-left .shepherd-content:before,.shepherd-element-attached-top.shepherd-element-attached-left.shepherd-target-attached-bottom.shepherd-target-attached-right .shepherd-content:before{display:none}.shepherd-element,.shepherd-element:after,.shepherd-element:before,.shepherd-element *,.shepherd-element *:after,.shepherd-element *:before{box-sizing:border-box}.shepherd-element{position:absolute;display:none}.shepherd-element.shepherd-open{display:block}.shepherd-element.shepherd-theme-dark{max-width:100%;max-height:100%}.shepherd-element.shepherd-theme-dark .shepherd-content{border-radius:5px;position:relative;font-family:inherit;background:#232323;color:#eee;padding:1em;font-size:1.1em;line-height:1.5em}.shepherd-element.shepherd-theme-dark .shepherd-content:before{content:"";display:block;position:absolute;width:0;height:0;border-color:transparent;border-width:16px;border-style:solid;pointer-events:none}.shepherd-element.shepherd-theme-dark.shepherd-element-attached-bottom.shepherd-element-attached-center .shepherd-content{margin-bottom:16px}.shepherd-element.shepherd-theme-dark.shepherd-element-attached-bottom.shepherd-element-attached-center .shepherd-content:before{top:100%;left:50%;margin-left:-16px;border-top-color:#232323}.shepherd-element.shepherd-theme-dark.shepherd-element-attached-top.shepherd-element-attached-center .shepherd-content{margin-top:16px}.shepherd-element.shepherd-theme-dark.shepherd-element-attached-top.shepherd-element-attached-center .shepherd-content:before{bottom:100%;left:50%;margin-left:-16px;border-bottom-color:#232323}.shepherd-element.shepherd-theme-dark.shepherd-element-attached-right.shepherd-element-attached-middle .shepherd-content{margin-right:16px}.shepherd-element.shepherd-theme-dark.shepherd-element-attached-right.shepherd-element-attached-middle .shepherd-content:before{left:100%;top:50%;margin-top:-16px;border-left-color:#232323}.shepherd-element.shepherd-theme-dark.shepherd-element-attached-left.shepherd-element-attached-middle .shepherd-content{margin-left:16px}.shepherd-element.shepherd-theme-dark.shepherd-element-attached-left.shepherd-element-attached-middle .shepherd-content:before{right:100%;top:50%;margin-top:-16px;border-right-color:#232323}.shepherd-element.shepherd-theme-dark.shepherd-element-attached-left.shepherd-target-attached-center .shepherd-content{left:-32px}.shepherd-element.shepherd-theme-dark.shepherd-element-attached-right.shepherd-target-attached-center .shepherd-content{left:32px}.shepherd-element.shepherd-theme-dark.shepherd-element-attached-top.shepherd-element-attached-left.shepherd-target-attached-middle .shepherd-content{margin-top:16px}.shepherd-element.shepherd-theme-dark.shepherd-element-attached-top.shepherd-element-attached-left.shepherd-target-attached-middle .shepherd-content:before{bottom:100%;left:16px;border-bottom-color:#232323}.shepherd-element.shepherd-theme-dark.shepherd-element-attached-top.shepherd-element-attached-right.shepherd-target-attached-middle .shepherd-content{margin-top:16px}.shepherd-element.shepherd-theme-dark.shepherd-element-attached-top.shepherd-element-attached-right.shepherd-target-attached-middle .shepherd-content:before{bottom:100%;right:16px;border-bottom-color:#232323}.shepherd-element.shepherd-theme-dark.shepherd-element-attached-bottom.shepherd-element-attached-left.shepherd-target-attached-middle .shepherd-content{margin-bottom:16px}.shepherd-element.shepherd-theme-dark.shepherd-element-attached-bottom.shepherd-element-attached-left.shepherd-target-attached-middle .shepherd-content:before{top:100%;left:16px;border-top-color:#232323}.shepherd-element.shepherd-theme-dark.shepherd-element-attached-bottom.shepherd-element-attached-right.shepherd-target-attached-middle .shepherd-content{margin-bottom:16px}.shepherd-element.shepherd-theme-dark.shepherd-element-attached-bottom.shepherd-element-attached-right.shepherd-target-attached-middle .shepherd-content:before{top:100%;right:16px;border-top-color:#232323}.shepherd-element.shepherd-theme-dark.shepherd-element-attached-top.shepherd-element-attached-left.shepherd-target-attached-bottom .shepherd-content{margin-top:16px}.shepherd-element.shepherd-theme-dark.shepherd-element-attached-top.shepherd-element-attached-left.shepherd-target-attached-bottom .shepherd-content:before{bottom:100%;left:16px;border-bottom-color:#232323}.shepherd-element.shepherd-theme-dark.shepherd-element-attached-top.shepherd-element-attached-right.shepherd-target-attached-bottom .shepherd-content{margin-top:16px}.shepherd-element.shepherd-theme-dark.shepherd-element-attached-top.shepherd-element-attached-right.shepherd-target-attached-bottom .shepherd-content:before{bottom:100%;right:16px;border-bottom-color:#232323}.shepherd-element.shepherd-theme-dark.shepherd-element-attached-bottom.shepherd-element-attached-left.shepherd-target-attached-top .shepherd-content{margin-bottom:16px}.shepherd-element.shepherd-theme-dark.shepherd-element-attached-bottom.shepherd-element-attached-left.shepherd-target-attached-top .shepherd-content:before{top:100%;left:16px;border-top-color:#232323}.shepherd-element.shepherd-theme-dark.shepherd-element-attached-bottom.shepherd-element-attached-right.shepherd-target-attached-top .shepherd-content{margin-bottom:16px}.shepherd-element.shepherd-theme-dark.shepherd-element-attached-bottom.shepherd-element-attached-right.shepherd-target-attached-top .shepherd-content:before{top:100%;right:16px;border-top-color:#232323}.shepherd-element.shepherd-theme-dark.shepherd-element-attached-top.shepherd-element-attached-right.shepherd-target-attached-left .shepherd-content{margin-right:16px}.shepherd-element.shepherd-theme-dark.shepherd-element-attached-top.shepherd-element-attached-right.shepherd-target-attached-left .shepherd-content:before{top:16px;left:100%;border-left-color:#232323}.shepherd-element.shepherd-theme-dark.shepherd-element-attached-top.shepherd-element-attached-left.shepherd-target-attached-right .shepherd-content{margin-left:16px}.shepherd-element.shepherd-theme-dark.shepherd-element-attached-top.shepherd-element-attached-left.shepherd-target-attached-right .shepherd-content:before{top:16px;right:100%;border-right-color:#232323}.shepherd-element.shepherd-theme-dark.shepherd-element-attached-bottom.shepherd-element-attached-right.shepherd-target-attached-left .shepherd-content{margin-right:16px}.shepherd-element.shepherd-theme-dark.shepherd-element-attached-bottom.shepherd-element-attached-right.shepherd-target-attached-left .shepherd-content:before{bottom:16px;left:100%;border-left-color:#232323}.shepherd-element.shepherd-theme-dark.shepherd-element-attached-bottom.shepherd-element-attached-left.shepherd-target-attached-right .shepherd-content{margin-left:16px}.shepherd-element.shepherd-theme-dark.shepherd-element-attached-bottom.shepherd-element-attached-left.shepherd-target-attached-right .shepherd-content:before{bottom:16px;right:100%;border-right-color:#232323}.shepherd-element.shepherd-theme-dark{z-index:9999;max-width:24em;font-size:1em}.shepherd-element.shepherd-theme-dark.shepherd-element-attached-top.shepherd-element-attached-center.shepherd-has-title .shepherd-content:before,.shepherd-element.shepherd-theme-dark.shepherd-element-attached-top.shepherd-element-attached-right.shepherd-target-attached-bottom.shepherd-has-title .shepherd-content:before,.shepherd-element.shepherd-theme-dark.shepherd-element-attached-top.shepherd-element-attached-left.shepherd-target-attached-bottom.shepherd-has-title .shepherd-content:before{border-bottom-color:#303030}.shepherd-element.shepherd-theme-dark.shepherd-has-title .shepherd-content header{background:#303030;padding:1em}.shepherd-element.shepherd-theme-dark.shepherd-has-title .shepherd-content header a.shepherd-cancel-link{padding:0;margin-bottom:0}.shepherd-element.shepherd-theme-dark.shepherd-has-cancel-link .shepherd-content header h3{float:left}.shepherd-element.shepherd-theme-dark .shepherd-content{box-shadow:0 0 1em rgba(0,0,0,0.2);padding:0}.shepherd-element.shepherd-theme-dark .shepherd-content *{font-size:inherit}.shepherd-element.shepherd-theme-dark .shepherd-content header{*zoom:1;border-radius:5px 5px 0 0}.shepherd-element.shepherd-theme-dark .shepherd-content header:after{content:"";display:table;clear:both}.shepherd-element.shepherd-theme-dark .shepherd-content header h3{margin:0;line-height:1;font-weight:normal}.shepherd-element.shepherd-theme-dark .shepherd-content header a.shepherd-cancel-link{float:right;text-decoration:none;font-size:1.25em;line-height:.8em;font-weight:normal;color:rgba(0,0,0,0.5);opacity:.25;position:relative;top:.1em;padding:.8em;margin-bottom:-.8em}.shepherd-element.shepherd-theme-dark .shepherd-content header a.shepherd-cancel-link:hover{opacity:1}.shepherd-element.shepherd-theme-dark .shepherd-content .shepherd-text{padding:1em}.shepherd-element.shepherd-theme-dark .shepherd-content .shepherd-text p{margin:0 0 .5em 0;line-height:1.3em}.shepherd-element.shepherd-theme-dark .shepherd-content .shepherd-text p:last-child{margin-bottom:0}.shepherd-element.shepherd-theme-dark .shepherd-content footer{padding:0 1em 1em}.shepherd-element.shepherd-theme-dark .shepherd-content footer .shepherd-buttons{text-align:right;list-style:none;padding:0;margin:0}.shepherd-element.shepherd-theme-dark .shepherd-content footer .shepherd-buttons li{display:inline;padding:0;margin:0}.shepherd-element.shepherd-theme-dark .shepherd-content footer .shepherd-buttons li .shepherd-button{display:inline-block;vertical-align:middle;*vertical-align:auto;*zoom:1;*display:inline;border-radius:3px;cursor:pointer;border:0;margin:0 .5em 0 0;font-family:inherit;text-transform:uppercase;letter-spacing:.1em;font-size:.8em;line-height:1em;padding:.75em 2em;background:#3288e6;color:#fff}.shepherd-element.shepherd-theme-dark .shepherd-content footer .shepherd-buttons li .shepherd-button.shepherd-button-secondary{background:#eee;color:#888}.shepherd-element.shepherd-theme-dark .shepherd-content footer .shepherd-buttons li:last-child .shepherd-button{margin-right:0}.shepherd-start-tour-button.shepherd-theme-dark{display:inline-block;vertical-align:middle;*vertical-align:auto;*zoom:1;*display:inline;border-radius:3px;cursor:pointer;border:0;margin:0 .5em 0 0;font-family:inherit;text-transform:uppercase;letter-spacing:.1em;font-size:.8em;line-height:1em;padding:.75em 2em;background:#3288e6;color:#fff}
|
admin/assets/tether-shepherd/shepherd-theme-default.css
ADDED
@@ -0,0 +1,246 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
.shepherd-element-attached-bottom.shepherd-element-attached-right.shepherd-target-attached-top.shepherd-target-attached-left .shepherd-content:before,
|
2 |
+
.shepherd-element-attached-bottom.shepherd-element-attached-left.shepherd-target-attached-top.shepherd-target-attached-right .shepherd-content:before,
|
3 |
+
.shepherd-element-attached-top.shepherd-element-attached-right.shepherd-target-attached-bottom.shepherd-target-attached-left .shepherd-content:before,
|
4 |
+
.shepherd-element-attached-top.shepherd-element-attached-left.shepherd-target-attached-bottom.shepherd-target-attached-right .shepherd-content:before {
|
5 |
+
display: none; }
|
6 |
+
|
7 |
+
.shepherd-element, .shepherd-element:after, .shepherd-element:before, .shepherd-element *, .shepherd-element *:after, .shepherd-element *:before {
|
8 |
+
box-sizing: border-box; }
|
9 |
+
|
10 |
+
.shepherd-element {
|
11 |
+
position: absolute;
|
12 |
+
display: none; }
|
13 |
+
.shepherd-element.shepherd-open {
|
14 |
+
display: block; }
|
15 |
+
|
16 |
+
.shepherd-element.shepherd-theme-default {
|
17 |
+
max-width: 100%;
|
18 |
+
max-height: 100%; }
|
19 |
+
.shepherd-element.shepherd-theme-default .shepherd-content {
|
20 |
+
border-radius: 5px;
|
21 |
+
position: relative;
|
22 |
+
font-family: inherit;
|
23 |
+
background: #f6f6f6;
|
24 |
+
color: #444;
|
25 |
+
padding: 1em;
|
26 |
+
font-size: 1.1em;
|
27 |
+
line-height: 1.5em; }
|
28 |
+
.shepherd-element.shepherd-theme-default .shepherd-content:before {
|
29 |
+
content: "";
|
30 |
+
display: block;
|
31 |
+
position: absolute;
|
32 |
+
width: 0;
|
33 |
+
height: 0;
|
34 |
+
border-color: transparent;
|
35 |
+
border-width: 16px;
|
36 |
+
border-style: solid;
|
37 |
+
pointer-events: none; }
|
38 |
+
.shepherd-element.shepherd-theme-default.shepherd-element-attached-bottom.shepherd-element-attached-center .shepherd-content {
|
39 |
+
margin-bottom: 16px; }
|
40 |
+
.shepherd-element.shepherd-theme-default.shepherd-element-attached-bottom.shepherd-element-attached-center .shepherd-content:before {
|
41 |
+
top: 100%;
|
42 |
+
left: 50%;
|
43 |
+
margin-left: -16px;
|
44 |
+
border-top-color: #f6f6f6; }
|
45 |
+
.shepherd-element.shepherd-theme-default.shepherd-element-attached-top.shepherd-element-attached-center .shepherd-content {
|
46 |
+
margin-top: 16px; }
|
47 |
+
.shepherd-element.shepherd-theme-default.shepherd-element-attached-top.shepherd-element-attached-center .shepherd-content:before {
|
48 |
+
bottom: 100%;
|
49 |
+
left: 50%;
|
50 |
+
margin-left: -16px;
|
51 |
+
border-bottom-color: #f6f6f6; }
|
52 |
+
.shepherd-element.shepherd-theme-default.shepherd-element-attached-right.shepherd-element-attached-middle .shepherd-content {
|
53 |
+
margin-right: 16px; }
|
54 |
+
.shepherd-element.shepherd-theme-default.shepherd-element-attached-right.shepherd-element-attached-middle .shepherd-content:before {
|
55 |
+
left: 100%;
|
56 |
+
top: 50%;
|
57 |
+
margin-top: -16px;
|
58 |
+
border-left-color: #f6f6f6; }
|
59 |
+
.shepherd-element.shepherd-theme-default.shepherd-element-attached-left.shepherd-element-attached-middle .shepherd-content {
|
60 |
+
margin-left: 16px; }
|
61 |
+
.shepherd-element.shepherd-theme-default.shepherd-element-attached-left.shepherd-element-attached-middle .shepherd-content:before {
|
62 |
+
right: 100%;
|
63 |
+
top: 50%;
|
64 |
+
margin-top: -16px;
|
65 |
+
border-right-color: #f6f6f6; }
|
66 |
+
.shepherd-element.shepherd-theme-default.shepherd-element-attached-left.shepherd-target-attached-center .shepherd-content {
|
67 |
+
left: -32px; }
|
68 |
+
.shepherd-element.shepherd-theme-default.shepherd-element-attached-right.shepherd-target-attached-center .shepherd-content {
|
69 |
+
left: 32px; }
|
70 |
+
.shepherd-element.shepherd-theme-default.shepherd-element-attached-top.shepherd-element-attached-left.shepherd-target-attached-middle .shepherd-content {
|
71 |
+
margin-top: 16px; }
|
72 |
+
.shepherd-element.shepherd-theme-default.shepherd-element-attached-top.shepherd-element-attached-left.shepherd-target-attached-middle .shepherd-content:before {
|
73 |
+
bottom: 100%;
|
74 |
+
left: 16px;
|
75 |
+
border-bottom-color: #f6f6f6; }
|
76 |
+
.shepherd-element.shepherd-theme-default.shepherd-element-attached-top.shepherd-element-attached-right.shepherd-target-attached-middle .shepherd-content {
|
77 |
+
margin-top: 16px; }
|
78 |
+
.shepherd-element.shepherd-theme-default.shepherd-element-attached-top.shepherd-element-attached-right.shepherd-target-attached-middle .shepherd-content:before {
|
79 |
+
bottom: 100%;
|
80 |
+
right: 16px;
|
81 |
+
border-bottom-color: #f6f6f6; }
|
82 |
+
.shepherd-element.shepherd-theme-default.shepherd-element-attached-bottom.shepherd-element-attached-left.shepherd-target-attached-middle .shepherd-content {
|
83 |
+
margin-bottom: 16px; }
|
84 |
+
.shepherd-element.shepherd-theme-default.shepherd-element-attached-bottom.shepherd-element-attached-left.shepherd-target-attached-middle .shepherd-content:before {
|
85 |
+
top: 100%;
|
86 |
+
left: 16px;
|
87 |
+
border-top-color: #f6f6f6; }
|
88 |
+
.shepherd-element.shepherd-theme-default.shepherd-element-attached-bottom.shepherd-element-attached-right.shepherd-target-attached-middle .shepherd-content {
|
89 |
+
margin-bottom: 16px; }
|
90 |
+
.shepherd-element.shepherd-theme-default.shepherd-element-attached-bottom.shepherd-element-attached-right.shepherd-target-attached-middle .shepherd-content:before {
|
91 |
+
top: 100%;
|
92 |
+
right: 16px;
|
93 |
+
border-top-color: #f6f6f6; }
|
94 |
+
.shepherd-element.shepherd-theme-default.shepherd-element-attached-top.shepherd-element-attached-left.shepherd-target-attached-bottom .shepherd-content {
|
95 |
+
margin-top: 16px; }
|
96 |
+
.shepherd-element.shepherd-theme-default.shepherd-element-attached-top.shepherd-element-attached-left.shepherd-target-attached-bottom .shepherd-content:before {
|
97 |
+
bottom: 100%;
|
98 |
+
left: 16px;
|
99 |
+
border-bottom-color: #f6f6f6; }
|
100 |
+
.shepherd-element.shepherd-theme-default.shepherd-element-attached-top.shepherd-element-attached-right.shepherd-target-attached-bottom .shepherd-content {
|
101 |
+
margin-top: 16px; }
|
102 |
+
.shepherd-element.shepherd-theme-default.shepherd-element-attached-top.shepherd-element-attached-right.shepherd-target-attached-bottom .shepherd-content:before {
|
103 |
+
bottom: 100%;
|
104 |
+
right: 16px;
|
105 |
+
border-bottom-color: #f6f6f6; }
|
106 |
+
.shepherd-element.shepherd-theme-default.shepherd-element-attached-bottom.shepherd-element-attached-left.shepherd-target-attached-top .shepherd-content {
|
107 |
+
margin-bottom: 16px; }
|
108 |
+
.shepherd-element.shepherd-theme-default.shepherd-element-attached-bottom.shepherd-element-attached-left.shepherd-target-attached-top .shepherd-content:before {
|
109 |
+
top: 100%;
|
110 |
+
left: 16px;
|
111 |
+
border-top-color: #f6f6f6; }
|
112 |
+
.shepherd-element.shepherd-theme-default.shepherd-element-attached-bottom.shepherd-element-attached-right.shepherd-target-attached-top .shepherd-content {
|
113 |
+
margin-bottom: 16px; }
|
114 |
+
.shepherd-element.shepherd-theme-default.shepherd-element-attached-bottom.shepherd-element-attached-right.shepherd-target-attached-top .shepherd-content:before {
|
115 |
+
top: 100%;
|
116 |
+
right: 16px;
|
117 |
+
border-top-color: #f6f6f6; }
|
118 |
+
.shepherd-element.shepherd-theme-default.shepherd-element-attached-top.shepherd-element-attached-right.shepherd-target-attached-left .shepherd-content {
|
119 |
+
margin-right: 16px; }
|
120 |
+
.shepherd-element.shepherd-theme-default.shepherd-element-attached-top.shepherd-element-attached-right.shepherd-target-attached-left .shepherd-content:before {
|
121 |
+
top: 16px;
|
122 |
+
left: 100%;
|
123 |
+
border-left-color: #f6f6f6; }
|
124 |
+
.shepherd-element.shepherd-theme-default.shepherd-element-attached-top.shepherd-element-attached-left.shepherd-target-attached-right .shepherd-content {
|
125 |
+
margin-left: 16px; }
|
126 |
+
.shepherd-element.shepherd-theme-default.shepherd-element-attached-top.shepherd-element-attached-left.shepherd-target-attached-right .shepherd-content:before {
|
127 |
+
top: 16px;
|
128 |
+
right: 100%;
|
129 |
+
border-right-color: #f6f6f6; }
|
130 |
+
.shepherd-element.shepherd-theme-default.shepherd-element-attached-bottom.shepherd-element-attached-right.shepherd-target-attached-left .shepherd-content {
|
131 |
+
margin-right: 16px; }
|
132 |
+
.shepherd-element.shepherd-theme-default.shepherd-element-attached-bottom.shepherd-element-attached-right.shepherd-target-attached-left .shepherd-content:before {
|
133 |
+
bottom: 16px;
|
134 |
+
left: 100%;
|
135 |
+
border-left-color: #f6f6f6; }
|
136 |
+
.shepherd-element.shepherd-theme-default.shepherd-element-attached-bottom.shepherd-element-attached-left.shepherd-target-attached-right .shepherd-content {
|
137 |
+
margin-left: 16px; }
|
138 |
+
.shepherd-element.shepherd-theme-default.shepherd-element-attached-bottom.shepherd-element-attached-left.shepherd-target-attached-right .shepherd-content:before {
|
139 |
+
bottom: 16px;
|
140 |
+
right: 100%;
|
141 |
+
border-right-color: #f6f6f6; }
|
142 |
+
|
143 |
+
.shepherd-element.shepherd-theme-default {
|
144 |
+
z-index: 9999;
|
145 |
+
max-width: 24em;
|
146 |
+
font-size: 1em; }
|
147 |
+
.shepherd-element.shepherd-theme-default.shepherd-element-attached-top.shepherd-element-attached-center.shepherd-has-title .shepherd-content:before, .shepherd-element.shepherd-theme-default.shepherd-element-attached-top.shepherd-element-attached-right.shepherd-target-attached-bottom.shepherd-has-title .shepherd-content:before, .shepherd-element.shepherd-theme-default.shepherd-element-attached-top.shepherd-element-attached-left.shepherd-target-attached-bottom.shepherd-has-title .shepherd-content:before {
|
148 |
+
border-bottom-color: #e6e6e6; }
|
149 |
+
.shepherd-element.shepherd-theme-default.shepherd-has-title .shepherd-content header {
|
150 |
+
background: #e6e6e6;
|
151 |
+
padding: 1em; }
|
152 |
+
.shepherd-element.shepherd-theme-default.shepherd-has-title .shepherd-content header a.shepherd-cancel-link {
|
153 |
+
padding: 0;
|
154 |
+
margin-bottom: 0; }
|
155 |
+
.shepherd-element.shepherd-theme-default.shepherd-has-cancel-link .shepherd-content header h3 {
|
156 |
+
float: left; }
|
157 |
+
.shepherd-element.shepherd-theme-default .shepherd-content {
|
158 |
+
box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.17);
|
159 |
+
padding: 0; }
|
160 |
+
.shepherd-element.shepherd-theme-default .shepherd-content * {
|
161 |
+
font-size: inherit; }
|
162 |
+
.shepherd-element.shepherd-theme-default .shepherd-content header {
|
163 |
+
*zoom: 1;
|
164 |
+
border-radius: 5px 5px 0 0; }
|
165 |
+
.shepherd-element.shepherd-theme-default .shepherd-content header:after {
|
166 |
+
content: "";
|
167 |
+
display: table;
|
168 |
+
clear: both; }
|
169 |
+
.shepherd-element.shepherd-theme-default .shepherd-content header h3 {
|
170 |
+
margin: 0;
|
171 |
+
line-height: 1;
|
172 |
+
font-weight: normal; }
|
173 |
+
.shepherd-element.shepherd-theme-default .shepherd-content header a.shepherd-cancel-link {
|
174 |
+
float: right;
|
175 |
+
text-decoration: none;
|
176 |
+
font-size: 1.25em;
|
177 |
+
line-height: .8em;
|
178 |
+
font-weight: normal;
|
179 |
+
color: rgba(0, 0, 0, 0.5);
|
180 |
+
opacity: 0.25;
|
181 |
+
position: relative;
|
182 |
+
top: .1em;
|
183 |
+
padding: .8em;
|
184 |
+
margin-bottom: -.8em; }
|
185 |
+
.shepherd-element.shepherd-theme-default .shepherd-content header a.shepherd-cancel-link:hover {
|
186 |
+
opacity: 1; }
|
187 |
+
.shepherd-element.shepherd-theme-default .shepherd-content .shepherd-text {
|
188 |
+
padding: 1em; }
|
189 |
+
.shepherd-element.shepherd-theme-default .shepherd-content .shepherd-text p {
|
190 |
+
margin: 0 0 .5em 0;
|
191 |
+
line-height: 1.3em; }
|
192 |
+
.shepherd-element.shepherd-theme-default .shepherd-content .shepherd-text p:last-child {
|
193 |
+
margin-bottom: 0; }
|
194 |
+
.shepherd-element.shepherd-theme-default .shepherd-content footer {
|
195 |
+
padding: 0 1em 1em; }
|
196 |
+
.shepherd-element.shepherd-theme-default .shepherd-content footer .shepherd-buttons {
|
197 |
+
text-align: right;
|
198 |
+
list-style: none;
|
199 |
+
padding: 0;
|
200 |
+
margin: 0; }
|
201 |
+
.shepherd-element.shepherd-theme-default .shepherd-content footer .shepherd-buttons li {
|
202 |
+
display: inline;
|
203 |
+
padding: 0;
|
204 |
+
margin: 0; }
|
205 |
+
.shepherd-element.shepherd-theme-default .shepherd-content footer .shepherd-buttons li .shepherd-button {
|
206 |
+
display: inline-block;
|
207 |
+
vertical-align: middle;
|
208 |
+
*vertical-align: auto;
|
209 |
+
*zoom: 1;
|
210 |
+
*display: inline;
|
211 |
+
border-radius: 3px;
|
212 |
+
cursor: pointer;
|
213 |
+
border: 0;
|
214 |
+
margin: 0 .5em 0 0;
|
215 |
+
font-family: inherit;
|
216 |
+
text-transform: uppercase;
|
217 |
+
letter-spacing: .1em;
|
218 |
+
font-size: .8em;
|
219 |
+
line-height: 1em;
|
220 |
+
padding: .75em 2em;
|
221 |
+
background: #3288e6;
|
222 |
+
color: #fff; }
|
223 |
+
.shepherd-element.shepherd-theme-default .shepherd-content footer .shepherd-buttons li .shepherd-button.shepherd-button-secondary {
|
224 |
+
background: #eee;
|
225 |
+
color: #888; }
|
226 |
+
.shepherd-element.shepherd-theme-default .shepherd-content footer .shepherd-buttons li:last-child .shepherd-button {
|
227 |
+
margin-right: 0; }
|
228 |
+
|
229 |
+
.shepherd-start-tour-button.shepherd-theme-default {
|
230 |
+
display: inline-block;
|
231 |
+
vertical-align: middle;
|
232 |
+
*vertical-align: auto;
|
233 |
+
*zoom: 1;
|
234 |
+
*display: inline;
|
235 |
+
border-radius: 3px;
|
236 |
+
cursor: pointer;
|
237 |
+
border: 0;
|
238 |
+
margin: 0 .5em 0 0;
|
239 |
+
font-family: inherit;
|
240 |
+
text-transform: uppercase;
|
241 |
+
letter-spacing: .1em;
|
242 |
+
font-size: .8em;
|
243 |
+
line-height: 1em;
|
244 |
+
padding: .75em 2em;
|
245 |
+
background: #3288e6;
|
246 |
+
color: #fff; }
|
admin/assets/tether-shepherd/shepherd-theme-default.min.css
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
.shepherd-element-attached-bottom.shepherd-element-attached-right.shepherd-target-attached-top.shepherd-target-attached-left .shepherd-content:before,.shepherd-element-attached-bottom.shepherd-element-attached-left.shepherd-target-attached-top.shepherd-target-attached-right .shepherd-content:before,.shepherd-element-attached-top.shepherd-element-attached-right.shepherd-target-attached-bottom.shepherd-target-attached-left .shepherd-content:before,.shepherd-element-attached-top.shepherd-element-attached-left.shepherd-target-attached-bottom.shepherd-target-attached-right .shepherd-content:before{display:none}.shepherd-element,.shepherd-element:after,.shepherd-element:before,.shepherd-element *,.shepherd-element *:after,.shepherd-element *:before{box-sizing:border-box}.shepherd-element{position:absolute;display:none}.shepherd-element.shepherd-open{display:block}.shepherd-element.shepherd-theme-default{max-width:100%;max-height:100%}.shepherd-element.shepherd-theme-default .shepherd-content{border-radius:5px;position:relative;font-family:inherit;background:#f6f6f6;color:#444;padding:1em;font-size:1.1em;line-height:1.5em}.shepherd-element.shepherd-theme-default .shepherd-content:before{content:"";display:block;position:absolute;width:0;height:0;border-color:transparent;border-width:16px;border-style:solid;pointer-events:none}.shepherd-element.shepherd-theme-default.shepherd-element-attached-bottom.shepherd-element-attached-center .shepherd-content{margin-bottom:16px}.shepherd-element.shepherd-theme-default.shepherd-element-attached-bottom.shepherd-element-attached-center .shepherd-content:before{top:100%;left:50%;margin-left:-16px;border-top-color:#f6f6f6}.shepherd-element.shepherd-theme-default.shepherd-element-attached-top.shepherd-element-attached-center .shepherd-content{margin-top:16px}.shepherd-element.shepherd-theme-default.shepherd-element-attached-top.shepherd-element-attached-center .shepherd-content:before{bottom:100%;left:50%;margin-left:-16px;border-bottom-color:#f6f6f6}.shepherd-element.shepherd-theme-default.shepherd-element-attached-right.shepherd-element-attached-middle .shepherd-content{margin-right:16px}.shepherd-element.shepherd-theme-default.shepherd-element-attached-right.shepherd-element-attached-middle .shepherd-content:before{left:100%;top:50%;margin-top:-16px;border-left-color:#f6f6f6}.shepherd-element.shepherd-theme-default.shepherd-element-attached-left.shepherd-element-attached-middle .shepherd-content{margin-left:16px}.shepherd-element.shepherd-theme-default.shepherd-element-attached-left.shepherd-element-attached-middle .shepherd-content:before{right:100%;top:50%;margin-top:-16px;border-right-color:#f6f6f6}.shepherd-element.shepherd-theme-default.shepherd-element-attached-left.shepherd-target-attached-center .shepherd-content{left:-32px}.shepherd-element.shepherd-theme-default.shepherd-element-attached-right.shepherd-target-attached-center .shepherd-content{left:32px}.shepherd-element.shepherd-theme-default.shepherd-element-attached-top.shepherd-element-attached-left.shepherd-target-attached-middle .shepherd-content{margin-top:16px}.shepherd-element.shepherd-theme-default.shepherd-element-attached-top.shepherd-element-attached-left.shepherd-target-attached-middle .shepherd-content:before{bottom:100%;left:16px;border-bottom-color:#f6f6f6}.shepherd-element.shepherd-theme-default.shepherd-element-attached-top.shepherd-element-attached-right.shepherd-target-attached-middle .shepherd-content{margin-top:16px}.shepherd-element.shepherd-theme-default.shepherd-element-attached-top.shepherd-element-attached-right.shepherd-target-attached-middle .shepherd-content:before{bottom:100%;right:16px;border-bottom-color:#f6f6f6}.shepherd-element.shepherd-theme-default.shepherd-element-attached-bottom.shepherd-element-attached-left.shepherd-target-attached-middle .shepherd-content{margin-bottom:16px}.shepherd-element.shepherd-theme-default.shepherd-element-attached-bottom.shepherd-element-attached-left.shepherd-target-attached-middle .shepherd-content:before{top:100%;left:16px;border-top-color:#f6f6f6}.shepherd-element.shepherd-theme-default.shepherd-element-attached-bottom.shepherd-element-attached-right.shepherd-target-attached-middle .shepherd-content{margin-bottom:16px}.shepherd-element.shepherd-theme-default.shepherd-element-attached-bottom.shepherd-element-attached-right.shepherd-target-attached-middle .shepherd-content:before{top:100%;right:16px;border-top-color:#f6f6f6}.shepherd-element.shepherd-theme-default.shepherd-element-attached-top.shepherd-element-attached-left.shepherd-target-attached-bottom .shepherd-content{margin-top:16px}.shepherd-element.shepherd-theme-default.shepherd-element-attached-top.shepherd-element-attached-left.shepherd-target-attached-bottom .shepherd-content:before{bottom:100%;left:16px;border-bottom-color:#f6f6f6}.shepherd-element.shepherd-theme-default.shepherd-element-attached-top.shepherd-element-attached-right.shepherd-target-attached-bottom .shepherd-content{margin-top:16px}.shepherd-element.shepherd-theme-default.shepherd-element-attached-top.shepherd-element-attached-right.shepherd-target-attached-bottom .shepherd-content:before{bottom:100%;right:16px;border-bottom-color:#f6f6f6}.shepherd-element.shepherd-theme-default.shepherd-element-attached-bottom.shepherd-element-attached-left.shepherd-target-attached-top .shepherd-content{margin-bottom:16px}.shepherd-element.shepherd-theme-default.shepherd-element-attached-bottom.shepherd-element-attached-left.shepherd-target-attached-top .shepherd-content:before{top:100%;left:16px;border-top-color:#f6f6f6}.shepherd-element.shepherd-theme-default.shepherd-element-attached-bottom.shepherd-element-attached-right.shepherd-target-attached-top .shepherd-content{margin-bottom:16px}.shepherd-element.shepherd-theme-default.shepherd-element-attached-bottom.shepherd-element-attached-right.shepherd-target-attached-top .shepherd-content:before{top:100%;right:16px;border-top-color:#f6f6f6}.shepherd-element.shepherd-theme-default.shepherd-element-attached-top.shepherd-element-attached-right.shepherd-target-attached-left .shepherd-content{margin-right:16px}.shepherd-element.shepherd-theme-default.shepherd-element-attached-top.shepherd-element-attached-right.shepherd-target-attached-left .shepherd-content:before{top:16px;left:100%;border-left-color:#f6f6f6}.shepherd-element.shepherd-theme-default.shepherd-element-attached-top.shepherd-element-attached-left.shepherd-target-attached-right .shepherd-content{margin-left:16px}.shepherd-element.shepherd-theme-default.shepherd-element-attached-top.shepherd-element-attached-left.shepherd-target-attached-right .shepherd-content:before{top:16px;right:100%;border-right-color:#f6f6f6}.shepherd-element.shepherd-theme-default.shepherd-element-attached-bottom.shepherd-element-attached-right.shepherd-target-attached-left .shepherd-content{margin-right:16px}.shepherd-element.shepherd-theme-default.shepherd-element-attached-bottom.shepherd-element-attached-right.shepherd-target-attached-left .shepherd-content:before{bottom:16px;left:100%;border-left-color:#f6f6f6}.shepherd-element.shepherd-theme-default.shepherd-element-attached-bottom.shepherd-element-attached-left.shepherd-target-attached-right .shepherd-content{margin-left:16px}.shepherd-element.shepherd-theme-default.shepherd-element-attached-bottom.shepherd-element-attached-left.shepherd-target-attached-right .shepherd-content:before{bottom:16px;right:100%;border-right-color:#f6f6f6}.shepherd-element.shepherd-theme-default{z-index:9999;max-width:24em;font-size:1em}.shepherd-element.shepherd-theme-default.shepherd-element-attached-top.shepherd-element-attached-center.shepherd-has-title .shepherd-content:before,.shepherd-element.shepherd-theme-default.shepherd-element-attached-top.shepherd-element-attached-right.shepherd-target-attached-bottom.shepherd-has-title .shepherd-content:before,.shepherd-element.shepherd-theme-default.shepherd-element-attached-top.shepherd-element-attached-left.shepherd-target-attached-bottom.shepherd-has-title .shepherd-content:before{border-bottom-color:#e6e6e6}.shepherd-element.shepherd-theme-default.shepherd-has-title .shepherd-content header{background:#e6e6e6;padding:1em}.shepherd-element.shepherd-theme-default.shepherd-has-title .shepherd-content header a.shepherd-cancel-link{padding:0;margin-bottom:0}.shepherd-element.shepherd-theme-default.shepherd-has-cancel-link .shepherd-content header h3{float:left}.shepherd-element.shepherd-theme-default .shepherd-content{box-shadow:0 0 0 1px rgba(0,0,0,0.17);padding:0}.shepherd-element.shepherd-theme-default .shepherd-content *{font-size:inherit}.shepherd-element.shepherd-theme-default .shepherd-content header{*zoom:1;border-radius:5px 5px 0 0}.shepherd-element.shepherd-theme-default .shepherd-content header:after{content:"";display:table;clear:both}.shepherd-element.shepherd-theme-default .shepherd-content header h3{margin:0;line-height:1;font-weight:normal}.shepherd-element.shepherd-theme-default .shepherd-content header a.shepherd-cancel-link{float:right;text-decoration:none;font-size:1.25em;line-height:.8em;font-weight:normal;color:rgba(0,0,0,0.5);opacity:.25;position:relative;top:.1em;padding:.8em;margin-bottom:-.8em}.shepherd-element.shepherd-theme-default .shepherd-content header a.shepherd-cancel-link:hover{opacity:1}.shepherd-element.shepherd-theme-default .shepherd-content .shepherd-text{padding:1em}.shepherd-element.shepherd-theme-default .shepherd-content .shepherd-text p{margin:0 0 .5em 0;line-height:1.3em}.shepherd-element.shepherd-theme-default .shepherd-content .shepherd-text p:last-child{margin-bottom:0}.shepherd-element.shepherd-theme-default .shepherd-content footer{padding:0 1em 1em}.shepherd-element.shepherd-theme-default .shepherd-content footer .shepherd-buttons{text-align:right;list-style:none;padding:0;margin:0}.shepherd-element.shepherd-theme-default .shepherd-content footer .shepherd-buttons li{display:inline;padding:0;margin:0}.shepherd-element.shepherd-theme-default .shepherd-content footer .shepherd-buttons li .shepherd-button{display:inline-block;vertical-align:middle;*vertical-align:auto;*zoom:1;*display:inline;border-radius:3px;cursor:pointer;border:0;margin:0 .5em 0 0;font-family:inherit;text-transform:uppercase;letter-spacing:.1em;font-size:.8em;line-height:1em;padding:.75em 2em;background:#3288e6;color:#fff}.shepherd-element.shepherd-theme-default .shepherd-content footer .shepherd-buttons li .shepherd-button.shepherd-button-secondary{background:#eee;color:#888}.shepherd-element.shepherd-theme-default .shepherd-content footer .shepherd-buttons li:last-child .shepherd-button{margin-right:0}.shepherd-start-tour-button.shepherd-theme-default{display:inline-block;vertical-align:middle;*vertical-align:auto;*zoom:1;*display:inline;border-radius:3px;cursor:pointer;border:0;margin:0 .5em 0 0;font-family:inherit;text-transform:uppercase;letter-spacing:.1em;font-size:.8em;line-height:1em;padding:.75em 2em;background:#3288e6;color:#fff}
|
admin/assets/tether-shepherd/shepherd-theme-square-dark.css
ADDED
@@ -0,0 +1,248 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
.shepherd-element-attached-bottom.shepherd-element-attached-right.shepherd-target-attached-top.shepherd-target-attached-left .shepherd-content:before,
|
2 |
+
.shepherd-element-attached-bottom.shepherd-element-attached-left.shepherd-target-attached-top.shepherd-target-attached-right .shepherd-content:before,
|
3 |
+
.shepherd-element-attached-top.shepherd-element-attached-right.shepherd-target-attached-bottom.shepherd-target-attached-left .shepherd-content:before,
|
4 |
+
.shepherd-element-attached-top.shepherd-element-attached-left.shepherd-target-attached-bottom.shepherd-target-attached-right .shepherd-content:before {
|
5 |
+
display: none; }
|
6 |
+
|
7 |
+
.shepherd-element, .shepherd-element:after, .shepherd-element:before, .shepherd-element *, .shepherd-element *:after, .shepherd-element *:before {
|
8 |
+
box-sizing: border-box; }
|
9 |
+
|
10 |
+
.shepherd-element {
|
11 |
+
position: absolute;
|
12 |
+
display: none; }
|
13 |
+
.shepherd-element.shepherd-open {
|
14 |
+
display: block; }
|
15 |
+
|
16 |
+
.shepherd-element.shepherd-theme-square-dark {
|
17 |
+
max-width: 100%;
|
18 |
+
max-height: 100%; }
|
19 |
+
.shepherd-element.shepherd-theme-square-dark .shepherd-content {
|
20 |
+
border-radius: 5px;
|
21 |
+
position: relative;
|
22 |
+
font-family: inherit;
|
23 |
+
background: #232323;
|
24 |
+
color: #eee;
|
25 |
+
padding: 1em;
|
26 |
+
font-size: 1.1em;
|
27 |
+
line-height: 1.5em; }
|
28 |
+
.shepherd-element.shepherd-theme-square-dark .shepherd-content:before {
|
29 |
+
content: "";
|
30 |
+
display: block;
|
31 |
+
position: absolute;
|
32 |
+
width: 0;
|
33 |
+
height: 0;
|
34 |
+
border-color: transparent;
|
35 |
+
border-width: 16px;
|
36 |
+
border-style: solid;
|
37 |
+
pointer-events: none; }
|
38 |
+
.shepherd-element.shepherd-theme-square-dark.shepherd-element-attached-bottom.shepherd-element-attached-center .shepherd-content {
|
39 |
+
margin-bottom: 16px; }
|
40 |
+
.shepherd-element.shepherd-theme-square-dark.shepherd-element-attached-bottom.shepherd-element-attached-center .shepherd-content:before {
|
41 |
+
top: 100%;
|
42 |
+
left: 50%;
|
43 |
+
margin-left: -16px;
|
44 |
+
border-top-color: #232323; }
|
45 |
+
.shepherd-element.shepherd-theme-square-dark.shepherd-element-attached-top.shepherd-element-attached-center .shepherd-content {
|
46 |
+
margin-top: 16px; }
|
47 |
+
.shepherd-element.shepherd-theme-square-dark.shepherd-element-attached-top.shepherd-element-attached-center .shepherd-content:before {
|
48 |
+
bottom: 100%;
|
49 |
+
left: 50%;
|
50 |
+
margin-left: -16px;
|
51 |
+
border-bottom-color: #232323; }
|
52 |
+
.shepherd-element.shepherd-theme-square-dark.shepherd-element-attached-right.shepherd-element-attached-middle .shepherd-content {
|
53 |
+
margin-right: 16px; }
|
54 |
+
.shepherd-element.shepherd-theme-square-dark.shepherd-element-attached-right.shepherd-element-attached-middle .shepherd-content:before {
|
55 |
+
left: 100%;
|
56 |
+
top: 50%;
|
57 |
+
margin-top: -16px;
|
58 |
+
border-left-color: #232323; }
|
59 |
+
.shepherd-element.shepherd-theme-square-dark.shepherd-element-attached-left.shepherd-element-attached-middle .shepherd-content {
|
60 |
+
margin-left: 16px; }
|
61 |
+
.shepherd-element.shepherd-theme-square-dark.shepherd-element-attached-left.shepherd-element-attached-middle .shepherd-content:before {
|
62 |
+
right: 100%;
|
63 |
+
top: 50%;
|
64 |
+
margin-top: -16px;
|
65 |
+
border-right-color: #232323; }
|
66 |
+
.shepherd-element.shepherd-theme-square-dark.shepherd-element-attached-left.shepherd-target-attached-center .shepherd-content {
|
67 |
+
left: -32px; }
|
68 |
+
.shepherd-element.shepherd-theme-square-dark.shepherd-element-attached-right.shepherd-target-attached-center .shepherd-content {
|
69 |
+
left: 32px; }
|
70 |
+
.shepherd-element.shepherd-theme-square-dark.shepherd-element-attached-top.shepherd-element-attached-left.shepherd-target-attached-middle .shepherd-content {
|
71 |
+
margin-top: 16px; }
|
72 |
+
.shepherd-element.shepherd-theme-square-dark.shepherd-element-attached-top.shepherd-element-attached-left.shepherd-target-attached-middle .shepherd-content:before {
|
73 |
+
bottom: 100%;
|
74 |
+
left: 16px;
|
75 |
+
border-bottom-color: #232323; }
|
76 |
+
.shepherd-element.shepherd-theme-square-dark.shepherd-element-attached-top.shepherd-element-attached-right.shepherd-target-attached-middle .shepherd-content {
|
77 |
+
margin-top: 16px; }
|
78 |
+
.shepherd-element.shepherd-theme-square-dark.shepherd-element-attached-top.shepherd-element-attached-right.shepherd-target-attached-middle .shepherd-content:before {
|
79 |
+
bottom: 100%;
|
80 |
+
right: 16px;
|
81 |
+
border-bottom-color: #232323; }
|
82 |
+
.shepherd-element.shepherd-theme-square-dark.shepherd-element-attached-bottom.shepherd-element-attached-left.shepherd-target-attached-middle .shepherd-content {
|
83 |
+
margin-bottom: 16px; }
|
84 |
+
.shepherd-element.shepherd-theme-square-dark.shepherd-element-attached-bottom.shepherd-element-attached-left.shepherd-target-attached-middle .shepherd-content:before {
|
85 |
+
top: 100%;
|
86 |
+
left: 16px;
|
87 |
+
border-top-color: #232323; }
|
88 |
+
.shepherd-element.shepherd-theme-square-dark.shepherd-element-attached-bottom.shepherd-element-attached-right.shepherd-target-attached-middle .shepherd-content {
|
89 |
+
margin-bottom: 16px; }
|
90 |
+
.shepherd-element.shepherd-theme-square-dark.shepherd-element-attached-bottom.shepherd-element-attached-right.shepherd-target-attached-middle .shepherd-content:before {
|
91 |
+
top: 100%;
|
92 |
+
right: 16px;
|
93 |
+
border-top-color: #232323; }
|
94 |
+
.shepherd-element.shepherd-theme-square-dark.shepherd-element-attached-top.shepherd-element-attached-left.shepherd-target-attached-bottom .shepherd-content {
|
95 |
+
margin-top: 16px; }
|
96 |
+
.shepherd-element.shepherd-theme-square-dark.shepherd-element-attached-top.shepherd-element-attached-left.shepherd-target-attached-bottom .shepherd-content:before {
|
97 |
+
bottom: 100%;
|
98 |
+
left: 16px;
|
99 |
+
border-bottom-color: #232323; }
|
100 |
+
.shepherd-element.shepherd-theme-square-dark.shepherd-element-attached-top.shepherd-element-attached-right.shepherd-target-attached-bottom .shepherd-content {
|
101 |
+
margin-top: 16px; }
|
102 |
+
.shepherd-element.shepherd-theme-square-dark.shepherd-element-attached-top.shepherd-element-attached-right.shepherd-target-attached-bottom .shepherd-content:before {
|
103 |
+
bottom: 100%;
|
104 |
+
right: 16px;
|
105 |
+
border-bottom-color: #232323; }
|
106 |
+
.shepherd-element.shepherd-theme-square-dark.shepherd-element-attached-bottom.shepherd-element-attached-left.shepherd-target-attached-top .shepherd-content {
|
107 |
+
margin-bottom: 16px; }
|
108 |
+
.shepherd-element.shepherd-theme-square-dark.shepherd-element-attached-bottom.shepherd-element-attached-left.shepherd-target-attached-top .shepherd-content:before {
|
109 |
+
top: 100%;
|
110 |
+
left: 16px;
|
111 |
+
border-top-color: #232323; }
|
112 |
+
.shepherd-element.shepherd-theme-square-dark.shepherd-element-attached-bottom.shepherd-element-attached-right.shepherd-target-attached-top .shepherd-content {
|
113 |
+
margin-bottom: 16px; }
|
114 |
+
.shepherd-element.shepherd-theme-square-dark.shepherd-element-attached-bottom.shepherd-element-attached-right.shepherd-target-attached-top .shepherd-content:before {
|
115 |
+
top: 100%;
|
116 |
+
right: 16px;
|
117 |
+
border-top-color: #232323; }
|
118 |
+
.shepherd-element.shepherd-theme-square-dark.shepherd-element-attached-top.shepherd-element-attached-right.shepherd-target-attached-left .shepherd-content {
|
119 |
+
margin-right: 16px; }
|
120 |
+
.shepherd-element.shepherd-theme-square-dark.shepherd-element-attached-top.shepherd-element-attached-right.shepherd-target-attached-left .shepherd-content:before {
|
121 |
+
top: 16px;
|
122 |
+
left: 100%;
|
123 |
+
border-left-color: #232323; }
|
124 |
+
.shepherd-element.shepherd-theme-square-dark.shepherd-element-attached-top.shepherd-element-attached-left.shepherd-target-attached-right .shepherd-content {
|
125 |
+
margin-left: 16px; }
|
126 |
+
.shepherd-element.shepherd-theme-square-dark.shepherd-element-attached-top.shepherd-element-attached-left.shepherd-target-attached-right .shepherd-content:before {
|
127 |
+
top: 16px;
|
128 |
+
right: 100%;
|
129 |
+
border-right-color: #232323; }
|
130 |
+
.shepherd-element.shepherd-theme-square-dark.shepherd-element-attached-bottom.shepherd-element-attached-right.shepherd-target-attached-left .shepherd-content {
|
131 |
+
margin-right: 16px; }
|
132 |
+
.shepherd-element.shepherd-theme-square-dark.shepherd-element-attached-bottom.shepherd-element-attached-right.shepherd-target-attached-left .shepherd-content:before {
|
133 |
+
bottom: 16px;
|
134 |
+
left: 100%;
|
135 |
+
border-left-color: #232323; }
|
136 |
+
.shepherd-element.shepherd-theme-square-dark.shepherd-element-attached-bottom.shepherd-element-attached-left.shepherd-target-attached-right .shepherd-content {
|
137 |
+
margin-left: 16px; }
|
138 |
+
.shepherd-element.shepherd-theme-square-dark.shepherd-element-attached-bottom.shepherd-element-attached-left.shepherd-target-attached-right .shepherd-content:before {
|
139 |
+
bottom: 16px;
|
140 |
+
right: 100%;
|
141 |
+
border-right-color: #232323; }
|
142 |
+
|
143 |
+
.shepherd-element.shepherd-theme-square-dark {
|
144 |
+
border-radius: 0;
|
145 |
+
z-index: 9999;
|
146 |
+
max-width: 24em;
|
147 |
+
font-size: 1em; }
|
148 |
+
.shepherd-element.shepherd-theme-square-dark.shepherd-element-attached-top.shepherd-element-attached-center.shepherd-has-title .shepherd-content:before, .shepherd-element.shepherd-theme-square-dark.shepherd-element-attached-top.shepherd-element-attached-right.shepherd-target-attached-bottom.shepherd-has-title .shepherd-content:before, .shepherd-element.shepherd-theme-square-dark.shepherd-element-attached-top.shepherd-element-attached-left.shepherd-target-attached-bottom.shepherd-has-title .shepherd-content:before {
|
149 |
+
border-bottom-color: #303030; }
|
150 |
+
.shepherd-element.shepherd-theme-square-dark.shepherd-has-title .shepherd-content header {
|
151 |
+
background: #303030;
|
152 |
+
padding: 1em; }
|
153 |
+
.shepherd-element.shepherd-theme-square-dark.shepherd-has-title .shepherd-content header a.shepherd-cancel-link {
|
154 |
+
padding: 0;
|
155 |
+
margin-bottom: 0; }
|
156 |
+
.shepherd-element.shepherd-theme-square-dark.shepherd-has-cancel-link .shepherd-content header h3 {
|
157 |
+
float: left; }
|
158 |
+
.shepherd-element.shepherd-theme-square-dark .shepherd-content {
|
159 |
+
box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.17);
|
160 |
+
border-radius: 0;
|
161 |
+
padding: 0; }
|
162 |
+
.shepherd-element.shepherd-theme-square-dark .shepherd-content * {
|
163 |
+
font-size: inherit; }
|
164 |
+
.shepherd-element.shepherd-theme-square-dark .shepherd-content header {
|
165 |
+
*zoom: 1;
|
166 |
+
border-radius: 0; }
|
167 |
+
.shepherd-element.shepherd-theme-square-dark .shepherd-content header:after {
|
168 |
+
content: "";
|
169 |
+
display: table;
|
170 |
+
clear: both; }
|
171 |
+
.shepherd-element.shepherd-theme-square-dark .shepherd-content header h3 {
|
172 |
+
margin: 0;
|
173 |
+
line-height: 1;
|
174 |
+
font-weight: normal; }
|
175 |
+
.shepherd-element.shepherd-theme-square-dark .shepherd-content header a.shepherd-cancel-link {
|
176 |
+
float: right;
|
177 |
+
text-decoration: none;
|
178 |
+
font-size: 1.25em;
|
179 |
+
line-height: .8em;
|
180 |
+
font-weight: normal;
|
181 |
+
color: rgba(0, 0, 0, 0.5);
|
182 |
+
opacity: 0.25;
|
183 |
+
position: relative;
|
184 |
+
top: .1em;
|
185 |
+
padding: .8em;
|
186 |
+
margin-bottom: -.8em; }
|
187 |
+
.shepherd-element.shepherd-theme-square-dark .shepherd-content header a.shepherd-cancel-link:hover {
|
188 |
+
opacity: 1; }
|
189 |
+
.shepherd-element.shepherd-theme-square-dark .shepherd-content .shepherd-text {
|
190 |
+
padding: 1em; }
|
191 |
+
.shepherd-element.shepherd-theme-square-dark .shepherd-content .shepherd-text p {
|
192 |
+
margin: 0 0 .5em 0;
|
193 |
+
line-height: 1.3em; }
|
194 |
+
.shepherd-element.shepherd-theme-square-dark .shepherd-content .shepherd-text p:last-child {
|
195 |
+
margin-bottom: 0; }
|
196 |
+
.shepherd-element.shepherd-theme-square-dark .shepherd-content footer {
|
197 |
+
padding: 0 1em 1em; }
|
198 |
+
.shepherd-element.shepherd-theme-square-dark .shepherd-content footer .shepherd-buttons {
|
199 |
+
text-align: right;
|
200 |
+
list-style: none;
|
201 |
+
padding: 0;
|
202 |
+
margin: 0; }
|
203 |
+
.shepherd-element.shepherd-theme-square-dark .shepherd-content footer .shepherd-buttons li {
|
204 |
+
display: inline;
|
205 |
+
padding: 0;
|
206 |
+
margin: 0; }
|
207 |
+
.shepherd-element.shepherd-theme-square-dark .shepherd-content footer .shepherd-buttons li .shepherd-button {
|
208 |
+
display: inline-block;
|
209 |
+
vertical-align: middle;
|
210 |
+
*vertical-align: auto;
|
211 |
+
*zoom: 1;
|
212 |
+
*display: inline;
|
213 |
+
border-radius: 0;
|
214 |
+
cursor: pointer;
|
215 |
+
border: 0;
|
216 |
+
margin: 0 .5em 0 0;
|
217 |
+
font-family: inherit;
|
218 |
+
text-transform: uppercase;
|
219 |
+
letter-spacing: .1em;
|
220 |
+
font-size: .8em;
|
221 |
+
line-height: 1em;
|
222 |
+
padding: .75em 2em;
|
223 |
+
background: #3288e6;
|
224 |
+
color: #fff; }
|
225 |
+
.shepherd-element.shepherd-theme-square-dark .shepherd-content footer .shepherd-buttons li .shepherd-button.shepherd-button-secondary {
|
226 |
+
background: #eee;
|
227 |
+
color: #888; }
|
228 |
+
.shepherd-element.shepherd-theme-square-dark .shepherd-content footer .shepherd-buttons li:last-child .shepherd-button {
|
229 |
+
margin-right: 0; }
|
230 |
+
|
231 |
+
.shepherd-start-tour-button.shepherd-theme-square-dark {
|
232 |
+
display: inline-block;
|
233 |
+
vertical-align: middle;
|
234 |
+
*vertical-align: auto;
|
235 |
+
*zoom: 1;
|
236 |
+
*display: inline;
|
237 |
+
border-radius: 0;
|
238 |
+
cursor: pointer;
|
239 |
+
border: 0;
|
240 |
+
margin: 0 .5em 0 0;
|
241 |
+
font-family: inherit;
|
242 |
+
text-transform: uppercase;
|
243 |
+
letter-spacing: .1em;
|
244 |
+
font-size: .8em;
|
245 |
+
line-height: 1em;
|
246 |
+
padding: .75em 2em;
|
247 |
+
background: #3288e6;
|
248 |
+
color: #fff; }
|
admin/assets/tether-shepherd/shepherd-theme-square-dark.min.css
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
.shepherd-element-attached-bottom.shepherd-element-attached-right.shepherd-target-attached-top.shepherd-target-attached-left .shepherd-content:before,.shepherd-element-attached-bottom.shepherd-element-attached-left.shepherd-target-attached-top.shepherd-target-attached-right .shepherd-content:before,.shepherd-element-attached-top.shepherd-element-attached-right.shepherd-target-attached-bottom.shepherd-target-attached-left .shepherd-content:before,.shepherd-element-attached-top.shepherd-element-attached-left.shepherd-target-attached-bottom.shepherd-target-attached-right .shepherd-content:before{display:none}.shepherd-element,.shepherd-element:after,.shepherd-element:before,.shepherd-element *,.shepherd-element *:after,.shepherd-element *:before{box-sizing:border-box}.shepherd-element{position:absolute;display:none}.shepherd-element.shepherd-open{display:block}.shepherd-element.shepherd-theme-square-dark{max-width:100%;max-height:100%}.shepherd-element.shepherd-theme-square-dark .shepherd-content{border-radius:5px;position:relative;font-family:inherit;background:#232323;color:#eee;padding:1em;font-size:1.1em;line-height:1.5em}.shepherd-element.shepherd-theme-square-dark .shepherd-content:before{content:"";display:block;position:absolute;width:0;height:0;border-color:transparent;border-width:16px;border-style:solid;pointer-events:none}.shepherd-element.shepherd-theme-square-dark.shepherd-element-attached-bottom.shepherd-element-attached-center .shepherd-content{margin-bottom:16px}.shepherd-element.shepherd-theme-square-dark.shepherd-element-attached-bottom.shepherd-element-attached-center .shepherd-content:before{top:100%;left:50%;margin-left:-16px;border-top-color:#232323}.shepherd-element.shepherd-theme-square-dark.shepherd-element-attached-top.shepherd-element-attached-center .shepherd-content{margin-top:16px}.shepherd-element.shepherd-theme-square-dark.shepherd-element-attached-top.shepherd-element-attached-center .shepherd-content:before{bottom:100%;left:50%;margin-left:-16px;border-bottom-color:#232323}.shepherd-element.shepherd-theme-square-dark.shepherd-element-attached-right.shepherd-element-attached-middle .shepherd-content{margin-right:16px}.shepherd-element.shepherd-theme-square-dark.shepherd-element-attached-right.shepherd-element-attached-middle .shepherd-content:before{left:100%;top:50%;margin-top:-16px;border-left-color:#232323}.shepherd-element.shepherd-theme-square-dark.shepherd-element-attached-left.shepherd-element-attached-middle .shepherd-content{margin-left:16px}.shepherd-element.shepherd-theme-square-dark.shepherd-element-attached-left.shepherd-element-attached-middle .shepherd-content:before{right:100%;top:50%;margin-top:-16px;border-right-color:#232323}.shepherd-element.shepherd-theme-square-dark.shepherd-element-attached-left.shepherd-target-attached-center .shepherd-content{left:-32px}.shepherd-element.shepherd-theme-square-dark.shepherd-element-attached-right.shepherd-target-attached-center .shepherd-content{left:32px}.shepherd-element.shepherd-theme-square-dark.shepherd-element-attached-top.shepherd-element-attached-left.shepherd-target-attached-middle .shepherd-content{margin-top:16px}.shepherd-element.shepherd-theme-square-dark.shepherd-element-attached-top.shepherd-element-attached-left.shepherd-target-attached-middle .shepherd-content:before{bottom:100%;left:16px;border-bottom-color:#232323}.shepherd-element.shepherd-theme-square-dark.shepherd-element-attached-top.shepherd-element-attached-right.shepherd-target-attached-middle .shepherd-content{margin-top:16px}.shepherd-element.shepherd-theme-square-dark.shepherd-element-attached-top.shepherd-element-attached-right.shepherd-target-attached-middle .shepherd-content:before{bottom:100%;right:16px;border-bottom-color:#232323}.shepherd-element.shepherd-theme-square-dark.shepherd-element-attached-bottom.shepherd-element-attached-left.shepherd-target-attached-middle .shepherd-content{margin-bottom:16px}.shepherd-element.shepherd-theme-square-dark.shepherd-element-attached-bottom.shepherd-element-attached-left.shepherd-target-attached-middle .shepherd-content:before{top:100%;left:16px;border-top-color:#232323}.shepherd-element.shepherd-theme-square-dark.shepherd-element-attached-bottom.shepherd-element-attached-right.shepherd-target-attached-middle .shepherd-content{margin-bottom:16px}.shepherd-element.shepherd-theme-square-dark.shepherd-element-attached-bottom.shepherd-element-attached-right.shepherd-target-attached-middle .shepherd-content:before{top:100%;right:16px;border-top-color:#232323}.shepherd-element.shepherd-theme-square-dark.shepherd-element-attached-top.shepherd-element-attached-left.shepherd-target-attached-bottom .shepherd-content{margin-top:16px}.shepherd-element.shepherd-theme-square-dark.shepherd-element-attached-top.shepherd-element-attached-left.shepherd-target-attached-bottom .shepherd-content:before{bottom:100%;left:16px;border-bottom-color:#232323}.shepherd-element.shepherd-theme-square-dark.shepherd-element-attached-top.shepherd-element-attached-right.shepherd-target-attached-bottom .shepherd-content{margin-top:16px}.shepherd-element.shepherd-theme-square-dark.shepherd-element-attached-top.shepherd-element-attached-right.shepherd-target-attached-bottom .shepherd-content:before{bottom:100%;right:16px;border-bottom-color:#232323}.shepherd-element.shepherd-theme-square-dark.shepherd-element-attached-bottom.shepherd-element-attached-left.shepherd-target-attached-top .shepherd-content{margin-bottom:16px}.shepherd-element.shepherd-theme-square-dark.shepherd-element-attached-bottom.shepherd-element-attached-left.shepherd-target-attached-top .shepherd-content:before{top:100%;left:16px;border-top-color:#232323}.shepherd-element.shepherd-theme-square-dark.shepherd-element-attached-bottom.shepherd-element-attached-right.shepherd-target-attached-top .shepherd-content{margin-bottom:16px}.shepherd-element.shepherd-theme-square-dark.shepherd-element-attached-bottom.shepherd-element-attached-right.shepherd-target-attached-top .shepherd-content:before{top:100%;right:16px;border-top-color:#232323}.shepherd-element.shepherd-theme-square-dark.shepherd-element-attached-top.shepherd-element-attached-right.shepherd-target-attached-left .shepherd-content{margin-right:16px}.shepherd-element.shepherd-theme-square-dark.shepherd-element-attached-top.shepherd-element-attached-right.shepherd-target-attached-left .shepherd-content:before{top:16px;left:100%;border-left-color:#232323}.shepherd-element.shepherd-theme-square-dark.shepherd-element-attached-top.shepherd-element-attached-left.shepherd-target-attached-right .shepherd-content{margin-left:16px}.shepherd-element.shepherd-theme-square-dark.shepherd-element-attached-top.shepherd-element-attached-left.shepherd-target-attached-right .shepherd-content:before{top:16px;right:100%;border-right-color:#232323}.shepherd-element.shepherd-theme-square-dark.shepherd-element-attached-bottom.shepherd-element-attached-right.shepherd-target-attached-left .shepherd-content{margin-right:16px}.shepherd-element.shepherd-theme-square-dark.shepherd-element-attached-bottom.shepherd-element-attached-right.shepherd-target-attached-left .shepherd-content:before{bottom:16px;left:100%;border-left-color:#232323}.shepherd-element.shepherd-theme-square-dark.shepherd-element-attached-bottom.shepherd-element-attached-left.shepherd-target-attached-right .shepherd-content{margin-left:16px}.shepherd-element.shepherd-theme-square-dark.shepherd-element-attached-bottom.shepherd-element-attached-left.shepherd-target-attached-right .shepherd-content:before{bottom:16px;right:100%;border-right-color:#232323}.shepherd-element.shepherd-theme-square-dark{border-radius:0;z-index:9999;max-width:24em;font-size:1em}.shepherd-element.shepherd-theme-square-dark.shepherd-element-attached-top.shepherd-element-attached-center.shepherd-has-title .shepherd-content:before,.shepherd-element.shepherd-theme-square-dark.shepherd-element-attached-top.shepherd-element-attached-right.shepherd-target-attached-bottom.shepherd-has-title .shepherd-content:before,.shepherd-element.shepherd-theme-square-dark.shepherd-element-attached-top.shepherd-element-attached-left.shepherd-target-attached-bottom.shepherd-has-title .shepherd-content:before{border-bottom-color:#303030}.shepherd-element.shepherd-theme-square-dark.shepherd-has-title .shepherd-content header{background:#303030;padding:1em}.shepherd-element.shepherd-theme-square-dark.shepherd-has-title .shepherd-content header a.shepherd-cancel-link{padding:0;margin-bottom:0}.shepherd-element.shepherd-theme-square-dark.shepherd-has-cancel-link .shepherd-content header h3{float:left}.shepherd-element.shepherd-theme-square-dark .shepherd-content{box-shadow:0 0 0 1px rgba(0,0,0,0.17);border-radius:0;padding:0}.shepherd-element.shepherd-theme-square-dark .shepherd-content *{font-size:inherit}.shepherd-element.shepherd-theme-square-dark .shepherd-content header{*zoom:1;border-radius:0}.shepherd-element.shepherd-theme-square-dark .shepherd-content header:after{content:"";display:table;clear:both}.shepherd-element.shepherd-theme-square-dark .shepherd-content header h3{margin:0;line-height:1;font-weight:normal}.shepherd-element.shepherd-theme-square-dark .shepherd-content header a.shepherd-cancel-link{float:right;text-decoration:none;font-size:1.25em;line-height:.8em;font-weight:normal;color:rgba(0,0,0,0.5);opacity:.25;position:relative;top:.1em;padding:.8em;margin-bottom:-.8em}.shepherd-element.shepherd-theme-square-dark .shepherd-content header a.shepherd-cancel-link:hover{opacity:1}.shepherd-element.shepherd-theme-square-dark .shepherd-content .shepherd-text{padding:1em}.shepherd-element.shepherd-theme-square-dark .shepherd-content .shepherd-text p{margin:0 0 .5em 0;line-height:1.3em}.shepherd-element.shepherd-theme-square-dark .shepherd-content .shepherd-text p:last-child{margin-bottom:0}.shepherd-element.shepherd-theme-square-dark .shepherd-content footer{padding:0 1em 1em}.shepherd-element.shepherd-theme-square-dark .shepherd-content footer .shepherd-buttons{text-align:right;list-style:none;padding:0;margin:0}.shepherd-element.shepherd-theme-square-dark .shepherd-content footer .shepherd-buttons li{display:inline;padding:0;margin:0}.shepherd-element.shepherd-theme-square-dark .shepherd-content footer .shepherd-buttons li .shepherd-button{display:inline-block;vertical-align:middle;*vertical-align:auto;*zoom:1;*display:inline;border-radius:0;cursor:pointer;border:0;margin:0 .5em 0 0;font-family:inherit;text-transform:uppercase;letter-spacing:.1em;font-size:.8em;line-height:1em;padding:.75em 2em;background:#3288e6;color:#fff}.shepherd-element.shepherd-theme-square-dark .shepherd-content footer .shepherd-buttons li .shepherd-button.shepherd-button-secondary{background:#eee;color:#888}.shepherd-element.shepherd-theme-square-dark .shepherd-content footer .shepherd-buttons li:last-child .shepherd-button{margin-right:0}.shepherd-start-tour-button.shepherd-theme-square-dark{display:inline-block;vertical-align:middle;*vertical-align:auto;*zoom:1;*display:inline;border-radius:0;cursor:pointer;border:0;margin:0 .5em 0 0;font-family:inherit;text-transform:uppercase;letter-spacing:.1em;font-size:.8em;line-height:1em;padding:.75em 2em;background:#3288e6;color:#fff}
|
admin/assets/tether-shepherd/shepherd-theme-square.css
ADDED
@@ -0,0 +1,248 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
.shepherd-element-attached-bottom.shepherd-element-attached-right.shepherd-target-attached-top.shepherd-target-attached-left .shepherd-content:before,
|
2 |
+
.shepherd-element-attached-bottom.shepherd-element-attached-left.shepherd-target-attached-top.shepherd-target-attached-right .shepherd-content:before,
|
3 |
+
.shepherd-element-attached-top.shepherd-element-attached-right.shepherd-target-attached-bottom.shepherd-target-attached-left .shepherd-content:before,
|
4 |
+
.shepherd-element-attached-top.shepherd-element-attached-left.shepherd-target-attached-bottom.shepherd-target-attached-right .shepherd-content:before {
|
5 |
+
display: none; }
|
6 |
+
|
7 |
+
.shepherd-element, .shepherd-element:after, .shepherd-element:before, .shepherd-element *, .shepherd-element *:after, .shepherd-element *:before {
|
8 |
+
box-sizing: border-box; }
|
9 |
+
|
10 |
+
.shepherd-element {
|
11 |
+
position: absolute;
|
12 |
+
display: none; }
|
13 |
+
.shepherd-element.shepherd-open {
|
14 |
+
display: block; }
|
15 |
+
|
16 |
+
.shepherd-element.shepherd-theme-square {
|
17 |
+
max-width: 100%;
|
18 |
+
max-height: 100%; }
|
19 |
+
.shepherd-element.shepherd-theme-square .shepherd-content {
|
20 |
+
border-radius: 5px;
|
21 |
+
position: relative;
|
22 |
+
font-family: inherit;
|
23 |
+
background: #f6f6f6;
|
24 |
+
color: #444;
|
25 |
+
padding: 1em;
|
26 |
+
font-size: 1.1em;
|
27 |
+
line-height: 1.5em; }
|
28 |
+
.shepherd-element.shepherd-theme-square .shepherd-content:before {
|
29 |
+
content: "";
|
30 |
+
display: block;
|
31 |
+
position: absolute;
|
32 |
+
width: 0;
|
33 |
+
height: 0;
|
34 |
+
border-color: transparent;
|
35 |
+
border-width: 16px;
|
36 |
+
border-style: solid;
|
37 |
+
pointer-events: none; }
|
38 |
+
.shepherd-element.shepherd-theme-square.shepherd-element-attached-bottom.shepherd-element-attached-center .shepherd-content {
|
39 |
+
margin-bottom: 16px; }
|
40 |
+
.shepherd-element.shepherd-theme-square.shepherd-element-attached-bottom.shepherd-element-attached-center .shepherd-content:before {
|
41 |
+
top: 100%;
|
42 |
+
left: 50%;
|
43 |
+
margin-left: -16px;
|
44 |
+
border-top-color: #f6f6f6; }
|
45 |
+
.shepherd-element.shepherd-theme-square.shepherd-element-attached-top.shepherd-element-attached-center .shepherd-content {
|
46 |
+
margin-top: 16px; }
|
47 |
+
.shepherd-element.shepherd-theme-square.shepherd-element-attached-top.shepherd-element-attached-center .shepherd-content:before {
|
48 |
+
bottom: 100%;
|
49 |
+
left: 50%;
|
50 |
+
margin-left: -16px;
|
51 |
+
border-bottom-color: #f6f6f6; }
|
52 |
+
.shepherd-element.shepherd-theme-square.shepherd-element-attached-right.shepherd-element-attached-middle .shepherd-content {
|
53 |
+
margin-right: 16px; }
|
54 |
+
.shepherd-element.shepherd-theme-square.shepherd-element-attached-right.shepherd-element-attached-middle .shepherd-content:before {
|
55 |
+
left: 100%;
|
56 |
+
top: 50%;
|
57 |
+
margin-top: -16px;
|
58 |
+
border-left-color: #f6f6f6; }
|
59 |
+
.shepherd-element.shepherd-theme-square.shepherd-element-attached-left.shepherd-element-attached-middle .shepherd-content {
|
60 |
+
margin-left: 16px; }
|
61 |
+
.shepherd-element.shepherd-theme-square.shepherd-element-attached-left.shepherd-element-attached-middle .shepherd-content:before {
|
62 |
+
right: 100%;
|
63 |
+
top: 50%;
|
64 |
+
margin-top: -16px;
|
65 |
+
border-right-color: #f6f6f6; }
|
66 |
+
.shepherd-element.shepherd-theme-square.shepherd-element-attached-left.shepherd-target-attached-center .shepherd-content {
|
67 |
+
left: -32px; }
|
68 |
+
.shepherd-element.shepherd-theme-square.shepherd-element-attached-right.shepherd-target-attached-center .shepherd-content {
|
69 |
+
left: 32px; }
|
70 |
+
.shepherd-element.shepherd-theme-square.shepherd-element-attached-top.shepherd-element-attached-left.shepherd-target-attached-middle .shepherd-content {
|
71 |
+
margin-top: 16px; }
|
72 |
+
.shepherd-element.shepherd-theme-square.shepherd-element-attached-top.shepherd-element-attached-left.shepherd-target-attached-middle .shepherd-content:before {
|
73 |
+
bottom: 100%;
|
74 |
+
left: 16px;
|
75 |
+
border-bottom-color: #f6f6f6; }
|
76 |
+
.shepherd-element.shepherd-theme-square.shepherd-element-attached-top.shepherd-element-attached-right.shepherd-target-attached-middle .shepherd-content {
|
77 |
+
margin-top: 16px; }
|
78 |
+
.shepherd-element.shepherd-theme-square.shepherd-element-attached-top.shepherd-element-attached-right.shepherd-target-attached-middle .shepherd-content:before {
|
79 |
+
bottom: 100%;
|
80 |
+
right: 16px;
|
81 |
+
border-bottom-color: #f6f6f6; }
|
82 |
+
.shepherd-element.shepherd-theme-square.shepherd-element-attached-bottom.shepherd-element-attached-left.shepherd-target-attached-middle .shepherd-content {
|
83 |
+
margin-bottom: 16px; }
|
84 |
+
.shepherd-element.shepherd-theme-square.shepherd-element-attached-bottom.shepherd-element-attached-left.shepherd-target-attached-middle .shepherd-content:before {
|
85 |
+
top: 100%;
|
86 |
+
left: 16px;
|
87 |
+
border-top-color: #f6f6f6; }
|
88 |
+
.shepherd-element.shepherd-theme-square.shepherd-element-attached-bottom.shepherd-element-attached-right.shepherd-target-attached-middle .shepherd-content {
|
89 |
+
margin-bottom: 16px; }
|
90 |
+
.shepherd-element.shepherd-theme-square.shepherd-element-attached-bottom.shepherd-element-attached-right.shepherd-target-attached-middle .shepherd-content:before {
|
91 |
+
top: 100%;
|
92 |
+
right: 16px;
|
93 |
+
border-top-color: #f6f6f6; }
|
94 |
+
.shepherd-element.shepherd-theme-square.shepherd-element-attached-top.shepherd-element-attached-left.shepherd-target-attached-bottom .shepherd-content {
|
95 |
+
margin-top: 16px; }
|
96 |
+
.shepherd-element.shepherd-theme-square.shepherd-element-attached-top.shepherd-element-attached-left.shepherd-target-attached-bottom .shepherd-content:before {
|
97 |
+
bottom: 100%;
|
98 |
+
left: 16px;
|
99 |
+
border-bottom-color: #f6f6f6; }
|
100 |
+
.shepherd-element.shepherd-theme-square.shepherd-element-attached-top.shepherd-element-attached-right.shepherd-target-attached-bottom .shepherd-content {
|
101 |
+
margin-top: 16px; }
|
102 |
+
.shepherd-element.shepherd-theme-square.shepherd-element-attached-top.shepherd-element-attached-right.shepherd-target-attached-bottom .shepherd-content:before {
|
103 |
+
bottom: 100%;
|
104 |
+
right: 16px;
|
105 |
+
border-bottom-color: #f6f6f6; }
|
106 |
+
.shepherd-element.shepherd-theme-square.shepherd-element-attached-bottom.shepherd-element-attached-left.shepherd-target-attached-top .shepherd-content {
|
107 |
+
margin-bottom: 16px; }
|
108 |
+
.shepherd-element.shepherd-theme-square.shepherd-element-attached-bottom.shepherd-element-attached-left.shepherd-target-attached-top .shepherd-content:before {
|
109 |
+
top: 100%;
|
110 |
+
left: 16px;
|
111 |
+
border-top-color: #f6f6f6; }
|
112 |
+
.shepherd-element.shepherd-theme-square.shepherd-element-attached-bottom.shepherd-element-attached-right.shepherd-target-attached-top .shepherd-content {
|
113 |
+
margin-bottom: 16px; }
|
114 |
+
.shepherd-element.shepherd-theme-square.shepherd-element-attached-bottom.shepherd-element-attached-right.shepherd-target-attached-top .shepherd-content:before {
|
115 |
+
top: 100%;
|
116 |
+
right: 16px;
|
117 |
+
border-top-color: #f6f6f6; }
|
118 |
+
.shepherd-element.shepherd-theme-square.shepherd-element-attached-top.shepherd-element-attached-right.shepherd-target-attached-left .shepherd-content {
|
119 |
+
margin-right: 16px; }
|
120 |
+
.shepherd-element.shepherd-theme-square.shepherd-element-attached-top.shepherd-element-attached-right.shepherd-target-attached-left .shepherd-content:before {
|
121 |
+
top: 16px;
|
122 |
+
left: 100%;
|
123 |
+
border-left-color: #f6f6f6; }
|
124 |
+
.shepherd-element.shepherd-theme-square.shepherd-element-attached-top.shepherd-element-attached-left.shepherd-target-attached-right .shepherd-content {
|
125 |
+
margin-left: 16px; }
|
126 |
+
.shepherd-element.shepherd-theme-square.shepherd-element-attached-top.shepherd-element-attached-left.shepherd-target-attached-right .shepherd-content:before {
|
127 |
+
top: 16px;
|
128 |
+
right: 100%;
|
129 |
+
border-right-color: #f6f6f6; }
|
130 |
+
.shepherd-element.shepherd-theme-square.shepherd-element-attached-bottom.shepherd-element-attached-right.shepherd-target-attached-left .shepherd-content {
|
131 |
+
margin-right: 16px; }
|
132 |
+
.shepherd-element.shepherd-theme-square.shepherd-element-attached-bottom.shepherd-element-attached-right.shepherd-target-attached-left .shepherd-content:before {
|
133 |
+
bottom: 16px;
|
134 |
+
left: 100%;
|
135 |
+
border-left-color: #f6f6f6; }
|
136 |
+
.shepherd-element.shepherd-theme-square.shepherd-element-attached-bottom.shepherd-element-attached-left.shepherd-target-attached-right .shepherd-content {
|
137 |
+
margin-left: 16px; }
|
138 |
+
.shepherd-element.shepherd-theme-square.shepherd-element-attached-bottom.shepherd-element-attached-left.shepherd-target-attached-right .shepherd-content:before {
|
139 |
+
bottom: 16px;
|
140 |
+
right: 100%;
|
141 |
+
border-right-color: #f6f6f6; }
|
142 |
+
|
143 |
+
.shepherd-element.shepherd-theme-square {
|
144 |
+
border-radius: 0;
|
145 |
+
z-index: 9999;
|
146 |
+
max-width: 24em;
|
147 |
+
font-size: 1em; }
|
148 |
+
.shepherd-element.shepherd-theme-square.shepherd-element-attached-top.shepherd-element-attached-center.shepherd-has-title .shepherd-content:before, .shepherd-element.shepherd-theme-square.shepherd-element-attached-top.shepherd-element-attached-right.shepherd-target-attached-bottom.shepherd-has-title .shepherd-content:before, .shepherd-element.shepherd-theme-square.shepherd-element-attached-top.shepherd-element-attached-left.shepherd-target-attached-bottom.shepherd-has-title .shepherd-content:before {
|
149 |
+
border-bottom-color: #e6e6e6; }
|
150 |
+
.shepherd-element.shepherd-theme-square.shepherd-has-title .shepherd-content header {
|
151 |
+
background: #e6e6e6;
|
152 |
+
padding: 1em; }
|
153 |
+
.shepherd-element.shepherd-theme-square.shepherd-has-title .shepherd-content header a.shepherd-cancel-link {
|
154 |
+
padding: 0;
|
155 |
+
margin-bottom: 0; }
|
156 |
+
.shepherd-element.shepherd-theme-square.shepherd-has-cancel-link .shepherd-content header h3 {
|
157 |
+
float: left; }
|
158 |
+
.shepherd-element.shepherd-theme-square .shepherd-content {
|
159 |
+
box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.17);
|
160 |
+
border-radius: 0;
|
161 |
+
padding: 0; }
|
162 |
+
.shepherd-element.shepherd-theme-square .shepherd-content * {
|
163 |
+
font-size: inherit; }
|
164 |
+
.shepherd-element.shepherd-theme-square .shepherd-content header {
|
165 |
+
*zoom: 1;
|
166 |
+
border-radius: 0; }
|
167 |
+
.shepherd-element.shepherd-theme-square .shepherd-content header:after {
|
168 |
+
content: "";
|
169 |
+
display: table;
|
170 |
+
clear: both; }
|
171 |
+
.shepherd-element.shepherd-theme-square .shepherd-content header h3 {
|
172 |
+
margin: 0;
|
173 |
+
line-height: 1;
|
174 |
+
font-weight: normal; }
|
175 |
+
.shepherd-element.shepherd-theme-square .shepherd-content header a.shepherd-cancel-link {
|
176 |
+
float: right;
|
177 |
+
text-decoration: none;
|
178 |
+
font-size: 1.25em;
|
179 |
+
line-height: .8em;
|
180 |
+
font-weight: normal;
|
181 |
+
color: rgba(0, 0, 0, 0.5);
|
182 |
+
opacity: 0.25;
|
183 |
+
position: relative;
|
184 |
+
top: .1em;
|
185 |
+
padding: .8em;
|
186 |
+
margin-bottom: -.8em; }
|
187 |
+
.shepherd-element.shepherd-theme-square .shepherd-content header a.shepherd-cancel-link:hover {
|
188 |
+
opacity: 1; }
|
189 |
+
.shepherd-element.shepherd-theme-square .shepherd-content .shepherd-text {
|
190 |
+
padding: 1em; }
|
191 |
+
.shepherd-element.shepherd-theme-square .shepherd-content .shepherd-text p {
|
192 |
+
margin: 0 0 .5em 0;
|
193 |
+
line-height: 1.3em; }
|
194 |
+
.shepherd-element.shepherd-theme-square .shepherd-content .shepherd-text p:last-child {
|
195 |
+
margin-bottom: 0; }
|
196 |
+
.shepherd-element.shepherd-theme-square .shepherd-content footer {
|
197 |
+
padding: 0 1em 1em; }
|
198 |
+
.shepherd-element.shepherd-theme-square .shepherd-content footer .shepherd-buttons {
|
199 |
+
text-align: right;
|
200 |
+
list-style: none;
|
201 |
+
padding: 0;
|
202 |
+
margin: 0; }
|
203 |
+
.shepherd-element.shepherd-theme-square .shepherd-content footer .shepherd-buttons li {
|
204 |
+
display: inline;
|
205 |
+
padding: 0;
|
206 |
+
margin: 0; }
|
207 |
+
.shepherd-element.shepherd-theme-square .shepherd-content footer .shepherd-buttons li .shepherd-button {
|
208 |
+
display: inline-block;
|
209 |
+
vertical-align: middle;
|
210 |
+
*vertical-align: auto;
|
211 |
+
*zoom: 1;
|
212 |
+
*display: inline;
|
213 |
+
border-radius: 0;
|
214 |
+
cursor: pointer;
|
215 |
+
border: 0;
|
216 |
+
margin: 0 .5em 0 0;
|
217 |
+
font-family: inherit;
|
218 |
+
text-transform: uppercase;
|
219 |
+
letter-spacing: .1em;
|
220 |
+
font-size: .8em;
|
221 |
+
line-height: 1em;
|
222 |
+
padding: .75em 2em;
|
223 |
+
background: #3288e6;
|
224 |
+
color: #fff; }
|
225 |
+
.shepherd-element.shepherd-theme-square .shepherd-content footer .shepherd-buttons li .shepherd-button.shepherd-button-secondary {
|
226 |
+
background: #eee;
|
227 |
+
color: #888; }
|
228 |
+
.shepherd-element.shepherd-theme-square .shepherd-content footer .shepherd-buttons li:last-child .shepherd-button {
|
229 |
+
margin-right: 0; }
|
230 |
+
|
231 |
+
.shepherd-start-tour-button.shepherd-theme-square {
|
232 |
+
display: inline-block;
|
233 |
+
vertical-align: middle;
|
234 |
+
*vertical-align: auto;
|
235 |
+
*zoom: 1;
|
236 |
+
*display: inline;
|
237 |
+
border-radius: 0;
|
238 |
+
cursor: pointer;
|
239 |
+
border: 0;
|
240 |
+
margin: 0 .5em 0 0;
|
241 |
+
font-family: inherit;
|
242 |
+
text-transform: uppercase;
|
243 |
+
letter-spacing: .1em;
|
244 |
+
font-size: .8em;
|
245 |
+
line-height: 1em;
|
246 |
+
padding: .75em 2em;
|
247 |
+
background: #3288e6;
|
248 |
+
color: #fff; }
|
admin/assets/tether-shepherd/shepherd-theme-square.min.css
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
.shepherd-element-attached-bottom.shepherd-element-attached-right.shepherd-target-attached-top.shepherd-target-attached-left .shepherd-content:before,.shepherd-element-attached-bottom.shepherd-element-attached-left.shepherd-target-attached-top.shepherd-target-attached-right .shepherd-content:before,.shepherd-element-attached-top.shepherd-element-attached-right.shepherd-target-attached-bottom.shepherd-target-attached-left .shepherd-content:before,.shepherd-element-attached-top.shepherd-element-attached-left.shepherd-target-attached-bottom.shepherd-target-attached-right .shepherd-content:before{display:none}.shepherd-element,.shepherd-element:after,.shepherd-element:before,.shepherd-element *,.shepherd-element *:after,.shepherd-element *:before{box-sizing:border-box}.shepherd-element{position:absolute;display:none}.shepherd-element.shepherd-open{display:block}.shepherd-element.shepherd-theme-square{max-width:100%;max-height:100%}.shepherd-element.shepherd-theme-square .shepherd-content{border-radius:5px;position:relative;font-family:inherit;background:#f6f6f6;color:#444;padding:1em;font-size:1.1em;line-height:1.5em}.shepherd-element.shepherd-theme-square .shepherd-content:before{content:"";display:block;position:absolute;width:0;height:0;border-color:transparent;border-width:16px;border-style:solid;pointer-events:none}.shepherd-element.shepherd-theme-square.shepherd-element-attached-bottom.shepherd-element-attached-center .shepherd-content{margin-bottom:16px}.shepherd-element.shepherd-theme-square.shepherd-element-attached-bottom.shepherd-element-attached-center .shepherd-content:before{top:100%;left:50%;margin-left:-16px;border-top-color:#f6f6f6}.shepherd-element.shepherd-theme-square.shepherd-element-attached-top.shepherd-element-attached-center .shepherd-content{margin-top:16px}.shepherd-element.shepherd-theme-square.shepherd-element-attached-top.shepherd-element-attached-center .shepherd-content:before{bottom:100%;left:50%;margin-left:-16px;border-bottom-color:#f6f6f6}.shepherd-element.shepherd-theme-square.shepherd-element-attached-right.shepherd-element-attached-middle .shepherd-content{margin-right:16px}.shepherd-element.shepherd-theme-square.shepherd-element-attached-right.shepherd-element-attached-middle .shepherd-content:before{left:100%;top:50%;margin-top:-16px;border-left-color:#f6f6f6}.shepherd-element.shepherd-theme-square.shepherd-element-attached-left.shepherd-element-attached-middle .shepherd-content{margin-left:16px}.shepherd-element.shepherd-theme-square.shepherd-element-attached-left.shepherd-element-attached-middle .shepherd-content:before{right:100%;top:50%;margin-top:-16px;border-right-color:#f6f6f6}.shepherd-element.shepherd-theme-square.shepherd-element-attached-left.shepherd-target-attached-center .shepherd-content{left:-32px}.shepherd-element.shepherd-theme-square.shepherd-element-attached-right.shepherd-target-attached-center .shepherd-content{left:32px}.shepherd-element.shepherd-theme-square.shepherd-element-attached-top.shepherd-element-attached-left.shepherd-target-attached-middle .shepherd-content{margin-top:16px}.shepherd-element.shepherd-theme-square.shepherd-element-attached-top.shepherd-element-attached-left.shepherd-target-attached-middle .shepherd-content:before{bottom:100%;left:16px;border-bottom-color:#f6f6f6}.shepherd-element.shepherd-theme-square.shepherd-element-attached-top.shepherd-element-attached-right.shepherd-target-attached-middle .shepherd-content{margin-top:16px}.shepherd-element.shepherd-theme-square.shepherd-element-attached-top.shepherd-element-attached-right.shepherd-target-attached-middle .shepherd-content:before{bottom:100%;right:16px;border-bottom-color:#f6f6f6}.shepherd-element.shepherd-theme-square.shepherd-element-attached-bottom.shepherd-element-attached-left.shepherd-target-attached-middle .shepherd-content{margin-bottom:16px}.shepherd-element.shepherd-theme-square.shepherd-element-attached-bottom.shepherd-element-attached-left.shepherd-target-attached-middle .shepherd-content:before{top:100%;left:16px;border-top-color:#f6f6f6}.shepherd-element.shepherd-theme-square.shepherd-element-attached-bottom.shepherd-element-attached-right.shepherd-target-attached-middle .shepherd-content{margin-bottom:16px}.shepherd-element.shepherd-theme-square.shepherd-element-attached-bottom.shepherd-element-attached-right.shepherd-target-attached-middle .shepherd-content:before{top:100%;right:16px;border-top-color:#f6f6f6}.shepherd-element.shepherd-theme-square.shepherd-element-attached-top.shepherd-element-attached-left.shepherd-target-attached-bottom .shepherd-content{margin-top:16px}.shepherd-element.shepherd-theme-square.shepherd-element-attached-top.shepherd-element-attached-left.shepherd-target-attached-bottom .shepherd-content:before{bottom:100%;left:16px;border-bottom-color:#f6f6f6}.shepherd-element.shepherd-theme-square.shepherd-element-attached-top.shepherd-element-attached-right.shepherd-target-attached-bottom .shepherd-content{margin-top:16px}.shepherd-element.shepherd-theme-square.shepherd-element-attached-top.shepherd-element-attached-right.shepherd-target-attached-bottom .shepherd-content:before{bottom:100%;right:16px;border-bottom-color:#f6f6f6}.shepherd-element.shepherd-theme-square.shepherd-element-attached-bottom.shepherd-element-attached-left.shepherd-target-attached-top .shepherd-content{margin-bottom:16px}.shepherd-element.shepherd-theme-square.shepherd-element-attached-bottom.shepherd-element-attached-left.shepherd-target-attached-top .shepherd-content:before{top:100%;left:16px;border-top-color:#f6f6f6}.shepherd-element.shepherd-theme-square.shepherd-element-attached-bottom.shepherd-element-attached-right.shepherd-target-attached-top .shepherd-content{margin-bottom:16px}.shepherd-element.shepherd-theme-square.shepherd-element-attached-bottom.shepherd-element-attached-right.shepherd-target-attached-top .shepherd-content:before{top:100%;right:16px;border-top-color:#f6f6f6}.shepherd-element.shepherd-theme-square.shepherd-element-attached-top.shepherd-element-attached-right.shepherd-target-attached-left .shepherd-content{margin-right:16px}.shepherd-element.shepherd-theme-square.shepherd-element-attached-top.shepherd-element-attached-right.shepherd-target-attached-left .shepherd-content:before{top:16px;left:100%;border-left-color:#f6f6f6}.shepherd-element.shepherd-theme-square.shepherd-element-attached-top.shepherd-element-attached-left.shepherd-target-attached-right .shepherd-content{margin-left:16px}.shepherd-element.shepherd-theme-square.shepherd-element-attached-top.shepherd-element-attached-left.shepherd-target-attached-right .shepherd-content:before{top:16px;right:100%;border-right-color:#f6f6f6}.shepherd-element.shepherd-theme-square.shepherd-element-attached-bottom.shepherd-element-attached-right.shepherd-target-attached-left .shepherd-content{margin-right:16px}.shepherd-element.shepherd-theme-square.shepherd-element-attached-bottom.shepherd-element-attached-right.shepherd-target-attached-left .shepherd-content:before{bottom:16px;left:100%;border-left-color:#f6f6f6}.shepherd-element.shepherd-theme-square.shepherd-element-attached-bottom.shepherd-element-attached-left.shepherd-target-attached-right .shepherd-content{margin-left:16px}.shepherd-element.shepherd-theme-square.shepherd-element-attached-bottom.shepherd-element-attached-left.shepherd-target-attached-right .shepherd-content:before{bottom:16px;right:100%;border-right-color:#f6f6f6}.shepherd-element.shepherd-theme-square{border-radius:0;z-index:9999;max-width:24em;font-size:1em}.shepherd-element.shepherd-theme-square.shepherd-element-attached-top.shepherd-element-attached-center.shepherd-has-title .shepherd-content:before,.shepherd-element.shepherd-theme-square.shepherd-element-attached-top.shepherd-element-attached-right.shepherd-target-attached-bottom.shepherd-has-title .shepherd-content:before,.shepherd-element.shepherd-theme-square.shepherd-element-attached-top.shepherd-element-attached-left.shepherd-target-attached-bottom.shepherd-has-title .shepherd-content:before{border-bottom-color:#e6e6e6}.shepherd-element.shepherd-theme-square.shepherd-has-title .shepherd-content header{background:#e6e6e6;padding:1em}.shepherd-element.shepherd-theme-square.shepherd-has-title .shepherd-content header a.shepherd-cancel-link{padding:0;margin-bottom:0}.shepherd-element.shepherd-theme-square.shepherd-has-cancel-link .shepherd-content header h3{float:left}.shepherd-element.shepherd-theme-square .shepherd-content{box-shadow:0 0 0 1px rgba(0,0,0,0.17);border-radius:0;padding:0}.shepherd-element.shepherd-theme-square .shepherd-content *{font-size:inherit}.shepherd-element.shepherd-theme-square .shepherd-content header{*zoom:1;border-radius:0}.shepherd-element.shepherd-theme-square .shepherd-content header:after{content:"";display:table;clear:both}.shepherd-element.shepherd-theme-square .shepherd-content header h3{margin:0;line-height:1;font-weight:normal}.shepherd-element.shepherd-theme-square .shepherd-content header a.shepherd-cancel-link{float:right;text-decoration:none;font-size:1.25em;line-height:.8em;font-weight:normal;color:rgba(0,0,0,0.5);opacity:.25;position:relative;top:.1em;padding:.8em;margin-bottom:-.8em}.shepherd-element.shepherd-theme-square .shepherd-content header a.shepherd-cancel-link:hover{opacity:1}.shepherd-element.shepherd-theme-square .shepherd-content .shepherd-text{padding:1em}.shepherd-element.shepherd-theme-square .shepherd-content .shepherd-text p{margin:0 0 .5em 0;line-height:1.3em}.shepherd-element.shepherd-theme-square .shepherd-content .shepherd-text p:last-child{margin-bottom:0}.shepherd-element.shepherd-theme-square .shepherd-content footer{padding:0 1em 1em}.shepherd-element.shepherd-theme-square .shepherd-content footer .shepherd-buttons{text-align:right;list-style:none;padding:0;margin:0}.shepherd-element.shepherd-theme-square .shepherd-content footer .shepherd-buttons li{display:inline;padding:0;margin:0}.shepherd-element.shepherd-theme-square .shepherd-content footer .shepherd-buttons li .shepherd-button{display:inline-block;vertical-align:middle;*vertical-align:auto;*zoom:1;*display:inline;border-radius:0;cursor:pointer;border:0;margin:0 .5em 0 0;font-family:inherit;text-transform:uppercase;letter-spacing:.1em;font-size:.8em;line-height:1em;padding:.75em 2em;background:#3288e6;color:#fff}.shepherd-element.shepherd-theme-square .shepherd-content footer .shepherd-buttons li .shepherd-button.shepherd-button-secondary{background:#eee;color:#888}.shepherd-element.shepherd-theme-square .shepherd-content footer .shepherd-buttons li:last-child .shepherd-button{margin-right:0}.shepherd-start-tour-button.shepherd-theme-square{display:inline-block;vertical-align:middle;*vertical-align:auto;*zoom:1;*display:inline;border-radius:0;cursor:pointer;border:0;margin:0 .5em 0 0;font-family:inherit;text-transform:uppercase;letter-spacing:.1em;font-size:.8em;line-height:1em;padding:.75em 2em;background:#3288e6;color:#fff}
|
admin/assets/tether-shepherd/shepherd.js
ADDED
@@ -0,0 +1,745 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/*! tether-shepherd 1.8.1 */
|
2 |
+
|
3 |
+
(function(root, factory) {
|
4 |
+
if (typeof define === 'function' && define.amd) {
|
5 |
+
define(["tether"], factory);
|
6 |
+
} else if (typeof exports === 'object') {
|
7 |
+
module.exports = factory(require('tether'));
|
8 |
+
} else {
|
9 |
+
root.Shepherd = factory(root.Tether);
|
10 |
+
}
|
11 |
+
}(this, function(Tether) {
|
12 |
+
|
13 |
+
/* global Tether */
|
14 |
+
|
15 |
+
'use strict';
|
16 |
+
|
17 |
+
var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();
|
18 |
+
|
19 |
+
var _get = function get(_x5, _x6, _x7) { var _again = true; _function: while (_again) { var object = _x5, property = _x6, receiver = _x7; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x5 = parent; _x6 = property; _x7 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } };
|
20 |
+
|
21 |
+
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
|
22 |
+
|
23 |
+
function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
|
24 |
+
|
25 |
+
var _Tether$Utils = Tether.Utils;
|
26 |
+
var Evented = _Tether$Utils.Evented;
|
27 |
+
var addClass = _Tether$Utils.addClass;
|
28 |
+
var extend = _Tether$Utils.extend;
|
29 |
+
var hasClass = _Tether$Utils.hasClass;
|
30 |
+
var removeClass = _Tether$Utils.removeClass;
|
31 |
+
var uniqueId = _Tether$Utils.uniqueId;
|
32 |
+
|
33 |
+
var Shepherd = new Evented();
|
34 |
+
|
35 |
+
function isUndefined(obj) {
|
36 |
+
return typeof obj === 'undefined';
|
37 |
+
};
|
38 |
+
|
39 |
+
function isArray(obj) {
|
40 |
+
return obj && obj.constructor === Array;
|
41 |
+
};
|
42 |
+
|
43 |
+
function isObject(obj) {
|
44 |
+
return obj && obj.constructor === Object;
|
45 |
+
};
|
46 |
+
|
47 |
+
function isObjectLoose(obj) {
|
48 |
+
return typeof obj === 'object';
|
49 |
+
};
|
50 |
+
|
51 |
+
var ATTACHMENT = {
|
52 |
+
'top right': 'bottom left',
|
53 |
+
'top left': 'bottom right',
|
54 |
+
'top center': 'bottom center',
|
55 |
+
'middle right': 'middle left',
|
56 |
+
'middle left': 'middle right',
|
57 |
+
'middle center': 'middle center',
|
58 |
+
'bottom left': 'top right',
|
59 |
+
'bottom right': 'top left',
|
60 |
+
'bottom center': 'top center',
|
61 |
+
'top': 'bottom center',
|
62 |
+
'left': 'middle right',
|
63 |
+
'right': 'middle left',
|
64 |
+
'bottom': 'top center',
|
65 |
+
'center': 'middle center',
|
66 |
+
'middle': 'middle center'
|
67 |
+
};
|
68 |
+
|
69 |
+
function createFromHTML(html) {
|
70 |
+
var el = document.createElement('div');
|
71 |
+
el.innerHTML = html;
|
72 |
+
return el.children[0];
|
73 |
+
}
|
74 |
+
|
75 |
+
function matchesSelector(el, sel) {
|
76 |
+
var matches = undefined;
|
77 |
+
if (!isUndefined(el.matches)) {
|
78 |
+
matches = el.matches;
|
79 |
+
} else if (!isUndefined(el.matchesSelector)) {
|
80 |
+
matches = el.matchesSelector;
|
81 |
+
} else if (!isUndefined(el.msMatchesSelector)) {
|
82 |
+
matches = el.msMatchesSelector;
|
83 |
+
} else if (!isUndefined(el.webkitMatchesSelector)) {
|
84 |
+
matches = el.webkitMatchesSelector;
|
85 |
+
} else if (!isUndefined(el.mozMatchesSelector)) {
|
86 |
+
matches = el.mozMatchesSelector;
|
87 |
+
} else if (!isUndefined(el.oMatchesSelector)) {
|
88 |
+
matches = el.oMatchesSelector;
|
89 |
+
}
|
90 |
+
return matches.call(el, sel);
|
91 |
+
}
|
92 |
+
|
93 |
+
var positionRe = /^(.+) (top|left|right|bottom|center|\[[a-z ]+\])$/;
|
94 |
+
|
95 |
+
function parsePosition(str) {
|
96 |
+
if (isObjectLoose(str)) {
|
97 |
+
if (str.hasOwnProperty("element") && str.hasOwnProperty("on")) {
|
98 |
+
return str;
|
99 |
+
}
|
100 |
+
return null;
|
101 |
+
}
|
102 |
+
|
103 |
+
var matches = positionRe.exec(str);
|
104 |
+
if (!matches) {
|
105 |
+
return null;
|
106 |
+
}
|
107 |
+
|
108 |
+
var on = matches[2];
|
109 |
+
if (on[0] === '[') {
|
110 |
+
on = on.substring(1, on.length - 1);
|
111 |
+
}
|
112 |
+
|
113 |
+
return {
|
114 |
+
'element': matches[1],
|
115 |
+
'on': on
|
116 |
+
};
|
117 |
+
}
|
118 |
+
|
119 |
+
function parseShorthand(obj, props) {
|
120 |
+
if (obj === null || isUndefined(obj)) {
|
121 |
+
return obj;
|
122 |
+
} else if (isObjectLoose(obj)) {
|
123 |
+
return obj;
|
124 |
+
}
|
125 |
+
|
126 |
+
var vals = obj.split(' ');
|
127 |
+
var out = {};
|
128 |
+
var j = props.length - 1;
|
129 |
+
for (var i = vals.length - 1; i >= 0; i--) {
|
130 |
+
if (j === 0) {
|
131 |
+
out[props[j]] = vals.slice(0, i + 1).join(' ');
|
132 |
+
break;
|
133 |
+
} else {
|
134 |
+
out[props[j]] = vals[i];
|
135 |
+
}
|
136 |
+
|
137 |
+
j--;
|
138 |
+
}
|
139 |
+
|
140 |
+
return out;
|
141 |
+
}
|
142 |
+
|
143 |
+
var Step = (function (_Evented) {
|
144 |
+
_inherits(Step, _Evented);
|
145 |
+
|
146 |
+
function Step(tour, options) {
|
147 |
+
_classCallCheck(this, Step);
|
148 |
+
|
149 |
+
_get(Object.getPrototypeOf(Step.prototype), 'constructor', this).call(this, tour, options);
|
150 |
+
this.tour = tour;
|
151 |
+
this.bindMethods();
|
152 |
+
this.setOptions(options);
|
153 |
+
return this;
|
154 |
+
}
|
155 |
+
|
156 |
+
_createClass(Step, [{
|
157 |
+
key: 'bindMethods',
|
158 |
+
value: function bindMethods() {
|
159 |
+
var _this = this;
|
160 |
+
|
161 |
+
var methods = ['_show', 'show', 'hide', 'isOpen', 'cancel', 'complete', 'scrollTo', 'destroy', 'render'];
|
162 |
+
methods.map(function (method) {
|
163 |
+
_this[method] = _this[method].bind(_this);
|
164 |
+
});
|
165 |
+
}
|
166 |
+
}, {
|
167 |
+
key: 'setOptions',
|
168 |
+
value: function setOptions() {
|
169 |
+
var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];
|
170 |
+
|
171 |
+
this.options = options;
|
172 |
+
this.destroy();
|
173 |
+
|
174 |
+
this.id = this.options.id || this.id || 'step-' + uniqueId();
|
175 |
+
|
176 |
+
var when = this.options.when;
|
177 |
+
if (when) {
|
178 |
+
for (var _event in when) {
|
179 |
+
if (({}).hasOwnProperty.call(when, _event)) {
|
180 |
+
var handler = when[_event];
|
181 |
+
this.on(_event, handler, this);
|
182 |
+
}
|
183 |
+
}
|
184 |
+
}
|
185 |
+
|
186 |
+
// Button configuration
|
187 |
+
|
188 |
+
var buttonsJson = JSON.stringify(this.options.buttons);
|
189 |
+
var buttonsAreDefault = isUndefined(buttonsJson) || buttonsJson === "true";
|
190 |
+
|
191 |
+
var buttonsAreEmpty = buttonsJson === "{}" || buttonsJson === "[]" || buttonsJson === "null" || buttonsJson === "false";
|
192 |
+
|
193 |
+
var buttonsAreArray = !buttonsAreDefault && isArray(this.options.buttons);
|
194 |
+
|
195 |
+
var buttonsAreObject = !buttonsAreDefault && isObject(this.options.buttons);
|
196 |
+
|
197 |
+
// Show default button if undefined or 'true'
|
198 |
+
if (buttonsAreDefault) {
|
199 |
+
this.options.buttons = [{
|
200 |
+
text: 'Next',
|
201 |
+
action: this.tour.next,
|
202 |
+
classes: 'btn'
|
203 |
+
}];
|
204 |
+
|
205 |
+
// Can pass in an object which will assume asingle button
|
206 |
+
} else if (!buttonsAreEmpty && buttonsAreObject) {
|
207 |
+
this.options.buttons = [this.options.buttons];
|
208 |
+
|
209 |
+
// Falsey/empty values or non-object values prevent buttons from rendering
|
210 |
+
} else if (buttonsAreEmpty || !buttonsAreArray) {
|
211 |
+
this.options.buttons = false;
|
212 |
+
}
|
213 |
+
}
|
214 |
+
}, {
|
215 |
+
key: 'getTour',
|
216 |
+
value: function getTour() {
|
217 |
+
return this.tour;
|
218 |
+
}
|
219 |
+
}, {
|
220 |
+
key: 'bindAdvance',
|
221 |
+
value: function bindAdvance() {
|
222 |
+
var _this2 = this;
|
223 |
+
|
224 |
+
// An empty selector matches the step element
|
225 |
+
|
226 |
+
var _parseShorthand = parseShorthand(this.options.advanceOn, ['selector', 'event']);
|
227 |
+
|
228 |
+
var event = _parseShorthand.event;
|
229 |
+
var selector = _parseShorthand.selector;
|
230 |
+
|
231 |
+
var handler = function handler(e) {
|
232 |
+
if (!_this2.isOpen()) {
|
233 |
+
return;
|
234 |
+
}
|
235 |
+
|
236 |
+
if (!isUndefined(selector)) {
|
237 |
+
if (matchesSelector(e.target, selector)) {
|
238 |
+
_this2.tour.next();
|
239 |
+
}
|
240 |
+
} else {
|
241 |
+
if (_this2.el && e.target === _this2.el) {
|
242 |
+
_this2.tour.next();
|
243 |
+
}
|
244 |
+
}
|
245 |
+
};
|
246 |
+
|
247 |
+
// TODO: this should also bind/unbind on show/hide
|
248 |
+
document.body.addEventListener(event, handler);
|
249 |
+
this.on('destroy', function () {
|
250 |
+
return document.body.removeEventListener(event, handler);
|
251 |
+
});
|
252 |
+
}
|
253 |
+
}, {
|
254 |
+
key: 'getAttachTo',
|
255 |
+
value: function getAttachTo() {
|
256 |
+
var opts = parsePosition(this.options.attachTo) || {};
|
257 |
+
var returnOpts = extend({}, opts);
|
258 |
+
|
259 |
+
if (typeof opts.element === 'string') {
|
260 |
+
// Can't override the element in user opts reference because we can't
|
261 |
+
// guarantee that the element will exist in the future.
|
262 |
+
returnOpts.element = document.querySelector(opts.element);
|
263 |
+
if (!returnOpts.element) {
|
264 |
+
console.error('The element for this Shepherd step was not found ' + opts.element);
|
265 |
+
}
|
266 |
+
}
|
267 |
+
|
268 |
+
return returnOpts;
|
269 |
+
}
|
270 |
+
}, {
|
271 |
+
key: 'setupTether',
|
272 |
+
value: function setupTether() {
|
273 |
+
if (isUndefined(Tether)) {
|
274 |
+
throw new Error("Using the attachment feature of Shepherd requires the Tether library");
|
275 |
+
}
|
276 |
+
|
277 |
+
var opts = this.getAttachTo();
|
278 |
+
var attachment = ATTACHMENT[opts.on] || ATTACHMENT.right;
|
279 |
+
if (isUndefined(opts.element)) {
|
280 |
+
opts.element = 'viewport';
|
281 |
+
attachment = 'middle center';
|
282 |
+
}
|
283 |
+
|
284 |
+
var tetherOpts = {
|
285 |
+
classPrefix: 'shepherd',
|
286 |
+
element: this.el,
|
287 |
+
constraints: [{
|
288 |
+
to: 'window',
|
289 |
+
pin: true,
|
290 |
+
attachment: 'together'
|
291 |
+
}],
|
292 |
+
target: opts.element,
|
293 |
+
offset: opts.offset || '0 0',
|
294 |
+
attachment: attachment
|
295 |
+
};
|
296 |
+
|
297 |
+
if (this.tether) {
|
298 |
+
this.tether.destroy();
|
299 |
+
}
|
300 |
+
|
301 |
+
this.tether = new Tether(extend(tetherOpts, this.options.tetherOptions));
|
302 |
+
}
|
303 |
+
}, {
|
304 |
+
key: 'show',
|
305 |
+
value: function show() {
|
306 |
+
var _this3 = this;
|
307 |
+
|
308 |
+
if (!isUndefined(this.options.beforeShowPromise)) {
|
309 |
+
var beforeShowPromise = this.options.beforeShowPromise();
|
310 |
+
if (!isUndefined(beforeShowPromise)) {
|
311 |
+
return beforeShowPromise.then(function () {
|
312 |
+
return _this3._show();
|
313 |
+
});
|
314 |
+
}
|
315 |
+
}
|
316 |
+
this._show();
|
317 |
+
}
|
318 |
+
}, {
|
319 |
+
key: '_show',
|
320 |
+
value: function _show() {
|
321 |
+
var _this4 = this;
|
322 |
+
|
323 |
+
this.trigger('before-show');
|
324 |
+
|
325 |
+
if (!this.el) {
|
326 |
+
this.render();
|
327 |
+
}
|
328 |
+
|
329 |
+
addClass(this.el, 'shepherd-open');
|
330 |
+
|
331 |
+
document.body.setAttribute('data-shepherd-step', this.id);
|
332 |
+
|
333 |
+
this.setupTether();
|
334 |
+
|
335 |
+
if (this.options.scrollTo) {
|
336 |
+
setTimeout(function () {
|
337 |
+
_this4.scrollTo();
|
338 |
+
});
|
339 |
+
}
|
340 |
+
|
341 |
+
this.trigger('show');
|
342 |
+
}
|
343 |
+
}, {
|
344 |
+
key: 'hide',
|
345 |
+
value: function hide() {
|
346 |
+
this.trigger('before-hide');
|
347 |
+
|
348 |
+
removeClass(this.el, 'shepherd-open');
|
349 |
+
|
350 |
+
document.body.removeAttribute('data-shepherd-step');
|
351 |
+
|
352 |
+
if (this.tether) {
|
353 |
+
this.tether.destroy();
|
354 |
+
}
|
355 |
+
this.tether = null;
|
356 |
+
|
357 |
+
this.trigger('hide');
|
358 |
+
}
|
359 |
+
}, {
|
360 |
+
key: 'isOpen',
|
361 |
+
value: function isOpen() {
|
362 |
+
return this.el && hasClass(this.el, 'shepherd-open');
|
363 |
+
}
|
364 |
+
}, {
|
365 |
+
key: 'cancel',
|
366 |
+
value: function cancel() {
|
367 |
+
this.tour.cancel();
|
368 |
+
this.trigger('cancel');
|
369 |
+
}
|
370 |
+
}, {
|
371 |
+
key: 'complete',
|
372 |
+
value: function complete() {
|
373 |
+
this.tour.complete();
|
374 |
+
this.trigger('complete');
|
375 |
+
}
|
376 |
+
}, {
|
377 |
+
key: 'scrollTo',
|
378 |
+
value: function scrollTo() {
|
379 |
+
var _getAttachTo = this.getAttachTo();
|
380 |
+
|
381 |
+
var element = _getAttachTo.element;
|
382 |
+
|
383 |
+
if (!isUndefined(this.options.scrollToHandler)) {
|
384 |
+
this.options.scrollToHandler(element);
|
385 |
+
} else if (!isUndefined(element)) {
|
386 |
+
element.scrollIntoView();
|
387 |
+
}
|
388 |
+
}
|
389 |
+
}, {
|
390 |
+
key: 'destroy',
|
391 |
+
value: function destroy() {
|
392 |
+
if (!isUndefined(this.el) && this.el.parentNode) {
|
393 |
+
this.el.parentNode.removeChild(this.el);
|
394 |
+
delete this.el;
|
395 |
+
}
|
396 |
+
|
397 |
+
if (this.tether) {
|
398 |
+
this.tether.destroy();
|
399 |
+
}
|
400 |
+
this.tether = null;
|
401 |
+
|
402 |
+
this.trigger('destroy');
|
403 |
+
}
|
404 |
+
}, {
|
405 |
+
key: 'render',
|
406 |
+
value: function render() {
|
407 |
+
var _this5 = this;
|
408 |
+
|
409 |
+
if (!isUndefined(this.el)) {
|
410 |
+
this.destroy();
|
411 |
+
}
|
412 |
+
|
413 |
+
this.el = createFromHTML('<div class=\'shepherd-step ' + (this.options.classes || '') + '\' data-id=\'' + this.id + '\' ' + (this.options.idAttribute ? 'id="' + this.options.idAttribute + '"' : '') + '></div>');
|
414 |
+
|
415 |
+
var content = document.createElement('div');
|
416 |
+
content.className = 'shepherd-content';
|
417 |
+
this.el.appendChild(content);
|
418 |
+
|
419 |
+
var header = document.createElement('header');
|
420 |
+
content.appendChild(header);
|
421 |
+
|
422 |
+
if (this.options.title) {
|
423 |
+
header.innerHTML += '<h3 class=\'shepherd-title\'>' + this.options.title + '</h3>';
|
424 |
+
this.el.className += ' shepherd-has-title';
|
425 |
+
}
|
426 |
+
|
427 |
+
if (this.options.showCancelLink) {
|
428 |
+
var link = createFromHTML("<a href class='shepherd-cancel-link'>✕</a>");
|
429 |
+
header.appendChild(link);
|
430 |
+
|
431 |
+
this.el.className += ' shepherd-has-cancel-link';
|
432 |
+
|
433 |
+
this.bindCancelLink(link);
|
434 |
+
}
|
435 |
+
|
436 |
+
if (!isUndefined(this.options.text)) {
|
437 |
+
(function () {
|
438 |
+
var text = createFromHTML("<div class='shepherd-text'></div>");
|
439 |
+
var paragraphs = _this5.options.text;
|
440 |
+
|
441 |
+
if (typeof paragraphs === 'function') {
|
442 |
+
paragraphs = paragraphs.call(_this5, text);
|
443 |
+
}
|
444 |
+
|
445 |
+
if (paragraphs instanceof HTMLElement) {
|
446 |
+
text.appendChild(paragraphs);
|
447 |
+
} else {
|
448 |
+
if (typeof paragraphs === 'string') {
|
449 |
+
paragraphs = [paragraphs];
|
450 |
+
}
|
451 |
+
|
452 |
+
paragraphs.map(function (paragraph) {
|
453 |
+
text.innerHTML += '<p>' + paragraph + '</p>';
|
454 |
+
});
|
455 |
+
}
|
456 |
+
|
457 |
+
content.appendChild(text);
|
458 |
+
})();
|
459 |
+
}
|
460 |
+
|
461 |
+
if (this.options.buttons) {
|
462 |
+
(function () {
|
463 |
+
var footer = document.createElement('footer');
|
464 |
+
var buttons = createFromHTML("<ul class='shepherd-buttons'></ul>");
|
465 |
+
|
466 |
+
_this5.options.buttons.map(function (cfg) {
|
467 |
+
var button = createFromHTML('<li><a class=\'shepherd-button ' + (cfg.classes || '') + '\'>' + cfg.text + '</a>');
|
468 |
+
buttons.appendChild(button);
|
469 |
+
_this5.bindButtonEvents(cfg, button.querySelector('a'));
|
470 |
+
});
|
471 |
+
|
472 |
+
footer.appendChild(buttons);
|
473 |
+
content.appendChild(footer);
|
474 |
+
})();
|
475 |
+
}
|
476 |
+
|
477 |
+
document.body.appendChild(this.el);
|
478 |
+
|
479 |
+
this.setupTether();
|
480 |
+
|
481 |
+
if (this.options.advanceOn) {
|
482 |
+
this.bindAdvance();
|
483 |
+
}
|
484 |
+
}
|
485 |
+
}, {
|
486 |
+
key: 'bindCancelLink',
|
487 |
+
value: function bindCancelLink(link) {
|
488 |
+
var _this6 = this;
|
489 |
+
|
490 |
+
link.addEventListener('click', function (e) {
|
491 |
+
e.preventDefault();
|
492 |
+
_this6.cancel();
|
493 |
+
});
|
494 |
+
}
|
495 |
+
}, {
|
496 |
+
key: 'bindButtonEvents',
|
497 |
+
value: function bindButtonEvents(cfg, el) {
|
498 |
+
var _this7 = this;
|
499 |
+
|
500 |
+
cfg.events = cfg.events || {};
|
501 |
+
if (!isUndefined(cfg.action)) {
|
502 |
+
// Including both a click event and an action is not supported
|
503 |
+
cfg.events.click = cfg.action;
|
504 |
+
}
|
505 |
+
|
506 |
+
for (var _event2 in cfg.events) {
|
507 |
+
if (({}).hasOwnProperty.call(cfg.events, _event2)) {
|
508 |
+
var handler = cfg.events[_event2];
|
509 |
+
if (typeof handler === 'string') {
|
510 |
+
(function () {
|
511 |
+
var page = handler;
|
512 |
+
handler = function () {
|
513 |
+
return _this7.tour.show(page);
|
514 |
+
};
|
515 |
+
})();
|
516 |
+
}
|
517 |
+
el.addEventListener(_event2, handler);
|
518 |
+
}
|
519 |
+
}
|
520 |
+
|
521 |
+
this.on('destroy', function () {
|
522 |
+
for (var _event3 in cfg.events) {
|
523 |
+
if (({}).hasOwnProperty.call(cfg.events, _event3)) {
|
524 |
+
var handler = cfg.events[_event3];
|
525 |
+
el.removeEventListener(_event3, handler);
|
526 |
+
}
|
527 |
+
}
|
528 |
+
});
|
529 |
+
}
|
530 |
+
}]);
|
531 |
+
|
532 |
+
return Step;
|
533 |
+
})(Evented);
|
534 |
+
|
535 |
+
var Tour = (function (_Evented2) {
|
536 |
+
_inherits(Tour, _Evented2);
|
537 |
+
|
538 |
+
function Tour() {
|
539 |
+
var _this8 = this;
|
540 |
+
|
541 |
+
var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];
|
542 |
+
|
543 |
+
_classCallCheck(this, Tour);
|
544 |
+
|
545 |
+
_get(Object.getPrototypeOf(Tour.prototype), 'constructor', this).call(this, options);
|
546 |
+
this.bindMethods();
|
547 |
+
this.options = options;
|
548 |
+
this.steps = this.options.steps || [];
|
549 |
+
|
550 |
+
// Pass these events onto the global Shepherd object
|
551 |
+
var events = ['complete', 'cancel', 'hide', 'start', 'show', 'active', 'inactive'];
|
552 |
+
events.map(function (event) {
|
553 |
+
(function (e) {
|
554 |
+
_this8.on(e, function (opts) {
|
555 |
+
opts = opts || {};
|
556 |
+
opts.tour = _this8;
|
557 |
+
Shepherd.trigger(e, opts);
|
558 |
+
});
|
559 |
+
})(event);
|
560 |
+
});
|
561 |
+
|
562 |
+
return this;
|
563 |
+
}
|
564 |
+
|
565 |
+
_createClass(Tour, [{
|
566 |
+
key: 'bindMethods',
|
567 |
+
value: function bindMethods() {
|
568 |
+
var _this9 = this;
|
569 |
+
|
570 |
+
var methods = ['next', 'back', 'cancel', 'complete', 'hide'];
|
571 |
+
methods.map(function (method) {
|
572 |
+
_this9[method] = _this9[method].bind(_this9);
|
573 |
+
});
|
574 |
+
}
|
575 |
+
}, {
|
576 |
+
key: 'addStep',
|
577 |
+
value: function addStep(name, step) {
|
578 |
+
if (isUndefined(step)) {
|
579 |
+
step = name;
|
580 |
+
}
|
581 |
+
|
582 |
+
if (!(step instanceof Step)) {
|
583 |
+
if (typeof name === 'string' || typeof name === 'number') {
|
584 |
+
step.id = name.toString();
|
585 |
+
}
|
586 |
+
step = extend({}, this.options.defaults, step);
|
587 |
+
step = new Step(this, step);
|
588 |
+
} else {
|
589 |
+
step.tour = this;
|
590 |
+
}
|
591 |
+
|
592 |
+
this.steps.push(step);
|
593 |
+
return this;
|
594 |
+
}
|
595 |
+
}, {
|
596 |
+
key: 'removeStep',
|
597 |
+
value: function removeStep(name) {
|
598 |
+
var current = this.getCurrentStep();
|
599 |
+
|
600 |
+
for (var i = 0; i < this.steps.length; ++i) {
|
601 |
+
var step = this.steps[i];
|
602 |
+
if (step.id === name) {
|
603 |
+
if (step.isOpen()) {
|
604 |
+
step.hide();
|
605 |
+
}
|
606 |
+
step.destroy();
|
607 |
+
this.steps.splice(i, 1);
|
608 |
+
break;
|
609 |
+
}
|
610 |
+
}
|
611 |
+
|
612 |
+
if (current && current.id === name) {
|
613 |
+
this.currentStep = undefined;
|
614 |
+
|
615 |
+
if (this.steps.length) this.show(0);else this.hide();
|
616 |
+
}
|
617 |
+
}
|
618 |
+
}, {
|
619 |
+
key: 'getById',
|
620 |
+
value: function getById(id) {
|
621 |
+
for (var i = 0; i < this.steps.length; ++i) {
|
622 |
+
var step = this.steps[i];
|
623 |
+
if (step.id === id) {
|
624 |
+
return step;
|
625 |
+
}
|
626 |
+
}
|
627 |
+
}
|
628 |
+
}, {
|
629 |
+
key: 'getCurrentStep',
|
630 |
+
value: function getCurrentStep() {
|
631 |
+
return this.currentStep;
|
632 |
+
}
|
633 |
+
}, {
|
634 |
+
key: 'next',
|
635 |
+
value: function next() {
|
636 |
+
var index = this.steps.indexOf(this.currentStep);
|
637 |
+
|
638 |
+
if (index === this.steps.length - 1) {
|
639 |
+
this.hide(index);
|
640 |
+
this.trigger('complete');
|
641 |
+
this.done();
|
642 |
+
} else {
|
643 |
+
this.show(index + 1, true);
|
644 |
+
}
|
645 |
+
}
|
646 |
+
}, {
|
647 |
+
key: 'back',
|
648 |
+
value: function back() {
|
649 |
+
var index = this.steps.indexOf(this.currentStep);
|
650 |
+
this.show(index - 1, false);
|
651 |
+
}
|
652 |
+
}, {
|
653 |
+
key: 'cancel',
|
654 |
+
value: function cancel() {
|
655 |
+
if (this.currentStep) {
|
656 |
+
this.currentStep.hide();
|
657 |
+
}
|
658 |
+
this.trigger('cancel');
|
659 |
+
this.done();
|
660 |
+
}
|
661 |
+
}, {
|
662 |
+
key: 'complete',
|
663 |
+
value: function complete() {
|
664 |
+
if (this.currentStep) {
|
665 |
+
this.currentStep.hide();
|
666 |
+
}
|
667 |
+
this.trigger('complete');
|
668 |
+
this.done();
|
669 |
+
}
|
670 |
+
}, {
|
671 |
+
key: 'hide',
|
672 |
+
value: function hide() {
|
673 |
+
if (this.currentStep) {
|
674 |
+
this.currentStep.hide();
|
675 |
+
}
|
676 |
+
this.trigger('hide');
|
677 |
+
this.done();
|
678 |
+
}
|
679 |
+
}, {
|
680 |
+
key: 'done',
|
681 |
+
value: function done() {
|
682 |
+
Shepherd.activeTour = null;
|
683 |
+
removeClass(document.body, 'shepherd-active');
|
684 |
+
this.trigger('inactive', { tour: this });
|
685 |
+
}
|
686 |
+
}, {
|
687 |
+
key: 'show',
|
688 |
+
value: function show() {
|
689 |
+
var key = arguments.length <= 0 || arguments[0] === undefined ? 0 : arguments[0];
|
690 |
+
var forward = arguments.length <= 1 || arguments[1] === undefined ? true : arguments[1];
|
691 |
+
|
692 |
+
if (this.currentStep) {
|
693 |
+
this.currentStep.hide();
|
694 |
+
} else {
|
695 |
+
addClass(document.body, 'shepherd-active');
|
696 |
+
this.trigger('active', { tour: this });
|
697 |
+
}
|
698 |
+
|
699 |
+
Shepherd.activeTour = this;
|
700 |
+
|
701 |
+
var next = undefined;
|
702 |
+
|
703 |
+
if (typeof key === 'string') {
|
704 |
+
next = this.getById(key);
|
705 |
+
} else {
|
706 |
+
next = this.steps[key];
|
707 |
+
}
|
708 |
+
|
709 |
+
if (next) {
|
710 |
+
if (!isUndefined(next.options.showOn) && !next.options.showOn()) {
|
711 |
+
var index = this.steps.indexOf(next);
|
712 |
+
var nextIndex = forward ? index + 1 : index - 1;
|
713 |
+
this.show(nextIndex, forward);
|
714 |
+
} else {
|
715 |
+
this.trigger('show', {
|
716 |
+
step: next,
|
717 |
+
previous: this.currentStep
|
718 |
+
});
|
719 |
+
|
720 |
+
if (this.currentStep) {
|
721 |
+
this.currentStep.hide();
|
722 |
+
}
|
723 |
+
|
724 |
+
this.currentStep = next;
|
725 |
+
next.show();
|
726 |
+
}
|
727 |
+
}
|
728 |
+
}
|
729 |
+
}, {
|
730 |
+
key: 'start',
|
731 |
+
value: function start() {
|
732 |
+
this.trigger('start');
|
733 |
+
|
734 |
+
this.currentStep = null;
|
735 |
+
this.next();
|
736 |
+
}
|
737 |
+
}]);
|
738 |
+
|
739 |
+
return Tour;
|
740 |
+
})(Evented);
|
741 |
+
|
742 |
+
extend(Shepherd, { Tour: Tour, Step: Step, Evented: Evented });
|
743 |
+
return Shepherd;
|
744 |
+
|
745 |
+
}));
|
admin/assets/tether-shepherd/shepherd.min.js
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
!function(t,e){"function"==typeof define&&define.amd?define(["tether"],e):"object"==typeof exports?module.exports=e(require("tether")):t.Shepherd=e(t.Tether)}(this,function(t){"use strict";function e(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function n(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}function i(t){return"undefined"==typeof t}function r(t){return t&&t.constructor===Array}function o(t){return t&&t.constructor===Object}function s(t){return"object"==typeof t}function h(t){var e=document.createElement("div");return e.innerHTML=t,e.children[0]}function c(t,e){var n=void 0;return i(t.matches)?i(t.matchesSelector)?i(t.msMatchesSelector)?i(t.webkitMatchesSelector)?i(t.mozMatchesSelector)?i(t.oMatchesSelector)||(n=t.oMatchesSelector):n=t.mozMatchesSelector:n=t.webkitMatchesSelector:n=t.msMatchesSelector:n=t.matchesSelector:n=t.matches,n.call(t,e)}function l(t){if(s(t))return t.hasOwnProperty("element")&&t.hasOwnProperty("on")?t:null;var e=S.exec(t);if(!e)return null;var n=e[2];return"["===n[0]&&(n=n.substring(1,n.length-1)),{element:e[1],on:n}}function a(t,e){if(null===t||i(t))return t;if(s(t))return t;for(var n=t.split(" "),r={},o=e.length-1,h=n.length-1;h>=0;h--){if(0===o){r[e[o]]=n.slice(0,h+1).join(" ");break}r[e[o]]=n[h],o--}return r}var u=function(){function t(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}return function(e,n,i){return n&&t(e.prototype,n),i&&t(e,i),e}}(),d=function(t,e,n){for(var i=!0;i;){var r=t,o=e,s=n;i=!1,null===r&&(r=Function.prototype);var h=Object.getOwnPropertyDescriptor(r,o);if(void 0!==h){if("value"in h)return h.value;var c=h.get;if(void 0===c)return;return c.call(s)}var l=Object.getPrototypeOf(r);if(null===l)return;t=l,e=o,n=s,i=!0,h=l=void 0}},p=t.Utils,f=p.Evented,v=p.addClass,m=p.extend,y=p.hasClass,g=p.removeClass,b=p.uniqueId,w=new f,k={"top right":"bottom left","top left":"bottom right","top center":"bottom center","middle right":"middle left","middle left":"middle right","middle center":"middle center","bottom left":"top right","bottom right":"top left","bottom center":"top center",top:"bottom center",left:"middle right",right:"middle left",bottom:"top center",center:"middle center",middle:"middle center"},S=/^(.+) (top|left|right|bottom|center|\[[a-z ]+\])$/,O=function(s){function p(t,n){return e(this,p),d(Object.getPrototypeOf(p.prototype),"constructor",this).call(this,t,n),this.tour=t,this.bindMethods(),this.setOptions(n),this}return n(p,s),u(p,[{key:"bindMethods",value:function(){var t=this,e=["_show","show","hide","isOpen","cancel","complete","scrollTo","destroy","render"];e.map(function(e){t[e]=t[e].bind(t)})}},{key:"setOptions",value:function(){var t=arguments.length<=0||void 0===arguments[0]?{}:arguments[0];this.options=t,this.destroy(),this.id=this.options.id||this.id||"step-"+b();var e=this.options.when;if(e)for(var n in e)if({}.hasOwnProperty.call(e,n)){var s=e[n];this.on(n,s,this)}var h=JSON.stringify(this.options.buttons),c=i(h)||"true"===h,l="{}"===h||"[]"===h||"null"===h||"false"===h,a=!c&&r(this.options.buttons),u=!c&&o(this.options.buttons);c?this.options.buttons=[{text:"Next",action:this.tour.next,classes:"btn"}]:!l&&u?this.options.buttons=[this.options.buttons]:!l&&a||(this.options.buttons=!1)}},{key:"getTour",value:function(){return this.tour}},{key:"bindAdvance",value:function(){var t=this,e=a(this.options.advanceOn,["selector","event"]),n=e.event,r=e.selector,o=function(e){t.isOpen()&&(i(r)?t.el&&e.target===t.el&&t.tour.next():c(e.target,r)&&t.tour.next())};document.body.addEventListener(n,o),this.on("destroy",function(){return document.body.removeEventListener(n,o)})}},{key:"getAttachTo",value:function(){var t=l(this.options.attachTo)||{},e=m({},t);return"string"==typeof t.element&&(e.element=document.querySelector(t.element),e.element||console.error("The element for this Shepherd step was not found "+t.element)),e}},{key:"setupTether",value:function(){if(i(t))throw new Error("Using the attachment feature of Shepherd requires the Tether library");var e=this.getAttachTo(),n=k[e.on]||k.right;i(e.element)&&(e.element="viewport",n="middle center");var r={classPrefix:"shepherd",element:this.el,constraints:[{to:"window",pin:!0,attachment:"together"}],target:e.element,offset:e.offset||"0 0",attachment:n};this.tether&&this.tether.destroy(),this.tether=new t(m(r,this.options.tetherOptions))}},{key:"show",value:function(){var t=this;if(!i(this.options.beforeShowPromise)){var e=this.options.beforeShowPromise();if(!i(e))return e.then(function(){return t._show()})}this._show()}},{key:"_show",value:function(){var t=this;this.trigger("before-show"),this.el||this.render(),v(this.el,"shepherd-open"),document.body.setAttribute("data-shepherd-step",this.id),this.setupTether(),this.options.scrollTo&&setTimeout(function(){t.scrollTo()}),this.trigger("show")}},{key:"hide",value:function(){this.trigger("before-hide"),g(this.el,"shepherd-open"),document.body.removeAttribute("data-shepherd-step"),this.tether&&this.tether.destroy(),this.tether=null,this.trigger("hide")}},{key:"isOpen",value:function(){return this.el&&y(this.el,"shepherd-open")}},{key:"cancel",value:function(){this.tour.cancel(),this.trigger("cancel")}},{key:"complete",value:function(){this.tour.complete(),this.trigger("complete")}},{key:"scrollTo",value:function(){var t=this.getAttachTo(),e=t.element;i(this.options.scrollToHandler)?i(e)||e.scrollIntoView():this.options.scrollToHandler(e)}},{key:"destroy",value:function(){!i(this.el)&&this.el.parentNode&&(this.el.parentNode.removeChild(this.el),delete this.el),this.tether&&this.tether.destroy(),this.tether=null,this.trigger("destroy")}},{key:"render",value:function(){var t=this;i(this.el)||this.destroy(),this.el=h("<div class='shepherd-step "+(this.options.classes||"")+"' data-id='"+this.id+"' "+(this.options.idAttribute?'id="'+this.options.idAttribute+'"':"")+"></div>");var e=document.createElement("div");e.className="shepherd-content",this.el.appendChild(e);var n=document.createElement("header");if(e.appendChild(n),this.options.title&&(n.innerHTML+="<h3 class='shepherd-title'>"+this.options.title+"</h3>",this.el.className+=" shepherd-has-title"),this.options.showCancelLink){var r=h("<a href class='shepherd-cancel-link'>✕</a>");n.appendChild(r),this.el.className+=" shepherd-has-cancel-link",this.bindCancelLink(r)}i(this.options.text)||!function(){var n=h("<div class='shepherd-text'></div>"),i=t.options.text;"function"==typeof i&&(i=i.call(t,n)),i instanceof HTMLElement?n.appendChild(i):("string"==typeof i&&(i=[i]),i.map(function(t){n.innerHTML+="<p>"+t+"</p>"})),e.appendChild(n)}(),this.options.buttons&&!function(){var n=document.createElement("footer"),i=h("<ul class='shepherd-buttons'></ul>");t.options.buttons.map(function(e){var n=h("<li><a class='shepherd-button "+(e.classes||"")+"'>"+e.text+"</a>");i.appendChild(n),t.bindButtonEvents(e,n.querySelector("a"))}),n.appendChild(i),e.appendChild(n)}(),document.body.appendChild(this.el),this.setupTether(),this.options.advanceOn&&this.bindAdvance()}},{key:"bindCancelLink",value:function(t){var e=this;t.addEventListener("click",function(t){t.preventDefault(),e.cancel()})}},{key:"bindButtonEvents",value:function(t,e){var n=this;t.events=t.events||{},i(t.action)||(t.events.click=t.action);for(var r in t.events)if({}.hasOwnProperty.call(t.events,r)){var o=t.events[r];"string"==typeof o&&!function(){var t=o;o=function(){return n.tour.show(t)}}(),e.addEventListener(r,o)}this.on("destroy",function(){for(var n in t.events)if({}.hasOwnProperty.call(t.events,n)){var i=t.events[n];e.removeEventListener(n,i)}})}}]),p}(f),T=function(t){function r(){var t=this,n=arguments.length<=0||void 0===arguments[0]?{}:arguments[0];e(this,r),d(Object.getPrototypeOf(r.prototype),"constructor",this).call(this,n),this.bindMethods(),this.options=n,this.steps=this.options.steps||[];var i=["complete","cancel","hide","start","show","active","inactive"];return i.map(function(e){!function(e){t.on(e,function(n){n=n||{},n.tour=t,w.trigger(e,n)})}(e)}),this}return n(r,t),u(r,[{key:"bindMethods",value:function(){var t=this,e=["next","back","cancel","complete","hide"];e.map(function(e){t[e]=t[e].bind(t)})}},{key:"addStep",value:function(t,e){return i(e)&&(e=t),e instanceof O?e.tour=this:("string"!=typeof t&&"number"!=typeof t||(e.id=t.toString()),e=m({},this.options.defaults,e),e=new O(this,e)),this.steps.push(e),this}},{key:"removeStep",value:function(t){for(var e=this.getCurrentStep(),n=0;n<this.steps.length;++n){var i=this.steps[n];if(i.id===t){i.isOpen()&&i.hide(),i.destroy(),this.steps.splice(n,1);break}}e&&e.id===t&&(this.currentStep=void 0,this.steps.length?this.show(0):this.hide())}},{key:"getById",value:function(t){for(var e=0;e<this.steps.length;++e){var n=this.steps[e];if(n.id===t)return n}}},{key:"getCurrentStep",value:function(){return this.currentStep}},{key:"next",value:function(){var t=this.steps.indexOf(this.currentStep);t===this.steps.length-1?(this.hide(t),this.trigger("complete"),this.done()):this.show(t+1,!0)}},{key:"back",value:function(){var t=this.steps.indexOf(this.currentStep);this.show(t-1,!1)}},{key:"cancel",value:function(){this.currentStep&&this.currentStep.hide(),this.trigger("cancel"),this.done()}},{key:"complete",value:function(){this.currentStep&&this.currentStep.hide(),this.trigger("complete"),this.done()}},{key:"hide",value:function(){this.currentStep&&this.currentStep.hide(),this.trigger("hide"),this.done()}},{key:"done",value:function(){w.activeTour=null,g(document.body,"shepherd-active"),this.trigger("inactive",{tour:this})}},{key:"show",value:function(){var t=arguments.length<=0||void 0===arguments[0]?0:arguments[0],e=arguments.length<=1||void 0===arguments[1]||arguments[1];this.currentStep?this.currentStep.hide():(v(document.body,"shepherd-active"),this.trigger("active",{tour:this})),w.activeTour=this;var n=void 0;if(n="string"==typeof t?this.getById(t):this.steps[t])if(i(n.options.showOn)||n.options.showOn())this.trigger("show",{step:n,previous:this.currentStep}),this.currentStep&&this.currentStep.hide(),this.currentStep=n,n.show();else{var r=this.steps.indexOf(n),o=e?r+1:r-1;this.show(o,e)}}},{key:"start",value:function(){this.trigger("start"),this.currentStep=null,this.next()}}]),r}(f);return m(w,{Tour:T,Step:O,Evented:f}),w});
|
admin/assets/tether-shepherd/tether.js
ADDED
@@ -0,0 +1,1443 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/*! tether 0.6.5 */
|
2 |
+
|
3 |
+
|
4 |
+
(function(root, factory) {
|
5 |
+
if (typeof define === 'function' && define.amd) {
|
6 |
+
define(factory);
|
7 |
+
} else if (typeof exports === 'object') {
|
8 |
+
module.exports = factory(require,exports,module);
|
9 |
+
} else {
|
10 |
+
root.Tether = factory();
|
11 |
+
}
|
12 |
+
}(this, function(require,exports,module) {
|
13 |
+
|
14 |
+
(function() {
|
15 |
+
var Evented, addClass, defer, deferred, extend, flush, getBounds, getOffsetParent, getOrigin, getScrollBarSize, getScrollParent, hasClass, node, removeClass, uniqueId, updateClasses, zeroPosCache,
|
16 |
+
__hasProp = {}.hasOwnProperty,
|
17 |
+
__indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; },
|
18 |
+
__slice = [].slice;
|
19 |
+
|
20 |
+
if (this.Tether == null) {
|
21 |
+
this.Tether = {
|
22 |
+
modules: []
|
23 |
+
};
|
24 |
+
}
|
25 |
+
|
26 |
+
getScrollParent = function(el) {
|
27 |
+
var parent, position, scrollParent, style, _ref;
|
28 |
+
position = getComputedStyle(el).position;
|
29 |
+
if (position === 'fixed') {
|
30 |
+
return el;
|
31 |
+
}
|
32 |
+
scrollParent = void 0;
|
33 |
+
parent = el;
|
34 |
+
while (parent = parent.parentNode) {
|
35 |
+
try {
|
36 |
+
style = getComputedStyle(parent);
|
37 |
+
} catch (_error) {}
|
38 |
+
if (style == null) {
|
39 |
+
return parent;
|
40 |
+
}
|
41 |
+
if (/(auto|scroll)/.test(style['overflow'] + style['overflow-y'] + style['overflow-x'])) {
|
42 |
+
if (position !== 'absolute' || ((_ref = style['position']) === 'relative' || _ref === 'absolute' || _ref === 'fixed')) {
|
43 |
+
return parent;
|
44 |
+
}
|
45 |
+
}
|
46 |
+
}
|
47 |
+
return document.body;
|
48 |
+
};
|
49 |
+
|
50 |
+
uniqueId = (function() {
|
51 |
+
var id;
|
52 |
+
id = 0;
|
53 |
+
return function() {
|
54 |
+
return id++;
|
55 |
+
};
|
56 |
+
})();
|
57 |
+
|
58 |
+
zeroPosCache = {};
|
59 |
+
|
60 |
+
getOrigin = function(doc) {
|
61 |
+
var id, k, node, v, _ref;
|
62 |
+
node = doc._tetherZeroElement;
|
63 |
+
if (node == null) {
|
64 |
+
node = doc.createElement('div');
|
65 |
+
node.setAttribute('data-tether-id', uniqueId());
|
66 |
+
extend(node.style, {
|
67 |
+
top: 0,
|
68 |
+
left: 0,
|
69 |
+
position: 'absolute'
|
70 |
+
});
|
71 |
+
doc.body.appendChild(node);
|
72 |
+
doc._tetherZeroElement = node;
|
73 |
+
}
|
74 |
+
id = node.getAttribute('data-tether-id');
|
75 |
+
if (zeroPosCache[id] == null) {
|
76 |
+
zeroPosCache[id] = {};
|
77 |
+
_ref = node.getBoundingClientRect();
|
78 |
+
for (k in _ref) {
|
79 |
+
v = _ref[k];
|
80 |
+
zeroPosCache[id][k] = v;
|
81 |
+
}
|
82 |
+
defer(function() {
|
83 |
+
return zeroPosCache[id] = void 0;
|
84 |
+
});
|
85 |
+
}
|
86 |
+
return zeroPosCache[id];
|
87 |
+
};
|
88 |
+
|
89 |
+
node = null;
|
90 |
+
|
91 |
+
getBounds = function(el) {
|
92 |
+
var box, doc, docEl, k, origin, v, _ref;
|
93 |
+
if (el === document) {
|
94 |
+
doc = document;
|
95 |
+
el = document.documentElement;
|
96 |
+
} else {
|
97 |
+
doc = el.ownerDocument;
|
98 |
+
}
|
99 |
+
docEl = doc.documentElement;
|
100 |
+
box = {};
|
101 |
+
_ref = el.getBoundingClientRect();
|
102 |
+
for (k in _ref) {
|
103 |
+
v = _ref[k];
|
104 |
+
box[k] = v;
|
105 |
+
}
|
106 |
+
origin = getOrigin(doc);
|
107 |
+
box.top -= origin.top;
|
108 |
+
box.left -= origin.left;
|
109 |
+
if (box.width == null) {
|
110 |
+
box.width = document.body.scrollWidth - box.left - box.right;
|
111 |
+
}
|
112 |
+
if (box.height == null) {
|
113 |
+
box.height = document.body.scrollHeight - box.top - box.bottom;
|
114 |
+
}
|
115 |
+
box.top = box.top - docEl.clientTop;
|
116 |
+
box.left = box.left - docEl.clientLeft;
|
117 |
+
box.right = doc.body.clientWidth - box.width - box.left;
|
118 |
+
box.bottom = doc.body.clientHeight - box.height - box.top;
|
119 |
+
return box;
|
120 |
+
};
|
121 |
+
|
122 |
+
getOffsetParent = function(el) {
|
123 |
+
return el.offsetParent || document.documentElement;
|
124 |
+
};
|
125 |
+
|
126 |
+
getScrollBarSize = function() {
|
127 |
+
var inner, outer, width, widthContained, widthScroll;
|
128 |
+
inner = document.createElement('div');
|
129 |
+
inner.style.width = '100%';
|
130 |
+
inner.style.height = '200px';
|
131 |
+
outer = document.createElement('div');
|
132 |
+
extend(outer.style, {
|
133 |
+
position: 'absolute',
|
134 |
+
top: 0,
|
135 |
+
left: 0,
|
136 |
+
pointerEvents: 'none',
|
137 |
+
visibility: 'hidden',
|
138 |
+
width: '200px',
|
139 |
+
height: '150px',
|
140 |
+
overflow: 'hidden'
|
141 |
+
});
|
142 |
+
outer.appendChild(inner);
|
143 |
+
document.body.appendChild(outer);
|
144 |
+
widthContained = inner.offsetWidth;
|
145 |
+
outer.style.overflow = 'scroll';
|
146 |
+
widthScroll = inner.offsetWidth;
|
147 |
+
if (widthContained === widthScroll) {
|
148 |
+
widthScroll = outer.clientWidth;
|
149 |
+
}
|
150 |
+
document.body.removeChild(outer);
|
151 |
+
width = widthContained - widthScroll;
|
152 |
+
return {
|
153 |
+
width: width,
|
154 |
+
height: width
|
155 |
+
};
|
156 |
+
};
|
157 |
+
|
158 |
+
extend = function(out) {
|
159 |
+
var args, key, obj, val, _i, _len, _ref;
|
160 |
+
if (out == null) {
|
161 |
+
out = {};
|
162 |
+
}
|
163 |
+
args = [];
|
164 |
+
Array.prototype.push.apply(args, arguments);
|
165 |
+
_ref = args.slice(1);
|
166 |
+
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
|
167 |
+
obj = _ref[_i];
|
168 |
+
if (obj) {
|
169 |
+
for (key in obj) {
|
170 |
+
if (!__hasProp.call(obj, key)) continue;
|
171 |
+
val = obj[key];
|
172 |
+
out[key] = val;
|
173 |
+
}
|
174 |
+
}
|
175 |
+
}
|
176 |
+
return out;
|
177 |
+
};
|
178 |
+
|
179 |
+
removeClass = function(el, name) {
|
180 |
+
var cls, _i, _len, _ref, _results;
|
181 |
+
if (el.classList != null) {
|
182 |
+
_ref = name.split(' ');
|
183 |
+
_results = [];
|
184 |
+
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
|
185 |
+
cls = _ref[_i];
|
186 |
+
if (cls.trim()) {
|
187 |
+
_results.push(el.classList.remove(cls));
|
188 |
+
}
|
189 |
+
}
|
190 |
+
return _results;
|
191 |
+
} else {
|
192 |
+
return el.className = el.className.replace(new RegExp("(^| )" + (name.split(' ').join('|')) + "( |$)", 'gi'), ' ');
|
193 |
+
}
|
194 |
+
};
|
195 |
+
|
196 |
+
addClass = function(el, name) {
|
197 |
+
var cls, _i, _len, _ref, _results;
|
198 |
+
if (el.classList != null) {
|
199 |
+
_ref = name.split(' ');
|
200 |
+
_results = [];
|
201 |
+
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
|
202 |
+
cls = _ref[_i];
|
203 |
+
if (cls.trim()) {
|
204 |
+
_results.push(el.classList.add(cls));
|
205 |
+
}
|
206 |
+
}
|
207 |
+
return _results;
|
208 |
+
} else {
|
209 |
+
removeClass(el, name);
|
210 |
+
return el.className += " " + name;
|
211 |
+
}
|
212 |
+
};
|
213 |
+
|
214 |
+
hasClass = function(el, name) {
|
215 |
+
if (el.classList != null) {
|
216 |
+
return el.classList.contains(name);
|
217 |
+
} else {
|
218 |
+
return new RegExp("(^| )" + name + "( |$)", 'gi').test(el.className);
|
219 |
+
}
|
220 |
+
};
|
221 |
+
|
222 |
+
updateClasses = function(el, add, all) {
|
223 |
+
var cls, _i, _j, _len, _len1, _results;
|
224 |
+
for (_i = 0, _len = all.length; _i < _len; _i++) {
|
225 |
+
cls = all[_i];
|
226 |
+
if (__indexOf.call(add, cls) < 0) {
|
227 |
+
if (hasClass(el, cls)) {
|
228 |
+
removeClass(el, cls);
|
229 |
+
}
|
230 |
+
}
|
231 |
+
}
|
232 |
+
_results = [];
|
233 |
+
for (_j = 0, _len1 = add.length; _j < _len1; _j++) {
|
234 |
+
cls = add[_j];
|
235 |
+
if (!hasClass(el, cls)) {
|
236 |
+
_results.push(addClass(el, cls));
|
237 |
+
} else {
|
238 |
+
_results.push(void 0);
|
239 |
+
}
|
240 |
+
}
|
241 |
+
return _results;
|
242 |
+
};
|
243 |
+
|
244 |
+
deferred = [];
|
245 |
+
|
246 |
+
defer = function(fn) {
|
247 |
+
return deferred.push(fn);
|
248 |
+
};
|
249 |
+
|
250 |
+
flush = function() {
|
251 |
+
var fn, _results;
|
252 |
+
_results = [];
|
253 |
+
while (fn = deferred.pop()) {
|
254 |
+
_results.push(fn());
|
255 |
+
}
|
256 |
+
return _results;
|
257 |
+
};
|
258 |
+
|
259 |
+
Evented = (function() {
|
260 |
+
function Evented() {}
|
261 |
+
|
262 |
+
Evented.prototype.on = function(event, handler, ctx, once) {
|
263 |
+
var _base;
|
264 |
+
if (once == null) {
|
265 |
+
once = false;
|
266 |
+
}
|
267 |
+
if (this.bindings == null) {
|
268 |
+
this.bindings = {};
|
269 |
+
}
|
270 |
+
if ((_base = this.bindings)[event] == null) {
|
271 |
+
_base[event] = [];
|
272 |
+
}
|
273 |
+
return this.bindings[event].push({
|
274 |
+
handler: handler,
|
275 |
+
ctx: ctx,
|
276 |
+
once: once
|
277 |
+
});
|
278 |
+
};
|
279 |
+
|
280 |
+
Evented.prototype.once = function(event, handler, ctx) {
|
281 |
+
return this.on(event, handler, ctx, true);
|
282 |
+
};
|
283 |
+
|
284 |
+
Evented.prototype.off = function(event, handler) {
|
285 |
+
var i, _ref, _results;
|
286 |
+
if (((_ref = this.bindings) != null ? _ref[event] : void 0) == null) {
|
287 |
+
return;
|
288 |
+
}
|
289 |
+
if (handler == null) {
|
290 |
+
return delete this.bindings[event];
|
291 |
+
} else {
|
292 |
+
i = 0;
|
293 |
+
_results = [];
|
294 |
+
while (i < this.bindings[event].length) {
|
295 |
+
if (this.bindings[event][i].handler === handler) {
|
296 |
+
_results.push(this.bindings[event].splice(i, 1));
|
297 |
+
} else {
|
298 |
+
_results.push(i++);
|
299 |
+
}
|
300 |
+
}
|
301 |
+
return _results;
|
302 |
+
}
|
303 |
+
};
|
304 |
+
|
305 |
+
Evented.prototype.trigger = function() {
|
306 |
+
var args, ctx, event, handler, i, once, _ref, _ref1, _results;
|
307 |
+
event = arguments[0], args = 2 <= arguments.length ? __slice.call(arguments, 1) : [];
|
308 |
+
if ((_ref = this.bindings) != null ? _ref[event] : void 0) {
|
309 |
+
i = 0;
|
310 |
+
_results = [];
|
311 |
+
while (i < this.bindings[event].length) {
|
312 |
+
_ref1 = this.bindings[event][i], handler = _ref1.handler, ctx = _ref1.ctx, once = _ref1.once;
|
313 |
+
handler.apply(ctx != null ? ctx : this, args);
|
314 |
+
if (once) {
|
315 |
+
_results.push(this.bindings[event].splice(i, 1));
|
316 |
+
} else {
|
317 |
+
_results.push(i++);
|
318 |
+
}
|
319 |
+
}
|
320 |
+
return _results;
|
321 |
+
}
|
322 |
+
};
|
323 |
+
|
324 |
+
return Evented;
|
325 |
+
|
326 |
+
})();
|
327 |
+
|
328 |
+
this.Tether.Utils = {
|
329 |
+
getScrollParent: getScrollParent,
|
330 |
+
getBounds: getBounds,
|
331 |
+
getOffsetParent: getOffsetParent,
|
332 |
+
extend: extend,
|
333 |
+
addClass: addClass,
|
334 |
+
removeClass: removeClass,
|
335 |
+
hasClass: hasClass,
|
336 |
+
updateClasses: updateClasses,
|
337 |
+
defer: defer,
|
338 |
+
flush: flush,
|
339 |
+
uniqueId: uniqueId,
|
340 |
+
Evented: Evented,
|
341 |
+
getScrollBarSize: getScrollBarSize
|
342 |
+
};
|
343 |
+
|
344 |
+
}).call(this);
|
345 |
+
|
346 |
+
(function() {
|
347 |
+
var MIRROR_LR, MIRROR_TB, OFFSET_MAP, Tether, addClass, addOffset, attachmentToOffset, autoToFixedAttachment, defer, extend, flush, getBounds, getOffsetParent, getOuterSize, getScrollBarSize, getScrollParent, getSize, now, offsetToPx, parseAttachment, parseOffset, position, removeClass, tethers, transformKey, updateClasses, within, _Tether, _ref,
|
348 |
+
__slice = [].slice,
|
349 |
+
__bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; };
|
350 |
+
|
351 |
+
if (this.Tether == null) {
|
352 |
+
throw new Error("You must include the utils.js file before tether.js");
|
353 |
+
}
|
354 |
+
|
355 |
+
Tether = this.Tether;
|
356 |
+
|
357 |
+
_ref = Tether.Utils, getScrollParent = _ref.getScrollParent, getSize = _ref.getSize, getOuterSize = _ref.getOuterSize, getBounds = _ref.getBounds, getOffsetParent = _ref.getOffsetParent, extend = _ref.extend, addClass = _ref.addClass, removeClass = _ref.removeClass, updateClasses = _ref.updateClasses, defer = _ref.defer, flush = _ref.flush, getScrollBarSize = _ref.getScrollBarSize;
|
358 |
+
|
359 |
+
within = function(a, b, diff) {
|
360 |
+
if (diff == null) {
|
361 |
+
diff = 1;
|
362 |
+
}
|
363 |
+
return (a + diff >= b && b >= a - diff);
|
364 |
+
};
|
365 |
+
|
366 |
+
transformKey = (function() {
|
367 |
+
var el, key, _i, _len, _ref1;
|
368 |
+
el = document.createElement('div');
|
369 |
+
_ref1 = ['transform', 'webkitTransform', 'OTransform', 'MozTransform', 'msTransform'];
|
370 |
+
for (_i = 0, _len = _ref1.length; _i < _len; _i++) {
|
371 |
+
key = _ref1[_i];
|
372 |
+
if (el.style[key] !== void 0) {
|
373 |
+
return key;
|
374 |
+
}
|
375 |
+
}
|
376 |
+
})();
|
377 |
+
|
378 |
+
tethers = [];
|
379 |
+
|
380 |
+
position = function() {
|
381 |
+
var tether, _i, _len;
|
382 |
+
for (_i = 0, _len = tethers.length; _i < _len; _i++) {
|
383 |
+
tether = tethers[_i];
|
384 |
+
tether.position(false);
|
385 |
+
}
|
386 |
+
return flush();
|
387 |
+
};
|
388 |
+
|
389 |
+
now = function() {
|
390 |
+
var _ref1;
|
391 |
+
return (_ref1 = typeof performance !== "undefined" && performance !== null ? typeof performance.now === "function" ? performance.now() : void 0 : void 0) != null ? _ref1 : +(new Date);
|
392 |
+
};
|
393 |
+
|
394 |
+
(function() {
|
395 |
+
var event, lastCall, lastDuration, pendingTimeout, tick, _i, _len, _ref1, _results;
|
396 |
+
lastCall = null;
|
397 |
+
lastDuration = null;
|
398 |
+
pendingTimeout = null;
|
399 |
+
tick = function() {
|
400 |
+
if ((lastDuration != null) && lastDuration > 16) {
|
401 |
+
lastDuration = Math.min(lastDuration - 16, 250);
|
402 |
+
pendingTimeout = setTimeout(tick, 250);
|
403 |
+
return;
|
404 |
+
}
|
405 |
+
if ((lastCall != null) && (now() - lastCall) < 10) {
|
406 |
+
return;
|
407 |
+
}
|
408 |
+
if (pendingTimeout != null) {
|
409 |
+
clearTimeout(pendingTimeout);
|
410 |
+
pendingTimeout = null;
|
411 |
+
}
|
412 |
+
lastCall = now();
|
413 |
+
position();
|
414 |
+
return lastDuration = now() - lastCall;
|
415 |
+
};
|
416 |
+
_ref1 = ['resize', 'scroll', 'touchmove'];
|
417 |
+
_results = [];
|
418 |
+
for (_i = 0, _len = _ref1.length; _i < _len; _i++) {
|
419 |
+
event = _ref1[_i];
|
420 |
+
_results.push(window.addEventListener(event, tick));
|
421 |
+
}
|
422 |
+
return _results;
|
423 |
+
})();
|
424 |
+
|
425 |
+
MIRROR_LR = {
|
426 |
+
center: 'center',
|
427 |
+
left: 'right',
|
428 |
+
right: 'left'
|
429 |
+
};
|
430 |
+
|
431 |
+
MIRROR_TB = {
|
432 |
+
middle: 'middle',
|
433 |
+
top: 'bottom',
|
434 |
+
bottom: 'top'
|
435 |
+
};
|
436 |
+
|
437 |
+
OFFSET_MAP = {
|
438 |
+
top: 0,
|
439 |
+
left: 0,
|
440 |
+
middle: '50%',
|
441 |
+
center: '50%',
|
442 |
+
bottom: '100%',
|
443 |
+
right: '100%'
|
444 |
+
};
|
445 |
+
|
446 |
+
autoToFixedAttachment = function(attachment, relativeToAttachment) {
|
447 |
+
var left, top;
|
448 |
+
left = attachment.left, top = attachment.top;
|
449 |
+
if (left === 'auto') {
|
450 |
+
left = MIRROR_LR[relativeToAttachment.left];
|
451 |
+
}
|
452 |
+
if (top === 'auto') {
|
453 |
+
top = MIRROR_TB[relativeToAttachment.top];
|
454 |
+
}
|
455 |
+
return {
|
456 |
+
left: left,
|
457 |
+
top: top
|
458 |
+
};
|
459 |
+
};
|
460 |
+
|
461 |
+
attachmentToOffset = function(attachment) {
|
462 |
+
var _ref1, _ref2;
|
463 |
+
return {
|
464 |
+
left: (_ref1 = OFFSET_MAP[attachment.left]) != null ? _ref1 : attachment.left,
|
465 |
+
top: (_ref2 = OFFSET_MAP[attachment.top]) != null ? _ref2 : attachment.top
|
466 |
+
};
|
467 |
+
};
|
468 |
+
|
469 |
+
addOffset = function() {
|
470 |
+
var left, offsets, out, top, _i, _len, _ref1;
|
471 |
+
offsets = 1 <= arguments.length ? __slice.call(arguments, 0) : [];
|
472 |
+
out = {
|
473 |
+
top: 0,
|
474 |
+
left: 0
|
475 |
+
};
|
476 |
+
for (_i = 0, _len = offsets.length; _i < _len; _i++) {
|
477 |
+
_ref1 = offsets[_i], top = _ref1.top, left = _ref1.left;
|
478 |
+
if (typeof top === 'string') {
|
479 |
+
top = parseFloat(top, 10);
|
480 |
+
}
|
481 |
+
if (typeof left === 'string') {
|
482 |
+
left = parseFloat(left, 10);
|
483 |
+
}
|
484 |
+
out.top += top;
|
485 |
+
out.left += left;
|
486 |
+
}
|
487 |
+
return out;
|
488 |
+
};
|
489 |
+
|
490 |
+
offsetToPx = function(offset, size) {
|
491 |
+
if (typeof offset.left === 'string' && offset.left.indexOf('%') !== -1) {
|
492 |
+
offset.left = parseFloat(offset.left, 10) / 100 * size.width;
|
493 |
+
}
|
494 |
+
if (typeof offset.top === 'string' && offset.top.indexOf('%') !== -1) {
|
495 |
+
offset.top = parseFloat(offset.top, 10) / 100 * size.height;
|
496 |
+
}
|
497 |
+
return offset;
|
498 |
+
};
|
499 |
+
|
500 |
+
parseAttachment = parseOffset = function(value) {
|
501 |
+
var left, top, _ref1;
|
502 |
+
_ref1 = value.split(' '), top = _ref1[0], left = _ref1[1];
|
503 |
+
return {
|
504 |
+
top: top,
|
505 |
+
left: left
|
506 |
+
};
|
507 |
+
};
|
508 |
+
|
509 |
+
_Tether = (function() {
|
510 |
+
_Tether.modules = [];
|
511 |
+
|
512 |
+
function _Tether(options) {
|
513 |
+
this.position = __bind(this.position, this);
|
514 |
+
var module, _i, _len, _ref1, _ref2;
|
515 |
+
tethers.push(this);
|
516 |
+
this.history = [];
|
517 |
+
this.setOptions(options, false);
|
518 |
+
_ref1 = Tether.modules;
|
519 |
+
for (_i = 0, _len = _ref1.length; _i < _len; _i++) {
|
520 |
+
module = _ref1[_i];
|
521 |
+
if ((_ref2 = module.initialize) != null) {
|
522 |
+
_ref2.call(this);
|
523 |
+
}
|
524 |
+
}
|
525 |
+
this.position();
|
526 |
+
}
|
527 |
+
|
528 |
+
_Tether.prototype.getClass = function(key) {
|
529 |
+
var _ref1, _ref2;
|
530 |
+
if ((_ref1 = this.options.classes) != null ? _ref1[key] : void 0) {
|
531 |
+
return this.options.classes[key];
|
532 |
+
} else if (((_ref2 = this.options.classes) != null ? _ref2[key] : void 0) !== false) {
|
533 |
+
if (this.options.classPrefix) {
|
534 |
+
return "" + this.options.classPrefix + "-" + key;
|
535 |
+
} else {
|
536 |
+
return key;
|
537 |
+
}
|
538 |
+
} else {
|
539 |
+
return '';
|
540 |
+
}
|
541 |
+
};
|
542 |
+
|
543 |
+
_Tether.prototype.setOptions = function(options, position) {
|
544 |
+
var defaults, key, _i, _len, _ref1, _ref2;
|
545 |
+
this.options = options;
|
546 |
+
if (position == null) {
|
547 |
+
position = true;
|
548 |
+
}
|
549 |
+
defaults = {
|
550 |
+
offset: '0 0',
|
551 |
+
targetOffset: '0 0',
|
552 |
+
targetAttachment: 'auto auto',
|
553 |
+
classPrefix: 'tether'
|
554 |
+
};
|
555 |
+
this.options = extend(defaults, this.options);
|
556 |
+
_ref1 = this.options, this.element = _ref1.element, this.target = _ref1.target, this.targetModifier = _ref1.targetModifier;
|
557 |
+
if (this.target === 'viewport') {
|
558 |
+
this.target = document.body;
|
559 |
+
this.targetModifier = 'visible';
|
560 |
+
} else if (this.target === 'scroll-handle') {
|
561 |
+
this.target = document.body;
|
562 |
+
this.targetModifier = 'scroll-handle';
|
563 |
+
}
|
564 |
+
_ref2 = ['element', 'target'];
|
565 |
+
for (_i = 0, _len = _ref2.length; _i < _len; _i++) {
|
566 |
+
key = _ref2[_i];
|
567 |
+
if (this[key] == null) {
|
568 |
+
throw new Error("Tether Error: Both element and target must be defined");
|
569 |
+
}
|
570 |
+
if (this[key].jquery != null) {
|
571 |
+
this[key] = this[key][0];
|
572 |
+
} else if (typeof this[key] === 'string') {
|
573 |
+
this[key] = document.querySelector(this[key]);
|
574 |
+
}
|
575 |
+
}
|
576 |
+
addClass(this.element, this.getClass('element'));
|
577 |
+
addClass(this.target, this.getClass('target'));
|
578 |
+
if (!this.options.attachment) {
|
579 |
+
throw new Error("Tether Error: You must provide an attachment");
|
580 |
+
}
|
581 |
+
this.targetAttachment = parseAttachment(this.options.targetAttachment);
|
582 |
+
this.attachment = parseAttachment(this.options.attachment);
|
583 |
+
this.offset = parseOffset(this.options.offset);
|
584 |
+
this.targetOffset = parseOffset(this.options.targetOffset);
|
585 |
+
if (this.scrollParent != null) {
|
586 |
+
this.disable();
|
587 |
+
}
|
588 |
+
if (this.targetModifier === 'scroll-handle') {
|
589 |
+
this.scrollParent = this.target;
|
590 |
+
} else {
|
591 |
+
this.scrollParent = getScrollParent(this.target);
|
592 |
+
}
|
593 |
+
if (this.options.enabled !== false) {
|
594 |
+
return this.enable(position);
|
595 |
+
}
|
596 |
+
};
|
597 |
+
|
598 |
+
_Tether.prototype.getTargetBounds = function() {
|
599 |
+
var bounds, fitAdj, hasBottomScroll, height, out, scrollBottom, scrollPercentage, style, target;
|
600 |
+
if (this.targetModifier != null) {
|
601 |
+
switch (this.targetModifier) {
|
602 |
+
case 'visible':
|
603 |
+
if (this.target === document.body) {
|
604 |
+
return {
|
605 |
+
top: pageYOffset,
|
606 |
+
left: pageXOffset,
|
607 |
+
height: innerHeight,
|
608 |
+
width: innerWidth
|
609 |
+
};
|
610 |
+
} else {
|
611 |
+
bounds = getBounds(this.target);
|
612 |
+
out = {
|
613 |
+
height: bounds.height,
|
614 |
+
width: bounds.width,
|
615 |
+
top: bounds.top,
|
616 |
+
left: bounds.left
|
617 |
+
};
|
618 |
+
out.height = Math.min(out.height, bounds.height - (pageYOffset - bounds.top));
|
619 |
+
out.height = Math.min(out.height, bounds.height - ((bounds.top + bounds.height) - (pageYOffset + innerHeight)));
|
620 |
+
out.height = Math.min(innerHeight, out.height);
|
621 |
+
out.height -= 2;
|
622 |
+
out.width = Math.min(out.width, bounds.width - (pageXOffset - bounds.left));
|
623 |
+
out.width = Math.min(out.width, bounds.width - ((bounds.left + bounds.width) - (pageXOffset + innerWidth)));
|
624 |
+
out.width = Math.min(innerWidth, out.width);
|
625 |
+
out.width -= 2;
|
626 |
+
if (out.top < pageYOffset) {
|
627 |
+
out.top = pageYOffset;
|
628 |
+
}
|
629 |
+
if (out.left < pageXOffset) {
|
630 |
+
out.left = pageXOffset;
|
631 |
+
}
|
632 |
+
return out;
|
633 |
+
}
|
634 |
+
break;
|
635 |
+
case 'scroll-handle':
|
636 |
+
target = this.target;
|
637 |
+
if (target === document.body) {
|
638 |
+
target = document.documentElement;
|
639 |
+
bounds = {
|
640 |
+
left: pageXOffset,
|
641 |
+
top: pageYOffset,
|
642 |
+
height: innerHeight,
|
643 |
+
width: innerWidth
|
644 |
+
};
|
645 |
+
} else {
|
646 |
+
bounds = getBounds(target);
|
647 |
+
}
|
648 |
+
style = getComputedStyle(target);
|
649 |
+
hasBottomScroll = target.scrollWidth > target.clientWidth || 'scroll' === [style.overflow, style.overflowX] || this.target !== document.body;
|
650 |
+
scrollBottom = 0;
|
651 |
+
if (hasBottomScroll) {
|
652 |
+
scrollBottom = 15;
|
653 |
+
}
|
654 |
+
height = bounds.height - parseFloat(style.borderTopWidth) - parseFloat(style.borderBottomWidth) - scrollBottom;
|
655 |
+
out = {
|
656 |
+
width: 15,
|
657 |
+
height: height * 0.975 * (height / target.scrollHeight),
|
658 |
+
left: bounds.left + bounds.width - parseFloat(style.borderLeftWidth) - 15
|
659 |
+
};
|
660 |
+
fitAdj = 0;
|
661 |
+
if (height < 408 && this.target === document.body) {
|
662 |
+
fitAdj = -0.00011 * Math.pow(height, 2) - 0.00727 * height + 22.58;
|
663 |
+
}
|
664 |
+
if (this.target !== document.body) {
|
665 |
+
out.height = Math.max(out.height, 24);
|
666 |
+
}
|
667 |
+
scrollPercentage = this.target.scrollTop / (target.scrollHeight - height);
|
668 |
+
out.top = scrollPercentage * (height - out.height - fitAdj) + bounds.top + parseFloat(style.borderTopWidth);
|
669 |
+
if (this.target === document.body) {
|
670 |
+
out.height = Math.max(out.height, 24);
|
671 |
+
}
|
672 |
+
return out;
|
673 |
+
}
|
674 |
+
} else {
|
675 |
+
return getBounds(this.target);
|
676 |
+
}
|
677 |
+
};
|
678 |
+
|
679 |
+
_Tether.prototype.clearCache = function() {
|
680 |
+
return this._cache = {};
|
681 |
+
};
|
682 |
+
|
683 |
+
_Tether.prototype.cache = function(k, getter) {
|
684 |
+
if (this._cache == null) {
|
685 |
+
this._cache = {};
|
686 |
+
}
|
687 |
+
if (this._cache[k] == null) {
|
688 |
+
this._cache[k] = getter.call(this);
|
689 |
+
}
|
690 |
+
return this._cache[k];
|
691 |
+
};
|
692 |
+
|
693 |
+
_Tether.prototype.enable = function(position) {
|
694 |
+
if (position == null) {
|
695 |
+
position = true;
|
696 |
+
}
|
697 |
+
addClass(this.target, this.getClass('enabled'));
|
698 |
+
addClass(this.element, this.getClass('enabled'));
|
699 |
+
this.enabled = true;
|
700 |
+
if (this.scrollParent !== document) {
|
701 |
+
this.scrollParent.addEventListener('scroll', this.position);
|
702 |
+
}
|
703 |
+
if (position) {
|
704 |
+
return this.position();
|
705 |
+
}
|
706 |
+
};
|
707 |
+
|
708 |
+
_Tether.prototype.disable = function() {
|
709 |
+
removeClass(this.target, this.getClass('enabled'));
|
710 |
+
removeClass(this.element, this.getClass('enabled'));
|
711 |
+
this.enabled = false;
|
712 |
+
if (this.scrollParent != null) {
|
713 |
+
return this.scrollParent.removeEventListener('scroll', this.position);
|
714 |
+
}
|
715 |
+
};
|
716 |
+
|
717 |
+
_Tether.prototype.destroy = function() {
|
718 |
+
var i, tether, _i, _len, _results;
|
719 |
+
this.disable();
|
720 |
+
_results = [];
|
721 |
+
for (i = _i = 0, _len = tethers.length; _i < _len; i = ++_i) {
|
722 |
+
tether = tethers[i];
|
723 |
+
if (tether === this) {
|
724 |
+
tethers.splice(i, 1);
|
725 |
+
break;
|
726 |
+
} else {
|
727 |
+
_results.push(void 0);
|
728 |
+
}
|
729 |
+
}
|
730 |
+
return _results;
|
731 |
+
};
|
732 |
+
|
733 |
+
_Tether.prototype.updateAttachClasses = function(elementAttach, targetAttach) {
|
734 |
+
var add, all, side, sides, _i, _j, _len, _len1, _ref1,
|
735 |
+
_this = this;
|
736 |
+
if (elementAttach == null) {
|
737 |
+
elementAttach = this.attachment;
|
738 |
+
}
|
739 |
+
if (targetAttach == null) {
|
740 |
+
targetAttach = this.targetAttachment;
|
741 |
+
}
|
742 |
+
sides = ['left', 'top', 'bottom', 'right', 'middle', 'center'];
|
743 |
+
if ((_ref1 = this._addAttachClasses) != null ? _ref1.length : void 0) {
|
744 |
+
this._addAttachClasses.splice(0, this._addAttachClasses.length);
|
745 |
+
}
|
746 |
+
add = this._addAttachClasses != null ? this._addAttachClasses : this._addAttachClasses = [];
|
747 |
+
if (elementAttach.top) {
|
748 |
+
add.push("" + (this.getClass('element-attached')) + "-" + elementAttach.top);
|
749 |
+
}
|
750 |
+
if (elementAttach.left) {
|
751 |
+
add.push("" + (this.getClass('element-attached')) + "-" + elementAttach.left);
|
752 |
+
}
|
753 |
+
if (targetAttach.top) {
|
754 |
+
add.push("" + (this.getClass('target-attached')) + "-" + targetAttach.top);
|
755 |
+
}
|
756 |
+
if (targetAttach.left) {
|
757 |
+
add.push("" + (this.getClass('target-attached')) + "-" + targetAttach.left);
|
758 |
+
}
|
759 |
+
all = [];
|
760 |
+
for (_i = 0, _len = sides.length; _i < _len; _i++) {
|
761 |
+
side = sides[_i];
|
762 |
+
all.push("" + (this.getClass('element-attached')) + "-" + side);
|
763 |
+
}
|
764 |
+
for (_j = 0, _len1 = sides.length; _j < _len1; _j++) {
|
765 |
+
side = sides[_j];
|
766 |
+
all.push("" + (this.getClass('target-attached')) + "-" + side);
|
767 |
+
}
|
768 |
+
return defer(function() {
|
769 |
+
if (_this._addAttachClasses == null) {
|
770 |
+
return;
|
771 |
+
}
|
772 |
+
updateClasses(_this.element, _this._addAttachClasses, all);
|
773 |
+
updateClasses(_this.target, _this._addAttachClasses, all);
|
774 |
+
return _this._addAttachClasses = void 0;
|
775 |
+
});
|
776 |
+
};
|
777 |
+
|
778 |
+
_Tether.prototype.position = function(flushChanges) {
|
779 |
+
var elementPos, elementStyle, height, left, manualOffset, manualTargetOffset, module, next, offset, offsetBorder, offsetParent, offsetParentSize, offsetParentStyle, offsetPosition, ret, scrollLeft, scrollTop, scrollbarSize, side, targetAttachment, targetOffset, targetPos, targetSize, top, width, _i, _j, _len, _len1, _ref1, _ref2, _ref3, _ref4, _ref5, _ref6,
|
780 |
+
_this = this;
|
781 |
+
if (flushChanges == null) {
|
782 |
+
flushChanges = true;
|
783 |
+
}
|
784 |
+
if (!this.enabled) {
|
785 |
+
return;
|
786 |
+
}
|
787 |
+
this.clearCache();
|
788 |
+
targetAttachment = autoToFixedAttachment(this.targetAttachment, this.attachment);
|
789 |
+
this.updateAttachClasses(this.attachment, targetAttachment);
|
790 |
+
elementPos = this.cache('element-bounds', function() {
|
791 |
+
return getBounds(_this.element);
|
792 |
+
});
|
793 |
+
width = elementPos.width, height = elementPos.height;
|
794 |
+
if (width === 0 && height === 0 && (this.lastSize != null)) {
|
795 |
+
_ref1 = this.lastSize, width = _ref1.width, height = _ref1.height;
|
796 |
+
} else {
|
797 |
+
this.lastSize = {
|
798 |
+
width: width,
|
799 |
+
height: height
|
800 |
+
};
|
801 |
+
}
|
802 |
+
targetSize = targetPos = this.cache('target-bounds', function() {
|
803 |
+
return _this.getTargetBounds();
|
804 |
+
});
|
805 |
+
offset = offsetToPx(attachmentToOffset(this.attachment), {
|
806 |
+
width: width,
|
807 |
+
height: height
|
808 |
+
});
|
809 |
+
targetOffset = offsetToPx(attachmentToOffset(targetAttachment), targetSize);
|
810 |
+
manualOffset = offsetToPx(this.offset, {
|
811 |
+
width: width,
|
812 |
+
height: height
|
813 |
+
});
|
814 |
+
manualTargetOffset = offsetToPx(this.targetOffset, targetSize);
|
815 |
+
offset = addOffset(offset, manualOffset);
|
816 |
+
targetOffset = addOffset(targetOffset, manualTargetOffset);
|
817 |
+
left = targetPos.left + targetOffset.left - offset.left;
|
818 |
+
top = targetPos.top + targetOffset.top - offset.top;
|
819 |
+
_ref2 = Tether.modules;
|
820 |
+
for (_i = 0, _len = _ref2.length; _i < _len; _i++) {
|
821 |
+
module = _ref2[_i];
|
822 |
+
ret = module.position.call(this, {
|
823 |
+
left: left,
|
824 |
+
top: top,
|
825 |
+
targetAttachment: targetAttachment,
|
826 |
+
targetPos: targetPos,
|
827 |
+
attachment: this.attachment,
|
828 |
+
elementPos: elementPos,
|
829 |
+
offset: offset,
|
830 |
+
targetOffset: targetOffset,
|
831 |
+
manualOffset: manualOffset,
|
832 |
+
manualTargetOffset: manualTargetOffset,
|
833 |
+
scrollbarSize: scrollbarSize
|
834 |
+
});
|
835 |
+
if ((ret == null) || typeof ret !== 'object') {
|
836 |
+
continue;
|
837 |
+
} else if (ret === false) {
|
838 |
+
return false;
|
839 |
+
} else {
|
840 |
+
top = ret.top, left = ret.left;
|
841 |
+
}
|
842 |
+
}
|
843 |
+
next = {
|
844 |
+
page: {
|
845 |
+
top: top,
|
846 |
+
left: left
|
847 |
+
},
|
848 |
+
viewport: {
|
849 |
+
top: top - pageYOffset,
|
850 |
+
bottom: pageYOffset - top - height + innerHeight,
|
851 |
+
left: left - pageXOffset,
|
852 |
+
right: pageXOffset - left - width + innerWidth
|
853 |
+
}
|
854 |
+
};
|
855 |
+
if (document.body.scrollWidth > window.innerWidth) {
|
856 |
+
scrollbarSize = this.cache('scrollbar-size', getScrollBarSize);
|
857 |
+
next.viewport.bottom -= scrollbarSize.height;
|
858 |
+
}
|
859 |
+
if (document.body.scrollHeight > window.innerHeight) {
|
860 |
+
scrollbarSize = this.cache('scrollbar-size', getScrollBarSize);
|
861 |
+
next.viewport.right -= scrollbarSize.width;
|
862 |
+
}
|
863 |
+
if (((_ref3 = document.body.style.position) !== '' && _ref3 !== 'static') || ((_ref4 = document.body.parentElement.style.position) !== '' && _ref4 !== 'static')) {
|
864 |
+
next.page.bottom = document.body.scrollHeight - top - height;
|
865 |
+
next.page.right = document.body.scrollWidth - left - width;
|
866 |
+
}
|
867 |
+
if (((_ref5 = this.options.optimizations) != null ? _ref5.moveElement : void 0) !== false && (this.targetModifier == null)) {
|
868 |
+
offsetParent = this.cache('target-offsetparent', function() {
|
869 |
+
return getOffsetParent(_this.target);
|
870 |
+
});
|
871 |
+
offsetPosition = this.cache('target-offsetparent-bounds', function() {
|
872 |
+
return getBounds(offsetParent);
|
873 |
+
});
|
874 |
+
offsetParentStyle = getComputedStyle(offsetParent);
|
875 |
+
elementStyle = getComputedStyle(this.element);
|
876 |
+
offsetParentSize = offsetPosition;
|
877 |
+
offsetBorder = {};
|
878 |
+
_ref6 = ['Top', 'Left', 'Bottom', 'Right'];
|
879 |
+
for (_j = 0, _len1 = _ref6.length; _j < _len1; _j++) {
|
880 |
+
side = _ref6[_j];
|
881 |
+
offsetBorder[side.toLowerCase()] = parseFloat(offsetParentStyle["border" + side + "Width"]);
|
882 |
+
}
|
883 |
+
offsetPosition.right = document.body.scrollWidth - offsetPosition.left - offsetParentSize.width + offsetBorder.right;
|
884 |
+
offsetPosition.bottom = document.body.scrollHeight - offsetPosition.top - offsetParentSize.height + offsetBorder.bottom;
|
885 |
+
if (next.page.top >= (offsetPosition.top + offsetBorder.top) && next.page.bottom >= offsetPosition.bottom) {
|
886 |
+
if (next.page.left >= (offsetPosition.left + offsetBorder.left) && next.page.right >= offsetPosition.right) {
|
887 |
+
scrollTop = offsetParent.scrollTop;
|
888 |
+
scrollLeft = offsetParent.scrollLeft;
|
889 |
+
next.offset = {
|
890 |
+
top: next.page.top - offsetPosition.top + scrollTop - offsetBorder.top,
|
891 |
+
left: next.page.left - offsetPosition.left + scrollLeft - offsetBorder.left
|
892 |
+
};
|
893 |
+
}
|
894 |
+
}
|
895 |
+
}
|
896 |
+
this.move(next);
|
897 |
+
this.history.unshift(next);
|
898 |
+
if (this.history.length > 3) {
|
899 |
+
this.history.pop();
|
900 |
+
}
|
901 |
+
if (flushChanges) {
|
902 |
+
flush();
|
903 |
+
}
|
904 |
+
return true;
|
905 |
+
};
|
906 |
+
|
907 |
+
_Tether.prototype.move = function(position) {
|
908 |
+
var css, elVal, found, key, moved, offsetParent, point, same, transcribe, type, val, write, writeCSS, _i, _len, _ref1, _ref2,
|
909 |
+
_this = this;
|
910 |
+
if (this.element.parentNode == null) {
|
911 |
+
return;
|
912 |
+
}
|
913 |
+
same = {};
|
914 |
+
for (type in position) {
|
915 |
+
same[type] = {};
|
916 |
+
for (key in position[type]) {
|
917 |
+
found = false;
|
918 |
+
_ref1 = this.history;
|
919 |
+
for (_i = 0, _len = _ref1.length; _i < _len; _i++) {
|
920 |
+
point = _ref1[_i];
|
921 |
+
if (!within((_ref2 = point[type]) != null ? _ref2[key] : void 0, position[type][key])) {
|
922 |
+
found = true;
|
923 |
+
break;
|
924 |
+
}
|
925 |
+
}
|
926 |
+
if (!found) {
|
927 |
+
same[type][key] = true;
|
928 |
+
}
|
929 |
+
}
|
930 |
+
}
|
931 |
+
css = {
|
932 |
+
top: '',
|
933 |
+
left: '',
|
934 |
+
right: '',
|
935 |
+
bottom: ''
|
936 |
+
};
|
937 |
+
transcribe = function(same, pos) {
|
938 |
+
var xPos, yPos, _ref3;
|
939 |
+
if (((_ref3 = _this.options.optimizations) != null ? _ref3.gpu : void 0) !== false) {
|
940 |
+
if (same.top) {
|
941 |
+
css.top = 0;
|
942 |
+
yPos = pos.top;
|
943 |
+
} else {
|
944 |
+
css.bottom = 0;
|
945 |
+
yPos = -pos.bottom;
|
946 |
+
}
|
947 |
+
if (same.left) {
|
948 |
+
css.left = 0;
|
949 |
+
xPos = pos.left;
|
950 |
+
} else {
|
951 |
+
css.right = 0;
|
952 |
+
xPos = -pos.right;
|
953 |
+
}
|
954 |
+
css[transformKey] = "translateX(" + (Math.round(xPos)) + "px) translateY(" + (Math.round(yPos)) + "px)";
|
955 |
+
if (transformKey !== 'msTransform') {
|
956 |
+
return css[transformKey] += " translateZ(0)";
|
957 |
+
}
|
958 |
+
} else {
|
959 |
+
if (same.top) {
|
960 |
+
css.top = "" + pos.top + "px";
|
961 |
+
} else {
|
962 |
+
css.bottom = "" + pos.bottom + "px";
|
963 |
+
}
|
964 |
+
if (same.left) {
|
965 |
+
return css.left = "" + pos.left + "px";
|
966 |
+
} else {
|
967 |
+
return css.right = "" + pos.right + "px";
|
968 |
+
}
|
969 |
+
}
|
970 |
+
};
|
971 |
+
moved = false;
|
972 |
+
if ((same.page.top || same.page.bottom) && (same.page.left || same.page.right)) {
|
973 |
+
css.position = 'absolute';
|
974 |
+
transcribe(same.page, position.page);
|
975 |
+
} else if ((same.viewport.top || same.viewport.bottom) && (same.viewport.left || same.viewport.right)) {
|
976 |
+
css.position = 'fixed';
|
977 |
+
transcribe(same.viewport, position.viewport);
|
978 |
+
} else if ((same.offset != null) && same.offset.top && same.offset.left) {
|
979 |
+
css.position = 'absolute';
|
980 |
+
offsetParent = this.cache('target-offsetparent', function() {
|
981 |
+
return getOffsetParent(_this.target);
|
982 |
+
});
|
983 |
+
if (getOffsetParent(this.element) !== offsetParent) {
|
984 |
+
defer(function() {
|
985 |
+
_this.element.parentNode.removeChild(_this.element);
|
986 |
+
return offsetParent.appendChild(_this.element);
|
987 |
+
});
|
988 |
+
}
|
989 |
+
transcribe(same.offset, position.offset);
|
990 |
+
moved = true;
|
991 |
+
} else {
|
992 |
+
css.position = 'absolute';
|
993 |
+
transcribe({
|
994 |
+
top: true,
|
995 |
+
left: true
|
996 |
+
}, position.page);
|
997 |
+
}
|
998 |
+
if (!moved && this.element.parentNode.tagName !== 'BODY') {
|
999 |
+
this.element.parentNode.removeChild(this.element);
|
1000 |
+
document.body.appendChild(this.element);
|
1001 |
+
}
|
1002 |
+
writeCSS = {};
|
1003 |
+
write = false;
|
1004 |
+
for (key in css) {
|
1005 |
+
val = css[key];
|
1006 |
+
elVal = this.element.style[key];
|
1007 |
+
if (elVal !== '' && val !== '' && (key === 'top' || key === 'left' || key === 'bottom' || key === 'right')) {
|
1008 |
+
elVal = parseFloat(elVal);
|
1009 |
+
val = parseFloat(val);
|
1010 |
+
}
|
1011 |
+
if (elVal !== val) {
|
1012 |
+
write = true;
|
1013 |
+
writeCSS[key] = css[key];
|
1014 |
+
}
|
1015 |
+
}
|
1016 |
+
if (write) {
|
1017 |
+
return defer(function() {
|
1018 |
+
return extend(_this.element.style, writeCSS);
|
1019 |
+
});
|
1020 |
+
}
|
1021 |
+
};
|
1022 |
+
|
1023 |
+
return _Tether;
|
1024 |
+
|
1025 |
+
})();
|
1026 |
+
|
1027 |
+
Tether.position = position;
|
1028 |
+
|
1029 |
+
this.Tether = extend(_Tether, Tether);
|
1030 |
+
|
1031 |
+
}).call(this);
|
1032 |
+
|
1033 |
+
(function() {
|
1034 |
+
var BOUNDS_FORMAT, MIRROR_ATTACH, defer, extend, getBoundingRect, getBounds, getOuterSize, getSize, updateClasses, _ref,
|
1035 |
+
__indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; };
|
1036 |
+
|
1037 |
+
_ref = this.Tether.Utils, getOuterSize = _ref.getOuterSize, getBounds = _ref.getBounds, getSize = _ref.getSize, extend = _ref.extend, updateClasses = _ref.updateClasses, defer = _ref.defer;
|
1038 |
+
|
1039 |
+
MIRROR_ATTACH = {
|
1040 |
+
left: 'right',
|
1041 |
+
right: 'left',
|
1042 |
+
top: 'bottom',
|
1043 |
+
bottom: 'top',
|
1044 |
+
middle: 'middle'
|
1045 |
+
};
|
1046 |
+
|
1047 |
+
BOUNDS_FORMAT = ['left', 'top', 'right', 'bottom'];
|
1048 |
+
|
1049 |
+
getBoundingRect = function(tether, to) {
|
1050 |
+
var i, pos, side, size, style, _i, _len;
|
1051 |
+
if (to === 'scrollParent') {
|
1052 |
+
to = tether.scrollParent;
|
1053 |
+
} else if (to === 'window') {
|
1054 |
+
to = [pageXOffset, pageYOffset, innerWidth + pageXOffset, innerHeight + pageYOffset];
|
1055 |
+
}
|
1056 |
+
if (to === document) {
|
1057 |
+
to = to.documentElement;
|
1058 |
+
}
|
1059 |
+
if (to.nodeType != null) {
|
1060 |
+
pos = size = getBounds(to);
|
1061 |
+
style = getComputedStyle(to);
|
1062 |
+
to = [pos.left, pos.top, size.width + pos.left, size.height + pos.top];
|
1063 |
+
for (i = _i = 0, _len = BOUNDS_FORMAT.length; _i < _len; i = ++_i) {
|
1064 |
+
side = BOUNDS_FORMAT[i];
|
1065 |
+
side = side[0].toUpperCase() + side.substr(1);
|
1066 |
+
if (side === 'Top' || side === 'Left') {
|
1067 |
+
to[i] += parseFloat(style["border" + side + "Width"]);
|
1068 |
+
} else {
|
1069 |
+
to[i] -= parseFloat(style["border" + side + "Width"]);
|
1070 |
+
}
|
1071 |
+
}
|
1072 |
+
}
|
1073 |
+
return to;
|
1074 |
+
};
|
1075 |
+
|
1076 |
+
this.Tether.modules.push({
|
1077 |
+
position: function(_arg) {
|
1078 |
+
var addClasses, allClasses, attachment, bounds, changeAttachX, changeAttachY, cls, constraint, eAttachment, height, left, oob, oobClass, p, pin, pinned, pinnedClass, removeClass, side, tAttachment, targetAttachment, targetHeight, targetSize, targetWidth, to, top, width, _i, _j, _k, _l, _len, _len1, _len2, _len3, _len4, _len5, _m, _n, _ref1, _ref2, _ref3, _ref4, _ref5, _ref6, _ref7, _ref8,
|
1079 |
+
_this = this;
|
1080 |
+
top = _arg.top, left = _arg.left, targetAttachment = _arg.targetAttachment;
|
1081 |
+
if (!this.options.constraints) {
|
1082 |
+
return true;
|
1083 |
+
}
|
1084 |
+
removeClass = function(prefix) {
|
1085 |
+
var side, _i, _len, _results;
|
1086 |
+
_this.removeClass(prefix);
|
1087 |
+
_results = [];
|
1088 |
+
for (_i = 0, _len = BOUNDS_FORMAT.length; _i < _len; _i++) {
|
1089 |
+
side = BOUNDS_FORMAT[_i];
|
1090 |
+
_results.push(_this.removeClass("" + prefix + "-" + side));
|
1091 |
+
}
|
1092 |
+
return _results;
|
1093 |
+
};
|
1094 |
+
_ref1 = this.cache('element-bounds', function() {
|
1095 |
+
return getBounds(_this.element);
|
1096 |
+
}), height = _ref1.height, width = _ref1.width;
|
1097 |
+
if (width === 0 && height === 0 && (this.lastSize != null)) {
|
1098 |
+
_ref2 = this.lastSize, width = _ref2.width, height = _ref2.height;
|
1099 |
+
}
|
1100 |
+
targetSize = this.cache('target-bounds', function() {
|
1101 |
+
return _this.getTargetBounds();
|
1102 |
+
});
|
1103 |
+
targetHeight = targetSize.height;
|
1104 |
+
targetWidth = targetSize.width;
|
1105 |
+
tAttachment = {};
|
1106 |
+
eAttachment = {};
|
1107 |
+
allClasses = [this.getClass('pinned'), this.getClass('out-of-bounds')];
|
1108 |
+
_ref3 = this.options.constraints;
|
1109 |
+
for (_i = 0, _len = _ref3.length; _i < _len; _i++) {
|
1110 |
+
constraint = _ref3[_i];
|
1111 |
+
if (constraint.outOfBoundsClass) {
|
1112 |
+
allClasses.push(constraint.outOfBoundsClass);
|
1113 |
+
}
|
1114 |
+
if (constraint.pinnedClass) {
|
1115 |
+
allClasses.push(constraint.pinnedClass);
|
1116 |
+
}
|
1117 |
+
}
|
1118 |
+
for (_j = 0, _len1 = allClasses.length; _j < _len1; _j++) {
|
1119 |
+
cls = allClasses[_j];
|
1120 |
+
_ref4 = ['left', 'top', 'right', 'bottom'];
|
1121 |
+
for (_k = 0, _len2 = _ref4.length; _k < _len2; _k++) {
|
1122 |
+
side = _ref4[_k];
|
1123 |
+
allClasses.push("" + cls + "-" + side);
|
1124 |
+
}
|
1125 |
+
}
|
1126 |
+
addClasses = [];
|
1127 |
+
tAttachment = extend({}, targetAttachment);
|
1128 |
+
eAttachment = extend({}, this.attachment);
|
1129 |
+
_ref5 = this.options.constraints;
|
1130 |
+
for (_l = 0, _len3 = _ref5.length; _l < _len3; _l++) {
|
1131 |
+
constraint = _ref5[_l];
|
1132 |
+
to = constraint.to, attachment = constraint.attachment, pin = constraint.pin;
|
1133 |
+
if (attachment == null) {
|
1134 |
+
attachment = '';
|
1135 |
+
}
|
1136 |
+
if (__indexOf.call(attachment, ' ') >= 0) {
|
1137 |
+
_ref6 = attachment.split(' '), changeAttachY = _ref6[0], changeAttachX = _ref6[1];
|
1138 |
+
} else {
|
1139 |
+
changeAttachX = changeAttachY = attachment;
|
1140 |
+
}
|
1141 |
+
bounds = getBoundingRect(this, to);
|
1142 |
+
if (changeAttachY === 'target' || changeAttachY === 'both') {
|
1143 |
+
if (top < bounds[1] && tAttachment.top === 'top') {
|
1144 |
+
top += targetHeight;
|
1145 |
+
tAttachment.top = 'bottom';
|
1146 |
+
}
|
1147 |
+
if (top + height > bounds[3] && tAttachment.top === 'bottom') {
|
1148 |
+
top -= targetHeight;
|
1149 |
+
tAttachment.top = 'top';
|
1150 |
+
}
|
1151 |
+
}
|
1152 |
+
if (changeAttachY === 'together') {
|
1153 |
+
if (top < bounds[1] && tAttachment.top === 'top') {
|
1154 |
+
if (eAttachment.top === 'bottom') {
|
1155 |
+
top += targetHeight;
|
1156 |
+
tAttachment.top = 'bottom';
|
1157 |
+
top += height;
|
1158 |
+
eAttachment.top = 'top';
|
1159 |
+
} else if (eAttachment.top === 'top') {
|
1160 |
+
top += targetHeight;
|
1161 |
+
tAttachment.top = 'bottom';
|
1162 |
+
top -= height;
|
1163 |
+
eAttachment.top = 'bottom';
|
1164 |
+
}
|
1165 |
+
}
|
1166 |
+
if (top + height > bounds[3] && tAttachment.top === 'bottom') {
|
1167 |
+
if (eAttachment.top === 'top') {
|
1168 |
+
top -= targetHeight;
|
1169 |
+
tAttachment.top = 'top';
|
1170 |
+
top -= height;
|
1171 |
+
eAttachment.top = 'bottom';
|
1172 |
+
} else if (eAttachment.top === 'bottom') {
|
1173 |
+
top -= targetHeight;
|
1174 |
+
tAttachment.top = 'top';
|
1175 |
+
top += height;
|
1176 |
+
eAttachment.top = 'top';
|
1177 |
+
}
|
1178 |
+
}
|
1179 |
+
if (tAttachment.top === 'middle') {
|
1180 |
+
if (top + height > bounds[3] && eAttachment.top === 'top') {
|
1181 |
+
top -= height;
|
1182 |
+
eAttachment.top = 'bottom';
|
1183 |
+
} else if (top < bounds[1] && eAttachment.top === 'bottom') {
|
1184 |
+
top += height;
|
1185 |
+
eAttachment.top = 'top';
|
1186 |
+
}
|
1187 |
+
}
|
1188 |
+
}
|
1189 |
+
if (changeAttachX === 'target' || changeAttachX === 'both') {
|
1190 |
+
if (left < bounds[0] && tAttachment.left === 'left') {
|
1191 |
+
left += targetWidth;
|
1192 |
+
tAttachment.left = 'right';
|
1193 |
+
}
|
1194 |
+
if (left + width > bounds[2] && tAttachment.left === 'right') {
|
1195 |
+
left -= targetWidth;
|
1196 |
+
tAttachment.left = 'left';
|
1197 |
+
}
|
1198 |
+
}
|
1199 |
+
if (changeAttachX === 'together') {
|
1200 |
+
if (left < bounds[0] && tAttachment.left === 'left') {
|
1201 |
+
if (eAttachment.left === 'right') {
|
1202 |
+
left += targetWidth;
|
1203 |
+
tAttachment.left = 'right';
|
1204 |
+
left += width;
|
1205 |
+
eAttachment.left = 'left';
|
1206 |
+
} else if (eAttachment.left === 'left') {
|
1207 |
+
left += targetWidth;
|
1208 |
+
tAttachment.left = 'right';
|
1209 |
+
left -= width;
|
1210 |
+
eAttachment.left = 'right';
|
1211 |
+
}
|
1212 |
+
} else if (left + width > bounds[2] && tAttachment.left === 'right') {
|
1213 |
+
if (eAttachment.left === 'left') {
|
1214 |
+
left -= targetWidth;
|
1215 |
+
tAttachment.left = 'left';
|
1216 |
+
left -= width;
|
1217 |
+
eAttachment.left = 'right';
|
1218 |
+
} else if (eAttachment.left === 'right') {
|
1219 |
+
left -= targetWidth;
|
1220 |
+
tAttachment.left = 'left';
|
1221 |
+
left += width;
|
1222 |
+
eAttachment.left = 'left';
|
1223 |
+
}
|
1224 |
+
} else if (tAttachment.left === 'center') {
|
1225 |
+
if (left + width > bounds[2] && eAttachment.left === 'left') {
|
1226 |
+
left -= width;
|
1227 |
+
eAttachment.left = 'right';
|
1228 |
+
} else if (left < bounds[0] && eAttachment.left === 'right') {
|
1229 |
+
left += width;
|
1230 |
+
eAttachment.left = 'left';
|
1231 |
+
}
|
1232 |
+
}
|
1233 |
+
}
|
1234 |
+
if (changeAttachY === 'element' || changeAttachY === 'both') {
|
1235 |
+
if (top < bounds[1] && eAttachment.top === 'bottom') {
|
1236 |
+
top += height;
|
1237 |
+
eAttachment.top = 'top';
|
1238 |
+
}
|
1239 |
+
if (top + height > bounds[3] && eAttachment.top === 'top') {
|
1240 |
+
top -= height;
|
1241 |
+
eAttachment.top = 'bottom';
|
1242 |
+
}
|
1243 |
+
}
|
1244 |
+
if (changeAttachX === 'element' || changeAttachX === 'both') {
|
1245 |
+
if (left < bounds[0] && eAttachment.left === 'right') {
|
1246 |
+
left += width;
|
1247 |
+
eAttachment.left = 'left';
|
1248 |
+
}
|
1249 |
+
if (left + width > bounds[2] && eAttachment.left === 'left') {
|
1250 |
+
left -= width;
|
1251 |
+
eAttachment.left = 'right';
|
1252 |
+
}
|
1253 |
+
}
|
1254 |
+
if (typeof pin === 'string') {
|
1255 |
+
pin = (function() {
|
1256 |
+
var _len4, _m, _ref7, _results;
|
1257 |
+
_ref7 = pin.split(',');
|
1258 |
+
_results = [];
|
1259 |
+
for (_m = 0, _len4 = _ref7.length; _m < _len4; _m++) {
|
1260 |
+
p = _ref7[_m];
|
1261 |
+
_results.push(p.trim());
|
1262 |
+
}
|
1263 |
+
return _results;
|
1264 |
+
})();
|
1265 |
+
} else if (pin === true) {
|
1266 |
+
pin = ['top', 'left', 'right', 'bottom'];
|
1267 |
+
}
|
1268 |
+
pin || (pin = []);
|
1269 |
+
pinned = [];
|
1270 |
+
oob = [];
|
1271 |
+
if (top < bounds[1]) {
|
1272 |
+
if (__indexOf.call(pin, 'top') >= 0) {
|
1273 |
+
top = bounds[1];
|
1274 |
+
pinned.push('top');
|
1275 |
+
} else {
|
1276 |
+
oob.push('top');
|
1277 |
+
}
|
1278 |
+
}
|
1279 |
+
if (top + height > bounds[3]) {
|
1280 |
+
if (__indexOf.call(pin, 'bottom') >= 0) {
|
1281 |
+
top = bounds[3] - height;
|
1282 |
+
pinned.push('bottom');
|
1283 |
+
} else {
|
1284 |
+
oob.push('bottom');
|
1285 |
+
}
|
1286 |
+
}
|
1287 |
+
if (left < bounds[0]) {
|
1288 |
+
if (__indexOf.call(pin, 'left') >= 0) {
|
1289 |
+
left = bounds[0];
|
1290 |
+
pinned.push('left');
|
1291 |
+
} else {
|
1292 |
+
oob.push('left');
|
1293 |
+
}
|
1294 |
+
}
|
1295 |
+
if (left + width > bounds[2]) {
|
1296 |
+
if (__indexOf.call(pin, 'right') >= 0) {
|
1297 |
+
left = bounds[2] - width;
|
1298 |
+
pinned.push('right');
|
1299 |
+
} else {
|
1300 |
+
oob.push('right');
|
1301 |
+
}
|
1302 |
+
}
|
1303 |
+
if (pinned.length) {
|
1304 |
+
pinnedClass = (_ref7 = this.options.pinnedClass) != null ? _ref7 : this.getClass('pinned');
|
1305 |
+
addClasses.push(pinnedClass);
|
1306 |
+
for (_m = 0, _len4 = pinned.length; _m < _len4; _m++) {
|
1307 |
+
side = pinned[_m];
|
1308 |
+
addClasses.push("" + pinnedClass + "-" + side);
|
1309 |
+
}
|
1310 |
+
}
|
1311 |
+
if (oob.length) {
|
1312 |
+
oobClass = (_ref8 = this.options.outOfBoundsClass) != null ? _ref8 : this.getClass('out-of-bounds');
|
1313 |
+
addClasses.push(oobClass);
|
1314 |
+
for (_n = 0, _len5 = oob.length; _n < _len5; _n++) {
|
1315 |
+
side = oob[_n];
|
1316 |
+
addClasses.push("" + oobClass + "-" + side);
|
1317 |
+
}
|
1318 |
+
}
|
1319 |
+
if (__indexOf.call(pinned, 'left') >= 0 || __indexOf.call(pinned, 'right') >= 0) {
|
1320 |
+
eAttachment.left = tAttachment.left = false;
|
1321 |
+
}
|
1322 |
+
if (__indexOf.call(pinned, 'top') >= 0 || __indexOf.call(pinned, 'bottom') >= 0) {
|
1323 |
+
eAttachment.top = tAttachment.top = false;
|
1324 |
+
}
|
1325 |
+
if (tAttachment.top !== targetAttachment.top || tAttachment.left !== targetAttachment.left || eAttachment.top !== this.attachment.top || eAttachment.left !== this.attachment.left) {
|
1326 |
+
this.updateAttachClasses(eAttachment, tAttachment);
|
1327 |
+
}
|
1328 |
+
}
|
1329 |
+
defer(function() {
|
1330 |
+
updateClasses(_this.target, addClasses, allClasses);
|
1331 |
+
return updateClasses(_this.element, addClasses, allClasses);
|
1332 |
+
});
|
1333 |
+
return {
|
1334 |
+
top: top,
|
1335 |
+
left: left
|
1336 |
+
};
|
1337 |
+
}
|
1338 |
+
});
|
1339 |
+
|
1340 |
+
}).call(this);
|
1341 |
+
|
1342 |
+
(function() {
|
1343 |
+
var defer, getBounds, updateClasses, _ref;
|
1344 |
+
|
1345 |
+
_ref = this.Tether.Utils, getBounds = _ref.getBounds, updateClasses = _ref.updateClasses, defer = _ref.defer;
|
1346 |
+
|
1347 |
+
this.Tether.modules.push({
|
1348 |
+
position: function(_arg) {
|
1349 |
+
var abutted, addClasses, allClasses, bottom, height, left, right, side, sides, targetPos, top, width, _i, _j, _k, _l, _len, _len1, _len2, _len3, _ref1, _ref2, _ref3, _ref4, _ref5,
|
1350 |
+
_this = this;
|
1351 |
+
top = _arg.top, left = _arg.left;
|
1352 |
+
_ref1 = this.cache('element-bounds', function() {
|
1353 |
+
return getBounds(_this.element);
|
1354 |
+
}), height = _ref1.height, width = _ref1.width;
|
1355 |
+
targetPos = this.getTargetBounds();
|
1356 |
+
bottom = top + height;
|
1357 |
+
right = left + width;
|
1358 |
+
abutted = [];
|
1359 |
+
if (top <= targetPos.bottom && bottom >= targetPos.top) {
|
1360 |
+
_ref2 = ['left', 'right'];
|
1361 |
+
for (_i = 0, _len = _ref2.length; _i < _len; _i++) {
|
1362 |
+
side = _ref2[_i];
|
1363 |
+
if ((_ref3 = targetPos[side]) === left || _ref3 === right) {
|
1364 |
+
abutted.push(side);
|
1365 |
+
}
|
1366 |
+
}
|
1367 |
+
}
|
1368 |
+
if (left <= targetPos.right && right >= targetPos.left) {
|
1369 |
+
_ref4 = ['top', 'bottom'];
|
1370 |
+
for (_j = 0, _len1 = _ref4.length; _j < _len1; _j++) {
|
1371 |
+
side = _ref4[_j];
|
1372 |
+
if ((_ref5 = targetPos[side]) === top || _ref5 === bottom) {
|
1373 |
+
abutted.push(side);
|
1374 |
+
}
|
1375 |
+
}
|
1376 |
+
}
|
1377 |
+
allClasses = [];
|
1378 |
+
addClasses = [];
|
1379 |
+
sides = ['left', 'top', 'right', 'bottom'];
|
1380 |
+
allClasses.push(this.getClass('abutted'));
|
1381 |
+
for (_k = 0, _len2 = sides.length; _k < _len2; _k++) {
|
1382 |
+
side = sides[_k];
|
1383 |
+
allClasses.push("" + (this.getClass('abutted')) + "-" + side);
|
1384 |
+
}
|
1385 |
+
if (abutted.length) {
|
1386 |
+
addClasses.push(this.getClass('abutted'));
|
1387 |
+
}
|
1388 |
+
for (_l = 0, _len3 = abutted.length; _l < _len3; _l++) {
|
1389 |
+
side = abutted[_l];
|
1390 |
+
addClasses.push("" + (this.getClass('abutted')) + "-" + side);
|
1391 |
+
}
|
1392 |
+
defer(function() {
|
1393 |
+
updateClasses(_this.target, addClasses, allClasses);
|
1394 |
+
return updateClasses(_this.element, addClasses, allClasses);
|
1395 |
+
});
|
1396 |
+
return true;
|
1397 |
+
}
|
1398 |
+
});
|
1399 |
+
|
1400 |
+
}).call(this);
|
1401 |
+
|
1402 |
+
(function() {
|
1403 |
+
this.Tether.modules.push({
|
1404 |
+
position: function(_arg) {
|
1405 |
+
var left, result, shift, shiftLeft, shiftTop, top, _ref;
|
1406 |
+
top = _arg.top, left = _arg.left;
|
1407 |
+
if (!this.options.shift) {
|
1408 |
+
return;
|
1409 |
+
}
|
1410 |
+
result = function(val) {
|
1411 |
+
if (typeof val === 'function') {
|
1412 |
+
return val.call(this, {
|
1413 |
+
top: top,
|
1414 |
+
left: left
|
1415 |
+
});
|
1416 |
+
} else {
|
1417 |
+
return val;
|
1418 |
+
}
|
1419 |
+
};
|
1420 |
+
shift = result(this.options.shift);
|
1421 |
+
if (typeof shift === 'string') {
|
1422 |
+
shift = shift.split(' ');
|
1423 |
+
shift[1] || (shift[1] = shift[0]);
|
1424 |
+
shiftTop = shift[0], shiftLeft = shift[1];
|
1425 |
+
shiftTop = parseFloat(shiftTop, 10);
|
1426 |
+
shiftLeft = parseFloat(shiftLeft, 10);
|
1427 |
+
} else {
|
1428 |
+
_ref = [shift.top, shift.left], shiftTop = _ref[0], shiftLeft = _ref[1];
|
1429 |
+
}
|
1430 |
+
top += shiftTop;
|
1431 |
+
left += shiftLeft;
|
1432 |
+
return {
|
1433 |
+
top: top,
|
1434 |
+
left: left
|
1435 |
+
};
|
1436 |
+
}
|
1437 |
+
});
|
1438 |
+
|
1439 |
+
}).call(this);
|
1440 |
+
|
1441 |
+
return this.Tether;
|
1442 |
+
|
1443 |
+
}));
|
admin/assets/tether/LICENSE
ADDED
@@ -0,0 +1,8 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
Copyright (c) 2014-2016 HubSpot, Inc.
|
2 |
+
|
3 |
+
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
4 |
+
|
5 |
+
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
6 |
+
|
7 |
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
8 |
+
|
admin/assets/tether/tether.js
ADDED
@@ -0,0 +1,1811 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/*! tether 1.4.0 */
|
2 |
+
|
3 |
+
(function(root, factory) {
|
4 |
+
if (typeof define === 'function' && define.amd) {
|
5 |
+
define(factory);
|
6 |
+
} else if (typeof exports === 'object') {
|
7 |
+
module.exports = factory(require, exports, module);
|
8 |
+
} else {
|
9 |
+
root.Tether = factory();
|
10 |
+
}
|
11 |
+
}(this, function(require, exports, module) {
|
12 |
+
|
13 |
+
'use strict';
|
14 |
+
|
15 |
+
var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();
|
16 |
+
|
17 |
+
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
|
18 |
+
|
19 |
+
var TetherBase = undefined;
|
20 |
+
if (typeof TetherBase === 'undefined') {
|
21 |
+
TetherBase = { modules: [] };
|
22 |
+
}
|
23 |
+
|
24 |
+
var zeroElement = null;
|
25 |
+
|
26 |
+
// Same as native getBoundingClientRect, except it takes into account parent <frame> offsets
|
27 |
+
// if the element lies within a nested document (<frame> or <iframe>-like).
|
28 |
+
function getActualBoundingClientRect(node) {
|
29 |
+
var boundingRect = node.getBoundingClientRect();
|
30 |
+
|
31 |
+
// The original object returned by getBoundingClientRect is immutable, so we clone it
|
32 |
+
// We can't use extend because the properties are not considered part of the object by hasOwnProperty in IE9
|
33 |
+
var rect = {};
|
34 |
+
for (var k in boundingRect) {
|
35 |
+
rect[k] = boundingRect[k];
|
36 |
+
}
|
37 |
+
|
38 |
+
if (node.ownerDocument !== document) {
|
39 |
+
var _frameElement = node.ownerDocument.defaultView.frameElement;
|
40 |
+
if (_frameElement) {
|
41 |
+
var frameRect = getActualBoundingClientRect(_frameElement);
|
42 |
+
rect.top += frameRect.top;
|
43 |
+
rect.bottom += frameRect.top;
|
44 |
+
rect.left += frameRect.left;
|
45 |
+
rect.right += frameRect.left;
|
46 |
+
}
|
47 |
+
}
|
48 |
+
|
49 |
+
return rect;
|
50 |
+
}
|
51 |
+
|
52 |
+
function getScrollParents(el) {
|
53 |
+
// In firefox if the el is inside an iframe with display: none; window.getComputedStyle() will return null;
|
54 |
+
// https://bugzilla.mozilla.org/show_bug.cgi?id=548397
|
55 |
+
var computedStyle = getComputedStyle(el) || {};
|
56 |
+
var position = computedStyle.position;
|
57 |
+
var parents = [];
|
58 |
+
|
59 |
+
if (position === 'fixed') {
|
60 |
+
return [el];
|
61 |
+
}
|
62 |
+
|
63 |
+
var parent = el;
|
64 |
+
while ((parent = parent.parentNode) && parent && parent.nodeType === 1) {
|
65 |
+
var style = undefined;
|
66 |
+
try {
|
67 |
+
style = getComputedStyle(parent);
|
68 |
+
} catch (err) {}
|
69 |
+
|
70 |
+
if (typeof style === 'undefined' || style === null) {
|
71 |
+
parents.push(parent);
|
72 |
+
return parents;
|
73 |
+
}
|
74 |
+
|
75 |
+
var _style = style;
|
76 |
+
var overflow = _style.overflow;
|
77 |
+
var overflowX = _style.overflowX;
|
78 |
+
var overflowY = _style.overflowY;
|
79 |
+
|
80 |
+
if (/(auto|scroll)/.test(overflow + overflowY + overflowX)) {
|
81 |
+
if (position !== 'absolute' || ['relative', 'absolute', 'fixed'].indexOf(style.position) >= 0) {
|
82 |
+
parents.push(parent);
|
83 |
+
}
|
84 |
+
}
|
85 |
+
}
|
86 |
+
|
87 |
+
parents.push(el.ownerDocument.body);
|
88 |
+
|
89 |
+
// If the node is within a frame, account for the parent window scroll
|
90 |
+
if (el.ownerDocument !== document) {
|
91 |
+
parents.push(el.ownerDocument.defaultView);
|
92 |
+
}
|
93 |
+
|
94 |
+
return parents;
|
95 |
+
}
|
96 |
+
|
97 |
+
var uniqueId = (function () {
|
98 |
+
var id = 0;
|
99 |
+
return function () {
|
100 |
+
return ++id;
|
101 |
+
};
|
102 |
+
})();
|
103 |
+
|
104 |
+
var zeroPosCache = {};
|
105 |
+
var getOrigin = function getOrigin() {
|
106 |
+
// getBoundingClientRect is unfortunately too accurate. It introduces a pixel or two of
|
107 |
+
// jitter as the user scrolls that messes with our ability to detect if two positions
|
108 |
+
// are equivilant or not. We place an element at the top left of the page that will
|
109 |
+
// get the same jitter, so we can cancel the two out.
|
110 |
+
var node = zeroElement;
|
111 |
+
if (!node || !document.body.contains(node)) {
|
112 |
+
node = document.createElement('div');
|
113 |
+
node.setAttribute('data-tether-id', uniqueId());
|
114 |
+
extend(node.style, {
|
115 |
+
top: 0,
|
116 |
+
left: 0,
|
117 |
+
position: 'absolute'
|
118 |
+
});
|
119 |
+
|
120 |
+
document.body.appendChild(node);
|
121 |
+
|
122 |
+
zeroElement = node;
|
123 |
+
}
|
124 |
+
|
125 |
+
var id = node.getAttribute('data-tether-id');
|
126 |
+
if (typeof zeroPosCache[id] === 'undefined') {
|
127 |
+
zeroPosCache[id] = getActualBoundingClientRect(node);
|
128 |
+
|
129 |
+
// Clear the cache when this position call is done
|
130 |
+
defer(function () {
|
131 |
+
delete zeroPosCache[id];
|
132 |
+
});
|
133 |
+
}
|
134 |
+
|
135 |
+
return zeroPosCache[id];
|
136 |
+
};
|
137 |
+
|
138 |
+
function removeUtilElements() {
|
139 |
+
if (zeroElement) {
|
140 |
+
document.body.removeChild(zeroElement);
|
141 |
+
}
|
142 |
+
zeroElement = null;
|
143 |
+
};
|
144 |
+
|
145 |
+
function getBounds(el) {
|
146 |
+
var doc = undefined;
|
147 |
+
if (el === document) {
|
148 |
+
doc = document;
|
149 |
+
el = document.documentElement;
|
150 |
+
} else {
|
151 |
+
doc = el.ownerDocument;
|
152 |
+
}
|
153 |
+
|
154 |
+
var docEl = doc.documentElement;
|
155 |
+
|
156 |
+
var box = getActualBoundingClientRect(el);
|
157 |
+
|
158 |
+
var origin = getOrigin();
|
159 |
+
|
160 |
+
box.top -= origin.top;
|
161 |
+
box.left -= origin.left;
|
162 |
+
|
163 |
+
if (typeof box.width === 'undefined') {
|
164 |
+
box.width = document.body.scrollWidth - box.left - box.right;
|
165 |
+
}
|
166 |
+
if (typeof box.height === 'undefined') {
|
167 |
+
box.height = document.body.scrollHeight - box.top - box.bottom;
|
168 |
+
}
|
169 |
+
|
170 |
+
box.top = box.top - docEl.clientTop;
|
171 |
+
box.left = box.left - docEl.clientLeft;
|
172 |
+
box.right = doc.body.clientWidth - box.width - box.left;
|
173 |
+
box.bottom = doc.body.clientHeight - box.height - box.top;
|
174 |
+
|
175 |
+
return box;
|
176 |
+
}
|
177 |
+
|
178 |
+
function getOffsetParent(el) {
|
179 |
+
return el.offsetParent || document.documentElement;
|
180 |
+
}
|
181 |
+
|
182 |
+
var _scrollBarSize = null;
|
183 |
+
function getScrollBarSize() {
|
184 |
+
if (_scrollBarSize) {
|
185 |
+
return _scrollBarSize;
|
186 |
+
}
|
187 |
+
var inner = document.createElement('div');
|
188 |
+
inner.style.width = '100%';
|
189 |
+
inner.style.height = '200px';
|
190 |
+
|
191 |
+
var outer = document.createElement('div');
|
192 |
+
extend(outer.style, {
|
193 |
+
position: 'absolute',
|
194 |
+
top: 0,
|
195 |
+
left: 0,
|
196 |
+
pointerEvents: 'none',
|
197 |
+
visibility: 'hidden',
|
198 |
+
width: '200px',
|
199 |
+
height: '150px',
|
200 |
+
overflow: 'hidden'
|
201 |
+
});
|
202 |
+
|
203 |
+
outer.appendChild(inner);
|
204 |
+
|
205 |
+
document.body.appendChild(outer);
|
206 |
+
|
207 |
+
var widthContained = inner.offsetWidth;
|
208 |
+
outer.style.overflow = 'scroll';
|
209 |
+
var widthScroll = inner.offsetWidth;
|
210 |
+
|
211 |
+
if (widthContained === widthScroll) {
|
212 |
+
widthScroll = outer.clientWidth;
|
213 |
+
}
|
214 |
+
|
215 |
+
document.body.removeChild(outer);
|
216 |
+
|
217 |
+
var width = widthContained - widthScroll;
|
218 |
+
|
219 |
+
_scrollBarSize = { width: width, height: width };
|
220 |
+
return _scrollBarSize;
|
221 |
+
}
|
222 |
+
|
223 |
+
function extend() {
|
224 |
+
var out = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];
|
225 |
+
|
226 |
+
var args = [];
|
227 |
+
|
228 |
+
Array.prototype.push.apply(args, arguments);
|
229 |
+
|
230 |
+
args.slice(1).forEach(function (obj) {
|
231 |
+
if (obj) {
|
232 |
+
for (var key in obj) {
|
233 |
+
if (({}).hasOwnProperty.call(obj, key)) {
|
234 |
+
out[key] = obj[key];
|
235 |
+
}
|
236 |
+
}
|
237 |
+
}
|
238 |
+
});
|
239 |
+
|
240 |
+
return out;
|
241 |
+
}
|
242 |
+
|
243 |
+
function removeClass(el, name) {
|
244 |
+
if (typeof el.classList !== 'undefined') {
|
245 |
+
name.split(' ').forEach(function (cls) {
|
246 |
+
if (cls.trim()) {
|
247 |
+
el.classList.remove(cls);
|
248 |
+
}
|
249 |
+
});
|
250 |
+
} else {
|
251 |
+
var regex = new RegExp('(^| )' + name.split(' ').join('|') + '( |$)', 'gi');
|
252 |
+
var className = getClassName(el).replace(regex, ' ');
|
253 |
+
setClassName(el, className);
|
254 |
+
}
|
255 |
+
}
|
256 |
+
|
257 |
+
function addClass(el, name) {
|
258 |
+
if (typeof el.classList !== 'undefined') {
|
259 |
+
name.split(' ').forEach(function (cls) {
|
260 |
+
if (cls.trim()) {
|
261 |
+
el.classList.add(cls);
|
262 |
+
}
|
263 |
+
});
|
264 |
+
} else {
|
265 |
+
removeClass(el, name);
|
266 |
+
var cls = getClassName(el) + (' ' + name);
|
267 |
+
setClassName(el, cls);
|
268 |
+
}
|
269 |
+
}
|
270 |
+
|
271 |
+
function hasClass(el, name) {
|
272 |
+
if (typeof el.classList !== 'undefined') {
|
273 |
+
return el.classList.contains(name);
|
274 |
+
}
|
275 |
+
var className = getClassName(el);
|
276 |
+
return new RegExp('(^| )' + name + '( |$)', 'gi').test(className);
|
277 |
+
}
|
278 |
+
|
279 |
+
function getClassName(el) {
|
280 |
+
// Can't use just SVGAnimatedString here since nodes within a Frame in IE have
|
281 |
+
// completely separately SVGAnimatedString base classes
|
282 |
+
if (el.className instanceof el.ownerDocument.defaultView.SVGAnimatedString) {
|
283 |
+
return el.className.baseVal;
|
284 |
+
}
|
285 |
+
return el.className;
|
286 |
+
}
|
287 |
+
|
288 |
+
function setClassName(el, className) {
|
289 |
+
el.setAttribute('class', className);
|
290 |
+
}
|
291 |
+
|
292 |
+
function updateClasses(el, add, all) {
|
293 |
+
// Of the set of 'all' classes, we need the 'add' classes, and only the
|
294 |
+
// 'add' classes to be set.
|
295 |
+
all.forEach(function (cls) {
|
296 |
+
if (add.indexOf(cls) === -1 && hasClass(el, cls)) {
|
297 |
+
removeClass(el, cls);
|
298 |
+
}
|
299 |
+
});
|
300 |
+
|
301 |
+
add.forEach(function (cls) {
|
302 |
+
if (!hasClass(el, cls)) {
|
303 |
+
addClass(el, cls);
|
304 |
+
}
|
305 |
+
});
|
306 |
+
}
|
307 |
+
|
308 |
+
var deferred = [];
|
309 |
+
|
310 |
+
var defer = function defer(fn) {
|
311 |
+
deferred.push(fn);
|
312 |
+
};
|
313 |
+
|
314 |
+
var flush = function flush() {
|
315 |
+
var fn = undefined;
|
316 |
+
while (fn = deferred.pop()) {
|
317 |
+
fn();
|
318 |
+
}
|
319 |
+
};
|
320 |
+
|
321 |
+
var Evented = (function () {
|
322 |
+
function Evented() {
|
323 |
+
_classCallCheck(this, Evented);
|
324 |
+
}
|
325 |
+
|
326 |
+
_createClass(Evented, [{
|
327 |
+
key: 'on',
|
328 |
+
value: function on(event, handler, ctx) {
|
329 |
+
var once = arguments.length <= 3 || arguments[3] === undefined ? false : arguments[3];
|
330 |
+
|
331 |
+
if (typeof this.bindings === 'undefined') {
|
332 |
+
this.bindings = {};
|
333 |
+
}
|
334 |
+
if (typeof this.bindings[event] === 'undefined') {
|
335 |
+
this.bindings[event] = [];
|
336 |
+
}
|
337 |
+
this.bindings[event].push({ handler: handler, ctx: ctx, once: once });
|
338 |
+
}
|
339 |
+
}, {
|
340 |
+
key: 'once',
|
341 |
+
value: function once(event, handler, ctx) {
|
342 |
+
this.on(event, handler, ctx, true);
|
343 |
+
}
|
344 |
+
}, {
|
345 |
+
key: 'off',
|
346 |
+
value: function off(event, handler) {
|
347 |
+
if (typeof this.bindings === 'undefined' || typeof this.bindings[event] === 'undefined') {
|
348 |
+
return;
|
349 |
+
}
|
350 |
+
|
351 |
+
if (typeof handler === 'undefined') {
|
352 |
+
delete this.bindings[event];
|
353 |
+
} else {
|
354 |
+
var i = 0;
|
355 |
+
while (i < this.bindings[event].length) {
|
356 |
+
if (this.bindings[event][i].handler === handler) {
|
357 |
+
this.bindings[event].splice(i, 1);
|
358 |
+
} else {
|
359 |
+
++i;
|
360 |
+
}
|
361 |
+
}
|
362 |
+
}
|
363 |
+
}
|
364 |
+
}, {
|
365 |
+
key: 'trigger',
|
366 |
+
value: function trigger(event) {
|
367 |
+
if (typeof this.bindings !== 'undefined' && this.bindings[event]) {
|
368 |
+
var i = 0;
|
369 |
+
|
370 |
+
for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
|
371 |
+
args[_key - 1] = arguments[_key];
|
372 |
+
}
|
373 |
+
|
374 |
+
while (i < this.bindings[event].length) {
|
375 |
+
var _bindings$event$i = this.bindings[event][i];
|
376 |
+
var handler = _bindings$event$i.handler;
|
377 |
+
var ctx = _bindings$event$i.ctx;
|
378 |
+
var once = _bindings$event$i.once;
|
379 |
+
|
380 |
+
var context = ctx;
|
381 |
+
if (typeof context === 'undefined') {
|
382 |
+
context = this;
|
383 |
+
}
|
384 |
+
|
385 |
+
handler.apply(context, args);
|
386 |
+
|
387 |
+
if (once) {
|
388 |
+
this.bindings[event].splice(i, 1);
|
389 |
+
} else {
|
390 |
+
++i;
|
391 |
+
}
|
392 |
+
}
|
393 |
+
}
|
394 |
+
}
|
395 |
+
}]);
|
396 |
+
|
397 |
+
return Evented;
|
398 |
+
})();
|
399 |
+
|
400 |
+
TetherBase.Utils = {
|
401 |
+
getActualBoundingClientRect: getActualBoundingClientRect,
|
402 |
+
getScrollParents: getScrollParents,
|
403 |
+
getBounds: getBounds,
|
404 |
+
getOffsetParent: getOffsetParent,
|
405 |
+
extend: extend,
|
406 |
+
addClass: addClass,
|
407 |
+
removeClass: removeClass,
|
408 |
+
hasClass: hasClass,
|
409 |
+
updateClasses: updateClasses,
|
410 |
+
defer: defer,
|
411 |
+
flush: flush,
|
412 |
+
uniqueId: uniqueId,
|
413 |
+
Evented: Evented,
|
414 |
+
getScrollBarSize: getScrollBarSize,
|
415 |
+
removeUtilElements: removeUtilElements
|
416 |
+
};
|
417 |
+
/* globals TetherBase, performance */
|
418 |
+
|
419 |
+
'use strict';
|
420 |
+
|
421 |
+
var _slicedToArray = (function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i['return']) _i['return'](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError('Invalid attempt to destructure non-iterable instance'); } }; })();
|
422 |
+
|
423 |
+
var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();
|
424 |
+
|
425 |
+
var _get = function get(_x6, _x7, _x8) { var _again = true; _function: while (_again) { var object = _x6, property = _x7, receiver = _x8; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x6 = parent; _x7 = property; _x8 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } };
|
426 |
+
|
427 |
+
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
|
428 |
+
|
429 |
+
function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
|
430 |
+
|
431 |
+
if (typeof TetherBase === 'undefined') {
|
432 |
+
throw new Error('You must include the utils.js file before tether.js');
|
433 |
+
}
|
434 |
+
|
435 |
+
var _TetherBase$Utils = TetherBase.Utils;
|
436 |
+
var getScrollParents = _TetherBase$Utils.getScrollParents;
|
437 |
+
var getBounds = _TetherBase$Utils.getBounds;
|
438 |
+
var getOffsetParent = _TetherBase$Utils.getOffsetParent;
|
439 |
+
var extend = _TetherBase$Utils.extend;
|
440 |
+
var addClass = _TetherBase$Utils.addClass;
|
441 |
+
var removeClass = _TetherBase$Utils.removeClass;
|
442 |
+
var updateClasses = _TetherBase$Utils.updateClasses;
|
443 |
+
var defer = _TetherBase$Utils.defer;
|
444 |
+
var flush = _TetherBase$Utils.flush;
|
445 |
+
var getScrollBarSize = _TetherBase$Utils.getScrollBarSize;
|
446 |
+
var removeUtilElements = _TetherBase$Utils.removeUtilElements;
|
447 |
+
|
448 |
+
function within(a, b) {
|
449 |
+
var diff = arguments.length <= 2 || arguments[2] === undefined ? 1 : arguments[2];
|
450 |
+
|
451 |
+
return a + diff >= b && b >= a - diff;
|
452 |
+
}
|
453 |
+
|
454 |
+
var transformKey = (function () {
|
455 |
+
if (typeof document === 'undefined') {
|
456 |
+
return '';
|
457 |
+
}
|
458 |
+
var el = document.createElement('div');
|
459 |
+
|
460 |
+
var transforms = ['transform', 'WebkitTransform', 'OTransform', 'MozTransform', 'msTransform'];
|
461 |
+
for (var i = 0; i < transforms.length; ++i) {
|
462 |
+
var key = transforms[i];
|
463 |
+
if (el.style[key] !== undefined) {
|
464 |
+
return key;
|
465 |
+
}
|
466 |
+
}
|
467 |
+
})();
|
468 |
+
|
469 |
+
var tethers = [];
|
470 |
+
|
471 |
+
var position = function position() {
|
472 |
+
tethers.forEach(function (tether) {
|
473 |
+
tether.position(false);
|
474 |
+
});
|
475 |
+
flush();
|
476 |
+
};
|
477 |
+
|
478 |
+
function now() {
|
479 |
+
if (typeof performance !== 'undefined' && typeof performance.now !== 'undefined') {
|
480 |
+
return performance.now();
|
481 |
+
}
|
482 |
+
return +new Date();
|
483 |
+
}
|
484 |
+
|
485 |
+
(function () {
|
486 |
+
var lastCall = null;
|
487 |
+
var lastDuration = null;
|
488 |
+
var pendingTimeout = null;
|
489 |
+
|
490 |
+
var tick = function tick() {
|
491 |
+
if (typeof lastDuration !== 'undefined' && lastDuration > 16) {
|
492 |
+
// We voluntarily throttle ourselves if we can't manage 60fps
|
493 |
+
lastDuration = Math.min(lastDuration - 16, 250);
|
494 |
+
|
495 |
+
// Just in case this is the last event, remember to position just once more
|
496 |
+
pendingTimeout = setTimeout(tick, 250);
|
497 |
+
return;
|
498 |
+
}
|
499 |
+
|
500 |
+
if (typeof lastCall !== 'undefined' && now() - lastCall < 10) {
|
501 |
+
// Some browsers call events a little too frequently, refuse to run more than is reasonable
|
502 |
+
return;
|
503 |
+
}
|
504 |
+
|
505 |
+
if (pendingTimeout != null) {
|
506 |
+
clearTimeout(pendingTimeout);
|
507 |
+
pendingTimeout = null;
|
508 |
+
}
|
509 |
+
|
510 |
+
lastCall = now();
|
511 |
+
position();
|
512 |
+
lastDuration = now() - lastCall;
|
513 |
+
};
|
514 |
+
|
515 |
+
if (typeof window !== 'undefined' && typeof window.addEventListener !== 'undefined') {
|
516 |
+
['resize', 'scroll', 'touchmove'].forEach(function (event) {
|
517 |
+
window.addEventListener(event, tick);
|
518 |
+
});
|
519 |
+
}
|
520 |
+
})();
|
521 |
+
|
522 |
+
var MIRROR_LR = {
|
523 |
+
center: 'center',
|
524 |
+
left: 'right',
|
525 |
+
right: 'left'
|
526 |
+
};
|
527 |
+
|
528 |
+
var MIRROR_TB = {
|
529 |
+
middle: 'middle',
|
530 |
+
top: 'bottom',
|
531 |
+
bottom: 'top'
|
532 |
+
};
|
533 |
+
|
534 |
+
var OFFSET_MAP = {
|
535 |
+
top: 0,
|
536 |
+
left: 0,
|
537 |
+
middle: '50%',
|
538 |
+
center: '50%',
|
539 |
+
bottom: '100%',
|
540 |
+
right: '100%'
|
541 |
+
};
|
542 |
+
|
543 |
+
var autoToFixedAttachment = function autoToFixedAttachment(attachment, relativeToAttachment) {
|
544 |
+
var left = attachment.left;
|
545 |
+
var top = attachment.top;
|
546 |
+
|
547 |
+
if (left === 'auto') {
|
548 |
+
left = MIRROR_LR[relativeToAttachment.left];
|
549 |
+
}
|
550 |
+
|
551 |
+
if (top === 'auto') {
|
552 |
+
top = MIRROR_TB[relativeToAttachment.top];
|
553 |
+
}
|
554 |
+
|
555 |
+
return { left: left, top: top };
|
556 |
+
};
|
557 |
+
|
558 |
+
var attachmentToOffset = function attachmentToOffset(attachment) {
|
559 |
+
var left = attachment.left;
|
560 |
+
var top = attachment.top;
|
561 |
+
|
562 |
+
if (typeof OFFSET_MAP[attachment.left] !== 'undefined') {
|
563 |
+
left = OFFSET_MAP[attachment.left];
|
564 |
+
}
|
565 |
+
|
566 |
+
if (typeof OFFSET_MAP[attachment.top] !== 'undefined') {
|
567 |
+
top = OFFSET_MAP[attachment.top];
|
568 |
+
}
|
569 |
+
|
570 |
+
return { left: left, top: top };
|
571 |
+
};
|
572 |
+
|
573 |
+
function addOffset() {
|
574 |
+
var out = { top: 0, left: 0 };
|
575 |
+
|
576 |
+
for (var _len = arguments.length, offsets = Array(_len), _key = 0; _key < _len; _key++) {
|
577 |
+
offsets[_key] = arguments[_key];
|
578 |
+
}
|
579 |
+
|
580 |
+
offsets.forEach(function (_ref) {
|
581 |
+
var top = _ref.top;
|
582 |
+
var left = _ref.left;
|
583 |
+
|
584 |
+
if (typeof top === 'string') {
|
585 |
+
top = parseFloat(top, 10);
|
586 |
+
}
|
587 |
+
if (typeof left === 'string') {
|
588 |
+
left = parseFloat(left, 10);
|
589 |
+
}
|
590 |
+
|
591 |
+
out.top += top;
|
592 |
+
out.left += left;
|
593 |
+
});
|
594 |
+
|
595 |
+
return out;
|
596 |
+
}
|
597 |
+
|
598 |
+
function offsetToPx(offset, size) {
|
599 |
+
if (typeof offset.left === 'string' && offset.left.indexOf('%') !== -1) {
|
600 |
+
offset.left = parseFloat(offset.left, 10) / 100 * size.width;
|
601 |
+
}
|
602 |
+
if (typeof offset.top === 'string' && offset.top.indexOf('%') !== -1) {
|
603 |
+
offset.top = parseFloat(offset.top, 10) / 100 * size.height;
|
604 |
+
}
|
605 |
+
|
606 |
+
return offset;
|
607 |
+
}
|
608 |
+
|
609 |
+
var parseOffset = function parseOffset(value) {
|
610 |
+
var _value$split = value.split(' ');
|
611 |
+
|
612 |
+
var _value$split2 = _slicedToArray(_value$split, 2);
|
613 |
+
|
614 |
+
var top = _value$split2[0];
|
615 |
+
var left = _value$split2[1];
|
616 |
+
|
617 |
+
return { top: top, left: left };
|
618 |
+
};
|
619 |
+
var parseAttachment = parseOffset;
|
620 |
+
|
621 |
+
var TetherClass = (function (_Evented) {
|
622 |
+
_inherits(TetherClass, _Evented);
|
623 |
+
|
624 |
+
function TetherClass(options) {
|
625 |
+
var _this = this;
|
626 |
+
|
627 |
+
_classCallCheck(this, TetherClass);
|
628 |
+
|
629 |
+
_get(Object.getPrototypeOf(TetherClass.prototype), 'constructor', this).call(this);
|
630 |
+
this.position = this.position.bind(this);
|
631 |
+
|
632 |
+
tethers.push(this);
|
633 |
+
|
634 |
+
this.history = [];
|
635 |
+
|
636 |
+
this.setOptions(options, false);
|
637 |
+
|
638 |
+
TetherBase.modules.forEach(function (module) {
|
639 |
+
if (typeof module.initialize !== 'undefined') {
|
640 |
+
module.initialize.call(_this);
|
641 |
+
}
|
642 |
+
});
|
643 |
+
|
644 |
+
this.position();
|
645 |
+
}
|
646 |
+
|
647 |
+
_createClass(TetherClass, [{
|
648 |
+
key: 'getClass',
|
649 |
+
value: function getClass() {
|
650 |
+
var key = arguments.length <= 0 || arguments[0] === undefined ? '' : arguments[0];
|
651 |
+
var classes = this.options.classes;
|
652 |
+
|
653 |
+
if (typeof classes !== 'undefined' && classes[key]) {
|
654 |
+
return this.options.classes[key];
|
655 |
+
} else if (this.options.classPrefix) {
|
656 |
+
return this.options.classPrefix + '-' + key;
|
657 |
+
} else {
|
658 |
+
return key;
|
659 |
+
}
|
660 |
+
}
|
661 |
+
}, {
|
662 |
+
key: 'setOptions',
|
663 |
+
value: function setOptions(options) {
|
664 |
+
var _this2 = this;
|
665 |
+
|
666 |
+
var pos = arguments.length <= 1 || arguments[1] === undefined ? true : arguments[1];
|
667 |
+
|
668 |
+
var defaults = {
|
669 |
+
offset: '0 0',
|
670 |
+
targetOffset: '0 0',
|
671 |
+
targetAttachment: 'auto auto',
|
672 |
+
classPrefix: 'tether'
|
673 |
+
};
|
674 |
+
|
675 |
+
this.options = extend(defaults, options);
|
676 |
+
|
677 |
+
var _options = this.options;
|
678 |
+
var element = _options.element;
|
679 |
+
var target = _options.target;
|
680 |
+
var targetModifier = _options.targetModifier;
|
681 |
+
|
682 |
+
this.element = element;
|
683 |
+
this.target = target;
|
684 |
+
this.targetModifier = targetModifier;
|
685 |
+
|
686 |
+
if (this.target === 'viewport') {
|
687 |
+
this.target = document.body;
|
688 |
+
this.targetModifier = 'visible';
|
689 |
+
} else if (this.target === 'scroll-handle') {
|
690 |
+
this.target = document.body;
|
691 |
+
this.targetModifier = 'scroll-handle';
|
692 |
+
}
|
693 |
+
|
694 |
+
['element', 'target'].forEach(function (key) {
|
695 |
+
if (typeof _this2[key] === 'undefined') {
|
696 |
+
throw new Error('Tether Error: Both element and target must be defined');
|
697 |
+
}
|
698 |
+
|
699 |
+
if (typeof _this2[key].jquery !== 'undefined') {
|
700 |
+
_this2[key] = _this2[key][0];
|
701 |
+
} else if (typeof _this2[key] === 'string') {
|
702 |
+
_this2[key] = document.querySelector(_this2[key]);
|
703 |
+
}
|
704 |
+
});
|
705 |
+
|
706 |
+
addClass(this.element, this.getClass('element'));
|
707 |
+
if (!(this.options.addTargetClasses === false)) {
|
708 |
+
addClass(this.target, this.getClass('target'));
|
709 |
+
}
|
710 |
+
|
711 |
+
if (!this.options.attachment) {
|
712 |
+
throw new Error('Tether Error: You must provide an attachment');
|
713 |
+
}
|
714 |
+
|
715 |
+
this.targetAttachment = parseAttachment(this.options.targetAttachment);
|
716 |
+
this.attachment = parseAttachment(this.options.attachment);
|
717 |
+
this.offset = parseOffset(this.options.offset);
|
718 |
+
this.targetOffset = parseOffset(this.options.targetOffset);
|
719 |
+
|
720 |
+
if (typeof this.scrollParents !== 'undefined') {
|
721 |
+
this.disable();
|
722 |
+
}
|
723 |
+
|
724 |
+
if (this.targetModifier === 'scroll-handle') {
|
725 |
+
this.scrollParents = [this.target];
|
726 |
+
} else {
|
727 |
+
this.scrollParents = getScrollParents(this.target);
|
728 |
+
}
|
729 |
+
|
730 |
+
if (!(this.options.enabled === false)) {
|
731 |
+
this.enable(pos);
|
732 |
+
}
|
733 |
+
}
|
734 |
+
}, {
|
735 |
+
key: 'getTargetBounds',
|
736 |
+
value: function getTargetBounds() {
|
737 |
+
if (typeof this.targetModifier !== 'undefined') {
|
738 |
+
if (this.targetModifier === 'visible') {
|
739 |
+
if (this.target === document.body) {
|
740 |
+
return { top: pageYOffset, left: pageXOffset, height: innerHeight, width: innerWidth };
|
741 |
+
} else {
|
742 |
+
var bounds = getBounds(this.target);
|
743 |
+
|
744 |
+
var out = {
|
745 |
+
height: bounds.height,
|
746 |
+
width: bounds.width,
|
747 |
+
top: bounds.top,
|
748 |
+
left: bounds.left
|
749 |
+
};
|
750 |
+
|
751 |
+
out.height = Math.min(out.height, bounds.height - (pageYOffset - bounds.top));
|
752 |
+
out.height = Math.min(out.height, bounds.height - (bounds.top + bounds.height - (pageYOffset + innerHeight)));
|
753 |
+
out.height = Math.min(innerHeight, out.height);
|
754 |
+
out.height -= 2;
|
755 |
+
|
756 |
+
out.width = Math.min(out.width, bounds.width - (pageXOffset - bounds.left));
|
757 |
+
out.width = Math.min(out.width, bounds.width - (bounds.left + bounds.width - (pageXOffset + innerWidth)));
|
758 |
+
out.width = Math.min(innerWidth, out.width);
|
759 |
+
out.width -= 2;
|
760 |
+
|
761 |
+
if (out.top < pageYOffset) {
|
762 |
+
out.top = pageYOffset;
|
763 |
+
}
|
764 |
+
if (out.left < pageXOffset) {
|
765 |
+
out.left = pageXOffset;
|
766 |
+
}
|
767 |
+
|
768 |
+
return out;
|
769 |
+
}
|
770 |
+
} else if (this.targetModifier === 'scroll-handle') {
|
771 |
+
var bounds = undefined;
|
772 |
+
var target = this.target;
|
773 |
+
if (target === document.body) {
|
774 |
+
target = document.documentElement;
|
775 |
+
|
776 |
+
bounds = {
|
777 |
+
left: pageXOffset,
|
778 |
+
top: pageYOffset,
|
779 |
+
height: innerHeight,
|
780 |
+
width: innerWidth
|
781 |
+
};
|
782 |
+
} else {
|
783 |
+
bounds = getBounds(target);
|
784 |
+
}
|
785 |
+
|
786 |
+
var style = getComputedStyle(target);
|
787 |
+
|
788 |
+
var hasBottomScroll = target.scrollWidth > target.clientWidth || [style.overflow, style.overflowX].indexOf('scroll') >= 0 || this.target !== document.body;
|
789 |
+
|
790 |
+
var scrollBottom = 0;
|
791 |
+
if (hasBottomScroll) {
|
792 |
+
scrollBottom = 15;
|
793 |
+
}
|
794 |
+
|
795 |
+
var height = bounds.height - parseFloat(style.borderTopWidth) - parseFloat(style.borderBottomWidth) - scrollBottom;
|
796 |
+
|
797 |
+
var out = {
|
798 |
+
width: 15,
|
799 |
+
height: height * 0.975 * (height / target.scrollHeight),
|
800 |
+
left: bounds.left + bounds.width - parseFloat(style.borderLeftWidth) - 15
|
801 |
+
};
|
802 |
+
|
803 |
+
var fitAdj = 0;
|
804 |
+
if (height < 408 && this.target === document.body) {
|
805 |
+
fitAdj = -0.00011 * Math.pow(height, 2) - 0.00727 * height + 22.58;
|
806 |
+
}
|
807 |
+
|
808 |
+
if (this.target !== document.body) {
|
809 |
+
out.height = Math.max(out.height, 24);
|
810 |
+
}
|
811 |
+
|
812 |
+
var scrollPercentage = this.target.scrollTop / (target.scrollHeight - height);
|
813 |
+
out.top = scrollPercentage * (height - out.height - fitAdj) + bounds.top + parseFloat(style.borderTopWidth);
|
814 |
+
|
815 |
+
if (this.target === document.body) {
|
816 |
+
out.height = Math.max(out.height, 24);
|
817 |
+
}
|
818 |
+
|
819 |
+
return out;
|
820 |
+
}
|
821 |
+
} else {
|
822 |
+
return getBounds(this.target);
|
823 |
+
}
|
824 |
+
}
|
825 |
+
}, {
|
826 |
+
key: 'clearCache',
|
827 |
+
value: function clearCache() {
|
828 |
+
this._cache = {};
|
829 |
+
}
|
830 |
+
}, {
|
831 |
+
key: 'cache',
|
832 |
+
value: function cache(k, getter) {
|
833 |
+
// More than one module will often need the same DOM info, so
|
834 |
+
// we keep a cache which is cleared on each position call
|
835 |
+
if (typeof this._cache === 'undefined') {
|
836 |
+
this._cache = {};
|
837 |
+
}
|
838 |
+
|
839 |
+
if (typeof this._cache[k] === 'undefined') {
|
840 |
+
this._cache[k] = getter.call(this);
|
841 |
+
}
|
842 |
+
|
843 |
+
return this._cache[k];
|
844 |
+
}
|
845 |
+
}, {
|
846 |
+
key: 'enable',
|
847 |
+
value: function enable() {
|
848 |
+
var _this3 = this;
|
849 |
+
|
850 |
+
var pos = arguments.length <= 0 || arguments[0] === undefined ? true : arguments[0];
|
851 |
+
|
852 |
+
if (!(this.options.addTargetClasses === false)) {
|
853 |
+
addClass(this.target, this.getClass('enabled'));
|
854 |
+
}
|
855 |
+
addClass(this.element, this.getClass('enabled'));
|
856 |
+
this.enabled = true;
|
857 |
+
|
858 |
+
this.scrollParents.forEach(function (parent) {
|
859 |
+
if (parent !== _this3.target.ownerDocument) {
|
860 |
+
parent.addEventListener('scroll', _this3.position);
|
861 |
+
}
|
862 |
+
});
|
863 |
+
|
864 |
+
if (pos) {
|
865 |
+
this.position();
|
866 |
+
}
|
867 |
+
}
|
868 |
+
}, {
|
869 |
+
key: 'disable',
|
870 |
+
value: function disable() {
|
871 |
+
var _this4 = this;
|
872 |
+
|
873 |
+
removeClass(this.target, this.getClass('enabled'));
|
874 |
+
removeClass(this.element, this.getClass('enabled'));
|
875 |
+
this.enabled = false;
|
876 |
+
|
877 |
+
if (typeof this.scrollParents !== 'undefined') {
|
878 |
+
this.scrollParents.forEach(function (parent) {
|
879 |
+
parent.removeEventListener('scroll', _this4.position);
|
880 |
+
});
|
881 |
+
}
|
882 |
+
}
|
883 |
+
}, {
|
884 |
+
key: 'destroy',
|
885 |
+
value: function destroy() {
|
886 |
+
var _this5 = this;
|
887 |
+
|
888 |
+
this.disable();
|
889 |
+
|
890 |
+
tethers.forEach(function (tether, i) {
|
891 |
+
if (tether === _this5) {
|
892 |
+
tethers.splice(i, 1);
|
893 |
+
}
|
894 |
+
});
|
895 |
+
|
896 |
+
// Remove any elements we were using for convenience from the DOM
|
897 |
+
if (tethers.length === 0) {
|
898 |
+
removeUtilElements();
|
899 |
+
}
|
900 |
+
}
|
901 |
+
}, {
|
902 |
+
key: 'updateAttachClasses',
|
903 |
+
value: function updateAttachClasses(elementAttach, targetAttach) {
|
904 |
+
var _this6 = this;
|
905 |
+
|
906 |
+
elementAttach = elementAttach || this.attachment;
|
907 |
+
targetAttach = targetAttach || this.targetAttachment;
|
908 |
+
var sides = ['left', 'top', 'bottom', 'right', 'middle', 'center'];
|
909 |
+
|
910 |
+
if (typeof this._addAttachClasses !== 'undefined' && this._addAttachClasses.length) {
|
911 |
+
// updateAttachClasses can be called more than once in a position call, so
|
912 |
+
// we need to clean up after ourselves such that when the last defer gets
|
913 |
+
// ran it doesn't add any extra classes from previous calls.
|
914 |
+
this._addAttachClasses.splice(0, this._addAttachClasses.length);
|
915 |
+
}
|
916 |
+
|
917 |
+
if (typeof this._addAttachClasses === 'undefined') {
|
918 |
+
this._addAttachClasses = [];
|
919 |
+
}
|
920 |
+
var add = this._addAttachClasses;
|
921 |
+
|
922 |
+
if (elementAttach.top) {
|
923 |
+
add.push(this.getClass('element-attached') + '-' + elementAttach.top);
|
924 |
+
}
|
925 |
+
if (elementAttach.left) {
|
926 |
+
add.push(this.getClass('element-attached') + '-' + elementAttach.left);
|
927 |
+
}
|
928 |
+
if (targetAttach.top) {
|
929 |
+
add.push(this.getClass('target-attached') + '-' + targetAttach.top);
|
930 |
+
}
|
931 |
+
if (targetAttach.left) {
|
932 |
+
add.push(this.getClass('target-attached') + '-' + targetAttach.left);
|
933 |
+
}
|
934 |
+
|
935 |
+
var all = [];
|
936 |
+
sides.forEach(function (side) {
|
937 |
+
all.push(_this6.getClass('element-attached') + '-' + side);
|
938 |
+
all.push(_this6.getClass('target-attached') + '-' + side);
|
939 |
+
});
|
940 |
+
|
941 |
+
defer(function () {
|
942 |
+
if (!(typeof _this6._addAttachClasses !== 'undefined')) {
|
943 |
+
return;
|
944 |
+
}
|
945 |
+
|
946 |
+
updateClasses(_this6.element, _this6._addAttachClasses, all);
|
947 |
+
if (!(_this6.options.addTargetClasses === false)) {
|
948 |
+
updateClasses(_this6.target, _this6._addAttachClasses, all);
|
949 |
+
}
|
950 |
+
|
951 |
+
delete _this6._addAttachClasses;
|
952 |
+
});
|
953 |
+
}
|
954 |
+
}, {
|
955 |
+
key: 'position',
|
956 |
+
value: function position() {
|
957 |
+
var _this7 = this;
|
958 |
+
|
959 |
+
var flushChanges = arguments.length <= 0 || arguments[0] === undefined ? true : arguments[0];
|
960 |
+
|
961 |
+
// flushChanges commits the changes immediately, leave true unless you are positioning multiple
|
962 |
+
// tethers (in which case call Tether.Utils.flush yourself when you're done)
|
963 |
+
|
964 |
+
if (!this.enabled) {
|
965 |
+
return;
|
966 |
+
}
|
967 |
+
|
968 |
+
this.clearCache();
|
969 |
+
|
970 |
+
// Turn 'auto' attachments into the appropriate corner or edge
|
971 |
+
var targetAttachment = autoToFixedAttachment(this.targetAttachment, this.attachment);
|
972 |
+
|
973 |
+
this.updateAttachClasses(this.attachment, targetAttachment);
|
974 |
+
|
975 |
+
var elementPos = this.cache('element-bounds', function () {
|
976 |
+
return getBounds(_this7.element);
|
977 |
+
});
|
978 |
+
|
979 |
+
var width = elementPos.width;
|
980 |
+
var height = elementPos.height;
|
981 |
+
|
982 |
+
if (width === 0 && height === 0 && typeof this.lastSize !== 'undefined') {
|
983 |
+
var _lastSize = this.lastSize;
|
984 |
+
|
985 |
+
// We cache the height and width to make it possible to position elements that are
|
986 |
+
// getting hidden.
|
987 |
+
width = _lastSize.width;
|
988 |
+
height = _lastSize.height;
|
989 |
+
} else {
|
990 |
+
this.lastSize = { width: width, height: height };
|
991 |
+
}
|
992 |
+
|
993 |
+
var targetPos = this.cache('target-bounds', function () {
|
994 |
+
return _this7.getTargetBounds();
|
995 |
+
});
|
996 |
+
var targetSize = targetPos;
|
997 |
+
|
998 |
+
// Get an actual px offset from the attachment
|
999 |
+
var offset = offsetToPx(attachmentToOffset(this.attachment), { width: width, height: height });
|
1000 |
+
var targetOffset = offsetToPx(attachmentToOffset(targetAttachment), targetSize);
|
1001 |
+
|
1002 |
+
var manualOffset = offsetToPx(this.offset, { width: width, height: height });
|
1003 |
+
var manualTargetOffset = offsetToPx(this.targetOffset, targetSize);
|
1004 |
+
|
1005 |
+
// Add the manually provided offset
|
1006 |
+
offset = addOffset(offset, manualOffset);
|
1007 |
+
targetOffset = addOffset(targetOffset, manualTargetOffset);
|
1008 |
+
|
1009 |
+
// It's now our goal to make (element position + offset) == (target position + target offset)
|
1010 |
+
var left = targetPos.left + targetOffset.left - offset.left;
|
1011 |
+
var top = targetPos.top + targetOffset.top - offset.top;
|
1012 |
+
|
1013 |
+
for (var i = 0; i < TetherBase.modules.length; ++i) {
|
1014 |
+
var _module2 = TetherBase.modules[i];
|
1015 |
+
var ret = _module2.position.call(this, {
|
1016 |
+
left: left,
|
1017 |
+
top: top,
|
1018 |
+
targetAttachment: targetAttachment,
|
1019 |
+
targetPos: targetPos,
|
1020 |
+
elementPos: elementPos,
|
1021 |
+
offset: offset,
|
1022 |
+
targetOffset: targetOffset,
|
1023 |
+
manualOffset: manualOffset,
|
1024 |
+
manualTargetOffset: manualTargetOffset,
|
1025 |
+
scrollbarSize: scrollbarSize,
|
1026 |
+
attachment: this.attachment
|
1027 |
+
});
|
1028 |
+
|
1029 |
+
if (ret === false) {
|
1030 |
+
return false;
|
1031 |
+
} else if (typeof ret === 'undefined' || typeof ret !== 'object') {
|
1032 |
+
continue;
|
1033 |
+
} else {
|
1034 |
+
top = ret.top;
|
1035 |
+
left = ret.left;
|
1036 |
+
}
|
1037 |
+
}
|
1038 |
+
|
1039 |
+
// We describe the position three different ways to give the optimizer
|
1040 |
+
// a chance to decide the best possible way to position the element
|
1041 |
+
// with the fewest repaints.
|
1042 |
+
var next = {
|
1043 |
+
// It's position relative to the page (absolute positioning when
|
1044 |
+
// the element is a child of the body)
|
1045 |
+
page: {
|
1046 |
+
top: top,
|
1047 |
+
left: left
|
1048 |
+
},
|
1049 |
+
|
1050 |
+
// It's position relative to the viewport (fixed positioning)
|
1051 |
+
viewport: {
|
1052 |
+
top: top - pageYOffset,
|
1053 |
+
bottom: pageYOffset - top - height + innerHeight,
|
1054 |
+
left: left - pageXOffset,
|
1055 |
+
right: pageXOffset - left - width + innerWidth
|
1056 |
+
}
|
1057 |
+
};
|
1058 |
+
|
1059 |
+
var doc = this.target.ownerDocument;
|
1060 |
+
var win = doc.defaultView;
|
1061 |
+
|
1062 |
+
var scrollbarSize = undefined;
|
1063 |
+
if (win.innerHeight > doc.documentElement.clientHeight) {
|
1064 |
+
scrollbarSize = this.cache('scrollbar-size', getScrollBarSize);
|
1065 |
+
next.viewport.bottom -= scrollbarSize.height;
|
1066 |
+
}
|
1067 |
+
|
1068 |
+
if (win.innerWidth > doc.documentElement.clientWidth) {
|
1069 |
+
scrollbarSize = this.cache('scrollbar-size', getScrollBarSize);
|
1070 |
+
next.viewport.right -= scrollbarSize.width;
|
1071 |
+
}
|
1072 |
+
|
1073 |
+
if (['', 'static'].indexOf(doc.body.style.position) === -1 || ['', 'static'].indexOf(doc.body.parentElement.style.position) === -1) {
|
1074 |
+
// Absolute positioning in the body will be relative to the page, not the 'initial containing block'
|
1075 |
+
next.page.bottom = doc.body.scrollHeight - top - height;
|
1076 |
+
next.page.right = doc.body.scrollWidth - left - width;
|
1077 |
+
}
|
1078 |
+
|
1079 |
+
if (typeof this.options.optimizations !== 'undefined' && this.options.optimizations.moveElement !== false && !(typeof this.targetModifier !== 'undefined')) {
|
1080 |
+
(function () {
|
1081 |
+
var offsetParent = _this7.cache('target-offsetparent', function () {
|
1082 |
+
return getOffsetParent(_this7.target);
|
1083 |
+
});
|
1084 |
+
var offsetPosition = _this7.cache('target-offsetparent-bounds', function () {
|
1085 |
+
return getBounds(offsetParent);
|
1086 |
+
});
|
1087 |
+
var offsetParentStyle = getComputedStyle(offsetParent);
|
1088 |
+
var offsetParentSize = offsetPosition;
|
1089 |
+
|
1090 |
+
var offsetBorder = {};
|
1091 |
+
['Top', 'Left', 'Bottom', 'Right'].forEach(function (side) {
|
1092 |
+
offsetBorder[side.toLowerCase()] = parseFloat(offsetParentStyle['border' + side + 'Width']);
|
1093 |
+
});
|
1094 |
+
|
1095 |
+
offsetPosition.right = doc.body.scrollWidth - offsetPosition.left - offsetParentSize.width + offsetBorder.right;
|
1096 |
+
offsetPosition.bottom = doc.body.scrollHeight - offsetPosition.top - offsetParentSize.height + offsetBorder.bottom;
|
1097 |
+
|
1098 |
+
if (next.page.top >= offsetPosition.top + offsetBorder.top && next.page.bottom >= offsetPosition.bottom) {
|
1099 |
+
if (next.page.left >= offsetPosition.left + offsetBorder.left && next.page.right >= offsetPosition.right) {
|
1100 |
+
// We're within the visible part of the target's scroll parent
|
1101 |
+
var scrollTop = offsetParent.scrollTop;
|
1102 |
+
var scrollLeft = offsetParent.scrollLeft;
|
1103 |
+
|
1104 |
+
// It's position relative to the target's offset parent (absolute positioning when
|
1105 |
+
// the element is moved to be a child of the target's offset parent).
|
1106 |
+
next.offset = {
|
1107 |
+
top: next.page.top - offsetPosition.top + scrollTop - offsetBorder.top,
|
1108 |
+
left: next.page.left - offsetPosition.left + scrollLeft - offsetBorder.left
|
1109 |
+
};
|
1110 |
+
}
|
1111 |
+
}
|
1112 |
+
})();
|
1113 |
+
}
|
1114 |
+
|
1115 |
+
// We could also travel up the DOM and try each containing context, rather than only
|
1116 |
+
// looking at the body, but we're gonna get diminishing returns.
|
1117 |
+
|
1118 |
+
this.move(next);
|
1119 |
+
|
1120 |
+
this.history.unshift(next);
|
1121 |
+
|
1122 |
+
if (this.history.length > 3) {
|
1123 |
+
this.history.pop();
|
1124 |
+
}
|
1125 |
+
|
1126 |
+
if (flushChanges) {
|
1127 |
+
flush();
|
1128 |
+
}
|
1129 |
+
|
1130 |
+
return true;
|
1131 |
+
}
|
1132 |
+
|
1133 |
+
// THE ISSUE
|
1134 |
+
}, {
|
1135 |
+
key: 'move',
|
1136 |
+
value: function move(pos) {
|
1137 |
+
var _this8 = this;
|
1138 |
+
|
1139 |
+
if (!(typeof this.element.parentNode !== 'undefined')) {
|
1140 |
+
return;
|
1141 |
+
}
|
1142 |
+
|
1143 |
+
var same = {};
|
1144 |
+
|
1145 |
+
for (var type in pos) {
|
1146 |
+
same[type] = {};
|
1147 |
+
|
1148 |
+
for (var key in pos[type]) {
|
1149 |
+
var found = false;
|
1150 |
+
|
1151 |
+
for (var i = 0; i < this.history.length; ++i) {
|
1152 |
+
var point = this.history[i];
|
1153 |
+
if (typeof point[type] !== 'undefined' && !within(point[type][key], pos[type][key])) {
|
1154 |
+
found = true;
|
1155 |
+
break;
|
1156 |
+
}
|
1157 |
+
}
|
1158 |
+
|
1159 |
+
if (!found) {
|
1160 |
+
same[type][key] = true;
|
1161 |
+
}
|
1162 |
+
}
|
1163 |
+
}
|
1164 |
+
|
1165 |
+
var css = { top: '', left: '', right: '', bottom: '' };
|
1166 |
+
|
1167 |
+
var transcribe = function transcribe(_same, _pos) {
|
1168 |
+
var hasOptimizations = typeof _this8.options.optimizations !== 'undefined';
|
1169 |
+
var gpu = hasOptimizations ? _this8.options.optimizations.gpu : null;
|
1170 |
+
if (gpu !== false) {
|
1171 |
+
var yPos = undefined,
|
1172 |
+
xPos = undefined;
|
1173 |
+
if (_same.top) {
|
1174 |
+
css.top = 0;
|
1175 |
+
yPos = _pos.top;
|
1176 |
+
} else {
|
1177 |
+
css.bottom = 0;
|
1178 |
+
yPos = -_pos.bottom;
|
1179 |
+
}
|
1180 |
+
|
1181 |
+
if (_same.left) {
|
1182 |
+
css.left = 0;
|
1183 |
+
xPos = _pos.left;
|
1184 |
+
} else {
|
1185 |
+
css.right = 0;
|
1186 |
+
xPos = -_pos.right;
|
1187 |
+
}
|
1188 |
+
|
1189 |
+
if (window.matchMedia) {
|
1190 |
+
// HubSpot/tether#207
|
1191 |
+
var retina = window.matchMedia('only screen and (min-resolution: 1.3dppx)').matches || window.matchMedia('only screen and (-webkit-min-device-pixel-ratio: 1.3)').matches;
|
1192 |
+
if (!retina) {
|
1193 |
+
xPos = Math.round(xPos);
|
1194 |
+
yPos = Math.round(yPos);
|
1195 |
+
}
|
1196 |
+
}
|
1197 |
+
|
1198 |
+
css[transformKey] = 'translateX(' + xPos + 'px) translateY(' + yPos + 'px)';
|
1199 |
+
|
1200 |
+
if (transformKey !== 'msTransform') {
|
1201 |
+
// The Z transform will keep this in the GPU (faster, and prevents artifacts),
|
1202 |
+
// but IE9 doesn't support 3d transforms and will choke.
|
1203 |
+
css[transformKey] += " translateZ(0)";
|
1204 |
+
}
|
1205 |
+
} else {
|
1206 |
+
if (_same.top) {
|
1207 |
+
css.top = _pos.top + 'px';
|
1208 |
+
} else {
|
1209 |
+
css.bottom = _pos.bottom + 'px';
|
1210 |
+
}
|
1211 |
+
|
1212 |
+
if (_same.left) {
|
1213 |
+
css.left = _pos.left + 'px';
|
1214 |
+
} else {
|
1215 |
+
css.right = _pos.right + 'px';
|
1216 |
+
}
|
1217 |
+
}
|
1218 |
+
};
|
1219 |
+
|
1220 |
+
var moved = false;
|
1221 |
+
if ((same.page.top || same.page.bottom) && (same.page.left || same.page.right)) {
|
1222 |
+
css.position = 'absolute';
|
1223 |
+
transcribe(same.page, pos.page);
|
1224 |
+
} else if ((same.viewport.top || same.viewport.bottom) && (same.viewport.left || same.viewport.right)) {
|
1225 |
+
css.position = 'fixed';
|
1226 |
+
transcribe(same.viewport, pos.viewport);
|
1227 |
+
} else if (typeof same.offset !== 'undefined' && same.offset.top && same.offset.left) {
|
1228 |
+
(function () {
|
1229 |
+
css.position = 'absolute';
|
1230 |
+
var offsetParent = _this8.cache('target-offsetparent', function () {
|
1231 |
+
return getOffsetParent(_this8.target);
|
1232 |
+
});
|
1233 |
+
|
1234 |
+
if (getOffsetParent(_this8.element) !== offsetParent) {
|
1235 |
+
defer(function () {
|
1236 |
+
_this8.element.parentNode.removeChild(_this8.element);
|
1237 |
+
offsetParent.appendChild(_this8.element);
|
1238 |
+
});
|
1239 |
+
}
|
1240 |
+
|
1241 |
+
transcribe(same.offset, pos.offset);
|
1242 |
+
moved = true;
|
1243 |
+
})();
|
1244 |
+
} else {
|
1245 |
+
css.position = 'absolute';
|
1246 |
+
transcribe({ top: true, left: true }, pos.page);
|
1247 |
+
}
|
1248 |
+
|
1249 |
+
if (!moved) {
|
1250 |
+
if (this.options.bodyElement) {
|
1251 |
+
this.options.bodyElement.appendChild(this.element);
|
1252 |
+
} else {
|
1253 |
+
var offsetParentIsBody = true;
|
1254 |
+
var currentNode = this.element.parentNode;
|
1255 |
+
while (currentNode && currentNode.nodeType === 1 && currentNode.tagName !== 'BODY') {
|
1256 |
+
if (getComputedStyle(currentNode).position !== 'static') {
|
1257 |
+
offsetParentIsBody = false;
|
1258 |
+
break;
|
1259 |
+
}
|
1260 |
+
|
1261 |
+
currentNode = currentNode.parentNode;
|
1262 |
+
}
|
1263 |
+
|
1264 |
+
if (!offsetParentIsBody) {
|
1265 |
+
this.element.parentNode.removeChild(this.element);
|
1266 |
+
this.element.ownerDocument.body.appendChild(this.element);
|
1267 |
+
}
|
1268 |
+
}
|
1269 |
+
}
|
1270 |
+
|
1271 |
+
// Any css change will trigger a repaint, so let's avoid one if nothing changed
|
1272 |
+
var writeCSS = {};
|
1273 |
+
var write = false;
|
1274 |
+
for (var key in css) {
|
1275 |
+
var val = css[key];
|
1276 |
+
var elVal = this.element.style[key];
|
1277 |
+
|
1278 |
+
if (elVal !== val) {
|
1279 |
+
write = true;
|
1280 |
+
writeCSS[key] = val;
|
1281 |
+
}
|
1282 |
+
}
|
1283 |
+
|
1284 |
+
if (write) {
|
1285 |
+
defer(function () {
|
1286 |
+
extend(_this8.element.style, writeCSS);
|
1287 |
+
_this8.trigger('repositioned');
|
1288 |
+
});
|
1289 |
+
}
|
1290 |
+
}
|
1291 |
+
}]);
|
1292 |
+
|
1293 |
+
return TetherClass;
|
1294 |
+
})(Evented);
|
1295 |
+
|
1296 |
+
TetherClass.modules = [];
|
1297 |
+
|
1298 |
+
TetherBase.position = position;
|
1299 |
+
|
1300 |
+
var Tether = extend(TetherClass, TetherBase);
|
1301 |
+
/* globals TetherBase */
|
1302 |
+
|
1303 |
+
'use strict';
|
1304 |
+
|
1305 |
+
var _slicedToArray = (function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i['return']) _i['return'](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError('Invalid attempt to destructure non-iterable instance'); } }; })();
|
1306 |
+
|
1307 |
+
var _TetherBase$Utils = TetherBase.Utils;
|
1308 |
+
var getBounds = _TetherBase$Utils.getBounds;
|
1309 |
+
var extend = _TetherBase$Utils.extend;
|
1310 |
+
var updateClasses = _TetherBase$Utils.updateClasses;
|
1311 |
+
var defer = _TetherBase$Utils.defer;
|
1312 |
+
|
1313 |
+
var BOUNDS_FORMAT = ['left', 'top', 'right', 'bottom'];
|
1314 |
+
|
1315 |
+
function getBoundingRect(tether, to) {
|
1316 |
+
if (to === 'scrollParent') {
|
1317 |
+
to = tether.scrollParents[0];
|
1318 |
+
} else if (to === 'window') {
|
1319 |
+
to = [pageXOffset, pageYOffset, innerWidth + pageXOffset, innerHeight + pageYOffset];
|
1320 |
+
}
|
1321 |
+
|
1322 |
+
if (to === document) {
|
1323 |
+
to = to.documentElement;
|
1324 |
+
}
|
1325 |
+
|
1326 |
+
if (typeof to.nodeType !== 'undefined') {
|
1327 |
+
(function () {
|
1328 |
+
var node = to;
|
1329 |
+
var size = getBounds(to);
|
1330 |
+
var pos = size;
|
1331 |
+
var style = getComputedStyle(to);
|
1332 |
+
|
1333 |
+
to = [pos.left, pos.top, size.width + pos.left, size.height + pos.top];
|
1334 |
+
|
1335 |
+
// Account any parent Frames scroll offset
|
1336 |
+
if (node.ownerDocument !== document) {
|
1337 |
+
var win = node.ownerDocument.defaultView;
|
1338 |
+
to[0] += win.pageXOffset;
|
1339 |
+
to[1] += win.pageYOffset;
|
1340 |
+
to[2] += win.pageXOffset;
|
1341 |
+
to[3] += win.pageYOffset;
|
1342 |
+
}
|
1343 |
+
|
1344 |
+
BOUNDS_FORMAT.forEach(function (side, i) {
|
1345 |
+
side = side[0].toUpperCase() + side.substr(1);
|
1346 |
+
if (side === 'Top' || side === 'Left') {
|
1347 |
+
to[i] += parseFloat(style['border' + side + 'Width']);
|
1348 |
+
} else {
|
1349 |
+
to[i] -= parseFloat(style['border' + side + 'Width']);
|
1350 |
+
}
|
1351 |
+
});
|
1352 |
+
})();
|
1353 |
+
}
|
1354 |
+
|
1355 |
+
return to;
|
1356 |
+
}
|
1357 |
+
|
1358 |
+
TetherBase.modules.push({
|
1359 |
+
position: function position(_ref) {
|
1360 |
+
var _this = this;
|
1361 |
+
|
1362 |
+
var top = _ref.top;
|
1363 |
+
var left = _ref.left;
|
1364 |
+
var targetAttachment = _ref.targetAttachment;
|
1365 |
+
|
1366 |
+
if (!this.options.constraints) {
|
1367 |
+
return true;
|
1368 |
+
}
|
1369 |
+
|
1370 |
+
var _cache = this.cache('element-bounds', function () {
|
1371 |
+
return getBounds(_this.element);
|
1372 |
+
});
|
1373 |
+
|
1374 |
+
var height = _cache.height;
|
1375 |
+
var width = _cache.width;
|
1376 |
+
|
1377 |
+
if (width === 0 && height === 0 && typeof this.lastSize !== 'undefined') {
|
1378 |
+
var _lastSize = this.lastSize;
|
1379 |
+
|
1380 |
+
// Handle the item getting hidden as a result of our positioning without glitching
|
1381 |
+
// the classes in and out
|
1382 |
+
width = _lastSize.width;
|
1383 |
+
height = _lastSize.height;
|
1384 |
+
}
|
1385 |
+
|
1386 |
+
var targetSize = this.cache('target-bounds', function () {
|
1387 |
+
return _this.getTargetBounds();
|
1388 |
+
});
|
1389 |
+
|
1390 |
+
var targetHeight = targetSize.height;
|
1391 |
+
var targetWidth = targetSize.width;
|
1392 |
+
|
1393 |
+
var allClasses = [this.getClass('pinned'), this.getClass('out-of-bounds')];
|
1394 |
+
|
1395 |
+
this.options.constraints.forEach(function (constraint) {
|
1396 |
+
var outOfBoundsClass = constraint.outOfBoundsClass;
|
1397 |
+
var pinnedClass = constraint.pinnedClass;
|
1398 |
+
|
1399 |
+
if (outOfBoundsClass) {
|
1400 |
+
allClasses.push(outOfBoundsClass);
|
1401 |
+
}
|
1402 |
+
if (pinnedClass) {
|
1403 |
+
allClasses.push(pinnedClass);
|
1404 |
+
}
|
1405 |
+
});
|
1406 |
+
|
1407 |
+
allClasses.forEach(function (cls) {
|
1408 |
+
['left', 'top', 'right', 'bottom'].forEach(function (side) {
|
1409 |
+
allClasses.push(cls + '-' + side);
|
1410 |
+
});
|
1411 |
+
});
|
1412 |
+
|
1413 |
+
var addClasses = [];
|
1414 |
+
|
1415 |
+
var tAttachment = extend({}, targetAttachment);
|
1416 |
+
var eAttachment = extend({}, this.attachment);
|
1417 |
+
|
1418 |
+
this.options.constraints.forEach(function (constraint) {
|
1419 |
+
var to = constraint.to;
|
1420 |
+
var attachment = constraint.attachment;
|
1421 |
+
var pin = constraint.pin;
|
1422 |
+
|
1423 |
+
if (typeof attachment === 'undefined') {
|
1424 |
+
attachment = '';
|
1425 |
+
}
|
1426 |
+
|
1427 |
+
var changeAttachX = undefined,
|
1428 |
+
changeAttachY = undefined;
|
1429 |
+
if (attachment.indexOf(' ') >= 0) {
|
1430 |
+
var _attachment$split = attachment.split(' ');
|
1431 |
+
|
1432 |
+
var _attachment$split2 = _slicedToArray(_attachment$split, 2);
|
1433 |
+
|
1434 |
+
changeAttachY = _attachment$split2[0];
|
1435 |
+
changeAttachX = _attachment$split2[1];
|
1436 |
+
} else {
|
1437 |
+
changeAttachX = changeAttachY = attachment;
|
1438 |
+
}
|
1439 |
+
|
1440 |
+
var bounds = getBoundingRect(_this, to);
|
1441 |
+
|
1442 |
+
if (changeAttachY === 'target' || changeAttachY === 'both') {
|
1443 |
+
if (top < bounds[1] && tAttachment.top === 'top') {
|
1444 |
+
top += targetHeight;
|
1445 |
+
tAttachment.top = 'bottom';
|
1446 |
+
}
|
1447 |
+
|
1448 |
+
if (top + height > bounds[3] && tAttachment.top === 'bottom') {
|
1449 |
+
top -= targetHeight;
|
1450 |
+
tAttachment.top = 'top';
|
1451 |
+
}
|
1452 |
+
}
|
1453 |
+
|
1454 |
+
if (changeAttachY === 'together') {
|
1455 |
+
if (tAttachment.top === 'top') {
|
1456 |
+
if (eAttachment.top === 'bottom' && top < bounds[1]) {
|
1457 |
+
top += targetHeight;
|
1458 |
+
tAttachment.top = 'bottom';
|
1459 |
+
|
1460 |
+
top += height;
|
1461 |
+
eAttachment.top = 'top';
|
1462 |
+
} else if (eAttachment.top === 'top' && top + height > bounds[3] && top - (height - targetHeight) >= bounds[1]) {
|
1463 |
+
top -= height - targetHeight;
|
1464 |
+
tAttachment.top = 'bottom';
|
1465 |
+
|
1466 |
+
eAttachment.top = 'bottom';
|
1467 |
+
}
|
1468 |
+
}
|
1469 |
+
|
1470 |
+
if (tAttachment.top === 'bottom') {
|
1471 |
+
if (eAttachment.top === 'top' && top + height > bounds[3]) {
|
1472 |
+
top -= targetHeight;
|
1473 |
+
tAttachment.top = 'top';
|
1474 |
+
|
1475 |
+
top -= height;
|
1476 |
+
eAttachment.top = 'bottom';
|
1477 |
+
} else if (eAttachment.top === 'bottom' && top < bounds[1] && top + (height * 2 - targetHeight) <= bounds[3]) {
|
1478 |
+
top += height - targetHeight;
|
1479 |
+
tAttachment.top = 'top';
|
1480 |
+
|
1481 |
+
eAttachment.top = 'top';
|
1482 |
+
}
|
1483 |
+
}
|
1484 |
+
|
1485 |
+
if (tAttachment.top === 'middle') {
|
1486 |
+
if (top + height > bounds[3] && eAttachment.top === 'top') {
|
1487 |
+
top -= height;
|
1488 |
+
eAttachment.top = 'bottom';
|
1489 |
+
} else if (top < bounds[1] && eAttachment.top === 'bottom') {
|
1490 |
+
top += height;
|
1491 |
+
eAttachment.top = 'top';
|
1492 |
+
}
|
1493 |
+
}
|
1494 |
+
}
|
1495 |
+
|
1496 |
+
if (changeAttachX === 'target' || changeAttachX === 'both') {
|
1497 |
+
if (left < bounds[0] && tAttachment.left === 'left') {
|
1498 |
+
left += targetWidth;
|
1499 |
+
tAttachment.left = 'right';
|
1500 |
+
}
|
1501 |
+
|
1502 |
+
if (left + width > bounds[2] && tAttachment.left === 'right') {
|
1503 |
+
left -= targetWidth;
|
1504 |
+
tAttachment.left = 'left';
|
1505 |
+
}
|
1506 |
+
}
|
1507 |
+
|
1508 |
+
if (changeAttachX === 'together') {
|
1509 |
+
if (left < bounds[0] && tAttachment.left === 'left') {
|
1510 |
+
if (eAttachment.left === 'right') {
|
1511 |
+
left += targetWidth;
|
1512 |
+
tAttachment.left = 'right';
|
1513 |
+
|
1514 |
+
left += width;
|
1515 |
+
eAttachment.left = 'left';
|
1516 |
+
} else if (eAttachment.left === 'left') {
|
1517 |
+
left += targetWidth;
|
1518 |
+
tAttachment.left = 'right';
|
1519 |
+
|
1520 |
+
left -= width;
|
1521 |
+
eAttachment.left = 'right';
|
1522 |
+
}
|
1523 |
+
} else if (left + width > bounds[2] && tAttachment.left === 'right') {
|
1524 |
+
if (eAttachment.left === 'left') {
|
1525 |
+
left -= targetWidth;
|
1526 |
+
tAttachment.left = 'left';
|
1527 |
+
|
1528 |
+
left -= width;
|
1529 |
+
eAttachment.left = 'right';
|
1530 |
+
} else if (eAttachment.left === 'right') {
|
1531 |
+
left -= targetWidth;
|
1532 |
+
tAttachment.left = 'left';
|
1533 |
+
|
1534 |
+
left += width;
|
1535 |
+
eAttachment.left = 'left';
|
1536 |
+
}
|
1537 |
+
} else if (tAttachment.left === 'center') {
|
1538 |
+
if (left + width > bounds[2] && eAttachment.left === 'left') {
|
1539 |
+
left -= width;
|
1540 |
+
eAttachment.left = 'right';
|
1541 |
+
} else if (left < bounds[0] && eAttachment.left === 'right') {
|
1542 |
+
left += width;
|
1543 |
+
eAttachment.left = 'left';
|
1544 |
+
}
|
1545 |
+
}
|
1546 |
+
}
|
1547 |
+
|
1548 |
+
if (changeAttachY === 'element' || changeAttachY === 'both') {
|
1549 |
+
if (top < bounds[1] && eAttachment.top === 'bottom') {
|
1550 |
+
top += height;
|
1551 |
+
eAttachment.top = 'top';
|
1552 |
+
}
|
1553 |
+
|
1554 |
+
if (top + height > bounds[3] && eAttachment.top === 'top') {
|
1555 |
+
top -= height;
|
1556 |
+
eAttachment.top = 'bottom';
|
1557 |
+
}
|
1558 |
+
}
|
1559 |
+
|
1560 |
+
if (changeAttachX === 'element' || changeAttachX === 'both') {
|
1561 |
+
if (left < bounds[0]) {
|
1562 |
+
if (eAttachment.left === 'right') {
|
1563 |
+
left += width;
|
1564 |
+
eAttachment.left = 'left';
|
1565 |
+
} else if (eAttachment.left === 'center') {
|
1566 |
+
left += width / 2;
|
1567 |
+
eAttachment.left = 'left';
|
1568 |
+
}
|
1569 |
+
}
|
1570 |
+
|
1571 |
+
if (left + width > bounds[2]) {
|
1572 |
+
if (eAttachment.left === 'left') {
|
1573 |
+
left -= width;
|
1574 |
+
eAttachment.left = 'right';
|
1575 |
+
} else if (eAttachment.left === 'center') {
|
1576 |
+
left -= width / 2;
|
1577 |
+
eAttachment.left = 'right';
|
1578 |
+
}
|
1579 |
+
}
|
1580 |
+
}
|
1581 |
+
|
1582 |
+
if (typeof pin === 'string') {
|
1583 |
+
pin = pin.split(',').map(function (p) {
|
1584 |
+
return p.trim();
|
1585 |
+
});
|
1586 |
+
} else if (pin === true) {
|
1587 |
+
pin = ['top', 'left', 'right', 'bottom'];
|
1588 |
+
}
|
1589 |
+
|
1590 |
+
pin = pin || [];
|
1591 |
+
|
1592 |
+
var pinned = [];
|
1593 |
+
var oob = [];
|
1594 |
+
|
1595 |
+
if (top < bounds[1]) {
|
1596 |
+
if (pin.indexOf('top') >= 0) {
|
1597 |
+
top = bounds[1];
|
1598 |
+
pinned.push('top');
|
1599 |
+
} else {
|
1600 |
+
oob.push('top');
|
1601 |
+
}
|
1602 |
+
}
|
1603 |
+
|
1604 |
+
if (top + height > bounds[3]) {
|
1605 |
+
if (pin.indexOf('bottom') >= 0) {
|
1606 |
+
top = bounds[3] - height;
|
1607 |
+
pinned.push('bottom');
|
1608 |
+
} else {
|
1609 |
+
oob.push('bottom');
|
1610 |
+
}
|
1611 |
+
}
|
1612 |
+
|
1613 |
+
if (left < bounds[0]) {
|
1614 |
+
if (pin.indexOf('left') >= 0) {
|
1615 |
+
left = bounds[0];
|
1616 |
+
pinned.push('left');
|
1617 |
+
} else {
|
1618 |
+
oob.push('left');
|
1619 |
+
}
|
1620 |
+
}
|
1621 |
+
|
1622 |
+
if (left + width > bounds[2]) {
|
1623 |
+
if (pin.indexOf('right') >= 0) {
|
1624 |
+
left = bounds[2] - width;
|
1625 |
+
pinned.push('right');
|
1626 |
+
} else {
|
1627 |
+
oob.push('right');
|
1628 |
+
}
|
1629 |
+
}
|
1630 |
+
|
1631 |
+
if (pinned.length) {
|
1632 |
+
(function () {
|
1633 |
+
var pinnedClass = undefined;
|
1634 |
+
if (typeof _this.options.pinnedClass !== 'undefined') {
|
1635 |
+
pinnedClass = _this.options.pinnedClass;
|
1636 |
+
} else {
|
1637 |
+
pinnedClass = _this.getClass('pinned');
|
1638 |
+
}
|
1639 |
+
|
1640 |
+
addClasses.push(pinnedClass);
|
1641 |
+
pinned.forEach(function (side) {
|
1642 |
+
addClasses.push(pinnedClass + '-' + side);
|
1643 |
+
});
|
1644 |
+
})();
|
1645 |
+
}
|
1646 |
+
|
1647 |
+
if (oob.length) {
|
1648 |
+
(function () {
|
1649 |
+
var oobClass = undefined;
|
1650 |
+
if (typeof _this.options.outOfBoundsClass !== 'undefined') {
|
1651 |
+
oobClass = _this.options.outOfBoundsClass;
|
1652 |
+
} else {
|
1653 |
+
oobClass = _this.getClass('out-of-bounds');
|
1654 |
+
}
|
1655 |
+
|
1656 |
+
addClasses.push(oobClass);
|
1657 |
+
oob.forEach(function (side) {
|
1658 |
+
addClasses.push(oobClass + '-' + side);
|
1659 |
+
});
|
1660 |
+
})();
|
1661 |
+
}
|
1662 |
+
|
1663 |
+
if (pinned.indexOf('left') >= 0 || pinned.indexOf('right') >= 0) {
|
1664 |
+
eAttachment.left = tAttachment.left = false;
|
1665 |
+
}
|
1666 |
+
if (pinned.indexOf('top') >= 0 || pinned.indexOf('bottom') >= 0) {
|
1667 |
+
eAttachment.top = tAttachment.top = false;
|
1668 |
+
}
|
1669 |
+
|
1670 |
+
if (tAttachment.top !== targetAttachment.top || tAttachment.left !== targetAttachment.left || eAttachment.top !== _this.attachment.top || eAttachment.left !== _this.attachment.left) {
|
1671 |
+
_this.updateAttachClasses(eAttachment, tAttachment);
|
1672 |
+
_this.trigger('update', {
|
1673 |
+
attachment: eAttachment,
|
1674 |
+
targetAttachment: tAttachment
|
1675 |
+
});
|
1676 |
+
}
|
1677 |
+
});
|
1678 |
+
|
1679 |
+
defer(function () {
|
1680 |
+
if (!(_this.options.addTargetClasses === false)) {
|
1681 |
+
updateClasses(_this.target, addClasses, allClasses);
|
1682 |
+
}
|
1683 |
+
updateClasses(_this.element, addClasses, allClasses);
|
1684 |
+
});
|
1685 |
+
|
1686 |
+
return { top: top, left: left };
|
1687 |
+
}
|
1688 |
+
});
|
1689 |
+
/* globals TetherBase */
|
1690 |
+
|
1691 |
+
'use strict';
|
1692 |
+
|
1693 |
+
var _TetherBase$Utils = TetherBase.Utils;
|
1694 |
+
var getBounds = _TetherBase$Utils.getBounds;
|
1695 |
+
var updateClasses = _TetherBase$Utils.updateClasses;
|
1696 |
+
var defer = _TetherBase$Utils.defer;
|
1697 |
+
|
1698 |
+
TetherBase.modules.push({
|
1699 |
+
position: function position(_ref) {
|
1700 |
+
var _this = this;
|
1701 |
+
|
1702 |
+
var top = _ref.top;
|
1703 |
+
var left = _ref.left;
|
1704 |
+
|
1705 |
+
var _cache = this.cache('element-bounds', function () {
|
1706 |
+
return getBounds(_this.element);
|
1707 |
+
});
|
1708 |
+
|
1709 |
+
var height = _cache.height;
|
1710 |
+
var width = _cache.width;
|
1711 |
+
|
1712 |
+
var targetPos = this.getTargetBounds();
|
1713 |
+
|
1714 |
+
var bottom = top + height;
|
1715 |
+
var right = left + width;
|
1716 |
+
|
1717 |
+
var abutted = [];
|
1718 |
+
if (top <= targetPos.bottom && bottom >= targetPos.top) {
|
1719 |
+
['left', 'right'].forEach(function (side) {
|
1720 |
+
var targetPosSide = targetPos[side];
|
1721 |
+
if (targetPosSide === left || targetPosSide === right) {
|
1722 |
+
abutted.push(side);
|
1723 |
+
}
|
1724 |
+
});
|
1725 |
+
}
|
1726 |
+
|
1727 |
+
if (left <= targetPos.right && right >= targetPos.left) {
|
1728 |
+
['top', 'bottom'].forEach(function (side) {
|
1729 |
+
var targetPosSide = targetPos[side];
|
1730 |
+
if (targetPosSide === top || targetPosSide === bottom) {
|
1731 |
+
abutted.push(side);
|
1732 |
+
}
|
1733 |
+
});
|
1734 |
+
}
|
1735 |
+
|
1736 |
+
var allClasses = [];
|
1737 |
+
var addClasses = [];
|
1738 |
+
|
1739 |
+
var sides = ['left', 'top', 'right', 'bottom'];
|
1740 |
+
allClasses.push(this.getClass('abutted'));
|
1741 |
+
sides.forEach(function (side) {
|
1742 |
+
allClasses.push(_this.getClass('abutted') + '-' + side);
|
1743 |
+
});
|
1744 |
+
|
1745 |
+
if (abutted.length) {
|
1746 |
+
addClasses.push(this.getClass('abutted'));
|
1747 |
+
}
|
1748 |
+
|
1749 |
+
abutted.forEach(function (side) {
|
1750 |
+
addClasses.push(_this.getClass('abutted') + '-' + side);
|
1751 |
+
});
|
1752 |
+
|
1753 |
+
defer(function () {
|
1754 |
+
if (!(_this.options.addTargetClasses === false)) {
|
1755 |
+
updateClasses(_this.target, addClasses, allClasses);
|
1756 |
+
}
|
1757 |
+
updateClasses(_this.element, addClasses, allClasses);
|
1758 |
+
});
|
1759 |
+
|
1760 |
+
return true;
|
1761 |
+
}
|
1762 |
+
});
|
1763 |
+
/* globals TetherBase */
|
1764 |
+
|
1765 |
+
'use strict';
|
1766 |
+
|
1767 |
+
var _slicedToArray = (function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i['return']) _i['return'](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError('Invalid attempt to destructure non-iterable instance'); } }; })();
|
1768 |
+
|
1769 |
+
TetherBase.modules.push({
|
1770 |
+
position: function position(_ref) {
|
1771 |
+
var top = _ref.top;
|
1772 |
+
var left = _ref.left;
|
1773 |
+
|
1774 |
+
if (!this.options.shift) {
|
1775 |
+
return;
|
1776 |
+
}
|
1777 |
+
|
1778 |
+
var shift = this.options.shift;
|
1779 |
+
if (typeof this.options.shift === 'function') {
|
1780 |
+
shift = this.options.shift.call(this, { top: top, left: left });
|
1781 |
+
}
|
1782 |
+
|
1783 |
+
var shiftTop = undefined,
|
1784 |
+
shiftLeft = undefined;
|
1785 |
+
if (typeof shift === 'string') {
|
1786 |
+
shift = shift.split(' ');
|
1787 |
+
shift[1] = shift[1] || shift[0];
|
1788 |
+
|
1789 |
+
var _shift = shift;
|
1790 |
+
|
1791 |
+
var _shift2 = _slicedToArray(_shift, 2);
|
1792 |
+
|
1793 |
+
shiftTop = _shift2[0];
|
1794 |
+
shiftLeft = _shift2[1];
|
1795 |
+
|
1796 |
+
shiftTop = parseFloat(shiftTop, 10);
|
1797 |
+
shiftLeft = parseFloat(shiftLeft, 10);
|
1798 |
+
} else {
|
1799 |
+
shiftTop = shift.top;
|
1800 |
+
shiftLeft = shift.left;
|
1801 |
+
}
|
1802 |
+
|
1803 |
+
top += shiftTop;
|
1804 |
+
left += shiftLeft;
|
1805 |
+
|
1806 |
+
return { top: top, left: left };
|
1807 |
+
}
|
1808 |
+
});
|
1809 |
+
return Tether;
|
1810 |
+
|
1811 |
+
}));
|
admin/assets/tether/tether.min.js
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
!function(t,e){"function"==typeof define&&define.amd?define(e):"object"==typeof exports?module.exports=e(require,exports,module):t.Tether=e()}(this,function(t,e,o){"use strict";function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function n(t){var e=t.getBoundingClientRect(),o={};for(var i in e)o[i]=e[i];if(t.ownerDocument!==document){var r=t.ownerDocument.defaultView.frameElement;if(r){var s=n(r);o.top+=s.top,o.bottom+=s.top,o.left+=s.left,o.right+=s.left}}return o}function r(t){var e=getComputedStyle(t)||{},o=e.position,i=[];if("fixed"===o)return[t];for(var n=t;(n=n.parentNode)&&n&&1===n.nodeType;){var r=void 0;try{r=getComputedStyle(n)}catch(s){}if("undefined"==typeof r||null===r)return i.push(n),i;var a=r,f=a.overflow,l=a.overflowX,h=a.overflowY;/(auto|scroll)/.test(f+h+l)&&("absolute"!==o||["relative","absolute","fixed"].indexOf(r.position)>=0)&&i.push(n)}return i.push(t.ownerDocument.body),t.ownerDocument!==document&&i.push(t.ownerDocument.defaultView),i}function s(){A&&document.body.removeChild(A),A=null}function a(t){var e=void 0;t===document?(e=document,t=document.documentElement):e=t.ownerDocument;var o=e.documentElement,i=n(t),r=P();return i.top-=r.top,i.left-=r.left,"undefined"==typeof i.width&&(i.width=document.body.scrollWidth-i.left-i.right),"undefined"==typeof i.height&&(i.height=document.body.scrollHeight-i.top-i.bottom),i.top=i.top-o.clientTop,i.left=i.left-o.clientLeft,i.right=e.body.clientWidth-i.width-i.left,i.bottom=e.body.clientHeight-i.height-i.top,i}function f(t){return t.offsetParent||document.documentElement}function l(){if(M)return M;var t=document.createElement("div");t.style.width="100%",t.style.height="200px";var e=document.createElement("div");h(e.style,{position:"absolute",top:0,left:0,pointerEvents:"none",visibility:"hidden",width:"200px",height:"150px",overflow:"hidden"}),e.appendChild(t),document.body.appendChild(e);var o=t.offsetWidth;e.style.overflow="scroll";var i=t.offsetWidth;o===i&&(i=e.clientWidth),document.body.removeChild(e);var n=o-i;return M={width:n,height:n}}function h(){var t=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],e=[];return Array.prototype.push.apply(e,arguments),e.slice(1).forEach(function(e){if(e)for(var o in e)({}).hasOwnProperty.call(e,o)&&(t[o]=e[o])}),t}function d(t,e){if("undefined"!=typeof t.classList)e.split(" ").forEach(function(e){e.trim()&&t.classList.remove(e)});else{var o=new RegExp("(^| )"+e.split(" ").join("|")+"( |$)","gi"),i=c(t).replace(o," ");g(t,i)}}function p(t,e){if("undefined"!=typeof t.classList)e.split(" ").forEach(function(e){e.trim()&&t.classList.add(e)});else{d(t,e);var o=c(t)+(" "+e);g(t,o)}}function u(t,e){if("undefined"!=typeof t.classList)return t.classList.contains(e);var o=c(t);return new RegExp("(^| )"+e+"( |$)","gi").test(o)}function c(t){return t.className instanceof t.ownerDocument.defaultView.SVGAnimatedString?t.className.baseVal:t.className}function g(t,e){t.setAttribute("class",e)}function m(t,e,o){o.forEach(function(o){e.indexOf(o)===-1&&u(t,o)&&d(t,o)}),e.forEach(function(e){u(t,e)||p(t,e)})}function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function v(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}function y(t,e){var o=arguments.length<=2||void 0===arguments[2]?1:arguments[2];return t+o>=e&&e>=t-o}function b(){return"undefined"!=typeof performance&&"undefined"!=typeof performance.now?performance.now():+new Date}function w(){for(var t={top:0,left:0},e=arguments.length,o=Array(e),i=0;i<e;i++)o[i]=arguments[i];return o.forEach(function(e){var o=e.top,i=e.left;"string"==typeof o&&(o=parseFloat(o,10)),"string"==typeof i&&(i=parseFloat(i,10)),t.top+=o,t.left+=i}),t}function C(t,e){return"string"==typeof t.left&&t.left.indexOf("%")!==-1&&(t.left=parseFloat(t.left,10)/100*e.width),"string"==typeof t.top&&t.top.indexOf("%")!==-1&&(t.top=parseFloat(t.top,10)/100*e.height),t}function O(t,e){return"scrollParent"===e?e=t.scrollParents[0]:"window"===e&&(e=[pageXOffset,pageYOffset,innerWidth+pageXOffset,innerHeight+pageYOffset]),e===document&&(e=e.documentElement),"undefined"!=typeof e.nodeType&&!function(){var t=e,o=a(e),i=o,n=getComputedStyle(e);if(e=[i.left,i.top,o.width+i.left,o.height+i.top],t.ownerDocument!==document){var r=t.ownerDocument.defaultView;e[0]+=r.pageXOffset,e[1]+=r.pageYOffset,e[2]+=r.pageXOffset,e[3]+=r.pageYOffset}G.forEach(function(t,o){t=t[0].toUpperCase()+t.substr(1),"Top"===t||"Left"===t?e[o]+=parseFloat(n["border"+t+"Width"]):e[o]-=parseFloat(n["border"+t+"Width"])})}(),e}var E=function(){function t(t,e){for(var o=0;o<e.length;o++){var i=e[o];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}return function(e,o,i){return o&&t(e.prototype,o),i&&t(e,i),e}}(),x=void 0;"undefined"==typeof x&&(x={modules:[]});var A=null,T=function(){var t=0;return function(){return++t}}(),S={},P=function(){var t=A;t&&document.body.contains(t)||(t=document.createElement("div"),t.setAttribute("data-tether-id",T()),h(t.style,{top:0,left:0,position:"absolute"}),document.body.appendChild(t),A=t);var e=t.getAttribute("data-tether-id");return"undefined"==typeof S[e]&&(S[e]=n(t),k(function(){delete S[e]})),S[e]},M=null,W=[],k=function(t){W.push(t)},_=function(){for(var t=void 0;t=W.pop();)t()},B=function(){function t(){i(this,t)}return E(t,[{key:"on",value:function(t,e,o){var i=!(arguments.length<=3||void 0===arguments[3])&&arguments[3];"undefined"==typeof this.bindings&&(this.bindings={}),"undefined"==typeof this.bindings[t]&&(this.bindings[t]=[]),this.bindings[t].push({handler:e,ctx:o,once:i})}},{key:"once",value:function(t,e,o){this.on(t,e,o,!0)}},{key:"off",value:function(t,e){if("undefined"!=typeof this.bindings&&"undefined"!=typeof this.bindings[t])if("undefined"==typeof e)delete this.bindings[t];else for(var o=0;o<this.bindings[t].length;)this.bindings[t][o].handler===e?this.bindings[t].splice(o,1):++o}},{key:"trigger",value:function(t){if("undefined"!=typeof this.bindings&&this.bindings[t]){for(var e=0,o=arguments.length,i=Array(o>1?o-1:0),n=1;n<o;n++)i[n-1]=arguments[n];for(;e<this.bindings[t].length;){var r=this.bindings[t][e],s=r.handler,a=r.ctx,f=r.once,l=a;"undefined"==typeof l&&(l=this),s.apply(l,i),f?this.bindings[t].splice(e,1):++e}}}}]),t}();x.Utils={getActualBoundingClientRect:n,getScrollParents:r,getBounds:a,getOffsetParent:f,extend:h,addClass:p,removeClass:d,hasClass:u,updateClasses:m,defer:k,flush:_,uniqueId:T,Evented:B,getScrollBarSize:l,removeUtilElements:s};var z=function(){function t(t,e){var o=[],i=!0,n=!1,r=void 0;try{for(var s,a=t[Symbol.iterator]();!(i=(s=a.next()).done)&&(o.push(s.value),!e||o.length!==e);i=!0);}catch(f){n=!0,r=f}finally{try{!i&&a["return"]&&a["return"]()}finally{if(n)throw r}}return o}return function(e,o){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return t(e,o);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),E=function(){function t(t,e){for(var o=0;o<e.length;o++){var i=e[o];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}return function(e,o,i){return o&&t(e.prototype,o),i&&t(e,i),e}}(),j=function(t,e,o){for(var i=!0;i;){var n=t,r=e,s=o;i=!1,null===n&&(n=Function.prototype);var a=Object.getOwnPropertyDescriptor(n,r);if(void 0!==a){if("value"in a)return a.value;var f=a.get;if(void 0===f)return;return f.call(s)}var l=Object.getPrototypeOf(n);if(null===l)return;t=l,e=r,o=s,i=!0,a=l=void 0}};if("undefined"==typeof x)throw new Error("You must include the utils.js file before tether.js");var Y=x.Utils,r=Y.getScrollParents,a=Y.getBounds,f=Y.getOffsetParent,h=Y.extend,p=Y.addClass,d=Y.removeClass,m=Y.updateClasses,k=Y.defer,_=Y.flush,l=Y.getScrollBarSize,s=Y.removeUtilElements,L=function(){if("undefined"==typeof document)return"";for(var t=document.createElement("div"),e=["transform","WebkitTransform","OTransform","MozTransform","msTransform"],o=0;o<e.length;++o){var i=e[o];if(void 0!==t.style[i])return i}}(),D=[],X=function(){D.forEach(function(t){t.position(!1)}),_()};!function(){var t=null,e=null,o=null,i=function n(){return"undefined"!=typeof e&&e>16?(e=Math.min(e-16,250),void(o=setTimeout(n,250))):void("undefined"!=typeof t&&b()-t<10||(null!=o&&(clearTimeout(o),o=null),t=b(),X(),e=b()-t))};"undefined"!=typeof window&&"undefined"!=typeof window.addEventListener&&["resize","scroll","touchmove"].forEach(function(t){window.addEventListener(t,i)})}();var F={center:"center",left:"right",right:"left"},H={middle:"middle",top:"bottom",bottom:"top"},N={top:0,left:0,middle:"50%",center:"50%",bottom:"100%",right:"100%"},U=function(t,e){var o=t.left,i=t.top;return"auto"===o&&(o=F[e.left]),"auto"===i&&(i=H[e.top]),{left:o,top:i}},V=function(t){var e=t.left,o=t.top;return"undefined"!=typeof N[t.left]&&(e=N[t.left]),"undefined"!=typeof N[t.top]&&(o=N[t.top]),{left:e,top:o}},R=function(t){var e=t.split(" "),o=z(e,2),i=o[0],n=o[1];return{top:i,left:n}},q=R,I=function(t){function e(t){var o=this;i(this,e),j(Object.getPrototypeOf(e.prototype),"constructor",this).call(this),this.position=this.position.bind(this),D.push(this),this.history=[],this.setOptions(t,!1),x.modules.forEach(function(t){"undefined"!=typeof t.initialize&&t.initialize.call(o)}),this.position()}return v(e,t),E(e,[{key:"getClass",value:function(){var t=arguments.length<=0||void 0===arguments[0]?"":arguments[0],e=this.options.classes;return"undefined"!=typeof e&&e[t]?this.options.classes[t]:this.options.classPrefix?this.options.classPrefix+"-"+t:t}},{key:"setOptions",value:function(t){var e=this,o=arguments.length<=1||void 0===arguments[1]||arguments[1],i={offset:"0 0",targetOffset:"0 0",targetAttachment:"auto auto",classPrefix:"tether"};this.options=h(i,t);var n=this.options,s=n.element,a=n.target,f=n.targetModifier;if(this.element=s,this.target=a,this.targetModifier=f,"viewport"===this.target?(this.target=document.body,this.targetModifier="visible"):"scroll-handle"===this.target&&(this.target=document.body,this.targetModifier="scroll-handle"),["element","target"].forEach(function(t){if("undefined"==typeof e[t])throw new Error("Tether Error: Both element and target must be defined");"undefined"!=typeof e[t].jquery?e[t]=e[t][0]:"string"==typeof e[t]&&(e[t]=document.querySelector(e[t]))}),p(this.element,this.getClass("element")),this.options.addTargetClasses!==!1&&p(this.target,this.getClass("target")),!this.options.attachment)throw new Error("Tether Error: You must provide an attachment");this.targetAttachment=q(this.options.targetAttachment),this.attachment=q(this.options.attachment),this.offset=R(this.options.offset),this.targetOffset=R(this.options.targetOffset),"undefined"!=typeof this.scrollParents&&this.disable(),"scroll-handle"===this.targetModifier?this.scrollParents=[this.target]:this.scrollParents=r(this.target),this.options.enabled!==!1&&this.enable(o)}},{key:"getTargetBounds",value:function(){if("undefined"==typeof this.targetModifier)return a(this.target);if("visible"===this.targetModifier){if(this.target===document.body)return{top:pageYOffset,left:pageXOffset,height:innerHeight,width:innerWidth};var t=a(this.target),e={height:t.height,width:t.width,top:t.top,left:t.left};return e.height=Math.min(e.height,t.height-(pageYOffset-t.top)),e.height=Math.min(e.height,t.height-(t.top+t.height-(pageYOffset+innerHeight))),e.height=Math.min(innerHeight,e.height),e.height-=2,e.width=Math.min(e.width,t.width-(pageXOffset-t.left)),e.width=Math.min(e.width,t.width-(t.left+t.width-(pageXOffset+innerWidth))),e.width=Math.min(innerWidth,e.width),e.width-=2,e.top<pageYOffset&&(e.top=pageYOffset),e.left<pageXOffset&&(e.left=pageXOffset),e}if("scroll-handle"===this.targetModifier){var t=void 0,o=this.target;o===document.body?(o=document.documentElement,t={left:pageXOffset,top:pageYOffset,height:innerHeight,width:innerWidth}):t=a(o);var i=getComputedStyle(o),n=o.scrollWidth>o.clientWidth||[i.overflow,i.overflowX].indexOf("scroll")>=0||this.target!==document.body,r=0;n&&(r=15);var s=t.height-parseFloat(i.borderTopWidth)-parseFloat(i.borderBottomWidth)-r,e={width:15,height:.975*s*(s/o.scrollHeight),left:t.left+t.width-parseFloat(i.borderLeftWidth)-15},f=0;s<408&&this.target===document.body&&(f=-11e-5*Math.pow(s,2)-.00727*s+22.58),this.target!==document.body&&(e.height=Math.max(e.height,24));var l=this.target.scrollTop/(o.scrollHeight-s);return e.top=l*(s-e.height-f)+t.top+parseFloat(i.borderTopWidth),this.target===document.body&&(e.height=Math.max(e.height,24)),e}}},{key:"clearCache",value:function(){this._cache={}}},{key:"cache",value:function(t,e){return"undefined"==typeof this._cache&&(this._cache={}),"undefined"==typeof this._cache[t]&&(this._cache[t]=e.call(this)),this._cache[t]}},{key:"enable",value:function(){var t=this,e=arguments.length<=0||void 0===arguments[0]||arguments[0];this.options.addTargetClasses!==!1&&p(this.target,this.getClass("enabled")),p(this.element,this.getClass("enabled")),this.enabled=!0,this.scrollParents.forEach(function(e){e!==t.target.ownerDocument&&e.addEventListener("scroll",t.position)}),e&&this.position()}},{key:"disable",value:function(){var t=this;d(this.target,this.getClass("enabled")),d(this.element,this.getClass("enabled")),this.enabled=!1,"undefined"!=typeof this.scrollParents&&this.scrollParents.forEach(function(e){e.removeEventListener("scroll",t.position)})}},{key:"destroy",value:function(){var t=this;this.disable(),D.forEach(function(e,o){e===t&&D.splice(o,1)}),0===D.length&&s()}},{key:"updateAttachClasses",value:function(t,e){var o=this;t=t||this.attachment,e=e||this.targetAttachment;var i=["left","top","bottom","right","middle","center"];"undefined"!=typeof this._addAttachClasses&&this._addAttachClasses.length&&this._addAttachClasses.splice(0,this._addAttachClasses.length),"undefined"==typeof this._addAttachClasses&&(this._addAttachClasses=[]);var n=this._addAttachClasses;t.top&&n.push(this.getClass("element-attached")+"-"+t.top),t.left&&n.push(this.getClass("element-attached")+"-"+t.left),e.top&&n.push(this.getClass("target-attached")+"-"+e.top),e.left&&n.push(this.getClass("target-attached")+"-"+e.left);var r=[];i.forEach(function(t){r.push(o.getClass("element-attached")+"-"+t),r.push(o.getClass("target-attached")+"-"+t)}),k(function(){"undefined"!=typeof o._addAttachClasses&&(m(o.element,o._addAttachClasses,r),o.options.addTargetClasses!==!1&&m(o.target,o._addAttachClasses,r),delete o._addAttachClasses)})}},{key:"position",value:function(){var t=this,e=arguments.length<=0||void 0===arguments[0]||arguments[0];if(this.enabled){this.clearCache();var o=U(this.targetAttachment,this.attachment);this.updateAttachClasses(this.attachment,o);var i=this.cache("element-bounds",function(){return a(t.element)}),n=i.width,r=i.height;if(0===n&&0===r&&"undefined"!=typeof this.lastSize){var s=this.lastSize;n=s.width,r=s.height}else this.lastSize={width:n,height:r};var h=this.cache("target-bounds",function(){return t.getTargetBounds()}),d=h,p=C(V(this.attachment),{width:n,height:r}),u=C(V(o),d),c=C(this.offset,{width:n,height:r}),g=C(this.targetOffset,d);p=w(p,c),u=w(u,g);for(var m=h.left+u.left-p.left,v=h.top+u.top-p.top,y=0;y<x.modules.length;++y){var b=x.modules[y],O=b.position.call(this,{left:m,top:v,targetAttachment:o,targetPos:h,elementPos:i,offset:p,targetOffset:u,manualOffset:c,manualTargetOffset:g,scrollbarSize:S,attachment:this.attachment});if(O===!1)return!1;"undefined"!=typeof O&&"object"==typeof O&&(v=O.top,m=O.left)}var E={page:{top:v,left:m},viewport:{top:v-pageYOffset,bottom:pageYOffset-v-r+innerHeight,left:m-pageXOffset,right:pageXOffset-m-n+innerWidth}},A=this.target.ownerDocument,T=A.defaultView,S=void 0;return T.innerHeight>A.documentElement.clientHeight&&(S=this.cache("scrollbar-size",l),E.viewport.bottom-=S.height),T.innerWidth>A.documentElement.clientWidth&&(S=this.cache("scrollbar-size",l),E.viewport.right-=S.width),["","static"].indexOf(A.body.style.position)!==-1&&["","static"].indexOf(A.body.parentElement.style.position)!==-1||(E.page.bottom=A.body.scrollHeight-v-r,E.page.right=A.body.scrollWidth-m-n),"undefined"!=typeof this.options.optimizations&&this.options.optimizations.moveElement!==!1&&"undefined"==typeof this.targetModifier&&!function(){var e=t.cache("target-offsetparent",function(){return f(t.target)}),o=t.cache("target-offsetparent-bounds",function(){return a(e)}),i=getComputedStyle(e),n=o,r={};if(["Top","Left","Bottom","Right"].forEach(function(t){r[t.toLowerCase()]=parseFloat(i["border"+t+"Width"])}),o.right=A.body.scrollWidth-o.left-n.width+r.right,o.bottom=A.body.scrollHeight-o.top-n.height+r.bottom,E.page.top>=o.top+r.top&&E.page.bottom>=o.bottom&&E.page.left>=o.left+r.left&&E.page.right>=o.right){var s=e.scrollTop,l=e.scrollLeft;E.offset={top:E.page.top-o.top+s-r.top,left:E.page.left-o.left+l-r.left}}}(),this.move(E),this.history.unshift(E),this.history.length>3&&this.history.pop(),e&&_(),!0}}},{key:"move",value:function(t){var e=this;if("undefined"!=typeof this.element.parentNode){var o={};for(var i in t){o[i]={};for(var n in t[i]){for(var r=!1,s=0;s<this.history.length;++s){var a=this.history[s];if("undefined"!=typeof a[i]&&!y(a[i][n],t[i][n])){r=!0;break}}r||(o[i][n]=!0)}}var l={top:"",left:"",right:"",bottom:""},d=function(t,o){var i="undefined"!=typeof e.options.optimizations,n=i?e.options.optimizations.gpu:null;if(n!==!1){var r=void 0,s=void 0;if(t.top?(l.top=0,r=o.top):(l.bottom=0,r=-o.bottom),t.left?(l.left=0,s=o.left):(l.right=0,s=-o.right),window.matchMedia){var a=window.matchMedia("only screen and (min-resolution: 1.3dppx)").matches||window.matchMedia("only screen and (-webkit-min-device-pixel-ratio: 1.3)").matches;a||(s=Math.round(s),r=Math.round(r))}l[L]="translateX("+s+"px) translateY("+r+"px)","msTransform"!==L&&(l[L]+=" translateZ(0)")}else t.top?l.top=o.top+"px":l.bottom=o.bottom+"px",t.left?l.left=o.left+"px":l.right=o.right+"px"},p=!1;if((o.page.top||o.page.bottom)&&(o.page.left||o.page.right)?(l.position="absolute",d(o.page,t.page)):(o.viewport.top||o.viewport.bottom)&&(o.viewport.left||o.viewport.right)?(l.position="fixed",d(o.viewport,t.viewport)):"undefined"!=typeof o.offset&&o.offset.top&&o.offset.left?!function(){l.position="absolute";var i=e.cache("target-offsetparent",function(){return f(e.target)});f(e.element)!==i&&k(function(){e.element.parentNode.removeChild(e.element),i.appendChild(e.element)}),d(o.offset,t.offset),p=!0}():(l.position="absolute",d({top:!0,left:!0},t.page)),!p)if(this.options.bodyElement)this.options.bodyElement.appendChild(this.element);else{for(var u=!0,c=this.element.parentNode;c&&1===c.nodeType&&"BODY"!==c.tagName;){if("static"!==getComputedStyle(c).position){u=!1;break}c=c.parentNode}u||(this.element.parentNode.removeChild(this.element),this.element.ownerDocument.body.appendChild(this.element))}var g={},m=!1;for(var n in l){var v=l[n],b=this.element.style[n];b!==v&&(m=!0,g[n]=v)}m&&k(function(){h(e.element.style,g),e.trigger("repositioned")})}}}]),e}(B);I.modules=[],x.position=X;var $=h(I,x),z=function(){function t(t,e){var o=[],i=!0,n=!1,r=void 0;try{for(var s,a=t[Symbol.iterator]();!(i=(s=a.next()).done)&&(o.push(s.value),!e||o.length!==e);i=!0);}catch(f){n=!0,r=f}finally{try{!i&&a["return"]&&a["return"]()}finally{if(n)throw r}}return o}return function(e,o){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return t(e,o);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),Y=x.Utils,a=Y.getBounds,h=Y.extend,m=Y.updateClasses,k=Y.defer,G=["left","top","right","bottom"];x.modules.push({position:function(t){var e=this,o=t.top,i=t.left,n=t.targetAttachment;if(!this.options.constraints)return!0;var r=this.cache("element-bounds",function(){return a(e.element)}),s=r.height,f=r.width;if(0===f&&0===s&&"undefined"!=typeof this.lastSize){var l=this.lastSize;f=l.width,s=l.height}var d=this.cache("target-bounds",function(){return e.getTargetBounds()}),p=d.height,u=d.width,c=[this.getClass("pinned"),this.getClass("out-of-bounds")];this.options.constraints.forEach(function(t){var e=t.outOfBoundsClass,o=t.pinnedClass;e&&c.push(e),o&&c.push(o)}),c.forEach(function(t){["left","top","right","bottom"].forEach(function(e){c.push(t+"-"+e)})});var g=[],v=h({},n),y=h({},this.attachment);return this.options.constraints.forEach(function(t){var r=t.to,a=t.attachment,l=t.pin;"undefined"==typeof a&&(a="");var h=void 0,d=void 0;if(a.indexOf(" ")>=0){var c=a.split(" "),m=z(c,2);d=m[0],h=m[1]}else h=d=a;var b=O(e,r);"target"!==d&&"both"!==d||(o<b[1]&&"top"===v.top&&(o+=p,v.top="bottom"),o+s>b[3]&&"bottom"===v.top&&(o-=p,v.top="top")),"together"===d&&("top"===v.top&&("bottom"===y.top&&o<b[1]?(o+=p,v.top="bottom",o+=s,y.top="top"):"top"===y.top&&o+s>b[3]&&o-(s-p)>=b[1]&&(o-=s-p,v.top="bottom",y.top="bottom")),"bottom"===v.top&&("top"===y.top&&o+s>b[3]?(o-=p,v.top="top",o-=s,y.top="bottom"):"bottom"===y.top&&o<b[1]&&o+(2*s-p)<=b[3]&&(o+=s-p,v.top="top",y.top="top")),"middle"===v.top&&(o+s>b[3]&&"top"===y.top?(o-=s,y.top="bottom"):o<b[1]&&"bottom"===y.top&&(o+=s,y.top="top"))),"target"!==h&&"both"!==h||(i<b[0]&&"left"===v.left&&(i+=u,v.left="right"),i+f>b[2]&&"right"===v.left&&(i-=u,v.left="left")),"together"===h&&(i<b[0]&&"left"===v.left?"right"===y.left?(i+=u,v.left="right",i+=f,y.left="left"):"left"===y.left&&(i+=u,v.left="right",i-=f,y.left="right"):i+f>b[2]&&"right"===v.left?"left"===y.left?(i-=u,v.left="left",i-=f,y.left="right"):"right"===y.left&&(i-=u,v.left="left",i+=f,y.left="left"):"center"===v.left&&(i+f>b[2]&&"left"===y.left?(i-=f,y.left="right"):i<b[0]&&"right"===y.left&&(i+=f,y.left="left"))),"element"!==d&&"both"!==d||(o<b[1]&&"bottom"===y.top&&(o+=s,y.top="top"),o+s>b[3]&&"top"===y.top&&(o-=s,y.top="bottom")),"element"!==h&&"both"!==h||(i<b[0]&&("right"===y.left?(i+=f,y.left="left"):"center"===y.left&&(i+=f/2,y.left="left")),i+f>b[2]&&("left"===y.left?(i-=f,y.left="right"):"center"===y.left&&(i-=f/2,y.left="right"))),"string"==typeof l?l=l.split(",").map(function(t){return t.trim()}):l===!0&&(l=["top","left","right","bottom"]),l=l||[];var w=[],C=[];o<b[1]&&(l.indexOf("top")>=0?(o=b[1],w.push("top")):C.push("top")),o+s>b[3]&&(l.indexOf("bottom")>=0?(o=b[3]-s,w.push("bottom")):C.push("bottom")),i<b[0]&&(l.indexOf("left")>=0?(i=b[0],w.push("left")):C.push("left")),i+f>b[2]&&(l.indexOf("right")>=0?(i=b[2]-f,w.push("right")):C.push("right")),w.length&&!function(){var t=void 0;t="undefined"!=typeof e.options.pinnedClass?e.options.pinnedClass:e.getClass("pinned"),g.push(t),w.forEach(function(e){g.push(t+"-"+e)})}(),C.length&&!function(){var t=void 0;t="undefined"!=typeof e.options.outOfBoundsClass?e.options.outOfBoundsClass:e.getClass("out-of-bounds"),g.push(t),C.forEach(function(e){g.push(t+"-"+e)})}(),(w.indexOf("left")>=0||w.indexOf("right")>=0)&&(y.left=v.left=!1),(w.indexOf("top")>=0||w.indexOf("bottom")>=0)&&(y.top=v.top=!1),v.top===n.top&&v.left===n.left&&y.top===e.attachment.top&&y.left===e.attachment.left||(e.updateAttachClasses(y,v),e.trigger("update",{attachment:y,targetAttachment:v}))}),k(function(){e.options.addTargetClasses!==!1&&m(e.target,g,c),m(e.element,g,c)}),{top:o,left:i}}});var Y=x.Utils,a=Y.getBounds,m=Y.updateClasses,k=Y.defer;x.modules.push({position:function(t){var e=this,o=t.top,i=t.left,n=this.cache("element-bounds",function(){return a(e.element)}),r=n.height,s=n.width,f=this.getTargetBounds(),l=o+r,h=i+s,d=[];o<=f.bottom&&l>=f.top&&["left","right"].forEach(function(t){var e=f[t];e!==i&&e!==h||d.push(t)}),i<=f.right&&h>=f.left&&["top","bottom"].forEach(function(t){var e=f[t];e!==o&&e!==l||d.push(t)});var p=[],u=[],c=["left","top","right","bottom"];return p.push(this.getClass("abutted")),c.forEach(function(t){p.push(e.getClass("abutted")+"-"+t)}),d.length&&u.push(this.getClass("abutted")),d.forEach(function(t){u.push(e.getClass("abutted")+"-"+t)}),k(function(){e.options.addTargetClasses!==!1&&m(e.target,u,p),m(e.element,u,p)}),!0}});var z=function(){function t(t,e){var o=[],i=!0,n=!1,r=void 0;try{for(var s,a=t[Symbol.iterator]();!(i=(s=a.next()).done)&&(o.push(s.value),!e||o.length!==e);i=!0);}catch(f){n=!0,r=f}finally{try{!i&&a["return"]&&a["return"]()}finally{if(n)throw r}}return o}return function(e,o){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return t(e,o);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}();return x.modules.push({position:function(t){var e=t.top,o=t.left;if(this.options.shift){var i=this.options.shift;"function"==typeof this.options.shift&&(i=this.options.shift.call(this,{top:e,left:o}));var n=void 0,r=void 0;if("string"==typeof i){i=i.split(" "),i[1]=i[1]||i[0];var s=i,a=z(s,2);n=a[0],r=a[1],n=parseFloat(n,10),r=parseFloat(r,10)}else n=i.top,r=i.left;return e+=n,o+=r,{top:e,left:o}}}}),$});
|
{assets → admin/assets/vendor}/colorbox/colorbox.css
RENAMED
File without changes
|
{assets → admin/assets/vendor}/colorbox/images/border.png
RENAMED
File without changes
|
{assets → admin/assets/vendor}/colorbox/images/controls.png
RENAMED
File without changes
|
{assets → admin/assets/vendor}/colorbox/images/ie6/borderBottomCenter.png
RENAMED
File without changes
|
{assets → admin/assets/vendor}/colorbox/images/ie6/borderBottomLeft.png
RENAMED
File without changes
|
{assets → admin/assets/vendor}/colorbox/images/ie6/borderBottomRight.png
RENAMED
File without changes
|
{assets → admin/assets/vendor}/colorbox/images/ie6/borderMiddleLeft.png
RENAMED
File without changes
|
{assets → admin/assets/vendor}/colorbox/images/ie6/borderMiddleRight.png
RENAMED
File without changes
|
{assets → admin/assets/vendor}/colorbox/images/ie6/borderTopCenter.png
RENAMED
File without changes
|
{assets → admin/assets/vendor}/colorbox/images/ie6/borderTopLeft.png
RENAMED
File without changes
|
{assets → admin/assets/vendor}/colorbox/images/ie6/borderTopRight.png
RENAMED
File without changes
|
{assets → admin/assets/vendor}/colorbox/images/loading.gif
RENAMED
File without changes
|
{assets → admin/assets/vendor}/colorbox/images/loading_background.png
RENAMED
File without changes
|
{assets → admin/assets/vendor}/colorbox/images/overlay.png
RENAMED
File without changes
|
{assets → admin/assets/vendor}/colorbox/jquery.colorbox-min.js
RENAMED
File without changes
|
{assets → admin/assets/vendor}/tipsy/jquery.tipsy.js
RENAMED
File without changes
|
{assets → admin/assets/vendor}/tipsy/tipsy.css
RENAMED
File without changes
|
admin/images/features/auto-optimize.png
ADDED
Binary file
|
admin/images/features/automatic-clean-ups.png
ADDED
Binary file
|
admin/images/features/automatically cleans.png
ADDED
Binary file
|
admin/images/features/choice-n-flexibility.png
ADDED
Binary file
|
admin/images/features/displays-database-table-sta.png
ADDED
Binary file
|
admin/images/features/enables-disables-trackbacks.png
ADDED
Binary file
|
admin/images/features/enhanced-robustness.png
ADDED
Binary file
|
admin/images/features/keyy_logo.png
ADDED
Binary file
|
admin/images/features/logging-n-reporting.png
ADDED
Binary file
|
admin/images/features/metaslider_logo.png
ADDED
Binary file
|
admin/images/features/multisite-support.png
ADDED
Binary file
|
admin/images/features/number_of_weeks.png
ADDED
Binary file
|
admin/images/features/optimize-individual.png
ADDED
Binary file
|
admin/images/features/premium-support.png
ADDED
Binary file
|
admin/images/features/remove-unwanted-img.png
ADDED
Binary file
|
admin/images/features/scheduling.png
ADDED
Binary file
|
admin/images/features/updraftcentral_logo.png
ADDED
Binary file
|
admin/images/features/updraftplus_logo.png
ADDED
Binary file
|
admin/images/features/wpo_logo.png
ADDED
Binary file
|
admin/images/keyy_logo.png
ADDED
Binary file
|
admin/images/metaslider_logo.png
ADDED
Binary file
|
admin/images/metaslider_logo3.png
ADDED
Binary file
|
admin/images/metaslider_logo_large.png
ADDED
Binary file
|
admin/images/notices/keyy_logo.png
ADDED
Binary file
|
admin/images/notices/metaslider_logo.png
ADDED
Binary file
|
admin/images/notices/updraft_logo.png
ADDED
Binary file
|
admin/images/notices/wp_optimize_logo.png
ADDED
Binary file
|
admin/images/seasonal/black_friday.png
ADDED
Binary file
|
admin/images/seasonal/christmas.png
ADDED
Binary file
|
admin/images/seasonal/new_year.png
ADDED
Binary file
|
admin/images/seasonal/spring.png
ADDED
Binary file
|
admin/images/seasonal/summer.png
ADDED
Binary file
|
admin/images/updraft_logo.png
ADDED
Binary file
|
admin/images/wp_optimize_logo.png
ADDED
Binary file
|
admin/lib/Updraft_Notices.php
ADDED
@@ -0,0 +1,212 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
if (!defined('ABSPATH')) die('No direct access allowed');
|
4 |
+
|
5 |
+
/**
|
6 |
+
* If we ever change the API of the Updraft_Notices class, then we'll need to rename and version it, e.g. Updraft_Notices_1_0, because otherwise a plugin may find that it's loaded an older instance than it wanted from another plugin.
|
7 |
+
*/
|
8 |
+
abstract class Updraft_Notices_1_0 {
|
9 |
+
|
10 |
+
protected $notices_content;
|
11 |
+
|
12 |
+
/**
|
13 |
+
* These variables are just short-hands to be used in advert content.
|
14 |
+
*
|
15 |
+
* @var array
|
16 |
+
*/
|
17 |
+
protected $dashboard_top = array('top');
|
18 |
+
|
19 |
+
protected $dashboard_top_or_report = array('top', 'report', 'report-plain');
|
20 |
+
|
21 |
+
protected $dashboard_bottom_or_report = array('bottom', 'report', 'report-plain');
|
22 |
+
|
23 |
+
protected $anywhere = array('top', 'bottom', 'report', 'report-plain');
|
24 |
+
|
25 |
+
protected $autobackup = array('autobackup');
|
26 |
+
|
27 |
+
protected $autobackup_bottom_or_report = array('autobackup', 'bottom', 'report', 'report-plain');
|
28 |
+
|
29 |
+
/**
|
30 |
+
* This method returns any parent notices to the child caller
|
31 |
+
*
|
32 |
+
* @return Array returns an array of notices
|
33 |
+
*/
|
34 |
+
protected function populate_notices_content() {
|
35 |
+
// Global adverts that appear in all products will be returned to the child to display.
|
36 |
+
return array();
|
37 |
+
}
|
38 |
+
|
39 |
+
/**
|
40 |
+
* This method is called to setup the notices
|
41 |
+
*/
|
42 |
+
abstract protected function notices_init();
|
43 |
+
|
44 |
+
/**
|
45 |
+
* This method will check if the specified plugin is installed and if it is will return false otherwise returns true and the notice can be displayed
|
46 |
+
*
|
47 |
+
* @param String $product the plugin name to check
|
48 |
+
* @param boolean $also_require_active a bool value to indicate if the plugin has to be active or not
|
49 |
+
* @return boolean a bool value to indicate if the notice can be displayed or not
|
50 |
+
*/
|
51 |
+
protected function is_plugin_installed($product = null, $also_require_active = false) {
|
52 |
+
if ($also_require_active) return class_exists($product);
|
53 |
+
if (!function_exists('get_plugins')) include_once(ABSPATH.'wp-admin/includes/plugin.php');
|
54 |
+
$plugins = get_plugins();
|
55 |
+
$product_file = false;
|
56 |
+
foreach ($plugins as $key => $value) {
|
57 |
+
if ($value['TextDomain'] == $product) {
|
58 |
+
// We have found the plugin so return false so that we do not display this advert.
|
59 |
+
return false;
|
60 |
+
}
|
61 |
+
}
|
62 |
+
return true;
|
63 |
+
}
|
64 |
+
|
65 |
+
/**
|
66 |
+
* This method will work out if the user is using a non english language and if so returns true so that they can see the translation advert.
|
67 |
+
*
|
68 |
+
* @param String $plugin_base_dir the plugin base directory
|
69 |
+
* @param String $product_name the name of the plugin
|
70 |
+
* @return Boolean returns true if the user is using a non english language and could translate otherwise false
|
71 |
+
*/
|
72 |
+
protected function translation_needed($plugin_base_dir, $product_name) {
|
73 |
+
$wplang = get_locale();
|
74 |
+
if (strlen($wplang) < 1 || 'en_US' == $wplang || 'en_GB' == $wplang) return false;
|
75 |
+
if (defined('WP_LANG_DIR') && is_file(WP_LANG_DIR.'/plugins/'.$product_name.'-'.$wplang.'.mo')) return false;
|
76 |
+
if (is_file($plugin_base_dir.'/languages/'.$product_name.'-'.$wplang.'.mo')) return false;
|
77 |
+
return true;
|
78 |
+
}
|
79 |
+
|
80 |
+
/**
|
81 |
+
* This method is used to generate the correct URL output for the start of the URL
|
82 |
+
*
|
83 |
+
* @param Boolean $html_allowed a boolean value to indicate if HTML can be used or not
|
84 |
+
* @param String $url the url to use
|
85 |
+
* @param Boolean $https a boolean value to indicate if https should be used or not
|
86 |
+
* @param String $website_home a string to be displayed
|
87 |
+
* @return String returns a string of the completed url
|
88 |
+
*/
|
89 |
+
protected function url_start($html_allowed = false, $url, $https = false, $website_home = null) {
|
90 |
+
$proto = ($https) ? 'https' : 'http';
|
91 |
+
if (strpos($url, $website_home) !== false) {
|
92 |
+
return (($html_allowed) ? "<a href=".apply_filters(str_replace('.', '_', $website_home).'_link', $proto.'://'.$url).">" : "");
|
93 |
+
} else {
|
94 |
+
return (($html_allowed) ? '<a href="'.$proto.'://'.$url.'">' : "");
|
95 |
+
}
|
96 |
+
}
|
97 |
+
/**
|
98 |
+
* This method is used to generate the correct URL output for the end of the URL
|
99 |
+
*
|
100 |
+
* @param Boolean $html_allowed a boolean value to indicate if HTML can be used or not
|
101 |
+
* @param String $url the url to use
|
102 |
+
* @param Boolean $https a boolean value to indicate if https should be used or not
|
103 |
+
* @param String $website_home a string to be displayed
|
104 |
+
* @return String returns a string of the completed url
|
105 |
+
*/
|
106 |
+
protected function url_end($html_allowed, $url, $https = false) {
|
107 |
+
$proto = (($https) ? 'https' : 'http');
|
108 |
+
return (($html_allowed) ? '</a>' : " (".$proto."://".$url.")");
|
109 |
+
}
|
110 |
+
|
111 |
+
/**
|
112 |
+
* This method prepares the notice for display
|
113 |
+
*
|
114 |
+
* @param Boolean|String $notice the notice to display or false if we want a random one
|
115 |
+
* @param string $position the position to display the notice in
|
116 |
+
* @param boolean $return_instead_of_echo a bool to indicate if the notice should be returned or printed
|
117 |
+
* @return String a notice to display
|
118 |
+
*/
|
119 |
+
public function do_notice($notice = false, $position = 'top', $return_instead_of_echo = false) {
|
120 |
+
|
121 |
+
$this->notices_init();
|
122 |
+
|
123 |
+
if (false === $notice) $notice = apply_filters('updraft_notices_force_id', false, $this);
|
124 |
+
|
125 |
+
$notice_content = $this->get_notice_data($notice, $position);
|
126 |
+
|
127 |
+
if (false != $notice_content) {
|
128 |
+
return $this->render_specified_notice($notice_content, $return_instead_of_echo, $position);
|
129 |
+
}
|
130 |
+
}
|
131 |
+
|
132 |
+
/**
|
133 |
+
* This method will return a notice ready for display.
|
134 |
+
*
|
135 |
+
* @param boolean $notice Sends True or False if there are notices to show.
|
136 |
+
* @param string $position Which screen position the notice is.
|
137 |
+
* @return array Returns Notice data.
|
138 |
+
*/
|
139 |
+
protected function get_notice_data($notice = false, $position = 'top') {
|
140 |
+
|
141 |
+
// If a specific notice has been passed to this method then return that notice.
|
142 |
+
if ($notice) {
|
143 |
+
if (!isset($this->notices_content[$notice])) return false;
|
144 |
+
|
145 |
+
// Does the notice support the position specified?
|
146 |
+
if (isset($this->notices_content[$notice]['supported_positions']) && !in_array($position, $this->notices_content[$notice]['supported_positions'])) return false;
|
147 |
+
// First check if the advert passed can be displayed and hasn't been dismissed, we do this by checking what dismissed value we should be checking.
|
148 |
+
$dismiss_time = $this->notices_content[$notice]['dismiss_time'];
|
149 |
+
|
150 |
+
$dismiss = $this->check_notice_dismissed($dismiss_time);
|
151 |
+
|
152 |
+
if ($dismiss) return false;
|
153 |
+
|
154 |
+
return $this->notices_content[$notice];
|
155 |
+
}
|
156 |
+
|
157 |
+
// Create an array to add non-seasonal adverts to so that if a seasonal advert can't be returned we can choose a random advert from this array.
|
158 |
+
$available_notices = array();
|
159 |
+
|
160 |
+
// If Advert wasn't passed then next we should check to see if a seasonal advert can be returned.
|
161 |
+
foreach ($this->notices_content as $notice_id => $notice_data) {
|
162 |
+
// Does the notice support the position specified?
|
163 |
+
if (isset($this->notices_content[$notice_id]['supported_positions']) && !in_array($position, $this->notices_content[$notice_id]['supported_positions'])) continue;
|
164 |
+
// If the advert has a validity function, then require the advert to be valid.
|
165 |
+
if (!empty($notice_data['validity_function']) && !call_user_func(array($this, $notice_data['validity_function']))) continue;
|
166 |
+
|
167 |
+
|
168 |
+
if (isset($notice_data['valid_from']) && isset($notice_data['valid_to'])) {
|
169 |
+
if ($this->skip_seasonal_notices($notice_data)) return $notice_data;
|
170 |
+
} else {
|
171 |
+
$dismiss_time = $this->notices_content[$notice_id]['dismiss_time'];
|
172 |
+
$dismiss = $this->check_notice_dismissed($dismiss_time);
|
173 |
+
|
174 |
+
if (!$dismiss) $available_notices[$notice_id] = $notice_data;
|
175 |
+
}
|
176 |
+
}
|
177 |
+
|
178 |
+
if (empty($available_notices)) return false;
|
179 |
+
|
180 |
+
// If a seasonal advert can't be returned then we will return a random advert.
|
181 |
+
// Using shuffle here as something like rand which produces a random number and uses that as the array index fails, this is because in future an advert may not be numbered and could have a string as its key which will then cause errors.
|
182 |
+
shuffle($available_notices);
|
183 |
+
return $available_notices[0];
|
184 |
+
}
|
185 |
+
|
186 |
+
/**
|
187 |
+
* This method should be overwritten by the child class if they have seasonal notices
|
188 |
+
*
|
189 |
+
* @param String $notice_data the notice to check if it should be skipped or not
|
190 |
+
* @return Boolean returns false if the notice can be displayed
|
191 |
+
*/
|
192 |
+
protected function skip_seasonal_notices($notice_data) {
|
193 |
+
return false;
|
194 |
+
}
|
195 |
+
|
196 |
+
/**
|
197 |
+
* This method returns the affilate ID
|
198 |
+
*
|
199 |
+
* @return Integer an affilate id to return
|
200 |
+
*/
|
201 |
+
public function get_affiliate_id() {
|
202 |
+
return $this->self_affiliate_id;
|
203 |
+
}
|
204 |
+
|
205 |
+
/**
|
206 |
+
* This method checks to see if the notices dismiss_time parameter has been dismissed
|
207 |
+
*
|
208 |
+
* @param String $dismiss_time a string containing the dimiss time ID
|
209 |
+
* @return Boolaen returns true if the notice has been dismissed and shouldn't be shown otherwise display it
|
210 |
+
*/
|
211 |
+
abstract protected function check_notice_dismissed($dismiss_time);
|
212 |
+
}
|
admin/lib/helpers.php
ADDED
@@ -0,0 +1,170 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
if (!defined('ABSPATH')) die('No direct access.');
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Will be truthy if the plugin is installed
|
7 |
+
* @param string name of the plugin 'ml-slider'
|
8 |
+
* @return bool|string - will return path, ex. 'ml-slider/ml-slider.php'
|
9 |
+
*/
|
10 |
+
function metaslider_is_plugin_installed($name) {
|
11 |
+
foreach (get_plugins() as $plugin => $data) {
|
12 |
+
if ($data['TextDomain'] == $name)
|
13 |
+
return $plugin;
|
14 |
+
}
|
15 |
+
return false;
|
16 |
+
}
|
17 |
+
/**
|
18 |
+
* checks if metaslider pro is installed
|
19 |
+
*
|
20 |
+
* @return bool
|
21 |
+
*/
|
22 |
+
function metaslider_is_pro_installed() {
|
23 |
+
return (bool) metaslider_is_plugin_installed('ml-slider-pro');
|
24 |
+
}
|
25 |
+
|
26 |
+
/**
|
27 |
+
* Will be true if the plugin is active
|
28 |
+
*
|
29 |
+
* @return bool
|
30 |
+
*/
|
31 |
+
function metaslider_is_pro_active() {
|
32 |
+
return is_plugin_active(metaslider_is_plugin_installed('ml-slider-pro'));
|
33 |
+
}
|
34 |
+
/**
|
35 |
+
* Returns true if the user does not have the pro version installed
|
36 |
+
* @return bool
|
37 |
+
*/
|
38 |
+
function metaslider_sees_upgrade_page() {
|
39 |
+
return (bool) apply_filters('metaslider_show_upgrade_page', !metaslider_is_pro_installed());
|
40 |
+
}
|
41 |
+
|
42 |
+
/**
|
43 |
+
* Returns true if the user does not have the pro version installed
|
44 |
+
* @return bool
|
45 |
+
*/
|
46 |
+
function metaslider_sees_call_to_action() {
|
47 |
+
return (bool) apply_filters('metaslider_show_upgrade_page', !metaslider_is_pro_installed());
|
48 |
+
}
|
49 |
+
|
50 |
+
/**
|
51 |
+
* Returns true if the user is ready to see notices. Exceptions include
|
52 |
+
* when they have no slideshows (first start) and while on the initial tour.
|
53 |
+
*
|
54 |
+
* @return bool
|
55 |
+
*/
|
56 |
+
function metaslider_sees_notices($plugin) {
|
57 |
+
|
58 |
+
// If no slideshows, don't show an ad
|
59 |
+
if (!count($plugin->all_meta_sliders())) {
|
60 |
+
return false;
|
61 |
+
}
|
62 |
+
|
63 |
+
// If they have slideshows but have yet to finish the tour or cancel it,
|
64 |
+
// hold off on showing the ads
|
65 |
+
return (bool) get_option('metaslider_tour_cancelled_on');
|
66 |
+
}
|
67 |
+
|
68 |
+
/**
|
69 |
+
* Returns true if the user is on the specified admin page
|
70 |
+
*
|
71 |
+
* @return bool
|
72 |
+
*/
|
73 |
+
function metaslider_is_on_admin_page($page_name = 'admin.php') {
|
74 |
+
global $pagenow;
|
75 |
+
return ($pagenow == $page_name);
|
76 |
+
}
|
77 |
+
|
78 |
+
/**
|
79 |
+
* Returns the upgrade link
|
80 |
+
*
|
81 |
+
* @return string
|
82 |
+
*/
|
83 |
+
function metaslider_get_upgrade_link() {
|
84 |
+
return apply_filters('metaslider_hoplink', esc_url(
|
85 |
+
add_query_arg(array(
|
86 |
+
'utm_source' => 'lite',
|
87 |
+
'utm_medium' => 'nag',
|
88 |
+
'utm_campaign' => 'pro'
|
89 |
+
),
|
90 |
+
'https://www.metaslider.com/upgrade/'))
|
91 |
+
);
|
92 |
+
}
|
93 |
+
|
94 |
+
/**
|
95 |
+
* Returns an array of the trashed slides
|
96 |
+
* @param $slider
|
97 |
+
* @return array
|
98 |
+
*/
|
99 |
+
function metaslider_has_trashed_slides($slider_id) {
|
100 |
+
return get_posts(array(
|
101 |
+
'force_no_custom_order' => true,
|
102 |
+
'orderby' => 'menu_order',
|
103 |
+
'order' => 'ASC',
|
104 |
+
'post_type' => array('attachment', 'ml-slide'),
|
105 |
+
'post_status' => array('trash'),
|
106 |
+
'lang' => '',
|
107 |
+
'posts_per_page' => -1,
|
108 |
+
'tax_query' => array(
|
109 |
+
array(
|
110 |
+
'taxonomy' => 'ml-slider',
|
111 |
+
'field' => 'slug',
|
112 |
+
'terms' => $slider_id
|
113 |
+
)
|
114 |
+
)
|
115 |
+
));
|
116 |
+
}
|
117 |
+
|
118 |
+
/**
|
119 |
+
* Returns whether we are looking at trashed slides
|
120 |
+
* @param int $slider - the id
|
121 |
+
* @return bool
|
122 |
+
*/
|
123 |
+
function metaslider_viewing_trashed_slides($slider_id) {
|
124 |
+
|
125 |
+
// If there are no trashed slides, no need to see this page
|
126 |
+
if (!count(metaslider_has_trashed_slides($slider_id))) {
|
127 |
+
return false;
|
128 |
+
}
|
129 |
+
|
130 |
+
// Checks to see if the parameter is set and if it's boolean
|
131 |
+
return isset($_REQUEST['show_trashed']) && filter_input(INPUT_GET, 'show_trashed', FILTER_VALIDATE_BOOLEAN);
|
132 |
+
}
|
133 |
+
|
134 |
+
/**
|
135 |
+
* Returns whether we are looking at a trashed slide
|
136 |
+
* @param object $slide a slide object
|
137 |
+
* @return bool
|
138 |
+
*/
|
139 |
+
function metaslider_this_is_trash($slide) {
|
140 |
+
return (is_object($slide) && "trash" === $slide->post_status);
|
141 |
+
}
|
142 |
+
|
143 |
+
/**
|
144 |
+
* This will customize a URL with a correct Affiliate link
|
145 |
+
*
|
146 |
+
* This function can be updated to suit any URL as long as the URL is passed
|
147 |
+
*
|
148 |
+
* @param string $url URL to be checked to see if it is an metaslider match.
|
149 |
+
* @param string $text Anchor Text
|
150 |
+
* @param string $html Any specific HTML to be added.
|
151 |
+
* @param string $class Specify a class for the anchor tag.
|
152 |
+
*
|
153 |
+
* @return string Optimized affiliate link
|
154 |
+
*/
|
155 |
+
function metaslider_optimize_url($url, $text, $html = null, $class = '') {
|
156 |
+
|
157 |
+
// Check if the URL is metaslider.
|
158 |
+
if (false !== strpos($url, 'metaslider.com')) {
|
159 |
+
|
160 |
+
// Set URL with Affiliate ID.
|
161 |
+
$url = metaslider_get_upgrade_link();
|
162 |
+
}
|
163 |
+
|
164 |
+
// Return URL - check if there is HTML such as Images.
|
165 |
+
if (!empty($html)) {
|
166 |
+
return sprintf('<a class="%1$s" href="%2$s">%3$s</a>', esc_attr($class), esc_attr($url), $html);
|
167 |
+
} else {
|
168 |
+
return sprintf('<a class="%1$s" href="%2$s">%3$s</a>', esc_attr($class), esc_attr($url), htmlspecialchars($text));
|
169 |
+
}
|
170 |
+
}
|
admin/views/notices/dashboard-notice.php
ADDED
@@ -0,0 +1,28 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php if (!defined('ABSPATH')) die('No direct access allowed'); ?>
|
2 |
+
|
3 |
+
<?php if (isset($mega) && $mega) {?>
|
4 |
+
|
5 |
+
<div class="updraft-ad-container updated">
|
6 |
+
<h1><?php echo $title; ?></h1>
|
7 |
+
<p><?php echo $text; ?>
|
8 |
+
<div class="updraft-advert-dismiss">
|
9 |
+
<a href="#" onclick="jQuery('.updraft-ad-container').slideUp(); jQuery.post(ajaxurl, {action: 'notice_handler', ad_identifier: '<?php echo $dismiss_time;?>', _wpnonce: metaslider_notices.handle_notices_nonce });"><?php echo sprintf(__('Hide this ad (%s)', 'ml-slider'), $hide_time); ?></a>
|
10 |
+
</div>
|
11 |
+
<?php foreach ($this->mega_notice_parts() as $ad_identifier => $values) {
|
12 |
+
extract($values); ?>
|
13 |
+
<div class="mega_list">
|
14 |
+
<p><strong><?php echo $title; ?></strong> <?php echo $text;
|
15 |
+
if (!empty($button_link)) {
|
16 |
+
echo $this->get_button_link($button_link, $button_meta);
|
17 |
+
} ?>
|
18 |
+
</p>
|
19 |
+
</div>
|
20 |
+
<div class="clear"></div>
|
21 |
+
<?php } ?>
|
22 |
+
</div>
|
23 |
+
<?php } else {
|
24 |
+
|
25 |
+
// Render a typical header ad
|
26 |
+
include METASLIDER_PATH.'admin/views/notices/header-notice.php';
|
27 |
+
|
28 |
+
}
|
admin/views/notices/header-notice.php
ADDED
@@ -0,0 +1,31 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php if (!defined('ABSPATH')) die('No direct access allowed'); ?>
|
2 |
+
|
3 |
+
<div class="updraft-ad-container updated">
|
4 |
+
<div class="updraft_notice_container">
|
5 |
+
<div class="updraft_advert_content_left">
|
6 |
+
<img src="<?php echo METASLIDER_BASE_URL.'admin/images/'.$image;?>" width="60" height="60" alt="<?php _e('Logo','ml-slider');?>" />
|
7 |
+
</div>
|
8 |
+
<div class="updraft_advert_content_right">
|
9 |
+
<h3 class="updraft_advert_heading"><?php echo $title; ?></h3>
|
10 |
+
<div class="updraft-advert-dismiss">
|
11 |
+
<a href="#" onclick="jQuery('.updraft-ad-container').slideUp(); jQuery.post(ajaxurl, {action: 'notice_handler', ad_identifier: '<?php echo $dismiss_time;?>', _wpnonce: metaslider_notices.handle_notices_nonce });"><?php echo sprintf(__('Hide this ad (%s)', 'ml-slider'), $hide_time); ?></a>
|
12 |
+
</div>
|
13 |
+
<p>
|
14 |
+
<?php
|
15 |
+
echo $text;
|
16 |
+
|
17 |
+
if (isset($discount_code)) echo ' <strong>' . $discount_code . '</strong>';
|
18 |
+
|
19 |
+
if (!empty($button_link)) {
|
20 |
+
echo $this->get_button_link($button_link, $button_meta);
|
21 |
+
}
|
22 |
+
?>
|
23 |
+
</p>
|
24 |
+
<?php $count = count($this->active_ads('header'));
|
25 |
+
if ($count > 1) { ?>
|
26 |
+
<span class="updraft_ad_meta">ad <?php echo array_search($dismiss_time, array_keys($this->active_ads('header'))) + 1; ?>/<?php echo $count ?></span>
|
27 |
+
<?php } ?>
|
28 |
+
</div>
|
29 |
+
</div>
|
30 |
+
<div class="clear"></div>
|
31 |
+
</div>
|
admin/views/pages/upgrade.php
ADDED
@@ -0,0 +1,169 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php if (!defined('ABSPATH')) die('No direct access allowed'); ?>
|
2 |
+
|
3 |
+
<?php
|
4 |
+
// Quick check to see which of our plugins is installed
|
5 |
+
$our_plugins = array('updraftplus', 'updraftcentral', 'wp-optimize', 'keyy');
|
6 |
+
$installed_plugins = array();
|
7 |
+
foreach ($our_plugins as $plugin) {
|
8 |
+
$installed_plugins[$plugin] = metaslider_is_plugin_installed($plugin);
|
9 |
+
}
|
10 |
+
// If they have any plugins missing, make room for ads
|
11 |
+
$width = (in_array(false, $installed_plugins, true)) ? 'metaslider_half_width' : ''
|
12 |
+
?>
|
13 |
+
<div class="metaslider_col <?php echo $width; ?>">
|
14 |
+
<h2 class="ms-addon-headers">MetaSlider <?php _e("Comparison Chart", 'ml-slider');?></h2>
|
15 |
+
<table class="metaslider_feat_table">
|
16 |
+
<thead>
|
17 |
+
<tr>
|
18 |
+
<th></th>
|
19 |
+
<th><img src="<?php echo METASLIDER_ADMIN_URL.'images/notices/metaslider_logo.png';?>" alt="MetaSlider <?php esc_attr_e('logo', 'ml-slider');?>" width="80" height="80">MetaSlider<br><span><?php _e('free', 'ml-slider');?></span></th>
|
20 |
+
<th><img src="<?php echo METASLIDER_ADMIN_URL.'images/notices/metaslider_logo.png';?>" alt="MetaSlider <?php esc_attr_e('logo', 'ml-slider');?>" width="80" height="80"><?php _e('Add-ons', 'ml-slider'); ?><br><span><?php _e('pro', 'ml-slider'); ?></span></th>
|
21 |
+
</tr>
|
22 |
+
</thead>
|
23 |
+
<tbody>
|
24 |
+
<tr>
|
25 |
+
<td></td>
|
26 |
+
<td class="metaslider_installed_status"><?php _e('Installed', 'ml-slider');?></td>
|
27 |
+
<td class="metaslider_installed_status"><?php echo metaslider_optimize_url("https://www.metaslider.com/upgrade/", __('Upgrade now', 'ml-slider'));?></td>
|
28 |
+
</tr>
|
29 |
+
<tr>
|
30 |
+
<td><i class="metaslider-premium-image"><svg xmlns="http://www.w3.org/2000/svg" width="36" height="36" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-package"><path d="M12.89 1.45l8 4A2 2 0 0 1 22 7.24v9.53a2 2 0 0 1-1.11 1.79l-8 4a2 2 0 0 1-1.79 0l-8-4a2 2 0 0 1-1.1-1.8V7.24a2 2 0 0 1 1.11-1.79l8-4a2 2 0 0 1 1.78 0z"/><polyline points="2.32 6.16 12 11 21.68 6.16"/><line x1="12" y1="22.76" x2="12" y2="11"/><line x1="7" y1="3.5" x2="17" y2="8.5"/></svg></i>
|
31 |
+
<h4><?php _e('Create unlimited slideshows', 'ml-slider');?></h4>
|
32 |
+
<p><?php _e('Create and manage as many slideshows as you need.', 'ml-slider');?></p></td>
|
33 |
+
<td><i class="dashicons dashicons-yes" aria-label="<?php esc_attr_e('Yes', 'ml-slider');?>"></i></td>
|
34 |
+
<td><i class="dashicons dashicons-yes" aria-label="<?php esc_attr_e('Yes', 'ml-slider');?>"></i></td>
|
35 |
+
</tr>
|
36 |
+
<tr>
|
37 |
+
<td><i class="metaslider-premium-image"><svg xmlns="http://www.w3.org/2000/svg" width="36" height="36" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-grid"><rect x="3" y="3" width="7" height="7"/><rect x="14" y="3" width="7" height="7"/><rect x="14" y="14" width="7" height="7"/><rect x="3" y="14" width="7" height="7"/></svg></i>
|
38 |
+
<h4><?php _e('Multiple slideshow types', 'ml-slider');?></h4>
|
39 |
+
<p><?php printf(__('Including %s, %s and we will soon be adding more.', 'ml-slider'), 'Flex Slider', 'Nivo Slider');?></p></td>
|
40 |
+
<td><i class="dashicons dashicons-yes" aria-label="<?php esc_attr_e('Yes', 'ml-slider');?>"></i></td>
|
41 |
+
<td><i class="dashicons dashicons-yes" aria-label="<?php esc_attr_e('Yes', 'ml-slider');?>"></i></td>
|
42 |
+
</tr>
|
43 |
+
<tr>
|
44 |
+
<td><i class="metaslider-premium-image"><svg xmlns="http://www.w3.org/2000/svg" width="36" height="36" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-calendar"><rect x="3" y="4" width="18" height="18" rx="2" ry="2"/><line x1="16" y1="2" x2="16" y2="6"/><line x1="8" y1="2" x2="8" y2="6"/><line x1="3" y1="10" x2="21" y2="10"/></svg></i>
|
45 |
+
<h4><?php _e('Regular updates', 'ml-slider');?></h4>
|
46 |
+
<p><?php printf(__('Our word to keep %s compatible with the latest versions of %s.', 'ml-slider'), 'MetaSlider', 'WordPress');?></p></td>
|
47 |
+
<td><i class="dashicons dashicons-yes" aria-label="<?php esc_attr_e('Yes', 'ml-slider');?>"></i></td>
|
48 |
+
<td><i class="dashicons dashicons-yes" aria-label="<?php esc_attr_e('Yes', 'ml-slider');?>"></i></td>
|
49 |
+
</tr>
|
50 |
+
<tr>
|
51 |
+
<td><i class="metaslider-premium-image"><svg xmlns="http://www.w3.org/2000/svg" width="36" height="36" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-scissors"><circle cx="6" cy="6" r="3"/><circle cx="6" cy="18" r="3"/><line x1="20" y1="4" x2="8.12" y2="15.88"/><line x1="14.47" y1="14.48" x2="20" y2="20"/><line x1="8.12" y1="8.12" x2="12" y2="12"/></svg></i>
|
52 |
+
<h4><?php _e('Intelligent image cropping', 'ml-slider'); ?></h4>
|
53 |
+
<p><?php printf(__('Unique %s functionality ensures your slides are perfectly resized.', 'ml-slider'), 'Smart Crop'); ?></p></td>
|
54 |
+
<td><i class="dashicons dashicons-yes" aria-label="<?php esc_attr_e('Yes', 'ml-slider');?>"></i></td>
|
55 |
+
<td><i class="dashicons dashicons-yes" aria-label="<?php esc_attr_e('Yes', 'ml-slider');?>"></i></td>
|
56 |
+
</tr>
|
57 |
+
<tr>
|
58 |
+
<td><i class="metaslider-premium-image"><svg xmlns="http://www.w3.org/2000/svg" width="36" height="36" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-image"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"/><circle cx="8.5" cy="8.5" r="1.5"/><polyline points="21 15 16 10 5 21"/></svg></i>
|
59 |
+
<h4><?php _e('Thumbnail navigation', 'ml-slider');?></h4>
|
60 |
+
<p><?php _e('Easily allow users to navigate your slideshows by thumbnails.', 'ml-slider');?></p></td>
|
61 |
+
<td><i class="dashicons dashicons-no-alt" aria-label="<?php esc_attr_e('No', 'ml-slider');?>"></i></td>
|
62 |
+
<td><i class="dashicons dashicons-yes" aria-label="<?php esc_attr_e('Yes', 'ml-slider');?>"></i></td>
|
63 |
+
</tr>
|
64 |
+
<tr>
|
65 |
+
<td><i class="metaslider-premium-image"><svg xmlns="http://www.w3.org/2000/svg" width="36" height="36" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-video"><polygon points="23 7 16 12 23 17 23 7"/><rect x="1" y="5" width="15" height="14" rx="2" ry="2"/></svg></i>
|
66 |
+
<h4><?php _e('Add video slides', 'ml-slider');?></h4>
|
67 |
+
<p><?php printf(__('Easily include responsive high definition %s and %s videos.', 'ml-slider'), 'YouTube', 'Vimeo');?></p></td>
|
68 |
+
<td><i class="dashicons dashicons-no-alt" aria-label="<?php esc_attr_e('No', 'ml-slider');?>"></i></td>
|
69 |
+
<td><i class="dashicons dashicons-yes" aria-label="<?php esc_attr_e('Yes', 'ml-slider');?>"></i></td>
|
70 |
+
</tr>
|
71 |
+
<tr>
|
72 |
+
<td><i class="metaslider-premium-image"><svg xmlns="http://www.w3.org/2000/svg" width="36" height="36" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-at-sign"><circle cx="12" cy="12" r="4"/><path d="M16 12v1a3 3 0 0 0 6 0v-1a10 10 0 1 0-3.92 7.94"/></svg></i>
|
73 |
+
<h4><?php printf(__('%s overlay slides', 'ml-slider'), 'HTML');?></h4>
|
74 |
+
<p><?php printf(__('Create completely customized %s slides using the inline editor.', 'ml-slider'), 'HTML');?></p></td>
|
75 |
+
<td><i class="dashicons dashicons-no-alt" aria-label="<?php esc_attr_e('No', 'ml-slider');?>"></i></td>
|
76 |
+
<td><i class="dashicons dashicons-yes" aria-label="<?php esc_attr_e('Yes', 'ml-slider');?>"></i></td>
|
77 |
+
</tr>
|
78 |
+
<tr>
|
79 |
+
<td><i class="metaslider-premium-image"><svg xmlns="http://www.w3.org/2000/svg" width="36" height="36" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-layers"><polygon points="12 2 2 7 12 12 22 7 12 2"/><polyline points="2 17 12 22 22 17"/><polyline points="2 12 12 17 22 12"/></svg></i>
|
80 |
+
<h4><?php _e('Add slide layers', 'ml-slider');?></h4>
|
81 |
+
<p><?php _e('Add layers to your slides with over 50 available transition effects.', 'ml-slider');?></p></td>
|
82 |
+
<td><i class="dashicons dashicons-no-alt" aria-label="<?php esc_attr_e('No', 'ml-slider');?>"></i></td>
|
83 |
+
<td><i class="dashicons dashicons-yes" aria-label="<?php esc_attr_e('Yes', 'ml-slider');?>"></i></td>
|
84 |
+
</tr>
|
85 |
+
<tr>
|
86 |
+
<td><i class="metaslider-premium-image"><svg xmlns="http://www.w3.org/2000/svg" width="36" height="36" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-list"><line x1="8" y1="6" x2="21" y2="6"/><line x1="8" y1="12" x2="21" y2="12"/><line x1="8" y1="18" x2="21" y2="18"/><line x1="3" y1="6" x2="3" y2="6"/><line x1="3" y1="12" x2="3" y2="12"/><line x1="3" y1="18" x2="3" y2="18"/></svg></i>
|
87 |
+
<h4><?php _e('Post feed slides', 'ml-slider');?></h4>
|
88 |
+
<p><?php printf(__('Easily build slides based on your %s posts.', 'ml-slider'), 'WordPress');?></p></td>
|
89 |
+
<td><i class="dashicons dashicons-no-alt" aria-label="<?php esc_attr_e('No', 'ml-slider');?>"></i></td>
|
90 |
+
<td><i class="dashicons dashicons-yes" aria-label="<?php esc_attr_e('Yes', 'ml-slider');?>"></i></td>
|
91 |
+
</tr>
|
92 |
+
<tr>
|
93 |
+
<td><i class="metaslider-premium-image"><svg xmlns="http://www.w3.org/2000/svg" width="36" height="36" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-mail"><path d="M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z"/><polyline points="22,6 12,13 2,6"/></svg></i>
|
94 |
+
<h4><?php _e('Premium support', 'ml-slider');?></h4>
|
95 |
+
<p><?php _e('Have your specific queries addressed directly by our experts', 'ml-slider');?></p></td>
|
96 |
+
<td><i class="dashicons dashicons-no-alt" aria-label="<?php esc_attr_e('No', 'ml-slider');?>"></i></td>
|
97 |
+
<td><i class="dashicons dashicons-yes" aria-label="<?php esc_attr_e('Yes', 'ml-slider');?>"></i></td>
|
98 |
+
</tr>
|
99 |
+
</tbody>
|
100 |
+
<tfoot>
|
101 |
+
<tr>
|
102 |
+
<td></td>
|
103 |
+
<td class="metaslider_installed_status"><?php _e('Installed', 'ml-slider');?></td>
|
104 |
+
<td class="metaslider_installed_status"><?php echo metaslider_optimize_url("https://www.metaslider.com/upgrade/", __('Upgrade now', 'ml-slider'));?></td>
|
105 |
+
</tr>
|
106 |
+
</tfoot>
|
107 |
+
</table>
|
108 |
+
</div>
|
109 |
+
<div class="metaslider_col metaslider_half_width metaslider_plugin_family_cont">
|
110 |
+
<?php
|
111 |
+
|
112 |
+
// If any return false, that means they don't have all the plugins
|
113 |
+
if (in_array(false, $installed_plugins, true)) { ?>
|
114 |
+
<h2 class="ms-addon-headers"><?php _e("More Professional-Quality Plugins for your Website", 'ml-slider');?></h2>
|
115 |
+
<?php }
|
116 |
+
|
117 |
+
if (!$installed_plugins['updraftplus']) {?>
|
118 |
+
<div class="postbox">
|
119 |
+
<div class="inside">
|
120 |
+
<?php
|
121 |
+
echo metaslider_optimize_url(wp_nonce_url(self_admin_url('update.php?action=install-plugin&plugin=updraftplus'), 'install-plugin_updraftplus'), null, '<img class="addons" alt="'.esc_attr("UpdraftPlus").'" src="'. esc_url(METASLIDER_ADMIN_URL.'images/features/updraftplus_logo.png') .'">');
|
122 |
+
echo metaslider_optimize_url(wp_nonce_url(self_admin_url('update.php?action=install-plugin&plugin=updraftplus'), 'install-plugin_updraftplus'), null, '<h3>'.sprintf(__('%s – the ultimate protection for your site, hard work and business', 'ml-slider'), 'UpdraftPlus').'</h3>', 'other-plugin-title');
|
123 |
+
?>
|
124 |
+
<p><?php printf(__("If you’ve got a %s website, you need a backup.", 'ml-slider'), 'WordPress');?></p>
|
125 |
+
<p><?php _e("Hacking, server crashes, dodgy updates or simple user error can ruin everything.", 'ml-slider');?></p>
|
126 |
+
<p><?php printf(__("With %s, you can rest assured that if the worst does happen, it's no big deal. rather than losing everything, you can simply restore the backup and be up and running again in no time at all.", 'ml-slider'), 'UpdraftPlus');?></p>
|
127 |
+
<p><?php _e("You can also migrate your website with few clicks without hassle.", 'ml-slider');?></p>
|
128 |
+
<p><?php printf(__("With a long-standing reputation for excellence and outstanding reviews, it’s no wonder that %s is the world’s most popular %s backup plugin.", 'ml-slider'), 'UpdraftPlus', 'WordPress');?></p>
|
129 |
+
<?php echo metaslider_optimize_url(wp_nonce_url(self_admin_url('update.php?action=install-plugin&plugin=updraftplus'), 'install-plugin_updraftplus'), __('Try for free', 'ml-slider')); ?>
|
130 |
+
</div>
|
131 |
+
</div>
|
132 |
+
<?php }
|
133 |
+
if (!$installed_plugins['updraftcentral']) {?>
|
134 |
+
<div class="postbox">
|
135 |
+
<div class="inside">
|
136 |
+
<?php echo metaslider_optimize_url(wp_nonce_url(self_admin_url('update.php?action=install-plugin&plugin=updraftcentral'), 'install-plugin_updraftcentral'), null, '<img class="addons" alt="'.sprintf(esc_attr__("%s Dashboard", 'ml-slider'), 'UpdraftCentral').'" src="'. METASLIDER_ADMIN_URL.'images/features/updraftcentral_logo.png' .'">');
|
137 |
+
echo metaslider_optimize_url(wp_nonce_url(self_admin_url('update.php?action=install-plugin&plugin=updraftcentral'), 'install-plugin_updraftcentral'), null, '<h3>'.sprintf(__('%s – save hours managing multiple WP sites from one place', 'ml-slider'), 'UpdraftCentral').'</h3>', 'other-plugin-title'); ?>
|
138 |
+
<p><?php printf(__("If you manage a few %s sites, you need UpdraftCentral.", 'ml-slider'), 'WordPress');?></p>
|
139 |
+
<p><?php printf(__("%s is a powerful tool that allows you to efficiently manage, update, backup and even restore multiple websites from just one location. You can also manage users and comments on all the sites at once, and through its central login feature, you can access each WP-dashboard with a single click.", 'ml-slider'), 'UpdraftCentral'); ?></p>
|
140 |
+
<p><?php printf(__("With a wide range of useful features, including automated backup schedules and sophisticated one click updates, UpdraftCentral is sure to boost to your productivity and save you time.", 'ml-slider'), 'UpdraftCentral'); ?></p>
|
141 |
+
<?php echo metaslider_optimize_url(wp_nonce_url(self_admin_url('update.php?action=install-plugin&plugin=updraftcentral'), 'install-plugin_updraftcentral'), __('Try for free', 'ml-slider')); ?>
|
142 |
+
</div>
|
143 |
+
</div>
|
144 |
+
<?php }
|
145 |
+
if (!$installed_plugins['wp-optimize']) {?>
|
146 |
+
<div class="postbox">
|
147 |
+
<div class="inside">
|
148 |
+
<?php echo metaslider_optimize_url(wp_nonce_url(self_admin_url('update.php?action=install-plugin&plugin=wp-optimize'), 'install-plugin_wp-optimize'), null, '<img class="addons" alt="'.esc_attr("WP-Optimize").'" src="'. METASLIDER_ADMIN_URL.'images/features/wpo_logo.png' .'">');
|
149 |
+
echo metaslider_optimize_url(wp_nonce_url(self_admin_url('update.php?action=install-plugin&plugin=wp-optimize'), 'install-plugin_wp-optimize'), null, '<h3>'.sprintf(__('%s – faster, fitter, cleaner WP sites for optimal performance.', 'ml-slider'), 'WP-Optimize').'</h3>', 'other-plugin-title'); ?>
|
150 |
+
<p><?php printf(__("%s, the #1 optimization plugin, keeps your %s site at prime speed by cleaning the database without the need for %s.", 'ml-slider'), 'WP-Optimize', 'WordPress', 'phpMyAdmin'); ?></p>
|
151 |
+
<p><?php printf(__("Incredibly simple to use, %s clears out old webpage revisions, spam, trash and unapproved comments, all of which take up megabytes of valuable space and leave your database sluggish and ultimately unfit for purpose.", 'ml-slider'), 'WP-Optimize'); ?></p>
|
152 |
+
<p><?php printf(__("%s has a load of valuable features, including automated weekly clean up scheduling, the retention of a set number of weeks’ data, a display of how much space can be cleared, the enabling / disabling of trackbacks and comments for all published posts, and an ‘administrators only’ security feature.", 'ml-slider'), 'WP-Optimize'); ?></p>
|
153 |
+
<?php echo metaslider_optimize_url(wp_nonce_url(self_admin_url('update.php?action=install-plugin&plugin=wp-optimize'), 'install-plugin_wp-optimize'), __('Try for free', 'ml-slider')); ?>
|
154 |
+
</div>
|
155 |
+
</div>
|
156 |
+
<?php }
|
157 |
+
if (!$installed_plugins['keyy']) {?>
|
158 |
+
<div class="postbox">
|
159 |
+
<div class="inside">
|
160 |
+
<?php echo metaslider_optimize_url(wp_nonce_url(self_admin_url('update.php?action=install-plugin&plugin=keyy'), 'install-plugin_keyy'), null, '<img class="addons" alt="'.sprintf(esc_attr__("%s Two-Factor Authentication", 'ml-slider'), 'Keyy').'" src="'. METASLIDER_ADMIN_URL.'images/features/keyy_logo.png' .'">');
|
161 |
+
echo metaslider_optimize_url(wp_nonce_url(self_admin_url('update.php?action=install-plugin&plugin=keyy'), 'install-plugin_keyy'), null, '<h3>'.sprintf(__('%s – instant & secure logins with a wave of your phone', 'ml-slider'), 'Keyy').'</h3>', 'other-plugin-title'); ?>
|
162 |
+
<p><?php printf(__("%s is a unique 2-factor authentication plugin that allows you to log in to your website with just a wave of your smartphone. It represents the ultimate UX, doing away with the need for usernames, passwords and other 2FA tokens.", 'ml-slider'), 'Keyy');?></p>
|
163 |
+
<p><?php printf(__("Using innovative RSA public-key cryptography, %s is highly secure and prevents password-based hacking risks such as brute-forcing, key-logging, shoulder-surfing and connection sniffing.", 'ml-slider'), 'Keyy'); ?></p>
|
164 |
+
<p><?php printf(__("Logging in with %s is simple. Once users have installed the app onto their smartphone and secured it using a fingerprint or 4-number pin, they just open the app, point it at the moving on-screen barcode and voila!", 'ml-slider'), 'Keyy'); ?></p>
|
165 |
+
<?php echo metaslider_optimize_url(wp_nonce_url(self_admin_url('update.php?action=install-plugin&plugin=keyy'), 'install-plugin_keyy'), __('Try for free', 'ml-slider')); ?>
|
166 |
+
</div>
|
167 |
+
</div>
|
168 |
+
<?php } ?>
|
169 |
+
</div>
|
assets/metaslider/admin.css
DELETED
@@ -1,948 +0,0 @@
|
|
1 |
-
.metaslider.wrap div.updated,
|
2 |
-
.metaslider.wrap div.error {
|
3 |
-
clear: both
|
4 |
-
}
|
5 |
-
|
6 |
-
.metaslider #post-body.columns-2 #postbox-container-1 {
|
7 |
-
margin-right: -320px;
|
8 |
-
width: 300px;
|
9 |
-
}
|
10 |
-
|
11 |
-
.metaslider #poststuff #post-body.columns-2 {
|
12 |
-
margin-right: 320px;
|
13 |
-
}
|
14 |
-
|
15 |
-
.rtl .metaslider #post-body.columns-2 #postbox-container-1 {
|
16 |
-
margin-left: -320px;
|
17 |
-
margin-right: 0;
|
18 |
-
}
|
19 |
-
|
20 |
-
.rtl .metaslider #poststuff #post-body.columns-2 {
|
21 |
-
margin-left: 320px;
|
22 |
-
margin-right: 0;
|
23 |
-
}
|
24 |
-
|
25 |
-
|
26 |
-
.metaslider .left input,
|
27 |
-
.metaslider .left textarea {
|
28 |
-
border: 1px solid #ccc;
|
29 |
-
border-radius: 0;
|
30 |
-
resize: none;
|
31 |
-
box-shadow: inherit;
|
32 |
-
}
|
33 |
-
|
34 |
-
.media-frame-menu .separator {
|
35 |
-
display: none
|
36 |
-
}
|
37 |
-
|
38 |
-
.msTipsy .tipsy-arrow-s {
|
39 |
-
border-top-color: #555
|
40 |
-
}
|
41 |
-
|
42 |
-
.msTipsy .tipsy-arrow-w {
|
43 |
-
border-right-color: #555
|
44 |
-
}
|
45 |
-
|
46 |
-
.msTipsy .tipsy-arrow-n {
|
47 |
-
border-bottom-color: #555
|
48 |
-
}
|
49 |
-
|
50 |
-
.msTipsy .tipsy-inner {
|
51 |
-
color: white;
|
52 |
-
background-color: #555;
|
53 |
-
}
|
54 |
-
|
55 |
-
.msTipsy .tipsy-arrow-e {
|
56 |
-
border-left-color: #555
|
57 |
-
}
|
58 |
-
|
59 |
-
#cboxLoadedContent {
|
60 |
-
overflow: hidden !important
|
61 |
-
}
|
62 |
-
|
63 |
-
#cboxLoadedContent iframe {
|
64 |
-
border: 0 none;
|
65 |
-
display: block;
|
66 |
-
height: 100%;
|
67 |
-
width: 100%;
|
68 |
-
}
|
69 |
-
|
70 |
-
.metaslider .right input[type=submit] {
|
71 |
-
margin: 0 3px
|
72 |
-
}
|
73 |
-
|
74 |
-
.metaslider #poststuff .right .configuration {
|
75 |
-
padding: 7px 7px 7px 12px;
|
76 |
-
line-height: 27px;
|
77 |
-
float: left;
|
78 |
-
width: 100%;
|
79 |
-
box-sizing: border-box;
|
80 |
-
}
|
81 |
-
|
82 |
-
.metaslider #poststuff .left h3 {
|
83 |
-
padding: 7px 5px;
|
84 |
-
line-height: 27px;
|
85 |
-
margin: 0;
|
86 |
-
font-size: 14px;
|
87 |
-
}
|
88 |
-
|
89 |
-
.metaslider #poststuff .left th {
|
90 |
-
padding: 0 7px;
|
91 |
-
}
|
92 |
-
|
93 |
-
.metaslider .left table tr.slide input.url {
|
94 |
-
width: 100%;
|
95 |
-
margin: 0;
|
96 |
-
padding: 4px;
|
97 |
-
}
|
98 |
-
|
99 |
-
.bubble {
|
100 |
-
position: relative;
|
101 |
-
height: 20px;
|
102 |
-
padding: 0px 5px;
|
103 |
-
background: #b6e026;
|
104 |
-
border: #b6e026 solid 2px;
|
105 |
-
-webkit-border-radius: 5px;
|
106 |
-
-moz-border-radius: 5px;
|
107 |
-
border-radius: 5px;
|
108 |
-
display: inline-block;
|
109 |
-
text-align: center;
|
110 |
-
vertical-align: middle;
|
111 |
-
line-height: 20px;
|
112 |
-
margin-left: 6px;
|
113 |
-
color: black;
|
114 |
-
text-shadow: none;
|
115 |
-
bottom: 2px;
|
116 |
-
}
|
117 |
-
|
118 |
-
.bubble:after {
|
119 |
-
content: "";
|
120 |
-
position: absolute;
|
121 |
-
top: 5px;
|
122 |
-
left: -6px;
|
123 |
-
border-style: solid;
|
124 |
-
border-width: 5px 6px 5px 0;
|
125 |
-
border-color: transparent #b6e026;
|
126 |
-
display: block;
|
127 |
-
width: 0;
|
128 |
-
z-index: 1;
|
129 |
-
}
|
130 |
-
|
131 |
-
.bubble:before {
|
132 |
-
content: "";
|
133 |
-
position: absolute;
|
134 |
-
top: 4px;
|
135 |
-
left: -9px;
|
136 |
-
border-style: solid;
|
137 |
-
border-width: 6px 7px 6px 0;
|
138 |
-
border-color: transparent #b6e026;
|
139 |
-
display: block;
|
140 |
-
width: 0;
|
141 |
-
z-index: 0;
|
142 |
-
}
|
143 |
-
|
144 |
-
.metaslider .section {
|
145 |
-
cursor: pointer
|
146 |
-
}
|
147 |
-
|
148 |
-
.metaslider .hidden {
|
149 |
-
display: none
|
150 |
-
}
|
151 |
-
|
152 |
-
.metaslider .tipsy-tooltip {
|
153 |
-
cursor: default
|
154 |
-
}
|
155 |
-
|
156 |
-
.metaslider .ui-sortable-helper {
|
157 |
-
box-shadow: 3px 3px 5px #cccccc
|
158 |
-
}
|
159 |
-
|
160 |
-
.metaslider .left table {
|
161 |
-
width: 100%
|
162 |
-
}
|
163 |
-
|
164 |
-
.metaslider .left table thead input {
|
165 |
-
margin-left: 5px
|
166 |
-
}
|
167 |
-
|
168 |
-
.metaslider .left table thead .add-slide .wp-media-buttons-icon {
|
169 |
-
background: url('../../../../../wp-admin/images/media-button.png') no-repeat top left;
|
170 |
-
display: inline-block;
|
171 |
-
width: 16px;
|
172 |
-
height: 16px;
|
173 |
-
vertical-align: text-top;
|
174 |
-
margin: 0 2px;
|
175 |
-
}
|
176 |
-
|
177 |
-
.metaslider .left table tr.slide {
|
178 |
-
height: 167px
|
179 |
-
}
|
180 |
-
|
181 |
-
.metaslider .left table tr.slide:nth-child(even) {
|
182 |
-
background: white
|
183 |
-
}
|
184 |
-
|
185 |
-
.metaslider .left table tr.slide:nth-child(odd) {
|
186 |
-
background: #f9f9f9
|
187 |
-
}
|
188 |
-
|
189 |
-
.metaslider .left table tr.slide textarea {
|
190 |
-
width: 100%;
|
191 |
-
height: 60px;
|
192 |
-
margin: 0 0 5px 0;
|
193 |
-
padding: 2px 5px;
|
194 |
-
}
|
195 |
-
|
196 |
-
.metaslider .left table tr.slide td.col-1 {
|
197 |
-
cursor: move
|
198 |
-
}
|
199 |
-
|
200 |
-
.metaslider .left table tr.slide td.col-1 .thumb {
|
201 |
-
position: relative;
|
202 |
-
height: 150px;
|
203 |
-
width: 150px;
|
204 |
-
background-size: auto 150px;
|
205 |
-
background-position: center;
|
206 |
-
border: 1px solid #ddd;
|
207 |
-
}
|
208 |
-
|
209 |
-
.metaslider .left table tr.slide td.col-1 .thumb .delete-slide {
|
210 |
-
position: absolute;
|
211 |
-
top: 0px;
|
212 |
-
left: 0px;
|
213 |
-
background: transparent;
|
214 |
-
color: red;
|
215 |
-
width: 18px;
|
216 |
-
height: 18px;
|
217 |
-
float: left;
|
218 |
-
text-align: center;
|
219 |
-
opacity: 0;
|
220 |
-
overflow:hidden;
|
221 |
-
transition: opacity .25s ease-in-out;
|
222 |
-
-moz-transition: opacity .25s ease-in-out;
|
223 |
-
-webkit-transition: opacity .25s ease-in-out;
|
224 |
-
}
|
225 |
-
|
226 |
-
.metaslider .left table tr.slide td.col-1:hover .delete-slide {
|
227 |
-
opacity: 1;
|
228 |
-
}
|
229 |
-
|
230 |
-
.metaslider .left table tr.slide td.col-1 .thumb .change-image {
|
231 |
-
position: absolute;
|
232 |
-
top: 0px;
|
233 |
-
right: 2px;
|
234 |
-
background: transparent;
|
235 |
-
color: #2ea2cc;
|
236 |
-
width: 18px;
|
237 |
-
height: 18px;
|
238 |
-
float: left;
|
239 |
-
text-align: center;
|
240 |
-
opacity: 0;
|
241 |
-
transition: opacity .25s ease-in-out;
|
242 |
-
-moz-transition: opacity .25s ease-in-out;
|
243 |
-
-webkit-transition: opacity .25s ease-in-out;
|
244 |
-
overflow:hidden;
|
245 |
-
cursor: pointer;
|
246 |
-
}
|
247 |
-
|
248 |
-
.metaslider .left table tr.slide td.col-1:hover .change-image {
|
249 |
-
opacity: 1;
|
250 |
-
}
|
251 |
-
|
252 |
-
|
253 |
-
.metaslider .left table tr.slide td.col-1 .thumb .slide-details {
|
254 |
-
bottom: 0;
|
255 |
-
left: 0;
|
256 |
-
position: absolute;
|
257 |
-
background: #333;
|
258 |
-
color: white;
|
259 |
-
padding: 5px;
|
260 |
-
font-size: 12px;
|
261 |
-
opacity: 0.8;
|
262 |
-
word-wrap: break-word;
|
263 |
-
width: 140px;
|
264 |
-
padding: 3px 5px;
|
265 |
-
}
|
266 |
-
|
267 |
-
|
268 |
-
.branch-3-5 .metaslider .left table tr.slide .tabs-content .new_window,
|
269 |
-
.branch-3-6 .metaslider .left table tr.slide .tabs-content .new_window,
|
270 |
-
.branch-3-7 .metaslider .left table tr.slide .tabs-content .new_window {
|
271 |
-
right: 6px;
|
272 |
-
bottom: 20px;
|
273 |
-
}
|
274 |
-
|
275 |
-
.branch-3-5 .metaslider .left table tr.slide .tabs-content .new_window label,
|
276 |
-
.branch-3-6 .metaslider .left table tr.slide .tabs-content .new_window label,
|
277 |
-
.branch-3-7 .metaslider .left table tr.slide .tabs-content .new_window label {
|
278 |
-
line-height: 18px;
|
279 |
-
vertical-align: top;
|
280 |
-
}
|
281 |
-
|
282 |
-
.branch-3-5 .metaslider .left table tr.slide .tabs-content .new_window input,
|
283 |
-
.branch-3-6 .metaslider .left table tr.slide .tabs-content .new_window input,
|
284 |
-
.branch-3-7 .metaslider .left table tr.slide .tabs-content .new_window input {
|
285 |
-
margin: -2px 0 0 4px;
|
286 |
-
}
|
287 |
-
|
288 |
-
.metaslider .left table tr.slide .tabs-content .new_window {
|
289 |
-
position: relative;
|
290 |
-
float: right;
|
291 |
-
padding: 0px;
|
292 |
-
color: #a9a9a9;
|
293 |
-
line-height: 20px;
|
294 |
-
bottom: 22px;
|
295 |
-
right: 0;
|
296 |
-
}
|
297 |
-
|
298 |
-
.rtl .metaslider .left table tr.slide .tabs-content .new_window {
|
299 |
-
position: relative;
|
300 |
-
float: left;
|
301 |
-
}
|
302 |
-
|
303 |
-
|
304 |
-
.metaslider .left table tr.slide .tabs-content .new_window input {
|
305 |
-
margin-left: 3px
|
306 |
-
}
|
307 |
-
|
308 |
-
.rtl .metaslider .left table tr.slide .tabs-content .new_window input {
|
309 |
-
margin-right: 3px
|
310 |
-
}
|
311 |
-
|
312 |
-
.metaslider .left table tr.slide .tabs-content .new_window label {
|
313 |
-
width: 120px;
|
314 |
-
text-align: right;
|
315 |
-
font-size: 11px;
|
316 |
-
}
|
317 |
-
|
318 |
-
.metaslider tr.radio {
|
319 |
-
display: table-row;
|
320 |
-
}
|
321 |
-
.metaslider .left table td {
|
322 |
-
border-top: 0;
|
323 |
-
border-bottom: 1px solid #e1e1e1;
|
324 |
-
padding: 12px;
|
325 |
-
}
|
326 |
-
|
327 |
-
.metaslider .left table td.col-2 {
|
328 |
-
padding: 12px 12px 12px 0;
|
329 |
-
}
|
330 |
-
|
331 |
-
.rtl .metaslider .left table td.col-2 {
|
332 |
-
padding: 12px 0 12px 12px;
|
333 |
-
}
|
334 |
-
|
335 |
-
.metaslider .right .highlight {
|
336 |
-
background: transparent;
|
337 |
-
border: 0;
|
338 |
-
font-weight: bold;
|
339 |
-
}
|
340 |
-
|
341 |
-
/* *
|
342 |
-
* Change background color for label next to checked radio button
|
343 |
-
* to make it look like highlighted button
|
344 |
-
================================================== */
|
345 |
-
|
346 |
-
.metaslider .right .slider-lib-row input[type=radio]:checked + label {
|
347 |
-
background-image: none;
|
348 |
-
background-color: #d0d0d0;
|
349 |
-
}
|
350 |
-
|
351 |
-
.metaslider .right .slider-lib-row input[type=radio] {
|
352 |
-
display: none
|
353 |
-
}
|
354 |
-
|
355 |
-
.ie8 .metaslider .right .slider-lib-row input[type=radio] {
|
356 |
-
display: inline
|
357 |
-
}
|
358 |
-
|
359 |
-
.metaslider .right .slider-lib-row input[type=radio] + label {
|
360 |
-
display: inline-block;
|
361 |
-
margin: -2px;
|
362 |
-
padding: 4px 0;
|
363 |
-
margin-bottom: 0;
|
364 |
-
font-size: 11px;
|
365 |
-
line-height: 20px;
|
366 |
-
color: #333;
|
367 |
-
text-align: center;
|
368 |
-
vertical-align: middle;
|
369 |
-
cursor: pointer;
|
370 |
-
background-color: #f5f5f5;
|
371 |
-
background-image: -moz-linear-gradient(top,#fff,#e6e6e6);
|
372 |
-
background-image: -webkit-gradient(linear,0 0,0 100%,from(#fff),to(#e6e6e6));
|
373 |
-
background-image: -webkit-linear-gradient(top,#fff,#e6e6e6);
|
374 |
-
background-image: -o-linear-gradient(top,#fff,#e6e6e6);
|
375 |
-
background-image: linear-gradient(to bottom,#fff,#e6e6e6);
|
376 |
-
background-repeat: repeat-x;
|
377 |
-
border: 1px solid #ddd;
|
378 |
-
border-color: #e6e6e6 #e6e6e6 #bfbfbf;
|
379 |
-
border-color: rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);
|
380 |
-
border-bottom-color: #b3b3b3;
|
381 |
-
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#ffe6e6e6',GradientType=0);
|
382 |
-
filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
|
383 |
-
-webkit-box-shadow: inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);
|
384 |
-
-moz-box-shadow: inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);
|
385 |
-
box-shadow: inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);
|
386 |
-
width: 24%;
|
387 |
-
}
|
388 |
-
|
389 |
-
input[type=radio]:checked + label {
|
390 |
-
background-image: none;
|
391 |
-
outline: 0;
|
392 |
-
-webkit-box-shadow: inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);
|
393 |
-
-moz-box-shadow: inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);
|
394 |
-
box-shadow: inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);
|
395 |
-
background-color: #e0e0e0;
|
396 |
-
}
|
397 |
-
|
398 |
-
.metaslider .right #nivo + label:hover,
|
399 |
-
.metaslider .right #nivo:checked + label {
|
400 |
-
color: white;
|
401 |
-
background: #b6e026;
|
402 |
-
background: -moz-linear-gradient(top, #b6e026 0%, #abdc28 100%);
|
403 |
-
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #b6e026), color-stop(100%, #abdc28));
|
404 |
-
background: -webkit-linear-gradient(top, #b6e026 0%, #abdc28 100%);
|
405 |
-
background: -o-linear-gradient(top, #b6e026 0%, #abdc28 100%);
|
406 |
-
background: -ms-linear-gradient(top, #b6e026 0%, #abdc28 100%);
|
407 |
-
background: linear-gradient(to bottom, #b6e026 0%, #abdc28 100%);
|
408 |
-
}
|
409 |
-
|
410 |
-
.metaslider .right #responsive + label:hover,
|
411 |
-
.metaslider .right #responsive:checked + label,
|
412 |
-
.metaslider .right #responsive:checked {
|
413 |
-
color: white;
|
414 |
-
background: #ff5db1; /* Old browsers */
|
415 |
-
background: -moz-linear-gradient(top, #ff5db1 0%, #ef017c 100%); /* FF3.6+ */
|
416 |
-
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#ff5db1), color-stop(100%,#ef017c)); /* Chrome,Safari4+ */
|
417 |
-
background: -webkit-linear-gradient(top, #ff5db1 0%,#ef017c 100%); /* Chrome10+,Safari5.1+ */
|
418 |
-
background: -o-linear-gradient(top, #ff5db1 0%,#ef017c 100%); /* Opera 11.10+ */
|
419 |
-
background: -ms-linear-gradient(top, #ff5db1 0%,#ef017c 100%); /* IE10+ */
|
420 |
-
background: linear-gradient(to bottom, #ff5db1 0%,#ef017c 100%); /* W3C */
|
421 |
-
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ff5db1', endColorstr='#ef017c',GradientType=0 ); /* IE6-9 */
|
422 |
-
}
|
423 |
-
|
424 |
-
.metaslider .right #coin + label:hover,
|
425 |
-
.metaslider .right #coin:checked + label {
|
426 |
-
color: white;
|
427 |
-
background: #ffd65e;
|
428 |
-
background: -moz-linear-gradient(top, #ffd65e 0%, #febf04 100%);
|
429 |
-
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #ffd65e), color-stop(100%, #febf04));
|
430 |
-
background: -webkit-linear-gradient(top, #ffd65e 0%, #febf04 100%);
|
431 |
-
background: -o-linear-gradient(top, #ffd65e 0%, #febf04 100%);
|
432 |
-
background: -ms-linear-gradient(top, #ffd65e 0%, #febf04 100%);
|
433 |
-
background: linear-gradient(to bottom, #ffd65e 0%, #febf04 100%);
|
434 |
-
}
|
435 |
-
|
436 |
-
.metaslider .right #flex + label:hover,
|
437 |
-
.metaslider .right #flex:checked + label {
|
438 |
-
color: white;
|
439 |
-
background: #00b7ea;
|
440 |
-
background: -moz-linear-gradient(top, #00b7ea 0%, #009ec3 100%);
|
441 |
-
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #00b7ea), color-stop(100%, #009ec3));
|
442 |
-
background: -webkit-linear-gradient(top, #00b7ea 0%, #009ec3 100%);
|
443 |
-
background: -o-linear-gradient(top, #00b7ea 0%, #009ec3 100%);
|
444 |
-
background: -ms-linear-gradient(top, #00b7ea 0%, #009ec3 100%);
|
445 |
-
background: linear-gradient(to bottom, #00b7ea 0%, #009ec3 100%);
|
446 |
-
}
|
447 |
-
|
448 |
-
.metaslider .right .slider-lib-row {
|
449 |
-
padding: 17px 0 9px 0;
|
450 |
-
text-align: center;
|
451 |
-
}
|
452 |
-
|
453 |
-
.metaslider .right #save {
|
454 |
-
margin-right: 0
|
455 |
-
}
|
456 |
-
.rtl .metaslider .right #save {
|
457 |
-
margin-right: 4px;
|
458 |
-
margin-left: 0;
|
459 |
-
}
|
460 |
-
|
461 |
-
.metaslider .right .number input:focus {
|
462 |
-
outline: none;
|
463 |
-
outline-style: none;
|
464 |
-
box-shadow: none;
|
465 |
-
border-color: #ddd;
|
466 |
-
}
|
467 |
-
|
468 |
-
.metaslider .right .number .after,
|
469 |
-
.metaslider .right .number input {
|
470 |
-
display: inline-block;
|
471 |
-
float: left;
|
472 |
-
height: 26px;
|
473 |
-
margin: 0;
|
474 |
-
}
|
475 |
-
|
476 |
-
.rtl .metaslider .right .number .after,
|
477 |
-
.rtl .metaslider .right .number input {
|
478 |
-
float: right;
|
479 |
-
}
|
480 |
-
.rtl .metaslider .right .number .after {
|
481 |
-
border-left: 1px solid #ddd;
|
482 |
-
border-right: 0;
|
483 |
-
}
|
484 |
-
.rtl .metaslider .right .number input {
|
485 |
-
border-right: 1px solid #ddd;
|
486 |
-
border-left: 0;
|
487 |
-
}
|
488 |
-
|
489 |
-
.metaslider .right .radio ul {
|
490 |
-
margin: 0;
|
491 |
-
}
|
492 |
-
.metaslider .right .radio li {
|
493 |
-
margin: 0 0 2px 0;
|
494 |
-
clear: both;
|
495 |
-
}
|
496 |
-
.metaslider .right .radio input[type="radio"] {
|
497 |
-
margin-top: 0;
|
498 |
-
}
|
499 |
-
.rtl .metaslider .right .radio input[type="radio"] {
|
500 |
-
float: right;
|
501 |
-
}
|
502 |
-
|
503 |
-
.metaslider .right .number input {
|
504 |
-
width: 70px;
|
505 |
-
margin-right: 0;
|
506 |
-
box-shadow: none;
|
507 |
-
border-right: 0;
|
508 |
-
}
|
509 |
-
|
510 |
-
.metaslider .right .number .after {
|
511 |
-
border: 1px solid #ddd;
|
512 |
-
border-left: 0;
|
513 |
-
box-shadow: none;
|
514 |
-
font-size: 11px;
|
515 |
-
height: 24px;
|
516 |
-
line-height: 24px;
|
517 |
-
padding: 0 3px;
|
518 |
-
background: white;
|
519 |
-
}
|
520 |
-
|
521 |
-
.metaslider .right input[type="text"],
|
522 |
-
.metaslider .right select {
|
523 |
-
width: 130px
|
524 |
-
}
|
525 |
-
|
526 |
-
.metaslider .right .ms-postbox {
|
527 |
-
position: relative;
|
528 |
-
min-width: 255px;
|
529 |
-
border: 1px solid #e5e5e5;
|
530 |
-
-webkit-box-shadow: 0 1px 1px rgba(0,0,0,.04);
|
531 |
-
box-shadow: 0 1px 1px rgba(0,0,0,.04);
|
532 |
-
background: #fff;
|
533 |
-
margin-bottom: 20px;
|
534 |
-
padding: 0;
|
535 |
-
line-height: 1;
|
536 |
-
}
|
537 |
-
|
538 |
-
.metaslider #poststuff .right .ms-postbox .inside {
|
539 |
-
padding: 8px 12px 12px 12px;
|
540 |
-
margin: 0;
|
541 |
-
}
|
542 |
-
|
543 |
-
.ms-postbox .handlediv {
|
544 |
-
float: right;
|
545 |
-
width: 27px;
|
546 |
-
height: 30px;
|
547 |
-
cursor: pointer;
|
548 |
-
color: #aaa;
|
549 |
-
}
|
550 |
-
|
551 |
-
.ms-postbox .handlediv:before {
|
552 |
-
right: 12px;
|
553 |
-
font: 400 20px/1 dashicons;
|
554 |
-
speak: none;
|
555 |
-
display: inline-block;
|
556 |
-
padding: 8px 10px;
|
557 |
-
top: 0;
|
558 |
-
position: relative;
|
559 |
-
-webkit-font-smoothing: antialiased;
|
560 |
-
-moz-osx-font-smoothing: grayscale;
|
561 |
-
text-decoration: none!important;
|
562 |
-
content: '\f142';
|
563 |
-
}
|
564 |
-
|
565 |
-
.ms-postbox.closed .handlediv:before {
|
566 |
-
content: '\f140';
|
567 |
-
}
|
568 |
-
|
569 |
-
.metaslider .shortcode .inside {
|
570 |
-
padding: 15px 10px
|
571 |
-
}
|
572 |
-
|
573 |
-
.metaslider .social .inside {
|
574 |
-
padding: 10px
|
575 |
-
}
|
576 |
-
|
577 |
-
.metaslider .social .inside ul.info {
|
578 |
-
width: 100%;
|
579 |
-
margin: 0;
|
580 |
-
height: 20px;
|
581 |
-
}
|
582 |
-
|
583 |
-
.metaslider .social .inside ul.info li {
|
584 |
-
display: inline;
|
585 |
-
float: left;
|
586 |
-
text-align: right;
|
587 |
-
}
|
588 |
-
|
589 |
-
.metaslider .shortcode input[type=text],
|
590 |
-
.metaslider .shortcode input[type=text]:active,
|
591 |
-
.metaslider .shortcode textarea,
|
592 |
-
.metaslider .shortcode textarea:active {
|
593 |
-
font-family: monospace;
|
594 |
-
font-size: 11px;
|
595 |
-
width: 100%;
|
596 |
-
background: transparent;
|
597 |
-
border: 0;
|
598 |
-
box-shadow: none;
|
599 |
-
}
|
600 |
-
|
601 |
-
.metaslider .shortcode textarea {
|
602 |
-
height: 65px
|
603 |
-
}
|
604 |
-
|
605 |
-
.metaslider .shortcode ul.tabs {
|
606 |
-
margin: 0
|
607 |
-
}
|
608 |
-
|
609 |
-
.metaslider .shortcode ul.tabs li.selected {
|
610 |
-
background: #fdfdfd;
|
611 |
-
border-bottom: 1px solid #fdfdfd;
|
612 |
-
}
|
613 |
-
|
614 |
-
.metaslider .shortcode .tabs-content {
|
615 |
-
clear: both;
|
616 |
-
background: #fdfdfd;
|
617 |
-
border-left: 1px solid #ccc;
|
618 |
-
border-right: 1px solid #ccc;
|
619 |
-
border-bottom: 1px solid #ccc;
|
620 |
-
padding: 10px;
|
621 |
-
}
|
622 |
-
|
623 |
-
.metaslider .right .ms-postbox table {
|
624 |
-
border: 0;
|
625 |
-
width: 100%;
|
626 |
-
}
|
627 |
-
|
628 |
-
.metaslider .right .ms-postbox table textarea {
|
629 |
-
width: 100%;
|
630 |
-
height: 100px;
|
631 |
-
font-family: monospace;
|
632 |
-
background: #272822;
|
633 |
-
color: #a6e22e;
|
634 |
-
}
|
635 |
-
|
636 |
-
.metaslider .right .ms-postbox h3 {
|
637 |
-
cursor: inherit
|
638 |
-
}
|
639 |
-
|
640 |
-
.metaslider .right .ms-postbox.ms-toggle h3 {
|
641 |
-
cursor: pointer
|
642 |
-
}
|
643 |
-
|
644 |
-
.metaslider .right table {
|
645 |
-
margin: 0 0 5px 0
|
646 |
-
}
|
647 |
-
|
648 |
-
.metaslider .right table td {
|
649 |
-
vertical-align: middle;
|
650 |
-
padding: 8px 4px;
|
651 |
-
border: 0;
|
652 |
-
height: 21px;
|
653 |
-
}
|
654 |
-
|
655 |
-
.metaslider table td,
|
656 |
-
.metaslider table td input[type=text],
|
657 |
-
.metaslider table td input[type=number],
|
658 |
-
.metaslider table td select,
|
659 |
-
.metaslider table td textarea,
|
660 |
-
.metaslider table td label {
|
661 |
-
font-size: 12px
|
662 |
-
}
|
663 |
-
|
664 |
-
.metaslider select {
|
665 |
-
height: auto
|
666 |
-
}
|
667 |
-
|
668 |
-
.metaslider .nav-tab-wrapper {
|
669 |
-
padding: 0;
|
670 |
-
width: 100%;
|
671 |
-
float: left;
|
672 |
-
margin: 20px 0;
|
673 |
-
}
|
674 |
-
|
675 |
-
.metaslider .nav-tab {
|
676 |
-
background: white;
|
677 |
-
padding: 9px 13px;
|
678 |
-
font-weight: normal;
|
679 |
-
margin: 0 4px 0 0;
|
680 |
-
}
|
681 |
-
|
682 |
-
.metaslider .nav-tab:hover {
|
683 |
-
background: transparent
|
684 |
-
}
|
685 |
-
.branch-3-5 .metaslider .nav-tab-active,
|
686 |
-
.branch-3-6 .metaslider .nav-tab-active,
|
687 |
-
.branch-3-7 .metaslider .nav-tab-active {
|
688 |
-
border-bottom: 1px solid white;
|
689 |
-
}
|
690 |
-
|
691 |
-
.metaslider .nav-tab-active {
|
692 |
-
background: transparent;
|
693 |
-
padding: 6px 6px 5px;
|
694 |
-
border-bottom: 1px solid #f1f1f1;
|
695 |
-
margin-top: auto;
|
696 |
-
position: relative;
|
697 |
-
top: 1px;
|
698 |
-
}
|
699 |
-
|
700 |
-
.metaslider .nav-tab-active input {
|
701 |
-
min-width: 100px;
|
702 |
-
padding: 3px 13px 3px 5px;
|
703 |
-
margin: 0;
|
704 |
-
border: 0;
|
705 |
-
width: 100px;
|
706 |
-
font-size: 13px;
|
707 |
-
background: transparent;
|
708 |
-
box-shadow: none;
|
709 |
-
}
|
710 |
-
|
711 |
-
.metaslider .nav-tab-active input:hover,
|
712 |
-
.metaslider .nav-tab-active input:focus {
|
713 |
-
-webkit-box-shadow: inset 2px 2px 2px 0px #dddddd;
|
714 |
-
-moz-box-shadow: inset 2px 2px 2px 0px #dddddd;
|
715 |
-
box-shadow: inset 2px 2px 2px 0px #dddddd;
|
716 |
-
background: white url(edit.png) no-repeat 98% center;
|
717 |
-
}
|
718 |
-
|
719 |
-
.metaslider .warning {
|
720 |
-
background-color: #ffebe8;
|
721 |
-
border: 1px solid #c00;
|
722 |
-
margin-bottom: 5px;
|
723 |
-
border-radius: 3px;
|
724 |
-
padding: 5px 10px;
|
725 |
-
}
|
726 |
-
|
727 |
-
input:-ms-input-placeholder {
|
728 |
-
color: LightGray
|
729 |
-
}
|
730 |
-
|
731 |
-
textarea:-ms-input-placeholder {
|
732 |
-
color: LightGray
|
733 |
-
}
|
734 |
-
|
735 |
-
.attachment-display-settings {
|
736 |
-
display: none
|
737 |
-
}
|
738 |
-
|
739 |
-
.metaslider .tabs-content,
|
740 |
-
.metaslider .tabs-content ul,
|
741 |
-
.metaslider .tabs-content li {
|
742 |
-
font-size: 12px
|
743 |
-
}
|
744 |
-
|
745 |
-
.metaslider .tabs-content input,
|
746 |
-
.metaslider .tabs-content select {
|
747 |
-
font-size: 11px
|
748 |
-
}
|
749 |
-
|
750 |
-
.metaslider .left .tabs-content {
|
751 |
-
clear: both;
|
752 |
-
}
|
753 |
-
|
754 |
-
.metaslider .tabs-content .row {
|
755 |
-
float: left;
|
756 |
-
clear: both;
|
757 |
-
width: 100%;
|
758 |
-
vertical-align: middle;
|
759 |
-
margin-bottom: 6px;
|
760 |
-
}
|
761 |
-
|
762 |
-
.metaslider .tabs-content .row.last {
|
763 |
-
margin-bottom: 0;
|
764 |
-
}
|
765 |
-
|
766 |
-
.metaslider .tabs-content .row label {
|
767 |
-
color: #999;
|
768 |
-
display: inline-block;
|
769 |
-
text-indent: 3px;
|
770 |
-
}
|
771 |
-
|
772 |
-
.metaslider .tabs-content .row input {
|
773 |
-
margin-right: 5px;
|
774 |
-
margin-bottom: 0px;
|
775 |
-
margin-left: 0px;
|
776 |
-
}
|
777 |
-
|
778 |
-
.metaslider .tabs-content .row input[type=text] {
|
779 |
-
width: 100%
|
780 |
-
}
|
781 |
-
|
782 |
-
.metaslider .tabs-content ul {
|
783 |
-
margin: 0
|
784 |
-
}
|
785 |
-
|
786 |
-
.metaslider .tabs-content li {
|
787 |
-
margin: 0 0 3px 0
|
788 |
-
}
|
789 |
-
|
790 |
-
.metaslider .tabs-content select {
|
791 |
-
font-size: 11px
|
792 |
-
}
|
793 |
-
|
794 |
-
.metaslider .tabs-content p {
|
795 |
-
font-style: italic;
|
796 |
-
color: #999999;
|
797 |
-
}
|
798 |
-
|
799 |
-
.metaslider ul.tabs {
|
800 |
-
float: left;
|
801 |
-
width: 100%;
|
802 |
-
margin: 0 0 10px 0;
|
803 |
-
border-bottom: 1px solid #ccc;
|
804 |
-
}
|
805 |
-
|
806 |
-
.metaslider ul.tabs li {
|
807 |
-
margin: 0 0 0 5px;
|
808 |
-
cursor: pointer;
|
809 |
-
padding: 3px 5px;
|
810 |
-
display: inline-block;
|
811 |
-
line-height: 14px;
|
812 |
-
color: #ccc;
|
813 |
-
position: relative;
|
814 |
-
top: 1px;
|
815 |
-
border: 1px solid transparent;
|
816 |
-
}
|
817 |
-
|
818 |
-
.metaslider ul.tabs li:hover {
|
819 |
-
color: #333
|
820 |
-
}
|
821 |
-
|
822 |
-
.metaslider ul.tabs li.selected {
|
823 |
-
font-weight: bold;
|
824 |
-
color: #666;
|
825 |
-
border: 1px solid #ccc;
|
826 |
-
border-bottom: 1px solid white;
|
827 |
-
}
|
828 |
-
|
829 |
-
.metaslider .left table tr.slide:nth-child(odd) ul.tabs li.selected {
|
830 |
-
border-bottom: 1px solid #f9f9f9
|
831 |
-
}
|
832 |
-
|
833 |
-
.metaslider .dropdown_container {
|
834 |
-
margin: 40px 0 10px 0;
|
835 |
-
}
|
836 |
-
#screen-meta-links #screen-options-switch-view-wrap {
|
837 |
-
float: right;
|
838 |
-
height: 28px;
|
839 |
-
margin: 0 0 0 6px;
|
840 |
-
border: 1px solid #ddd;
|
841 |
-
border-top: 0;
|
842 |
-
background: #fff;
|
843 |
-
-webkit-box-shadow: 0 1px 1px -1px rgba(0,0,0,.1);
|
844 |
-
box-shadow: 0 1px 1px -1px rgba(0,0,0,.1);
|
845 |
-
}
|
846 |
-
|
847 |
-
#screen-meta-links #screen-options-switch-view-wrap a {
|
848 |
-
padding: 3px 6px 3px 8px;
|
849 |
-
display: block;
|
850 |
-
font-size: 13px;
|
851 |
-
height: 22px;
|
852 |
-
line-height: 22px;
|
853 |
-
text-decoration: none;
|
854 |
-
z-index: 1;
|
855 |
-
color: #777;
|
856 |
-
}
|
857 |
-
|
858 |
-
#screen-meta-links #screen-options-link-wrap a {
|
859 |
-
padding: 3px 6px;
|
860 |
-
text-decoration: none;
|
861 |
-
line-height: 28px;
|
862 |
-
}
|
863 |
-
#screen-meta-links #screen-options-link-wrap a:before {
|
864 |
-
line-height: 28px;
|
865 |
-
}
|
866 |
-
|
867 |
-
#screen-meta-links #screen-options-link-wrap a:after,
|
868 |
-
#screen-meta-links #screen-options-switch-view-wrap a:after {
|
869 |
-
content: '';
|
870 |
-
}
|
871 |
-
#screen-meta-links #screen-options-link-wrap a:before,
|
872 |
-
#screen-meta-links #screen-options-switch-view-wrap a:before {
|
873 |
-
padding: 0px 8px 0 0;
|
874 |
-
}
|
875 |
-
|
876 |
-
.metaslider_gopro li:before {
|
877 |
-
top: 4px;
|
878 |
-
font: 400 20px/1 dashicons;
|
879 |
-
speak: none;
|
880 |
-
display: inline-block;
|
881 |
-
position: relative;
|
882 |
-
-webkit-font-smoothing: antialiased;
|
883 |
-
-moz-osx-font-smoothing: grayscale;
|
884 |
-
text-decoration: none!important;
|
885 |
-
content: '\f147';
|
886 |
-
color: #03b0d8;
|
887 |
-
}
|
888 |
-
|
889 |
-
#adminmenu .toplevel_page_metaslider .wp-menu-image img {
|
890 |
-
opacity: 1;
|
891 |
-
}
|
892 |
-
|
893 |
-
|
894 |
-
.metaslider_pro {
|
895 |
-
margin-top: 50px;
|
896 |
-
}
|
897 |
-
.metaslider_pro p {
|
898 |
-
text-align: center;
|
899 |
-
font-size: 1.2em;
|
900 |
-
}
|
901 |
-
|
902 |
-
.metaslider_pro .probutton,
|
903 |
-
.metaslider_pro .probutton:hover {
|
904 |
-
width: 36%;
|
905 |
-
margin: 20px 32% 10px 32%;
|
906 |
-
float: left;
|
907 |
-
font-size: 1.4em;
|
908 |
-
padding: 15px 0;
|
909 |
-
border-color: #3793B7;
|
910 |
-
background-color: #41add7;
|
911 |
-
background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #41add7), color-stop(100%, #218cb7));
|
912 |
-
background-image: -webkit-linear-gradient(top, #41add7, #218cb7);
|
913 |
-
background-image: -moz-linear-gradient(top, #41add7, #218cb7);
|
914 |
-
background-image: -o-linear-gradient(top, #41add7, #218cb7);
|
915 |
-
background-image: linear-gradient(top, #41add7, #218cb7);
|
916 |
-
-webkit-box-shadow: inset 0 1px rgba(255, 255, 255, 0.2), 0 1px 3px rgba(0, 0, 0, 0.2);
|
917 |
-
-moz-box-shadow: inset 0 1px rgba(255, 255, 255, 0.2), 0 1px 3px rgba(0, 0, 0, 0.2);
|
918 |
-
box-shadow: inset 0 1px rgba(255, 255, 255, 0.2), 0 1px 3px rgba(0, 0, 0, 0.2);
|
919 |
-
border-radius: 4px;
|
920 |
-
-webkit-box-shadow: inset 0 0 2px 0 rgba(57, 140, 255, 0.8);
|
921 |
-
box-shadow: inset 0 0 2px 0 rgba(57, 140, 255, 0.8);
|
922 |
-
color: #fff;
|
923 |
-
font-family: 'PT Sans', helvetica, arial, sans-serif;
|
924 |
-
text-shadow: 0 -1px 1px #1a5ad9;
|
925 |
-
color: white;
|
926 |
-
text-align: center;
|
927 |
-
text-decoration: none;
|
928 |
-
border-radius: 5px;
|
929 |
-
line-height: 2em;
|
930 |
-
}
|
931 |
-
|
932 |
-
.metaslider_pro .super {
|
933 |
-
text-transform: uppercase;
|
934 |
-
font-size: 0.7em;
|
935 |
-
vertical-align: top;
|
936 |
-
line-height: 2em;
|
937 |
-
}
|
938 |
-
|
939 |
-
.metaslider_pro .subtext {
|
940 |
-
float: left;
|
941 |
-
width: 100%;
|
942 |
-
text-align: center;
|
943 |
-
font-style: italic;
|
944 |
-
}
|
945 |
-
|
946 |
-
.metaslider_pro .logo {
|
947 |
-
text-transform: uppercase
|
948 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
assets/metaslider/admin.js
DELETED
@@ -1,388 +0,0 @@
|
|
1 |
-
jQuery(document).ready(function($) {
|
2 |
-
|
3 |
-
var add_slide_frame;
|
4 |
-
var change_slide_frame;
|
5 |
-
|
6 |
-
jQuery('.metaslider .add-slide').on('click', function(event){
|
7 |
-
event.preventDefault();
|
8 |
-
|
9 |
-
// If the media frame already exists, reopen it.
|
10 |
-
if ( add_slide_frame ) {
|
11 |
-
add_slide_frame.open();
|
12 |
-
return;
|
13 |
-
}
|
14 |
-
|
15 |
-
// Create the media frame.
|
16 |
-
add_slide_frame = wp.media.frames.file_frame = wp.media({
|
17 |
-
multiple: 'add',
|
18 |
-
frame: 'post',
|
19 |
-
library: {type: 'image'}
|
20 |
-
});
|
21 |
-
|
22 |
-
// When an image is selected, run a callback.
|
23 |
-
add_slide_frame.on('insert', function() {
|
24 |
-
|
25 |
-
jQuery(".metaslider .spinner").show().css('visibility', 'visible');
|
26 |
-
jQuery(".metaslider input[type=submit]").attr('disabled', 'disabled');
|
27 |
-
|
28 |
-
var selection = add_slide_frame.state().get('selection');
|
29 |
-
var slide_ids = [];
|
30 |
-
|
31 |
-
selection.map(function(attachment) {
|
32 |
-
attachment = attachment.toJSON();
|
33 |
-
slide_ids.push(attachment.id);
|
34 |
-
});
|
35 |
-
|
36 |
-
var data = {
|
37 |
-
action: 'create_image_slide',
|
38 |
-
slider_id: metaslider_slider_id,
|
39 |
-
selection: slide_ids,
|
40 |
-
_wpnonce: metaslider.addslide_nonce
|
41 |
-
};
|
42 |
-
|
43 |
-
jQuery.post(metaslider.ajaxurl, data, function(response) {
|
44 |
-
jQuery(".metaslider .left table").append(response);
|
45 |
-
jQuery(".metaslider .left table").trigger('resizeSlides');
|
46 |
-
});
|
47 |
-
});
|
48 |
-
|
49 |
-
add_slide_frame.open();
|
50 |
-
|
51 |
-
// Remove the Media Library tab (media_upload_tabs filter is broken in 3.6)
|
52 |
-
jQuery(".media-menu a:contains('Media Library')").remove();
|
53 |
-
|
54 |
-
});
|
55 |
-
|
56 |
-
|
57 |
-
jQuery('.metaslider .change-image').on('click', function(event){
|
58 |
-
|
59 |
-
event.preventDefault();
|
60 |
-
|
61 |
-
var $this = jQuery(this);
|
62 |
-
var slide_from = $this.attr('data-slide-id');
|
63 |
-
|
64 |
-
// Create the media frame.
|
65 |
-
change_slide_frame = wp.media.frames.file_frame = wp.media({
|
66 |
-
title: metaslider.change_image,
|
67 |
-
library: {type: 'image'},
|
68 |
-
button: {
|
69 |
-
text: $this.attr('data-button-text') // button text
|
70 |
-
}
|
71 |
-
});
|
72 |
-
|
73 |
-
// When an image is selected, run a callback.
|
74 |
-
change_slide_frame.on('select', function() {
|
75 |
-
|
76 |
-
jQuery(".metaslider .spinner").show().css('visibility', 'visible');
|
77 |
-
jQuery(".metaslider input[type=submit]").attr('disabled', 'disabled');
|
78 |
-
|
79 |
-
var selection = change_slide_frame.state().get('selection');
|
80 |
-
var slide_ids = [];
|
81 |
-
|
82 |
-
selection.map(function(attachment) {
|
83 |
-
attachment = attachment.toJSON();
|
84 |
-
slide_to = attachment.id;
|
85 |
-
slide_thumb = attachment.sizes.thumbnail.url;
|
86 |
-
});
|
87 |
-
|
88 |
-
var data = {
|
89 |
-
action: 'change_slide_image',
|
90 |
-
_wpnonce: metaslider.changeslide_nonce,
|
91 |
-
slide_from: slide_from,
|
92 |
-
slide_to: slide_to
|
93 |
-
};
|
94 |
-
|
95 |
-
if (data.slide_from !== data.slide_to) {
|
96 |
-
|
97 |
-
jQuery.post(metaslider.ajaxurl, data, function(response) {
|
98 |
-
|
99 |
-
response = JSON.parse(response);
|
100 |
-
|
101 |
-
if (response.status == 'success') {
|
102 |
-
$this.closest('div.thumb').css('background-image', 'url(' + slide_thumb + ')');
|
103 |
-
jQuery(".metaslider .left table").trigger('resizeSlides');
|
104 |
-
} else {
|
105 |
-
alert(response.msg);
|
106 |
-
}
|
107 |
-
|
108 |
-
});
|
109 |
-
|
110 |
-
}
|
111 |
-
|
112 |
-
});
|
113 |
-
|
114 |
-
change_slide_frame.open();
|
115 |
-
|
116 |
-
});
|
117 |
-
|
118 |
-
jQuery("#screen-options-link-wrap").appendTo("#screen-meta-links").show();
|
119 |
-
|
120 |
-
jQuery("#screen-options-switch-view-wrap").appendTo("#screen-meta-links").show();
|
121 |
-
|
122 |
-
// Enable the correct options for this slider type
|
123 |
-
var switchType = function(slider) {
|
124 |
-
jQuery('.metaslider .option:not(.' + slider + ')').attr('disabled', 'disabled').parents('tr').hide();
|
125 |
-
jQuery('.metaslider .option.' + slider).removeAttr('disabled').parents('tr').show();
|
126 |
-
jQuery('.metaslider input.radio:not(.' + slider + ')').attr('disabled', 'disabled');
|
127 |
-
jQuery('.metaslider input.radio.' + slider).removeAttr('disabled');
|
128 |
-
|
129 |
-
jQuery('.metaslider .showNextWhenChecked:visible').parent().parent().next('tr').hide();
|
130 |
-
jQuery('.metaslider .showNextWhenChecked:visible:checked').parent().parent().next('tr').show();
|
131 |
-
|
132 |
-
// make sure that the selected option is available for this slider type
|
133 |
-
if (jQuery('.effect option:selected').attr('disabled') === 'disabled') {
|
134 |
-
jQuery('.effect option:enabled:first').attr('selected', 'selected');
|
135 |
-
}
|
136 |
-
|
137 |
-
// make sure that the selected option is available for this slider type
|
138 |
-
if (jQuery('.theme option:selected').attr('disabled') === 'disabled') {
|
139 |
-
jQuery('.theme option:enabled:first').attr('selected', 'selected');
|
140 |
-
}
|
141 |
-
};
|
142 |
-
|
143 |
-
// enable the correct options on page load
|
144 |
-
switchType(jQuery(".metaslider .select-slider:checked").attr("rel"));
|
145 |
-
|
146 |
-
var toggleNextRow = function(checkbox) {
|
147 |
-
if(checkbox.is(':checked')){
|
148 |
-
checkbox.parent().parent().next("tr").show();
|
149 |
-
} else {
|
150 |
-
checkbox.parent().parent().next("tr").hide();
|
151 |
-
}
|
152 |
-
}
|
153 |
-
|
154 |
-
toggleNextRow(jQuery(".metaslider .showNextWhenChecked"));
|
155 |
-
|
156 |
-
jQuery(".metaslider .showNextWhenChecked").on("change", function() {
|
157 |
-
toggleNextRow(jQuery(this));
|
158 |
-
});
|
159 |
-
|
160 |
-
// mark the slide for resizing when the crop position has changed
|
161 |
-
jQuery(".metaslider").on('change', '.left tr.slide .crop_position', function() {
|
162 |
-
jQuery(this).closest('tr').data('crop_changed', true);
|
163 |
-
});
|
164 |
-
|
165 |
-
// handle slide libary switching
|
166 |
-
jQuery(".metaslider .select-slider").on("click", function() {
|
167 |
-
switchType(jQuery(this).attr("rel"));
|
168 |
-
});
|
169 |
-
|
170 |
-
// return a helper with preserved width of cells
|
171 |
-
var metaslider_sortable_helper = function(e, ui) {
|
172 |
-
ui.children().each(function() {
|
173 |
-
jQuery(this).width(jQuery(this).width());
|
174 |
-
});
|
175 |
-
return ui;
|
176 |
-
};
|
177 |
-
|
178 |
-
// drag and drop slides, update the slide order on drop
|
179 |
-
jQuery(".metaslider .left table tbody").sortable({
|
180 |
-
helper: metaslider_sortable_helper,
|
181 |
-
handle: "td.col-1",
|
182 |
-
stop: function() {
|
183 |
-
jQuery(".metaslider .left table").trigger("updateSlideOrder");
|
184 |
-
jQuery(".metaslider form #ms-save").click();
|
185 |
-
}
|
186 |
-
});
|
187 |
-
|
188 |
-
// bind an event to the slides table to update the menu order of each slide
|
189 |
-
jQuery(".metaslider .left table").live("updateSlideOrder", function(event) {
|
190 |
-
jQuery("tr", this).each(function() {
|
191 |
-
jQuery("input.menu_order", jQuery(this)).val(jQuery(this).index());
|
192 |
-
});
|
193 |
-
});
|
194 |
-
|
195 |
-
// bind an event to the slides table to update the menu order of each slide
|
196 |
-
jQuery(".metaslider .left table").live("resizeSlides", function(event) {
|
197 |
-
var slideshow_width = jQuery("input.width").val();
|
198 |
-
var slideshow_height = jQuery("input.height").val();
|
199 |
-
|
200 |
-
jQuery("tr.slide input[name='resize_slide_id']", this).each(function() {
|
201 |
-
$this = jQuery(this);
|
202 |
-
|
203 |
-
var thumb_width = $this.attr("data-width");
|
204 |
-
var thumb_height = $this.attr("data-height");
|
205 |
-
var slide_row = jQuery(this).closest('tr');
|
206 |
-
var crop_changed = slide_row.data('crop_changed');
|
207 |
-
|
208 |
-
if (thumb_width != slideshow_width || thumb_height != slideshow_height || crop_changed === true ) {
|
209 |
-
$this.attr("data-width", slideshow_width);
|
210 |
-
$this.attr("data-height", slideshow_height);
|
211 |
-
|
212 |
-
var data = {
|
213 |
-
action: "resize_image_slide",
|
214 |
-
slider_id: window.parent.metaslider_slider_id,
|
215 |
-
slide_id: $this.attr("data-slide_id"),
|
216 |
-
_wpnonce: metaslider.resize_nonce
|
217 |
-
};
|
218 |
-
|
219 |
-
jQuery.ajax({
|
220 |
-
type: "POST",
|
221 |
-
data : data,
|
222 |
-
async: false,
|
223 |
-
cache: false,
|
224 |
-
url: metaslider.ajaxurl,
|
225 |
-
success: function(data) {
|
226 |
-
if (crop_changed === true) {
|
227 |
-
slide_row.data('crop_changed', false);
|
228 |
-
}
|
229 |
-
|
230 |
-
if (console && console.log) {
|
231 |
-
console.log(data);
|
232 |
-
}
|
233 |
-
}
|
234 |
-
});
|
235 |
-
}
|
236 |
-
});
|
237 |
-
});
|
238 |
-
|
239 |
-
jQuery(document).ajaxStop(function() {
|
240 |
-
jQuery(".metaslider .spinner").hide().css('visibility', '');
|
241 |
-
jQuery(".metaslider input[type=submit]").removeAttr("disabled");
|
242 |
-
});
|
243 |
-
|
244 |
-
|
245 |
-
jQuery(".useWithCaution").on("change", function(){
|
246 |
-
if(!this.checked) {
|
247 |
-
return alert(metaslider.useWithCaution);
|
248 |
-
}
|
249 |
-
});
|
250 |
-
|
251 |
-
// helptext tooltips
|
252 |
-
jQuery(".tipsy-tooltip").tipsy({className: 'msTipsy', live: true, delayIn: 500, html: true, gravity: 'e'});
|
253 |
-
jQuery(".tipsy-tooltip-top").tipsy({live: true, delayIn: 500, html: true, gravity: 's'});
|
254 |
-
|
255 |
-
// Select input field contents when clicked
|
256 |
-
jQuery(".metaslider .shortcode input, .metaslider .shortcode textarea").on('click', function() {
|
257 |
-
this.select();
|
258 |
-
});
|
259 |
-
|
260 |
-
// return lightbox width
|
261 |
-
var getLightboxWidth = function() {
|
262 |
-
var width = parseInt(jQuery('input.width').val(), 10);
|
263 |
-
|
264 |
-
if (jQuery('.carouselMode').is(':checked')) {
|
265 |
-
width = '75%';
|
266 |
-
}
|
267 |
-
|
268 |
-
return width;
|
269 |
-
};
|
270 |
-
|
271 |
-
// return lightbox height
|
272 |
-
var getLightboxHeight = function() {
|
273 |
-
var height = parseInt(jQuery('input.height').val(), 10);
|
274 |
-
var thumb_height = parseInt(jQuery('input.thumb_height').val(), 10);
|
275 |
-
|
276 |
-
if (isNaN(height)) {
|
277 |
-
height = '70%';
|
278 |
-
} else {
|
279 |
-
height = height + 50;
|
280 |
-
|
281 |
-
if (!isNaN(thumb_height)) {
|
282 |
-
height = height + thumb_height;
|
283 |
-
}
|
284 |
-
}
|
285 |
-
|
286 |
-
return height;
|
287 |
-
};
|
288 |
-
|
289 |
-
|
290 |
-
// IE10 treats placeholder text as the actual value of a textarea
|
291 |
-
// http://stackoverflow.com/questions/13764607/html5-placeholder-attribute-on-textarea-via-jquery-in-ie10
|
292 |
-
var fixIE10PlaceholderText = function() {
|
293 |
-
jQuery("textarea").each(function() {
|
294 |
-
if (jQuery(this).val() == jQuery(this).attr('placeholder')) {
|
295 |
-
jQuery(this).val('');
|
296 |
-
}
|
297 |
-
});
|
298 |
-
}
|
299 |
-
|
300 |
-
jQuery(".metaslider .ms-toggle .hndle, .metaslider .ms-toggle .handlediv").on('click', function() {
|
301 |
-
jQuery(this).parent().toggleClass('closed');
|
302 |
-
});
|
303 |
-
|
304 |
-
jQuery(".metaslider").on('click', 'ul.tabs li', function() {
|
305 |
-
var tab = jQuery(this);
|
306 |
-
tab.parent().parent().children('.tabs-content').children('div.tab').hide();
|
307 |
-
tab.parent().parent().children('.tabs-content').children('div.'+tab.attr('rel')).show();
|
308 |
-
tab.siblings().removeClass("selected");
|
309 |
-
tab.addClass("selected");
|
310 |
-
});
|
311 |
-
|
312 |
-
|
313 |
-
// show the confirm dialogue
|
314 |
-
jQuery(".metaslider").on('click', '.delete-slider', function() {
|
315 |
-
return confirm(metaslider.confirm);
|
316 |
-
});
|
317 |
-
|
318 |
-
// delete a slide using ajax (avoid losing changes)
|
319 |
-
jQuery(".metaslider").on('click', '.delete-slide', function(e) {
|
320 |
-
e.preventDefault();
|
321 |
-
|
322 |
-
var link = jQuery(this);
|
323 |
-
|
324 |
-
if (confirm(metaslider.confirm)) {
|
325 |
-
jQuery.get( link.attr('href') , function( data ) {
|
326 |
-
link.closest('tr').fadeOut(400, function() {
|
327 |
-
jQuery(this).remove();
|
328 |
-
});
|
329 |
-
});
|
330 |
-
}
|
331 |
-
});
|
332 |
-
|
333 |
-
// AJAX save & preview
|
334 |
-
jQuery(".metaslider form").find("input[type=submit]").on("click", function(e) {
|
335 |
-
e.preventDefault();
|
336 |
-
|
337 |
-
jQuery(".metaslider .spinner").show().css('visibility', 'visible');
|
338 |
-
jQuery(".metaslider input[type=submit]").attr("disabled", "disabled");
|
339 |
-
|
340 |
-
// update slide order
|
341 |
-
jQuery(".metaslider .left table").trigger('updateSlideOrder');
|
342 |
-
|
343 |
-
fixIE10PlaceholderText();
|
344 |
-
|
345 |
-
// get some values from elements on the page:
|
346 |
-
var the_form = jQuery(this).parents("form");
|
347 |
-
var data = the_form.serialize();
|
348 |
-
var url = the_form.attr("action");
|
349 |
-
var button = e.target;
|
350 |
-
|
351 |
-
jQuery.ajax({
|
352 |
-
type: "POST",
|
353 |
-
data : data,
|
354 |
-
cache: false,
|
355 |
-
url: url,
|
356 |
-
success: function(data) {
|
357 |
-
var response = jQuery(data);
|
358 |
-
|
359 |
-
jQuery.when(jQuery(".metaslider .left table").trigger("resizeSlides")).done(function() {
|
360 |
-
|
361 |
-
jQuery("button[data-thumb]", response).each(function() {
|
362 |
-
var $this = jQuery(this);
|
363 |
-
var editor_id = $this.attr("data-editor_id");
|
364 |
-
jQuery("button[data-editor_id=" + editor_id + "]")
|
365 |
-
.attr("data-thumb", $this.attr("data-thumb"))
|
366 |
-
.attr("data-width", $this.attr("data-width"))
|
367 |
-
.attr("data-height", $this.attr("data-height"));
|
368 |
-
});
|
369 |
-
|
370 |
-
fixIE10PlaceholderText();
|
371 |
-
|
372 |
-
if (button.id === "ms-preview") {
|
373 |
-
jQuery.colorbox({
|
374 |
-
iframe: true,
|
375 |
-
href: metaslider.iframeurl + "&slider_id=" + jQuery(button).data("slider_id"),
|
376 |
-
transition: "elastic",
|
377 |
-
innerHeight: getLightboxHeight(),
|
378 |
-
innerWidth: getLightboxWidth(),
|
379 |
-
scrolling: false,
|
380 |
-
fastIframe: false
|
381 |
-
});
|
382 |
-
}
|
383 |
-
|
384 |
-
});
|
385 |
-
}
|
386 |
-
});
|
387 |
-
});
|
388 |
-
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
assets/metaslider/public.css
CHANGED
@@ -1,11 +1,7 @@
|
|
1 |
/**
|
2 |
-
* The
|
3 |
-
* This file contains
|
4 |
-
* - resets, in an attempt to ensure sliders display properly in all themes
|
5 |
-
* - modifications to the default sliders CSS
|
6 |
*/
|
7 |
|
8 |
-
/* general resets */
|
9 |
.metaslider {
|
10 |
position: relative;
|
11 |
z-index: 0;
|
@@ -68,39 +64,11 @@
|
|
68 |
width: auto;
|
69 |
}
|
70 |
|
71 |
-
|
72 |
-
.
|
73 |
-
.
|
74 |
-
.article .metaslider li,
|
75 |
-
.article .metaslider img,
|
76 |
-
.art-article .metaslider ul,
|
77 |
-
.art-article .metaslider ol,
|
78 |
-
.art-article .metaslider li,
|
79 |
-
.art-article .metaslider img,
|
80 |
-
#widgets .metaslider ul,
|
81 |
-
#widgets .metaslider ol,
|
82 |
-
#widgets .metaslider li,
|
83 |
-
#widgets .metaslider img,
|
84 |
-
.entry .metaslider ul,
|
85 |
-
.entry .metaslider ol,
|
86 |
-
.entry .metaslider li,
|
87 |
-
.entry .metaslider img,
|
88 |
-
#content .metaslider ul,
|
89 |
-
#content .metaslider ol,
|
90 |
-
#content .metaslider li,
|
91 |
-
#content .metaslider img,
|
92 |
-
.entry-content .metaslider ul,
|
93 |
-
.entry-content .metaslider ol,
|
94 |
-
.entry-content .metaslider li,
|
95 |
-
.entry-content .metaslider img,
|
96 |
-
.metaslider .flexslider ul,
|
97 |
-
.metaslider .flexslider .slides li,
|
98 |
-
.metaslider .flexslider .slides ul,
|
99 |
-
.metaslider .flexslider .slides ol,
|
100 |
-
.metaslider .flexslider .flex-direction-nav,
|
101 |
-
.metaslider .flexslider .flex-direction-nav li,
|
102 |
-
*[class*='-article'] .metaslider img {
|
103 |
border: 0;
|
|
|
104 |
margin: 0;
|
105 |
list-style-type: none;
|
106 |
list-style: none;
|
@@ -110,7 +78,98 @@
|
|
110 |
max-height: none;
|
111 |
}
|
112 |
|
|
|
|
|
|
|
113 |
.metaslider .slides img {
|
114 |
width: 100%;
|
115 |
display: block;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
116 |
}
|
1 |
/**
|
2 |
+
* The following styles will provide an attempt to normalize the sliders
|
|
|
|
|
|
|
3 |
*/
|
4 |
|
|
|
5 |
.metaslider {
|
6 |
position: relative;
|
7 |
z-index: 0;
|
64 |
width: auto;
|
65 |
}
|
66 |
|
67 |
+
.metaslider .slider-wrapper .nivo-directionNav a,
|
68 |
+
.metaslider .slider-wrapper .nivo-controlNav a,
|
69 |
+
.metaslider .slider-wrapper img {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
70 |
border: 0;
|
71 |
+
box-shadow: none;
|
72 |
margin: 0;
|
73 |
list-style-type: none;
|
74 |
list-style: none;
|
78 |
max-height: none;
|
79 |
}
|
80 |
|
81 |
+
.metaslider .slides {
|
82 |
+
display: inline-block;
|
83 |
+
}
|
84 |
.metaslider .slides img {
|
85 |
width: 100%;
|
86 |
display: block;
|
87 |
+
}
|
88 |
+
|
89 |
+
/* Flexslider */
|
90 |
+
|
91 |
+
/* Arrow styles to use background images (old style) */
|
92 |
+
/* which makes it compatible with the theme builder */
|
93 |
+
.flexslider {
|
94 |
+
margin: 0;
|
95 |
+
}
|
96 |
+
|
97 |
+
.flex-control-nav {
|
98 |
+
width: auto;
|
99 |
+
position: static;
|
100 |
+
text-align: center;
|
101 |
+
padding: 10px;
|
102 |
+
height: 11px;
|
103 |
+
}
|
104 |
+
|
105 |
+
.flex-direction-nav a:before {
|
106 |
+
content:none!important;
|
107 |
+
}
|
108 |
+
.flex-direction-nav a {
|
109 |
+
width: 30px;
|
110 |
+
height: 30px;
|
111 |
+
margin: -20px 0 0;
|
112 |
+
box-shadow: none!important;
|
113 |
+
display: block;
|
114 |
+
background: url('../sliders/flexslider/bg_direction_nav.png') no-repeat 0 0;
|
115 |
+
position: absolute;
|
116 |
+
top: 50%;
|
117 |
+
z-index: 10;
|
118 |
+
cursor: pointer;
|
119 |
+
text-indent: -9999px;
|
120 |
+
opacity: 0;
|
121 |
+
-webkit-transition: all .3s ease;
|
122 |
+
-moz-transition: opacity .25s ease-in-out;
|
123 |
+
transition: all .3s ease;
|
124 |
+
}
|
125 |
+
.flex-direction-nav .flex-next {
|
126 |
+
background-position: 100% 0;
|
127 |
+
|
128 |
+
/* Fix for single character text */
|
129 |
+
text-indent: 9999px;
|
130 |
+
}
|
131 |
+
.flexslider:hover .flex-next {
|
132 |
+
opacity: 0.8;
|
133 |
+
right: 5px;
|
134 |
+
}
|
135 |
+
.flexslider:hover .flex-prev {
|
136 |
+
opacity: 0.8;
|
137 |
+
left: 5px;
|
138 |
+
|
139 |
+
/* Fix for single character text */
|
140 |
+
text-indent: -9999px;
|
141 |
+
}
|
142 |
+
.flexslider:hover .flex-next:hover,
|
143 |
+
.flexslider:hover .flex-prev:hover {
|
144 |
+
opacity: 1;
|
145 |
+
}
|
146 |
+
.flex-direction-nav .flex-disabled {
|
147 |
+
cursor: default;
|
148 |
+
pointer-events: none;
|
149 |
+
}
|
150 |
+
.flex-control-nav a {
|
151 |
+
box-shadow: none !important;
|
152 |
+
}
|
153 |
+
|
154 |
+
/* Responsive Slides */
|
155 |
+
.rslides_nav,
|
156 |
+
.rslides_tabs a {
|
157 |
+
box-shadow: none !important;
|
158 |
+
}
|
159 |
+
|
160 |
+
.metaslider .rslides_nav:focus,
|
161 |
+
.metaslider .rslides_nav:hover {
|
162 |
+
color: #ffffff;
|
163 |
+
}
|
164 |
+
|
165 |
+
/* Coin Slider */
|
166 |
+
.metaslider .coin-slider {
|
167 |
+
|
168 |
+
/* This keeps the slider from spilling out the container */
|
169 |
+
max-width: 100%;
|
170 |
+
overflow:hidden;
|
171 |
+
}
|
172 |
+
.metaslider .coin-slider .cs-buttons a,
|
173 |
+
.metaslider .coin-slider > a {
|
174 |
+
box-shadow: none !important;
|
175 |
}
|
assets/sliders/flexslider/LICENSE.md
ADDED
@@ -0,0 +1,339 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
GNU GENERAL PUBLIC LICENSE
|
2 |
+
Version 2, June 1991
|
3 |
+
|
4 |
+
Copyright (C) 1989, 1991 Free Software Foundation, Inc., <http://fsf.org/>
|
5 |
+
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
6 |
+
Everyone is permitted to copy and distribute verbatim copies
|
7 |
+
of this license document, but changing it is not allowed.
|
8 |
+
|
9 |
+
Preamble
|
10 |
+
|
11 |
+
The licenses for most software are designed to take away your
|
12 |
+
freedom to share and change it. By contrast, the GNU General Public
|
13 |
+
License is intended to guarantee your freedom to share and change free
|
14 |
+
software--to make sure the software is free for all its users. This
|
15 |
+
General Public License applies to most of the Free Software
|
16 |
+
Foundation's software and to any other program whose authors commit to
|
17 |
+
using it. (Some other Free Software Foundation software is covered by
|
18 |
+
the GNU Lesser General Public License instead.) You can apply it to
|
19 |
+
your programs, too.
|
20 |
+
|
21 |
+
When we speak of free software, we are referring to freedom, not
|
22 |
+
price. Our General Public Licenses are designed to make sure that you
|
23 |
+
have the freedom to distribute copies of free software (and charge for
|
24 |
+
this service if you wish), that you receive source code or can get it
|
25 |
+
if you want it, that you can change the software or use pieces of it
|
26 |
+
in new free programs; and that you know you can do these things.
|
27 |
+
|
28 |
+
To protect your rights, we need to make restrictions that forbid
|
29 |
+
anyone to deny you these rights or to ask you to surrender the rights.
|
30 |
+
These restrictions translate to certain responsibilities for you if you
|
31 |
+
distribute copies of the software, or if you modify it.
|
32 |
+
|
33 |
+
For example, if you distribute copies of such a program, whether
|
34 |
+
gratis or for a fee, you must give the recipients all the rights that
|
35 |
+
you have. You must make sure that they, too, receive or can get the
|
36 |
+
source code. And you must show them these terms so they know their
|
37 |
+
rights.
|
38 |
+
|
39 |
+
We protect your rights with two steps: (1) copyright the software, and
|
40 |
+
(2) offer you this license which gives you legal permission to copy,
|
41 |
+
distribute and/or modify the software.
|
42 |
+
|
43 |
+
Also, for each author's protection and ours, we want to make certain
|
44 |
+
that everyone understands that there is no warranty for this free
|
45 |
+
software. If the software is modified by someone else and passed on, we
|
46 |
+
want its recipients to know that what they have is not the original, so
|
47 |
+
that any problems introduced by others will not reflect on the original
|
48 |
+
authors' reputations.
|
49 |
+
|
50 |
+
Finally, any free program is threatened constantly by software
|
51 |
+
patents. We wish to avoid the danger that redistributors of a free
|
52 |
+
program will individually obtain patent licenses, in effect making the
|
53 |
+
program proprietary. To prevent this, we have made it clear that any
|
54 |
+
patent must be licensed for everyone's free use or not licensed at all.
|
55 |
+
|
56 |
+
The precise terms and conditions for copying, distribution and
|
57 |
+
modification follow.
|
58 |
+
|
59 |
+
GNU GENERAL PUBLIC LICENSE
|
60 |
+
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
61 |
+
|
62 |
+
0. This License applies to any program or other work which contains
|
63 |
+
a notice placed by the copyright holder saying it may be distributed
|
64 |
+
under the terms of this General Public License. The "Program", below,
|
65 |
+
refers to any such program or work, and a "work based on the Program"
|
66 |
+
means either the Program or any derivative work under copyright law:
|
67 |
+
that is to say, a work containing the Program or a portion of it,
|
68 |
+
either verbatim or with modifications and/or translated into another
|
69 |
+
language. (Hereinafter, translation is included without limitation in
|
70 |
+
the term "modification".) Each licensee is addressed as "you".
|
71 |
+
|
72 |
+
Activities other than copying, distribution and modification are not
|
73 |
+
covered by this License; they are outside its scope. The act of
|
74 |
+
running the Program is not restricted, and the output from the Program
|
75 |
+
is covered only if its contents constitute a work based on the
|
76 |
+
Program (independent of having been made by running the Program).
|
77 |
+
Whether that is true depends on what the Program does.
|
78 |
+
|
79 |
+
1. You may copy and distribute verbatim copies of the Program's
|
80 |
+
source code as you receive it, in any medium, provided that you
|
81 |
+
conspicuously and appropriately publish on each copy an appropriate
|
82 |
+
copyright notice and disclaimer of warranty; keep intact all the
|
83 |
+
notices that refer to this License and to the absence of any warranty;
|
84 |
+
and give any other recipients of the Program a copy of this License
|
85 |
+
along with the Program.
|
86 |
+
|
87 |
+
You may charge a fee for the physical act of transferring a copy, and
|
88 |
+
you may at your option offer warranty protection in exchange for a fee.
|
89 |
+
|
90 |
+
2. You may modify your copy or copies of the Program or any portion
|
91 |
+
of it, thus forming a work based on the Program, and copy and
|
92 |
+
distribute such modifications or work under the terms of Section 1
|
93 |
+
above, provided that you also meet all of these conditions:
|
94 |
+
|
95 |
+
a) You must cause the modified files to carry prominent notices
|
96 |
+
stating that you changed the files and the date of any change.
|
97 |
+
|
98 |
+
b) You must cause any work that you distribute or publish, that in
|
99 |
+
whole or in part contains or is derived from the Program or any
|
100 |
+
part thereof, to be licensed as a whole at no charge to all third
|
101 |
+
parties under the terms of this License.
|
102 |
+
|
103 |
+
c) If the modified program normally reads commands interactively
|
104 |
+
when run, you must cause it, when started running for such
|
105 |
+
interactive use in the most ordinary way, to print or display an
|
106 |
+
announcement including an appropriate copyright notice and a
|
107 |
+
notice that there is no warranty (or else, saying that you provide
|
108 |
+
a warranty) and that users may redistribute the program under
|
109 |
+
these conditions, and telling the user how to view a copy of this
|
110 |
+
License. (Exception: if the Program itself is interactive but
|
111 |
+
does not normally print such an announcement, your work based on
|
112 |
+
the Program is not required to print an announcement.)
|
113 |
+
|
114 |
+
These requirements apply to the modified work as a whole. If
|
115 |
+
identifiable sections of that work are not derived from the Program,
|
116 |
+
and can be reasonably considered independent and separate works in
|
117 |
+
themselves, then this License, and its terms, do not apply to those
|
118 |
+
sections when you distribute them as separate works. But when you
|
119 |
+
distribute the same sections as part of a whole which is a work based
|
120 |
+
on the Program, the distribution of the whole must be on the terms of
|
121 |
+
this License, whose permissions for other licensees extend to the
|
122 |
+
entire whole, and thus to each and every part regardless of who wrote it.
|
123 |
+
|
124 |
+
Thus, it is not the intent of this section to claim rights or contest
|
125 |
+
your rights to work written entirely by you; rather, the intent is to
|
126 |
+
exercise the right to control the distribution of derivative or
|
127 |
+
collective works based on the Program.
|
128 |
+
|
129 |
+
In addition, mere aggregation of another work not based on the Program
|
130 |
+
with the Program (or with a work based on the Program) on a volume of
|
131 |
+
a storage or distribution medium does not bring the other work under
|
132 |
+
the scope of this License.
|
133 |
+
|
134 |
+
3. You may copy and distribute the Program (or a work based on it,
|
135 |
+
under Section 2) in object code or executable form under the terms of
|
136 |
+
Sections 1 and 2 above provided that you also do one of the following:
|
137 |
+
|
138 |
+
a) Accompany it with the complete corresponding machine-readable
|
139 |
+
source code, which must be distributed under the terms of Sections
|
140 |
+
1 and 2 above on a medium customarily used for software interchange; or,
|
141 |
+
|
142 |
+
b) Accompany it with a written offer, valid for at least three
|
143 |
+
years, to give any third party, for a charge no more than your
|
144 |
+
cost of physically performing source distribution, a complete
|
145 |
+
machine-readable copy of the corresponding source code, to be
|
146 |
+
distributed under the terms of Sections 1 and 2 above on a medium
|
147 |
+
customarily used for software interchange; or,
|
148 |
+
|
149 |
+
c) Accompany it with the information you received as to the offer
|
150 |
+
to distribute corresponding source code. (This alternative is
|
151 |
+
allowed only for noncommercial distribution and only if you
|
152 |
+
received the program in object code or executable form with such
|
153 |
+
an offer, in accord with Subsection b above.)
|
154 |
+
|
155 |
+
The source code for a work means the preferred form of the work for
|
156 |
+
making modifications to it. For an executable work, complete source
|
157 |
+
code means all the source code for all modules it contains, plus any
|
158 |
+
associated interface definition files, plus the scripts used to
|
159 |
+
control compilation and installation of the executable. However, as a
|
160 |
+
special exception, the source code distributed need not include
|
161 |
+
anything that is normally distributed (in either source or binary
|
162 |
+
form) with the major components (compiler, kernel, and so on) of the
|
163 |
+
operating system on which the executable runs, unless that component
|
164 |
+
itself accompanies the executable.
|
165 |
+
|
166 |
+
If distribution of executable or object code is made by offering
|
167 |
+
access to copy from a designated place, then offering equivalent
|
168 |
+
access to copy the source code from the same place counts as
|
169 |
+
distribution of the source code, even though third parties are not
|
170 |
+
compelled to copy the source along with the object code.
|
171 |
+
|
172 |
+
4. You may not copy, modify, sublicense, or distribute the Program
|
173 |
+
except as expressly provided under this License. Any attempt
|
174 |
+
otherwise to copy, modify, sublicense or distribute the Program is
|
175 |
+
void, and will automatically terminate your rights under this License.
|
176 |
+
However, parties who have received copies, or rights, from you under
|
177 |
+
this License will not have their licenses terminated so long as such
|
178 |
+
parties remain in full compliance.
|
179 |
+
|
180 |
+
5. You are not required to accept this License, since you have not
|
181 |
+
signed it. However, nothing else grants you permission to modify or
|
182 |
+
distribute the Program or its derivative works. These actions are
|
183 |
+
prohibited by law if you do not accept this License. Therefore, by
|
184 |
+
modifying or distributing the Program (or any work based on the
|
185 |
+
Program), you indicate your acceptance of this License to do so, and
|
186 |
+
all its terms and conditions for copying, distributing or modifying
|
187 |
+
the Program or works based on it.
|
188 |
+
|
189 |
+
6. Each time you redistribute the Program (or any work based on the
|
190 |
+
Program), the recipient automatically receives a license from the
|
191 |
+
original licensor to copy, distribute or modify the Program subject to
|
192 |
+
these terms and conditions. You may not impose any further
|
193 |
+
restrictions on the recipients' exercise of the rights granted herein.
|
194 |
+
You are not responsible for enforcing compliance by third parties to
|
195 |
+
this License.
|
196 |
+
|
197 |
+
7. If, as a consequence of a court judgment or allegation of patent
|
198 |
+
infringement or for any other reason (not limited to patent issues),
|
199 |
+
conditions are imposed on you (whether by court order, agreement or
|
200 |
+
otherwise) that contradict the conditions of this License, they do not
|
201 |
+
excuse you from the conditions of this License. If you cannot
|
202 |
+
distribute so as to satisfy simultaneously your obligations under this
|
203 |
+
License and any other pertinent obligations, then as a consequence you
|
204 |
+
may not distribute the Program at all. For example, if a patent
|
205 |
+
license would not permit royalty-free redistribution of the Program by
|
206 |
+
all those who receive copies directly or indirectly through you, then
|
207 |
+
the only way you could satisfy both it and this License would be to
|
208 |
+
refrain entirely from distribution of the Program.
|
209 |
+
|
210 |
+
If any portion of this section is held invalid or unenforceable under
|
211 |
+
any particular circumstance, the balance of the section is intended to
|
212 |
+
apply and the section as a whole is intended to apply in other
|
213 |
+
circumstances.
|
214 |
+
|
215 |
+
It is not the purpose of this section to induce you to infringe any
|
216 |
+
patents or other property right claims or to contest validity of any
|
217 |
+
such claims; this section has the sole purpose of protecting the
|
218 |
+
integrity of the free software distribution system, which is
|
219 |
+
implemented by public license practices. Many people have made
|
220 |
+
generous contributions to the wide range of software distributed
|
221 |
+
through that system in reliance on consistent application of that
|
222 |
+
system; it is up to the author/donor to decide if he or she is willing
|
223 |
+
to distribute software through any other system and a licensee cannot
|
224 |
+
impose that choice.
|
225 |
+
|
226 |
+
This section is intended to make thoroughly clear what is believed to
|
227 |
+
be a consequence of the rest of this License.
|
228 |
+
|
229 |
+
8. If the distribution and/or use of the Program is restricted in
|
230 |
+
certain countries either by patents or by copyrighted interfaces, the
|
231 |
+
original copyright holder who places the Program under this License
|
232 |
+
may add an explicit geographical distribution limitation excluding
|
233 |
+
those countries, so that distribution is permitted only in or among
|
234 |
+
countries not thus excluded. In such case, this License incorporates
|
235 |
+
the limitation as if written in the body of this License.
|
236 |
+
|
237 |
+
9. The Free Software Foundation may publish revised and/or new versions
|
238 |
+
of the General Public License from time to time. Such new versions will
|
239 |
+
be similar in spirit to the present version, but may differ in detail to
|
240 |
+
address new problems or concerns.
|
241 |
+
|
242 |
+
Each version is given a distinguishing version number. If the Program
|
243 |
+
specifies a version number of this License which applies to it and "any
|
244 |
+
later version", you have the option of following the terms and conditions
|
245 |
+
either of that version or of any later version published by the Free
|
246 |
+
Software Foundation. If the Program does not specify a version number of
|
247 |
+
this License, you may choose any version ever published by the Free Software
|
248 |
+
Foundation.
|
249 |
+
|
250 |
+
10. If you wish to incorporate parts of the Program into other free
|
251 |
+
programs whose distribution conditions are different, write to the author
|
252 |
+
to ask for permission. For software which is copyrighted by the Free
|
253 |
+
Software Foundation, write to the Free Software Foundation; we sometimes
|
254 |
+
make exceptions for this. Our decision will be guided by the two goals
|
255 |
+
of preserving the free status of all derivatives of our free software and
|
256 |
+
of promoting the sharing and reuse of software generally.
|
257 |
+
|
258 |
+
NO WARRANTY
|
259 |
+
|
260 |
+
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
261 |
+
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
262 |
+
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
263 |
+
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
264 |
+
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
265 |
+
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
266 |
+
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
267 |
+
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
268 |
+
REPAIR OR CORRECTION.
|
269 |
+
|
270 |
+
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
271 |
+
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
272 |
+
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
273 |
+
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
|
274 |
+
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
275 |
+
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
276 |
+
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
277 |
+
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
278 |
+
POSSIBILITY OF SUCH DAMAGES.
|
279 |
+
|
280 |
+
END OF TERMS AND CONDITIONS
|
281 |
+
|
282 |
+
How to Apply These Terms to Your New Programs
|
283 |
+
|
284 |
+
If you develop a new program, and you want it to be of the greatest
|
285 |
+
possible use to the public, the best way to achieve this is to make it
|
286 |
+
free software which everyone can redistribute and change under these terms.
|
287 |
+
|
288 |
+
To do so, attach the following notices to the program. It is safest
|
289 |
+
to attach them to the start of each source file to most effectively
|
290 |
+
convey the exclusion of warranty; and each file should have at least
|
291 |
+
the "copyright" line and a pointer to where the full notice is found.
|
292 |
+
|
293 |
+
{description}
|
294 |
+
Copyright (C) {year} {fullname}
|
295 |
+
|
296 |
+
This program is free software; you can redistribute it and/or modify
|
297 |
+
it under the terms of the GNU General Public License as published by
|
298 |
+
the Free Software Foundation; either version 2 of the License, or
|
299 |
+
(at your option) any later version.
|
300 |
+
|
301 |
+
This program is distributed in the hope that it will be useful,
|
302 |
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
303 |
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
304 |
+
GNU General Public License for more details.
|
305 |
+
|
306 |
+
You should have received a copy of the GNU General Public License along
|
307 |
+
with this program; if not, write to the Free Software Foundation, Inc.,
|
308 |
+
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
309 |
+
|
310 |
+
Also add information on how to contact you by electronic and paper mail.
|
311 |
+
|
312 |
+
If the program is interactive, make it output a short notice like this
|
313 |
+
when it starts in an interactive mode:
|
314 |
+
|
315 |
+
Gnomovision version 69, Copyright (C) year name of author
|
316 |
+
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
317 |
+
This is free software, and you are welcome to redistribute it
|
318 |
+
under certain conditions; type `show c' for details.
|
319 |
+
|
320 |
+
The hypothetical commands `show w' and `show c' should show the appropriate
|
321 |
+
parts of the General Public License. Of course, the commands you use may
|
322 |
+
be called something other than `show w' and `show c'; they could even be
|
323 |
+
mouse-clicks or menu items--whatever suits your program.
|
324 |
+
|
325 |
+
You should also get your employer (if you work as a programmer) or your
|
326 |
+
school, if any, to sign a "copyright disclaimer" for the program, if
|
327 |
+
necessary. Here is a sample; alter the names:
|
328 |
+
|
329 |
+
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
330 |
+
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
331 |
+
|
332 |
+
{signature of Ty Coon}, 1 April 1989
|
333 |
+
Ty Coon, President of Vice
|
334 |
+
|
335 |
+
This General Public License does not permit incorporating your program into
|
336 |
+
proprietary programs. If your program is a subroutine library, you may
|
337 |
+
consider it more useful to permit linking proprietary applications with the
|
338 |
+
library. If this is what you want to do, use the GNU Lesser General
|
339 |
+
Public License instead of this License.
|
assets/sliders/flexslider/flexslider.css
CHANGED
@@ -1,161 +1,275 @@
|
|
1 |
/*
|
2 |
-
* jQuery FlexSlider v2.
|
3 |
* http://www.woothemes.com/flexslider/
|
4 |
*
|
5 |
* Copyright 2012 WooThemes
|
6 |
-
* Free to use under the GPLv2 license.
|
7 |
* http://www.gnu.org/licenses/gpl-2.0.html
|
8 |
*
|
9 |
* Contributing author: Tyler Smith (@mbmufffin)
|
|
|
10 |
*/
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
.
|
17 |
-
.flexslider
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
18 |
.slides,
|
|
|
19 |
.flex-control-nav,
|
20 |
-
.flex-direction-nav {
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
.flexslider {margin: 0; padding: 0;}
|
25 |
-
/*.flexslider .slides > li {display: none; -webkit-backface-visibility: hidden;} /* Hide the slides before the JS is loaded. Avoids image jumping */
|
26 |
-
.flexslider .slides img {width: 100%; display: block;}
|
27 |
-
.flex-pauseplay span {text-transform: capitalize;}
|
28 |
-
|
29 |
-
/* Clearfix for the .slides element */
|
30 |
-
.slides:after {content: "."; display: block; clear: both; visibility: hidden; line-height: 0; height: 0;}
|
31 |
-
html[xmlns] .slides {display: block;}
|
32 |
-
* html .slides {height: 1%;}
|
33 |
-
|
34 |
-
/* No JavaScript Fallback */
|
35 |
-
/* If you are not using another script, such as Modernizr, make sure you
|
36 |
-
* include js that eliminates this class on page load */
|
37 |
-
.no-js .slides > li:first-child {display: block;}
|
38 |
-
|
39 |
-
|
40 |
-
/* FlexSlider Default Theme
|
41 |
-
*********************************/
|
42 |
-
.flexslider {margin: 0 0 60px; background: #fff; border: 4px solid #fff; position: relative; -webkit-border-radius: 4px; -moz-border-radius: 4px; -o-border-radius: 4px; border-radius: 4px; box-shadow: 0 1px 4px rgba(0,0,0,.2); -webkit-box-shadow: 0 1px 4px rgba(0,0,0,.2); -moz-box-shadow: 0 1px 4px rgba(0,0,0,.2); -o-box-shadow: 0 1px 4px rgba(0,0,0,.2); zoom: 1;}
|
43 |
-
.flex-viewport {max-height: 2000px; -webkit-transition: all 1s ease; -moz-transition: all 1s ease; transition: all 1s ease;}
|
44 |
-
.loading .flex-viewport {max-height: 300px;}
|
45 |
-
.flexslider .slides {zoom: 1;}
|
46 |
-
|
47 |
-
.carousel li {margin-right: 5px}
|
48 |
-
|
49 |
-
|
50 |
-
/* Direction Nav */
|
51 |
-
.flex-direction-nav {*height: 0;}
|
52 |
-
.flex-direction-nav a {width: 30px; height: 30px; margin: -20px 0 0; display: block; background: url(bg_direction_nav.png) no-repeat 0 0; position: absolute; top: 50%; z-index: 10; cursor: pointer; text-indent: -9999px; opacity: 0; -webkit-transition: all .3s ease;}
|
53 |
-
.flex-direction-nav .flex-next {background-position: 100% 0; right: -36px; }
|
54 |
-
.flex-direction-nav .flex-prev {left: -36px;}
|
55 |
-
.flexslider:hover .flex-next {opacity: 0.8; right: 5px;}
|
56 |
-
.flexslider:hover .flex-prev {opacity: 0.8; left: 5px;}
|
57 |
-
.flexslider:hover .flex-next:hover, .flexslider:hover .flex-prev:hover {opacity: 1;}
|
58 |
-
.flex-direction-nav .flex-disabled {cursor: default; pointer-events: none;}
|
59 |
-
|
60 |
-
/* Control Nav */
|
61 |
-
.flex-control-nav {width: 100%; position: absolute; bottom: -40px; text-align: center;}
|
62 |
-
.flex-control-nav li {margin: 0 6px; display: inline-block; zoom: 1; *display: inline;}
|
63 |
-
.flex-control-paging li a {width: 11px; height: 11px; display: block; background: #666; background: rgba(0,0,0,0.5); cursor: pointer; text-indent: -9999px; -webkit-border-radius: 20px; -moz-border-radius: 20px; -o-border-radius: 20px; border-radius: 20px; box-shadow: inset 0 0 3px rgba(0,0,0,0.3);}
|
64 |
-
.flex-control-paging li a:hover { background: #333; background: rgba(0,0,0,0.7); }
|
65 |
-
.flex-control-paging li a.flex-active { background: #000; background: rgba(0,0,0,0.9); cursor: default; }
|
66 |
-
|
67 |
-
.flex-control-thumbs {margin: 5px 0 0; position: static; overflow: hidden;}
|
68 |
-
.flex-control-thumbs li {}
|
69 |
-
.flex-control-thumbs img {margin: 10px 5px 0; display: inline-block; opacity: .7; cursor: pointer;}
|
70 |
-
.flex-control-thumbs img:hover {opacity: 1;}
|
71 |
-
.flex-control-thumbs .flex-active {opacity: 1; cursor: default;}
|
72 |
-
|
73 |
-
@media screen and (max-width: 860px) {
|
74 |
-
.flex-direction-nav .flex-prev {opacity: 1; left: 0;}
|
75 |
-
.flex-direction-nav .flex-next {opacity: 1; right: 0;}
|
76 |
-
}
|
77 |
-
|
78 |
-
/** Custom Meta Slider CSS **/
|
79 |
-
.metaslider .flexslider {
|
80 |
-
background: none;
|
81 |
-
box-shadow: none;
|
82 |
-
-webkit-box-shadow: none;
|
83 |
-
-moz-box-shadow: none;
|
84 |
-
-o-box-shadow: none;
|
85 |
-
border: 0;
|
86 |
-
margin: 0 0 40px 0;
|
87 |
-
max-width: none;
|
88 |
-
max-height: none;
|
89 |
-
}
|
90 |
-
|
91 |
-
.flex-control-nav {
|
92 |
-
bottom: -30px;
|
93 |
-
line-height: 11px;
|
94 |
}
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
99 |
}
|
100 |
-
|
101 |
-
|
102 |
-
margin: 0 6px;
|
103 |
-
padding: 0;
|
104 |
}
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
109 |
}
|
110 |
-
|
111 |
-
/** fix for users with RTL languages */
|
112 |
.flex-viewport {
|
113 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
114 |
}
|
115 |
-
|
116 |
-
/** add transition effects to firefox **/
|
117 |
.flex-direction-nav a {
|
118 |
-
|
119 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
120 |
}
|
121 |
-
|
122 |
-
|
123 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
124 |
}
|
125 |
-
|
126 |
.flex-control-nav {
|
127 |
-
|
128 |
-
|
129 |
-
|
130 |
-
|
131 |
-
|
132 |
-
|
133 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
}
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
|
145 |
-
|
146 |
-
|
147 |
-
|
148 |
-
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
-
|
153 |
-
}
|
154 |
-
|
155 |
-
|
156 |
-
|
157 |
-
}
|
158 |
-
|
159 |
-
|
160 |
-
|
161 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
/*
|
2 |
+
* jQuery FlexSlider v2.6.4
|
3 |
* http://www.woothemes.com/flexslider/
|
4 |
*
|
5 |
* Copyright 2012 WooThemes
|
6 |
+
* Free to use under the GPLv2 and later license.
|
7 |
* http://www.gnu.org/licenses/gpl-2.0.html
|
8 |
*
|
9 |
* Contributing author: Tyler Smith (@mbmufffin)
|
10 |
+
*
|
11 |
*/
|
12 |
+
/* ====================================================================================================================
|
13 |
+
* FONT-FACE
|
14 |
+
* ====================================================================================================================*/
|
15 |
+
@font-face {
|
16 |
+
font-family: 'flexslider-icon';
|
17 |
+
src: url('fonts/flexslider-icon.eot');
|
18 |
+
src: url('fonts/flexslider-icon.eot?#iefix') format('embedded-opentype'), url('fonts/flexslider-icon.woff') format('woff'), url('fonts/flexslider-icon.ttf') format('truetype'), url('fonts/flexslider-icon.svg#flexslider-icon') format('svg');
|
19 |
+
font-weight: normal;
|
20 |
+
font-style: normal;
|
21 |
+
}
|
22 |
+
/* ====================================================================================================================
|
23 |
+
* RESETS
|
24 |
+
* ====================================================================================================================*/
|
25 |
+
.flex-container a:hover,
|
26 |
+
.flex-slider a:hover {
|
27 |
+
outline: none;
|
28 |
+
}
|
29 |
.slides,
|
30 |
+
.slides > li,
|
31 |
.flex-control-nav,
|
32 |
+
.flex-direction-nav {
|
33 |
+
margin: 0;
|
34 |
+
padding: 0;
|
35 |
+
list-style: none;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
36 |
}
|
37 |
+
.flex-pauseplay span {
|
38 |
+
text-transform: capitalize;
|
39 |
+
}
|
40 |
+
/* ====================================================================================================================
|
41 |
+
* BASE STYLES
|
42 |
+
* ====================================================================================================================*/
|
43 |
+
.flexslider {
|
44 |
+
margin: 0;
|
45 |
+
padding: 0;
|
46 |
+
}
|
47 |
+
.flexslider .slides > li {
|
48 |
+
display: none;
|
49 |
+
-webkit-backface-visibility: hidden;
|
50 |
+
}
|
51 |
+
.flexslider .slides img {
|
52 |
+
width: 100%;
|
53 |
+
display: block;
|
54 |
+
}
|
55 |
+
.flexslider .slides:after {
|
56 |
+
content: "\0020";
|
57 |
+
display: block;
|
58 |
+
clear: both;
|
59 |
+
visibility: hidden;
|
60 |
+
line-height: 0;
|
61 |
+
height: 0;
|
62 |
+
}
|
63 |
+
html[xmlns] .flexslider .slides {
|
64 |
+
display: block;
|
65 |
}
|
66 |
+
* html .flexslider .slides {
|
67 |
+
height: 1%;
|
|
|
|
|
68 |
}
|
69 |
+
.no-js .flexslider .slides > li:first-child {
|
70 |
+
display: block;
|
71 |
+
}
|
72 |
+
/* ====================================================================================================================
|
73 |
+
* DEFAULT THEME
|
74 |
+
* ====================================================================================================================*/
|
75 |
+
.flexslider {
|
76 |
+
margin: 0 0 60px;
|
77 |
+
background: #fff;
|
78 |
+
border: 4px solid #fff;
|
79 |
+
position: relative;
|
80 |
+
zoom: 1;
|
81 |
+
-webkit-border-radius: 4px;
|
82 |
+
-moz-border-radius: 4px;
|
83 |
+
border-radius: 4px;
|
84 |
+
-webkit-box-shadow: '' 0 1px 4px rgba(0, 0, 0, 0.2);
|
85 |
+
-moz-box-shadow: '' 0 1px 4px rgba(0, 0, 0, 0.2);
|
86 |
+
-o-box-shadow: '' 0 1px 4px rgba(0, 0, 0, 0.2);
|
87 |
+
box-shadow: '' 0 1px 4px rgba(0, 0, 0, 0.2);
|
88 |
+
}
|
89 |
+
.flexslider .slides {
|
90 |
+
zoom: 1;
|
91 |
+
}
|
92 |
+
.flexslider .slides img {
|
93 |
+
height: auto;
|
94 |
+
-moz-user-select: none;
|
95 |
}
|
|
|
|
|
96 |
.flex-viewport {
|
97 |
+
max-height: 2000px;
|
98 |
+
-webkit-transition: all 1s ease;
|
99 |
+
-moz-transition: all 1s ease;
|
100 |
+
-ms-transition: all 1s ease;
|
101 |
+
-o-transition: all 1s ease;
|
102 |
+
transition: all 1s ease;
|
103 |
+
}
|
104 |
+
.loading .flex-viewport {
|
105 |
+
max-height: 300px;
|
106 |
+
}
|
107 |
+
.carousel li {
|
108 |
+
margin-right: 5px;
|
109 |
+
}
|
110 |
+
.flex-direction-nav {
|
111 |
+
*height: 0;
|
112 |
}
|
|
|
|
|
113 |
.flex-direction-nav a {
|
114 |
+
text-decoration: none;
|
115 |
+
display: block;
|
116 |
+
width: 40px;
|
117 |
+
height: 40px;
|
118 |
+
margin: -20px 0 0;
|
119 |
+
position: absolute;
|
120 |
+
top: 50%;
|
121 |
+
z-index: 10;
|
122 |
+
overflow: hidden;
|
123 |
+
opacity: 0;
|
124 |
+
cursor: pointer;
|
125 |
+
color: rgba(0, 0, 0, 0.8);
|
126 |
+
text-shadow: 1px 1px 0 rgba(255, 255, 255, 0.3);
|
127 |
+
-webkit-transition: all 0.3s ease-in-out;
|
128 |
+
-moz-transition: all 0.3s ease-in-out;
|
129 |
+
-ms-transition: all 0.3s ease-in-out;
|
130 |
+
-o-transition: all 0.3s ease-in-out;
|
131 |
+
transition: all 0.3s ease-in-out;
|
132 |
+
}
|
133 |
+
.flex-direction-nav a:before {
|
134 |
+
font-family: "flexslider-icon";
|
135 |
+
font-size: 40px;
|
136 |
+
display: inline-block;
|
137 |
+
content: '\f001';
|
138 |
+
color: rgba(0, 0, 0, 0.8);
|
139 |
+
text-shadow: 1px 1px 0 rgba(255, 255, 255, 0.3);
|
140 |
+
}
|
141 |
+
.flex-direction-nav a.flex-next:before {
|
142 |
+
content: '\f002';
|
143 |
+
}
|
144 |
+
.flex-direction-nav .flex-prev {
|
145 |
+
left: -50px;
|
146 |
+
}
|
147 |
+
.flex-direction-nav .flex-next {
|
148 |
+
right: -50px;
|
149 |
+
text-align: right;
|
150 |
}
|
151 |
+
.flexslider:hover .flex-direction-nav .flex-prev {
|
152 |
+
opacity: 0.7;
|
153 |
+
left: 10px;
|
154 |
+
}
|
155 |
+
.flexslider:hover .flex-direction-nav .flex-prev:hover {
|
156 |
+
opacity: 1;
|
157 |
+
}
|
158 |
+
.flexslider:hover .flex-direction-nav .flex-next {
|
159 |
+
opacity: 0.7;
|
160 |
+
right: 10px;
|
161 |
+
}
|
162 |
+
.flexslider:hover .flex-direction-nav .flex-next:hover {
|
163 |
+
opacity: 1;
|
164 |
+
}
|
165 |
+
.flex-direction-nav .flex-disabled {
|
166 |
+
opacity: 0!important;
|
167 |
+
filter: alpha(opacity=0);
|
168 |
+
cursor: default;
|
169 |
+
z-index: -1;
|
170 |
+
}
|
171 |
+
.flex-pauseplay a {
|
172 |
+
display: block;
|
173 |
+
width: 20px;
|
174 |
+
height: 20px;
|
175 |
+
position: absolute;
|
176 |
+
bottom: 5px;
|
177 |
+
left: 10px;
|
178 |
+
opacity: 0.8;
|
179 |
+
z-index: 10;
|
180 |
+
overflow: hidden;
|
181 |
+
cursor: pointer;
|
182 |
+
color: #000;
|
183 |
+
}
|
184 |
+
.flex-pauseplay a:before {
|
185 |
+
font-family: "flexslider-icon";
|
186 |
+
font-size: 20px;
|
187 |
+
display: inline-block;
|
188 |
+
content: '\f004';
|
189 |
+
}
|
190 |
+
.flex-pauseplay a:hover {
|
191 |
+
opacity: 1;
|
192 |
+
}
|
193 |
+
.flex-pauseplay a.flex-play:before {
|
194 |
+
content: '\f003';
|
195 |
}
|
|
|
196 |
.flex-control-nav {
|
197 |
+
width: 100%;
|
198 |
+
position: absolute;
|
199 |
+
bottom: -40px;
|
200 |
+
text-align: center;
|
201 |
+
}
|
202 |
+
.flex-control-nav li {
|
203 |
+
margin: 0 6px;
|
204 |
+
display: inline-block;
|
205 |
+
zoom: 1;
|
206 |
+
*display: inline;
|
207 |
+
}
|
208 |
+
.flex-control-paging li a {
|
209 |
+
width: 11px;
|
210 |
+
height: 11px;
|
211 |
+
display: block;
|
212 |
+
background: #666;
|
213 |
+
background: rgba(0, 0, 0, 0.5);
|
214 |
+
cursor: pointer;
|
215 |
+
text-indent: -9999px;
|
216 |
+
-webkit-box-shadow: inset 0 0 3px rgba(0, 0, 0, 0.3);
|
217 |
+
-moz-box-shadow: inset 0 0 3px rgba(0, 0, 0, 0.3);
|
218 |
+
-o-box-shadow: inset 0 0 3px rgba(0, 0, 0, 0.3);
|
219 |
+
box-shadow: inset 0 0 3px rgba(0, 0, 0, 0.3);
|
220 |
+
-webkit-border-radius: 20px;
|
221 |
+
-moz-border-radius: 20px;
|
222 |
+
border-radius: 20px;
|
223 |
+
}
|
224 |
+
.flex-control-paging li a:hover {
|
225 |
+
background: #333;
|
226 |
+
background: rgba(0, 0, 0, 0.7);
|
227 |
+
}
|
228 |
+
.flex-control-paging li a.flex-active {
|
229 |
+
background: #000;
|
230 |
+
background: rgba(0, 0, 0, 0.9);
|
231 |
+
cursor: default;
|
232 |
+
}
|
233 |
+
.flex-control-thumbs {
|
234 |
+
margin: 5px 0 0;
|
235 |
+
position: static;
|
236 |
+
overflow: hidden;
|
237 |
+
}
|
238 |
+
.flex-control-thumbs li {
|
239 |
+
width: 25%;
|
240 |
+
float: left;
|
241 |
+
margin: 0;
|
242 |
+
}
|
243 |
+
.flex-control-thumbs img {
|
244 |
+
width: 100%;
|
245 |
+
height: auto;
|
246 |
+
display: block;
|
247 |
+
opacity: .7;
|
248 |
+
cursor: pointer;
|
249 |
+
-moz-user-select: none;
|
250 |
+
-webkit-transition: all 1s ease;
|
251 |
+
-moz-transition: all 1s ease;
|
252 |
+
-ms-transition: all 1s ease;
|
253 |
+
-o-transition: all 1s ease;
|
254 |
+
transition: all 1s ease;
|
255 |
+
}
|
256 |
+
.flex-control-thumbs img:hover {
|
257 |
+
opacity: 1;
|
258 |
+
}
|
259 |
+
.flex-control-thumbs .flex-active {
|
260 |
+
opacity: 1;
|
261 |
+
cursor: default;
|
262 |
+
}
|
263 |
+
/* ====================================================================================================================
|
264 |
+
* RESPONSIVE
|
265 |
+
* ====================================================================================================================*/
|
266 |
+
@media screen and (max-width: 860px) {
|
267 |
+
.flex-direction-nav .flex-prev {
|
268 |
+
opacity: 1;
|
269 |
+
left: 10px;
|
270 |
+
}
|
271 |
+
.flex-direction-nav .flex-next {
|
272 |
+
opacity: 1;
|
273 |
+
right: 10px;
|
274 |
+
}
|
275 |
+
}
|
assets/sliders/flexslider/flexslider.min.css
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
@font-face{font-family:'flexslider-icon';src:url('fonts/flexslider-icon.eot');src:url('fonts/flexslider-icon.eot?#iefix') format('embedded-opentype'),url('fonts/flexslider-icon.woff') format('woff'),url('fonts/flexslider-icon.ttf') format('truetype'),url('fonts/flexslider-icon.svg#flexslider-icon') format('svg');font-weight:normal;font-style:normal}.flex-container a:hover,.flex-slider a:hover{outline:0}.slides,.slides>li,.flex-control-nav,.flex-direction-nav{margin:0;padding:0;list-style:none}.flex-pauseplay span{text-transform:capitalize}.flexslider{margin:0;padding:0}.flexslider .slides>li{display:none;-webkit-backface-visibility:hidden}.flexslider .slides img{width:100%;display:block}.flexslider .slides:after{content:"\0020";display:block;clear:both;visibility:hidden;line-height:0;height:0}html[xmlns] .flexslider .slides{display:block}* html .flexslider .slides{height:1%}.no-js .flexslider .slides>li:first-child{display:block}.flexslider{margin:0 0 60px;background:#fff;border:4px solid #fff;position:relative;zoom:1;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:'' 0 1px 4px rgba(0,0,0,0.2);-moz-box-shadow:'' 0 1px 4px rgba(0,0,0,0.2);-o-box-shadow:'' 0 1px 4px rgba(0,0,0,0.2);box-shadow:'' 0 1px 4px rgba(0,0,0,0.2)}.flexslider .slides{zoom:1}.flexslider .slides img{height:auto;-moz-user-select:none}.flex-viewport{max-height:2000px;-webkit-transition:all 1s ease;-moz-transition:all 1s ease;-ms-transition:all 1s ease;-o-transition:all 1s ease;transition:all 1s ease}.loading .flex-viewport{max-height:300px}.carousel li{margin-right:5px}.flex-direction-nav{*height:0}.flex-direction-nav a{text-decoration:none;display:block;width:40px;height:40px;margin:-20px 0 0;position:absolute;top:50%;z-index:10;overflow:hidden;opacity:0;cursor:pointer;color:rgba(0,0,0,0.8);text-shadow:1px 1px 0 rgba(255,255,255,0.3);-webkit-transition:all .3s ease-in-out;-moz-transition:all .3s ease-in-out;-ms-transition:all .3s ease-in-out;-o-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.flex-direction-nav a:before{font-family:"flexslider-icon";font-size:40px;display:inline-block;content:'\f001';color:rgba(0,0,0,0.8);text-shadow:1px 1px 0 rgba(255,255,255,0.3)}.flex-direction-nav a.flex-next:before{content:'\f002'}.flex-direction-nav .flex-prev{left:-50px}.flex-direction-nav .flex-next{right:-50px;text-align:right}.flexslider:hover .flex-direction-nav .flex-prev{opacity:.7;left:10px}.flexslider:hover .flex-direction-nav .flex-prev:hover{opacity:1}.flexslider:hover .flex-direction-nav .flex-next{opacity:.7;right:10px}.flexslider:hover .flex-direction-nav .flex-next:hover{opacity:1}.flex-direction-nav .flex-disabled{opacity:0 !important;filter:alpha(opacity=0);cursor:default;z-index:-1}.flex-pauseplay a{display:block;width:20px;height:20px;position:absolute;bottom:5px;left:10px;opacity:.8;z-index:10;overflow:hidden;cursor:pointer;color:#000}.flex-pauseplay a:before{font-family:"flexslider-icon";font-size:20px;display:inline-block;content:'\f004'}.flex-pauseplay a:hover{opacity:1}.flex-pauseplay a.flex-play:before{content:'\f003'}.flex-control-nav{width:100%;position:absolute;bottom:-40px;text-align:center}.flex-control-nav li{margin:0 6px;display:inline-block;zoom:1;*display:inline}.flex-control-paging li a{width:11px;height:11px;display:block;background:#666;background:rgba(0,0,0,0.5);cursor:pointer;text-indent:-9999px;-webkit-box-shadow:inset 0 0 3px rgba(0,0,0,0.3);-moz-box-shadow:inset 0 0 3px rgba(0,0,0,0.3);-o-box-shadow:inset 0 0 3px rgba(0,0,0,0.3);box-shadow:inset 0 0 3px rgba(0,0,0,0.3);-webkit-border-radius:20px;-moz-border-radius:20px;border-radius:20px}.flex-control-paging li a:hover{background:#333;background:rgba(0,0,0,0.7)}.flex-control-paging li a.flex-active{background:#000;background:rgba(0,0,0,0.9);cursor:default}.flex-control-thumbs{margin:5px 0 0;position:static;overflow:hidden}.flex-control-thumbs li{width:25%;float:left;margin:0}.flex-control-thumbs img{width:100%;height:auto;display:block;opacity:.7;cursor:pointer;-moz-user-select:none;-webkit-transition:all 1s ease;-moz-transition:all 1s ease;-ms-transition:all 1s ease;-o-transition:all 1s ease;transition:all 1s ease}.flex-control-thumbs img:hover{opacity:1}.flex-control-thumbs .flex-active{opacity:1;cursor:default}@media screen and (max-width:860px){.flex-direction-nav .flex-prev{opacity:1;left:10px}.flex-direction-nav .flex-next{opacity:1;right:10px}}
|
assets/sliders/flexslider/{jquery.flexslider-min.js → jquery.flexslider.js}
RENAMED
@@ -1,16 +1,13 @@
|
|
1 |
/*
|
2 |
-
* jQuery FlexSlider v2.
|
3 |
* Copyright 2012 WooThemes
|
4 |
* Contributing Author: Tyler Smith
|
5 |
-
* Modifications applied:
|
6 |
-
* 905: https://github.com/woothemes/FlexSlider/pull/1044
|
7 |
-
* 928: https://github.com/woothemes/FlexSlider/issues/1043
|
8 |
-
* 1082: fadeFirstslide set to false by default.
|
9 |
-
* 398: https://github.com/woothemes/FlexSlider/issues/1110
|
10 |
*/
|
11 |
;
|
12 |
(function ($) {
|
13 |
|
|
|
|
|
14 |
//FlexSlider: Object Instance
|
15 |
$.flexslider = function(el, options) {
|
16 |
var slider = $(el);
|
@@ -21,8 +18,7 @@
|
|
21 |
var namespace = slider.vars.namespace,
|
22 |
msGesture = window.navigator && window.navigator.msPointerEnabled && window.MSGesture,
|
23 |
touch = (( "ontouchstart" in window ) || msGesture || window.DocumentTouch && document instanceof DocumentTouch) && slider.vars.touch,
|
24 |
-
//
|
25 |
-
//eventType = (touch) ? "touchend" : "click",
|
26 |
eventType = "click touchend MSPointerUp keyup",
|
27 |
watchedEvent = "",
|
28 |
watchedEventClearTimer,
|
@@ -31,8 +27,7 @@
|
|
31 |
carousel = (slider.vars.itemWidth > 0),
|
32 |
fade = slider.vars.animation === "fade",
|
33 |
asNav = slider.vars.asNavFor !== "",
|
34 |
-
methods = {}
|
35 |
-
focused = true;
|
36 |
|
37 |
// Store a reference to the slider object
|
38 |
$.data(el, "flexslider", slider);
|
@@ -43,7 +38,7 @@
|
|
43 |
slider.animating = false;
|
44 |
// Get current slide and make sure it is a number
|
45 |
slider.currentSlide = parseInt( ( slider.vars.startAt ? slider.vars.startAt : 0), 10 );
|
46 |
-
if ( isNaN( slider.currentSlide ) ) slider.currentSlide = 0;
|
47 |
slider.animatingTo = slider.currentSlide;
|
48 |
slider.atEnd = (slider.currentSlide === 0 || slider.currentSlide === slider.last);
|
49 |
slider.containerSelector = slider.vars.selector.substr(0,slider.vars.selector.search(' '));
|
@@ -53,7 +48,7 @@
|
|
53 |
// SYNC:
|
54 |
slider.syncExists = $(slider.vars.sync).length > 0;
|
55 |
// SLIDE:
|
56 |
-
if (slider.vars.animation === "slide") slider.vars.animation = "swing";
|
57 |
slider.prop = (vertical) ? "top" : "marginLeft";
|
58 |
slider.args = {};
|
59 |
// SLIDESHOW:
|
@@ -81,6 +76,9 @@
|
|
81 |
// MANUAL:
|
82 |
if (slider.vars.manualControls !== "") slider.manualControls = $(slider.vars.manualControls).length > 0 && $(slider.vars.manualControls);
|
83 |
|
|
|
|
|
|
|
84 |
// RANDOMIZE:
|
85 |
if (slider.vars.randomize) {
|
86 |
slider.slides.sort(function() { return (Math.round(Math.random())-0.5); });
|
@@ -93,10 +91,10 @@
|
|
93 |
slider.setup("init");
|
94 |
|
95 |
// CONTROLNAV:
|
96 |
-
if (slider.vars.controlNav) methods.controlNav.setup();
|
97 |
|
98 |
// DIRECTIONNAV:
|
99 |
-
if (slider.vars.directionNav) methods.directionNav.setup();
|
100 |
|
101 |
// KEYBOARD:
|
102 |
if (slider.vars.keyboard && ($(slider.containerSelector).length === 1 || slider.vars.multipleKeyboard)) {
|
@@ -119,18 +117,18 @@
|
|
119 |
}
|
120 |
|
121 |
// PAUSEPLAY
|
122 |
-
if (slider.vars.pausePlay) methods.pausePlay.setup();
|
123 |
|
124 |
//PAUSE WHEN INVISIBLE
|
125 |
-
if (slider.vars.slideshow && slider.vars.pauseInvisible) methods.pauseInvisible.init();
|
126 |
|
127 |
// SLIDSESHOW
|
128 |
if (slider.vars.slideshow) {
|
129 |
if (slider.vars.pauseOnHover) {
|
130 |
slider.hover(function() {
|
131 |
-
if (!slider.manualPlay && !slider.manualPause) slider.pause();
|
132 |
}, function() {
|
133 |
-
if (!slider.manualPause && !slider.manualPlay && !slider.stopped) slider.play();
|
134 |
});
|
135 |
}
|
136 |
// initialize animation
|
@@ -141,13 +139,13 @@
|
|
141 |
}
|
142 |
|
143 |
// ASNAV:
|
144 |
-
if (asNav) methods.asNav.setup();
|
145 |
|
146 |
// TOUCH
|
147 |
-
if (touch && slider.vars.touch) methods.touch();
|
148 |
|
149 |
// FADE&&SMOOTHHEIGHT || SLIDE:
|
150 |
-
if (!fade || (fade && slider.vars.smoothHeight)) $(window).bind("resize orientationchange focus", methods.resize);
|
151 |
|
152 |
slider.find("img").attr("draggable", "false");
|
153 |
|
@@ -183,8 +181,9 @@
|
|
183 |
that._gesture.target = that;
|
184 |
that.addEventListener("MSPointerDown", function (e){
|
185 |
e.preventDefault();
|
186 |
-
if(e.currentTarget._gesture)
|
187 |
-
|
|
|
188 |
}, false);
|
189 |
that.addEventListener("MSGestureTap", function (e){
|
190 |
e.preventDefault();
|
@@ -218,10 +217,12 @@
|
|
218 |
if (slider.pagingCount > 1) {
|
219 |
for (var i = 0; i < slider.pagingCount; i++) {
|
220 |
slide = slider.slides.eq(i);
|
221 |
-
|
|
|
|
|
222 |
if ( 'thumbnails' === slider.vars.controlNav && true === slider.vars.thumbCaptions ) {
|
223 |
var captn = slide.attr( 'data-thumbcaption' );
|
224 |
-
if ( ''
|
225 |
}
|
226 |
slider.controlNavScaffold.append('<li>' + item + '</li>');
|
227 |
j++;
|
@@ -288,7 +289,7 @@
|
|
288 |
},
|
289 |
update: function(action, pos) {
|
290 |
if (slider.pagingCount > 1 && action === "add") {
|
291 |
-
slider.controlNavScaffold.append($('<li><a>' + slider.count + '</a></li>'));
|
292 |
} else if (slider.pagingCount === 1) {
|
293 |
slider.controlNavScaffold.find('li').remove();
|
294 |
} else {
|
@@ -300,10 +301,13 @@
|
|
300 |
},
|
301 |
directionNav: {
|
302 |
setup: function() {
|
303 |
-
var directionNavScaffold = $('<ul class="' + namespace + 'direction-nav"><li><a class="' + namespace + 'prev" href="#">' + slider.vars.prevText + '</a></li><li><a class="' + namespace + 'next" href="#">' + slider.vars.nextText + '</a></li></ul>');
|
304 |
|
|
|
|
|
|
|
305 |
// CONTROLSCONTAINER:
|
306 |
-
if (slider.controlsContainer) {
|
307 |
$(slider.controlsContainer).append(directionNavScaffold);
|
308 |
slider.directionNav = $('.' + namespace + 'direction-nav li a', slider.controlsContainer);
|
309 |
} else {
|
@@ -348,7 +352,7 @@
|
|
348 |
},
|
349 |
pausePlay: {
|
350 |
setup: function() {
|
351 |
-
var pausePlayScaffold = $('<div class="' + namespace + 'pauseplay"><a></a></div>');
|
352 |
|
353 |
// CONTROLSCONTAINER:
|
354 |
if (slider.controlsContainer) {
|
@@ -394,14 +398,16 @@
|
|
394 |
cwidth,
|
395 |
dx,
|
396 |
startT,
|
|
|
|
|
|
|
397 |
scrolling = false,
|
398 |
localX = 0,
|
399 |
localY = 0,
|
400 |
accDx = 0;
|
401 |
|
402 |
if(!msGesture){
|
403 |
-
|
404 |
-
function onTouchStart(e) {
|
405 |
if (slider.animating) {
|
406 |
e.preventDefault();
|
407 |
} else if ( ( window.navigator.msPointerEnabled ) || e.touches.length === 1 ) {
|
@@ -426,11 +432,9 @@
|
|
426 |
el.addEventListener('touchmove', onTouchMove, false);
|
427 |
el.addEventListener('touchend', onTouchEnd, false);
|
428 |
}
|
429 |
-
}
|
430 |
-
|
431 |
-
el.addEventListener('touchstart', onTouchStart, false);
|
432 |
|
433 |
-
function
|
434 |
// Local vars for X and Y points.
|
435 |
|
436 |
localX = e.touches[0].pageX;
|
@@ -450,9 +454,9 @@
|
|
450 |
slider.setProps(offset + dx, "setTouch");
|
451 |
}
|
452 |
}
|
453 |
-
}
|
454 |
|
455 |
-
function
|
456 |
// finish the touch by undoing the touch session
|
457 |
el.removeEventListener('touchmove', onTouchMove, false);
|
458 |
|
@@ -463,16 +467,32 @@
|
|
463 |
if (slider.canAdvance(target) && (Number(new Date()) - startT < 550 && Math.abs(updateDx) > 50 || Math.abs(updateDx) > cwidth/2)) {
|
464 |
slider.flexAnimate(target, slider.vars.pauseOnAction);
|
465 |
} else {
|
466 |
-
if (!fade) slider.flexAnimate(slider.currentSlide, slider.vars.pauseOnAction, true);
|
467 |
}
|
468 |
}
|
469 |
el.removeEventListener('touchend', onTouchEnd, false);
|
470 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
471 |
startX = null;
|
472 |
startY = null;
|
473 |
dx = null;
|
474 |
offset = null;
|
475 |
-
}
|
|
|
|
|
476 |
}else{
|
477 |
el.style.msTouchAction = "none";
|
478 |
el._gesture = new MSGesture();
|
@@ -548,9 +568,23 @@
|
|
548 |
if (slider.canAdvance(target) && (Number(new Date()) - startT < 550 && Math.abs(updateDx) > 50 || Math.abs(updateDx) > cwidth/2)) {
|
549 |
slider.flexAnimate(target, slider.vars.pauseOnAction);
|
550 |
} else {
|
551 |
-
if (!fade) slider.flexAnimate(slider.currentSlide, slider.vars.pauseOnAction, true);
|
552 |
}
|
553 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
554 |
|
555 |
startX = null;
|
556 |
startY = null;
|
@@ -562,7 +596,7 @@
|
|
562 |
},
|
563 |
resize: function() {
|
564 |
if (!slider.animating && slider.is(':visible')) {
|
565 |
-
if (!carousel) slider.doMath();
|
566 |
|
567 |
if (fade) {
|
568 |
// SMOOTH HEIGHT:
|
@@ -577,7 +611,7 @@
|
|
577 |
slider.setProps(slider.h, "setTotal");
|
578 |
} else {
|
579 |
// SMOOTH HEIGHT:
|
580 |
-
if (slider.vars.smoothHeight) methods.smoothHeight();
|
581 |
slider.newSlides.width(slider.computedW);
|
582 |
slider.setProps(slider.computedW, "setTotal");
|
583 |
}
|
@@ -586,7 +620,7 @@
|
|
586 |
smoothHeight: function(dur) {
|
587 |
if (!vertical || fade) {
|
588 |
var $obj = (fade) ? slider : slider.viewport;
|
589 |
-
(dur) ? $obj.animate({"height": slider.slides.eq(slider.animatingTo).
|
590 |
}
|
591 |
},
|
592 |
sync: function(action) {
|
@@ -600,7 +634,8 @@
|
|
600 |
}
|
601 |
},
|
602 |
uniqueID: function($clone) {
|
603 |
-
|
|
|
604 |
var $this = $(this);
|
605 |
$this.attr( 'id', $this.attr( 'id' ) + '_clone' );
|
606 |
});
|
@@ -609,29 +644,52 @@
|
|
609 |
pauseInvisible: {
|
610 |
visProp: null,
|
611 |
init: function() {
|
612 |
-
var
|
613 |
-
|
614 |
-
|
615 |
-
for (var i = 0; i < prefixes.length; i++) {
|
616 |
-
if ((prefixes[i] + 'Hidden') in document)
|
617 |
-
methods.pauseInvisible.visProp = prefixes[i] + 'Hidden';
|
618 |
-
}
|
619 |
-
if (methods.pauseInvisible.visProp) {
|
620 |
-
var evtname = methods.pauseInvisible.visProp.replace(/[H|h]idden/,'') + 'visibilitychange';
|
621 |
document.addEventListener(evtname, function() {
|
622 |
if (methods.pauseInvisible.isHidden()) {
|
623 |
-
if(slider.startTimeout)
|
624 |
-
|
|
|
|
|
|
|
625 |
}
|
626 |
else {
|
627 |
-
if(slider.started)
|
628 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
629 |
}
|
630 |
});
|
631 |
}
|
632 |
},
|
633 |
isHidden: function() {
|
634 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
635 |
}
|
636 |
},
|
637 |
setToClearWatchedEvent: function() {
|
@@ -673,33 +731,33 @@
|
|
673 |
slider.animatingTo = target;
|
674 |
|
675 |
// SLIDESHOW:
|
676 |
-
if (pause) slider.pause();
|
677 |
|
678 |
// API: before() animation Callback
|
679 |
slider.vars.before(slider);
|
680 |
|
681 |
// SYNC:
|
682 |
-
if (slider.syncExists && !fromNav) methods.sync("animate");
|
683 |
|
684 |
// CONTROLNAV
|
685 |
-
if (slider.vars.controlNav) methods.controlNav.active();
|
686 |
|
687 |
// !CAROUSEL:
|
688 |
// CANDIDATE: slide active class (for add/remove slide)
|
689 |
-
if (!carousel) slider.slides.removeClass(namespace + 'active-slide').eq(target).addClass(namespace + 'active-slide');
|
690 |
|
691 |
// INFINITE LOOP:
|
692 |
// CANDIDATE: atEnd
|
693 |
slider.atEnd = target === 0 || target === slider.last;
|
694 |
|
695 |
// DIRECTIONNAV:
|
696 |
-
if (slider.vars.directionNav) methods.directionNav.update();
|
697 |
|
698 |
if (target === slider.last) {
|
699 |
// API: end() of cycle Callback
|
700 |
slider.vars.end(slider);
|
701 |
// SLIDESHOW && !INFINITE LOOP:
|
702 |
-
if (!slider.vars.animationLoop) slider.pause();
|
703 |
}
|
704 |
|
705 |
// SLIDE:
|
@@ -709,7 +767,6 @@
|
|
709 |
|
710 |
// INFINITE LOOP / REVERSE:
|
711 |
if (carousel) {
|
712 |
-
//margin = (slider.vars.itemWidth > slider.w) ? slider.vars.itemMargin * 2 : slider.vars.itemMargin;
|
713 |
margin = slider.vars.itemMargin;
|
714 |
calcNext = ((slider.itemW + margin) * slider.move) * slider.animatingTo;
|
715 |
slideString = (calcNext > slider.limit && slider.visible !== 1) ? slider.limit : calcNext;
|
@@ -726,7 +783,7 @@
|
|
726 |
slider.animating = false;
|
727 |
slider.currentSlide = slider.animatingTo;
|
728 |
}
|
729 |
-
|
730 |
// Unbind previous transitionEnd events and re-bind new transitionEnd event
|
731 |
slider.container.unbind("webkitTransitionEnd transitionend");
|
732 |
slider.container.bind("webkitTransitionEnd transitionend", function() {
|
@@ -747,12 +804,8 @@
|
|
747 |
}
|
748 |
} else { // FADE:
|
749 |
if (!touch) {
|
750 |
-
//slider.slides.eq(slider.currentSlide).fadeOut(slider.vars.animationSpeed, slider.vars.easing);
|
751 |
-
//slider.slides.eq(target).fadeIn(slider.vars.animationSpeed, slider.vars.easing, slider.wrapup);
|
752 |
-
|
753 |
slider.slides.eq(slider.currentSlide).css({"zIndex": 1}).animate({"opacity": 0}, slider.vars.animationSpeed, slider.vars.easing);
|
754 |
slider.slides.eq(target).css({"zIndex": 2}).animate({"opacity": 1}, slider.vars.animationSpeed, slider.vars.easing, slider.wrapup);
|
755 |
-
|
756 |
} else {
|
757 |
slider.slides.eq(slider.currentSlide).css({ "opacity": 0, "zIndex": 1 });
|
758 |
slider.slides.eq(target).css({ "opacity": 1, "zIndex": 2 });
|
@@ -760,7 +813,7 @@
|
|
760 |
}
|
761 |
}
|
762 |
// SMOOTH HEIGHT:
|
763 |
-
if (slider.vars.smoothHeight) methods.smoothHeight(slider.vars.animationSpeed);
|
764 |
}
|
765 |
};
|
766 |
slider.wrapup = function(dimension) {
|
@@ -780,7 +833,7 @@
|
|
780 |
|
781 |
// SLIDESHOW:
|
782 |
slider.animateSlides = function() {
|
783 |
-
if (!slider.animating && focused ) slider.flexAnimate(slider.getTarget("next"));
|
784 |
};
|
785 |
// SLIDESHOW:
|
786 |
slider.pause = function() {
|
@@ -788,19 +841,19 @@
|
|
788 |
slider.animatedSlides = null;
|
789 |
slider.playing = false;
|
790 |
// PAUSEPLAY:
|
791 |
-
if (slider.vars.pausePlay) methods.pausePlay.update("play");
|
792 |
// SYNC:
|
793 |
-
if (slider.syncExists) methods.sync("pause");
|
794 |
};
|
795 |
// SLIDESHOW:
|
796 |
slider.play = function() {
|
797 |
-
if (slider.playing) clearInterval(slider.animatedSlides);
|
798 |
slider.animatedSlides = slider.animatedSlides || setInterval(slider.animateSlides, slider.vars.slideshowSpeed);
|
799 |
slider.started = slider.playing = true;
|
800 |
// PAUSEPLAY:
|
801 |
-
if (slider.vars.pausePlay) methods.pausePlay.update("pause");
|
802 |
// SYNC:
|
803 |
-
if (slider.syncExists) methods.sync("play");
|
804 |
};
|
805 |
// STOP:
|
806 |
slider.stop = function () {
|
@@ -860,7 +913,7 @@
|
|
860 |
}
|
861 |
|
862 |
slider.args[slider.prop] = target;
|
863 |
-
if (slider.transitions || dur === undefined) slider.container.css(slider.args);
|
864 |
|
865 |
slider.container.css('transform',target);
|
866 |
};
|
@@ -887,10 +940,9 @@
|
|
887 |
slider.cloneCount = 2;
|
888 |
slider.cloneOffset = 1;
|
889 |
// clear out old clones
|
890 |
-
if (type !== "init") slider.container.find('.clone').remove();
|
891 |
-
|
892 |
-
|
893 |
-
methods.uniqueID( slider.slides.last().clone().addClass('clone').attr('aria-hidden', 'true') ).prependTo( slider.container );
|
894 |
}
|
895 |
slider.newSlides = $(slider.vars.selector, slider);
|
896 |
|
@@ -905,14 +957,13 @@
|
|
905 |
slider.setProps(sliderOffset * slider.h, "init");
|
906 |
}, (type === "init") ? 100 : 0);
|
907 |
} else {
|
908 |
-
slider.newSlides.css({"width": slider.computedW, "float": "left", "display": "block"});
|
909 |
slider.container.width((slider.count + slider.cloneCount) * 200 + "%");
|
910 |
slider.setProps(sliderOffset * slider.computedW, "init");
|
911 |
setTimeout(function(){
|
912 |
slider.doMath();
|
913 |
-
slider.newSlides.css({"width": slider.computedW, "float": "left", "display": "block"});
|
914 |
// SMOOTH HEIGHT:
|
915 |
-
if (slider.vars.smoothHeight) methods.smoothHeight();
|
916 |
}, (type === "init") ? 100 : 0);
|
917 |
}
|
918 |
} else { // FADE:
|
@@ -927,15 +978,14 @@
|
|
927 |
}
|
928 |
} else {
|
929 |
slider.slides.css({ "opacity": 0, "display": "block", "webkitTransition": "opacity " + slider.vars.animationSpeed / 1000 + "s ease", "zIndex": 1 }).eq(slider.currentSlide).css({ "opacity": 1, "zIndex": 2});
|
930 |
-
slider.slides.css("transition", "opacity " + slider.vars.animationSpeed / 1000 + "s ease");
|
931 |
}
|
932 |
}
|
933 |
// SMOOTH HEIGHT:
|
934 |
-
if (slider.vars.smoothHeight) methods.smoothHeight();
|
935 |
}
|
936 |
// !CAROUSEL:
|
937 |
// CANDIDATE: active slide
|
938 |
-
if (!carousel) slider.slides.removeClass(namespace + "active-slide").eq(slider.currentSlide).addClass(namespace + "active-slide");
|
939 |
|
940 |
//FlexSlider: init() Callback
|
941 |
slider.vars.init(slider);
|
@@ -954,6 +1004,7 @@
|
|
954 |
// CAROUSEL:
|
955 |
if (carousel) {
|
956 |
slider.itemT = slider.vars.itemWidth + slideMargin;
|
|
|
957 |
slider.minW = (minItems) ? minItems * slider.itemT : slider.w;
|
958 |
slider.maxW = (maxItems) ? (maxItems * slider.itemT) - slideMargin : slider.w;
|
959 |
slider.itemW = (slider.minW > slider.w) ? (slider.w - (slideMargin * (minItems - 1)))/minItems :
|
@@ -968,10 +1019,12 @@
|
|
968 |
(slider.vars.itemWidth > slider.w) ? (slider.itemW * (slider.count - 1)) + (slideMargin * (slider.count - 1)) : ((slider.itemW + slideMargin) * slider.count) - slider.w - slideMargin;
|
969 |
} else {
|
970 |
slider.itemW = slider.w;
|
|
|
971 |
slider.pagingCount = slider.count;
|
972 |
slider.last = slider.count - 1;
|
973 |
}
|
974 |
slider.computedW = slider.itemW - slider.boxPadding;
|
|
|
975 |
};
|
976 |
|
977 |
slider.update = function(pos, action) {
|
@@ -1000,7 +1053,7 @@
|
|
1000 |
}
|
1001 |
}
|
1002 |
// update directionNav
|
1003 |
-
if (slider.vars.directionNav) methods.directionNav.update();
|
1004 |
|
1005 |
};
|
1006 |
|
@@ -1082,19 +1135,19 @@
|
|
1082 |
animationSpeed: 600, //Integer: Set the speed of animations, in milliseconds
|
1083 |
initDelay: 0, //{NEW} Integer: Set an initialization delay, in milliseconds
|
1084 |
randomize: false, //Boolean: Randomize slide order
|
1085 |
-
fadeFirstSlide:
|
1086 |
thumbCaptions: false, //Boolean: Whether or not to put captions on thumbnails when using the "thumbnails" controlNav.
|
1087 |
|
1088 |
// Usability features
|
1089 |
pauseOnAction: true, //Boolean: Pause the slideshow when interacting with control elements, highly recommended.
|
1090 |
pauseOnHover: false, //Boolean: Pause the slideshow when hovering over slider, then resume when no longer hovering
|
1091 |
-
pauseInvisible: true,
|
1092 |
useCSS: true, //{NEW} Boolean: Slider will use CSS3 transitions if available
|
1093 |
touch: true, //{NEW} Boolean: Allow touch swipe navigation of the slider on touch-enabled devices
|
1094 |
video: false, //{NEW} Boolean: If using video in the slider, will prevent CSS3 3D Transforms to avoid graphical glitches
|
1095 |
|
1096 |
// Primary Controls
|
1097 |
-
controlNav: true, //Boolean: Create navigation for paging control of each
|
1098 |
directionNav: true, //Boolean: Create navigation for previous/next navigation? (true/false)
|
1099 |
prevText: "Previous", //String: Set the text for the "previous" directionNav item
|
1100 |
nextText: "Next", //String: Set the text for the "next" directionNav item
|
@@ -1110,6 +1163,7 @@
|
|
1110 |
// Special properties
|
1111 |
controlsContainer: "", //{UPDATED} jQuery Object/Selector: Declare which container the navigation elements should be appended too. Default container is the FlexSlider element. Example use would be $(".flexslider-container"). Property is ignored if given element is not found.
|
1112 |
manualControls: "", //{UPDATED} jQuery Object/Selector: Declare custom control navigation. Examples would be $(".flex-control-nav li") or "#tabs-nav li img", etc. The number of elements in your controlNav should match the number of slides/tabs.
|
|
|
1113 |
sync: "", //{NEW} Selector: Mirror the actions performed on this slider with another slider. Use with care.
|
1114 |
asNavFor: "", //{NEW} Selector: Internal property exposed for turning the slider into a thumbnail navigation for another slider
|
1115 |
|
@@ -1133,7 +1187,7 @@
|
|
1133 |
|
1134 |
//FlexSlider: Plugin Function
|
1135 |
$.fn.flexslider = function(options) {
|
1136 |
-
if (options === undefined) options = {};
|
1137 |
|
1138 |
if (typeof options === "object") {
|
1139 |
return this.each(function() {
|
@@ -1141,9 +1195,9 @@
|
|
1141 |
selector = (options.selector) ? options.selector : ".slides > li",
|
1142 |
$slides = $this.find(selector);
|
1143 |
|
1144 |
-
if ( ( $slides.length === 1 && options.allowOneSlide ===
|
1145 |
$slides.fadeIn(400);
|
1146 |
-
if (options.start) options.start($this);
|
1147 |
} else if ($this.data('flexslider') === undefined) {
|
1148 |
new $.flexslider(this, options);
|
1149 |
}
|
@@ -1158,8 +1212,8 @@
|
|
1158 |
case "next": $slider.flexAnimate($slider.getTarget("next"), true); break;
|
1159 |
case "prev":
|
1160 |
case "previous": $slider.flexAnimate($slider.getTarget("prev"), true); break;
|
1161 |
-
default: if (typeof options === "number") $slider.flexAnimate(options, true);
|
1162 |
}
|
1163 |
}
|
1164 |
};
|
1165 |
-
})(jQuery);
|
1 |
/*
|
2 |
+
* jQuery FlexSlider v2.6.4
|
3 |
* Copyright 2012 WooThemes
|
4 |
* Contributing Author: Tyler Smith
|
|
|
|
|
|
|
|
|
|
|
5 |
*/
|
6 |
;
|
7 |
(function ($) {
|
8 |
|
9 |
+
var focused = true;
|
10 |
+
|
11 |
//FlexSlider: Object Instance
|
12 |
$.flexslider = function(el, options) {
|
13 |
var slider = $(el);
|
18 |
var namespace = slider.vars.namespace,
|
19 |
msGesture = window.navigator && window.navigator.msPointerEnabled && window.MSGesture,
|
20 |
touch = (( "ontouchstart" in window ) || msGesture || window.DocumentTouch && document instanceof DocumentTouch) && slider.vars.touch,
|
21 |
+
// deprecating this idea, as devices are being released with both of these events
|
|
|
22 |
eventType = "click touchend MSPointerUp keyup",
|
23 |
watchedEvent = "",
|
24 |
watchedEventClearTimer,
|
27 |
carousel = (slider.vars.itemWidth > 0),
|
28 |
fade = slider.vars.animation === "fade",
|
29 |
asNav = slider.vars.asNavFor !== "",
|
30 |
+
methods = {};
|
|
|
31 |
|
32 |
// Store a reference to the slider object
|
33 |
$.data(el, "flexslider", slider);
|
38 |
slider.animating = false;
|
39 |
// Get current slide and make sure it is a number
|
40 |
slider.currentSlide = parseInt( ( slider.vars.startAt ? slider.vars.startAt : 0), 10 );
|
41 |
+
if ( isNaN( slider.currentSlide ) ) { slider.currentSlide = 0; }
|
42 |
slider.animatingTo = slider.currentSlide;
|
43 |
slider.atEnd = (slider.currentSlide === 0 || slider.currentSlide === slider.last);
|
44 |
slider.containerSelector = slider.vars.selector.substr(0,slider.vars.selector.search(' '));
|
48 |
// SYNC:
|
49 |
slider.syncExists = $(slider.vars.sync).length > 0;
|
50 |
// SLIDE:
|
51 |
+
if (slider.vars.animation === "slide") { slider.vars.animation = "swing"; }
|
52 |
slider.prop = (vertical) ? "top" : "marginLeft";
|
53 |
slider.args = {};
|
54 |
// SLIDESHOW:
|
76 |
// MANUAL:
|
77 |
if (slider.vars.manualControls !== "") slider.manualControls = $(slider.vars.manualControls).length > 0 && $(slider.vars.manualControls);
|
78 |
|
79 |
+
// CUSTOM DIRECTION NAV:
|
80 |
+
if (slider.vars.customDirectionNav !== "") slider.customDirectionNav = $(slider.vars.customDirectionNav).length === 2 && $(slider.vars.customDirectionNav);
|
81 |
+
|
82 |
// RANDOMIZE:
|
83 |
if (slider.vars.randomize) {
|
84 |
slider.slides.sort(function() { return (Math.round(Math.random())-0.5); });
|
91 |
slider.setup("init");
|
92 |
|
93 |
// CONTROLNAV:
|
94 |
+
if (slider.vars.controlNav) { methods.controlNav.setup(); }
|
95 |
|
96 |
// DIRECTIONNAV:
|
97 |
+
if (slider.vars.directionNav) { methods.directionNav.setup(); }
|
98 |
|
99 |
// KEYBOARD:
|
100 |
if (slider.vars.keyboard && ($(slider.containerSelector).length === 1 || slider.vars.multipleKeyboard)) {
|
117 |
}
|
118 |
|
119 |
// PAUSEPLAY
|
120 |
+
if (slider.vars.pausePlay) { methods.pausePlay.setup(); }
|
121 |
|
122 |
//PAUSE WHEN INVISIBLE
|
123 |
+
if (slider.vars.slideshow && slider.vars.pauseInvisible) { methods.pauseInvisible.init(); }
|
124 |
|
125 |
// SLIDSESHOW
|
126 |
if (slider.vars.slideshow) {
|
127 |
if (slider.vars.pauseOnHover) {
|
128 |
slider.hover(function() {
|
129 |
+
if (!slider.manualPlay && !slider.manualPause) { slider.pause(); }
|
130 |
}, function() {
|
131 |
+
if (!slider.manualPause && !slider.manualPlay && !slider.stopped) { slider.play(); }
|
132 |
});
|
133 |
}
|
134 |
// initialize animation
|
139 |
}
|
140 |
|
141 |
// ASNAV:
|
142 |
+
if (asNav) { methods.asNav.setup(); }
|
143 |
|
144 |
// TOUCH
|
145 |
+
if (touch && slider.vars.touch) { methods.touch(); }
|
146 |
|
147 |
// FADE&&SMOOTHHEIGHT || SLIDE:
|
148 |
+
if (!fade || (fade && slider.vars.smoothHeight)) { $(window).bind("resize orientationchange focus", methods.resize()); }
|
149 |
|
150 |
slider.find("img").attr("draggable", "false");
|
151 |
|
181 |
that._gesture.target = that;
|
182 |
that.addEventListener("MSPointerDown", function (e){
|
183 |
e.preventDefault();
|
184 |
+
if(e.currentTarget._gesture) {
|
185 |
+
e.currentTarget._gesture.addPointer(e.pointerId);
|
186 |
+
}
|
187 |
}, false);
|
188 |
that.addEventListener("MSGestureTap", function (e){
|
189 |
e.preventDefault();
|
217 |
if (slider.pagingCount > 1) {
|
218 |
for (var i = 0; i < slider.pagingCount; i++) {
|
219 |
slide = slider.slides.eq(i);
|
220 |
+
if ( undefined === slide.attr( 'data-thumb-alt' ) ) { slide.attr( 'data-thumb-alt', '' ); }
|
221 |
+
var altText = ( '' !== slide.attr( 'data-thumb-alt' ) ) ? altText = ' alt="' + slide.attr( 'data-thumb-alt' ) + '"' : '';
|
222 |
+
item = (slider.vars.controlNav === "thumbnails") ? '<img src="' + slide.attr( 'data-thumb' ) + '"' + altText + '/>' : '<a href="#">' + j + '</a>';
|
223 |
if ( 'thumbnails' === slider.vars.controlNav && true === slider.vars.thumbCaptions ) {
|
224 |
var captn = slide.attr( 'data-thumbcaption' );
|
225 |
+
if ( '' !== captn && undefined !== captn ) { item += '<span class="' + namespace + 'caption">' + captn + '</span>'; }
|
226 |
}
|
227 |
slider.controlNavScaffold.append('<li>' + item + '</li>');
|
228 |
j++;
|
289 |
},
|
290 |
update: function(action, pos) {
|
291 |
if (slider.pagingCount > 1 && action === "add") {
|
292 |
+
slider.controlNavScaffold.append($('<li><a href="#">' + slider.count + '</a></li>'));
|
293 |
} else if (slider.pagingCount === 1) {
|
294 |
slider.controlNavScaffold.find('li').remove();
|
295 |
} else {
|
301 |
},
|
302 |
directionNav: {
|
303 |
setup: function() {
|
304 |
+
var directionNavScaffold = $('<ul class="' + namespace + 'direction-nav"><li class="' + namespace + 'nav-prev"><a class="' + namespace + 'prev" href="#">' + slider.vars.prevText + '</a></li><li class="' + namespace + 'nav-next"><a class="' + namespace + 'next" href="#">' + slider.vars.nextText + '</a></li></ul>');
|
305 |
|
306 |
+
// CUSTOM DIRECTION NAV:
|
307 |
+
if (slider.customDirectionNav) {
|
308 |
+
slider.directionNav = slider.customDirectionNav;
|
309 |
// CONTROLSCONTAINER:
|
310 |
+
} else if (slider.controlsContainer) {
|
311 |
$(slider.controlsContainer).append(directionNavScaffold);
|
312 |
slider.directionNav = $('.' + namespace + 'direction-nav li a', slider.controlsContainer);
|
313 |
} else {
|
352 |
},
|
353 |
pausePlay: {
|
354 |
setup: function() {
|
355 |
+
var pausePlayScaffold = $('<div class="' + namespace + 'pauseplay"><a href="#"></a></div>');
|
356 |
|
357 |
// CONTROLSCONTAINER:
|
358 |
if (slider.controlsContainer) {
|
398 |
cwidth,
|
399 |
dx,
|
400 |
startT,
|
401 |
+
onTouchStart,
|
402 |
+
onTouchMove,
|
403 |
+
onTouchEnd,
|
404 |
scrolling = false,
|
405 |
localX = 0,
|
406 |
localY = 0,
|
407 |
accDx = 0;
|
408 |
|
409 |
if(!msGesture){
|
410 |
+
onTouchStart = function(e) {
|
|
|
411 |
if (slider.animating) {
|
412 |
e.preventDefault();
|
413 |
} else if ( ( window.navigator.msPointerEnabled ) || e.touches.length === 1 ) {
|
432 |
el.addEventListener('touchmove', onTouchMove, false);
|
433 |
el.addEventListener('touchend', onTouchEnd, false);
|
434 |
}
|
435 |
+
};
|
|
|
|
|
436 |
|
437 |
+
onTouchMove = function(e) {
|
438 |
// Local vars for X and Y points.
|
439 |
|
440 |
localX = e.touches[0].pageX;
|
454 |
slider.setProps(offset + dx, "setTouch");
|
455 |
}
|
456 |
}
|
457 |
+
};
|
458 |
|
459 |
+
onTouchEnd = function(e) {
|
460 |
// finish the touch by undoing the touch session
|
461 |
el.removeEventListener('touchmove', onTouchMove, false);
|
462 |
|
467 |
if (slider.canAdvance(target) && (Number(new Date()) - startT < 550 && Math.abs(updateDx) > 50 || Math.abs(updateDx) > cwidth/2)) {
|
468 |
slider.flexAnimate(target, slider.vars.pauseOnAction);
|
469 |
} else {
|
470 |
+
if (!fade) { slider.flexAnimate(slider.currentSlide, slider.vars.pauseOnAction, true); }
|
471 |
}
|
472 |
}
|
473 |
el.removeEventListener('touchend', onTouchEnd, false);
|
474 |
|
475 |
+
if (dx && scrolling) {
|
476 |
+
|
477 |
+
// (scroll) Resume autoplay if slideshow is enabled
|
478 |
+
slider.vars.slideshow && slider.play();
|
479 |
+
} else if (dx) {
|
480 |
+
|
481 |
+
// (swipe) Resume if pauseOnAction:false, else end slideshow
|
482 |
+
!slider.vars.pauseOnAction && slider.play() || (slider.vars.slideshow = false);
|
483 |
+
} else {
|
484 |
+
|
485 |
+
// ("click") Resume if pauseOnAction:false, slideshow:true
|
486 |
+
(slider.vars.slideshow && !slider.vars.pauseOnAction) && slider.play() || (slider.vars.slideshow = false);
|
487 |
+
}
|
488 |
+
|
489 |
startX = null;
|
490 |
startY = null;
|
491 |
dx = null;
|
492 |
offset = null;
|
493 |
+
};
|
494 |
+
|
495 |
+
el.addEventListener('touchstart', onTouchStart, false);
|
496 |
}else{
|
497 |
el.style.msTouchAction = "none";
|
498 |
el._gesture = new MSGesture();
|
568 |
if (slider.canAdvance(target) && (Number(new Date()) - startT < 550 && Math.abs(updateDx) > 50 || Math.abs(updateDx) > cwidth/2)) {
|
569 |
slider.flexAnimate(target, slider.vars.pauseOnAction);
|
570 |
} else {
|
571 |
+
if (!fade) { slider.flexAnimate(slider.currentSlide, slider.vars.pauseOnAction, true); }
|
572 |
}
|
573 |
}
|
574 |
+
|
575 |
+
if (dx && scrolling) {
|
576 |
+
|
577 |
+
// (scroll) Resume autoplay if slideshow is enabled
|
578 |
+
slider.vars.slideshow && slider.play();
|
579 |
+
} else if (dx) {
|
580 |
+
|
581 |
+
// (swipe) Resume if pauseOnAction:false, else end slideshow
|
582 |
+
!slider.vars.pauseOnAction && slider.play() || (slider.vars.slideshow = false);
|
583 |
+
} else {
|
584 |
+
|
585 |
+
// ("click") Resume if pauseOnAction:false, slideshow:true
|
586 |
+
(slider.vars.slideshow && !slider.vars.pauseOnAction) && slider.play() || (slider.vars.slideshow = false);
|
587 |
+
}
|
588 |
|
589 |
startX = null;
|
590 |
startY = null;
|
596 |
},
|
597 |
resize: function() {
|
598 |
if (!slider.animating && slider.is(':visible')) {
|
599 |
+
if (!carousel) { slider.doMath(); }
|
600 |
|
601 |
if (fade) {
|
602 |
// SMOOTH HEIGHT:
|
611 |
slider.setProps(slider.h, "setTotal");
|
612 |
} else {
|
613 |
// SMOOTH HEIGHT:
|
614 |
+
if (slider.vars.smoothHeight) { methods.smoothHeight(); }
|
615 |
slider.newSlides.width(slider.computedW);
|
616 |
slider.setProps(slider.computedW, "setTotal");
|
617 |
}
|
620 |
smoothHeight: function(dur) {
|
621 |
if (!vertical || fade) {
|
622 |
var $obj = (fade) ? slider : slider.viewport;
|
623 |
+
(dur) ? $obj.animate({"height": slider.slides.eq(slider.animatingTo).innerHeight()}, dur) : $obj.innerHeight(slider.slides.eq(slider.animatingTo).innerHeight());
|
624 |
}
|
625 |
},
|
626 |
sync: function(action) {
|
634 |
}
|
635 |
},
|
636 |
uniqueID: function($clone) {
|
637 |
+
// Append _clone to current level and children elements with id attributes
|
638 |
+
$clone.filter( '[id]' ).add($clone.find( '[id]' )).each(function() {
|
639 |
var $this = $(this);
|
640 |
$this.attr( 'id', $this.attr( 'id' ) + '_clone' );
|
641 |
});
|
644 |
pauseInvisible: {
|
645 |
visProp: null,
|
646 |
init: function() {
|
647 |
+
var visProp = methods.pauseInvisible.getHiddenProp();
|
648 |
+
if (visProp) {
|
649 |
+
var evtname = visProp.replace(/[H|h]idden/,'') + 'visibilitychange';
|
|
|
|
|
|
|
|
|
|
|
|
|
650 |
document.addEventListener(evtname, function() {
|
651 |
if (methods.pauseInvisible.isHidden()) {
|
652 |
+
if(slider.startTimeout) {
|
653 |
+
clearTimeout(slider.startTimeout); //If clock is ticking, stop timer and prevent from starting while invisible
|
654 |
+
} else {
|
655 |
+
slider.pause(); //Or just pause
|
656 |
+
}
|
657 |
}
|
658 |
else {
|
659 |
+
if(slider.started) {
|
660 |
+
slider.play(); //Initiated before, just play
|
661 |
+
} else {
|
662 |
+
if (slider.vars.initDelay > 0) {
|
663 |
+
setTimeout(slider.play, slider.vars.initDelay);
|
664 |
+
} else {
|
665 |
+
slider.play(); //Didn't init before: simply init or wait for it
|
666 |
+
}
|
667 |
+
}
|
668 |
}
|
669 |
});
|
670 |
}
|
671 |
},
|
672 |
isHidden: function() {
|
673 |
+
var prop = methods.pauseInvisible.getHiddenProp();
|
674 |
+
if (!prop) {
|
675 |
+
return false;
|
676 |
+
}
|
677 |
+
return document[prop];
|
678 |
+
},
|
679 |
+
getHiddenProp: function() {
|
680 |
+
var prefixes = ['webkit','moz','ms','o'];
|
681 |
+
// if 'hidden' is natively supported just return it
|
682 |
+
if ('hidden' in document) {
|
683 |
+
return 'hidden';
|
684 |
+
}
|
685 |
+
// otherwise loop over all the known prefixes until we find one
|
686 |
+
for ( var i = 0; i < prefixes.length; i++ ) {
|
687 |
+
if ((prefixes[i] + 'Hidden') in document) {
|
688 |
+
return prefixes[i] + 'Hidden';
|
689 |
+
}
|
690 |
+
}
|
691 |
+
// otherwise it's not supported
|
692 |
+
return null;
|
693 |
}
|
694 |
},
|
695 |
setToClearWatchedEvent: function() {
|
731 |
slider.animatingTo = target;
|
732 |
|
733 |
// SLIDESHOW:
|
734 |
+
if (pause) { slider.pause(); }
|
735 |
|
736 |
// API: before() animation Callback
|
737 |
slider.vars.before(slider);
|
738 |
|
739 |
// SYNC:
|
740 |
+
if (slider.syncExists && !fromNav) { methods.sync("animate"); }
|
741 |
|
742 |
// CONTROLNAV
|
743 |
+
if (slider.vars.controlNav) { methods.controlNav.active(); }
|
744 |
|
745 |
// !CAROUSEL:
|
746 |
// CANDIDATE: slide active class (for add/remove slide)
|
747 |
+
if (!carousel) { slider.slides.removeClass(namespace + 'active-slide').eq(target).addClass(namespace + 'active-slide'); }
|
748 |
|
749 |
// INFINITE LOOP:
|
750 |
// CANDIDATE: atEnd
|
751 |
slider.atEnd = target === 0 || target === slider.last;
|
752 |
|
753 |
// DIRECTIONNAV:
|
754 |
+
if (slider.vars.directionNav) { methods.directionNav.update(); }
|
755 |
|
756 |
if (target === slider.last) {
|
757 |
// API: end() of cycle Callback
|
758 |
slider.vars.end(slider);
|
759 |
// SLIDESHOW && !INFINITE LOOP:
|
760 |
+
if (!slider.vars.animationLoop) { slider.pause(); }
|
761 |
}
|
762 |
|
763 |
// SLIDE:
|
767 |
|
768 |
// INFINITE LOOP / REVERSE:
|
769 |
if (carousel) {
|
|
|
770 |
margin = slider.vars.itemMargin;
|
771 |
calcNext = ((slider.itemW + margin) * slider.move) * slider.animatingTo;
|
772 |
slideString = (calcNext > slider.limit && slider.visible !== 1) ? slider.limit : calcNext;
|
783 |
slider.animating = false;
|
784 |
slider.currentSlide = slider.animatingTo;
|
785 |
}
|
786 |
+
|
787 |
// Unbind previous transitionEnd events and re-bind new transitionEnd event
|
788 |
slider.container.unbind("webkitTransitionEnd transitionend");
|
789 |
slider.container.bind("webkitTransitionEnd transitionend", function() {
|
804 |
}
|
805 |
} else { // FADE:
|
806 |
if (!touch) {
|
|
|
|
|
|
|
807 |
slider.slides.eq(slider.currentSlide).css({"zIndex": 1}).animate({"opacity": 0}, slider.vars.animationSpeed, slider.vars.easing);
|
808 |
slider.slides.eq(target).css({"zIndex": 2}).animate({"opacity": 1}, slider.vars.animationSpeed, slider.vars.easing, slider.wrapup);
|
|
|
809 |
} else {
|
810 |
slider.slides.eq(slider.currentSlide).css({ "opacity": 0, "zIndex": 1 });
|
811 |
slider.slides.eq(target).css({ "opacity": 1, "zIndex": 2 });
|
813 |
}
|
814 |
}
|
815 |
// SMOOTH HEIGHT:
|
816 |
+
if (slider.vars.smoothHeight) { methods.smoothHeight(slider.vars.animationSpeed); }
|
817 |
}
|
818 |
};
|
819 |
slider.wrapup = function(dimension) {
|
833 |
|
834 |
// SLIDESHOW:
|
835 |
slider.animateSlides = function() {
|
836 |
+
if (!slider.animating && focused ) { slider.flexAnimate(slider.getTarget("next")); }
|
837 |
};
|
838 |
// SLIDESHOW:
|
839 |
slider.pause = function() {
|
841 |
slider.animatedSlides = null;
|
842 |
slider.playing = false;
|
843 |
// PAUSEPLAY:
|
844 |
+
if (slider.vars.pausePlay) { methods.pausePlay.update("play"); }
|
845 |
// SYNC:
|
846 |
+
if (slider.syncExists) { methods.sync("pause"); }
|
847 |
};
|
848 |
// SLIDESHOW:
|
849 |
slider.play = function() {
|
850 |
+
if (slider.playing) { clearInterval(slider.animatedSlides); }
|
851 |
slider.animatedSlides = slider.animatedSlides || setInterval(slider.animateSlides, slider.vars.slideshowSpeed);
|
852 |
slider.started = slider.playing = true;
|
853 |
// PAUSEPLAY:
|
854 |
+
if (slider.vars.pausePlay) { methods.pausePlay.update("pause"); }
|
855 |
// SYNC:
|
856 |
+
if (slider.syncExists) { methods.sync("play"); }
|
857 |
};
|
858 |
// STOP:
|
859 |
slider.stop = function () {
|
913 |
}
|
914 |
|
915 |
slider.args[slider.prop] = target;
|
916 |
+
if (slider.transitions || dur === undefined) { slider.container.css(slider.args); }
|
917 |
|
918 |
slider.container.css('transform',target);
|
919 |
};
|
940 |
slider.cloneCount = 2;
|
941 |
slider.cloneOffset = 1;
|
942 |
// clear out old clones
|
943 |
+
if (type !== "init") { slider.container.find('.clone').remove(); }
|
944 |
+
slider.container.append(methods.uniqueID(slider.slides.first().clone().addClass('clone')).attr('aria-hidden', 'true'))
|
945 |
+
.prepend(methods.uniqueID(slider.slides.last().clone().addClass('clone')).attr('aria-hidden', 'true'));
|
|
|
946 |
}
|
947 |
slider.newSlides = $(slider.vars.selector, slider);
|
948 |
|
957 |
slider.setProps(sliderOffset * slider.h, "init");
|
958 |
}, (type === "init") ? 100 : 0);
|
959 |
} else {
|
|
|
960 |
slider.container.width((slider.count + slider.cloneCount) * 200 + "%");
|
961 |
slider.setProps(sliderOffset * slider.computedW, "init");
|
962 |
setTimeout(function(){
|
963 |
slider.doMath();
|
964 |
+
slider.newSlides.css({"width": slider.computedW, "marginRight" : slider.computedM, "float": "left", "display": "block"});
|
965 |
// SMOOTH HEIGHT:
|
966 |
+
if (slider.vars.smoothHeight) { methods.smoothHeight(); }
|
967 |
}, (type === "init") ? 100 : 0);
|
968 |
}
|
969 |
} else { // FADE:
|
978 |
}
|
979 |
} else {
|
980 |
slider.slides.css({ "opacity": 0, "display": "block", "webkitTransition": "opacity " + slider.vars.animationSpeed / 1000 + "s ease", "zIndex": 1 }).eq(slider.currentSlide).css({ "opacity": 1, "zIndex": 2});
|
|
|
981 |
}
|
982 |
}
|
983 |
// SMOOTH HEIGHT:
|
984 |
+
if (slider.vars.smoothHeight) { methods.smoothHeight(); }
|
985 |
}
|
986 |
// !CAROUSEL:
|
987 |
// CANDIDATE: active slide
|
988 |
+
if (!carousel) { slider.slides.removeClass(namespace + "active-slide").eq(slider.currentSlide).addClass(namespace + "active-slide"); }
|
989 |
|
990 |
//FlexSlider: init() Callback
|
991 |
slider.vars.init(slider);
|
1004 |
// CAROUSEL:
|
1005 |
if (carousel) {
|
1006 |
slider.itemT = slider.vars.itemWidth + slideMargin;
|
1007 |
+
slider.itemM = slideMargin;
|
1008 |
slider.minW = (minItems) ? minItems * slider.itemT : slider.w;
|
1009 |
slider.maxW = (maxItems) ? (maxItems * slider.itemT) - slideMargin : slider.w;
|
1010 |
slider.itemW = (slider.minW > slider.w) ? (slider.w - (slideMargin * (minItems - 1)))/minItems :
|
1019 |
(slider.vars.itemWidth > slider.w) ? (slider.itemW * (slider.count - 1)) + (slideMargin * (slider.count - 1)) : ((slider.itemW + slideMargin) * slider.count) - slider.w - slideMargin;
|
1020 |
} else {
|
1021 |
slider.itemW = slider.w;
|
1022 |
+
slider.itemM = slideMargin;
|
1023 |
slider.pagingCount = slider.count;
|
1024 |
slider.last = slider.count - 1;
|
1025 |
}
|
1026 |
slider.computedW = slider.itemW - slider.boxPadding;
|
1027 |
+
slider.computedM = slider.itemM;
|
1028 |
};
|
1029 |
|
1030 |
slider.update = function(pos, action) {
|
1053 |
}
|
1054 |
}
|
1055 |
// update directionNav
|
1056 |
+
if (slider.vars.directionNav) { methods.directionNav.update(); }
|
1057 |
|
1058 |
};
|
1059 |
|
1135 |
animationSpeed: 600, //Integer: Set the speed of animations, in milliseconds
|
1136 |
initDelay: 0, //{NEW} Integer: Set an initialization delay, in milliseconds
|
1137 |
randomize: false, //Boolean: Randomize slide order
|
1138 |
+
fadeFirstSlide: true, //Boolean: Fade in the first slide when animation type is "fade"
|
1139 |
thumbCaptions: false, //Boolean: Whether or not to put captions on thumbnails when using the "thumbnails" controlNav.
|
1140 |
|
1141 |
// Usability features
|
1142 |
pauseOnAction: true, //Boolean: Pause the slideshow when interacting with control elements, highly recommended.
|
1143 |
pauseOnHover: false, //Boolean: Pause the slideshow when hovering over slider, then resume when no longer hovering
|
1144 |
+
pauseInvisible: true, //{NEW} Boolean: Pause the slideshow when tab is invisible, resume when visible. Provides better UX, lower CPU usage.
|
1145 |
useCSS: true, //{NEW} Boolean: Slider will use CSS3 transitions if available
|
1146 |
touch: true, //{NEW} Boolean: Allow touch swipe navigation of the slider on touch-enabled devices
|
1147 |
video: false, //{NEW} Boolean: If using video in the slider, will prevent CSS3 3D Transforms to avoid graphical glitches
|
1148 |
|
1149 |
// Primary Controls
|
1150 |
+
controlNav: true, //Boolean: Create navigation for paging control of each slide? Note: Leave true for manualControls usage
|
1151 |
directionNav: true, //Boolean: Create navigation for previous/next navigation? (true/false)
|
1152 |
prevText: "Previous", //String: Set the text for the "previous" directionNav item
|
1153 |
nextText: "Next", //String: Set the text for the "next" directionNav item
|
1163 |
// Special properties
|
1164 |
controlsContainer: "", //{UPDATED} jQuery Object/Selector: Declare which container the navigation elements should be appended too. Default container is the FlexSlider element. Example use would be $(".flexslider-container"). Property is ignored if given element is not found.
|
1165 |
manualControls: "", //{UPDATED} jQuery Object/Selector: Declare custom control navigation. Examples would be $(".flex-control-nav li") or "#tabs-nav li img", etc. The number of elements in your controlNav should match the number of slides/tabs.
|
1166 |
+
customDirectionNav: "", //{NEW} jQuery Object/Selector: Custom prev / next button. Must be two jQuery elements. In order to make the events work they have to have the classes "prev" and "next" (plus namespace)
|
1167 |
sync: "", //{NEW} Selector: Mirror the actions performed on this slider with another slider. Use with care.
|
1168 |
asNavFor: "", //{NEW} Selector: Internal property exposed for turning the slider into a thumbnail navigation for another slider
|
1169 |
|
1187 |
|
1188 |
//FlexSlider: Plugin Function
|
1189 |
$.fn.flexslider = function(options) {
|
1190 |
+
if (options === undefined) { options = {}; }
|
1191 |
|
1192 |
if (typeof options === "object") {
|
1193 |
return this.each(function() {
|
1195 |
selector = (options.selector) ? options.selector : ".slides > li",
|
1196 |
$slides = $this.find(selector);
|
1197 |
|
1198 |
+
if ( ( $slides.length === 1 && options.allowOneSlide === false ) || $slides.length === 0 ) {
|
1199 |
$slides.fadeIn(400);
|
1200 |
+
if (options.start) { options.start($this); }
|
1201 |
} else if ($this.data('flexslider') === undefined) {
|
1202 |
new $.flexslider(this, options);
|
1203 |
}
|
1212 |
case "next": $slider.flexAnimate($slider.getTarget("next"), true); break;
|
1213 |
case "prev":
|
1214 |
case "previous": $slider.flexAnimate($slider.getTarget("prev"), true); break;
|
1215 |
+
default: if (typeof options === "number") { $slider.flexAnimate(options, true); }
|
1216 |
}
|
1217 |
}
|
1218 |
};
|
1219 |
+
})(jQuery);
|
assets/sliders/flexslider/jquery.flexslider.min.js
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
!function(e){var t=!0;e.flexslider=function(a,n){var i=e(a);i.vars=e.extend({},e.flexslider.defaults,n);var s,r=i.vars.namespace,o=window.navigator&&window.navigator.msPointerEnabled&&window.MSGesture,l=("ontouchstart"in window||o||window.DocumentTouch&&document instanceof DocumentTouch)&&i.vars.touch,c="click touchend MSPointerUp keyup",d="",u="vertical"===i.vars.direction,v=i.vars.reverse,p=i.vars.itemWidth>0,m="fade"===i.vars.animation,f=""!==i.vars.asNavFor,g={};e.data(a,"flexslider",i),g={init:function(){i.animating=!1,i.currentSlide=parseInt(i.vars.startAt?i.vars.startAt:0,10),isNaN(i.currentSlide)&&(i.currentSlide=0),i.animatingTo=i.currentSlide,i.atEnd=0===i.currentSlide||i.currentSlide===i.last,i.containerSelector=i.vars.selector.substr(0,i.vars.selector.search(" ")),i.slides=e(i.vars.selector,i),i.container=e(i.containerSelector,i),i.count=i.slides.length,i.syncExists=e(i.vars.sync).length>0,"slide"===i.vars.animation&&(i.vars.animation="swing"),i.prop=u?"top":"marginLeft",i.args={},i.manualPause=!1,i.stopped=!1,i.started=!1,i.startTimeout=null,i.transitions=!i.vars.video&&!m&&i.vars.useCSS&&function(){var e=document.createElement("div"),t=["perspectiveProperty","WebkitPerspective","MozPerspective","OPerspective","msPerspective"];for(var a in t)if(void 0!==e.style[t[a]])return i.pfx=t[a].replace("Perspective","").toLowerCase(),i.prop="-"+i.pfx+"-transform",!0;return!1}(),i.ensureAnimationEnd="",""!==i.vars.controlsContainer&&(i.controlsContainer=e(i.vars.controlsContainer).length>0&&e(i.vars.controlsContainer)),""!==i.vars.manualControls&&(i.manualControls=e(i.vars.manualControls).length>0&&e(i.vars.manualControls)),""!==i.vars.customDirectionNav&&(i.customDirectionNav=2===e(i.vars.customDirectionNav).length&&e(i.vars.customDirectionNav)),i.vars.randomize&&(i.slides.sort(function(){return Math.round(Math.random())-.5}),i.container.empty().append(i.slides)),i.doMath(),i.setup("init"),i.vars.controlNav&&g.controlNav.setup(),i.vars.directionNav&&g.directionNav.setup(),i.vars.keyboard&&(1===e(i.containerSelector).length||i.vars.multipleKeyboard)&&e(document).bind("keyup",function(e){var t=e.keyCode;if(!i.animating&&(39===t||37===t)){var a=39===t?i.getTarget("next"):37===t&&i.getTarget("prev");i.flexAnimate(a,i.vars.pauseOnAction)}}),i.vars.mousewheel&&i.bind("mousewheel",function(e,t,a,n){e.preventDefault();var s=t<0?i.getTarget("next"):i.getTarget("prev");i.flexAnimate(s,i.vars.pauseOnAction)}),i.vars.pausePlay&&g.pausePlay.setup(),i.vars.slideshow&&i.vars.pauseInvisible&&g.pauseInvisible.init(),i.vars.slideshow&&(i.vars.pauseOnHover&&i.hover(function(){i.manualPlay||i.manualPause||i.pause()},function(){i.manualPause||i.manualPlay||i.stopped||i.play()}),i.vars.pauseInvisible&&g.pauseInvisible.isHidden()||(i.vars.initDelay>0?i.startTimeout=setTimeout(i.play,i.vars.initDelay):i.play())),f&&g.asNav.setup(),l&&i.vars.touch&&g.touch(),(!m||m&&i.vars.smoothHeight)&&e(window).bind("resize orientationchange focus",g.resize()),i.find("img").attr("draggable","false"),setTimeout(function(){i.vars.start(i)},200)},asNav:{setup:function(){i.asNav=!0,i.animatingTo=Math.floor(i.currentSlide/i.move),i.currentItem=i.currentSlide,i.slides.removeClass(r+"active-slide").eq(i.currentItem).addClass(r+"active-slide"),o?(a._slider=i,i.slides.each(function(){var t=this;t._gesture=new MSGesture,t._gesture.target=t,t.addEventListener("MSPointerDown",function(e){e.preventDefault(),e.currentTarget._gesture&&e.currentTarget._gesture.addPointer(e.pointerId)},!1),t.addEventListener("MSGestureTap",function(t){t.preventDefault();var a=e(this),n=a.index();e(i.vars.asNavFor).data("flexslider").animating||a.hasClass("active")||(i.direction=i.currentItem<n?"next":"prev",i.flexAnimate(n,i.vars.pauseOnAction,!1,!0,!0))})})):i.slides.on(c,function(t){t.preventDefault();var a=e(this),n=a.index(),s=a.offset().left-e(i).scrollLeft();s<=0&&a.hasClass(r+"active-slide")?i.flexAnimate(i.getTarget("prev"),!0):e(i.vars.asNavFor).data("flexslider").animating||a.hasClass(r+"active-slide")||(i.direction=i.currentItem<n?"next":"prev",i.flexAnimate(n,i.vars.pauseOnAction,!1,!0,!0))})}},controlNav:{setup:function(){i.manualControls?g.controlNav.setupManual():g.controlNav.setupPaging()},setupPaging:function(){var t,a,n="thumbnails"===i.vars.controlNav?"control-thumbs":"control-paging",s=1;if(i.controlNavScaffold=e('<ol class="'+r+"control-nav "+r+n+'"></ol>'),i.pagingCount>1)for(var o=0;o<i.pagingCount;o++){a=i.slides.eq(o),void 0===a.attr("data-thumb-alt")&&a.attr("data-thumb-alt","");var l=""!==a.attr("data-thumb-alt")?l=' alt="'+a.attr("data-thumb-alt")+'"':"";if(t="thumbnails"===i.vars.controlNav?'<img src="'+a.attr("data-thumb")+'"'+l+"/>":'<a href="#">'+s+"</a>","thumbnails"===i.vars.controlNav&&!0===i.vars.thumbCaptions){var u=a.attr("data-thumbcaption");""!==u&&void 0!==u&&(t+='<span class="'+r+'caption">'+u+"</span>")}i.controlNavScaffold.append("<li>"+t+"</li>"),s++}i.controlsContainer?e(i.controlsContainer).append(i.controlNavScaffold):i.append(i.controlNavScaffold),g.controlNav.set(),g.controlNav.active(),i.controlNavScaffold.delegate("a, img",c,function(t){if(t.preventDefault(),""===d||d===t.type){var a=e(this),n=i.controlNav.index(a);a.hasClass(r+"active")||(i.direction=n>i.currentSlide?"next":"prev",i.flexAnimate(n,i.vars.pauseOnAction))}""===d&&(d=t.type),g.setToClearWatchedEvent()})},setupManual:function(){i.controlNav=i.manualControls,g.controlNav.active(),i.controlNav.bind(c,function(t){if(t.preventDefault(),""===d||d===t.type){var a=e(this),n=i.controlNav.index(a);a.hasClass(r+"active")||(n>i.currentSlide?i.direction="next":i.direction="prev",i.flexAnimate(n,i.vars.pauseOnAction))}""===d&&(d=t.type),g.setToClearWatchedEvent()})},set:function(){var t="thumbnails"===i.vars.controlNav?"img":"a";i.controlNav=e("."+r+"control-nav li "+t,i.controlsContainer?i.controlsContainer:i)},active:function(){i.controlNav.removeClass(r+"active").eq(i.animatingTo).addClass(r+"active")},update:function(t,a){i.pagingCount>1&&"add"===t?i.controlNavScaffold.append(e('<li><a href="#">'+i.count+"</a></li>")):1===i.pagingCount?i.controlNavScaffold.find("li").remove():i.controlNav.eq(a).closest("li").remove(),g.controlNav.set(),i.pagingCount>1&&i.pagingCount!==i.controlNav.length?i.update(a,t):g.controlNav.active()}},directionNav:{setup:function(){var t=e('<ul class="'+r+'direction-nav"><li class="'+r+'nav-prev"><a class="'+r+'prev" href="#">'+i.vars.prevText+'</a></li><li class="'+r+'nav-next"><a class="'+r+'next" href="#">'+i.vars.nextText+"</a></li></ul>");i.customDirectionNav?i.directionNav=i.customDirectionNav:i.controlsContainer?(e(i.controlsContainer).append(t),i.directionNav=e("."+r+"direction-nav li a",i.controlsContainer)):(i.append(t),i.directionNav=e("."+r+"direction-nav li a",i)),g.directionNav.update(),i.directionNav.bind(c,function(t){t.preventDefault();var a;""!==d&&d!==t.type||(a=e(this).hasClass(r+"next")?i.getTarget("next"):i.getTarget("prev"),i.flexAnimate(a,i.vars.pauseOnAction)),""===d&&(d=t.type),g.setToClearWatchedEvent()})},update:function(){var e=r+"disabled";1===i.pagingCount?i.directionNav.addClass(e).attr("tabindex","-1"):i.vars.animationLoop?i.directionNav.removeClass(e).removeAttr("tabindex"):0===i.animatingTo?i.directionNav.removeClass(e).filter("."+r+"prev").addClass(e).attr("tabindex","-1"):i.animatingTo===i.last?i.directionNav.removeClass(e).filter("."+r+"next").addClass(e).attr("tabindex","-1"):i.directionNav.removeClass(e).removeAttr("tabindex")}},pausePlay:{setup:function(){var t=e('<div class="'+r+'pauseplay"><a href="#"></a></div>');i.controlsContainer?(i.controlsContainer.append(t),i.pausePlay=e("."+r+"pauseplay a",i.controlsContainer)):(i.append(t),i.pausePlay=e("."+r+"pauseplay a",i)),g.pausePlay.update(i.vars.slideshow?r+"pause":r+"play"),i.pausePlay.bind(c,function(t){t.preventDefault(),""!==d&&d!==t.type||(e(this).hasClass(r+"pause")?(i.manualPause=!0,i.manualPlay=!1,i.pause()):(i.manualPause=!1,i.manualPlay=!0,i.play())),""===d&&(d=t.type),g.setToClearWatchedEvent()})},update:function(e){"play"===e?i.pausePlay.removeClass(r+"pause").addClass(r+"play").html(i.vars.playText):i.pausePlay.removeClass(r+"play").addClass(r+"pause").html(i.vars.pauseText)}},touch:function(){function e(e){e.stopPropagation(),i.animating?e.preventDefault():(i.pause(),a._gesture.addPointer(e.pointerId),w=0,c=u?i.h:i.w,f=Number(new Date),l=p&&v&&i.animatingTo===i.last?0:p&&v?i.limit-(i.itemW+i.vars.itemMargin)*i.move*i.animatingTo:p&&i.currentSlide===i.last?i.limit:p?(i.itemW+i.vars.itemMargin)*i.move*i.currentSlide:v?(i.last-i.currentSlide+i.cloneOffset)*c:(i.currentSlide+i.cloneOffset)*c)}function t(e){e.stopPropagation();var t=e.target._slider;if(t){var n=-e.translationX,i=-e.translationY;return w+=u?i:n,d=w,y=u?Math.abs(w)<Math.abs(-n):Math.abs(w)<Math.abs(-i),e.detail===e.MSGESTURE_FLAG_INERTIA?void setImmediate(function(){a._gesture.stop()}):void((!y||Number(new Date)-f>500)&&(e.preventDefault(),!m&&t.transitions&&(t.vars.animationLoop||(d=w/(0===t.currentSlide&&w<0||t.currentSlide===t.last&&w>0?Math.abs(w)/c+2:1)),t.setProps(l+d,"setTouch"))))}}function n(e){e.stopPropagation();var t=e.target._slider;if(t){if(t.animatingTo===t.currentSlide&&!y&&null!==d){var a=v?-d:d,n=a>0?t.getTarget("next"):t.getTarget("prev");t.canAdvance(n)&&(Number(new Date)-f<550&&Math.abs(a)>50||Math.abs(a)>c/2)?t.flexAnimate(n,t.vars.pauseOnAction):m||t.flexAnimate(t.currentSlide,t.vars.pauseOnAction,!0)}d&&y?t.vars.slideshow&&t.play():d?!t.vars.pauseOnAction&&t.play()||(t.vars.slideshow=!1):t.vars.slideshow&&!t.vars.pauseOnAction&&t.play()||(t.vars.slideshow=!1),s=null,r=null,d=null,l=null,w=0}}var s,r,l,c,d,f,g,h,S,y=!1,x=0,b=0,w=0;o?(a.style.msTouchAction="none",a._gesture=new MSGesture,a._gesture.target=a,a.addEventListener("MSPointerDown",e,!1),a._slider=i,a.addEventListener("MSGestureChange",t,!1),a.addEventListener("MSGestureEnd",n,!1)):(g=function(e){i.animating?e.preventDefault():(window.navigator.msPointerEnabled||1===e.touches.length)&&(i.pause(),c=u?i.h:i.w,f=Number(new Date),x=e.touches[0].pageX,b=e.touches[0].pageY,l=p&&v&&i.animatingTo===i.last?0:p&&v?i.limit-(i.itemW+i.vars.itemMargin)*i.move*i.animatingTo:p&&i.currentSlide===i.last?i.limit:p?(i.itemW+i.vars.itemMargin)*i.move*i.currentSlide:v?(i.last-i.currentSlide+i.cloneOffset)*c:(i.currentSlide+i.cloneOffset)*c,s=u?b:x,r=u?x:b,a.addEventListener("touchmove",h,!1),a.addEventListener("touchend",S,!1))},h=function(e){x=e.touches[0].pageX,b=e.touches[0].pageY,d=u?s-b:s-x,y=u?Math.abs(d)<Math.abs(x-r):Math.abs(d)<Math.abs(b-r);var t=500;(!y||Number(new Date)-f>t)&&(e.preventDefault(),!m&&i.transitions&&(i.vars.animationLoop||(d/=0===i.currentSlide&&d<0||i.currentSlide===i.last&&d>0?Math.abs(d)/c+2:1),i.setProps(l+d,"setTouch")))},S=function(e){if(a.removeEventListener("touchmove",h,!1),i.animatingTo===i.currentSlide&&!y&&null!==d){var t=v?-d:d,n=t>0?i.getTarget("next"):i.getTarget("prev");i.canAdvance(n)&&(Number(new Date)-f<550&&Math.abs(t)>50||Math.abs(t)>c/2)?i.flexAnimate(n,i.vars.pauseOnAction):m||i.flexAnimate(i.currentSlide,i.vars.pauseOnAction,!0)}a.removeEventListener("touchend",S,!1),d&&y?i.vars.slideshow&&i.play():d?!i.vars.pauseOnAction&&i.play()||(i.vars.slideshow=!1):i.vars.slideshow&&!i.vars.pauseOnAction&&i.play()||(i.vars.slideshow=!1),s=null,r=null,d=null,l=null},a.addEventListener("touchstart",g,!1))},resize:function(){!i.animating&&i.is(":visible")&&(p||i.doMath(),m?g.smoothHeight():p?(i.slides.width(i.computedW),i.update(i.pagingCount),i.setProps()):u?(i.viewport.height(i.h),i.setProps(i.h,"setTotal")):(i.vars.smoothHeight&&g.smoothHeight(),i.newSlides.width(i.computedW),i.setProps(i.computedW,"setTotal")))},smoothHeight:function(e){if(!u||m){var t=m?i:i.viewport;e?t.animate({height:i.slides.eq(i.animatingTo).innerHeight()},e):t.innerHeight(i.slides.eq(i.animatingTo).innerHeight())}},sync:function(t){var a=e(i.vars.sync).data("flexslider"),n=i.animatingTo;switch(t){case"animate":a.flexAnimate(n,i.vars.pauseOnAction,!1,!0);break;case"play":a.playing||a.asNav||a.play();break;case"pause":a.pause()}},uniqueID:function(t){return t.filter("[id]").add(t.find("[id]")).each(function(){var t=e(this);t.attr("id",t.attr("id")+"_clone")}),t},pauseInvisible:{visProp:null,init:function(){var e=g.pauseInvisible.getHiddenProp();if(e){var t=e.replace(/[H|h]idden/,"")+"visibilitychange";document.addEventListener(t,function(){g.pauseInvisible.isHidden()?i.startTimeout?clearTimeout(i.startTimeout):i.pause():i.started?i.play():i.vars.initDelay>0?setTimeout(i.play,i.vars.initDelay):i.play()})}},isHidden:function(){var e=g.pauseInvisible.getHiddenProp();return!!e&&document[e]},getHiddenProp:function(){var e=["webkit","moz","ms","o"];if("hidden"in document)return"hidden";for(var t=0;t<e.length;t++)if(e[t]+"Hidden"in document)return e[t]+"Hidden";return null}},setToClearWatchedEvent:function(){clearTimeout(s),s=setTimeout(function(){d=""},3e3)}},i.flexAnimate=function(t,a,n,s,o){if(i.vars.animationLoop||t===i.currentSlide||(i.direction=t>i.currentSlide?"next":"prev"),f&&1===i.pagingCount&&(i.direction=i.currentItem<t?"next":"prev"),!i.animating&&(i.canAdvance(t,o)||n)&&i.is(":visible")){if(f&&s){var c=e(i.vars.asNavFor).data("flexslider");if(i.atEnd=0===t||t===i.count-1,c.flexAnimate(t,!0,!1,!0,o),i.direction=i.currentItem<t?"next":"prev",c.direction=i.direction,Math.ceil((t+1)/i.visible)-1===i.currentSlide||0===t)return i.currentItem=t,i.slides.removeClass(r+"active-slide").eq(t).addClass(r+"active-slide"),!1;i.currentItem=t,i.slides.removeClass(r+"active-slide").eq(t).addClass(r+"active-slide"),t=Math.floor(t/i.visible)}if(i.animating=!0,i.animatingTo=t,a&&i.pause(),i.vars.before(i),i.syncExists&&!o&&g.sync("animate"),i.vars.controlNav&&g.controlNav.active(),p||i.slides.removeClass(r+"active-slide").eq(t).addClass(r+"active-slide"),i.atEnd=0===t||t===i.last,i.vars.directionNav&&g.directionNav.update(),t===i.last&&(i.vars.end(i),i.vars.animationLoop||i.pause()),m)l?(i.slides.eq(i.currentSlide).css({opacity:0,zIndex:1}),i.slides.eq(t).css({opacity:1,zIndex:2}),i.wrapup(y)):(i.slides.eq(i.currentSlide).css({zIndex:1}).animate({opacity:0},i.vars.animationSpeed,i.vars.easing),i.slides.eq(t).css({zIndex:2}).animate({opacity:1},i.vars.animationSpeed,i.vars.easing,i.wrapup));else{var d,h,S,y=u?i.slides.filter(":first").height():i.computedW;p?(d=i.vars.itemMargin,S=(i.itemW+d)*i.move*i.animatingTo,h=S>i.limit&&1!==i.visible?i.limit:S):h=0===i.currentSlide&&t===i.count-1&&i.vars.animationLoop&&"next"!==i.direction?v?(i.count+i.cloneOffset)*y:0:i.currentSlide===i.last&&0===t&&i.vars.animationLoop&&"prev"!==i.direction?v?0:(i.count+1)*y:v?(i.count-1-t+i.cloneOffset)*y:(t+i.cloneOffset)*y,i.setProps(h,"",i.vars.animationSpeed),i.transitions?(i.vars.animationLoop&&i.atEnd||(i.animating=!1,i.currentSlide=i.animatingTo),i.container.unbind("webkitTransitionEnd transitionend"),i.container.bind("webkitTransitionEnd transitionend",function(){clearTimeout(i.ensureAnimationEnd),i.wrapup(y)}),clearTimeout(i.ensureAnimationEnd),i.ensureAnimationEnd=setTimeout(function(){i.wrapup(y)},i.vars.animationSpeed+100)):i.container.animate(i.args,i.vars.animationSpeed,i.vars.easing,function(){i.wrapup(y)})}i.vars.smoothHeight&&g.smoothHeight(i.vars.animationSpeed)}},i.wrapup=function(e){m||p||(0===i.currentSlide&&i.animatingTo===i.last&&i.vars.animationLoop?i.setProps(e,"jumpEnd"):i.currentSlide===i.last&&0===i.animatingTo&&i.vars.animationLoop&&i.setProps(e,"jumpStart")),i.animating=!1,i.currentSlide=i.animatingTo,i.vars.after(i)},i.animateSlides=function(){!i.animating&&t&&i.flexAnimate(i.getTarget("next"))},i.pause=function(){clearInterval(i.animatedSlides),i.animatedSlides=null,i.playing=!1,i.vars.pausePlay&&g.pausePlay.update("play"),i.syncExists&&g.sync("pause")},i.play=function(){i.playing&&clearInterval(i.animatedSlides),i.animatedSlides=i.animatedSlides||setInterval(i.animateSlides,i.vars.slideshowSpeed),i.started=i.playing=!0,i.vars.pausePlay&&g.pausePlay.update("pause"),i.syncExists&&g.sync("play")},i.stop=function(){i.pause(),i.stopped=!0},i.canAdvance=function(e,t){var a=f?i.pagingCount-1:i.last;return!!t||(!(!f||i.currentItem!==i.count-1||0!==e||"prev"!==i.direction)||(!f||0!==i.currentItem||e!==i.pagingCount-1||"next"===i.direction)&&(!(e===i.currentSlide&&!f)&&(!!i.vars.animationLoop||(!i.atEnd||0!==i.currentSlide||e!==a||"next"===i.direction)&&(!i.atEnd||i.currentSlide!==a||0!==e||"next"!==i.direction))))},i.getTarget=function(e){return i.direction=e,"next"===e?i.currentSlide===i.last?0:i.currentSlide+1:0===i.currentSlide?i.last:i.currentSlide-1},i.setProps=function(e,t,a){var n=function(){var a=e?e:(i.itemW+i.vars.itemMargin)*i.move*i.animatingTo,n=function(){if(p)return"setTouch"===t?e:v&&i.animatingTo===i.last?0:v?i.limit-(i.itemW+i.vars.itemMargin)*i.move*i.animatingTo:i.animatingTo===i.last?i.limit:a;switch(t){case"setTotal":return v?(i.count-1-i.currentSlide+i.cloneOffset)*e:(i.currentSlide+i.cloneOffset)*e;case"setTouch":return v?e:e;case"jumpEnd":return v?e:i.count*e;case"jumpStart":return v?i.count*e:e;default:return e}}();return n*-1+"px"}();i.transitions&&(n=u?"translate3d(0,"+n+",0)":"translate3d("+n+",0,0)",a=void 0!==a?a/1e3+"s":"0s",i.container.css("-"+i.pfx+"-transition-duration",a),i.container.css("transition-duration",a)),i.args[i.prop]=n,(i.transitions||void 0===a)&&i.container.css(i.args),i.container.css("transform",n)},i.setup=function(t){if(m)i.slides.css({width:"100%","float":"left",marginRight:"-100%",position:"relative"}),"init"===t&&(l?i.slides.css({opacity:0,display:"block",webkitTransition:"opacity "+i.vars.animationSpeed/1e3+"s ease",zIndex:1}).eq(i.currentSlide).css({opacity:1,zIndex:2}):0==i.vars.fadeFirstSlide?i.slides.css({opacity:0,display:"block",zIndex:1}).eq(i.currentSlide).css({zIndex:2}).css({opacity:1}):i.slides.css({opacity:0,display:"block",zIndex:1}).eq(i.currentSlide).css({zIndex:2}).animate({opacity:1},i.vars.animationSpeed,i.vars.easing)),i.vars.smoothHeight&&g.smoothHeight();else{var a,n;"init"===t&&(i.viewport=e('<div class="'+r+'viewport"></div>').css({overflow:"hidden",position:"relative"}).appendTo(i).append(i.container),i.cloneCount=0,i.cloneOffset=0,v&&(n=e.makeArray(i.slides).reverse(),i.slides=e(n),i.container.empty().append(i.slides))),i.vars.animationLoop&&!p&&(i.cloneCount=2,i.cloneOffset=1,"init"!==t&&i.container.find(".clone").remove(),i.container.append(g.uniqueID(i.slides.first().clone().addClass("clone")).attr("aria-hidden","true")).prepend(g.uniqueID(i.slides.last().clone().addClass("clone")).attr("aria-hidden","true"))),i.newSlides=e(i.vars.selector,i),a=v?i.count-1-i.currentSlide+i.cloneOffset:i.currentSlide+i.cloneOffset,u&&!p?(i.container.height(200*(i.count+i.cloneCount)+"%").css("position","absolute").width("100%"),setTimeout(function(){i.newSlides.css({display:"block"}),i.doMath(),i.viewport.height(i.h),i.setProps(a*i.h,"init")},"init"===t?100:0)):(i.container.width(200*(i.count+i.cloneCount)+"%"),i.setProps(a*i.computedW,"init"),setTimeout(function(){i.doMath(),i.newSlides.css({width:i.computedW,marginRight:i.computedM,"float":"left",display:"block"}),i.vars.smoothHeight&&g.smoothHeight()},"init"===t?100:0))}p||i.slides.removeClass(r+"active-slide").eq(i.currentSlide).addClass(r+"active-slide"),i.vars.init(i)},i.doMath=function(){var e=i.slides.first(),t=i.vars.itemMargin,a=i.vars.minItems,n=i.vars.maxItems;i.w=void 0===i.viewport?i.width():i.viewport.width(),i.h=e.height(),i.boxPadding=e.outerWidth()-e.width(),p?(i.itemT=i.vars.itemWidth+t,i.itemM=t,i.minW=a?a*i.itemT:i.w,i.maxW=n?n*i.itemT-t:i.w,i.itemW=i.minW>i.w?(i.w-t*(a-1))/a:i.maxW<i.w?(i.w-t*(n-1))/n:i.vars.itemWidth>i.w?i.w:i.vars.itemWidth,i.visible=Math.floor(i.w/i.itemW),i.move=i.vars.move>0&&i.vars.move<i.visible?i.vars.move:i.visible,i.pagingCount=Math.ceil((i.count-i.visible)/i.move+1),i.last=i.pagingCount-1,i.limit=1===i.pagingCount?0:i.vars.itemWidth>i.w?i.itemW*(i.count-1)+t*(i.count-1):(i.itemW+t)*i.count-i.w-t):(i.itemW=i.w,i.itemM=t,i.pagingCount=i.count,i.last=i.count-1),i.computedW=i.itemW-i.boxPadding,i.computedM=i.itemM},i.update=function(e,t){i.doMath(),p||(e<i.currentSlide?i.currentSlide+=1:e<=i.currentSlide&&0!==e&&(i.currentSlide-=1),i.animatingTo=i.currentSlide),i.vars.controlNav&&!i.manualControls&&("add"===t&&!p||i.pagingCount>i.controlNav.length?g.controlNav.update("add"):("remove"===t&&!p||i.pagingCount<i.controlNav.length)&&(p&&i.currentSlide>i.last&&(i.currentSlide-=1,i.animatingTo-=1),g.controlNav.update("remove",i.last))),i.vars.directionNav&&g.directionNav.update()},i.addSlide=function(t,a){var n=e(t);i.count+=1,i.last=i.count-1,u&&v?void 0!==a?i.slides.eq(i.count-a).after(n):i.container.prepend(n):void 0!==a?i.slides.eq(a).before(n):i.container.append(n),i.update(a,"add"),i.slides=e(i.vars.selector+":not(.clone)",i),i.setup(),i.vars.added(i)},i.removeSlide=function(t){var a=isNaN(t)?i.slides.index(e(t)):t;i.count-=1,i.last=i.count-1,isNaN(t)?e(t,i.slides).remove():u&&v?i.slides.eq(i.last).remove():i.slides.eq(t).remove(),i.doMath(),i.update(a,"remove"),i.slides=e(i.vars.selector+":not(.clone)",i),i.setup(),i.vars.removed(i)},g.init()},e(window).blur(function(e){t=!1}).focus(function(e){t=!0}),e.flexslider.defaults={namespace:"flex-",selector:".slides > li",animation:"fade",easing:"swing",direction:"horizontal",reverse:!1,animationLoop:!0,smoothHeight:!1,startAt:0,slideshow:!0,slideshowSpeed:7e3,animationSpeed:600,initDelay:0,randomize:!1,fadeFirstSlide:!0,thumbCaptions:!1,pauseOnAction:!0,pauseOnHover:!1,pauseInvisible:!0,useCSS:!0,touch:!0,video:!1,controlNav:!0,directionNav:!0,prevText:"Previous",nextText:"Next",keyboard:!0,multipleKeyboard:!1,mousewheel:!1,pausePlay:!1,pauseText:"Pause",playText:"Play",controlsContainer:"",manualControls:"",customDirectionNav:"",sync:"",asNavFor:"",itemWidth:0,itemMargin:0,minItems:1,maxItems:0,move:0,allowOneSlide:!0,start:function(){},before:function(){},after:function(){},end:function(){},added:function(){},removed:function(){},init:function(){}},e.fn.flexslider=function(t){if(void 0===t&&(t={}),"object"==typeof t)return this.each(function(){var a=e(this),n=t.selector?t.selector:".slides > li",i=a.find(n);1===i.length&&t.allowOneSlide===!1||0===i.length?(i.fadeIn(400),t.start&&t.start(a)):void 0===a.data("flexslider")&&new e.flexslider(this,t)});var a=e(this).data("flexslider");switch(t){case"play":a.play();break;case"pause":a.pause();break;case"stop":a.stop();break;case"next":a.flexAnimate(a.getTarget("next"),!0);break;case"prev":case"previous":a.flexAnimate(a.getTarget("prev"),!0);break;default:"number"==typeof t&&a.flexAnimate(t,!0)}}}(jQuery);
|
assets/sliders/nivoslider/jquery.nivo.slider.pack.js
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
* Free to use and abuse under the MIT license.
|
7 |
* http://www.opensource.org/licenses/mit-license.php
|
8 |
*
|
9 |
-
*
|
10 |
*/
|
11 |
|
12 |
(function(e){var t=function(t,n){var r=e.extend({},e.fn.nivoSlider.defaults,n);var i={currentSlide:0,currentImage:"",totalSlides:0,running:false,paused:false,stop:false,controlNavEl:false};var s=e(t);s.data("nivo:vars",i).addClass("nivoSlider");var o=s.children();o.each(function(){var t=e(this);var n="";if(!t.is("img")){if(t.is("a")){t.addClass("nivo-imageLink");n=t}t=t.find("img:first")}var r=r===0?t.attr("width"):t.width(),s=s===0?t.attr("height"):t.height();if(n!==""){n.css("display","none")}t.css("display","none");i.totalSlides++});if(r.randomStart){r.startSlide=Math.floor(Math.random()*i.totalSlides)}if(r.startSlide>0){if(r.startSlide>=i.totalSlides){r.startSlide=i.totalSlides-1}i.currentSlide=r.startSlide}if(e(o[i.currentSlide]).is("img")){i.currentImage=e(o[i.currentSlide])}else{i.currentImage=e(o[i.currentSlide]).find("img:first")}if(e(o[i.currentSlide]).is("a")){e(o[i.currentSlide]).css("display","block")}var u=e("<img/>").addClass("nivo-main-image");u.attr("src",i.currentImage.attr("src")).show();s.append(u);e(window).resize(function(){s.children("img").width(s.width());u.attr("src",i.currentImage.attr("src"));u.stop().height("auto");e(".nivo-slice").remove();e(".nivo-box").remove()});s.append(e('<div class="nivo-caption"></div>'));var a=function(t){var n=e(".nivo-caption",s);if(i.currentImage.attr("data-title")!=""&&i.currentImage.attr("data-title")!=undefined){var r=i.currentImage.attr("data-title");if(r.substr(0,1)=="#")r=e(r).html();if(n.css("display")=="block"){setTimeout(function(){n.html(r)},t.animSpeed)}else{n.html(r);n.stop().fadeIn(t.animSpeed)}}else{n.stop().fadeOut(t.animSpeed)}};a(r);var f=0;if(!r.manualAdvance&&o.length>1){f=setInterval(function(){d(s,o,r,false)},r.pauseTime)}if(r.directionNav){s.append('<div class="nivo-directionNav"><a class="nivo-prevNav">'+r.prevText+'</a><a class="nivo-nextNav">'+r.nextText+"</a></div>");e(s).on("click","a.nivo-prevNav",function(){if(i.running){return false}clearInterval(f);f="";i.currentSlide-=2;d(s,o,r,"prev")});e(s).on("click","a.nivo-nextNav",function(){if(i.running){return false}clearInterval(f);f="";d(s,o,r,"next")})}if(r.controlNav){i.controlNavEl=e('<div class="nivo-controlNav"></div>');s.after(i.controlNavEl);for(var l=0;l<o.length;l++){if(r.controlNavThumbs){i.controlNavEl.addClass("nivo-thumbs-enabled");var c=o.eq(l);if(!c.is("img")){c=c.find("img:first")}if(c.attr("data-thumb"))i.controlNavEl.append('<a class="nivo-control" rel="'+l+'"><img src="'+c.attr("data-thumb")+'" alt="" /></a>')}else{i.controlNavEl.append('<a class="nivo-control" rel="'+l+'">'+(l+1)+"</a>")}}e("a:eq("+i.currentSlide+")",i.controlNavEl).addClass("active");e("a",i.controlNavEl).bind("click",function(){if(i.running)return false;if(e(this).hasClass("active"))return false;clearInterval(f);f="";u.attr("src",i.currentImage.attr("src"));i.currentSlide=e(this).attr("rel")-1;d(s,o,r,"control")})}if(r.pauseOnHover){s.hover(function(){i.paused=true;clearInterval(f);f=""},function(){i.paused=false;if(f===""&&!r.manualAdvance){f=setInterval(function(){d(s,o,r,false)},r.pauseTime)}})}s.bind("nivo:animFinished",function(){u.attr("src",i.currentImage.attr("src"));i.running=false;e(o).each(function(){if(e(this).is("a")){e(this).css("display","none")}});if(e(o[i.currentSlide]).is("a")){e(o[i.currentSlide]).css("display","block")}if(f===""&&!i.paused&&!r.manualAdvance){f=setInterval(function(){d(s,o,r,false)},r.pauseTime)}r.afterChange.call(this)});var h=function(t,n,r){if(e(r.currentImage).parent().is("a"))e(r.currentImage).parent().css("display","block");e('img[src="'+r.currentImage.attr("src")+'"]',t).not(".nivo-main-image,.nivo-control img").width(t.width()).css("visibility","hidden").show();var i=e('img[src="'+r.currentImage.attr("src")+'"]',t).not(".nivo-main-image,.nivo-control img").parent().is("a")?e('img[src="'+r.currentImage.attr("src")+'"]',t).not(".nivo-main-image,.nivo-control img").parent().height():e('img[src="'+r.currentImage.attr("src")+'"]',t).not(".nivo-main-image,.nivo-control img").height();for(var s=0;s<n.slices;s++){var o=Math.round(t.width()/n.slices);if(s===n.slices-1){t.append(e('<div class="nivo-slice" name="'+s+'"><img src="'+r.currentImage.attr("src")+'" style="position:absolute; width:'+t.width()+"px; height:auto; display:block !important; top:0; left:-"+(o+s*o-o)+'px;" /></div>').css({left:o*s+"px",width:t.width()-o*s+"px",height:i+"px",opacity:"0",overflow:"hidden"}))}else{t.append(e('<div class="nivo-slice" name="'+s+'"><img src="'+r.currentImage.attr("src")+'" style="position:absolute; width:'+t.width()+"px; height:auto; display:block !important; top:0; left:-"+(o+s*o-o)+'px;" /></div>').css({left:o*s+"px",width:o+"px",height:i+"px",opacity:"0",overflow:"hidden"}))}}e(".nivo-slice",t).height(i);u.stop().animate({height:e(r.currentImage).height()},n.animSpeed)};var p=function(t,n,r){if(e(r.currentImage).parent().is("a"))e(r.currentImage).parent().css("display","block");e('img[src="'+r.currentImage.attr("src")+'"]',t).not(".nivo-main-image,.nivo-control img").width(t.width()).css("visibility","hidden").show();var i=Math.round(t.width()/n.boxCols),s=Math.round(e('img[src="'+r.currentImage.attr("src")+'"]',t).not(".nivo-main-image,.nivo-control img").height()/n.boxRows);for(var o=0;o<n.boxRows;o++){for(var a=0;a<n.boxCols;a++){if(a===n.boxCols-1){t.append(e('<div class="nivo-box" name="'+a+'" rel="'+o+'"><img src="'+r.currentImage.attr("src")+'" style="position:absolute; width:'+t.width()+"px; height:auto; display:block; top:-"+s*o+"px; left:-"+i*a+'px;" /></div>').css({opacity:0,left:i*a+"px",top:s*o+"px",width:t.width()-i*a+"px"}));e('.nivo-box[name="'+a+'"]',t).height(e('.nivo-box[name="'+a+'"] img',t).height()+"px")}else{t.append(e('<div class="nivo-box" name="'+a+'" rel="'+o+'"><img src="'+r.currentImage.attr("src")+'" style="position:absolute; width:'+t.width()+"px; height:auto; display:block; top:-"+s*o+"px; left:-"+i*a+'px;" /></div>').css({opacity:0,left:i*a+"px",top:s*o+"px",width:i+"px"}));e('.nivo-box[name="'+a+'"]',t).height(e('.nivo-box[name="'+a+'"] img',t).height()+"px")}}}u.stop().animate({height:e(r.currentImage).height()},n.animSpeed)};var d=function(t,n,r,i){var s=t.data("nivo:vars");if(s&&s.currentSlide===s.totalSlides-1){r.lastSlide.call(this)}if((!s||s.stop)&&!i){return false}r.beforeChange.call(this);if(!i){u.attr("src",s.currentImage.attr("src"))}else{if(i==="prev"){u.attr("src",s.currentImage.attr("src"))}if(i==="next"){u.attr("src",s.currentImage.attr("src"))}}s.currentSlide++;if(s.currentSlide===s.totalSlides){s.currentSlide=0;r.slideshowEnd.call(this)}if(s.currentSlide<0){s.currentSlide=s.totalSlides-1}if(e(n[s.currentSlide]).is("img")){s.currentImage=e(n[s.currentSlide])}else{s.currentImage=e(n[s.currentSlide]).find("img:first")}if(r.controlNav){e("a",s.controlNavEl).removeClass("active");e("a:eq("+s.currentSlide+")",s.controlNavEl).addClass("active")}a(r);e(".nivo-slice",t).remove();e(".nivo-box",t).remove();var o=r.effect,f="";if(r.effect==="random"){f=new Array("sliceDownRight","sliceDownLeft","sliceUpRight","sliceUpLeft","sliceUpDown","sliceUpDownLeft","fold","fade","boxRandom","boxRain","boxRainReverse","boxRainGrow","boxRainGrowReverse");o=f[Math.floor(Math.random()*(f.length+1))];if(o===undefined){o="fade"}}if(r.effect.indexOf(",")!==-1){f=r.effect.split(",");o=f[Math.floor(Math.random()*f.length)];if(o===undefined){o="fade"}}if(s.currentImage.attr("data-transition")){o=s.currentImage.attr("data-transition")}s.running=true;var l=0,c=0,d="",m="",g="",y="";if(o==="sliceDown"||o==="sliceDownRight"||o==="sliceDownLeft"){h(t,r,s);l=0;c=0;d=e(".nivo-slice",t);if(o==="sliceDownLeft"){d=e(".nivo-slice",t)._reverse()}d.each(function(){var n=e(this);n.css({top:"0px"});if(c===r.slices-1){setTimeout(function(){n.animate({opacity:"1.0"},r.animSpeed,"",function(){t.trigger("nivo:animFinished")})},100+l)}else{setTimeout(function(){n.animate({opacity:"1.0"},r.animSpeed)},100+l)}l+=50;c++})}else if(o==="sliceUp"||o==="sliceUpRight"||o==="sliceUpLeft"){h(t,r,s);l=0;c=0;d=e(".nivo-slice",t);if(o==="sliceUpLeft"){d=e(".nivo-slice",t)._reverse()}d.each(function(){var n=e(this);n.css({bottom:"0px"});if(c===r.slices-1){setTimeout(function(){n.animate({opacity:"1.0"},r.animSpeed,"",function(){t.trigger("nivo:animFinished")})},100+l)}else{setTimeout(function(){n.animate({opacity:"1.0"},r.animSpeed)},100+l)}l+=50;c++})}else if(o==="sliceUpDown"||o==="sliceUpDownRight"||o==="sliceUpDownLeft"){h(t,r,s);l=0;c=0;var b=0;d=e(".nivo-slice",t);if(o==="sliceUpDownLeft"){d=e(".nivo-slice",t)._reverse()}d.each(function(){var n=e(this);if(c===0){n.css("top","0px");c++}else{n.css("bottom","0px");c=0}if(b===r.slices-1){setTimeout(function(){n.animate({opacity:"1.0"},r.animSpeed,"",function(){t.trigger("nivo:animFinished")})},100+l)}else{setTimeout(function(){n.animate({opacity:"1.0"},r.animSpeed)},100+l)}l+=50;b++})}else if(o==="fold"){h(t,r,s);l=0;c=0;e(".nivo-slice",t).each(function(){var n=e(this);var i=n.width();n.css({top:"0px",width:"0px"});if(c===r.slices-1){setTimeout(function(){n.animate({width:i,opacity:"1.0"},r.animSpeed,"",function(){t.trigger("nivo:animFinished")})},100+l)}else{setTimeout(function(){n.animate({width:i,opacity:"1.0"},r.animSpeed)},100+l)}l+=50;c++})}else if(o==="fade"){h(t,r,s);m=e(".nivo-slice:first",t);m.css({width:t.width()+"px"});m.animate({opacity:"1.0"},r.animSpeed*2,"",function(){t.trigger("nivo:animFinished")})}else if(o==="slideInRight"){h(t,r,s);m=e(".nivo-slice:first",t);m.css({width:"0px",opacity:"1"});m.animate({width:t.width()+"px"},r.animSpeed*2,"",function(){t.trigger("nivo:animFinished")})}else if(o==="slideInLeft"){h(t,r,s);m=e(".nivo-slice:first",t);m.css({width:"0px",opacity:"1",left:"",right:"0px"});m.animate({width:t.width()+"px"},r.animSpeed*2,"",function(){m.css({left:"0px",right:""});t.trigger("nivo:animFinished")})}else if(o==="boxRandom"){p(t,r,s);g=r.boxCols*r.boxRows;c=0;l=0;y=v(e(".nivo-box",t));y.each(function(){var n=e(this);if(c===g-1){setTimeout(function(){n.animate({opacity:"1"},r.animSpeed,"",function(){t.trigger("nivo:animFinished")})},100+l)}else{setTimeout(function(){n.animate({opacity:"1"},r.animSpeed)},100+l)}l+=20;c++})}else if(o==="boxRain"||o==="boxRainReverse"||o==="boxRainGrow"||o==="boxRainGrowReverse"){p(t,r,s);g=r.boxCols*r.boxRows;c=0;l=0;var w=0;var E=0;var S=[];S[w]=[];y=e(".nivo-box",t);if(o==="boxRainReverse"||o==="boxRainGrowReverse"){y=e(".nivo-box",t)._reverse()}y.each(function(){S[w][E]=e(this);E++;if(E===r.boxCols){w++;E=0;S[w]=[]}});for(var x=0;x<r.boxCols*2;x++){var T=x;for(var N=0;N<r.boxRows;N++){if(T>=0&&T<r.boxCols){(function(n,i,s,u,a){var f=e(S[n][i]);var l=f.width();var c=f.height();if(o==="boxRainGrow"||o==="boxRainGrowReverse"){f.width(0).height(0)}if(u===a-1){setTimeout(function(){f.animate({opacity:"1",width:l,height:c},r.animSpeed/1.3,"",function(){t.trigger("nivo:animFinished")})},100+s)}else{setTimeout(function(){f.animate({opacity:"1",width:l,height:c},r.animSpeed/1.3)},100+s)}})(N,T,l,c,g);c++}T--}l+=100}}};var v=function(e){for(var t,n,r=e.length;r;t=parseInt(Math.random()*r,10),n=e[--r],e[r]=e[t],e[t]=n);return e};var m=function(e){if(this.console&&typeof console.log!=="undefined"){console.log(e)}};this.stop=function(){if(!e(t).data("nivo:vars").stop){e(t).data("nivo:vars").stop=true;m("Stop Slider")}};this.start=function(){if(e(t).data("nivo:vars").stop){e(t).data("nivo:vars").stop=false;m("Start Slider")}};r.afterLoad.call(this);return this};e.fn.nivoSlider=function(n){return this.each(function(r,i){var s=e(this);if(s.data("nivoslider")){return s.data("nivoslider")}var o=new t(this,n);s.data("nivoslider",o)})};e.fn.nivoSlider.defaults={effect:"random",slices:15,boxCols:8,boxRows:4,animSpeed:500,pauseTime:3e3,startSlide:0,directionNav:true,controlNav:true,controlNavThumbs:false,pauseOnHover:true,manualAdvance:false,prevText:"Prev",nextText:"Next",randomStart:false,beforeChange:function(){},afterChange:function(){},slideshowEnd:function(){},lastSlide:function(){},afterLoad:function(){}};e.fn._reverse=[].reverse})(jQuery)
|
6 |
* Free to use and abuse under the MIT license.
|
7 |
* http://www.opensource.org/licenses/mit-license.php
|
8 |
*
|
9 |
+
* MetaSlider modifications: caption taken from 'data-title' attribute instead of 'title' attribute.
|
10 |
*/
|
11 |
|
12 |
(function(e){var t=function(t,n){var r=e.extend({},e.fn.nivoSlider.defaults,n);var i={currentSlide:0,currentImage:"",totalSlides:0,running:false,paused:false,stop:false,controlNavEl:false};var s=e(t);s.data("nivo:vars",i).addClass("nivoSlider");var o=s.children();o.each(function(){var t=e(this);var n="";if(!t.is("img")){if(t.is("a")){t.addClass("nivo-imageLink");n=t}t=t.find("img:first")}var r=r===0?t.attr("width"):t.width(),s=s===0?t.attr("height"):t.height();if(n!==""){n.css("display","none")}t.css("display","none");i.totalSlides++});if(r.randomStart){r.startSlide=Math.floor(Math.random()*i.totalSlides)}if(r.startSlide>0){if(r.startSlide>=i.totalSlides){r.startSlide=i.totalSlides-1}i.currentSlide=r.startSlide}if(e(o[i.currentSlide]).is("img")){i.currentImage=e(o[i.currentSlide])}else{i.currentImage=e(o[i.currentSlide]).find("img:first")}if(e(o[i.currentSlide]).is("a")){e(o[i.currentSlide]).css("display","block")}var u=e("<img/>").addClass("nivo-main-image");u.attr("src",i.currentImage.attr("src")).show();s.append(u);e(window).resize(function(){s.children("img").width(s.width());u.attr("src",i.currentImage.attr("src"));u.stop().height("auto");e(".nivo-slice").remove();e(".nivo-box").remove()});s.append(e('<div class="nivo-caption"></div>'));var a=function(t){var n=e(".nivo-caption",s);if(i.currentImage.attr("data-title")!=""&&i.currentImage.attr("data-title")!=undefined){var r=i.currentImage.attr("data-title");if(r.substr(0,1)=="#")r=e(r).html();if(n.css("display")=="block"){setTimeout(function(){n.html(r)},t.animSpeed)}else{n.html(r);n.stop().fadeIn(t.animSpeed)}}else{n.stop().fadeOut(t.animSpeed)}};a(r);var f=0;if(!r.manualAdvance&&o.length>1){f=setInterval(function(){d(s,o,r,false)},r.pauseTime)}if(r.directionNav){s.append('<div class="nivo-directionNav"><a class="nivo-prevNav">'+r.prevText+'</a><a class="nivo-nextNav">'+r.nextText+"</a></div>");e(s).on("click","a.nivo-prevNav",function(){if(i.running){return false}clearInterval(f);f="";i.currentSlide-=2;d(s,o,r,"prev")});e(s).on("click","a.nivo-nextNav",function(){if(i.running){return false}clearInterval(f);f="";d(s,o,r,"next")})}if(r.controlNav){i.controlNavEl=e('<div class="nivo-controlNav"></div>');s.after(i.controlNavEl);for(var l=0;l<o.length;l++){if(r.controlNavThumbs){i.controlNavEl.addClass("nivo-thumbs-enabled");var c=o.eq(l);if(!c.is("img")){c=c.find("img:first")}if(c.attr("data-thumb"))i.controlNavEl.append('<a class="nivo-control" rel="'+l+'"><img src="'+c.attr("data-thumb")+'" alt="" /></a>')}else{i.controlNavEl.append('<a class="nivo-control" rel="'+l+'">'+(l+1)+"</a>")}}e("a:eq("+i.currentSlide+")",i.controlNavEl).addClass("active");e("a",i.controlNavEl).bind("click",function(){if(i.running)return false;if(e(this).hasClass("active"))return false;clearInterval(f);f="";u.attr("src",i.currentImage.attr("src"));i.currentSlide=e(this).attr("rel")-1;d(s,o,r,"control")})}if(r.pauseOnHover){s.hover(function(){i.paused=true;clearInterval(f);f=""},function(){i.paused=false;if(f===""&&!r.manualAdvance){f=setInterval(function(){d(s,o,r,false)},r.pauseTime)}})}s.bind("nivo:animFinished",function(){u.attr("src",i.currentImage.attr("src"));i.running=false;e(o).each(function(){if(e(this).is("a")){e(this).css("display","none")}});if(e(o[i.currentSlide]).is("a")){e(o[i.currentSlide]).css("display","block")}if(f===""&&!i.paused&&!r.manualAdvance){f=setInterval(function(){d(s,o,r,false)},r.pauseTime)}r.afterChange.call(this)});var h=function(t,n,r){if(e(r.currentImage).parent().is("a"))e(r.currentImage).parent().css("display","block");e('img[src="'+r.currentImage.attr("src")+'"]',t).not(".nivo-main-image,.nivo-control img").width(t.width()).css("visibility","hidden").show();var i=e('img[src="'+r.currentImage.attr("src")+'"]',t).not(".nivo-main-image,.nivo-control img").parent().is("a")?e('img[src="'+r.currentImage.attr("src")+'"]',t).not(".nivo-main-image,.nivo-control img").parent().height():e('img[src="'+r.currentImage.attr("src")+'"]',t).not(".nivo-main-image,.nivo-control img").height();for(var s=0;s<n.slices;s++){var o=Math.round(t.width()/n.slices);if(s===n.slices-1){t.append(e('<div class="nivo-slice" name="'+s+'"><img src="'+r.currentImage.attr("src")+'" style="position:absolute; width:'+t.width()+"px; height:auto; display:block !important; top:0; left:-"+(o+s*o-o)+'px;" /></div>').css({left:o*s+"px",width:t.width()-o*s+"px",height:i+"px",opacity:"0",overflow:"hidden"}))}else{t.append(e('<div class="nivo-slice" name="'+s+'"><img src="'+r.currentImage.attr("src")+'" style="position:absolute; width:'+t.width()+"px; height:auto; display:block !important; top:0; left:-"+(o+s*o-o)+'px;" /></div>').css({left:o*s+"px",width:o+"px",height:i+"px",opacity:"0",overflow:"hidden"}))}}e(".nivo-slice",t).height(i);u.stop().animate({height:e(r.currentImage).height()},n.animSpeed)};var p=function(t,n,r){if(e(r.currentImage).parent().is("a"))e(r.currentImage).parent().css("display","block");e('img[src="'+r.currentImage.attr("src")+'"]',t).not(".nivo-main-image,.nivo-control img").width(t.width()).css("visibility","hidden").show();var i=Math.round(t.width()/n.boxCols),s=Math.round(e('img[src="'+r.currentImage.attr("src")+'"]',t).not(".nivo-main-image,.nivo-control img").height()/n.boxRows);for(var o=0;o<n.boxRows;o++){for(var a=0;a<n.boxCols;a++){if(a===n.boxCols-1){t.append(e('<div class="nivo-box" name="'+a+'" rel="'+o+'"><img src="'+r.currentImage.attr("src")+'" style="position:absolute; width:'+t.width()+"px; height:auto; display:block; top:-"+s*o+"px; left:-"+i*a+'px;" /></div>').css({opacity:0,left:i*a+"px",top:s*o+"px",width:t.width()-i*a+"px"}));e('.nivo-box[name="'+a+'"]',t).height(e('.nivo-box[name="'+a+'"] img',t).height()+"px")}else{t.append(e('<div class="nivo-box" name="'+a+'" rel="'+o+'"><img src="'+r.currentImage.attr("src")+'" style="position:absolute; width:'+t.width()+"px; height:auto; display:block; top:-"+s*o+"px; left:-"+i*a+'px;" /></div>').css({opacity:0,left:i*a+"px",top:s*o+"px",width:i+"px"}));e('.nivo-box[name="'+a+'"]',t).height(e('.nivo-box[name="'+a+'"] img',t).height()+"px")}}}u.stop().animate({height:e(r.currentImage).height()},n.animSpeed)};var d=function(t,n,r,i){var s=t.data("nivo:vars");if(s&&s.currentSlide===s.totalSlides-1){r.lastSlide.call(this)}if((!s||s.stop)&&!i){return false}r.beforeChange.call(this);if(!i){u.attr("src",s.currentImage.attr("src"))}else{if(i==="prev"){u.attr("src",s.currentImage.attr("src"))}if(i==="next"){u.attr("src",s.currentImage.attr("src"))}}s.currentSlide++;if(s.currentSlide===s.totalSlides){s.currentSlide=0;r.slideshowEnd.call(this)}if(s.currentSlide<0){s.currentSlide=s.totalSlides-1}if(e(n[s.currentSlide]).is("img")){s.currentImage=e(n[s.currentSlide])}else{s.currentImage=e(n[s.currentSlide]).find("img:first")}if(r.controlNav){e("a",s.controlNavEl).removeClass("active");e("a:eq("+s.currentSlide+")",s.controlNavEl).addClass("active")}a(r);e(".nivo-slice",t).remove();e(".nivo-box",t).remove();var o=r.effect,f="";if(r.effect==="random"){f=new Array("sliceDownRight","sliceDownLeft","sliceUpRight","sliceUpLeft","sliceUpDown","sliceUpDownLeft","fold","fade","boxRandom","boxRain","boxRainReverse","boxRainGrow","boxRainGrowReverse");o=f[Math.floor(Math.random()*(f.length+1))];if(o===undefined){o="fade"}}if(r.effect.indexOf(",")!==-1){f=r.effect.split(",");o=f[Math.floor(Math.random()*f.length)];if(o===undefined){o="fade"}}if(s.currentImage.attr("data-transition")){o=s.currentImage.attr("data-transition")}s.running=true;var l=0,c=0,d="",m="",g="",y="";if(o==="sliceDown"||o==="sliceDownRight"||o==="sliceDownLeft"){h(t,r,s);l=0;c=0;d=e(".nivo-slice",t);if(o==="sliceDownLeft"){d=e(".nivo-slice",t)._reverse()}d.each(function(){var n=e(this);n.css({top:"0px"});if(c===r.slices-1){setTimeout(function(){n.animate({opacity:"1.0"},r.animSpeed,"",function(){t.trigger("nivo:animFinished")})},100+l)}else{setTimeout(function(){n.animate({opacity:"1.0"},r.animSpeed)},100+l)}l+=50;c++})}else if(o==="sliceUp"||o==="sliceUpRight"||o==="sliceUpLeft"){h(t,r,s);l=0;c=0;d=e(".nivo-slice",t);if(o==="sliceUpLeft"){d=e(".nivo-slice",t)._reverse()}d.each(function(){var n=e(this);n.css({bottom:"0px"});if(c===r.slices-1){setTimeout(function(){n.animate({opacity:"1.0"},r.animSpeed,"",function(){t.trigger("nivo:animFinished")})},100+l)}else{setTimeout(function(){n.animate({opacity:"1.0"},r.animSpeed)},100+l)}l+=50;c++})}else if(o==="sliceUpDown"||o==="sliceUpDownRight"||o==="sliceUpDownLeft"){h(t,r,s);l=0;c=0;var b=0;d=e(".nivo-slice",t);if(o==="sliceUpDownLeft"){d=e(".nivo-slice",t)._reverse()}d.each(function(){var n=e(this);if(c===0){n.css("top","0px");c++}else{n.css("bottom","0px");c=0}if(b===r.slices-1){setTimeout(function(){n.animate({opacity:"1.0"},r.animSpeed,"",function(){t.trigger("nivo:animFinished")})},100+l)}else{setTimeout(function(){n.animate({opacity:"1.0"},r.animSpeed)},100+l)}l+=50;b++})}else if(o==="fold"){h(t,r,s);l=0;c=0;e(".nivo-slice",t).each(function(){var n=e(this);var i=n.width();n.css({top:"0px",width:"0px"});if(c===r.slices-1){setTimeout(function(){n.animate({width:i,opacity:"1.0"},r.animSpeed,"",function(){t.trigger("nivo:animFinished")})},100+l)}else{setTimeout(function(){n.animate({width:i,opacity:"1.0"},r.animSpeed)},100+l)}l+=50;c++})}else if(o==="fade"){h(t,r,s);m=e(".nivo-slice:first",t);m.css({width:t.width()+"px"});m.animate({opacity:"1.0"},r.animSpeed*2,"",function(){t.trigger("nivo:animFinished")})}else if(o==="slideInRight"){h(t,r,s);m=e(".nivo-slice:first",t);m.css({width:"0px",opacity:"1"});m.animate({width:t.width()+"px"},r.animSpeed*2,"",function(){t.trigger("nivo:animFinished")})}else if(o==="slideInLeft"){h(t,r,s);m=e(".nivo-slice:first",t);m.css({width:"0px",opacity:"1",left:"",right:"0px"});m.animate({width:t.width()+"px"},r.animSpeed*2,"",function(){m.css({left:"0px",right:""});t.trigger("nivo:animFinished")})}else if(o==="boxRandom"){p(t,r,s);g=r.boxCols*r.boxRows;c=0;l=0;y=v(e(".nivo-box",t));y.each(function(){var n=e(this);if(c===g-1){setTimeout(function(){n.animate({opacity:"1"},r.animSpeed,"",function(){t.trigger("nivo:animFinished")})},100+l)}else{setTimeout(function(){n.animate({opacity:"1"},r.animSpeed)},100+l)}l+=20;c++})}else if(o==="boxRain"||o==="boxRainReverse"||o==="boxRainGrow"||o==="boxRainGrowReverse"){p(t,r,s);g=r.boxCols*r.boxRows;c=0;l=0;var w=0;var E=0;var S=[];S[w]=[];y=e(".nivo-box",t);if(o==="boxRainReverse"||o==="boxRainGrowReverse"){y=e(".nivo-box",t)._reverse()}y.each(function(){S[w][E]=e(this);E++;if(E===r.boxCols){w++;E=0;S[w]=[]}});for(var x=0;x<r.boxCols*2;x++){var T=x;for(var N=0;N<r.boxRows;N++){if(T>=0&&T<r.boxCols){(function(n,i,s,u,a){var f=e(S[n][i]);var l=f.width();var c=f.height();if(o==="boxRainGrow"||o==="boxRainGrowReverse"){f.width(0).height(0)}if(u===a-1){setTimeout(function(){f.animate({opacity:"1",width:l,height:c},r.animSpeed/1.3,"",function(){t.trigger("nivo:animFinished")})},100+s)}else{setTimeout(function(){f.animate({opacity:"1",width:l,height:c},r.animSpeed/1.3)},100+s)}})(N,T,l,c,g);c++}T--}l+=100}}};var v=function(e){for(var t,n,r=e.length;r;t=parseInt(Math.random()*r,10),n=e[--r],e[r]=e[t],e[t]=n);return e};var m=function(e){if(this.console&&typeof console.log!=="undefined"){console.log(e)}};this.stop=function(){if(!e(t).data("nivo:vars").stop){e(t).data("nivo:vars").stop=true;m("Stop Slider")}};this.start=function(){if(e(t).data("nivo:vars").stop){e(t).data("nivo:vars").stop=false;m("Start Slider")}};r.afterLoad.call(this);return this};e.fn.nivoSlider=function(n){return this.each(function(r,i){var s=e(this);if(s.data("nivoslider")){return s.data("nivoslider")}var o=new t(this,n);s.data("nivoslider",o)})};e.fn.nivoSlider.defaults={effect:"random",slices:15,boxCols:8,boxRows:4,animSpeed:500,pauseTime:3e3,startSlide:0,directionNav:true,controlNav:true,controlNavThumbs:false,pauseOnHover:true,manualAdvance:false,prevText:"Prev",nextText:"Next",randomStart:false,beforeChange:function(){},afterChange:function(){},slideshowEnd:function(){},lastSlide:function(){},afterLoad:function(){}};e.fn._reverse=[].reverse})(jQuery)
|
inc/metaslider.imagehelper.class.php
CHANGED
@@ -12,44 +12,46 @@ class MetaSliderImageHelper {
|
|
12 |
private $crop_type = 'smart';
|
13 |
private $container_width; // slideshow width
|
14 |
private $container_height; // slideshow height
|
15 |
-
private $id; // slide/attachment ID
|
16 |
private $url;
|
17 |
private $path; // path to attachment on server
|
18 |
private $use_image_editor;
|
19 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
20 |
|
21 |
/**
|
22 |
* Constructor
|
23 |
*
|
24 |
-
* @param integer $slide_id
|
25 |
-
* @param integer $width -
|
26 |
-
* @param integer $height -
|
27 |
-
* @param string $
|
|
|
|
|
28 |
*/
|
29 |
-
public function __construct(
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
$this->slide_id = $slide_id;
|
39 |
-
}
|
40 |
-
|
41 |
-
$this->url = apply_filters("metaslider_attachment_url", $upload_dir['baseurl'] . "/" . get_post_meta( $this->id, '_wp_attached_file', true ), $this->id);
|
42 |
-
$this->path = get_attached_file( $this->id );
|
43 |
$this->container_width = $width;
|
44 |
$this->container_height = $height;
|
45 |
$this->use_image_editor = $use_image_editor;
|
46 |
$this->set_crop_type($crop_type);
|
47 |
-
|
48 |
-
$
|
49 |
-
|
50 |
-
$is_valid = isset( $meta['width'], $meta['height'] );
|
51 |
-
|
52 |
-
if ( ! $is_valid ) {
|
53 |
$this->use_image_editor = false;
|
54 |
}
|
55 |
}
|
@@ -270,22 +272,19 @@ class MetaSliderImageHelper {
|
|
270 |
$size = array();
|
271 |
|
272 |
// try and get the image size from metadata
|
273 |
-
$meta = wp_get_attachment_metadata(
|
274 |
-
|
275 |
-
if ( isset( $meta['width'], $meta['height'] ) ) {
|
276 |
return $meta;
|
277 |
}
|
|
|
278 |
|
279 |
-
if ( $this->use_image_editor ) {
|
280 |
// get the size from the image itself
|
281 |
-
$image = wp_get_image_editor(
|
282 |
-
|
283 |
-
if ( ! is_wp_error( $image ) ) {
|
284 |
$size = $image->get_size();
|
285 |
return $size;
|
286 |
}
|
287 |
}
|
288 |
-
|
289 |
return false;
|
290 |
}
|
291 |
|
@@ -313,55 +312,56 @@ class MetaSliderImageHelper {
|
|
313 |
* @param array $dest_size
|
314 |
* @return string
|
315 |
*/
|
316 |
-
private function resize_image(
|
|
|
317 |
// load image
|
318 |
-
$image = wp_get_image_editor(
|
319 |
|
320 |
// editor will return an error if the path is invalid
|
321 |
-
if (
|
322 |
return $this->url;
|
323 |
}
|
324 |
|
325 |
$crop_position = $this->get_crop_position();
|
326 |
|
327 |
-
$dims = image_resize_dimensions(
|
328 |
|
329 |
-
if (
|
330 |
-
list(
|
331 |
-
$image->crop(
|
332 |
}
|
333 |
|
334 |
-
$saved = $image->save(
|
335 |
|
336 |
-
if (
|
337 |
return $this->url;
|
338 |
}
|
339 |
|
340 |
// Record the new size so that the file is correctly removed when the media file is deleted.
|
341 |
-
$backup_sizes = get_post_meta(
|
342 |
|
343 |
-
if (
|
344 |
$backup_sizes = array();
|
345 |
}
|
346 |
|
347 |
$backup_sizes["resized-{$dest_size['width']}x{$dest_size['height']}"] = $saved;
|
348 |
-
update_post_meta(
|
349 |
|
350 |
// Update recorded image sizes in the metadata
|
351 |
-
$meta_sizes = get_post_meta(
|
352 |
|
353 |
-
if (
|
354 |
$meta_sizes = array();
|
355 |
}
|
356 |
|
357 |
$temp_saved = $saved; // working copy of $saved
|
358 |
unset( $temp_saved['path'] ); // path does not belong in the meta data
|
359 |
$meta_sizes['sizes']["meta-slider-resized-{$dest_size['width']}x{$dest_size['height']}"] = $temp_saved;
|
360 |
-
update_post_meta(
|
361 |
|
362 |
-
$url = str_replace(
|
363 |
|
364 |
-
do_action(
|
365 |
|
366 |
return $url;
|
367 |
}
|
12 |
private $crop_type = 'smart';
|
13 |
private $container_width; // slideshow width
|
14 |
private $container_height; // slideshow height
|
|
|
15 |
private $url;
|
16 |
private $path; // path to attachment on server
|
17 |
private $use_image_editor;
|
18 |
+
|
19 |
+
/**
|
20 |
+
* @property integer $slide_id The ID of the image
|
21 |
+
*/
|
22 |
+
private $slide_id;
|
23 |
+
|
24 |
+
/**
|
25 |
+
* @property integer $image_id The ID of the image
|
26 |
+
*/
|
27 |
+
public $image_id;
|
28 |
|
29 |
/**
|
30 |
* Constructor
|
31 |
*
|
32 |
+
* @param integer $slide_id - The ID of the current slide
|
33 |
+
* @param integer $width - Required width of image
|
34 |
+
* @param integer $height - Required height of image
|
35 |
+
* @param string $crop_type - The method used for cropping
|
36 |
+
* @param bool $use_image_editor - Whether to use the image editor
|
37 |
+
* @param integer $image_id - used when the slide in admin is a looped item (i.e. post type)
|
38 |
*/
|
39 |
+
public function __construct($slide_id, $width, $height, $crop_type, $use_image_editor = true, $image_id = null) {
|
40 |
+
// There's a chance that $slide_id might be an $image_id
|
41 |
+
// if the user has an older version of the pro plugin (<2.7)
|
42 |
+
if ('attachment' == get_post_type($slide_id)) { $image_id = $slide_id; }
|
43 |
+
|
44 |
+
$this->image_id = !is_null($image_id) ? $image_id : get_post_thumbnail_id($slide_id);
|
45 |
+
$this->slide_id = $slide_id;
|
46 |
+
$this->url = apply_filters("metaslider_attachment_url", wp_get_attachment_url($this->image_id), $this->image_id);
|
47 |
+
$this->path = get_attached_file($this->image_id);
|
|
|
|
|
|
|
|
|
|
|
48 |
$this->container_width = $width;
|
49 |
$this->container_height = $height;
|
50 |
$this->use_image_editor = $use_image_editor;
|
51 |
$this->set_crop_type($crop_type);
|
52 |
+
$meta = wp_get_attachment_metadata($this->image_id);
|
53 |
+
$is_valid = isset($meta['width'], $meta['height']);
|
54 |
+
if (!$is_valid) {
|
|
|
|
|
|
|
55 |
$this->use_image_editor = false;
|
56 |
}
|
57 |
}
|
272 |
$size = array();
|
273 |
|
274 |
// try and get the image size from metadata
|
275 |
+
$meta = wp_get_attachment_metadata($this->image_id);
|
276 |
+
if (isset($meta['width'], $meta['height'])) {
|
|
|
277 |
return $meta;
|
278 |
}
|
279 |
+
if ($this->use_image_editor) {
|
280 |
|
|
|
281 |
// get the size from the image itself
|
282 |
+
$image = wp_get_image_editor($this->path);
|
283 |
+
if (!is_wp_error($image)) {
|
|
|
284 |
$size = $image->get_size();
|
285 |
return $size;
|
286 |
}
|
287 |
}
|
|
|
288 |
return false;
|
289 |
}
|
290 |
|
312 |
* @param array $dest_size
|
313 |
* @return string
|
314 |
*/
|
315 |
+
private function resize_image($orig_size, $dest_size, $dest_file_name) {
|
316 |
+
|
317 |
// load image
|
318 |
+
$image = wp_get_image_editor($this->path);
|
319 |
|
320 |
// editor will return an error if the path is invalid
|
321 |
+
if (is_wp_error($image)) {
|
322 |
return $this->url;
|
323 |
}
|
324 |
|
325 |
$crop_position = $this->get_crop_position();
|
326 |
|
327 |
+
$dims = image_resize_dimensions($orig_size['width'], $orig_size['height'], $dest_size['width'], $dest_size['height'], $crop_position);
|
328 |
|
329 |
+
if ($dims) {
|
330 |
+
list($dst_x, $dst_y, $src_x, $src_y, $dst_w, $dst_h, $src_w, $src_h) = $dims;
|
331 |
+
$image->crop($src_x, $src_y, $src_w, $src_h, $dst_w, $dst_h);
|
332 |
}
|
333 |
|
334 |
+
$saved = $image->save($dest_file_name);
|
335 |
|
336 |
+
if (is_wp_error($saved)) {
|
337 |
return $this->url;
|
338 |
}
|
339 |
|
340 |
// Record the new size so that the file is correctly removed when the media file is deleted.
|
341 |
+
$backup_sizes = get_post_meta($this->image_id, '_wp_attachment_backup_sizes', true);
|
342 |
|
343 |
+
if (!is_array($backup_sizes)) {
|
344 |
$backup_sizes = array();
|
345 |
}
|
346 |
|
347 |
$backup_sizes["resized-{$dest_size['width']}x{$dest_size['height']}"] = $saved;
|
348 |
+
update_post_meta($this->image_id, '_wp_attachment_backup_sizes', $backup_sizes);
|
349 |
|
350 |
// Update recorded image sizes in the metadata
|
351 |
+
$meta_sizes = get_post_meta($this->image_id, '_wp_attachment_metadata', true);
|
352 |
|
353 |
+
if (!is_array($meta_sizes)) {
|
354 |
$meta_sizes = array();
|
355 |
}
|
356 |
|
357 |
$temp_saved = $saved; // working copy of $saved
|
358 |
unset( $temp_saved['path'] ); // path does not belong in the meta data
|
359 |
$meta_sizes['sizes']["meta-slider-resized-{$dest_size['width']}x{$dest_size['height']}"] = $temp_saved;
|
360 |
+
update_post_meta($this->image_id, '_wp_attachment_metadata', $meta_sizes);
|
361 |
|
362 |
+
$url = str_replace(basename($this->url), basename($saved['path']), $this->url);
|
363 |
|
364 |
+
do_action("metaslider_after_resize_image", $this->image_id, $dest_size['width'], $dest_size['height'], $url);
|
365 |
|
366 |
return $url;
|
367 |
}
|
inc/metaslider.systemcheck.class.php
CHANGED
@@ -61,7 +61,7 @@ class MetaSliderSystemCheck {
|
|
61 |
}
|
62 |
|
63 |
if ( !function_exists( 'wp_enqueue_media' ) ) {
|
64 |
-
$error = "
|
65 |
$this->printMessage( $error, 'wordPressVersion' );
|
66 |
} else {
|
67 |
$this->options['wordPressVersion'] = false;
|
@@ -77,7 +77,7 @@ class MetaSliderSystemCheck {
|
|
77 |
}
|
78 |
|
79 |
if ( ( !extension_loaded( 'gd' ) || !function_exists( 'gd_info' ) ) && ( !extension_loaded( 'imagick' ) || !class_exists( 'Imagick' ) || !class_exists( 'ImagickPixel' ) ) ) {
|
80 |
-
$error = "
|
81 |
$this->printMessage( $error, 'imageLibrary' );
|
82 |
} else {
|
83 |
$this->options['imageLibrary'] = false;
|
61 |
}
|
62 |
|
63 |
if ( !function_exists( 'wp_enqueue_media' ) ) {
|
64 |
+
$error = "MetaSlider requires WordPress 3.5 or above. Please upgrade your WordPress installation.";
|
65 |
$this->printMessage( $error, 'wordPressVersion' );
|
66 |
} else {
|
67 |
$this->options['wordPressVersion'] = false;
|
77 |
}
|
78 |
|
79 |
if ( ( !extension_loaded( 'gd' ) || !function_exists( 'gd_info' ) ) && ( !extension_loaded( 'imagick' ) || !class_exists( 'Imagick' ) || !class_exists( 'ImagickPixel' ) ) ) {
|
80 |
+
$error = "MetaSlider requires the GD or ImageMagick PHP extension. Please contact your hosting provider";
|
81 |
$this->printMessage( $error, 'imageLibrary' );
|
82 |
} else {
|
83 |
$this->options['imageLibrary'] = false;
|
inc/metaslider.widget.class.php
CHANGED
@@ -1,6 +1,6 @@
|
|
1 |
<?php
|
2 |
/**
|
3 |
-
* Adds
|
4 |
*/
|
5 |
|
6 |
if ( ! defined( 'ABSPATH' ) ) {
|
@@ -15,8 +15,8 @@ class MetaSlider_Widget extends WP_Widget {
|
|
15 |
public function __construct() {
|
16 |
parent::__construct(
|
17 |
'metaslider_widget', // Base ID
|
18 |
-
'
|
19 |
-
array( 'description' => __( '
|
20 |
);
|
21 |
}
|
22 |
|
1 |
<?php
|
2 |
/**
|
3 |
+
* Adds MetaSlider widget.
|
4 |
*/
|
5 |
|
6 |
if ( ! defined( 'ABSPATH' ) ) {
|
15 |
public function __construct() {
|
16 |
parent::__construct(
|
17 |
'metaslider_widget', // Base ID
|
18 |
+
'MetaSlider', // Name
|
19 |
+
array( 'description' => __( 'MetaSlider', 'ml-slider' ) ) // Args
|
20 |
);
|
21 |
}
|
22 |
|
inc/slide/metaslide.class.php
CHANGED
@@ -20,7 +20,7 @@ class MetaSlide {
|
|
20 |
*/
|
21 |
public function __construct() {
|
22 |
|
23 |
-
add_action( '
|
24 |
|
25 |
}
|
26 |
|
@@ -64,63 +64,66 @@ class MetaSlide {
|
|
64 |
|
65 |
|
66 |
/**
|
67 |
-
*
|
68 |
*
|
69 |
-
*
|
|
|
|
|
|
|
70 |
*/
|
71 |
-
|
72 |
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
));
|
79 |
}
|
80 |
|
81 |
-
|
82 |
-
$
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
$
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
// generate absolute and relative paths for the new file name
|
103 |
-
$dest_abs_path = trailingslashit($abs_file_directory) . $dest_file_name;
|
104 |
-
$dest_rel_path = trailingslashit($rel_file_directory) . $dest_file_name;
|
105 |
|
106 |
-
|
107 |
-
|
108 |
-
|
109 |
-
|
110 |
-
|
111 |
-
|
112 |
|
113 |
-
|
114 |
-
|
115 |
-
)
|
116 |
-
));
|
117 |
}
|
118 |
-
|
119 |
-
|
120 |
-
|
121 |
-
|
122 |
-
|
123 |
-
))
|
|
|
|
|
|
|
|
|
|
|
124 |
}
|
125 |
|
126 |
|
@@ -225,43 +228,46 @@ class MetaSlide {
|
|
225 |
* Create a new post for a slide. Tag a featured image to it.
|
226 |
*
|
227 |
* @since 3.4
|
228 |
-
* @param string $
|
229 |
* @param string $type - the slide type identifier
|
230 |
* @param int $slider_id - the parent slideshow ID
|
231 |
-
* @return int $
|
232 |
*/
|
233 |
-
|
234 |
-
|
235 |
-
|
236 |
-
|
|
|
|
|
237 |
'post_status' => 'publish',
|
238 |
'post_type' => 'ml-slide'
|
239 |
)
|
240 |
);
|
241 |
|
242 |
-
|
243 |
-
|
|
|
244 |
}
|
245 |
|
246 |
-
|
247 |
-
|
248 |
-
|
249 |
-
|
250 |
-
|
251 |
-
|
252 |
-
$
|
253 |
-
|
254 |
-
|
255 |
-
|
|
|
|
|
256 |
'post_excerpt' => $caption
|
257 |
-
)
|
258 |
}
|
259 |
-
|
260 |
-
|
261 |
-
|
262 |
-
return $id;
|
263 |
-
|
264 |
}
|
|
|
265 |
|
266 |
/**
|
267 |
* Tag the slide attachment to the slider tax category
|
@@ -308,7 +314,7 @@ class MetaSlide {
|
|
308 |
|
309 |
$selected = $pos == 0 ? "class='selected'" : "";
|
310 |
|
311 |
-
$return .= "<li {$selected}
|
312 |
|
313 |
}
|
314 |
|
@@ -320,23 +326,37 @@ class MetaSlide {
|
|
320 |
|
321 |
/**
|
322 |
* Generate the HTML for the delete button
|
|
|
323 |
*/
|
324 |
public function get_delete_button_html() {
|
|
|
|
|
325 |
|
326 |
-
|
327 |
-
|
328 |
-
|
329 |
-
|
|
|
|
|
330 |
}
|
331 |
|
332 |
/**
|
333 |
-
* Generate the HTML for the
|
|
|
334 |
*/
|
335 |
-
public function
|
336 |
|
337 |
-
|
|
|
|
|
|
|
338 |
|
339 |
-
|
|
|
|
|
|
|
|
|
|
|
340 |
}
|
341 |
|
342 |
/**
|
20 |
*/
|
21 |
public function __construct() {
|
22 |
|
23 |
+
add_action( 'wp_ajax_update_slide_image', array( $this, 'ajax_update_slide_image' ) );
|
24 |
|
25 |
}
|
26 |
|
64 |
|
65 |
|
66 |
/**
|
67 |
+
* Updates the slide meta value to a new image.
|
68 |
*
|
69 |
+
* @param int $slide_id The id of the slide being updated
|
70 |
+
* @param int $image_id The id of the new image to use
|
71 |
+
*
|
72 |
+
* @return array|WP_error The status message and if success, the thumbnail link
|
73 |
*/
|
74 |
+
protected function update_slide_image($slide_id, $image_id) {
|
75 |
|
76 |
+
/*
|
77 |
+
* Verifies that the $image_id is an actual image
|
78 |
+
*/
|
79 |
+
if (!($image_url = wp_get_attachment_image_url($image_id))) {
|
80 |
+
return new WP_Error('update_failed', __('The requested image does not exist. Please try again.', 'ml-slider'), array('status' => 409));
|
|
|
81 |
}
|
82 |
|
83 |
+
/*
|
84 |
+
* Verifies that the $slide_id is an actual slide (it currently has an image)
|
85 |
+
*/
|
86 |
+
if (!($image_id_old = intval(get_post_meta($slide_id, '_thumbnail_id', true)))) {
|
87 |
+
return new WP_Error('update_failed', __('The requested slide does not exist or something is wrong with the current image. Please try again or remove this slide.', 'ml-slider'), array('status' => 409));
|
88 |
+
}
|
89 |
+
|
90 |
+
/*
|
91 |
+
* Updates and verifies that it worked. Checks that either the image is the same,
|
92 |
+
* or that the update was successful
|
93 |
+
*/
|
94 |
+
if (($image_id === $image_id_old) || update_post_meta($slide_id, '_thumbnail_id', $image_id, $image_id_old)) {
|
95 |
+
return array(
|
96 |
+
'message' => __('The image was successfully updated.', 'ml-slider'),
|
97 |
+
'img_url' => $image_url
|
98 |
+
);
|
99 |
+
}
|
100 |
+
|
101 |
+
return new WP_Error('update_failed', __('There was an error updating the image. Please try again', 'ml-slider'), array('status' => 409));
|
102 |
+
}
|
|
|
|
|
|
|
|
|
103 |
|
104 |
+
/**
|
105 |
+
* Ajax wrapper to update the slide image.
|
106 |
+
*
|
107 |
+
* @return String The status message and if success, the thumbnail link (JSON)
|
108 |
+
*/
|
109 |
+
public function ajax_update_slide_image() {
|
110 |
|
111 |
+
if (!wp_verify_nonce($_REQUEST['_wpnonce'], 'metaslider_update_slide_image')) {
|
112 |
+
return wp_send_json_error(array(
|
113 |
+
'message' => __('The security check failed. Please refresh the page and try again.', 'ml-slider')
|
114 |
+
), 401);
|
115 |
}
|
116 |
+
|
117 |
+
$result = $this->update_slide_image(
|
118 |
+
absint($_POST['slide_id']), absint($_POST['image_id'])
|
119 |
+
);
|
120 |
+
|
121 |
+
if (is_wp_error($result)) {
|
122 |
+
return wp_send_json_error(array(
|
123 |
+
'message' => $result->get_error_message()
|
124 |
+
), 409);
|
125 |
+
}
|
126 |
+
return wp_send_json_success($result, 200);
|
127 |
}
|
128 |
|
129 |
|
228 |
* Create a new post for a slide. Tag a featured image to it.
|
229 |
*
|
230 |
* @since 3.4
|
231 |
+
* @param string $media_id - Media File ID to use for the slide
|
232 |
* @param string $type - the slide type identifier
|
233 |
* @param int $slider_id - the parent slideshow ID
|
234 |
+
* @return int $slide_id - the ID of the newly created slide
|
235 |
*/
|
236 |
+
public function insert_slide($media_id, $type, $slider_id) {
|
237 |
+
|
238 |
+
// Store the post in the database (without translation)
|
239 |
+
$slide_id = wp_insert_post(
|
240 |
+
array(
|
241 |
+
'post_title' => "Slider {$slider_id} - {$type}",
|
242 |
'post_status' => 'publish',
|
243 |
'post_type' => 'ml-slide'
|
244 |
)
|
245 |
);
|
246 |
|
247 |
+
// Send back a friendlier error message
|
248 |
+
if (is_wp_error($slide_id)) {
|
249 |
+
return new WP_Error('create_failed', __('There was an error while updating the database. Please try again.', 'ml-slider'), array('status' => 409));
|
250 |
}
|
251 |
|
252 |
+
// Set the image to the slide
|
253 |
+
set_post_thumbnail($slide_id, $media_id);
|
254 |
+
|
255 |
+
// Check if the post is an image and add some extra info
|
256 |
+
if ('image' == $type) {
|
257 |
+
$alt = get_post_meta($media_id, '_wp_attachment_image_alt', true);
|
258 |
+
add_post_meta($slide_id, '_wp_attachment_image_alt', $alt);
|
259 |
+
$caption = has_excerpt($media_id) ? get_the_excerpt($media_id) : '';
|
260 |
+
|
261 |
+
// Update the post and caption
|
262 |
+
wp_update_post(array(
|
263 |
+
'ID' => $slide_id,
|
264 |
'post_excerpt' => $caption
|
265 |
+
));
|
266 |
}
|
267 |
+
$this->add_or_update_or_delete_meta($slide_id, 'type', $type);
|
268 |
+
return $slide_id;
|
|
|
|
|
|
|
269 |
}
|
270 |
+
|
271 |
|
272 |
/**
|
273 |
* Tag the slide attachment to the slider tax category
|
314 |
|
315 |
$selected = $pos == 0 ? "class='selected'" : "";
|
316 |
|
317 |
+
$return .= "<li {$selected} ><a tabindex='0' href='#' data-tab_id='tab-{$pos}'>{$tab['title']}</a></li>";
|
318 |
|
319 |
}
|
320 |
|
326 |
|
327 |
/**
|
328 |
* Generate the HTML for the delete button
|
329 |
+
* @return string
|
330 |
*/
|
331 |
public function get_delete_button_html() {
|
332 |
+
return "<button class='delete-slide alignright' title='" . __("Delete Slide", "ml-slider") . "' data-slide-id='{$this->slide->ID}'><i><svg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' class='feather feather-x'><line x1='18' y1='6' x2='6' y2='18'/><line x1='6' y1='6' x2='18' y2='18'/></svg></i></button>";
|
333 |
+
}
|
334 |
|
335 |
+
/**
|
336 |
+
* Generate the HTML for the undelete button
|
337 |
+
* @return string
|
338 |
+
*/
|
339 |
+
public function get_undelete_button_html() {
|
340 |
+
return "<a href='#' onclick='return false;' class='trash-view-restore' data-slide-id='{$this->slide->ID}'>" . __('Restore', 'default') . "</a>";
|
341 |
}
|
342 |
|
343 |
/**
|
344 |
+
* Generate the HTML for the perminant button
|
345 |
+
* @return string
|
346 |
*/
|
347 |
+
public function get_perminant_delete_button_html() {
|
348 |
|
349 |
+
// TODO allow for a perminant delete button
|
350 |
+
$url = wp_nonce_url(admin_url("post.php?ml-slide={$this->slide->ID}&action=delete"));
|
351 |
+
return "<a href='{$url}' class='trash-view-perminant-delete' data-slide-id='{$this->slide->ID}'>" . __('Delete Permanently', 'default') . "</a>";
|
352 |
+
}
|
353 |
|
354 |
+
/**
|
355 |
+
* Generates the HTML for the update slide image button
|
356 |
+
* @return string The html for the edit button on a slide image
|
357 |
+
*/
|
358 |
+
public function get_update_image_button_html() {
|
359 |
+
return "<button class='update-image alignright' data-button-text='" . __("Update slide image", "ml-slider") . "' title='" . __("Update slide image", "ml-slider") . "' data-slide-id='{$this->slide->ID}'><i><svg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' class='feather feather-edit-2'><polygon points='16 3 21 8 8 21 3 21 3 16 16 3'/></svg></i></button>";
|
360 |
}
|
361 |
|
362 |
/**
|
inc/slide/metaslide.image.class.php
CHANGED
@@ -13,59 +13,125 @@ class MetaImageSlide extends MetaSlide {
|
|
13 |
* Register slide type
|
14 |
*/
|
15 |
public function __construct() {
|
16 |
-
|
17 |
parent::__construct();
|
18 |
-
|
19 |
-
|
20 |
-
add_action(
|
21 |
-
add_action(
|
22 |
-
add_action( 'wp_ajax_resize_image_slide', array( $this, 'ajax_resize_slide' ) );
|
23 |
-
|
24 |
}
|
25 |
|
26 |
-
|
27 |
/**
|
28 |
-
*
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
29 |
*/
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
35 |
}
|
36 |
|
37 |
-
|
38 |
-
$
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
39 |
|
40 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
41 |
|
42 |
-
|
|
|
|
|
43 |
|
44 |
-
|
|
|
45 |
|
46 |
-
|
|
|
|
|
|
|
47 |
|
48 |
-
|
|
|
|
|
|
|
49 |
|
50 |
-
|
|
|
|
|
51 |
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
|
56 |
-
|
57 |
-
|
58 |
-
|
|
|
|
|
|
|
|
|
59 |
|
60 |
-
|
|
|
|
|
|
|
|
|
61 |
|
62 |
-
|
63 |
-
|
|
|
|
|
|
|
|
|
64 |
}
|
65 |
|
66 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
67 |
}
|
68 |
|
|
|
69 |
/**
|
70 |
* Create a new slide and echo the admin HTML
|
71 |
*/
|
@@ -110,21 +176,36 @@ class MetaImageSlide extends MetaSlide {
|
|
110 |
// get some slide settings
|
111 |
$thumb = $this->get_thumb();
|
112 |
$slide_label = apply_filters( "metaslider_image_slide_label", __( "Image Slide", "ml-slider" ), $this->slide, $this->settings );
|
113 |
-
|
114 |
// slide row HTML
|
115 |
-
$row = "<tr class='slide image flex responsive nivo coin'>
|
116 |
<td class='col-1'>
|
117 |
-
<div class='
|
118 |
-
|
119 |
-
|
120 |
-
<
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
121 |
</div>
|
122 |
</td>
|
123 |
<td class='col-2'>
|
124 |
-
|
125 |
-
|
126 |
-
|
127 |
-
|
|
|
|
|
128 |
</td>
|
129 |
</tr>";
|
130 |
|
@@ -147,7 +228,7 @@ class MetaImageSlide extends MetaSlide {
|
|
147 |
$general_tab = "<textarea name='attachment[{$slide_id}][post_excerpt]' placeholder='" . __( "Caption", "ml-slider" ) . "'>{$caption}</textarea>
|
148 |
<input class='url' type='text' name='attachment[{$slide_id}][url]' placeholder='" . __( "URL", "ml-slider" ) . "' value='{$url}' />
|
149 |
<div class='new_window'>
|
150 |
-
<label>" . __( "New Window", "ml-slider" ) . "<input type='checkbox' name='attachment[{$slide_id}][new_window]' {$target} /></label>
|
151 |
</div>";
|
152 |
|
153 |
if ( ! $this->is_valid_image() ) {
|
@@ -156,10 +237,7 @@ class MetaImageSlide extends MetaSlide {
|
|
156 |
$general_tab = "<div class='warning'>{$message}</div>" . $general_tab;
|
157 |
}
|
158 |
|
159 |
-
$seo_tab = "<div class='row'><label>"
|
160 |
-
<div class='row'><input type='text' size='50' name='attachment[{$slide_id}][title]' value='{$title}' /></div>
|
161 |
-
<div class='row'><label>" . __( "Image Alt Text", "ml-slider" ) . "</label></div>
|
162 |
-
<div class='row'><input type='text' size='50' name='attachment[{$slide_id}][alt]' value='{$alt}' /></div>";
|
163 |
|
164 |
$tabs = array(
|
165 |
'general' => array(
|
13 |
* Register slide type
|
14 |
*/
|
15 |
public function __construct() {
|
|
|
16 |
parent::__construct();
|
17 |
+
add_filter('metaslider_get_image_slide', array($this, 'get_slide' ), 10, 2);
|
18 |
+
add_action('metaslider_save_image_slide', array($this, 'save_slide' ), 5, 3);
|
19 |
+
add_action('wp_ajax_create_image_slide', array($this, 'ajax_create_image_slides'));
|
20 |
+
add_action('wp_ajax_resize_image_slide', array($this, 'ajax_resize_slide'));
|
|
|
|
|
21 |
}
|
22 |
|
|
|
23 |
/**
|
24 |
+
* Creates one or more slide.
|
25 |
+
* Currently this is used via an ajax call, but plans to keep this only called
|
26 |
+
* by PHP methods, such as in an import situation.
|
27 |
+
*
|
28 |
+
* @param int $slider_id The id of the slider
|
29 |
+
* @param array $data The data information for the new slide
|
30 |
+
*
|
31 |
+
* @return int | WP_error The status message and if success, the count
|
32 |
*/
|
33 |
+
protected function create_slides($slider_id, $data) {
|
34 |
+
$errors = array();
|
35 |
+
foreach ($data as $slide_data) {
|
36 |
+
|
37 |
+
// TODO check type and create slides based on that type
|
38 |
+
// $method = 'create_' . $slide['type'] . '_slide';
|
39 |
+
// $this->slider->add_slide($this->{$method}());
|
40 |
+
$message = $this->add_slide($slider_id, $slide_data);
|
41 |
+
if (is_wp_error($message)) {
|
42 |
+
array_push($errors, $message);
|
43 |
+
}
|
44 |
}
|
45 |
|
46 |
+
// We don't bail on an error, so we need to send back a list of errors, if any
|
47 |
+
if (count($errors)) {
|
48 |
+
$error_response = new WP_Error('create_failed', 'We experienced some errors while adding slides.', array('status' => 409));
|
49 |
+
foreach($errors as $message) {
|
50 |
+
$error_response->add('create_failed', $message, array('status' => 409));
|
51 |
+
}
|
52 |
+
return $error_response;
|
53 |
+
}
|
54 |
+
|
55 |
+
return count($data);
|
56 |
+
}
|
57 |
|
58 |
+
/**
|
59 |
+
* Adds a single slide.
|
60 |
+
* TODO refactor and put this in a Slider class
|
61 |
+
*
|
62 |
+
* @param int $slider_id The id of the slider
|
63 |
+
* @param array $data The data information for the new slide
|
64 |
+
*
|
65 |
+
* @return string | WP_error The status message and if success, echo string for now
|
66 |
+
*/
|
67 |
+
protected function add_slide($slider_id, $data) {
|
68 |
+
|
69 |
+
// For now this only handles images, so check it's an image
|
70 |
+
if (!wp_attachment_is_image($data['id'])) {
|
71 |
|
72 |
+
// TODO this is the old way to handle errors
|
73 |
+
// Remove this later and handle errors using data returns
|
74 |
+
echo "<tr><td colspan='2'>ID: {$data['id']} \"" . get_the_title( $data['id'] ) . "\" - " . __( "Failed to add slide. Slide is not an image.", 'ml-slider' ) . "</td></tr>";
|
75 |
|
76 |
+
return new WP_Error('create_failed', __('This isn\'t an accepted image. Please try again.', 'ml-slider'), array('status' => 409));
|
77 |
+
}
|
78 |
|
79 |
+
$slide_id = $this->insert_slide($data['id'], $data['type'], $slider_id);
|
80 |
+
if (is_wp_error($slide_id)) {
|
81 |
+
return $slide_id;
|
82 |
+
}
|
83 |
|
84 |
+
// TODO refactor these and investigate why they are needed (legacy?)
|
85 |
+
$this->set_slide($slide_id);
|
86 |
+
$this->set_slider($slider_id);
|
87 |
+
$this->tag_slide_to_slider();
|
88 |
|
89 |
+
// TODO investigate if this is really needed
|
90 |
+
$this->settings['width'] = 0;
|
91 |
+
$this->settings['height'] = 0;
|
92 |
|
93 |
+
// TODO refactor to have a view file and return data
|
94 |
+
echo $this->get_admin_slide();
|
95 |
+
}
|
96 |
|
97 |
+
/**
|
98 |
+
* Ajax wrapper to create multiple slides.
|
99 |
+
* TODO: depricate this in favor of only allowing single slide creation
|
100 |
+
*
|
101 |
+
* @return string The status message and if success, the count of slides added
|
102 |
+
*/
|
103 |
+
public function ajax_create_image_slides() {
|
104 |
|
105 |
+
if (!wp_verify_nonce($_REQUEST['_wpnonce'], 'metaslider_create_slide')) {
|
106 |
+
return wp_send_json_error(array(
|
107 |
+
'message' => __('The security check failed. Please refresh the page and try again.', 'ml-slider')
|
108 |
+
), 401);
|
109 |
+
}
|
110 |
|
111 |
+
// TODO create a slide object class with data requirements and types
|
112 |
+
function make_image_slide_data($image_id) {
|
113 |
+
return array(
|
114 |
+
'type' => 'image',
|
115 |
+
'id' => absint($image_id)
|
116 |
+
);
|
117 |
}
|
118 |
|
119 |
+
$result = $this->create_slides(
|
120 |
+
absint($_POST['slider_id']), array_map('make_image_slide_data',$_POST['selection'])
|
121 |
+
);
|
122 |
+
|
123 |
+
// TODO for now leave these out since it "echos" the slide...
|
124 |
+
// if (is_wp_error($result)) {
|
125 |
+
// return wp_send_json_error(array(
|
126 |
+
// 'messages' => $result->get_error_messages()
|
127 |
+
// ), 409);
|
128 |
+
// }
|
129 |
+
|
130 |
+
// return wp_send_json_success($result, 200);
|
131 |
+
|
132 |
}
|
133 |
|
134 |
+
|
135 |
/**
|
136 |
* Create a new slide and echo the admin HTML
|
137 |
*/
|
176 |
// get some slide settings
|
177 |
$thumb = $this->get_thumb();
|
178 |
$slide_label = apply_filters( "metaslider_image_slide_label", __( "Image Slide", "ml-slider" ), $this->slide, $this->settings );
|
179 |
+
|
180 |
// slide row HTML
|
181 |
+
$row = "<tr id='slide-{$this->slide->ID}' class='slide image flex responsive nivo coin'>
|
182 |
<td class='col-1'>
|
183 |
+
<div class='metaslider-ui-controls ui-sortable-handle'>
|
184 |
+
<h4 class='slide-details'>{$slide_label}</h4>";
|
185 |
+
if (metaslider_this_is_trash($this->slide)) {
|
186 |
+
$row .= '<div class="row-actions trash-btns">';
|
187 |
+
$row .= "<span class='untrash'>{$this->get_undelete_button_html()}</span>";
|
188 |
+
// $row .= ' | ';
|
189 |
+
// $row .= "<span class='delete'>{$this->get_perminant_delete_button_html()}</span>";
|
190 |
+
$row .= '</div>';
|
191 |
+
} else {
|
192 |
+
$row .= $this->get_delete_button_html();
|
193 |
+
$row .= $this->get_update_image_button_html();
|
194 |
+
}
|
195 |
+
$row .= "</div>
|
196 |
+
<div class='metaslider-ui-inner'>
|
197 |
+
<button class='update-image image-button' data-button-text='" . __("Update slide image", "ml-slider") . "' title='" . __("Update slide image", "ml-slider") . "' data-slide-id='{$this->slide->ID}'>
|
198 |
+
<div class='thumb' style='background-image: url({$thumb})'></div>
|
199 |
+
</button>
|
200 |
</div>
|
201 |
</td>
|
202 |
<td class='col-2'>
|
203 |
+
<div class='metaslider-ui-inner'>
|
204 |
+
" . $this->get_admin_slide_tabs_html() . "
|
205 |
+
<input type='hidden' name='attachment[{$this->slide->ID}][type]' value='image' />
|
206 |
+
<input type='hidden' class='menu_order' name='attachment[{$this->slide->ID}][menu_order]' value='{$this->slide->menu_order}' />
|
207 |
+
<input type='hidden' name='resize_slide_id' data-slide_id='{$this->slide->ID}' data-width='{$this->settings['width']}' data-height='{$this->settings['height']}' />
|
208 |
+
</div>
|
209 |
</td>
|
210 |
</tr>";
|
211 |
|
228 |
$general_tab = "<textarea name='attachment[{$slide_id}][post_excerpt]' placeholder='" . __( "Caption", "ml-slider" ) . "'>{$caption}</textarea>
|
229 |
<input class='url' type='text' name='attachment[{$slide_id}][url]' placeholder='" . __( "URL", "ml-slider" ) . "' value='{$url}' />
|
230 |
<div class='new_window'>
|
231 |
+
<label>" . __( "New Window", "ml-slider" ) . "<input tabindex='0' type='checkbox' name='attachment[{$slide_id}][new_window]' {$target} /></label>
|
232 |
</div>";
|
233 |
|
234 |
if ( ! $this->is_valid_image() ) {
|
237 |
$general_tab = "<div class='warning'>{$message}</div>" . $general_tab;
|
238 |
}
|
239 |
|
240 |
+
$seo_tab = sprintf("<div class='row'><label>%s</label><input tabindex='0' type='text' size='50' name='attachment[%s][title]' value='%s'></div><div class='row'><label>%s</label><input tabindex='0' type='text' size='50' name='attachment[%s][alt]' value='%s'></div>", __("Image Title Text", "ml-slider"), $slide_id, $title, __("Image Alt Text", "ml-slider"), $slide_id, $alt);
|
|
|
|
|
|
|
241 |
|
242 |
$tabs = array(
|
243 |
'general' => array(
|
inc/slider/metaslider.class.php
CHANGED
@@ -105,8 +105,8 @@ class MetaSlider {
|
|
105 |
'direction' => 'horizontal',
|
106 |
'reverse' => false,
|
107 |
'animationSpeed' => 600,
|
108 |
-
'prevText' => '
|
109 |
-
'nextText' => '
|
110 |
'slices' => 15,
|
111 |
'center' => false,
|
112 |
'smartCrop' => true,
|
@@ -128,6 +128,7 @@ class MetaSlider {
|
|
128 |
|
129 |
/**
|
130 |
* The main query for extracting the slides for the slideshow
|
|
|
131 |
*/
|
132 |
public function get_slides() {
|
133 |
$args = array(
|
@@ -148,11 +149,13 @@ class MetaSlider {
|
|
148 |
)
|
149 |
);
|
150 |
|
151 |
-
|
152 |
-
|
153 |
-
|
|
|
154 |
|
155 |
-
|
|
|
156 |
}
|
157 |
|
158 |
/**
|
@@ -212,18 +215,15 @@ class MetaSlider {
|
|
212 |
* @return string HTML & Javascrpt
|
213 |
*/
|
214 |
public function render_public_slides() {
|
215 |
-
$html[] = '<!--
|
216 |
$html[] = '<div style="' . $this->get_container_style() . '" class="' . esc_attr($this->get_container_class()) .'">';
|
217 |
$html[] = ' ' . $this->get_inline_css();
|
218 |
$html[] = ' <div id="' . $this->get_container_id() . '">';
|
219 |
$html[] = ' ' . $this->get_html();
|
220 |
$html[] = ' ' . $this->get_html_after();
|
221 |
$html[] = ' </div>';
|
222 |
-
$html[] = ' <script type="text/javascript">';
|
223 |
-
$html[] = ' ' . $this->get_inline_javascript();
|
224 |
-
$html[] = ' </script>';
|
225 |
$html[] = '</div>';
|
226 |
-
$html[] = '<!--//
|
227 |
|
228 |
$slideshow = implode( "\n", $html );
|
229 |
|
@@ -445,8 +445,10 @@ class MetaSlider {
|
|
445 |
* Include slider assets, JS and CSS paths are specified by child classes.
|
446 |
*/
|
447 |
public function enqueue_scripts() {
|
448 |
-
if ( $this->get_setting(
|
449 |
-
|
|
|
|
|
450 |
}
|
451 |
|
452 |
if ( $this->get_setting( 'printCss' ) == 'true' ) {
|
105 |
'direction' => 'horizontal',
|
106 |
'reverse' => false,
|
107 |
'animationSpeed' => 600,
|
108 |
+
'prevText' => __('Previous', 'ml-slider'),
|
109 |
+
'nextText' => __('Next', 'ml-slider'),
|
110 |
'slices' => 15,
|
111 |
'center' => false,
|
112 |
'smartCrop' => true,
|
128 |
|
129 |
/**
|
130 |
* The main query for extracting the slides for the slideshow
|
131 |
+
* @return WP_Query
|
132 |
*/
|
133 |
public function get_slides() {
|
134 |
$args = array(
|
149 |
)
|
150 |
);
|
151 |
|
152 |
+
// if there is a var set to include the trashed slides, then include it
|
153 |
+
if (metaslider_viewing_trashed_slides($this->id)) {
|
154 |
+
$args['post_status'] = array('trash');
|
155 |
+
}
|
156 |
|
157 |
+
$args = apply_filters('metaslider_populate_slides_args', $args, $this->id, $this->settings);
|
158 |
+
return new WP_Query($args);
|
159 |
}
|
160 |
|
161 |
/**
|
215 |
* @return string HTML & Javascrpt
|
216 |
*/
|
217 |
public function render_public_slides() {
|
218 |
+
$html[] = '<!-- MetaSlider -->';
|
219 |
$html[] = '<div style="' . $this->get_container_style() . '" class="' . esc_attr($this->get_container_class()) .'">';
|
220 |
$html[] = ' ' . $this->get_inline_css();
|
221 |
$html[] = ' <div id="' . $this->get_container_id() . '">';
|
222 |
$html[] = ' ' . $this->get_html();
|
223 |
$html[] = ' ' . $this->get_html_after();
|
224 |
$html[] = ' </div>';
|
|
|
|
|
|
|
225 |
$html[] = '</div>';
|
226 |
+
$html[] = '<!--// MetaSlider-->';
|
227 |
|
228 |
$slideshow = implode( "\n", $html );
|
229 |
|
445 |
* Include slider assets, JS and CSS paths are specified by child classes.
|
446 |
*/
|
447 |
public function enqueue_scripts() {
|
448 |
+
if ('true' == $this->get_setting('printJs')) {
|
449 |
+
$handle = 'metaslider-' . $this->get_setting('type') . '-slider';
|
450 |
+
wp_enqueue_script($handle, METASLIDER_ASSETS_URL . $this->js_path, array('jquery'), METASLIDER_VERSION);
|
451 |
+
wp_add_inline_script($handle, $this->get_inline_javascript());
|
452 |
}
|
453 |
|
454 |
if ( $this->get_setting( 'printCss' ) == 'true' ) {
|
inc/slider/metaslider.flex.class.php
CHANGED
@@ -10,7 +10,7 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
10 |
class MetaFlexSlider extends MetaSlider {
|
11 |
|
12 |
protected $js_function = 'flexslider';
|
13 |
-
protected $js_path = 'sliders/flexslider/jquery.flexslider
|
14 |
protected $css_path = 'sliders/flexslider/flexslider.css';
|
15 |
|
16 |
/**
|
@@ -169,7 +169,7 @@ class MetaFlexSlider extends MetaSlider {
|
|
169 |
$return_value .= "\n <ul class=\"slides\">";
|
170 |
|
171 |
foreach ( $this->slides as $slide ) {
|
172 |
-
// backwards compatibility with older versions of
|
173 |
// MS Pro < 2.0 does not include the <li>
|
174 |
// MS Pro 2.0+ returns the <li>
|
175 |
if ( strpos( $slide, '<li' ) === 0 ) {
|
10 |
class MetaFlexSlider extends MetaSlider {
|
11 |
|
12 |
protected $js_function = 'flexslider';
|
13 |
+
protected $js_path = 'sliders/flexslider/jquery.flexslider.min.js';
|
14 |
protected $css_path = 'sliders/flexslider/flexslider.css';
|
15 |
|
16 |
/**
|
169 |
$return_value .= "\n <ul class=\"slides\">";
|
170 |
|
171 |
foreach ( $this->slides as $slide ) {
|
172 |
+
// backwards compatibility with older versions of MetaSlider Pro (< v2.0)
|
173 |
// MS Pro < 2.0 does not include the <li>
|
174 |
// MS Pro 2.0+ returns the <li>
|
175 |
if ( strpos( $slide, '<li' ) === 0 ) {
|
languages/ml-slider-de_DE.po
CHANGED
@@ -556,8 +556,8 @@ msgid "Add slider"
|
|
556 |
msgstr "Diashow hinzufügen"
|
557 |
|
558 |
#: ../ml-slider.php:1669
|
559 |
-
msgid "Insert
|
560 |
-
msgstr "
|
561 |
|
562 |
#: ../ml-slider.php:1671
|
563 |
msgid "Choose slideshow"
|
@@ -580,8 +580,8 @@ msgid "Upgrade to Pro $39"
|
|
580 |
msgstr "Upgrade auf Pro $39"
|
581 |
|
582 |
#: ../inc/metaslider.widget.class.php:18
|
583 |
-
msgid "
|
584 |
-
msgstr "
|
585 |
|
586 |
#: ../inc/metaslider.widget.class.php:108
|
587 |
msgid "Title:"
|
556 |
msgstr "Diashow hinzufügen"
|
557 |
|
558 |
#: ../ml-slider.php:1669
|
559 |
+
msgid "Insert MetaSlider"
|
560 |
+
msgstr "MetaSlider Diashow einfügen"
|
561 |
|
562 |
#: ../ml-slider.php:1671
|
563 |
msgid "Choose slideshow"
|
580 |
msgstr "Upgrade auf Pro $39"
|
581 |
|
582 |
#: ../inc/metaslider.widget.class.php:18
|
583 |
+
msgid "MetaSlider"
|
584 |
+
msgstr "MetaSlider"
|
585 |
|
586 |
#: ../inc/metaslider.widget.class.php:108
|
587 |
msgid "Title:"
|
languages/ml-slider-es_ES.po
CHANGED
@@ -547,7 +547,7 @@ msgid "Add slider"
|
|
547 |
msgstr "Añadir al pase"
|
548 |
|
549 |
#: ../ml-slider.php:1258
|
550 |
-
msgid "Insert
|
551 |
msgstr ""
|
552 |
|
553 |
#: ../ml-slider.php:1260
|
@@ -560,8 +560,8 @@ msgid "No slideshows found"
|
|
560 |
msgstr "No se han encontrado pases de diapositiva"
|
561 |
|
562 |
#: ../inc/metaslider.widget.class.php:18
|
563 |
-
msgid "
|
564 |
-
msgstr "
|
565 |
|
566 |
#: ../inc/metaslider.widget.class.php:111
|
567 |
msgid "Title:"
|
547 |
msgstr "Añadir al pase"
|
548 |
|
549 |
#: ../ml-slider.php:1258
|
550 |
+
msgid "Insert MetaSlider"
|
551 |
msgstr ""
|
552 |
|
553 |
#: ../ml-slider.php:1260
|
560 |
msgstr "No se han encontrado pases de diapositiva"
|
561 |
|
562 |
#: ../inc/metaslider.widget.class.php:18
|
563 |
+
msgid "MetaSlider"
|
564 |
+
msgstr "MetaSlider"
|
565 |
|
566 |
#: ../inc/metaslider.widget.class.php:111
|
567 |
msgid "Title:"
|
languages/ml-slider-fa_IR.po
CHANGED
@@ -16,8 +16,8 @@ msgstr ""
|
|
16 |
"X-Poedit-SearchPath-1: ..\n"
|
17 |
|
18 |
#: ../inc/metaslider.widget.class.php:18
|
19 |
-
msgid "
|
20 |
-
msgstr "
|
21 |
|
22 |
#: ../inc/metaslider.widget.class.php:108
|
23 |
msgid "Title:"
|
@@ -588,7 +588,7 @@ msgid "Add slider"
|
|
588 |
msgstr "قرار دادن اسلایدر"
|
589 |
|
590 |
#: ../ml-slider.php:1499
|
591 |
-
msgid "Insert
|
592 |
msgstr "قرار دادن اسلایدر"
|
593 |
|
594 |
#: ../ml-slider.php:1501
|
16 |
"X-Poedit-SearchPath-1: ..\n"
|
17 |
|
18 |
#: ../inc/metaslider.widget.class.php:18
|
19 |
+
msgid "MetaSlider"
|
20 |
+
msgstr "MetaSlider"
|
21 |
|
22 |
#: ../inc/metaslider.widget.class.php:108
|
23 |
msgid "Title:"
|
588 |
msgstr "قرار دادن اسلایدر"
|
589 |
|
590 |
#: ../ml-slider.php:1499
|
591 |
+
msgid "Insert MetaSlider"
|
592 |
msgstr "قرار دادن اسلایدر"
|
593 |
|
594 |
#: ../ml-slider.php:1501
|
languages/ml-slider-fr_FR.po
CHANGED
@@ -550,7 +550,7 @@ msgid "Add slider"
|
|
550 |
msgstr "Ajouter au diaporama"
|
551 |
|
552 |
#: ../ml-slider.php:1258
|
553 |
-
msgid "Insert
|
554 |
msgstr ""
|
555 |
|
556 |
#: ../ml-slider.php:1260
|
@@ -563,8 +563,8 @@ msgid "No slideshows found"
|
|
563 |
msgstr ""
|
564 |
|
565 |
#: ../inc/metaslider.widget.class.php:18
|
566 |
-
msgid "
|
567 |
-
msgstr "
|
568 |
|
569 |
#: ../inc/metaslider.widget.class.php:111
|
570 |
msgid "Title:"
|
@@ -655,5 +655,5 @@ msgstr ""
|
|
655 |
#~ msgid "More Slide Types"
|
656 |
#~ msgstr "Autres types de diapositive"
|
657 |
|
658 |
-
#~ msgid "Support
|
659 |
-
#~ msgstr "Soutenir
|
550 |
msgstr "Ajouter au diaporama"
|
551 |
|
552 |
#: ../ml-slider.php:1258
|
553 |
+
msgid "Insert MetaSlider"
|
554 |
msgstr ""
|
555 |
|
556 |
#: ../ml-slider.php:1260
|
563 |
msgstr ""
|
564 |
|
565 |
#: ../inc/metaslider.widget.class.php:18
|
566 |
+
msgid "MetaSlider"
|
567 |
+
msgstr "MetaSlider"
|
568 |
|
569 |
#: ../inc/metaslider.widget.class.php:111
|
570 |
msgid "Title:"
|
655 |
#~ msgid "More Slide Types"
|
656 |
#~ msgstr "Autres types de diapositive"
|
657 |
|
658 |
+
#~ msgid "Support MetaSlider"
|
659 |
+
#~ msgstr "Soutenir MetaSlider"
|
languages/ml-slider-he_IL.po
CHANGED
@@ -5,7 +5,7 @@ msgid ""
|
|
5 |
msgstr ""
|
6 |
"Content-Type: text/plain; charset=UTF-8\n"
|
7 |
"Content-Transfer-Encoding: 8bit\n"
|
8 |
-
"Project-Id-Version:
|
9 |
"POT-Creation-Date: \n"
|
10 |
"PO-Revision-Date: \n"
|
11 |
"Last-Translator: Ahrale <contact@atar4u.com>\n"
|
@@ -103,7 +103,7 @@ msgstr "הוספת תמונה"
|
|
103 |
msgid "Slides"
|
104 |
msgstr "תמונות"
|
105 |
|
106 |
-
# $goPro = "<div style='display: none;' id='screen-options-link-wrap'><a target='_blank' class='show-settings' href='{$link}'>
|
107 |
# __( 'Upgrade to Pro $39', "metaslider" ) .
|
108 |
# "</a></div>";
|
109 |
# wpml-name: 6cc60379c4000862e626d36dced83abc
|
@@ -125,10 +125,10 @@ msgid "Choose slideshow"
|
|
125 |
msgstr "בחר מצגת"
|
126 |
|
127 |
# if ( count( $sliders ) ) {
|
128 |
-
# echo "<h3 style='margin-bottom: 20px;'>" . __( "Insert
|
129 |
# echo "<select id='metaslider-select'>";
|
130 |
# wpml-name: e43f681fefa2d68c5d924b83d1e478a8
|
131 |
-
msgid "Insert
|
132 |
msgstr "הוסף מצגת"
|
133 |
|
134 |
# '/metaslider/matchalabs.png); background-repeat: no-repeat; background-position: left bottom;"></span> ' .
|
@@ -926,7 +926,7 @@ msgstr "בטוח?"
|
|
926 |
|
927 |
# 'id' => 'documentation',
|
928 |
# 'title' => __( 'Documentation', 'metaslider' ),
|
929 |
-
# 'content' => "<p><a href='http://www.metaslider.com/documentation/' target='blank'>
|
930 |
# wpml-name: 5b6cf869265c13af8566f192b4ab3d2a
|
931 |
msgid "Documentation"
|
932 |
msgstr "תיעוד"
|
@@ -1036,9 +1036,9 @@ msgstr "בחירת מצגת:"
|
|
1036 |
msgid "Title:"
|
1037 |
msgstr "כותרת:"
|
1038 |
|
1039 |
-
# '
|
1040 |
-
# array( 'description' => __( '
|
1041 |
# );
|
1042 |
# wpml-name: 94a7bae84ef2816494be4af66c577bfc
|
1043 |
-
msgid "
|
1044 |
msgstr "מצגת שקופיות"
|
5 |
msgstr ""
|
6 |
"Content-Type: text/plain; charset=UTF-8\n"
|
7 |
"Content-Transfer-Encoding: 8bit\n"
|
8 |
+
"Project-Id-Version: MetaSlider 2.9\n"
|
9 |
"POT-Creation-Date: \n"
|
10 |
"PO-Revision-Date: \n"
|
11 |
"Last-Translator: Ahrale <contact@atar4u.com>\n"
|
103 |
msgid "Slides"
|
104 |
msgstr "תמונות"
|
105 |
|
106 |
+
# $goPro = "<div style='display: none;' id='screen-options-link-wrap'><a target='_blank' class='show-settings' href='{$link}'>MetaSlider v" . METASLIDER_VERSION . " - " .
|
107 |
# __( 'Upgrade to Pro $39', "metaslider" ) .
|
108 |
# "</a></div>";
|
109 |
# wpml-name: 6cc60379c4000862e626d36dced83abc
|
125 |
msgstr "בחר מצגת"
|
126 |
|
127 |
# if ( count( $sliders ) ) {
|
128 |
+
# echo "<h3 style='margin-bottom: 20px;'>" . __( "Insert MetaSlider", "metaslider" ) . "</h3>";
|
129 |
# echo "<select id='metaslider-select'>";
|
130 |
# wpml-name: e43f681fefa2d68c5d924b83d1e478a8
|
131 |
+
msgid "Insert MetaSlider"
|
132 |
msgstr "הוסף מצגת"
|
133 |
|
134 |
# '/metaslider/matchalabs.png); background-repeat: no-repeat; background-position: left bottom;"></span> ' .
|
926 |
|
927 |
# 'id' => 'documentation',
|
928 |
# 'title' => __( 'Documentation', 'metaslider' ),
|
929 |
+
# 'content' => "<p><a href='http://www.metaslider.com/documentation/' target='blank'>MetaSlider Documentation</a></p>",
|
930 |
# wpml-name: 5b6cf869265c13af8566f192b4ab3d2a
|
931 |
msgid "Documentation"
|
932 |
msgstr "תיעוד"
|
1036 |
msgid "Title:"
|
1037 |
msgstr "כותרת:"
|
1038 |
|
1039 |
+
# 'MetaSlider', // Name
|
1040 |
+
# array( 'description' => __( 'MetaSlider', 'metaslider' ) ) // Args
|
1041 |
# );
|
1042 |
# wpml-name: 94a7bae84ef2816494be4af66c577bfc
|
1043 |
+
msgid "MetaSlider"
|
1044 |
msgstr "מצגת שקופיות"
|
languages/ml-slider-hr_HR.po
CHANGED
@@ -543,8 +543,8 @@ msgid "Add slider"
|
|
543 |
msgstr "Dodaj slider"
|
544 |
|
545 |
#: ../ml-slider.php:1258
|
546 |
-
msgid "Insert
|
547 |
-
msgstr "Unesi
|
548 |
|
549 |
#: ../ml-slider.php:1260
|
550 |
msgid "Choose slideshow"
|
@@ -555,8 +555,8 @@ msgid "No slideshows found"
|
|
555 |
msgstr "Slideshowi nisu pronađeni"
|
556 |
|
557 |
#: ../inc/metaslider.widget.class.php:18
|
558 |
-
msgid "
|
559 |
-
msgstr "
|
560 |
|
561 |
#: ../inc/metaslider.widget.class.php:111
|
562 |
msgid "Title:"
|
543 |
msgstr "Dodaj slider"
|
544 |
|
545 |
#: ../ml-slider.php:1258
|
546 |
+
msgid "Insert MetaSlider"
|
547 |
+
msgstr "Unesi MetaSlider"
|
548 |
|
549 |
#: ../ml-slider.php:1260
|
550 |
msgid "Choose slideshow"
|
555 |
msgstr "Slideshowi nisu pronađeni"
|
556 |
|
557 |
#: ../inc/metaslider.widget.class.php:18
|
558 |
+
msgid "MetaSlider"
|
559 |
+
msgstr "MetaSlider"
|
560 |
|
561 |
#: ../inc/metaslider.widget.class.php:111
|
562 |
msgid "Title:"
|
languages/ml-slider-hu_HU.po
CHANGED
@@ -539,8 +539,8 @@ msgid "Add slider"
|
|
539 |
msgstr "Slider hozzáadása"
|
540 |
|
541 |
#: ../ml-slider.php:1258
|
542 |
-
msgid "Insert
|
543 |
-
msgstr "
|
544 |
|
545 |
#: ../ml-slider.php:1260
|
546 |
msgid "Choose slideshow"
|
@@ -551,8 +551,8 @@ msgid "No slideshows found"
|
|
551 |
msgstr "Nincs találat"
|
552 |
|
553 |
#: ../inc/metaslider.widget.class.php:18
|
554 |
-
msgid "
|
555 |
-
msgstr "
|
556 |
|
557 |
#: ../inc/metaslider.widget.class.php:111
|
558 |
msgid "Title:"
|
539 |
msgstr "Slider hozzáadása"
|
540 |
|
541 |
#: ../ml-slider.php:1258
|
542 |
+
msgid "Insert MetaSlider"
|
543 |
+
msgstr "MetaSlider beillesztése"
|
544 |
|
545 |
#: ../ml-slider.php:1260
|
546 |
msgid "Choose slideshow"
|
551 |
msgstr "Nincs találat"
|
552 |
|
553 |
#: ../inc/metaslider.widget.class.php:18
|
554 |
+
msgid "MetaSlider"
|
555 |
+
msgstr "MetaSlider"
|
556 |
|
557 |
#: ../inc/metaslider.widget.class.php:111
|
558 |
msgid "Title:"
|
languages/ml-slider-ja.po
CHANGED
@@ -35,8 +35,8 @@ msgstr ""
|
|
35 |
"X-Poedit-SearchPath-1: ..\n"
|
36 |
|
37 |
#: ../inc/metaslider.widget.class.php:18
|
38 |
-
msgid "
|
39 |
-
msgstr "
|
40 |
|
41 |
#: ../inc/metaslider.widget.class.php:108
|
42 |
msgid "Title:"
|
@@ -614,8 +614,8 @@ msgid "Add slider"
|
|
614 |
msgstr "スライダーを追加"
|
615 |
|
616 |
#: ../ml-slider.php:1499
|
617 |
-
msgid "Insert
|
618 |
-
msgstr "
|
619 |
|
620 |
#: ../ml-slider.php:1501
|
621 |
msgid "Choose slideshow"
|
35 |
"X-Poedit-SearchPath-1: ..\n"
|
36 |
|
37 |
#: ../inc/metaslider.widget.class.php:18
|
38 |
+
msgid "MetaSlider"
|
39 |
+
msgstr "MetaSlider"
|
40 |
|
41 |
#: ../inc/metaslider.widget.class.php:108
|
42 |
msgid "Title:"
|
614 |
msgstr "スライダーを追加"
|
615 |
|
616 |
#: ../ml-slider.php:1499
|
617 |
+
msgid "Insert MetaSlider"
|
618 |
+
msgstr "MetaSlider を挿入"
|
619 |
|
620 |
#: ../ml-slider.php:1501
|
621 |
msgid "Choose slideshow"
|
languages/ml-slider-nb_NO.po
CHANGED
@@ -541,7 +541,7 @@ msgid "Add slider"
|
|
541 |
msgstr "Legg til lysbildeserie"
|
542 |
|
543 |
#: ../ml-slider.php:1258
|
544 |
-
msgid "Insert
|
545 |
msgstr "Sett inn Meta Lysbildeserie"
|
546 |
|
547 |
#: ../ml-slider.php:1260
|
@@ -553,8 +553,8 @@ msgid "No slideshows found"
|
|
553 |
msgstr "Ingen slideshow funnet"
|
554 |
|
555 |
#: ../inc/metaslider.widget.class.php:18
|
556 |
-
msgid "
|
557 |
-
msgstr "
|
558 |
|
559 |
#: ../inc/metaslider.widget.class.php:111
|
560 |
msgid "Title:"
|
541 |
msgstr "Legg til lysbildeserie"
|
542 |
|
543 |
#: ../ml-slider.php:1258
|
544 |
+
msgid "Insert MetaSlider"
|
545 |
msgstr "Sett inn Meta Lysbildeserie"
|
546 |
|
547 |
#: ../ml-slider.php:1260
|
553 |
msgstr "Ingen slideshow funnet"
|
554 |
|
555 |
#: ../inc/metaslider.widget.class.php:18
|
556 |
+
msgid "MetaSlider"
|
557 |
+
msgstr "MetaSlider"
|
558 |
|
559 |
#: ../inc/metaslider.widget.class.php:111
|
560 |
msgid "Title:"
|
languages/ml-slider-nl_NL.po
CHANGED
@@ -541,8 +541,8 @@ msgid "Add slider"
|
|
541 |
msgstr "Slider toevoegen"
|
542 |
|
543 |
#: ../ml-slider.php:1258
|
544 |
-
msgid "Insert
|
545 |
-
msgstr "
|
546 |
|
547 |
#: ../ml-slider.php:1260
|
548 |
msgid "Choose slideshow"
|
@@ -553,7 +553,7 @@ msgid "No slideshows found"
|
|
553 |
msgstr "geen slideshows gevonden"
|
554 |
|
555 |
#: ../inc/metaslider.widget.class.php:18
|
556 |
-
msgid "
|
557 |
msgstr ""
|
558 |
|
559 |
#: ../inc/metaslider.widget.class.php:111
|
541 |
msgstr "Slider toevoegen"
|
542 |
|
543 |
#: ../ml-slider.php:1258
|
544 |
+
msgid "Insert MetaSlider"
|
545 |
+
msgstr "MetaSlider invoegen"
|
546 |
|
547 |
#: ../ml-slider.php:1260
|
548 |
msgid "Choose slideshow"
|
553 |
msgstr "geen slideshows gevonden"
|
554 |
|
555 |
#: ../inc/metaslider.widget.class.php:18
|
556 |
+
msgid "MetaSlider"
|
557 |
msgstr ""
|
558 |
|
559 |
#: ../inc/metaslider.widget.class.php:111
|
languages/ml-slider-pl_PL.po
CHANGED
@@ -543,7 +543,7 @@ msgid "Add slider"
|
|
543 |
msgstr "Dodaj do slidera"
|
544 |
|
545 |
#: ../ml-slider.php:1258
|
546 |
-
msgid "Insert
|
547 |
msgstr ""
|
548 |
|
549 |
#: ../ml-slider.php:1260
|
@@ -556,8 +556,8 @@ msgid "No slideshows found"
|
|
556 |
msgstr "Nie znaleziono składników pokazu"
|
557 |
|
558 |
#: ../inc/metaslider.widget.class.php:18
|
559 |
-
msgid "
|
560 |
-
msgstr "
|
561 |
|
562 |
#: ../inc/metaslider.widget.class.php:111
|
563 |
msgid "Title:"
|
543 |
msgstr "Dodaj do slidera"
|
544 |
|
545 |
#: ../ml-slider.php:1258
|
546 |
+
msgid "Insert MetaSlider"
|
547 |
msgstr ""
|
548 |
|
549 |
#: ../ml-slider.php:1260
|
556 |
msgstr "Nie znaleziono składników pokazu"
|
557 |
|
558 |
#: ../inc/metaslider.widget.class.php:18
|
559 |
+
msgid "MetaSlider"
|
560 |
+
msgstr "MetaSlider"
|
561 |
|
562 |
#: ../inc/metaslider.widget.class.php:111
|
563 |
msgid "Title:"
|
languages/ml-slider-pt_BR.po
CHANGED
@@ -564,8 +564,8 @@ msgid "Add slider"
|
|
564 |
msgstr "Adicionar apresentação"
|
565 |
|
566 |
#: ../ml-slider.php:1602
|
567 |
-
msgid "Insert
|
568 |
-
msgstr "Inserir
|
569 |
|
570 |
#: ../ml-slider.php:1604
|
571 |
msgid "Choose slideshow"
|
@@ -584,8 +584,8 @@ msgid "Upgrade to Pro $39"
|
|
584 |
msgstr "Atualize para Pro US$39"
|
585 |
|
586 |
#: ../inc/metaslider.widget.class.php:18
|
587 |
-
msgid "
|
588 |
-
msgstr "
|
589 |
|
590 |
#: ../inc/metaslider.widget.class.php:108
|
591 |
msgid "Title:"
|
564 |
msgstr "Adicionar apresentação"
|
565 |
|
566 |
#: ../ml-slider.php:1602
|
567 |
+
msgid "Insert MetaSlider"
|
568 |
+
msgstr "Inserir MetaSlider"
|
569 |
|
570 |
#: ../ml-slider.php:1604
|
571 |
msgid "Choose slideshow"
|
584 |
msgstr "Atualize para Pro US$39"
|
585 |
|
586 |
#: ../inc/metaslider.widget.class.php:18
|
587 |
+
msgid "MetaSlider"
|
588 |
+
msgstr "MetaSlider"
|
589 |
|
590 |
#: ../inc/metaslider.widget.class.php:108
|
591 |
msgid "Title:"
|
languages/ml-slider-ro_RO.po
CHANGED
@@ -540,8 +540,8 @@ msgid "Add slider"
|
|
540 |
msgstr "Adăugare diapozitiv"
|
541 |
|
542 |
#: ../ml-slider.php:1258
|
543 |
-
msgid "Insert
|
544 |
-
msgstr "Inserare
|
545 |
|
546 |
#: ../ml-slider.php:1260
|
547 |
msgid "Choose slideshow"
|
@@ -552,8 +552,8 @@ msgid "No slideshows found"
|
|
552 |
msgstr "Nici un diapozitiv găsit"
|
553 |
|
554 |
#: ../inc/metaslider.widget.class.php:18
|
555 |
-
msgid "
|
556 |
-
msgstr "
|
557 |
|
558 |
#: ../inc/metaslider.widget.class.php:111
|
559 |
msgid "Title:"
|
540 |
msgstr "Adăugare diapozitiv"
|
541 |
|
542 |
#: ../ml-slider.php:1258
|
543 |
+
msgid "Insert MetaSlider"
|
544 |
+
msgstr "Inserare MetaSlider"
|
545 |
|
546 |
#: ../ml-slider.php:1260
|
547 |
msgid "Choose slideshow"
|
552 |
msgstr "Nici un diapozitiv găsit"
|
553 |
|
554 |
#: ../inc/metaslider.widget.class.php:18
|
555 |
+
msgid "MetaSlider"
|
556 |
+
msgstr "MetaSlider"
|
557 |
|
558 |
#: ../inc/metaslider.widget.class.php:111
|
559 |
msgid "Title:"
|
languages/ml-slider-ru_RU.po
CHANGED
@@ -1,6 +1,6 @@
|
|
1 |
msgid ""
|
2 |
msgstr ""
|
3 |
-
"Project-Id-Version:
|
4 |
"Report-Msgid-Bugs-To: \n"
|
5 |
"POT-Creation-Date: \n"
|
6 |
"PO-Revision-Date: 2015-01-15 17:46:23+0000\n"
|
@@ -24,7 +24,7 @@ msgstr ""
|
|
24 |
#: inc/metaslider.widget.class.php:18
|
25 |
#: ml-slider.php:0
|
26 |
#@ metaslider
|
27 |
-
msgid "
|
28 |
msgstr "Мета слайдер"
|
29 |
|
30 |
#: inc/metaslider.widget.class.php:108
|
@@ -722,7 +722,7 @@ msgstr "Добавить слайдер"
|
|
722 |
|
723 |
#: ml-slider.php:1671
|
724 |
#@ metaslider
|
725 |
-
msgid "Insert
|
726 |
msgstr "Вставить Мета Слайдер"
|
727 |
|
728 |
#: ml-slider.php:1673
|
1 |
msgid ""
|
2 |
msgstr ""
|
3 |
+
"Project-Id-Version: MetaSlider v3.2.1\n"
|
4 |
"Report-Msgid-Bugs-To: \n"
|
5 |
"POT-Creation-Date: \n"
|
6 |
"PO-Revision-Date: 2015-01-15 17:46:23+0000\n"
|
24 |
#: inc/metaslider.widget.class.php:18
|
25 |
#: ml-slider.php:0
|
26 |
#@ metaslider
|
27 |
+
msgid "MetaSlider"
|
28 |
msgstr "Мета слайдер"
|
29 |
|
30 |
#: inc/metaslider.widget.class.php:108
|
722 |
|
723 |
#: ml-slider.php:1671
|
724 |
#@ metaslider
|
725 |
+
msgid "Insert MetaSlider"
|
726 |
msgstr "Вставить Мета Слайдер"
|
727 |
|
728 |
#: ml-slider.php:1673
|
languages/ml-slider-uk.po
CHANGED
@@ -19,8 +19,8 @@ msgstr ""
|
|
19 |
"X-Poedit-SearchPath-1: ..\n"
|
20 |
|
21 |
#: ../inc/metaslider.widget.class.php:19
|
22 |
-
msgid "
|
23 |
-
msgstr "
|
24 |
|
25 |
#: ../inc/metaslider.widget.class.php:109
|
26 |
msgid "Title:"
|
@@ -682,8 +682,8 @@ msgid "Add slider"
|
|
682 |
msgstr "Додати слайдер"
|
683 |
|
684 |
#: ../ml-slider.php:1784
|
685 |
-
msgid "Insert
|
686 |
-
msgstr "Вставити
|
687 |
|
688 |
#: ../ml-slider.php:1786
|
689 |
msgid "Choose slideshow"
|
19 |
"X-Poedit-SearchPath-1: ..\n"
|
20 |
|
21 |
#: ../inc/metaslider.widget.class.php:19
|
22 |
+
msgid "MetaSlider"
|
23 |
+
msgstr "MetaSlider"
|
24 |
|
25 |
#: ../inc/metaslider.widget.class.php:109
|
26 |
msgid "Title:"
|
682 |
msgstr "Додати слайдер"
|
683 |
|
684 |
#: ../ml-slider.php:1784
|
685 |
+
msgid "Insert MetaSlider"
|
686 |
+
msgstr "Вставити MetaSlider"
|
687 |
|
688 |
#: ../ml-slider.php:1786
|
689 |
msgid "Choose slideshow"
|
languages/ml-slider-zh_CN.po
CHANGED
@@ -554,7 +554,7 @@ msgid "Add slider"
|
|
554 |
msgstr "添加幻灯片"
|
555 |
|
556 |
#: ../ml-slider.php:1672
|
557 |
-
msgid "Insert
|
558 |
msgstr "插入梅塔幻灯片"
|
559 |
|
560 |
#: ../ml-slider.php:1674
|
@@ -578,8 +578,8 @@ msgid "Upgrade to Pro $39"
|
|
578 |
msgstr "升级到专业版(19美金)"
|
579 |
|
580 |
#: ../inc/metaslider.widget.class.php:18
|
581 |
-
msgid "
|
582 |
-
msgstr "
|
583 |
|
584 |
#: ../inc/metaslider.widget.class.php:108
|
585 |
msgid "Title:"
|
554 |
msgstr "添加幻灯片"
|
555 |
|
556 |
#: ../ml-slider.php:1672
|
557 |
+
msgid "Insert MetaSlider"
|
558 |
msgstr "插入梅塔幻灯片"
|
559 |
|
560 |
#: ../ml-slider.php:1674
|
578 |
msgstr "升级到专业版(19美金)"
|
579 |
|
580 |
#: ../inc/metaslider.widget.class.php:18
|
581 |
+
msgid "MetaSlider"
|
582 |
+
msgstr "MetaSlider"
|
583 |
|
584 |
#: ../inc/metaslider.widget.class.php:108
|
585 |
msgid "Title:"
|
languages/ml-slider-zh_TW.po
CHANGED
@@ -540,7 +540,7 @@ msgid "Add slider"
|
|
540 |
msgstr "添加到幻燈片"
|
541 |
|
542 |
#: ../ml-slider.php:1258
|
543 |
-
msgid "Insert
|
544 |
msgstr ""
|
545 |
|
546 |
#: ../ml-slider.php:1260
|
@@ -553,8 +553,8 @@ msgid "No slideshows found"
|
|
553 |
msgstr "沒有幻燈片"
|
554 |
|
555 |
#: ../inc/metaslider.widget.class.php:18
|
556 |
-
msgid "
|
557 |
-
msgstr "
|
558 |
|
559 |
#: ../inc/metaslider.widget.class.php:111
|
560 |
msgid "Title:"
|
540 |
msgstr "添加到幻燈片"
|
541 |
|
542 |
#: ../ml-slider.php:1258
|
543 |
+
msgid "Insert MetaSlider"
|
544 |
msgstr ""
|
545 |
|
546 |
#: ../ml-slider.php:1260
|
553 |
msgstr "沒有幻燈片"
|
554 |
|
555 |
#: ../inc/metaslider.widget.class.php:18
|
556 |
+
msgid "MetaSlider"
|
557 |
+
msgstr "MetaSlider"
|
558 |
|
559 |
#: ../inc/metaslider.widget.class.php:111
|
560 |
msgid "Title:"
|
languages/ml-slider.mo
DELETED
Binary file
|
languages/ml-slider.po
DELETED
@@ -1,676 +0,0 @@
|
|
1 |
-
msgid ""
|
2 |
-
msgstr ""
|
3 |
-
"Project-Id-Version: metaslider\n"
|
4 |
-
"POT-Creation-Date: 2015-02-17 14:47-0000\n"
|
5 |
-
"PO-Revision-Date: 2015-02-17 14:47-0000\n"
|
6 |
-
"Last-Translator: \n"
|
7 |
-
"Language-Team: \n"
|
8 |
-
"MIME-Version: 1.0\n"
|
9 |
-
"Content-Type: text/plain; charset=UTF-8\n"
|
10 |
-
"Content-Transfer-Encoding: 8bit\n"
|
11 |
-
"X-Generator: Poedit 1.5.7\n"
|
12 |
-
"X-Poedit-KeywordsList: _;gettext;gettext_noop;__;_e\n"
|
13 |
-
"X-Poedit-Basepath: .\n"
|
14 |
-
"X-Poedit-SearchPath-0: .\n"
|
15 |
-
"X-Poedit-SearchPath-1: ..\n"
|
16 |
-
|
17 |
-
#: ../ml-slider.php:283 ../ml-slider.php:284
|
18 |
-
msgid "Go Pro!"
|
19 |
-
msgstr ""
|
20 |
-
|
21 |
-
#: ../ml-slider.php:412
|
22 |
-
msgid "Documentation"
|
23 |
-
msgstr ""
|
24 |
-
|
25 |
-
#: ../ml-slider.php:465 ../inc/slide/metaslide.image.class.php:147
|
26 |
-
msgid "URL"
|
27 |
-
msgstr ""
|
28 |
-
|
29 |
-
#: ../ml-slider.php:466 ../inc/slide/metaslide.image.class.php:146
|
30 |
-
msgid "Caption"
|
31 |
-
msgstr ""
|
32 |
-
|
33 |
-
#: ../ml-slider.php:467 ../inc/slide/metaslide.image.class.php:149
|
34 |
-
msgid "New Window"
|
35 |
-
msgstr ""
|
36 |
-
|
37 |
-
#: ../ml-slider.php:468
|
38 |
-
msgid "Are you sure?"
|
39 |
-
msgstr ""
|
40 |
-
|
41 |
-
#: ../ml-slider.php:470
|
42 |
-
msgid "Select replacement image"
|
43 |
-
msgstr ""
|
44 |
-
|
45 |
-
#: ../ml-slider.php:475
|
46 |
-
msgid ""
|
47 |
-
"Caution: This setting is for advanced developers only. If you're unsure, "
|
48 |
-
"leave it checked."
|
49 |
-
msgstr ""
|
50 |
-
|
51 |
-
#: ../ml-slider.php:538
|
52 |
-
msgid "Image"
|
53 |
-
msgstr ""
|
54 |
-
|
55 |
-
#: ../ml-slider.php:539
|
56 |
-
msgid "Add to slider"
|
57 |
-
msgstr ""
|
58 |
-
|
59 |
-
#: ../ml-slider.php:703
|
60 |
-
msgid "New Slider"
|
61 |
-
msgstr ""
|
62 |
-
|
63 |
-
#: ../ml-slider.php:1015
|
64 |
-
msgid "Switch to Dropdown view"
|
65 |
-
msgstr ""
|
66 |
-
|
67 |
-
#: ../ml-slider.php:1015
|
68 |
-
msgid "Dropdown"
|
69 |
-
msgstr ""
|
70 |
-
|
71 |
-
#: ../ml-slider.php:1036
|
72 |
-
msgid "New slideshow created. Click 'Add Slide' to get started!"
|
73 |
-
msgstr ""
|
74 |
-
|
75 |
-
#: ../ml-slider.php:1040
|
76 |
-
msgid "Switch to Tab view"
|
77 |
-
msgstr ""
|
78 |
-
|
79 |
-
#: ../ml-slider.php:1040
|
80 |
-
msgid "Tabs"
|
81 |
-
msgstr ""
|
82 |
-
|
83 |
-
#: ../ml-slider.php:1042
|
84 |
-
msgid "Select Slider"
|
85 |
-
msgstr ""
|
86 |
-
|
87 |
-
#: ../ml-slider.php:1061
|
88 |
-
msgid "or"
|
89 |
-
msgstr ""
|
90 |
-
|
91 |
-
#: ../ml-slider.php:1062
|
92 |
-
msgid "Add New Slideshow"
|
93 |
-
msgstr ""
|
94 |
-
|
95 |
-
#: ../ml-slider.php:1068
|
96 |
-
msgid "Create your first slideshow"
|
97 |
-
msgstr ""
|
98 |
-
|
99 |
-
#: ../ml-slider.php:1130
|
100 |
-
msgid "Slides"
|
101 |
-
msgstr ""
|
102 |
-
|
103 |
-
#: ../ml-slider.php:1134 ../ml-slider.php:1135
|
104 |
-
msgid "Add Slide"
|
105 |
-
msgstr ""
|
106 |
-
|
107 |
-
#: ../ml-slider.php:1158
|
108 |
-
msgid "Settings"
|
109 |
-
msgstr ""
|
110 |
-
|
111 |
-
#: ../ml-slider.php:1159
|
112 |
-
msgid "Save"
|
113 |
-
msgstr ""
|
114 |
-
|
115 |
-
#: ../ml-slider.php:1160
|
116 |
-
msgid "Save & Preview"
|
117 |
-
msgstr ""
|
118 |
-
|
119 |
-
#: ../ml-slider.php:1173
|
120 |
-
msgid "Flex Slider"
|
121 |
-
msgstr ""
|
122 |
-
|
123 |
-
#: ../ml-slider.php:1174
|
124 |
-
msgid "R. Slides"
|
125 |
-
msgstr ""
|
126 |
-
|
127 |
-
#: ../ml-slider.php:1175
|
128 |
-
msgid "Nivo Slider"
|
129 |
-
msgstr ""
|
130 |
-
|
131 |
-
#: ../ml-slider.php:1176
|
132 |
-
msgid "Coin Slider"
|
133 |
-
msgstr ""
|
134 |
-
|
135 |
-
#: ../ml-slider.php:1187 ../ml-slider.php:1426
|
136 |
-
msgid "Width"
|
137 |
-
msgstr ""
|
138 |
-
|
139 |
-
#: ../ml-slider.php:1189
|
140 |
-
msgid "Slideshow width"
|
141 |
-
msgstr ""
|
142 |
-
|
143 |
-
#: ../ml-slider.php:1190 ../ml-slider.php:1203 ../ml-slider.php:1353
|
144 |
-
msgid "px"
|
145 |
-
msgstr ""
|
146 |
-
|
147 |
-
#: ../ml-slider.php:1200 ../ml-slider.php:1439
|
148 |
-
msgid "Height"
|
149 |
-
msgstr ""
|
150 |
-
|
151 |
-
#: ../ml-slider.php:1202
|
152 |
-
msgid "Slideshow height"
|
153 |
-
msgstr ""
|
154 |
-
|
155 |
-
#: ../ml-slider.php:1209
|
156 |
-
msgid "Effect"
|
157 |
-
msgstr ""
|
158 |
-
|
159 |
-
#: ../ml-slider.php:1211
|
160 |
-
msgid "Slide transition effect"
|
161 |
-
msgstr ""
|
162 |
-
|
163 |
-
#: ../ml-slider.php:1213 ../ml-slider.php:1358
|
164 |
-
msgid "Random"
|
165 |
-
msgstr ""
|
166 |
-
|
167 |
-
#: ../ml-slider.php:1214
|
168 |
-
msgid "Swirl"
|
169 |
-
msgstr ""
|
170 |
-
|
171 |
-
#: ../ml-slider.php:1215
|
172 |
-
msgid "Rain"
|
173 |
-
msgstr ""
|
174 |
-
|
175 |
-
#: ../ml-slider.php:1216
|
176 |
-
msgid "Straight"
|
177 |
-
msgstr ""
|
178 |
-
|
179 |
-
#: ../ml-slider.php:1217
|
180 |
-
msgid "Slide Down"
|
181 |
-
msgstr ""
|
182 |
-
|
183 |
-
#: ../ml-slider.php:1218
|
184 |
-
msgid "Slice Up"
|
185 |
-
msgstr ""
|
186 |
-
|
187 |
-
#: ../ml-slider.php:1219
|
188 |
-
msgid "Slide Up Left"
|
189 |
-
msgstr ""
|
190 |
-
|
191 |
-
#: ../ml-slider.php:1220
|
192 |
-
msgid "Slice Up Down"
|
193 |
-
msgstr ""
|
194 |
-
|
195 |
-
#: ../ml-slider.php:1221
|
196 |
-
msgid "Slide Up Down Left"
|
197 |
-
msgstr ""
|
198 |
-
|
199 |
-
#: ../ml-slider.php:1222
|
200 |
-
msgid "Fold"
|
201 |
-
msgstr ""
|
202 |
-
|
203 |
-
#: ../ml-slider.php:1223
|
204 |
-
msgid "Fade"
|
205 |
-
msgstr ""
|
206 |
-
|
207 |
-
#: ../ml-slider.php:1224
|
208 |
-
msgid "Slide In Right"
|
209 |
-
msgstr ""
|
210 |
-
|
211 |
-
#: ../ml-slider.php:1225
|
212 |
-
msgid "Slide In Left"
|
213 |
-
msgstr ""
|
214 |
-
|
215 |
-
#: ../ml-slider.php:1226
|
216 |
-
msgid "Box Random"
|
217 |
-
msgstr ""
|
218 |
-
|
219 |
-
#: ../ml-slider.php:1227
|
220 |
-
msgid "Box Rain"
|
221 |
-
msgstr ""
|
222 |
-
|
223 |
-
#: ../ml-slider.php:1228
|
224 |
-
msgid "Box Rain Reverse"
|
225 |
-
msgstr ""
|
226 |
-
|
227 |
-
#: ../ml-slider.php:1229
|
228 |
-
msgid "Box Rain Grow Reverse"
|
229 |
-
msgstr ""
|
230 |
-
|
231 |
-
#: ../ml-slider.php:1230
|
232 |
-
msgid "Slide"
|
233 |
-
msgstr ""
|
234 |
-
|
235 |
-
#: ../ml-slider.php:1237
|
236 |
-
msgid "Theme"
|
237 |
-
msgstr ""
|
238 |
-
|
239 |
-
#: ../ml-slider.php:1239
|
240 |
-
msgid "Slideshow theme"
|
241 |
-
msgstr ""
|
242 |
-
|
243 |
-
#: ../ml-slider.php:1241
|
244 |
-
msgid "Default"
|
245 |
-
msgstr ""
|
246 |
-
|
247 |
-
#: ../ml-slider.php:1242
|
248 |
-
msgid "Dark (Nivo)"
|
249 |
-
msgstr ""
|
250 |
-
|
251 |
-
#: ../ml-slider.php:1243
|
252 |
-
msgid "Light (Nivo)"
|
253 |
-
msgstr ""
|
254 |
-
|
255 |
-
#: ../ml-slider.php:1244
|
256 |
-
msgid "Bar (Nivo)"
|
257 |
-
msgstr ""
|
258 |
-
|
259 |
-
#: ../ml-slider.php:1250
|
260 |
-
msgid "Arrows"
|
261 |
-
msgstr ""
|
262 |
-
|
263 |
-
#: ../ml-slider.php:1253
|
264 |
-
msgid "Show the previous/next arrows"
|
265 |
-
msgstr ""
|
266 |
-
|
267 |
-
#: ../ml-slider.php:1258
|
268 |
-
msgid "Navigation"
|
269 |
-
msgstr ""
|
270 |
-
|
271 |
-
#: ../ml-slider.php:1261
|
272 |
-
msgid "Show the slide navigation bullets"
|
273 |
-
msgstr ""
|
274 |
-
|
275 |
-
#: ../ml-slider.php:1263
|
276 |
-
msgid "Hidden"
|
277 |
-
msgstr ""
|
278 |
-
|
279 |
-
#: ../ml-slider.php:1264
|
280 |
-
msgid "Dots"
|
281 |
-
msgstr ""
|
282 |
-
|
283 |
-
#: ../ml-slider.php:1275
|
284 |
-
msgid "Title"
|
285 |
-
msgstr ""
|
286 |
-
|
287 |
-
#: ../ml-slider.php:1276
|
288 |
-
msgid "Slideshow title"
|
289 |
-
msgstr ""
|
290 |
-
|
291 |
-
#: ../ml-slider.php:1290
|
292 |
-
msgid "Advanced Settings"
|
293 |
-
msgstr ""
|
294 |
-
|
295 |
-
#: ../ml-slider.php:1299
|
296 |
-
msgid "Stretch"
|
297 |
-
msgstr ""
|
298 |
-
|
299 |
-
#: ../ml-slider.php:1301
|
300 |
-
msgid "100% wide output"
|
301 |
-
msgstr ""
|
302 |
-
|
303 |
-
#: ../ml-slider.php:1303
|
304 |
-
msgid "Stretch the slideshow output to fill it's parent container"
|
305 |
-
msgstr ""
|
306 |
-
|
307 |
-
#: ../ml-slider.php:1308
|
308 |
-
msgid "Center align"
|
309 |
-
msgstr ""
|
310 |
-
|
311 |
-
#: ../ml-slider.php:1311
|
312 |
-
msgid "Center align the slideshow"
|
313 |
-
msgstr ""
|
314 |
-
|
315 |
-
#: ../ml-slider.php:1316
|
316 |
-
msgid "Auto play"
|
317 |
-
msgstr ""
|
318 |
-
|
319 |
-
#: ../ml-slider.php:1319
|
320 |
-
msgid "Transition between slides automatically"
|
321 |
-
msgstr ""
|
322 |
-
|
323 |
-
#: ../ml-slider.php:1324
|
324 |
-
msgid "Image Crop"
|
325 |
-
msgstr ""
|
326 |
-
|
327 |
-
#: ../ml-slider.php:1328
|
328 |
-
msgid "Smart Crop"
|
329 |
-
msgstr ""
|
330 |
-
|
331 |
-
#: ../ml-slider.php:1329
|
332 |
-
msgid "Standard"
|
333 |
-
msgstr ""
|
334 |
-
|
335 |
-
#: ../ml-slider.php:1330
|
336 |
-
msgid "Disabled"
|
337 |
-
msgstr ""
|
338 |
-
|
339 |
-
#: ../ml-slider.php:1331
|
340 |
-
msgid "Disabled (Smart Pad)"
|
341 |
-
msgstr ""
|
342 |
-
|
343 |
-
#: ../ml-slider.php:1333
|
344 |
-
msgid ""
|
345 |
-
"Smart Crop ensures your responsive slides are cropped to a ratio that "
|
346 |
-
"results in a consistent slideshow size"
|
347 |
-
msgstr ""
|
348 |
-
|
349 |
-
#: ../ml-slider.php:1338
|
350 |
-
msgid "Carousel mode"
|
351 |
-
msgstr ""
|
352 |
-
|
353 |
-
#: ../ml-slider.php:1341
|
354 |
-
msgid "Display multiple slides at once. Slideshow output will be 100% wide."
|
355 |
-
msgstr ""
|
356 |
-
|
357 |
-
#: ../ml-slider.php:1349
|
358 |
-
msgid "Carousel margin"
|
359 |
-
msgstr ""
|
360 |
-
|
361 |
-
#: ../ml-slider.php:1352
|
362 |
-
msgid "Pixel margin between slides in carousel."
|
363 |
-
msgstr ""
|
364 |
-
|
365 |
-
#: ../ml-slider.php:1361
|
366 |
-
msgid "Randomise the order of the slides"
|
367 |
-
msgstr ""
|
368 |
-
|
369 |
-
#: ../ml-slider.php:1366
|
370 |
-
msgid "Hover pause"
|
371 |
-
msgstr ""
|
372 |
-
|
373 |
-
#: ../ml-slider.php:1369
|
374 |
-
msgid ""
|
375 |
-
"Pause the slideshow when hovering over slider, then resume when no longer "
|
376 |
-
"hovering."
|
377 |
-
msgstr ""
|
378 |
-
|
379 |
-
#: ../ml-slider.php:1374
|
380 |
-
msgid "Reverse"
|
381 |
-
msgstr ""
|
382 |
-
|
383 |
-
#: ../ml-slider.php:1377
|
384 |
-
msgid "Reverse the animation direction"
|
385 |
-
msgstr ""
|
386 |
-
|
387 |
-
#: ../ml-slider.php:1387
|
388 |
-
msgid "Slide delay"
|
389 |
-
msgstr ""
|
390 |
-
|
391 |
-
#: ../ml-slider.php:1389
|
392 |
-
msgid "How long to display each slide, in milliseconds"
|
393 |
-
msgstr ""
|
394 |
-
|
395 |
-
#: ../ml-slider.php:1390 ../ml-slider.php:1403 ../ml-slider.php:1416
|
396 |
-
#: ../ml-slider.php:1492 ../ml-slider.php:1518
|
397 |
-
msgid "ms"
|
398 |
-
msgstr ""
|
399 |
-
|
400 |
-
#: ../ml-slider.php:1400
|
401 |
-
msgid "Animation speed"
|
402 |
-
msgstr ""
|
403 |
-
|
404 |
-
#: ../ml-slider.php:1402
|
405 |
-
msgid "Set the speed of animations, in milliseconds"
|
406 |
-
msgstr ""
|
407 |
-
|
408 |
-
#: ../ml-slider.php:1413 ../ml-slider.php:1415
|
409 |
-
msgid "Number of slices"
|
410 |
-
msgstr ""
|
411 |
-
|
412 |
-
#: ../ml-slider.php:1426 ../ml-slider.php:1428 ../ml-slider.php:1439
|
413 |
-
#: ../ml-slider.php:1441
|
414 |
-
msgid "Number of squares"
|
415 |
-
msgstr ""
|
416 |
-
|
417 |
-
#: ../ml-slider.php:1447
|
418 |
-
msgid "Slide direction"
|
419 |
-
msgstr ""
|
420 |
-
|
421 |
-
#: ../ml-slider.php:1449
|
422 |
-
msgid "Select the sliding direction"
|
423 |
-
msgstr ""
|
424 |
-
|
425 |
-
#: ../ml-slider.php:1452
|
426 |
-
msgid "Horizontal"
|
427 |
-
msgstr ""
|
428 |
-
|
429 |
-
#: ../ml-slider.php:1453
|
430 |
-
msgid "Vertical"
|
431 |
-
msgstr ""
|
432 |
-
|
433 |
-
#: ../ml-slider.php:1459
|
434 |
-
msgid "Easing"
|
435 |
-
msgstr ""
|
436 |
-
|
437 |
-
#: ../ml-slider.php:1461
|
438 |
-
msgid "Animation easing effect"
|
439 |
-
msgstr ""
|
440 |
-
|
441 |
-
#: ../ml-slider.php:1468
|
442 |
-
msgid "Previous text"
|
443 |
-
msgstr ""
|
444 |
-
|
445 |
-
#: ../ml-slider.php:1470
|
446 |
-
msgid "Set the text for the 'previous' direction item"
|
447 |
-
msgstr ""
|
448 |
-
|
449 |
-
#: ../ml-slider.php:1476
|
450 |
-
msgid "Next text"
|
451 |
-
msgstr ""
|
452 |
-
|
453 |
-
#: ../ml-slider.php:1478
|
454 |
-
msgid "Set the text for the 'next' direction item"
|
455 |
-
msgstr ""
|
456 |
-
|
457 |
-
#: ../ml-slider.php:1489
|
458 |
-
msgid "Square delay"
|
459 |
-
msgstr ""
|
460 |
-
|
461 |
-
#: ../ml-slider.php:1491
|
462 |
-
msgid "Delay between squares in ms"
|
463 |
-
msgstr ""
|
464 |
-
|
465 |
-
#: ../ml-slider.php:1502
|
466 |
-
msgid "Opacity"
|
467 |
-
msgstr ""
|
468 |
-
|
469 |
-
#: ../ml-slider.php:1504
|
470 |
-
msgid "Opacity of title and navigation"
|
471 |
-
msgstr ""
|
472 |
-
|
473 |
-
#: ../ml-slider.php:1515
|
474 |
-
msgid "Caption speed"
|
475 |
-
msgstr ""
|
476 |
-
|
477 |
-
#: ../ml-slider.php:1517
|
478 |
-
msgid "Set the fade in speed of the caption"
|
479 |
-
msgstr ""
|
480 |
-
|
481 |
-
#: ../ml-slider.php:1524
|
482 |
-
msgid "Developer options"
|
483 |
-
msgstr ""
|
484 |
-
|
485 |
-
#: ../ml-slider.php:1529
|
486 |
-
msgid "CSS classes"
|
487 |
-
msgstr ""
|
488 |
-
|
489 |
-
#: ../ml-slider.php:1531
|
490 |
-
msgid ""
|
491 |
-
"Specify any custom CSS Classes you would like to be added to the slider "
|
492 |
-
"wrapper"
|
493 |
-
msgstr ""
|
494 |
-
|
495 |
-
#: ../ml-slider.php:1537
|
496 |
-
msgid "Print CSS"
|
497 |
-
msgstr ""
|
498 |
-
|
499 |
-
#: ../ml-slider.php:1540
|
500 |
-
msgid "Uncheck this is you would like to include your own CSS"
|
501 |
-
msgstr ""
|
502 |
-
|
503 |
-
#: ../ml-slider.php:1545
|
504 |
-
msgid "Print JS"
|
505 |
-
msgstr ""
|
506 |
-
|
507 |
-
#: ../ml-slider.php:1548
|
508 |
-
msgid "Uncheck this is you would like to include your own Javascript"
|
509 |
-
msgstr ""
|
510 |
-
|
511 |
-
#: ../ml-slider.php:1553
|
512 |
-
msgid "No conflict mode"
|
513 |
-
msgstr ""
|
514 |
-
|
515 |
-
#: ../ml-slider.php:1556
|
516 |
-
msgid "Delay adding the flexslider class to the slideshow"
|
517 |
-
msgstr ""
|
518 |
-
|
519 |
-
#: ../ml-slider.php:1570
|
520 |
-
msgid "Usage"
|
521 |
-
msgstr ""
|
522 |
-
|
523 |
-
#: ../ml-slider.php:1573
|
524 |
-
msgid "Shortcode"
|
525 |
-
msgstr ""
|
526 |
-
|
527 |
-
#: ../ml-slider.php:1574
|
528 |
-
msgid "Template Include"
|
529 |
-
msgstr ""
|
530 |
-
|
531 |
-
#: ../ml-slider.php:1578
|
532 |
-
msgid "Copy & paste the shortcode directly into any WordPress post or page."
|
533 |
-
msgstr ""
|
534 |
-
|
535 |
-
#: ../ml-slider.php:1581
|
536 |
-
msgid ""
|
537 |
-
"Copy & paste this code into a template file to include the slideshow within "
|
538 |
-
"your theme."
|
539 |
-
msgstr ""
|
540 |
-
|
541 |
-
#: ../ml-slider.php:1615
|
542 |
-
msgid "Delete Slider"
|
543 |
-
msgstr ""
|
544 |
-
|
545 |
-
#: ../ml-slider.php:1635
|
546 |
-
msgid "Select slideshow to insert into post"
|
547 |
-
msgstr ""
|
548 |
-
|
549 |
-
#: ../ml-slider.php:1638
|
550 |
-
msgid "Add slider"
|
551 |
-
msgstr ""
|
552 |
-
|
553 |
-
#: ../ml-slider.php:1672
|
554 |
-
msgid "Insert Meta Slider"
|
555 |
-
msgstr ""
|
556 |
-
|
557 |
-
#: ../ml-slider.php:1674
|
558 |
-
msgid "Choose slideshow"
|
559 |
-
msgstr ""
|
560 |
-
|
561 |
-
#: ../ml-slider.php:1679
|
562 |
-
msgid "Insert slideshow"
|
563 |
-
msgstr ""
|
564 |
-
|
565 |
-
#: ../ml-slider.php:1681 ../inc/metaslider.widget.class.php:121
|
566 |
-
msgid "No slideshows found"
|
567 |
-
msgstr ""
|
568 |
-
|
569 |
-
#: ../ml-slider.php:1698
|
570 |
-
msgid "Go Pro"
|
571 |
-
msgstr ""
|
572 |
-
|
573 |
-
#: ../ml-slider.php:1717
|
574 |
-
msgid "Upgrade to Pro $39"
|
575 |
-
msgstr ""
|
576 |
-
|
577 |
-
#: ../inc/metaslider.widget.class.php:18
|
578 |
-
msgid "Meta Slider"
|
579 |
-
msgstr ""
|
580 |
-
|
581 |
-
#: ../inc/metaslider.widget.class.php:108
|
582 |
-
msgid "Title:"
|
583 |
-
msgstr ""
|
584 |
-
|
585 |
-
#: ../inc/metaslider.widget.class.php:111
|
586 |
-
msgid "Select Slider:"
|
587 |
-
msgstr ""
|
588 |
-
|
589 |
-
#: ../inc/slide/metaslide.class.php:71
|
590 |
-
#: ../inc/slide/metaslide.image.class.php:27
|
591 |
-
msgid "Security check failed. Refresh page and try again."
|
592 |
-
msgstr ""
|
593 |
-
|
594 |
-
#: ../inc/slide/metaslide.class.php:116
|
595 |
-
msgid "File copy failed. Please check upload directory permissions."
|
596 |
-
msgstr ""
|
597 |
-
|
598 |
-
#: ../inc/slide/metaslide.class.php:275
|
599 |
-
msgid "Delete slide"
|
600 |
-
msgstr ""
|
601 |
-
|
602 |
-
#: ../inc/slide/metaslide.image.class.php:43
|
603 |
-
msgid "Failed to add slide. Slide already exists in slideshow."
|
604 |
-
msgstr ""
|
605 |
-
|
606 |
-
#: ../inc/slide/metaslide.image.class.php:47
|
607 |
-
msgid "Failed to add slide. Slide is not of type 'image'."
|
608 |
-
msgstr ""
|
609 |
-
|
610 |
-
#: ../inc/slide/metaslide.image.class.php:111
|
611 |
-
msgid "Image Slide"
|
612 |
-
msgstr ""
|
613 |
-
|
614 |
-
#: ../inc/slide/metaslide.image.class.php:153
|
615 |
-
msgid "Warning: Image data does not exist. Please re-upload the image."
|
616 |
-
msgstr ""
|
617 |
-
|
618 |
-
#: ../inc/slide/metaslide.image.class.php:158
|
619 |
-
msgid "Image Title Text"
|
620 |
-
msgstr ""
|
621 |
-
|
622 |
-
#: ../inc/slide/metaslide.image.class.php:160
|
623 |
-
msgid "Image Alt Text"
|
624 |
-
msgstr ""
|
625 |
-
|
626 |
-
#: ../inc/slide/metaslide.image.class.php:165
|
627 |
-
msgid "General"
|
628 |
-
msgstr ""
|
629 |
-
|
630 |
-
#: ../inc/slide/metaslide.image.class.php:169
|
631 |
-
msgid "SEO"
|
632 |
-
msgstr ""
|
633 |
-
|
634 |
-
#: ../inc/slide/metaslide.image.class.php:182
|
635 |
-
msgid "Crop Position"
|
636 |
-
msgstr ""
|
637 |
-
|
638 |
-
#: ../inc/slide/metaslide.image.class.php:185
|
639 |
-
msgid "Top Left"
|
640 |
-
msgstr ""
|
641 |
-
|
642 |
-
#: ../inc/slide/metaslide.image.class.php:186
|
643 |
-
msgid "Top Center"
|
644 |
-
msgstr ""
|
645 |
-
|
646 |
-
#: ../inc/slide/metaslide.image.class.php:187
|
647 |
-
msgid "Top Right"
|
648 |
-
msgstr ""
|
649 |
-
|
650 |
-
#: ../inc/slide/metaslide.image.class.php:188
|
651 |
-
msgid "Center Left"
|
652 |
-
msgstr ""
|
653 |
-
|
654 |
-
#: ../inc/slide/metaslide.image.class.php:189
|
655 |
-
msgid "Center Center"
|
656 |
-
msgstr ""
|
657 |
-
|
658 |
-
#: ../inc/slide/metaslide.image.class.php:190
|
659 |
-
msgid "Center Right"
|
660 |
-
msgstr ""
|
661 |
-
|
662 |
-
#: ../inc/slide/metaslide.image.class.php:191
|
663 |
-
msgid "Bottom Left"
|
664 |
-
msgstr ""
|
665 |
-
|
666 |
-
#: ../inc/slide/metaslide.image.class.php:192
|
667 |
-
msgid "Bottom Center"
|
668 |
-
msgstr ""
|
669 |
-
|
670 |
-
#: ../inc/slide/metaslide.image.class.php:193
|
671 |
-
msgid "Bottom Right"
|
672 |
-
msgstr ""
|
673 |
-
|
674 |
-
#: ../inc/slide/metaslide.image.class.php:198
|
675 |
-
msgid "Crop"
|
676 |
-
msgstr ""
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
languages/ml-slider.pot
ADDED
@@ -0,0 +1,1226 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# Copyright (C) 2017 ml-slider
|
2 |
+
# This file is distributed under the same license as the ml-slider package.
|
3 |
+
msgid ""
|
4 |
+
msgstr ""
|
5 |
+
"Project-Id-Version: ml-slider\n"
|
6 |
+
"Report-Msgid-Bugs-To: http://example.com\n"
|
7 |
+
"MIME-Version: 1.0\n"
|
8 |
+
"Content-Type: text/plain; charset=UTF-8\n"
|
9 |
+
"Content-Transfer-Encoding: 8bit\n"
|
10 |
+
"PO-Revision-Date: 2017-MO-DA HO:MI+ZONE\n"
|
11 |
+
"Last-Translator: John Doe <mail@example.com>\n"
|
12 |
+
"Language-Team: Team Updraft <mail@example.com>\n"
|
13 |
+
"X-Poedit-Basepath: ..\n"
|
14 |
+
"X-Poedit-SourceCharset: UTF-8\n"
|
15 |
+
"X-Poedit-KeywordsList: __;_e;_n:1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;esc_attr__;esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c;_n_noop:1,2;_nx_noop:3c,1,2;__ngettext_noop:1,2\n"
|
16 |
+
"X-Poedit-SearchPath-0: .\n"
|
17 |
+
"X-Poedit-SearchPathExcluded-0: *.js\n"
|
18 |
+
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
19 |
+
|
20 |
+
#: src/admin/Notices.php:63
|
21 |
+
msgid "Always backup WordPress to avoid losing your site!"
|
22 |
+
msgstr ""
|
23 |
+
|
24 |
+
#: src/admin/Notices.php:64
|
25 |
+
msgid "UpdraftPlus is the world's #1 backup plugin from the makers of MetaSlider. Backup to the cloud, on a schedule and restore with 1 click!"
|
26 |
+
msgstr ""
|
27 |
+
|
28 |
+
#: src/admin/Notices.php:74
|
29 |
+
msgid "Keyy: Instant and secure logon with a wave of your phone"
|
30 |
+
msgstr ""
|
31 |
+
|
32 |
+
#: src/admin/Notices.php:75
|
33 |
+
msgid "No more forgotten passwords. Find out more about our revolutionary new WordPress plugin"
|
34 |
+
msgstr ""
|
35 |
+
|
36 |
+
#: src/admin/Notices.php:85
|
37 |
+
msgid "Save Time and Money. Manage multiple WordPress sites from one location."
|
38 |
+
msgstr ""
|
39 |
+
|
40 |
+
#: src/admin/Notices.php:86
|
41 |
+
msgid "UpdraftCentral is a highly efficient way to take backup, update and manage multiple WP sites from one location"
|
42 |
+
msgstr ""
|
43 |
+
|
44 |
+
#: src/admin/Notices.php:96
|
45 |
+
msgid "Like MetaSlider and have a minute to spare?"
|
46 |
+
msgstr ""
|
47 |
+
|
48 |
+
#: src/admin/Notices.php:97
|
49 |
+
msgid "Please help MetaSlider by giving a positive review at wordpress.org."
|
50 |
+
msgstr ""
|
51 |
+
|
52 |
+
#: src/admin/Notices.php:106
|
53 |
+
msgid "Help us to get even better MetaSlider"
|
54 |
+
msgstr ""
|
55 |
+
|
56 |
+
#: src/admin/Notices.php:107
|
57 |
+
msgid "Let us know how you use MetaSlider by answering 4 simple questions. We will make MetaSlider to suit you better."
|
58 |
+
msgstr ""
|
59 |
+
|
60 |
+
#: src/admin/Notices.php:116
|
61 |
+
msgid "Spice up your site with animated layers and video slides"
|
62 |
+
msgstr ""
|
63 |
+
|
64 |
+
#: src/admin/Notices.php:117
|
65 |
+
msgid "With the MetaSlider Add-on pack you can give your slideshows a professional look!"
|
66 |
+
msgstr ""
|
67 |
+
|
68 |
+
#: src/admin/Notices.php:126
|
69 |
+
msgid "Increase your revenue and conversion with video slides and many more features"
|
70 |
+
msgstr ""
|
71 |
+
|
72 |
+
#: src/admin/Notices.php:127
|
73 |
+
msgid "Upgrade today to benefit from many more premium features. Find out more."
|
74 |
+
msgstr ""
|
75 |
+
|
76 |
+
#: src/admin/Notices.php:136
|
77 |
+
msgid "Can you translate? Want to improve MetaSlider for speakers of your language?"
|
78 |
+
msgstr ""
|
79 |
+
|
80 |
+
#: src/admin/Notices.php:137
|
81 |
+
msgid "Please go here for instructions - it is easy."
|
82 |
+
msgstr ""
|
83 |
+
|
84 |
+
#: src/admin/Notices.php:147
|
85 |
+
msgid "Thank you for installing MetaSlider"
|
86 |
+
msgstr ""
|
87 |
+
|
88 |
+
#: src/admin/Notices.php:148
|
89 |
+
msgid "Supercharge & secure your WordPress site with our other top plugins:"
|
90 |
+
msgstr ""
|
91 |
+
|
92 |
+
#: src/admin/Notices.php:165
|
93 |
+
msgid "We’re making changes and need your help."
|
94 |
+
msgstr ""
|
95 |
+
|
96 |
+
#: src/admin/Notices.php:166
|
97 |
+
msgid "If you could spare a minute, we would like to ask you 4 easy questions about how you use MetaSlider. Your voice is important to us!"
|
98 |
+
msgstr ""
|
99 |
+
|
100 |
+
#: src/admin/Notices.php:171
|
101 |
+
msgid "forever"
|
102 |
+
msgstr ""
|
103 |
+
|
104 |
+
#: src/admin/Notices.php:186
|
105 |
+
msgid "Black Friday - 50% off the MetaSlider Add-on Pack until November 30th"
|
106 |
+
msgstr ""
|
107 |
+
|
108 |
+
#: src/admin/Notices.php:187, src/admin/Notices.php:200, src/admin/Notices.php:213, src/admin/Notices.php:226, src/admin/Notices.php:239
|
109 |
+
msgid "To benefit, use this discount code:"
|
110 |
+
msgstr ""
|
111 |
+
|
112 |
+
#: src/admin/Notices.php:195, src/admin/Notices.php:208, src/admin/Notices.php:221, src/admin/Notices.php:234, src/admin/Notices.php:247
|
113 |
+
msgid "until next year"
|
114 |
+
msgstr ""
|
115 |
+
|
116 |
+
#: src/admin/Notices.php:199
|
117 |
+
msgid "Christmas sale - 50% off the MetaSlider Add-on Pack until December 25th"
|
118 |
+
msgstr ""
|
119 |
+
|
120 |
+
#: src/admin/Notices.php:212
|
121 |
+
msgid "Happy New Year - 50% off the MetaSlider Add-on Pack until January 1st"
|
122 |
+
msgstr ""
|
123 |
+
|
124 |
+
#: src/admin/Notices.php:225
|
125 |
+
msgid "Spring sale - 50% off the MetaSlider Add-on Pack until April 31st"
|
126 |
+
msgstr ""
|
127 |
+
|
128 |
+
#: src/admin/Notices.php:238
|
129 |
+
msgid "Summer sale - 50% off the MetaSlider Add-on Pack until July 31st"
|
130 |
+
msgstr ""
|
131 |
+
|
132 |
+
#: src/admin/Notices.php:261
|
133 |
+
msgid "Increase your conversion rate with video slides and many more options."
|
134 |
+
msgstr ""
|
135 |
+
|
136 |
+
#: src/admin/Notices.php:268
|
137 |
+
msgid "offers unparalleled choice and flexibility, allowing you to select one or a combination of over a dozen optimization options."
|
138 |
+
msgstr ""
|
139 |
+
|
140 |
+
#: src/admin/Notices.php:275
|
141 |
+
msgid "provides personal support, the ability to copy sites, more storage destinations, encrypted backups for security, multiple backup destinations, better reporting, no adverts and plenty more."
|
142 |
+
msgstr ""
|
143 |
+
|
144 |
+
#: src/admin/Notices.php:282
|
145 |
+
msgid "simplifies backups and restoration. It is the world's highest ranking and most popular scheduled backup plugin, with over a million currently-active installs."
|
146 |
+
msgstr ""
|
147 |
+
|
148 |
+
#: src/admin/Notices.php:289
|
149 |
+
msgid "auto-clean your WordPress database so that it runs at maximum efficiency."
|
150 |
+
msgstr ""
|
151 |
+
|
152 |
+
#: src/admin/Notices.php:296
|
153 |
+
msgid "Simple & secure login with a wave of your phone."
|
154 |
+
msgstr ""
|
155 |
+
|
156 |
+
#: src/admin/Notices.php:303
|
157 |
+
msgid "is a highly efficient way to manage, update and backup multiple websites from one place."
|
158 |
+
msgstr ""
|
159 |
+
|
160 |
+
#: src/admin/Notices.php:508
|
161 |
+
msgid "weeks"
|
162 |
+
msgstr ""
|
163 |
+
|
164 |
+
#: src/admin/Notices.php:523
|
165 |
+
msgid "Get UpdraftPlus"
|
166 |
+
msgstr ""
|
167 |
+
|
168 |
+
#: src/admin/Notices.php:524
|
169 |
+
msgid "Get Keyy"
|
170 |
+
msgstr ""
|
171 |
+
|
172 |
+
#: src/admin/Notices.php:525
|
173 |
+
msgid "Optimize today"
|
174 |
+
msgstr ""
|
175 |
+
|
176 |
+
#: src/admin/Notices.php:526
|
177 |
+
msgid "Get UpdraftCentral"
|
178 |
+
msgstr ""
|
179 |
+
|
180 |
+
#: src/admin/Notices.php:527
|
181 |
+
msgid "Let's Start"
|
182 |
+
msgstr ""
|
183 |
+
|
184 |
+
#: src/admin/Notices.php:528
|
185 |
+
msgid "Review MetaSlider"
|
186 |
+
msgstr ""
|
187 |
+
|
188 |
+
#: src/admin/Notices.php:529
|
189 |
+
msgid "Find out more"
|
190 |
+
msgstr ""
|
191 |
+
|
192 |
+
#: src/admin/Notices.php:530
|
193 |
+
msgid "Sign up"
|
194 |
+
msgstr ""
|
195 |
+
|
196 |
+
#: src/admin/Notices.php:531
|
197 |
+
msgid "Go there"
|
198 |
+
msgstr ""
|
199 |
+
|
200 |
+
#: src/admin/Notices.php:533
|
201 |
+
msgid "Read more"
|
202 |
+
msgstr ""
|
203 |
+
|
204 |
+
#: src/admin/Notices.php:546, src/admin/Tour.php:119, src/inc/slide/metaslide.class.php:113, src/inc/slide/metaslide.image.class.php:107, src/ml-slider.php:1229, src/ml-slider.php:1321
|
205 |
+
msgid "The security check failed. Please refresh the page and try again."
|
206 |
+
msgstr ""
|
207 |
+
|
208 |
+
#: src/admin/Notices.php:552
|
209 |
+
msgid "This item does not exist. Please refresh the page and try again."
|
210 |
+
msgstr ""
|
211 |
+
|
212 |
+
#: src/admin/Notices.php:565
|
213 |
+
msgid "The option was successfully updated"
|
214 |
+
msgstr ""
|
215 |
+
|
216 |
+
#: src/admin/Notices.php:618
|
217 |
+
msgid "The requested data does not exist."
|
218 |
+
msgstr ""
|
219 |
+
|
220 |
+
#: src/admin/Notices.php:636
|
221 |
+
msgid "The attempt to update the option failed."
|
222 |
+
msgstr ""
|
223 |
+
|
224 |
+
#: src/admin/Pages.php:71, src/inc/slide/metaslide.image.class.php:229
|
225 |
+
msgid "URL"
|
226 |
+
msgstr ""
|
227 |
+
|
228 |
+
#: src/admin/Pages.php:72, src/inc/slide/metaslide.image.class.php:228
|
229 |
+
msgid "Caption"
|
230 |
+
msgstr ""
|
231 |
+
|
232 |
+
#: src/admin/Pages.php:73, src/inc/slide/metaslide.image.class.php:231
|
233 |
+
msgid "New Window"
|
234 |
+
msgstr ""
|
235 |
+
|
236 |
+
#: src/admin/Pages.php:74
|
237 |
+
msgid "Are you sure?"
|
238 |
+
msgstr ""
|
239 |
+
|
240 |
+
#: src/admin/Pages.php:75
|
241 |
+
msgid "Undo"
|
242 |
+
msgstr ""
|
243 |
+
|
244 |
+
#: src/admin/Pages.php:76
|
245 |
+
msgid "Slide restored"
|
246 |
+
msgstr ""
|
247 |
+
|
248 |
+
#: src/admin/Pages.php:77
|
249 |
+
msgid "Slide deleted"
|
250 |
+
msgstr ""
|
251 |
+
|
252 |
+
#: src/admin/Pages.php:78
|
253 |
+
msgid "Press to undo"
|
254 |
+
msgstr ""
|
255 |
+
|
256 |
+
#: src/admin/Pages.php:80
|
257 |
+
msgid "Select replacement image"
|
258 |
+
msgstr ""
|
259 |
+
|
260 |
+
#: src/admin/Pages.php:88
|
261 |
+
msgid "Caution: This setting is for advanced developers only. If you're unsure, leave it checked."
|
262 |
+
msgstr ""
|
263 |
+
|
264 |
+
#: src/admin/Tour.php:38
|
265 |
+
msgid "Welcome"
|
266 |
+
msgstr ""
|
267 |
+
|
268 |
+
#: src/admin/Tour.php:39
|
269 |
+
msgid "Thanks for using the MetaSlider WordPress plugin. It looks like you don’t have any slideshows yet! To get started, click above to add your first one."
|
270 |
+
msgstr ""
|
271 |
+
|
272 |
+
#: src/admin/Tour.php:45, src/ml-slider.php:2019
|
273 |
+
msgid "Learn More"
|
274 |
+
msgstr ""
|
275 |
+
|
276 |
+
#: src/admin/Tour.php:46, src/inc/slider/metaslider.class.php:109
|
277 |
+
msgid "Next"
|
278 |
+
msgstr ""
|
279 |
+
|
280 |
+
#: src/admin/Tour.php:47
|
281 |
+
msgid "Skip this step"
|
282 |
+
msgstr ""
|
283 |
+
|
284 |
+
#: src/admin/Tour.php:51
|
285 |
+
msgid "Add A Slide"
|
286 |
+
msgstr ""
|
287 |
+
|
288 |
+
#: src/admin/Tour.php:52
|
289 |
+
msgid "Congratulations! Now that you've created a slideshow, click here to add a slide."
|
290 |
+
msgstr ""
|
291 |
+
|
292 |
+
#: src/admin/Tour.php:55
|
293 |
+
msgid "Select Slide Type"
|
294 |
+
msgstr ""
|
295 |
+
|
296 |
+
#: src/admin/Tour.php:56
|
297 |
+
msgid "Premium users that have the Add-on Pack activated can access additional slide types!"
|
298 |
+
msgstr ""
|
299 |
+
|
300 |
+
#: src/admin/Tour.php:59
|
301 |
+
msgid "Select Media"
|
302 |
+
msgstr ""
|
303 |
+
|
304 |
+
#: src/admin/Tour.php:60
|
305 |
+
msgid "After you have selected your media from the left, click below to continue."
|
306 |
+
msgstr ""
|
307 |
+
|
308 |
+
#: src/admin/Tour.php:63, src/ml-slider.php:2675
|
309 |
+
msgid "Preview Slideshow"
|
310 |
+
msgstr ""
|
311 |
+
|
312 |
+
#: src/admin/Tour.php:64
|
313 |
+
msgid "Now that you have some slides set, you can preview your slideshow by clicking here."
|
314 |
+
msgstr ""
|
315 |
+
|
316 |
+
#: src/admin/Tour.php:67
|
317 |
+
msgid "Adjust Settings"
|
318 |
+
msgstr ""
|
319 |
+
|
320 |
+
#: src/admin/Tour.php:68
|
321 |
+
msgid "If you need to adjust the settings for this slideshow, you may do so here."
|
322 |
+
msgstr ""
|
323 |
+
|
324 |
+
#: src/admin/Tour.php:71
|
325 |
+
msgid "Shortcode Usage"
|
326 |
+
msgstr ""
|
327 |
+
|
328 |
+
#: src/admin/Tour.php:72
|
329 |
+
msgid "You are all set! If you want to add the slideshow to a post, you may use this shortcode."
|
330 |
+
msgstr ""
|
331 |
+
|
332 |
+
#: src/admin/Tour.php:76
|
333 |
+
msgid "Congratulations!"
|
334 |
+
msgstr ""
|
335 |
+
|
336 |
+
#: src/admin/Tour.php:77
|
337 |
+
msgid "You've completed the tour and are ready to add great slideshows to your website. Don't forget, if you want your slideshows to really stand out, pick up the add-on pack today. "
|
338 |
+
msgstr ""
|
339 |
+
|
340 |
+
#: src/admin/Tour.php:126
|
341 |
+
msgid "This method does not exist. Please refresh the page and try again."
|
342 |
+
msgstr ""
|
343 |
+
|
344 |
+
#: src/admin/views/notices/dashboard-notice.php:9, src/admin/views/notices/header-notice.php:11
|
345 |
+
msgid "Hide this ad (%s)"
|
346 |
+
msgstr ""
|
347 |
+
|
348 |
+
#: src/admin/views/notices/header-notice.php:6
|
349 |
+
msgid "Logo"
|
350 |
+
msgstr ""
|
351 |
+
|
352 |
+
#: src/admin/views/pages/upgrade.php:14
|
353 |
+
msgid "Comparison Chart"
|
354 |
+
msgstr ""
|
355 |
+
|
356 |
+
#: src/admin/views/pages/upgrade.php:19, src/admin/views/pages/upgrade.php:20
|
357 |
+
msgid "logo"
|
358 |
+
msgstr ""
|
359 |
+
|
360 |
+
#: src/admin/views/pages/upgrade.php:19
|
361 |
+
msgid "free"
|
362 |
+
msgstr ""
|
363 |
+
|
364 |
+
#: src/admin/views/pages/upgrade.php:20, src/ml-slider.php:619, src/ml-slider.php:3801
|
365 |
+
msgid "Add-ons"
|
366 |
+
msgstr ""
|
367 |
+
|
368 |
+
#: src/admin/views/pages/upgrade.php:20
|
369 |
+
msgid "pro"
|
370 |
+
msgstr ""
|
371 |
+
|
372 |
+
#: src/admin/views/pages/upgrade.php:26, src/admin/views/pages/upgrade.php:103
|
373 |
+
msgid "Installed"
|
374 |
+
msgstr ""
|
375 |
+
|
376 |
+
#: src/admin/views/pages/upgrade.php:27, src/admin/views/pages/upgrade.php:104
|
377 |
+
msgid "Upgrade now"
|
378 |
+
msgstr ""
|
379 |
+
|
380 |
+
#: src/admin/views/pages/upgrade.php:31
|
381 |
+
msgid "Create unlimited slideshows"
|
382 |
+
msgstr ""
|
383 |
+
|
384 |
+
#: src/admin/views/pages/upgrade.php:32
|
385 |
+
msgid "Create and manage as many slideshows as you need."
|
386 |
+
msgstr ""
|
387 |
+
|
388 |
+
#: src/admin/views/pages/upgrade.php:33, src/admin/views/pages/upgrade.php:34, src/admin/views/pages/upgrade.php:40, src/admin/views/pages/upgrade.php:41, src/admin/views/pages/upgrade.php:47, src/admin/views/pages/upgrade.php:48, src/admin/views/pages/upgrade.php:54, src/admin/views/pages/upgrade.php:55, src/admin/views/pages/upgrade.php:62, src/admin/views/pages/upgrade.php:69, src/admin/views/pages/upgrade.php:76, src/admin/views/pages/upgrade.php:83, src/admin/views/pages/upgrade.php:90, src/admin/views/pages/upgrade.php:97
|
389 |
+
msgid "Yes"
|
390 |
+
msgstr ""
|
391 |
+
|
392 |
+
#: src/admin/views/pages/upgrade.php:38
|
393 |
+
msgid "Multiple slideshow types"
|
394 |
+
msgstr ""
|
395 |
+
|
396 |
+
#: src/admin/views/pages/upgrade.php:39
|
397 |
+
msgid "Including %s, %s and we will soon be adding more."
|
398 |
+
msgstr ""
|
399 |
+
|
400 |
+
#: src/admin/views/pages/upgrade.php:45
|
401 |
+
msgid "Regular updates"
|
402 |
+
msgstr ""
|
403 |
+
|
404 |
+
#: src/admin/views/pages/upgrade.php:46
|
405 |
+
msgid "Our word to keep %s compatible with the latest versions of %s."
|
406 |
+
msgstr ""
|
407 |
+
|
408 |
+
#: src/admin/views/pages/upgrade.php:52
|
409 |
+
msgid "Intelligent image cropping"
|
410 |
+
msgstr ""
|
411 |
+
|
412 |
+
#: src/admin/views/pages/upgrade.php:53
|
413 |
+
msgid "Unique %s functionality ensures your slides are perfectly resized."
|
414 |
+
msgstr ""
|
415 |
+
|
416 |
+
#: src/admin/views/pages/upgrade.php:59
|
417 |
+
msgid "Thumbnail navigation"
|
418 |
+
msgstr ""
|
419 |
+
|
420 |
+
#: src/admin/views/pages/upgrade.php:60
|
421 |
+
msgid "Easily allow users to navigate your slideshows by thumbnails."
|
422 |
+
msgstr ""
|
423 |
+
|
424 |
+
#: src/admin/views/pages/upgrade.php:61, src/admin/views/pages/upgrade.php:68, src/admin/views/pages/upgrade.php:75, src/admin/views/pages/upgrade.php:82, src/admin/views/pages/upgrade.php:89, src/admin/views/pages/upgrade.php:96
|
425 |
+
msgid "No"
|
426 |
+
msgstr ""
|
427 |
+
|
428 |
+
#: src/admin/views/pages/upgrade.php:66
|
429 |
+
msgid "Add video slides"
|
430 |
+
msgstr ""
|
431 |
+
|
432 |
+
#: src/admin/views/pages/upgrade.php:67
|
433 |
+
msgid "Easily include responsive high definition %s and %s videos."
|
434 |
+
msgstr ""
|
435 |
+
|
436 |
+
#: src/admin/views/pages/upgrade.php:73
|
437 |
+
msgid "%s overlay slides"
|
438 |
+
msgstr ""
|
439 |
+
|
440 |
+
#: src/admin/views/pages/upgrade.php:74
|
441 |
+
msgid "Create completely customized %s slides using the inline editor."
|
442 |
+
msgstr ""
|
443 |
+
|
444 |
+
#: src/admin/views/pages/upgrade.php:80
|
445 |
+
msgid "Add slide layers"
|
446 |
+
msgstr ""
|
447 |
+
|
448 |
+
#: src/admin/views/pages/upgrade.php:81
|
449 |
+
msgid "Add layers to your slides with over 50 available transition effects."
|
450 |
+
msgstr ""
|
451 |
+
|
452 |
+
#: src/admin/views/pages/upgrade.php:87
|
453 |
+
msgid "Post feed slides"
|
454 |
+
msgstr ""
|
455 |
+
|
456 |
+
#: src/admin/views/pages/upgrade.php:88
|
457 |
+
msgid "Easily build slides based on your %s posts."
|
458 |
+
msgstr ""
|
459 |
+
|
460 |
+
#: src/admin/views/pages/upgrade.php:94
|
461 |
+
msgid "Premium support"
|
462 |
+
msgstr ""
|
463 |
+
|
464 |
+
#: src/admin/views/pages/upgrade.php:95
|
465 |
+
msgid "Have your specific queries addressed directly by our experts"
|
466 |
+
msgstr ""
|
467 |
+
|
468 |
+
#: src/admin/views/pages/upgrade.php:114
|
469 |
+
msgid "More Professional-Quality Plugins for your Website"
|
470 |
+
msgstr ""
|
471 |
+
|
472 |
+
#: src/admin/views/pages/upgrade.php:122
|
473 |
+
msgid "%s – the ultimate protection for your site, hard work and business"
|
474 |
+
msgstr ""
|
475 |
+
|
476 |
+
#: src/admin/views/pages/upgrade.php:124
|
477 |
+
msgid "If you’ve got a %s website, you need a backup."
|
478 |
+
msgstr ""
|
479 |
+
|
480 |
+
#: src/admin/views/pages/upgrade.php:125
|
481 |
+
msgid "Hacking, server crashes, dodgy updates or simple user error can ruin everything."
|
482 |
+
msgstr ""
|
483 |
+
|
484 |
+
#: src/admin/views/pages/upgrade.php:126
|
485 |
+
msgid "With %s, you can rest assured that if the worst does happen, it's no big deal. rather than losing everything, you can simply restore the backup and be up and running again in no time at all."
|
486 |
+
msgstr ""
|
487 |
+
|
488 |
+
#: src/admin/views/pages/upgrade.php:127
|
489 |
+
msgid "You can also migrate your website with few clicks without hassle."
|
490 |
+
msgstr ""
|
491 |
+
|
492 |
+
#: src/admin/views/pages/upgrade.php:128
|
493 |
+
msgid "With a long-standing reputation for excellence and outstanding reviews, it’s no wonder that %s is the world’s most popular %s backup plugin."
|
494 |
+
msgstr ""
|
495 |
+
|
496 |
+
#: src/admin/views/pages/upgrade.php:129, src/admin/views/pages/upgrade.php:141, src/admin/views/pages/upgrade.php:153, src/admin/views/pages/upgrade.php:165
|
497 |
+
msgid "Try for free"
|
498 |
+
msgstr ""
|
499 |
+
|
500 |
+
#: src/admin/views/pages/upgrade.php:136
|
501 |
+
msgid "%s Dashboard"
|
502 |
+
msgstr ""
|
503 |
+
|
504 |
+
#: src/admin/views/pages/upgrade.php:137
|
505 |
+
msgid "%s – save hours managing multiple WP sites from one place"
|
506 |
+
msgstr ""
|
507 |
+
|
508 |
+
#: src/admin/views/pages/upgrade.php:138
|
509 |
+
msgid "If you manage a few %s sites, you need UpdraftCentral."
|
510 |
+
msgstr ""
|
511 |
+
|
512 |
+
#: src/admin/views/pages/upgrade.php:139
|
513 |
+
msgid "%s is a powerful tool that allows you to efficiently manage, update, backup and even restore multiple websites from just one location. You can also manage users and comments on all the sites at once, and through its central login feature, you can access each WP-dashboard with a single click."
|
514 |
+
msgstr ""
|
515 |
+
|
516 |
+
#: src/admin/views/pages/upgrade.php:140
|
517 |
+
msgid "With a wide range of useful features, including automated backup schedules and sophisticated one click updates, UpdraftCentral is sure to boost to your productivity and save you time."
|
518 |
+
msgstr ""
|
519 |
+
|
520 |
+
#: src/admin/views/pages/upgrade.php:149
|
521 |
+
msgid "%s – faster, fitter, cleaner WP sites for optimal performance."
|
522 |
+
msgstr ""
|
523 |
+
|
524 |
+
#: src/admin/views/pages/upgrade.php:150
|
525 |
+
msgid "%s, the #1 optimization plugin, keeps your %s site at prime speed by cleaning the database without the need for %s."
|
526 |
+
msgstr ""
|
527 |
+
|
528 |
+
#: src/admin/views/pages/upgrade.php:151
|
529 |
+
msgid "Incredibly simple to use, %s clears out old webpage revisions, spam, trash and unapproved comments, all of which take up megabytes of valuable space and leave your database sluggish and ultimately unfit for purpose."
|
530 |
+
msgstr ""
|
531 |
+
|
532 |
+
#: src/admin/views/pages/upgrade.php:152
|
533 |
+
msgid "%s has a load of valuable features, including automated weekly clean up scheduling, the retention of a set number of weeks’ data, a display of how much space can be cleared, the enabling / disabling of trackbacks and comments for all published posts, and an ‘administrators only’ security feature."
|
534 |
+
msgstr ""
|
535 |
+
|
536 |
+
#: src/admin/views/pages/upgrade.php:160
|
537 |
+
msgid "%s Two-Factor Authentication"
|
538 |
+
msgstr ""
|
539 |
+
|
540 |
+
#: src/admin/views/pages/upgrade.php:161
|
541 |
+
msgid "%s – instant & secure logins with a wave of your phone"
|
542 |
+
msgstr ""
|
543 |
+
|
544 |
+
#: src/admin/views/pages/upgrade.php:162
|
545 |
+
msgid "%s is a unique 2-factor authentication plugin that allows you to log in to your website with just a wave of your smartphone. It represents the ultimate UX, doing away with the need for usernames, passwords and other 2FA tokens."
|
546 |
+
msgstr ""
|
547 |
+
|
548 |
+
#: src/admin/views/pages/upgrade.php:163
|
549 |
+
msgid "Using innovative RSA public-key cryptography, %s is highly secure and prevents password-based hacking risks such as brute-forcing, key-logging, shoulder-surfing and connection sniffing."
|
550 |
+
msgstr ""
|
551 |
+
|
552 |
+
#: src/admin/views/pages/upgrade.php:164
|
553 |
+
msgid "Logging in with %s is simple. Once users have installed the app onto their smartphone and secured it using a fingerprint or 4-number pin, they just open the app, point it at the moving on-screen barcode and voila!"
|
554 |
+
msgstr ""
|
555 |
+
|
556 |
+
#: src/inc/metaslider.widget.class.php:19
|
557 |
+
msgid "MetaSlider"
|
558 |
+
msgstr ""
|
559 |
+
|
560 |
+
#: src/inc/metaslider.widget.class.php:109
|
561 |
+
msgid "Title:"
|
562 |
+
msgstr ""
|
563 |
+
|
564 |
+
#: src/inc/metaslider.widget.class.php:112
|
565 |
+
msgid "Select Slider:"
|
566 |
+
msgstr ""
|
567 |
+
|
568 |
+
#: src/inc/metaslider.widget.class.php:122, src/ml-slider.php:3693
|
569 |
+
msgid "No slideshows found"
|
570 |
+
msgstr ""
|
571 |
+
|
572 |
+
#: src/inc/slide/metaslide.class.php:80
|
573 |
+
msgid "The requested image does not exist. Please try again."
|
574 |
+
msgstr ""
|
575 |
+
|
576 |
+
#: src/inc/slide/metaslide.class.php:87
|
577 |
+
msgid "The requested slide does not exist or something is wrong with the current image. Please try again or remove this slide."
|
578 |
+
msgstr ""
|
579 |
+
|
580 |
+
#: src/inc/slide/metaslide.class.php:96
|
581 |
+
msgid "The image was successfully updated."
|
582 |
+
msgstr ""
|
583 |
+
|
584 |
+
#: src/inc/slide/metaslide.class.php:101
|
585 |
+
msgid "There was an error updating the image. Please try again"
|
586 |
+
msgstr ""
|
587 |
+
|
588 |
+
#: src/inc/slide/metaslide.class.php:249
|
589 |
+
msgid "There was an error while updating the database. Please try again."
|
590 |
+
msgstr ""
|
591 |
+
|
592 |
+
#: src/inc/slide/metaslide.class.php:332
|
593 |
+
msgid "Delete Slide"
|
594 |
+
msgstr ""
|
595 |
+
|
596 |
+
#: src/inc/slide/metaslide.class.php:359, src/inc/slide/metaslide.class.php:359, src/inc/slide/metaslide.image.class.php:197, src/inc/slide/metaslide.image.class.php:197
|
597 |
+
msgid "Update slide image"
|
598 |
+
msgstr ""
|
599 |
+
|
600 |
+
#: src/inc/slide/metaslide.image.class.php:74
|
601 |
+
msgid "Failed to add slide. Slide is not an image."
|
602 |
+
msgstr ""
|
603 |
+
|
604 |
+
#: src/inc/slide/metaslide.image.class.php:76
|
605 |
+
msgid "This isn't an accepted image. Please try again."
|
606 |
+
msgstr ""
|
607 |
+
|
608 |
+
#: src/inc/slide/metaslide.image.class.php:178
|
609 |
+
msgid "Image Slide"
|
610 |
+
msgstr ""
|
611 |
+
|
612 |
+
#: src/inc/slide/metaslide.image.class.php:235
|
613 |
+
msgid "Warning: Image data does not exist. Please re-upload the image."
|
614 |
+
msgstr ""
|
615 |
+
|
616 |
+
#: src/inc/slide/metaslide.image.class.php:240
|
617 |
+
msgid "Image Title Text"
|
618 |
+
msgstr ""
|
619 |
+
|
620 |
+
#: src/inc/slide/metaslide.image.class.php:240
|
621 |
+
msgid "Image Alt Text"
|
622 |
+
msgstr ""
|
623 |
+
|
624 |
+
#: src/inc/slide/metaslide.image.class.php:244
|
625 |
+
msgid "General"
|
626 |
+
msgstr ""
|
627 |
+
|
628 |
+
#: src/inc/slide/metaslide.image.class.php:248
|
629 |
+
msgid "SEO"
|
630 |
+
msgstr ""
|
631 |
+
|
632 |
+
#: src/inc/slide/metaslide.image.class.php:261
|
633 |
+
msgid "Crop Position"
|
634 |
+
msgstr ""
|
635 |
+
|
636 |
+
#: src/inc/slide/metaslide.image.class.php:264
|
637 |
+
msgid "Top Left"
|
638 |
+
msgstr ""
|
639 |
+
|
640 |
+
#: src/inc/slide/metaslide.image.class.php:265
|
641 |
+
msgid "Top Center"
|
642 |
+
msgstr ""
|
643 |
+
|
644 |
+
#: src/inc/slide/metaslide.image.class.php:266
|
645 |
+
msgid "Top Right"
|
646 |
+
msgstr ""
|
647 |
+
|
648 |
+
#: src/inc/slide/metaslide.image.class.php:267
|
649 |
+
msgid "Center Left"
|
650 |
+
msgstr ""
|
651 |
+
|
652 |
+
#: src/inc/slide/metaslide.image.class.php:268
|
653 |
+
msgid "Center Center"
|
654 |
+
msgstr ""
|
655 |
+
|
656 |
+
#: src/inc/slide/metaslide.image.class.php:269
|
657 |
+
msgid "Center Right"
|
658 |
+
msgstr ""
|
659 |
+
|
660 |
+
#: src/inc/slide/metaslide.image.class.php:270
|
661 |
+
msgid "Bottom Left"
|
662 |
+
msgstr ""
|
663 |
+
|
664 |
+
#: src/inc/slide/metaslide.image.class.php:271
|
665 |
+
msgid "Bottom Center"
|
666 |
+
msgstr ""
|
667 |
+
|
668 |
+
#: src/inc/slide/metaslide.image.class.php:272
|
669 |
+
msgid "Bottom Right"
|
670 |
+
msgstr ""
|
671 |
+
|
672 |
+
#: src/inc/slide/metaslide.image.class.php:277
|
673 |
+
msgid "Crop"
|
674 |
+
msgstr ""
|
675 |
+
|
676 |
+
#: src/inc/slider/metaslider.class.php:108
|
677 |
+
msgid "Previous"
|
678 |
+
msgstr ""
|
679 |
+
|
680 |
+
#: src/ml-slider.php:865
|
681 |
+
msgid "Image"
|
682 |
+
msgstr ""
|
683 |
+
|
684 |
+
#: src/ml-slider.php:867
|
685 |
+
msgid "Add to slideshow"
|
686 |
+
msgstr ""
|
687 |
+
|
688 |
+
#: src/ml-slider.php:1255
|
689 |
+
msgid "The slide was successfully restored"
|
690 |
+
msgstr ""
|
691 |
+
|
692 |
+
#: src/ml-slider.php:1285
|
693 |
+
msgid "The attempt to restore the slide failed."
|
694 |
+
msgstr ""
|
695 |
+
|
696 |
+
#: src/ml-slider.php:1347
|
697 |
+
msgid "The slide was successfully trashed"
|
698 |
+
msgstr ""
|
699 |
+
|
700 |
+
#: src/ml-slider.php:1701, src/ml-slider.php:2365
|
701 |
+
msgid "New Slideshow"
|
702 |
+
msgstr ""
|
703 |
+
|
704 |
+
#: src/ml-slider.php:2019
|
705 |
+
msgid "Get the add-on pack today!"
|
706 |
+
msgstr ""
|
707 |
+
|
708 |
+
#: src/ml-slider.php:2325
|
709 |
+
msgid "Select Slideshow"
|
710 |
+
msgstr ""
|
711 |
+
|
712 |
+
#: src/ml-slider.php:2349
|
713 |
+
msgid "or"
|
714 |
+
msgstr ""
|
715 |
+
|
716 |
+
#: src/ml-slider.php:2351
|
717 |
+
msgid "Create a New Slideshow"
|
718 |
+
msgstr ""
|
719 |
+
|
720 |
+
#: src/ml-slider.php:2389, src/ml-slider.php:2393
|
721 |
+
msgid "Add a New Slideshow"
|
722 |
+
msgstr ""
|
723 |
+
|
724 |
+
#: src/ml-slider.php:2579
|
725 |
+
msgid "Trashed Slides"
|
726 |
+
msgstr ""
|
727 |
+
|
728 |
+
#: src/ml-slider.php:2581
|
729 |
+
msgid "<a href=\"%s\">view active</a>"
|
730 |
+
msgstr ""
|
731 |
+
|
732 |
+
#: src/ml-slider.php:2599
|
733 |
+
msgid "Add a New Slide"
|
734 |
+
msgstr ""
|
735 |
+
|
736 |
+
#: src/ml-slider.php:2603
|
737 |
+
msgid "Add Slide"
|
738 |
+
msgstr ""
|
739 |
+
|
740 |
+
#: src/ml-slider.php:2657
|
741 |
+
msgid "You are viewing slides that have been trashed, which will be automatically deleted in %s days. Click <a href=\"%s\">here</a> to view active slides."
|
742 |
+
msgstr ""
|
743 |
+
|
744 |
+
#: src/ml-slider.php:2679
|
745 |
+
msgid "Preview"
|
746 |
+
msgstr ""
|
747 |
+
|
748 |
+
#: src/ml-slider.php:2685
|
749 |
+
msgid "Save"
|
750 |
+
msgstr ""
|
751 |
+
|
752 |
+
#: src/ml-slider.php:2713
|
753 |
+
msgid "Flex Slider"
|
754 |
+
msgstr ""
|
755 |
+
|
756 |
+
#: src/ml-slider.php:2715
|
757 |
+
msgid "R. Slides"
|
758 |
+
msgstr ""
|
759 |
+
|
760 |
+
#: src/ml-slider.php:2717
|
761 |
+
msgid "Nivo Slider"
|
762 |
+
msgstr ""
|
763 |
+
|
764 |
+
#: src/ml-slider.php:2719
|
765 |
+
msgid "Coin Slider"
|
766 |
+
msgstr ""
|
767 |
+
|
768 |
+
#: src/ml-slider.php:2741, src/ml-slider.php:3257
|
769 |
+
msgid "Width"
|
770 |
+
msgstr ""
|
771 |
+
|
772 |
+
#: src/ml-slider.php:2745
|
773 |
+
msgid "Slideshow width"
|
774 |
+
msgstr ""
|
775 |
+
|
776 |
+
#: src/ml-slider.php:2747, src/ml-slider.php:2773, src/ml-slider.php:3111
|
777 |
+
msgid "px"
|
778 |
+
msgstr ""
|
779 |
+
|
780 |
+
#: src/ml-slider.php:2767, src/ml-slider.php:3283
|
781 |
+
msgid "Height"
|
782 |
+
msgstr ""
|
783 |
+
|
784 |
+
#: src/ml-slider.php:2771
|
785 |
+
msgid "Slideshow height"
|
786 |
+
msgstr ""
|
787 |
+
|
788 |
+
#: src/ml-slider.php:2785
|
789 |
+
msgid "Effect"
|
790 |
+
msgstr ""
|
791 |
+
|
792 |
+
#: src/ml-slider.php:2789
|
793 |
+
msgid "Slide transition effect"
|
794 |
+
msgstr ""
|
795 |
+
|
796 |
+
#: src/ml-slider.php:2793, src/ml-slider.php:3121
|
797 |
+
msgid "Random"
|
798 |
+
msgstr ""
|
799 |
+
|
800 |
+
#: src/ml-slider.php:2795
|
801 |
+
msgid "Swirl"
|
802 |
+
msgstr ""
|
803 |
+
|
804 |
+
#: src/ml-slider.php:2797
|
805 |
+
msgid "Rain"
|
806 |
+
msgstr ""
|
807 |
+
|
808 |
+
#: src/ml-slider.php:2799
|
809 |
+
msgid "Straight"
|
810 |
+
msgstr ""
|
811 |
+
|
812 |
+
#: src/ml-slider.php:2801
|
813 |
+
msgid "Slide Down"
|
814 |
+
msgstr ""
|
815 |
+
|
816 |
+
#: src/ml-slider.php:2803
|
817 |
+
msgid "Slice Up"
|
818 |
+
msgstr ""
|
819 |
+
|
820 |
+
#: src/ml-slider.php:2805
|
821 |
+
msgid "Slide Up Left"
|
822 |
+
msgstr ""
|
823 |
+
|
824 |
+
#: src/ml-slider.php:2807
|
825 |
+
msgid "Slice Up Down"
|
826 |
+
msgstr ""
|
827 |
+
|
828 |
+
#: src/ml-slider.php:2809
|
829 |
+
msgid "Slide Up Down Left"
|
830 |
+
msgstr ""
|
831 |
+
|
832 |
+
#: src/ml-slider.php:2811
|
833 |
+
msgid "Fold"
|
834 |
+
msgstr ""
|
835 |
+
|
836 |
+
#: src/ml-slider.php:2813
|
837 |
+
msgid "Fade"
|
838 |
+
msgstr ""
|
839 |
+
|
840 |
+
#: src/ml-slider.php:2815
|
841 |
+
msgid "Slide In Right"
|
842 |
+
msgstr ""
|
843 |
+
|
844 |
+
#: src/ml-slider.php:2817
|
845 |
+
msgid "Slide In Left"
|
846 |
+
msgstr ""
|
847 |
+
|
848 |
+
#: src/ml-slider.php:2819
|
849 |
+
msgid "Box Random"
|
850 |
+
msgstr ""
|
851 |
+
|
852 |
+
#: src/ml-slider.php:2821
|
853 |
+
msgid "Box Rain"
|
854 |
+
msgstr ""
|
855 |
+
|
856 |
+
#: src/ml-slider.php:2823
|
857 |
+
msgid "Box Rain Reverse"
|
858 |
+
msgstr ""
|
859 |
+
|
860 |
+
#: src/ml-slider.php:2825
|
861 |
+
msgid "Box Rain Grow Reverse"
|
862 |
+
msgstr ""
|
863 |
+
|
864 |
+
#: src/ml-slider.php:2827
|
865 |
+
msgid "Slide"
|
866 |
+
msgstr ""
|
867 |
+
|
868 |
+
#: src/ml-slider.php:2841
|
869 |
+
msgid "Theme"
|
870 |
+
msgstr ""
|
871 |
+
|
872 |
+
#: src/ml-slider.php:2845
|
873 |
+
msgid "Slideshow theme"
|
874 |
+
msgstr ""
|
875 |
+
|
876 |
+
#: src/ml-slider.php:2849
|
877 |
+
msgid "Default"
|
878 |
+
msgstr ""
|
879 |
+
|
880 |
+
#: src/ml-slider.php:2851
|
881 |
+
msgid "Dark (Nivo)"
|
882 |
+
msgstr ""
|
883 |
+
|
884 |
+
#: src/ml-slider.php:2853
|
885 |
+
msgid "Light (Nivo)"
|
886 |
+
msgstr ""
|
887 |
+
|
888 |
+
#: src/ml-slider.php:2855
|
889 |
+
msgid "Bar (Nivo)"
|
890 |
+
msgstr ""
|
891 |
+
|
892 |
+
#: src/ml-slider.php:2867
|
893 |
+
msgid "Arrows"
|
894 |
+
msgstr ""
|
895 |
+
|
896 |
+
#: src/ml-slider.php:2873
|
897 |
+
msgid "Show the previous/next arrows"
|
898 |
+
msgstr ""
|
899 |
+
|
900 |
+
#: src/ml-slider.php:2883
|
901 |
+
msgid "Navigation"
|
902 |
+
msgstr ""
|
903 |
+
|
904 |
+
#: src/ml-slider.php:2889
|
905 |
+
msgid "Show the slide navigation bullets"
|
906 |
+
msgstr ""
|
907 |
+
|
908 |
+
#: src/ml-slider.php:2893
|
909 |
+
msgid "Hidden"
|
910 |
+
msgstr ""
|
911 |
+
|
912 |
+
#: src/ml-slider.php:2895
|
913 |
+
msgid "Dots"
|
914 |
+
msgstr ""
|
915 |
+
|
916 |
+
#: src/ml-slider.php:2899
|
917 |
+
msgid "Thumbnail"
|
918 |
+
msgstr ""
|
919 |
+
|
920 |
+
#: src/ml-slider.php:2907
|
921 |
+
msgid "Filmstrip"
|
922 |
+
msgstr ""
|
923 |
+
|
924 |
+
#: src/ml-slider.php:2933
|
925 |
+
msgid "Title"
|
926 |
+
msgstr ""
|
927 |
+
|
928 |
+
#: src/ml-slider.php:2935
|
929 |
+
msgid "Slideshow title"
|
930 |
+
msgstr ""
|
931 |
+
|
932 |
+
#: src/ml-slider.php:2969
|
933 |
+
msgid "View trashed slides"
|
934 |
+
msgstr ""
|
935 |
+
|
936 |
+
#: src/ml-slider.php:2971
|
937 |
+
msgid "Trash"
|
938 |
+
msgstr ""
|
939 |
+
|
940 |
+
#: src/ml-slider.php:2985
|
941 |
+
msgid "Advanced Settings"
|
942 |
+
msgstr ""
|
943 |
+
|
944 |
+
#: src/ml-slider.php:3003
|
945 |
+
msgid "Stretch"
|
946 |
+
msgstr ""
|
947 |
+
|
948 |
+
#: src/ml-slider.php:3007
|
949 |
+
msgid "100% wide output"
|
950 |
+
msgstr ""
|
951 |
+
|
952 |
+
#: src/ml-slider.php:3011
|
953 |
+
msgid "Stretch the slideshow output to fill it's parent container"
|
954 |
+
msgstr ""
|
955 |
+
|
956 |
+
#: src/ml-slider.php:3021
|
957 |
+
msgid "Center align"
|
958 |
+
msgstr ""
|
959 |
+
|
960 |
+
#: src/ml-slider.php:3027
|
961 |
+
msgid "Center align the slideshow"
|
962 |
+
msgstr ""
|
963 |
+
|
964 |
+
#: src/ml-slider.php:3037
|
965 |
+
msgid "Auto play"
|
966 |
+
msgstr ""
|
967 |
+
|
968 |
+
#: src/ml-slider.php:3043
|
969 |
+
msgid "Transition between slides automatically"
|
970 |
+
msgstr ""
|
971 |
+
|
972 |
+
#: src/ml-slider.php:3053
|
973 |
+
msgid "Image Crop"
|
974 |
+
msgstr ""
|
975 |
+
|
976 |
+
#: src/ml-slider.php:3061
|
977 |
+
msgid "Smart Crop"
|
978 |
+
msgstr ""
|
979 |
+
|
980 |
+
#: src/ml-slider.php:3063
|
981 |
+
msgid "Standard"
|
982 |
+
msgstr ""
|
983 |
+
|
984 |
+
#: src/ml-slider.php:3065
|
985 |
+
msgid "Disabled"
|
986 |
+
msgstr ""
|
987 |
+
|
988 |
+
#: src/ml-slider.php:3067
|
989 |
+
msgid "Disabled (Smart Pad)"
|
990 |
+
msgstr ""
|
991 |
+
|
992 |
+
#: src/ml-slider.php:3071
|
993 |
+
msgid "Smart Crop ensures your responsive slides are cropped to a ratio that results in a consistent slideshow size"
|
994 |
+
msgstr ""
|
995 |
+
|
996 |
+
#: src/ml-slider.php:3081
|
997 |
+
msgid "Carousel mode"
|
998 |
+
msgstr ""
|
999 |
+
|
1000 |
+
#: src/ml-slider.php:3087
|
1001 |
+
msgid "Display multiple slides at once. Slideshow output will be 100% wide."
|
1002 |
+
msgstr ""
|
1003 |
+
|
1004 |
+
#: src/ml-slider.php:3103
|
1005 |
+
msgid "Carousel margin"
|
1006 |
+
msgstr ""
|
1007 |
+
|
1008 |
+
#: src/ml-slider.php:3109
|
1009 |
+
msgid "Pixel margin between slides in carousel."
|
1010 |
+
msgstr ""
|
1011 |
+
|
1012 |
+
#: src/ml-slider.php:3127
|
1013 |
+
msgid "Randomise the order of the slides"
|
1014 |
+
msgstr ""
|
1015 |
+
|
1016 |
+
#: src/ml-slider.php:3137
|
1017 |
+
msgid "Hover pause"
|
1018 |
+
msgstr ""
|
1019 |
+
|
1020 |
+
#: src/ml-slider.php:3143
|
1021 |
+
msgid "Pause the slideshow when hovering over slider, then resume when no longer hovering."
|
1022 |
+
msgstr ""
|
1023 |
+
|
1024 |
+
#: src/ml-slider.php:3153
|
1025 |
+
msgid "Reverse"
|
1026 |
+
msgstr ""
|
1027 |
+
|
1028 |
+
#: src/ml-slider.php:3159
|
1029 |
+
msgid "Reverse the animation direction"
|
1030 |
+
msgstr ""
|
1031 |
+
|
1032 |
+
#: src/ml-slider.php:3179
|
1033 |
+
msgid "Slide delay"
|
1034 |
+
msgstr ""
|
1035 |
+
|
1036 |
+
#: src/ml-slider.php:3183
|
1037 |
+
msgid "How long to display each slide, in milliseconds"
|
1038 |
+
msgstr ""
|
1039 |
+
|
1040 |
+
#: src/ml-slider.php:3185, src/ml-slider.php:3211, src/ml-slider.php:3237, src/ml-slider.php:3389, src/ml-slider.php:3441
|
1041 |
+
msgid "ms"
|
1042 |
+
msgstr ""
|
1043 |
+
|
1044 |
+
#: src/ml-slider.php:3205
|
1045 |
+
msgid "Animation speed"
|
1046 |
+
msgstr ""
|
1047 |
+
|
1048 |
+
#: src/ml-slider.php:3209
|
1049 |
+
msgid "Set the speed of animations, in milliseconds"
|
1050 |
+
msgstr ""
|
1051 |
+
|
1052 |
+
#: src/ml-slider.php:3231, src/ml-slider.php:3235
|
1053 |
+
msgid "Number of slices"
|
1054 |
+
msgstr ""
|
1055 |
+
|
1056 |
+
#: src/ml-slider.php:3257, src/ml-slider.php:3261, src/ml-slider.php:3283, src/ml-slider.php:3287
|
1057 |
+
msgid "Number of squares"
|
1058 |
+
msgstr ""
|
1059 |
+
|
1060 |
+
#: src/ml-slider.php:3299
|
1061 |
+
msgid "Slide direction"
|
1062 |
+
msgstr ""
|
1063 |
+
|
1064 |
+
#: src/ml-slider.php:3303
|
1065 |
+
msgid "Select the sliding direction"
|
1066 |
+
msgstr ""
|
1067 |
+
|
1068 |
+
#: src/ml-slider.php:3309
|
1069 |
+
msgid "Horizontal"
|
1070 |
+
msgstr ""
|
1071 |
+
|
1072 |
+
#: src/ml-slider.php:3311
|
1073 |
+
msgid "Vertical"
|
1074 |
+
msgstr ""
|
1075 |
+
|
1076 |
+
#: src/ml-slider.php:3323
|
1077 |
+
msgid "Easing"
|
1078 |
+
msgstr ""
|
1079 |
+
|
1080 |
+
#: src/ml-slider.php:3327
|
1081 |
+
msgid "Animation easing effect"
|
1082 |
+
msgstr ""
|
1083 |
+
|
1084 |
+
#: src/ml-slider.php:3341
|
1085 |
+
msgid "Previous text"
|
1086 |
+
msgstr ""
|
1087 |
+
|
1088 |
+
#: src/ml-slider.php:3345
|
1089 |
+
msgid "Set the text for the 'previous' direction item"
|
1090 |
+
msgstr ""
|
1091 |
+
|
1092 |
+
#: src/ml-slider.php:3357
|
1093 |
+
msgid "Next text"
|
1094 |
+
msgstr ""
|
1095 |
+
|
1096 |
+
#: src/ml-slider.php:3361
|
1097 |
+
msgid "Set the text for the 'next' direction item"
|
1098 |
+
msgstr ""
|
1099 |
+
|
1100 |
+
#: src/ml-slider.php:3383
|
1101 |
+
msgid "Square delay"
|
1102 |
+
msgstr ""
|
1103 |
+
|
1104 |
+
#: src/ml-slider.php:3387
|
1105 |
+
msgid "Delay between squares in ms"
|
1106 |
+
msgstr ""
|
1107 |
+
|
1108 |
+
#: src/ml-slider.php:3409
|
1109 |
+
msgid "Opacity"
|
1110 |
+
msgstr ""
|
1111 |
+
|
1112 |
+
#: src/ml-slider.php:3413
|
1113 |
+
msgid "Opacity of title and navigation"
|
1114 |
+
msgstr ""
|
1115 |
+
|
1116 |
+
#: src/ml-slider.php:3435
|
1117 |
+
msgid "Caption speed"
|
1118 |
+
msgstr ""
|
1119 |
+
|
1120 |
+
#: src/ml-slider.php:3439
|
1121 |
+
msgid "Set the fade in speed of the caption"
|
1122 |
+
msgstr ""
|
1123 |
+
|
1124 |
+
#: src/ml-slider.php:3453
|
1125 |
+
msgid "Developer options"
|
1126 |
+
msgstr ""
|
1127 |
+
|
1128 |
+
#: src/ml-slider.php:3463
|
1129 |
+
msgid "CSS classes"
|
1130 |
+
msgstr ""
|
1131 |
+
|
1132 |
+
#: src/ml-slider.php:3467
|
1133 |
+
msgid "Specify any custom CSS Classes you would like to be added to the slider wrapper"
|
1134 |
+
msgstr ""
|
1135 |
+
|
1136 |
+
#: src/ml-slider.php:3479
|
1137 |
+
msgid "Print CSS"
|
1138 |
+
msgstr ""
|
1139 |
+
|
1140 |
+
#: src/ml-slider.php:3485
|
1141 |
+
msgid "Uncheck this is you would like to include your own CSS"
|
1142 |
+
msgstr ""
|
1143 |
+
|
1144 |
+
#: src/ml-slider.php:3495
|
1145 |
+
msgid "Print JS"
|
1146 |
+
msgstr ""
|
1147 |
+
|
1148 |
+
#: src/ml-slider.php:3501
|
1149 |
+
msgid "Uncheck this is you would like to include your own Javascript"
|
1150 |
+
msgstr ""
|
1151 |
+
|
1152 |
+
#: src/ml-slider.php:3511
|
1153 |
+
msgid "No conflict mode"
|
1154 |
+
msgstr ""
|
1155 |
+
|
1156 |
+
#: src/ml-slider.php:3517
|
1157 |
+
msgid "Delay adding the flexslider class to the slideshow"
|
1158 |
+
msgstr ""
|
1159 |
+
|
1160 |
+
#: src/ml-slider.php:3547
|
1161 |
+
msgid "Delete Slideshow"
|
1162 |
+
msgstr ""
|
1163 |
+
|
1164 |
+
#: src/ml-slider.php:3601
|
1165 |
+
msgid "Select slideshow to insert into post"
|
1166 |
+
msgstr ""
|
1167 |
+
|
1168 |
+
#: src/ml-slider.php:3607
|
1169 |
+
msgid "Add slider"
|
1170 |
+
msgstr ""
|
1171 |
+
|
1172 |
+
#: src/ml-slider.php:3675
|
1173 |
+
msgid "Insert MetaSlider"
|
1174 |
+
msgstr ""
|
1175 |
+
|
1176 |
+
#: src/ml-slider.php:3679
|
1177 |
+
msgid "Choose slideshow"
|
1178 |
+
msgstr ""
|
1179 |
+
|
1180 |
+
#: src/ml-slider.php:3689
|
1181 |
+
msgid "Insert slideshow"
|
1182 |
+
msgstr ""
|
1183 |
+
|
1184 |
+
#: src/ml-slider.php:3795
|
1185 |
+
msgid "Take a tour"
|
1186 |
+
msgstr ""
|
1187 |
+
|
1188 |
+
#: src/ml-slider.php:3803
|
1189 |
+
msgid "Support"
|
1190 |
+
msgstr ""
|
1191 |
+
|
1192 |
+
#: src/ml-slider.php:3807
|
1193 |
+
msgid "Premium Support"
|
1194 |
+
msgstr ""
|
1195 |
+
|
1196 |
+
#: src/ml-slider.php:3811, src/ml-slider.php:3937
|
1197 |
+
msgid "Documentation"
|
1198 |
+
msgstr ""
|
1199 |
+
|
1200 |
+
#: src/ml-slider.php:3813
|
1201 |
+
msgid "Leave a review"
|
1202 |
+
msgstr ""
|
1203 |
+
|
1204 |
+
#: src/ml-slider.php:3881
|
1205 |
+
msgid "Upgrade Now"
|
1206 |
+
msgstr ""
|
1207 |
+
|
1208 |
+
#: src/ml-slider.php:3885
|
1209 |
+
msgid "Get The Pro Pack Today!"
|
1210 |
+
msgstr ""
|
1211 |
+
|
1212 |
+
#: src/ml-slider.php:3919
|
1213 |
+
msgid "Switch to Dropdown view"
|
1214 |
+
msgstr ""
|
1215 |
+
|
1216 |
+
#: src/ml-slider.php:3919
|
1217 |
+
msgid "Switch to Tab view"
|
1218 |
+
msgstr ""
|
1219 |
+
|
1220 |
+
#: src/ml-slider.php:3923
|
1221 |
+
msgid "Layout"
|
1222 |
+
msgstr ""
|
1223 |
+
|
1224 |
+
#: src/ml-slider.php:3937
|
1225 |
+
msgid "View The Documentation"
|
1226 |
+
msgstr ""
|
ml-slider.php
CHANGED
@@ -1,11 +1,11 @@
|
|
1 |
<?php
|
2 |
/*
|
3 |
-
*
|
4 |
*
|
5 |
-
* Plugin Name:
|
6 |
* Plugin URI: https://www.metaslider.com
|
7 |
* Description: Easy to use slideshow plugin. Create SEO optimised responsive slideshows with Nivo Slider, Flex Slider, Coin Slider and Responsive Slides.
|
8 |
-
* Version: 3.
|
9 |
* Author: Team Updraft
|
10 |
* Author URI: https://www.metaslider.com
|
11 |
* License: GPL-2.0+
|
@@ -31,8 +31,12 @@ class MetaSliderPlugin {
|
|
31 |
/**
|
32 |
* @var string
|
33 |
*/
|
34 |
-
public $version = '3.
|
35 |
|
|
|
|
|
|
|
|
|
36 |
|
37 |
/**
|
38 |
* @var MetaSlider
|
@@ -54,35 +58,32 @@ class MetaSliderPlugin {
|
|
54 |
* Constructor
|
55 |
*/
|
56 |
public function __construct() {
|
57 |
-
|
58 |
$this->define_constants();
|
59 |
$this->includes();
|
60 |
$this->setup_actions();
|
61 |
$this->setup_filters();
|
62 |
$this->setup_shortcode();
|
63 |
$this->register_slide_types();
|
64 |
-
|
65 |
}
|
66 |
|
67 |
|
68 |
/**
|
69 |
-
* Define
|
70 |
*/
|
71 |
private function define_constants() {
|
72 |
-
|
73 |
-
define(
|
74 |
-
define(
|
75 |
-
define(
|
76 |
-
define(
|
77 |
-
|
78 |
}
|
79 |
|
80 |
-
|
81 |
/**
|
82 |
-
* All
|
83 |
*/
|
84 |
private function plugin_classes() {
|
85 |
-
|
86 |
return array(
|
87 |
'metaslider' => METASLIDER_PATH . 'inc/slider/metaslider.class.php',
|
88 |
'metacoinslider' => METASLIDER_PATH . 'inc/slider/metaslider.coin.class.php',
|
@@ -94,9 +95,11 @@ class MetaSliderPlugin {
|
|
94 |
'metasliderimagehelper' => METASLIDER_PATH . 'inc/metaslider.imagehelper.class.php',
|
95 |
'metaslidersystemcheck' => METASLIDER_PATH . 'inc/metaslider.systemcheck.class.php',
|
96 |
'metaslider_widget' => METASLIDER_PATH . 'inc/metaslider.widget.class.php',
|
97 |
-
'simple_html_dom' => METASLIDER_PATH . 'inc/simple_html_dom.php'
|
|
|
|
|
|
|
98 |
);
|
99 |
-
|
100 |
}
|
101 |
|
102 |
|
@@ -104,7 +107,7 @@ class MetaSliderPlugin {
|
|
104 |
* Load required classes
|
105 |
*/
|
106 |
private function includes() {
|
107 |
-
|
108 |
$autoload_is_disabled = defined( 'METASLIDER_AUTOLOAD_CLASSES' ) && METASLIDER_AUTOLOAD_CLASSES === false;
|
109 |
|
110 |
if ( function_exists( "spl_autoload_register" ) && ! ( $autoload_is_disabled ) ) {
|
@@ -131,7 +134,7 @@ class MetaSliderPlugin {
|
|
131 |
|
132 |
|
133 |
/**
|
134 |
-
* Autoload
|
135 |
*/
|
136 |
public function autoload( $class ) {
|
137 |
|
@@ -158,62 +161,58 @@ class MetaSliderPlugin {
|
|
158 |
|
159 |
|
160 |
/**
|
161 |
-
* Hook
|
162 |
*/
|
163 |
private function setup_actions() {
|
164 |
-
|
165 |
-
add_action(
|
166 |
-
add_action(
|
167 |
-
add_action(
|
168 |
-
add_action(
|
169 |
-
add_action(
|
170 |
-
|
171 |
-
add_action(
|
172 |
-
|
173 |
-
|
174 |
-
add_action(
|
175 |
-
add_action(
|
176 |
-
add_action(
|
177 |
-
|
178 |
-
add_action(
|
179 |
-
add_action(
|
180 |
-
add_action(
|
181 |
-
|
182 |
-
|
183 |
-
|
184 |
-
add_action(
|
185 |
-
add_action(
|
186 |
-
|
|
|
|
|
187 |
}
|
188 |
|
189 |
|
190 |
/**
|
191 |
-
* Hook
|
192 |
*/
|
193 |
private function setup_filters() {
|
194 |
-
|
195 |
-
add_filter(
|
196 |
-
add_filter(
|
197 |
-
add_filter(
|
198 |
-
|
199 |
-
|
200 |
-
$plugin = plugin_basename( __FILE__ );
|
201 |
-
|
202 |
-
add_filter( "plugin_action_links_{$plugin}", array( $this, 'upgrade_to_pro_link' ) );
|
203 |
|
204 |
// html5 compatibility for stylesheets enqueued within <body>
|
205 |
-
add_filter(
|
206 |
-
|
207 |
}
|
208 |
|
209 |
|
210 |
/**
|
211 |
-
* Register
|
212 |
*/
|
213 |
public function register_metaslider_widget() {
|
214 |
-
|
215 |
-
register_widget( 'MetaSlider_Widget' );
|
216 |
-
|
217 |
}
|
218 |
|
219 |
|
@@ -239,7 +238,7 @@ class MetaSliderPlugin {
|
|
239 |
'show_in_nav_menus' => false,
|
240 |
'show_ui' => $show_ui,
|
241 |
'labels' => array(
|
242 |
-
'name' => '
|
243 |
)
|
244 |
)
|
245 |
);
|
@@ -297,111 +296,21 @@ class MetaSliderPlugin {
|
|
297 |
|
298 |
}
|
299 |
|
300 |
-
|
301 |
/**
|
302 |
-
|
303 |
-
|
304 |
-
public function
|
305 |
-
|
306 |
-
|
307 |
-
|
308 |
-
|
309 |
-
$capability = apply_filters( 'metaslider_capability', 'edit_others_posts' );
|
310 |
-
|
311 |
-
$page = add_menu_page( $title, $title, $capability, 'metaslider', array(
|
312 |
-
$this, 'render_admin_page'
|
313 |
-
), "", 9501 );
|
314 |
-
|
315 |
-
// ensure our JavaScript is only loaded on the Meta Slider admin page
|
316 |
-
add_action( 'admin_print_scripts-' . $page, array( $this, 'register_admin_scripts' ) );
|
317 |
-
add_action( 'admin_print_styles-' . $page, array( $this, 'register_admin_styles' ) );
|
318 |
-
add_action( 'load-' . $page, array( $this, 'help_tab' ) );
|
319 |
-
|
320 |
-
if ( ! is_plugin_active( 'ml-slider-pro/ml-slider-pro.php' ) && get_user_meta( $user_ID, "metaslider_hide_go_pro", true ) !== 'true' ) {
|
321 |
-
|
322 |
-
$page = add_submenu_page(
|
323 |
-
'metaslider',
|
324 |
-
__( 'Go Pro!', 'ml-slider' ),
|
325 |
-
__( 'Go Pro!', 'ml-slider' ),
|
326 |
-
$capability,
|
327 |
-
'metaslider-go-pro',
|
328 |
-
array( $this, 'go_pro_page' )
|
329 |
-
);
|
330 |
-
|
331 |
-
add_action( 'admin_print_styles-' . $page, array( $this, 'register_admin_styles' ) );
|
332 |
-
|
333 |
-
}
|
334 |
-
|
335 |
-
}
|
336 |
-
|
337 |
-
/**
|
338 |
-
* Enqueue CSS for admin menu item font icon
|
339 |
-
*
|
340 |
-
* @since 3.4
|
341 |
-
*/
|
342 |
-
public function admin_enqueue_global_styles() {
|
343 |
-
wp_enqueue_style( 'metaslider-global', METASLIDER_ASSETS_URL . 'metaslider/global.css', array(), METASLIDER_VERSION );
|
344 |
-
}
|
345 |
-
|
346 |
-
|
347 |
-
/**
|
348 |
-
* Go Pro page content
|
349 |
-
*/
|
350 |
-
public function go_pro_page() {
|
351 |
-
|
352 |
-
$upgrade_link = esc_url( add_query_arg(
|
353 |
-
array(
|
354 |
-
'utm_source' => 'lite',
|
355 |
-
'utm_medium' => 'nag',
|
356 |
-
'utm_campaign' => 'pro'
|
357 |
-
), 'https://www.metaslider.com/upgrade/' ) );
|
358 |
-
|
359 |
-
$link = apply_filters( 'metaslider_hoplink', $upgrade_link );
|
360 |
-
|
361 |
-
$hide_link = '<a href="' . admin_url( "admin-post.php?action=metaslider_hide_go_pro_page" ) . '">Hide this page</a>';
|
362 |
-
$gopro_link = "<a class='button button-primary' href='{$link}' target='_blank'>Find out more</a>";
|
363 |
-
$support_link = '<a href="https://wordpress.org/support/plugin/ml-slider">Support</a>';
|
364 |
-
$documentation_link = '<a href="https://www.metaslider.com/documentation/">Documentation</a>';
|
365 |
-
|
366 |
-
?>
|
367 |
-
<h2>Supercharge Your Sliders with Meta Slider Pro!</h2>
|
368 |
-
|
369 |
-
<ul class='metaslider_gopro'>
|
370 |
-
<li>Create <b>animated HTML slides</b> using the drag & drop layer editor (WYSIWYG)</li>
|
371 |
-
<li>Insert <b>YouTube</b> and <b>Vimeo</b> videos into your slideshows</li>
|
372 |
-
<li>Automatically populate your slideshows with your <b>latest blog posts</b> or custom post types</li>
|
373 |
-
<li>Customize the look of your slideshows with the <b>Theme Editor</b> (25+ settings including custom arrow images, dot colors and caption styling)</li>
|
374 |
-
<li>Give your slideshows a gallery feel with <b>thumbnail navigation</b></li>
|
375 |
-
<li>Feature <b>WooCommerce</b> products in your slideshows</li>
|
376 |
-
<li>Show your latest events from <b>The Events Calendar</b> plugin</li>
|
377 |
-
<li><b>Easy to install</B> - Meta Slider Pro installs as a seperate plugin alongside Meta Slider and seamlessly adds in the new functionality</li>
|
378 |
-
<li><b>Easy to update</b> - new updates will be displayed on your plugins page (just like your other plugins!)</li>
|
379 |
-
<li>Upgrade with confidence with our <b>30 day no questions money back guarantee</b></li>
|
380 |
-
<li>Meta Slider Pro users receive <b>priority support</b> from our dedicated team, we’re on hand to help you get the most of Meta Slider</li>
|
381 |
-
</ul>
|
382 |
-
|
383 |
-
<p><?php echo $gopro_link; ?></p>
|
384 |
-
<p><?php echo $support_link; ?> <?php echo $documentation_link; ?></p>
|
385 |
-
<p><em>Don't want to see this? <?php echo $hide_link; ?></em></p>
|
386 |
-
<?php
|
387 |
-
|
388 |
-
}
|
389 |
-
|
390 |
-
/**
|
391 |
-
* Store the users preference to hide the go pro page.
|
392 |
-
*/
|
393 |
-
public function hide_go_pro_page() {
|
394 |
-
global $user_ID;
|
395 |
-
|
396 |
-
if ( ! get_user_meta( $user_ID, "metaslider_hide_go_pro" ) ) {
|
397 |
-
add_user_meta( $user_ID, "metaslider_hide_go_pro", "true" );
|
398 |
}
|
399 |
|
400 |
-
|
401 |
-
|
|
|
402 |
}
|
403 |
|
404 |
-
|
405 |
/**
|
406 |
* Shortcode used to display slideshow
|
407 |
*
|
@@ -433,7 +342,7 @@ class MetaSliderPlugin {
|
|
433 |
|
434 |
// check the slider is published and the ID is correct
|
435 |
if ( ! $slider || $slider->post_status != 'publish' || $slider->post_type != 'ml-slider' ) {
|
436 |
-
return "<!--
|
437 |
}
|
438 |
|
439 |
// lets go
|
@@ -444,93 +353,23 @@ class MetaSliderPlugin {
|
|
444 |
|
445 |
}
|
446 |
|
447 |
-
|
448 |
-
/**
|
449 |
-
* Initialise translations
|
450 |
-
*/
|
451 |
-
public function load_plugin_textdomain() {
|
452 |
-
|
453 |
-
load_plugin_textdomain( 'ml-slider', false, dirname( plugin_basename( __FILE__ ) ) . '/languages/' );
|
454 |
-
|
455 |
-
}
|
456 |
-
|
457 |
-
|
458 |
-
/**
|
459 |
-
* Add the help tab to the screen.
|
460 |
-
*/
|
461 |
-
public function help_tab() {
|
462 |
-
|
463 |
-
$screen = get_current_screen();
|
464 |
-
|
465 |
-
// documentation tab
|
466 |
-
$screen->add_help_tab( array(
|
467 |
-
'id' => 'documentation',
|
468 |
-
'title' => __( 'Documentation', 'ml-slider' ),
|
469 |
-
'content' => "<p><a href='https://www.metaslider.com/documentation/' target='blank'>Meta Slider Documentation</a></p>",
|
470 |
-
)
|
471 |
-
);
|
472 |
-
|
473 |
-
}
|
474 |
-
|
475 |
-
|
476 |
/**
|
477 |
-
*
|
478 |
*/
|
479 |
-
public function
|
480 |
-
|
481 |
-
wp_enqueue_style( 'metaslider-admin-styles', METASLIDER_ASSETS_URL . 'metaslider/admin.css', false, METASLIDER_VERSION );
|
482 |
-
wp_enqueue_style( 'metaslider-colorbox-styles', METASLIDER_ASSETS_URL . 'colorbox/colorbox.css', false, METASLIDER_VERSION );
|
483 |
-
wp_enqueue_style( 'metaslider-tipsy-styles', METASLIDER_ASSETS_URL . 'tipsy/tipsy.css', false, METASLIDER_VERSION );
|
484 |
-
|
485 |
-
do_action( 'metaslider_register_admin_styles' );
|
486 |
|
|
|
|
|
|
|
|
|
487 |
}
|
488 |
|
489 |
-
|
490 |
/**
|
491 |
-
*
|
492 |
*/
|
493 |
-
public function
|
494 |
-
|
495 |
-
// media library dependencies
|
496 |
-
wp_enqueue_media();
|
497 |
-
|
498 |
-
// plugin dependencies
|
499 |
-
wp_enqueue_script( 'jquery-ui-core' );
|
500 |
-
wp_enqueue_script( 'jquery-ui-sortable' );
|
501 |
-
wp_enqueue_script( 'metaslider-admin-script', METASLIDER_ASSETS_URL . 'metaslider/admin.js', array( 'jquery' ), METASLIDER_VERSION, true );
|
502 |
-
wp_enqueue_script( 'metaslider-colorbox', METASLIDER_ASSETS_URL . 'colorbox/jquery.colorbox-min.js', array( 'jquery' ), METASLIDER_VERSION, true );
|
503 |
-
wp_enqueue_script( 'metaslider-tipsy', METASLIDER_ASSETS_URL . 'tipsy/jquery.tipsy.js', array( 'jquery' ), METASLIDER_VERSION, true );
|
504 |
-
|
505 |
-
wp_dequeue_script( 'link' ); // WP Posts Filter Fix (Advanced Settings not toggling)
|
506 |
-
wp_dequeue_script( 'ai1ec_requirejs' ); // All In One Events Calendar Fix (Advanced Settings not toggling)
|
507 |
-
|
508 |
-
$this->localize_admin_scripts();
|
509 |
-
|
510 |
-
do_action( 'metaslider_register_admin_scripts' );
|
511 |
-
|
512 |
-
}
|
513 |
-
|
514 |
|
515 |
-
|
516 |
-
* Localise admin script
|
517 |
-
*/
|
518 |
-
public function localize_admin_scripts() {
|
519 |
-
|
520 |
-
wp_localize_script( 'metaslider-admin-script', 'metaslider', array(
|
521 |
-
'url' => __( "URL", "ml-slider" ),
|
522 |
-
'caption' => __( "Caption", "ml-slider" ),
|
523 |
-
'new_window' => __( "New Window", "ml-slider" ),
|
524 |
-
'confirm' => __( "Are you sure?", "ml-slider" ),
|
525 |
-
'ajaxurl' => admin_url( 'admin-ajax.php' ),
|
526 |
-
'change_image' => __( "Select replacement image", "ml-slider"),
|
527 |
-
'resize_nonce' => wp_create_nonce( 'metaslider_resize' ),
|
528 |
-
'addslide_nonce' => wp_create_nonce( 'metaslider_addslide' ),
|
529 |
-
'changeslide_nonce' => wp_create_nonce( 'metaslider_changeslide' ),
|
530 |
-
'iframeurl' => admin_url( 'admin-post.php?action=metaslider_preview' ),
|
531 |
-
'useWithCaution' => __( "Caution: This setting is for advanced developers only. If you're unsure, leave it checked.", "ml-slider" )
|
532 |
-
)
|
533 |
-
);
|
534 |
|
535 |
}
|
536 |
|
@@ -574,7 +413,7 @@ class MetaSliderPlugin {
|
|
574 |
|
575 |
|
576 |
/**
|
577 |
-
* Check our WordPress installation is compatible with
|
578 |
*/
|
579 |
public function do_system_check() {
|
580 |
|
@@ -592,7 +431,7 @@ class MetaSliderPlugin {
|
|
592 |
//update strings
|
593 |
if ( ( isset( $_GET['page'] ) && $_GET['page'] == 'metaslider' ) ) {
|
594 |
$strings['insertMediaTitle'] = __( "Image", "ml-slider" );
|
595 |
-
$strings['insertIntoPost'] = __( "Add to
|
596 |
// remove options
|
597 |
|
598 |
$strings_to_remove = array(
|
@@ -623,7 +462,7 @@ class MetaSliderPlugin {
|
|
623 |
|
624 |
$metaslider_tabs = array( 'post_feed', 'layer', 'youtube', 'vimeo' );
|
625 |
|
626 |
-
// restrict our tab changes to the
|
627 |
if ( ( isset( $_GET['page'] ) && $_GET['page'] == 'metaslider' ) || ( isset( $_GET['tab'] ) && in_array( $_GET['tab'], $metaslider_tabs ) ) ) {
|
628 |
$newtabs = array();
|
629 |
|
@@ -766,50 +605,118 @@ class MetaSliderPlugin {
|
|
766 |
|
767 |
}
|
768 |
|
769 |
-
|
770 |
/**
|
771 |
-
* Delete a slide
|
772 |
-
*
|
773 |
*/
|
774 |
-
public function
|
775 |
-
|
776 |
-
|
777 |
-
|
778 |
-
|
779 |
-
$capability = apply_filters( 'metaslider_capability', 'edit_others_posts' );
|
780 |
-
|
781 |
-
if ( ! current_user_can( $capability ) ) {
|
782 |
-
return;
|
783 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
784 |
|
785 |
-
|
786 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
787 |
|
788 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
789 |
$new_terms = array();
|
790 |
-
$current_terms
|
791 |
-
|
792 |
-
|
793 |
-
foreach ( $current_terms as $current_term ) {
|
794 |
-
if ( $current_term != $term->term_id ) {
|
795 |
-
$new_terms[] = absint( $current_term );
|
796 |
}
|
797 |
}
|
798 |
|
799 |
-
//
|
800 |
-
|
801 |
-
|
802 |
-
|
803 |
-
if ( get_post_type( $slide_id ) === 'ml-slide' ) {
|
804 |
-
$id = wp_update_post( array(
|
805 |
-
'ID' => $slide_id,
|
806 |
-
'post_status' => 'trash'
|
807 |
-
)
|
808 |
-
);
|
809 |
-
}
|
810 |
-
|
811 |
-
wp_redirect( admin_url( "admin.php?page=metaslider&id={$slider_id}" ) );
|
812 |
-
|
813 |
}
|
814 |
|
815 |
|
@@ -941,7 +848,7 @@ class MetaSliderPlugin {
|
|
941 |
|
942 |
// insert the post
|
943 |
$id = wp_insert_post( array(
|
944 |
-
'post_title' => __(
|
945 |
'post_status' => 'publish',
|
946 |
'post_type' => 'ml-slider'
|
947 |
)
|
@@ -1084,8 +991,9 @@ class MetaSliderPlugin {
|
|
1084 |
// navigation row
|
1085 |
if ( $row['type'] == 'navigation' ) {
|
1086 |
$navigation_row = "<tr class='{$row['type']}'><td class='tipsy-tooltip' title=\"{$row['helptext']}\">{$row['label']}</td><td><ul>";
|
1087 |
-
|
1088 |
foreach ( $row['options'] as $k => $v ) {
|
|
|
1089 |
|
1090 |
if ( $row['value'] === true && $k === 'true' ) {
|
1091 |
$checked = checked( true, true, false );
|
@@ -1096,7 +1004,13 @@ class MetaSliderPlugin {
|
|
1096 |
}
|
1097 |
|
1098 |
$disabled = $k == 'thumbnails' ? 'disabled' : '';
|
1099 |
-
$navigation_row .= "<li><label><input type='radio' name='settings[{$id}]' value='{$k}' {$checked} {$disabled}/>{$v['label']}</label
|
|
|
|
|
|
|
|
|
|
|
|
|
1100 |
}
|
1101 |
|
1102 |
$navigation_row .= "</ul></td></tr>";
|
@@ -1131,7 +1045,7 @@ class MetaSliderPlugin {
|
|
1131 |
foreach ( $row['options'] as $k => $v ) {
|
1132 |
$checked = checked( $k, $row['value'], false );
|
1133 |
$return .= "<input class='select-slider' id='{$k}' rel='{$k}' type='radio' name='settings[type]' value='{$k}' {$checked} />
|
1134 |
-
<label for='{$k}'>{$v['label']}</label>";
|
1135 |
}
|
1136 |
|
1137 |
$return .= "</td></tr>";
|
@@ -1225,71 +1139,63 @@ class MetaSliderPlugin {
|
|
1225 |
public function print_slideshow_selector() {
|
1226 |
global $user_ID;
|
1227 |
|
1228 |
-
|
|
|
1229 |
|
1230 |
-
|
|
|
1231 |
|
1232 |
-
|
1233 |
-
|
1234 |
-
|
1235 |
-
|
1236 |
-
|
1237 |
-
|
1238 |
-
|
1239 |
-
|
1240 |
-
|
1241 |
-
if ( $tab['active'] ) {
|
1242 |
-
echo "<div class='nav-tab nav-tab-active'><input type='text' name='title' value='" . esc_attr( $tab['title'] ) . "' onfocus='this.style.width = ((this.value.length + 1) * 9) + \"px\"' /></div>";
|
1243 |
-
} else {
|
1244 |
-
echo "<a href='?page=metaslider&id={$tab['id']}' class='nav-tab'>" . esc_html( $tab['title'] ) . "</a>";
|
1245 |
}
|
|
|
|
|
1246 |
|
1247 |
-
|
1248 |
-
|
1249 |
-
echo "<a href='{$add_url}' id='create_new_tab' class='nav-tab'>+</a>";
|
1250 |
-
echo "</h3>";
|
1251 |
-
|
1252 |
} else {
|
|
|
|
|
1253 |
|
1254 |
-
|
1255 |
-
|
1256 |
-
echo "<div id='message' class='updated'><p>" . __( "New slideshow created. Click 'Add Slide' to get started!", "ml-slider" ) . "</p></div>";
|
1257 |
-
|
1258 |
-
}
|
1259 |
-
|
1260 |
-
echo "<div style='display: none;' id='screen-options-switch-view-wrap'><a class='switchview dashicons-before dashicons-randomize tipsy-tooltip' title='" . __("Switch to Tab view", "ml-slider") . "' href='" . admin_url( "admin-post.php?action=metaslider_switch_view&view=tabs") . "'>" . __("Tabs", "ml-slider") . "</a></div>";
|
1261 |
-
|
1262 |
-
echo "<div class='dropdown_container'><label for='select-slider'>" . __("Select Slider", "ml-slider") . ": </label>";
|
1263 |
-
echo "<select name='select-slider' onchange='if (this.value) window.location.href=this.value'>";
|
1264 |
-
|
1265 |
-
$tabs = $this->all_meta_sliders( 'title' );
|
1266 |
-
|
1267 |
-
foreach ( $tabs as $tab ) {
|
1268 |
-
|
1269 |
$selected = $tab['active'] ? " selected" : "";
|
1270 |
-
|
1271 |
-
if ( $tab['active'] ) {
|
1272 |
-
|
1273 |
$title = $tab['title'];
|
1274 |
-
|
1275 |
}
|
1276 |
-
|
1277 |
echo "<option value='?page=metaslider&id={$tab['id']}'{$selected}>{$tab['title']}</option>";
|
1278 |
-
|
1279 |
}
|
1280 |
-
|
1281 |
-
echo "
|
1282 |
-
echo "<a href='
|
1283 |
-
|
1284 |
}
|
|
|
|
|
1285 |
} else {
|
1286 |
-
echo "<
|
1287 |
-
|
1288 |
-
echo
|
1289 |
-
echo "</
|
1290 |
}
|
1291 |
}
|
1292 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1293 |
|
1294 |
/**
|
1295 |
* Return the users saved view preference.
|
@@ -1310,25 +1216,32 @@ class MetaSliderPlugin {
|
|
1310 |
*/
|
1311 |
public function render_admin_page() {
|
1312 |
|
1313 |
-
//
|
1314 |
-
$slider_id = $this->find_slider(
|
1315 |
-
|
1316 |
-
// load a slider by ID
|
1317 |
-
if ( isset( $_REQUEST['id'] ) ) {
|
1318 |
-
$temp_id = absint( $_REQUEST['id'] );
|
1319 |
|
1320 |
-
|
1321 |
-
|
1322 |
-
|
|
|
1323 |
}
|
1324 |
}
|
1325 |
|
1326 |
-
//
|
1327 |
-
if
|
1328 |
-
|
|
|
|
|
1329 |
}
|
1330 |
|
1331 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1332 |
$this->do_system_check();
|
1333 |
|
1334 |
$slider_id = $this->slider ? $this->slider->id : 0;
|
@@ -1339,7 +1252,17 @@ class MetaSliderPlugin {
|
|
1339 |
var metaslider_slider_id = <?php echo $slider_id; ?>;
|
1340 |
</script>
|
1341 |
|
1342 |
-
<div class="wrap metaslider">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1343 |
<form accept-charset="UTF-8" action="<?php echo admin_url( 'admin-post.php'); ?>" method="post">
|
1344 |
<input type="hidden" name="action" value="metaslider_update_slider">
|
1345 |
<input type="hidden" name="slider_id" value="<?php echo $slider_id; ?>">
|
@@ -1349,7 +1272,7 @@ class MetaSliderPlugin {
|
|
1349 |
|
1350 |
<?php if ( ! $this->slider ) return; ?>
|
1351 |
|
1352 |
-
<div id='poststuff'>
|
1353 |
<div id='post-body' class='metabox-holder columns-2'>
|
1354 |
|
1355 |
<div id='post-body-content'>
|
@@ -1357,19 +1280,31 @@ class MetaSliderPlugin {
|
|
1357 |
|
1358 |
<?php do_action( "metaslider_admin_table_before", $this->slider->id ); ?>
|
1359 |
|
1360 |
-
<table class="widefat sortable">
|
1361 |
<thead>
|
1362 |
<tr>
|
1363 |
-
|
1364 |
-
|
1365 |
-
|
1366 |
-
|
1367 |
-
|
1368 |
-
|
1369 |
-
|
1370 |
-
|
1371 |
-
|
1372 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1373 |
</tr>
|
1374 |
</thead>
|
1375 |
|
@@ -1385,15 +1320,31 @@ class MetaSliderPlugin {
|
|
1385 |
</div>
|
1386 |
</div>
|
1387 |
|
1388 |
-
<div id="postbox-container-1" class="postbox-container">
|
1389 |
<div class='right'>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1390 |
<div class="ms-postbox" id="metaslider_configuration">
|
1391 |
-
<div class='configuration'>
|
1392 |
-
<
|
1393 |
-
|
|
|
|
|
|
|
|
|
|
|
1394 |
<span class="spinner"></span>
|
1395 |
</div>
|
1396 |
-
<div class="inside">
|
1397 |
<table class="settings">
|
1398 |
<tbody>
|
1399 |
<?php
|
@@ -1488,17 +1439,25 @@ class MetaSliderPlugin {
|
|
1488 |
'navigation' => array(
|
1489 |
'priority' => 60,
|
1490 |
'type' => 'navigation',
|
1491 |
-
'label' => __(
|
1492 |
'class' => 'option coin flex nivo responsive',
|
1493 |
-
'value' => $this->slider->get_setting(
|
1494 |
-
'helptext' => __(
|
1495 |
'options' => array(
|
1496 |
-
'false'
|
1497 |
-
'true'
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1498 |
)
|
1499 |
),
|
1500 |
);
|
1501 |
-
|
1502 |
if ( $this->get_view() == 'dropdown' ) {
|
1503 |
$aFields['title'] = array(
|
1504 |
'type' => 'title',
|
@@ -1516,6 +1475,17 @@ class MetaSliderPlugin {
|
|
1516 |
?>
|
1517 |
</tbody>
|
1518 |
</table>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1519 |
</div>
|
1520 |
</div>
|
1521 |
|
@@ -1799,56 +1769,11 @@ class MetaSliderPlugin {
|
|
1799 |
</div>
|
1800 |
</div>
|
1801 |
|
1802 |
-
|
1803 |
-
<div class="handlediv" title="Click to toggle"><br></div><h3 class="hndle"><span><?php _e( "Usage", "ml-slider" ) ?></span></h3>
|
1804 |
-
<div class="inside">
|
1805 |
-
<ul class='tabs'>
|
1806 |
-
<li rel='tab-1' class='selected'><?php _e( "Shortcode", "ml-slider" ) ?></li>
|
1807 |
-
<li rel='tab-2'><?php _e( "Template Include", "ml-slider" ) ?></li>
|
1808 |
-
</ul>
|
1809 |
-
<div class='tabs-content'>
|
1810 |
-
<div class='tab tab-1'>
|
1811 |
-
<p><?php _e( "Copy & paste the shortcode directly into any WordPress post or page.", "ml-slider" ); ?></p>
|
1812 |
-
<input readonly='readonly' type='text' value='[metaslider id=<?php echo $this->slider->id ?>]' /></div>
|
1813 |
-
<div class='tab tab-2' style='display: none'>
|
1814 |
-
<p><?php _e( "Copy & paste this code into a template file to include the slideshow within your theme.", "ml-slider" ); ?></p>
|
1815 |
-
<textarea readonly='readonly'><?php echo do_shortcode("[metaslider id=<?php echo $this->slider->id ?>]"); ?></textarea></div>
|
1816 |
-
</div>
|
1817 |
-
</div>
|
1818 |
-
</div>
|
1819 |
-
|
1820 |
-
<?php if ( ! is_plugin_active('ml-slider-pro/ml-slider-pro.php') ) : ?>
|
1821 |
-
|
1822 |
-
<div class="ms-postbox social" id="metaslider_social">
|
1823 |
-
<div class="inside">
|
1824 |
-
<ul class='info'>
|
1825 |
-
<li style='width: 33%;'>
|
1826 |
-
<a href="https://twitter.com/share" class="twitter-share-button" data-url="https://www.metaslider.com" data-text="Check out Meta Slider, an easy to use slideshow plugin for WordPress" data-hashtags="metaslider, wordpress, slideshow">Tweet</a>
|
1827 |
-
<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script>
|
1828 |
-
</li>
|
1829 |
-
<li style='width: 34%;'>
|
1830 |
-
<div class="g-plusone" data-size="medium" data-href="https://www.metaslider.com"></div>
|
1831 |
-
<script type="text/javascript">
|
1832 |
-
(function() {
|
1833 |
-
var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
|
1834 |
-
po.src = 'https://apis.google.com/js/plusone.js';
|
1835 |
-
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
|
1836 |
-
})();
|
1837 |
-
</script>
|
1838 |
-
</li>
|
1839 |
-
<li style='width: 33%;'>
|
1840 |
-
<iframe style='border:none; overflow:hidden; width:80px; height:21px;' src="//www.facebook.com/plugins/like.php?href=https%3A%2F%2Fwww.facebook.com%2Fwpmetaslider&width=120&layout=button_count&action=like&show_faces=true&share=false&height=21&appId=156668027835524" scrolling="no" frameborder="0" allowTransparency="true"></iframe>
|
1841 |
-
</li>
|
1842 |
-
</ul>
|
1843 |
-
</div>
|
1844 |
-
</div>
|
1845 |
-
|
1846 |
-
<?php endif; ?>
|
1847 |
-
|
1848 |
-
<?php $url = wp_nonce_url( admin_url( "admin-post.php?action=metaslider_delete_slider&slider_id={$this->slider->id}" ), "metaslider_delete_slider" ); ?>
|
1849 |
|
1850 |
-
<a class='delete-slider alignright button-
|
1851 |
</div>
|
|
|
1852 |
</div>
|
1853 |
</div>
|
1854 |
</div>
|
@@ -1885,7 +1810,7 @@ class MetaSliderPlugin {
|
|
1885 |
|
1886 |
|
1887 |
/**
|
1888 |
-
* Append the 'Choose
|
1889 |
*/
|
1890 |
public function admin_footer() {
|
1891 |
|
@@ -1910,7 +1835,7 @@ class MetaSliderPlugin {
|
|
1910 |
<div class="wrap">
|
1911 |
<?php
|
1912 |
if ( count( $sliders ) ) {
|
1913 |
-
echo "<h3 style='margin-bottom: 20px;'>" . __( "Insert
|
1914 |
echo "<select id='metaslider-select'>";
|
1915 |
echo "<option disabled=disabled>" . __( "Choose slideshow", "ml-slider" ) . "</option>";
|
1916 |
foreach ( $sliders as $slider ) {
|
@@ -1931,7 +1856,7 @@ class MetaSliderPlugin {
|
|
1931 |
|
1932 |
|
1933 |
/**
|
1934 |
-
* Return the
|
1935 |
*/
|
1936 |
public function upgrade_to_pro_tab() {
|
1937 |
|
@@ -1947,7 +1872,7 @@ class MetaSliderPlugin {
|
|
1947 |
*/
|
1948 |
public function upgrade_to_pro_iframe() {
|
1949 |
|
1950 |
-
wp_enqueue_style( 'metaslider-admin-styles',
|
1951 |
wp_enqueue_script( 'google-font-api', 'http://fonts.googleapis.com/css?family=PT+Sans:400,700' );
|
1952 |
|
1953 |
$link = apply_filters( 'metaslider_hoplink', 'https://www.metaslider.com/upgrade/' );
|
@@ -1964,46 +1889,88 @@ class MetaSliderPlugin {
|
|
1964 |
}
|
1965 |
|
1966 |
/**
|
1967 |
-
*
|
1968 |
*/
|
1969 |
-
public function
|
1970 |
-
|
1971 |
-
if (
|
1972 |
-
$
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1973 |
}
|
|
|
|
|
1974 |
|
1975 |
-
|
1976 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1977 |
}
|
1978 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1979 |
|
1980 |
/**
|
1981 |
-
|
1982 |
*/
|
1983 |
-
|
1984 |
-
|
1985 |
-
|
1986 |
-
|
1987 |
-
|
1988 |
-
|
1989 |
-
|
1990 |
-
|
1991 |
-
|
1992 |
-
|
1993 |
-
|
1994 |
-
|
1995 |
-
|
1996 |
-
|
1997 |
-
|
1998 |
-
|
1999 |
-
|
2000 |
}
|
2001 |
|
|
|
|
|
|
|
|
|
|
|
2002 |
}
|
2003 |
|
|
|
|
|
|
|
|
|
|
|
|
|
2004 |
|
2005 |
/**
|
2006 |
-
* Add a 'property=stylesheet' attribute to the
|
2007 |
*
|
2008 |
* @since 3.3.4
|
2009 |
* @param string $tag
|
1 |
<?php
|
2 |
/*
|
3 |
+
* MetaSlider. Slideshow plugin for WordPress.
|
4 |
*
|
5 |
+
* Plugin Name: MetaSlider
|
6 |
* Plugin URI: https://www.metaslider.com
|
7 |
* Description: Easy to use slideshow plugin. Create SEO optimised responsive slideshows with Nivo Slider, Flex Slider, Coin Slider and Responsive Slides.
|
8 |
+
* Version: 3.6.0
|
9 |
* Author: Team Updraft
|
10 |
* Author URI: https://www.metaslider.com
|
11 |
* License: GPL-2.0+
|
31 |
/**
|
32 |
* @var string
|
33 |
*/
|
34 |
+
public $version = '3.6.0';
|
35 |
|
36 |
+
/**
|
37 |
+
* @var string The lowest tier price for upgrades
|
38 |
+
*/
|
39 |
+
public $pro_price = '39';
|
40 |
|
41 |
/**
|
42 |
* @var MetaSlider
|
58 |
* Constructor
|
59 |
*/
|
60 |
public function __construct() {
|
|
|
61 |
$this->define_constants();
|
62 |
$this->includes();
|
63 |
$this->setup_actions();
|
64 |
$this->setup_filters();
|
65 |
$this->setup_shortcode();
|
66 |
$this->register_slide_types();
|
67 |
+
$this->admin = new MetaSlider_Admin_Pages($this);
|
68 |
}
|
69 |
|
70 |
|
71 |
/**
|
72 |
+
* Define MetaSlider constants
|
73 |
*/
|
74 |
private function define_constants() {
|
75 |
+
define('METASLIDER_VERSION', $this->version);
|
76 |
+
define('METASLIDER_BASE_URL', trailingslashit(plugins_url('ml-slider')));
|
77 |
+
define('METASLIDER_ASSETS_URL', trailingslashit(METASLIDER_BASE_URL . 'assets'));
|
78 |
+
define('METASLIDER_ADMIN_URL', trailingslashit(METASLIDER_BASE_URL . 'admin'));
|
79 |
+
define('METASLIDER_PATH', plugin_dir_path(__FILE__));
|
80 |
+
define('METASLIDER_PRO_PRICE', $this->pro_price);
|
81 |
}
|
82 |
|
|
|
83 |
/**
|
84 |
+
* All MetaSlider classes
|
85 |
*/
|
86 |
private function plugin_classes() {
|
|
|
87 |
return array(
|
88 |
'metaslider' => METASLIDER_PATH . 'inc/slider/metaslider.class.php',
|
89 |
'metacoinslider' => METASLIDER_PATH . 'inc/slider/metaslider.coin.class.php',
|
95 |
'metasliderimagehelper' => METASLIDER_PATH . 'inc/metaslider.imagehelper.class.php',
|
96 |
'metaslidersystemcheck' => METASLIDER_PATH . 'inc/metaslider.systemcheck.class.php',
|
97 |
'metaslider_widget' => METASLIDER_PATH . 'inc/metaslider.widget.class.php',
|
98 |
+
'simple_html_dom' => METASLIDER_PATH . 'inc/simple_html_dom.php',
|
99 |
+
'metaslider_notices' => METASLIDER_PATH . 'admin/Notices.php',
|
100 |
+
'metaslider_admin_pages' => METASLIDER_PATH . 'admin/Pages.php',
|
101 |
+
'metaslider_tour' => METASLIDER_PATH . 'admin/Tour.php'
|
102 |
);
|
|
|
103 |
}
|
104 |
|
105 |
|
107 |
* Load required classes
|
108 |
*/
|
109 |
private function includes() {
|
110 |
+
require_once(METASLIDER_PATH . 'admin/lib/helpers.php');
|
111 |
$autoload_is_disabled = defined( 'METASLIDER_AUTOLOAD_CLASSES' ) && METASLIDER_AUTOLOAD_CLASSES === false;
|
112 |
|
113 |
if ( function_exists( "spl_autoload_register" ) && ! ( $autoload_is_disabled ) ) {
|
134 |
|
135 |
|
136 |
/**
|
137 |
+
* Autoload MetaSlider classes to reduce memory consumption
|
138 |
*/
|
139 |
public function autoload( $class ) {
|
140 |
|
161 |
|
162 |
|
163 |
/**
|
164 |
+
* Hook MetaSlider into WordPress
|
165 |
*/
|
166 |
private function setup_actions() {
|
167 |
+
add_action('admin_menu', array($this, 'register_admin_pages'), 9553);
|
168 |
+
add_action('init', array($this, 'register_post_types'));
|
169 |
+
add_action('init', array($this, 'register_taxonomy'));
|
170 |
+
add_action('init', array($this, 'load_plugin_textdomain'));
|
171 |
+
add_action('admin_footer', array($this, 'admin_footer'), 11);
|
172 |
+
add_action('widgets_init', array($this, 'register_metaslider_widget'));
|
173 |
+
|
174 |
+
add_action('admin_post_metaslider_preview', array($this, 'do_preview'));
|
175 |
+
add_action('admin_post_metaslider_switch_view', array($this, 'switch_view'));
|
176 |
+
add_action('admin_post_metaslider_delete_slide', array($this, 'delete_slide'));
|
177 |
+
add_action('admin_post_metaslider_delete_slider', array($this, 'delete_slider'));
|
178 |
+
add_action('admin_post_metaslider_create_slider', array($this, 'create_slider'));
|
179 |
+
add_action('admin_post_metaslider_update_slider', array($this, 'update_slider'));
|
180 |
+
|
181 |
+
add_action('media_upload_vimeo', array($this, 'upgrade_to_pro_tab'));
|
182 |
+
add_action('media_upload_youtube', array($this, 'upgrade_to_pro_tab'));
|
183 |
+
add_action('media_upload_post_feed', array($this, 'upgrade_to_pro_tab'));
|
184 |
+
add_action('media_upload_layer', array($this, 'upgrade_to_pro_tab'));
|
185 |
+
|
186 |
+
// TODO: Refactor to Slide class object
|
187 |
+
add_action('wp_ajax_delete_slide', array($this, 'ajax_delete_slide'));
|
188 |
+
add_action('wp_ajax_undelete_slide', array($this, 'ajax_undelete_slide'));
|
189 |
+
|
190 |
+
// TODO: Make this work
|
191 |
+
// register_activation_hook(plugin_basename(__FILE__), array($this, 'after_activation'));
|
192 |
}
|
193 |
|
194 |
|
195 |
/**
|
196 |
+
* Hook MetaSlider into WordPress
|
197 |
*/
|
198 |
private function setup_filters() {
|
199 |
+
add_filter('media_upload_tabs', array($this, 'custom_media_upload_tab_name'), 998);
|
200 |
+
add_filter('media_view_strings', array($this, 'custom_media_uploader_tabs'), 5);
|
201 |
+
add_filter('media_buttons_context', array($this, 'insert_metaslider_button'));
|
202 |
+
add_filter("plugin_row_meta", array($this, 'get_extra_meta_links'), 10, 4);
|
203 |
+
add_action('admin_head', array($this, 'add_star_styles'));
|
204 |
+
add_action('admin_head', array($this, 'add_tour_nonce_to_activation_page'));
|
|
|
|
|
|
|
205 |
|
206 |
// html5 compatibility for stylesheets enqueued within <body>
|
207 |
+
add_filter('style_loader_tag', array($this, 'add_property_attribute_to_stylesheet_links'), 11, 2);
|
|
|
208 |
}
|
209 |
|
210 |
|
211 |
/**
|
212 |
+
* Register MetaSlider widget
|
213 |
*/
|
214 |
public function register_metaslider_widget() {
|
215 |
+
register_widget('MetaSlider_Widget');
|
|
|
|
|
216 |
}
|
217 |
|
218 |
|
238 |
'show_in_nav_menus' => false,
|
239 |
'show_ui' => $show_ui,
|
240 |
'labels' => array(
|
241 |
+
'name' => 'MetaSlider'
|
242 |
)
|
243 |
)
|
244 |
);
|
296 |
|
297 |
}
|
298 |
|
|
|
299 |
/**
|
300 |
+
* Add the menu pages
|
301 |
+
*/
|
302 |
+
public function register_admin_pages() {
|
303 |
+
if (metaslider_is_pro_active()) {
|
304 |
+
$this->admin->add_page('MetaSlider Pro', 'metaslider');
|
305 |
+
} else {
|
306 |
+
$this->admin->add_page('MetaSlider');
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
307 |
}
|
308 |
|
309 |
+
if (metaslider_sees_upgrade_page()) {
|
310 |
+
$this->admin->add_page(__('Add-ons', 'ml-slider'), 'upgrade', 'metaslider');
|
311 |
+
}
|
312 |
}
|
313 |
|
|
|
314 |
/**
|
315 |
* Shortcode used to display slideshow
|
316 |
*
|
342 |
|
343 |
// check the slider is published and the ID is correct
|
344 |
if ( ! $slider || $slider->post_status != 'publish' || $slider->post_type != 'ml-slider' ) {
|
345 |
+
return "<!-- MetaSlider {$atts['id']} not found -->";
|
346 |
}
|
347 |
|
348 |
// lets go
|
353 |
|
354 |
}
|
355 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
356 |
/**
|
357 |
+
* Set first activation option to database
|
358 |
*/
|
359 |
+
public function after_activation() {
|
|
|
|
|
|
|
|
|
|
|
|
|
360 |
|
361 |
+
// Set date showing the first activation and redirect
|
362 |
+
if (!get_option('ms_was_installed_on')) {
|
363 |
+
update_option('ms_was_installed_on', time());
|
364 |
+
}
|
365 |
}
|
366 |
|
|
|
367 |
/**
|
368 |
+
* Initialise translations
|
369 |
*/
|
370 |
+
public function load_plugin_textdomain() {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
371 |
|
372 |
+
load_plugin_textdomain( 'ml-slider', false, dirname( plugin_basename( __FILE__ ) ) . '/languages/' );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
373 |
|
374 |
}
|
375 |
|
413 |
|
414 |
|
415 |
/**
|
416 |
+
* Check our WordPress installation is compatible with MetaSlider
|
417 |
*/
|
418 |
public function do_system_check() {
|
419 |
|
431 |
//update strings
|
432 |
if ( ( isset( $_GET['page'] ) && $_GET['page'] == 'metaslider' ) ) {
|
433 |
$strings['insertMediaTitle'] = __( "Image", "ml-slider" );
|
434 |
+
$strings['insertIntoPost'] = __( "Add to slideshow", "ml-slider" );
|
435 |
// remove options
|
436 |
|
437 |
$strings_to_remove = array(
|
462 |
|
463 |
$metaslider_tabs = array( 'post_feed', 'layer', 'youtube', 'vimeo' );
|
464 |
|
465 |
+
// restrict our tab changes to the MetaSlider plugin page
|
466 |
if ( ( isset( $_GET['page'] ) && $_GET['page'] == 'metaslider' ) || ( isset( $_GET['tab'] ) && in_array( $_GET['tab'], $metaslider_tabs ) ) ) {
|
467 |
$newtabs = array();
|
468 |
|
605 |
|
606 |
}
|
607 |
|
|
|
608 |
/**
|
609 |
+
* Delete a slide via ajax.
|
610 |
+
* @return string Returns the status of the request
|
611 |
*/
|
612 |
+
public function ajax_undelete_slide() {
|
613 |
+
if (!wp_verify_nonce($_REQUEST['_wpnonce'], 'metaslider_undelete_slide')) {
|
614 |
+
return wp_send_json_error(array(
|
615 |
+
'message' => __('The security check failed. Please refresh the page and try again.', 'ml-slider')
|
616 |
+
), 401);
|
|
|
|
|
|
|
|
|
617 |
}
|
618 |
+
|
619 |
+
$result = $this->undelete_slide(absint($_POST['slide_id']), absint($_POST['slider_id']));
|
620 |
+
|
621 |
+
if (is_wp_error($result)) {
|
622 |
+
return wp_send_json_error(array(
|
623 |
+
'message' => $result->get_error_message()
|
624 |
+
), 409);
|
625 |
+
}
|
626 |
+
|
627 |
+
return wp_send_json_success(array(
|
628 |
+
'message' => __('The slide was successfully restored', 'ml-slider'),
|
629 |
+
), 200);
|
630 |
+
}
|
631 |
|
632 |
+
/**
|
633 |
+
* Undeletes a slide.
|
634 |
+
* @param int $slide_id The ID of the slide
|
635 |
+
* @param int $slider_id The ID of the slider (for legacy purposes)
|
636 |
+
* @return mixed
|
637 |
+
*/
|
638 |
+
public function undelete_slide($slide_id, $slider_id) {
|
639 |
+
if ('ml-slide' === get_post_type($slide_id)) {
|
640 |
+
return wp_update_post(array(
|
641 |
+
'ID' => $slide_id,
|
642 |
+
'post_status' => 'publish'
|
643 |
+
), new WP_Error('update_failed', __('The attempt to restore the slide failed.', 'ml-slider'), array('status' => 409)));
|
644 |
+
}
|
645 |
+
|
646 |
+
// Legacy: This removes the relationship between the slider and slide
|
647 |
+
// This restores the relationship between a slide and slider.
|
648 |
+
// If using a newer version, this relationship is never lost on delete.
|
649 |
+
|
650 |
+
// Get the slider's term and apply it to the slide.
|
651 |
+
$term = get_term_by('name', $slider_id, 'ml-slider');
|
652 |
+
return wp_set_object_terms($slide_id, $term->term_id, 'ml-slider');
|
653 |
+
}
|
654 |
+
|
655 |
+
/**
|
656 |
+
* Delete a slide via ajax.
|
657 |
+
*/
|
658 |
+
public function ajax_delete_slide() {
|
659 |
+
if (!wp_verify_nonce($_REQUEST['_wpnonce'], 'metaslider_delete_slide')) {
|
660 |
+
return wp_send_json_error(array(
|
661 |
+
'message' => __('The security check failed. Please refresh the page and try again.', 'ml-slider')
|
662 |
+
), 401);
|
663 |
+
}
|
664 |
+
|
665 |
+
$result = $this->delete_slide(absint($_POST['slide_id']), absint($_POST['slider_id']));
|
666 |
+
|
667 |
+
if (is_wp_error($result)) {
|
668 |
+
return wp_send_json_error(array(
|
669 |
+
'message' => $result->get_error_message()
|
670 |
+
), 409);
|
671 |
+
}
|
672 |
+
|
673 |
+
return wp_send_json_success(array(
|
674 |
+
'message' => __('The slide was successfully trashed', 'ml-slider'),
|
675 |
+
), 200);
|
676 |
+
}
|
677 |
|
678 |
+
/**
|
679 |
+
* Delete a slide by either trashing it or for
|
680 |
+
* legacy reasons removing the taxonomy relationship.
|
681 |
+
* @param int $slide_id
|
682 |
+
* @param int $slider_id
|
683 |
+
* @return mixed Will return the terms or WP_Error
|
684 |
+
*/
|
685 |
+
public function delete_slide($slide_id, $slider_id) {
|
686 |
+
if ('ml-slide' === get_post_type($slide_id)) {
|
687 |
+
return wp_update_post(array(
|
688 |
+
'ID' => $slide_id,
|
689 |
+
'post_status' => 'trash'
|
690 |
+
), new WP_Error('update_failed', 'The attempt to delete the slide failed.', array('status' => 409)));
|
691 |
+
}
|
692 |
+
|
693 |
+
// Legacy: This removes the relationship between the slider and slide
|
694 |
+
/* A slider with ID 216 might have a term_id of 7
|
695 |
+
* A slide with ID 217 could have a term_taxonomy_id of 7
|
696 |
+
* Multiple slides would have this term_taxonomy_id of 7 */
|
697 |
+
|
698 |
+
// This returns the term_taxonomy_id (7 from example)
|
699 |
+
$current_terms = wp_get_object_terms($slide_id, 'ml-slider', array('fields' => 'ids'));
|
700 |
+
|
701 |
+
// This returns the term object, named after the slider ID
|
702 |
+
// The $term->term_id would be 7 in the example above
|
703 |
+
// It also includes the count of slides attached to the slider
|
704 |
+
$term = get_term_by('name', $slider_id, 'ml-slider');
|
705 |
+
|
706 |
+
// I'm not sure why this is here. It seems this is only useful if
|
707 |
+
// a slide was attached to multiple sliders. A slide should only
|
708 |
+
// have one $current_terms (7 above)
|
709 |
$new_terms = array();
|
710 |
+
foreach ($current_terms as $current_term) {
|
711 |
+
if ($current_term != $term->term_id) {
|
712 |
+
$new_terms[] = absint($current_term);
|
|
|
|
|
|
|
713 |
}
|
714 |
}
|
715 |
|
716 |
+
// This only works becasue $new_terms is an empty array,
|
717 |
+
// which deletes the relationship. I'm leaving the loop above
|
718 |
+
// in case it's here for some legacy reason I'm unaware of.
|
719 |
+
return wp_set_object_terms($slide_id, $new_terms, 'ml-slider');
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
720 |
}
|
721 |
|
722 |
|
848 |
|
849 |
// insert the post
|
850 |
$id = wp_insert_post( array(
|
851 |
+
'post_title' => __("New Slideshow", "ml-slider"),
|
852 |
'post_status' => 'publish',
|
853 |
'post_type' => 'ml-slider'
|
854 |
)
|
991 |
// navigation row
|
992 |
if ( $row['type'] == 'navigation' ) {
|
993 |
$navigation_row = "<tr class='{$row['type']}'><td class='tipsy-tooltip' title=\"{$row['helptext']}\">{$row['label']}</td><td><ul>";
|
994 |
+
|
995 |
foreach ( $row['options'] as $k => $v ) {
|
996 |
+
$tease = isset($v['addon_required']) ? 'disabled' : '';
|
997 |
|
998 |
if ( $row['value'] === true && $k === 'true' ) {
|
999 |
$checked = checked( true, true, false );
|
1004 |
}
|
1005 |
|
1006 |
$disabled = $k == 'thumbnails' ? 'disabled' : '';
|
1007 |
+
$navigation_row .= "<li><label class='{$tease}'><input {$tease} type='radio' name='settings[{$id}]' value='{$k}' {$checked} {$disabled}/>{$v['label']}</label>";
|
1008 |
+
|
1009 |
+
if (isset($v['addon_required']) && $v['addon_required']) {
|
1010 |
+
$navigation_row .= sprintf(" <a target='_blank' class='get-addon' href='%s' title='%s'>%s</a>", metaslider_get_upgrade_link(), __('Get the add-on pack today!', 'ml-slider'), __('Learn More', 'ml-slider'));
|
1011 |
+
}
|
1012 |
+
|
1013 |
+
$navigation_row .= "</li>";
|
1014 |
}
|
1015 |
|
1016 |
$navigation_row .= "</ul></td></tr>";
|
1045 |
foreach ( $row['options'] as $k => $v ) {
|
1046 |
$checked = checked( $k, $row['value'], false );
|
1047 |
$return .= "<input class='select-slider' id='{$k}' rel='{$k}' type='radio' name='settings[type]' value='{$k}' {$checked} />
|
1048 |
+
<label tabindex='0' for='{$k}'>{$v['label']}</label>";
|
1049 |
}
|
1050 |
|
1051 |
$return .= "</td></tr>";
|
1139 |
public function print_slideshow_selector() {
|
1140 |
global $user_ID;
|
1141 |
|
1142 |
+
// First check if we have any slideshows yet
|
1143 |
+
if ($tabs = $this->all_meta_sliders()) {
|
1144 |
|
1145 |
+
// Next check if they have the tabs view selected
|
1146 |
+
if ('tabs' == $this->get_view()) {
|
1147 |
|
1148 |
+
// Render the tabs
|
1149 |
+
echo "<div class='nav-tab-wrapper'>";
|
1150 |
+
foreach ($tabs as $tab) {
|
1151 |
+
if ( $tab['active'] ) {
|
1152 |
+
echo "<div class='nav-tab nav-tab-active'><input class='no_last_pass' type='text' name='title' value='" . esc_attr($tab['title']) . "'></div>";
|
1153 |
+
} else {
|
1154 |
+
echo "<a href='?page=metaslider&id={$tab['id']}' title= '" . esc_attr($tab['title']) . "' class='nav-tab'>" . esc_html( $tab['title'] ) . "</a>";
|
1155 |
+
}
|
|
|
|
|
|
|
|
|
|
|
1156 |
}
|
1157 |
+
echo $this->get_add_slideshow_button("New", 'nav-tab');
|
1158 |
+
echo "</div>";
|
1159 |
|
1160 |
+
// This will render the select dropdown view
|
1161 |
+
// TODO make this resemble the WP Nav menu UI perhaps
|
|
|
|
|
|
|
1162 |
} else {
|
1163 |
+
echo "<div class='manage-menus'><label for='select-slideshow' class='selected-menu'>" . __("Select Slideshow", "ml-slider") . ": </label>";
|
1164 |
+
echo "<select name='select-slideshow' onchange='if (this.value) window.location.href=this.value'>";
|
1165 |
|
1166 |
+
$tabs = $this->all_meta_sliders('title');
|
1167 |
+
foreach ($tabs as $tab) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1168 |
$selected = $tab['active'] ? " selected" : "";
|
1169 |
+
if ($tab['active']) {
|
|
|
|
|
1170 |
$title = $tab['title'];
|
|
|
1171 |
}
|
|
|
1172 |
echo "<option value='?page=metaslider&id={$tab['id']}'{$selected}>{$tab['title']}</option>";
|
|
|
1173 |
}
|
1174 |
+
echo "</select>";
|
1175 |
+
echo "<span class='add-new-menu-action'> " . __( 'or', "ml-slider" ) . " ";
|
1176 |
+
echo "<a href='". wp_nonce_url(admin_url("admin-post.php?action=metaslider_create_slider"), "metaslider_create_slider") ."' id='create_new_tab' class='' title='" . __('Create a New Slideshow', 'ml-slider') . "'>create a new slideshow</a>";
|
1177 |
+
echo "</span></div>";
|
1178 |
}
|
1179 |
+
|
1180 |
+
// This section is shown when there are no slideshows
|
1181 |
} else {
|
1182 |
+
echo "<div class='nav-tab-wrapper'>";
|
1183 |
+
echo "<div class='fake-tabs nav-tab nav-tab-active'><span class='blurred-out'>" . __('New Slideshow', 'ml-slider') ."</span></div>";
|
1184 |
+
echo $this->get_add_slideshow_button("New", 'nav-tab');
|
1185 |
+
echo "</div>";
|
1186 |
}
|
1187 |
}
|
1188 |
|
1189 |
+
/**
|
1190 |
+
* Return a button to sadd a new slideshow.
|
1191 |
+
*/
|
1192 |
+
protected function get_add_slideshow_button($text = '', $classes = '') {
|
1193 |
+
$add_url = wp_nonce_url(admin_url("admin-post.php?action=metaslider_create_slider"), "metaslider_create_slider");
|
1194 |
+
if ('' == $text) {
|
1195 |
+
$text = __('Add a New Slideshow', 'ml-slider');
|
1196 |
+
}
|
1197 |
+
return "<a href='{$add_url}' id='create_new_tab' class='ml-add-new {$classes}' title='" . __('Add a New Slideshow', 'ml-slider') . "'><i><svg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' class='feather feather-plus-circle'><circle cx='12' cy='12' r='10'/><line x1='12' y1='8' x2='12' y2='16'/><line x1='8' y1='12' x2='16' y2='12'/></svg></i> {$text}</a>";
|
1198 |
+
}
|
1199 |
|
1200 |
/**
|
1201 |
* Return the users saved view preference.
|
1216 |
*/
|
1217 |
public function render_admin_page() {
|
1218 |
|
1219 |
+
// Default to the most recently modified slider
|
1220 |
+
$slider_id = $this->find_slider('modified', 'DESC');
|
|
|
|
|
|
|
|
|
1221 |
|
1222 |
+
// If the id parameter exists, verify and use that.
|
1223 |
+
if (isset($_REQUEST['id']) && $id = $_REQUEST['id']) {
|
1224 |
+
if (in_array(get_post_status(absint($id)), array('publish', 'inherit'))) {
|
1225 |
+
$slider_id = $id;
|
1226 |
}
|
1227 |
}
|
1228 |
|
1229 |
+
// "Set the slider"
|
1230 |
+
// TODO figure out what this does and if it can be better stated
|
1231 |
+
// Perhaps maybe "apply_settings()" or something.
|
1232 |
+
if ($slider_id) {
|
1233 |
+
$this->set_slider($slider_id);
|
1234 |
}
|
1235 |
|
1236 |
+
echo "<div class='wrap metaslider-ui-top' style='margin-top:0;'>";
|
1237 |
+
echo $this->documentation_button();
|
1238 |
+
echo $this->toggle_layout_button();
|
1239 |
+
|
1240 |
+
if (metaslider_sees_call_to_action()) {
|
1241 |
+
echo $this->upgrade_to_pro_top_button();
|
1242 |
+
}
|
1243 |
+
echo "</div>";
|
1244 |
+
|
1245 |
$this->do_system_check();
|
1246 |
|
1247 |
$slider_id = $this->slider ? $this->slider->id : 0;
|
1252 |
var metaslider_slider_id = <?php echo $slider_id; ?>;
|
1253 |
</script>
|
1254 |
|
1255 |
+
<div class="wrap metaslider metaslider-ui">
|
1256 |
+
<h1 class="wp-heading-inline metaslider-title">
|
1257 |
+
<img width=50 height=50 src="<?php echo METASLIDER_ADMIN_URL ?>images/metaslider_logo_large.png" alt="MetaSlider">
|
1258 |
+
MetaSlider
|
1259 |
+
<?php if (metaslider_is_pro_active()) {
|
1260 |
+
echo ' Pro';
|
1261 |
+
} ?>
|
1262 |
+
</h1>
|
1263 |
+
<?php if (metaslider_sees_notices($this)) {
|
1264 |
+
echo $this->notices->do_notice(false, 'header', true);
|
1265 |
+
} ?>
|
1266 |
<form accept-charset="UTF-8" action="<?php echo admin_url( 'admin-post.php'); ?>" method="post">
|
1267 |
<input type="hidden" name="action" value="metaslider_update_slider">
|
1268 |
<input type="hidden" name="slider_id" value="<?php echo $slider_id; ?>">
|
1272 |
|
1273 |
<?php if ( ! $this->slider ) return; ?>
|
1274 |
|
1275 |
+
<div id='poststuff' class="metaslider-inner wp-clearfix">
|
1276 |
<div id='post-body' class='metabox-holder columns-2'>
|
1277 |
|
1278 |
<div id='post-body-content'>
|
1280 |
|
1281 |
<?php do_action( "metaslider_admin_table_before", $this->slider->id ); ?>
|
1282 |
|
1283 |
+
<table class="widefat sortable metaslider-slides-container">
|
1284 |
<thead>
|
1285 |
<tr>
|
1286 |
+
<?php if (metaslider_viewing_trashed_slides($this->slider->id)) {
|
1287 |
+
|
1288 |
+
// If they are on the trash page, show them?>
|
1289 |
+
<th class="trashed-header">
|
1290 |
+
<h3><i><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-trash-2"><polyline points="3 6 5 6 21 6"/><path d="M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2"/><line x1="10" y1="11" x2="10" y2="17"/><line x1="14" y1="11" x2="14" y2="17"/></svg></i> <?php _e('Trashed Slides', 'ml-slider'); ?></h3>
|
1291 |
+
<small> <?php printf(__('<a href="%s">view active</a>', 'ml-slider'), admin_url("?page=metaslider&id={$this->slider->id}")); ?></small>
|
1292 |
+
</th>
|
1293 |
+
<?php } else { ?>
|
1294 |
+
<th class="slider-title" colspan="2">
|
1295 |
+
<h3 class="alignleft"><?php echo get_the_title($this->slider->id) ?></h3>
|
1296 |
+
<input class="metaslider-shortcode" readonly='readonly' onclick="this.select()" type='text' value='[metaslider id=<?php echo $this->slider->id ?>]'>
|
1297 |
+
<?php if (!metaslider_viewing_trashed_slides($this->slider->id)) {
|
1298 |
+
|
1299 |
+
// Remove the actions on trashed view?>
|
1300 |
+
<button class='ml-button ml-has-icon ml-skinless-button alignright add-slide' data-editor='content' title='<?php _e( "Add a New Slide", "ml-slider" ) ?>'>
|
1301 |
+
<i style="top:0;"><svg xmlns="http://www.w3.org/2000/svg" width="17" height="17" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-plus-circle"><circle cx="12" cy="12" r="10"/><line x1="12" y1="8" x2="12" y2="16"/><line x1="8" y1="12" x2="16" y2="12"/></svg></i>
|
1302 |
+
<span><?php _e("Add Slide", "ml-slider") ?></span>
|
1303 |
+
</button>
|
1304 |
+
<?php } ?>
|
1305 |
+
<?php do_action( "metaslider_admin_table_header_right", $this->slider->id ); ?>
|
1306 |
+
</th>
|
1307 |
+
<?php } ?>
|
1308 |
</tr>
|
1309 |
</thead>
|
1310 |
|
1320 |
</div>
|
1321 |
</div>
|
1322 |
|
1323 |
+
<div id="postbox-container-1" class="postbox-container ml-sidebar metaslider-settings-area">
|
1324 |
<div class='right'>
|
1325 |
+
<?php if (metaslider_viewing_trashed_slides($this->slider->id)) {
|
1326 |
+
|
1327 |
+
// Show a notice explaining the trash?>
|
1328 |
+
<div class="ms-postbox trashed-notice">
|
1329 |
+
<div class="notice-info"><?php printf(__('You are viewing slides that have been trashed, which will be automatically deleted in %s days. Click <a href="%s">here</a> to view active slides.', 'ml-slider'), EMPTY_TRASH_DAYS, admin_url("?page=metaslider&id={$this->slider->id}")); ?></div>
|
1330 |
+
|
1331 |
+
<?php // TODO this is a temp fix to avoid a compatability check in pro
|
1332 |
+
echo "<input type='checkbox' style='display:none;' checked class='select-slider' rel='flex'></inpu>";
|
1333 |
+
?>
|
1334 |
+
</div>
|
1335 |
+
<?php } else {?>
|
1336 |
<div class="ms-postbox" id="metaslider_configuration">
|
1337 |
+
<div class='configuration metaslider-actions'>
|
1338 |
+
<button class='metaslider-preview ml-button ml-has-icon ml-skinless-button' type='submit' id='ms-preview' title='<?php _e("Preview Slideshow", "ml-slider") ?>' data-slider_id='<?php echo $this->slider->id ?>' data-slider_width='<?php echo $this->slider->get_setting("width"); ?>' data-slider_height='<?php echo $this->slider->get_setting("height") ?>'>
|
1339 |
+
<i><svg xmlns="http://www.w3.org/2000/svg" width="17" height="17" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-eye"><path d="M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"/><circle cx="12" cy="12" r="3"/></svg></i>
|
1340 |
+
<span><?php _e("Preview", "ml-slider") ?></span>
|
1341 |
+
</button>
|
1342 |
+
<button class='alignright button button-primary' type='submit' name='save' id='ms-save'>
|
1343 |
+
<?php _e("Save", "ml-slider"); ?>
|
1344 |
+
</button>
|
1345 |
<span class="spinner"></span>
|
1346 |
</div>
|
1347 |
+
<div class="inside wp-clearfix">
|
1348 |
<table class="settings">
|
1349 |
<tbody>
|
1350 |
<?php
|
1439 |
'navigation' => array(
|
1440 |
'priority' => 60,
|
1441 |
'type' => 'navigation',
|
1442 |
+
'label' => __("Navigation", "ml-slider"),
|
1443 |
'class' => 'option coin flex nivo responsive',
|
1444 |
+
'value' => $this->slider->get_setting('navigation'),
|
1445 |
+
'helptext' => __("Show the slide navigation bullets", "ml-slider"),
|
1446 |
'options' => array(
|
1447 |
+
'false' => array('label' => __("Hidden", "ml-slider")),
|
1448 |
+
'true' => array('label' => __("Dots", "ml-slider")),
|
1449 |
+
'thumbs' => array(
|
1450 |
+
'label' => __("Thumbnail", "ml-slider"),
|
1451 |
+
'addon_required' => true
|
1452 |
+
),
|
1453 |
+
'filmstrip' => array(
|
1454 |
+
'label' => __("Filmstrip", "ml-slider"),
|
1455 |
+
'addon_required' => true
|
1456 |
+
),
|
1457 |
)
|
1458 |
),
|
1459 |
);
|
1460 |
+
|
1461 |
if ( $this->get_view() == 'dropdown' ) {
|
1462 |
$aFields['title'] = array(
|
1463 |
'type' => 'title',
|
1475 |
?>
|
1476 |
</tbody>
|
1477 |
</table>
|
1478 |
+
|
1479 |
+
|
1480 |
+
<?php // Show the restore button if there are trashed posts
|
1481 |
+
// Also, render but hide the link in case we want to show
|
1482 |
+
// it when the user deletes their first slide
|
1483 |
+
$count = count(metaslider_has_trashed_slides($this->slider->id));
|
1484 |
+
if (!metaslider_viewing_trashed_slides($this->slider->id)) { ?>
|
1485 |
+
<a <?php echo $count ? '' : "style='display:none;'" ?> class="restore-slide-link" title="<?php _e('View trashed slides', 'ml-slider'); ?>" href="<?php echo admin_url("?page=metaslider&id={$this->slider->id}&show_trashed=true"); ?>">
|
1486 |
+
<i><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-trash-2"><polyline points="3 6 5 6 21 6"/><path d="M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2"/><line x1="10" y1="11" x2="10" y2="17"/><line x1="14" y1="11" x2="14" y2="17"/></svg></i><?php echo __('Trash', 'ml-slider'); if ($count) echo " <span>({$count})</span>";?>
|
1487 |
+
</a>
|
1488 |
+
<?php } ?>
|
1489 |
</div>
|
1490 |
</div>
|
1491 |
|
1769 |
</div>
|
1770 |
</div>
|
1771 |
|
1772 |
+
<?php $url = wp_nonce_url(admin_url("admin-post.php?action=metaslider_delete_slider&slider_id={$this->slider->id}"), "metaslider_delete_slider"); ?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1773 |
|
1774 |
+
<a class='delete-slider alignright ml-has-icon ml-button ml-delete-button' href='<?php echo $url ?>'><i><svg xmlns="http://www.w3.org/2000/svg" width="17" height="17" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-x"><line x1="18" y1="6" x2="6" y2="18"/><line x1="6" y1="6" x2="18" y2="18"/></svg></i><span><?php _e( "Delete Slideshow", "ml-slider" ) ?></span></a>
|
1775 |
</div>
|
1776 |
+
<?php } ?>
|
1777 |
</div>
|
1778 |
</div>
|
1779 |
</div>
|
1810 |
|
1811 |
|
1812 |
/**
|
1813 |
+
* Append the 'Choose MetaSlider' thickbox content to the bottom of selected admin pages
|
1814 |
*/
|
1815 |
public function admin_footer() {
|
1816 |
|
1835 |
<div class="wrap">
|
1836 |
<?php
|
1837 |
if ( count( $sliders ) ) {
|
1838 |
+
echo "<h3 style='margin-bottom: 20px;'>" . __( "Insert MetaSlider", "ml-slider" ) . "</h3>";
|
1839 |
echo "<select id='metaslider-select'>";
|
1840 |
echo "<option disabled=disabled>" . __( "Choose slideshow", "ml-slider" ) . "</option>";
|
1841 |
foreach ( $sliders as $slider ) {
|
1856 |
|
1857 |
|
1858 |
/**
|
1859 |
+
* Return the MetaSlider pro upgrade iFrame
|
1860 |
*/
|
1861 |
public function upgrade_to_pro_tab() {
|
1862 |
|
1872 |
*/
|
1873 |
public function upgrade_to_pro_iframe() {
|
1874 |
|
1875 |
+
wp_enqueue_style( 'metaslider-admin-styles', METASLIDER_ADMIN_URL . 'assets/css/admin.css', false, METASLIDER_VERSION );
|
1876 |
wp_enqueue_script( 'google-font-api', 'http://fonts.googleapis.com/css?family=PT+Sans:400,700' );
|
1877 |
|
1878 |
$link = apply_filters( 'metaslider_hoplink', 'https://www.metaslider.com/upgrade/' );
|
1889 |
}
|
1890 |
|
1891 |
/**
|
1892 |
+
* Adds extra links to the plugin activation page
|
1893 |
*/
|
1894 |
+
public function get_extra_meta_links($meta, $file, $data, $status) {
|
1895 |
+
|
1896 |
+
if (plugin_basename(__FILE__) == $file) {
|
1897 |
+
$plugin_page = admin_url('admin.php?page=metaslider');
|
1898 |
+
$meta[] = "<a href='{$plugin_page}' onclick=\"event.preventDefault();var link = jQuery(this);jQuery.post(ajaxurl, {action: 'reset_tour_status', _wpnonce: metaslider_tour_nonce }, function(data) {window.location = link.attr('href');});\">" . __('Take a tour', 'ml-slider') . "</a>";
|
1899 |
+
if (metaslider_is_pro_installed()) {
|
1900 |
+
$upgrade_link = apply_filters('metaslider_hoplink', 'https://www.metaslider.com/upgrade/');
|
1901 |
+
$meta[] = "<a href='{$upgrade_link}' target='_blank'>" . __('Add-ons', 'ml-slider') . "</a>";
|
1902 |
+
$meta[] = "<a href='https://wordpress.org/support/plugin/ml-slider/' target='_blank'>" . __('Support', 'ml-slider') . "</a>";
|
1903 |
+
} else {
|
1904 |
+
$meta[] = "<a href='https://www.metaslider.com/support/' target='_blank'>" . __('Premium Support', 'ml-slider') . "</a>";
|
1905 |
+
}
|
1906 |
+
$meta[] = "<a href='https://www.metaslider.com/documentation/' target='_blank'>" . __('Documentation', 'ml-slider') . "</a>";
|
1907 |
+
$meta[] = "<a href='https://wordpress.org/support/plugin/ml-slider/reviews#new-post' target='_blank' title='" . __('Leave a review', 'ml-slider') . "'><i class='ml-stars'><svg xmlns='http://www.w3.org/2000/svg' width='15' height='15' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' class='feather feather-star'><polygon points='12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2'/></svg><svg xmlns='http://www.w3.org/2000/svg' width='15' height='15' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' class='feather feather-star'><polygon points='12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2'/></svg><svg xmlns='http://www.w3.org/2000/svg' width='15' height='15' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' class='feather feather-star'><polygon points='12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2'/></svg><svg xmlns='http://www.w3.org/2000/svg' width='15' height='15' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' class='feather feather-star'><polygon points='12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2'/></svg><svg xmlns='http://www.w3.org/2000/svg' width='15' height='15' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' class='feather feather-star'><polygon points='12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2'/></svg></i></a>";
|
1908 |
}
|
1909 |
+
return $meta;
|
1910 |
+
}
|
1911 |
|
1912 |
+
/**
|
1913 |
+
* Adds styles to admin head to allow for stars animation and coloring
|
1914 |
+
*/
|
1915 |
+
public function add_star_styles() {
|
1916 |
+
if (metaslider_is_on_admin_page('plugins.php')) {?>
|
1917 |
+
<style>
|
1918 |
+
.ml-stars{display:inline-block;color:#ffb900;position:relative;top:3px}
|
1919 |
+
.ml-stars svg{fill:#ffb900}
|
1920 |
+
.ml-stars svg:hover{fill:#ffb900}
|
1921 |
+
.ml-stars svg:hover ~ svg{fill:none}
|
1922 |
+
</style>
|
1923 |
+
<?php }
|
1924 |
}
|
1925 |
|
1926 |
+
/**
|
1927 |
+
* Add nonce to activation page
|
1928 |
+
*/
|
1929 |
+
public function add_tour_nonce_to_activation_page() {
|
1930 |
+
if (metaslider_is_on_admin_page('plugins.php')) {?>
|
1931 |
+
<script>
|
1932 |
+
var metaslider_tour_nonce = "<?php echo wp_create_nonce('metaslider_tour_nonce'); ?>";
|
1933 |
+
</script>
|
1934 |
+
<?php }
|
1935 |
+
}
|
1936 |
|
1937 |
/**
|
1938 |
+
* Upgrade To Pro Button.
|
1939 |
*/
|
1940 |
+
public function upgrade_to_pro_top_button() {
|
1941 |
+
$text = __('Upgrade Now', "ml-slider");
|
1942 |
+
$link = metaslider_get_upgrade_link();
|
1943 |
+
$upgrade_text = __("Get The Pro Pack Today!", "ml-slider");
|
1944 |
+
return "<a target='_blank' title='{$upgrade_text}' class='ml-has-icon ml-hanging-button' href='{$link}'><i class='brand-color'><svg xmlns='http://www.w3.org/2000/svg' width='17' height='17' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' class='feather feather-star'><polygon points='12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2'/></svg></i><span>{$text}</span></a>";
|
1945 |
+
}
|
1946 |
+
|
1947 |
+
/**
|
1948 |
+
* Toggle Layout Buttons.
|
1949 |
+
* TODO: Re work this to allow for a third view style
|
1950 |
+
*/
|
1951 |
+
public function toggle_layout_button() {
|
1952 |
+
|
1953 |
+
// Don't show this if there are no slideshows
|
1954 |
+
if (!count($this->all_meta_sliders())) {
|
1955 |
+
return '';
|
|
|
1956 |
}
|
1957 |
|
1958 |
+
$view = ('tabs' == $this->get_view()) ? 'tabs' : 'dropdown';
|
1959 |
+
$view_opposite = ('dropdown' == $this->get_view()) ? 'tabs' : 'dropdown';
|
1960 |
+
$view_text = ($this->get_view() == 'tabs') ? __("Switch to Dropdown view", "ml-slider") : __("Switch to Tab view", "ml-slider");
|
1961 |
+
return "<a class='ml-has-icon ml-hanging-button' title='" . $view_text . "'
|
1962 |
+
href='" . admin_url( "admin-post.php?action=metaslider_switch_view&view=".$view_opposite) . "'><i><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"17\" height=\"17\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"feather feather-shuffle\"><polyline points=\"16 3 21 3 21 8\"/><line x1=\"4\" y1=\"20\" x2=\"21\" y2=\"3\"/><polyline points=\"21 16 21 21 16 21\"/><line x1=\"15\" y1=\"15\" x2=\"21\" y2=\"21\"/><line x1=\"4\" y1=\"4\" x2=\"9\" y2=\"9\"/></svg></i><span>" . __("Layout", "ml-slider") . "</span></a>";
|
1963 |
}
|
1964 |
|
1965 |
+
/**
|
1966 |
+
* Support and Docs Button
|
1967 |
+
*/
|
1968 |
+
public function documentation_button() {
|
1969 |
+
return "<a class='ml-has-icon ml-hanging-button' target='_blank' title='" . __('View The Documentation', 'ml-slider') . "' href='https://www.metaslider.com/documentation/'><i><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"17\" height=\"17\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"feather feather-book\"><path d=\"M4 19.5A2.5 2.5 0 0 1 6.5 17H20\"/><path d=\"M6.5 2H20v20H6.5A2.5 2.5 0 0 1 4 19.5v-15A2.5 2.5 0 0 1 6.5 2z\"/></svg></i><span>" . __("Documentation", "ml-slider") . "</span></a>";
|
1970 |
+
}
|
1971 |
|
1972 |
/**
|
1973 |
+
* Add a 'property=stylesheet' attribute to the MetaSlider CSS links for HTML5 validation
|
1974 |
*
|
1975 |
* @since 3.3.4
|
1976 |
* @param string $tag
|
readme.txt
CHANGED
@@ -1,18 +1,18 @@
|
|
1 |
=== MetaSlider ===
|
2 |
-
Contributors: matchalabs, DavidAnderson, dnutbourne
|
3 |
Tags: wordpress slideshow,seo,slideshow,slider,widget,wordpress slider,image slider,flexslider,flex slider,nivoslider,nivo slider,responsive,responsive slides,coinslider,coin slider,slideshow,carousel,responsive slider,vertical slides
|
4 |
Donate link: https://david.dw-perspective.org.uk/donate
|
5 |
Requires at least: 3.5
|
|
|
6 |
Tested up to: 4.9
|
7 |
-
Stable tag: 3.5.1
|
8 |
License: GPLv2 or later
|
9 |
License URI: https://www.gnu.org/licenses/gpl-2.0.html
|
10 |
|
11 |
-
Easy to use WordPress slider plugin. Create SEO
|
12 |
|
13 |
== Description ==
|
14 |
|
15 |
-
With
|
16 |
|
17 |
With WordPress’ most popular slider plugin, enhancing your blog or website couldn’t be easier: simply select images from your WordPress Media Library, drag and drop them into place, and then set the slide captions, links and SEO fields all from one page.
|
18 |
|
@@ -28,7 +28,7 @@ Choose one of 4 different slideshow types, and use our provided short-code or te
|
|
28 |
**Features**
|
29 |
|
30 |
* Simple, easy to use interface - perfect for individual users, developers & clients!
|
31 |
-
* Create Responsive, SEO
|
32 |
* Unrestricted support for Image slides (supports caption, link, title text, alt text)
|
33 |
* Full width slideshow support
|
34 |
* Drag and drop slide reordering
|
@@ -37,13 +37,13 @@ Choose one of 4 different slideshow types, and use our provided short-code or te
|
|
37 |
* Set image crop position
|
38 |
* Built in Widget and Shortcode
|
39 |
* Loads of slideshow configuration options - transition effect, speed etc (per slideshow)
|
40 |
-
* Fully
|
41 |
* WordPress Multi Site compatible
|
42 |
* Compatible with translation plugins (WPML, PolyLang & qTranslate)
|
43 |
* Extensive Developer API (hooks & filters)
|
44 |
* Fast - only the minimum JavaScript/CSS is included on your page
|
45 |
* Free basic support (covering installation issues and theme/plugin conflicts)
|
46 |
-
* Lightbox support with the [
|
47 |
|
48 |
**General:**
|
49 |
* Simple and intuitive interface – perfect for individual users, developers & clients!
|
@@ -58,7 +58,7 @@ Choose one of 4 different slideshow types, and use our provided short-code or te
|
|
58 |
|
59 |
**Other:**
|
60 |
* Includes Admin preview, plus built-in Widget and Short-code
|
61 |
-
* Fully
|
62 |
* WordPress Multi-site compatible, and
|
63 |
* compatible with translation plugins (WPML, PolyLang & qTranslate)
|
64 |
* Developer Friendly, with extensive hooks & filters
|
@@ -66,7 +66,7 @@ Choose one of 4 different slideshow types, and use our provided short-code or te
|
|
66 |
**Support:**
|
67 |
* Includes free basic support (covering installation issues and theme/plugin conflicts).
|
68 |
|
69 |
-
The <a href="https://www.metaslider.com/upgrade">
|
70 |
|
71 |
* YouTube & Vimeo slides
|
72 |
* HTML slides
|
@@ -92,14 +92,14 @@ Follow us on Twitter: [@wpmetaslider](https://twitter.com/wpmetaslider)
|
|
92 |
The easy way:
|
93 |
|
94 |
1. Go to the Plugins Menu in WordPress
|
95 |
-
1. Search for "
|
96 |
1. Click "Install"
|
97 |
|
98 |
The not so easy way:
|
99 |
|
100 |
1. Upload the `ml-slider` folder to the `/wp-content/plugins/` directory
|
101 |
1. Activate the plugin through the 'Plugins' menu in WordPress
|
102 |
-
1. Manage your slideshows using the '
|
103 |
|
104 |
== Frequently Asked Questions ==
|
105 |
|
@@ -136,13 +136,13 @@ Check out the troubleshooting page here:
|
|
136 |
|
137 |
https://www.metaslider.com/documentation/troubleshooting/
|
138 |
|
139 |
-
=
|
140 |
|
141 |
See https://www.metaslider.com/documentation/image-cropping/
|
142 |
|
143 |
== Screenshots ==
|
144 |
|
145 |
-
1.
|
146 |
2. Nivo Slider example
|
147 |
3. Coin Slider example
|
148 |
4. Flex Slider example
|
@@ -151,6 +151,21 @@ See https://www.metaslider.com/documentation/image-cropping/
|
|
151 |
|
152 |
== Changelog ==
|
153 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
154 |
= 3.5.1 [01/05/17] =
|
155 |
|
156 |
* Fix: Pre-populate caption and alt text fields for new image slides (based on original media file data)
|
@@ -180,7 +195,7 @@ This is the first in a series of small updates which will eventually allow us to
|
|
180 |
- Drafting slides
|
181 |
- Scheduling slides
|
182 |
|
183 |
-
We are releasing this update in a number of small stages due to the number of users
|
184 |
|
185 |
= 3.3.7 [06/05/16] =
|
186 |
|
@@ -201,14 +216,14 @@ We are releasing this update in a number of small stages due to the number of us
|
|
201 |
|
202 |
= 3.3.4 [16/07/15] =
|
203 |
|
204 |
-
* Add HTML5 validation by applying a property="stylesheet" attribute to
|
205 |
* Remove unused "Resource Manager" code
|
206 |
* Chinese language pack updated (thanks to mamsds!)
|
207 |
|
208 |
= 3.3.3 [11/06/15] =
|
209 |
|
210 |
* Ukrainian language pack added (thanks to mister_r!)
|
211 |
-
* Fix:
|
212 |
* Add "metaslider_attachment_url" filter
|
213 |
|
214 |
= 3.3.2 [16/04/15] =
|
@@ -217,13 +232,13 @@ We are releasing this update in a number of small stages due to the number of us
|
|
217 |
|
218 |
More information:
|
219 |
|
220 |
-
The fix will prevent some servers (configured with 'display_errors' set to 'on') from disclosing the full path to certain files within
|
221 |
|
222 |
http://codex.wordpress.org/Security_FAQ#Why_are_there_path_disclosures_when_directly_loading_certain_files.3F
|
223 |
|
224 |
= 3.3.1 [23/03/15] =
|
225 |
|
226 |
-
* Fix: Remove 'create video playlist' option from Media Library (on
|
227 |
* Fix: Support for Enhanced Media Library plugin
|
228 |
* Fix: Return public slide when DOING_AJAX
|
229 |
* Improvement: Use admin actions to save slideshow settings
|
@@ -271,7 +286,7 @@ http://codex.wordpress.org/Security_FAQ#Why_are_there_path_disclosures_when_dire
|
|
271 |
* New feature: Set crop position for slides (requires WP 3.9+)
|
272 |
* New feature: Disable cropping setting
|
273 |
* Fix: Use get_posts instead of WP_Query to extract slideshows (fix conflicts with plugins using get_post_type in admin_footer hooks)
|
274 |
-
* Change: Add filter for capability required to use
|
275 |
|
276 |
= 2.9.1 [15/07/14] =
|
277 |
|
@@ -312,14 +327,14 @@ http://codex.wordpress.org/Security_FAQ#Why_are_there_path_disclosures_when_dire
|
|
312 |
* Improvement: Preview now uses admin-post action
|
313 |
* Improvement: Classes are now auto loaded to reduce memory footprint
|
314 |
(Thanks to Viktor Szépe for the above suggestions!)
|
315 |
-
* Improvement: Slideshow
|
316 |
* Improvement: HTML5 Compatibility: Alt tags always present on image tag - even if empty.
|
317 |
* Improvement: Flex Slider slideshows should now 'reserve' a space for themselves while they fully load
|
318 |
* Update: Flex Slider updated to v2.2.2
|
319 |
* New feature: Romanian Language Pack added (Thanks to Octav Madalin Stanoaia)
|
320 |
* New feature: Dutch Language Pack added
|
321 |
* New feature: WP Super Cache compatibility - cache is cleared when saving slideshow
|
322 |
-
* New feature: HTML5 Compatibility (Experimental). Set `define('METASLIDER_ENABLE_RESOURCE_MANAGER', true);` in wp-config.php to move
|
323 |
|
324 |
= 2.7.2 [25/03/14] =
|
325 |
|
@@ -335,16 +350,16 @@ http://codex.wordpress.org/Security_FAQ#Why_are_there_path_disclosures_when_dire
|
|
335 |
|
336 |
= 2.7 [18/03/14] =
|
337 |
|
338 |
-
* New feature:
|
339 |
* New feature: Carousel margin option added
|
340 |
* New feature: Process shortcodes in captions
|
341 |
* Improvement: Tab rename UX
|
342 |
* Improvement: Admin save spinner functionality improved
|
343 |
* Improvement: CSS Resets updated
|
344 |
-
* Improvement: Use plugins_loaded action to
|
345 |
* Fix: PHP Warnings when one slideshow exists
|
346 |
* Fix: Smart Cropping sometimes not returning smart cropped image
|
347 |
-
* Fix: Add z-index to
|
348 |
* Fix: Only include the easing library when transition effect is set to slide
|
349 |
* Fix: White Label Branding plugin compatibility.
|
350 |
* Change: "Responsive" option renamed to "R. Slides". The (old) "Responsive" option refers to the "Responsive Slides" jQuery library, but users were getting confused as the naming suggested it was the only responsive option. Flex Slider & Nivo Slider are also responsive.
|
@@ -358,7 +373,7 @@ http://codex.wordpress.org/Security_FAQ#Why_are_there_path_disclosures_when_dire
|
|
358 |
* Improvement: Filter added for slide image label
|
359 |
* Improvement: 'No Conflict' mode refactored
|
360 |
* Improvement: 'slider' parameter added to flexslider before/start/after etc callbacks
|
361 |
-
* Change: Renamed in admin menu from "
|
362 |
|
363 |
= 2.6.2 [02/01/14] =
|
364 |
|
@@ -367,7 +382,7 @@ http://codex.wordpress.org/Security_FAQ#Why_are_there_path_disclosures_when_dire
|
|
367 |
= 2.6.1 [31/12/13] =
|
368 |
|
369 |
* Fix: Advanced settings arrow toggle
|
370 |
-
* Fix: All in one SEO / Page builder /
|
371 |
* Fix: NextGen "Insert Gallery" conflict
|
372 |
* New feature: Norwegian language pack added
|
373 |
|
@@ -513,7 +528,7 @@ More info/Comments: http://www.metaslider.com/coming-soon-meta-slider-2-6-free/
|
|
513 |
* Fix: Flexslider navigation overflow
|
514 |
|
515 |
= 2.0-betaX [17/04/13] =
|
516 |
-
* Improvement: Error messages exposed in admin is
|
517 |
* Improvement: Load default settings if original settings are corrupt/incomplete
|
518 |
* Fix: Smart Crop ratio
|
519 |
* Fix: UTF-8 characters in captions (reported by and thanks to: javitopo)
|
@@ -528,7 +543,7 @@ More info/Comments: http://www.metaslider.com/coming-soon-meta-slider-2-6-free/
|
|
528 |
* New feature: 'Auto play' option added
|
529 |
* New feature: 'Smart Crop' setting ensures your slideshow size remains consitent regardless of image dimensions
|
530 |
* New feature: 'Center align slideshow' option added for all sliders
|
531 |
-
* New feature: Coin Slider upgraded to latest version, new options now exposed in
|
532 |
* New feature: Captions now supported by responsive slides
|
533 |
* Improvement: Responsive AJAX powered administration screen
|
534 |
* Improvement: Code refactored
|
@@ -537,10 +552,10 @@ More info/Comments: http://www.metaslider.com/coming-soon-meta-slider-2-6-free/
|
|
537 |
* Fix: JS && encoding error (reported by and thanks to: neefje)
|
538 |
|
539 |
= 1.3 [28/02/13] =
|
540 |
-
* Renamed to
|
541 |
* Improvement: Admin styling cleaned up
|
542 |
* Improvement: Code refactored
|
543 |
-
* Improvement: Plugin
|
544 |
* Improvement: Template include PHP code now displayed on slider edit page
|
545 |
* Improvement: jQuery tablednd replaced with jQuery sortable for reordering slides
|
546 |
* New feature: Open URL in new window option added
|
@@ -575,5 +590,4 @@ More info/Comments: http://www.metaslider.com/coming-soon-meta-slider-2-6-free/
|
|
575 |
* Initial version
|
576 |
|
577 |
== Upgrade Notice ==
|
578 |
-
|
579 |
-
|
1 |
=== MetaSlider ===
|
2 |
+
Contributors: matchalabs, DavidAnderson, dnutbourne, kbat82
|
3 |
Tags: wordpress slideshow,seo,slideshow,slider,widget,wordpress slider,image slider,flexslider,flex slider,nivoslider,nivo slider,responsive,responsive slides,coinslider,coin slider,slideshow,carousel,responsive slider,vertical slides
|
4 |
Donate link: https://david.dw-perspective.org.uk/donate
|
5 |
Requires at least: 3.5
|
6 |
+
Stable tag: 3.6.0
|
7 |
Tested up to: 4.9
|
|
|
8 |
License: GPLv2 or later
|
9 |
License URI: https://www.gnu.org/licenses/gpl-2.0.html
|
10 |
|
11 |
+
Easy to use WordPress slider plugin. Create SEO-optimized responsive slideshows with Nivo Slider, Flex Slider, Coin Slider and Responsive Slides.
|
12 |
|
13 |
== Description ==
|
14 |
|
15 |
+
With MetaSlider, you can create your own unique, SEO-optimized slideshow in a matter of seconds!
|
16 |
|
17 |
With WordPress’ most popular slider plugin, enhancing your blog or website couldn’t be easier: simply select images from your WordPress Media Library, drag and drop them into place, and then set the slide captions, links and SEO fields all from one page.
|
18 |
|
28 |
**Features**
|
29 |
|
30 |
* Simple, easy to use interface - perfect for individual users, developers & clients!
|
31 |
+
* Create Responsive, SEO-optimized slideshows in seconds
|
32 |
* Unrestricted support for Image slides (supports caption, link, title text, alt text)
|
33 |
* Full width slideshow support
|
34 |
* Drag and drop slide reordering
|
37 |
* Set image crop position
|
38 |
* Built in Widget and Shortcode
|
39 |
* Loads of slideshow configuration options - transition effect, speed etc (per slideshow)
|
40 |
+
* Fully localized
|
41 |
* WordPress Multi Site compatible
|
42 |
* Compatible with translation plugins (WPML, PolyLang & qTranslate)
|
43 |
* Extensive Developer API (hooks & filters)
|
44 |
* Fast - only the minimum JavaScript/CSS is included on your page
|
45 |
* Free basic support (covering installation issues and theme/plugin conflicts)
|
46 |
+
* Lightbox support with the [MetaSlider Lightbox](https://wordpress.org/plugins/ml-slider-lightbox/) addon
|
47 |
|
48 |
**General:**
|
49 |
* Simple and intuitive interface – perfect for individual users, developers & clients!
|
58 |
|
59 |
**Other:**
|
60 |
* Includes Admin preview, plus built-in Widget and Short-code
|
61 |
+
* Fully localized
|
62 |
* WordPress Multi-site compatible, and
|
63 |
* compatible with translation plugins (WPML, PolyLang & qTranslate)
|
64 |
* Developer Friendly, with extensive hooks & filters
|
66 |
**Support:**
|
67 |
* Includes free basic support (covering installation issues and theme/plugin conflicts).
|
68 |
|
69 |
+
The <a href="https://www.metaslider.com/upgrade">MetaSlider Pro</a> includes added support for:
|
70 |
|
71 |
* YouTube & Vimeo slides
|
72 |
* HTML slides
|
92 |
The easy way:
|
93 |
|
94 |
1. Go to the Plugins Menu in WordPress
|
95 |
+
1. Search for "MetaSlider"
|
96 |
1. Click "Install"
|
97 |
|
98 |
The not so easy way:
|
99 |
|
100 |
1. Upload the `ml-slider` folder to the `/wp-content/plugins/` directory
|
101 |
1. Activate the plugin through the 'Plugins' menu in WordPress
|
102 |
+
1. Manage your slideshows using the 'MetaSlider' menu option
|
103 |
|
104 |
== Frequently Asked Questions ==
|
105 |
|
136 |
|
137 |
https://www.metaslider.com/documentation/troubleshooting/
|
138 |
|
139 |
+
= MetaSlider is cropping my images in the wrong place - what can I do? =
|
140 |
|
141 |
See https://www.metaslider.com/documentation/image-cropping/
|
142 |
|
143 |
== Screenshots ==
|
144 |
|
145 |
+
1. MetaSlider - for live demos see https://www.metaslider.com/examples/
|
146 |
2. Nivo Slider example
|
147 |
3. Coin Slider example
|
148 |
4. Flex Slider example
|
151 |
|
152 |
== Changelog ==
|
153 |
|
154 |
+
= 3.6.0 - 2017/Nov/14 =
|
155 |
+
|
156 |
+
* FEATURE: Allow a slide to be restored after deletion
|
157 |
+
* FEATURE: Allow the background image to be changed
|
158 |
+
* FEATURE: Adds a guided tour
|
159 |
+
* FIX: Loads inline JS properly
|
160 |
+
* FIX: FlexSlider touch events respect pause on hover setting
|
161 |
+
* FIX: Allow for https image URLs
|
162 |
+
* TRANSLATIONS: Addresses spelling/localization issues
|
163 |
+
* TWEAK: Accessibility enhancements
|
164 |
+
* TWEAK: Adds links to activation page
|
165 |
+
* TWEAK: Updates FlexSlider to latest
|
166 |
+
* TWEAK: Change the label "Meta Slider" to "MetaSlider"
|
167 |
+
* TWEAK: Add dashboard notices
|
168 |
+
|
169 |
= 3.5.1 [01/05/17] =
|
170 |
|
171 |
* Fix: Pre-populate caption and alt text fields for new image slides (based on original media file data)
|
195 |
- Drafting slides
|
196 |
- Scheduling slides
|
197 |
|
198 |
+
We are releasing this update in a number of small stages due to the number of users MetaSlider has. We are being overly cautious to ensure it's a smooth transition. This update does not make any major changes to the current plugin functionality, but it does put in place the "scaffolding" code which we will rely on to implement further updates.
|
199 |
|
200 |
= 3.3.7 [06/05/16] =
|
201 |
|
216 |
|
217 |
= 3.3.4 [16/07/15] =
|
218 |
|
219 |
+
* Add HTML5 validation by applying a property="stylesheet" attribute to MetaSlider <link> CSS tags
|
220 |
* Remove unused "Resource Manager" code
|
221 |
* Chinese language pack updated (thanks to mamsds!)
|
222 |
|
223 |
= 3.3.3 [11/06/15] =
|
224 |
|
225 |
* Ukrainian language pack added (thanks to mister_r!)
|
226 |
+
* Fix: MetaSlider hoplink incorrectly adding parameters to filtered url
|
227 |
* Add "metaslider_attachment_url" filter
|
228 |
|
229 |
= 3.3.2 [16/04/15] =
|
232 |
|
233 |
More information:
|
234 |
|
235 |
+
The fix will prevent some servers (configured with 'display_errors' set to 'on') from disclosing the full path to certain files within MetaSlider.
|
236 |
|
237 |
http://codex.wordpress.org/Security_FAQ#Why_are_there_path_disclosures_when_directly_loading_certain_files.3F
|
238 |
|
239 |
= 3.3.1 [23/03/15] =
|
240 |
|
241 |
+
* Fix: Remove 'create video playlist' option from Media Library (on MetaSlider page only)
|
242 |
* Fix: Support for Enhanced Media Library plugin
|
243 |
* Fix: Return public slide when DOING_AJAX
|
244 |
* Improvement: Use admin actions to save slideshow settings
|
286 |
* New feature: Set crop position for slides (requires WP 3.9+)
|
287 |
* New feature: Disable cropping setting
|
288 |
* Fix: Use get_posts instead of WP_Query to extract slideshows (fix conflicts with plugins using get_post_type in admin_footer hooks)
|
289 |
+
* Change: Add filter for capability required to use MetaSlider
|
290 |
|
291 |
= 2.9.1 [15/07/14] =
|
292 |
|
327 |
* Improvement: Preview now uses admin-post action
|
328 |
* Improvement: Classes are now auto loaded to reduce memory footprint
|
329 |
(Thanks to Viktor Szépe for the above suggestions!)
|
330 |
+
* Improvement: Slideshow initilization time reduced
|
331 |
* Improvement: HTML5 Compatibility: Alt tags always present on image tag - even if empty.
|
332 |
* Improvement: Flex Slider slideshows should now 'reserve' a space for themselves while they fully load
|
333 |
* Update: Flex Slider updated to v2.2.2
|
334 |
* New feature: Romanian Language Pack added (Thanks to Octav Madalin Stanoaia)
|
335 |
* New feature: Dutch Language Pack added
|
336 |
* New feature: WP Super Cache compatibility - cache is cleared when saving slideshow
|
337 |
+
* New feature: HTML5 Compatibility (Experimental). Set `define('METASLIDER_ENABLE_RESOURCE_MANAGER', true);` in wp-config.php to move MetaSlider link tags head of the page.
|
338 |
|
339 |
= 2.7.2 [25/03/14] =
|
340 |
|
350 |
|
351 |
= 2.7 [18/03/14] =
|
352 |
|
353 |
+
* New feature: Croatian Lang pack added
|
354 |
* New feature: Carousel margin option added
|
355 |
* New feature: Process shortcodes in captions
|
356 |
* Improvement: Tab rename UX
|
357 |
* Improvement: Admin save spinner functionality improved
|
358 |
* Improvement: CSS Resets updated
|
359 |
+
* Improvement: Use plugins_loaded action to initialize plugin
|
360 |
* Fix: PHP Warnings when one slideshow exists
|
361 |
* Fix: Smart Cropping sometimes not returning smart cropped image
|
362 |
+
* Fix: Add z-index to MetaSlider, attempted conflict fix for themes with drop down menus.
|
363 |
* Fix: Only include the easing library when transition effect is set to slide
|
364 |
* Fix: White Label Branding plugin compatibility.
|
365 |
* Change: "Responsive" option renamed to "R. Slides". The (old) "Responsive" option refers to the "Responsive Slides" jQuery library, but users were getting confused as the naming suggested it was the only responsive option. Flex Slider & Nivo Slider are also responsive.
|
373 |
* Improvement: Filter added for slide image label
|
374 |
* Improvement: 'No Conflict' mode refactored
|
375 |
* Improvement: 'slider' parameter added to flexslider before/start/after etc callbacks
|
376 |
+
* Change: Renamed in admin menu from "MetaSlider Lite" to "MetaSlider"
|
377 |
|
378 |
= 2.6.2 [02/01/14] =
|
379 |
|
382 |
= 2.6.1 [31/12/13] =
|
383 |
|
384 |
* Fix: Advanced settings arrow toggle
|
385 |
+
* Fix: All in one SEO / Page builder / MetaSlider conflict
|
386 |
* Fix: NextGen "Insert Gallery" conflict
|
387 |
* New feature: Norwegian language pack added
|
388 |
|
528 |
* Fix: Flexslider navigation overflow
|
529 |
|
530 |
= 2.0-betaX [17/04/13] =
|
531 |
+
* Improvement: Error messages exposed in admin is MetaSlider cannot load the slides
|
532 |
* Improvement: Load default settings if original settings are corrupt/incomplete
|
533 |
* Fix: Smart Crop ratio
|
534 |
* Fix: UTF-8 characters in captions (reported by and thanks to: javitopo)
|
543 |
* New feature: 'Auto play' option added
|
544 |
* New feature: 'Smart Crop' setting ensures your slideshow size remains consitent regardless of image dimensions
|
545 |
* New feature: 'Center align slideshow' option added for all sliders
|
546 |
+
* New feature: Coin Slider upgraded to latest version, new options now exposed in MetaSlider
|
547 |
* New feature: Captions now supported by responsive slides
|
548 |
* Improvement: Responsive AJAX powered administration screen
|
549 |
* Improvement: Code refactored
|
552 |
* Fix: JS && encoding error (reported by and thanks to: neefje)
|
553 |
|
554 |
= 1.3 [28/02/13] =
|
555 |
+
* Renamed to MetaSlider (previously ML Slider)
|
556 |
* Improvement: Admin styling cleaned up
|
557 |
* Improvement: Code refactored
|
558 |
+
* Improvement: Plugin localized
|
559 |
* Improvement: Template include PHP code now displayed on slider edit page
|
560 |
* Improvement: jQuery tablednd replaced with jQuery sortable for reordering slides
|
561 |
* New feature: Open URL in new window option added
|
590 |
* Initial version
|
591 |
|
592 |
== Upgrade Notice ==
|
593 |
+
* 3.6.0 : Three new features, three fixes, various smaller tweaks. A recommended update for all.
|
|