Version Description
Even though this is a major version change, this is primarily a maintenance release. The reason for the jump to 1.0.0 is because we've changed some code which could break backwards compatibility with custom extensions and integrations.
If you're just using the plugin on your site and haven't customized it or paid anyone to customize it for you, you should be able to update without any issues.
If you're a developer and have written custom code extending the PHP side of WP Featherlight, be sure to test your code before updating.
Under the hood, we've deprecated some internal methods which could potentially break custom code which extends WP Featherlight. The changes are primarily limited to class initialization, so unless you were doing something specific to that, it's unlikely that you'll run into issues.
- Tweak: Improved transition between images within galleries
- Tweak: Moved our disable lightbox checkbox into the publish meta box to streamline the admin
- Tweak: Made styles more aggressive to ensure elements look consistent across different themes by default
- Fix: Reduced false positives for URLs that use image extensions but don't actually link to an image
- Dev: Updated Featherlight to
1.5.1
- Dev: Updated jQuery Detect Swipe to
2.1.3
- Dev: Deprecated some internal methods
- Dev: Reorganized how classes are instantiated and plugin actions are fired
View the full changelog on GitHub
Release Info
Developer | wpsitecare |
Plugin | WP Featherlight – A Simple jQuery Lightbox |
Version | 1.0.0 |
Comparing to | |
See all releases |
Code changes from version 0.3.0 to 1.0.0
- admin/class-meta.php +68 -72
- admin/templates/metabox-sidebar.php +0 -18
- admin/views/meta-box.php +18 -0
- css/wp-featherlight-rtl.css +166 -152
- css/wp-featherlight-rtl.min.css +1 -1
- css/wp-featherlight.css +167 -152
- css/wp-featherlight.min.css +1 -1
- includes/class-i18n.php +23 -29
- includes/class-plugin.php +183 -31
- includes/class-scripts.php +101 -57
- includes/constants.php +1 -5
- js/src/vendor/featherlight.gallery.js +10 -2
- js/src/vendor/featherlight.gallery.min.js +1 -1
- js/src/vendor/featherlight.js +71 -55
- js/src/vendor/featherlight.min.js +1 -1
- js/src/vendor/jquery.detect_swipe.js +18 -6
- js/src/vendor/jquery.detect_swipe.min.js +1 -1
- js/src/wpFeatherlight.js +8 -12
- js/src/wpFeatherlight.min.js +1 -1
- js/wpFeatherlight.pkgd.js +107 -75
- js/wpFeatherlight.pkgd.min.js +1 -1
- languages/wp-featherlight-pl_PL.mo +0 -0
- languages/wp-featherlight.pot +8 -12
- readme.txt +18 -51
- wp-featherlight.php +9 -5
@@ -3,17 +3,17 @@
|
|
3 |
* Methods used for adding and saving meta data for WP Featherlight.
|
4 |
*
|
5 |
* @package WPFeatherlight\Admin
|
6 |
-
* @
|
7 |
-
* @copyright Copyright (c) 2015, WP Site Care
|
8 |
* @license GPL-2.0+
|
9 |
* @since 0.1.0
|
10 |
*/
|
11 |
|
12 |
-
|
13 |
-
|
14 |
-
|
|
|
|
|
15 |
class WP_Featherlight_Admin_Meta {
|
16 |
-
|
17 |
/**
|
18 |
* Name for the nonce field
|
19 |
*
|
@@ -28,49 +28,19 @@ class WP_Featherlight_Admin_Meta {
|
|
28 |
*/
|
29 |
private $nonce_action = 'save_wp_featherlight_metabox';
|
30 |
|
31 |
-
/**
|
32 |
-
* User submitted data.
|
33 |
-
*
|
34 |
-
* @var array
|
35 |
-
*/
|
36 |
-
private $user_data = array();
|
37 |
-
|
38 |
-
/**
|
39 |
-
* Get the class running!
|
40 |
-
*
|
41 |
-
* @since 0.1.0
|
42 |
-
* @access public
|
43 |
-
* @return void
|
44 |
-
*/
|
45 |
-
public function run() {
|
46 |
-
$this->wp_hooks();
|
47 |
-
}
|
48 |
-
|
49 |
-
/**
|
50 |
-
* Hook into WordPress.
|
51 |
-
*
|
52 |
-
* @since 0.1.0
|
53 |
-
* @access protected
|
54 |
-
* @return void
|
55 |
-
*/
|
56 |
-
protected function wp_hooks() {
|
57 |
-
add_action( 'add_meta_boxes', array( $this, 'add_meta_boxes' ) );
|
58 |
-
|
59 |
-
if ( 'POST' === $_SERVER['REQUEST_METHOD'] ) {
|
60 |
-
$this->user_data = $_POST;
|
61 |
-
add_action( 'save_post', array( $this, 'save_meta_boxes' ) );
|
62 |
-
}
|
63 |
-
}
|
64 |
-
|
65 |
/**
|
66 |
* Determine if the request to save data should be allowed to proceed.
|
67 |
*
|
68 |
-
* @since 0.
|
69 |
* @access protected
|
70 |
* @param int $post_id Post ID.
|
71 |
* @return bool Whether or not this is a valid request to save our data.
|
72 |
*/
|
73 |
protected function validate_request( $post_id ) {
|
|
|
|
|
|
|
|
|
74 |
if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) {
|
75 |
return false;
|
76 |
}
|
@@ -87,19 +57,62 @@ class WP_Featherlight_Admin_Meta {
|
|
87 |
return false;
|
88 |
}
|
89 |
|
90 |
-
if ( ! isset( $
|
91 |
return false;
|
92 |
}
|
93 |
|
94 |
-
if ( ! wp_verify_nonce( $
|
95 |
return false;
|
96 |
}
|
|
|
97 |
// @link http://make.marketpress.com/multilingualpress/2014/10/how-to-disable-broken-save_post-callbacks/
|
98 |
if ( is_multisite() && ms_is_switched() ) {
|
99 |
return false;
|
100 |
}
|
101 |
|
102 |
-
return
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
103 |
}
|
104 |
|
105 |
/**
|
@@ -111,50 +124,33 @@ class WP_Featherlight_Admin_Meta {
|
|
111 |
* @return void
|
112 |
*/
|
113 |
public function add_meta_boxes( $post_type ) {
|
114 |
-
|
115 |
-
if ( is_object( $type ) && $type->public ) {
|
116 |
-
add_meta_box(
|
117 |
-
'wp_featherlight_options',
|
118 |
-
__( 'WP Featherlight Options', 'wp-featherlight' ),
|
119 |
-
array( $this, 'options_callback' ),
|
120 |
-
null,
|
121 |
-
'side'
|
122 |
-
);
|
123 |
-
}
|
124 |
}
|
125 |
|
126 |
/**
|
127 |
* Output the content of our metabox.
|
128 |
*
|
129 |
-
* @
|
130 |
* @access public
|
131 |
*
|
132 |
-
* @param
|
133 |
* @return void
|
134 |
*/
|
135 |
public function options_callback( WP_Post $post ) {
|
136 |
-
|
137 |
-
|
138 |
-
$
|
139 |
-
require_once wp_featherlight()->get_dir() . 'admin/templates/metabox-sidebar.php';
|
140 |
}
|
141 |
|
142 |
/**
|
143 |
-
*
|
144 |
*
|
145 |
* @since 0.1.0
|
|
|
146 |
* @access public
|
147 |
-
* @
|
148 |
-
* @return bool Whether or not data has been saved.
|
149 |
*/
|
150 |
-
public function
|
151 |
-
|
152 |
-
return false;
|
153 |
-
}
|
154 |
-
|
155 |
-
$value = isset( $this->user_data['wp_featherlight_disable'] ) ? 'yes' : '';
|
156 |
-
|
157 |
-
return (bool) update_post_meta( $post_id, 'wp_featherlight_disable', $value );
|
158 |
}
|
159 |
-
|
160 |
}
|
3 |
* Methods used for adding and saving meta data for WP Featherlight.
|
4 |
*
|
5 |
* @package WPFeatherlight\Admin
|
6 |
+
* @copyright Copyright (c) 2016, WP Site Care
|
|
|
7 |
* @license GPL-2.0+
|
8 |
* @since 0.1.0
|
9 |
*/
|
10 |
|
11 |
+
/**
|
12 |
+
* The main featherlight admin meta box and related methods.
|
13 |
+
*
|
14 |
+
* @since 0.1.0
|
15 |
+
*/
|
16 |
class WP_Featherlight_Admin_Meta {
|
|
|
17 |
/**
|
18 |
* Name for the nonce field
|
19 |
*
|
28 |
*/
|
29 |
private $nonce_action = 'save_wp_featherlight_metabox';
|
30 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
31 |
/**
|
32 |
* Determine if the request to save data should be allowed to proceed.
|
33 |
*
|
34 |
+
* @since 1.0.0
|
35 |
* @access protected
|
36 |
* @param int $post_id Post ID.
|
37 |
* @return bool Whether or not this is a valid request to save our data.
|
38 |
*/
|
39 |
protected function validate_request( $post_id ) {
|
40 |
+
if ( 'POST' !== $_SERVER['REQUEST_METHOD'] ) { // Input var okay.
|
41 |
+
return false;
|
42 |
+
}
|
43 |
+
|
44 |
if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) {
|
45 |
return false;
|
46 |
}
|
57 |
return false;
|
58 |
}
|
59 |
|
60 |
+
if ( ! isset( $_POST[ $this->nonce_name ] ) ) { // Input var okay.
|
61 |
return false;
|
62 |
}
|
63 |
|
64 |
+
if ( ! wp_verify_nonce( sanitize_key( $_POST[ $this->nonce_name ] ), $this->nonce_action ) ) { // Input var okay.
|
65 |
return false;
|
66 |
}
|
67 |
+
|
68 |
// @link http://make.marketpress.com/multilingualpress/2014/10/how-to-disable-broken-save_post-callbacks/
|
69 |
if ( is_multisite() && ms_is_switched() ) {
|
70 |
return false;
|
71 |
}
|
72 |
|
73 |
+
return wp_unslash( $_POST ); // Input var okay.
|
74 |
+
}
|
75 |
+
|
76 |
+
/**
|
77 |
+
* Output the content of our metabox.
|
78 |
+
*
|
79 |
+
* @since 1.0.0
|
80 |
+
* @access public
|
81 |
+
*
|
82 |
+
* @param WP_Post $post Post object.
|
83 |
+
* @return void
|
84 |
+
*/
|
85 |
+
public function meta_box_view( WP_Post $post ) {
|
86 |
+
$type = get_post_type_object( $post->post_type );
|
87 |
+
|
88 |
+
if ( ! is_object( $type ) ) {
|
89 |
+
return;
|
90 |
+
}
|
91 |
+
|
92 |
+
if ( current_user_can( $type->cap->edit_post, $post->ID ) && $type->public ) {
|
93 |
+
$disable = get_post_meta( $post->ID, 'wp_featherlight_disable', true );
|
94 |
+
$checked = empty( $disable ) ? '' : $disable;
|
95 |
+
|
96 |
+
require_once wp_featherlight()->get_dir() . 'admin/views/meta-box.php';
|
97 |
+
}
|
98 |
+
}
|
99 |
+
|
100 |
+
/**
|
101 |
+
* Callback function for saving our meta box data.
|
102 |
+
*
|
103 |
+
* @since 1.0.0
|
104 |
+
* @access public
|
105 |
+
* @param int $post_id Post ID.
|
106 |
+
* @return bool Whether or not data has been saved.
|
107 |
+
*/
|
108 |
+
public function save_meta_boxes( $post_id ) {
|
109 |
+
if ( ! $valid_request = $this->validate_request( $post_id ) ) {
|
110 |
+
return false;
|
111 |
+
}
|
112 |
+
|
113 |
+
$value = isset( $valid_request['wp_featherlight_disable'] ) ? 'yes' : '';
|
114 |
+
|
115 |
+
return (bool) update_post_meta( $post_id, 'wp_featherlight_disable', $value );
|
116 |
}
|
117 |
|
118 |
/**
|
124 |
* @return void
|
125 |
*/
|
126 |
public function add_meta_boxes( $post_type ) {
|
127 |
+
_deprecated_function( __METHOD__, '1.0.0' );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
128 |
}
|
129 |
|
130 |
/**
|
131 |
* Output the content of our metabox.
|
132 |
*
|
133 |
+
* @deprecated 1.0.0
|
134 |
* @access public
|
135 |
*
|
136 |
+
* @param WP_Post $post Post object.
|
137 |
* @return void
|
138 |
*/
|
139 |
public function options_callback( WP_Post $post ) {
|
140 |
+
_deprecated_function( __METHOD__, '1.0.0' );
|
141 |
+
|
142 |
+
$this-> meta_box_view( $post );
|
|
|
143 |
}
|
144 |
|
145 |
/**
|
146 |
+
* Get the class running!
|
147 |
*
|
148 |
* @since 0.1.0
|
149 |
+
* @deprecated 1.0.0
|
150 |
* @access public
|
151 |
+
* @return void
|
|
|
152 |
*/
|
153 |
+
public function run() {
|
154 |
+
_deprecated_function( __METHOD__, '1.0.0' );
|
|
|
|
|
|
|
|
|
|
|
|
|
155 |
}
|
|
|
156 |
}
|
@@ -1,18 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* Template to display the WP Featherlight admin sidebar meta box.
|
4 |
-
*
|
5 |
-
* @package WPFeatherlight\Admin\Templates
|
6 |
-
* @author Robert Neu
|
7 |
-
* @copyright Copyright (c) 2015, WP Site Care
|
8 |
-
* @license GPL-2.0+
|
9 |
-
* @since 0.1.0
|
10 |
-
*/
|
11 |
-
?>
|
12 |
-
<p>
|
13 |
-
<label for="wp_featherlight_disable">
|
14 |
-
<input type="checkbox" name="wp_featherlight_disable" id="wp_featherlight_disable" value="yes"<?php checked( $checked, 'yes' ); ?> />
|
15 |
-
<?php esc_html_e( 'Disable lightbox', 'wp-featherlight' ); ?>
|
16 |
-
</label>
|
17 |
-
</p>
|
18 |
-
<?php wp_nonce_field( $this->nonce_action, $this->nonce_name ); ?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@@ -0,0 +1,18 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Template to display the WP Featherlight admin sidebar meta box.
|
4 |
+
*
|
5 |
+
* @package WPFeatherlight\Admin\Views
|
6 |
+
* @copyright Copyright (c) 2016, WP Site Care
|
7 |
+
* @license GPL-2.0+
|
8 |
+
* @since 0.1.0
|
9 |
+
*/
|
10 |
+
|
11 |
+
?>
|
12 |
+
<div id="wp-featherlight-enable-wrap" class="misc-pub-section wp-featherlight-enable" style="position:relative;">
|
13 |
+
<label for="wp_featherlight_disable">
|
14 |
+
<input type="checkbox" name="wp_featherlight_disable" id="wp_featherlight_disable" value=""<?php checked( $checked, 'yes' ); ?> />
|
15 |
+
<?php esc_html_e( 'Disable lightbox', 'wp-featherlight' ); ?>
|
16 |
+
</label>
|
17 |
+
</div>
|
18 |
+
<?php wp_nonce_field( 'save_wp_featherlight_metabox', 'wp_featherlight_metabox_nonce' ); ?>
|
@@ -1,231 +1,245 @@
|
|
1 |
/**!
|
2 |
* Plugin Name: WP Featherlight
|
3 |
-
* Version: 0.
|
4 |
* Author: WP Site Care
|
5 |
* License: GPL-2.0+
|
6 |
*/
|
7 |
-
|
8 |
-
|
9 |
/* Base Styles
|
10 |
--------------------------------------------- */
|
11 |
-
|
12 |
.featherlight {
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
}
|
28 |
|
29 |
.featherlight * {
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
}
|
34 |
|
35 |
.featherlight:last-of-type {
|
36 |
-
|
37 |
}
|
38 |
|
39 |
-
.featherlight
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
}
|
46 |
|
47 |
.featherlight .featherlight-content {
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
|
|
|
|
61 |
}
|
62 |
|
63 |
@media screen and (min-width: 980px) {
|
64 |
-
|
65 |
-
|
66 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
67 |
}
|
68 |
|
69 |
.featherlight .featherlight-inner {
|
70 |
-
|
|
|
|
|
71 |
}
|
72 |
|
73 |
.featherlight .featherlight-close-icon {
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
|
|
91 |
}
|
92 |
|
93 |
.featherlight .featherlight-image {
|
94 |
-
|
95 |
}
|
96 |
|
97 |
.featherlight iframe {
|
98 |
-
|
99 |
}
|
100 |
|
101 |
-
[data-featherlight] {
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
}
|
106 |
|
107 |
.featherlight-iframe .featherlight-content {
|
108 |
-
|
109 |
-
|
110 |
-
}
|
111 |
-
|
112 |
-
.featherlight-content .caption {
|
113 |
-
color: #fff;
|
114 |
-
font-size: 16px;
|
115 |
-
font-weight: lighter;
|
116 |
-
max-width: 100%;
|
117 |
-
overflow: hidden;
|
118 |
-
position: absolute;
|
119 |
-
text-align: right;
|
120 |
-
text-overflow: ellipsis;
|
121 |
-
white-space: nowrap;
|
122 |
}
|
123 |
|
124 |
-
.featherlight-content .caption:hover,
|
125 |
-
.featherlight-content .caption:focus {
|
126 |
-
overflow: visible;
|
127 |
-
white-space: normal;
|
128 |
-
}
|
129 |
-
|
130 |
-
|
131 |
/* Animated Loader
|
132 |
--------------------------------------------- */
|
133 |
-
|
134 |
@-webkit-keyframes featherlightLoader {
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
}
|
144 |
}
|
145 |
-
|
146 |
@keyframes featherlightLoader {
|
147 |
-
|
148 |
-
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
-
|
153 |
-
|
154 |
-
|
155 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
156 |
}
|
157 |
|
158 |
.featherlight-loading .featherlight-content {
|
159 |
-
|
160 |
-
|
161 |
-
|
162 |
-
|
163 |
-
|
164 |
-
|
165 |
}
|
166 |
|
167 |
.featherlight-loading .featherlight-content,
|
168 |
-
.featherlight-loading .featherlight-content
|
169 |
-
|
170 |
-
|
171 |
-
|
172 |
-
|
173 |
}
|
174 |
|
175 |
.featherlight-loading .featherlight-close,
|
176 |
.featherlight-loading .featherlight-inner {
|
177 |
-
|
178 |
}
|
179 |
|
180 |
-
|
181 |
/* Gallery
|
182 |
--------------------------------------------- */
|
183 |
-
|
184 |
.featherlight-next,
|
185 |
.featherlight-previous {
|
186 |
-
|
187 |
-
|
188 |
-
|
189 |
-
|
190 |
-
|
191 |
-
|
192 |
-
|
193 |
-
|
194 |
-
|
195 |
-
|
196 |
-
|
197 |
-
|
198 |
-
|
199 |
-
|
200 |
-
|
201 |
-
|
202 |
-
|
203 |
-
|
|
|
204 |
}
|
205 |
|
206 |
.featherlight-next span,
|
207 |
.featherlight-previous span {
|
208 |
-
|
209 |
}
|
210 |
|
211 |
-
.featherlight-next:hover,
|
212 |
-
.featherlight-next:focus,
|
213 |
.featherlight-previous:hover,
|
214 |
.featherlight-previous:focus {
|
215 |
-
|
216 |
}
|
217 |
.featherlight-next {
|
218 |
-
|
219 |
-
|
220 |
-
|
221 |
}
|
222 |
.featherlight-previous {
|
223 |
-
|
224 |
-
|
225 |
-
|
226 |
}
|
227 |
|
228 |
.featherlight-loading .featherlight-previous,
|
229 |
.featherlight-loading .featherlight-next {
|
230 |
-
|
231 |
}
|
|
1 |
/**!
|
2 |
* Plugin Name: WP Featherlight
|
3 |
+
* Version: 1.0.0
|
4 |
* Author: WP Site Care
|
5 |
* License: GPL-2.0+
|
6 |
*/
|
|
|
|
|
7 |
/* Base Styles
|
8 |
--------------------------------------------- */
|
|
|
9 |
.featherlight {
|
10 |
+
background: transparent;
|
11 |
+
bottom: 0;
|
12 |
+
cursor: -webkit-zoom-out;
|
13 |
+
cursor: -moz-zoom-out;
|
14 |
+
cursor: zoom-out;
|
15 |
+
display: none;
|
16 |
+
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
|
17 |
+
right: 0;
|
18 |
+
position: fixed;
|
19 |
+
left: 0;
|
20 |
+
text-align: center;
|
21 |
+
top: 0;
|
22 |
+
white-space: nowrap;
|
23 |
+
z-index: 2147483647;
|
24 |
}
|
25 |
|
26 |
.featherlight * {
|
27 |
+
-webkit-box-sizing: border-box;
|
28 |
+
-moz-box-sizing: border-box;
|
29 |
+
box-sizing: border-box;
|
30 |
}
|
31 |
|
32 |
.featherlight:last-of-type {
|
33 |
+
background: rgba(0, 0, 0, 0.9);
|
34 |
}
|
35 |
|
36 |
+
.featherlight::before {
|
37 |
+
content: "";
|
38 |
+
display: inline-block;
|
39 |
+
height: 100%;
|
40 |
+
margin-left: -0.25em;
|
41 |
+
vertical-align: middle;
|
42 |
}
|
43 |
|
44 |
.featherlight .featherlight-content {
|
45 |
+
-webkit-animation: fadein 0.5s;
|
46 |
+
animation: fadein 0.5s;
|
47 |
+
background: #000;
|
48 |
+
border: 0;
|
49 |
+
cursor: auto;
|
50 |
+
display: inline-block;
|
51 |
+
max-height: 80%;
|
52 |
+
max-width: 90%;
|
53 |
+
min-width: inherit;
|
54 |
+
overflow: visible;
|
55 |
+
padding: 0;
|
56 |
+
position: relative;
|
57 |
+
text-align: right;
|
58 |
+
vertical-align: middle;
|
59 |
+
white-space: normal;
|
60 |
}
|
61 |
|
62 |
@media screen and (min-width: 980px) {
|
63 |
+
.featherlight .featherlight-content {
|
64 |
+
max-height: 90%;
|
65 |
+
}
|
66 |
+
}
|
67 |
+
|
68 |
+
.featherlight .featherlight-content .caption {
|
69 |
+
color: #fff;
|
70 |
+
font-size: 16px;
|
71 |
+
font-weight: lighter;
|
72 |
+
line-height: 1.25;
|
73 |
+
max-width: 100%;
|
74 |
+
overflow: hidden;
|
75 |
+
position: absolute;
|
76 |
+
text-align: right;
|
77 |
+
text-overflow: ellipsis;
|
78 |
+
white-space: nowrap;
|
79 |
+
}
|
80 |
+
|
81 |
+
.featherlight .featherlight-content .caption:hover, .featherlight .featherlight-content .caption:focus {
|
82 |
+
overflow: visible;
|
83 |
+
white-space: normal;
|
84 |
}
|
85 |
|
86 |
.featherlight .featherlight-inner {
|
87 |
+
-webkit-animation: fadein 0.5s;
|
88 |
+
animation: fadein 0.5s;
|
89 |
+
display: block;
|
90 |
}
|
91 |
|
92 |
.featherlight .featherlight-close-icon {
|
93 |
+
background-color: transparent;
|
94 |
+
background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%3E%0A%09%3Cpath%20fill%3D%22%23fff%22%20d%3D%22M21%204.41L19.59%203%2012%2010.59%204.41%203%203%204.41%2010.59%2012%203%2019.59%204.41%2021%2012%2013.41%2019.59%2021%2021%2019.59%2013.41%2012%2021%204.41z%22/%3E%0A%3C/svg%3E");
|
95 |
+
background-position: center;
|
96 |
+
background-repeat: no-repeat;
|
97 |
+
-webkit-background-size: 100% auto;
|
98 |
+
background-size: 100% auto;
|
99 |
+
cursor: pointer;
|
100 |
+
display: block;
|
101 |
+
height: 30px;
|
102 |
+
overflow: hidden;
|
103 |
+
position: fixed;
|
104 |
+
left: 25px;
|
105 |
+
text-align: center;
|
106 |
+
text-indent: 100%;
|
107 |
+
top: 25px;
|
108 |
+
white-space: nowrap;
|
109 |
+
width: 30px;
|
110 |
+
z-index: 9999;
|
111 |
}
|
112 |
|
113 |
.featherlight .featherlight-image {
|
114 |
+
max-width: 100%;
|
115 |
}
|
116 |
|
117 |
.featherlight iframe {
|
118 |
+
border: 0;
|
119 |
}
|
120 |
|
121 |
+
[data-featherlight] img {
|
122 |
+
cursor: -webkit-zoom-in;
|
123 |
+
cursor: -moz-zoom-in;
|
124 |
+
cursor: zoom-in;
|
125 |
}
|
126 |
|
127 |
.featherlight-iframe .featherlight-content {
|
128 |
+
border-bottom: 0;
|
129 |
+
padding: 0;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
130 |
}
|
131 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
132 |
/* Animated Loader
|
133 |
--------------------------------------------- */
|
|
|
134 |
@-webkit-keyframes featherlightLoader {
|
135 |
+
0% {
|
136 |
+
-webkit-transform: rotate(0deg);
|
137 |
+
transform: rotate(0deg);
|
138 |
+
}
|
139 |
+
100% {
|
140 |
+
-webkit-transform: rotate(-360deg);
|
141 |
+
transform: rotate(-360deg);
|
142 |
+
}
|
|
|
143 |
}
|
|
|
144 |
@keyframes featherlightLoader {
|
145 |
+
0% {
|
146 |
+
-webkit-transform: rotate(0deg);
|
147 |
+
transform: rotate(0deg);
|
148 |
+
}
|
149 |
+
100% {
|
150 |
+
-webkit-transform: rotate(-360deg);
|
151 |
+
transform: rotate(-360deg);
|
152 |
+
}
|
153 |
+
}
|
154 |
+
|
155 |
+
@-webkit-keyframes fadein {
|
156 |
+
from {
|
157 |
+
opacity: 0;
|
158 |
+
}
|
159 |
+
to {
|
160 |
+
opacity: 1;
|
161 |
+
}
|
162 |
+
}
|
163 |
+
|
164 |
+
@keyframes fadein {
|
165 |
+
from {
|
166 |
+
opacity: 0;
|
167 |
+
}
|
168 |
+
to {
|
169 |
+
opacity: 1;
|
170 |
+
}
|
171 |
}
|
172 |
|
173 |
.featherlight-loading .featherlight-content {
|
174 |
+
-webkit-animation: featherlightLoader 1s infinite linear;
|
175 |
+
animation: featherlightLoader 1s infinite linear;
|
176 |
+
background: transparent;
|
177 |
+
border: 8px solid #909090;
|
178 |
+
border-right-color: #fff;
|
179 |
+
font-size: 10px;
|
180 |
}
|
181 |
|
182 |
.featherlight-loading .featherlight-content,
|
183 |
+
.featherlight-loading .featherlight-content::after {
|
184 |
+
-webkit-border-radius: 50%;
|
185 |
+
border-radius: 50%;
|
186 |
+
height: 10em;
|
187 |
+
width: 10em;
|
188 |
}
|
189 |
|
190 |
.featherlight-loading .featherlight-close,
|
191 |
.featherlight-loading .featherlight-inner {
|
192 |
+
display: none;
|
193 |
}
|
194 |
|
|
|
195 |
/* Gallery
|
196 |
--------------------------------------------- */
|
|
|
197 |
.featherlight-next,
|
198 |
.featherlight-previous {
|
199 |
+
background-color: transparent;
|
200 |
+
background-repeat: no-repeat;
|
201 |
+
-webkit-background-size: 100% auto;
|
202 |
+
background-size: 100% auto;
|
203 |
+
cursor: pointer;
|
204 |
+
display: block;
|
205 |
+
height: 60px;
|
206 |
+
margin-top: -30px;
|
207 |
+
opacity: 0.4;
|
208 |
+
overflow: hidden;
|
209 |
+
position: fixed;
|
210 |
+
text-indent: 100%;
|
211 |
+
top: 50%;
|
212 |
+
-webkit-user-select: none;
|
213 |
+
-moz-user-select: none;
|
214 |
+
-ms-user-select: none;
|
215 |
+
user-select: none;
|
216 |
+
white-space: nowrap;
|
217 |
+
width: 60px;
|
218 |
}
|
219 |
|
220 |
.featherlight-next span,
|
221 |
.featherlight-previous span {
|
222 |
+
display: none;
|
223 |
}
|
224 |
|
225 |
+
.featherlight-next:hover, .featherlight-next:focus,
|
|
|
226 |
.featherlight-previous:hover,
|
227 |
.featherlight-previous:focus {
|
228 |
+
opacity: 1;
|
229 |
}
|
230 |
.featherlight-next {
|
231 |
+
background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%3E%0A%09%3Cpath%20fill%3D%22%23fff%22%20d%3D%22M8.59%2016.59L13.17%2012%208.59%207.41%2010%206l6%206-6%206-1.41-1.41z%22/%3E%0A%3C/svg%3E");
|
232 |
+
background-position: 0 0;
|
233 |
+
right: 10px;
|
234 |
}
|
235 |
.featherlight-previous {
|
236 |
+
background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%3E%0A%09%3Cpath%20fill%3D%22%23fff%22%20d%3D%22M15.41%207.41L10.83%2012l4.58%204.59L14%2018l-6-6%206-6%201.41%201.41z%22/%3E%0A%3C/svg%3E");
|
237 |
+
background-position: -5px 0;
|
238 |
+
left: 10px;
|
239 |
}
|
240 |
|
241 |
.featherlight-loading .featherlight-previous,
|
242 |
.featherlight-loading .featherlight-next {
|
243 |
+
display: none;
|
244 |
}
|
245 |
+
/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndwLWZlYXRoZXJsaWdodC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0dBS0c7QUFDSDtnREFDZ0Q7QUFDaEQ7RUFDRSx3QkFBd0I7RUFDeEIsVUFBVTtFQUNWLHlCQUFpQjtFQUFqQixzQkFBaUI7RUFBakIsaUJBQWlCO0VBQ2pCLGNBQWM7RUFDZCw0REFBNEQ7RUFDNUQsU0FBUTtFQUNSLGdCQUFnQjtFQUNoQixRQUFTO0VBQ1QsbUJBQW1CO0VBQ25CLE9BQU87RUFDUCxvQkFBb0I7RUFDcEIsb0JBQW9CO0NBQ3JCOztBQUVEO0VBQ0UsK0JBQXVCO0tBQXZCLDRCQUF1QjtVQUF2Qix1QkFBdUI7Q0FDeEI7O0FBRUQ7RUFDRSwrQkFBK0I7Q0FDaEM7O0FBRUQ7RUFDRSxZQUFZO0VBQ1osc0JBQXNCO0VBQ3RCLGFBQWE7RUFDYixxQkFBc0I7RUFDdEIsdUJBQXVCO0NBQ3hCOztBQUVEO0VBQ0UsK0JBQXVCO1VBQXZCLHVCQUF1QjtFQUN2QixpQkFBaUI7RUFDakIsVUFBVTtFQUNWLGFBQWE7RUFDYixzQkFBc0I7RUFDdEIsZ0JBQWdCO0VBQ2hCLGVBQWU7RUFDZixtQkFBbUI7RUFDbkIsa0JBQWtCO0VBQ2xCLFdBQVc7RUFDWCxtQkFBbUI7RUFDbkIsa0JBQWlCO0VBQ2pCLHVCQUF1QjtFQUN2QixvQkFBb0I7Q0FDckI7O0FBRUQ7RUFDRTtJQUNFLGdCQUFnQjtHQUNqQjtDQUNGOztBQUVEO0VBQ0UsWUFBWTtFQUNaLGdCQUFnQjtFQUNoQixxQkFBcUI7RUFDckIsa0JBQWtCO0VBQ2xCLGdCQUFnQjtFQUNoQixpQkFBaUI7RUFDakIsbUJBQW1CO0VBQ25CLGtCQUFpQjtFQUNqQix3QkFBd0I7RUFDeEIsb0JBQW9CO0NBQ3JCOztBQUVEO0VBQ0Usa0JBQWtCO0VBQ2xCLG9CQUFvQjtDQUNyQjs7QUFFRDtFQUNFLCtCQUF1QjtVQUF2Qix1QkFBdUI7RUFDdkIsZUFBZTtDQUNoQjs7QUFFRDtFQUNFLDhCQUE4QjtFQUM5QixtV0FBbVc7RUFDblcsNEJBQTRCO0VBQzVCLDZCQUE2QjtFQUM3QixtQ0FBMkI7VUFBM0IsMkJBQTJCO0VBQzNCLGdCQUFnQjtFQUNoQixlQUFlO0VBQ2YsYUFBYTtFQUNiLGlCQUFpQjtFQUNqQixnQkFBZ0I7RUFDaEIsV0FBWTtFQUNaLG1CQUFtQjtFQUNuQixrQkFBa0I7RUFDbEIsVUFBVTtFQUNWLG9CQUFvQjtFQUNwQixZQUFZO0VBQ1osY0FBYztDQUNmOztBQUVEO0VBQ0UsZ0JBQWdCO0NBQ2pCOztBQUVEO0VBQ0UsVUFBVTtDQUNYOztBQUVEO0VBQ0Usd0JBQWdCO0VBQWhCLHFCQUFnQjtFQUFoQixnQkFBZ0I7Q0FDakI7O0FBRUQ7RUFDRSxpQkFBaUI7RUFDakIsV0FBVztDQUNaOztBQUVEO2dEQUNnRDtBQUNoRDtFQUNFO0lBQ0UsZ0NBQXdCO1lBQXhCLHdCQUF3QjtHQUN6QjtFQUNEO0lBQ0UsbUNBQTBCO1lBQTFCLDJCQUEwQjtHQUMzQjtDQUNGO0FBUEQ7RUFDRTtJQUNFLGdDQUF3QjtZQUF4Qix3QkFBd0I7R0FDekI7RUFDRDtJQUNFLG1DQUEwQjtZQUExQiwyQkFBMEI7R0FDM0I7Q0FDRjs7QUFFRDtFQUNFO0lBQ0UsV0FBVztHQUNaO0VBQ0Q7SUFDRSxXQUFXO0dBQ1o7Q0FDRjs7QUFQRDtFQUNFO0lBQ0UsV0FBVztHQUNaO0VBQ0Q7SUFDRSxXQUFXO0dBQ1o7Q0FDRjs7QUFFRDtFQUNFLHlEQUFpRDtVQUFqRCxpREFBaUQ7RUFDakQsd0JBQXdCO0VBQ3hCLDBCQUEwQjtFQUMxQix5QkFBd0I7RUFDeEIsZ0JBQWdCO0NBQ2pCOztBQUVEOztFQUVFLDJCQUFtQjtVQUFuQixtQkFBbUI7RUFDbkIsYUFBYTtFQUNiLFlBQVk7Q0FDYjs7QUFFRDs7RUFFRSxjQUFjO0NBQ2Y7O0FBRUQ7Z0RBQ2dEO0FBQ2hEOztFQUVFLDhCQUE4QjtFQUM5Qiw2QkFBNkI7RUFDN0IsbUNBQTJCO1VBQTNCLDJCQUEyQjtFQUMzQixnQkFBZ0I7RUFDaEIsZUFBZTtFQUNmLGFBQWE7RUFDYixrQkFBa0I7RUFDbEIsYUFBYTtFQUNiLGlCQUFpQjtFQUNqQixnQkFBZ0I7RUFDaEIsa0JBQWtCO0VBQ2xCLFNBQVM7RUFDVCwwQkFBa0I7S0FBbEIsdUJBQWtCO01BQWxCLHNCQUFrQjtVQUFsQixrQkFBa0I7RUFDbEIsb0JBQW9CO0VBQ3BCLFlBQVk7Q0FDYjs7QUFFRDs7RUFFRSxjQUFjO0NBQ2Y7O0FBRUQ7OztFQUdFLFdBQVc7Q0FDWjtBQUdEO0VBQ0UsNFFBQTRRO0VBQzVRLHlCQUF5QjtFQUN6QixZQUFZO0NBQ2I7QUFHRDtFQUNFLDRRQUE0UTtFQUM1USw0QkFBNEI7RUFDNUIsV0FBVztDQUNaOztBQUVEOztFQUVFLGNBQWM7Q0FDZiIsImZpbGUiOiJ3cC1mZWF0aGVybGlnaHQtcnRsLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKiFcbiAqIFBsdWdpbiBOYW1lOiBXUCBGZWF0aGVybGlnaHRcbiAqIFZlcnNpb246ICAgICAxLjAuMFxuICogQXV0aG9yOiAgICAgIFdQIFNpdGUgQ2FyZVxuICogTGljZW5zZTogICAgIEdQTC0yLjArXG4gKi9cbi8qIEJhc2UgU3R5bGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5mZWF0aGVybGlnaHQge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgYm90dG9tOiAwO1xuICBjdXJzb3I6IHpvb20tb3V0O1xuICBkaXNwbGF5OiBub25lO1xuICBmb250LWZhbWlseTogXCJIZWx2ZXRpY2EgTmV1ZVwiLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICBsZWZ0OiAwO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHJpZ2h0OiAwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRvcDogMDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgei1pbmRleDogMjE0NzQ4MzY0Nztcbn1cblxuLmZlYXRoZXJsaWdodCAqIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuLmZlYXRoZXJsaWdodDpsYXN0LW9mLXR5cGUge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuOSk7XG59XG5cbi5mZWF0aGVybGlnaHQ6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgaGVpZ2h0OiAxMDAlO1xuICBtYXJnaW4tcmlnaHQ6IC0wLjI1ZW07XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi5mZWF0aGVybGlnaHQgLmZlYXRoZXJsaWdodC1jb250ZW50IHtcbiAgYW5pbWF0aW9uOiBmYWRlaW4gMC41cztcbiAgYmFja2dyb3VuZDogIzAwMDtcbiAgYm9yZGVyOiAwO1xuICBjdXJzb3I6IGF1dG87XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWF4LWhlaWdodDogODAlO1xuICBtYXgtd2lkdGg6IDkwJTtcbiAgbWluLXdpZHRoOiBpbmhlcml0O1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgcGFkZGluZzogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5ODBweCkge1xuICAuZmVhdGhlcmxpZ2h0IC5mZWF0aGVybGlnaHQtY29udGVudCB7XG4gICAgbWF4LWhlaWdodDogOTAlO1xuICB9XG59XG5cbi5mZWF0aGVybGlnaHQgLmZlYXRoZXJsaWdodC1jb250ZW50IC5jYXB0aW9uIHtcbiAgY29sb3I6ICNmZmY7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgZm9udC13ZWlnaHQ6IGxpZ2h0ZXI7XG4gIGxpbmUtaGVpZ2h0OiAxLjI1O1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi5mZWF0aGVybGlnaHQgLmZlYXRoZXJsaWdodC1jb250ZW50IC5jYXB0aW9uOmhvdmVyLCAuZmVhdGhlcmxpZ2h0IC5mZWF0aGVybGlnaHQtY29udGVudCAuY2FwdGlvbjpmb2N1cyB7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xufVxuXG4uZmVhdGhlcmxpZ2h0IC5mZWF0aGVybGlnaHQtaW5uZXIge1xuICBhbmltYXRpb246IGZhZGVpbiAwLjVzO1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLmZlYXRoZXJsaWdodCAuZmVhdGhlcmxpZ2h0LWNsb3NlLWljb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyUyMHhtbG5zJTNEJTIyaHR0cCUzQS8vd3d3LnczLm9yZy8yMDAwL3N2ZyUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDI0JTIwMjQlMjIlM0UlMEElMDklM0NwYXRoJTIwZmlsbCUzRCUyMiUyM2ZmZiUyMiUyMGQlM0QlMjJNMjElMjA0LjQxTDE5LjU5JTIwMyUyMDEyJTIwMTAuNTklMjA0LjQxJTIwMyUyMDMlMjA0LjQxJTIwMTAuNTklMjAxMiUyMDMlMjAxOS41OSUyMDQuNDElMjAyMSUyMDEyJTIwMTMuNDElMjAxOS41OSUyMDIxJTIwMjElMjAxOS41OSUyMDEzLjQxJTIwMTIlMjAyMSUyMDQuNDF6JTIyLyUzRSUwQSUzQy9zdmclM0VcIik7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1zaXplOiAxMDAlIGF1dG87XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGhlaWdodDogMzBweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcG9zaXRpb246IGZpeGVkO1xuICByaWdodDogMjVweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0ZXh0LWluZGVudDogMTAwJTtcbiAgdG9wOiAyNXB4O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB3aWR0aDogMzBweDtcbiAgei1pbmRleDogOTk5OTtcbn1cblxuLmZlYXRoZXJsaWdodCAuZmVhdGhlcmxpZ2h0LWltYWdlIHtcbiAgbWF4LXdpZHRoOiAxMDAlO1xufVxuXG4uZmVhdGhlcmxpZ2h0IGlmcmFtZSB7XG4gIGJvcmRlcjogMDtcbn1cblxuW2RhdGEtZmVhdGhlcmxpZ2h0XSBpbWcge1xuICBjdXJzb3I6IHpvb20taW47XG59XG5cbi5mZWF0aGVybGlnaHQtaWZyYW1lIC5mZWF0aGVybGlnaHQtY29udGVudCB7XG4gIGJvcmRlci1ib3R0b206IDA7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi8qIEFuaW1hdGVkIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5Aa2V5ZnJhbWVzIGZlYXRoZXJsaWdodExvYWRlciB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgZmFkZWluIHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuICB0byB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuXG4uZmVhdGhlcmxpZ2h0LWxvYWRpbmcgLmZlYXRoZXJsaWdodC1jb250ZW50IHtcbiAgYW5pbWF0aW9uOiBmZWF0aGVybGlnaHRMb2FkZXIgMXMgaW5maW5pdGUgbGluZWFyO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiA4cHggc29saWQgIzkwOTA5MDtcbiAgYm9yZGVyLWxlZnQtY29sb3I6ICNmZmY7XG4gIGZvbnQtc2l6ZTogMTBweDtcbn1cblxuLmZlYXRoZXJsaWdodC1sb2FkaW5nIC5mZWF0aGVybGlnaHQtY29udGVudCxcbi5mZWF0aGVybGlnaHQtbG9hZGluZyAuZmVhdGhlcmxpZ2h0LWNvbnRlbnQ6OmFmdGVyIHtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBoZWlnaHQ6IDEwZW07XG4gIHdpZHRoOiAxMGVtO1xufVxuXG4uZmVhdGhlcmxpZ2h0LWxvYWRpbmcgLmZlYXRoZXJsaWdodC1jbG9zZSxcbi5mZWF0aGVybGlnaHQtbG9hZGluZyAuZmVhdGhlcmxpZ2h0LWlubmVyIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLyogR2FsbGVyeVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4uZmVhdGhlcmxpZ2h0LW5leHQsXG4uZmVhdGhlcmxpZ2h0LXByZXZpb3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtc2l6ZTogMTAwJSBhdXRvO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBoZWlnaHQ6IDYwcHg7XG4gIG1hcmdpbi10b3A6IC0zMHB4O1xuICBvcGFjaXR5OiAwLjQ7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdGV4dC1pbmRlbnQ6IDEwMCU7XG4gIHRvcDogNTAlO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgd2lkdGg6IDYwcHg7XG59XG5cbi5mZWF0aGVybGlnaHQtbmV4dCBzcGFuLFxuLmZlYXRoZXJsaWdodC1wcmV2aW91cyBzcGFuIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLmZlYXRoZXJsaWdodC1uZXh0OmhvdmVyLCAuZmVhdGhlcmxpZ2h0LW5leHQ6Zm9jdXMsXG4uZmVhdGhlcmxpZ2h0LXByZXZpb3VzOmhvdmVyLFxuLmZlYXRoZXJsaWdodC1wcmV2aW91czpmb2N1cyB7XG4gIG9wYWNpdHk6IDE7XG59XG5cbi8qIHJ0bDppZ25vcmUgKi9cbi5mZWF0aGVybGlnaHQtbmV4dCB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmclMjB4bWxucyUzRCUyMmh0dHAlM0EvL3d3dy53My5vcmcvMjAwMC9zdmclMjIlMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjAyNCUyMDI0JTIyJTNFJTBBJTA5JTNDcGF0aCUyMGZpbGwlM0QlMjIlMjNmZmYlMjIlMjBkJTNEJTIyTTguNTklMjAxNi41OUwxMy4xNyUyMDEyJTIwOC41OSUyMDcuNDElMjAxMCUyMDZsNiUyMDYtNiUyMDYtMS40MS0xLjQxeiUyMi8lM0UlMEElM0Mvc3ZnJTNFXCIpO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIDA7XG4gIHJpZ2h0OiAxMHB4O1xufVxuXG4vKiBydGw6aWdub3JlICovXG4uZmVhdGhlcmxpZ2h0LXByZXZpb3VzIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyUyMHhtbG5zJTNEJTIyaHR0cCUzQS8vd3d3LnczLm9yZy8yMDAwL3N2ZyUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDI0JTIwMjQlMjIlM0UlMEElMDklM0NwYXRoJTIwZmlsbCUzRCUyMiUyM2ZmZiUyMiUyMGQlM0QlMjJNMTUuNDElMjA3LjQxTDEwLjgzJTIwMTJsNC41OCUyMDQuNTlMMTQlMjAxOGwtNi02JTIwNi02JTIwMS40MSUyMDEuNDF6JTIyLyUzRSUwQSUzQy9zdmclM0VcIik7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC01cHggMDtcbiAgbGVmdDogMTBweDtcbn1cblxuLmZlYXRoZXJsaWdodC1sb2FkaW5nIC5mZWF0aGVybGlnaHQtcHJldmlvdXMsXG4uZmVhdGhlcmxpZ2h0LWxvYWRpbmcgLmZlYXRoZXJsaWdodC1uZXh0IHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbiJdfQ== */
|
@@ -1 +1 @@
|
|
1 |
-
.featherlight{background:0 0;cursor:-webkit-zoom-out;cursor:-moz-zoom-out;cursor:zoom-out;display:none;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;position:fixed;
|
1 |
+
.featherlight{background:0 0;bottom:0;cursor:-webkit-zoom-out;cursor:-moz-zoom-out;cursor:zoom-out;display:none;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;right:0;position:fixed;left:0;text-align:center;top:0;white-space:nowrap;z-index:2147483647}.featherlight *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.featherlight:last-of-type{background:rgba(0,0,0,.9)}.featherlight::before{content:"";display:inline-block;height:100%;margin-left:-.25em;vertical-align:middle}.featherlight .featherlight-content{-webkit-animation:fadein .5s;animation:fadein .5s;background:#000;border:0;cursor:auto;display:inline-block;max-height:80%;max-width:90%;min-width:inherit;overflow:visible;padding:0;position:relative;text-align:right;vertical-align:middle;white-space:normal}@media screen and (min-width:980px){.featherlight .featherlight-content{max-height:90%}}.featherlight .featherlight-content .caption{color:#fff;font-size:16px;font-weight:lighter;line-height:1.25;max-width:100%;overflow:hidden;position:absolute;text-align:right;text-overflow:ellipsis;white-space:nowrap}.featherlight .featherlight-content .caption:focus,.featherlight .featherlight-content .caption:hover{overflow:visible;white-space:normal}.featherlight .featherlight-inner{-webkit-animation:fadein .5s;animation:fadein .5s;display:block}.featherlight .featherlight-close-icon{background-color:transparent;background-image:url(data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%3E%0A%09%3Cpath%20fill%3D%22%23fff%22%20d%3D%22M21%204.41L19.59%203%2012%2010.59%204.41%203%203%204.41%2010.59%2012%203%2019.59%204.41%2021%2012%2013.41%2019.59%2021%2021%2019.59%2013.41%2012%2021%204.41z%22/%3E%0A%3C/svg%3E);background-position:center;background-repeat:no-repeat;-webkit-background-size:100% auto;background-size:100% auto;cursor:pointer;display:block;height:30px;overflow:hidden;position:fixed;left:25px;text-align:center;text-indent:100%;top:25px;white-space:nowrap;width:30px;z-index:9999}.featherlight .featherlight-image{max-width:100%}.featherlight iframe{border:0}[data-featherlight] img{cursor:-webkit-zoom-in;cursor:-moz-zoom-in;cursor:zoom-in}.featherlight-iframe .featherlight-content{border-bottom:0;padding:0}@-webkit-keyframes featherlightLoader{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(-360deg);transform:rotate(-360deg)}}@keyframes featherlightLoader{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(-360deg);transform:rotate(-360deg)}}@-webkit-keyframes fadein{from{opacity:0}to{opacity:1}}@keyframes fadein{from{opacity:0}to{opacity:1}}.featherlight-loading .featherlight-content{-webkit-animation:featherlightLoader 1s infinite linear;animation:featherlightLoader 1s infinite linear;background:0 0;border:8px solid #909090;border-right-color:#fff;font-size:10px}.featherlight-loading .featherlight-content,.featherlight-loading .featherlight-content::after{-webkit-border-radius:50%;border-radius:50%;height:10em;width:10em}.featherlight-loading .featherlight-close,.featherlight-loading .featherlight-inner{display:none}.featherlight-next,.featherlight-previous{background-color:transparent;background-repeat:no-repeat;-webkit-background-size:100% auto;background-size:100% auto;cursor:pointer;display:block;height:60px;margin-top:-30px;opacity:.4;overflow:hidden;position:fixed;text-indent:100%;top:50%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;white-space:nowrap;width:60px}.featherlight-loading .featherlight-next,.featherlight-loading .featherlight-previous,.featherlight-next span,.featherlight-previous span{display:none}.featherlight-next:focus,.featherlight-next:hover,.featherlight-previous:focus,.featherlight-previous:hover{opacity:1}.featherlight-next{background-image:url(data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%3E%0A%09%3Cpath%20fill%3D%22%23fff%22%20d%3D%22M8.59%2016.59L13.17%2012%208.59%207.41%2010%206l6%206-6%206-1.41-1.41z%22/%3E%0A%3C/svg%3E);background-position:0 0;right:10px}.featherlight-previous{background-image:url(data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%3E%0A%09%3Cpath%20fill%3D%22%23fff%22%20d%3D%22M15.41%207.41L10.83%2012l4.58%204.59L14%2018l-6-6%206-6%201.41%201.41z%22/%3E%0A%3C/svg%3E);background-position:-5px 0;left:10px}
|
@@ -1,235 +1,250 @@
|
|
1 |
/**!
|
2 |
* Plugin Name: WP Featherlight
|
3 |
-
* Version: 0.
|
4 |
* Author: WP Site Care
|
5 |
* License: GPL-2.0+
|
6 |
*/
|
7 |
-
|
8 |
-
|
9 |
/* Base Styles
|
10 |
--------------------------------------------- */
|
11 |
-
|
12 |
.featherlight {
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
}
|
28 |
|
29 |
.featherlight * {
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
}
|
34 |
|
35 |
.featherlight:last-of-type {
|
36 |
-
|
37 |
}
|
38 |
|
39 |
-
.featherlight
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
}
|
46 |
|
47 |
.featherlight .featherlight-content {
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
|
|
|
|
61 |
}
|
62 |
|
63 |
@media screen and (min-width: 980px) {
|
64 |
-
|
65 |
-
|
66 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
67 |
}
|
68 |
|
69 |
.featherlight .featherlight-inner {
|
70 |
-
|
|
|
|
|
71 |
}
|
72 |
|
73 |
.featherlight .featherlight-close-icon {
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
|
|
91 |
}
|
92 |
|
93 |
.featherlight .featherlight-image {
|
94 |
-
|
95 |
}
|
96 |
|
97 |
.featherlight iframe {
|
98 |
-
|
99 |
}
|
100 |
|
101 |
-
[data-featherlight] {
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
}
|
106 |
|
107 |
.featherlight-iframe .featherlight-content {
|
108 |
-
|
109 |
-
|
110 |
}
|
111 |
|
112 |
-
.featherlight-content .caption {
|
113 |
-
color: #fff;
|
114 |
-
font-size: 16px;
|
115 |
-
font-weight: lighter;
|
116 |
-
max-width: 100%;
|
117 |
-
overflow: hidden;
|
118 |
-
position: absolute;
|
119 |
-
text-align: left;
|
120 |
-
text-overflow: ellipsis;
|
121 |
-
white-space: nowrap;
|
122 |
-
}
|
123 |
-
|
124 |
-
.featherlight-content .caption:hover,
|
125 |
-
.featherlight-content .caption:focus {
|
126 |
-
overflow: visible;
|
127 |
-
white-space: normal;
|
128 |
-
}
|
129 |
-
|
130 |
-
|
131 |
/* Animated Loader
|
132 |
--------------------------------------------- */
|
133 |
-
|
134 |
@-webkit-keyframes featherlightLoader {
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
}
|
144 |
}
|
145 |
-
|
146 |
@keyframes featherlightLoader {
|
147 |
-
|
148 |
-
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
-
|
153 |
-
|
154 |
-
|
155 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
156 |
}
|
157 |
|
158 |
.featherlight-loading .featherlight-content {
|
159 |
-
|
160 |
-
|
161 |
-
|
162 |
-
|
163 |
-
|
164 |
-
|
165 |
}
|
166 |
|
167 |
.featherlight-loading .featherlight-content,
|
168 |
-
.featherlight-loading .featherlight-content
|
169 |
-
|
170 |
-
|
171 |
-
|
172 |
-
|
173 |
}
|
174 |
|
175 |
.featherlight-loading .featherlight-close,
|
176 |
.featherlight-loading .featherlight-inner {
|
177 |
-
|
178 |
}
|
179 |
|
180 |
-
|
181 |
/* Gallery
|
182 |
--------------------------------------------- */
|
183 |
-
|
184 |
.featherlight-next,
|
185 |
.featherlight-previous {
|
186 |
-
|
187 |
-
|
188 |
-
|
189 |
-
|
190 |
-
|
191 |
-
|
192 |
-
|
193 |
-
|
194 |
-
|
195 |
-
|
196 |
-
|
197 |
-
|
198 |
-
|
199 |
-
|
200 |
-
|
201 |
-
|
202 |
-
|
203 |
-
|
|
|
204 |
}
|
205 |
|
206 |
.featherlight-next span,
|
207 |
.featherlight-previous span {
|
208 |
-
|
209 |
}
|
210 |
|
211 |
-
.featherlight-next:hover,
|
212 |
-
.featherlight-next:focus,
|
213 |
.featherlight-previous:hover,
|
214 |
.featherlight-previous:focus {
|
215 |
-
|
216 |
}
|
217 |
|
218 |
/* rtl:ignore */
|
219 |
.featherlight-next {
|
220 |
-
|
221 |
-
|
222 |
-
|
223 |
}
|
224 |
|
225 |
/* rtl:ignore */
|
226 |
.featherlight-previous {
|
227 |
-
|
228 |
-
|
229 |
-
|
230 |
}
|
231 |
|
232 |
.featherlight-loading .featherlight-previous,
|
233 |
.featherlight-loading .featherlight-next {
|
234 |
-
|
235 |
}
|
|
|
|
1 |
/**!
|
2 |
* Plugin Name: WP Featherlight
|
3 |
+
* Version: 1.0.0
|
4 |
* Author: WP Site Care
|
5 |
* License: GPL-2.0+
|
6 |
*/
|
|
|
|
|
7 |
/* Base Styles
|
8 |
--------------------------------------------- */
|
|
|
9 |
.featherlight {
|
10 |
+
background: transparent;
|
11 |
+
bottom: 0;
|
12 |
+
cursor: -webkit-zoom-out;
|
13 |
+
cursor: -moz-zoom-out;
|
14 |
+
cursor: zoom-out;
|
15 |
+
display: none;
|
16 |
+
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
|
17 |
+
left: 0;
|
18 |
+
position: fixed;
|
19 |
+
right: 0;
|
20 |
+
text-align: center;
|
21 |
+
top: 0;
|
22 |
+
white-space: nowrap;
|
23 |
+
z-index: 2147483647;
|
24 |
}
|
25 |
|
26 |
.featherlight * {
|
27 |
+
-webkit-box-sizing: border-box;
|
28 |
+
-moz-box-sizing: border-box;
|
29 |
+
box-sizing: border-box;
|
30 |
}
|
31 |
|
32 |
.featherlight:last-of-type {
|
33 |
+
background: rgba(0, 0, 0, 0.9);
|
34 |
}
|
35 |
|
36 |
+
.featherlight::before {
|
37 |
+
content: "";
|
38 |
+
display: inline-block;
|
39 |
+
height: 100%;
|
40 |
+
margin-right: -0.25em;
|
41 |
+
vertical-align: middle;
|
42 |
}
|
43 |
|
44 |
.featherlight .featherlight-content {
|
45 |
+
-webkit-animation: fadein 0.5s;
|
46 |
+
animation: fadein 0.5s;
|
47 |
+
background: #000;
|
48 |
+
border: 0;
|
49 |
+
cursor: auto;
|
50 |
+
display: inline-block;
|
51 |
+
max-height: 80%;
|
52 |
+
max-width: 90%;
|
53 |
+
min-width: inherit;
|
54 |
+
overflow: visible;
|
55 |
+
padding: 0;
|
56 |
+
position: relative;
|
57 |
+
text-align: left;
|
58 |
+
vertical-align: middle;
|
59 |
+
white-space: normal;
|
60 |
}
|
61 |
|
62 |
@media screen and (min-width: 980px) {
|
63 |
+
.featherlight .featherlight-content {
|
64 |
+
max-height: 90%;
|
65 |
+
}
|
66 |
+
}
|
67 |
+
|
68 |
+
.featherlight .featherlight-content .caption {
|
69 |
+
color: #fff;
|
70 |
+
font-size: 16px;
|
71 |
+
font-weight: lighter;
|
72 |
+
line-height: 1.25;
|
73 |
+
max-width: 100%;
|
74 |
+
overflow: hidden;
|
75 |
+
position: absolute;
|
76 |
+
text-align: left;
|
77 |
+
text-overflow: ellipsis;
|
78 |
+
white-space: nowrap;
|
79 |
+
}
|
80 |
+
|
81 |
+
.featherlight .featherlight-content .caption:hover, .featherlight .featherlight-content .caption:focus {
|
82 |
+
overflow: visible;
|
83 |
+
white-space: normal;
|
84 |
}
|
85 |
|
86 |
.featherlight .featherlight-inner {
|
87 |
+
-webkit-animation: fadein 0.5s;
|
88 |
+
animation: fadein 0.5s;
|
89 |
+
display: block;
|
90 |
}
|
91 |
|
92 |
.featherlight .featherlight-close-icon {
|
93 |
+
background-color: transparent;
|
94 |
+
background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%3E%0A%09%3Cpath%20fill%3D%22%23fff%22%20d%3D%22M21%204.41L19.59%203%2012%2010.59%204.41%203%203%204.41%2010.59%2012%203%2019.59%204.41%2021%2012%2013.41%2019.59%2021%2021%2019.59%2013.41%2012%2021%204.41z%22/%3E%0A%3C/svg%3E");
|
95 |
+
background-position: center;
|
96 |
+
background-repeat: no-repeat;
|
97 |
+
-webkit-background-size: 100% auto;
|
98 |
+
background-size: 100% auto;
|
99 |
+
cursor: pointer;
|
100 |
+
display: block;
|
101 |
+
height: 30px;
|
102 |
+
overflow: hidden;
|
103 |
+
position: fixed;
|
104 |
+
right: 25px;
|
105 |
+
text-align: center;
|
106 |
+
text-indent: 100%;
|
107 |
+
top: 25px;
|
108 |
+
white-space: nowrap;
|
109 |
+
width: 30px;
|
110 |
+
z-index: 9999;
|
111 |
}
|
112 |
|
113 |
.featherlight .featherlight-image {
|
114 |
+
max-width: 100%;
|
115 |
}
|
116 |
|
117 |
.featherlight iframe {
|
118 |
+
border: 0;
|
119 |
}
|
120 |
|
121 |
+
[data-featherlight] img {
|
122 |
+
cursor: -webkit-zoom-in;
|
123 |
+
cursor: -moz-zoom-in;
|
124 |
+
cursor: zoom-in;
|
125 |
}
|
126 |
|
127 |
.featherlight-iframe .featherlight-content {
|
128 |
+
border-bottom: 0;
|
129 |
+
padding: 0;
|
130 |
}
|
131 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
132 |
/* Animated Loader
|
133 |
--------------------------------------------- */
|
|
|
134 |
@-webkit-keyframes featherlightLoader {
|
135 |
+
0% {
|
136 |
+
-webkit-transform: rotate(0deg);
|
137 |
+
transform: rotate(0deg);
|
138 |
+
}
|
139 |
+
100% {
|
140 |
+
-webkit-transform: rotate(360deg);
|
141 |
+
transform: rotate(360deg);
|
142 |
+
}
|
|
|
143 |
}
|
|
|
144 |
@keyframes featherlightLoader {
|
145 |
+
0% {
|
146 |
+
-webkit-transform: rotate(0deg);
|
147 |
+
transform: rotate(0deg);
|
148 |
+
}
|
149 |
+
100% {
|
150 |
+
-webkit-transform: rotate(360deg);
|
151 |
+
transform: rotate(360deg);
|
152 |
+
}
|
153 |
+
}
|
154 |
+
|
155 |
+
@-webkit-keyframes fadein {
|
156 |
+
from {
|
157 |
+
opacity: 0;
|
158 |
+
}
|
159 |
+
to {
|
160 |
+
opacity: 1;
|
161 |
+
}
|
162 |
+
}
|
163 |
+
|
164 |
+
@keyframes fadein {
|
165 |
+
from {
|
166 |
+
opacity: 0;
|
167 |
+
}
|
168 |
+
to {
|
169 |
+
opacity: 1;
|
170 |
+
}
|
171 |
}
|
172 |
|
173 |
.featherlight-loading .featherlight-content {
|
174 |
+
-webkit-animation: featherlightLoader 1s infinite linear;
|
175 |
+
animation: featherlightLoader 1s infinite linear;
|
176 |
+
background: transparent;
|
177 |
+
border: 8px solid #909090;
|
178 |
+
border-left-color: #fff;
|
179 |
+
font-size: 10px;
|
180 |
}
|
181 |
|
182 |
.featherlight-loading .featherlight-content,
|
183 |
+
.featherlight-loading .featherlight-content::after {
|
184 |
+
-webkit-border-radius: 50%;
|
185 |
+
border-radius: 50%;
|
186 |
+
height: 10em;
|
187 |
+
width: 10em;
|
188 |
}
|
189 |
|
190 |
.featherlight-loading .featherlight-close,
|
191 |
.featherlight-loading .featherlight-inner {
|
192 |
+
display: none;
|
193 |
}
|
194 |
|
|
|
195 |
/* Gallery
|
196 |
--------------------------------------------- */
|
|
|
197 |
.featherlight-next,
|
198 |
.featherlight-previous {
|
199 |
+
background-color: transparent;
|
200 |
+
background-repeat: no-repeat;
|
201 |
+
-webkit-background-size: 100% auto;
|
202 |
+
background-size: 100% auto;
|
203 |
+
cursor: pointer;
|
204 |
+
display: block;
|
205 |
+
height: 60px;
|
206 |
+
margin-top: -30px;
|
207 |
+
opacity: 0.4;
|
208 |
+
overflow: hidden;
|
209 |
+
position: fixed;
|
210 |
+
text-indent: 100%;
|
211 |
+
top: 50%;
|
212 |
+
-webkit-user-select: none;
|
213 |
+
-moz-user-select: none;
|
214 |
+
-ms-user-select: none;
|
215 |
+
user-select: none;
|
216 |
+
white-space: nowrap;
|
217 |
+
width: 60px;
|
218 |
}
|
219 |
|
220 |
.featherlight-next span,
|
221 |
.featherlight-previous span {
|
222 |
+
display: none;
|
223 |
}
|
224 |
|
225 |
+
.featherlight-next:hover, .featherlight-next:focus,
|
|
|
226 |
.featherlight-previous:hover,
|
227 |
.featherlight-previous:focus {
|
228 |
+
opacity: 1;
|
229 |
}
|
230 |
|
231 |
/* rtl:ignore */
|
232 |
.featherlight-next {
|
233 |
+
background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%3E%0A%09%3Cpath%20fill%3D%22%23fff%22%20d%3D%22M8.59%2016.59L13.17%2012%208.59%207.41%2010%206l6%206-6%206-1.41-1.41z%22/%3E%0A%3C/svg%3E");
|
234 |
+
background-position: 0 0;
|
235 |
+
right: 10px;
|
236 |
}
|
237 |
|
238 |
/* rtl:ignore */
|
239 |
.featherlight-previous {
|
240 |
+
background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%3E%0A%09%3Cpath%20fill%3D%22%23fff%22%20d%3D%22M15.41%207.41L10.83%2012l4.58%204.59L14%2018l-6-6%206-6%201.41%201.41z%22/%3E%0A%3C/svg%3E");
|
241 |
+
background-position: -5px 0;
|
242 |
+
left: 10px;
|
243 |
}
|
244 |
|
245 |
.featherlight-loading .featherlight-previous,
|
246 |
.featherlight-loading .featherlight-next {
|
247 |
+
display: none;
|
248 |
}
|
249 |
+
|
250 |
+
/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndwLWZlYXRoZXJsaWdodC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0dBS0c7QUFDSDtnREFDZ0Q7QUFDaEQ7RUFDRSx3QkFBd0I7RUFDeEIsVUFBVTtFQUNWLHlCQUFpQjtFQUFqQixzQkFBaUI7RUFBakIsaUJBQWlCO0VBQ2pCLGNBQWM7RUFDZCw0REFBNEQ7RUFDNUQsUUFBUTtFQUNSLGdCQUFnQjtFQUNoQixTQUFTO0VBQ1QsbUJBQW1CO0VBQ25CLE9BQU87RUFDUCxvQkFBb0I7RUFDcEIsb0JBQW9CO0NBQ3JCOztBQUVEO0VBQ0UsK0JBQXVCO0tBQXZCLDRCQUF1QjtVQUF2Qix1QkFBdUI7Q0FDeEI7O0FBRUQ7RUFDRSwrQkFBK0I7Q0FDaEM7O0FBRUQ7RUFDRSxZQUFZO0VBQ1osc0JBQXNCO0VBQ3RCLGFBQWE7RUFDYixzQkFBc0I7RUFDdEIsdUJBQXVCO0NBQ3hCOztBQUVEO0VBQ0UsK0JBQXVCO1VBQXZCLHVCQUF1QjtFQUN2QixpQkFBaUI7RUFDakIsVUFBVTtFQUNWLGFBQWE7RUFDYixzQkFBc0I7RUFDdEIsZ0JBQWdCO0VBQ2hCLGVBQWU7RUFDZixtQkFBbUI7RUFDbkIsa0JBQWtCO0VBQ2xCLFdBQVc7RUFDWCxtQkFBbUI7RUFDbkIsaUJBQWlCO0VBQ2pCLHVCQUF1QjtFQUN2QixvQkFBb0I7Q0FDckI7O0FBRUQ7RUFDRTtJQUNFLGdCQUFnQjtHQUNqQjtDQUNGOztBQUVEO0VBQ0UsWUFBWTtFQUNaLGdCQUFnQjtFQUNoQixxQkFBcUI7RUFDckIsa0JBQWtCO0VBQ2xCLGdCQUFnQjtFQUNoQixpQkFBaUI7RUFDakIsbUJBQW1CO0VBQ25CLGlCQUFpQjtFQUNqQix3QkFBd0I7RUFDeEIsb0JBQW9CO0NBQ3JCOztBQUVEO0VBQ0Usa0JBQWtCO0VBQ2xCLG9CQUFvQjtDQUNyQjs7QUFFRDtFQUNFLCtCQUF1QjtVQUF2Qix1QkFBdUI7RUFDdkIsZUFBZTtDQUNoQjs7QUFFRDtFQUNFLDhCQUE4QjtFQUM5QixtV0FBbVc7RUFDblcsNEJBQTRCO0VBQzVCLDZCQUE2QjtFQUM3QixtQ0FBMkI7VUFBM0IsMkJBQTJCO0VBQzNCLGdCQUFnQjtFQUNoQixlQUFlO0VBQ2YsYUFBYTtFQUNiLGlCQUFpQjtFQUNqQixnQkFBZ0I7RUFDaEIsWUFBWTtFQUNaLG1CQUFtQjtFQUNuQixrQkFBa0I7RUFDbEIsVUFBVTtFQUNWLG9CQUFvQjtFQUNwQixZQUFZO0VBQ1osY0FBYztDQUNmOztBQUVEO0VBQ0UsZ0JBQWdCO0NBQ2pCOztBQUVEO0VBQ0UsVUFBVTtDQUNYOztBQUVEO0VBQ0Usd0JBQWdCO0VBQWhCLHFCQUFnQjtFQUFoQixnQkFBZ0I7Q0FDakI7O0FBRUQ7RUFDRSxpQkFBaUI7RUFDakIsV0FBVztDQUNaOztBQUVEO2dEQUNnRDtBQUNoRDtFQUNFO0lBQ0UsZ0NBQXdCO1lBQXhCLHdCQUF3QjtHQUN6QjtFQUNEO0lBQ0Usa0NBQTBCO1lBQTFCLDBCQUEwQjtHQUMzQjtDQUNGO0FBUEQ7RUFDRTtJQUNFLGdDQUF3QjtZQUF4Qix3QkFBd0I7R0FDekI7RUFDRDtJQUNFLGtDQUEwQjtZQUExQiwwQkFBMEI7R0FDM0I7Q0FDRjs7QUFFRDtFQUNFO0lBQ0UsV0FBVztHQUNaO0VBQ0Q7SUFDRSxXQUFXO0dBQ1o7Q0FDRjs7QUFQRDtFQUNFO0lBQ0UsV0FBVztHQUNaO0VBQ0Q7SUFDRSxXQUFXO0dBQ1o7Q0FDRjs7QUFFRDtFQUNFLHlEQUFpRDtVQUFqRCxpREFBaUQ7RUFDakQsd0JBQXdCO0VBQ3hCLDBCQUEwQjtFQUMxQix3QkFBd0I7RUFDeEIsZ0JBQWdCO0NBQ2pCOztBQUVEOztFQUVFLDJCQUFtQjtVQUFuQixtQkFBbUI7RUFDbkIsYUFBYTtFQUNiLFlBQVk7Q0FDYjs7QUFFRDs7RUFFRSxjQUFjO0NBQ2Y7O0FBRUQ7Z0RBQ2dEO0FBQ2hEOztFQUVFLDhCQUE4QjtFQUM5Qiw2QkFBNkI7RUFDN0IsbUNBQTJCO1VBQTNCLDJCQUEyQjtFQUMzQixnQkFBZ0I7RUFDaEIsZUFBZTtFQUNmLGFBQWE7RUFDYixrQkFBa0I7RUFDbEIsYUFBYTtFQUNiLGlCQUFpQjtFQUNqQixnQkFBZ0I7RUFDaEIsa0JBQWtCO0VBQ2xCLFNBQVM7RUFDVCwwQkFBa0I7S0FBbEIsdUJBQWtCO01BQWxCLHNCQUFrQjtVQUFsQixrQkFBa0I7RUFDbEIsb0JBQW9CO0VBQ3BCLFlBQVk7Q0FDYjs7QUFFRDs7RUFFRSxjQUFjO0NBQ2Y7O0FBRUQ7OztFQUdFLFdBQVc7Q0FDWjs7QUFFRCxnQkFBZ0I7QUFDaEI7RUFDRSw0UUFBNFE7RUFDNVEseUJBQXlCO0VBQ3pCLFlBQVk7Q0FDYjs7QUFFRCxnQkFBZ0I7QUFDaEI7RUFDRSw0UUFBNFE7RUFDNVEsNEJBQTRCO0VBQzVCLFdBQVc7Q0FDWjs7QUFFRDs7RUFFRSxjQUFjO0NBQ2YiLCJmaWxlIjoid3AtZmVhdGhlcmxpZ2h0LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKiFcbiAqIFBsdWdpbiBOYW1lOiBXUCBGZWF0aGVybGlnaHRcbiAqIFZlcnNpb246ICAgICAxLjAuMFxuICogQXV0aG9yOiAgICAgIFdQIFNpdGUgQ2FyZVxuICogTGljZW5zZTogICAgIEdQTC0yLjArXG4gKi9cbi8qIEJhc2UgU3R5bGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5mZWF0aGVybGlnaHQge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgYm90dG9tOiAwO1xuICBjdXJzb3I6IHpvb20tb3V0O1xuICBkaXNwbGF5OiBub25lO1xuICBmb250LWZhbWlseTogXCJIZWx2ZXRpY2EgTmV1ZVwiLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICBsZWZ0OiAwO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHJpZ2h0OiAwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRvcDogMDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgei1pbmRleDogMjE0NzQ4MzY0Nztcbn1cblxuLmZlYXRoZXJsaWdodCAqIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuLmZlYXRoZXJsaWdodDpsYXN0LW9mLXR5cGUge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuOSk7XG59XG5cbi5mZWF0aGVybGlnaHQ6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgaGVpZ2h0OiAxMDAlO1xuICBtYXJnaW4tcmlnaHQ6IC0wLjI1ZW07XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi5mZWF0aGVybGlnaHQgLmZlYXRoZXJsaWdodC1jb250ZW50IHtcbiAgYW5pbWF0aW9uOiBmYWRlaW4gMC41cztcbiAgYmFja2dyb3VuZDogIzAwMDtcbiAgYm9yZGVyOiAwO1xuICBjdXJzb3I6IGF1dG87XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWF4LWhlaWdodDogODAlO1xuICBtYXgtd2lkdGg6IDkwJTtcbiAgbWluLXdpZHRoOiBpbmhlcml0O1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgcGFkZGluZzogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5ODBweCkge1xuICAuZmVhdGhlcmxpZ2h0IC5mZWF0aGVybGlnaHQtY29udGVudCB7XG4gICAgbWF4LWhlaWdodDogOTAlO1xuICB9XG59XG5cbi5mZWF0aGVybGlnaHQgLmZlYXRoZXJsaWdodC1jb250ZW50IC5jYXB0aW9uIHtcbiAgY29sb3I6ICNmZmY7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgZm9udC13ZWlnaHQ6IGxpZ2h0ZXI7XG4gIGxpbmUtaGVpZ2h0OiAxLjI1O1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi5mZWF0aGVybGlnaHQgLmZlYXRoZXJsaWdodC1jb250ZW50IC5jYXB0aW9uOmhvdmVyLCAuZmVhdGhlcmxpZ2h0IC5mZWF0aGVybGlnaHQtY29udGVudCAuY2FwdGlvbjpmb2N1cyB7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xufVxuXG4uZmVhdGhlcmxpZ2h0IC5mZWF0aGVybGlnaHQtaW5uZXIge1xuICBhbmltYXRpb246IGZhZGVpbiAwLjVzO1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLmZlYXRoZXJsaWdodCAuZmVhdGhlcmxpZ2h0LWNsb3NlLWljb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyUyMHhtbG5zJTNEJTIyaHR0cCUzQS8vd3d3LnczLm9yZy8yMDAwL3N2ZyUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDI0JTIwMjQlMjIlM0UlMEElMDklM0NwYXRoJTIwZmlsbCUzRCUyMiUyM2ZmZiUyMiUyMGQlM0QlMjJNMjElMjA0LjQxTDE5LjU5JTIwMyUyMDEyJTIwMTAuNTklMjA0LjQxJTIwMyUyMDMlMjA0LjQxJTIwMTAuNTklMjAxMiUyMDMlMjAxOS41OSUyMDQuNDElMjAyMSUyMDEyJTIwMTMuNDElMjAxOS41OSUyMDIxJTIwMjElMjAxOS41OSUyMDEzLjQxJTIwMTIlMjAyMSUyMDQuNDF6JTIyLyUzRSUwQSUzQy9zdmclM0VcIik7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1zaXplOiAxMDAlIGF1dG87XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGhlaWdodDogMzBweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcG9zaXRpb246IGZpeGVkO1xuICByaWdodDogMjVweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0ZXh0LWluZGVudDogMTAwJTtcbiAgdG9wOiAyNXB4O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB3aWR0aDogMzBweDtcbiAgei1pbmRleDogOTk5OTtcbn1cblxuLmZlYXRoZXJsaWdodCAuZmVhdGhlcmxpZ2h0LWltYWdlIHtcbiAgbWF4LXdpZHRoOiAxMDAlO1xufVxuXG4uZmVhdGhlcmxpZ2h0IGlmcmFtZSB7XG4gIGJvcmRlcjogMDtcbn1cblxuW2RhdGEtZmVhdGhlcmxpZ2h0XSBpbWcge1xuICBjdXJzb3I6IHpvb20taW47XG59XG5cbi5mZWF0aGVybGlnaHQtaWZyYW1lIC5mZWF0aGVybGlnaHQtY29udGVudCB7XG4gIGJvcmRlci1ib3R0b206IDA7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi8qIEFuaW1hdGVkIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5Aa2V5ZnJhbWVzIGZlYXRoZXJsaWdodExvYWRlciB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgZmFkZWluIHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuICB0byB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuXG4uZmVhdGhlcmxpZ2h0LWxvYWRpbmcgLmZlYXRoZXJsaWdodC1jb250ZW50IHtcbiAgYW5pbWF0aW9uOiBmZWF0aGVybGlnaHRMb2FkZXIgMXMgaW5maW5pdGUgbGluZWFyO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiA4cHggc29saWQgIzkwOTA5MDtcbiAgYm9yZGVyLWxlZnQtY29sb3I6ICNmZmY7XG4gIGZvbnQtc2l6ZTogMTBweDtcbn1cblxuLmZlYXRoZXJsaWdodC1sb2FkaW5nIC5mZWF0aGVybGlnaHQtY29udGVudCxcbi5mZWF0aGVybGlnaHQtbG9hZGluZyAuZmVhdGhlcmxpZ2h0LWNvbnRlbnQ6OmFmdGVyIHtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBoZWlnaHQ6IDEwZW07XG4gIHdpZHRoOiAxMGVtO1xufVxuXG4uZmVhdGhlcmxpZ2h0LWxvYWRpbmcgLmZlYXRoZXJsaWdodC1jbG9zZSxcbi5mZWF0aGVybGlnaHQtbG9hZGluZyAuZmVhdGhlcmxpZ2h0LWlubmVyIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLyogR2FsbGVyeVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4uZmVhdGhlcmxpZ2h0LW5leHQsXG4uZmVhdGhlcmxpZ2h0LXByZXZpb3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtc2l6ZTogMTAwJSBhdXRvO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBoZWlnaHQ6IDYwcHg7XG4gIG1hcmdpbi10b3A6IC0zMHB4O1xuICBvcGFjaXR5OiAwLjQ7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdGV4dC1pbmRlbnQ6IDEwMCU7XG4gIHRvcDogNTAlO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgd2lkdGg6IDYwcHg7XG59XG5cbi5mZWF0aGVybGlnaHQtbmV4dCBzcGFuLFxuLmZlYXRoZXJsaWdodC1wcmV2aW91cyBzcGFuIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLmZlYXRoZXJsaWdodC1uZXh0OmhvdmVyLCAuZmVhdGhlcmxpZ2h0LW5leHQ6Zm9jdXMsXG4uZmVhdGhlcmxpZ2h0LXByZXZpb3VzOmhvdmVyLFxuLmZlYXRoZXJsaWdodC1wcmV2aW91czpmb2N1cyB7XG4gIG9wYWNpdHk6IDE7XG59XG5cbi8qIHJ0bDppZ25vcmUgKi9cbi5mZWF0aGVybGlnaHQtbmV4dCB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmclMjB4bWxucyUzRCUyMmh0dHAlM0EvL3d3dy53My5vcmcvMjAwMC9zdmclMjIlMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjAyNCUyMDI0JTIyJTNFJTBBJTA5JTNDcGF0aCUyMGZpbGwlM0QlMjIlMjNmZmYlMjIlMjBkJTNEJTIyTTguNTklMjAxNi41OUwxMy4xNyUyMDEyJTIwOC41OSUyMDcuNDElMjAxMCUyMDZsNiUyMDYtNiUyMDYtMS40MS0xLjQxeiUyMi8lM0UlMEElM0Mvc3ZnJTNFXCIpO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIDA7XG4gIHJpZ2h0OiAxMHB4O1xufVxuXG4vKiBydGw6aWdub3JlICovXG4uZmVhdGhlcmxpZ2h0LXByZXZpb3VzIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyUyMHhtbG5zJTNEJTIyaHR0cCUzQS8vd3d3LnczLm9yZy8yMDAwL3N2ZyUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDI0JTIwMjQlMjIlM0UlMEElMDklM0NwYXRoJTIwZmlsbCUzRCUyMiUyM2ZmZiUyMiUyMGQlM0QlMjJNMTUuNDElMjA3LjQxTDEwLjgzJTIwMTJsNC41OCUyMDQuNTlMMTQlMjAxOGwtNi02JTIwNi02JTIwMS40MSUyMDEuNDF6JTIyLyUzRSUwQSUzQy9zdmclM0VcIik7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC01cHggMDtcbiAgbGVmdDogMTBweDtcbn1cblxuLmZlYXRoZXJsaWdodC1sb2FkaW5nIC5mZWF0aGVybGlnaHQtcHJldmlvdXMsXG4uZmVhdGhlcmxpZ2h0LWxvYWRpbmcgLmZlYXRoZXJsaWdodC1uZXh0IHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbiJdfQ== */
|
@@ -1 +1 @@
|
|
1 |
-
.featherlight{background:0 0;cursor:-webkit-zoom-out;cursor:-moz-zoom-out;cursor:zoom-out;display:none;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;position:fixed;
|
1 |
+
.featherlight{background:0 0;bottom:0;cursor:-webkit-zoom-out;cursor:-moz-zoom-out;cursor:zoom-out;display:none;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;left:0;position:fixed;right:0;text-align:center;top:0;white-space:nowrap;z-index:2147483647}.featherlight *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.featherlight:last-of-type{background:rgba(0,0,0,.9)}.featherlight::before{content:"";display:inline-block;height:100%;margin-right:-.25em;vertical-align:middle}.featherlight .featherlight-content{-webkit-animation:fadein .5s;animation:fadein .5s;background:#000;border:0;cursor:auto;display:inline-block;max-height:80%;max-width:90%;min-width:inherit;overflow:visible;padding:0;position:relative;text-align:left;vertical-align:middle;white-space:normal}@media screen and (min-width:980px){.featherlight .featherlight-content{max-height:90%}}.featherlight .featherlight-content .caption{color:#fff;font-size:16px;font-weight:lighter;line-height:1.25;max-width:100%;overflow:hidden;position:absolute;text-align:left;text-overflow:ellipsis;white-space:nowrap}.featherlight .featherlight-content .caption:focus,.featherlight .featherlight-content .caption:hover{overflow:visible;white-space:normal}.featherlight .featherlight-inner{-webkit-animation:fadein .5s;animation:fadein .5s;display:block}.featherlight .featherlight-close-icon{background-color:transparent;background-image:url(data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%3E%0A%09%3Cpath%20fill%3D%22%23fff%22%20d%3D%22M21%204.41L19.59%203%2012%2010.59%204.41%203%203%204.41%2010.59%2012%203%2019.59%204.41%2021%2012%2013.41%2019.59%2021%2021%2019.59%2013.41%2012%2021%204.41z%22/%3E%0A%3C/svg%3E);background-position:center;background-repeat:no-repeat;-webkit-background-size:100% auto;background-size:100% auto;cursor:pointer;display:block;height:30px;overflow:hidden;position:fixed;right:25px;text-align:center;text-indent:100%;top:25px;white-space:nowrap;width:30px;z-index:9999}.featherlight .featherlight-image{max-width:100%}.featherlight iframe{border:0}[data-featherlight] img{cursor:-webkit-zoom-in;cursor:-moz-zoom-in;cursor:zoom-in}.featherlight-iframe .featherlight-content{border-bottom:0;padding:0}@-webkit-keyframes featherlightLoader{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes featherlightLoader{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@-webkit-keyframes fadein{from{opacity:0}to{opacity:1}}@keyframes fadein{from{opacity:0}to{opacity:1}}.featherlight-loading .featherlight-content{-webkit-animation:featherlightLoader 1s infinite linear;animation:featherlightLoader 1s infinite linear;background:0 0;border:8px solid #909090;border-left-color:#fff;font-size:10px}.featherlight-loading .featherlight-content,.featherlight-loading .featherlight-content::after{-webkit-border-radius:50%;border-radius:50%;height:10em;width:10em}.featherlight-loading .featherlight-close,.featherlight-loading .featherlight-inner{display:none}.featherlight-next,.featherlight-previous{background-color:transparent;background-repeat:no-repeat;-webkit-background-size:100% auto;background-size:100% auto;cursor:pointer;display:block;height:60px;margin-top:-30px;opacity:.4;overflow:hidden;position:fixed;text-indent:100%;top:50%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;white-space:nowrap;width:60px}.featherlight-loading .featherlight-next,.featherlight-loading .featherlight-previous,.featherlight-next span,.featherlight-previous span{display:none}.featherlight-next:focus,.featherlight-next:hover,.featherlight-previous:focus,.featherlight-previous:hover{opacity:1}.featherlight-next{background-image:url(data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%3E%0A%09%3Cpath%20fill%3D%22%23fff%22%20d%3D%22M8.59%2016.59L13.17%2012%208.59%207.41%2010%206l6%206-6%206-1.41-1.41z%22/%3E%0A%3C/svg%3E);background-position:0 0;right:10px}.featherlight-previous{background-image:url(data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%3E%0A%09%3Cpath%20fill%3D%22%23fff%22%20d%3D%22M15.41%207.41L10.83%2012l4.58%204.59L14%2018l-6-6%206-6%201.41%201.41z%22/%3E%0A%3C/svg%3E);background-position:-5px 0;left:10px}
|
@@ -3,22 +3,17 @@
|
|
3 |
* Load translations for the plugin.
|
4 |
*
|
5 |
* @package WPFeatherlight\Internationalization
|
6 |
-
* @
|
7 |
-
* @copyright Copyright (c) 2015, WP Site Care
|
8 |
* @license GPL-2.0+
|
9 |
* @since 0.3.0
|
10 |
*/
|
11 |
|
12 |
-
// Prevent direct access.
|
13 |
-
defined( 'ABSPATH' ) || exit;
|
14 |
-
|
15 |
/**
|
16 |
* Based on t5-libraries' language loader by Thomas Scholz
|
17 |
*
|
18 |
* @link https://github.com/toscho/t5-libraries/blob/master/Core/I18n/Language_Loader.php
|
19 |
*/
|
20 |
class WP_Featherlight_Language_Loader {
|
21 |
-
|
22 |
/**
|
23 |
* Path to the root plugin file.
|
24 |
*
|
@@ -37,35 +32,13 @@ class WP_Featherlight_Language_Loader {
|
|
37 |
* Constructor.
|
38 |
*
|
39 |
* @param string $text_domain Name of the text domain.
|
40 |
-
* @param string $
|
41 |
*/
|
42 |
public function __construct( $text_domain, $plugin_file ) {
|
43 |
$this->text_domain = $text_domain;
|
44 |
$this->plugin_file = $plugin_file;
|
45 |
}
|
46 |
|
47 |
-
/**
|
48 |
-
* Get the class running!
|
49 |
-
*
|
50 |
-
* @since 0.3.0
|
51 |
-
* @access public
|
52 |
-
* @return void
|
53 |
-
*/
|
54 |
-
public function run() {
|
55 |
-
$this->wp_hooks();
|
56 |
-
}
|
57 |
-
|
58 |
-
/**
|
59 |
-
* Hook into WordPress.
|
60 |
-
*
|
61 |
-
* @since 0.3.0
|
62 |
-
* @access protected
|
63 |
-
* @return void
|
64 |
-
*/
|
65 |
-
protected function wp_hooks() {
|
66 |
-
add_action( 'admin_head-plugins.php', array( $this, 'load' ) );
|
67 |
-
}
|
68 |
-
|
69 |
/**
|
70 |
* Loads translation file.
|
71 |
*
|
@@ -103,4 +76,25 @@ class WP_Featherlight_Language_Loader {
|
|
103 |
return is_textdomain_loaded( $this->text_domain );
|
104 |
}
|
105 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
106 |
}
|
3 |
* Load translations for the plugin.
|
4 |
*
|
5 |
* @package WPFeatherlight\Internationalization
|
6 |
+
* @copyright Copyright (c) 2016, WP Site Care
|
|
|
7 |
* @license GPL-2.0+
|
8 |
* @since 0.3.0
|
9 |
*/
|
10 |
|
|
|
|
|
|
|
11 |
/**
|
12 |
* Based on t5-libraries' language loader by Thomas Scholz
|
13 |
*
|
14 |
* @link https://github.com/toscho/t5-libraries/blob/master/Core/I18n/Language_Loader.php
|
15 |
*/
|
16 |
class WP_Featherlight_Language_Loader {
|
|
|
17 |
/**
|
18 |
* Path to the root plugin file.
|
19 |
*
|
32 |
* Constructor.
|
33 |
*
|
34 |
* @param string $text_domain Name of the text domain.
|
35 |
+
* @param string $plugin_file Path to language file.
|
36 |
*/
|
37 |
public function __construct( $text_domain, $plugin_file ) {
|
38 |
$this->text_domain = $text_domain;
|
39 |
$this->plugin_file = $plugin_file;
|
40 |
}
|
41 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
42 |
/**
|
43 |
* Loads translation file.
|
44 |
*
|
76 |
return is_textdomain_loaded( $this->text_domain );
|
77 |
}
|
78 |
|
79 |
+
/**
|
80 |
+
* Get the class running!
|
81 |
+
*
|
82 |
+
* @since 0.3.0
|
83 |
+
* @access public
|
84 |
+
* @return void
|
85 |
+
*/
|
86 |
+
public function run() {
|
87 |
+
_deprecated_function( __METHOD__, '1.0.0' );
|
88 |
+
}
|
89 |
+
|
90 |
+
/**
|
91 |
+
* Hook into WordPress.
|
92 |
+
*
|
93 |
+
* @since 0.3.0
|
94 |
+
* @access protected
|
95 |
+
* @return void
|
96 |
+
*/
|
97 |
+
protected function wp_hooks() {
|
98 |
+
_deprecated_function( __METHOD__, '1.0.0' );
|
99 |
+
}
|
100 |
}
|
@@ -3,17 +3,17 @@
|
|
3 |
* WP Featherlight main plugin class.
|
4 |
*
|
5 |
* @package WPFeatherlight
|
6 |
-
* @
|
7 |
-
* @copyright Copyright (c) 2015, WP Site Care
|
8 |
* @license GPL-2.0+
|
9 |
* @since 0.1.0
|
10 |
*/
|
11 |
|
12 |
-
|
13 |
-
defined( 'ABSPATH' ) || exit;
|
14 |
|
15 |
/**
|
16 |
* Main plugin class.
|
|
|
|
|
17 |
*/
|
18 |
class WP_Featherlight {
|
19 |
|
@@ -23,7 +23,7 @@ class WP_Featherlight {
|
|
23 |
* @since 0.3.0
|
24 |
* @var string
|
25 |
*/
|
26 |
-
const VERSION = '0.
|
27 |
|
28 |
/**
|
29 |
* Property for storing a reference to the main plugin file.
|
@@ -73,21 +73,17 @@ class WP_Featherlight {
|
|
73 |
*/
|
74 |
public $meta;
|
75 |
|
76 |
-
public function __construct( $args ) {
|
77 |
-
$this->file = $args['file'];
|
78 |
-
$this->dir = plugin_dir_path( $this->file );
|
79 |
-
$this->url = plugin_dir_url( $this->file );
|
80 |
-
}
|
81 |
-
|
82 |
/**
|
83 |
-
*
|
84 |
*
|
85 |
* @since 0.1.0
|
|
|
86 |
* @return void
|
87 |
*/
|
88 |
-
public function
|
89 |
-
$this->
|
90 |
-
$this->
|
|
|
91 |
}
|
92 |
|
93 |
/**
|
@@ -135,35 +131,193 @@ class WP_Featherlight {
|
|
135 |
}
|
136 |
|
137 |
/**
|
138 |
-
* Require all plugin files.
|
139 |
*
|
140 |
* @since 0.1.0
|
141 |
-
* @access
|
142 |
* @return void
|
143 |
*/
|
144 |
-
|
145 |
require_once $this->dir . 'includes/class-scripts.php';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
146 |
require_once $this->dir . 'includes/class-i18n.php';
|
147 |
-
|
148 |
-
require_once $this->dir . 'admin/class-meta.php';
|
149 |
-
}
|
150 |
}
|
151 |
|
152 |
/**
|
153 |
* Load all required files and get all of our classes running.
|
154 |
*
|
155 |
* @since 0.1.0
|
156 |
-
* @access
|
157 |
* @return void
|
158 |
*/
|
159 |
-
|
160 |
-
$this->scripts = new WP_Featherlight_Scripts;
|
161 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
162 |
if ( is_admin() ) {
|
163 |
-
$this->
|
164 |
-
$this->meta = new WP_Featherlight_Admin_Meta;
|
165 |
-
$this->i18n->run();
|
166 |
-
$this->meta->run();
|
167 |
}
|
168 |
}
|
169 |
|
@@ -173,11 +327,9 @@ class WP_Featherlight {
|
|
173 |
*
|
174 |
* @since 0.1.0
|
175 |
* @access public
|
176 |
-
* @global $wpdb
|
177 |
* @return void
|
178 |
*/
|
179 |
public function activate() {
|
180 |
// Nothing yet.
|
181 |
}
|
182 |
-
|
183 |
}
|
3 |
* WP Featherlight main plugin class.
|
4 |
*
|
5 |
* @package WPFeatherlight
|
6 |
+
* @copyright Copyright (c) 2016, WP Site Care
|
|
|
7 |
* @license GPL-2.0+
|
8 |
* @since 0.1.0
|
9 |
*/
|
10 |
|
11 |
+
defined( 'WPINC' ) || die;
|
|
|
12 |
|
13 |
/**
|
14 |
* Main plugin class.
|
15 |
+
*
|
16 |
+
* @since 0.1.0
|
17 |
*/
|
18 |
class WP_Featherlight {
|
19 |
|
23 |
* @since 0.3.0
|
24 |
* @var string
|
25 |
*/
|
26 |
+
const VERSION = '1.0.0';
|
27 |
|
28 |
/**
|
29 |
* Property for storing a reference to the main plugin file.
|
73 |
*/
|
74 |
public $meta;
|
75 |
|
|
|
|
|
|
|
|
|
|
|
|
|
76 |
/**
|
77 |
+
* Set up class properties.
|
78 |
*
|
79 |
* @since 0.1.0
|
80 |
+
* @param array $args Arguments to use when setting up class properties.
|
81 |
* @return void
|
82 |
*/
|
83 |
+
public function __construct( $args ) {
|
84 |
+
$this->file = $args['file'];
|
85 |
+
$this->dir = plugin_dir_path( $this->file );
|
86 |
+
$this->url = plugin_dir_url( $this->file );
|
87 |
}
|
88 |
|
89 |
/**
|
131 |
}
|
132 |
|
133 |
/**
|
134 |
+
* Require all global plugin files.
|
135 |
*
|
136 |
* @since 0.1.0
|
137 |
+
* @access protected
|
138 |
* @return void
|
139 |
*/
|
140 |
+
protected function includes() {
|
141 |
require_once $this->dir . 'includes/class-scripts.php';
|
142 |
+
}
|
143 |
+
|
144 |
+
/**
|
145 |
+
* Require all admin plugin files.
|
146 |
+
*
|
147 |
+
* @since 0.1.0
|
148 |
+
* @access protected
|
149 |
+
* @return void
|
150 |
+
*/
|
151 |
+
protected function admin_includes() {
|
152 |
require_once $this->dir . 'includes/class-i18n.php';
|
153 |
+
require_once $this->dir . 'admin/class-meta.php';
|
|
|
|
|
154 |
}
|
155 |
|
156 |
/**
|
157 |
* Load all required files and get all of our classes running.
|
158 |
*
|
159 |
* @since 0.1.0
|
160 |
+
* @access protected
|
161 |
* @return void
|
162 |
*/
|
163 |
+
protected function instantiate() {
|
164 |
+
$this->scripts = new WP_Featherlight_Scripts( $this->url, self::VERSION );
|
165 |
+
}
|
166 |
+
|
167 |
+
/**
|
168 |
+
* Load all required files and get all of our classes running.
|
169 |
+
*
|
170 |
+
* @since 0.1.0
|
171 |
+
* @access protected
|
172 |
+
* @return void
|
173 |
+
*/
|
174 |
+
protected function admin_instantiate() {
|
175 |
+
$this->i18n = new WP_Featherlight_Language_Loader( 'wp-featherlight', $this->file );
|
176 |
+
$this->meta = new WP_Featherlight_Admin_Meta;
|
177 |
+
}
|
178 |
+
|
179 |
+
/**
|
180 |
+
* Run all global WordPress hooks.
|
181 |
+
*
|
182 |
+
* @since 1.0.0
|
183 |
+
* @return void
|
184 |
+
*/
|
185 |
+
protected function wp_hooks() {
|
186 |
+
/**
|
187 |
+
* Callback defined in includes/class-scripts.php
|
188 |
+
*
|
189 |
+
* @see WP_Featherlight_Scripts::load_css
|
190 |
+
*/
|
191 |
+
add_action( 'wp_enqueue_scripts', array( $this->scripts, 'load_css' ), 20 );
|
192 |
+
|
193 |
+
/**
|
194 |
+
* Callback defined in includes/class-scripts.php
|
195 |
+
*
|
196 |
+
* @see WP_Featherlight_Scripts::load_js
|
197 |
+
*/
|
198 |
+
add_action( 'wp_enqueue_scripts', array( $this->scripts, 'load_js' ), 20 );
|
199 |
+
|
200 |
+
/**
|
201 |
+
* Callback defined in includes/class-scripts.php
|
202 |
+
*
|
203 |
+
* @see WP_Featherlight_Scripts::maybe_disable
|
204 |
+
*/
|
205 |
+
add_action( 'wp_enqueue_scripts', array( $this->scripts, 'maybe_disable' ), 10 );
|
206 |
+
|
207 |
+
/**
|
208 |
+
* Callback defined in includes/class-scripts.php
|
209 |
+
*
|
210 |
+
* @see WP_Featherlight_Scripts::script_helpers
|
211 |
+
*/
|
212 |
+
add_action( 'body_class', array( $this->scripts, 'script_helpers' ), 10 );
|
213 |
+
}
|
214 |
+
|
215 |
+
/**
|
216 |
+
* Run all admin WordPress hooks.
|
217 |
+
*
|
218 |
+
* @since 1.0.0
|
219 |
+
* @return void
|
220 |
+
*/
|
221 |
+
protected function admin_wp_hooks() {
|
222 |
+
/**
|
223 |
+
* Callback defined in includes/class-i18n.php
|
224 |
+
*
|
225 |
+
* @see WP_Featherlight_Language_Loader::load
|
226 |
+
*/
|
227 |
+
add_action( 'admin_head-plugins.php', array( $this->i18n, 'load' ), 10 );
|
228 |
+
|
229 |
+
/**
|
230 |
+
* Callback defined in includes/class-i18n.php
|
231 |
+
*
|
232 |
+
* @see WP_Featherlight_Language_Loader::load
|
233 |
+
*/
|
234 |
+
add_action( 'post_submitbox_misc_actions', array( $this->i18n, 'load' ), 5 );
|
235 |
+
|
236 |
+
/**
|
237 |
+
* Callback defined in admin/class-meta.php
|
238 |
+
*
|
239 |
+
* @see WP_Featherlight_Admin_Meta::meta_box_view
|
240 |
+
*/
|
241 |
+
add_action( 'post_submitbox_misc_actions', array( $this->meta, 'meta_box_view' ), 10 );
|
242 |
+
|
243 |
+
/**
|
244 |
+
* Callback defined in admin/class-meta.php
|
245 |
+
*
|
246 |
+
* @see WP_Featherlight_Admin_Meta::save_meta_boxes
|
247 |
+
*/
|
248 |
+
add_action( 'save_post', array( $this->meta, 'save_meta_boxes' ), 10 );
|
249 |
+
}
|
250 |
+
|
251 |
+
/**
|
252 |
+
* Initialize all global functionality.
|
253 |
+
*
|
254 |
+
* @since 1.0.0
|
255 |
+
* @return void
|
256 |
+
*/
|
257 |
+
public function init() {
|
258 |
+
/**
|
259 |
+
* Provide reliable access to the plugin's functions and methods before
|
260 |
+
* the plugin's global actions, filters, and functionality are initialized.
|
261 |
+
*
|
262 |
+
* @since 1.0.0
|
263 |
+
* @access public
|
264 |
+
*/
|
265 |
+
do_action( 'wp_featherlight_before_init' );
|
266 |
+
|
267 |
+
$this->includes();
|
268 |
+
$this->instantiate();
|
269 |
+
$this->wp_hooks();
|
270 |
+
|
271 |
+
/**
|
272 |
+
* Provide reliable access to the plugin's functions and methods after
|
273 |
+
* the plugin's global actions, filters, and functionality are initialized.
|
274 |
+
*
|
275 |
+
* @since 1.0.0
|
276 |
+
* @access public
|
277 |
+
*/
|
278 |
+
do_action( 'wp_featherlight_after_init' );
|
279 |
+
}
|
280 |
+
|
281 |
+
/**
|
282 |
+
* Initialize all admin functionality.
|
283 |
+
*
|
284 |
+
* @since 1.0.0
|
285 |
+
* @return void
|
286 |
+
*/
|
287 |
+
public function admin_init() {
|
288 |
+
/**
|
289 |
+
* Provide reliable access to the plugin's functions and methods before
|
290 |
+
* the plugin's admin actions, filters, and functionality are initialized.
|
291 |
+
*
|
292 |
+
* @since 1.0.0
|
293 |
+
* @access public
|
294 |
+
*/
|
295 |
+
do_action( 'wp_featherlight_admin_before_init' );
|
296 |
+
|
297 |
+
$this->admin_includes();
|
298 |
+
$this->admin_instantiate();
|
299 |
+
$this->admin_wp_hooks();
|
300 |
+
|
301 |
+
/**
|
302 |
+
* Provide reliable access to the plugin's functions and methods after
|
303 |
+
* the plugin's admin actions, filters, and functionality are initialized.
|
304 |
+
*
|
305 |
+
* @since 1.0.0
|
306 |
+
* @access public
|
307 |
+
*/
|
308 |
+
do_action( 'wp_featherlight_admin_after_init' );
|
309 |
+
}
|
310 |
+
|
311 |
+
/**
|
312 |
+
* Initialize the plugin.
|
313 |
+
*
|
314 |
+
* @since 0.1.0
|
315 |
+
* @return void
|
316 |
+
*/
|
317 |
+
public function run() {
|
318 |
+
$this->init();
|
319 |
if ( is_admin() ) {
|
320 |
+
$this->admin_init();
|
|
|
|
|
|
|
321 |
}
|
322 |
}
|
323 |
|
327 |
*
|
328 |
* @since 0.1.0
|
329 |
* @access public
|
|
|
330 |
* @return void
|
331 |
*/
|
332 |
public function activate() {
|
333 |
// Nothing yet.
|
334 |
}
|
|
|
335 |
}
|
@@ -3,52 +3,73 @@
|
|
3 |
* Methods used for filtering and displaying WP Featherlight images.
|
4 |
*
|
5 |
* @package WPFeatherlight\Scripts
|
6 |
-
* @
|
7 |
-
* @copyright Copyright (c) 2015, WP Site Care
|
8 |
* @license GPL-2.0+
|
9 |
* @since 0.1.0
|
10 |
*/
|
11 |
|
12 |
-
|
13 |
-
|
14 |
-
|
|
|
|
|
15 |
class WP_Featherlight_Scripts {
|
16 |
|
|
|
|
|
|
|
|
|
|
|
|
|
17 |
protected $suffix;
|
18 |
|
|
|
|
|
|
|
|
|
|
|
|
|
19 |
protected $url;
|
20 |
|
|
|
|
|
|
|
|
|
|
|
|
|
21 |
protected $version;
|
22 |
|
23 |
-
public function __construct() {
|
24 |
-
$this->suffix = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min';
|
25 |
-
$this->url = wp_featherlight()->get_url();
|
26 |
-
$this->version = wp_featherlight()->get_version();
|
27 |
-
}
|
28 |
-
|
29 |
/**
|
30 |
-
*
|
31 |
*
|
32 |
* @since 0.1.0
|
33 |
-
* @
|
|
|
34 |
* @return void
|
35 |
*/
|
36 |
-
public function
|
37 |
-
$this->
|
|
|
|
|
38 |
}
|
39 |
|
40 |
/**
|
41 |
-
*
|
42 |
*
|
43 |
* @since 0.1.0
|
44 |
-
* @access
|
45 |
-
* @return
|
46 |
*/
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
|
|
|
|
|
|
|
|
|
|
52 |
}
|
53 |
|
54 |
/**
|
@@ -65,32 +86,17 @@ class WP_Featherlight_Scripts {
|
|
65 |
if ( ! apply_filters( 'wp_featherlight_load_css', true ) ) {
|
66 |
return;
|
67 |
}
|
|
|
68 |
wp_enqueue_style(
|
69 |
'wp-featherlight',
|
70 |
"{$this->url}css/wp-featherlight{$this->suffix}.css",
|
71 |
array(),
|
72 |
$this->version
|
73 |
);
|
|
|
74 |
wp_style_add_data( 'wp-featherlight', 'rtl', 'replace' );
|
75 |
-
wp_style_add_data( 'wp-featherlight', 'suffix', $this->suffix );
|
76 |
-
}
|
77 |
|
78 |
-
|
79 |
-
* Load all required JavaScript files on the front end.
|
80 |
-
*
|
81 |
-
* Developers can disable our JS by filtering wp_featherlight_load_js to
|
82 |
-
* false within their theme or plugin.
|
83 |
-
*
|
84 |
-
* @since 0.1.0
|
85 |
-
* @access public
|
86 |
-
* @return void
|
87 |
-
*/
|
88 |
-
public function load_js() {
|
89 |
-
if ( ! apply_filters( 'wp_featherlight_load_js', true ) ) {
|
90 |
-
return;
|
91 |
-
}
|
92 |
-
$this->load_packed_js();
|
93 |
-
$this->load_unpacked_js();
|
94 |
}
|
95 |
|
96 |
/**
|
@@ -109,13 +115,34 @@ class WP_Featherlight_Scripts {
|
|
109 |
* @return bool
|
110 |
*/
|
111 |
protected function enable_packed_js() {
|
112 |
-
// Never pack JS files if SCRIPT_DEBUG is enabled.
|
113 |
if ( empty( $this->suffix ) ) {
|
114 |
return false;
|
115 |
}
|
|
|
116 |
return apply_filters( 'wp_featherlight_enable_packed_js', true );
|
117 |
}
|
118 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
119 |
/**
|
120 |
* Load the packed and minified version of our JavaScript files. This is the
|
121 |
* preferred loading method as it saves us from adding a bunch of http
|
@@ -126,9 +153,6 @@ class WP_Featherlight_Scripts {
|
|
126 |
* @return void
|
127 |
*/
|
128 |
public function load_packed_js() {
|
129 |
-
if ( ! $this->enable_packed_js() ) {
|
130 |
-
return;
|
131 |
-
}
|
132 |
wp_enqueue_script(
|
133 |
'wp-featherlight',
|
134 |
"{$this->url}js/wpFeatherlight.pkgd{$this->suffix}.js",
|
@@ -146,35 +170,33 @@ class WP_Featherlight_Scripts {
|
|
146 |
* @return void
|
147 |
*/
|
148 |
public function load_unpacked_js() {
|
149 |
-
if ( $this->enable_packed_js() ) {
|
150 |
-
return;
|
151 |
-
}
|
152 |
-
$suffix = $this->suffix;
|
153 |
-
$url = "{$this->url}js/src/";
|
154 |
wp_enqueue_script(
|
155 |
'jquery-detect-swipe',
|
156 |
-
"{$url}vendor/jquery.detect_swipe{$suffix}.js",
|
157 |
array( 'jquery' ),
|
158 |
-
'2.1.
|
159 |
true
|
160 |
);
|
|
|
161 |
wp_enqueue_script(
|
162 |
'featherlight',
|
163 |
-
"{$url}vendor/featherlight{$suffix}.js",
|
164 |
array( 'jquery-detect-swipe' ),
|
165 |
-
'1.
|
166 |
true
|
167 |
);
|
|
|
168 |
wp_enqueue_script(
|
169 |
'featherlight-gallery',
|
170 |
-
"{$url}vendor/featherlight.gallery{$suffix}.js",
|
171 |
array( 'featherlight' ),
|
172 |
-
'1.
|
173 |
true
|
174 |
);
|
|
|
175 |
wp_enqueue_script(
|
176 |
'wp-featherlight',
|
177 |
-
"{$url}wpFeatherlight{$suffix}.js",
|
178 |
array( 'featherlight-gallery' ),
|
179 |
$this->version,
|
180 |
true
|
@@ -209,7 +231,29 @@ class WP_Featherlight_Scripts {
|
|
209 |
if ( apply_filters( 'wp_featherlight_captions', true ) ) {
|
210 |
$classes[] = 'wp-featherlight-captions';
|
211 |
}
|
|
|
212 |
return $classes;
|
213 |
}
|
214 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
215 |
}
|
3 |
* Methods used for filtering and displaying WP Featherlight images.
|
4 |
*
|
5 |
* @package WPFeatherlight\Scripts
|
6 |
+
* @copyright Copyright (c) 2016, WP Site Care
|
|
|
7 |
* @license GPL-2.0+
|
8 |
* @since 0.1.0
|
9 |
*/
|
10 |
|
11 |
+
/**
|
12 |
+
* The main featherlight script and style loader.
|
13 |
+
*
|
14 |
+
* @since 0.1.0
|
15 |
+
*/
|
16 |
class WP_Featherlight_Scripts {
|
17 |
|
18 |
+
/**
|
19 |
+
* Property for storing the script and style suffix.
|
20 |
+
*
|
21 |
+
* @since 0.3.0
|
22 |
+
* @var string
|
23 |
+
*/
|
24 |
protected $suffix;
|
25 |
|
26 |
+
/**
|
27 |
+
* Property for storing the plugin directory URL.
|
28 |
+
*
|
29 |
+
* @since 0.3.0
|
30 |
+
* @var string
|
31 |
+
*/
|
32 |
protected $url;
|
33 |
|
34 |
+
/**
|
35 |
+
* Property for storing the script and style version.
|
36 |
+
*
|
37 |
+
* @since 0.3.0
|
38 |
+
* @var string
|
39 |
+
*/
|
40 |
protected $version;
|
41 |
|
|
|
|
|
|
|
|
|
|
|
|
|
42 |
/**
|
43 |
+
* Set up class properties.
|
44 |
*
|
45 |
* @since 0.1.0
|
46 |
+
* @param string $url The absolute URI path to the plugin directory.
|
47 |
+
* @param string $version The version to use when loading scripts.
|
48 |
* @return void
|
49 |
*/
|
50 |
+
public function __construct( $url, $version ) {
|
51 |
+
$this->suffix = $this->get_suffix();
|
52 |
+
$this->url = $url;
|
53 |
+
$this->version = $version;
|
54 |
}
|
55 |
|
56 |
/**
|
57 |
+
* Helper function for getting the script `.min` suffix for minified files.
|
58 |
*
|
59 |
* @since 0.1.0
|
60 |
+
* @access public
|
61 |
+
* @return string
|
62 |
*/
|
63 |
+
public function get_suffix() {
|
64 |
+
static $suffix;
|
65 |
+
|
66 |
+
if ( null === $suffix ) {
|
67 |
+
$debug = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG;
|
68 |
+
$enabled = (bool) apply_filters( 'wp_featherlight_enable_suffix', ! $debug );
|
69 |
+
$suffix = $enabled ? '.min' : '';
|
70 |
+
}
|
71 |
+
|
72 |
+
return $suffix;
|
73 |
}
|
74 |
|
75 |
/**
|
86 |
if ( ! apply_filters( 'wp_featherlight_load_css', true ) ) {
|
87 |
return;
|
88 |
}
|
89 |
+
|
90 |
wp_enqueue_style(
|
91 |
'wp-featherlight',
|
92 |
"{$this->url}css/wp-featherlight{$this->suffix}.css",
|
93 |
array(),
|
94 |
$this->version
|
95 |
);
|
96 |
+
|
97 |
wp_style_add_data( 'wp-featherlight', 'rtl', 'replace' );
|
|
|
|
|
98 |
|
99 |
+
wp_style_add_data( 'wp-featherlight', 'suffix', $this->suffix );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
100 |
}
|
101 |
|
102 |
/**
|
115 |
* @return bool
|
116 |
*/
|
117 |
protected function enable_packed_js() {
|
|
|
118 |
if ( empty( $this->suffix ) ) {
|
119 |
return false;
|
120 |
}
|
121 |
+
|
122 |
return apply_filters( 'wp_featherlight_enable_packed_js', true );
|
123 |
}
|
124 |
|
125 |
+
/**
|
126 |
+
* Load all required JavaScript files on the front end.
|
127 |
+
*
|
128 |
+
* Developers can disable our JS by filtering wp_featherlight_load_js to
|
129 |
+
* false within their theme or plugin.
|
130 |
+
*
|
131 |
+
* @since 0.1.0
|
132 |
+
* @access public
|
133 |
+
* @return void
|
134 |
+
*/
|
135 |
+
public function load_js() {
|
136 |
+
if ( ! apply_filters( 'wp_featherlight_load_js', true ) ) {
|
137 |
+
return;
|
138 |
+
}
|
139 |
+
if ( $this->enable_packed_js() ) {
|
140 |
+
$this->load_packed_js();
|
141 |
+
} else {
|
142 |
+
$this->load_unpacked_js();
|
143 |
+
}
|
144 |
+
}
|
145 |
+
|
146 |
/**
|
147 |
* Load the packed and minified version of our JavaScript files. This is the
|
148 |
* preferred loading method as it saves us from adding a bunch of http
|
153 |
* @return void
|
154 |
*/
|
155 |
public function load_packed_js() {
|
|
|
|
|
|
|
156 |
wp_enqueue_script(
|
157 |
'wp-featherlight',
|
158 |
"{$this->url}js/wpFeatherlight.pkgd{$this->suffix}.js",
|
170 |
* @return void
|
171 |
*/
|
172 |
public function load_unpacked_js() {
|
|
|
|
|
|
|
|
|
|
|
173 |
wp_enqueue_script(
|
174 |
'jquery-detect-swipe',
|
175 |
+
"{$this->url}js/src/vendor/jquery.detect_swipe{$this->suffix}.js",
|
176 |
array( 'jquery' ),
|
177 |
+
'2.1.3',
|
178 |
true
|
179 |
);
|
180 |
+
|
181 |
wp_enqueue_script(
|
182 |
'featherlight',
|
183 |
+
"{$this->url}js/src/vendor/featherlight{$this->suffix}.js",
|
184 |
array( 'jquery-detect-swipe' ),
|
185 |
+
'1.5.1',
|
186 |
true
|
187 |
);
|
188 |
+
|
189 |
wp_enqueue_script(
|
190 |
'featherlight-gallery',
|
191 |
+
"{$this->url}js/src/vendor/featherlight.gallery{$this->suffix}.js",
|
192 |
array( 'featherlight' ),
|
193 |
+
'1.5.1',
|
194 |
true
|
195 |
);
|
196 |
+
|
197 |
wp_enqueue_script(
|
198 |
'wp-featherlight',
|
199 |
+
"{$this->url}js/src/wpFeatherlight{$this->suffix}.js",
|
200 |
array( 'featherlight-gallery' ),
|
201 |
$this->version,
|
202 |
true
|
231 |
if ( apply_filters( 'wp_featherlight_captions', true ) ) {
|
232 |
$classes[] = 'wp-featherlight-captions';
|
233 |
}
|
234 |
+
|
235 |
return $classes;
|
236 |
}
|
237 |
|
238 |
+
/**
|
239 |
+
* Get the class running!
|
240 |
+
*
|
241 |
+
* @since 0.1.0
|
242 |
+
* @access public
|
243 |
+
* @return void
|
244 |
+
*/
|
245 |
+
public function run() {
|
246 |
+
_deprecated_function( __METHOD__, '1.0.0' );
|
247 |
+
}
|
248 |
+
|
249 |
+
/**
|
250 |
+
* Hook into WordPress.
|
251 |
+
*
|
252 |
+
* @since 0.1.0
|
253 |
+
* @access protected
|
254 |
+
* @return void
|
255 |
+
*/
|
256 |
+
protected function wp_hooks() {
|
257 |
+
_deprecated_function( __METHOD__, '1.0.0' );
|
258 |
+
}
|
259 |
}
|
@@ -3,15 +3,11 @@
|
|
3 |
* Define constants to preserve backwards compatibility with older versions.
|
4 |
*
|
5 |
* @package WPFeatherlight
|
6 |
-
* @
|
7 |
-
* @copyright Copyright (c) 2015, WP Site Care
|
8 |
* @license GPL-2.0+
|
9 |
* @since 0.3.0
|
10 |
*/
|
11 |
|
12 |
-
// Prevent direct access.
|
13 |
-
defined( 'ABSPATH' ) || exit;
|
14 |
-
|
15 |
define( 'WP_FEATHERLIGHT_FILE', wp_featherlight()->get_file() );
|
16 |
define( 'WP_FEATHERLIGHT_VERSION', wp_featherlight()->get_version() );
|
17 |
|
3 |
* Define constants to preserve backwards compatibility with older versions.
|
4 |
*
|
5 |
* @package WPFeatherlight
|
6 |
+
* @copyright Copyright (c) 2016, WP Site Care
|
|
|
7 |
* @license GPL-2.0+
|
8 |
* @since 0.3.0
|
9 |
*/
|
10 |
|
|
|
|
|
|
|
11 |
define( 'WP_FEATHERLIGHT_FILE', wp_featherlight()->get_file() );
|
12 |
define( 'WP_FEATHERLIGHT_VERSION', wp_featherlight()->get_version() );
|
13 |
|
@@ -1,8 +1,8 @@
|
|
1 |
/**
|
2 |
* Featherlight Gallery – an extension for the ultra slim jQuery lightbox
|
3 |
-
* Version 1.
|
4 |
*
|
5 |
-
* Copyright
|
6 |
* MIT Licensed.
|
7 |
**/
|
8 |
(function($) {
|
@@ -63,6 +63,14 @@
|
|
63 |
}
|
64 |
return _super(event);
|
65 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
66 |
onKeyUp: function(_super, event){
|
67 |
var dir = {
|
68 |
37: 'previous', /* Left arrow */
|
1 |
/**
|
2 |
* Featherlight Gallery – an extension for the ultra slim jQuery lightbox
|
3 |
+
* Version 1.5.1 - http://noelboss.github.io/featherlight/
|
4 |
*
|
5 |
+
* Copyright 2016, Noël Raoul Bossart (http://www.noelboss.com)
|
6 |
* MIT Licensed.
|
7 |
**/
|
8 |
(function($) {
|
63 |
}
|
64 |
return _super(event);
|
65 |
},
|
66 |
+
beforeContent: function(_super, event) {
|
67 |
+
var index = this.currentNavigation();
|
68 |
+
var len = this.slides().length;
|
69 |
+
this.$instance
|
70 |
+
.toggleClass(this.namespace+'-first-slide', index === 0)
|
71 |
+
.toggleClass(this.namespace+'-last-slide', index === len - 1);
|
72 |
+
return _super(event);
|
73 |
+
},
|
74 |
onKeyUp: function(_super, event){
|
75 |
var dir = {
|
76 |
37: 'previous', /* Left arrow */
|
@@ -1 +1 @@
|
|
1 |
-
!function(a){"use strict";function b(c,d){if(!(this instanceof b)){var e=new b(a.extend({$source:c,$currentTarget:c.first()},d));return e.open(),e}a.featherlight.apply(this,arguments),this.chainCallbacks(h)}var c=function(a){window.console&&window.console.warn&&window.console.warn("FeatherlightGallery: "+a)};if("undefined"==typeof a)return c("Too much lightness, Featherlight needs jQuery.");if(!a.featherlight)return c("Load the featherlight plugin before the gallery plugin");var d="ontouchstart"in window||window.DocumentTouch&&document instanceof DocumentTouch,e=a.event&&a.event.special.swipeleft&&a,f=window.Hammer&&function(a){var b=new window.Hammer.Manager(a[0]);return b.add(new window.Hammer.Swipe),b},g=d&&(e||f);d&&!g&&c("No compatible swipe library detected; one must be included before featherlightGallery for swipe motions to navigate the galleries.");var h={afterClose:function(a,b){var c=this;return c.$instance.off("next."+c.namespace+" previous."+c.namespace),c._swiper&&(c._swiper.off("swipeleft",c._swipeleft).off("swiperight",c._swiperight),c._swiper=null),a(b)},beforeOpen:function(a,b){var c=this;return c.$instance.on("next."+c.namespace+" previous."+c.namespace,function(a){var b="next"===a.type?1:-1;c.navigateTo(c.currentNavigation()+b)}),g?c._swiper=g(c.$instance).on("swipeleft",c._swipeleft=function(){c.$instance.trigger("next")}).on("swiperight",c._swiperight=function(){c.$instance.trigger("previous")}):c.$instance.find("."+c.namespace+"-content").append(c.createNavigation("previous")).append(c.createNavigation("next")),a(b)},onKeyUp:function(a,b){var c={37:"previous",39:"next"}[b.keyCode];return c?(this.$instance.trigger(c),!1):a(b)}};a.featherlight.extend(b,{autoBind:"[data-featherlight-gallery]"}),a.extend(b.prototype,{previousIcon:"◀",nextIcon:"▶",galleryFadeIn:100,galleryFadeOut:300,slides:function(){return this.filter?this.$source.find(this.filter):this.$source},images:function(){return c("images is deprecated, please use slides instead"),this.slides()},currentNavigation:function(){return this.slides().index(this.$currentTarget)},navigateTo:function(b){var c=this,d=c.slides(),e=d.length,f=c.$instance.find("."+c.namespace+"-inner");return b=(b%e+e)%e,c.$currentTarget=d.eq(b),c.beforeContent(),a.when(c.getContent(),f.fadeTo(c.galleryFadeOut,.2)).always(function(a){c.setContent(a),c.afterContent(),a.fadeTo(c.galleryFadeIn,1)})},createNavigation:function(b){var c=this;return a('<span title="'+b+'" class="'+this.namespace+"-"+b+'"><span>'+this[b+"Icon"]+"</span></span>").click(function(){a(this).trigger(b+"."+c.namespace)})}}),a.featherlightGallery=b,a.fn.featherlightGallery=function(a){return b.attach(this,a)},a(document).ready(function(){b._onReady()})}(jQuery);
|
1 |
+
!function(a){"use strict";function b(c,d){if(!(this instanceof b)){var e=new b(a.extend({$source:c,$currentTarget:c.first()},d));return e.open(),e}a.featherlight.apply(this,arguments),this.chainCallbacks(h)}var c=function(a){window.console&&window.console.warn&&window.console.warn("FeatherlightGallery: "+a)};if("undefined"==typeof a)return c("Too much lightness, Featherlight needs jQuery.");if(!a.featherlight)return c("Load the featherlight plugin before the gallery plugin");var d="ontouchstart"in window||window.DocumentTouch&&document instanceof DocumentTouch,e=a.event&&a.event.special.swipeleft&&a,f=window.Hammer&&function(a){var b=new window.Hammer.Manager(a[0]);return b.add(new window.Hammer.Swipe),b},g=d&&(e||f);d&&!g&&c("No compatible swipe library detected; one must be included before featherlightGallery for swipe motions to navigate the galleries.");var h={afterClose:function(a,b){var c=this;return c.$instance.off("next."+c.namespace+" previous."+c.namespace),c._swiper&&(c._swiper.off("swipeleft",c._swipeleft).off("swiperight",c._swiperight),c._swiper=null),a(b)},beforeOpen:function(a,b){var c=this;return c.$instance.on("next."+c.namespace+" previous."+c.namespace,function(a){var b="next"===a.type?1:-1;c.navigateTo(c.currentNavigation()+b)}),g?c._swiper=g(c.$instance).on("swipeleft",c._swipeleft=function(){c.$instance.trigger("next")}).on("swiperight",c._swiperight=function(){c.$instance.trigger("previous")}):c.$instance.find("."+c.namespace+"-content").append(c.createNavigation("previous")).append(c.createNavigation("next")),a(b)},beforeContent:function(a,b){var c=this.currentNavigation(),d=this.slides().length;return this.$instance.toggleClass(this.namespace+"-first-slide",0===c).toggleClass(this.namespace+"-last-slide",c===d-1),a(b)},onKeyUp:function(a,b){var c={37:"previous",39:"next"}[b.keyCode];return c?(this.$instance.trigger(c),!1):a(b)}};a.featherlight.extend(b,{autoBind:"[data-featherlight-gallery]"}),a.extend(b.prototype,{previousIcon:"◀",nextIcon:"▶",galleryFadeIn:100,galleryFadeOut:300,slides:function(){return this.filter?this.$source.find(this.filter):this.$source},images:function(){return c("images is deprecated, please use slides instead"),this.slides()},currentNavigation:function(){return this.slides().index(this.$currentTarget)},navigateTo:function(b){var c=this,d=c.slides(),e=d.length,f=c.$instance.find("."+c.namespace+"-inner");return b=(b%e+e)%e,c.$currentTarget=d.eq(b),c.beforeContent(),a.when(c.getContent(),f.fadeTo(c.galleryFadeOut,.2)).always(function(a){c.setContent(a),c.afterContent(),a.fadeTo(c.galleryFadeIn,1)})},createNavigation:function(b){var c=this;return a('<span title="'+b+'" class="'+this.namespace+"-"+b+'"><span>'+this[b+"Icon"]+"</span></span>").click(function(){a(this).trigger(b+"."+c.namespace)})}}),a.featherlightGallery=b,a.fn.featherlightGallery=function(a){return b.attach(this,a)},a(document).ready(function(){b._onReady()})}(jQuery);
|
@@ -1,8 +1,8 @@
|
|
1 |
/**
|
2 |
* Featherlight - ultra slim jQuery lightbox
|
3 |
-
* Version 1.
|
4 |
*
|
5 |
-
* Copyright
|
6 |
* MIT Licensed.
|
7 |
**/
|
8 |
(function($) {
|
@@ -94,32 +94,32 @@
|
|
94 |
constructor: Featherlight,
|
95 |
/*** defaults ***/
|
96 |
/* extend featherlight with defaults and methods */
|
97 |
-
namespace:
|
98 |
-
targetAttr:
|
99 |
-
variant:
|
100 |
-
resetCss:
|
101 |
-
background:
|
102 |
-
openTrigger:
|
103 |
-
closeTrigger:
|
104 |
-
filter:
|
105 |
-
root:
|
106 |
-
openSpeed:
|
107 |
-
closeSpeed:
|
108 |
-
closeOnClick:
|
109 |
-
closeOnEsc:
|
110 |
-
closeIcon:
|
111 |
-
loading:
|
112 |
-
persist:
|
113 |
-
otherClose:
|
114 |
-
beforeOpen:
|
115 |
-
beforeContent:
|
116 |
-
beforeClose:
|
117 |
-
afterOpen:
|
118 |
-
afterContent:
|
119 |
-
afterClose:
|
120 |
-
onKeyUp:
|
121 |
-
onResize:
|
122 |
-
type:
|
123 |
contentFilters: ['jquery', 'image', 'html', 'ajax', 'iframe', 'text'], /* List of content filters to use to determine the content */
|
124 |
|
125 |
/*** methods ***/
|
@@ -152,8 +152,8 @@
|
|
152 |
if( ('background' === self.closeOnClick && $target.is('.'+self.namespace))
|
153 |
|| 'anywhere' === self.closeOnClick
|
154 |
|| $target.closest(closeButtonSelector).length ){
|
|
|
155 |
event.preventDefault();
|
156 |
-
self.close();
|
157 |
}
|
158 |
});
|
159 |
|
@@ -229,7 +229,7 @@
|
|
229 |
position to any other items added to featherlight-content */
|
230 |
self.$instance.find('.'+self.namespace+'-inner')
|
231 |
.not($content) /* excluded new content, important if persisted */
|
232 |
-
.slice(1).remove().end()
|
233 |
.replaceWith($.contains(self.$instance[0], $content[0]) ? '' : $content);
|
234 |
|
235 |
self.$content = $content.addClass(self.namespace+'-inner');
|
@@ -296,6 +296,27 @@
|
|
296 |
return deferred.promise();
|
297 |
},
|
298 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
299 |
/* Utility function to chain callbacks
|
300 |
[Warning: guru-level]
|
301 |
Used be extensions that want to let users specify callbacks but
|
@@ -360,8 +381,8 @@
|
|
360 |
iframe: {
|
361 |
process: function(url) {
|
362 |
var deferred = new $.Deferred();
|
363 |
-
var $content = $('<iframe/>')
|
364 |
-
|
365 |
.attr('src', url)
|
366 |
.css(structure(this, 'iframe'))
|
367 |
.on('load', function() { deferred.resolve($content.show()); })
|
@@ -393,7 +414,7 @@
|
|
393 |
if ($.inArray(name, Klass.functionAttributes) >= 0) { /* jshint -W054 */
|
394 |
val = new Function(val); /* jshint +W054 */
|
395 |
} else {
|
396 |
-
try { val =
|
397 |
catch(e) {}
|
398 |
}
|
399 |
config[name] = val;
|
@@ -469,9 +490,9 @@
|
|
469 |
return $.grep(opened, function(fl) { return fl instanceof klass; } );
|
470 |
},
|
471 |
|
472 |
-
close: function() {
|
473 |
var cur = this.current();
|
474 |
-
if(cur) { return cur.close(); }
|
475 |
},
|
476 |
|
477 |
/* Does the auto binding on startup.
|
@@ -480,14 +501,21 @@
|
|
480 |
_onReady: function() {
|
481 |
var Klass = this;
|
482 |
if(Klass.autoBind){
|
483 |
-
/*
|
484 |
-
Klass.
|
485 |
-
/* Auto bound elements with attr-featherlight-filter won't work
|
486 |
-
(since we already used it to bind on document), so bind these
|
487 |
-
directly. We can't easily support dynamically added element with filters */
|
488 |
-
$(Klass.autoBind).filter('[data-featherlight-filter]').each(function(){
|
489 |
Klass.attach($(this));
|
490 |
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
491 |
}
|
492 |
},
|
493 |
|
@@ -498,7 +526,7 @@
|
|
498 |
onKeyUp: function(_super, event){
|
499 |
if(27 === event.keyCode) {
|
500 |
if (this.closeOnEsc) {
|
501 |
-
|
502 |
}
|
503 |
return false;
|
504 |
} else {
|
@@ -507,19 +535,7 @@
|
|
507 |
},
|
508 |
|
509 |
onResize: function(_super, event){
|
510 |
-
|
511 |
-
var w = this.$content.naturalWidth, h = this.$content.naturalHeight;
|
512 |
-
/* Reset apparent image size first so container grows */
|
513 |
-
this.$content.css('width', '').css('height', '');
|
514 |
-
/* Calculate the worst ratio so that dimensions fit */
|
515 |
-
var ratio = Math.max(
|
516 |
-
w / parseInt(this.$content.parent().css('width'),10),
|
517 |
-
h / parseInt(this.$content.parent().css('height'),10));
|
518 |
-
/* Resize content */
|
519 |
-
if (ratio > 1) {
|
520 |
-
this.$content.css('width', '' + w / ratio + 'px').css('height', '' + h / ratio + 'px');
|
521 |
-
}
|
522 |
-
}
|
523 |
return _super(event);
|
524 |
},
|
525 |
|
1 |
/**
|
2 |
* Featherlight - ultra slim jQuery lightbox
|
3 |
+
* Version 1.5.1 - http://noelboss.github.io/featherlight/
|
4 |
*
|
5 |
+
* Copyright 2016, Noël Raoul Bossart (http://www.noelboss.com)
|
6 |
* MIT Licensed.
|
7 |
**/
|
8 |
(function($) {
|
94 |
constructor: Featherlight,
|
95 |
/*** defaults ***/
|
96 |
/* extend featherlight with defaults and methods */
|
97 |
+
namespace: 'featherlight', /* Name of the events and css class prefix */
|
98 |
+
targetAttr: 'data-featherlight', /* Attribute of the triggered element that contains the selector to the lightbox content */
|
99 |
+
variant: null, /* Class that will be added to change look of the lightbox */
|
100 |
+
resetCss: false, /* Reset all css */
|
101 |
+
background: null, /* Custom DOM for the background, wrapper and the closebutton */
|
102 |
+
openTrigger: 'click', /* Event that triggers the lightbox */
|
103 |
+
closeTrigger: 'click', /* Event that triggers the closing of the lightbox */
|
104 |
+
filter: null, /* Selector to filter events. Think $(...).on('click', filter, eventHandler) */
|
105 |
+
root: 'body', /* Where to append featherlights */
|
106 |
+
openSpeed: 250, /* Duration of opening animation */
|
107 |
+
closeSpeed: 250, /* Duration of closing animation */
|
108 |
+
closeOnClick: 'background', /* Close lightbox on click ('background', 'anywhere' or false) */
|
109 |
+
closeOnEsc: true, /* Close lightbox when pressing esc */
|
110 |
+
closeIcon: '✕', /* Close icon */
|
111 |
+
loading: '', /* Content to show while initial content is loading */
|
112 |
+
persist: false, /* If set, the content will persist and will be shown again when opened again. 'shared' is a special value when binding multiple elements for them to share the same content */
|
113 |
+
otherClose: null, /* Selector for alternate close buttons (e.g. "a.close") */
|
114 |
+
beforeOpen: $.noop, /* Called before open. can return false to prevent opening of lightbox. Gets event as parameter, this contains all data */
|
115 |
+
beforeContent: $.noop, /* Called when content is loaded. Gets event as parameter, this contains all data */
|
116 |
+
beforeClose: $.noop, /* Called before close. can return false to prevent opening of lightbox. Gets event as parameter, this contains all data */
|
117 |
+
afterOpen: $.noop, /* Called after open. Gets event as parameter, this contains all data */
|
118 |
+
afterContent: $.noop, /* Called after content is ready and has been set. Gets event as parameter, this contains all data */
|
119 |
+
afterClose: $.noop, /* Called after close. Gets event as parameter, this contains all data */
|
120 |
+
onKeyUp: $.noop, /* Called on key up for the frontmost featherlight */
|
121 |
+
onResize: $.noop, /* Called after new content and when a window is resized */
|
122 |
+
type: null, /* Specify type of lightbox. If unset, it will check for the targetAttrs value. */
|
123 |
contentFilters: ['jquery', 'image', 'html', 'ajax', 'iframe', 'text'], /* List of content filters to use to determine the content */
|
124 |
|
125 |
/*** methods ***/
|
152 |
if( ('background' === self.closeOnClick && $target.is('.'+self.namespace))
|
153 |
|| 'anywhere' === self.closeOnClick
|
154 |
|| $target.closest(closeButtonSelector).length ){
|
155 |
+
self.close(event);
|
156 |
event.preventDefault();
|
|
|
157 |
}
|
158 |
});
|
159 |
|
229 |
position to any other items added to featherlight-content */
|
230 |
self.$instance.find('.'+self.namespace+'-inner')
|
231 |
.not($content) /* excluded new content, important if persisted */
|
232 |
+
.slice(1).remove().end() /* In the unexpected event where there are many inner elements, remove all but the first one */
|
233 |
.replaceWith($.contains(self.$instance[0], $content[0]) ? '' : $content);
|
234 |
|
235 |
self.$content = $content.addClass(self.namespace+'-inner');
|
296 |
return deferred.promise();
|
297 |
},
|
298 |
|
299 |
+
/* resizes the content so it fits in visible area and keeps the same aspect ratio.
|
300 |
+
Does nothing if either the width or the height is not specified.
|
301 |
+
Called automatically on window resize.
|
302 |
+
Override if you want different behavior. */
|
303 |
+
resize: function(w, h) {
|
304 |
+
if (w && h) {
|
305 |
+
/* Reset apparent image size first so container grows */
|
306 |
+
this.$content.css('width', '').css('height', '');
|
307 |
+
/* Calculate the worst ratio so that dimensions fit */
|
308 |
+
/* Note: -1 to avoid rounding errors */
|
309 |
+
var ratio = Math.max(
|
310 |
+
w / (parseInt(this.$content.parent().css('width'),10)-1),
|
311 |
+
h / (parseInt(this.$content.parent().css('height'),10)-1));
|
312 |
+
/* Resize content */
|
313 |
+
if (ratio > 1) {
|
314 |
+
ratio = h / Math.floor(h / ratio); /* Round ratio down so height calc works */
|
315 |
+
this.$content.css('width', '' + w / ratio + 'px').css('height', '' + h / ratio + 'px');
|
316 |
+
}
|
317 |
+
}
|
318 |
+
},
|
319 |
+
|
320 |
/* Utility function to chain callbacks
|
321 |
[Warning: guru-level]
|
322 |
Used be extensions that want to let users specify callbacks but
|
381 |
iframe: {
|
382 |
process: function(url) {
|
383 |
var deferred = new $.Deferred();
|
384 |
+
var $content = $('<iframe/>');
|
385 |
+
$content.hide()
|
386 |
.attr('src', url)
|
387 |
.css(structure(this, 'iframe'))
|
388 |
.on('load', function() { deferred.resolve($content.show()); })
|
414 |
if ($.inArray(name, Klass.functionAttributes) >= 0) { /* jshint -W054 */
|
415 |
val = new Function(val); /* jshint +W054 */
|
416 |
} else {
|
417 |
+
try { val = JSON.parse(val); }
|
418 |
catch(e) {}
|
419 |
}
|
420 |
config[name] = val;
|
490 |
return $.grep(opened, function(fl) { return fl instanceof klass; } );
|
491 |
},
|
492 |
|
493 |
+
close: function(event) {
|
494 |
var cur = this.current();
|
495 |
+
if(cur) { return cur.close(event); }
|
496 |
},
|
497 |
|
498 |
/* Does the auto binding on startup.
|
501 |
_onReady: function() {
|
502 |
var Klass = this;
|
503 |
if(Klass.autoBind){
|
504 |
+
/* Bind existing elements */
|
505 |
+
$(Klass.autoBind).each(function(){
|
|
|
|
|
|
|
|
|
506 |
Klass.attach($(this));
|
507 |
});
|
508 |
+
/* If a click propagates to the document level, then we have an item that was added later on */
|
509 |
+
$(document).on('click', Klass.autoBind, function(evt) {
|
510 |
+
if (evt.isDefaultPrevented() || evt.namespace === 'featherlight') {
|
511 |
+
return;
|
512 |
+
}
|
513 |
+
evt.preventDefault();
|
514 |
+
/* Bind featherlight */
|
515 |
+
Klass.attach($(evt.currentTarget));
|
516 |
+
/* Click again; this time our binding will catch it */
|
517 |
+
$(evt.target).trigger('click.featherlight');
|
518 |
+
});
|
519 |
}
|
520 |
},
|
521 |
|
526 |
onKeyUp: function(_super, event){
|
527 |
if(27 === event.keyCode) {
|
528 |
if (this.closeOnEsc) {
|
529 |
+
$.featherlight.close(event);
|
530 |
}
|
531 |
return false;
|
532 |
} else {
|
535 |
},
|
536 |
|
537 |
onResize: function(_super, event){
|
538 |
+
this.resize(this.$content.naturalWidth, this.$content.naturalHeight);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
539 |
return _super(event);
|
540 |
},
|
541 |
|
@@ -1 +1 @@
|
|
1 |
-
!function(a){"use strict";function b(a,c){if(!(this instanceof b)){var d=new b(a,c);return d.open(),d}this.id=b.id++,this.setup(a,c),this.chainCallbacks(b._callbackChain)}if("undefined"==typeof a)return void("console"in window&&window.console.info("Too much lightness, Featherlight needs jQuery."));var c=[],d=function(b){return c=a.grep(c,function(a){return a!==b&&a.$instance.closest("body").length>0})},e=function(a,b){var c={},d=new RegExp("^"+b+"([A-Z])(.*)");for(var e in a){var f=e.match(d);if(f){var g=(f[1]+f[2].replace(/([A-Z])/g,"-$1")).toLowerCase();c[g]=a[e]}}return c},f={keyup:"onKeyUp",resize:"onResize"},g=function(c){a.each(b.opened().reverse(),function(){
|
1 |
+
!function(a){"use strict";function b(a,c){if(!(this instanceof b)){var d=new b(a,c);return d.open(),d}this.id=b.id++,this.setup(a,c),this.chainCallbacks(b._callbackChain)}if("undefined"==typeof a)return void("console"in window&&window.console.info("Too much lightness, Featherlight needs jQuery."));var c=[],d=function(b){return c=a.grep(c,function(a){return a!==b&&a.$instance.closest("body").length>0})},e=function(a,b){var c={},d=new RegExp("^"+b+"([A-Z])(.*)");for(var e in a){var f=e.match(d);if(f){var g=(f[1]+f[2].replace(/([A-Z])/g,"-$1")).toLowerCase();c[g]=a[e]}}return c},f={keyup:"onKeyUp",resize:"onResize"},g=function(c){a.each(b.opened().reverse(),function(){if(!c.isDefaultPrevented()&&!1===this[f[c.type]](c))return c.preventDefault(),c.stopPropagation(),!1})},h=function(c){if(c!==b._globalHandlerInstalled){b._globalHandlerInstalled=c;var d=a.map(f,function(a,c){return c+"."+b.prototype.namespace}).join(" ");a(window)[c?"on":"off"](d,g)}};b.prototype={constructor:b,namespace:"featherlight",targetAttr:"data-featherlight",variant:null,resetCss:!1,background:null,openTrigger:"click",closeTrigger:"click",filter:null,root:"body",openSpeed:250,closeSpeed:250,closeOnClick:"background",closeOnEsc:!0,closeIcon:"✕",loading:"",persist:!1,otherClose:null,beforeOpen:a.noop,beforeContent:a.noop,beforeClose:a.noop,afterOpen:a.noop,afterContent:a.noop,afterClose:a.noop,onKeyUp:a.noop,onResize:a.noop,type:null,contentFilters:["jquery","image","html","ajax","iframe","text"],setup:function(b,c){"object"!=typeof b||b instanceof a!=!1||c||(c=b,b=void 0);var d=a.extend(this,c,{target:b}),e=d.resetCss?d.namespace+"-reset":d.namespace,f=a(d.background||['<div class="'+e+"-loading "+e+'">','<div class="'+e+'-content">','<span class="'+e+"-close-icon "+d.namespace+'-close">',d.closeIcon,"</span>",'<div class="'+d.namespace+'-inner">'+d.loading+"</div>","</div>","</div>"].join("")),g="."+d.namespace+"-close"+(d.otherClose?","+d.otherClose:"");return d.$instance=f.clone().addClass(d.variant),d.$instance.on(d.closeTrigger+"."+d.namespace,function(b){var c=a(b.target);("background"===d.closeOnClick&&c.is("."+d.namespace)||"anywhere"===d.closeOnClick||c.closest(g).length)&&(d.close(b),b.preventDefault())}),this},getContent:function(){if(this.persist!==!1&&this.$content)return this.$content;var b=this,c=this.constructor.contentFilters,d=function(a){return b.$currentTarget&&b.$currentTarget.attr(a)},e=d(b.targetAttr),f=b.target||e||"",g=c[b.type];if(!g&&f in c&&(g=c[f],f=b.target&&e),f=f||d("href")||"",!g)for(var h in c)b[h]&&(g=c[h],f=b[h]);if(!g){var i=f;if(f=null,a.each(b.contentFilters,function(){return g=c[this],g.test&&(f=g.test(i)),!f&&g.regex&&i.match&&i.match(g.regex)&&(f=i),!f}),!f)return"console"in window&&window.console.error("Featherlight: no content filter found "+(i?' for "'+i+'"':" (no target specified)")),!1}return g.process.call(b,f)},setContent:function(b){var c=this;return(b.is("iframe")||a("iframe",b).length>0)&&c.$instance.addClass(c.namespace+"-iframe"),c.$instance.removeClass(c.namespace+"-loading"),c.$instance.find("."+c.namespace+"-inner").not(b).slice(1).remove().end().replaceWith(a.contains(c.$instance[0],b[0])?"":b),c.$content=b.addClass(c.namespace+"-inner"),c},open:function(b){var d=this;if(d.$instance.hide().appendTo(d.root),!(b&&b.isDefaultPrevented()||d.beforeOpen(b)===!1)){b&&b.preventDefault();var e=d.getContent();if(e)return c.push(d),h(!0),d.$instance.fadeIn(d.openSpeed),d.beforeContent(b),a.when(e).always(function(a){d.setContent(a),d.afterContent(b)}).then(d.$instance.promise()).done(function(){d.afterOpen(b)})}return d.$instance.detach(),a.Deferred().reject().promise()},close:function(b){var c=this,e=a.Deferred();return c.beforeClose(b)===!1?e.reject():(0===d(c).length&&h(!1),c.$instance.fadeOut(c.closeSpeed,function(){c.$instance.detach(),c.afterClose(b),e.resolve()})),e.promise()},resize:function(a,b){if(a&&b){this.$content.css("width","").css("height","");var c=Math.max(a/(parseInt(this.$content.parent().css("width"),10)-1),b/(parseInt(this.$content.parent().css("height"),10)-1));c>1&&(c=b/Math.floor(b/c),this.$content.css("width",""+a/c+"px").css("height",""+b/c+"px"))}},chainCallbacks:function(b){for(var c in b)this[c]=a.proxy(b[c],this,a.proxy(this[c],this))}},a.extend(b,{id:0,autoBind:"[data-featherlight]",defaults:b.prototype,contentFilters:{jquery:{regex:/^[#.]\w/,test:function(b){return b instanceof a&&b},process:function(b){return this.persist!==!1?a(b):a(b).clone(!0)}},image:{regex:/\.(png|jpg|jpeg|gif|tiff|bmp|svg)(\?\S*)?$/i,process:function(b){var c=this,d=a.Deferred(),e=new Image,f=a('<img src="'+b+'" alt="" class="'+c.namespace+'-image" />');return e.onload=function(){f.naturalWidth=e.width,f.naturalHeight=e.height,d.resolve(f)},e.onerror=function(){d.reject(f)},e.src=b,d.promise()}},html:{regex:/^\s*<[\w!][^<]*>/,process:function(b){return a(b)}},ajax:{regex:/./,process:function(b){var c=a.Deferred(),d=a("<div></div>").load(b,function(a,b){"error"!==b&&c.resolve(d.contents()),c.fail()});return c.promise()}},iframe:{process:function(b){var c=new a.Deferred,d=a("<iframe/>");return d.hide().attr("src",b).css(e(this,"iframe")).on("load",function(){c.resolve(d.show())}).appendTo(this.$instance.find("."+this.namespace+"-content")),c.promise()}},text:{process:function(b){return a("<div>",{text:b})}}},functionAttributes:["beforeOpen","afterOpen","beforeContent","afterContent","beforeClose","afterClose"],readElementConfig:function(b,c){var d=this,e=new RegExp("^data-"+c+"-(.*)"),f={};return b&&b.attributes&&a.each(b.attributes,function(){var b=this.name.match(e);if(b){var c=this.value,g=a.camelCase(b[1]);if(a.inArray(g,d.functionAttributes)>=0)c=new Function(c);else try{c=JSON.parse(c)}catch(h){}f[g]=c}}),f},extend:function(b,c){var d=function(){this.constructor=b};return d.prototype=this.prototype,b.prototype=new d,b.__super__=this.prototype,a.extend(b,this,c),b.defaults=b.prototype,b},attach:function(b,c,d){var e=this;"object"!=typeof c||c instanceof a!=!1||d||(d=c,c=void 0),d=a.extend({},d);var f,g=d.namespace||e.defaults.namespace,h=a.extend({},e.defaults,e.readElementConfig(b[0],g),d);return b.on(h.openTrigger+"."+h.namespace,h.filter,function(g){var i=a.extend({$source:b,$currentTarget:a(this)},e.readElementConfig(b[0],h.namespace),e.readElementConfig(this,h.namespace),d),j=f||a(this).data("featherlight-persisted")||new e(c,i);"shared"===j.persist?f=j:j.persist!==!1&&a(this).data("featherlight-persisted",j),i.$currentTarget.blur(),j.open(g)}),b},current:function(){var a=this.opened();return a[a.length-1]||null},opened:function(){var b=this;return d(),a.grep(c,function(a){return a instanceof b})},close:function(a){var b=this.current();if(b)return b.close(a)},_onReady:function(){var b=this;b.autoBind&&(a(b.autoBind).each(function(){b.attach(a(this))}),a(document).on("click",b.autoBind,function(c){c.isDefaultPrevented()||"featherlight"===c.namespace||(c.preventDefault(),b.attach(a(c.currentTarget)),a(c.target).trigger("click.featherlight"))}))},_callbackChain:{onKeyUp:function(b,c){return 27===c.keyCode?(this.closeOnEsc&&a.featherlight.close(c),!1):b(c)},onResize:function(a,b){return this.resize(this.$content.naturalWidth,this.$content.naturalHeight),a(b)},afterContent:function(a,b){var c=a(b);return this.onResize(b),c}}}),a.featherlight=b,a.fn.featherlight=function(a,c){return b.attach(this,a,c)},a(document).ready(function(){b._onReady()})}(jQuery);
|
@@ -1,13 +1,25 @@
|
|
1 |
/**
|
2 |
-
* jquery.detectSwipe v2.1.
|
3 |
* jQuery Plugin to obtain touch gestures from iPhone, iPod Touch, iPad and Android
|
4 |
* http://github.com/marcandre/detect_swipe
|
5 |
* Based on touchwipe by Andreas Waltl, netCU Internetagentur (http://www.netcu.de)
|
6 |
*/
|
7 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
8 |
|
9 |
$.detectSwipe = {
|
10 |
-
version: '2.1.
|
11 |
enabled: 'ontouchstart' in document.documentElement,
|
12 |
preventDefault: true,
|
13 |
threshold: 20
|
@@ -35,7 +47,7 @@
|
|
35 |
dir = dx > 0 ? 'left' : 'right'
|
36 |
}
|
37 |
else if(Math.abs(dy) >= $.detectSwipe.threshold) {
|
38 |
-
dir = dy > 0 ? '
|
39 |
}
|
40 |
if(dir) {
|
41 |
onTouchEnd.call(this);
|
@@ -55,7 +67,7 @@
|
|
55 |
}
|
56 |
|
57 |
function setup() {
|
58 |
-
this.addEventListener('touchstart', onTouchStart, false);
|
59 |
}
|
60 |
|
61 |
function teardown() {
|
@@ -69,4 +81,4 @@
|
|
69 |
$(this).on('swipe', $.noop);
|
70 |
} };
|
71 |
});
|
72 |
-
})
|
1 |
/**
|
2 |
+
* jquery.detectSwipe v2.1.3
|
3 |
* jQuery Plugin to obtain touch gestures from iPhone, iPod Touch, iPad and Android
|
4 |
* http://github.com/marcandre/detect_swipe
|
5 |
* Based on touchwipe by Andreas Waltl, netCU Internetagentur (http://www.netcu.de)
|
6 |
*/
|
7 |
+
|
8 |
+
(function (factory) {
|
9 |
+
if (typeof define === 'function' && define.amd) {
|
10 |
+
// AMD. Register as an anonymous module.
|
11 |
+
define(['jquery'], factory);
|
12 |
+
} else if (typeof exports === 'object') {
|
13 |
+
// Node/CommonJS
|
14 |
+
module.exports = factory(require('jquery'));
|
15 |
+
} else {
|
16 |
+
// Browser globals
|
17 |
+
factory(jQuery);
|
18 |
+
}
|
19 |
+
}(function($) {
|
20 |
|
21 |
$.detectSwipe = {
|
22 |
+
version: '2.1.2',
|
23 |
enabled: 'ontouchstart' in document.documentElement,
|
24 |
preventDefault: true,
|
25 |
threshold: 20
|
47 |
dir = dx > 0 ? 'left' : 'right'
|
48 |
}
|
49 |
else if(Math.abs(dy) >= $.detectSwipe.threshold) {
|
50 |
+
dir = dy > 0 ? 'up' : 'down'
|
51 |
}
|
52 |
if(dir) {
|
53 |
onTouchEnd.call(this);
|
67 |
}
|
68 |
|
69 |
function setup() {
|
70 |
+
this.addEventListener && this.addEventListener('touchstart', onTouchStart, false);
|
71 |
}
|
72 |
|
73 |
function teardown() {
|
81 |
$(this).on('swipe', $.noop);
|
82 |
} };
|
83 |
});
|
84 |
+
}));
|
@@ -1 +1 @@
|
|
1 |
-
!function(a){function b(){this.removeEventListener("touchmove",c),this.removeEventListener("touchend",b),h=!1}function c(c){if(a.detectSwipe.preventDefault&&c.preventDefault(),h){var d,e=c.touches[0].pageX,i=c.touches[0].pageY,j=f-e,k=g-i;Math.abs(j)>=a.detectSwipe.threshold?d=j>0?"left":"right":Math.abs(k)>=a.detectSwipe.threshold&&(d=k>0?"
|
1 |
+
!function(a){"function"==typeof define&&define.amd?define(["jquery"],a):"object"==typeof exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){function b(){this.removeEventListener("touchmove",c),this.removeEventListener("touchend",b),h=!1}function c(c){if(a.detectSwipe.preventDefault&&c.preventDefault(),h){var d,e=c.touches[0].pageX,i=c.touches[0].pageY,j=f-e,k=g-i;Math.abs(j)>=a.detectSwipe.threshold?d=j>0?"left":"right":Math.abs(k)>=a.detectSwipe.threshold&&(d=k>0?"up":"down"),d&&(b.call(this),a(this).trigger("swipe",d).trigger("swipe"+d))}}function d(a){1==a.touches.length&&(f=a.touches[0].pageX,g=a.touches[0].pageY,h=!0,this.addEventListener("touchmove",c,!1),this.addEventListener("touchend",b,!1))}function e(){this.addEventListener&&this.addEventListener("touchstart",d,!1)}a.detectSwipe={version:"2.1.2",enabled:"ontouchstart"in document.documentElement,preventDefault:!0,threshold:20};var f,g,h=!1;a.event.special.swipe={setup:e},a.each(["left","up","down","right"],function(){a.event.special["swipe"+this]={setup:function(){a(this).on("swipe",a.noop)}}})});
|
@@ -7,7 +7,7 @@
|
|
7 |
(function( window, $, undefined ) {
|
8 |
'use strict';
|
9 |
|
10 |
-
var $body = $(
|
11 |
|
12 |
/**
|
13 |
* Checks href targets to see if a given anchor is linking to an image.
|
@@ -16,7 +16,7 @@
|
|
16 |
* @return mixed
|
17 |
*/
|
18 |
function testImages( index, element ) {
|
19 |
-
return /(png
|
20 |
$( element ).attr( 'href' ).toLowerCase().split( '?' )[0].split( '#' )[0]
|
21 |
);
|
22 |
}
|
@@ -30,7 +30,7 @@
|
|
30 |
* @return void
|
31 |
*/
|
32 |
function findImages() {
|
33 |
-
$( 'a[href]' ).filter( testImages ).attr( 'data-featherlight', 'image' );
|
34 |
}
|
35 |
|
36 |
/**
|
@@ -48,11 +48,9 @@
|
|
48 |
$galleryItems = $galleryObj.find( '.tiled-gallery-item a' );
|
49 |
}
|
50 |
|
51 |
-
if (
|
52 |
-
|
53 |
}
|
54 |
-
|
55 |
-
$galleryItems.featherlightGallery();
|
56 |
}
|
57 |
|
58 |
/**
|
@@ -62,13 +60,11 @@
|
|
62 |
* @return void
|
63 |
*/
|
64 |
function findGalleries() {
|
65 |
-
var $gallery = $( '.gallery, .tiled-gallery' );
|
66 |
|
67 |
-
if ( 0
|
68 |
-
|
69 |
}
|
70 |
-
|
71 |
-
$.each( $gallery, buildGalleries );
|
72 |
}
|
73 |
|
74 |
/**
|
7 |
(function( window, $, undefined ) {
|
8 |
'use strict';
|
9 |
|
10 |
+
var $body = $( document.body );
|
11 |
|
12 |
/**
|
13 |
* Checks href targets to see if a given anchor is linking to an image.
|
16 |
* @return mixed
|
17 |
*/
|
18 |
function testImages( index, element ) {
|
19 |
+
return /(.png|.jpg|.jpeg|.gif|.tiff|.bmp)$/.test(
|
20 |
$( element ).attr( 'href' ).toLowerCase().split( '?' )[0].split( '#' )[0]
|
21 |
);
|
22 |
}
|
30 |
* @return void
|
31 |
*/
|
32 |
function findImages() {
|
33 |
+
$body.find( 'a[href]' ).filter( testImages ).attr( 'data-featherlight', 'image' );
|
34 |
}
|
35 |
|
36 |
/**
|
48 |
$galleryItems = $galleryObj.find( '.tiled-gallery-item a' );
|
49 |
}
|
50 |
|
51 |
+
if ( $galleryItems.attr( 'data-featherlight' ) ) {
|
52 |
+
$galleryItems.featherlightGallery();
|
53 |
}
|
|
|
|
|
54 |
}
|
55 |
|
56 |
/**
|
60 |
* @return void
|
61 |
*/
|
62 |
function findGalleries() {
|
63 |
+
var $gallery = $body.find( '.gallery, .tiled-gallery' );
|
64 |
|
65 |
+
if ( 0 !== $gallery.length ) {
|
66 |
+
$.each( $gallery, buildGalleries );
|
67 |
}
|
|
|
|
|
68 |
}
|
69 |
|
70 |
/**
|
@@ -1 +1 @@
|
|
1 |
-
!function(a,b,c){"use strict";function d(a,c){return/(png
|
1 |
+
!function(a,b,c){"use strict";function d(a,c){return/(.png|.jpg|.jpeg|.gif|.tiff|.bmp)$/.test(b(c).attr("href").toLowerCase().split("?")[0].split("#")[0])}function e(){j.find("a[href]").filter(d).attr("data-featherlight","image")}function f(a,c){var d=b(c),e=d.find(".gallery-item a");0===e.length&&(e=d.find(".tiled-gallery-item a")),e.attr("data-featherlight")&&e.featherlightGallery()}function g(){var a=j.find(".gallery, .tiled-gallery");0!==a.length&&b.each(a,f)}function h(){b.featherlight.prototype.afterContent=function(){var a=this.$instance,c=this.$currentTarget,d=c.parent(),e=d.find(".wp-caption-text"),f=c.parents(".gallery-item"),g=c.parents(".tiled-gallery-item");0!==f.length?e=f.find(".wp-caption-text"):0!==g.length&&(e=g.find(".tiled-gallery-caption")),a.find(".caption").remove(),0!==e.length&&b('<div class="caption">').text(e.text()).appendTo(a.find(".featherlight-content"))}}function i(){e(),g(),j.hasClass("wp-featherlight-captions")&&h()}var j=b(document.body);b(document).ready(function(){i()})}(this,jQuery);
|
@@ -1,13 +1,25 @@
|
|
1 |
/**
|
2 |
-
* jquery.detectSwipe v2.1.
|
3 |
* jQuery Plugin to obtain touch gestures from iPhone, iPod Touch, iPad and Android
|
4 |
* http://github.com/marcandre/detect_swipe
|
5 |
* Based on touchwipe by Andreas Waltl, netCU Internetagentur (http://www.netcu.de)
|
6 |
*/
|
7 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
8 |
|
9 |
$.detectSwipe = {
|
10 |
-
version: '2.1.
|
11 |
enabled: 'ontouchstart' in document.documentElement,
|
12 |
preventDefault: true,
|
13 |
threshold: 20
|
@@ -35,7 +47,7 @@
|
|
35 |
dir = dx > 0 ? 'left' : 'right'
|
36 |
}
|
37 |
else if(Math.abs(dy) >= $.detectSwipe.threshold) {
|
38 |
-
dir = dy > 0 ? '
|
39 |
}
|
40 |
if(dir) {
|
41 |
onTouchEnd.call(this);
|
@@ -55,7 +67,7 @@
|
|
55 |
}
|
56 |
|
57 |
function setup() {
|
58 |
-
this.addEventListener('touchstart', onTouchStart, false);
|
59 |
}
|
60 |
|
61 |
function teardown() {
|
@@ -69,13 +81,13 @@
|
|
69 |
$(this).on('swipe', $.noop);
|
70 |
} };
|
71 |
});
|
72 |
-
})
|
73 |
|
74 |
/**
|
75 |
* Featherlight - ultra slim jQuery lightbox
|
76 |
-
* Version 1.
|
77 |
*
|
78 |
-
* Copyright
|
79 |
* MIT Licensed.
|
80 |
**/
|
81 |
(function($) {
|
@@ -167,32 +179,32 @@
|
|
167 |
constructor: Featherlight,
|
168 |
/*** defaults ***/
|
169 |
/* extend featherlight with defaults and methods */
|
170 |
-
namespace:
|
171 |
-
targetAttr:
|
172 |
-
variant:
|
173 |
-
resetCss:
|
174 |
-
background:
|
175 |
-
openTrigger:
|
176 |
-
closeTrigger:
|
177 |
-
filter:
|
178 |
-
root:
|
179 |
-
openSpeed:
|
180 |
-
closeSpeed:
|
181 |
-
closeOnClick:
|
182 |
-
closeOnEsc:
|
183 |
-
closeIcon:
|
184 |
-
loading:
|
185 |
-
persist:
|
186 |
-
otherClose:
|
187 |
-
beforeOpen:
|
188 |
-
beforeContent:
|
189 |
-
beforeClose:
|
190 |
-
afterOpen:
|
191 |
-
afterContent:
|
192 |
-
afterClose:
|
193 |
-
onKeyUp:
|
194 |
-
onResize:
|
195 |
-
type:
|
196 |
contentFilters: ['jquery', 'image', 'html', 'ajax', 'iframe', 'text'], /* List of content filters to use to determine the content */
|
197 |
|
198 |
/*** methods ***/
|
@@ -225,8 +237,8 @@
|
|
225 |
if( ('background' === self.closeOnClick && $target.is('.'+self.namespace))
|
226 |
|| 'anywhere' === self.closeOnClick
|
227 |
|| $target.closest(closeButtonSelector).length ){
|
|
|
228 |
event.preventDefault();
|
229 |
-
self.close();
|
230 |
}
|
231 |
});
|
232 |
|
@@ -302,7 +314,7 @@
|
|
302 |
position to any other items added to featherlight-content */
|
303 |
self.$instance.find('.'+self.namespace+'-inner')
|
304 |
.not($content) /* excluded new content, important if persisted */
|
305 |
-
.slice(1).remove().end()
|
306 |
.replaceWith($.contains(self.$instance[0], $content[0]) ? '' : $content);
|
307 |
|
308 |
self.$content = $content.addClass(self.namespace+'-inner');
|
@@ -369,6 +381,27 @@
|
|
369 |
return deferred.promise();
|
370 |
},
|
371 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
372 |
/* Utility function to chain callbacks
|
373 |
[Warning: guru-level]
|
374 |
Used be extensions that want to let users specify callbacks but
|
@@ -433,8 +466,8 @@
|
|
433 |
iframe: {
|
434 |
process: function(url) {
|
435 |
var deferred = new $.Deferred();
|
436 |
-
var $content = $('<iframe/>')
|
437 |
-
|
438 |
.attr('src', url)
|
439 |
.css(structure(this, 'iframe'))
|
440 |
.on('load', function() { deferred.resolve($content.show()); })
|
@@ -466,7 +499,7 @@
|
|
466 |
if ($.inArray(name, Klass.functionAttributes) >= 0) { /* jshint -W054 */
|
467 |
val = new Function(val); /* jshint +W054 */
|
468 |
} else {
|
469 |
-
try { val =
|
470 |
catch(e) {}
|
471 |
}
|
472 |
config[name] = val;
|
@@ -542,9 +575,9 @@
|
|
542 |
return $.grep(opened, function(fl) { return fl instanceof klass; } );
|
543 |
},
|
544 |
|
545 |
-
close: function() {
|
546 |
var cur = this.current();
|
547 |
-
if(cur) { return cur.close(); }
|
548 |
},
|
549 |
|
550 |
/* Does the auto binding on startup.
|
@@ -553,14 +586,21 @@
|
|
553 |
_onReady: function() {
|
554 |
var Klass = this;
|
555 |
if(Klass.autoBind){
|
556 |
-
/*
|
557 |
-
Klass.
|
558 |
-
/* Auto bound elements with attr-featherlight-filter won't work
|
559 |
-
(since we already used it to bind on document), so bind these
|
560 |
-
directly. We can't easily support dynamically added element with filters */
|
561 |
-
$(Klass.autoBind).filter('[data-featherlight-filter]').each(function(){
|
562 |
Klass.attach($(this));
|
563 |
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
564 |
}
|
565 |
},
|
566 |
|
@@ -571,7 +611,7 @@
|
|
571 |
onKeyUp: function(_super, event){
|
572 |
if(27 === event.keyCode) {
|
573 |
if (this.closeOnEsc) {
|
574 |
-
|
575 |
}
|
576 |
return false;
|
577 |
} else {
|
@@ -580,19 +620,7 @@
|
|
580 |
},
|
581 |
|
582 |
onResize: function(_super, event){
|
583 |
-
|
584 |
-
var w = this.$content.naturalWidth, h = this.$content.naturalHeight;
|
585 |
-
/* Reset apparent image size first so container grows */
|
586 |
-
this.$content.css('width', '').css('height', '');
|
587 |
-
/* Calculate the worst ratio so that dimensions fit */
|
588 |
-
var ratio = Math.max(
|
589 |
-
w / parseInt(this.$content.parent().css('width'),10),
|
590 |
-
h / parseInt(this.$content.parent().css('height'),10));
|
591 |
-
/* Resize content */
|
592 |
-
if (ratio > 1) {
|
593 |
-
this.$content.css('width', '' + w / ratio + 'px').css('height', '' + h / ratio + 'px');
|
594 |
-
}
|
595 |
-
}
|
596 |
return _super(event);
|
597 |
},
|
598 |
|
@@ -617,9 +645,9 @@
|
|
617 |
|
618 |
/**
|
619 |
* Featherlight Gallery – an extension for the ultra slim jQuery lightbox
|
620 |
-
* Version 1.
|
621 |
*
|
622 |
-
* Copyright
|
623 |
* MIT Licensed.
|
624 |
**/
|
625 |
(function($) {
|
@@ -680,6 +708,14 @@
|
|
680 |
}
|
681 |
return _super(event);
|
682 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
683 |
onKeyUp: function(_super, event){
|
684 |
var dir = {
|
685 |
37: 'previous', /* Left arrow */
|
@@ -780,7 +816,7 @@
|
|
780 |
(function( window, $, undefined ) {
|
781 |
'use strict';
|
782 |
|
783 |
-
var $body = $(
|
784 |
|
785 |
/**
|
786 |
* Checks href targets to see if a given anchor is linking to an image.
|
@@ -789,7 +825,7 @@
|
|
789 |
* @return mixed
|
790 |
*/
|
791 |
function testImages( index, element ) {
|
792 |
-
return /(png
|
793 |
$( element ).attr( 'href' ).toLowerCase().split( '?' )[0].split( '#' )[0]
|
794 |
);
|
795 |
}
|
@@ -803,7 +839,7 @@
|
|
803 |
* @return void
|
804 |
*/
|
805 |
function findImages() {
|
806 |
-
$( 'a[href]' ).filter( testImages ).attr( 'data-featherlight', 'image' );
|
807 |
}
|
808 |
|
809 |
/**
|
@@ -821,11 +857,9 @@
|
|
821 |
$galleryItems = $galleryObj.find( '.tiled-gallery-item a' );
|
822 |
}
|
823 |
|
824 |
-
if (
|
825 |
-
|
826 |
}
|
827 |
-
|
828 |
-
$galleryItems.featherlightGallery();
|
829 |
}
|
830 |
|
831 |
/**
|
@@ -835,13 +869,11 @@
|
|
835 |
* @return void
|
836 |
*/
|
837 |
function findGalleries() {
|
838 |
-
var $gallery = $( '.gallery, .tiled-gallery' );
|
839 |
|
840 |
-
if ( 0
|
841 |
-
|
842 |
}
|
843 |
-
|
844 |
-
$.each( $gallery, buildGalleries );
|
845 |
}
|
846 |
|
847 |
/**
|
1 |
/**
|
2 |
+
* jquery.detectSwipe v2.1.3
|
3 |
* jQuery Plugin to obtain touch gestures from iPhone, iPod Touch, iPad and Android
|
4 |
* http://github.com/marcandre/detect_swipe
|
5 |
* Based on touchwipe by Andreas Waltl, netCU Internetagentur (http://www.netcu.de)
|
6 |
*/
|
7 |
+
|
8 |
+
(function (factory) {
|
9 |
+
if (typeof define === 'function' && define.amd) {
|
10 |
+
// AMD. Register as an anonymous module.
|
11 |
+
define(['jquery'], factory);
|
12 |
+
} else if (typeof exports === 'object') {
|
13 |
+
// Node/CommonJS
|
14 |
+
module.exports = factory(require('jquery'));
|
15 |
+
} else {
|
16 |
+
// Browser globals
|
17 |
+
factory(jQuery);
|
18 |
+
}
|
19 |
+
}(function($) {
|
20 |
|
21 |
$.detectSwipe = {
|
22 |
+
version: '2.1.2',
|
23 |
enabled: 'ontouchstart' in document.documentElement,
|
24 |
preventDefault: true,
|
25 |
threshold: 20
|
47 |
dir = dx > 0 ? 'left' : 'right'
|
48 |
}
|
49 |
else if(Math.abs(dy) >= $.detectSwipe.threshold) {
|
50 |
+
dir = dy > 0 ? 'up' : 'down'
|
51 |
}
|
52 |
if(dir) {
|
53 |
onTouchEnd.call(this);
|
67 |
}
|
68 |
|
69 |
function setup() {
|
70 |
+
this.addEventListener && this.addEventListener('touchstart', onTouchStart, false);
|
71 |
}
|
72 |
|
73 |
function teardown() {
|
81 |
$(this).on('swipe', $.noop);
|
82 |
} };
|
83 |
});
|
84 |
+
}));
|
85 |
|
86 |
/**
|
87 |
* Featherlight - ultra slim jQuery lightbox
|
88 |
+
* Version 1.5.1 - http://noelboss.github.io/featherlight/
|
89 |
*
|
90 |
+
* Copyright 2016, Noël Raoul Bossart (http://www.noelboss.com)
|
91 |
* MIT Licensed.
|
92 |
**/
|
93 |
(function($) {
|
179 |
constructor: Featherlight,
|
180 |
/*** defaults ***/
|
181 |
/* extend featherlight with defaults and methods */
|
182 |
+
namespace: 'featherlight', /* Name of the events and css class prefix */
|
183 |
+
targetAttr: 'data-featherlight', /* Attribute of the triggered element that contains the selector to the lightbox content */
|
184 |
+
variant: null, /* Class that will be added to change look of the lightbox */
|
185 |
+
resetCss: false, /* Reset all css */
|
186 |
+
background: null, /* Custom DOM for the background, wrapper and the closebutton */
|
187 |
+
openTrigger: 'click', /* Event that triggers the lightbox */
|
188 |
+
closeTrigger: 'click', /* Event that triggers the closing of the lightbox */
|
189 |
+
filter: null, /* Selector to filter events. Think $(...).on('click', filter, eventHandler) */
|
190 |
+
root: 'body', /* Where to append featherlights */
|
191 |
+
openSpeed: 250, /* Duration of opening animation */
|
192 |
+
closeSpeed: 250, /* Duration of closing animation */
|
193 |
+
closeOnClick: 'background', /* Close lightbox on click ('background', 'anywhere' or false) */
|
194 |
+
closeOnEsc: true, /* Close lightbox when pressing esc */
|
195 |
+
closeIcon: '✕', /* Close icon */
|
196 |
+
loading: '', /* Content to show while initial content is loading */
|
197 |
+
persist: false, /* If set, the content will persist and will be shown again when opened again. 'shared' is a special value when binding multiple elements for them to share the same content */
|
198 |
+
otherClose: null, /* Selector for alternate close buttons (e.g. "a.close") */
|
199 |
+
beforeOpen: $.noop, /* Called before open. can return false to prevent opening of lightbox. Gets event as parameter, this contains all data */
|
200 |
+
beforeContent: $.noop, /* Called when content is loaded. Gets event as parameter, this contains all data */
|
201 |
+
beforeClose: $.noop, /* Called before close. can return false to prevent opening of lightbox. Gets event as parameter, this contains all data */
|
202 |
+
afterOpen: $.noop, /* Called after open. Gets event as parameter, this contains all data */
|
203 |
+
afterContent: $.noop, /* Called after content is ready and has been set. Gets event as parameter, this contains all data */
|
204 |
+
afterClose: $.noop, /* Called after close. Gets event as parameter, this contains all data */
|
205 |
+
onKeyUp: $.noop, /* Called on key up for the frontmost featherlight */
|
206 |
+
onResize: $.noop, /* Called after new content and when a window is resized */
|
207 |
+
type: null, /* Specify type of lightbox. If unset, it will check for the targetAttrs value. */
|
208 |
contentFilters: ['jquery', 'image', 'html', 'ajax', 'iframe', 'text'], /* List of content filters to use to determine the content */
|
209 |
|
210 |
/*** methods ***/
|
237 |
if( ('background' === self.closeOnClick && $target.is('.'+self.namespace))
|
238 |
|| 'anywhere' === self.closeOnClick
|
239 |
|| $target.closest(closeButtonSelector).length ){
|
240 |
+
self.close(event);
|
241 |
event.preventDefault();
|
|
|
242 |
}
|
243 |
});
|
244 |
|
314 |
position to any other items added to featherlight-content */
|
315 |
self.$instance.find('.'+self.namespace+'-inner')
|
316 |
.not($content) /* excluded new content, important if persisted */
|
317 |
+
.slice(1).remove().end() /* In the unexpected event where there are many inner elements, remove all but the first one */
|
318 |
.replaceWith($.contains(self.$instance[0], $content[0]) ? '' : $content);
|
319 |
|
320 |
self.$content = $content.addClass(self.namespace+'-inner');
|
381 |
return deferred.promise();
|
382 |
},
|
383 |
|
384 |
+
/* resizes the content so it fits in visible area and keeps the same aspect ratio.
|
385 |
+
Does nothing if either the width or the height is not specified.
|
386 |
+
Called automatically on window resize.
|
387 |
+
Override if you want different behavior. */
|
388 |
+
resize: function(w, h) {
|
389 |
+
if (w && h) {
|
390 |
+
/* Reset apparent image size first so container grows */
|
391 |
+
this.$content.css('width', '').css('height', '');
|
392 |
+
/* Calculate the worst ratio so that dimensions fit */
|
393 |
+
/* Note: -1 to avoid rounding errors */
|
394 |
+
var ratio = Math.max(
|
395 |
+
w / (parseInt(this.$content.parent().css('width'),10)-1),
|
396 |
+
h / (parseInt(this.$content.parent().css('height'),10)-1));
|
397 |
+
/* Resize content */
|
398 |
+
if (ratio > 1) {
|
399 |
+
ratio = h / Math.floor(h / ratio); /* Round ratio down so height calc works */
|
400 |
+
this.$content.css('width', '' + w / ratio + 'px').css('height', '' + h / ratio + 'px');
|
401 |
+
}
|
402 |
+
}
|
403 |
+
},
|
404 |
+
|
405 |
/* Utility function to chain callbacks
|
406 |
[Warning: guru-level]
|
407 |
Used be extensions that want to let users specify callbacks but
|
466 |
iframe: {
|
467 |
process: function(url) {
|
468 |
var deferred = new $.Deferred();
|
469 |
+
var $content = $('<iframe/>');
|
470 |
+
$content.hide()
|
471 |
.attr('src', url)
|
472 |
.css(structure(this, 'iframe'))
|
473 |
.on('load', function() { deferred.resolve($content.show()); })
|
499 |
if ($.inArray(name, Klass.functionAttributes) >= 0) { /* jshint -W054 */
|
500 |
val = new Function(val); /* jshint +W054 */
|
501 |
} else {
|
502 |
+
try { val = JSON.parse(val); }
|
503 |
catch(e) {}
|
504 |
}
|
505 |
config[name] = val;
|
575 |
return $.grep(opened, function(fl) { return fl instanceof klass; } );
|
576 |
},
|
577 |
|
578 |
+
close: function(event) {
|
579 |
var cur = this.current();
|
580 |
+
if(cur) { return cur.close(event); }
|
581 |
},
|
582 |
|
583 |
/* Does the auto binding on startup.
|
586 |
_onReady: function() {
|
587 |
var Klass = this;
|
588 |
if(Klass.autoBind){
|
589 |
+
/* Bind existing elements */
|
590 |
+
$(Klass.autoBind).each(function(){
|
|
|
|
|
|
|
|
|
591 |
Klass.attach($(this));
|
592 |
});
|
593 |
+
/* If a click propagates to the document level, then we have an item that was added later on */
|
594 |
+
$(document).on('click', Klass.autoBind, function(evt) {
|
595 |
+
if (evt.isDefaultPrevented() || evt.namespace === 'featherlight') {
|
596 |
+
return;
|
597 |
+
}
|
598 |
+
evt.preventDefault();
|
599 |
+
/* Bind featherlight */
|
600 |
+
Klass.attach($(evt.currentTarget));
|
601 |
+
/* Click again; this time our binding will catch it */
|
602 |
+
$(evt.target).trigger('click.featherlight');
|
603 |
+
});
|
604 |
}
|
605 |
},
|
606 |
|
611 |
onKeyUp: function(_super, event){
|
612 |
if(27 === event.keyCode) {
|
613 |
if (this.closeOnEsc) {
|
614 |
+
$.featherlight.close(event);
|
615 |
}
|
616 |
return false;
|
617 |
} else {
|
620 |
},
|
621 |
|
622 |
onResize: function(_super, event){
|
623 |
+
this.resize(this.$content.naturalWidth, this.$content.naturalHeight);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
624 |
return _super(event);
|
625 |
},
|
626 |
|
645 |
|
646 |
/**
|
647 |
* Featherlight Gallery – an extension for the ultra slim jQuery lightbox
|
648 |
+
* Version 1.5.1 - http://noelboss.github.io/featherlight/
|
649 |
*
|
650 |
+
* Copyright 2016, Noël Raoul Bossart (http://www.noelboss.com)
|
651 |
* MIT Licensed.
|
652 |
**/
|
653 |
(function($) {
|
708 |
}
|
709 |
return _super(event);
|
710 |
},
|
711 |
+
beforeContent: function(_super, event) {
|
712 |
+
var index = this.currentNavigation();
|
713 |
+
var len = this.slides().length;
|
714 |
+
this.$instance
|
715 |
+
.toggleClass(this.namespace+'-first-slide', index === 0)
|
716 |
+
.toggleClass(this.namespace+'-last-slide', index === len - 1);
|
717 |
+
return _super(event);
|
718 |
+
},
|
719 |
onKeyUp: function(_super, event){
|
720 |
var dir = {
|
721 |
37: 'previous', /* Left arrow */
|
816 |
(function( window, $, undefined ) {
|
817 |
'use strict';
|
818 |
|
819 |
+
var $body = $( document.body );
|
820 |
|
821 |
/**
|
822 |
* Checks href targets to see if a given anchor is linking to an image.
|
825 |
* @return mixed
|
826 |
*/
|
827 |
function testImages( index, element ) {
|
828 |
+
return /(.png|.jpg|.jpeg|.gif|.tiff|.bmp)$/.test(
|
829 |
$( element ).attr( 'href' ).toLowerCase().split( '?' )[0].split( '#' )[0]
|
830 |
);
|
831 |
}
|
839 |
* @return void
|
840 |
*/
|
841 |
function findImages() {
|
842 |
+
$body.find( 'a[href]' ).filter( testImages ).attr( 'data-featherlight', 'image' );
|
843 |
}
|
844 |
|
845 |
/**
|
857 |
$galleryItems = $galleryObj.find( '.tiled-gallery-item a' );
|
858 |
}
|
859 |
|
860 |
+
if ( $galleryItems.attr( 'data-featherlight' ) ) {
|
861 |
+
$galleryItems.featherlightGallery();
|
862 |
}
|
|
|
|
|
863 |
}
|
864 |
|
865 |
/**
|
869 |
* @return void
|
870 |
*/
|
871 |
function findGalleries() {
|
872 |
+
var $gallery = $body.find( '.gallery, .tiled-gallery' );
|
873 |
|
874 |
+
if ( 0 !== $gallery.length ) {
|
875 |
+
$.each( $gallery, buildGalleries );
|
876 |
}
|
|
|
|
|
877 |
}
|
878 |
|
879 |
/**
|
@@ -1 +1 @@
|
|
1 |
-
!function(a){function b(){this.removeEventListener("touchmove",c),this.removeEventListener("touchend",b),h=!1}function c(c){if(a.detectSwipe.preventDefault&&c.preventDefault(),h){var d,e=c.touches[0].pageX,i=c.touches[0].pageY,j=f-e,k=g-i;Math.abs(j)>=a.detectSwipe.threshold?d=j>0?"left":"right":Math.abs(k)>=a.detectSwipe.threshold&&(d=k>0?"down":"up"),d&&(b.call(this),a(this).trigger("swipe",d).trigger("swipe"+d))}}function d(a){1==a.touches.length&&(f=a.touches[0].pageX,g=a.touches[0].pageY,h=!0,this.addEventListener("touchmove",c,!1),this.addEventListener("touchend",b,!1))}function e(){this.addEventListener("touchstart",d,!1)}a.detectSwipe={version:"2.1.1",enabled:"ontouchstart"in document.documentElement,preventDefault:!0,threshold:20};var f,g,h=!1;a.event.special.swipe={setup:e},a.each(["left","up","down","right"],function(){a.event.special["swipe"+this]={setup:function(){a(this).on("swipe",a.noop)}}})}(jQuery),function(a){"use strict";function b(a,c){if(!(this instanceof b)){var d=new b(a,c);return d.open(),d}this.id=b.id++,this.setup(a,c),this.chainCallbacks(b._callbackChain)}if("undefined"==typeof a)return void("console"in window&&window.console.info("Too much lightness, Featherlight needs jQuery."));var c=[],d=function(b){return c=a.grep(c,function(a){return a!==b&&a.$instance.closest("body").length>0})},e=function(a,b){var c={},d=new RegExp("^"+b+"([A-Z])(.*)");for(var e in a){var f=e.match(d);if(f){var g=(f[1]+f[2].replace(/([A-Z])/g,"-$1")).toLowerCase();c[g]=a[e]}}return c},f={keyup:"onKeyUp",resize:"onResize"},g=function(c){a.each(b.opened().reverse(),function(){return c.isDefaultPrevented()||!1!==this[f[c.type]](c)?void 0:(c.preventDefault(),c.stopPropagation(),!1)})},h=function(c){if(c!==b._globalHandlerInstalled){b._globalHandlerInstalled=c;var d=a.map(f,function(a,c){return c+"."+b.prototype.namespace}).join(" ");a(window)[c?"on":"off"](d,g)}};b.prototype={constructor:b,namespace:"featherlight",targetAttr:"data-featherlight",variant:null,resetCss:!1,background:null,openTrigger:"click",closeTrigger:"click",filter:null,root:"body",openSpeed:250,closeSpeed:250,closeOnClick:"background",closeOnEsc:!0,closeIcon:"✕",loading:"",persist:!1,otherClose:null,beforeOpen:a.noop,beforeContent:a.noop,beforeClose:a.noop,afterOpen:a.noop,afterContent:a.noop,afterClose:a.noop,onKeyUp:a.noop,onResize:a.noop,type:null,contentFilters:["jquery","image","html","ajax","iframe","text"],setup:function(b,c){"object"!=typeof b||b instanceof a!=!1||c||(c=b,b=void 0);var d=a.extend(this,c,{target:b}),e=d.resetCss?d.namespace+"-reset":d.namespace,f=a(d.background||['<div class="'+e+"-loading "+e+'">','<div class="'+e+'-content">','<span class="'+e+"-close-icon "+d.namespace+'-close">',d.closeIcon,"</span>",'<div class="'+d.namespace+'-inner">'+d.loading+"</div>","</div>","</div>"].join("")),g="."+d.namespace+"-close"+(d.otherClose?","+d.otherClose:"");return d.$instance=f.clone().addClass(d.variant),d.$instance.on(d.closeTrigger+"."+d.namespace,function(b){var c=a(b.target);("background"===d.closeOnClick&&c.is("."+d.namespace)||"anywhere"===d.closeOnClick||c.closest(g).length)&&(b.preventDefault(),d.close())}),this},getContent:function(){if(this.persist!==!1&&this.$content)return this.$content;var b=this,c=this.constructor.contentFilters,d=function(a){return b.$currentTarget&&b.$currentTarget.attr(a)},e=d(b.targetAttr),f=b.target||e||"",g=c[b.type];if(!g&&f in c&&(g=c[f],f=b.target&&e),f=f||d("href")||"",!g)for(var h in c)b[h]&&(g=c[h],f=b[h]);if(!g){var i=f;if(f=null,a.each(b.contentFilters,function(){return g=c[this],g.test&&(f=g.test(i)),!f&&g.regex&&i.match&&i.match(g.regex)&&(f=i),!f}),!f)return"console"in window&&window.console.error("Featherlight: no content filter found "+(i?' for "'+i+'"':" (no target specified)")),!1}return g.process.call(b,f)},setContent:function(b){var c=this;return(b.is("iframe")||a("iframe",b).length>0)&&c.$instance.addClass(c.namespace+"-iframe"),c.$instance.removeClass(c.namespace+"-loading"),c.$instance.find("."+c.namespace+"-inner").not(b).slice(1).remove().end().replaceWith(a.contains(c.$instance[0],b[0])?"":b),c.$content=b.addClass(c.namespace+"-inner"),c},open:function(b){var d=this;if(d.$instance.hide().appendTo(d.root),!(b&&b.isDefaultPrevented()||d.beforeOpen(b)===!1)){b&&b.preventDefault();var e=d.getContent();if(e)return c.push(d),h(!0),d.$instance.fadeIn(d.openSpeed),d.beforeContent(b),a.when(e).always(function(a){d.setContent(a),d.afterContent(b)}).then(d.$instance.promise()).done(function(){d.afterOpen(b)})}return d.$instance.detach(),a.Deferred().reject().promise()},close:function(b){var c=this,e=a.Deferred();return c.beforeClose(b)===!1?e.reject():(0===d(c).length&&h(!1),c.$instance.fadeOut(c.closeSpeed,function(){c.$instance.detach(),c.afterClose(b),e.resolve()})),e.promise()},chainCallbacks:function(b){for(var c in b)this[c]=a.proxy(b[c],this,a.proxy(this[c],this))}},a.extend(b,{id:0,autoBind:"[data-featherlight]",defaults:b.prototype,contentFilters:{jquery:{regex:/^[#.]\w/,test:function(b){return b instanceof a&&b},process:function(b){return this.persist!==!1?a(b):a(b).clone(!0)}},image:{regex:/\.(png|jpg|jpeg|gif|tiff|bmp|svg)(\?\S*)?$/i,process:function(b){var c=this,d=a.Deferred(),e=new Image,f=a('<img src="'+b+'" alt="" class="'+c.namespace+'-image" />');return e.onload=function(){f.naturalWidth=e.width,f.naturalHeight=e.height,d.resolve(f)},e.onerror=function(){d.reject(f)},e.src=b,d.promise()}},html:{regex:/^\s*<[\w!][^<]*>/,process:function(b){return a(b)}},ajax:{regex:/./,process:function(b){var c=a.Deferred(),d=a("<div></div>").load(b,function(a,b){"error"!==b&&c.resolve(d.contents()),c.fail()});return c.promise()}},iframe:{process:function(b){var c=new a.Deferred,d=a("<iframe/>").hide().attr("src",b).css(e(this,"iframe")).on("load",function(){c.resolve(d.show())}).appendTo(this.$instance.find("."+this.namespace+"-content"));return c.promise()}},text:{process:function(b){return a("<div>",{text:b})}}},functionAttributes:["beforeOpen","afterOpen","beforeContent","afterContent","beforeClose","afterClose"],readElementConfig:function(b,c){var d=this,e=new RegExp("^data-"+c+"-(.*)"),f={};return b&&b.attributes&&a.each(b.attributes,function(){var b=this.name.match(e);if(b){var c=this.value,g=a.camelCase(b[1]);if(a.inArray(g,d.functionAttributes)>=0)c=new Function(c);else try{c=a.parseJSON(c)}catch(h){}f[g]=c}}),f},extend:function(b,c){var d=function(){this.constructor=b};return d.prototype=this.prototype,b.prototype=new d,b.__super__=this.prototype,a.extend(b,this,c),b.defaults=b.prototype,b},attach:function(b,c,d){var e=this;"object"!=typeof c||c instanceof a!=!1||d||(d=c,c=void 0),d=a.extend({},d);var f,g=d.namespace||e.defaults.namespace,h=a.extend({},e.defaults,e.readElementConfig(b[0],g),d);return b.on(h.openTrigger+"."+h.namespace,h.filter,function(g){var i=a.extend({$source:b,$currentTarget:a(this)},e.readElementConfig(b[0],h.namespace),e.readElementConfig(this,h.namespace),d),j=f||a(this).data("featherlight-persisted")||new e(c,i);"shared"===j.persist?f=j:j.persist!==!1&&a(this).data("featherlight-persisted",j),i.$currentTarget.blur(),j.open(g)}),b},current:function(){var a=this.opened();return a[a.length-1]||null},opened:function(){var b=this;return d(),a.grep(c,function(a){return a instanceof b})},close:function(){var a=this.current();return a?a.close():void 0},_onReady:function(){var b=this;b.autoBind&&(b.attach(a(document),{filter:b.autoBind}),a(b.autoBind).filter("[data-featherlight-filter]").each(function(){b.attach(a(this))}))},_callbackChain:{onKeyUp:function(a,b){return 27===b.keyCode?(this.closeOnEsc&&this.$instance.find("."+this.namespace+"-close:first").click(),!1):a(b)},onResize:function(a,b){if(this.$content.naturalWidth){var c=this.$content.naturalWidth,d=this.$content.naturalHeight;this.$content.css("width","").css("height","");var e=Math.max(c/parseInt(this.$content.parent().css("width"),10),d/parseInt(this.$content.parent().css("height"),10));e>1&&this.$content.css("width",""+c/e+"px").css("height",""+d/e+"px")}return a(b)},afterContent:function(a,b){var c=a(b);return this.onResize(b),c}}}),a.featherlight=b,a.fn.featherlight=function(a,c){return b.attach(this,a,c)},a(document).ready(function(){b._onReady()})}(jQuery),function(a){"use strict";function b(c,d){if(!(this instanceof b)){var e=new b(a.extend({$source:c,$currentTarget:c.first()},d));return e.open(),e}a.featherlight.apply(this,arguments),this.chainCallbacks(h)}var c=function(a){window.console&&window.console.warn&&window.console.warn("FeatherlightGallery: "+a)};if("undefined"==typeof a)return c("Too much lightness, Featherlight needs jQuery.");if(!a.featherlight)return c("Load the featherlight plugin before the gallery plugin");var d="ontouchstart"in window||window.DocumentTouch&&document instanceof DocumentTouch,e=a.event&&a.event.special.swipeleft&&a,f=window.Hammer&&function(a){var b=new window.Hammer.Manager(a[0]);return b.add(new window.Hammer.Swipe),b},g=d&&(e||f);d&&!g&&c("No compatible swipe library detected; one must be included before featherlightGallery for swipe motions to navigate the galleries.");var h={afterClose:function(a,b){var c=this;return c.$instance.off("next."+c.namespace+" previous."+c.namespace),c._swiper&&(c._swiper.off("swipeleft",c._swipeleft).off("swiperight",c._swiperight),c._swiper=null),a(b)},beforeOpen:function(a,b){var c=this;return c.$instance.on("next."+c.namespace+" previous."+c.namespace,function(a){var b="next"===a.type?1:-1;c.navigateTo(c.currentNavigation()+b)}),g?c._swiper=g(c.$instance).on("swipeleft",c._swipeleft=function(){c.$instance.trigger("next")}).on("swiperight",c._swiperight=function(){c.$instance.trigger("previous")}):c.$instance.find("."+c.namespace+"-content").append(c.createNavigation("previous")).append(c.createNavigation("next")),a(b)},onKeyUp:function(a,b){var c={37:"previous",39:"next"}[b.keyCode];return c?(this.$instance.trigger(c),!1):a(b)}};a.featherlight.extend(b,{autoBind:"[data-featherlight-gallery]"}),a.extend(b.prototype,{previousIcon:"◀",nextIcon:"▶",galleryFadeIn:100,galleryFadeOut:300,slides:function(){return this.filter?this.$source.find(this.filter):this.$source},images:function(){return c("images is deprecated, please use slides instead"),this.slides()},currentNavigation:function(){return this.slides().index(this.$currentTarget)},navigateTo:function(b){var c=this,d=c.slides(),e=d.length,f=c.$instance.find("."+c.namespace+"-inner");return b=(b%e+e)%e,c.$currentTarget=d.eq(b),c.beforeContent(),a.when(c.getContent(),f.fadeTo(c.galleryFadeOut,.2)).always(function(a){c.setContent(a),c.afterContent(),a.fadeTo(c.galleryFadeIn,1)})},createNavigation:function(b){var c=this;return a('<span title="'+b+'" class="'+this.namespace+"-"+b+'"><span>'+this[b+"Icon"]+"</span></span>").click(function(){a(this).trigger(b+"."+c.namespace)})}}),a.featherlightGallery=b,a.fn.featherlightGallery=function(a){return b.attach(this,a)},a(document).ready(function(){b._onReady()})}(jQuery),function(a,b,c){"use strict";function d(a,c){return/(png|jpg|jpeg|gif|tiff|bmp)$/.test(b(c).attr("href").toLowerCase().split("?")[0].split("#")[0])}function e(){b("a[href]").filter(d).attr("data-featherlight","image")}function f(a,c){var d=b(c),e=d.find(".gallery-item a");0===e.length&&(e=d.find(".tiled-gallery-item a")),e.attr("data-featherlight")&&e.featherlightGallery()}function g(){var a=b(".gallery, .tiled-gallery");0!==a.length&&b.each(a,f)}function h(){b.featherlight.prototype.afterContent=function(){var a=this.$instance,c=this.$currentTarget,d=c.parent(),e=d.find(".wp-caption-text"),f=c.parents(".gallery-item"),g=c.parents(".tiled-gallery-item");0!==f.length?e=f.find(".wp-caption-text"):0!==g.length&&(e=g.find(".tiled-gallery-caption")),a.find(".caption").remove(),0!==e.length&&b('<div class="caption">').text(e.text()).appendTo(a.find(".featherlight-content"))}}function i(){e(),g(),j.hasClass("wp-featherlight-captions")&&h()}var j=b("body");b(document).ready(function(){i()})}(this,jQuery);
|
1 |
+
!function(a){"function"==typeof define&&define.amd?define(["jquery"],a):"object"==typeof exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){function b(){this.removeEventListener("touchmove",c),this.removeEventListener("touchend",b),h=!1}function c(c){if(a.detectSwipe.preventDefault&&c.preventDefault(),h){var d,e=c.touches[0].pageX,i=c.touches[0].pageY,j=f-e,k=g-i;Math.abs(j)>=a.detectSwipe.threshold?d=j>0?"left":"right":Math.abs(k)>=a.detectSwipe.threshold&&(d=k>0?"up":"down"),d&&(b.call(this),a(this).trigger("swipe",d).trigger("swipe"+d))}}function d(a){1==a.touches.length&&(f=a.touches[0].pageX,g=a.touches[0].pageY,h=!0,this.addEventListener("touchmove",c,!1),this.addEventListener("touchend",b,!1))}function e(){this.addEventListener&&this.addEventListener("touchstart",d,!1)}a.detectSwipe={version:"2.1.2",enabled:"ontouchstart"in document.documentElement,preventDefault:!0,threshold:20};var f,g,h=!1;a.event.special.swipe={setup:e},a.each(["left","up","down","right"],function(){a.event.special["swipe"+this]={setup:function(){a(this).on("swipe",a.noop)}}})}),function(a){"use strict";function b(a,c){if(!(this instanceof b)){var d=new b(a,c);return d.open(),d}this.id=b.id++,this.setup(a,c),this.chainCallbacks(b._callbackChain)}if("undefined"==typeof a)return void("console"in window&&window.console.info("Too much lightness, Featherlight needs jQuery."));var c=[],d=function(b){return c=a.grep(c,function(a){return a!==b&&a.$instance.closest("body").length>0})},e=function(a,b){var c={},d=new RegExp("^"+b+"([A-Z])(.*)");for(var e in a){var f=e.match(d);if(f){var g=(f[1]+f[2].replace(/([A-Z])/g,"-$1")).toLowerCase();c[g]=a[e]}}return c},f={keyup:"onKeyUp",resize:"onResize"},g=function(c){a.each(b.opened().reverse(),function(){if(!c.isDefaultPrevented()&&!1===this[f[c.type]](c))return c.preventDefault(),c.stopPropagation(),!1})},h=function(c){if(c!==b._globalHandlerInstalled){b._globalHandlerInstalled=c;var d=a.map(f,function(a,c){return c+"."+b.prototype.namespace}).join(" ");a(window)[c?"on":"off"](d,g)}};b.prototype={constructor:b,namespace:"featherlight",targetAttr:"data-featherlight",variant:null,resetCss:!1,background:null,openTrigger:"click",closeTrigger:"click",filter:null,root:"body",openSpeed:250,closeSpeed:250,closeOnClick:"background",closeOnEsc:!0,closeIcon:"✕",loading:"",persist:!1,otherClose:null,beforeOpen:a.noop,beforeContent:a.noop,beforeClose:a.noop,afterOpen:a.noop,afterContent:a.noop,afterClose:a.noop,onKeyUp:a.noop,onResize:a.noop,type:null,contentFilters:["jquery","image","html","ajax","iframe","text"],setup:function(b,c){"object"!=typeof b||b instanceof a!=!1||c||(c=b,b=void 0);var d=a.extend(this,c,{target:b}),e=d.resetCss?d.namespace+"-reset":d.namespace,f=a(d.background||['<div class="'+e+"-loading "+e+'">','<div class="'+e+'-content">','<span class="'+e+"-close-icon "+d.namespace+'-close">',d.closeIcon,"</span>",'<div class="'+d.namespace+'-inner">'+d.loading+"</div>","</div>","</div>"].join("")),g="."+d.namespace+"-close"+(d.otherClose?","+d.otherClose:"");return d.$instance=f.clone().addClass(d.variant),d.$instance.on(d.closeTrigger+"."+d.namespace,function(b){var c=a(b.target);("background"===d.closeOnClick&&c.is("."+d.namespace)||"anywhere"===d.closeOnClick||c.closest(g).length)&&(d.close(b),b.preventDefault())}),this},getContent:function(){if(this.persist!==!1&&this.$content)return this.$content;var b=this,c=this.constructor.contentFilters,d=function(a){return b.$currentTarget&&b.$currentTarget.attr(a)},e=d(b.targetAttr),f=b.target||e||"",g=c[b.type];if(!g&&f in c&&(g=c[f],f=b.target&&e),f=f||d("href")||"",!g)for(var h in c)b[h]&&(g=c[h],f=b[h]);if(!g){var i=f;if(f=null,a.each(b.contentFilters,function(){return g=c[this],g.test&&(f=g.test(i)),!f&&g.regex&&i.match&&i.match(g.regex)&&(f=i),!f}),!f)return"console"in window&&window.console.error("Featherlight: no content filter found "+(i?' for "'+i+'"':" (no target specified)")),!1}return g.process.call(b,f)},setContent:function(b){var c=this;return(b.is("iframe")||a("iframe",b).length>0)&&c.$instance.addClass(c.namespace+"-iframe"),c.$instance.removeClass(c.namespace+"-loading"),c.$instance.find("."+c.namespace+"-inner").not(b).slice(1).remove().end().replaceWith(a.contains(c.$instance[0],b[0])?"":b),c.$content=b.addClass(c.namespace+"-inner"),c},open:function(b){var d=this;if(d.$instance.hide().appendTo(d.root),!(b&&b.isDefaultPrevented()||d.beforeOpen(b)===!1)){b&&b.preventDefault();var e=d.getContent();if(e)return c.push(d),h(!0),d.$instance.fadeIn(d.openSpeed),d.beforeContent(b),a.when(e).always(function(a){d.setContent(a),d.afterContent(b)}).then(d.$instance.promise()).done(function(){d.afterOpen(b)})}return d.$instance.detach(),a.Deferred().reject().promise()},close:function(b){var c=this,e=a.Deferred();return c.beforeClose(b)===!1?e.reject():(0===d(c).length&&h(!1),c.$instance.fadeOut(c.closeSpeed,function(){c.$instance.detach(),c.afterClose(b),e.resolve()})),e.promise()},resize:function(a,b){if(a&&b){this.$content.css("width","").css("height","");var c=Math.max(a/(parseInt(this.$content.parent().css("width"),10)-1),b/(parseInt(this.$content.parent().css("height"),10)-1));c>1&&(c=b/Math.floor(b/c),this.$content.css("width",""+a/c+"px").css("height",""+b/c+"px"))}},chainCallbacks:function(b){for(var c in b)this[c]=a.proxy(b[c],this,a.proxy(this[c],this))}},a.extend(b,{id:0,autoBind:"[data-featherlight]",defaults:b.prototype,contentFilters:{jquery:{regex:/^[#.]\w/,test:function(b){return b instanceof a&&b},process:function(b){return this.persist!==!1?a(b):a(b).clone(!0)}},image:{regex:/\.(png|jpg|jpeg|gif|tiff|bmp|svg)(\?\S*)?$/i,process:function(b){var c=this,d=a.Deferred(),e=new Image,f=a('<img src="'+b+'" alt="" class="'+c.namespace+'-image" />');return e.onload=function(){f.naturalWidth=e.width,f.naturalHeight=e.height,d.resolve(f)},e.onerror=function(){d.reject(f)},e.src=b,d.promise()}},html:{regex:/^\s*<[\w!][^<]*>/,process:function(b){return a(b)}},ajax:{regex:/./,process:function(b){var c=a.Deferred(),d=a("<div></div>").load(b,function(a,b){"error"!==b&&c.resolve(d.contents()),c.fail()});return c.promise()}},iframe:{process:function(b){var c=new a.Deferred,d=a("<iframe/>");return d.hide().attr("src",b).css(e(this,"iframe")).on("load",function(){c.resolve(d.show())}).appendTo(this.$instance.find("."+this.namespace+"-content")),c.promise()}},text:{process:function(b){return a("<div>",{text:b})}}},functionAttributes:["beforeOpen","afterOpen","beforeContent","afterContent","beforeClose","afterClose"],readElementConfig:function(b,c){var d=this,e=new RegExp("^data-"+c+"-(.*)"),f={};return b&&b.attributes&&a.each(b.attributes,function(){var b=this.name.match(e);if(b){var c=this.value,g=a.camelCase(b[1]);if(a.inArray(g,d.functionAttributes)>=0)c=new Function(c);else try{c=JSON.parse(c)}catch(h){}f[g]=c}}),f},extend:function(b,c){var d=function(){this.constructor=b};return d.prototype=this.prototype,b.prototype=new d,b.__super__=this.prototype,a.extend(b,this,c),b.defaults=b.prototype,b},attach:function(b,c,d){var e=this;"object"!=typeof c||c instanceof a!=!1||d||(d=c,c=void 0),d=a.extend({},d);var f,g=d.namespace||e.defaults.namespace,h=a.extend({},e.defaults,e.readElementConfig(b[0],g),d);return b.on(h.openTrigger+"."+h.namespace,h.filter,function(g){var i=a.extend({$source:b,$currentTarget:a(this)},e.readElementConfig(b[0],h.namespace),e.readElementConfig(this,h.namespace),d),j=f||a(this).data("featherlight-persisted")||new e(c,i);"shared"===j.persist?f=j:j.persist!==!1&&a(this).data("featherlight-persisted",j),i.$currentTarget.blur(),j.open(g)}),b},current:function(){var a=this.opened();return a[a.length-1]||null},opened:function(){var b=this;return d(),a.grep(c,function(a){return a instanceof b})},close:function(a){var b=this.current();if(b)return b.close(a)},_onReady:function(){var b=this;b.autoBind&&(a(b.autoBind).each(function(){b.attach(a(this))}),a(document).on("click",b.autoBind,function(c){c.isDefaultPrevented()||"featherlight"===c.namespace||(c.preventDefault(),b.attach(a(c.currentTarget)),a(c.target).trigger("click.featherlight"))}))},_callbackChain:{onKeyUp:function(b,c){return 27===c.keyCode?(this.closeOnEsc&&a.featherlight.close(c),!1):b(c)},onResize:function(a,b){return this.resize(this.$content.naturalWidth,this.$content.naturalHeight),a(b)},afterContent:function(a,b){var c=a(b);return this.onResize(b),c}}}),a.featherlight=b,a.fn.featherlight=function(a,c){return b.attach(this,a,c)},a(document).ready(function(){b._onReady()})}(jQuery),function(a){"use strict";function b(c,d){if(!(this instanceof b)){var e=new b(a.extend({$source:c,$currentTarget:c.first()},d));return e.open(),e}a.featherlight.apply(this,arguments),this.chainCallbacks(h)}var c=function(a){window.console&&window.console.warn&&window.console.warn("FeatherlightGallery: "+a)};if("undefined"==typeof a)return c("Too much lightness, Featherlight needs jQuery.");if(!a.featherlight)return c("Load the featherlight plugin before the gallery plugin");var d="ontouchstart"in window||window.DocumentTouch&&document instanceof DocumentTouch,e=a.event&&a.event.special.swipeleft&&a,f=window.Hammer&&function(a){var b=new window.Hammer.Manager(a[0]);return b.add(new window.Hammer.Swipe),b},g=d&&(e||f);d&&!g&&c("No compatible swipe library detected; one must be included before featherlightGallery for swipe motions to navigate the galleries.");var h={afterClose:function(a,b){var c=this;return c.$instance.off("next."+c.namespace+" previous."+c.namespace),c._swiper&&(c._swiper.off("swipeleft",c._swipeleft).off("swiperight",c._swiperight),c._swiper=null),a(b)},beforeOpen:function(a,b){var c=this;return c.$instance.on("next."+c.namespace+" previous."+c.namespace,function(a){var b="next"===a.type?1:-1;c.navigateTo(c.currentNavigation()+b)}),g?c._swiper=g(c.$instance).on("swipeleft",c._swipeleft=function(){c.$instance.trigger("next")}).on("swiperight",c._swiperight=function(){c.$instance.trigger("previous")}):c.$instance.find("."+c.namespace+"-content").append(c.createNavigation("previous")).append(c.createNavigation("next")),a(b)},beforeContent:function(a,b){var c=this.currentNavigation(),d=this.slides().length;return this.$instance.toggleClass(this.namespace+"-first-slide",0===c).toggleClass(this.namespace+"-last-slide",c===d-1),a(b)},onKeyUp:function(a,b){var c={37:"previous",39:"next"}[b.keyCode];return c?(this.$instance.trigger(c),!1):a(b)}};a.featherlight.extend(b,{autoBind:"[data-featherlight-gallery]"}),a.extend(b.prototype,{previousIcon:"◀",nextIcon:"▶",galleryFadeIn:100,galleryFadeOut:300,slides:function(){return this.filter?this.$source.find(this.filter):this.$source},images:function(){return c("images is deprecated, please use slides instead"),this.slides()},currentNavigation:function(){return this.slides().index(this.$currentTarget)},navigateTo:function(b){var c=this,d=c.slides(),e=d.length,f=c.$instance.find("."+c.namespace+"-inner");return b=(b%e+e)%e,c.$currentTarget=d.eq(b),c.beforeContent(),a.when(c.getContent(),f.fadeTo(c.galleryFadeOut,.2)).always(function(a){c.setContent(a),c.afterContent(),a.fadeTo(c.galleryFadeIn,1)})},createNavigation:function(b){var c=this;return a('<span title="'+b+'" class="'+this.namespace+"-"+b+'"><span>'+this[b+"Icon"]+"</span></span>").click(function(){a(this).trigger(b+"."+c.namespace)})}}),a.featherlightGallery=b,a.fn.featherlightGallery=function(a){return b.attach(this,a)},a(document).ready(function(){b._onReady()})}(jQuery),function(a,b,c){"use strict";function d(a,c){return/(.png|.jpg|.jpeg|.gif|.tiff|.bmp)$/.test(b(c).attr("href").toLowerCase().split("?")[0].split("#")[0])}function e(){j.find("a[href]").filter(d).attr("data-featherlight","image")}function f(a,c){var d=b(c),e=d.find(".gallery-item a");0===e.length&&(e=d.find(".tiled-gallery-item a")),e.attr("data-featherlight")&&e.featherlightGallery()}function g(){var a=j.find(".gallery, .tiled-gallery");0!==a.length&&b.each(a,f)}function h(){b.featherlight.prototype.afterContent=function(){var a=this.$instance,c=this.$currentTarget,d=c.parent(),e=d.find(".wp-caption-text"),f=c.parents(".gallery-item"),g=c.parents(".tiled-gallery-item");0!==f.length?e=f.find(".wp-caption-text"):0!==g.length&&(e=g.find(".tiled-gallery-caption")),a.find(".caption").remove(),0!==e.length&&b('<div class="caption">').text(e.text()).appendTo(a.find(".featherlight-content"))}}function i(){e(),g(),j.hasClass("wp-featherlight-captions")&&h()}var j=b(document.body);b(document).ready(function(){i()})}(this,jQuery);
|
Binary file
|
@@ -1,17 +1,17 @@
|
|
1 |
-
# Copyright (C)
|
2 |
# This file is distributed under the GPL-2.0+.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
-
"Project-Id-Version: WP Featherlight 0.
|
6 |
"Report-Msgid-Bugs-To: Robert Neu <translations@wpsitecare.com>\n"
|
7 |
-
"POT-Creation-Date:
|
8 |
"MIME-Version: 1.0\n"
|
9 |
"Content-Type: text/plain; charset=utf-8\n"
|
10 |
"Content-Transfer-Encoding: 8bit\n"
|
11 |
-
"PO-Revision-Date:
|
12 |
"Last-Translator: Robert Neu <translations@wpsitecare.com>\n"
|
13 |
"Language-Team: Robert Neu <translations@wpsitecare.com>\n"
|
14 |
-
"X-Generator: grunt-wp-i18n 0.5.
|
15 |
"X-Poedit-KeywordsList: "
|
16 |
"__;_e;_x:1,2c;_ex:1,2c;_n:1,2;_nx:1,2,4c;_n_noop:1,2;_nx_noop:1,2,3c;esc_"
|
17 |
"attr__;esc_html__;esc_attr_e;esc_html_e;esc_attr_x:1,2c;esc_html_x:1,2c;\n"
|
@@ -24,11 +24,7 @@ msgstr ""
|
|
24 |
"X-Poedit-Bookmarks: \n"
|
25 |
"X-Textdomain-Support: yes\n"
|
26 |
|
27 |
-
#: admin/
|
28 |
-
msgid "WP Featherlight Options"
|
29 |
-
msgstr ""
|
30 |
-
|
31 |
-
#: admin/templates/metabox-sidebar.php:15
|
32 |
msgid "Disable lightbox"
|
33 |
msgstr ""
|
34 |
|
@@ -37,7 +33,7 @@ msgid "WP Featherlight"
|
|
37 |
msgstr ""
|
38 |
|
39 |
#. Plugin URI of the plugin/theme
|
40 |
-
msgid "
|
41 |
msgstr ""
|
42 |
|
43 |
#. Description of the plugin/theme
|
@@ -49,5 +45,5 @@ msgid "WP Site Care"
|
|
49 |
msgstr ""
|
50 |
|
51 |
#. Author URI of the plugin/theme
|
52 |
-
msgid "
|
53 |
msgstr ""
|
1 |
+
# Copyright (C) 2016 WP Site Care
|
2 |
# This file is distributed under the GPL-2.0+.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
+
"Project-Id-Version: WP Featherlight 1.0.0\n"
|
6 |
"Report-Msgid-Bugs-To: Robert Neu <translations@wpsitecare.com>\n"
|
7 |
+
"POT-Creation-Date: 2016-11-11 01:43:30+00:00\n"
|
8 |
"MIME-Version: 1.0\n"
|
9 |
"Content-Type: text/plain; charset=utf-8\n"
|
10 |
"Content-Transfer-Encoding: 8bit\n"
|
11 |
+
"PO-Revision-Date: 2016-MO-DA HO:MI+ZONE\n"
|
12 |
"Last-Translator: Robert Neu <translations@wpsitecare.com>\n"
|
13 |
"Language-Team: Robert Neu <translations@wpsitecare.com>\n"
|
14 |
+
"X-Generator: grunt-wp-i18n 0.5.4\n"
|
15 |
"X-Poedit-KeywordsList: "
|
16 |
"__;_e;_x:1,2c;_ex:1,2c;_n:1,2;_nx:1,2,4c;_n_noop:1,2;_nx_noop:1,2,3c;esc_"
|
17 |
"attr__;esc_html__;esc_attr_e;esc_html_e;esc_attr_x:1,2c;esc_html_x:1,2c;\n"
|
24 |
"X-Poedit-Bookmarks: \n"
|
25 |
"X-Textdomain-Support: yes\n"
|
26 |
|
27 |
+
#: admin/views/meta-box.php:15
|
|
|
|
|
|
|
|
|
28 |
msgid "Disable lightbox"
|
29 |
msgstr ""
|
30 |
|
33 |
msgstr ""
|
34 |
|
35 |
#. Plugin URI of the plugin/theme
|
36 |
+
msgid "https://www.wpsitecare.com/wp-featherlight/"
|
37 |
msgstr ""
|
38 |
|
39 |
#. Description of the plugin/theme
|
45 |
msgstr ""
|
46 |
|
47 |
#. Author URI of the plugin/theme
|
48 |
+
msgid "https://www.wpsitecare.com"
|
49 |
msgstr ""
|
@@ -2,9 +2,9 @@
|
|
2 |
|
3 |
Contributors: fatmedia, wpsitecare
|
4 |
Tags: lightbox, jquery lightbox, jquery, gallery, image, lightbox images, image lightbox, lightbox gallery, lightbox image, lightbox popup, featherlight, photo gallery, popup image, popup images, popup lightbox, responsive lightbox, swipe, wordpress image lightbox, wordpress lightbox, wordpress slideshow lightbox, photography, images, minimal, responsive, photo, photos
|
5 |
-
Requires at least: 4.
|
6 |
-
Tested up to: 4.
|
7 |
-
Stable tag: 0.
|
8 |
License: GPL-2.0+
|
9 |
|
10 |
An ultra lightweight jQuery lightbox for WordPress images and galleries.
|
@@ -21,8 +21,6 @@ There are no settings for WP Featherlight, so you should be able to install it w
|
|
21 |
|
22 |
If you find a display problem, it may be related to your theme but please [open an support request](https://wordpress.org/support/plugin/wp-featherlight) about it so we can look into it. For more information about the Featherlight script itself, check out their [GitHub plugin page](http://noelboss.github.io/featherlight/).
|
23 |
|
24 |
-
WP Featherlight was built by <a rel="friend" href="http://www.wpsitecare.com">WordPress support</a> company WP Site Care. If you're interested in choosing the <a rel="friend" href="http://www.wpsitecare.com/best-wordpress-plugins/">best WordPress plugins</a> or need to find the fastest <a rel="friend" href="http://www.wpsitecare.com/performance-of-7-top-wordpress-hosting-companies-compared/">WordPress hosting</a> provider, check out our blog and subscribe for new articles every week!
|
25 |
-
|
26 |
= Developer Notes =
|
27 |
|
28 |
While there are no options in the plugin, there are some handy filters to modify the default behavior. As of `0.3.0` all images which use the default WordPress captions will also include a caption when the image is lightboxed. To disable this behavior, filter `wp_featherlight_captions` to false.
|
@@ -31,7 +29,7 @@ You can also disable inclusion of the CSS and JavaScript conditionally using fil
|
|
31 |
|
32 |
= Contributing =
|
33 |
|
34 |
-
If you'd like to submit code patches or contribute in any other way, please fork the plugin on GitHub
|
35 |
|
36 |
== Screenshots ==
|
37 |
|
@@ -39,53 +37,22 @@ If you'd like to submit code patches or contribute in any other way, please fork
|
|
39 |
|
40 |
== Changelog ==
|
41 |
|
42 |
-
= 0.
|
43 |
-
|
44 |
-
There are quite a few internal changes in the plugin for this release, plus some nice new features and improvements on the front-end. We've streamlined everything as much as possible and also added support for some languages other than English! Here's a breakdown of everything that's changed:
|
45 |
-
|
46 |
-
New Features
|
47 |
-
- Automatic captioning for WordPress images and gallery items (Including Jetpack Galleries)
|
48 |
-
- Spanish language translation
|
49 |
-
|
50 |
-
Enhancements
|
51 |
-
- Updated [Featherlight](https://github.com/noelboss/featherlight/) to `1.3.3`
|
52 |
-
- Improved gallery styles on desktop and mobile devices
|
53 |
-
- Streamlined overall styles
|
54 |
-
- Added SVG icons for more visual consistency across various platforms
|
55 |
-
- Simplified the text used in the admin metabox to ease translations (props @toscho)
|
56 |
-
|
57 |
-
Bug Fixes
|
58 |
-
- Improved handling of images when certain caching plugins are enabled
|
59 |
-
- Prevented gallery arrows from being hijacked by WP Emoji
|
60 |
-
- Fixed a bug which allowed multiple light boxes to be opened using keyboard commands
|
61 |
-
|
62 |
-
Developer Stuff
|
63 |
-
- Reduced overhead by loading language files only when needed (props @toscho)
|
64 |
-
- Improved the save routine for our admin metabox (props @toscho)
|
65 |
-
- Added a `wp_featherlight_captions` filter to control auto-captioning. Filter it to false to disable captions.
|
66 |
-
- Re-structured the plugin's internal code base and deprecated plugin constants
|
67 |
-
- Added Grunt and Bower the plugin to allow easier updates and releases in the future
|
68 |
-
|
69 |
-
Added Language Support
|
70 |
-
- German
|
71 |
-
- Spanish
|
72 |
-
- French
|
73 |
-
- Portuguese (Brazil)
|
74 |
-
- Spanish (Peru)
|
75 |
|
76 |
-
|
77 |
-
The primary feature in this release is the addition of a visual loader and the automatic lightboxing of external images. In prior versions, only images from the WordPress host domain were lightboxed automatically. This caused some problems with people using a CDN as the URLs were treated as external.
|
78 |
|
79 |
-
|
80 |
|
81 |
-
-
|
82 |
-
- Improved URL handling to match more image instances automatically
|
83 |
-
- Fixed a mistake in the textdomain path
|
84 |
-
- Improved admin metabox markup
|
85 |
-
- Fixed a typo in the main stylesheet's script handle
|
86 |
|
87 |
-
|
88 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
89 |
|
90 |
-
|
91 |
-
Initial release!
|
2 |
|
3 |
Contributors: fatmedia, wpsitecare
|
4 |
Tags: lightbox, jquery lightbox, jquery, gallery, image, lightbox images, image lightbox, lightbox gallery, lightbox image, lightbox popup, featherlight, photo gallery, popup image, popup images, popup lightbox, responsive lightbox, swipe, wordpress image lightbox, wordpress lightbox, wordpress slideshow lightbox, photography, images, minimal, responsive, photo, photos
|
5 |
+
Requires at least: 4.6
|
6 |
+
Tested up to: 4.6.1
|
7 |
+
Stable tag: 1.0.0
|
8 |
License: GPL-2.0+
|
9 |
|
10 |
An ultra lightweight jQuery lightbox for WordPress images and galleries.
|
21 |
|
22 |
If you find a display problem, it may be related to your theme but please [open an support request](https://wordpress.org/support/plugin/wp-featherlight) about it so we can look into it. For more information about the Featherlight script itself, check out their [GitHub plugin page](http://noelboss.github.io/featherlight/).
|
23 |
|
|
|
|
|
24 |
= Developer Notes =
|
25 |
|
26 |
While there are no options in the plugin, there are some handy filters to modify the default behavior. As of `0.3.0` all images which use the default WordPress captions will also include a caption when the image is lightboxed. To disable this behavior, filter `wp_featherlight_captions` to false.
|
29 |
|
30 |
= Contributing =
|
31 |
|
32 |
+
If you'd like to submit code patches or contribute in any other way, please [fork the plugin on GitHub](https://github.com/wpsitecare/wp-featherlight).
|
33 |
|
34 |
== Screenshots ==
|
35 |
|
37 |
|
38 |
== Changelog ==
|
39 |
|
40 |
+
= 1.0.0 =
|
41 |
+
Even though this is a major version change, this is primarily a maintenance release. The reason for the jump to 1.0.0 is because we've changed some code which could break backwards compatibility with custom extensions and integrations.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
42 |
|
43 |
+
If you're just using the plugin on your site and haven't customized it or paid anyone to customize it for you, you should be able to update without any issues.
|
|
|
44 |
|
45 |
+
If you're a developer and have written custom code extending the PHP side of WP Featherlight, be sure to test your code before updating.
|
46 |
|
47 |
+
Under the hood, we've [deprecated some internal methods](https://github.com/wpsitecare/wp-featherlight/search?utf8=%E2%9C%93&q=_deprecated_function) which could potentially break custom code which extends WP Featherlight. The changes are primarily limited to class initialization, so unless you were doing something specific to that, it's unlikely that you'll run into issues.
|
|
|
|
|
|
|
|
|
48 |
|
49 |
+
- Tweak: Improved transition between images within galleries
|
50 |
+
- Tweak: Moved our disable lightbox checkbox into the publish meta box to streamline the admin
|
51 |
+
- Tweak: Made styles more aggressive to ensure elements look consistent across different themes by default
|
52 |
+
- Fix: Reduced false positives for URLs that use image extensions but don't actually link to an image
|
53 |
+
- Dev: Updated [Featherlight](https://github.com/noelboss/featherlight/) to `1.5.1`
|
54 |
+
- Dev: Updated [jQuery Detect Swipe](http://github.com/marcandre/detect_swipe) to `2.1.3`
|
55 |
+
- Dev: Deprecated some internal methods
|
56 |
+
- Dev: Reorganized how classes are instantiated and plugin actions are fired
|
57 |
|
58 |
+
[View the full changelog on GitHub](https://github.com/wpsitecare/wp-featherlight/blob/master/CHANGELOG.md)
|
|
@@ -1,19 +1,23 @@
|
|
1 |
<?php
|
2 |
/**
|
3 |
* Plugin Name: WP Featherlight
|
4 |
-
* Plugin URI:
|
5 |
* Description: An ultra lightweight jQuery lightbox for WordPress images and galleries.
|
6 |
-
* Version: 0.
|
7 |
* Author: WP Site Care
|
8 |
-
* Author URI:
|
9 |
* License: GPL-2.0+
|
10 |
* License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
11 |
* Text Domain: wp-featherlight
|
12 |
* Domain Path: /languages
|
|
|
|
|
|
|
|
|
|
|
13 |
*/
|
14 |
|
15 |
-
|
16 |
-
defined( 'ABSPATH' ) || exit;
|
17 |
|
18 |
// Load the main plugin class.
|
19 |
require_once plugin_dir_path( __FILE__ ) . 'includes/class-plugin.php';
|
1 |
<?php
|
2 |
/**
|
3 |
* Plugin Name: WP Featherlight
|
4 |
+
* Plugin URI: https://www.wpsitecare.com/wp-featherlight/
|
5 |
* Description: An ultra lightweight jQuery lightbox for WordPress images and galleries.
|
6 |
+
* Version: 1.0.0
|
7 |
* Author: WP Site Care
|
8 |
+
* Author URI: https://www.wpsitecare.com
|
9 |
* License: GPL-2.0+
|
10 |
* License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
11 |
* Text Domain: wp-featherlight
|
12 |
* Domain Path: /languages
|
13 |
+
*
|
14 |
+
* @package WPFeatherlight
|
15 |
+
* @copyright Copyright (c) 2016, WP Site Care
|
16 |
+
* @license GPL-2.0+
|
17 |
+
* @since 0.1.0
|
18 |
*/
|
19 |
|
20 |
+
defined( 'WPINC' ) || die;
|
|
|
21 |
|
22 |
// Load the main plugin class.
|
23 |
require_once plugin_dir_path( __FILE__ ) . 'includes/class-plugin.php';
|