Version Description
- Date Updated : 2021-09-01
- Update : FooGallery client side 2.0.20
- Update : Updated FooGallery Help page in admin to match new branding
- Update : Updated internal promotions to match plans
- Fix : fixed bug in WP 5.8 when not all attachments showing in media modal
- Fix : Added custom CSS for 3 gallery templates, to avoid incorrect thumb widths with certain themes and SVG thumbnails.
- Fix : Added logic to generate unique ID's for the gallery container if the gallery is included more than once on a page.
- New : Added custom pagination theme
Download this release
Release Info
Developer | bradvin |
Plugin | FooGallery – Image Gallery WordPress Plugin |
Version | 2.1.18 |
Comparing to | |
See all releases |
Code changes from version 2.0.40 to 2.1.18
- README.txt +95 -38
- assets/foobot_small.png +0 -0
- assets/foogallery.jpg +0 -0
- assets/foogallery.png +0 -0
- assets/logo.png +0 -0
- css/admin-foogallery.css +64 -40
- css/admin-page-foogallery-help.css +95 -38
- extensions/default-templates/functions.php +1 -0
- extensions/default-templates/image-viewer/class-image-viewer-gallery-template.php +2 -2
- extensions/default-templates/shared/css/admin-foogallery.css +3 -0
- extensions/default-templates/shared/css/foogallery.css +125 -9
- extensions/default-templates/shared/css/foogallery.min.css +1 -1
- extensions/default-templates/shared/img/icons.svg +16 -0
- extensions/default-templates/shared/js/foogallery.js +104 -10
- extensions/default-templates/shared/js/foogallery.min.js +3 -3
- extensions/default-templates/simple-portfolio/class-simple-portfolio-gallery-template.php +2 -2
- foogallery.php +3 -10
- includes/admin/class-admin.php +3 -0
- includes/admin/class-gallery-metabox-settings-helper.php +10 -0
- includes/admin/class-pro-promotion.php +469 -138
- includes/admin/demo-content-galleries.php +1 -1
- includes/admin/view-help-getting-started.php +11 -1
- includes/admin/view-help-pro.php +172 -34
- includes/admin/view-help.php +12 -8
- includes/admin/view-system-info.php +1 -1
- includes/class-foogallery-attachment.php +7 -3
- includes/class-foogallery-paging.php +1 -0
- includes/class-foogallery.php +9 -0
- includes/compatibility/class-foobox-compatibility.php +1 -20
- includes/constants.php +5 -1
- includes/functions.php +112 -2
- includes/render-functions.php +24 -13
- includes/thumbs/default/class-foogallery-thumb-generator.php +23 -8
- js/admin-foogallery-edit.js +5 -0
- js/foogallery.admin.min.js +1 -1
README.txt
CHANGED
@@ -1,37 +1,38 @@
|
|
1 |
-
===
|
2 |
Contributors: bradvin, steveush, fooplugins
|
3 |
Donate link: https://fooplugins.com
|
4 |
Tags: gallery, image gallery, photo gallery, responsive gallery, wordpress gallery plugin, best gallery plugin, albums, media gallery, video gallery, lightbox
|
5 |
Requires at least: 4.6
|
6 |
Tested up to: 5.8
|
7 |
-
Stable tag: 2.
|
8 |
License: GPLv2 or later
|
9 |
License URI: https://www.gnu.org/licenses/gpl-2.0.html
|
10 |
|
11 |
-
|
12 |
|
13 |
== Description ==
|
14 |
|
15 |
= WordPress Gallery Plugin =
|
16 |
|
17 |
-
Make
|
18 |
|
19 |
-
FooGallery is an easy-to-use image gallery plugin, with stunning gallery layouts and a focus on
|
|
|
20 |
|
21 |
Live previews are available while creating an image gallery, and also within the Gutenberg block editor with our FooGallery Block.
|
22 |
|
23 |
FooGallery was built to be highly configurable and extendable for developers or freelancers.
|
24 |
|
25 |
-
That is why we think FooGallery is the best gallery plugin. After using it, we hope you will agree.
|
26 |
|
27 |
[Visit the FooGallery Wordpress Gallery Plugin Homepage](https://fooplugins.com/foogallery/)
|
28 |
|
29 |
-
=
|
30 |
|
31 |
A faster gallery now means a more favourable ranking in Google!
|
32 |
-
FooGallery has been specifically optimized to score better for Google's Core Web Vitals update in
|
33 |
We have focused on the speed of our javascript code, and also improved the visual stability of all gallery layouts.
|
34 |
-
This has led to dramatically better scores for the 3 key factors including:
|
35 |
|
36 |
* Largest Contentful Paint - galleries load and appear quicker for your visitors
|
37 |
* First Input Delay - you can interact with the gallery sooner
|
@@ -49,60 +50,93 @@ The following free features make FooGallery the **best gallery plugin** on the m
|
|
49 |
* Justified Gallery - [demo](https://fooplugins.com/foogallery/wordpress-justified-gallery/)
|
50 |
* Single Thumbnail Gallery - [demo](https://fooplugins.com/foogallery/wordpress-single-thumbnail-gallery/)
|
51 |
* Easy to customize!
|
52 |
-
*
|
53 |
-
*
|
54 |
-
*
|
55 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
56 |
* Albums built-in! (just activate the albums extension)
|
57 |
* Responsive album layout - [demo](https://fooplugins.com/foogallery/wordpress-album-gallery/)
|
58 |
* All-in-one Stack album - [demo](https://fooplugins.com/foogallery/wordpress-album-gallery/#all-in-one)
|
59 |
* Gutenberg ready (Gallery previews inside the new editor!)
|
60 |
-
*
|
61 |
-
* Simple dots pagination [demo](https://fooplugins.com/foogallery/gallery-pagination/)
|
62 |
-
* Live previews in admin
|
63 |
* Retina thumbnail support
|
64 |
* Gallery Widget
|
65 |
* Use built-in media library to manage images
|
66 |
* Drag n Drop reordering of images and galleries
|
67 |
* Custom CSS for both galleries and albums
|
68 |
* Copy to clipboard shortcodes
|
69 |
-
*
|
70 |
-
* Gallery picker to insert shortcodes
|
71 |
-
* Page usage metabox with one-click gallery page creation
|
72 |
* NextGen importer tool (albums and galleries and shortcodes)
|
73 |
* Multisite Support
|
74 |
|
75 |
= PRO Gallery Features =
|
76 |
|
77 |
-
|
|
|
|
|
|
|
|
|
|
|
78 |
* 3 more beautiful PRO responsive gallery templates:
|
79 |
* Polaroid gallery template - [demo](https://fooplugins.com/foogallery/wordpress-polaroid-gallery/)
|
80 |
* Grid gallery template - [demo](https://fooplugins.com/foogallery/wordpress-grid-gallery/)
|
81 |
* Slider gallery template - [demo](https://fooplugins.com/foogallery/wordpress-slider-gallery/)
|
|
|
|
|
|
|
|
|
|
|
|
|
82 |
* Video Support - [demo](https://fooplugins.com/foogallery/wordpress-video-gallery/)
|
83 |
* Import video from Youtube, Vimeo and others
|
84 |
* Self-hosted videos
|
85 |
-
*
|
86 |
-
*
|
87 |
-
*
|
88 |
-
*
|
89 |
* Dynamic Galleries (load images from other sources):
|
90 |
* Load from a folder on the server
|
91 |
* Load from a collection from Adobe Lightroom (using WP/LR Sync)
|
92 |
* Load all attachments with Media Tags
|
93 |
* Load all attachments with Media Categories
|
94 |
* Load from a folder in Real Media Library
|
95 |
-
* Load images from
|
96 |
-
|
97 |
-
*
|
98 |
-
*
|
99 |
-
*
|
100 |
-
*
|
101 |
-
*
|
102 |
-
* Animated Loaded Effects - [demo](https://fooplugins.com/foogallery/animated-loaded-effects/)
|
103 |
* Bulk Copy Gallery Settings - [more info](https://fooplugins.com/bulk-copy-foogallery-pro/)
|
104 |
* Deeplinking support for pages and filters
|
105 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
106 |
|
107 |
[See More Demos](https://fooplugins.com/foogallery/demos/)
|
108 |
|
@@ -136,9 +170,13 @@ FooGallery is a responsive gallery with built-in support for higher quality thum
|
|
136 |
|
137 |
**Video Gallery**
|
138 |
|
139 |
-
FooGallery PRO allows you to create a video gallery in seconds! Import from YouTube, Vimeo, Facebook, TED and Dailymotion, or import a self-hosted video from any online source (eg. S3 bucket).
|
140 |
You can also easily create mixed galleries with both images and videos!
|
141 |
|
|
|
|
|
|
|
|
|
142 |
**Albums Built In**
|
143 |
|
144 |
Albums are built in as an extension. Simply head over to the extensions page and activate the albums extension. A new menu item will appear that allows you to add albums just as easily as galleries.
|
@@ -212,7 +250,12 @@ Have you enabled retina support for your galleries? To enable retina support, ed
|
|
212 |
|
213 |
= Can I add videos to my galleries? =
|
214 |
|
215 |
-
Yes, video is supported in FooGallery PRO Expert!
|
|
|
|
|
|
|
|
|
|
|
216 |
|
217 |
= Do I need to install a separate plugin to show a lightbox? =
|
218 |
|
@@ -223,6 +266,14 @@ For the PRO version of FooGallery - No, we have built in a uniquely beautiful li
|
|
223 |
|
224 |
Simply go to the FooGallery extensions page and activate the Albums extension. If you do not see a button to activate the albums extension, reload the extensions list by clicking the reload button.
|
225 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
226 |
= How do I turn off all the PRO Promotions in the admin? =
|
227 |
|
228 |
Goto FooGallery Settings -> Advanced Tab and check "Disable PRO Promotions" and then save your settings.
|
@@ -245,10 +296,16 @@ Please update in order to for FooGallery to work in WP 5.5+!
|
|
245 |
|
246 |
== Changelog ==
|
247 |
|
248 |
-
= 2.
|
249 |
-
* Date Updated : 2021-
|
250 |
-
*
|
|
|
|
|
|
|
|
|
251 |
* Fix : Added logic to generate unique ID's for the gallery container if the gallery is included more than once on a page.
|
|
|
|
|
252 |
|
253 |
= 2.0.39 =
|
254 |
* Date Updated : 2021-06-12
|
1 |
+
=== Photo Gallery by FooGallery - Best Responsive Image Gallery ===
|
2 |
Contributors: bradvin, steveush, fooplugins
|
3 |
Donate link: https://fooplugins.com
|
4 |
Tags: gallery, image gallery, photo gallery, responsive gallery, wordpress gallery plugin, best gallery plugin, albums, media gallery, video gallery, lightbox
|
5 |
Requires at least: 4.6
|
6 |
Tested up to: 5.8
|
7 |
+
Stable tag: 2.1.18
|
8 |
License: GPLv2 or later
|
9 |
License URI: https://www.gnu.org/licenses/gpl-2.0.html
|
10 |
|
11 |
+
The best WordPress gallery plugin. Create stunning galleries in minutes, with advanced settings for complete customization and control.
|
12 |
|
13 |
== Description ==
|
14 |
|
15 |
= WordPress Gallery Plugin =
|
16 |
|
17 |
+
Make galleries in WordPress great again with FooGallery! Add a stunning gallery to your website in under 1 minute using our beautiful pre-built templates, or if you want more control, then take advantage of all our advanced settings to customsize your galleries to look exactly the way you want.
|
18 |
|
19 |
+
FooGallery is an easy-to-use image gallery plugin, with stunning pre-built gallery layouts and a focus on performance and SEO.
|
20 |
+
It is also responsive, retina-ready and supports lazy loading for lightning fast photo galleries.
|
21 |
|
22 |
Live previews are available while creating an image gallery, and also within the Gutenberg block editor with our FooGallery Block.
|
23 |
|
24 |
FooGallery was built to be highly configurable and extendable for developers or freelancers.
|
25 |
|
26 |
+
That is why we think FooGallery is the best WordPress gallery plugin. After using it, we hope you will agree.
|
27 |
|
28 |
[Visit the FooGallery Wordpress Gallery Plugin Homepage](https://fooplugins.com/foogallery/)
|
29 |
|
30 |
+
= Performance Updates for Google's Core Web Vitals =
|
31 |
|
32 |
A faster gallery now means a more favourable ranking in Google!
|
33 |
+
FooGallery has been specifically optimized to score better for Google's Core Web Vitals update in 2021.
|
34 |
We have focused on the speed of our javascript code, and also improved the visual stability of all gallery layouts.
|
35 |
+
This has led to dramatically better scores for the 3 key lighthouse factors including:
|
36 |
|
37 |
* Largest Contentful Paint - galleries load and appear quicker for your visitors
|
38 |
* First Input Delay - you can interact with the gallery sooner
|
50 |
* Justified Gallery - [demo](https://fooplugins.com/foogallery/wordpress-justified-gallery/)
|
51 |
* Single Thumbnail Gallery - [demo](https://fooplugins.com/foogallery/wordpress-single-thumbnail-gallery/)
|
52 |
* Easy to customize!
|
53 |
+
* Adjust thumbnail size, spacing & alignment
|
54 |
+
* Adjust border size, rounded corners, drop shadows, inner shadows
|
55 |
+
* Choose from a selection of loading icons
|
56 |
+
* Animated loaded effects - [demo](https://fooplugins.com/foogallery/animated-loaded-effects/)
|
57 |
+
* Awesome hover effects - adjust colors, scaling and icons
|
58 |
+
* Complete control over captions
|
59 |
+
* Focus on Performance
|
60 |
+
* Lazy Loading options
|
61 |
+
* Simple pagination [demo](https://fooplugins.com/foogallery/gallery-pagination/)
|
62 |
+
* Optimized code
|
63 |
+
* Reduced content layout shift
|
64 |
+
* Focus on SEO
|
65 |
+
* ALT and title attributes on all images
|
66 |
+
* Yoast SEO sitemap integration
|
67 |
+
* Rank Math SEO sitemap integration
|
68 |
+
* AIOSEO sitemap integration
|
69 |
* Albums built-in! (just activate the albums extension)
|
70 |
* Responsive album layout - [demo](https://fooplugins.com/foogallery/wordpress-album-gallery/)
|
71 |
* All-in-one Stack album - [demo](https://fooplugins.com/foogallery/wordpress-album-gallery/#all-in-one)
|
72 |
* Gutenberg ready (Gallery previews inside the new editor!)
|
73 |
+
* Live previews as you make changes!
|
|
|
|
|
74 |
* Retina thumbnail support
|
75 |
* Gallery Widget
|
76 |
* Use built-in media library to manage images
|
77 |
* Drag n Drop reordering of images and galleries
|
78 |
* Custom CSS for both galleries and albums
|
79 |
* Copy to clipboard shortcodes
|
80 |
+
* One-click gallery page creation
|
|
|
|
|
81 |
* NextGen importer tool (albums and galleries and shortcodes)
|
82 |
* Multisite Support
|
83 |
|
84 |
= PRO Gallery Features =
|
85 |
|
86 |
+
There are 3 PRO plans available for any budget. Get started with premium features from $19!
|
87 |
+
|
88 |
+
[PRO Starter](https://fooplugins.com/foogallery/#pro-starter-features) | [PRO Expert](https://fooplugins.com/foogallery/#pro-expert-features) | [PRO Commerce](https://fooplugins.com/foogallery/#pro-commerce-features)
|
89 |
+
|
90 |
+
**PRO Starter Features**
|
91 |
+
|
92 |
* 3 more beautiful PRO responsive gallery templates:
|
93 |
* Polaroid gallery template - [demo](https://fooplugins.com/foogallery/wordpress-polaroid-gallery/)
|
94 |
* Grid gallery template - [demo](https://fooplugins.com/foogallery/wordpress-grid-gallery/)
|
95 |
* Slider gallery template - [demo](https://fooplugins.com/foogallery/wordpress-slider-gallery/)
|
96 |
+
* PRO image and media lightbox built in! [demo](https://fooplugins.com/foogallery/foogallery-pro-lightbox/)
|
97 |
+
* 11 beautiful hover effect presets - [demo](https://fooplugins.com/foogallery/hover-presets/)
|
98 |
+
* 12 CSS thumbnail filters (Instagram) - [demo](https://fooplugins.com/foogallery/thumbnail-filters/)
|
99 |
+
|
100 |
+
**PRO Expert Features**
|
101 |
+
|
102 |
* Video Support - [demo](https://fooplugins.com/foogallery/wordpress-video-gallery/)
|
103 |
* Import video from Youtube, Vimeo and others
|
104 |
* Self-hosted videos
|
105 |
+
* Filtering
|
106 |
+
* Add filters using Media Tags or Categories - [demo](https://fooplugins.com/foogallery/wordpress-filtered-gallery/)
|
107 |
+
* Multi-level filtering for galleries [demo](https://fooplugins.com/foogallery/wordpress-filtered-gallery/#multi-level)
|
108 |
+
* Bulk media tags and category management for attachments
|
109 |
* Dynamic Galleries (load images from other sources):
|
110 |
* Load from a folder on the server
|
111 |
* Load from a collection from Adobe Lightroom (using WP/LR Sync)
|
112 |
* Load all attachments with Media Tags
|
113 |
* Load all attachments with Media Categories
|
114 |
* Load from a folder in Real Media Library
|
115 |
+
* Load featured images from a post/page/custom post type - [demo](https://fooplugins.com/foogallery/post-query-gallery/)
|
116 |
+
* Advanced Pagination
|
117 |
+
* Numbered pagination - [demo](https://fooplugins.com/foogallery/gallery-pagination/#numbered)
|
118 |
+
* "Load More" pagination - [demo](https://fooplugins.com/foogallery/gallery-pagination/#load-more)
|
119 |
+
* Infinite scroll image gallery - [demo](https://fooplugins.com/foogallery/gallery-pagination/#infinite-scroll)
|
120 |
+
* Advanced Custom Captions - [demo](https://fooplugins.com/foogallery/custom-captions-wordpress-gallery/)
|
121 |
+
* EXIF metadata gallery - [demo](https://fooplugins.com/foogallery/exif-data-foogallery/)
|
|
|
122 |
* Bulk Copy Gallery Settings - [more info](https://fooplugins.com/bulk-copy-foogallery-pro/)
|
123 |
* Deeplinking support for pages and filters
|
124 |
+
|
125 |
+
**PRO Commerce Features**
|
126 |
+
|
127 |
+
* Image Protection
|
128 |
+
* Photo watermarking - [demo](https://fooplugins.com/foogallery/photo-watermark/)
|
129 |
+
* No right-click protection - [demo](https://fooplugins.com/foogallery/photo-watermark/)
|
130 |
+
* Deep WooCommerce integration - [demo](https://fooplugins.com/foogallery/woocommerce-integration/#product-gallery)
|
131 |
+
* Create a dynamic gallery from your WooCommerce products in seconds!
|
132 |
+
* Filter using WooCommerce product categories
|
133 |
+
* Show sales ribbons for products on sale
|
134 |
+
* Add-to-cart buttons on thumbnails
|
135 |
+
* Support for product variations
|
136 |
+
* Show product details (including variations) in Lightbox
|
137 |
+
* Sell your images online - [demo](https://footest.tastewp.com/)
|
138 |
+
* Link all your gallery items to a single master product
|
139 |
+
* Supports variations
|
140 |
|
141 |
[See More Demos](https://fooplugins.com/foogallery/demos/)
|
142 |
|
170 |
|
171 |
**Video Gallery**
|
172 |
|
173 |
+
FooGallery PRO Expert allows you to create a video gallery in seconds! Import from YouTube, Vimeo, Facebook, TED and Dailymotion, or import a self-hosted video from any online source (eg. S3 bucket).
|
174 |
You can also easily create mixed galleries with both images and videos!
|
175 |
|
176 |
+
**WooCommerce**
|
177 |
+
|
178 |
+
Sell your photographs online with our full WooCommerce integration, available in PRO Commerce. You can either create a dyanmic gallery from your existing products, or you can sell images in a gallery by linking them to a single master product. With full support for variations. Highlight products for sale with ribbons. Add call-to-action buttons to your items, for example AJAX Add to Cart buttons.
|
179 |
+
|
180 |
**Albums Built In**
|
181 |
|
182 |
Albums are built in as an extension. Simply head over to the extensions page and activate the albums extension. A new menu item will appear that allows you to add albums just as easily as galleries.
|
250 |
|
251 |
= Can I add videos to my galleries? =
|
252 |
|
253 |
+
Yes, video is supported in [FooGallery PRO Expert](https://fooplugins.com/foogallery/#pro-expert-features)!
|
254 |
+
|
255 |
+
= Can I sell photographs from a gallery? =
|
256 |
+
|
257 |
+
Yes, that is why we built [FooGallery PRO Commerce](https://fooplugins.com/foogallery/#pro-commerce-features)!
|
258 |
+
You can choose to create a gallery based of your products, or you can link all images in a gallery to a master product. This allows you complete control over how you want to run your image store and how they are sold on your website.
|
259 |
|
260 |
= Do I need to install a separate plugin to show a lightbox? =
|
261 |
|
266 |
|
267 |
Simply go to the FooGallery extensions page and activate the Albums extension. If you do not see a button to activate the albums extension, reload the extensions list by clicking the reload button.
|
268 |
|
269 |
+
= Can I add a watermark to my images? =
|
270 |
+
|
271 |
+
Yes, our PRO Commerce plan includes image watermarking.
|
272 |
+
|
273 |
+
= Can I add external links to items in the gallery? =
|
274 |
+
|
275 |
+
Yes, you can link to any external website by choosing "Custom URL" for the Thumbnail Link setting. You also then need to set a custom URL for the items in your gallery, which is done by editing the attachment.
|
276 |
+
|
277 |
= How do I turn off all the PRO Promotions in the admin? =
|
278 |
|
279 |
Goto FooGallery Settings -> Advanced Tab and check "Disable PRO Promotions" and then save your settings.
|
296 |
|
297 |
== Changelog ==
|
298 |
|
299 |
+
= 2.1.18 =
|
300 |
+
* Date Updated : 2021-09-01
|
301 |
+
* Update : FooGallery client side 2.0.20
|
302 |
+
* Update : Updated FooGallery Help page in admin to match new branding
|
303 |
+
* Update : Updated internal promotions to match plans
|
304 |
+
* Fix : fixed bug in WP 5.8 when not all attachments showing in media modal
|
305 |
+
* Fix : Added custom CSS for 3 gallery templates, to avoid incorrect thumb widths with certain themes and SVG thumbnails.
|
306 |
* Fix : Added logic to generate unique ID's for the gallery container if the gallery is included more than once on a page.
|
307 |
+
* New : Added custom pagination theme
|
308 |
+
|
309 |
|
310 |
= 2.0.39 =
|
311 |
* Date Updated : 2021-06-12
|
assets/foobot_small.png
DELETED
Binary file
|
assets/foogallery.jpg
ADDED
Binary file
|
assets/foogallery.png
DELETED
Binary file
|
assets/logo.png
CHANGED
Binary file
|
css/admin-foogallery.css
CHANGED
@@ -291,6 +291,10 @@ tr.foogallery_template_field[data-foogallery-hidden] {
|
|
291 |
display: none;
|
292 |
}
|
293 |
|
|
|
|
|
|
|
|
|
294 |
.foogallery_template_field_type-promo .foogallery-promo {
|
295 |
position: relative;
|
296 |
display: block;
|
@@ -305,6 +309,16 @@ tr.foogallery_template_field[data-foogallery-hidden] {
|
|
305 |
box-shadow: 0 1px 1px 0 rgba(0, 0, 0, .1);
|
306 |
}
|
307 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
308 |
.foogallery_template_field_type-promo .foogallery-promo:before {
|
309 |
/* content: "\f313"; award */
|
310 |
content: "\f155"; /* star */
|
@@ -320,6 +334,14 @@ tr.foogallery_template_field[data-foogallery-hidden] {
|
|
320 |
height: 1em;
|
321 |
}
|
322 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
323 |
#post-body.columns-2 #postbox-container-1 .foogallery-promo {
|
324 |
padding-left: 11px;
|
325 |
margin-left: 5px;
|
@@ -332,6 +354,32 @@ tr.foogallery_template_field[data-foogallery-hidden] {
|
|
332 |
.foogallery_template_field_type-promo .foogallery-promo .button-primary {
|
333 |
background: #1d7b30;
|
334 |
border-color: #1d7b30;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
335 |
}
|
336 |
|
337 |
.foogallery_template_field_promo th .dashicons {
|
@@ -346,6 +394,22 @@ tr.foogallery_template_field[data-foogallery-hidden] {
|
|
346 |
padding-left: 2px;
|
347 |
}
|
348 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
349 |
/** <gallery settings styling overrides> **/
|
350 |
|
351 |
.foogallery-metabox-settings {
|
@@ -581,46 +645,6 @@ button[data-balloon]{overflow:visible}[data-balloon]{position:relative}[data-bal
|
|
581 |
margin: 0;
|
582 |
}
|
583 |
|
584 |
-
.media-modal .attachments-browser .media-toolbar {
|
585 |
-
right: 500px;
|
586 |
-
}
|
587 |
-
.media-modal .attachments {
|
588 |
-
right: 500px;
|
589 |
-
}
|
590 |
-
.media-modal .media-sidebar {
|
591 |
-
width: 467px;
|
592 |
-
}
|
593 |
-
|
594 |
-
.rtl .media-modal .attachments-browser .media-toolbar {
|
595 |
-
left: 500px;
|
596 |
-
right: 0;
|
597 |
-
}
|
598 |
-
.rtl .media-modal .attachments {
|
599 |
-
left: 500px;
|
600 |
-
right: 0;
|
601 |
-
}
|
602 |
-
|
603 |
-
@media (max-width: 900px) {
|
604 |
-
.media-modal .attachments-browser .media-toolbar {
|
605 |
-
right: 300px;
|
606 |
-
}
|
607 |
-
.media-modal .attachments {
|
608 |
-
right: 300px;
|
609 |
-
}
|
610 |
-
.media-modal .media-sidebar {
|
611 |
-
width: 267px;
|
612 |
-
}
|
613 |
-
|
614 |
-
.rtl .media-modal .attachments-browser .media-toolbar {
|
615 |
-
left: 300px;
|
616 |
-
right: 0;
|
617 |
-
}
|
618 |
-
.rtl .media-modal .attachments {
|
619 |
-
left: 300px;
|
620 |
-
right: 0;
|
621 |
-
}
|
622 |
-
}
|
623 |
-
|
624 |
.foogallery-attachments-list {
|
625 |
max-height: 486px;
|
626 |
/*max-height: 324px;*/
|
291 |
display: none;
|
292 |
}
|
293 |
|
294 |
+
tr.foogallery_template_field[data-foogallery-invisible] {
|
295 |
+
display: none;
|
296 |
+
}
|
297 |
+
|
298 |
.foogallery_template_field_type-promo .foogallery-promo {
|
299 |
position: relative;
|
300 |
display: block;
|
309 |
box-shadow: 0 1px 1px 0 rgba(0, 0, 0, .1);
|
310 |
}
|
311 |
|
312 |
+
.foogallery_template_field_type-promo.foogallery_promo_prostarter .foogallery-promo {
|
313 |
+
border-color: #3397C1;
|
314 |
+
background-color: #f6fffe;
|
315 |
+
}
|
316 |
+
|
317 |
+
.foogallery_template_field_type-promo.foogallery_promo_commerce .foogallery-promo {
|
318 |
+
border-color: #B0459D;
|
319 |
+
background-color: #fdf6ff;
|
320 |
+
}
|
321 |
+
|
322 |
.foogallery_template_field_type-promo .foogallery-promo:before {
|
323 |
/* content: "\f313"; award */
|
324 |
content: "\f155"; /* star */
|
334 |
height: 1em;
|
335 |
}
|
336 |
|
337 |
+
.foogallery_template_field_type-promo.foogallery_promo_prostarter .foogallery-promo:before {
|
338 |
+
color: #3397C1;
|
339 |
+
}
|
340 |
+
|
341 |
+
.foogallery_template_field_type-promo.foogallery_promo_commerce .foogallery-promo:before {
|
342 |
+
color: #B0459D;
|
343 |
+
}
|
344 |
+
|
345 |
#post-body.columns-2 #postbox-container-1 .foogallery-promo {
|
346 |
padding-left: 11px;
|
347 |
margin-left: 5px;
|
354 |
.foogallery_template_field_type-promo .foogallery-promo .button-primary {
|
355 |
background: #1d7b30;
|
356 |
border-color: #1d7b30;
|
357 |
+
margin-right: 10px;
|
358 |
+
}
|
359 |
+
|
360 |
+
.foogallery_template_field_type-promo .foogallery-promo .button-secondary {
|
361 |
+
border-color: #1d7b30;
|
362 |
+
color: #1d7b30;
|
363 |
+
}
|
364 |
+
|
365 |
+
.foogallery_template_field_type-promo.foogallery_promo_prostarter .foogallery-promo .button-primary {
|
366 |
+
background: #3397C1;
|
367 |
+
border-color: #3397C1;
|
368 |
+
}
|
369 |
+
|
370 |
+
.foogallery_template_field_type-promo.foogallery_promo_prostarter .foogallery-promo .button-secondary {
|
371 |
+
border-color: #3397C1;
|
372 |
+
color: #3397C1;
|
373 |
+
}
|
374 |
+
|
375 |
+
.foogallery_template_field_type-promo.foogallery_promo_commerce .foogallery-promo .button-primary {
|
376 |
+
background: #B0459D;
|
377 |
+
border-color: #B0459D;
|
378 |
+
}
|
379 |
+
|
380 |
+
.foogallery_template_field_type-promo.foogallery_promo_commerce .foogallery-promo .button-secondary {
|
381 |
+
border-color: #B0459D;
|
382 |
+
color: #B0459D;
|
383 |
}
|
384 |
|
385 |
.foogallery_template_field_promo th .dashicons {
|
394 |
padding-left: 2px;
|
395 |
}
|
396 |
|
397 |
+
.foogallery_metabox_field-radio label.foogallery-promo-prostarter i {
|
398 |
+
font: 400 15px/1 dashicons !important;
|
399 |
+
speak: none;
|
400 |
+
color: #3397C1;
|
401 |
+
vertical-align: inherit;
|
402 |
+
padding-left: 2px;
|
403 |
+
}
|
404 |
+
|
405 |
+
.foogallery_metabox_field-radio label.foogallery_promo_commerce i {
|
406 |
+
font: 400 15px/1 dashicons !important;
|
407 |
+
speak: none;
|
408 |
+
color: #B0459D;
|
409 |
+
vertical-align: inherit;
|
410 |
+
padding-left: 2px;
|
411 |
+
}
|
412 |
+
|
413 |
/** <gallery settings styling overrides> **/
|
414 |
|
415 |
.foogallery-metabox-settings {
|
645 |
margin: 0;
|
646 |
}
|
647 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
648 |
.foogallery-attachments-list {
|
649 |
max-height: 486px;
|
650 |
/*max-height: 324px;*/
|
css/admin-page-foogallery-help.css
CHANGED
@@ -25,7 +25,7 @@ body {
|
|
25 |
max-width: 1000px;
|
26 |
margin: 24px auto;
|
27 |
clear: both;
|
28 |
-
background-color: #
|
29 |
border-radius: 20px;
|
30 |
color: #ffffff;
|
31 |
font-size: 14px;
|
@@ -90,7 +90,7 @@ body {
|
|
90 |
}
|
91 |
.foogallery-admin-help-ribbon span {
|
92 |
font-size: 10px;
|
93 |
-
font-weight:
|
94 |
color: #2b2400;
|
95 |
text-transform: uppercase;
|
96 |
text-align: center;
|
@@ -98,7 +98,7 @@ body {
|
|
98 |
transform: rotate(45deg);
|
99 |
width: 100px;
|
100 |
display: block;
|
101 |
-
background: #
|
102 |
box-shadow: 0 3px 10px -5px rgba(0, 0, 0, 1);
|
103 |
position: absolute;
|
104 |
top: 19px; right: -21px;
|
@@ -109,10 +109,10 @@ body {
|
|
109 |
left: 0;
|
110 |
top: 100%;
|
111 |
z-index: -1;
|
112 |
-
border-left: 3px solid #
|
113 |
border-right: 3px solid transparent;
|
114 |
border-bottom: 3px solid transparent;
|
115 |
-
border-top: 3px solid #
|
116 |
}
|
117 |
.foogallery-admin-help-ribbon span::after {
|
118 |
content: "";
|
@@ -121,9 +121,9 @@ body {
|
|
121 |
top: 100%;
|
122 |
z-index: -1;
|
123 |
border-left: 3px solid transparent;
|
124 |
-
border-right: 3px solid #
|
125 |
border-bottom: 3px solid transparent;
|
126 |
-
border-top: 3px solid #
|
127 |
}
|
128 |
|
129 |
.foogallery-admin-help nav {
|
@@ -137,6 +137,9 @@ body {
|
|
137 |
justify-content: stretch;
|
138 |
align-items: stretch;
|
139 |
flex-wrap: nowrap;
|
|
|
|
|
|
|
140 |
}
|
141 |
|
142 |
.foogallery-admin-help nav a {
|
@@ -146,9 +149,9 @@ body {
|
|
146 |
padding: 24px 32px 18px 32px;
|
147 |
font-size: 1.3em;
|
148 |
line-height: 1.4;
|
149 |
-
border
|
150 |
-
border-
|
151 |
-
border-
|
152 |
background: transparent;
|
153 |
color: inherit;
|
154 |
text-decoration: none;
|
@@ -158,9 +161,12 @@ body {
|
|
158 |
}
|
159 |
|
160 |
.foogallery-admin-help nav a.foogallery-admin-help-tab-active {
|
161 |
-
background-color: #
|
162 |
color: #ffffff;
|
163 |
border-color: #ffffff;
|
|
|
|
|
|
|
164 |
}
|
165 |
|
166 |
.fgah-feature {
|
@@ -170,6 +176,7 @@ body {
|
|
170 |
margin: 0;
|
171 |
padding: 16px;
|
172 |
font-size: 14px;
|
|
|
173 |
}
|
174 |
.fgah-feature:nth-child(odd) {
|
175 |
background-color: #2c3338;
|
@@ -270,24 +277,81 @@ body {
|
|
270 |
margin: 32px 0 16px 0;
|
271 |
}
|
272 |
|
273 |
-
.fgah-feature-pro
|
|
|
|
|
274 |
|
|
|
|
|
275 |
}
|
276 |
|
277 |
.fgah-feature-pro > div > dl > dt::before {
|
278 |
-
content: "
|
|
|
279 |
display: inline-block;
|
280 |
-
|
281 |
-
|
282 |
-
|
283 |
-
line-height: 1;
|
284 |
-
width: 1em;
|
285 |
-
height: 1em;
|
286 |
-
padding: 0.14em;
|
287 |
text-align: center;
|
288 |
-
|
289 |
-
|
290 |
-
border:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
291 |
}
|
292 |
|
293 |
.fgah-help-list {
|
@@ -304,7 +368,7 @@ body {
|
|
304 |
.fgah-help-list li::before {
|
305 |
content: "\003F";
|
306 |
display: inline-block;
|
307 |
-
background-color: #
|
308 |
color: #FFFFFF;
|
309 |
border-radius: 50%;
|
310 |
line-height: 1;
|
@@ -348,7 +412,7 @@ body {
|
|
348 |
|
349 |
.foogallery-admin-help-button {
|
350 |
position: relative;
|
351 |
-
background-color: #
|
352 |
color: #ffffff !important;
|
353 |
padding: 10px 20px;
|
354 |
font-size: 1em;
|
@@ -366,16 +430,16 @@ body {
|
|
366 |
}
|
367 |
|
368 |
.foogallery-admin-help-button-active {
|
369 |
-
background-color: #
|
370 |
}
|
371 |
|
372 |
.foogallery-admin-help-button-cta {
|
373 |
position: relative;
|
374 |
-
background-color: #
|
375 |
color: #ffffff !important;
|
376 |
padding: 12px 36px;
|
377 |
font-size: 1.3em;
|
378 |
-
border-radius:
|
379 |
text-decoration: none;
|
380 |
font-weight: 600;
|
381 |
display: inline-block;
|
@@ -391,7 +455,7 @@ body {
|
|
391 |
|
392 |
.foogallery-admin-help-button-cta:hover,
|
393 |
.foogallery-admin-help-button-cta:focus {
|
394 |
-
background-color: #
|
395 |
}
|
396 |
|
397 |
.foogallery-admin-help-button-cta.foogallery-admin-help-loading {
|
@@ -400,9 +464,9 @@ body {
|
|
400 |
}
|
401 |
|
402 |
.foogallery-admin-help-button-cta .progress {
|
403 |
-
border-radius:
|
404 |
width: 0;
|
405 |
-
background: #
|
406 |
opacity: 0;
|
407 |
transition: all 0.3s ease;
|
408 |
position: absolute;
|
@@ -495,14 +559,7 @@ body {
|
|
495 |
|
496 |
|
497 |
@media (hover: hover){
|
498 |
-
|
499 |
.foogallery-admin-help a:hover {
|
500 |
color: #0097de;
|
501 |
}
|
502 |
-
.foogallery-admin-help nav a:hover {
|
503 |
-
background-color: #2271b1;
|
504 |
-
color: #ffffff;
|
505 |
-
border-width: 0;
|
506 |
-
}
|
507 |
-
|
508 |
}
|
25 |
max-width: 1000px;
|
26 |
margin: 24px auto;
|
27 |
clear: both;
|
28 |
+
background-color: #101517;
|
29 |
border-radius: 20px;
|
30 |
color: #ffffff;
|
31 |
font-size: 14px;
|
90 |
}
|
91 |
.foogallery-admin-help-ribbon span {
|
92 |
font-size: 10px;
|
93 |
+
font-weight: bold;
|
94 |
color: #2b2400;
|
95 |
text-transform: uppercase;
|
96 |
text-align: center;
|
98 |
transform: rotate(45deg);
|
99 |
width: 100px;
|
100 |
display: block;
|
101 |
+
background: #b04cff;
|
102 |
box-shadow: 0 3px 10px -5px rgba(0, 0, 0, 1);
|
103 |
position: absolute;
|
104 |
top: 19px; right: -21px;
|
109 |
left: 0;
|
110 |
top: 100%;
|
111 |
z-index: -1;
|
112 |
+
border-left: 3px solid #6a00b8;
|
113 |
border-right: 3px solid transparent;
|
114 |
border-bottom: 3px solid transparent;
|
115 |
+
border-top: 3px solid #6a00b8;
|
116 |
}
|
117 |
.foogallery-admin-help-ribbon span::after {
|
118 |
content: "";
|
121 |
top: 100%;
|
122 |
z-index: -1;
|
123 |
border-left: 3px solid transparent;
|
124 |
+
border-right: 3px solid #6a00b8;
|
125 |
border-bottom: 3px solid transparent;
|
126 |
+
border-top: 3px solid #6a00b8;
|
127 |
}
|
128 |
|
129 |
.foogallery-admin-help nav {
|
137 |
justify-content: stretch;
|
138 |
align-items: stretch;
|
139 |
flex-wrap: nowrap;
|
140 |
+
padding-left: 10px;
|
141 |
+
padding-right: 10px;
|
142 |
+
border-bottom: 3px solid #fff;
|
143 |
}
|
144 |
|
145 |
.foogallery-admin-help nav a {
|
149 |
padding: 24px 32px 18px 32px;
|
150 |
font-size: 1.3em;
|
151 |
line-height: 1.4;
|
152 |
+
border: 3px solid transparent;
|
153 |
+
border-top-left-radius: .6rem;
|
154 |
+
border-top-right-radius: .6rem;
|
155 |
background: transparent;
|
156 |
color: inherit;
|
157 |
text-decoration: none;
|
161 |
}
|
162 |
|
163 |
.foogallery-admin-help nav a.foogallery-admin-help-tab-active {
|
164 |
+
background-color: #2c3338;
|
165 |
color: #ffffff;
|
166 |
border-color: #ffffff;
|
167 |
+
border-bottom: none;
|
168 |
+
border-bottom-color: #2c3338;
|
169 |
+
margin-bottom: -3px;
|
170 |
}
|
171 |
|
172 |
.fgah-feature {
|
176 |
margin: 0;
|
177 |
padding: 16px;
|
178 |
font-size: 14px;
|
179 |
+
background-color: #1d2327;
|
180 |
}
|
181 |
.fgah-feature:nth-child(odd) {
|
182 |
background-color: #2c3338;
|
277 |
margin: 32px 0 16px 0;
|
278 |
}
|
279 |
|
280 |
+
.fgah-feature-pro {
|
281 |
+
counter-increment: number-counter;
|
282 |
+
}
|
283 |
|
284 |
+
.fgah-feature-pro > div > dl > dd > p > a {
|
285 |
+
text-decoration: underline;
|
286 |
}
|
287 |
|
288 |
.fgah-feature-pro > div > dl > dt::before {
|
289 |
+
content: counters(number-counter, ".") " ";
|
290 |
+
line-height: 30px;
|
291 |
display: inline-block;
|
292 |
+
min-width: 20px;
|
293 |
+
margin: 0 8px 0 0;
|
294 |
+
padding: 0 5px;
|
|
|
|
|
|
|
|
|
295 |
text-align: center;
|
296 |
+
vertical-align: 1px;
|
297 |
+
color: #fff;
|
298 |
+
border-radius: 3px;
|
299 |
+
background: #4098D7;
|
300 |
+
background: linear-gradient(45deg, #6638b8 0%, #4098D7 100%);
|
301 |
+
}
|
302 |
+
|
303 |
+
span.fgah-plan-prostarter {
|
304 |
+
color: #4098D7;
|
305 |
+
font-weight: bold;
|
306 |
+
}
|
307 |
+
|
308 |
+
.fgah-feature-pro.fgah-feature-plan-pro > div > dl > dt::before {
|
309 |
+
background: #2CA03D;
|
310 |
+
background: linear-gradient(45deg, #6638b8 0%, #2CA03D 100%);
|
311 |
+
}
|
312 |
+
|
313 |
+
span.fgah-plan-pro {
|
314 |
+
color: #2CA03D;
|
315 |
+
font-weight: bold;
|
316 |
+
}
|
317 |
+
|
318 |
+
.fgah-feature-pro.fgah-feature-plan-commerce > div > dl > dt::before {
|
319 |
+
background: #B0459D;
|
320 |
+
background: linear-gradient(45deg, #6638b8 0%, #B0459D 100%);
|
321 |
+
}
|
322 |
+
|
323 |
+
span.fgah-plan-commerce {
|
324 |
+
color: #B0459D;
|
325 |
+
font-weight: bold;
|
326 |
+
}
|
327 |
+
|
328 |
+
.fgah-feature-sub-title {
|
329 |
+
margin-bottom: 16px;
|
330 |
+
}
|
331 |
+
|
332 |
+
.fgah-feature-sub-title h4 {
|
333 |
+
margin: 0px 0px 5px 0;
|
334 |
+
}
|
335 |
+
|
336 |
+
.fgah-feature-sub-title span {
|
337 |
+
background: #6d6d6d;
|
338 |
+
color: #191a1f;
|
339 |
+
padding: 1px 6px;
|
340 |
+
border-radius: 3px;
|
341 |
+
margin-right: 3px;
|
342 |
+
font-weight: 500;
|
343 |
+
}
|
344 |
+
|
345 |
+
.fgah-feature-sub-title span.fgah-plan-prostarter {
|
346 |
+
background: #3397C1;
|
347 |
+
}
|
348 |
+
|
349 |
+
.fgah-feature-sub-title span.fgah-plan-pro {
|
350 |
+
background: #2CA03D;
|
351 |
+
}
|
352 |
+
|
353 |
+
.fgah-feature-sub-title span.fgah-plan-commerce {
|
354 |
+
background: #B0459D;
|
355 |
}
|
356 |
|
357 |
.fgah-help-list {
|
368 |
.fgah-help-list li::before {
|
369 |
content: "\003F";
|
370 |
display: inline-block;
|
371 |
+
background-color: #1897ff;
|
372 |
color: #FFFFFF;
|
373 |
border-radius: 50%;
|
374 |
line-height: 1;
|
412 |
|
413 |
.foogallery-admin-help-button {
|
414 |
position: relative;
|
415 |
+
background-color: #7d4fff;
|
416 |
color: #ffffff !important;
|
417 |
padding: 10px 20px;
|
418 |
font-size: 1em;
|
430 |
}
|
431 |
|
432 |
.foogallery-admin-help-button-active {
|
433 |
+
background-color: #1897ff;
|
434 |
}
|
435 |
|
436 |
.foogallery-admin-help-button-cta {
|
437 |
position: relative;
|
438 |
+
background-color: #7d4fff;
|
439 |
color: #ffffff !important;
|
440 |
padding: 12px 36px;
|
441 |
font-size: 1.3em;
|
442 |
+
border-radius: 5px;
|
443 |
text-decoration: none;
|
444 |
font-weight: 600;
|
445 |
display: inline-block;
|
455 |
|
456 |
.foogallery-admin-help-button-cta:hover,
|
457 |
.foogallery-admin-help-button-cta:focus {
|
458 |
+
background-color: #5234a7;
|
459 |
}
|
460 |
|
461 |
.foogallery-admin-help-button-cta.foogallery-admin-help-loading {
|
464 |
}
|
465 |
|
466 |
.foogallery-admin-help-button-cta .progress {
|
467 |
+
border-radius: 5px;
|
468 |
width: 0;
|
469 |
+
background: #1897ff;
|
470 |
opacity: 0;
|
471 |
transition: all 0.3s ease;
|
472 |
position: absolute;
|
559 |
|
560 |
|
561 |
@media (hover: hover){
|
|
|
562 |
.foogallery-admin-help a:hover {
|
563 |
color: #0097de;
|
564 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
565 |
}
|
extensions/default-templates/functions.php
CHANGED
@@ -35,6 +35,7 @@ function foogallery_enqueue_core_gallery_template_script( $deps = null ) {
|
|
35 |
|
36 |
$filename = foogallery_is_debug() ? '' : '.min';
|
37 |
$js = apply_filters( 'foogallery_core_gallery_script', FOOGALLERY_DEFAULT_TEMPLATES_EXTENSION_SHARED_URL . 'js/foogallery' . $filename . '.js' );
|
|
|
38 |
wp_enqueue_script( 'foogallery-core', $js, $deps, FOOGALLERY_VERSION );
|
39 |
do_action( 'foogallery_enqueue_script-core', $js );
|
40 |
|
35 |
|
36 |
$filename = foogallery_is_debug() ? '' : '.min';
|
37 |
$js = apply_filters( 'foogallery_core_gallery_script', FOOGALLERY_DEFAULT_TEMPLATES_EXTENSION_SHARED_URL . 'js/foogallery' . $filename . '.js' );
|
38 |
+
$deps = apply_filters( 'foogallery_core_gallery_script_deps', $deps );
|
39 |
wp_enqueue_script( 'foogallery-core', $js, $deps, FOOGALLERY_VERSION );
|
40 |
do_action( 'foogallery_enqueue_script-core', $js );
|
41 |
|
extensions/default-templates/image-viewer/class-image-viewer-gallery-template.php
CHANGED
@@ -15,7 +15,7 @@ if ( !class_exists( 'FooGallery_Image_Viewer_Gallery_Template' ) ) {
|
|
15 |
add_filter( 'foogallery_gallery_templates', array( $this, 'add_template' ) );
|
16 |
|
17 |
//add extra fields to the templates
|
18 |
-
add_filter( 'foogallery_override_gallery_template_fields-image-viewer', array( $this, '
|
19 |
|
20 |
add_filter( 'foogallery_gallery_templates_files', array( $this, 'register_myself' ) );
|
21 |
|
@@ -203,7 +203,7 @@ if ( !class_exists( 'FooGallery_Image_Viewer_Gallery_Template' ) ) {
|
|
203 |
*
|
204 |
* @return array
|
205 |
*/
|
206 |
-
function
|
207 |
|
208 |
//update specific fields
|
209 |
foreach ($fields as &$field) {
|
15 |
add_filter( 'foogallery_gallery_templates', array( $this, 'add_template' ) );
|
16 |
|
17 |
//add extra fields to the templates
|
18 |
+
add_filter( 'foogallery_override_gallery_template_fields-image-viewer', array( $this, 'adjust_fields' ), 10, 2 );
|
19 |
|
20 |
add_filter( 'foogallery_gallery_templates_files', array( $this, 'register_myself' ) );
|
21 |
|
203 |
*
|
204 |
* @return array
|
205 |
*/
|
206 |
+
function adjust_fields( $fields, $template ) {
|
207 |
|
208 |
//update specific fields
|
209 |
foreach ($fields as &$field) {
|
extensions/default-templates/shared/css/admin-foogallery.css
CHANGED
@@ -48,6 +48,9 @@
|
|
48 |
.foogallery-setting-video_overlay.fg-video-4 {
|
49 |
background-image: url('../img/icons.svg#video-4-light');
|
50 |
}
|
|
|
|
|
|
|
51 |
|
52 |
.foogallery_template_field_type-htmlicon.foogallery_template_field_id-loading_icon td label {
|
53 |
background-color: #eee;
|
48 |
.foogallery-setting-video_overlay.fg-video-4 {
|
49 |
background-image: url('../img/icons.svg#video-4-light');
|
50 |
}
|
51 |
+
.foogallery-setting-caption_icon.fg-hover-cart {
|
52 |
+
background-image: url('../img/icons.svg#cart-light');
|
53 |
+
}
|
54 |
|
55 |
.foogallery_template_field_type-htmlicon.foogallery_template_field_id-loading_icon td label {
|
56 |
background-color: #eee;
|
extensions/default-templates/shared/css/foogallery.css
CHANGED
@@ -819,18 +819,112 @@
|
|
819 |
}
|
820 |
|
821 |
.foogallery .fg-caption-title {
|
|
|
822 |
white-space: nowrap;
|
823 |
overflow: hidden;
|
824 |
text-overflow: ellipsis;
|
825 |
font-size: 16px;
|
826 |
font-weight: 400;
|
827 |
-
padding:
|
|
|
|
|
|
|
|
|
828 |
}
|
829 |
.foogallery .fg-caption-desc {
|
830 |
-
padding:
|
|
|
|
|
|
|
|
|
831 |
}
|
832 |
.foogallery .fg-caption-title+.fg-caption-desc {
|
833 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
834 |
}
|
835 |
|
836 |
/* Always */
|
@@ -852,12 +946,17 @@
|
|
852 |
|
853 |
/* On Hover */
|
854 |
.foogallery.fg-caption-hover .fg-caption .fg-caption-inner {
|
|
|
|
|
|
|
|
|
855 |
width: 100%;
|
856 |
max-height: 100%;
|
857 |
position: absolute;
|
858 |
top: 50%;
|
859 |
left: 0;
|
860 |
transform: translateY(-50%);
|
|
|
861 |
}
|
862 |
.foogallery.fg-caption-hover .fg-item.fg-loaded .fg-image-overlay {
|
863 |
display: none;
|
@@ -893,6 +992,8 @@
|
|
893 |
background-size: 32px 32px;
|
894 |
background-position: center center;
|
895 |
background-repeat: no-repeat;
|
|
|
|
|
896 |
}
|
897 |
.foogallery .fg-caption-inner:before {
|
898 |
content: "";
|
@@ -900,11 +1001,13 @@
|
|
900 |
position: relative;
|
901 |
width: 32px;
|
902 |
height: 32px;
|
903 |
-
margin:
|
904 |
background-size: 32px 32px;
|
905 |
vertical-align: middle;
|
906 |
background-position: center center;
|
907 |
background-repeat: no-repeat;
|
|
|
|
|
908 |
}
|
909 |
.foogallery.fg-hover-zoom:not(.fg-preset) .fg-caption-inner:before,
|
910 |
.foogallery.fg-hover-zoom2:not(.fg-preset) .fg-caption-inner:before,
|
@@ -914,6 +1017,7 @@
|
|
914 |
.foogallery.fg-hover-eye:not(.fg-preset) .fg-caption-inner:before,
|
915 |
.foogallery.fg-hover-external:not(.fg-preset) .fg-caption-inner:before,
|
916 |
.foogallery.fg-hover-tint:not(.fg-preset) .fg-caption-inner:before,
|
|
|
917 |
.foogallery.fg-video-default:not(.fg-preset) .fg-caption-inner:before,
|
918 |
.foogallery.fg-video-1:not(.fg-preset) .fg-caption-inner:before,
|
919 |
.foogallery.fg-video-2:not(.fg-preset) .fg-caption-inner:before,
|
@@ -930,6 +1034,7 @@
|
|
930 |
.foogallery.fg-hover-eye:not(.fg-preset) .fg-item-inner:hover .fg-image-overlay,
|
931 |
.foogallery.fg-hover-external:not(.fg-preset) .fg-item-inner:hover .fg-image-overlay,
|
932 |
.foogallery.fg-hover-tint:not(.fg-preset) .fg-item-inner:hover .fg-image-overlay,
|
|
|
933 |
.foogallery.fg-video-default:not(.fg-preset) .fg-type-video .fg-item-inner:hover .fg-image-overlay,
|
934 |
.foogallery.fg-video-1:not(.fg-preset) .fg-type-video .fg-item-inner:hover .fg-image-overlay,
|
935 |
.foogallery.fg-video-2:not(.fg-preset) .fg-type-video .fg-item-inner:hover .fg-image-overlay,
|
@@ -1011,6 +1116,15 @@
|
|
1011 |
background-image: url('../img/icons.svg#external-dark');
|
1012 |
}
|
1013 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1014 |
.foogallery.fg-video-default .fg-type-video .fg-image-overlay:before,
|
1015 |
.foogallery.fg-video-default .fg-type-video .fg-caption-inner:before {
|
1016 |
background-image: url('../img/icons.svg#video-default-light');
|
@@ -1796,11 +1910,12 @@
|
|
1796 |
pointer-events: none;
|
1797 |
}
|
1798 |
|
1799 |
-
.fg-masonry.fg-
|
1800 |
-
.fg-masonry.fg-
|
1801 |
-
.fg-masonry.fg-
|
1802 |
-
.fg-masonry.fg-
|
1803 |
-
.fg-masonry.fg-
|
|
|
1804 |
width: 100%;
|
1805 |
height: auto;
|
1806 |
max-width: 100%;
|
@@ -2475,6 +2590,7 @@
|
|
2475 |
}
|
2476 |
.fg-simple_portfolio .fg-caption-title {
|
2477 |
white-space: normal;
|
|
|
2478 |
}
|
2479 |
|
2480 |
.fg-simple_portfolio.fg-light .fg-caption,
|
819 |
}
|
820 |
|
821 |
.foogallery .fg-caption-title {
|
822 |
+
box-sizing: content-box;
|
823 |
white-space: nowrap;
|
824 |
overflow: hidden;
|
825 |
text-overflow: ellipsis;
|
826 |
font-size: 16px;
|
827 |
font-weight: 400;
|
828 |
+
padding: 0;
|
829 |
+
margin: 0.4em;
|
830 |
+
height: 1.3em;
|
831 |
+
min-height: 1.3em;
|
832 |
+
line-height: 1.3em;
|
833 |
}
|
834 |
.foogallery .fg-caption-desc {
|
835 |
+
padding: 0;
|
836 |
+
margin: 0.4em;
|
837 |
+
overflow: hidden;
|
838 |
+
height: 100%;
|
839 |
+
max-height: 100%;
|
840 |
}
|
841 |
.foogallery .fg-caption-title+.fg-caption-desc {
|
842 |
+
margin-top: 0;
|
843 |
+
}
|
844 |
+
|
845 |
+
.foogallery .fg-caption-buttons {
|
846 |
+
display: flex;
|
847 |
+
position: relative;
|
848 |
+
flex-direction: row;
|
849 |
+
flex-wrap: wrap;
|
850 |
+
align-items: center;
|
851 |
+
justify-content: center;
|
852 |
+
width: 100%;
|
853 |
+
padding: 5px;
|
854 |
+
margin: 0;
|
855 |
+
}
|
856 |
+
|
857 |
+
.foogallery .fg-caption-buttons > a {
|
858 |
+
display: inline-block;
|
859 |
+
position: relative;
|
860 |
+
padding: 0.4em 0.8em;
|
861 |
+
margin: 1px;
|
862 |
+
max-width: 100%;
|
863 |
+
font-family: -apple-system,system-ui,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
|
864 |
+
font-size: 12px;
|
865 |
+
font-weight: 400;
|
866 |
+
line-height: 1.42857143;
|
867 |
+
text-align: center;
|
868 |
+
white-space: nowrap;
|
869 |
+
vertical-align: middle;
|
870 |
+
cursor: pointer;
|
871 |
+
user-select: none;
|
872 |
+
background-image: none;
|
873 |
+
text-decoration: none!important;
|
874 |
+
border: 1px solid transparent;
|
875 |
+
border-radius: 4px;
|
876 |
+
box-shadow: none;
|
877 |
+
outline: none;
|
878 |
+
opacity: 1;
|
879 |
+
transition-timing-function: ease-out;
|
880 |
+
transition-duration: 0.3s;
|
881 |
+
transition-property: color, opacity, border-color, background-color;
|
882 |
+
}
|
883 |
+
|
884 |
+
@media only screen and (max-width: 600px) {
|
885 |
+
.foogallery .fg-caption-buttons {
|
886 |
+
align-items: stretch;
|
887 |
+
}
|
888 |
+
.foogallery .fg-caption-buttons > a {
|
889 |
+
flex: 1;
|
890 |
+
}
|
891 |
+
}
|
892 |
+
|
893 |
+
/* Light */
|
894 |
+
.foogallery .fg-caption .fg-caption-buttons > a {
|
895 |
+
color: #333;
|
896 |
+
background-color: #fff;
|
897 |
+
border-color: #ccc;
|
898 |
+
}
|
899 |
+
.foogallery .fg-caption .fg-caption-buttons > a:not(.fg-disabled):hover {
|
900 |
+
color: #333;
|
901 |
+
background-color: #e6e6e6;
|
902 |
+
border-color: #adadad;
|
903 |
+
border-bottom: solid 1px;
|
904 |
+
}
|
905 |
+
.foogallery .fg-caption .fg-caption-buttons > a.fg-disabled {
|
906 |
+
color: #9d9d9d;
|
907 |
+
}
|
908 |
+
.foogallery .fg-caption .fg-caption-buttons > a.fg-disabled:hover {
|
909 |
+
border-bottom: solid 1px;
|
910 |
+
}
|
911 |
+
|
912 |
+
/* Dark */
|
913 |
+
.foogallery.fg-light-overlays .fg-caption .fg-caption-buttons > a {
|
914 |
+
color: #FFF;
|
915 |
+
background-color: #444;
|
916 |
+
border-color: #333;
|
917 |
+
}
|
918 |
+
.foogallery.fg-light-overlays .fg-caption .fg-caption-buttons > a:not(.fg-disabled):hover {
|
919 |
+
color: #9d9d9d;
|
920 |
+
background-color: #333;
|
921 |
+
border-color: #222;
|
922 |
+
}
|
923 |
+
.foogallery.fg-light-overlays .fg-caption .fg-caption-buttons > a.fg-disabled {
|
924 |
+
color: #9d9d9d;
|
925 |
+
}
|
926 |
+
.foogallery.fg-light-overlays .fg-caption .fg-caption-buttons > a.fg-disabled:hover {
|
927 |
+
border-bottom: solid 1px;
|
928 |
}
|
929 |
|
930 |
/* Always */
|
946 |
|
947 |
/* On Hover */
|
948 |
.foogallery.fg-caption-hover .fg-caption .fg-caption-inner {
|
949 |
+
display: flex;
|
950 |
+
flex-direction: column;
|
951 |
+
align-items: center;
|
952 |
+
justify-content: center;
|
953 |
width: 100%;
|
954 |
max-height: 100%;
|
955 |
position: absolute;
|
956 |
top: 50%;
|
957 |
left: 0;
|
958 |
transform: translateY(-50%);
|
959 |
+
padding: 0.4em;
|
960 |
}
|
961 |
.foogallery.fg-caption-hover .fg-item.fg-loaded .fg-image-overlay {
|
962 |
display: none;
|
992 |
background-size: 32px 32px;
|
993 |
background-position: center center;
|
994 |
background-repeat: no-repeat;
|
995 |
+
min-width: 32px;
|
996 |
+
min-height: 32px;
|
997 |
}
|
998 |
.foogallery .fg-caption-inner:before {
|
999 |
content: "";
|
1001 |
position: relative;
|
1002 |
width: 32px;
|
1003 |
height: 32px;
|
1004 |
+
margin: 0.4em;
|
1005 |
background-size: 32px 32px;
|
1006 |
vertical-align: middle;
|
1007 |
background-position: center center;
|
1008 |
background-repeat: no-repeat;
|
1009 |
+
min-width: 32px;
|
1010 |
+
min-height: 32px;
|
1011 |
}
|
1012 |
.foogallery.fg-hover-zoom:not(.fg-preset) .fg-caption-inner:before,
|
1013 |
.foogallery.fg-hover-zoom2:not(.fg-preset) .fg-caption-inner:before,
|
1017 |
.foogallery.fg-hover-eye:not(.fg-preset) .fg-caption-inner:before,
|
1018 |
.foogallery.fg-hover-external:not(.fg-preset) .fg-caption-inner:before,
|
1019 |
.foogallery.fg-hover-tint:not(.fg-preset) .fg-caption-inner:before,
|
1020 |
+
.foogallery.fg-hover-cart:not(.fg-preset) .fg-caption-inner:before,
|
1021 |
.foogallery.fg-video-default:not(.fg-preset) .fg-caption-inner:before,
|
1022 |
.foogallery.fg-video-1:not(.fg-preset) .fg-caption-inner:before,
|
1023 |
.foogallery.fg-video-2:not(.fg-preset) .fg-caption-inner:before,
|
1034 |
.foogallery.fg-hover-eye:not(.fg-preset) .fg-item-inner:hover .fg-image-overlay,
|
1035 |
.foogallery.fg-hover-external:not(.fg-preset) .fg-item-inner:hover .fg-image-overlay,
|
1036 |
.foogallery.fg-hover-tint:not(.fg-preset) .fg-item-inner:hover .fg-image-overlay,
|
1037 |
+
.foogallery.fg-hover-cart:not(.fg-preset) .fg-item-inner:hover .fg-image-overlay,
|
1038 |
.foogallery.fg-video-default:not(.fg-preset) .fg-type-video .fg-item-inner:hover .fg-image-overlay,
|
1039 |
.foogallery.fg-video-1:not(.fg-preset) .fg-type-video .fg-item-inner:hover .fg-image-overlay,
|
1040 |
.foogallery.fg-video-2:not(.fg-preset) .fg-type-video .fg-item-inner:hover .fg-image-overlay,
|
1116 |
background-image: url('../img/icons.svg#external-dark');
|
1117 |
}
|
1118 |
|
1119 |
+
.foogallery.fg-hover-cart .fg-image-overlay:before,
|
1120 |
+
.foogallery.fg-hover-cart .fg-caption-inner:before {
|
1121 |
+
background-image: url('../img/icons.svg#cart-light');
|
1122 |
+
}
|
1123 |
+
.foogallery.fg-light-overlays.fg-hover-cart .fg-image-overlay:before,
|
1124 |
+
.foogallery.fg-light-overlays.fg-hover-cart .fg-caption-inner:before {
|
1125 |
+
background-image: url('../img/icons.svg#cart-dark');
|
1126 |
+
}
|
1127 |
+
|
1128 |
.foogallery.fg-video-default .fg-type-video .fg-image-overlay:before,
|
1129 |
.foogallery.fg-video-default .fg-type-video .fg-caption-inner:before {
|
1130 |
background-image: url('../img/icons.svg#video-default-light');
|
1910 |
pointer-events: none;
|
1911 |
}
|
1912 |
|
1913 |
+
.fg-masonry.fg-fixed .fg-item .fg-image,
|
1914 |
+
.fg-masonry.fg-col6 .fg-item .fg-image,
|
1915 |
+
.fg-masonry.fg-col5 .fg-item .fg-image,
|
1916 |
+
.fg-masonry.fg-col4 .fg-item .fg-image,
|
1917 |
+
.fg-masonry.fg-col3 .fg-item .fg-image,
|
1918 |
+
.fg-masonry.fg-col2 .fg-item .fg-image {
|
1919 |
width: 100%;
|
1920 |
height: auto;
|
1921 |
max-width: 100%;
|
2590 |
}
|
2591 |
.fg-simple_portfolio .fg-caption-title {
|
2592 |
white-space: normal;
|
2593 |
+
height: auto;
|
2594 |
}
|
2595 |
|
2596 |
.fg-simple_portfolio.fg-light .fg-caption,
|
extensions/default-templates/shared/css/foogallery.min.css
CHANGED
@@ -1 +1 @@
|
|
1 |
-
.foogallery,.foogallery *{box-sizing:border-box}.foogallery{display:block;z-index:1;font-family:-apple-system,system-ui,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;position:relative;line-height:0;font-size:0;width:100%;max-width:100%}.foogallery .fg-item{display:inline-block;position:relative;background-color:transparent;z-index:2;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.foogallery .fg-item.fg-hidden{display:none!important}.foogallery .fg-item-inner{display:block;position:relative;visibility:hidden;overflow:hidden;opacity:0;z-index:3;margin:0;border:solid 0 transparent}.foogallery .fg-item.fg-error:before{content:"";display:block;position:absolute;top:50%;left:50%;transform:translateX(-50%) translateY(-50%);width:32px;height:32px;background-image:url(../img/icons.svg#image);background-color:transparent;background-repeat:no-repeat;background-position:center center;background-size:32px 32px}.foogallery .fg-item.fg-loaded{z-index:4}.foogallery .fg-loaded .fg-item-inner{visibility:visible;opacity:1;z-index:5}.foogallery .fg-error .fg-item-inner{pointer-events:none;cursor:default}.foogallery .fg-thumb{display:block;position:relative;border:none;outline:0;text-decoration:none;z-index:4;box-shadow:none}.foogallery .fg-thumb:focus,.foogallery .fg-thumb:hover{border:none;outline:0;text-decoration:none;box-shadow:none}.foogallery .fg-image-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:8;visibility:hidden;opacity:0}.foogallery .fg-image-wrap{display:block;position:relative}.foogallery .fg-image{display:block;position:relative;border:none;outline:0;text-decoration:none;z-index:5;max-width:100%;height:auto;margin:0;width:auto}.foogallery picture.fg-image>img{display:block;position:relative;border:none;outline:0;text-decoration:none;max-width:100%;height:auto;margin:0;width:auto}.foogallery .fg-loaded .fg-thumb{z-index:6}.foogallery .fg-loaded .fg-image{z-index:7}.foogallery.fg-light .fg-item-inner{background-color:#fff;color:#333;border-color:#fff}.foogallery.fg-dark .fg-item-inner{background-color:#333;color:#fff;border-color:#333}.foogallery.fg-light .fg-item.fg-error,.foogallery.fg-light .fg-item.fg-idle,.foogallery.fg-light .fg-item.fg-loading{background-color:#eee;box-shadow:inset 0 0 0 1px #ddd}.foogallery.fg-dark .fg-item.fg-error,.foogallery.fg-dark .fg-item.fg-idle,.foogallery.fg-dark .fg-item.fg-loading{background-color:#444;box-shadow:inset 0 0 0 1px #333}.foogallery .fg-caption{background-color:rgba(0,0,0,.6);color:#fff}.foogallery .fg-caption a{color:#fff;border-bottom:1px solid #fff}.foogallery.fg-light-overlays .fg-caption{background-color:rgba(255,255,255,.8);color:#333}.foogallery.fg-light-overlays .fg-caption a{color:#333;border-bottom-color:#333}.foogallery.fg-transparent-overlays .fg-caption{background-color:transparent;color:#fff}.foogallery.fg-transparent-overlays .fg-caption a{color:#fff;border-bottom-color:#fff}.foogallery .fg-image-overlay{background-color:rgba(0,0,0,.6);color:#fff}.foogallery.fg-light-overlays .fg-image-overlay{background-color:rgba(255,255,255,.8);color:#333}.foogallery.fg-transparent-overlays .fg-image-overlay{background-color:transparent;color:#fff}.fg-exif-light .fg-item.fg-item-exif .fg-image-wrap:after{background-color:#fff;color:#333}.fg-exif-dark .fg-item.fg-item-exif .fg-image-wrap:after{background-color:#333;color:#fff}.fg-exif-rounded .fg-item.fg-item-exif .fg-image-wrap:after{border-radius:3px}.fg-exif-bottom-left .fg-item.fg-item-exif .fg-image-wrap:after,.fg-exif-bottom-right .fg-item.fg-item-exif .fg-image-wrap:after,.fg-exif-top-left .fg-item.fg-item-exif .fg-image-wrap:after,.fg-exif-top-right .fg-item.fg-item-exif .fg-image-wrap:after{display:inline-block;position:absolute;content:'EXIF';font-family:-apple-system,system-ui,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-size:11px;line-height:10px;padding:3px 4px;z-index:7}.fg-exif-bottom-right .fg-item.fg-item-exif .fg-image-wrap:after{bottom:5px;right:5px}.fg-exif-bottom-left .fg-item.fg-item-exif .fg-image-wrap:after{bottom:5px;left:5px}.fg-exif-top-right .fg-item.fg-item-exif .fg-image-wrap:after{top:5px;right:5px}.fg-exif-top-left .fg-item.fg-item-exif .fg-image-wrap:after{top:5px;left:5px}.foogallery.fg-border-thin .fg-item-inner{border-width:4px}.foogallery.fg-border-medium .fg-item-inner{border-width:10px}.foogallery.fg-border-thick .fg-item-inner{border-width:16px}.foogallery.fg-light.fg-shadow-outline .fg-item-inner{box-shadow:0 0 0 1px #ddd}.foogallery.fg-dark.fg-shadow-outline .fg-item-inner{box-shadow:0 0 0 1px #222}.foogallery.fg-dark.fg-shadow-small .fg-item-inner,.foogallery.fg-light.fg-shadow-small .fg-item-inner{box-shadow:0 1px 4px 0 rgba(0,0,0,.5)}.foogallery.fg-dark.fg-shadow-medium .fg-item-inner,.foogallery.fg-light.fg-shadow-medium .fg-item-inner{box-shadow:0 1px 10px 0 rgba(0,0,0,.5)}.foogallery.fg-dark.fg-shadow-large .fg-item-inner,.foogallery.fg-light.fg-shadow-large .fg-item-inner{box-shadow:0 1px 16px 0 rgba(0,0,0,.5)}.foogallery.fg-shadow-inset-large .fg-thumb:after,.foogallery.fg-shadow-inset-medium .fg-thumb:after,.foogallery.fg-shadow-inset-small .fg-thumb:after{display:block;content:"";position:absolute;top:0;left:0;right:0;bottom:0;z-index:7}.foogallery.fg-dark.fg-shadow-inset-small .fg-thumb:after,.foogallery.fg-light.fg-shadow-inset-small .fg-thumb:after{box-shadow:inset 0 1px 4px 0 rgba(0,0,0,.3)}.foogallery.fg-dark.fg-shadow-inset-medium .fg-thumb:after,.foogallery.fg-light.fg-shadow-inset-medium .fg-thumb:after{box-shadow:inset 0 1px 10px 0 rgba(0,0,0,.3)}.foogallery.fg-dark.fg-shadow-inset-large .fg-thumb:after,.foogallery.fg-light.fg-shadow-inset-large .fg-thumb:after{box-shadow:inset 0 1px 16px 0 rgba(0,0,0,.3)}.foogallery.fg-round-full.fg-shadow-inset-large .fg-thumb:after,.foogallery.fg-round-full.fg-shadow-inset-medium .fg-thumb:after,.foogallery.fg-round-full.fg-shadow-inset-small .fg-thumb:after{border-radius:50%}.foogallery.fg-round-small .fg-item,.foogallery.fg-round-small .fg-item-inner{border-radius:5px}.foogallery.fg-round-medium .fg-item,.foogallery.fg-round-medium .fg-item-inner{border-radius:10px}.foogallery.fg-round-large .fg-item,.foogallery.fg-round-large .fg-item-inner{border-radius:15px}.foogallery.fg-round-full .fg-item,.foogallery.fg-round-full .fg-item-inner{border-radius:50%}.foogallery .fg-loader{position:absolute;top:50%;left:50%;margin-top:-.5em;margin-left:-.5em;width:1em;height:1em;font-size:5px;visibility:hidden;opacity:0;pointer-events:none}.foogallery .fg-loading .fg-loader{visibility:visible;opacity:1}.fg-loading-default .fg-loader{border-radius:50%;text-indent:-9999em;box-shadow:0 -2.6em 0 0 rgba(130,130,130,1),1.8em -1.8em 0 0 rgba(130,130,130,.2),2.5em 0 0 0 rgba(130,130,130,.2),1.75em 1.75em 0 0 rgba(130,130,130,.2),0 2.5em 0 0 rgba(130,130,130,.2),-1.8em 1.8em 0 0 rgba(130,130,130,.2),-2.6em 0 0 0 rgba(130,130,130,.5),-1.8em -1.8em 0 0 rgba(130,130,130,.7);-webkit-animation:loading-default 1.1s infinite paused steps(8,start);animation:loading-default 1.1s infinite paused steps(8,start)}.fg-loading-default .fg-loading .fg-loader{-webkit-animation-play-state:running;animation-play-state:running}@-webkit-keyframes loading-default{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}@keyframes loading-default{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}.fg-loading-bars .fg-loader,.fg-loading-bars .fg-loader:after,.fg-loading-bars .fg-loader:before{background:rgba(130,130,130,1);width:1em;height:4em;-webkit-animation:loading-bars 1s infinite paused ease-in-out;animation:loading-bars 1s infinite paused ease-in-out}.fg-loading-bars .fg-loading .fg-loader,.fg-loading-bars .fg-loading .fg-loader:after,.fg-loading-bars .fg-loading .fg-loader:before{-webkit-animation-play-state:running;animation-play-state:running}.fg-loading-bars .fg-loader{color:rgba(130,130,130,1);text-indent:-9999em;font-size:4px;margin-top:-2em;margin-left:-.5em;-webkit-animation-delay:-.16s;animation-delay:-.16s}.fg-loading-bars .fg-loader:after,.fg-loading-bars .fg-loader:before{position:absolute;top:0;content:''}.fg-loading-bars .fg-loader:before{left:-1.5em;-webkit-animation-delay:-.32s;animation-delay:-.32s}.fg-loading-bars .fg-loader:after{left:1.5em}@-webkit-keyframes loading-bars{0%,100%,80%{box-shadow:0 0;height:4em}40%{box-shadow:0 -2em;height:5em}}@keyframes loading-bars{0%,100%,80%{box-shadow:0 0;height:4em}40%{box-shadow:0 -2em;height:5em}}.fg-loading-trail .fg-loader{color:#828282;margin-top:0;margin-left:0;font-size:20px;text-indent:-9999em;overflow:hidden;border-radius:50%;-webkit-animation:loading-trail-1 1.7s infinite paused ease,loading-trail-2 1.7s infinite paused ease;animation:loading-trail-1 1.7s infinite paused ease,loading-trail-2 1.7s infinite paused ease}.fg-loading-trail .fg-loading .fg-loader{-webkit-animation-play-state:running;animation-play-state:running}@-webkit-keyframes loading-trail-1{0%{box-shadow:0 -.83em 0 -.4em,0 -.83em 0 -.42em,0 -.83em 0 -.44em,0 -.83em 0 -.46em,0 -.83em 0 -.477em}5%,95%{box-shadow:0 -.83em 0 -.4em,0 -.83em 0 -.42em,0 -.83em 0 -.44em,0 -.83em 0 -.46em,0 -.83em 0 -.477em}10%,59%{box-shadow:0 -.83em 0 -.4em,-.087em -.825em 0 -.42em,-.173em -.812em 0 -.44em,-.256em -.789em 0 -.46em,-.297em -.775em 0 -.477em}20%{box-shadow:0 -.83em 0 -.4em,-.338em -.758em 0 -.42em,-.555em -.617em 0 -.44em,-.671em -.488em 0 -.46em,-.749em -.34em 0 -.477em}38%{box-shadow:0 -.83em 0 -.4em,-.377em -.74em 0 -.42em,-.645em -.522em 0 -.44em,-.775em -.297em 0 -.46em,-.82em -.09em 0 -.477em}100%{box-shadow:0 -.83em 0 -.4em,0 -.83em 0 -.42em,0 -.83em 0 -.44em,0 -.83em 0 -.46em,0 -.83em 0 -.477em}}@keyframes loading-trail-1{0%{box-shadow:0 -.83em 0 -.4em,0 -.83em 0 -.42em,0 -.83em 0 -.44em,0 -.83em 0 -.46em,0 -.83em 0 -.477em}5%,95%{box-shadow:0 -.83em 0 -.4em,0 -.83em 0 -.42em,0 -.83em 0 -.44em,0 -.83em 0 -.46em,0 -.83em 0 -.477em}10%,59%{box-shadow:0 -.83em 0 -.4em,-.087em -.825em 0 -.42em,-.173em -.812em 0 -.44em,-.256em -.789em 0 -.46em,-.297em -.775em 0 -.477em}20%{box-shadow:0 -.83em 0 -.4em,-.338em -.758em 0 -.42em,-.555em -.617em 0 -.44em,-.671em -.488em 0 -.46em,-.749em -.34em 0 -.477em}38%{box-shadow:0 -.83em 0 -.4em,-.377em -.74em 0 -.42em,-.645em -.522em 0 -.44em,-.775em -.297em 0 -.46em,-.82em -.09em 0 -.477em}100%{box-shadow:0 -.83em 0 -.4em,0 -.83em 0 -.42em,0 -.83em 0 -.44em,0 -.83em 0 -.46em,0 -.83em 0 -.477em}}@-webkit-keyframes loading-trail-2{0%{-webkit-transform:translateX(-50%) translateY(-50%) rotate(0);transform:translateX(-50%) translateY(-50%) rotate(0)}100%{-webkit-transform:translateX(-50%) translateY(-50%) rotate(360deg);transform:translateX(-50%) translateY(-50%) rotate(360deg)}}@keyframes loading-trail-2{0%{-webkit-transform:translateX(-50%) translateY(-50%) rotate(0);transform:translateX(-50%) translateY(-50%) rotate(0)}100%{-webkit-transform:translateX(-50%) translateY(-50%) rotate(360deg);transform:translateX(-50%) translateY(-50%) rotate(360deg)}}.fg-loading-pulse .fg-loader,.fg-loading-pulse .fg-loader:after,.fg-loading-pulse .fg-loader:before{border-radius:50%;width:2.5em;height:2.5em;-webkit-animation:loading-pulse 1.8s infinite both paused ease-in-out;animation:loading-pulse 1.8s infinite both paused ease-in-out}.fg-loading-pulse .fg-loading .fg-loader,.fg-loading-pulse .fg-loading .fg-loader:after,.fg-loading-pulse .fg-loading .fg-loader:before{-webkit-animation-play-state:running;animation-play-state:running}.fg-loading-pulse .fg-loader{color:#828282;font-size:4px;margin-top:-3.75em;margin-left:-1.25em;text-indent:-9999em;-webkit-animation-delay:-.16s;animation-delay:-.16s}.fg-loading-pulse .fg-loader:after,.fg-loading-pulse .fg-loader:before{content:'';position:absolute;top:0}.fg-loading-pulse .fg-loader:before{left:-3.5em;-webkit-animation-delay:-.32s;animation-delay:-.32s}.fg-loading-pulse .fg-loader:after{left:3.5em}@-webkit-keyframes loading-pulse{0%,100%,80%{box-shadow:0 2.5em 0 -1.3em}40%{box-shadow:0 2.5em 0 0}}@keyframes loading-pulse{0%,100%,80%{box-shadow:0 2.5em 0 -1.3em}40%{box-shadow:0 2.5em 0 0}}.fg-loading-dots .fg-loader{color:#828282;font-size:5px;border-radius:50%;text-indent:-9999em;-webkit-animation:loading-dots 1.3s infinite paused linear;animation:loading-dots 1.3s infinite paused linear}.fg-loading-dots .fg-loading .fg-loader{-webkit-animation-play-state:running;animation-play-state:running}@-webkit-keyframes loading-dots{0%,100%{box-shadow:0 -3em 0 .2em,2em -2em 0 0,3em 0 0 -1em,2em 2em 0 -1em,0 3em 0 -1em,-2em 2em 0 -1em,-3em 0 0 -1em,-2em -2em 0 0}12.5%{box-shadow:0 -3em 0 0,2em -2em 0 .2em,3em 0 0 0,2em 2em 0 -1em,0 3em 0 -1em,-2em 2em 0 -1em,-3em 0 0 -1em,-2em -2em 0 -1em}25%{box-shadow:0 -3em 0 -.5em,2em -2em 0 0,3em 0 0 .2em,2em 2em 0 0,0 3em 0 -1em,-2em 2em 0 -1em,-3em 0 0 -1em,-2em -2em 0 -1em}37.5%{box-shadow:0 -3em 0 -1em,2em -2em 0 -1em,3em 0 0 0,2em 2em 0 .2em,0 3em 0 0,-2em 2em 0 -1em,-3em 0 0 -1em,-2em -2em 0 -1em}50%{box-shadow:0 -3em 0 -1em,2em -2em 0 -1em,3em 0 0 -1em,2em 2em 0 0,0 3em 0 .2em,-2em 2em 0 0,-3em 0 0 -1em,-2em -2em 0 -1em}62.5%{box-shadow:0 -3em 0 -1em,2em -2em 0 -1em,3em 0 0 -1em,2em 2em 0 -1em,0 3em 0 0,-2em 2em 0 .2em,-3em 0 0 0,-2em -2em 0 -1em}75%{box-shadow:0 -3em 0 -1em,2em -2em 0 -1em,3em 0 0 -1em,2em 2em 0 -1em,0 3em 0 -1em,-2em 2em 0 0,-3em 0 0 .2em,-2em -2em 0 0}87.5%{box-shadow:0 -3em 0 0,2em -2em 0 -1em,3em 0 0 -1em,2em 2em 0 -1em,0 3em 0 -1em,-2em 2em 0 0,-3em 0 0 0,-2em -2em 0 .2em}}@keyframes loading-dots{0%,100%{box-shadow:0 -3em 0 .2em,2em -2em 0 0,3em 0 0 -1em,2em 2em 0 -1em,0 3em 0 -1em,-2em 2em 0 -1em,-3em 0 0 -1em,-2em -2em 0 0}12.5%{box-shadow:0 -3em 0 0,2em -2em 0 .2em,3em 0 0 0,2em 2em 0 -1em,0 3em 0 -1em,-2em 2em 0 -1em,-3em 0 0 -1em,-2em -2em 0 -1em}25%{box-shadow:0 -3em 0 -.5em,2em -2em 0 0,3em 0 0 .2em,2em 2em 0 0,0 3em 0 -1em,-2em 2em 0 -1em,-3em 0 0 -1em,-2em -2em 0 -1em}37.5%{box-shadow:0 -3em 0 -1em,2em -2em 0 -1em,3em 0 0 0,2em 2em 0 .2em,0 3em 0 0,-2em 2em 0 -1em,-3em 0 0 -1em,-2em -2em 0 -1em}50%{box-shadow:0 -3em 0 -1em,2em -2em 0 -1em,3em 0 0 -1em,2em 2em 0 0,0 3em 0 .2em,-2em 2em 0 0,-3em 0 0 -1em,-2em -2em 0 -1em}62.5%{box-shadow:0 -3em 0 -1em,2em -2em 0 -1em,3em 0 0 -1em,2em 2em 0 -1em,0 3em 0 0,-2em 2em 0 .2em,-3em 0 0 0,-2em -2em 0 -1em}75%{box-shadow:0 -3em 0 -1em,2em -2em 0 -1em,3em 0 0 -1em,2em 2em 0 -1em,0 3em 0 -1em,-2em 2em 0 0,-3em 0 0 .2em,-2em -2em 0 0}87.5%{box-shadow:0 -3em 0 0,2em -2em 0 -1em,3em 0 0 -1em,2em 2em 0 -1em,0 3em 0 -1em,-2em 2em 0 0,-3em 0 0 0,-2em -2em 0 .2em}}.fg-loading-partial .fg-loader,.fg-loading-partial .fg-loader:after{border-radius:50%;width:10em;height:10em}.fg-loading-partial .fg-loader{font-size:4px;text-indent:-9999em;margin-top:0;margin-left:0;border-top:1.1em solid rgba(130,130,130,.2);border-right:1.1em solid rgba(130,130,130,.2);border-bottom:1.1em solid rgba(130,130,130,.2);border-left:1.1em solid #828282;-webkit-animation:loading-partial 1.1s infinite paused linear;animation:loading-partial 1.1s infinite paused linear}.fg-loading-partial .fg-loading .fg-loader{-webkit-animation-play-state:running;animation-play-state:running}@-webkit-keyframes loading-partial{0%{-webkit-transform:translateX(-50%) translateY(-50%) rotate(0);transform:translateX(-50%) translateY(-50%) rotate(0)}100%{-webkit-transform:translateX(-50%) translateY(-50%) rotate(360deg);transform:translateX(-50%) translateY(-50%) rotate(360deg)}}@keyframes loading-partial{0%{-webkit-transform:translateX(-50%) translateY(-50%) rotate(0);transform:translateX(-50%) translateY(-50%) rotate(0)}100%{-webkit-transform:translateX(-50%) translateY(-50%) rotate(360deg);transform:translateX(-50%) translateY(-50%) rotate(360deg)}}.foogallery.fg-loaded-drop .fg-item.fg-loaded,.foogallery.fg-loaded-fade-in .fg-item.fg-loaded,.foogallery.fg-loaded-flip .fg-item.fg-loaded,.foogallery.fg-loaded-fly .fg-item.fg-loaded,.foogallery.fg-loaded-scale-up .fg-item.fg-loaded,.foogallery.fg-loaded-slide-down .fg-item.fg-loaded,.foogallery.fg-loaded-slide-left .fg-item.fg-loaded,.foogallery.fg-loaded-slide-right .fg-item.fg-loaded,.foogallery.fg-loaded-slide-up .fg-item.fg-loaded,.foogallery.fg-loaded-swing-down .fg-item.fg-loaded{transition-timing-function:ease;transition-duration:650ms;transition-property:background-color,transform}.foogallery.fg-loaded-drop .fg-loaded .fg-item-inner,.foogallery.fg-loaded-fade-in .fg-loaded .fg-item-inner,.foogallery.fg-loaded-flip .fg-loaded .fg-item-inner,.foogallery.fg-loaded-fly .fg-loaded .fg-item-inner,.foogallery.fg-loaded-scale-up .fg-loaded .fg-item-inner,.foogallery.fg-loaded-slide-down .fg-loaded .fg-item-inner,.foogallery.fg-loaded-slide-left .fg-loaded .fg-item-inner,.foogallery.fg-loaded-slide-right .fg-loaded .fg-item-inner,.foogallery.fg-loaded-slide-up .fg-loaded .fg-item-inner,.foogallery.fg-loaded-swing-down .fg-loaded .fg-item-inner{transition-timing-function:ease;transition-duration:650ms}.foogallery.fg-loaded-drop .fg-item.fg-loaded,.foogallery.fg-loaded-flip .fg-item.fg-loaded,.foogallery.fg-loaded-fly .fg-item.fg-loaded,.foogallery.fg-loaded-swing-down .fg-item.fg-loaded{perspective:1300px}.foogallery.fg-loaded-drop .fg-item-inner{transition-property:visibility,opacity,transform;transform-style:preserve-3d;transform:translateZ(400px) translateY(100%) rotateX(-90deg)}.foogallery.fg-loaded-drop .fg-loaded .fg-item-inner{transform:translateZ(0) translateY(0) rotateX(0)}.foogallery.fg-loaded-fade-in .fg-item-inner{transition-property:visibility,opacity}.foogallery.fg-loaded-flip .fg-item-inner{transition-property:visibility,opacity,transform;backface-visibility:hidden;transform-style:preserve-3d;transform:rotateY(-180deg)}.foogallery.fg-loaded-flip .fg-loaded .fg-item-inner{transform:rotateY(0)}.foogallery.fg-loaded-fly .fg-item-inner{transition-property:visibility,opacity,transform;transform-style:preserve-3d;transform-origin:50% 50% -300px;transform:rotateX(-180deg)}.foogallery.fg-loaded-fly .fg-loaded .fg-item-inner{transform:rotateX(0)}.foogallery.fg-loaded-scale-up .fg-item-inner{transition-property:visibility,opacity,transform;transform:scale(.6)}.foogallery.fg-loaded-scale-up .fg-loaded .fg-item-inner{transform:scale(1)}.foogallery.fg-loaded-slide-up .fg-item-inner{transition-property:visibility,opacity,transform;transform:translateY(50%)}.foogallery.fg-loaded-slide-up .fg-loaded .fg-item-inner{transform:translateY(0)}.foogallery.fg-loaded-slide-down .fg-item-inner{transition-property:visibility,opacity,transform;transform:translateY(-50%)}.foogallery.fg-loaded-slide-down .fg-loaded .fg-item-inner{transform:translateY(0)}.foogallery.fg-loaded-slide-left .fg-item-inner{transition-property:visibility,opacity,transform;transform:translateX(50%)}.foogallery.fg-loaded-slide-left .fg-loaded .fg-item-inner{transform:translateX(0)}.foogallery.fg-loaded-slide-right .fg-item-inner{transition-property:visibility,opacity,transform;transform:translateX(-50%)}.foogallery.fg-loaded-slide-right .fg-loaded .fg-item-inner{transform:translateX(0)}.foogallery.fg-loaded-swing-down .fg-item-inner{transition-property:visibility,opacity,transform;transform-style:preserve-3d;transform-origin:0 0;transform:rotateX(-80deg)}.foogallery.fg-loaded-swing-down .fg-loaded .fg-item-inner{transform:rotateX(0)}.foogallery .fg-caption{visibility:hidden;opacity:0;position:absolute;z-index:8;width:100%;max-height:100%;overflow:hidden;font-family:-apple-system,system-ui,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-size:13px;font-weight:400;line-height:1.3;border:none;text-align:center;cursor:pointer;margin:0}.foogallery .fg-caption a{text-decoration:none}.foogallery .fg-caption a:hover{border-bottom:none}.foogallery .fg-caption-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:16px;font-weight:400;padding:5px}.foogallery .fg-caption-desc{padding:5px}.foogallery .fg-caption-title+.fg-caption-desc{padding-top:0}.foogallery.fg-caption-always .fg-item .fg-caption .fg-caption-inner:before{display:none}.foogallery.fg-caption-always .fg-item.fg-loaded .fg-caption{left:0;bottom:0;transition-timing-function:ease;transition-duration:.3s;transition-property:visibility,opacity;visibility:visible;opacity:1}.foogallery.fg-caption-always .fg-caption{text-align:left}.foogallery.fg-caption-hover .fg-caption .fg-caption-inner{width:100%;max-height:100%;position:absolute;top:50%;left:0;transform:translateY(-50%)}.foogallery.fg-caption-hover .fg-item.fg-loaded .fg-image-overlay{display:none}.foogallery.fg-c-l .fg-caption,.foogallery.fg-caption-always.fg-c-l .fg-caption{text-align:left}.foogallery.fg-c-c .fg-caption,.foogallery.fg-caption-always.fg-c-c .fg-caption{text-align:center}.foogallery.fg-c-r .fg-caption,.foogallery.fg-caption-always.fg-c-r .fg-caption{text-align:right}.foogallery.fg-c-j .fg-caption,.foogallery.fg-caption-always.fg-c-j .fg-caption{text-align:justify}.foogallery .fg-image-overlay:before{content:"";display:block;position:absolute;top:50%;left:50%;transform:translateX(-50%) translateY(-50%);width:32px;height:32px;background-size:32px 32px;background-position:center center;background-repeat:no-repeat}.foogallery .fg-caption-inner:before{content:"";display:none;position:relative;width:32px;height:32px;margin:10px auto 5px auto;background-size:32px 32px;vertical-align:middle;background-position:center center;background-repeat:no-repeat}.foogallery.fg-hover-circle-plus:not(.fg-preset) .fg-caption-inner:before,.foogallery.fg-hover-external:not(.fg-preset) .fg-caption-inner:before,.foogallery.fg-hover-eye:not(.fg-preset) .fg-caption-inner:before,.foogallery.fg-hover-plus:not(.fg-preset) .fg-caption-inner:before,.foogallery.fg-hover-tint:not(.fg-preset) .fg-caption-inner:before,.foogallery.fg-hover-zoom2:not(.fg-preset) .fg-caption-inner:before,.foogallery.fg-hover-zoom3:not(.fg-preset) .fg-caption-inner:before,.foogallery.fg-hover-zoom:not(.fg-preset) .fg-caption-inner:before,.foogallery.fg-video-1:not(.fg-preset) .fg-caption-inner:before,.foogallery.fg-video-2:not(.fg-preset) .fg-caption-inner:before,.foogallery.fg-video-3:not(.fg-preset) .fg-caption-inner:before,.foogallery.fg-video-4:not(.fg-preset) .fg-caption-inner:before,.foogallery.fg-video-default:not(.fg-preset) .fg-caption-inner:before{display:block}.foogallery.fg-hover-circle-plus:not(.fg-preset) .fg-item-inner:hover .fg-image-overlay,.foogallery.fg-hover-external:not(.fg-preset) .fg-item-inner:hover .fg-image-overlay,.foogallery.fg-hover-eye:not(.fg-preset) .fg-item-inner:hover .fg-image-overlay,.foogallery.fg-hover-plus:not(.fg-preset) .fg-item-inner:hover .fg-image-overlay,.foogallery.fg-hover-tint:not(.fg-preset) .fg-item-inner:hover .fg-image-overlay,.foogallery.fg-hover-zoom2:not(.fg-preset) .fg-item-inner:hover .fg-image-overlay,.foogallery.fg-hover-zoom3:not(.fg-preset) .fg-item-inner:hover .fg-image-overlay,.foogallery.fg-hover-zoom:not(.fg-preset) .fg-item-inner:hover .fg-image-overlay,.foogallery.fg-video-1:not(.fg-preset) .fg-type-video .fg-item-inner:hover .fg-image-overlay,.foogallery.fg-video-2:not(.fg-preset) .fg-type-video .fg-item-inner:hover .fg-image-overlay,.foogallery.fg-video-3:not(.fg-preset) .fg-type-video .fg-item-inner:hover .fg-image-overlay,.foogallery.fg-video-4:not(.fg-preset) .fg-type-video .fg-item-inner:hover .fg-image-overlay,.foogallery.fg-video-default:not(.fg-preset) .fg-type-video .fg-item-inner:hover .fg-image-overlay{visibility:visible;opacity:1}.foogallery.fg-video-sticky .fg-type-video.fg-loaded .fg-item-inner .fg-image-overlay{background-color:transparent;visibility:visible;opacity:1;display:block}.foogallery.fg-video-sticky .fg-type-video .fg-caption-inner:before{display:none}.foogallery.fg-hover-zoom .fg-caption-inner:before,.foogallery.fg-hover-zoom .fg-image-overlay:before{background-image:url(../img/icons.svg#zoom-light)}.foogallery.fg-light-overlays.fg-hover-zoom .fg-caption-inner:before,.foogallery.fg-light-overlays.fg-hover-zoom .fg-image-overlay:before{background-image:url(../img/icons.svg#zoom-dark)}.foogallery.fg-hover-zoom2 .fg-caption-inner:before,.foogallery.fg-hover-zoom2 .fg-image-overlay:before{background-image:url(../img/icons.svg#zoom2-light)}.foogallery.fg-light-overlays.fg-hover-zoom2 .fg-caption-inner:before,.foogallery.fg-light-overlays.fg-hover-zoom2 .fg-image-overlay:before{background-image:url(../img/icons.svg#zoom2-dark)}.foogallery.fg-hover-zoom3 .fg-caption-inner:before,.foogallery.fg-hover-zoom3 .fg-image-overlay:before{background-image:url(../img/icons.svg#zoom3-light)}.foogallery.fg-light-overlays.fg-hover-zoom3 .fg-caption-inner:before,.foogallery.fg-light-overlays.fg-hover-zoom3 .fg-image-overlay:before{background-image:url(../img/icons.svg#zoom3-dark)}.foogallery.fg-hover-plus .fg-caption-inner:before,.foogallery.fg-hover-plus .fg-image-overlay:before{background-image:url(../img/icons.svg#plus-light)}.foogallery.fg-light-overlays.fg-hover-plus .fg-caption-inner:before,.foogallery.fg-light-overlays.fg-hover-plus .fg-image-overlay:before{background-image:url(../img/icons.svg#plus-dark)}.foogallery.fg-hover-circle-plus .fg-caption-inner:before,.foogallery.fg-hover-circle-plus .fg-image-overlay:before{background-image:url(../img/icons.svg#circle-plus-light)}.foogallery.fg-light-overlays.fg-hover-circle-plus .fg-caption-inner:before,.foogallery.fg-light-overlays.fg-hover-circle-plus .fg-image-overlay:before{background-image:url(../img/icons.svg#circle-plus-dark)}.foogallery.fg-hover-eye .fg-caption-inner:before,.foogallery.fg-hover-eye .fg-image-overlay:before{background-image:url(../img/icons.svg#eye-light)}.foogallery.fg-light-overlays.fg-hover-eye .fg-caption-inner:before,.foogallery.fg-light-overlays.fg-hover-eye .fg-image-overlay:before{background-image:url(../img/icons.svg#eye-dark)}.foogallery.fg-hover-external .fg-caption-inner:before,.foogallery.fg-hover-external .fg-image-overlay:before{background-image:url(../img/icons.svg#external-light)}.foogallery.fg-light-overlays.fg-hover-external .fg-caption-inner:before,.foogallery.fg-light-overlays.fg-hover-external .fg-image-overlay:before{background-image:url(../img/icons.svg#external-dark)}.foogallery.fg-video-default .fg-type-video .fg-caption-inner:before,.foogallery.fg-video-default .fg-type-video .fg-image-overlay:before{background-image:url(../img/icons.svg#video-default-light)}.foogallery.fg-light-overlays.fg-video-default .fg-type-video .fg-caption-inner:before,.foogallery.fg-light-overlays.fg-video-default .fg-type-video .fg-image-overlay:before{background-image:url(../img/icons.svg#video-default-dark)}.foogallery.fg-video-1 .fg-type-video .fg-caption-inner:before,.foogallery.fg-video-1 .fg-type-video .fg-image-overlay:before{background-image:url(../img/icons.svg#video-1-light)}.foogallery.fg-light-overlays.fg-video-1 .fg-type-video .fg-caption-inner:before,.foogallery.fg-light-overlays.fg-video-1 .fg-type-video .fg-image-overlay:before{background-image:url(../img/icons.svg#video-1-dark)}.foogallery.fg-video-2 .fg-type-video .fg-caption-inner:before,.foogallery.fg-video-2 .fg-type-video .fg-image-overlay:before{background-image:url(../img/icons.svg#video-2-light)}.foogallery.fg-light-overlays.fg-video-2 .fg-type-video .fg-caption-inner:before,.foogallery.fg-light-overlays.fg-video-2 .fg-type-video .fg-image-overlay:before{background-image:url(../img/icons.svg#video-2-dark)}.foogallery.fg-video-3 .fg-type-video .fg-caption-inner:before,.foogallery.fg-video-3 .fg-type-video .fg-image-overlay:before{background-image:url(../img/icons.svg#video-3-light)}.foogallery.fg-light-overlays.fg-video-3 .fg-type-video .fg-caption-inner:before,.foogallery.fg-light-overlays.fg-video-3 .fg-type-video .fg-image-overlay:before{background-image:url(../img/icons.svg#video-3-dark)}.foogallery.fg-video-4 .fg-type-video .fg-caption-inner:before,.foogallery.fg-video-4 .fg-type-video .fg-image-overlay:before{background-image:url(../img/icons.svg#video-4-light)}.foogallery.fg-light-overlays.fg-video-4 .fg-type-video .fg-caption-inner:before,.foogallery.fg-light-overlays.fg-video-4 .fg-type-video .fg-image-overlay:before{background-image:url(../img/icons.svg#video-4-dark)}.foogallery.fg-caption-hover.fg-hover-colorize .fg-loaded .fg-caption,.foogallery.fg-caption-hover.fg-hover-fade .fg-loaded .fg-caption,.foogallery.fg-caption-hover.fg-hover-grayscale .fg-loaded .fg-caption,.foogallery.fg-caption-hover.fg-hover-instant .fg-loaded .fg-caption,.foogallery.fg-caption-hover.fg-hover-push .fg-loaded .fg-caption,.foogallery.fg-caption-hover.fg-hover-scale .fg-loaded .fg-caption,.foogallery.fg-caption-hover.fg-hover-slide-down .fg-loaded .fg-caption,.foogallery.fg-caption-hover.fg-hover-slide-left .fg-loaded .fg-caption,.foogallery.fg-caption-hover.fg-hover-slide-right .fg-loaded .fg-caption,.foogallery.fg-caption-hover.fg-hover-slide-up .fg-loaded .fg-caption,.foogallery.fg-hover-colorize .fg-loaded .fg-image,.foogallery.fg-hover-colorize .fg-loaded .fg-image-overlay,.foogallery.fg-hover-fade .fg-loaded .fg-image-overlay,.foogallery.fg-hover-grayscale .fg-loaded .fg-image,.foogallery.fg-hover-grayscale .fg-loaded .fg-image-overlay,.foogallery.fg-hover-instant .fg-loaded .fg-image-overlay,.foogallery.fg-hover-push .fg-loaded .fg-thumb,.foogallery.fg-hover-scale .fg-item.fg-loaded,.foogallery.fg-hover-scale .fg-loaded .fg-image-overlay,.foogallery.fg-hover-slide-down .fg-loaded .fg-image-overlay,.foogallery.fg-hover-slide-left .fg-loaded .fg-image-overlay,.foogallery.fg-hover-slide-right .fg-loaded .fg-image-overlay,.foogallery.fg-hover-slide-up .fg-loaded .fg-image-overlay,.foogallery.fg-hover-zoomed .fg-loaded .fg-image{transition-timing-function:ease;transition-duration:.3s;backface-visibility:hidden}.foogallery.fg-hover-colorize .fg-image{filter:url("data:image/svg+xml;utf8,<svg xmlns=\'http://www.w3.org/2000/svg\'><filter id=\'grayscale\'><feColorMatrix type=\'saturate\' values=\'0\'/></filter></svg>#grayscale");filter:gray;-webkit-filter:grayscale(100%);-webkit-transition-property:-webkit-filter;transition-property:filter}.foogallery.fg-hover-colorize .fg-item-inner:hover .fg-image{-webkit-filter:none;filter:none}.foogallery.fg-caption-hover.fg-hover-colorize .fg-caption,.foogallery.fg-hover-colorize .fg-image-overlay{display:block;left:0;top:0;bottom:0;transition-property:visibility,opacity,background-color}.foogallery.fg-caption-hover.fg-hover-colorize .fg-item-inner:hover .fg-caption,.foogallery.fg-hover-colorize .fg-item-inner:hover .fg-image-overlay{visibility:visible;opacity:1}.foogallery.fg-caption-hover.fg-hover-fade .fg-loaded .fg-caption,.foogallery.fg-hover-fade .fg-loaded .fg-image-overlay{display:block;left:0;top:0;bottom:0;transition-property:visibility,opacity,background-color}.foogallery.fg-caption-hover.fg-hover-fade .fg-loaded .fg-item-inner:hover .fg-caption,.foogallery.fg-hover-fade .fg-loaded .fg-item-inner:hover .fg-image-overlay{visibility:visible;opacity:1}.foogallery.fg-hover-grayscale .fg-image{-webkit-filter:none;filter:none;-webkit-transition-property:-webkit-filter;transition-property:filter}.foogallery.fg-hover-grayscale .fg-item-inner:hover .fg-image{-webkit-filter:grayscale(1);-webkit-filter:grayscale(100%);filter:grayscale(100%);filter:gray;opacity:1}.foogallery.fg-caption-hover.fg-hover-grayscale .fg-caption,.foogallery.fg-hover-grayscale .fg-image-overlay{display:block;left:0;top:0;bottom:0;transition-property:visibility,opacity,background-color}.foogallery.fg-caption-hover.fg-hover-grayscale .fg-item-inner:hover .fg-caption,.foogallery.fg-hover-grayscale .fg-item-inner:hover .fg-image-overlay{visibility:visible;opacity:1}.foogallery.fg-caption-hover.fg-hover-instant .fg-loaded .fg-caption,.foogallery.fg-hover-instant .fg-loaded .fg-image-overlay{display:block;left:0;top:0;bottom:0;transition-property:none}.foogallery.fg-caption-hover.fg-hover-instant .fg-loaded .fg-item-inner:hover .fg-caption,.foogallery.fg-hover-instant .fg-loaded .fg-item-inner:hover .fg-image-overlay{visibility:visible;opacity:1}.foogallery.fg-caption-hover.fg-hover-push .fg-loaded .fg-caption,.foogallery.fg-hover-push .fg-loaded .fg-image-overlay{display:block;left:0;top:0;bottom:0;transform:translateX(100%);visibility:visible;opacity:1}.foogallery.fg-caption-hover.fg-hover-push .fg-loaded .fg-caption,.foogallery.fg-hover-push .fg-loaded .fg-thumb{transition-property:transform}.foogallery.fg-caption-hover.fg-hover-push .fg-loaded .fg-item-inner:hover .fg-caption{transform:translateY(0)}.foogallery.fg-caption-hover.fg-hover-push .fg-loaded .fg-item-inner:hover .fg-thumb,.foogallery.fg-hover-push .fg-loaded .fg-item-inner:hover .fg-thumb{transform:translateX(-100%)}.foogallery.fg-hover-scale .fg-item{transition-property:transform;z-index:4}.foogallery.fg-hover-scale .fg-item:hover{transform:scale(1.048);z-index:10}.foogallery.fg-caption-hover.fg-hover-scale .fg-caption,.foogallery.fg-hover-scale .fg-image-overlay{display:block;left:0;top:0;bottom:0;transition-property:visibility,opacity,background-color}.foogallery.fg-caption-hover.fg-hover-scale .fg-item-inner:hover .fg-caption,.foogallery.fg-hover-scale .fg-item-inner:hover .fg-image-overlay{visibility:visible;opacity:1}.foogallery.fg-hover-zoomed .fg-image{transition-property:transform;z-index:4}.foogallery.fg-hover-zoomed .fg-item:hover .fg-image{transform:scale(1.15)}.foogallery.fg-hover-zoomed .fg-image-wrap{overflow:hidden}.foogallery.fg-caption-hover.fg-hover-zoomed .fg-caption,.foogallery.fg-hover-zoomed .fg-image-overlay{display:block;left:0;top:0;bottom:0;transition-property:visibility,opacity,background-color}.foogallery.fg-caption-hover.fg-hover-zoomed .fg-item-inner:hover .fg-caption,.foogallery.fg-hover-zoomed .fg-item-inner:hover .fg-image-overlay{visibility:visible;opacity:1}.foogallery.fg-caption-hover.fg-hover-slide-down .fg-loaded .fg-caption,.foogallery.fg-caption-hover.fg-hover-slide-left .fg-loaded .fg-caption,.foogallery.fg-caption-hover.fg-hover-slide-right .fg-loaded .fg-caption,.foogallery.fg-caption-hover.fg-hover-slide-up .fg-loaded .fg-caption,.foogallery.fg-hover-slide-down .fg-loaded .fg-image-overlay,.foogallery.fg-hover-slide-left .fg-loaded .fg-image-overlay,.foogallery.fg-hover-slide-right .fg-loaded .fg-image-overlay,.foogallery.fg-hover-slide-up .fg-loaded .fg-image-overlay{display:block;left:0;top:0;bottom:0;transition-property:transform,background-color,opacity,visibility;visibility:visible;opacity:1}.foogallery.fg-caption-hover.fg-hover-slide-down .fg-loaded .fg-item-inner:hover .fg-caption,.foogallery.fg-caption-hover.fg-hover-slide-left .fg-loaded .fg-item-inner:hover .fg-caption,.foogallery.fg-caption-hover.fg-hover-slide-right .fg-loaded .fg-item-inner:hover .fg-caption,.foogallery.fg-caption-hover.fg-hover-slide-up .fg-loaded .fg-item-inner:hover .fg-caption,.foogallery.fg-hover-slide-down .fg-loaded .fg-item-inner:hover .fg-image-overlay,.foogallery.fg-hover-slide-left .fg-loaded .fg-item-inner:hover .fg-image-overlay,.foogallery.fg-hover-slide-right .fg-loaded .fg-item-inner:hover .fg-image-overlay,.foogallery.fg-hover-slide-up .fg-loaded .fg-item-inner:hover .fg-image-overlay{transform:translateY(0) translateX(0)}.foogallery.fg-caption-hover.fg-hover-slide-up .fg-loaded .fg-caption,.foogallery.fg-hover-slide-up .fg-loaded .fg-image-overlay{transform:translateY(100%)}.foogallery.fg-caption-hover.fg-hover-slide-down .fg-loaded .fg-caption,.foogallery.fg-hover-slide-down .fg-loaded .fg-image-overlay{transform:translateY(-100%)}.foogallery.fg-caption-hover.fg-hover-slide-left .fg-loaded .fg-caption,.foogallery.fg-hover-slide-left .fg-loaded .fg-image-overlay{transform:translateX(100%)}.foogallery.fg-caption-hover.fg-hover-slide-right .fg-loaded .fg-caption,.foogallery.fg-hover-slide-right .fg-loaded .fg-image-overlay{transform:translateX(-100%)}.fg-paging-container,.fg-paging-container *,.fg-paging-container :after,.fg-paging-container :before{box-sizing:border-box}.fg-paging-container{display:block;padding:15px;margin-top:0!important;margin-bottom:0!important;margin-left:auto;margin-right:auto;text-align:center;font-family:-apple-system,system-ui,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.fg-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.fg-ph-dots:after{display:block;content:'';width:0;height:22px}.fg-paging-container .fg-dot-item,.fg-paging-container .fg-dots{display:inline-block;margin:0;padding:0;outline:0;list-style:none}.fg-paging-container .fg-dot-item .fg-dot-link{display:inline-block;margin:3px;font-weight:400;line-height:1.42857143;text-align:center;white-space:nowrap;vertical-align:middle;cursor:pointer;user-select:none;background-image:none;text-decoration:none;border:1px solid transparent;position:relative;border-radius:50%;padding:0;font-size:0;outline:0;color:transparent;box-shadow:none}.fg-paging-container .fg-dot-item .fg-dot-link:before{content:"";background-color:transparent;border:1px solid transparent;display:block;border-radius:50%;width:9px;height:9px;padding:0;margin:2px}.fg-paging-container .fg-dot-item .fg-dot-link:active,.fg-paging-container .fg-dot-item .fg-dot-link:focus,.fg-paging-container .fg-dot-item .fg-dot-link:hover{text-decoration:none;box-shadow:none;outline:0}.fg-paging-container .fg-dot-item.fg-disabled .fg-dot-link,.fg-paging-container .fg-dot-item.fg-selected .fg-dot-link{cursor:not-allowed;pointer-events:none}.fg-paging-container .fg-dot-item.fg-disabled .fg-dot-link{cursor:not-allowed;pointer-events:none;outline:0}.fg-paging-container.fg-light .fg-dot-item .fg-dot-link,.fg-paging-container.fg-light .fg-dot-item .fg-dot-link:before{transition-timing-function:ease-out;transition-duration:.3s;transition-property:color,border-color,background-color}.fg-paging-container.fg-light .fg-dot-item .fg-dot-link{background-color:#eee;border-color:#9d9d9d}.fg-paging-container.fg-light .fg-dot-item.fg-selected .fg-dot-link{border-color:#888}.fg-paging-container.fg-light .fg-dot-item .fg-dot-link:focus:before,.fg-paging-container.fg-light .fg-dot-item .fg-dot-link:hover:before,.fg-paging-container.fg-light .fg-dot-item.fg-selected .fg-dot-link:before{background-color:#666;border-color:#888}.fg-paging-container.fg-light .fg-dot-item.fg-disabled .fg-dot-link,.fg-paging-container.fg-light .fg-dot-item.fg-disabled .fg-dot-link:focus,.fg-paging-container.fg-light .fg-dot-item.fg-disabled .fg-dot-link:hover{background-color:#eee;border-color:#9d9d9d;opacity:.5}.fg-paging-container.fg-dark .fg-dot-item .fg-dot-link,.fg-paging-container.fg-dark .fg-dot-item .fg-dot-link:before{transition-timing-function:ease-out;transition-duration:.3s;transition-property:color,border-color,background-color}.fg-paging-container.fg-dark .fg-dot-item .fg-dot-link{background-color:#666;border-color:#333}.fg-paging-container.fg-dark .fg-dot-item.fg-selected .fg-dot-link{border-color:#444}.fg-paging-container.fg-dark .fg-dot-item .fg-dot-link:focus:before,.fg-paging-container.fg-dark .fg-dot-item .fg-dot-link:hover:before,.fg-paging-container.fg-dark .fg-dot-item.fg-selected .fg-dot-link:before{background-color:#333;border-color:#444}.fg-paging-container.fg-dark .fg-dot-item.fg-disabled .fg-dot-link,.fg-paging-container.fg-dark .fg-dot-item.fg-disabled .fg-dot-link:focus,.fg-paging-container.fg-dark .fg-dot-item.fg-disabled .fg-dot-link:hover{background-color:#666;border-color:#333;opacity:.5}.fg-paging-container,.fg-paging-container *,.fg-paging-container :after,.fg-paging-container :before{box-sizing:border-box}.fg-paging-container{display:block;padding:15px;margin-top:0!important;margin-bottom:0!important;margin-left:auto;margin-right:auto;text-align:center;font-family:-apple-system,system-ui,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.fg-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.fg-ph-dots:after{display:block;content:'';width:0;height:22px}.fg-paging-container .fg-dot-item,.fg-paging-container .fg-dots{display:inline-block;margin:0;padding:0;outline:0;list-style:none}.fg-paging-container .fg-dot-item .fg-dot-link{display:inline-block;margin:3px;font-weight:400;line-height:1.42857143;text-align:center;white-space:nowrap;vertical-align:middle;cursor:pointer;user-select:none;background-image:none;text-decoration:none;border:1px solid transparent;position:relative;border-radius:50%;padding:0;font-size:0;outline:0;color:transparent;box-shadow:none}.fg-paging-container .fg-dot-item .fg-dot-link:before{content:"";background-color:transparent;border:1px solid transparent;display:block;border-radius:50%;width:9px;height:9px;padding:0;margin:2px}.fg-paging-container .fg-dot-item .fg-dot-link:active,.fg-paging-container .fg-dot-item .fg-dot-link:focus,.fg-paging-container .fg-dot-item .fg-dot-link:hover{text-decoration:none;box-shadow:none;outline:0}.fg-paging-container .fg-dot-item.fg-disabled .fg-dot-link,.fg-paging-container .fg-dot-item.fg-selected .fg-dot-link{cursor:not-allowed;pointer-events:none}.fg-paging-container .fg-dot-item.fg-disabled .fg-dot-link{cursor:not-allowed;pointer-events:none;outline:0}.fg-paging-container.fg-light .fg-dot-item .fg-dot-link,.fg-paging-container.fg-light .fg-dot-item .fg-dot-link:before{transition-timing-function:ease-out;transition-duration:.3s;transition-property:color,border-color,background-color}.fg-paging-container.fg-light .fg-dot-item .fg-dot-link{background-color:#eee;border-color:#9d9d9d}.fg-paging-container.fg-light .fg-dot-item.fg-selected .fg-dot-link{border-color:#888}.fg-paging-container.fg-light .fg-dot-item .fg-dot-link:focus:before,.fg-paging-container.fg-light .fg-dot-item .fg-dot-link:hover:before,.fg-paging-container.fg-light .fg-dot-item.fg-selected .fg-dot-link:before{background-color:#666;border-color:#888}.fg-paging-container.fg-light .fg-dot-item.fg-disabled .fg-dot-link,.fg-paging-container.fg-light .fg-dot-item.fg-disabled .fg-dot-link:focus,.fg-paging-container.fg-light .fg-dot-item.fg-disabled .fg-dot-link:hover{background-color:#eee;border-color:#9d9d9d;opacity:.5}.fg-paging-container.fg-dark .fg-dot-item .fg-dot-link,.fg-paging-container.fg-dark .fg-dot-item .fg-dot-link:before{transition-timing-function:ease-out;transition-duration:.3s;transition-property:color,border-color,background-color}.fg-paging-container.fg-dark .fg-dot-item .fg-dot-link{background-color:#666;border-color:#333}.fg-paging-container.fg-dark .fg-dot-item.fg-selected .fg-dot-link{border-color:#444}.fg-paging-container.fg-dark .fg-dot-item .fg-dot-link:focus:before,.fg-paging-container.fg-dark .fg-dot-item .fg-dot-link:hover:before,.fg-paging-container.fg-dark .fg-dot-item.fg-selected .fg-dot-link:before{background-color:#333;border-color:#444}.fg-paging-container.fg-dark .fg-dot-item.fg-disabled .fg-dot-link,.fg-paging-container.fg-dark .fg-dot-item.fg-disabled .fg-dot-link:focus,.fg-paging-container.fg-dark .fg-dot-item.fg-disabled .fg-dot-link:hover{background-color:#666;border-color:#333;opacity:.5}.fg-default:after{content:'';display:block;clear:both}.fg-default .fg-item{display:inline-block;vertical-align:top;max-width:100%}.fg-default .fg-item-inner,.fg-default .fg-thumb{display:block;vertical-align:top;max-width:100%}.fg-default .fg-image{border-radius:0;display:block;max-width:100%;height:auto;margin:0;padding:0}.fg-default .fg-image{vertical-align:top}.fg-default.fg-left{text-align:left}.fg-default.fg-center{text-align:center}.fg-default.fg-right{text-align:right}.fg-default.fg-gutter-5{padding-left:5px;margin-bottom:-5px}.fg-default.fg-gutter-5 .fg-item{margin-right:5px;margin-bottom:5px}.fg-default.fg-gutter-10{padding-left:10px;margin-bottom:-10px}.fg-default.fg-gutter-10 .fg-item{margin-right:10px;margin-bottom:10px}.fg-default.fg-gutter-15{padding-left:15px;margin-bottom:-15px}.fg-default.fg-gutter-15 .fg-item{margin-right:15px;margin-bottom:15px}.fg-default.fg-gutter-20{padding-left:20px;margin-bottom:-20px}.fg-default.fg-gutter-20 .fg-item{margin-right:20px;margin-bottom:20px}.fg-default.fg-gutter-25{padding-left:25px;margin-bottom:-25px}.fg-default.fg-gutter-25 .fg-item{margin-right:25px;margin-bottom:25px}@media only screen and (max-width:600px){.fg-default.fg-m-col1 .fg-image,.fg-default.fg-m-col2 .fg-image,.fg-default.fg-m-col3 .fg-image{width:100%}.fg-default.fg-m-col1.fg-gutter-5 .fg-item{width:calc(100% - 10px);min-width:calc(100% - 10px);max-width:calc(100% - 10px)}.fg-default.fg-m-col2.fg-gutter-5 .fg-item{width:calc(50% - 10px);min-width:calc(50% - 10px);max-width:calc(50% - 10px)}.fg-default.fg-m-col3.fg-gutter-5 .fg-item{width:calc(33.33% - 10px);min-width:calc(33.33% - 10px);max-width:calc(33.33% - 10px)}.fg-default.fg-m-col1.fg-gutter-10 .fg-item{width:calc(100% - 20px);min-width:calc(100% - 20px);max-width:calc(100% - 20px)}.fg-default.fg-m-col2.fg-gutter-10 .fg-item{width:calc(50% - 20px);min-width:calc(50% - 20px);max-width:calc(50% - 20px)}.fg-default.fg-m-col3.fg-gutter-10 .fg-item{width:calc(33.33% - 20px);min-width:calc(33.33% - 20px);max-width:calc(33.33% - 20px)}.fg-default.fg-m-col1.fg-gutter-15 .fg-item{width:calc(100% - 30px);min-width:calc(100% - 30px);max-width:calc(100% - 30px)}.fg-default.fg-m-col2.fg-gutter-15 .fg-item{width:calc(50% - 30px);min-width:calc(50% - 30px);max-width:calc(50% - 30px)}.fg-default.fg-m-col3.fg-gutter-15 .fg-item{width:calc(33.33% - 30px);min-width:calc(33.33% - 30px);max-width:calc(33.33% - 30px)}.fg-default.fg-m-col1.fg-gutter-20 .fg-item{width:calc(100% - 40px);min-width:calc(100% - 40px);max-width:calc(100% - 40px)}.fg-default.fg-m-col2.fg-gutter-20 .fg-item{width:calc(50% - 40px);min-width:calc(50% - 40px);max-width:calc(50% - 40px)}.fg-default.fg-m-col3.fg-gutter-20 .fg-item{width:calc(33.33% - 40px);min-width:calc(33.33% - 40px);max-width:calc(33.33% - 40px)}.fg-default.fg-m-col1.fg-gutter-25 .fg-item{width:calc(100% - 50px);min-width:calc(100% - 50px);max-width:calc(100% - 50px)}.fg-default.fg-m-col2.fg-gutter-25 .fg-item{width:calc(50% - 50px);min-width:calc(50% - 50px);max-width:calc(50% - 50px)}.fg-default.fg-m-col3.fg-gutter-25 .fg-item{width:calc(33.33% - 50px);min-width:calc(33.33% - 50px);max-width:calc(33.33% - 50px)}}.fg-masonry *{box-sizing:border-box}.foogallery.fg-masonry{margin:0 auto;text-align:center}.fg-masonry .fg-thumb{display:block}.fg-masonry.fg-fixed .fg-column-width,.fg-masonry.fg-fixed .fg-image,.fg-masonry.fg-fixed .fg-item{max-width:100%}.fg-masonry .fg-column-width{display:inline-block;border:solid 0 transparent}.fg-masonry .fg-column-width,.fg-masonry .fg-gutter-width{position:absolute;height:0;visibility:hidden;opacity:0;pointer-events:none}.fg-masonry.fg-col2 .fg-image,.fg-masonry.fg-col3 .fg-image,.fg-masonry.fg-col4 .fg-image,.fg-masonry.fg-col5 .fg-image,.fg-masonry.fg-col6 .fg-image{width:100%;height:auto;max-width:100%}.fg-masonry .fg-item{line-height:0;font-size:0;vertical-align:top}.fg-masonry.fg-col2 .fg-item{margin-bottom:1%;width:49.5%}.fg-masonry.fg-col2 .fg-column-width{width:49.5%}.fg-masonry.fg-col2 .fg-gutter-width{width:1%}.fg-masonry.fg-col2.fg-gutter-none .fg-item{margin-bottom:0;width:50%}.fg-masonry.fg-col2.fg-gutter-none .fg-column-width{width:50%}.fg-masonry.fg-col2.fg-gutter-none .fg-gutter-width{width:0}.fg-masonry.fg-col2.fg-gutter-large .fg-item{margin-bottom:3%;width:48.5%}.fg-masonry.fg-col2.fg-gutter-large .fg-column-width{width:48.5%}.fg-masonry.fg-col2.fg-gutter-large .fg-gutter-width{width:3%}.fg-masonry.fg-col3 .fg-item{margin-bottom:1%;width:32.66%}.fg-masonry.fg-col3 .fg-column-width{width:32.66%}.fg-masonry.fg-col3 .fg-gutter-width{width:1%}.fg-masonry.fg-col3.fg-gutter-none .fg-item{margin-bottom:0;width:33.33%}.fg-masonry.fg-col3.fg-gutter-none .fg-column-width{width:33.33%}.fg-masonry.fg-col3.fg-gutter-none .fg-gutter-width{width:0}.fg-masonry.fg-col3.fg-gutter-large .fg-item{margin-bottom:3%;width:31.33%}.fg-masonry.fg-col3.fg-gutter-large .fg-column-width{width:31.33%}.fg-masonry.fg-col3.fg-gutter-large .fg-gutter-width{width:3%}.fg-masonry.fg-col4 .fg-item{margin-bottom:1%;width:24.25%}.fg-masonry.fg-col4 .fg-column-width{width:24.25%}.fg-masonry.fg-col4 .fg-gutter-width{width:1%}.fg-masonry.fg-col4.fg-gutter-none .fg-item{margin-bottom:0;width:25%}.fg-masonry.fg-col4.fg-gutter-none .fg-column-width{width:25%}.fg-masonry.fg-col4.fg-gutter-none .fg-gutter-width{width:0}.fg-masonry.fg-col4.fg-gutter-large .fg-item{margin-bottom:3%;width:22.75%}.fg-masonry.fg-col4.fg-gutter-large .fg-column-width{width:22.75%}.fg-masonry.fg-col4.fg-gutter-large .fg-gutter-width{width:3%}.fg-masonry.fg-col5 .fg-item{margin-bottom:1%;width:19.2%}.fg-masonry.fg-col5 .fg-column-width{width:19.2%}.fg-masonry.fg-col5 .fg-gutter-width{width:1%}.fg-masonry.fg-col5.fg-gutter-none .fg-item{margin-bottom:0;width:20%}.fg-masonry.fg-col5.fg-gutter-none .fg-column-width{width:20%}.fg-masonry.fg-col5.fg-gutter-none .fg-gutter-width{width:0}.fg-masonry.fg-col5.fg-gutter-large .fg-item{margin-bottom:3%;width:17.6%}.fg-masonry.fg-col5.fg-gutter-large .fg-column-width{width:17.6%}.fg-masonry.fg-col5.fg-gutter-large .fg-gutter-width{width:3%}.fg-masonry.fg-col6 .fg-item{margin-bottom:1%;width:15.83%}.fg-masonry.fg-col6 .fg-column-width{width:15.83%}.fg-masonry.fg-col6 .fg-gutter-width{width:1%}.fg-masonry.fg-col6.fg-gutter-none .fg-item{margin-bottom:0;width:16.66%}.fg-masonry.fg-col6.fg-gutter-none .fg-column-width{width:16.66%}.fg-masonry.fg-col6.fg-gutter-none .fg-gutter-width{width:0}.fg-masonry.fg-col6.fg-gutter-large .fg-item{margin-bottom:3%;width:14.16%}.fg-masonry.fg-col6.fg-gutter-large .fg-column-width{width:14.16%}.fg-masonry.fg-col6.fg-gutter-large .fg-gutter-width{width:3%}@media screen and (max-width:1280px){.fg-masonry.fg-col6 .fg-item{margin-bottom:1%;width:19.2%}.fg-masonry.fg-col6 .fg-column-width{width:19.2%}.fg-masonry.fg-col6 .fg-gutter-width{width:1%}.fg-masonry.fg-col6.fg-gutter-none .fg-item{margin-bottom:0;width:20%}.fg-masonry.fg-col6.fg-gutter-none .fg-column-width{width:20%}.fg-masonry.fg-col6.fg-gutter-none .fg-gutter-width{width:0}.fg-masonry.fg-col6.fg-gutter-large .fg-item{margin-bottom:3%;width:17.6%}.fg-masonry.fg-col6.fg-gutter-large .fg-column-width{width:17.6%}.fg-masonry.fg-col6.fg-gutter-large .fg-gutter-width{width:3%}}@media screen and (max-width:1024px){.fg-masonry.fg-col5 .fg-item,.fg-masonry.fg-col6 .fg-item{margin-bottom:1%;width:24.25%}.fg-masonry.fg-col5 .fg-column-width,.fg-masonry.fg-col6 .fg-column-width{width:24.25%}.fg-masonry.fg-col5 .fg-gutter-width,.fg-masonry.fg-col6 .fg-gutter-width{width:1%}.fg-masonry.fg-col5.fg-gutter-none .fg-item,.fg-masonry.fg-col6.fg-gutter-none .fg-item{margin-bottom:0;width:25%}.fg-masonry.fg-col5.fg-gutter-none .fg-column-width,.fg-masonry.fg-col6.fg-gutter-none .fg-column-width{width:25%}.fg-masonry.fg-col5.fg-gutter-none .fg-gutter-width,.fg-masonry.fg-col6.fg-gutter-none .fg-gutter-width{width:0}.fg-masonry.fg-col5.fg-gutter-large .fg-item,.fg-masonry.fg-col6.fg-gutter-large .fg-item{margin-bottom:3%;width:22.75%}.fg-masonry.fg-col5.fg-gutter-large .fg-column-width,.fg-masonry.fg-col6.fg-gutter-large .fg-column-width{width:22.75%}.fg-masonry.fg-col5.fg-gutter-large .fg-gutter-width,.fg-masonry.fg-col6.fg-gutter-large .fg-gutter-width{width:3%}}@media screen and (max-width:720px){.fg-masonry.fg-col4 .fg-item,.fg-masonry.fg-col5 .fg-item,.fg-masonry.fg-col6 .fg-item{margin-bottom:1%;width:32.66%}.fg-masonry.fg-col4 .fg-column-width,.fg-masonry.fg-col5 .fg-column-width,.fg-masonry.fg-col6 .fg-column-width{width:32.66%}.fg-masonry.fg-col4 .fg-gutter-width,.fg-masonry.fg-col5 .fg-gutter-width,.fg-masonry.fg-col6 .fg-gutter-width{width:1%}.fg-masonry.fg-col4.fg-gutter-none .fg-item,.fg-masonry.fg-col5.fg-gutter-none .fg-item,.fg-masonry.fg-col6.fg-gutter-none .fg-item{margin-bottom:0;width:33.33%}.fg-masonry.fg-col4.fg-gutter-none .fg-column-width,.fg-masonry.fg-col5.fg-gutter-none .fg-column-width,.fg-masonry.fg-col6.fg-gutter-none .fg-column-width{width:33.33%}.fg-masonry.fg-col4.fg-gutter-none .fg-gutter-width,.fg-masonry.fg-col5.fg-gutter-none .fg-gutter-width,.fg-masonry.fg-col6.fg-gutter-none .fg-gutter-width{width:0}.fg-masonry.fg-col4.fg-gutter-large .fg-item,.fg-masonry.fg-col5.fg-gutter-large .fg-item,.fg-masonry.fg-col6.fg-gutter-large .fg-item{margin-bottom:3%;width:31.33%}.fg-masonry.fg-col4.fg-gutter-large .fg-column-width,.fg-masonry.fg-col5.fg-gutter-large .fg-column-width,.fg-masonry.fg-col6.fg-gutter-large .fg-column-width{width:31.33%}.fg-masonry.fg-col4.fg-gutter-large .fg-gutter-width,.fg-masonry.fg-col5.fg-gutter-large .fg-gutter-width,.fg-masonry.fg-col6.fg-gutter-large .fg-gutter-width{width:3%}}@media screen and (max-width:480px){.fg-masonry.fg-col3 .fg-item,.fg-masonry.fg-col4 .fg-item,.fg-masonry.fg-col5 .fg-item,.fg-masonry.fg-col6 .fg-item{margin-bottom:1%;width:49.5%}.fg-masonry.fg-col3 .fg-column-width,.fg-masonry.fg-col4 .fg-column-width,.fg-masonry.fg-col5 .fg-column-width,.fg-masonry.fg-col6 .fg-column-width{width:49.5%}.fg-masonry.fg-col3 .fg-gutter-width,.fg-masonry.fg-col4 .fg-gutter-width,.fg-masonry.fg-col5 .fg-gutter-width,.fg-masonry.fg-col6 .fg-gutter-width{width:1%}.fg-masonry.fg-col3.fg-gutter-none .fg-item,.fg-masonry.fg-col4.fg-gutter-none .fg-item,.fg-masonry.fg-col5.fg-gutter-none .fg-item,.fg-masonry.fg-col6.fg-gutter-none .fg-item{margin-bottom:0;width:50%}.fg-masonry.fg-col3.fg-gutter-none .fg-column-width,.fg-masonry.fg-col4.fg-gutter-none .fg-column-width,.fg-masonry.fg-col5.fg-gutter-none .fg-column-width,.fg-masonry.fg-col6.fg-gutter-none .fg-column-width{width:50%}.fg-masonry.fg-col3.fg-gutter-none .fg-gutter-width,.fg-masonry.fg-col4.fg-gutter-none .fg-gutter-width,.fg-masonry.fg-col5.fg-gutter-none .fg-gutter-width,.fg-masonry.fg-col6.fg-gutter-none .fg-gutter-width{width:0}.fg-masonry.fg-col3.fg-gutter-large .fg-item,.fg-masonry.fg-col4.fg-gutter-large .fg-item,.fg-masonry.fg-col5.fg-gutter-large .fg-item,.fg-masonry.fg-col6.fg-gutter-large .fg-item{margin-bottom:3%;width:48.5%}.fg-masonry.fg-col3.fg-gutter-large .fg-column-width,.fg-masonry.fg-col4.fg-gutter-large .fg-column-width,.fg-masonry.fg-col5.fg-gutter-large .fg-column-width,.fg-masonry.fg-col6.fg-gutter-large .fg-column-width{width:48.5%}.fg-masonry.fg-col3.fg-gutter-large .fg-gutter-width,.fg-masonry.fg-col4.fg-gutter-large .fg-gutter-width,.fg-masonry.fg-col5.fg-gutter-large .fg-gutter-width,.fg-masonry.fg-col6.fg-gutter-large .fg-gutter-width{width:3%}}@media screen and (max-width:320px){.fg-masonry.fg-col2 .fg-item,.fg-masonry.fg-col3 .fg-item,.fg-masonry.fg-col4 .fg-item,.fg-masonry.fg-col5 .fg-item,.fg-masonry.fg-col6 .fg-item{margin-bottom:1%;width:100%}.fg-masonry.fg-col2 .fg-column-width,.fg-masonry.fg-col3 .fg-column-width,.fg-masonry.fg-col4 .fg-column-width,.fg-masonry.fg-col5 .fg-column-width,.fg-masonry.fg-col6 .fg-column-width{width:100%}.fg-masonry.fg-col2 .fg-gutter-width,.fg-masonry.fg-col3 .fg-gutter-width,.fg-masonry.fg-col4 .fg-gutter-width,.fg-masonry.fg-col5 .fg-gutter-width,.fg-masonry.fg-col6 .fg-gutter-width{width:0}.fg-masonry.fg-col2.fg-gutter-none .fg-item,.fg-masonry.fg-col3.fg-gutter-none .fg-item,.fg-masonry.fg-col4.fg-gutter-none .fg-item,.fg-masonry.fg-col5.fg-gutter-none .fg-item,.fg-masonry.fg-col6.fg-gutter-none .fg-item{margin-bottom:0;width:100%}.fg-masonry.fg-col2.fg-gutter-none .fg-column-width,.fg-masonry.fg-col3.fg-gutter-none .fg-column-width,.fg-masonry.fg-col4.fg-gutter-none .fg-column-width,.fg-masonry.fg-col5.fg-gutter-none .fg-column-width,.fg-masonry.fg-col6.fg-gutter-none .fg-column-width{width:100%}.fg-masonry.fg-col2.fg-gutter-none .fg-gutter-width,.fg-masonry.fg-col3.fg-gutter-none .fg-gutter-width,.fg-masonry.fg-col4.fg-gutter-none .fg-gutter-width,.fg-masonry.fg-col5.fg-gutter-none .fg-gutter-width,.fg-masonry.fg-col6.fg-gutter-none .fg-gutter-width{width:0}.fg-masonry.fg-col2.fg-gutter-large .fg-item,.fg-masonry.fg-col3.fg-gutter-large .fg-item,.fg-masonry.fg-col4.fg-gutter-large .fg-item,.fg-masonry.fg-col5.fg-gutter-large .fg-item,.fg-masonry.fg-col6.fg-gutter-large .fg-item{margin-bottom:3%;width:100%}.fg-masonry.fg-col2.fg-gutter-large .fg-column-width,.fg-masonry.fg-col3.fg-gutter-large .fg-column-width,.fg-masonry.fg-col4.fg-gutter-large .fg-column-width,.fg-masonry.fg-col5.fg-gutter-large .fg-column-width,.fg-masonry.fg-col6.fg-gutter-large .fg-column-width{width:100%}.fg-masonry.fg-col2.fg-gutter-large .fg-gutter-width,.fg-masonry.fg-col3.fg-gutter-large .fg-gutter-width,.fg-masonry.fg-col4.fg-gutter-large .fg-gutter-width,.fg-masonry.fg-col5.fg-gutter-large .fg-gutter-width,.fg-masonry.fg-col6.fg-gutter-large .fg-gutter-width{width:0}}.foogallery.fg-border-thin .fg-column-width{border-width:4px}.foogallery.fg-border-medium .fg-column-width{border-width:10px}.foogallery.fg-border-thick .fg-column-width{border-width:16px}.foogallery.fg-masonry.fg-captions-bottom .fg-item-inner .fg-caption{visibility:visible;opacity:1;font-size:13px;position:relative;display:block;top:auto;bottom:auto;left:auto;right:auto;width:auto;height:auto;text-transform:none;transform:none;transition:none;background-color:transparent;border-style:solid;border-color:transparent;text-align:left}.foogallery.fg-masonry.fg-captions-bottom.fg-c-l .fg-item-inner .fg-caption{text-align:left}.foogallery.fg-masonry.fg-captions-bottom.fg-c-c .fg-item-inner .fg-caption{text-align:center}.foogallery.fg-masonry.fg-captions-bottom.fg-c-r .fg-item-inner .fg-caption{text-align:right}.foogallery.fg-masonry.fg-captions-bottom.fg-c-j .fg-item-inner .fg-caption{text-align:justify}.foogallery.fg-masonry.fg-captions-bottom .fg-item-inner:hover .fg-caption{transform:none;transition:none}.foogallery.fg-masonry.fg-captions-bottom .fg-item-inner .fg-caption-inner{display:block;position:relative;max-height:none;top:auto;bottom:auto;left:auto;right:auto;width:auto;height:auto;border:none;transform:none;transition:none}.foogallery.fg-masonry.fg-captions-bottom .fg-item-inner .fg-caption-inner:before{display:none}.foogallery.fg-masonry.fg-captions-bottom.fg-caption-hover .fg-item-inner .fg-image-overlay{display:block}.foogallery.fg-masonry.fg-captions-bottom.fg-caption-always .fg-item-inner:hover .fg-caption{visibility:visible;opacity:1}.fg-masonry.fg-captions-bottom.fg-dark .fg-caption,.fg-masonry.fg-captions-bottom.fg-light .fg-caption{color:#828282}.fg-masonry.fg-captions-bottom.fg-dark .fg-caption a,.fg-masonry.fg-captions-bottom.fg-light .fg-caption a{color:#828282;border-bottom:1px solid #828282}.fg-masonry.fg-captions-bottom.fg-dark .fg-caption a:hover,.fg-masonry.fg-captions-bottom.fg-light .fg-caption a:hover{border-bottom:none}.fg-masonry.fg-captions-bottom.fg-light .fg-caption-title,.fg-masonry.fg-captions-bottom.fg-light .fg-caption-title a{color:#222}.fg-masonry.fg-captions-bottom.fg-dark .fg-caption-title,.fg-masonry.fg-captions-bottom.fg-dark .fg-caption-title a{color:#fff}.fg-masonry.fg-captions-bottom.fg-light .fg-caption-title a{border-bottom:1px solid #222}.fg-masonry.fg-captions-bottom.fg-dark .fg-caption-title a{border-bottom:1px solid #fff}.fg-masonry.fg-captions-bottom .fg-caption{border-width:10px}.fg-masonry.fg-captions-bottom .fg-caption-title+.fg-caption-desc{margin-top:4px}.fg-masonry.fg-captions-bottom.fg-border-thin .fg-caption{border-width:10px 4px 4px 4px}.fg-masonry.fg-captions-bottom.fg-border-medium .fg-caption{border-width:10px 0 0 0}.fg-masonry.fg-captions-bottom.fg-border-thick .fg-caption{border-width:16px 0 0 0}.fg-masonry.fg-captions-bottom.fg-border-thick .fg-caption-title+.fg-caption-desc{margin-top:10px}.fg-masonry.fg-transparent .fg-item-inner{background-color:transparent;color:#333;border-color:transparent}.fg-masonry.fg-transparent .fg-caption{color:#7f7f7f}.fg-masonry.fg-transparent.fg-captions-bottom .fg-caption{border-width:0;border-top-width:10px;border-bottom-width:10px}.fg-masonry.fg-transparent .fg-caption a{color:#7f7f7f;border-bottom:1px solid #7f7f7f}.fg-masonry.fg-transparent .fg-caption a:hover{border-bottom:none}.fg-masonry.fg-transparent .fg-caption-title,.fg-masonry.fg-transparent .fg-caption-title a{color:#333}.fg-masonry.fg-transparent .fg-caption-title a{border-bottom:1px solid #333}.fg-masonry.fg-transparent.fg-round-full .fg-item,.fg-masonry.fg-transparent.fg-round-full .fg-item-inner{border-radius:15px}.fg-masonry.fg-transparent.fg-round-full .fg-image-overlay,.fg-masonry.fg-transparent.fg-round-full .fg-image-wrap,.fg-masonry.fg-transparent.fg-round-full.fg-shadow-inset-large .fg-thumb:after,.fg-masonry.fg-transparent.fg-round-full.fg-shadow-inset-medium .fg-thumb:after,.fg-masonry.fg-transparent.fg-round-full.fg-shadow-inset-small .fg-thumb:after{border-radius:50%;overflow:hidden}.fg-masonry.fg-transparent.fg-round-large:not(.fg-shadow-outline):not(.fg-shadow-small):not(.fg-shadow-medium):not(.fg-shadow-large) .fg-image-overlay,.fg-masonry.fg-transparent.fg-round-large:not(.fg-shadow-outline):not(.fg-shadow-small):not(.fg-shadow-medium):not(.fg-shadow-large) .fg-image-wrap,.fg-masonry.fg-transparent.fg-round-medium:not(.fg-shadow-outline):not(.fg-shadow-small):not(.fg-shadow-medium):not(.fg-shadow-large) .fg-image-overlay,.fg-masonry.fg-transparent.fg-round-medium:not(.fg-shadow-outline):not(.fg-shadow-small):not(.fg-shadow-medium):not(.fg-shadow-large) .fg-image-wrap,.fg-masonry.fg-transparent.fg-round-small:not(.fg-shadow-outline):not(.fg-shadow-small):not(.fg-shadow-medium):not(.fg-shadow-large) .fg-image-overlay,.fg-masonry.fg-transparent.fg-round-small:not(.fg-shadow-outline):not(.fg-shadow-small):not(.fg-shadow-medium):not(.fg-shadow-large) .fg-image-wrap{overflow:hidden}.fg-masonry.fg-transparent.fg-round-small.fg-shadow-inset-large:not(.fg-shadow-outline):not(.fg-shadow-small):not(.fg-shadow-medium):not(.fg-shadow-large) .fg-thumb:after,.fg-masonry.fg-transparent.fg-round-small.fg-shadow-inset-medium:not(.fg-shadow-outline):not(.fg-shadow-small):not(.fg-shadow-medium):not(.fg-shadow-large) .fg-thumb:after,.fg-masonry.fg-transparent.fg-round-small.fg-shadow-inset-small:not(.fg-shadow-outline):not(.fg-shadow-small):not(.fg-shadow-medium):not(.fg-shadow-large) .fg-thumb:after,.fg-masonry.fg-transparent.fg-round-small:not(.fg-shadow-outline):not(.fg-shadow-small):not(.fg-shadow-medium):not(.fg-shadow-large) .fg-image-overlay,.fg-masonry.fg-transparent.fg-round-small:not(.fg-shadow-outline):not(.fg-shadow-small):not(.fg-shadow-medium):not(.fg-shadow-large) .fg-image-wrap{border-radius:5px}.fg-masonry.fg-transparent.fg-round-medium.fg-shadow-inset-large:not(.fg-shadow-outline):not(.fg-shadow-small):not(.fg-shadow-medium):not(.fg-shadow-large) .fg-thumb:after,.fg-masonry.fg-transparent.fg-round-medium.fg-shadow-inset-medium:not(.fg-shadow-outline):not(.fg-shadow-small):not(.fg-shadow-medium):not(.fg-shadow-large) .fg-thumb:after,.fg-masonry.fg-transparent.fg-round-medium.fg-shadow-inset-small:not(.fg-shadow-outline):not(.fg-shadow-small):not(.fg-shadow-medium):not(.fg-shadow-large) .fg-thumb:after,.fg-masonry.fg-transparent.fg-round-medium:not(.fg-shadow-outline):not(.fg-shadow-small):not(.fg-shadow-medium):not(.fg-shadow-large) .fg-image-overlay,.fg-masonry.fg-transparent.fg-round-medium:not(.fg-shadow-outline):not(.fg-shadow-small):not(.fg-shadow-medium):not(.fg-shadow-large) .fg-image-wrap{border-radius:10px}.fg-masonry.fg-transparent.fg-round-large.fg-shadow-inset-large:not(.fg-shadow-outline):not(.fg-shadow-small):not(.fg-shadow-medium):not(.fg-shadow-large) .fg-thumb:after,.fg-masonry.fg-transparent.fg-round-large.fg-shadow-inset-medium:not(.fg-shadow-outline):not(.fg-shadow-small):not(.fg-shadow-medium):not(.fg-shadow-large) .fg-thumb:after,.fg-masonry.fg-transparent.fg-round-large.fg-shadow-inset-small:not(.fg-shadow-outline):not(.fg-shadow-small):not(.fg-shadow-medium):not(.fg-shadow-large) .fg-thumb:after,.fg-masonry.fg-transparent.fg-round-large:not(.fg-shadow-outline):not(.fg-shadow-small):not(.fg-shadow-medium):not(.fg-shadow-large) .fg-image-overlay,.fg-masonry.fg-transparent.fg-round-large:not(.fg-shadow-outline):not(.fg-shadow-small):not(.fg-shadow-medium):not(.fg-shadow-large) .fg-image-wrap{border-radius:15px}.fg-masonry.fg-transparent.fg-shadow-inset-small .fg-thumb:after{box-shadow:inset 0 1px 4px 0 rgba(0,0,0,.3)}.fg-masonry.fg-transparent.fg-shadow-inset-medium .fg-thumb:after{box-shadow:inset 0 1px 10px 0 rgba(0,0,0,.3)}.fg-masonry.fg-transparent.fg-shadow-inset-large .fg-thumb:after{box-shadow:inset 0 1px 16px 0 rgba(0,0,0,.3)}.fg-masonry.fg-transparent.fg-shadow-outline .fg-item-inner{box-shadow:0 0 0 1px rgba(128,128,128,.5)}.fg-masonry.fg-transparent.fg-shadow-small .fg-item-inner{box-shadow:0 1px 4px 0 rgba(128,128,128,.5)}.fg-masonry.fg-transparent.fg-shadow-medium .fg-item-inner{box-shadow:0 1px 10px 0 rgba(128,128,128,.5)}.fg-masonry.fg-transparent.fg-shadow-large .fg-item-inner{box-shadow:0 1px 16px 0 rgba(128,128,128,.5)}.fg-justified{box-sizing:border-box;position:relative;text-align:center}.foogallery.fg-justified .fg-item{box-sizing:border-box;display:inline-block;margin:0;padding:0}.foogallery.fg-justified .fg-image,.foogallery.fg-justified .fg-item-inner,.foogallery.fg-justified .fg-thumb{box-sizing:border-box;display:block;margin:0;padding:0}.fg-justified .fg-item{visibility:visible;position:relative}.fg-justified .fg-item-inner{position:relative;width:100%;height:100%}.fg-justified .fg-thumb{position:relative;overflow:hidden}.fg-justified .fg-image{z-index:1}.fg-justified .fg-item.fg-positioned .fg-image-wrap,.fg-justified .fg-item.fg-positioned .fg-thumb{width:100%;height:100%}.fg-justified .fg-item.fg-positioned .fg-image{width:100%!important;height:auto!important;min-height:100%}.foogallery.fg-justified-css{position:relative;display:flex;box-sizing:border-box;align-items:center;justify-content:stretch;flex-wrap:wrap}.foogallery.fg-justified-css:after{display:block;content:'';flex-shrink:0;flex-grow:10;min-width:60px}.foogallery.fg-justified-css .fg-image,.foogallery.fg-justified-css .fg-item,.foogallery.fg-justified-css .fg-item-inner,.foogallery.fg-justified-css .fg-thumb{display:block}.foogallery.fg-justified-css .fg-item{flex-shrink:0;flex-grow:1;margin:5px}.foogallery.fg-justified-css .fg-image-wrap{display:flex;align-items:center;justify-content:stretch;overflow:hidden}.foogallery.fg-justified-css .fg-image{width:100%;height:auto}.fg-simple_portfolio{display:flex;flex-wrap:wrap;justify-content:center;align-items:stretch;align-content:center}.fg-simple_portfolio .fg-item{position:relative;flex-grow:0;flex-shrink:0;flex-basis:auto;margin:10px;max-width:100%}.fg-simple_portfolio .fg-item-inner{display:flex;flex-direction:column;margin:0;height:100%}.fg-simple_portfolio.fg-captions-top .fg-item-inner{flex-direction:column-reverse}.fg-simple_portfolio .fg-image{height:auto;width:100%}.fg-simple_portfolio .fg-thumb{min-width:auto;min-height:auto}.foogallery.fg-simple_portfolio .fg-item-inner .fg-caption{visibility:visible;opacity:1;font-size:13px;position:relative;display:block;top:auto;bottom:auto;left:auto;right:auto;width:100%;height:100%;text-transform:none;transform:none;transition:none;background-color:transparent;border-style:solid;border-color:transparent;text-align:left}.foogallery.fg-simple_portfolio.fg-c-l .fg-item-inner .fg-caption{text-align:left}.foogallery.fg-simple_portfolio.fg-c-c .fg-item-inner .fg-caption{text-align:center}.foogallery.fg-simple_portfolio.fg-c-r .fg-item-inner .fg-caption{text-align:right}.foogallery.fg-simple_portfolio.fg-c-j .fg-item-inner .fg-caption{text-align:justify}.foogallery.fg-simple_portfolio .fg-item-inner:hover .fg-caption{transform:none;transition:none}.foogallery.fg-simple_portfolio .fg-item-inner .fg-caption-inner{display:block;top:auto;bottom:auto;left:auto;right:auto;width:auto;height:auto;border:none;transform:none;transition:none}.foogallery.fg-simple_portfolio .fg-item-inner .fg-caption-inner:before{display:none}.foogallery.fg-simple_portfolio.fg-caption-hover .fg-item-inner .fg-image-overlay{display:block}.foogallery.fg-simple_portfolio.fg-caption-always .fg-item-inner:hover .fg-caption{visibility:visible;opacity:1}.fg-simple_portfolio .fg-caption-title{white-space:normal}.fg-simple_portfolio.fg-dark .fg-caption,.fg-simple_portfolio.fg-light .fg-caption{color:#828282}.fg-simple_portfolio.fg-dark .fg-caption a,.fg-simple_portfolio.fg-light .fg-caption a{color:#828282;border-bottom:1px solid #828282}.fg-simple_portfolio.fg-dark .fg-caption a:hover,.fg-simple_portfolio.fg-light .fg-caption a:hover{border-bottom:none}.fg-simple_portfolio.fg-light .fg-caption-title,.fg-simple_portfolio.fg-light .fg-caption-title a{color:#222}.fg-simple_portfolio.fg-dark .fg-caption-title,.fg-simple_portfolio.fg-dark .fg-caption-title a{color:#fff}.fg-simple_portfolio.fg-light .fg-caption-title a{border-bottom:1px solid #222}.fg-simple_portfolio.fg-dark .fg-caption-title a{border-bottom:1px solid #fff}.fg-simple_portfolio .fg-caption{border-width:0}.fg-simple_portfolio .fg-caption-title+.fg-caption-desc{margin-top:4px}.fg-simple_portfolio.fg-border-thin .fg-caption{border-width:10px 4px 4px 4px}.fg-simple_portfolio.fg-captions-top.fg-border-thin .fg-caption{border-width:4px 4px 10px 4px}.fg-simple_portfolio.fg-border-medium .fg-caption{border-width:10px 0 0 0}.fg-simple_portfolio.fg-captions-top.fg-border-medium .fg-caption{border-width:0 0 10px 0}.fg-simple_portfolio.fg-border-thick .fg-caption{border-width:16px 0 0 0}.fg-simple_portfolio.fg-captions-top.fg-border-thick .fg-caption{border-width:0 0 16px 0}.fg-simple_portfolio.fg-border-thick .fg-caption-title+.fg-caption-desc{margin-top:10px}.fg-simple_portfolio.fg-transparent .fg-item-inner{background-color:transparent;color:#333;border-color:transparent}.fg-simple_portfolio.fg-transparent .fg-caption{color:#7f7f7f}.fg-simple_portfolio.fg-transparent .fg-caption a{color:#7f7f7f;border-bottom:1px solid #7f7f7f}.fg-simple_portfolio.fg-transparent .fg-caption a:hover{border-bottom:none}.fg-simple_portfolio.fg-transparent .fg-caption-title,.fg-simple_portfolio.fg-transparent .fg-caption-title a{color:#333}.fg-simple_portfolio.fg-transparent .fg-caption-title a{border-bottom:1px solid #333}.fg-simple_portfolio.fg-transparent.fg-round-full .fg-item,.fg-simple_portfolio.fg-transparent.fg-round-full .fg-item-inner{border-radius:15px}.fg-simple_portfolio.fg-transparent.fg-round-full .fg-image-overlay,.fg-simple_portfolio.fg-transparent.fg-round-full .fg-image-wrap,.fg-simple_portfolio.fg-transparent.fg-round-full.fg-shadow-inset-large .fg-thumb:after,.fg-simple_portfolio.fg-transparent.fg-round-full.fg-shadow-inset-medium .fg-thumb:after,.fg-simple_portfolio.fg-transparent.fg-round-full.fg-shadow-inset-small .fg-thumb:after{border-radius:50%;overflow:hidden}.fg-simple_portfolio.fg-transparent.fg-round-large:not(.fg-shadow-outline):not(.fg-shadow-small):not(.fg-shadow-medium):not(.fg-shadow-large) .fg-image-overlay,.fg-simple_portfolio.fg-transparent.fg-round-large:not(.fg-shadow-outline):not(.fg-shadow-small):not(.fg-shadow-medium):not(.fg-shadow-large) .fg-image-wrap,.fg-simple_portfolio.fg-transparent.fg-round-medium:not(.fg-shadow-outline):not(.fg-shadow-small):not(.fg-shadow-medium):not(.fg-shadow-large) .fg-image-overlay,.fg-simple_portfolio.fg-transparent.fg-round-medium:not(.fg-shadow-outline):not(.fg-shadow-small):not(.fg-shadow-medium):not(.fg-shadow-large) .fg-image-wrap,.fg-simple_portfolio.fg-transparent.fg-round-small:not(.fg-shadow-outline):not(.fg-shadow-small):not(.fg-shadow-medium):not(.fg-shadow-large) .fg-image-overlay,.fg-simple_portfolio.fg-transparent.fg-round-small:not(.fg-shadow-outline):not(.fg-shadow-small):not(.fg-shadow-medium):not(.fg-shadow-large) .fg-image-wrap{overflow:hidden}.fg-simple_portfolio.fg-transparent.fg-round-small.fg-shadow-inset-large:not(.fg-shadow-outline):not(.fg-shadow-small):not(.fg-shadow-medium):not(.fg-shadow-large) .fg-thumb:after,.fg-simple_portfolio.fg-transparent.fg-round-small.fg-shadow-inset-medium:not(.fg-shadow-outline):not(.fg-shadow-small):not(.fg-shadow-medium):not(.fg-shadow-large) .fg-thumb:after,.fg-simple_portfolio.fg-transparent.fg-round-small.fg-shadow-inset-small:not(.fg-shadow-outline):not(.fg-shadow-small):not(.fg-shadow-medium):not(.fg-shadow-large) .fg-thumb:after,.fg-simple_portfolio.fg-transparent.fg-round-small:not(.fg-shadow-outline):not(.fg-shadow-small):not(.fg-shadow-medium):not(.fg-shadow-large) .fg-image-overlay,.fg-simple_portfolio.fg-transparent.fg-round-small:not(.fg-shadow-outline):not(.fg-shadow-small):not(.fg-shadow-medium):not(.fg-shadow-large) .fg-image-wrap{border-radius:5px}.fg-simple_portfolio.fg-transparent.fg-round-medium.fg-shadow-inset-large:not(.fg-shadow-outline):not(.fg-shadow-small):not(.fg-shadow-medium):not(.fg-shadow-large) .fg-thumb:after,.fg-simple_portfolio.fg-transparent.fg-round-medium.fg-shadow-inset-medium:not(.fg-shadow-outline):not(.fg-shadow-small):not(.fg-shadow-medium):not(.fg-shadow-large) .fg-thumb:after,.fg-simple_portfolio.fg-transparent.fg-round-medium.fg-shadow-inset-small:not(.fg-shadow-outline):not(.fg-shadow-small):not(.fg-shadow-medium):not(.fg-shadow-large) .fg-thumb:after,.fg-simple_portfolio.fg-transparent.fg-round-medium:not(.fg-shadow-outline):not(.fg-shadow-small):not(.fg-shadow-medium):not(.fg-shadow-large) .fg-image-overlay,.fg-simple_portfolio.fg-transparent.fg-round-medium:not(.fg-shadow-outline):not(.fg-shadow-small):not(.fg-shadow-medium):not(.fg-shadow-large) .fg-image-wrap{border-radius:10px}.fg-simple_portfolio.fg-transparent.fg-round-large.fg-shadow-inset-large:not(.fg-shadow-outline):not(.fg-shadow-small):not(.fg-shadow-medium):not(.fg-shadow-large) .fg-thumb:after,.fg-simple_portfolio.fg-transparent.fg-round-large.fg-shadow-inset-medium:not(.fg-shadow-outline):not(.fg-shadow-small):not(.fg-shadow-medium):not(.fg-shadow-large) .fg-thumb:after,.fg-simple_portfolio.fg-transparent.fg-round-large.fg-shadow-inset-small:not(.fg-shadow-outline):not(.fg-shadow-small):not(.fg-shadow-medium):not(.fg-shadow-large) .fg-thumb:after,.fg-simple_portfolio.fg-transparent.fg-round-large:not(.fg-shadow-outline):not(.fg-shadow-small):not(.fg-shadow-medium):not(.fg-shadow-large) .fg-image-overlay,.fg-simple_portfolio.fg-transparent.fg-round-large:not(.fg-shadow-outline):not(.fg-shadow-small):not(.fg-shadow-medium):not(.fg-shadow-large) .fg-image-wrap{border-radius:15px}.fg-simple_portfolio.fg-transparent.fg-shadow-inset-small .fg-thumb:after{box-shadow:inset 0 1px 4px 0 rgba(0,0,0,.3)}.fg-simple_portfolio.fg-transparent.fg-shadow-inset-medium .fg-thumb:after{box-shadow:inset 0 1px 10px 0 rgba(0,0,0,.3)}.fg-simple_portfolio.fg-transparent.fg-shadow-inset-large .fg-thumb:after{box-shadow:inset 0 1px 16px 0 rgba(0,0,0,.3)}.fg-simple_portfolio.fg-transparent.fg-shadow-outline .fg-item-inner{box-shadow:0 0 0 1px rgba(128,128,128,.5)}.fg-simple_portfolio.fg-transparent.fg-shadow-small .fg-item-inner{box-shadow:0 1px 4px 0 rgba(128,128,128,.5)}.fg-simple_portfolio.fg-transparent.fg-shadow-medium .fg-item-inner{box-shadow:0 1px 10px 0 rgba(128,128,128,.5)}.fg-simple_portfolio.fg-transparent.fg-shadow-large .fg-item-inner{box-shadow:0 1px 16px 0 rgba(128,128,128,.5)}.foogallery.fg-preset.fg-polaroid .fg-item{-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:transform .35s,background-color .65s}.foogallery.fg-preset.fg-polaroid .fg-item:nth-child(2n+1){-webkit-transform:rotate(3deg);transform:rotate(3deg)}.foogallery.fg-preset.fg-polaroid .fg-item:nth-child(2n){-webkit-transform:rotate(-3deg);transform:rotate(-3deg)}.foogallery.fg-preset.fg-polaroid .fg-item:nth-child(3n){-webkit-transform:rotate(1deg);transform:rotate(1deg)}.foogallery.fg-preset.fg-polaroid .fg-item:nth-child(5n){-webkit-transform:rotate(-2deg);transform:rotate(-2deg)}.foogallery.fg-preset.fg-polaroid .fg-item:hover{-webkit-transform:rotate(0);transform:rotate(0)}.foogallery.fg-preset.fg-polaroid .fg-caption{position:relative;width:auto;font-family:"Segoe Print Regular",-apple-system,system-ui,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif}.foogallery.fg-preset.fg-polaroid .fg-caption-inner,.foogallery.fg-preset.fg-polaroid .fg-caption-title{position:relative;width:auto}.foogallery.fg-preset.fg-polaroid .fg-caption-title{text-align:center}.foogallery.fg-preset.fg-polaroid .fg-caption-desc{display:none}.foogallery.fg-light.fg-preset.fg-polaroid .fg-caption-title,.foogallery.fg-preset.fg-polaroid .fg-caption-title{color:#333}.foogallery.fg-dark.fg-preset.fg-polaroid .fg-caption-title{color:#fff}.foogallery.fg-preset.fg-polaroid .fg-caption{border-style:solid;border-color:transparent;border-width:10px}.foogallery.fg-preset.fg-polaroid .fg-caption-title+.fg-caption-desc{margin-top:4px}.foogallery.fg-preset.fg-polaroid.fg-border-thin .fg-caption{border-width:10px 4px 4px 4px}.foogallery.fg-preset.fg-polaroid.fg-captions-top.fg-border-thin .fg-caption{border-width:4px 4px 10px 4px}.foogallery.fg-preset.fg-polaroid.fg-border-medium .fg-caption{border-width:10px 0 0 0}.foogallery.fg-preset.fg-polaroid.fg-captions-top.fg-border-medium .fg-caption{border-width:0 0 10px 0}.foogallery.fg-preset.fg-polaroid.fg-border-thick .fg-caption{border-width:16px 0 0 0}.foogallery.fg-preset.fg-polaroid.fg-captions-top.fg-border-thick .fg-caption{border-width:0 0 16px 0}.foogallery.fg-preset.fg-polaroid.fg-border-thick .fg-caption-title+.fg-caption-desc{margin-top:10px}.fg-image-viewer{display:block;font-family:'Open Sans','Helvetica Neue',Arial,sans-serif}.fg-image-viewer.fg-left{text-align:left}.fg-image-viewer.fg-center{text-align:center}.fg-image-viewer.fg-right{text-align:right}.fiv-inner{position:relative;display:inline-block;max-width:100%;overflow:hidden;z-index:6}.fiv-inner .fiv-inner-container{position:relative;overflow:hidden;max-width:100%;border-style:solid;border-width:0;border-bottom-width:4px;z-index:5}.fg-image-viewer .fiv-inner .fiv-inner-container .fg-item .fg-thumb,.fg-image-viewer .fiv-inner .fiv-inner-container .fg-item .fg-thumb:active,.fg-image-viewer .fiv-inner .fiv-inner-container .fg-item .fg-thumb:hover,.fg-image-viewer .fiv-inner .fiv-inner-container .fg-item .fg-thumb:visited{position:relative;display:block;border:none;outline:0;text-decoration:none;box-shadow:none;max-width:100%}.fg-image-viewer .fiv-inner .fiv-inner-container .fg-item{position:absolute;visibility:visible;opacity:1;border:none;outline:0;text-decoration:none;box-shadow:none;max-width:100%}.fg-image-viewer .fiv-inner .fiv-inner-container .fg-item:first-of-type{position:relative}.fg-image-viewer .fiv-inner .fiv-inner-container .fg-item .fg-thumb img{display:block;max-width:100%;height:auto;border:none;outline:0;text-decoration:none}.fg-image-viewer .fiv-inner .fiv-ctrls{display:block;text-align:center;font-size:14px;border-style:solid;line-height:34px}.fg-image-viewer .fiv-inner .fiv-ctrls:after{content:'';display:block;clear:both}.fg-image-viewer .fiv-inner .fiv-ctrls .fiv-count{display:inline-block;font-weight:400;margin:0}.fg-image-viewer .fiv-inner .fiv-ctrls .fiv-next,.fg-image-viewer .fiv-inner .fiv-ctrls .fiv-prev{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border:none;min-width:80px;position:relative;overflow:hidden;transition:background-color .3s}.fg-image-viewer .fiv-inner .fiv-ctrls .fiv-next:before,.fg-image-viewer .fiv-inner .fiv-ctrls .fiv-prev:before{display:block;position:absolute;font-size:24px;line-height:30px;top:0;left:0;width:100%;transform:translateY(0);transition:transform .3s}.fg-image-viewer .fiv-inner .fiv-ctrls .fiv-next:hover:before,.fg-image-viewer .fiv-inner .fiv-ctrls .fiv-prev:hover:before{transform:translateY(-100%)}.fg-image-viewer .fiv-inner .fiv-ctrls .fiv-next span,.fg-image-viewer .fiv-inner .fiv-ctrls .fiv-prev span{display:block;width:100%;transform:translateY(100%);transition:transform .3s}.fg-image-viewer .fiv-inner .fiv-ctrls .fiv-next:hover span,.fg-image-viewer .fiv-inner .fiv-ctrls .fiv-prev:hover span{transform:translateY(0)}.fg-image-viewer .fiv-inner .fiv-ctrls .fiv-prev{float:left}.fg-image-viewer .fiv-inner .fiv-ctrls .fiv-prev:before{content:'\2190'}.fg-image-viewer .fiv-inner .fiv-ctrls .fiv-next{float:right}.fg-image-viewer .fiv-inner .fiv-ctrls .fiv-next:before{content:'\2192'}.fg-image-viewer .fiv-inner .fiv-ctrls .fiv-count span{margin:0 4px}.foogallery.fg-image-viewer.fg-caption-always .fg-item-inner .fg-caption{padding:0;border:none}.foogallery.fg-image-viewer.fg-caption-always .fg-caption-title{padding:10px 10px 10px 10px}.foogallery.fg-image-viewer.fg-caption-always .fg-caption-desc{padding:10px 10px 10px 10px}.foogallery.fg-image-viewer.fg-caption-always .fg-caption-title+.fg-caption-desc{padding:0 10px 10px 10px}.fg-image-viewer.fg-light .fiv-inner .fiv-ctrls,.fg-image-viewer.fg-light .fiv-inner .fiv-ctrls .fiv-count,.fg-image-viewer.fg-light .fiv-inner .fiv-ctrls .fiv-next,.fg-image-viewer.fg-light .fiv-inner .fiv-ctrls .fiv-prev,.fg-image-viewer.fg-light .fiv-inner .fiv-inner-container{background-color:#fff;color:#333;border-color:#fff}.fg-image-viewer.fg-light .fiv-inner .fiv-ctrls .fiv-next:hover,.fg-image-viewer.fg-light .fiv-inner .fiv-ctrls .fiv-prev:hover{background-color:#f2f2f2}.fg-image-viewer.fg-light .fiv-next,.fg-image-viewer.fg-light .fiv-prev{box-shadow:inset 0 0 0 1px #ddd}.fg-image-viewer.fg-dark .fiv-inner .fiv-ctrls,.fg-image-viewer.fg-dark .fiv-inner .fiv-ctrls .fiv-count,.fg-image-viewer.fg-dark .fiv-inner .fiv-ctrls .fiv-next,.fg-image-viewer.fg-dark .fiv-inner .fiv-ctrls .fiv-prev,.fg-image-viewer.fg-dark .fiv-inner .fiv-inner-container{background-color:#333;color:#fff;border-color:#333}.fg-image-viewer.fg-dark .fiv-inner .fiv-ctrls .fiv-next:hover,.fg-image-viewer.fg-dark .fiv-inner .fiv-ctrls .fiv-prev:hover{background-color:#444}.fg-image-viewer.fg-dark .fiv-next,.fg-image-viewer.fg-dark .fiv-prev{box-shadow:inset 0 0 0 1px #222}.foogallery.fg-image-viewer.fg-border-medium .fg-item-inner,.foogallery.fg-image-viewer.fg-border-thick .fg-item-inner,.foogallery.fg-image-viewer.fg-border-thin .fg-item-inner{border-width:0}.foogallery.fg-image-viewer .fiv-ctrls,.foogallery.fg-image-viewer.fg-border-thin .fiv-inner-container{border-width:4px}.foogallery.fg-image-viewer.fg-border-medium .fiv-ctrls,.foogallery.fg-image-viewer.fg-border-medium .fiv-inner-container{border-width:10px}.foogallery.fg-image-viewer.fg-border-thick .fiv-ctrls,.foogallery.fg-image-viewer.fg-border-thick .fiv-inner-container{border-width:16px}.foogallery.fg-image-viewer .fiv-ctrls,.foogallery.fg-image-viewer.fg-border-medium .fiv-ctrls,.foogallery.fg-image-viewer.fg-border-thick .fiv-ctrls,.foogallery.fg-image-viewer.fg-border-thin .fiv-ctrls{border-top-width:1px}.foogallery.fg-image-viewer.fg-round-small .fg-item,.foogallery.fg-image-viewer.fg-round-small .fg-item-inner,.foogallery.fg-image-viewer.fg-round-small .fiv-inner{border-radius:5px}.foogallery.fg-image-viewer.fg-round-small .fg-item,.foogallery.fg-image-viewer.fg-round-small .fg-item-inner{border-bottom-left-radius:0;border-bottom-right-radius:0}.foogallery.fg-image-viewer.fg-round-small .fiv-next,.foogallery.fg-image-viewer.fg-round-small .fiv-prev{border-radius:3px}.foogallery.fg-image-viewer.fg-border-medium.fg-round-small .fg-item,.foogallery.fg-image-viewer.fg-border-medium.fg-round-small .fg-item-inner,.foogallery.fg-image-viewer.fg-border-medium.fg-round-small .fiv-next,.foogallery.fg-image-viewer.fg-border-medium.fg-round-small .fiv-prev,.foogallery.fg-image-viewer.fg-border-thick.fg-round-small .fg-item,.foogallery.fg-image-viewer.fg-border-thick.fg-round-small .fg-item-inner,.foogallery.fg-image-viewer.fg-border-thick.fg-round-small .fiv-next,.foogallery.fg-image-viewer.fg-border-thick.fg-round-small .fiv-prev,.foogallery.fg-image-viewer.fg-border-thin.fg-round-small .fg-item,.foogallery.fg-image-viewer.fg-border-thin.fg-round-small .fg-item-inner,.foogallery.fg-image-viewer.fg-border-thin.fg-round-small .fiv-next,.foogallery.fg-image-viewer.fg-border-thin.fg-round-small .fiv-prev{border-radius:3px}.foogallery.fg-image-viewer.fg-round-medium .fg-item,.foogallery.fg-image-viewer.fg-round-medium .fg-item-inner,.foogallery.fg-image-viewer.fg-round-medium .fiv-inner{border-radius:10px}.foogallery.fg-image-viewer.fg-round-medium .fg-item,.foogallery.fg-image-viewer.fg-round-medium .fg-item-inner{border-bottom-left-radius:0;border-bottom-right-radius:0}.foogallery.fg-image-viewer.fg-round-medium .fiv-next,.foogallery.fg-image-viewer.fg-round-medium .fiv-prev{border-radius:5px}.foogallery.fg-image-viewer.fg-border-thin.fg-round-medium .fg-item,.foogallery.fg-image-viewer.fg-border-thin.fg-round-medium .fg-item-inner,.foogallery.fg-image-viewer.fg-border-thin.fg-round-medium .fiv-next,.foogallery.fg-image-viewer.fg-border-thin.fg-round-medium .fiv-prev{border-radius:5px}.foogallery.fg-image-viewer.fg-border-medium.fg-round-medium .fg-item,.foogallery.fg-image-viewer.fg-border-medium.fg-round-medium .fg-item-inner,.foogallery.fg-image-viewer.fg-border-medium.fg-round-medium .fiv-next,.foogallery.fg-image-viewer.fg-border-medium.fg-round-medium .fiv-prev,.foogallery.fg-image-viewer.fg-border-thick.fg-round-medium .fg-item,.foogallery.fg-image-viewer.fg-border-thick.fg-round-medium .fg-item-inner,.foogallery.fg-image-viewer.fg-border-thick.fg-round-medium .fiv-next,.foogallery.fg-image-viewer.fg-border-thick.fg-round-medium .fiv-prev{border-radius:3px}.foogallery.fg-image-viewer.fg-round-large .fg-item,.foogallery.fg-image-viewer.fg-round-large .fg-item-inner,.foogallery.fg-image-viewer.fg-round-large .fiv-inner{border-radius:15px}.foogallery.fg-image-viewer.fg-round-large .fg-item,.foogallery.fg-image-viewer.fg-round-large .fg-item-inner{border-bottom-left-radius:0;border-bottom-right-radius:0}.foogallery.fg-image-viewer.fg-round-large .fiv-next,.foogallery.fg-image-viewer.fg-round-large .fiv-prev{border-radius:11px}.foogallery.fg-image-viewer.fg-border-thin.fg-round-large .fg-item,.foogallery.fg-image-viewer.fg-border-thin.fg-round-large .fg-item-inner,.foogallery.fg-image-viewer.fg-border-thin.fg-round-large .fiv-next,.foogallery.fg-image-viewer.fg-border-thin.fg-round-large .fiv-prev{border-radius:11px}.foogallery.fg-image-viewer.fg-border-medium.fg-round-large .fg-item,.foogallery.fg-image-viewer.fg-border-medium.fg-round-large .fg-item-inner,.foogallery.fg-image-viewer.fg-border-medium.fg-round-large .fiv-next,.foogallery.fg-image-viewer.fg-border-medium.fg-round-large .fiv-prev{border-radius:5px}.foogallery.fg-image-viewer.fg-border-thick.fg-round-large .fg-item,.foogallery.fg-image-viewer.fg-border-thick.fg-round-large .fg-item-inner,.foogallery.fg-image-viewer.fg-border-thick.fg-round-large .fiv-next,.foogallery.fg-image-viewer.fg-border-thick.fg-round-large .fiv-prev{border-radius:3px}.foogallery.fg-image-viewer.fg-round-full .fiv-inner,.foogallery.fg-image-viewer.fg-round-full .fiv-next,.foogallery.fg-image-viewer.fg-round-full .fiv-prev{border-radius:50%}.foogallery.fg-image-viewer.fg-dark.fg-shadow-large .fg-item-inner,.foogallery.fg-image-viewer.fg-dark.fg-shadow-medium .fg-item-inner,.foogallery.fg-image-viewer.fg-dark.fg-shadow-outline .fg-item-inner,.foogallery.fg-image-viewer.fg-dark.fg-shadow-small .fg-item-inner,.foogallery.fg-image-viewer.fg-light.fg-shadow-large .fg-item-inner,.foogallery.fg-image-viewer.fg-light.fg-shadow-medium .fg-item-inner,.foogallery.fg-image-viewer.fg-light.fg-shadow-outline .fg-item-inner,.foogallery.fg-image-viewer.fg-light.fg-shadow-small .fg-item-inner{box-shadow:none}.foogallery.fg-image-viewer.fg-light.fg-shadow-outline .fiv-inner{box-shadow:0 0 0 1px #ddd}.foogallery.fg-image-viewer.fg-dark.fg-shadow-outline .fiv-inner{box-shadow:0 0 0 1px #222}.foogallery.fg-image-viewer.fg-dark.fg-shadow-small .fiv-inner,.foogallery.fg-image-viewer.fg-light.fg-shadow-small .fiv-inner{box-shadow:0 1px 4px 0 rgba(0,0,0,.5)}.foogallery.fg-image-viewer.fg-dark.fg-shadow-medium .fiv-inner,.foogallery.fg-image-viewer.fg-light.fg-shadow-medium .fiv-inner{box-shadow:0 1px 10px 0 rgba(0,0,0,.5)}.foogallery.fg-image-viewer.fg-dark.fg-shadow-large .fiv-inner,.foogallery.fg-image-viewer.fg-light.fg-shadow-large .fiv-inner{box-shadow:0 1px 16px 0 rgba(0,0,0,.5)}.foogallery.fg-thumbnail,.foogallery.fg-thumbnail.fg-center{text-align:center}.foogallery.fg-thumbnail.fg-left{text-align:left}.foogallery.fg-thumbnail.fg-right{text-align:right}.foogallery.fg-thumbnail.fg-float-left{float:left;width:auto}.foogallery.fg-thumbnail.fg-float-right{float:right;width:auto}.foogallery.fg-thumbnail .fg-item{display:inline-block;vertical-align:top;max-width:100%}.foogallery.fg-thumbnail .fg-image{max-width:100%}.foogallery.fg-thumbnail .fg-st-hidden{display:none}.foogallery-stack-album{text-align:center;overflow:hidden;font-family:-apple-system,system-ui,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-size:13px;font-weight:400;line-height:1.3}.foogallery-stack-album,.foogallery-stack-album *{box-sizing:border-box}.foogallery-stack-album.fg-align-left{text-align:left}.foogallery-stack-album.fg-align-center{text-align:center}.foogallery-stack-album.fg-align-right{text-align:right}.foogallery-stack-album.fg-disable-transitions,.foogallery-stack-album.fg-disable-transitions *{transition:none!important}.fg-header{display:flex;flex-wrap:nowrap;justify-content:space-between;align-items:center;position:relative;padding:0;margin:0;border-top:solid 1px #aaa;border-bottom:solid 1px #aaa}.fg-header-title{display:block;margin:0;padding:0 20px;width:100%;text-align:left}.fg-header-active{display:block;margin:0;padding:0 20px;visibility:hidden;opacity:0;width:100%;text-align:right;transition-property:opacity,visibility;transition-duration:.3s;transition-timing-function:ease-in-out}.fg-header-back{display:block;padding:0;margin:5px;visibility:hidden;opacity:0;min-width:40px;width:40px;height:40px;border-radius:50%;text-align:center;line-height:38px;color:#999;background:#ddd;background:rgba(200,200,200,.5);cursor:pointer;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;transition-property:opacity,visibility;transition-duration:.3s;transition-timing-function:ease-in-out}.fg-has-active .fg-header-active,.fg-has-active .fg-header-back{visibility:visible;opacity:1}.fg-piles{display:inline-block;position:relative;transition-property:width,height;transition-duration:.3s;transition-timing-function:ease-in-out}.fg-pile{display:block;position:absolute;top:0;left:0;list-style:none;padding:0;margin:0;visibility:visible;opacity:1;transition-property:opacity,visibility,top,left,width,height;transition-duration:.3s;transition-timing-function:ease-in-out}.fg-pile.fg-hidden{visibility:hidden;opacity:0}.fg-pile-item{display:block;position:absolute;top:25px;left:25px;visibility:visible;opacity:1;cursor:pointer;border:10px solid #fff;background-color:#fff;box-shadow:0 1px 4px rgba(0,0,0,.2);transition-property:opacity,visibility,top,left,transform;transition-duration:.3s;transition-timing-function:ease-in-out;z-index:1;transform:rotate(0)}.fg-expanded .fg-pile-item{z-index:2;transform:rotate(0)!important}.fg-pile-item.fg-has-cover{z-index:10;transform:rotate(0)!important}.fg-pile-item:nth-child(2){z-index:9}.fg-pile-item:nth-child(3){z-index:8}.fg-pile-item:nth-child(4){z-index:7}.fg-pile-item:nth-child(1n+5){visibility:hidden;opacity:0}.fg-expanded .fg-pile-item:nth-child(1n+4){visibility:visible;opacity:1}.fg-pile-item-thumb{display:block}.fg-pile-item-image{display:block}.fg-pile-item-caption{display:flex;justify-content:center;flex-direction:column;position:absolute;top:0;left:0;bottom:0;right:0;width:100%;height:100%;margin:0;padding:10px;background-color:rgba(68,68,68,.5);color:#fff;text-align:center;visibility:hidden;opacity:0;transition-property:opacity,visibility;transition-duration:.3s;transition-timing-function:ease-in-out}.fg-pile-item-title{display:block;width:100%;padding:0 0 10px}.fg-pile-item-desc{display:block;width:100%;max-height:100%;border-top:solid 1px currentColor;padding:10px 0 0;overflow:hidden}.fg-pile-item-thumb:hover .fg-pile-item-caption{visibility:visible;opacity:1}.fg-pile-cover{display:flex;justify-content:left;align-items:center;position:absolute;top:0;left:0;bottom:0;right:0;width:100%;height:100%;visibility:visible;opacity:1;cursor:pointer;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;transition-property:opacity,visibility;transition-duration:.3s;transition-timing-function:ease-in-out}.fg-expanded .fg-pile-cover{visibility:hidden;opacity:0;pointer-events:none}.fg-pile-cover-content{display:flex;position:relative;background:#fff;color:#333;width:75%;font-weight:700;box-shadow:1px 1px 1px rgba(0,0,0,.1),5px 0 5px -3px rgba(0,0,0,.4),inset 0 0 5px rgba(0,0,0,.04)}.fg-pile-cover-title{text-align:center;padding:10px;width:100%}.fg-pile-cover-count{color:#aaa;padding:10px 5px;background:#f7f7f7;height:100%}
|
1 |
+
.foogallery,.foogallery *{box-sizing:border-box}.foogallery{display:block;z-index:1;font-family:-apple-system,system-ui,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;position:relative;line-height:0;font-size:0;width:100%;max-width:100%}.foogallery .fg-item{display:inline-block;position:relative;background-color:transparent;z-index:2;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.foogallery .fg-item.fg-hidden{display:none!important}.foogallery .fg-item-inner{display:block;position:relative;visibility:hidden;overflow:hidden;opacity:0;z-index:3;margin:0;border:solid 0 transparent}.foogallery .fg-item.fg-error:before{content:"";display:block;position:absolute;top:50%;left:50%;transform:translateX(-50%) translateY(-50%);width:32px;height:32px;background-image:url(../img/icons.svg#image);background-color:transparent;background-repeat:no-repeat;background-position:center center;background-size:32px 32px}.foogallery .fg-item.fg-loaded{z-index:4}.foogallery .fg-loaded .fg-item-inner{visibility:visible;opacity:1;z-index:5}.foogallery .fg-error .fg-item-inner{pointer-events:none;cursor:default}.foogallery .fg-thumb{display:block;position:relative;border:none;outline:0;text-decoration:none;z-index:4;box-shadow:none}.foogallery .fg-thumb:focus,.foogallery .fg-thumb:hover{border:none;outline:0;text-decoration:none;box-shadow:none}.foogallery .fg-image-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:8;visibility:hidden;opacity:0}.foogallery .fg-image-wrap{display:block;position:relative}.foogallery .fg-image{display:block;position:relative;border:none;outline:0;text-decoration:none;z-index:5;max-width:100%;height:auto;margin:0;width:auto}.foogallery picture.fg-image>img{display:block;position:relative;border:none;outline:0;text-decoration:none;max-width:100%;height:auto;margin:0;width:auto}.foogallery .fg-loaded .fg-thumb{z-index:6}.foogallery .fg-loaded .fg-image{z-index:7}.foogallery.fg-light .fg-item-inner{background-color:#fff;color:#333;border-color:#fff}.foogallery.fg-dark .fg-item-inner{background-color:#333;color:#fff;border-color:#333}.foogallery.fg-light .fg-item.fg-error,.foogallery.fg-light .fg-item.fg-idle,.foogallery.fg-light .fg-item.fg-loading{background-color:#eee;box-shadow:inset 0 0 0 1px #ddd}.foogallery.fg-dark .fg-item.fg-error,.foogallery.fg-dark .fg-item.fg-idle,.foogallery.fg-dark .fg-item.fg-loading{background-color:#444;box-shadow:inset 0 0 0 1px #333}.foogallery .fg-caption{background-color:rgba(0,0,0,.6);color:#fff}.foogallery .fg-caption a{color:#fff;border-bottom:1px solid #fff}.foogallery.fg-light-overlays .fg-caption{background-color:rgba(255,255,255,.8);color:#333}.foogallery.fg-light-overlays .fg-caption a{color:#333;border-bottom-color:#333}.foogallery.fg-transparent-overlays .fg-caption{background-color:transparent;color:#fff}.foogallery.fg-transparent-overlays .fg-caption a{color:#fff;border-bottom-color:#fff}.foogallery .fg-image-overlay{background-color:rgba(0,0,0,.6);color:#fff}.foogallery.fg-light-overlays .fg-image-overlay{background-color:rgba(255,255,255,.8);color:#333}.foogallery.fg-transparent-overlays .fg-image-overlay{background-color:transparent;color:#fff}.fg-exif-light .fg-item.fg-item-exif .fg-image-wrap:after{background-color:#fff;color:#333}.fg-exif-dark .fg-item.fg-item-exif .fg-image-wrap:after{background-color:#333;color:#fff}.fg-exif-rounded .fg-item.fg-item-exif .fg-image-wrap:after{border-radius:3px}.fg-exif-bottom-left .fg-item.fg-item-exif .fg-image-wrap:after,.fg-exif-bottom-right .fg-item.fg-item-exif .fg-image-wrap:after,.fg-exif-top-left .fg-item.fg-item-exif .fg-image-wrap:after,.fg-exif-top-right .fg-item.fg-item-exif .fg-image-wrap:after{display:inline-block;position:absolute;content:'EXIF';font-family:-apple-system,system-ui,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-size:11px;line-height:10px;padding:3px 4px;z-index:7}.fg-exif-bottom-right .fg-item.fg-item-exif .fg-image-wrap:after{bottom:5px;right:5px}.fg-exif-bottom-left .fg-item.fg-item-exif .fg-image-wrap:after{bottom:5px;left:5px}.fg-exif-top-right .fg-item.fg-item-exif .fg-image-wrap:after{top:5px;right:5px}.fg-exif-top-left .fg-item.fg-item-exif .fg-image-wrap:after{top:5px;left:5px}.foogallery.fg-border-thin .fg-item-inner{border-width:4px}.foogallery.fg-border-medium .fg-item-inner{border-width:10px}.foogallery.fg-border-thick .fg-item-inner{border-width:16px}.foogallery.fg-light.fg-shadow-outline .fg-item-inner{box-shadow:0 0 0 1px #ddd}.foogallery.fg-dark.fg-shadow-outline .fg-item-inner{box-shadow:0 0 0 1px #222}.foogallery.fg-dark.fg-shadow-small .fg-item-inner,.foogallery.fg-light.fg-shadow-small .fg-item-inner{box-shadow:0 1px 4px 0 rgba(0,0,0,.5)}.foogallery.fg-dark.fg-shadow-medium .fg-item-inner,.foogallery.fg-light.fg-shadow-medium .fg-item-inner{box-shadow:0 1px 10px 0 rgba(0,0,0,.5)}.foogallery.fg-dark.fg-shadow-large .fg-item-inner,.foogallery.fg-light.fg-shadow-large .fg-item-inner{box-shadow:0 1px 16px 0 rgba(0,0,0,.5)}.foogallery.fg-shadow-inset-large .fg-thumb:after,.foogallery.fg-shadow-inset-medium .fg-thumb:after,.foogallery.fg-shadow-inset-small .fg-thumb:after{display:block;content:"";position:absolute;top:0;left:0;right:0;bottom:0;z-index:7}.foogallery.fg-dark.fg-shadow-inset-small .fg-thumb:after,.foogallery.fg-light.fg-shadow-inset-small .fg-thumb:after{box-shadow:inset 0 1px 4px 0 rgba(0,0,0,.3)}.foogallery.fg-dark.fg-shadow-inset-medium .fg-thumb:after,.foogallery.fg-light.fg-shadow-inset-medium .fg-thumb:after{box-shadow:inset 0 1px 10px 0 rgba(0,0,0,.3)}.foogallery.fg-dark.fg-shadow-inset-large .fg-thumb:after,.foogallery.fg-light.fg-shadow-inset-large .fg-thumb:after{box-shadow:inset 0 1px 16px 0 rgba(0,0,0,.3)}.foogallery.fg-round-full.fg-shadow-inset-large .fg-thumb:after,.foogallery.fg-round-full.fg-shadow-inset-medium .fg-thumb:after,.foogallery.fg-round-full.fg-shadow-inset-small .fg-thumb:after{border-radius:50%}.foogallery.fg-round-small .fg-item,.foogallery.fg-round-small .fg-item-inner{border-radius:5px}.foogallery.fg-round-medium .fg-item,.foogallery.fg-round-medium .fg-item-inner{border-radius:10px}.foogallery.fg-round-large .fg-item,.foogallery.fg-round-large .fg-item-inner{border-radius:15px}.foogallery.fg-round-full .fg-item,.foogallery.fg-round-full .fg-item-inner{border-radius:50%}.foogallery .fg-loader{position:absolute;top:50%;left:50%;margin-top:-.5em;margin-left:-.5em;width:1em;height:1em;font-size:5px;visibility:hidden;opacity:0;pointer-events:none}.foogallery .fg-loading .fg-loader{visibility:visible;opacity:1}.fg-loading-default .fg-loader{border-radius:50%;text-indent:-9999em;box-shadow:0 -2.6em 0 0 rgba(130,130,130,1),1.8em -1.8em 0 0 rgba(130,130,130,.2),2.5em 0 0 0 rgba(130,130,130,.2),1.75em 1.75em 0 0 rgba(130,130,130,.2),0 2.5em 0 0 rgba(130,130,130,.2),-1.8em 1.8em 0 0 rgba(130,130,130,.2),-2.6em 0 0 0 rgba(130,130,130,.5),-1.8em -1.8em 0 0 rgba(130,130,130,.7);-webkit-animation:loading-default 1.1s infinite paused steps(8,start);animation:loading-default 1.1s infinite paused steps(8,start)}.fg-loading-default .fg-loading .fg-loader{-webkit-animation-play-state:running;animation-play-state:running}@-webkit-keyframes loading-default{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}@keyframes loading-default{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}.fg-loading-bars .fg-loader,.fg-loading-bars .fg-loader:after,.fg-loading-bars .fg-loader:before{background:rgba(130,130,130,1);width:1em;height:4em;-webkit-animation:loading-bars 1s infinite paused ease-in-out;animation:loading-bars 1s infinite paused ease-in-out}.fg-loading-bars .fg-loading .fg-loader,.fg-loading-bars .fg-loading .fg-loader:after,.fg-loading-bars .fg-loading .fg-loader:before{-webkit-animation-play-state:running;animation-play-state:running}.fg-loading-bars .fg-loader{color:rgba(130,130,130,1);text-indent:-9999em;font-size:4px;margin-top:-2em;margin-left:-.5em;-webkit-animation-delay:-.16s;animation-delay:-.16s}.fg-loading-bars .fg-loader:after,.fg-loading-bars .fg-loader:before{position:absolute;top:0;content:''}.fg-loading-bars .fg-loader:before{left:-1.5em;-webkit-animation-delay:-.32s;animation-delay:-.32s}.fg-loading-bars .fg-loader:after{left:1.5em}@-webkit-keyframes loading-bars{0%,100%,80%{box-shadow:0 0;height:4em}40%{box-shadow:0 -2em;height:5em}}@keyframes loading-bars{0%,100%,80%{box-shadow:0 0;height:4em}40%{box-shadow:0 -2em;height:5em}}.fg-loading-trail .fg-loader{color:#828282;margin-top:0;margin-left:0;font-size:20px;text-indent:-9999em;overflow:hidden;border-radius:50%;-webkit-animation:loading-trail-1 1.7s infinite paused ease,loading-trail-2 1.7s infinite paused ease;animation:loading-trail-1 1.7s infinite paused ease,loading-trail-2 1.7s infinite paused ease}.fg-loading-trail .fg-loading .fg-loader{-webkit-animation-play-state:running;animation-play-state:running}@-webkit-keyframes loading-trail-1{0%{box-shadow:0 -.83em 0 -.4em,0 -.83em 0 -.42em,0 -.83em 0 -.44em,0 -.83em 0 -.46em,0 -.83em 0 -.477em}5%,95%{box-shadow:0 -.83em 0 -.4em,0 -.83em 0 -.42em,0 -.83em 0 -.44em,0 -.83em 0 -.46em,0 -.83em 0 -.477em}10%,59%{box-shadow:0 -.83em 0 -.4em,-.087em -.825em 0 -.42em,-.173em -.812em 0 -.44em,-.256em -.789em 0 -.46em,-.297em -.775em 0 -.477em}20%{box-shadow:0 -.83em 0 -.4em,-.338em -.758em 0 -.42em,-.555em -.617em 0 -.44em,-.671em -.488em 0 -.46em,-.749em -.34em 0 -.477em}38%{box-shadow:0 -.83em 0 -.4em,-.377em -.74em 0 -.42em,-.645em -.522em 0 -.44em,-.775em -.297em 0 -.46em,-.82em -.09em 0 -.477em}100%{box-shadow:0 -.83em 0 -.4em,0 -.83em 0 -.42em,0 -.83em 0 -.44em,0 -.83em 0 -.46em,0 -.83em 0 -.477em}}@keyframes loading-trail-1{0%{box-shadow:0 -.83em 0 -.4em,0 -.83em 0 -.42em,0 -.83em 0 -.44em,0 -.83em 0 -.46em,0 -.83em 0 -.477em}5%,95%{box-shadow:0 -.83em 0 -.4em,0 -.83em 0 -.42em,0 -.83em 0 -.44em,0 -.83em 0 -.46em,0 -.83em 0 -.477em}10%,59%{box-shadow:0 -.83em 0 -.4em,-.087em -.825em 0 -.42em,-.173em -.812em 0 -.44em,-.256em -.789em 0 -.46em,-.297em -.775em 0 -.477em}20%{box-shadow:0 -.83em 0 -.4em,-.338em -.758em 0 -.42em,-.555em -.617em 0 -.44em,-.671em -.488em 0 -.46em,-.749em -.34em 0 -.477em}38%{box-shadow:0 -.83em 0 -.4em,-.377em -.74em 0 -.42em,-.645em -.522em 0 -.44em,-.775em -.297em 0 -.46em,-.82em -.09em 0 -.477em}100%{box-shadow:0 -.83em 0 -.4em,0 -.83em 0 -.42em,0 -.83em 0 -.44em,0 -.83em 0 -.46em,0 -.83em 0 -.477em}}@-webkit-keyframes loading-trail-2{0%{-webkit-transform:translateX(-50%) translateY(-50%) rotate(0);transform:translateX(-50%) translateY(-50%) rotate(0)}100%{-webkit-transform:translateX(-50%) translateY(-50%) rotate(360deg);transform:translateX(-50%) translateY(-50%) rotate(360deg)}}@keyframes loading-trail-2{0%{-webkit-transform:translateX(-50%) translateY(-50%) rotate(0);transform:translateX(-50%) translateY(-50%) rotate(0)}100%{-webkit-transform:translateX(-50%) translateY(-50%) rotate(360deg);transform:translateX(-50%) translateY(-50%) rotate(360deg)}}.fg-loading-pulse .fg-loader,.fg-loading-pulse .fg-loader:after,.fg-loading-pulse .fg-loader:before{border-radius:50%;width:2.5em;height:2.5em;-webkit-animation:loading-pulse 1.8s infinite both paused ease-in-out;animation:loading-pulse 1.8s infinite both paused ease-in-out}.fg-loading-pulse .fg-loading .fg-loader,.fg-loading-pulse .fg-loading .fg-loader:after,.fg-loading-pulse .fg-loading .fg-loader:before{-webkit-animation-play-state:running;animation-play-state:running}.fg-loading-pulse .fg-loader{color:#828282;font-size:4px;margin-top:-3.75em;margin-left:-1.25em;text-indent:-9999em;-webkit-animation-delay:-.16s;animation-delay:-.16s}.fg-loading-pulse .fg-loader:after,.fg-loading-pulse .fg-loader:before{content:'';position:absolute;top:0}.fg-loading-pulse .fg-loader:before{left:-3.5em;-webkit-animation-delay:-.32s;animation-delay:-.32s}.fg-loading-pulse .fg-loader:after{left:3.5em}@-webkit-keyframes loading-pulse{0%,100%,80%{box-shadow:0 2.5em 0 -1.3em}40%{box-shadow:0 2.5em 0 0}}@keyframes loading-pulse{0%,100%,80%{box-shadow:0 2.5em 0 -1.3em}40%{box-shadow:0 2.5em 0 0}}.fg-loading-dots .fg-loader{color:#828282;font-size:5px;border-radius:50%;text-indent:-9999em;-webkit-animation:loading-dots 1.3s infinite paused linear;animation:loading-dots 1.3s infinite paused linear}.fg-loading-dots .fg-loading .fg-loader{-webkit-animation-play-state:running;animation-play-state:running}@-webkit-keyframes loading-dots{0%,100%{box-shadow:0 -3em 0 .2em,2em -2em 0 0,3em 0 0 -1em,2em 2em 0 -1em,0 3em 0 -1em,-2em 2em 0 -1em,-3em 0 0 -1em,-2em -2em 0 0}12.5%{box-shadow:0 -3em 0 0,2em -2em 0 .2em,3em 0 0 0,2em 2em 0 -1em,0 3em 0 -1em,-2em 2em 0 -1em,-3em 0 0 -1em,-2em -2em 0 -1em}25%{box-shadow:0 -3em 0 -.5em,2em -2em 0 0,3em 0 0 .2em,2em 2em 0 0,0 3em 0 -1em,-2em 2em 0 -1em,-3em 0 0 -1em,-2em -2em 0 -1em}37.5%{box-shadow:0 -3em 0 -1em,2em -2em 0 -1em,3em 0 0 0,2em 2em 0 .2em,0 3em 0 0,-2em 2em 0 -1em,-3em 0 0 -1em,-2em -2em 0 -1em}50%{box-shadow:0 -3em 0 -1em,2em -2em 0 -1em,3em 0 0 -1em,2em 2em 0 0,0 3em 0 .2em,-2em 2em 0 0,-3em 0 0 -1em,-2em -2em 0 -1em}62.5%{box-shadow:0 -3em 0 -1em,2em -2em 0 -1em,3em 0 0 -1em,2em 2em 0 -1em,0 3em 0 0,-2em 2em 0 .2em,-3em 0 0 0,-2em -2em 0 -1em}75%{box-shadow:0 -3em 0 -1em,2em -2em 0 -1em,3em 0 0 -1em,2em 2em 0 -1em,0 3em 0 -1em,-2em 2em 0 0,-3em 0 0 .2em,-2em -2em 0 0}87.5%{box-shadow:0 -3em 0 0,2em -2em 0 -1em,3em 0 0 -1em,2em 2em 0 -1em,0 3em 0 -1em,-2em 2em 0 0,-3em 0 0 0,-2em -2em 0 .2em}}@keyframes loading-dots{0%,100%{box-shadow:0 -3em 0 .2em,2em -2em 0 0,3em 0 0 -1em,2em 2em 0 -1em,0 3em 0 -1em,-2em 2em 0 -1em,-3em 0 0 -1em,-2em -2em 0 0}12.5%{box-shadow:0 -3em 0 0,2em -2em 0 .2em,3em 0 0 0,2em 2em 0 -1em,0 3em 0 -1em,-2em 2em 0 -1em,-3em 0 0 -1em,-2em -2em 0 -1em}25%{box-shadow:0 -3em 0 -.5em,2em -2em 0 0,3em 0 0 .2em,2em 2em 0 0,0 3em 0 -1em,-2em 2em 0 -1em,-3em 0 0 -1em,-2em -2em 0 -1em}37.5%{box-shadow:0 -3em 0 -1em,2em -2em 0 -1em,3em 0 0 0,2em 2em 0 .2em,0 3em 0 0,-2em 2em 0 -1em,-3em 0 0 -1em,-2em -2em 0 -1em}50%{box-shadow:0 -3em 0 -1em,2em -2em 0 -1em,3em 0 0 -1em,2em 2em 0 0,0 3em 0 .2em,-2em 2em 0 0,-3em 0 0 -1em,-2em -2em 0 -1em}62.5%{box-shadow:0 -3em 0 -1em,2em -2em 0 -1em,3em 0 0 -1em,2em 2em 0 -1em,0 3em 0 0,-2em 2em 0 .2em,-3em 0 0 0,-2em -2em 0 -1em}75%{box-shadow:0 -3em 0 -1em,2em -2em 0 -1em,3em 0 0 -1em,2em 2em 0 -1em,0 3em 0 -1em,-2em 2em 0 0,-3em 0 0 .2em,-2em -2em 0 0}87.5%{box-shadow:0 -3em 0 0,2em -2em 0 -1em,3em 0 0 -1em,2em 2em 0 -1em,0 3em 0 -1em,-2em 2em 0 0,-3em 0 0 0,-2em -2em 0 .2em}}.fg-loading-partial .fg-loader,.fg-loading-partial .fg-loader:after{border-radius:50%;width:10em;height:10em}.fg-loading-partial .fg-loader{font-size:4px;text-indent:-9999em;margin-top:0;margin-left:0;border-top:1.1em solid rgba(130,130,130,.2);border-right:1.1em solid rgba(130,130,130,.2);border-bottom:1.1em solid rgba(130,130,130,.2);border-left:1.1em solid #828282;-webkit-animation:loading-partial 1.1s infinite paused linear;animation:loading-partial 1.1s infinite paused linear}.fg-loading-partial .fg-loading .fg-loader{-webkit-animation-play-state:running;animation-play-state:running}@-webkit-keyframes loading-partial{0%{-webkit-transform:translateX(-50%) translateY(-50%) rotate(0);transform:translateX(-50%) translateY(-50%) rotate(0)}100%{-webkit-transform:translateX(-50%) translateY(-50%) rotate(360deg);transform:translateX(-50%) translateY(-50%) rotate(360deg)}}@keyframes loading-partial{0%{-webkit-transform:translateX(-50%) translateY(-50%) rotate(0);transform:translateX(-50%) translateY(-50%) rotate(0)}100%{-webkit-transform:translateX(-50%) translateY(-50%) rotate(360deg);transform:translateX(-50%) translateY(-50%) rotate(360deg)}}.foogallery.fg-loaded-drop .fg-item.fg-loaded,.foogallery.fg-loaded-fade-in .fg-item.fg-loaded,.foogallery.fg-loaded-flip .fg-item.fg-loaded,.foogallery.fg-loaded-fly .fg-item.fg-loaded,.foogallery.fg-loaded-scale-up .fg-item.fg-loaded,.foogallery.fg-loaded-slide-down .fg-item.fg-loaded,.foogallery.fg-loaded-slide-left .fg-item.fg-loaded,.foogallery.fg-loaded-slide-right .fg-item.fg-loaded,.foogallery.fg-loaded-slide-up .fg-item.fg-loaded,.foogallery.fg-loaded-swing-down .fg-item.fg-loaded{transition-timing-function:ease;transition-duration:650ms;transition-property:background-color,transform}.foogallery.fg-loaded-drop .fg-loaded .fg-item-inner,.foogallery.fg-loaded-fade-in .fg-loaded .fg-item-inner,.foogallery.fg-loaded-flip .fg-loaded .fg-item-inner,.foogallery.fg-loaded-fly .fg-loaded .fg-item-inner,.foogallery.fg-loaded-scale-up .fg-loaded .fg-item-inner,.foogallery.fg-loaded-slide-down .fg-loaded .fg-item-inner,.foogallery.fg-loaded-slide-left .fg-loaded .fg-item-inner,.foogallery.fg-loaded-slide-right .fg-loaded .fg-item-inner,.foogallery.fg-loaded-slide-up .fg-loaded .fg-item-inner,.foogallery.fg-loaded-swing-down .fg-loaded .fg-item-inner{transition-timing-function:ease;transition-duration:650ms}.foogallery.fg-loaded-drop .fg-item.fg-loaded,.foogallery.fg-loaded-flip .fg-item.fg-loaded,.foogallery.fg-loaded-fly .fg-item.fg-loaded,.foogallery.fg-loaded-swing-down .fg-item.fg-loaded{perspective:1300px}.foogallery.fg-loaded-drop .fg-item-inner{transition-property:visibility,opacity,transform;transform-style:preserve-3d;transform:translateZ(400px) translateY(100%) rotateX(-90deg)}.foogallery.fg-loaded-drop .fg-loaded .fg-item-inner{transform:translateZ(0) translateY(0) rotateX(0)}.foogallery.fg-loaded-fade-in .fg-item-inner{transition-property:visibility,opacity}.foogallery.fg-loaded-flip .fg-item-inner{transition-property:visibility,opacity,transform;backface-visibility:hidden;transform-style:preserve-3d;transform:rotateY(-180deg)}.foogallery.fg-loaded-flip .fg-loaded .fg-item-inner{transform:rotateY(0)}.foogallery.fg-loaded-fly .fg-item-inner{transition-property:visibility,opacity,transform;transform-style:preserve-3d;transform-origin:50% 50% -300px;transform:rotateX(-180deg)}.foogallery.fg-loaded-fly .fg-loaded .fg-item-inner{transform:rotateX(0)}.foogallery.fg-loaded-scale-up .fg-item-inner{transition-property:visibility,opacity,transform;transform:scale(.6)}.foogallery.fg-loaded-scale-up .fg-loaded .fg-item-inner{transform:scale(1)}.foogallery.fg-loaded-slide-up .fg-item-inner{transition-property:visibility,opacity,transform;transform:translateY(50%)}.foogallery.fg-loaded-slide-up .fg-loaded .fg-item-inner{transform:translateY(0)}.foogallery.fg-loaded-slide-down .fg-item-inner{transition-property:visibility,opacity,transform;transform:translateY(-50%)}.foogallery.fg-loaded-slide-down .fg-loaded .fg-item-inner{transform:translateY(0)}.foogallery.fg-loaded-slide-left .fg-item-inner{transition-property:visibility,opacity,transform;transform:translateX(50%)}.foogallery.fg-loaded-slide-left .fg-loaded .fg-item-inner{transform:translateX(0)}.foogallery.fg-loaded-slide-right .fg-item-inner{transition-property:visibility,opacity,transform;transform:translateX(-50%)}.foogallery.fg-loaded-slide-right .fg-loaded .fg-item-inner{transform:translateX(0)}.foogallery.fg-loaded-swing-down .fg-item-inner{transition-property:visibility,opacity,transform;transform-style:preserve-3d;transform-origin:0 0;transform:rotateX(-80deg)}.foogallery.fg-loaded-swing-down .fg-loaded .fg-item-inner{transform:rotateX(0)}.foogallery .fg-caption{visibility:hidden;opacity:0;position:absolute;z-index:8;width:100%;max-height:100%;overflow:hidden;font-family:-apple-system,system-ui,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-size:13px;font-weight:400;line-height:1.3;border:none;text-align:center;cursor:pointer;margin:0}.foogallery .fg-caption a{text-decoration:none}.foogallery .fg-caption a:hover{border-bottom:none}.foogallery .fg-caption-title{box-sizing:content-box;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:16px;font-weight:400;padding:0;margin:.4em;height:1.3em;min-height:1.3em;line-height:1.3em}.foogallery .fg-caption-desc{padding:0;margin:.4em;overflow:hidden;height:100%;max-height:100%}.foogallery .fg-caption-title+.fg-caption-desc{margin-top:0}.foogallery .fg-caption-buttons{display:flex;position:relative;flex-direction:row;flex-wrap:wrap;align-items:center;justify-content:center;width:100%;padding:5px;margin:0}.foogallery .fg-caption-buttons>a{display:inline-block;position:relative;padding:.4em .8em;margin:1px;max-width:100%;font-family:-apple-system,system-ui,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-size:12px;font-weight:400;line-height:1.42857143;text-align:center;white-space:nowrap;vertical-align:middle;cursor:pointer;user-select:none;background-image:none;text-decoration:none!important;border:1px solid transparent;border-radius:4px;box-shadow:none;outline:0;opacity:1;transition-timing-function:ease-out;transition-duration:.3s;transition-property:color,opacity,border-color,background-color}@media only screen and (max-width:600px){.foogallery .fg-caption-buttons{align-items:stretch}.foogallery .fg-caption-buttons>a{flex:1}}.foogallery .fg-caption .fg-caption-buttons>a{color:#333;background-color:#fff;border-color:#ccc}.foogallery .fg-caption .fg-caption-buttons>a:not(.fg-disabled):hover{color:#333;background-color:#e6e6e6;border-color:#adadad;border-bottom:solid 1px}.foogallery .fg-caption .fg-caption-buttons>a.fg-disabled{color:#9d9d9d}.foogallery .fg-caption .fg-caption-buttons>a.fg-disabled:hover{border-bottom:solid 1px}.foogallery.fg-light-overlays .fg-caption .fg-caption-buttons>a{color:#fff;background-color:#444;border-color:#333}.foogallery.fg-light-overlays .fg-caption .fg-caption-buttons>a:not(.fg-disabled):hover{color:#9d9d9d;background-color:#333;border-color:#222}.foogallery.fg-light-overlays .fg-caption .fg-caption-buttons>a.fg-disabled{color:#9d9d9d}.foogallery.fg-light-overlays .fg-caption .fg-caption-buttons>a.fg-disabled:hover{border-bottom:solid 1px}.foogallery.fg-caption-always .fg-item .fg-caption .fg-caption-inner:before{display:none}.foogallery.fg-caption-always .fg-item.fg-loaded .fg-caption{left:0;bottom:0;transition-timing-function:ease;transition-duration:.3s;transition-property:visibility,opacity;visibility:visible;opacity:1}.foogallery.fg-caption-always .fg-caption{text-align:left}.foogallery.fg-caption-hover .fg-caption .fg-caption-inner{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;max-height:100%;position:absolute;top:50%;left:0;transform:translateY(-50%);padding:.4em}.foogallery.fg-caption-hover .fg-item.fg-loaded .fg-image-overlay{display:none}.foogallery.fg-c-l .fg-caption,.foogallery.fg-caption-always.fg-c-l .fg-caption{text-align:left}.foogallery.fg-c-c .fg-caption,.foogallery.fg-caption-always.fg-c-c .fg-caption{text-align:center}.foogallery.fg-c-r .fg-caption,.foogallery.fg-caption-always.fg-c-r .fg-caption{text-align:right}.foogallery.fg-c-j .fg-caption,.foogallery.fg-caption-always.fg-c-j .fg-caption{text-align:justify}.foogallery .fg-image-overlay:before{content:"";display:block;position:absolute;top:50%;left:50%;transform:translateX(-50%) translateY(-50%);width:32px;height:32px;background-size:32px 32px;background-position:center center;background-repeat:no-repeat;min-width:32px;min-height:32px}.foogallery .fg-caption-inner:before{content:"";display:none;position:relative;width:32px;height:32px;margin:.4em;background-size:32px 32px;vertical-align:middle;background-position:center center;background-repeat:no-repeat;min-width:32px;min-height:32px}.foogallery.fg-hover-cart:not(.fg-preset) .fg-caption-inner:before,.foogallery.fg-hover-circle-plus:not(.fg-preset) .fg-caption-inner:before,.foogallery.fg-hover-external:not(.fg-preset) .fg-caption-inner:before,.foogallery.fg-hover-eye:not(.fg-preset) .fg-caption-inner:before,.foogallery.fg-hover-plus:not(.fg-preset) .fg-caption-inner:before,.foogallery.fg-hover-tint:not(.fg-preset) .fg-caption-inner:before,.foogallery.fg-hover-zoom2:not(.fg-preset) .fg-caption-inner:before,.foogallery.fg-hover-zoom3:not(.fg-preset) .fg-caption-inner:before,.foogallery.fg-hover-zoom:not(.fg-preset) .fg-caption-inner:before,.foogallery.fg-video-1:not(.fg-preset) .fg-caption-inner:before,.foogallery.fg-video-2:not(.fg-preset) .fg-caption-inner:before,.foogallery.fg-video-3:not(.fg-preset) .fg-caption-inner:before,.foogallery.fg-video-4:not(.fg-preset) .fg-caption-inner:before,.foogallery.fg-video-default:not(.fg-preset) .fg-caption-inner:before{display:block}.foogallery.fg-hover-cart:not(.fg-preset) .fg-item-inner:hover .fg-image-overlay,.foogallery.fg-hover-circle-plus:not(.fg-preset) .fg-item-inner:hover .fg-image-overlay,.foogallery.fg-hover-external:not(.fg-preset) .fg-item-inner:hover .fg-image-overlay,.foogallery.fg-hover-eye:not(.fg-preset) .fg-item-inner:hover .fg-image-overlay,.foogallery.fg-hover-plus:not(.fg-preset) .fg-item-inner:hover .fg-image-overlay,.foogallery.fg-hover-tint:not(.fg-preset) .fg-item-inner:hover .fg-image-overlay,.foogallery.fg-hover-zoom2:not(.fg-preset) .fg-item-inner:hover .fg-image-overlay,.foogallery.fg-hover-zoom3:not(.fg-preset) .fg-item-inner:hover .fg-image-overlay,.foogallery.fg-hover-zoom:not(.fg-preset) .fg-item-inner:hover .fg-image-overlay,.foogallery.fg-video-1:not(.fg-preset) .fg-type-video .fg-item-inner:hover .fg-image-overlay,.foogallery.fg-video-2:not(.fg-preset) .fg-type-video .fg-item-inner:hover .fg-image-overlay,.foogallery.fg-video-3:not(.fg-preset) .fg-type-video .fg-item-inner:hover .fg-image-overlay,.foogallery.fg-video-4:not(.fg-preset) .fg-type-video .fg-item-inner:hover .fg-image-overlay,.foogallery.fg-video-default:not(.fg-preset) .fg-type-video .fg-item-inner:hover .fg-image-overlay{visibility:visible;opacity:1}.foogallery.fg-video-sticky .fg-type-video.fg-loaded .fg-item-inner .fg-image-overlay{background-color:transparent;visibility:visible;opacity:1;display:block}.foogallery.fg-video-sticky .fg-type-video .fg-caption-inner:before{display:none}.foogallery.fg-hover-zoom .fg-caption-inner:before,.foogallery.fg-hover-zoom .fg-image-overlay:before{background-image:url(../img/icons.svg#zoom-light)}.foogallery.fg-light-overlays.fg-hover-zoom .fg-caption-inner:before,.foogallery.fg-light-overlays.fg-hover-zoom .fg-image-overlay:before{background-image:url(../img/icons.svg#zoom-dark)}.foogallery.fg-hover-zoom2 .fg-caption-inner:before,.foogallery.fg-hover-zoom2 .fg-image-overlay:before{background-image:url(../img/icons.svg#zoom2-light)}.foogallery.fg-light-overlays.fg-hover-zoom2 .fg-caption-inner:before,.foogallery.fg-light-overlays.fg-hover-zoom2 .fg-image-overlay:before{background-image:url(../img/icons.svg#zoom2-dark)}.foogallery.fg-hover-zoom3 .fg-caption-inner:before,.foogallery.fg-hover-zoom3 .fg-image-overlay:before{background-image:url(../img/icons.svg#zoom3-light)}.foogallery.fg-light-overlays.fg-hover-zoom3 .fg-caption-inner:before,.foogallery.fg-light-overlays.fg-hover-zoom3 .fg-image-overlay:before{background-image:url(../img/icons.svg#zoom3-dark)}.foogallery.fg-hover-plus .fg-caption-inner:before,.foogallery.fg-hover-plus .fg-image-overlay:before{background-image:url(../img/icons.svg#plus-light)}.foogallery.fg-light-overlays.fg-hover-plus .fg-caption-inner:before,.foogallery.fg-light-overlays.fg-hover-plus .fg-image-overlay:before{background-image:url(../img/icons.svg#plus-dark)}.foogallery.fg-hover-circle-plus .fg-caption-inner:before,.foogallery.fg-hover-circle-plus .fg-image-overlay:before{background-image:url(../img/icons.svg#circle-plus-light)}.foogallery.fg-light-overlays.fg-hover-circle-plus .fg-caption-inner:before,.foogallery.fg-light-overlays.fg-hover-circle-plus .fg-image-overlay:before{background-image:url(../img/icons.svg#circle-plus-dark)}.foogallery.fg-hover-eye .fg-caption-inner:before,.foogallery.fg-hover-eye .fg-image-overlay:before{background-image:url(../img/icons.svg#eye-light)}.foogallery.fg-light-overlays.fg-hover-eye .fg-caption-inner:before,.foogallery.fg-light-overlays.fg-hover-eye .fg-image-overlay:before{background-image:url(../img/icons.svg#eye-dark)}.foogallery.fg-hover-external .fg-caption-inner:before,.foogallery.fg-hover-external .fg-image-overlay:before{background-image:url(../img/icons.svg#external-light)}.foogallery.fg-light-overlays.fg-hover-external .fg-caption-inner:before,.foogallery.fg-light-overlays.fg-hover-external .fg-image-overlay:before{background-image:url(../img/icons.svg#external-dark)}.foogallery.fg-hover-cart .fg-caption-inner:before,.foogallery.fg-hover-cart .fg-image-overlay:before{background-image:url(../img/icons.svg#cart-light)}.foogallery.fg-light-overlays.fg-hover-cart .fg-caption-inner:before,.foogallery.fg-light-overlays.fg-hover-cart .fg-image-overlay:before{background-image:url(../img/icons.svg#cart-dark)}.foogallery.fg-video-default .fg-type-video .fg-caption-inner:before,.foogallery.fg-video-default .fg-type-video .fg-image-overlay:before{background-image:url(../img/icons.svg#video-default-light)}.foogallery.fg-light-overlays.fg-video-default .fg-type-video .fg-caption-inner:before,.foogallery.fg-light-overlays.fg-video-default .fg-type-video .fg-image-overlay:before{background-image:url(../img/icons.svg#video-default-dark)}.foogallery.fg-video-1 .fg-type-video .fg-caption-inner:before,.foogallery.fg-video-1 .fg-type-video .fg-image-overlay:before{background-image:url(../img/icons.svg#video-1-light)}.foogallery.fg-light-overlays.fg-video-1 .fg-type-video .fg-caption-inner:before,.foogallery.fg-light-overlays.fg-video-1 .fg-type-video .fg-image-overlay:before{background-image:url(../img/icons.svg#video-1-dark)}.foogallery.fg-video-2 .fg-type-video .fg-caption-inner:before,.foogallery.fg-video-2 .fg-type-video .fg-image-overlay:before{background-image:url(../img/icons.svg#video-2-light)}.foogallery.fg-light-overlays.fg-video-2 .fg-type-video .fg-caption-inner:before,.foogallery.fg-light-overlays.fg-video-2 .fg-type-video .fg-image-overlay:before{background-image:url(../img/icons.svg#video-2-dark)}.foogallery.fg-video-3 .fg-type-video .fg-caption-inner:before,.foogallery.fg-video-3 .fg-type-video .fg-image-overlay:before{background-image:url(../img/icons.svg#video-3-light)}.foogallery.fg-light-overlays.fg-video-3 .fg-type-video .fg-caption-inner:before,.foogallery.fg-light-overlays.fg-video-3 .fg-type-video .fg-image-overlay:before{background-image:url(../img/icons.svg#video-3-dark)}.foogallery.fg-video-4 .fg-type-video .fg-caption-inner:before,.foogallery.fg-video-4 .fg-type-video .fg-image-overlay:before{background-image:url(../img/icons.svg#video-4-light)}.foogallery.fg-light-overlays.fg-video-4 .fg-type-video .fg-caption-inner:before,.foogallery.fg-light-overlays.fg-video-4 .fg-type-video .fg-image-overlay:before{background-image:url(../img/icons.svg#video-4-dark)}.foogallery.fg-caption-hover.fg-hover-colorize .fg-loaded .fg-caption,.foogallery.fg-caption-hover.fg-hover-fade .fg-loaded .fg-caption,.foogallery.fg-caption-hover.fg-hover-grayscale .fg-loaded .fg-caption,.foogallery.fg-caption-hover.fg-hover-instant .fg-loaded .fg-caption,.foogallery.fg-caption-hover.fg-hover-push .fg-loaded .fg-caption,.foogallery.fg-caption-hover.fg-hover-scale .fg-loaded .fg-caption,.foogallery.fg-caption-hover.fg-hover-slide-down .fg-loaded .fg-caption,.foogallery.fg-caption-hover.fg-hover-slide-left .fg-loaded .fg-caption,.foogallery.fg-caption-hover.fg-hover-slide-right .fg-loaded .fg-caption,.foogallery.fg-caption-hover.fg-hover-slide-up .fg-loaded .fg-caption,.foogallery.fg-hover-colorize .fg-loaded .fg-image,.foogallery.fg-hover-colorize .fg-loaded .fg-image-overlay,.foogallery.fg-hover-fade .fg-loaded .fg-image-overlay,.foogallery.fg-hover-grayscale .fg-loaded .fg-image,.foogallery.fg-hover-grayscale .fg-loaded .fg-image-overlay,.foogallery.fg-hover-instant .fg-loaded .fg-image-overlay,.foogallery.fg-hover-push .fg-loaded .fg-thumb,.foogallery.fg-hover-scale .fg-item.fg-loaded,.foogallery.fg-hover-scale .fg-loaded .fg-image-overlay,.foogallery.fg-hover-slide-down .fg-loaded .fg-image-overlay,.foogallery.fg-hover-slide-left .fg-loaded .fg-image-overlay,.foogallery.fg-hover-slide-right .fg-loaded .fg-image-overlay,.foogallery.fg-hover-slide-up .fg-loaded .fg-image-overlay,.foogallery.fg-hover-zoomed .fg-loaded .fg-image{transition-timing-function:ease;transition-duration:.3s;backface-visibility:hidden}.foogallery.fg-hover-colorize .fg-image{filter:url("data:image/svg+xml;utf8,<svg xmlns=\'http://www.w3.org/2000/svg\'><filter id=\'grayscale\'><feColorMatrix type=\'saturate\' values=\'0\'/></filter></svg>#grayscale");filter:gray;-webkit-filter:grayscale(100%);-webkit-transition-property:-webkit-filter;transition-property:filter}.foogallery.fg-hover-colorize .fg-item-inner:hover .fg-image{-webkit-filter:none;filter:none}.foogallery.fg-caption-hover.fg-hover-colorize .fg-caption,.foogallery.fg-hover-colorize .fg-image-overlay{display:block;left:0;top:0;bottom:0;transition-property:visibility,opacity,background-color}.foogallery.fg-caption-hover.fg-hover-colorize .fg-item-inner:hover .fg-caption,.foogallery.fg-hover-colorize .fg-item-inner:hover .fg-image-overlay{visibility:visible;opacity:1}.foogallery.fg-caption-hover.fg-hover-fade .fg-loaded .fg-caption,.foogallery.fg-hover-fade .fg-loaded .fg-image-overlay{display:block;left:0;top:0;bottom:0;transition-property:visibility,opacity,background-color}.foogallery.fg-caption-hover.fg-hover-fade .fg-loaded .fg-item-inner:hover .fg-caption,.foogallery.fg-hover-fade .fg-loaded .fg-item-inner:hover .fg-image-overlay{visibility:visible;opacity:1}.foogallery.fg-hover-grayscale .fg-image{-webkit-filter:none;filter:none;-webkit-transition-property:-webkit-filter;transition-property:filter}.foogallery.fg-hover-grayscale .fg-item-inner:hover .fg-image{-webkit-filter:grayscale(1);-webkit-filter:grayscale(100%);filter:grayscale(100%);filter:gray;opacity:1}.foogallery.fg-caption-hover.fg-hover-grayscale .fg-caption,.foogallery.fg-hover-grayscale .fg-image-overlay{display:block;left:0;top:0;bottom:0;transition-property:visibility,opacity,background-color}.foogallery.fg-caption-hover.fg-hover-grayscale .fg-item-inner:hover .fg-caption,.foogallery.fg-hover-grayscale .fg-item-inner:hover .fg-image-overlay{visibility:visible;opacity:1}.foogallery.fg-caption-hover.fg-hover-instant .fg-loaded .fg-caption,.foogallery.fg-hover-instant .fg-loaded .fg-image-overlay{display:block;left:0;top:0;bottom:0;transition-property:none}.foogallery.fg-caption-hover.fg-hover-instant .fg-loaded .fg-item-inner:hover .fg-caption,.foogallery.fg-hover-instant .fg-loaded .fg-item-inner:hover .fg-image-overlay{visibility:visible;opacity:1}.foogallery.fg-caption-hover.fg-hover-push .fg-loaded .fg-caption,.foogallery.fg-hover-push .fg-loaded .fg-image-overlay{display:block;left:0;top:0;bottom:0;transform:translateX(100%);visibility:visible;opacity:1}.foogallery.fg-caption-hover.fg-hover-push .fg-loaded .fg-caption,.foogallery.fg-hover-push .fg-loaded .fg-thumb{transition-property:transform}.foogallery.fg-caption-hover.fg-hover-push .fg-loaded .fg-item-inner:hover .fg-caption{transform:translateY(0)}.foogallery.fg-caption-hover.fg-hover-push .fg-loaded .fg-item-inner:hover .fg-thumb,.foogallery.fg-hover-push .fg-loaded .fg-item-inner:hover .fg-thumb{transform:translateX(-100%)}.foogallery.fg-hover-scale .fg-item{transition-property:transform;z-index:4}.foogallery.fg-hover-scale .fg-item:hover{transform:scale(1.048);z-index:10}.foogallery.fg-caption-hover.fg-hover-scale .fg-caption,.foogallery.fg-hover-scale .fg-image-overlay{display:block;left:0;top:0;bottom:0;transition-property:visibility,opacity,background-color}.foogallery.fg-caption-hover.fg-hover-scale .fg-item-inner:hover .fg-caption,.foogallery.fg-hover-scale .fg-item-inner:hover .fg-image-overlay{visibility:visible;opacity:1}.foogallery.fg-hover-zoomed .fg-image{transition-property:transform;z-index:4}.foogallery.fg-hover-zoomed .fg-item:hover .fg-image{transform:scale(1.15)}.foogallery.fg-hover-zoomed .fg-image-wrap{overflow:hidden}.foogallery.fg-caption-hover.fg-hover-zoomed .fg-caption,.foogallery.fg-hover-zoomed .fg-image-overlay{display:block;left:0;top:0;bottom:0;transition-property:visibility,opacity,background-color}.foogallery.fg-caption-hover.fg-hover-zoomed .fg-item-inner:hover .fg-caption,.foogallery.fg-hover-zoomed .fg-item-inner:hover .fg-image-overlay{visibility:visible;opacity:1}.foogallery.fg-caption-hover.fg-hover-slide-down .fg-loaded .fg-caption,.foogallery.fg-caption-hover.fg-hover-slide-left .fg-loaded .fg-caption,.foogallery.fg-caption-hover.fg-hover-slide-right .fg-loaded .fg-caption,.foogallery.fg-caption-hover.fg-hover-slide-up .fg-loaded .fg-caption,.foogallery.fg-hover-slide-down .fg-loaded .fg-image-overlay,.foogallery.fg-hover-slide-left .fg-loaded .fg-image-overlay,.foogallery.fg-hover-slide-right .fg-loaded .fg-image-overlay,.foogallery.fg-hover-slide-up .fg-loaded .fg-image-overlay{display:block;left:0;top:0;bottom:0;transition-property:transform,background-color,opacity,visibility;visibility:visible;opacity:1}.foogallery.fg-caption-hover.fg-hover-slide-down .fg-loaded .fg-item-inner:hover .fg-caption,.foogallery.fg-caption-hover.fg-hover-slide-left .fg-loaded .fg-item-inner:hover .fg-caption,.foogallery.fg-caption-hover.fg-hover-slide-right .fg-loaded .fg-item-inner:hover .fg-caption,.foogallery.fg-caption-hover.fg-hover-slide-up .fg-loaded .fg-item-inner:hover .fg-caption,.foogallery.fg-hover-slide-down .fg-loaded .fg-item-inner:hover .fg-image-overlay,.foogallery.fg-hover-slide-left .fg-loaded .fg-item-inner:hover .fg-image-overlay,.foogallery.fg-hover-slide-right .fg-loaded .fg-item-inner:hover .fg-image-overlay,.foogallery.fg-hover-slide-up .fg-loaded .fg-item-inner:hover .fg-image-overlay{transform:translateY(0) translateX(0)}.foogallery.fg-caption-hover.fg-hover-slide-up .fg-loaded .fg-caption,.foogallery.fg-hover-slide-up .fg-loaded .fg-image-overlay{transform:translateY(100%)}.foogallery.fg-caption-hover.fg-hover-slide-down .fg-loaded .fg-caption,.foogallery.fg-hover-slide-down .fg-loaded .fg-image-overlay{transform:translateY(-100%)}.foogallery.fg-caption-hover.fg-hover-slide-left .fg-loaded .fg-caption,.foogallery.fg-hover-slide-left .fg-loaded .fg-image-overlay{transform:translateX(100%)}.foogallery.fg-caption-hover.fg-hover-slide-right .fg-loaded .fg-caption,.foogallery.fg-hover-slide-right .fg-loaded .fg-image-overlay{transform:translateX(-100%)}.fg-paging-container,.fg-paging-container *,.fg-paging-container :after,.fg-paging-container :before{box-sizing:border-box}.fg-paging-container{display:block;padding:15px;margin-top:0!important;margin-bottom:0!important;margin-left:auto;margin-right:auto;text-align:center;font-family:-apple-system,system-ui,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.fg-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.fg-ph-dots:after{display:block;content:'';width:0;height:22px}.fg-paging-container .fg-dot-item,.fg-paging-container .fg-dots{display:inline-block;margin:0;padding:0;outline:0;list-style:none}.fg-paging-container .fg-dot-item .fg-dot-link{display:inline-block;margin:3px;font-weight:400;line-height:1.42857143;text-align:center;white-space:nowrap;vertical-align:middle;cursor:pointer;user-select:none;background-image:none;text-decoration:none;border:1px solid transparent;position:relative;border-radius:50%;padding:0;font-size:0;outline:0;color:transparent;box-shadow:none}.fg-paging-container .fg-dot-item .fg-dot-link:before{content:"";background-color:transparent;border:1px solid transparent;display:block;border-radius:50%;width:9px;height:9px;padding:0;margin:2px}.fg-paging-container .fg-dot-item .fg-dot-link:active,.fg-paging-container .fg-dot-item .fg-dot-link:focus,.fg-paging-container .fg-dot-item .fg-dot-link:hover{text-decoration:none;box-shadow:none;outline:0}.fg-paging-container .fg-dot-item.fg-disabled .fg-dot-link,.fg-paging-container .fg-dot-item.fg-selected .fg-dot-link{cursor:not-allowed;pointer-events:none}.fg-paging-container .fg-dot-item.fg-disabled .fg-dot-link{cursor:not-allowed;pointer-events:none;outline:0}.fg-paging-container.fg-light .fg-dot-item .fg-dot-link,.fg-paging-container.fg-light .fg-dot-item .fg-dot-link:before{transition-timing-function:ease-out;transition-duration:.3s;transition-property:color,border-color,background-color}.fg-paging-container.fg-light .fg-dot-item .fg-dot-link{background-color:#eee;border-color:#9d9d9d}.fg-paging-container.fg-light .fg-dot-item.fg-selected .fg-dot-link{border-color:#888}.fg-paging-container.fg-light .fg-dot-item .fg-dot-link:focus:before,.fg-paging-container.fg-light .fg-dot-item .fg-dot-link:hover:before,.fg-paging-container.fg-light .fg-dot-item.fg-selected .fg-dot-link:before{background-color:#666;border-color:#888}.fg-paging-container.fg-light .fg-dot-item.fg-disabled .fg-dot-link,.fg-paging-container.fg-light .fg-dot-item.fg-disabled .fg-dot-link:focus,.fg-paging-container.fg-light .fg-dot-item.fg-disabled .fg-dot-link:hover{background-color:#eee;border-color:#9d9d9d;opacity:.5}.fg-paging-container.fg-dark .fg-dot-item .fg-dot-link,.fg-paging-container.fg-dark .fg-dot-item .fg-dot-link:before{transition-timing-function:ease-out;transition-duration:.3s;transition-property:color,border-color,background-color}.fg-paging-container.fg-dark .fg-dot-item .fg-dot-link{background-color:#666;border-color:#333}.fg-paging-container.fg-dark .fg-dot-item.fg-selected .fg-dot-link{border-color:#444}.fg-paging-container.fg-dark .fg-dot-item .fg-dot-link:focus:before,.fg-paging-container.fg-dark .fg-dot-item .fg-dot-link:hover:before,.fg-paging-container.fg-dark .fg-dot-item.fg-selected .fg-dot-link:before{background-color:#333;border-color:#444}.fg-paging-container.fg-dark .fg-dot-item.fg-disabled .fg-dot-link,.fg-paging-container.fg-dark .fg-dot-item.fg-disabled .fg-dot-link:focus,.fg-paging-container.fg-dark .fg-dot-item.fg-disabled .fg-dot-link:hover{background-color:#666;border-color:#333;opacity:.5}.fg-paging-container,.fg-paging-container *,.fg-paging-container :after,.fg-paging-container :before{box-sizing:border-box}.fg-paging-container{display:block;padding:15px;margin-top:0!important;margin-bottom:0!important;margin-left:auto;margin-right:auto;text-align:center;font-family:-apple-system,system-ui,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.fg-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.fg-ph-dots:after{display:block;content:'';width:0;height:22px}.fg-paging-container .fg-dot-item,.fg-paging-container .fg-dots{display:inline-block;margin:0;padding:0;outline:0;list-style:none}.fg-paging-container .fg-dot-item .fg-dot-link{display:inline-block;margin:3px;font-weight:400;line-height:1.42857143;text-align:center;white-space:nowrap;vertical-align:middle;cursor:pointer;user-select:none;background-image:none;text-decoration:none;border:1px solid transparent;position:relative;border-radius:50%;padding:0;font-size:0;outline:0;color:transparent;box-shadow:none}.fg-paging-container .fg-dot-item .fg-dot-link:before{content:"";background-color:transparent;border:1px solid transparent;display:block;border-radius:50%;width:9px;height:9px;padding:0;margin:2px}.fg-paging-container .fg-dot-item .fg-dot-link:active,.fg-paging-container .fg-dot-item .fg-dot-link:focus,.fg-paging-container .fg-dot-item .fg-dot-link:hover{text-decoration:none;box-shadow:none;outline:0}.fg-paging-container .fg-dot-item.fg-disabled .fg-dot-link,.fg-paging-container .fg-dot-item.fg-selected .fg-dot-link{cursor:not-allowed;pointer-events:none}.fg-paging-container .fg-dot-item.fg-disabled .fg-dot-link{cursor:not-allowed;pointer-events:none;outline:0}.fg-paging-container.fg-light .fg-dot-item .fg-dot-link,.fg-paging-container.fg-light .fg-dot-item .fg-dot-link:before{transition-timing-function:ease-out;transition-duration:.3s;transition-property:color,border-color,background-color}.fg-paging-container.fg-light .fg-dot-item .fg-dot-link{background-color:#eee;border-color:#9d9d9d}.fg-paging-container.fg-light .fg-dot-item.fg-selected .fg-dot-link{border-color:#888}.fg-paging-container.fg-light .fg-dot-item .fg-dot-link:focus:before,.fg-paging-container.fg-light .fg-dot-item .fg-dot-link:hover:before,.fg-paging-container.fg-light .fg-dot-item.fg-selected .fg-dot-link:before{background-color:#666;border-color:#888}.fg-paging-container.fg-light .fg-dot-item.fg-disabled .fg-dot-link,.fg-paging-container.fg-light .fg-dot-item.fg-disabled .fg-dot-link:focus,.fg-paging-container.fg-light .fg-dot-item.fg-disabled .fg-dot-link:hover{background-color:#eee;border-color:#9d9d9d;opacity:.5}.fg-paging-container.fg-dark .fg-dot-item .fg-dot-link,.fg-paging-container.fg-dark .fg-dot-item .fg-dot-link:before{transition-timing-function:ease-out;transition-duration:.3s;transition-property:color,border-color,background-color}.fg-paging-container.fg-dark .fg-dot-item .fg-dot-link{background-color:#666;border-color:#333}.fg-paging-container.fg-dark .fg-dot-item.fg-selected .fg-dot-link{border-color:#444}.fg-paging-container.fg-dark .fg-dot-item .fg-dot-link:focus:before,.fg-paging-container.fg-dark .fg-dot-item .fg-dot-link:hover:before,.fg-paging-container.fg-dark .fg-dot-item.fg-selected .fg-dot-link:before{background-color:#333;border-color:#444}.fg-paging-container.fg-dark .fg-dot-item.fg-disabled .fg-dot-link,.fg-paging-container.fg-dark .fg-dot-item.fg-disabled .fg-dot-link:focus,.fg-paging-container.fg-dark .fg-dot-item.fg-disabled .fg-dot-link:hover{background-color:#666;border-color:#333;opacity:.5}.fg-default:after{content:'';display:block;clear:both}.fg-default .fg-item{display:inline-block;vertical-align:top;max-width:100%}.fg-default .fg-item-inner,.fg-default .fg-thumb{display:block;vertical-align:top;max-width:100%}.fg-default .fg-image{border-radius:0;display:block;max-width:100%;height:auto;margin:0;padding:0}.fg-default .fg-image{vertical-align:top}.fg-default.fg-left{text-align:left}.fg-default.fg-center{text-align:center}.fg-default.fg-right{text-align:right}.fg-default.fg-gutter-5{padding-left:5px;margin-bottom:-5px}.fg-default.fg-gutter-5 .fg-item{margin-right:5px;margin-bottom:5px}.fg-default.fg-gutter-10{padding-left:10px;margin-bottom:-10px}.fg-default.fg-gutter-10 .fg-item{margin-right:10px;margin-bottom:10px}.fg-default.fg-gutter-15{padding-left:15px;margin-bottom:-15px}.fg-default.fg-gutter-15 .fg-item{margin-right:15px;margin-bottom:15px}.fg-default.fg-gutter-20{padding-left:20px;margin-bottom:-20px}.fg-default.fg-gutter-20 .fg-item{margin-right:20px;margin-bottom:20px}.fg-default.fg-gutter-25{padding-left:25px;margin-bottom:-25px}.fg-default.fg-gutter-25 .fg-item{margin-right:25px;margin-bottom:25px}@media only screen and (max-width:600px){.fg-default.fg-m-col1 .fg-image,.fg-default.fg-m-col2 .fg-image,.fg-default.fg-m-col3 .fg-image{width:100%}.fg-default.fg-m-col1.fg-gutter-5 .fg-item{width:calc(100% - 10px);min-width:calc(100% - 10px);max-width:calc(100% - 10px)}.fg-default.fg-m-col2.fg-gutter-5 .fg-item{width:calc(50% - 10px);min-width:calc(50% - 10px);max-width:calc(50% - 10px)}.fg-default.fg-m-col3.fg-gutter-5 .fg-item{width:calc(33.33% - 10px);min-width:calc(33.33% - 10px);max-width:calc(33.33% - 10px)}.fg-default.fg-m-col1.fg-gutter-10 .fg-item{width:calc(100% - 20px);min-width:calc(100% - 20px);max-width:calc(100% - 20px)}.fg-default.fg-m-col2.fg-gutter-10 .fg-item{width:calc(50% - 20px);min-width:calc(50% - 20px);max-width:calc(50% - 20px)}.fg-default.fg-m-col3.fg-gutter-10 .fg-item{width:calc(33.33% - 20px);min-width:calc(33.33% - 20px);max-width:calc(33.33% - 20px)}.fg-default.fg-m-col1.fg-gutter-15 .fg-item{width:calc(100% - 30px);min-width:calc(100% - 30px);max-width:calc(100% - 30px)}.fg-default.fg-m-col2.fg-gutter-15 .fg-item{width:calc(50% - 30px);min-width:calc(50% - 30px);max-width:calc(50% - 30px)}.fg-default.fg-m-col3.fg-gutter-15 .fg-item{width:calc(33.33% - 30px);min-width:calc(33.33% - 30px);max-width:calc(33.33% - 30px)}.fg-default.fg-m-col1.fg-gutter-20 .fg-item{width:calc(100% - 40px);min-width:calc(100% - 40px);max-width:calc(100% - 40px)}.fg-default.fg-m-col2.fg-gutter-20 .fg-item{width:calc(50% - 40px);min-width:calc(50% - 40px);max-width:calc(50% - 40px)}.fg-default.fg-m-col3.fg-gutter-20 .fg-item{width:calc(33.33% - 40px);min-width:calc(33.33% - 40px);max-width:calc(33.33% - 40px)}.fg-default.fg-m-col1.fg-gutter-25 .fg-item{width:calc(100% - 50px);min-width:calc(100% - 50px);max-width:calc(100% - 50px)}.fg-default.fg-m-col2.fg-gutter-25 .fg-item{width:calc(50% - 50px);min-width:calc(50% - 50px);max-width:calc(50% - 50px)}.fg-default.fg-m-col3.fg-gutter-25 .fg-item{width:calc(33.33% - 50px);min-width:calc(33.33% - 50px);max-width:calc(33.33% - 50px)}}.fg-masonry *{box-sizing:border-box}.foogallery.fg-masonry{margin:0 auto;text-align:center}.fg-masonry .fg-thumb{display:block}.fg-masonry.fg-fixed .fg-column-width,.fg-masonry.fg-fixed .fg-image,.fg-masonry.fg-fixed .fg-item{max-width:100%}.fg-masonry .fg-column-width{display:inline-block;border:solid 0 transparent}.fg-masonry .fg-column-width,.fg-masonry .fg-gutter-width{position:absolute;height:0;visibility:hidden;opacity:0;pointer-events:none}.fg-masonry.fg-col2 .fg-item .fg-image,.fg-masonry.fg-col3 .fg-item .fg-image,.fg-masonry.fg-col4 .fg-item .fg-image,.fg-masonry.fg-col5 .fg-item .fg-image,.fg-masonry.fg-col6 .fg-item .fg-image,.fg-masonry.fg-fixed .fg-item .fg-image{width:100%;height:auto;max-width:100%}.fg-masonry .fg-item{line-height:0;font-size:0;vertical-align:top}.fg-masonry.fg-col2 .fg-item{margin-bottom:1%;width:49.5%}.fg-masonry.fg-col2 .fg-column-width{width:49.5%}.fg-masonry.fg-col2 .fg-gutter-width{width:1%}.fg-masonry.fg-col2.fg-gutter-none .fg-item{margin-bottom:0;width:50%}.fg-masonry.fg-col2.fg-gutter-none .fg-column-width{width:50%}.fg-masonry.fg-col2.fg-gutter-none .fg-gutter-width{width:0}.fg-masonry.fg-col2.fg-gutter-large .fg-item{margin-bottom:3%;width:48.5%}.fg-masonry.fg-col2.fg-gutter-large .fg-column-width{width:48.5%}.fg-masonry.fg-col2.fg-gutter-large .fg-gutter-width{width:3%}.fg-masonry.fg-col3 .fg-item{margin-bottom:1%;width:32.66%}.fg-masonry.fg-col3 .fg-column-width{width:32.66%}.fg-masonry.fg-col3 .fg-gutter-width{width:1%}.fg-masonry.fg-col3.fg-gutter-none .fg-item{margin-bottom:0;width:33.33%}.fg-masonry.fg-col3.fg-gutter-none .fg-column-width{width:33.33%}.fg-masonry.fg-col3.fg-gutter-none .fg-gutter-width{width:0}.fg-masonry.fg-col3.fg-gutter-large .fg-item{margin-bottom:3%;width:31.33%}.fg-masonry.fg-col3.fg-gutter-large .fg-column-width{width:31.33%}.fg-masonry.fg-col3.fg-gutter-large .fg-gutter-width{width:3%}.fg-masonry.fg-col4 .fg-item{margin-bottom:1%;width:24.25%}.fg-masonry.fg-col4 .fg-column-width{width:24.25%}.fg-masonry.fg-col4 .fg-gutter-width{width:1%}.fg-masonry.fg-col4.fg-gutter-none .fg-item{margin-bottom:0;width:25%}.fg-masonry.fg-col4.fg-gutter-none .fg-column-width{width:25%}.fg-masonry.fg-col4.fg-gutter-none .fg-gutter-width{width:0}.fg-masonry.fg-col4.fg-gutter-large .fg-item{margin-bottom:3%;width:22.75%}.fg-masonry.fg-col4.fg-gutter-large .fg-column-width{width:22.75%}.fg-masonry.fg-col4.fg-gutter-large .fg-gutter-width{width:3%}.fg-masonry.fg-col5 .fg-item{margin-bottom:1%;width:19.2%}.fg-masonry.fg-col5 .fg-column-width{width:19.2%}.fg-masonry.fg-col5 .fg-gutter-width{width:1%}.fg-masonry.fg-col5.fg-gutter-none .fg-item{margin-bottom:0;width:20%}.fg-masonry.fg-col5.fg-gutter-none .fg-column-width{width:20%}.fg-masonry.fg-col5.fg-gutter-none .fg-gutter-width{width:0}.fg-masonry.fg-col5.fg-gutter-large .fg-item{margin-bottom:3%;width:17.6%}.fg-masonry.fg-col5.fg-gutter-large .fg-column-width{width:17.6%}.fg-masonry.fg-col5.fg-gutter-large .fg-gutter-width{width:3%}.fg-masonry.fg-col6 .fg-item{margin-bottom:1%;width:15.83%}.fg-masonry.fg-col6 .fg-column-width{width:15.83%}.fg-masonry.fg-col6 .fg-gutter-width{width:1%}.fg-masonry.fg-col6.fg-gutter-none .fg-item{margin-bottom:0;width:16.66%}.fg-masonry.fg-col6.fg-gutter-none .fg-column-width{width:16.66%}.fg-masonry.fg-col6.fg-gutter-none .fg-gutter-width{width:0}.fg-masonry.fg-col6.fg-gutter-large .fg-item{margin-bottom:3%;width:14.16%}.fg-masonry.fg-col6.fg-gutter-large .fg-column-width{width:14.16%}.fg-masonry.fg-col6.fg-gutter-large .fg-gutter-width{width:3%}@media screen and (max-width:1280px){.fg-masonry.fg-col6 .fg-item{margin-bottom:1%;width:19.2%}.fg-masonry.fg-col6 .fg-column-width{width:19.2%}.fg-masonry.fg-col6 .fg-gutter-width{width:1%}.fg-masonry.fg-col6.fg-gutter-none .fg-item{margin-bottom:0;width:20%}.fg-masonry.fg-col6.fg-gutter-none .fg-column-width{width:20%}.fg-masonry.fg-col6.fg-gutter-none .fg-gutter-width{width:0}.fg-masonry.fg-col6.fg-gutter-large .fg-item{margin-bottom:3%;width:17.6%}.fg-masonry.fg-col6.fg-gutter-large .fg-column-width{width:17.6%}.fg-masonry.fg-col6.fg-gutter-large .fg-gutter-width{width:3%}}@media screen and (max-width:1024px){.fg-masonry.fg-col5 .fg-item,.fg-masonry.fg-col6 .fg-item{margin-bottom:1%;width:24.25%}.fg-masonry.fg-col5 .fg-column-width,.fg-masonry.fg-col6 .fg-column-width{width:24.25%}.fg-masonry.fg-col5 .fg-gutter-width,.fg-masonry.fg-col6 .fg-gutter-width{width:1%}.fg-masonry.fg-col5.fg-gutter-none .fg-item,.fg-masonry.fg-col6.fg-gutter-none .fg-item{margin-bottom:0;width:25%}.fg-masonry.fg-col5.fg-gutter-none .fg-column-width,.fg-masonry.fg-col6.fg-gutter-none .fg-column-width{width:25%}.fg-masonry.fg-col5.fg-gutter-none .fg-gutter-width,.fg-masonry.fg-col6.fg-gutter-none .fg-gutter-width{width:0}.fg-masonry.fg-col5.fg-gutter-large .fg-item,.fg-masonry.fg-col6.fg-gutter-large .fg-item{margin-bottom:3%;width:22.75%}.fg-masonry.fg-col5.fg-gutter-large .fg-column-width,.fg-masonry.fg-col6.fg-gutter-large .fg-column-width{width:22.75%}.fg-masonry.fg-col5.fg-gutter-large .fg-gutter-width,.fg-masonry.fg-col6.fg-gutter-large .fg-gutter-width{width:3%}}@media screen and (max-width:720px){.fg-masonry.fg-col4 .fg-item,.fg-masonry.fg-col5 .fg-item,.fg-masonry.fg-col6 .fg-item{margin-bottom:1%;width:32.66%}.fg-masonry.fg-col4 .fg-column-width,.fg-masonry.fg-col5 .fg-column-width,.fg-masonry.fg-col6 .fg-column-width{width:32.66%}.fg-masonry.fg-col4 .fg-gutter-width,.fg-masonry.fg-col5 .fg-gutter-width,.fg-masonry.fg-col6 .fg-gutter-width{width:1%}.fg-masonry.fg-col4.fg-gutter-none .fg-item,.fg-masonry.fg-col5.fg-gutter-none .fg-item,.fg-masonry.fg-col6.fg-gutter-none .fg-item{margin-bottom:0;width:33.33%}.fg-masonry.fg-col4.fg-gutter-none .fg-column-width,.fg-masonry.fg-col5.fg-gutter-none .fg-column-width,.fg-masonry.fg-col6.fg-gutter-none .fg-column-width{width:33.33%}.fg-masonry.fg-col4.fg-gutter-none .fg-gutter-width,.fg-masonry.fg-col5.fg-gutter-none .fg-gutter-width,.fg-masonry.fg-col6.fg-gutter-none .fg-gutter-width{width:0}.fg-masonry.fg-col4.fg-gutter-large .fg-item,.fg-masonry.fg-col5.fg-gutter-large .fg-item,.fg-masonry.fg-col6.fg-gutter-large .fg-item{margin-bottom:3%;width:31.33%}.fg-masonry.fg-col4.fg-gutter-large .fg-column-width,.fg-masonry.fg-col5.fg-gutter-large .fg-column-width,.fg-masonry.fg-col6.fg-gutter-large .fg-column-width{width:31.33%}.fg-masonry.fg-col4.fg-gutter-large .fg-gutter-width,.fg-masonry.fg-col5.fg-gutter-large .fg-gutter-width,.fg-masonry.fg-col6.fg-gutter-large .fg-gutter-width{width:3%}}@media screen and (max-width:480px){.fg-masonry.fg-col3 .fg-item,.fg-masonry.fg-col4 .fg-item,.fg-masonry.fg-col5 .fg-item,.fg-masonry.fg-col6 .fg-item{margin-bottom:1%;width:49.5%}.fg-masonry.fg-col3 .fg-column-width,.fg-masonry.fg-col4 .fg-column-width,.fg-masonry.fg-col5 .fg-column-width,.fg-masonry.fg-col6 .fg-column-width{width:49.5%}.fg-masonry.fg-col3 .fg-gutter-width,.fg-masonry.fg-col4 .fg-gutter-width,.fg-masonry.fg-col5 .fg-gutter-width,.fg-masonry.fg-col6 .fg-gutter-width{width:1%}.fg-masonry.fg-col3.fg-gutter-none .fg-item,.fg-masonry.fg-col4.fg-gutter-none .fg-item,.fg-masonry.fg-col5.fg-gutter-none .fg-item,.fg-masonry.fg-col6.fg-gutter-none .fg-item{margin-bottom:0;width:50%}.fg-masonry.fg-col3.fg-gutter-none .fg-column-width,.fg-masonry.fg-col4.fg-gutter-none .fg-column-width,.fg-masonry.fg-col5.fg-gutter-none .fg-column-width,.fg-masonry.fg-col6.fg-gutter-none .fg-column-width{width:50%}.fg-masonry.fg-col3.fg-gutter-none .fg-gutter-width,.fg-masonry.fg-col4.fg-gutter-none .fg-gutter-width,.fg-masonry.fg-col5.fg-gutter-none .fg-gutter-width,.fg-masonry.fg-col6.fg-gutter-none .fg-gutter-width{width:0}.fg-masonry.fg-col3.fg-gutter-large .fg-item,.fg-masonry.fg-col4.fg-gutter-large .fg-item,.fg-masonry.fg-col5.fg-gutter-large .fg-item,.fg-masonry.fg-col6.fg-gutter-large .fg-item{margin-bottom:3%;width:48.5%}.fg-masonry.fg-col3.fg-gutter-large .fg-column-width,.fg-masonry.fg-col4.fg-gutter-large .fg-column-width,.fg-masonry.fg-col5.fg-gutter-large .fg-column-width,.fg-masonry.fg-col6.fg-gutter-large .fg-column-width{width:48.5%}.fg-masonry.fg-col3.fg-gutter-large .fg-gutter-width,.fg-masonry.fg-col4.fg-gutter-large .fg-gutter-width,.fg-masonry.fg-col5.fg-gutter-large .fg-gutter-width,.fg-masonry.fg-col6.fg-gutter-large .fg-gutter-width{width:3%}}@media screen and (max-width:320px){.fg-masonry.fg-col2 .fg-item,.fg-masonry.fg-col3 .fg-item,.fg-masonry.fg-col4 .fg-item,.fg-masonry.fg-col5 .fg-item,.fg-masonry.fg-col6 .fg-item{margin-bottom:1%;width:100%}.fg-masonry.fg-col2 .fg-column-width,.fg-masonry.fg-col3 .fg-column-width,.fg-masonry.fg-col4 .fg-column-width,.fg-masonry.fg-col5 .fg-column-width,.fg-masonry.fg-col6 .fg-column-width{width:100%}.fg-masonry.fg-col2 .fg-gutter-width,.fg-masonry.fg-col3 .fg-gutter-width,.fg-masonry.fg-col4 .fg-gutter-width,.fg-masonry.fg-col5 .fg-gutter-width,.fg-masonry.fg-col6 .fg-gutter-width{width:0}.fg-masonry.fg-col2.fg-gutter-none .fg-item,.fg-masonry.fg-col3.fg-gutter-none .fg-item,.fg-masonry.fg-col4.fg-gutter-none .fg-item,.fg-masonry.fg-col5.fg-gutter-none .fg-item,.fg-masonry.fg-col6.fg-gutter-none .fg-item{margin-bottom:0;width:100%}.fg-masonry.fg-col2.fg-gutter-none .fg-column-width,.fg-masonry.fg-col3.fg-gutter-none .fg-column-width,.fg-masonry.fg-col4.fg-gutter-none .fg-column-width,.fg-masonry.fg-col5.fg-gutter-none .fg-column-width,.fg-masonry.fg-col6.fg-gutter-none .fg-column-width{width:100%}.fg-masonry.fg-col2.fg-gutter-none .fg-gutter-width,.fg-masonry.fg-col3.fg-gutter-none .fg-gutter-width,.fg-masonry.fg-col4.fg-gutter-none .fg-gutter-width,.fg-masonry.fg-col5.fg-gutter-none .fg-gutter-width,.fg-masonry.fg-col6.fg-gutter-none .fg-gutter-width{width:0}.fg-masonry.fg-col2.fg-gutter-large .fg-item,.fg-masonry.fg-col3.fg-gutter-large .fg-item,.fg-masonry.fg-col4.fg-gutter-large .fg-item,.fg-masonry.fg-col5.fg-gutter-large .fg-item,.fg-masonry.fg-col6.fg-gutter-large .fg-item{margin-bottom:3%;width:100%}.fg-masonry.fg-col2.fg-gutter-large .fg-column-width,.fg-masonry.fg-col3.fg-gutter-large .fg-column-width,.fg-masonry.fg-col4.fg-gutter-large .fg-column-width,.fg-masonry.fg-col5.fg-gutter-large .fg-column-width,.fg-masonry.fg-col6.fg-gutter-large .fg-column-width{width:100%}.fg-masonry.fg-col2.fg-gutter-large .fg-gutter-width,.fg-masonry.fg-col3.fg-gutter-large .fg-gutter-width,.fg-masonry.fg-col4.fg-gutter-large .fg-gutter-width,.fg-masonry.fg-col5.fg-gutter-large .fg-gutter-width,.fg-masonry.fg-col6.fg-gutter-large .fg-gutter-width{width:0}}.foogallery.fg-border-thin .fg-column-width{border-width:4px}.foogallery.fg-border-medium .fg-column-width{border-width:10px}.foogallery.fg-border-thick .fg-column-width{border-width:16px}.foogallery.fg-masonry.fg-captions-bottom .fg-item-inner .fg-caption{visibility:visible;opacity:1;font-size:13px;position:relative;display:block;top:auto;bottom:auto;left:auto;right:auto;width:auto;height:auto;text-transform:none;transform:none;transition:none;background-color:transparent;border-style:solid;border-color:transparent;text-align:left}.foogallery.fg-masonry.fg-captions-bottom.fg-c-l .fg-item-inner .fg-caption{text-align:left}.foogallery.fg-masonry.fg-captions-bottom.fg-c-c .fg-item-inner .fg-caption{text-align:center}.foogallery.fg-masonry.fg-captions-bottom.fg-c-r .fg-item-inner .fg-caption{text-align:right}.foogallery.fg-masonry.fg-captions-bottom.fg-c-j .fg-item-inner .fg-caption{text-align:justify}.foogallery.fg-masonry.fg-captions-bottom .fg-item-inner:hover .fg-caption{transform:none;transition:none}.foogallery.fg-masonry.fg-captions-bottom .fg-item-inner .fg-caption-inner{display:block;position:relative;max-height:none;top:auto;bottom:auto;left:auto;right:auto;width:auto;height:auto;border:none;transform:none;transition:none}.foogallery.fg-masonry.fg-captions-bottom .fg-item-inner .fg-caption-inner:before{display:none}.foogallery.fg-masonry.fg-captions-bottom.fg-caption-hover .fg-item-inner .fg-image-overlay{display:block}.foogallery.fg-masonry.fg-captions-bottom.fg-caption-always .fg-item-inner:hover .fg-caption{visibility:visible;opacity:1}.fg-masonry.fg-captions-bottom.fg-dark .fg-caption,.fg-masonry.fg-captions-bottom.fg-light .fg-caption{color:#828282}.fg-masonry.fg-captions-bottom.fg-dark .fg-caption a,.fg-masonry.fg-captions-bottom.fg-light .fg-caption a{color:#828282;border-bottom:1px solid #828282}.fg-masonry.fg-captions-bottom.fg-dark .fg-caption a:hover,.fg-masonry.fg-captions-bottom.fg-light .fg-caption a:hover{border-bottom:none}.fg-masonry.fg-captions-bottom.fg-light .fg-caption-title,.fg-masonry.fg-captions-bottom.fg-light .fg-caption-title a{color:#222}.fg-masonry.fg-captions-bottom.fg-dark .fg-caption-title,.fg-masonry.fg-captions-bottom.fg-dark .fg-caption-title a{color:#fff}.fg-masonry.fg-captions-bottom.fg-light .fg-caption-title a{border-bottom:1px solid #222}.fg-masonry.fg-captions-bottom.fg-dark .fg-caption-title a{border-bottom:1px solid #fff}.fg-masonry.fg-captions-bottom .fg-caption{border-width:10px}.fg-masonry.fg-captions-bottom .fg-caption-title+.fg-caption-desc{margin-top:4px}.fg-masonry.fg-captions-bottom.fg-border-thin .fg-caption{border-width:10px 4px 4px 4px}.fg-masonry.fg-captions-bottom.fg-border-medium .fg-caption{border-width:10px 0 0 0}.fg-masonry.fg-captions-bottom.fg-border-thick .fg-caption{border-width:16px 0 0 0}.fg-masonry.fg-captions-bottom.fg-border-thick .fg-caption-title+.fg-caption-desc{margin-top:10px}.fg-masonry.fg-transparent .fg-item-inner{background-color:transparent;color:#333;border-color:transparent}.fg-masonry.fg-transparent .fg-caption{color:#7f7f7f}.fg-masonry.fg-transparent.fg-captions-bottom .fg-caption{border-width:0;border-top-width:10px;border-bottom-width:10px}.fg-masonry.fg-transparent .fg-caption a{color:#7f7f7f;border-bottom:1px solid #7f7f7f}.fg-masonry.fg-transparent .fg-caption a:hover{border-bottom:none}.fg-masonry.fg-transparent .fg-caption-title,.fg-masonry.fg-transparent .fg-caption-title a{color:#333}.fg-masonry.fg-transparent .fg-caption-title a{border-bottom:1px solid #333}.fg-masonry.fg-transparent.fg-round-full .fg-item,.fg-masonry.fg-transparent.fg-round-full .fg-item-inner{border-radius:15px}.fg-masonry.fg-transparent.fg-round-full .fg-image-overlay,.fg-masonry.fg-transparent.fg-round-full .fg-image-wrap,.fg-masonry.fg-transparent.fg-round-full.fg-shadow-inset-large .fg-thumb:after,.fg-masonry.fg-transparent.fg-round-full.fg-shadow-inset-medium .fg-thumb:after,.fg-masonry.fg-transparent.fg-round-full.fg-shadow-inset-small .fg-thumb:after{border-radius:50%;overflow:hidden}.fg-masonry.fg-transparent.fg-round-large:not(.fg-shadow-outline):not(.fg-shadow-small):not(.fg-shadow-medium):not(.fg-shadow-large) .fg-image-overlay,.fg-masonry.fg-transparent.fg-round-large:not(.fg-shadow-outline):not(.fg-shadow-small):not(.fg-shadow-medium):not(.fg-shadow-large) .fg-image-wrap,.fg-masonry.fg-transparent.fg-round-medium:not(.fg-shadow-outline):not(.fg-shadow-small):not(.fg-shadow-medium):not(.fg-shadow-large) .fg-image-overlay,.fg-masonry.fg-transparent.fg-round-medium:not(.fg-shadow-outline):not(.fg-shadow-small):not(.fg-shadow-medium):not(.fg-shadow-large) .fg-image-wrap,.fg-masonry.fg-transparent.fg-round-small:not(.fg-shadow-outline):not(.fg-shadow-small):not(.fg-shadow-medium):not(.fg-shadow-large) .fg-image-overlay,.fg-masonry.fg-transparent.fg-round-small:not(.fg-shadow-outline):not(.fg-shadow-small):not(.fg-shadow-medium):not(.fg-shadow-large) .fg-image-wrap{overflow:hidden}.fg-masonry.fg-transparent.fg-round-small.fg-shadow-inset-large:not(.fg-shadow-outline):not(.fg-shadow-small):not(.fg-shadow-medium):not(.fg-shadow-large) .fg-thumb:after,.fg-masonry.fg-transparent.fg-round-small.fg-shadow-inset-medium:not(.fg-shadow-outline):not(.fg-shadow-small):not(.fg-shadow-medium):not(.fg-shadow-large) .fg-thumb:after,.fg-masonry.fg-transparent.fg-round-small.fg-shadow-inset-small:not(.fg-shadow-outline):not(.fg-shadow-small):not(.fg-shadow-medium):not(.fg-shadow-large) .fg-thumb:after,.fg-masonry.fg-transparent.fg-round-small:not(.fg-shadow-outline):not(.fg-shadow-small):not(.fg-shadow-medium):not(.fg-shadow-large) .fg-image-overlay,.fg-masonry.fg-transparent.fg-round-small:not(.fg-shadow-outline):not(.fg-shadow-small):not(.fg-shadow-medium):not(.fg-shadow-large) .fg-image-wrap{border-radius:5px}.fg-masonry.fg-transparent.fg-round-medium.fg-shadow-inset-large:not(.fg-shadow-outline):not(.fg-shadow-small):not(.fg-shadow-medium):not(.fg-shadow-large) .fg-thumb:after,.fg-masonry.fg-transparent.fg-round-medium.fg-shadow-inset-medium:not(.fg-shadow-outline):not(.fg-shadow-small):not(.fg-shadow-medium):not(.fg-shadow-large) .fg-thumb:after,.fg-masonry.fg-transparent.fg-round-medium.fg-shadow-inset-small:not(.fg-shadow-outline):not(.fg-shadow-small):not(.fg-shadow-medium):not(.fg-shadow-large) .fg-thumb:after,.fg-masonry.fg-transparent.fg-round-medium:not(.fg-shadow-outline):not(.fg-shadow-small):not(.fg-shadow-medium):not(.fg-shadow-large) .fg-image-overlay,.fg-masonry.fg-transparent.fg-round-medium:not(.fg-shadow-outline):not(.fg-shadow-small):not(.fg-shadow-medium):not(.fg-shadow-large) .fg-image-wrap{border-radius:10px}.fg-masonry.fg-transparent.fg-round-large.fg-shadow-inset-large:not(.fg-shadow-outline):not(.fg-shadow-small):not(.fg-shadow-medium):not(.fg-shadow-large) .fg-thumb:after,.fg-masonry.fg-transparent.fg-round-large.fg-shadow-inset-medium:not(.fg-shadow-outline):not(.fg-shadow-small):not(.fg-shadow-medium):not(.fg-shadow-large) .fg-thumb:after,.fg-masonry.fg-transparent.fg-round-large.fg-shadow-inset-small:not(.fg-shadow-outline):not(.fg-shadow-small):not(.fg-shadow-medium):not(.fg-shadow-large) .fg-thumb:after,.fg-masonry.fg-transparent.fg-round-large:not(.fg-shadow-outline):not(.fg-shadow-small):not(.fg-shadow-medium):not(.fg-shadow-large) .fg-image-overlay,.fg-masonry.fg-transparent.fg-round-large:not(.fg-shadow-outline):not(.fg-shadow-small):not(.fg-shadow-medium):not(.fg-shadow-large) .fg-image-wrap{border-radius:15px}.fg-masonry.fg-transparent.fg-shadow-inset-small .fg-thumb:after{box-shadow:inset 0 1px 4px 0 rgba(0,0,0,.3)}.fg-masonry.fg-transparent.fg-shadow-inset-medium .fg-thumb:after{box-shadow:inset 0 1px 10px 0 rgba(0,0,0,.3)}.fg-masonry.fg-transparent.fg-shadow-inset-large .fg-thumb:after{box-shadow:inset 0 1px 16px 0 rgba(0,0,0,.3)}.fg-masonry.fg-transparent.fg-shadow-outline .fg-item-inner{box-shadow:0 0 0 1px rgba(128,128,128,.5)}.fg-masonry.fg-transparent.fg-shadow-small .fg-item-inner{box-shadow:0 1px 4px 0 rgba(128,128,128,.5)}.fg-masonry.fg-transparent.fg-shadow-medium .fg-item-inner{box-shadow:0 1px 10px 0 rgba(128,128,128,.5)}.fg-masonry.fg-transparent.fg-shadow-large .fg-item-inner{box-shadow:0 1px 16px 0 rgba(128,128,128,.5)}.fg-justified{box-sizing:border-box;position:relative;text-align:center}.foogallery.fg-justified .fg-item{box-sizing:border-box;display:inline-block;margin:0;padding:0}.foogallery.fg-justified .fg-image,.foogallery.fg-justified .fg-item-inner,.foogallery.fg-justified .fg-thumb{box-sizing:border-box;display:block;margin:0;padding:0}.fg-justified .fg-item{visibility:visible;position:relative}.fg-justified .fg-item-inner{position:relative;width:100%;height:100%}.fg-justified .fg-thumb{position:relative;overflow:hidden}.fg-justified .fg-image{z-index:1}.fg-justified .fg-item.fg-positioned .fg-image-wrap,.fg-justified .fg-item.fg-positioned .fg-thumb{width:100%;height:100%}.fg-justified .fg-item.fg-positioned .fg-image{width:100%!important;height:auto!important;min-height:100%}.foogallery.fg-justified-css{position:relative;display:flex;box-sizing:border-box;align-items:center;justify-content:stretch;flex-wrap:wrap}.foogallery.fg-justified-css:after{display:block;content:'';flex-shrink:0;flex-grow:10;min-width:60px}.foogallery.fg-justified-css .fg-image,.foogallery.fg-justified-css .fg-item,.foogallery.fg-justified-css .fg-item-inner,.foogallery.fg-justified-css .fg-thumb{display:block}.foogallery.fg-justified-css .fg-item{flex-shrink:0;flex-grow:1;margin:5px}.foogallery.fg-justified-css .fg-image-wrap{display:flex;align-items:center;justify-content:stretch;overflow:hidden}.foogallery.fg-justified-css .fg-image{width:100%;height:auto}.fg-simple_portfolio{display:flex;flex-wrap:wrap;justify-content:center;align-items:stretch;align-content:center}.fg-simple_portfolio .fg-item{position:relative;flex-grow:0;flex-shrink:0;flex-basis:auto;margin:10px;max-width:100%}.fg-simple_portfolio .fg-item-inner{display:flex;flex-direction:column;margin:0;height:100%}.fg-simple_portfolio.fg-captions-top .fg-item-inner{flex-direction:column-reverse}.fg-simple_portfolio .fg-image{height:auto;width:100%}.fg-simple_portfolio .fg-thumb{min-width:auto;min-height:auto}.foogallery.fg-simple_portfolio .fg-item-inner .fg-caption{visibility:visible;opacity:1;font-size:13px;position:relative;display:block;top:auto;bottom:auto;left:auto;right:auto;width:100%;height:100%;text-transform:none;transform:none;transition:none;background-color:transparent;border-style:solid;border-color:transparent;text-align:left}.foogallery.fg-simple_portfolio.fg-c-l .fg-item-inner .fg-caption{text-align:left}.foogallery.fg-simple_portfolio.fg-c-c .fg-item-inner .fg-caption{text-align:center}.foogallery.fg-simple_portfolio.fg-c-r .fg-item-inner .fg-caption{text-align:right}.foogallery.fg-simple_portfolio.fg-c-j .fg-item-inner .fg-caption{text-align:justify}.foogallery.fg-simple_portfolio .fg-item-inner:hover .fg-caption{transform:none;transition:none}.foogallery.fg-simple_portfolio .fg-item-inner .fg-caption-inner{display:block;top:auto;bottom:auto;left:auto;right:auto;width:auto;height:auto;border:none;transform:none;transition:none}.foogallery.fg-simple_portfolio .fg-item-inner .fg-caption-inner:before{display:none}.foogallery.fg-simple_portfolio.fg-caption-hover .fg-item-inner .fg-image-overlay{display:block}.foogallery.fg-simple_portfolio.fg-caption-always .fg-item-inner:hover .fg-caption{visibility:visible;opacity:1}.fg-simple_portfolio .fg-caption-title{white-space:normal;height:auto}.fg-simple_portfolio.fg-dark .fg-caption,.fg-simple_portfolio.fg-light .fg-caption{color:#828282}.fg-simple_portfolio.fg-dark .fg-caption a,.fg-simple_portfolio.fg-light .fg-caption a{color:#828282;border-bottom:1px solid #828282}.fg-simple_portfolio.fg-dark .fg-caption a:hover,.fg-simple_portfolio.fg-light .fg-caption a:hover{border-bottom:none}.fg-simple_portfolio.fg-light .fg-caption-title,.fg-simple_portfolio.fg-light .fg-caption-title a{color:#222}.fg-simple_portfolio.fg-dark .fg-caption-title,.fg-simple_portfolio.fg-dark .fg-caption-title a{color:#fff}.fg-simple_portfolio.fg-light .fg-caption-title a{border-bottom:1px solid #222}.fg-simple_portfolio.fg-dark .fg-caption-title a{border-bottom:1px solid #fff}.fg-simple_portfolio .fg-caption{border-width:0}.fg-simple_portfolio .fg-caption-title+.fg-caption-desc{margin-top:4px}.fg-simple_portfolio.fg-border-thin .fg-caption{border-width:10px 4px 4px 4px}.fg-simple_portfolio.fg-captions-top.fg-border-thin .fg-caption{border-width:4px 4px 10px 4px}.fg-simple_portfolio.fg-border-medium .fg-caption{border-width:10px 0 0 0}.fg-simple_portfolio.fg-captions-top.fg-border-medium .fg-caption{border-width:0 0 10px 0}.fg-simple_portfolio.fg-border-thick .fg-caption{border-width:16px 0 0 0}.fg-simple_portfolio.fg-captions-top.fg-border-thick .fg-caption{border-width:0 0 16px 0}.fg-simple_portfolio.fg-border-thick .fg-caption-title+.fg-caption-desc{margin-top:10px}.fg-simple_portfolio.fg-transparent .fg-item-inner{background-color:transparent;color:#333;border-color:transparent}.fg-simple_portfolio.fg-transparent .fg-caption{color:#7f7f7f}.fg-simple_portfolio.fg-transparent .fg-caption a{color:#7f7f7f;border-bottom:1px solid #7f7f7f}.fg-simple_portfolio.fg-transparent .fg-caption a:hover{border-bottom:none}.fg-simple_portfolio.fg-transparent .fg-caption-title,.fg-simple_portfolio.fg-transparent .fg-caption-title a{color:#333}.fg-simple_portfolio.fg-transparent .fg-caption-title a{border-bottom:1px solid #333}.fg-simple_portfolio.fg-transparent.fg-round-full .fg-item,.fg-simple_portfolio.fg-transparent.fg-round-full .fg-item-inner{border-radius:15px}.fg-simple_portfolio.fg-transparent.fg-round-full .fg-image-overlay,.fg-simple_portfolio.fg-transparent.fg-round-full .fg-image-wrap,.fg-simple_portfolio.fg-transparent.fg-round-full.fg-shadow-inset-large .fg-thumb:after,.fg-simple_portfolio.fg-transparent.fg-round-full.fg-shadow-inset-medium .fg-thumb:after,.fg-simple_portfolio.fg-transparent.fg-round-full.fg-shadow-inset-small .fg-thumb:after{border-radius:50%;overflow:hidden}.fg-simple_portfolio.fg-transparent.fg-round-large:not(.fg-shadow-outline):not(.fg-shadow-small):not(.fg-shadow-medium):not(.fg-shadow-large) .fg-image-overlay,.fg-simple_portfolio.fg-transparent.fg-round-large:not(.fg-shadow-outline):not(.fg-shadow-small):not(.fg-shadow-medium):not(.fg-shadow-large) .fg-image-wrap,.fg-simple_portfolio.fg-transparent.fg-round-medium:not(.fg-shadow-outline):not(.fg-shadow-small):not(.fg-shadow-medium):not(.fg-shadow-large) .fg-image-overlay,.fg-simple_portfolio.fg-transparent.fg-round-medium:not(.fg-shadow-outline):not(.fg-shadow-small):not(.fg-shadow-medium):not(.fg-shadow-large) .fg-image-wrap,.fg-simple_portfolio.fg-transparent.fg-round-small:not(.fg-shadow-outline):not(.fg-shadow-small):not(.fg-shadow-medium):not(.fg-shadow-large) .fg-image-overlay,.fg-simple_portfolio.fg-transparent.fg-round-small:not(.fg-shadow-outline):not(.fg-shadow-small):not(.fg-shadow-medium):not(.fg-shadow-large) .fg-image-wrap{overflow:hidden}.fg-simple_portfolio.fg-transparent.fg-round-small.fg-shadow-inset-large:not(.fg-shadow-outline):not(.fg-shadow-small):not(.fg-shadow-medium):not(.fg-shadow-large) .fg-thumb:after,.fg-simple_portfolio.fg-transparent.fg-round-small.fg-shadow-inset-medium:not(.fg-shadow-outline):not(.fg-shadow-small):not(.fg-shadow-medium):not(.fg-shadow-large) .fg-thumb:after,.fg-simple_portfolio.fg-transparent.fg-round-small.fg-shadow-inset-small:not(.fg-shadow-outline):not(.fg-shadow-small):not(.fg-shadow-medium):not(.fg-shadow-large) .fg-thumb:after,.fg-simple_portfolio.fg-transparent.fg-round-small:not(.fg-shadow-outline):not(.fg-shadow-small):not(.fg-shadow-medium):not(.fg-shadow-large) .fg-image-overlay,.fg-simple_portfolio.fg-transparent.fg-round-small:not(.fg-shadow-outline):not(.fg-shadow-small):not(.fg-shadow-medium):not(.fg-shadow-large) .fg-image-wrap{border-radius:5px}.fg-simple_portfolio.fg-transparent.fg-round-medium.fg-shadow-inset-large:not(.fg-shadow-outline):not(.fg-shadow-small):not(.fg-shadow-medium):not(.fg-shadow-large) .fg-thumb:after,.fg-simple_portfolio.fg-transparent.fg-round-medium.fg-shadow-inset-medium:not(.fg-shadow-outline):not(.fg-shadow-small):not(.fg-shadow-medium):not(.fg-shadow-large) .fg-thumb:after,.fg-simple_portfolio.fg-transparent.fg-round-medium.fg-shadow-inset-small:not(.fg-shadow-outline):not(.fg-shadow-small):not(.fg-shadow-medium):not(.fg-shadow-large) .fg-thumb:after,.fg-simple_portfolio.fg-transparent.fg-round-medium:not(.fg-shadow-outline):not(.fg-shadow-small):not(.fg-shadow-medium):not(.fg-shadow-large) .fg-image-overlay,.fg-simple_portfolio.fg-transparent.fg-round-medium:not(.fg-shadow-outline):not(.fg-shadow-small):not(.fg-shadow-medium):not(.fg-shadow-large) .fg-image-wrap{border-radius:10px}.fg-simple_portfolio.fg-transparent.fg-round-large.fg-shadow-inset-large:not(.fg-shadow-outline):not(.fg-shadow-small):not(.fg-shadow-medium):not(.fg-shadow-large) .fg-thumb:after,.fg-simple_portfolio.fg-transparent.fg-round-large.fg-shadow-inset-medium:not(.fg-shadow-outline):not(.fg-shadow-small):not(.fg-shadow-medium):not(.fg-shadow-large) .fg-thumb:after,.fg-simple_portfolio.fg-transparent.fg-round-large.fg-shadow-inset-small:not(.fg-shadow-outline):not(.fg-shadow-small):not(.fg-shadow-medium):not(.fg-shadow-large) .fg-thumb:after,.fg-simple_portfolio.fg-transparent.fg-round-large:not(.fg-shadow-outline):not(.fg-shadow-small):not(.fg-shadow-medium):not(.fg-shadow-large) .fg-image-overlay,.fg-simple_portfolio.fg-transparent.fg-round-large:not(.fg-shadow-outline):not(.fg-shadow-small):not(.fg-shadow-medium):not(.fg-shadow-large) .fg-image-wrap{border-radius:15px}.fg-simple_portfolio.fg-transparent.fg-shadow-inset-small .fg-thumb:after{box-shadow:inset 0 1px 4px 0 rgba(0,0,0,.3)}.fg-simple_portfolio.fg-transparent.fg-shadow-inset-medium .fg-thumb:after{box-shadow:inset 0 1px 10px 0 rgba(0,0,0,.3)}.fg-simple_portfolio.fg-transparent.fg-shadow-inset-large .fg-thumb:after{box-shadow:inset 0 1px 16px 0 rgba(0,0,0,.3)}.fg-simple_portfolio.fg-transparent.fg-shadow-outline .fg-item-inner{box-shadow:0 0 0 1px rgba(128,128,128,.5)}.fg-simple_portfolio.fg-transparent.fg-shadow-small .fg-item-inner{box-shadow:0 1px 4px 0 rgba(128,128,128,.5)}.fg-simple_portfolio.fg-transparent.fg-shadow-medium .fg-item-inner{box-shadow:0 1px 10px 0 rgba(128,128,128,.5)}.fg-simple_portfolio.fg-transparent.fg-shadow-large .fg-item-inner{box-shadow:0 1px 16px 0 rgba(128,128,128,.5)}.foogallery.fg-preset.fg-polaroid .fg-item{-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:transform .35s,background-color .65s}.foogallery.fg-preset.fg-polaroid .fg-item:nth-child(2n+1){-webkit-transform:rotate(3deg);transform:rotate(3deg)}.foogallery.fg-preset.fg-polaroid .fg-item:nth-child(2n){-webkit-transform:rotate(-3deg);transform:rotate(-3deg)}.foogallery.fg-preset.fg-polaroid .fg-item:nth-child(3n){-webkit-transform:rotate(1deg);transform:rotate(1deg)}.foogallery.fg-preset.fg-polaroid .fg-item:nth-child(5n){-webkit-transform:rotate(-2deg);transform:rotate(-2deg)}.foogallery.fg-preset.fg-polaroid .fg-item:hover{-webkit-transform:rotate(0);transform:rotate(0)}.foogallery.fg-preset.fg-polaroid .fg-caption{position:relative;width:auto;font-family:"Segoe Print Regular",-apple-system,system-ui,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif}.foogallery.fg-preset.fg-polaroid .fg-caption-inner,.foogallery.fg-preset.fg-polaroid .fg-caption-title{position:relative;width:auto}.foogallery.fg-preset.fg-polaroid .fg-caption-title{text-align:center}.foogallery.fg-preset.fg-polaroid .fg-caption-desc{display:none}.foogallery.fg-light.fg-preset.fg-polaroid .fg-caption-title,.foogallery.fg-preset.fg-polaroid .fg-caption-title{color:#333}.foogallery.fg-dark.fg-preset.fg-polaroid .fg-caption-title{color:#fff}.foogallery.fg-preset.fg-polaroid .fg-caption{border-style:solid;border-color:transparent;border-width:10px}.foogallery.fg-preset.fg-polaroid .fg-caption-title+.fg-caption-desc{margin-top:4px}.foogallery.fg-preset.fg-polaroid.fg-border-thin .fg-caption{border-width:10px 4px 4px 4px}.foogallery.fg-preset.fg-polaroid.fg-captions-top.fg-border-thin .fg-caption{border-width:4px 4px 10px 4px}.foogallery.fg-preset.fg-polaroid.fg-border-medium .fg-caption{border-width:10px 0 0 0}.foogallery.fg-preset.fg-polaroid.fg-captions-top.fg-border-medium .fg-caption{border-width:0 0 10px 0}.foogallery.fg-preset.fg-polaroid.fg-border-thick .fg-caption{border-width:16px 0 0 0}.foogallery.fg-preset.fg-polaroid.fg-captions-top.fg-border-thick .fg-caption{border-width:0 0 16px 0}.foogallery.fg-preset.fg-polaroid.fg-border-thick .fg-caption-title+.fg-caption-desc{margin-top:10px}.fg-image-viewer{display:block;font-family:'Open Sans','Helvetica Neue',Arial,sans-serif}.fg-image-viewer.fg-left{text-align:left}.fg-image-viewer.fg-center{text-align:center}.fg-image-viewer.fg-right{text-align:right}.fiv-inner{position:relative;display:inline-block;max-width:100%;overflow:hidden;z-index:6}.fiv-inner .fiv-inner-container{position:relative;overflow:hidden;max-width:100%;border-style:solid;border-width:0;border-bottom-width:4px;z-index:5}.fg-image-viewer .fiv-inner .fiv-inner-container .fg-item .fg-thumb,.fg-image-viewer .fiv-inner .fiv-inner-container .fg-item .fg-thumb:active,.fg-image-viewer .fiv-inner .fiv-inner-container .fg-item .fg-thumb:hover,.fg-image-viewer .fiv-inner .fiv-inner-container .fg-item .fg-thumb:visited{position:relative;display:block;border:none;outline:0;text-decoration:none;box-shadow:none;max-width:100%}.fg-image-viewer .fiv-inner .fiv-inner-container .fg-item{position:absolute;visibility:visible;opacity:1;border:none;outline:0;text-decoration:none;box-shadow:none;max-width:100%}.fg-image-viewer .fiv-inner .fiv-inner-container .fg-item:first-of-type{position:relative}.fg-image-viewer .fiv-inner .fiv-inner-container .fg-item .fg-thumb img{display:block;max-width:100%;height:auto;border:none;outline:0;text-decoration:none}.fg-image-viewer .fiv-inner .fiv-ctrls{display:block;text-align:center;font-size:14px;border-style:solid;line-height:34px}.fg-image-viewer .fiv-inner .fiv-ctrls:after{content:'';display:block;clear:both}.fg-image-viewer .fiv-inner .fiv-ctrls .fiv-count{display:inline-block;font-weight:400;margin:0}.fg-image-viewer .fiv-inner .fiv-ctrls .fiv-next,.fg-image-viewer .fiv-inner .fiv-ctrls .fiv-prev{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border:none;min-width:80px;position:relative;overflow:hidden;transition:background-color .3s}.fg-image-viewer .fiv-inner .fiv-ctrls .fiv-next:before,.fg-image-viewer .fiv-inner .fiv-ctrls .fiv-prev:before{display:block;position:absolute;font-size:24px;line-height:30px;top:0;left:0;width:100%;transform:translateY(0);transition:transform .3s}.fg-image-viewer .fiv-inner .fiv-ctrls .fiv-next:hover:before,.fg-image-viewer .fiv-inner .fiv-ctrls .fiv-prev:hover:before{transform:translateY(-100%)}.fg-image-viewer .fiv-inner .fiv-ctrls .fiv-next span,.fg-image-viewer .fiv-inner .fiv-ctrls .fiv-prev span{display:block;width:100%;transform:translateY(100%);transition:transform .3s}.fg-image-viewer .fiv-inner .fiv-ctrls .fiv-next:hover span,.fg-image-viewer .fiv-inner .fiv-ctrls .fiv-prev:hover span{transform:translateY(0)}.fg-image-viewer .fiv-inner .fiv-ctrls .fiv-prev{float:left}.fg-image-viewer .fiv-inner .fiv-ctrls .fiv-prev:before{content:'\2190'}.fg-image-viewer .fiv-inner .fiv-ctrls .fiv-next{float:right}.fg-image-viewer .fiv-inner .fiv-ctrls .fiv-next:before{content:'\2192'}.fg-image-viewer .fiv-inner .fiv-ctrls .fiv-count span{margin:0 4px}.foogallery.fg-image-viewer.fg-caption-always .fg-item-inner .fg-caption{padding:0;border:none}.foogallery.fg-image-viewer.fg-caption-always .fg-caption-title{padding:10px 10px 10px 10px}.foogallery.fg-image-viewer.fg-caption-always .fg-caption-desc{padding:10px 10px 10px 10px}.foogallery.fg-image-viewer.fg-caption-always .fg-caption-title+.fg-caption-desc{padding:0 10px 10px 10px}.fg-image-viewer.fg-light .fiv-inner .fiv-ctrls,.fg-image-viewer.fg-light .fiv-inner .fiv-ctrls .fiv-count,.fg-image-viewer.fg-light .fiv-inner .fiv-ctrls .fiv-next,.fg-image-viewer.fg-light .fiv-inner .fiv-ctrls .fiv-prev,.fg-image-viewer.fg-light .fiv-inner .fiv-inner-container{background-color:#fff;color:#333;border-color:#fff}.fg-image-viewer.fg-light .fiv-inner .fiv-ctrls .fiv-next:hover,.fg-image-viewer.fg-light .fiv-inner .fiv-ctrls .fiv-prev:hover{background-color:#f2f2f2}.fg-image-viewer.fg-light .fiv-next,.fg-image-viewer.fg-light .fiv-prev{box-shadow:inset 0 0 0 1px #ddd}.fg-image-viewer.fg-dark .fiv-inner .fiv-ctrls,.fg-image-viewer.fg-dark .fiv-inner .fiv-ctrls .fiv-count,.fg-image-viewer.fg-dark .fiv-inner .fiv-ctrls .fiv-next,.fg-image-viewer.fg-dark .fiv-inner .fiv-ctrls .fiv-prev,.fg-image-viewer.fg-dark .fiv-inner .fiv-inner-container{background-color:#333;color:#fff;border-color:#333}.fg-image-viewer.fg-dark .fiv-inner .fiv-ctrls .fiv-next:hover,.fg-image-viewer.fg-dark .fiv-inner .fiv-ctrls .fiv-prev:hover{background-color:#444}.fg-image-viewer.fg-dark .fiv-next,.fg-image-viewer.fg-dark .fiv-prev{box-shadow:inset 0 0 0 1px #222}.foogallery.fg-image-viewer.fg-border-medium .fg-item-inner,.foogallery.fg-image-viewer.fg-border-thick .fg-item-inner,.foogallery.fg-image-viewer.fg-border-thin .fg-item-inner{border-width:0}.foogallery.fg-image-viewer .fiv-ctrls,.foogallery.fg-image-viewer.fg-border-thin .fiv-inner-container{border-width:4px}.foogallery.fg-image-viewer.fg-border-medium .fiv-ctrls,.foogallery.fg-image-viewer.fg-border-medium .fiv-inner-container{border-width:10px}.foogallery.fg-image-viewer.fg-border-thick .fiv-ctrls,.foogallery.fg-image-viewer.fg-border-thick .fiv-inner-container{border-width:16px}.foogallery.fg-image-viewer .fiv-ctrls,.foogallery.fg-image-viewer.fg-border-medium .fiv-ctrls,.foogallery.fg-image-viewer.fg-border-thick .fiv-ctrls,.foogallery.fg-image-viewer.fg-border-thin .fiv-ctrls{border-top-width:1px}.foogallery.fg-image-viewer.fg-round-small .fg-item,.foogallery.fg-image-viewer.fg-round-small .fg-item-inner,.foogallery.fg-image-viewer.fg-round-small .fiv-inner{border-radius:5px}.foogallery.fg-image-viewer.fg-round-small .fg-item,.foogallery.fg-image-viewer.fg-round-small .fg-item-inner{border-bottom-left-radius:0;border-bottom-right-radius:0}.foogallery.fg-image-viewer.fg-round-small .fiv-next,.foogallery.fg-image-viewer.fg-round-small .fiv-prev{border-radius:3px}.foogallery.fg-image-viewer.fg-border-medium.fg-round-small .fg-item,.foogallery.fg-image-viewer.fg-border-medium.fg-round-small .fg-item-inner,.foogallery.fg-image-viewer.fg-border-medium.fg-round-small .fiv-next,.foogallery.fg-image-viewer.fg-border-medium.fg-round-small .fiv-prev,.foogallery.fg-image-viewer.fg-border-thick.fg-round-small .fg-item,.foogallery.fg-image-viewer.fg-border-thick.fg-round-small .fg-item-inner,.foogallery.fg-image-viewer.fg-border-thick.fg-round-small .fiv-next,.foogallery.fg-image-viewer.fg-border-thick.fg-round-small .fiv-prev,.foogallery.fg-image-viewer.fg-border-thin.fg-round-small .fg-item,.foogallery.fg-image-viewer.fg-border-thin.fg-round-small .fg-item-inner,.foogallery.fg-image-viewer.fg-border-thin.fg-round-small .fiv-next,.foogallery.fg-image-viewer.fg-border-thin.fg-round-small .fiv-prev{border-radius:3px}.foogallery.fg-image-viewer.fg-round-medium .fg-item,.foogallery.fg-image-viewer.fg-round-medium .fg-item-inner,.foogallery.fg-image-viewer.fg-round-medium .fiv-inner{border-radius:10px}.foogallery.fg-image-viewer.fg-round-medium .fg-item,.foogallery.fg-image-viewer.fg-round-medium .fg-item-inner{border-bottom-left-radius:0;border-bottom-right-radius:0}.foogallery.fg-image-viewer.fg-round-medium .fiv-next,.foogallery.fg-image-viewer.fg-round-medium .fiv-prev{border-radius:5px}.foogallery.fg-image-viewer.fg-border-thin.fg-round-medium .fg-item,.foogallery.fg-image-viewer.fg-border-thin.fg-round-medium .fg-item-inner,.foogallery.fg-image-viewer.fg-border-thin.fg-round-medium .fiv-next,.foogallery.fg-image-viewer.fg-border-thin.fg-round-medium .fiv-prev{border-radius:5px}.foogallery.fg-image-viewer.fg-border-medium.fg-round-medium .fg-item,.foogallery.fg-image-viewer.fg-border-medium.fg-round-medium .fg-item-inner,.foogallery.fg-image-viewer.fg-border-medium.fg-round-medium .fiv-next,.foogallery.fg-image-viewer.fg-border-medium.fg-round-medium .fiv-prev,.foogallery.fg-image-viewer.fg-border-thick.fg-round-medium .fg-item,.foogallery.fg-image-viewer.fg-border-thick.fg-round-medium .fg-item-inner,.foogallery.fg-image-viewer.fg-border-thick.fg-round-medium .fiv-next,.foogallery.fg-image-viewer.fg-border-thick.fg-round-medium .fiv-prev{border-radius:3px}.foogallery.fg-image-viewer.fg-round-large .fg-item,.foogallery.fg-image-viewer.fg-round-large .fg-item-inner,.foogallery.fg-image-viewer.fg-round-large .fiv-inner{border-radius:15px}.foogallery.fg-image-viewer.fg-round-large .fg-item,.foogallery.fg-image-viewer.fg-round-large .fg-item-inner{border-bottom-left-radius:0;border-bottom-right-radius:0}.foogallery.fg-image-viewer.fg-round-large .fiv-next,.foogallery.fg-image-viewer.fg-round-large .fiv-prev{border-radius:11px}.foogallery.fg-image-viewer.fg-border-thin.fg-round-large .fg-item,.foogallery.fg-image-viewer.fg-border-thin.fg-round-large .fg-item-inner,.foogallery.fg-image-viewer.fg-border-thin.fg-round-large .fiv-next,.foogallery.fg-image-viewer.fg-border-thin.fg-round-large .fiv-prev{border-radius:11px}.foogallery.fg-image-viewer.fg-border-medium.fg-round-large .fg-item,.foogallery.fg-image-viewer.fg-border-medium.fg-round-large .fg-item-inner,.foogallery.fg-image-viewer.fg-border-medium.fg-round-large .fiv-next,.foogallery.fg-image-viewer.fg-border-medium.fg-round-large .fiv-prev{border-radius:5px}.foogallery.fg-image-viewer.fg-border-thick.fg-round-large .fg-item,.foogallery.fg-image-viewer.fg-border-thick.fg-round-large .fg-item-inner,.foogallery.fg-image-viewer.fg-border-thick.fg-round-large .fiv-next,.foogallery.fg-image-viewer.fg-border-thick.fg-round-large .fiv-prev{border-radius:3px}.foogallery.fg-image-viewer.fg-round-full .fiv-inner,.foogallery.fg-image-viewer.fg-round-full .fiv-next,.foogallery.fg-image-viewer.fg-round-full .fiv-prev{border-radius:50%}.foogallery.fg-image-viewer.fg-dark.fg-shadow-large .fg-item-inner,.foogallery.fg-image-viewer.fg-dark.fg-shadow-medium .fg-item-inner,.foogallery.fg-image-viewer.fg-dark.fg-shadow-outline .fg-item-inner,.foogallery.fg-image-viewer.fg-dark.fg-shadow-small .fg-item-inner,.foogallery.fg-image-viewer.fg-light.fg-shadow-large .fg-item-inner,.foogallery.fg-image-viewer.fg-light.fg-shadow-medium .fg-item-inner,.foogallery.fg-image-viewer.fg-light.fg-shadow-outline .fg-item-inner,.foogallery.fg-image-viewer.fg-light.fg-shadow-small .fg-item-inner{box-shadow:none}.foogallery.fg-image-viewer.fg-light.fg-shadow-outline .fiv-inner{box-shadow:0 0 0 1px #ddd}.foogallery.fg-image-viewer.fg-dark.fg-shadow-outline .fiv-inner{box-shadow:0 0 0 1px #222}.foogallery.fg-image-viewer.fg-dark.fg-shadow-small .fiv-inner,.foogallery.fg-image-viewer.fg-light.fg-shadow-small .fiv-inner{box-shadow:0 1px 4px 0 rgba(0,0,0,.5)}.foogallery.fg-image-viewer.fg-dark.fg-shadow-medium .fiv-inner,.foogallery.fg-image-viewer.fg-light.fg-shadow-medium .fiv-inner{box-shadow:0 1px 10px 0 rgba(0,0,0,.5)}.foogallery.fg-image-viewer.fg-dark.fg-shadow-large .fiv-inner,.foogallery.fg-image-viewer.fg-light.fg-shadow-large .fiv-inner{box-shadow:0 1px 16px 0 rgba(0,0,0,.5)}.foogallery.fg-thumbnail,.foogallery.fg-thumbnail.fg-center{text-align:center}.foogallery.fg-thumbnail.fg-left{text-align:left}.foogallery.fg-thumbnail.fg-right{text-align:right}.foogallery.fg-thumbnail.fg-float-left{float:left;width:auto}.foogallery.fg-thumbnail.fg-float-right{float:right;width:auto}.foogallery.fg-thumbnail .fg-item{display:inline-block;vertical-align:top;max-width:100%}.foogallery.fg-thumbnail .fg-image{max-width:100%}.foogallery.fg-thumbnail .fg-st-hidden{display:none}.foogallery-stack-album{text-align:center;overflow:hidden;font-family:-apple-system,system-ui,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-size:13px;font-weight:400;line-height:1.3}.foogallery-stack-album,.foogallery-stack-album *{box-sizing:border-box}.foogallery-stack-album.fg-align-left{text-align:left}.foogallery-stack-album.fg-align-center{text-align:center}.foogallery-stack-album.fg-align-right{text-align:right}.foogallery-stack-album.fg-disable-transitions,.foogallery-stack-album.fg-disable-transitions *{transition:none!important}.fg-header{display:flex;flex-wrap:nowrap;justify-content:space-between;align-items:center;position:relative;padding:0;margin:0;border-top:solid 1px #aaa;border-bottom:solid 1px #aaa}.fg-header-title{display:block;margin:0;padding:0 20px;width:100%;text-align:left}.fg-header-active{display:block;margin:0;padding:0 20px;visibility:hidden;opacity:0;width:100%;text-align:right;transition-property:opacity,visibility;transition-duration:.3s;transition-timing-function:ease-in-out}.fg-header-back{display:block;padding:0;margin:5px;visibility:hidden;opacity:0;min-width:40px;width:40px;height:40px;border-radius:50%;text-align:center;line-height:38px;color:#999;background:#ddd;background:rgba(200,200,200,.5);cursor:pointer;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;transition-property:opacity,visibility;transition-duration:.3s;transition-timing-function:ease-in-out}.fg-has-active .fg-header-active,.fg-has-active .fg-header-back{visibility:visible;opacity:1}.fg-piles{display:inline-block;position:relative;transition-property:width,height;transition-duration:.3s;transition-timing-function:ease-in-out}.fg-pile{display:block;position:absolute;top:0;left:0;list-style:none;padding:0;margin:0;visibility:visible;opacity:1;transition-property:opacity,visibility,top,left,width,height;transition-duration:.3s;transition-timing-function:ease-in-out}.fg-pile.fg-hidden{visibility:hidden;opacity:0}.fg-pile-item{display:block;position:absolute;top:25px;left:25px;visibility:visible;opacity:1;cursor:pointer;border:10px solid #fff;background-color:#fff;box-shadow:0 1px 4px rgba(0,0,0,.2);transition-property:opacity,visibility,top,left,transform;transition-duration:.3s;transition-timing-function:ease-in-out;z-index:1;transform:rotate(0)}.fg-expanded .fg-pile-item{z-index:2;transform:rotate(0)!important}.fg-pile-item.fg-has-cover{z-index:10;transform:rotate(0)!important}.fg-pile-item:nth-child(2){z-index:9}.fg-pile-item:nth-child(3){z-index:8}.fg-pile-item:nth-child(4){z-index:7}.fg-pile-item:nth-child(1n+5){visibility:hidden;opacity:0}.fg-expanded .fg-pile-item:nth-child(1n+4){visibility:visible;opacity:1}.fg-pile-item-thumb{display:block}.fg-pile-item-image{display:block}.fg-pile-item-caption{display:flex;justify-content:center;flex-direction:column;position:absolute;top:0;left:0;bottom:0;right:0;width:100%;height:100%;margin:0;padding:10px;background-color:rgba(68,68,68,.5);color:#fff;text-align:center;visibility:hidden;opacity:0;transition-property:opacity,visibility;transition-duration:.3s;transition-timing-function:ease-in-out}.fg-pile-item-title{display:block;width:100%;padding:0 0 10px}.fg-pile-item-desc{display:block;width:100%;max-height:100%;border-top:solid 1px currentColor;padding:10px 0 0;overflow:hidden}.fg-pile-item-thumb:hover .fg-pile-item-caption{visibility:visible;opacity:1}.fg-pile-cover{display:flex;justify-content:left;align-items:center;position:absolute;top:0;left:0;bottom:0;right:0;width:100%;height:100%;visibility:visible;opacity:1;cursor:pointer;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;transition-property:opacity,visibility;transition-duration:.3s;transition-timing-function:ease-in-out}.fg-expanded .fg-pile-cover{visibility:hidden;opacity:0;pointer-events:none}.fg-pile-cover-content{display:flex;position:relative;background:#fff;color:#333;width:75%;font-weight:700;box-shadow:1px 1px 1px rgba(0,0,0,.1),5px 0 5px -3px rgba(0,0,0,.4),inset 0 0 5px rgba(0,0,0,.04)}.fg-pile-cover-title{text-align:center;padding:10px;width:100%}.fg-pile-cover-count{color:#aaa;padding:10px 5px;background:#f7f7f7;height:100%}
|
extensions/default-templates/shared/img/icons.svg
CHANGED
@@ -22,6 +22,11 @@
|
|
22 |
<path id="video-2-def" d="M0 8C0 2 0 2 8 2C16 2 16 2 16 8C16 14 16 14 8 14C0 14 0 14 0 8zM6.5 5.5l4 2.5-4 2.5z" fill-rule="evenodd"/>
|
23 |
<path id="video-3-def" d="M0 8a8 8 0 0 0 16 0a8 8 0 0 0-16 0M1.5 8a6.5 6.5 0 0 0 13 0a6.5 6.5 0 0 0-13 0M6 5l5 3-5 3z" fill-rule="evenodd"/>
|
24 |
<path id="video-4-def" d="M0 1c0-0.552 0.448-1 1-1h14c0.552 0 1 0.448 1 1v14c0 0.552-0.448 1-1 1h-14c-0.552 0-1-0.448-1-1zM6 5l5 3-5 3z" fill-rule="evenodd"/>
|
|
|
|
|
|
|
|
|
|
|
25 |
</defs>
|
26 |
<!-- image -->
|
27 |
<g id="image" class="icon">
|
@@ -111,6 +116,17 @@
|
|
111 |
<use xlink:href="#external-def"/>
|
112 |
</g>
|
113 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
114 |
<!-- video-default -->
|
115 |
<g id="video-default" class="icon">
|
116 |
<use xlink:href="#video-default-def"/>
|
22 |
<path id="video-2-def" d="M0 8C0 2 0 2 8 2C16 2 16 2 16 8C16 14 16 14 8 14C0 14 0 14 0 8zM6.5 5.5l4 2.5-4 2.5z" fill-rule="evenodd"/>
|
23 |
<path id="video-3-def" d="M0 8a8 8 0 0 0 16 0a8 8 0 0 0-16 0M1.5 8a6.5 6.5 0 0 0 13 0a6.5 6.5 0 0 0-13 0M6 5l5 3-5 3z" fill-rule="evenodd"/>
|
24 |
<path id="video-4-def" d="M0 1c0-0.552 0.448-1 1-1h14c0.552 0 1 0.448 1 1v14c0 0.552-0.448 1-1 1h-14c-0.552 0-1-0.448-1-1zM6 5l5 3-5 3z" fill-rule="evenodd"/>
|
25 |
+
<g id="cart-def">
|
26 |
+
<path d="M13.238 9c0.55 0 1.124-0.433 1.275-0.962l1.451-5.077c0.151-0.529-0.175-0.962-0.725-0.962h-10.238c0-1.105-0.895-2-2-2h-3v2h3v8.5c0 0.828 0.672 1.5 1.5 1.5h9.5c0.552 0 1-0.448 1-1s-0.448-1-1-1h-9v-1h8.238zM5 4h9.044l-0.857 3h-8.187v-3z"/>
|
27 |
+
<path d="M6 14.5c0 0.828-0.672 1.5-1.5 1.5s-1.5-0.672-1.5-1.5c0-0.828 0.672-1.5 1.5-1.5s1.5 0.672 1.5 1.5z"/>
|
28 |
+
<path d="M15 14.5c0 0.828-0.672 1.5-1.5 1.5s-1.5-0.672-1.5-1.5c0-0.828 0.672-1.5 1.5-1.5s1.5 0.672 1.5 1.5z"/>
|
29 |
+
</g>
|
30 |
</defs>
|
31 |
<!-- image -->
|
32 |
<g id="image" class="icon">
|
116 |
<use xlink:href="#external-def"/>
|
117 |
</g>
|
118 |
|
119 |
+
<!-- cart -->
|
120 |
+
<g id="cart" class="icon">
|
121 |
+
<use xlink:href="#cart-def"/>
|
122 |
+
</g>
|
123 |
+
<g id="cart-light" class="icon light">
|
124 |
+
<use xlink:href="#cart-def"/>
|
125 |
+
</g>
|
126 |
+
<g id="cart-dark" class="icon dark">
|
127 |
+
<use xlink:href="#cart-def"/>
|
128 |
+
</g>
|
129 |
+
|
130 |
<!-- video-default -->
|
131 |
<g id="video-default" class="icon">
|
132 |
<use xlink:href="#video-default-def"/>
|
extensions/default-templates/shared/js/foogallery.js
CHANGED
@@ -6393,6 +6393,14 @@ FooGallery.utils.$, FooGallery.utils, FooGallery.utils.is, FooGallery.utils.fn);
|
|
6393 |
}
|
6394 |
return type;
|
6395 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6396 |
configure: function (name, options, classes, il8n) {
|
6397 |
var self = this;
|
6398 |
if (self.contains(name)) {
|
@@ -8549,6 +8557,24 @@ FooGallery.utils.$, FooGallery.utils, FooGallery.utils.is, FooGallery.utils.fn);
|
|
8549 |
* @type {boolean}
|
8550 |
*/
|
8551 |
self.hasExif = _is.exif(self.exif);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
8552 |
/**
|
8553 |
* @summary This property is used to store the promise created when loading an item for the first time.
|
8554 |
* @memberof FooGallery.Item#
|
@@ -9079,6 +9105,15 @@ FooGallery.utils.$, FooGallery.utils, FooGallery.utils.is, FooGallery.utils.fn);
|
|
9079 |
picture.appendChild(image);
|
9080 |
}
|
9081 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
9082 |
var overlay = document.createElement("span");
|
9083 |
overlay.className = cls.overlay;
|
9084 |
|
@@ -9096,24 +9131,52 @@ FooGallery.utils.$, FooGallery.utils, FooGallery.utils.is, FooGallery.utils.fn);
|
|
9096 |
self._setAttributes(captionInner, attr.caption.inner);
|
9097 |
captionInner.className = cls.caption.inner;
|
9098 |
|
9099 |
-
var captionTitle = null;
|
9100 |
-
if (
|
9101 |
captionTitle = document.createElement("div");
|
9102 |
self._setAttributes(captionTitle, attr.caption.title);
|
9103 |
captionTitle.className = cls.caption.title;
|
9104 |
captionTitle.innerHTML = self.maxCaptionLength > 0 ? _str.trimTo(self.caption, self.maxCaptionLength) : self.caption;
|
|
|
9105 |
}
|
9106 |
-
var captionDesc = null;
|
9107 |
-
if (
|
9108 |
captionDesc = document.createElement("div");
|
9109 |
self._setAttributes(captionDesc, attr.caption.description);
|
9110 |
captionDesc.className = cls.caption.description;
|
9111 |
captionDesc.innerHTML = self.maxDescriptionLength > 0 ? _str.trimTo(self.description, self.maxDescriptionLength) : self.description;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
9112 |
}
|
9113 |
-
|
9114 |
-
if (captionTitle !== null) captionInner.appendChild(captionTitle);
|
9115 |
-
if (captionDesc !== null) captionInner.appendChild(captionDesc);
|
9116 |
caption.appendChild(captionInner);
|
|
|
9117 |
if (self.isPicture){
|
9118 |
wrap.appendChild(picture);
|
9119 |
} else {
|
@@ -9122,7 +9185,12 @@ FooGallery.utils.$, FooGallery.utils, FooGallery.utils.is, FooGallery.utils.fn);
|
|
9122 |
anchor.appendChild(overlay);
|
9123 |
anchor.appendChild(wrap);
|
9124 |
inner.appendChild(anchor);
|
9125 |
-
|
|
|
|
|
|
|
|
|
|
|
9126 |
elem.appendChild(inner);
|
9127 |
elem.appendChild(loader);
|
9128 |
|
@@ -9497,7 +9565,7 @@ FooGallery.utils.$, FooGallery.utils, FooGallery.utils.is, FooGallery.utils.fn);
|
|
9497 |
*/
|
9498 |
onCaptionClick: function (e) {
|
9499 |
var self = e.data.self, evt = self.tmpl.trigger("caption-click-item", [self]);
|
9500 |
-
if (!evt.isDefaultPrevented() && self.$anchor.length > 0 && !$(e.target).is("a,:input")) {
|
9501 |
self.$anchor.get(0).click();
|
9502 |
}
|
9503 |
}
|
@@ -9523,6 +9591,8 @@ FooGallery.utils.$, FooGallery.utils, FooGallery.utils.is, FooGallery.utils.fn);
|
|
9523 |
* @property {boolean} [showCaptionTitle=true] - Whether or not the caption title should be displayed.
|
9524 |
* @property {boolean} [showCaptionDescription=true] - Whether or not the caption description should be displayed.
|
9525 |
* @property {FooGallery.Item~Attributes} [attr] - Additional attributes to apply to the items' elements.
|
|
|
|
|
9526 |
*/
|
9527 |
_.template.configure("core", {
|
9528 |
item: {
|
@@ -9546,6 +9616,11 @@ FooGallery.utils.$, FooGallery.utils, FooGallery.utils.is, FooGallery.utils.fn);
|
|
9546 |
showCaptionDescription: true,
|
9547 |
noLightbox: false,
|
9548 |
panelHide: false,
|
|
|
|
|
|
|
|
|
|
|
9549 |
exif: {
|
9550 |
aperture: null,
|
9551 |
camera: null,
|
@@ -9593,7 +9668,9 @@ FooGallery.utils.$, FooGallery.utils, FooGallery.utils.is, FooGallery.utils.fn);
|
|
9593 |
elem: "fg-caption",
|
9594 |
inner: "fg-caption-inner",
|
9595 |
title: "fg-caption-title",
|
9596 |
-
description: "fg-caption-desc"
|
|
|
|
|
9597 |
}
|
9598 |
}
|
9599 |
}, {
|
@@ -9616,6 +9693,23 @@ FooGallery.utils.$, FooGallery.utils, FooGallery.utils.is, FooGallery.utils.fn);
|
|
9616 |
// ## Type Definitions ##
|
9617 |
// ######################
|
9618 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
9619 |
/**
|
9620 |
* @summary A simple object containing the CSS classes used by an item.
|
9621 |
* @typedef {object} FooGallery.Item~CSSClasses
|
6393 |
}
|
6394 |
return type;
|
6395 |
},
|
6396 |
+
/**
|
6397 |
+
* @memberof FooGallery.TemplateFactory#
|
6398 |
+
* @function configure
|
6399 |
+
* @param {string} name
|
6400 |
+
* @param {object} options
|
6401 |
+
* @param {object} classes
|
6402 |
+
* @param {object} il8n
|
6403 |
+
*/
|
6404 |
configure: function (name, options, classes, il8n) {
|
6405 |
var self = this;
|
6406 |
if (self.contains(name)) {
|
8557 |
* @type {boolean}
|
8558 |
*/
|
8559 |
self.hasExif = _is.exif(self.exif);
|
8560 |
+
/**
|
8561 |
+
* @memberof FooGallery.Item#
|
8562 |
+
* @name ribbon
|
8563 |
+
* @type {FooGallery.Item~Ribbon}
|
8564 |
+
*/
|
8565 |
+
self.ribbon = self.opt.ribbon;
|
8566 |
+
/**
|
8567 |
+
* @memberof FooGallery.Item#
|
8568 |
+
* @name hasRibbon
|
8569 |
+
* @type {boolean}
|
8570 |
+
*/
|
8571 |
+
self.hasRibbon = _is.hash(self.ribbon) && _is.string(self.ribbon.text) && _is.string(self.ribbon.type);
|
8572 |
+
/**
|
8573 |
+
* @memberof FooGallery.Item#
|
8574 |
+
* @name buttons
|
8575 |
+
* @type {FooGallery.Item~Button[]}
|
8576 |
+
*/
|
8577 |
+
self.buttons = self.opt.buttons;
|
8578 |
/**
|
8579 |
* @summary This property is used to store the promise created when loading an item for the first time.
|
8580 |
* @memberof FooGallery.Item#
|
9105 |
picture.appendChild(image);
|
9106 |
}
|
9107 |
|
9108 |
+
var ribbon;
|
9109 |
+
if (self.hasRibbon){
|
9110 |
+
ribbon = document.createElement("div");
|
9111 |
+
ribbon.className = self.ribbon.type;
|
9112 |
+
var ribbonText = document.createElement("span");
|
9113 |
+
ribbonText.innerHTML = self.ribbon.text;
|
9114 |
+
ribbon.appendChild(ribbonText);
|
9115 |
+
}
|
9116 |
+
|
9117 |
var overlay = document.createElement("span");
|
9118 |
overlay.className = cls.overlay;
|
9119 |
|
9131 |
self._setAttributes(captionInner, attr.caption.inner);
|
9132 |
captionInner.className = cls.caption.inner;
|
9133 |
|
9134 |
+
var captionTitle = null, hasTitle = self.showCaptionTitle && _is.string(self.caption) && self.caption.length > 0;
|
9135 |
+
if (hasTitle) {
|
9136 |
captionTitle = document.createElement("div");
|
9137 |
self._setAttributes(captionTitle, attr.caption.title);
|
9138 |
captionTitle.className = cls.caption.title;
|
9139 |
captionTitle.innerHTML = self.maxCaptionLength > 0 ? _str.trimTo(self.caption, self.maxCaptionLength) : self.caption;
|
9140 |
+
captionInner.appendChild(captionTitle);
|
9141 |
}
|
9142 |
+
var captionDesc = null, hasDescription = self.showCaptionDescription && _is.string(self.description) && self.description.length > 0;
|
9143 |
+
if (hasDescription) {
|
9144 |
captionDesc = document.createElement("div");
|
9145 |
self._setAttributes(captionDesc, attr.caption.description);
|
9146 |
captionDesc.className = cls.caption.description;
|
9147 |
captionDesc.innerHTML = self.maxDescriptionLength > 0 ? _str.trimTo(self.description, self.maxDescriptionLength) : self.description;
|
9148 |
+
captionInner.appendChild(captionDesc);
|
9149 |
+
}
|
9150 |
+
var captionButtons = null, hasButtons = _is.array(self.buttons) && self.buttons.length > 0;
|
9151 |
+
if (hasButtons){
|
9152 |
+
captionButtons = document.createElement("div");
|
9153 |
+
captionButtons.className = cls.caption.buttons;
|
9154 |
+
_utils.each(self.buttons, function(button){
|
9155 |
+
if (_is.hash(button) && _is.string(button.text)){
|
9156 |
+
var captionButton = document.createElement("a");
|
9157 |
+
captionButton.innerHTML = button.text;
|
9158 |
+
if (_is.string(button.url) && button.url.length > 0){
|
9159 |
+
captionButton.href = button.url;
|
9160 |
+
}
|
9161 |
+
if (_is.string(button.rel) && button.rel.length > 0){
|
9162 |
+
captionButton.rel = button.rel;
|
9163 |
+
}
|
9164 |
+
if (_is.string(button.target) && button.target.length > 0){
|
9165 |
+
captionButton.target = button.target;
|
9166 |
+
}
|
9167 |
+
if (_is.string(button.classes) && button.classes.length > 0){
|
9168 |
+
captionButton.className = button.classes;
|
9169 |
+
}
|
9170 |
+
if (_is.hash(button.attr)){
|
9171 |
+
self._setAttributes(captionButton, button.attr);
|
9172 |
+
}
|
9173 |
+
captionButtons.appendChild(captionButton);
|
9174 |
+
}
|
9175 |
+
});
|
9176 |
+
captionInner.appendChild(captionButtons);
|
9177 |
}
|
|
|
|
|
|
|
9178 |
caption.appendChild(captionInner);
|
9179 |
+
|
9180 |
if (self.isPicture){
|
9181 |
wrap.appendChild(picture);
|
9182 |
} else {
|
9185 |
anchor.appendChild(overlay);
|
9186 |
anchor.appendChild(wrap);
|
9187 |
inner.appendChild(anchor);
|
9188 |
+
if (hasTitle || hasDescription || hasButtons){
|
9189 |
+
inner.appendChild(caption);
|
9190 |
+
}
|
9191 |
+
if (self.hasRibbon){
|
9192 |
+
elem.appendChild(ribbon);
|
9193 |
+
}
|
9194 |
elem.appendChild(inner);
|
9195 |
elem.appendChild(loader);
|
9196 |
|
9565 |
*/
|
9566 |
onCaptionClick: function (e) {
|
9567 |
var self = e.data.self, evt = self.tmpl.trigger("caption-click-item", [self]);
|
9568 |
+
if (!evt.isDefaultPrevented() && self.$anchor.length > 0 && !$(e.target).is("a[href],:input")) {
|
9569 |
self.$anchor.get(0).click();
|
9570 |
}
|
9571 |
}
|
9591 |
* @property {boolean} [showCaptionTitle=true] - Whether or not the caption title should be displayed.
|
9592 |
* @property {boolean} [showCaptionDescription=true] - Whether or not the caption description should be displayed.
|
9593 |
* @property {FooGallery.Item~Attributes} [attr] - Additional attributes to apply to the items' elements.
|
9594 |
+
* @property {FooGallery.Item~Button[]} [buttons=[]] - An array of buttons to append to the caption.
|
9595 |
+
* @property {FooGallery.Item~Ribbon} [ribbon] - The ribbon type and text to display for the item.
|
9596 |
*/
|
9597 |
_.template.configure("core", {
|
9598 |
item: {
|
9616 |
showCaptionDescription: true,
|
9617 |
noLightbox: false,
|
9618 |
panelHide: false,
|
9619 |
+
buttons: [],
|
9620 |
+
ribbon: {
|
9621 |
+
type: null,
|
9622 |
+
text: null
|
9623 |
+
},
|
9624 |
exif: {
|
9625 |
aperture: null,
|
9626 |
camera: null,
|
9668 |
elem: "fg-caption",
|
9669 |
inner: "fg-caption-inner",
|
9670 |
title: "fg-caption-title",
|
9671 |
+
description: "fg-caption-desc",
|
9672 |
+
buttons: "fg-caption-buttons",
|
9673 |
+
button: "fg-caption-button"
|
9674 |
}
|
9675 |
}
|
9676 |
}, {
|
9693 |
// ## Type Definitions ##
|
9694 |
// ######################
|
9695 |
|
9696 |
+
/**
|
9697 |
+
* @summary An object containing properties for a button to add to the item caption.
|
9698 |
+
* @typedef {object} FooGallery.Item~Button
|
9699 |
+
* @property {string} url - The url the button opens.
|
9700 |
+
* @property {string} text - The text displayed within the button.
|
9701 |
+
* @property {string} [rel=""] - The rel attribute for the button.
|
9702 |
+
* @property {string} [target="_blank"] - The target attribute for the button.
|
9703 |
+
* @property {string} [classes=""] - Additional CSS class names to apply to the button.
|
9704 |
+
*/
|
9705 |
+
|
9706 |
+
/**
|
9707 |
+
* @summary An object containing the ribbon information.
|
9708 |
+
* @typedef {object} FooGallery.Item~Ribbon
|
9709 |
+
* @property {string} type - The type of ribbon to display.
|
9710 |
+
* @property {string} text - The text displayed within the ribbon.
|
9711 |
+
*/
|
9712 |
+
|
9713 |
/**
|
9714 |
* @summary A simple object containing the CSS classes used by an item.
|
9715 |
* @typedef {object} FooGallery.Item~CSSClasses
|
extensions/default-templates/shared/js/foogallery.min.js
CHANGED
@@ -1,6 +1,6 @@
|
|
1 |
/*
|
2 |
* FooGallery - The Most Intuitive and Extensible Gallery Creation and Management Tool Ever Created for WordPress
|
3 |
-
* @version 2.0.
|
4 |
* @link
|
5 |
* @copyright Steven Usher & Brad Vincent 2015
|
6 |
* @license Released under the GPLv3 license.
|
@@ -8,5 +8,5 @@
|
|
8 |
|
9 |
function _typeof(a){"@babel/helpers - typeof";return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(a){return typeof a}:function(a){return a&&"function"==typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a})(a)}!function(){"use strict";function a(a){this.time=a.time,this.target=a.target,this.rootBounds=a.rootBounds,this.boundingClientRect=a.boundingClientRect,this.intersectionRect=a.intersectionRect||i(),this.isIntersecting=!!a.intersectionRect;var b=this.boundingClientRect,c=b.width*b.height,d=this.intersectionRect,e=d.width*d.height;this.intersectionRatio=c?Number((e/c).toFixed(4)):this.isIntersecting?1:0}function b(a,b){var c=b||{};if("function"!=typeof a)throw new Error("callback must be a function");if(c.root&&1!=c.root.nodeType)throw new Error("root must be an Element");this._checkForIntersections=d(this._checkForIntersections.bind(this),this.THROTTLE_TIMEOUT),this._callback=a,this._observationTargets=[],this._queuedEntries=[],this._rootMarginValues=this._parseRootMargin(c.rootMargin),this.thresholds=this._initThresholds(c.threshold),this.root=c.root||null,this.rootMargin=this._rootMarginValues.map(function(a){return a.value+a.unit}).join(" ")}function c(){return window.performance&&performance.now&&performance.now()}function d(a,b){var c=null;return function(){c||(c=setTimeout(function(){a(),c=null},b))}}function e(a,b,c,d){"function"==typeof a.addEventListener?a.addEventListener(b,c,d||!1):"function"==typeof a.attachEvent&&a.attachEvent("on"+b,c)}function f(a,b,c,d){"function"==typeof a.removeEventListener?a.removeEventListener(b,c,d||!1):"function"==typeof a.detatchEvent&&a.detatchEvent("on"+b,c)}function g(a,b){var c=Math.max(a.top,b.top),d=Math.min(a.bottom,b.bottom),e=Math.max(a.left,b.left),f=Math.min(a.right,b.right),g=f-e,h=d-c;return g>=0&&h>=0&&{top:c,bottom:d,left:e,right:f,width:g,height:h}}function h(a){var b;try{b=a.getBoundingClientRect()}catch(a){}return b?(b.width&&b.height||(b={top:b.top,right:b.right,bottom:b.bottom,left:b.left,width:b.right-b.left,height:b.bottom-b.top}),b):i()}function i(){return{top:0,bottom:0,left:0,right:0,width:0,height:0}}function j(a,b){for(var c=b;c;){if(c==a)return!0;c=k(c)}return!1}function k(a){var b=a.parentNode;return b&&11==b.nodeType&&b.host?b.host:b&&b.assignedSlot?b.assignedSlot.parentNode:b}if("object"==typeof window){if("IntersectionObserver"in window&&"IntersectionObserverEntry"in window&&"intersectionRatio"in window.IntersectionObserverEntry.prototype)return void("isIntersecting"in window.IntersectionObserverEntry.prototype||Object.defineProperty(window.IntersectionObserverEntry.prototype,"isIntersecting",{get:function(){return this.intersectionRatio>0}}));var l=window.document,m=[];b.prototype.THROTTLE_TIMEOUT=100,b.prototype.POLL_INTERVAL=null,b.prototype.USE_MUTATION_OBSERVER=!0,b.prototype.observe=function(a){if(!this._observationTargets.some(function(b){return b.element==a})){if(!a||1!=a.nodeType)throw new Error("target must be an Element");this._registerInstance(),this._observationTargets.push({element:a,entry:null}),this._monitorIntersections(),this._checkForIntersections()}},b.prototype.unobserve=function(a){this._observationTargets=this._observationTargets.filter(function(b){return b.element!=a}),this._observationTargets.length||(this._unmonitorIntersections(),this._unregisterInstance())},b.prototype.disconnect=function(){this._observationTargets=[],this._unmonitorIntersections(),this._unregisterInstance()},b.prototype.takeRecords=function(){var a=this._queuedEntries.slice();return this._queuedEntries=[],a},b.prototype._initThresholds=function(a){var b=a||[0];return Array.isArray(b)||(b=[b]),b.sort().filter(function(a,b,c){if("number"!=typeof a||isNaN(a)||a<0||a>1)throw new Error("threshold must be a number between 0 and 1 inclusively");return a!==c[b-1]})},b.prototype._parseRootMargin=function(a){var b=a||"0px",c=b.split(/\s+/).map(function(a){var b=/^(-?\d*\.?\d+)(px|%)$/.exec(a);if(!b)throw new Error("rootMargin must be specified in pixels or percent");return{value:parseFloat(b[1]),unit:b[2]}});return c[1]=c[1]||c[0],c[2]=c[2]||c[0],c[3]=c[3]||c[1],c},b.prototype._monitorIntersections=function(){this._monitoringIntersections||(this._monitoringIntersections=!0,this.POLL_INTERVAL?this._monitoringInterval=setInterval(this._checkForIntersections,this.POLL_INTERVAL):(e(window,"resize",this._checkForIntersections,!0),e(l,"scroll",this._checkForIntersections,!0),this.USE_MUTATION_OBSERVER&&"MutationObserver"in window&&(this._domObserver=new MutationObserver(this._checkForIntersections),this._domObserver.observe(l,{attributes:!0,childList:!0,characterData:!0,subtree:!0}))))},b.prototype._unmonitorIntersections=function(){this._monitoringIntersections&&(this._monitoringIntersections=!1,clearInterval(this._monitoringInterval),this._monitoringInterval=null,f(window,"resize",this._checkForIntersections,!0),f(l,"scroll",this._checkForIntersections,!0),this._domObserver&&(this._domObserver.disconnect(),this._domObserver=null))},b.prototype._checkForIntersections=function(){var b=this._rootIsInDom(),d=b?this._getRootRect():i();this._observationTargets.forEach(function(e){var f=e.element,g=h(f),i=this._rootContainsTarget(f),j=e.entry,k=b&&i&&this._computeTargetAndRootIntersection(f,d),l=e.entry=new a({time:c(),target:f,boundingClientRect:g,rootBounds:d,intersectionRect:k});j?b&&i?this._hasCrossedThreshold(j,l)&&this._queuedEntries.push(l):j&&j.isIntersecting&&this._queuedEntries.push(l):this._queuedEntries.push(l)},this),this._queuedEntries.length&&this._callback(this.takeRecords(),this)},b.prototype._computeTargetAndRootIntersection=function(a,b){if("none"!=window.getComputedStyle(a).display){for(var c=h(a),d=c,e=k(a),f=!1;!f;){var i=null,j=1==e.nodeType?window.getComputedStyle(e):{};if("none"==j.display)return;if(e==this.root||e==l?(f=!0,i=b):e!=l.body&&e!=l.documentElement&&"visible"!=j.overflow&&(i=h(e)),i&&!(d=g(i,d)))break;e=k(e)}return d}},b.prototype._getRootRect=function(){var a;if(this.root)a=h(this.root);else{var b=l.documentElement,c=l.body;a={top:0,left:0,right:b.clientWidth||c.clientWidth,width:b.clientWidth||c.clientWidth,bottom:b.clientHeight||c.clientHeight,height:b.clientHeight||c.clientHeight}}return this._expandRectByRootMargin(a)},b.prototype._expandRectByRootMargin=function(a){var b=this._rootMarginValues.map(function(b,c){return"px"==b.unit?b.value:b.value*(c%2?a.width:a.height)/100}),c={top:a.top-b[0],right:a.right+b[1],bottom:a.bottom+b[2],left:a.left-b[3]};return c.width=c.right-c.left,c.height=c.bottom-c.top,c},b.prototype._hasCrossedThreshold=function(a,b){var c=a&&a.isIntersecting?a.intersectionRatio||0:-1,d=b.isIntersecting?b.intersectionRatio||0:-1;if(c!==d)for(var e=0;e<this.thresholds.length;e++){var f=this.thresholds[e];if(f==c||f==d||f<c!=f<d)return!0}},b.prototype._rootIsInDom=function(){return!this.root||j(l,this.root)},b.prototype._rootContainsTarget=function(a){return j(this.root||l,a)},b.prototype._registerInstance=function(){m.indexOf(this)<0&&m.push(this)},b.prototype._unregisterInstance=function(){var a=m.indexOf(this);-1!=a&&m.splice(a,1)},window.IntersectionObserver=b,window.IntersectionObserverEntry=a}}(),function(a,b){"object"==typeof exports&&"undefined"!=typeof module?module.exports=b():"function"==typeof define&&define.amd?define(b):a.ResizeObserver=b()}(this,function(){"use strict";function a(a,b){function c(){f&&(f=!1,a()),g&&e()}function d(){n(c)}function e(){var a=Date.now();if(f){if(a-h<o)return;g=!0}else f=!0,g=!1,setTimeout(d,b);h=a}var f=!1,g=!1,h=0;return e}function b(a){return parseFloat(a)||0}function c(a){for(var c=[],d=1;d<arguments.length;d++)c[d-1]=arguments[d];return c.reduce(function(c,d){return c+b(a["border-"+d+"-width"])},0)}function d(a){for(var c=["top","right","bottom","left"],d={},e=0,f=c;e<f.length;e++){var g=f[e],h=a["padding-"+g];d[g]=b(h)}return d}function e(a){var b=a.getBBox();return j(0,0,b.width,b.height)}function f(a){var e=a.clientWidth,f=a.clientHeight;if(!e&&!f)return v;var h=u(a).getComputedStyle(a),i=d(h),k=i.left+i.right,l=i.top+i.bottom,m=b(h.width),n=b(h.height);if("border-box"===h.boxSizing&&(Math.round(m+k)!==e&&(m-=c(h,"left","right")+k),Math.round(n+l)!==f&&(n-=c(h,"top","bottom")+l)),!g(a)){var o=Math.round(m+k)-e,p=Math.round(n+l)-f;1!==Math.abs(o)&&(m-=o),1!==Math.abs(p)&&(n-=p)}return j(i.left,i.top,m,n)}function g(a){return a===u(a).document.documentElement}function h(a){return l?w(a)?e(a):f(a):v}function i(a){var b=a.x,c=a.y,d=a.width,e=a.height,f="undefined"!=typeof DOMRectReadOnly?DOMRectReadOnly:Object,g=Object.create(f.prototype);return t(g,{x:b,y:c,width:d,height:e,top:c,right:b+d,bottom:e+c,left:b}),g}function j(a,b,c,d){return{x:a,y:b,width:c,height:d}}var k=function(){function a(a,b){var c=-1;return a.some(function(a,d){return a[0]===b&&(c=d,!0)}),c}return"undefined"!=typeof Map?Map:function(){function b(){this.__entries__=[]}return Object.defineProperty(b.prototype,"size",{get:function(){return this.__entries__.length},enumerable:!0,configurable:!0}),b.prototype.get=function(b){var c=a(this.__entries__,b),d=this.__entries__[c];return d&&d[1]},b.prototype.set=function(b,c){var d=a(this.__entries__,b);~d?this.__entries__[d][1]=c:this.__entries__.push([b,c])},b.prototype.delete=function(b){var c=this.__entries__,d=a(c,b);~d&&c.splice(d,1)},b.prototype.has=function(b){return!!~a(this.__entries__,b)},b.prototype.clear=function(){this.__entries__.splice(0)},b.prototype.forEach=function(a,b){void 0===b&&(b=null);for(var c=0,d=this.__entries__;c<d.length;c++){var e=d[c];a.call(b,e[1],e[0])}},b}()}(),l="undefined"!=typeof window&&"undefined"!=typeof document&&window.document===document,m=function(){return"undefined"!=typeof global&&global.Math===Math?global:"undefined"!=typeof self&&self.Math===Math?self:"undefined"!=typeof window&&window.Math===Math?window:Function("return this")()}(),n=function(){return"function"==typeof requestAnimationFrame?requestAnimationFrame.bind(m):function(a){return setTimeout(function(){return a(Date.now())},1e3/60)}}(),o=2,p=20,q=["top","right","bottom","left","width","height","size","weight"],r="undefined"!=typeof MutationObserver,s=function(){function b(){this.connected_=!1,this.mutationEventsAdded_=!1,this.mutationsObserver_=null,this.observers_=[],this.onTransitionEnd_=this.onTransitionEnd_.bind(this),this.refresh=a(this.refresh.bind(this),p)}return b.prototype.addObserver=function(a){~this.observers_.indexOf(a)||this.observers_.push(a),this.connected_||this.connect_()},b.prototype.removeObserver=function(a){var b=this.observers_,c=b.indexOf(a);~c&&b.splice(c,1),!b.length&&this.connected_&&this.disconnect_()},b.prototype.refresh=function(){this.updateObservers_()&&this.refresh()},b.prototype.updateObservers_=function(){var a=this.observers_.filter(function(a){return a.gatherActive(),a.hasActive()});return a.forEach(function(a){return a.broadcastActive()}),a.length>0},b.prototype.connect_=function(){l&&!this.connected_&&(document.addEventListener("transitionend",this.onTransitionEnd_),window.addEventListener("resize",this.refresh),r?(this.mutationsObserver_=new MutationObserver(this.refresh),this.mutationsObserver_.observe(document,{attributes:!0,childList:!0,characterData:!0,subtree:!0})):(document.addEventListener("DOMSubtreeModified",this.refresh),this.mutationEventsAdded_=!0),this.connected_=!0)},b.prototype.disconnect_=function(){l&&this.connected_&&(document.removeEventListener("transitionend",this.onTransitionEnd_),window.removeEventListener("resize",this.refresh),this.mutationsObserver_&&this.mutationsObserver_.disconnect(),this.mutationEventsAdded_&&document.removeEventListener("DOMSubtreeModified",this.refresh),this.mutationsObserver_=null,this.mutationEventsAdded_=!1,this.connected_=!1)},b.prototype.onTransitionEnd_=function(a){var b=a.propertyName,c=void 0===b?"":b;q.some(function(a){return!!~c.indexOf(a)})&&this.refresh()},b.getInstance=function(){return this.instance_||(this.instance_=new b),this.instance_},b.instance_=null,b}(),t=function(a,b){for(var c=0,d=Object.keys(b);c<d.length;c++){var e=d[c];Object.defineProperty(a,e,{value:b[e],enumerable:!1,writable:!1,configurable:!0})}return a},u=function(a){return a&&a.ownerDocument&&a.ownerDocument.defaultView||m},v=j(0,0,0,0),w=function(){return"undefined"!=typeof SVGGraphicsElement?function(a){return a instanceof u(a).SVGGraphicsElement}:function(a){return a instanceof u(a).SVGElement&&"function"==typeof a.getBBox}}(),x=function(){function a(a){this.broadcastWidth=0,this.broadcastHeight=0,this.contentRect_=j(0,0,0,0),this.target=a}return a.prototype.isActive=function(){var a=h(this.target);return this.contentRect_=a,a.width!==this.broadcastWidth||a.height!==this.broadcastHeight},a.prototype.broadcastRect=function(){var a=this.contentRect_;return this.broadcastWidth=a.width,this.broadcastHeight=a.height,a},a}(),y=function(){function a(a,b){var c=i(b);t(this,{target:a,contentRect:c})}return a}(),z=function(){function a(a,b,c){if(this.activeObservations_=[],this.observations_=new k,"function"!=typeof a)throw new TypeError("The callback provided as parameter 1 is not a function.");this.callback_=a,this.controller_=b,this.callbackCtx_=c}return a.prototype.observe=function(a){if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");if("undefined"!=typeof Element&&Element instanceof Object){if(!(a instanceof u(a).Element))throw new TypeError('parameter 1 is not of type "Element".');var b=this.observations_;b.has(a)||(b.set(a,new x(a)),this.controller_.addObserver(this),this.controller_.refresh())}},a.prototype.unobserve=function(a){if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");if("undefined"!=typeof Element&&Element instanceof Object){if(!(a instanceof u(a).Element))throw new TypeError('parameter 1 is not of type "Element".');var b=this.observations_;b.has(a)&&(b.delete(a),b.size||this.controller_.removeObserver(this))}},a.prototype.disconnect=function(){this.clearActive(),this.observations_.clear(),this.controller_.removeObserver(this)},a.prototype.gatherActive=function(){var a=this;this.clearActive(),this.observations_.forEach(function(b){b.isActive()&&a.activeObservations_.push(b)})},a.prototype.broadcastActive=function(){if(this.hasActive()){var a=this.callbackCtx_,b=this.activeObservations_.map(function(a){return new y(a.target,a.broadcastRect())});this.callback_.call(a,b,a),this.clearActive()}},a.prototype.clearActive=function(){this.activeObservations_.splice(0)},a.prototype.hasActive=function(){return this.activeObservations_.length>0},a}(),A="undefined"!=typeof WeakMap?new WeakMap:new k,B=function(){function a(b){if(!(this instanceof a))throw new TypeError("Cannot call a class as a function.");if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");var c=s.getInstance(),d=new z(b,c,this);A.set(this,d)}return a}();return["observe","unobserve","disconnect"].forEach(function(a){B.prototype[a]=function(){var b;return(b=A.get(this))[a].apply(b,arguments)}}),function(){return void 0!==m.ResizeObserver?m.ResizeObserver:B}()}),function(a,b){b.$=a}(jQuery,window.FooGallery=window.FooGallery||{}),function(a){if(!a)return void console.warn("jQuery must be included in the page prior to the FooGallery.utils library.");(function(){try{return!!window.FooGallery.utils}catch(a){return!1}})()||(window.FooGallery.utils={$:a,version:"1.0.0"})}(jQuery),function(a,b){"1.0.0"===b.version&&(b.is={},b.is.array=function(a){return"[object Array]"===Object.prototype.toString.call(a)},b.is.boolean=function(a){return"[object Boolean]"===Object.prototype.toString.call(a)},b.is.element=function(a){return"object"===("undefined"==typeof HTMLElement?"undefined":_typeof(HTMLElement))?a instanceof HTMLElement:!!a&&"object"===_typeof(a)&&1===a.nodeType&&"string"==typeof a.nodeName},b.is.empty=function(a){if(b.is.undef(a)||null===a)return!0;if(b.is.number(a)&&0===a)return!0;if(b.is.boolean(a)&&!1===a)return!0;if(b.is.string(a)&&0===a.length)return!0;if(b.is.array(a)&&0===a.length)return!0;if(b.is.jq(a)&&0===a.length)return!0;if(b.is.hash(a)){for(var c in a)if(a.hasOwnProperty(c))return!1;return!0}return!1},b.is.error=function(a){return"[object Error]"===Object.prototype.toString.call(a)},b.is.fn=function(a){return a===window.alert||"[object Function]"===Object.prototype.toString.call(a)},b.is.hash=function(a){return b.is.object(a)&&a.constructor===Object&&!a.nodeType&&!a.setInterval},b.is.jq=function(c){return!b.is.undef(a)&&c instanceof a},b.is.number=function(a){return"[object Number]"===Object.prototype.toString.call(a)&&!isNaN(a)},b.is.object=function(a){return"[object Object]"===Object.prototype.toString.call(a)&&!b.is.undef(a)&&null!==a},b.is.promise=function(a){return b.is.object(a)&&b.is.fn(a.then)&&b.is.fn(a.promise)},b.is.size=function(a){return!!(b.is.string(a)&&!b.is.empty(a)||b.is.number(a))&&/^(auto|none|(?:[\d.]*)+?(?:%|px|mm|q|cm|in|pt|pc|em|ex|ch|rem|vh|vw|vmin|vmax)?)$/.test(a)},b.is.string=function(a){return"[object String]"===Object.prototype.toString.call(a)},b.is.undef=function(a){return void 0===a})}(FooGallery.utils.$,FooGallery.utils),function(a,b,c){if("1.0.0"===b.version){b.fn={};var d=Function.prototype.toString;b.fn.CONTAINS_SUPER=/xyz/.test(d.call(function(){xyz}))?/\b_super\b/:/.*/,b.fn.noop=function(){},b.fn.addOrOverride=function(a,e,f){if(c.object(a)&&c.string(e)&&!c.empty(e)&&c.fn(f)){var g=a[e],h=c.fn(g)&&b.fn.CONTAINS_SUPER.test(d.call(f));a[e]=h?function(a,b){return function(){var c=this._super;this._super=a;var d=b.apply(this,arguments);return this._super=c,d}}(g,f):f}},b.fn.expose=function(a,b,d,e){c.object(a)&&c.object(b)&&c.array(d)&&(e=c.undef(e)?a:e,d.forEach(function(d){c.string(d)&&c.fn(a[d])&&(b[d]=a[d].bind(e))}))},b.fn.apply=function(a,b){return b.unshift(a),new(Function.prototype.bind.apply(a,b))},b.fn.arg2arr=function(a){return Array.prototype.slice.call(a)},b.fn.debounce=function(a,c){var d;return function(){var e=this,f=b.fn.arg2arr(arguments);clearTimeout(d),d=setTimeout(function(){a.apply(e,f)},c)}},b.fn.throttle=function(a,c){var d,e;return function(){var f=this,g=b.fn.arg2arr(arguments);d?(clearTimeout(e),e=setTimeout(function(){Date.now()-d>=c&&(a.apply(f,g),d=Date.now())},c-(Date.now()-d))):(a.apply(f,g),d=Date.now())}},b.fn.resolved=a.Deferred().resolve().promise(),b.fn.rejected=a.Deferred().reject().promise(),b.fn.reject=function(c,d){var e=a.Deferred(),f=b.fn.arg2arr(arguments);return e.reject.apply(e,f).promise()},b.fn.resolve=function(c,d){var e=a.Deferred(),f=b.fn.arg2arr(arguments);return e.resolve.apply(e,f).promise()},b.fn.rejectWith=function(c,d,e){var f=a.Deferred(),g=b.fn.arg2arr(arguments);return g.shift(),f.rejectWith(c,g).promise()},b.fn.resolveWith=function(c,d,e){var f=a.Deferred(),g=b.fn.arg2arr(arguments);return g.shift(),f.resolveWith(c,g).promise()},b.fn.all=function(d){var e=a.Deferred(),f=[];return c.array(d)&&d.length>0?function(){for(var a=function(a,b){h||(f[a]=0===b.length?void 0:1===b.length?b[0]:b,--g||e.resolve(f))},g=d.length,h=!1,i=0,j=d.length;i<j;i++){if("break"===function(){if(h)return"break";var f=i;c.promise(d[f])?d[f].then(function(){a(f,b.fn.arg2arr(arguments))},function(){h||(h=!0,e.reject.apply(e,b.fn.arg2arr(arguments)))}):a(f,[d[f]])}())break}}():e.resolve(f),e.promise()},b.fn.allSettled=function(d){var e=a.Deferred(),f=[];return c.array(d)&&d.length>0?function(){for(var a=function(a,b,c){if(f[a]={status:b},c.length>0){var d="rejected"===b?"reason":"value";f[a][d]=1===c.length?c[0]:c}--g||e.resolve(f)},g=d.length,h=0,i=d.length;h<i;h++)!function(){var e=h;c.promise(d[e])?d[e].then(function(){a(e,"fulfilled",b.fn.arg2arr(arguments))},function(){a(e,"rejected",b.fn.arg2arr(arguments))}):a(e,"fulfilled",[d[e]])}()}():e.resolve(f),e.promise()}}}(FooGallery.utils.$,FooGallery.utils,FooGallery.utils.is),function(a,b){if("1.0.0"===a.version){a.url={};var c=document.createElement("a");a.url.parts=function(a){c.href=a;var b=c.port?c.port:-1!==["http:","https:"].indexOf(c.protocol)?"https:"===c.protocol?"443":"80":"",d=c.hostname+(b?":"+b:""),e=c.origin?c.origin:c.protocol+"//"+d,f="/"===c.pathname.slice(0,1)?c.pathname:"/"+c.pathname;return{hash:c.hash,host:d,hostname:c.hostname,href:c.href,origin:e,pathname:f,port:b,protocol:c.protocol,search:c.search}},a.url.full=function(a){return!b.string(a)||b.empty(a)?null:(c.href=a,c.href)},a.url.param=function(a,c,d){if(!b.string(a)||!b.string(c)||b.empty(c))return a;var e,f,g,h;return b.undef(d)?(e=new RegExp("[?|&]"+c+"=([^&;]+?)(&|#|;|$)"),f=e.exec(a)||["",""],g=f[1].replace(/\+/g,"%20"),b.string(g)&&!b.empty(g)?decodeURIComponent(g):null):(b.empty(d)?(e=new RegExp("^([^#]*?)(([^#]*)&)?"+c+"(=[^&#]*)?(&|#|$)"),g=a.replace(e,"$1$3$5").replace(/^([^#]*)((\?)&|\?(#|$))/,"$1$3$4")):(e=new RegExp("([?&])"+c+"[^&]*"),h=c+"="+encodeURIComponent(d),(g=a.replace(e,"$1"+h))!==a||e.test(g)||(g+=(-1!==g.indexOf("?")?"&":"?")+h)),g)}}}(FooGallery.utils,FooGallery.utils.is),function(a,b,c){"1.0.0"===a.version&&(a.str={},a.str.trim=function(a){return b.string(a)?a.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,""):null},a.str.camel=function(a){return b.string(a)?a.toUpperCase()===a?a.toLowerCase():a.replace(/^([A-Z])|[-\s_]+(\w)/g,function(a,c,d){return b.string(d)?d.toUpperCase():c.toLowerCase()}):a},a.str.kebab=function(a){return b.string(a)?a.match(/[A-Z]{2,}(?=[A-Z][a-z0-9]*|\b)|[A-Z]?[a-z0-9]*|[A-Z]|[0-9]+/g).filter(Boolean).map(function(a){return a.toLowerCase()}).join("-"):a},a.str.contains=function(a,c,d){return!(!b.string(a)||b.empty(a)||!b.string(c)||b.empty(c))&&(c.length<=a.length&&-1!==(d?a.toUpperCase().indexOf(c.toUpperCase()):a.indexOf(c)))},a.str.containsWord=function(a,c,d){if(!b.string(a)||b.empty(a)||!b.string(c)||b.empty(c)||a.length<c.length)return!1;for(var e=a.split(/\W/),f=0,g=e.length;f<g;f++)if(d?e[f].toUpperCase()===c.toUpperCase():e[f]===c)return!0;return!1},a.str.endsWith=function(a,c){return!(!b.string(a)||!b.string(c)||c.length>a.length)&&a.slice(a.length-c.length)===c},a.str.startsWith=function(a,c){return!b.empty(a)&&!b.empty(c)&&a.slice(0,c.length)===c},a.str.escapeRegExp=function(a){return b.string(a)?a.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"):a},a.str.fnv1a=function(a){if(!b.string(a)||b.empty(a))return null;var c,d,e=2166136261;for(c=0,d=a.length;c<d;c++)e^=a.charCodeAt(c),e+=(e<<1)+(e<<4)+(e<<7)+(e<<8)+(e<<24);return e>>>0},a.str.from=function(b,c){return a.str.contains(b,c)?b.substring(b.indexOf(c)+c.length):null},a.str.join=function(d,e,f){if(!b.string(d)||!b.string(e))return null;var g=c.arg2arr(arguments);d=g.shift();var h,i,j=g.shift();for(h=0,i=g.length;h<i;h++)e=g[h],b.empty(e)||(a.str.endsWith(j,d)&&(j=j.slice(0,j.length-d.length)),a.str.startsWith(e,d)&&(e=e.slice(d.length)),j+=d+e);return j},a.str.until=function(b,c){return a.str.contains(b,c)?b.substring(0,b.indexOf(c)):b},a.str.format=function(d,e,f){var g=c.arg2arr(arguments);return d=g.shift(),b.string(d)&&g.length>0&&(1===g.length&&(b.array(g[0])||b.object(g[0]))&&(g=g[0]),a.each(g,function(a,b){d=d.replace(new RegExp("\\{"+b+"\\}","gi"),a+"")})),d})}(FooGallery.utils,FooGallery.utils.is,FooGallery.utils.fn),function(a,b,c,d,e){"1.0.0"===b.version&&(b.obj={},b.obj.create=function(a){function b(){}if(!c.object(a))throw TypeError("Argument must be an object");return b.prototype=a,new b},b.obj.extend=function(a,e,f){a=c.object(a)?a:{};var g=d.arg2arr(arguments);return g.shift(),b.each(g,function(c){b.obj.merge(a,c)}),a},b.obj.merge=function(a,d){a=c.hash(a)?a:{},d=c.hash(d)?d:{};for(var e in d)d.hasOwnProperty(e)&&(c.hash(d[e])?(a[e]=c.hash(a[e])?a[e]:{},b.obj.merge(a[e],d[e])):c.array(d[e])?a[e]=d[e].slice():a[e]=d[e]);return a},b.obj.mergeValid=function(a,d,e,f){if(!c.hash(e)||!c.hash(d))return a;d=c.hash(d)?d:{},f=c.hash(f)?f:{};var g,h,i;for(g in d)d.hasOwnProperty(g)&&c.fn(d[g])&&(h=c.array(f[g])?f[g]:c.string(f[g])?[f[g]]:[g],b.each(h,function(f){if(i=b.obj.prop(e,f),!c.undef(i))return d[g](i)?(b.obj.prop(a,g,i),!1):void 0}));return a},b.obj.prop=function(a,d,f){if(c.object(a)&&!c.empty(d)){var g,h;if(c.undef(f))return e.contains(d,".")?(g=d.split("."),h=g.length-1,b.each(g,function(b,d){if(d===h)f=a[b];else{if(!c.hash(a[b]))return!1;a=a[b]}})):c.undef(a[d])||(f=a[d]),f;e.contains(d,".")?(g=d.split("."),h=g.length-1,b.each(g,function(b,d){d===h?a[b]=f:a=c.hash(a[b])?a[b]:a[b]={}})):c.undef(a[d])||(a[d]=f)}})}(FooGallery.utils.$,FooGallery.utils,FooGallery.utils.is,FooGallery.utils.fn,FooGallery.utils.str),function(a,b,c){function d(a){return setTimeout(a,1e3/60)}function e(a){clearTimeout(a)}"1.0.0"===b.version&&(b.ready=function(a){function c(){try{a.call(window,b.$)}catch(a){console.error(a)}}(Function("/*@cc_on return true@*/")()?"complete"===document.readyState:"loading"!==document.readyState)?c():document.addEventListener("DOMContentLoaded",c,!1)},b.find=function(a,b,d){if(c.fn(b)){d=c.undef(d)?b:d;var e,f;if(c.array(a)){for(e=0,f=a.length;e<f;e++)if(b.call(d,a[e],e,a))return a[e]}else if(c.object(a)){var g=Object.keys(a);for(e=0,f=g.length;e<f;e++)if(b.call(d,a[g[e]],g[e],a))return a[g[e]]}}},b.each=function(a,b,d){if(c.fn(b)){d=c.undef(d)?b:d;var e,f;if(c.array(a))for(e=0,f=a.length;e<f&&!1!==b.call(d,a[e],e,a);e++);else if(c.object(a)){var g=Object.keys(a);for(e=0,f=g.length;e<f&&!1!==b.call(d,a[g[e]],g[e],a);e++);}}},b.inArray=function(a,b){return c.array(b)?b.indexOf(a):-1},b.selectify=function(a){if(c.empty(a))return null;if(c.hash(a)){var d,e={};for(var f in a)a.hasOwnProperty(f)&&(d=b.selectify(a[f]))&&(e[f]=d);return e}return c.string(a)||c.array(a)?(c.string(a)&&(a=[a]),a.map(function(a){return c.string(a)?"."+a.split(/\s/g).join("."):null}).join(",")):null},b.requestFrame=(window.requestAnimationFrame||window.webkitRequestAnimationFrame||d).bind(window),b.cancelFrame=(window.cancelAnimationFrame||window.webkitCancelAnimationFrame||e).bind(window),b.nextFrame=function(d,e){return a.Deferred(function(a){c.fn(d)?(e=c.undef(e)?d:e,b.requestFrame(function(){try{a.resolve(d.call(e))}catch(b){a.reject(b)}})):a.reject(new Error("Provided callback is not a function."))}).promise()})}(FooGallery.utils.$,FooGallery.utils,FooGallery.utils.is),function(a,b,c,d,e){function f(a,b){return c.array(b)||(b=[]),c.fn(a)&&null!==a.__baseClass__?(b.unshift(a.__baseClass__),f(a.__baseClass__,b)):b}"1.0.0"===b.version&&(b.Class=function(){},b.Class.extend=function(a){function f(){if(!c.fn(this.construct))throw new SyntaxError('FooGallery.utils.Class objects must be constructed with the "new" keyword.');this.construct.apply(this,arguments)}a=c.hash(a)?a:{};var g=d.create(this.prototype);for(var h in a)a.hasOwnProperty(h)&&e.addOrOverride(g,h,a[h]);return g.construct=c.fn(g.construct)?g.construct:function(){},f.prototype=g,f.prototype.constructor=c.fn(g.__ctor__)?g.__ctor__:f,f.extend=b.Class.extend,f.override=b.Class.override,f.getBaseClasses=b.Class.getBaseClasses,f.__baseClass__=this,f},b.Class.override=function(a,b){e.addOrOverride(this.prototype,a,b)},b.Class.__baseClass__=null,b.Class.getBaseClasses=function(){return f(this,[])})}(FooGallery.utils.$,FooGallery.utils,FooGallery.utils.is,FooGallery.utils.obj,FooGallery.utils.fn),function(a,b,c,d,e){b.ClassRegistry=b.Class.extend({construct:function(a){var b=this;b.opt=e.extend({allowBase:!0,beforeCreate:null},a),b.registered={}},register:function(a,b,d,e){var f=this;if(c.string(a)&&!c.empty(a)&&c.fn(b)){e=c.number(e)?e:0;var g=f.registered[a];return f.registered[a]={name:a,ctor:b,config:c.hash(d)?d:{},priority:c.undef(g)?e:g.priority},!0}return!1},each:function(a,b,d){b=!!c.boolean(b)&&b,d=c.undef(d)?a:d;var e=this,f=Object.keys(e.registered),g=f.map(function(a){return e.registered[a]});b&&g.sort(function(a,b){return b.priority-a.priority});for(var h=0,i=g.length;h<i;h++){if(!1===a.call(d,g[h],h))break}},find:function(a,b,d){b=!!c.boolean(b)&&b,d=c.undef(d)?a:d;var e=this,f=Object.keys(e.registered),g=f.map(function(a){return e.registered[a]});b&&g.sort(function(a,b){return b.priority-a.priority});for(var h=0,i=g.length;h<i;h++)if(a.call(d,g[h],h))return g[h];return null},create:function(a,b,e){var f=this,g=d.arg2arr(arguments);if(a=g.shift(),c.string(a)&&f.registered.hasOwnProperty(a)){var h=f.registered[a],i=!0;if(h.priority<0&&!f.opt.allowBase&&(i=!1),i&&c.fn(h.ctor))return b=g.shift(),b=f.mergeConfigurations(h.name,b),g.unshift.apply(g,[h.name,b]),d.apply(h.ctor,f.onBeforeCreate(h,g))}return null},onBeforeCreate:function(a,b){var d=this;return null!==d.opt.beforeCreate&&c.fn(d.opt.beforeCreate)?d.opt.beforeCreate.call(d,a,b):b},mergeConfigurations:function(a,b){var d=this;if(c.string(a)&&d.registered.hasOwnProperty(a)){b=c.hash(b)?b:{};var f=d.getBaseClasses(a),g=[{}];return f.push(d.registered[a]),f.forEach(function(a){g.push(a.config)}),g.push(b),e.extend.apply(e,g)}return{}},getBaseClass:function(){return this.find(function(a){return a.priority<0},!0)},getBaseClasses:function(a){var b=this,d=b.registered[a],e=[];return c.undef(d)||d.ctor.getBaseClasses().forEach(function(a){var d=b.fromType(a);c.hash(d)&&e.push(d)}),e},fromType:function(a){if(c.fn(a))return this.find(function(b){return b.ctor===a})}})}(FooGallery.utils.$,FooGallery.utils,FooGallery.utils.is,FooGallery.utils.fn,FooGallery.utils.obj),function(a,b,c){"1.0.0"===a.version&&(a.Event=a.Class.extend({construct:function(c){if(b.empty(c))throw new SyntaxError("FooGallery.utils.Event objects must be supplied a `type`.");var d=this,e=a.Event.parse(c);d.type=e.type,d.namespace=e.namespace,d.defaultPrevented=!1,d.target=null},preventDefault:function(){this.defaultPrevented=!0},isDefaultPrevented:function(){return this.defaultPrevented}}),a.Event.parse=function(a){a=b.string(a)&&!b.empty(a)?a:null;var d=c.contains(a,".");return{namespaced:d,type:d?c.startsWith(a,".")?null:c.until(a,"."):a,namespace:d?c.from(a,"."):null}},a.EventClass=a.Class.extend({construct:function(){this.events={}},destroy:function(){this.events={}},on:function(a,c,d){var e=this;return b.object(a)?(d=c,Object.keys(a).forEach(function(c){b.fn(a[c])&&c.split(" ").forEach(function(b){e.addListener(b,a[c],d)})})):b.string(a)&&b.fn(c)&&a.split(" ").forEach(function(a){e.addListener(a,c,d)}),e},addListener:function(c,d,e){if(!b.string(c)||/\s/.test(c)||!b.fn(d))return!1;var f=this,g=a.Event.parse(c);return e=b.undef(e)?f:e,b.array(f.events[g.type])||(f.events[g.type]=[]),!f.events[g.type].some(function(a){return a.namespace===g.namespace&&a.fn===d&&a.thisArg===e})&&(f.events[g.type].push({namespace:g.namespace,fn:d,thisArg:e}),!0)},off:function(a,c,d){var e=this;return b.object(a)?(d=c,Object.keys(a).forEach(function(b){b.split(" ").forEach(function(c){e.removeListener(c,a[b],d)})})):b.string(a)&&a.split(" ").forEach(function(a){e.removeListener(a,c,d)}),e},removeListener:function(c,d,e){if(!b.string(c)||/\s/.test(c))return!1;var f=this,g=a.Event.parse(c),h=[];return e=b.undef(e)?f:e,b.empty(g.type)?b.empty(g.namespace)||h.push.apply(h,Object.keys(f.events)):h.push(g.type),h.forEach(function(a){b.array(f.events[a])&&(f.events[a]=f.events[a].filter(function(a){return null!=d?!(a.namespace===g.namespace&&a.fn===d&&a.thisArg===e):null!=g.namespace&&a.namespace!==g.namespace}),0===f.events[a].length&&delete f.events[a])}),!0},trigger:function(c,d){d=b.array(d)?d:[];var e=this,f=[];return c instanceof a.Event?(f.push(c),e.emit(c,d)):b.string(c)&&c.split(" ").forEach(function(b){var c=new a.Event(b);f.push(c),e.emit(c,d)}),b.empty(f)?null:1===f.length?f[0]:f},emit:function(a,c){if(a instanceof FooGallery.utils.Event){var d=this;c=b.array(c)?c:[],null===a.target&&(a.target=d),b.array(d.events[a.type])&&d.events[a.type].forEach(function(b){null!=a.namespace&&b.namespace!==a.namespace||b.fn.apply(b.thisArg,[a].concat(c))}),b.array(d.events.__all__)&&d.events.__all__.forEach(function(b){b.fn.apply(b.thisArg,[a].concat(c))})}}}))}(FooGallery.utils,FooGallery.utils.is,FooGallery.utils.str),function(a,b,c,d,e){"1.0.0"===b.version&&(b.Timer=b.EventClass.extend({construct:function(a){var b=this;b._super(),b.interval=c.number(a)?a:1e3,
|
10 |
b.isRunning=!1,b.isPaused=!1,b.canResume=!1,b.canRestart=!1,b.__timeout=null,b.__decrement=!1,b.__time=0,b.__remaining=0,b.__current=0,b.__finish=0,b.__restart=[]},__reset:function(){var a=this;clearTimeout(a.__timeout),a.__timeout=null,a.__decrement=!1,a.__time=0,a.__remaining=0,a.__current=0,a.__finish=0,a.isRunning=!1,a.isPaused=!1,a.canResume=!1},__eventArgs:function(a){var b=this;return[b.__current,b.__time,b.__decrement].concat(d.arg2arr(arguments))},__tick:function(){var a=this;a.trigger("tick",a.__eventArgs()),a.__current===a.__finish?(a.trigger("complete",a.__eventArgs()),a.__reset()):(a.__decrement?a.__current--:a.__current++,a.__remaining--,a.canResume=a.__remaining>0,a.__timeout=setTimeout(function(){a.__tick()},a.interval))},start:function(a,b){var d=this;d.isRunning||(b=!!c.boolean(b)&&b,d.__restart=[a,b],d.__decrement=b,d.__time=a,d.__remaining=a,d.__current=b?a:0,d.__finish=b?0:a,d.canRestart=!0,d.isRunning=!0,d.isPaused=!1,d.trigger("start",d.__eventArgs()),d.__tick())},countdown:function(a){this.start(a,!0)},countup:function(a){this.start(a,!1)},restart:function(){var a=this;a.stop(),a.canRestart&&a.start.apply(a,a.__restart)},stop:function(){var a=this;(a.isRunning||a.isPaused)&&(a.__reset(),a.trigger("stop",a.__eventArgs()))},pause:function(){var a=this;return null!=a.__timeout&&(clearTimeout(a.__timeout),a.__timeout=null),a.isRunning&&(a.isRunning=!1,a.isPaused=!0,a.trigger("pause",a.__eventArgs())),a.__remaining},resume:function(){var a=this;a.canResume&&(a.isRunning=!0,a.isPaused=!1,a.trigger("resume",a.__eventArgs()),a.__tick())},reset:function(){var a=this;a.__reset(),a.trigger("reset",this.__eventArgs())}}))}(FooGallery.utils.$,FooGallery.utils,FooGallery.utils.is,FooGallery.utils.fn,FooGallery.utils.obj),function(a,b,c){"1.0.0"===b.version&&(b.FullscreenAPI=b.EventClass.extend({construct:function(){this._super(),this.apis={w3:{enabled:"fullscreenEnabled",element:"fullscreenElement",request:"requestFullscreen",exit:"exitFullscreen",events:{change:"fullscreenchange",error:"fullscreenerror"}},webkit:{enabled:"webkitFullscreenEnabled",element:"webkitCurrentFullScreenElement",request:"webkitRequestFullscreen",exit:"webkitExitFullscreen",events:{change:"webkitfullscreenchange",error:"webkitfullscreenerror"}},moz:{enabled:"mozFullScreenEnabled",element:"mozFullScreenElement",request:"mozRequestFullScreen",exit:"mozCancelFullScreen",events:{change:"mozfullscreenchange",error:"mozfullscreenerror"}},ms:{enabled:"msFullscreenEnabled",element:"msFullscreenElement",request:"msRequestFullscreen",exit:"msExitFullscreen",events:{change:"MSFullscreenChange",error:"MSFullscreenError"}}},this.api=this.getAPI(),this.supported=null!=this.api,this.__listen()},destroy:function(){return this.__stopListening(),this._super()},getAPI:function(){for(var a in this.apis)if(this.apis.hasOwnProperty(a)&&this.apis[a].enabled in document)return this.apis[a];return null},element:function(){return this.supported?document[this.api.element]:null},request:function(b){if(this.supported&&b[this.api.request]){var d=b[this.api.request]();return d||a.Deferred(this.__resolver(this.api.request)).promise()}return c.rejected},exit:function(){if(this.supported&&this.element()){var b=document[this.api.exit]();return b||a.Deferred(this.__resolver(this.api.exit)).promise()}return c.rejected},toggle:function(a){return this.element()?this.exit():this.request(a)},__listen:function(){var b=this;b.supported&&a(document).on(b.api.events.change+".utils",function(){b.trigger("change")}).on(b.api.events.error+".utils",function(){b.trigger("error")})},__stopListening:function(){var b=this;b.supported&&a(document).off(b.api.events.change+".utils").off(b.api.events.error+".utils")},__resolver:function(b){var c=this;return function(d){function e(){d.resolve(),a(document).off(c.api.events.change,e).off(c.api.events.error,f)}function f(){d.reject(new TypeError),a(document).off(c.api.events.change,e).off(c.api.events.error,f)}if(b===c.api.exit&&c.element())return void setTimeout(function(){d.reject(new TypeError)},1);a(document).on(c.api.events.change,e).on(c.api.events.error,f)}}}))}(FooGallery.utils.$,FooGallery.utils,FooGallery.utils.fn),function(a,b,c,d){"1.0.0"===b.version&&(b.transition={},b.transition.dataName="__foo-transition__",b.transition.disableClassName=null,b.transition.timeout=3e3,b.transition.disable=function(d,e){var f=c.jq(d)?d:a(d);if(f.length>0&&c.fn(e)){var g=f.get(0),h=c.string(b.transition.disableClassName),i=null;h?f.addClass(b.transition.disableClassName):(i={value:g.style.getPropertyValue("transition"),priority:g.style.getPropertyPriority("transition")},g.style.setProperty("transition","none","important")),e.call(e,f),f.prop("offsetWidth"),h?f.removeClass(b.transition.disableClassName):(g.style.removeProperty("transition"),c.string(i.value)&&i.value.length>0&&g.style.setProperty("transition",i.value,i.priority))}},b.transition.stop=function(d){var e=a.Deferred(),f=c.jq(d)?d:a(d);if(f.length>0){var g=f.data(b.transition.dataName);c.promise(g)?g.always(function(){b.requestFrame(function(){e.resolve(f)})}).reject(new Error("Transition cancelled.")):e.resolve(f)}else e.reject(new Error("Unable to stop transition. Make sure the element exists."));return e.promise()},b.transition.createListener=function(a,b,e){var f=a,g=b,h=e,i=c.string(e);return function(a){var b=a.originalEvent instanceof TransitionEvent?a.originalEvent:a,c=!1;b.target===f&&(c=!i||b.propertyName===h),c&&g.apply(g,d.arg2arr(arguments))}},b.transition.start=function(d,e,f,g){var h=a.Deferred(),i=c.jq(d)?d:a(d);if(i.length>0&&c.fn(e)){var j=i.get(0);b.transition.stop(i).always(function(){var a=b.transition.createListener(j,function(){h.resolve(i)},f);i.data(b.transition.dataName,h).on("transitionend.foo-utils",a).prop("offsetWidth"),b.requestFrame(function(){var d=setTimeout(function(){h.reject(new Error("Transition safety timeout triggered."))},c.number(g)?g:b.transition.timeout);h.always(function(){clearTimeout(d),i.removeData(b.transition.dataName).off("transitionend.foo-utils",a)}),e.call(e,i)})})}else h.reject(new Error("Unable to perform transition. Make sure the element exists and a trigger function is supplied."));return h.promise()},b.transition.modify=function(e,f,g,h){var i=c.jq(e)?e:a(e);return i.length>0&&c.fn(f)?g?(b.transition.disable(i,f),d.resolve()):b.transition.start(i,f,h):d.reject(new Error("Unable to perform modification. Make sure the element exists and a modify function is supplied."))})}(FooGallery.utils.$,FooGallery.utils,FooGallery.utils.is,FooGallery.utils.fn),function(a,b,c,d,e,f){b.DATA_TEMPLATE="__FooGallery__",b.DATA_ITEM="__FooGalleryItem__",b.get=function(c){return a(c).data(b.DATA_TEMPLATE)},b.init=function(c,f){if(f=d.jq(f)?f:a(f),f.length>0){var g=f.data(b.DATA_TEMPLATE);if(g instanceof b.Template)return g.destroy(!0).then(function(){var a=b.template.make(c,f);return a instanceof b.Template?a.initialize():e.rejected})}var h=b.template.make(c,f);return h instanceof b.Template?h.initialize():e.rejected},a.fn.foogallery=function(c,e){return e=d.fn(e)?e:a.noop,this.each(function(f,g){if(d.string(c)){var h=a.data(g,b.DATA_TEMPLATE);if(h instanceof b.Template)switch(c){case"layout":return void h.layout();case"destroy":return void h.destroy()}}else b.init(c,g).then(e)})},b.isCached=function(a){var b=new Image;b.src=a;var c=b.complete;return b.src="",b=null,c},b.supportedExifProperties=["camera","aperture","created_timestamp","shutter_speed","focal_length","iso","orientation"],d.exif=function(a){if(d.object(a)){var c=Object.keys(a);return c.length>0&&c.some(function(c){return-1!==b.supportedExifProperties.indexOf(c)&&!d.empty(a[c])})}return!1},f.trimTo=function(a,b,c){return d.string(a)&&d.number(b)&&b>0&&a.length>b?a.substr(0,b)+(d.string(c)?c:"…"):a},c.getResizeObserverSize=function(a){var b,c;return a.contentBoxSize?a.contentBoxSize[0]?(b=a.contentBoxSize[0].inlineSize,c=a.contentBoxSize[0].blockSize):(b=a.contentBoxSize.inlineSize,c=a.contentBoxSize.blockSize):(b=a.contentRect.width,c=a.contentRect.height),{width:b,height:c}},b.supportsWebP=!1;var g=new Image;g.onload=function(){b.supportsWebP=0<g.width&&0<g.height},g.onerror=function(){b.supportsWebP=!1},g.src="data:image/webp;base64,UklGRhoAAABXRUJQVlA4TA0AAAAvAAAAEAcQERGIiP4HAA==",b.supportsPicture=!!window.HTMLPictureElement}(FooGallery.$,FooGallery,FooGallery.utils,FooGallery.utils.is,FooGallery.utils.fn,FooGallery.utils.str),function(a,b,c,d,e){b.Icons=c.Class.extend({construct:function(){this.className="fg-icon",this.registered={default:{close:'<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path d="M13.957 3.457l-1.414-1.414-4.543 4.543-4.543-4.543-1.414 1.414 4.543 4.543-4.543 4.543 1.414 1.414 4.543-4.543 4.543 4.543 1.414-1.414-4.543-4.543z"></path></svg>',"arrow-left":'<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path d="M10.5 16l1.5-1.5-6.5-6.5 6.5-6.5-1.5-1.5-8 8 8 8z"></path></svg>',"arrow-right":'<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path d="M5.5 0l-1.5 1.5 6.5 6.5-6.5 6.5 1.5 1.5 8-8-8-8z"></path></svg>',maximize:'<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path d="M2 2v4h-2v-5c0-0.552 0.448-1 1-1h14c0.552 0 1 0.448 1 1v14c0 0.552-0.448 1-1 1h-14c-0.552 0-1-0.448-1-1v-9h9c0.552 0 1 0.448 1 1v7h4v-12h-12z"/></svg>',expand:'<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path d="M2 5h-2v-4c0-0.552 0.448-1 1-1h4v2h-3v3z"></path><path d="M16 5h-2v-3h-3v-2h4c0.552 0 1 0.448 1 1v4z"></path><path d="M15 16h-4v-2h3v-3h2v4c0 0.552-0.448 1-1 1z"></path><path d="M5 16h-4c-0.552 0-1-0.448-1-1v-4h2v3h3v2z"></path></svg>',shrink:'<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path d="M3 0h2v4c0 0.552-0.448 1-1 1h-4v-2h3v-3z"></path><path d="M11 0h2v3h3v2h-4c-0.552 0-1-0.448-1-1v-4z"></path><path d="M12 11h4v2h-3v3h-2v-4c0-0.552 0.448-1 1-1z"></path><path d="M0 11h4c0.552 0 1 0.448 1 1v4h-2v-3h-3v-2z"></path></svg>',info:'<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path d="M7 4.75c0-0.412 0.338-0.75 0.75-0.75h0.5c0.412 0 0.75 0.338 0.75 0.75v0.5c0 0.412-0.338 0.75-0.75 0.75h-0.5c-0.412 0-0.75-0.338-0.75-0.75v-0.5z"></path><path d="M10 12h-4v-1h1v-3h-1v-1h3v4h1z"></path><path d="M8 0c-4.418 0-8 3.582-8 8s3.582 8 8 8 8-3.582 8-8-3.582-8-8-8zM8 14.5c-3.59 0-6.5-2.91-6.5-6.5s2.91-6.5 6.5-6.5 6.5 2.91 6.5 6.5-2.91 6.5-6.5 6.5z"></path></svg>',comment:'<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path d="M3 4h10v1h-10zM3 6h8v1h-8zM3 8h4v1h-4zM14.5 1h-13c-0.825 0-1.5 0.675-1.5 1.5v8c0 0.825 0.675 1.5 1.5 1.5h2.5v4l4.8-4h5.7c0.825 0 1.5-0.675 1.5-1.5v-8c0-0.825-0.675-1.5-1.5-1.5zM14 10h-5.924l-3.076 2.73v-2.73h-3v-7h12v7z"></path></svg>',thumbs:'<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path d="M3 3v10h-2v-11c0-0.552 0.448-1 1-1h12c0.552 0 1 0.448 1 1v12c0 0.552-0.448 1-1 1h-12c-0.552 0-1-0.448-1-1v-1h4v-2h-2v-2h2v-2h-2v-2h2v-2h2v10h6v-10h-10z"></path></svg>',cart:'<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path d="M13.238 9c0.55 0 1.124-0.433 1.275-0.962l1.451-5.077c0.151-0.529-0.175-0.962-0.725-0.962h-10.238c0-1.105-0.895-2-2-2h-3v2h3v8.5c0 0.828 0.672 1.5 1.5 1.5h9.5c0.552 0 1-0.448 1-1s-0.448-1-1-1h-9v-1h8.238zM5 4h9.044l-0.857 3h-8.187v-3z"></path><path d="M6 14.5c0 0.828-0.672 1.5-1.5 1.5s-1.5-0.672-1.5-1.5c0-0.828 0.672-1.5 1.5-1.5s1.5 0.672 1.5 1.5z"></path><path d="M15 14.5c0 0.828-0.672 1.5-1.5 1.5s-1.5-0.672-1.5-1.5c0-0.828 0.672-1.5 1.5-1.5s1.5 0.672 1.5 1.5z"></path></svg>',"circle-close":'<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path d="M8 0c-4.418 0-8 3.582-8 8s3.582 8 8 8 8-3.582 8-8-3.582-8-8-8zM8 14.5c-3.59 0-6.5-2.91-6.5-6.5s2.91-6.5 6.5-6.5 6.5 2.91 6.5 6.5-2.91 6.5-6.5 6.5z"></path><path d="M10.5 4l-2.5 2.5-2.5-2.5-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 2.5-2.5 2.5 2.5 1.5-1.5-2.5-2.5 2.5-2.5z"></path></svg>',"auto-progress":'<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path class="[ICON_CLASS]-idle" d="M11.39 8c2.152-1.365 3.61-3.988 3.61-7 0-0.339-0.019-0.672-0.054-1h-13.891c-0.036 0.328-0.054 0.661-0.054 1 0 3.012 1.457 5.635 3.609 7-2.152 1.365-3.609 3.988-3.609 7 0 0.339 0.019 0.672 0.054 1h13.891c0.036-0.328 0.054-0.661 0.054-1 0-3.012-1.457-5.635-3.609-7zM2.5 15c0-2.921 1.253-5.397 3.5-6.214v-1.572c-2.247-0.817-3.5-3.294-3.5-6.214v0h11c0 2.921-1.253 5.397-3.5 6.214v1.572c2.247 0.817 3.5 3.294 3.5 6.214h-11zM9.462 10.462c-1.12-0.635-1.181-1.459-1.182-1.959v-1.004c0-0.5 0.059-1.327 1.184-1.963 0.602-0.349 1.122-0.88 1.516-1.537h-6.4c0.395 0.657 0.916 1.188 1.518 1.538 1.12 0.635 1.181 1.459 1.182 1.959v1.004c0 0.5-0.059 1.327-1.184 1.963-1.135 0.659-1.98 1.964-2.236 3.537h7.839c-0.256-1.574-1.102-2.879-2.238-3.538z"/><circle class="[ICON_CLASS]-circle" r="4" cx="8" cy="8"/><path class="[ICON_CLASS]-play" d="M3 2l10 6-10 6z"/><path class="[ICON_CLASS]-pause" d="M2 2h5v12h-5zM9 2h5v12h-5z"/></svg>',"exif-aperture":'<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path d="M 8,0 C 3.5876443,0 0,3.5876443 0,8 c 0,4.412356 3.5876443,8 8,8 4.412356,0 8,-3.587644 8,-8 C 16,3.5876443 12.412356,0 8,0 Z m 0,1 c 3.871916,0 7,3.1280844 7,7 0,3.871916 -3.128084,7 -7,7 C 4.1280844,15 1,11.871916 1,8 1,4.1280844 4.1280844,1 8,1 Z M 7.53125,2.0214844 A 6,6 0 0 0 3.1835938,4.4335938 H 8.9257812 Z M 8.6132812,2.03125 C 9.5587451,3.6702105 10.504247,5.3091484 11.451172,6.9472656 L 12.863281,4.5 A 6,6 0 0 0 8.6132812,2.03125 Z M 2.5957031,5.4101562 A 6,6 0 0 0 2,8 6,6 0 0 0 2.5273438,10.439453 L 5.4296875,5.4101562 Z m 10.8261719,0.033203 -2.855469,4.9433598 h 2.935547 A 6,6 0 0 0 14,8 6,6 0 0 0 13.421875,5.4433592 Z M 4.5722656,8.8945312 3.0996094,11.449219 a 6,6 0 0 0 4.40625,2.527343 z m 2.5820313,2.4707028 1.4960937,2.591797 a 6,6 0 0 0 4.3144534,-2.591797 z"></path></svg>',"exif-camera":'<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path d="m 8.0000002,5 a 4,4 0 0 0 -4,4 4,4 0 0 0 4,4 A 4,4 0 0 0 12,9 4,4 0 0 0 8.0000002,5 Z m 0.019531,1.015625 a 3,2.9814477 0 0 1 2.9804688,3 l -1,-0.00586 a 2,2 0 0 0 0,-0.00976 2,2 0 0 0 -1.9863279,-2 z M 5.125,1 C 4.5,1 4,1.5 4,2.125 V 3.0000004 L 1.125,3 C 0.5,2.9999999 0,3.5 0,4.125 v 9.75 C 0,14.5 0.5,15 1.125,15 h 13.75 C 15.5,15 16,14.5 16,13.875 V 4.125 C 16,3.5 15.5,3 14.875,3 H 12 V 2.125 C 12,1.5 11.5,1 10.875,1 Z M 5.25,2.0000004 h 5.5 c 0.125,0 0.25,0.1249996 0.25,0.25 v 1.75 h 3.75 c 0.125,0 0.25,0.1249996 0.25,0.25 V 13.75 C 15,13.875 14.875,14 14.75,14 H 1.25 C 1.125,14 1,13.875 1,13.75 V 4.25 C 1,4.125 1.125,4 1.25,4 l 3.75,4e-7 v -1.75 c 0,-0.1250004 0.125,-0.25 0.25,-0.25 z"></path></svg>',"exif-created-timestamp":'<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path d="M 3,1 V 2 H 1 V 15 H 16 V 2 H 14 V 1 H 13 V 2 H 4 V 1 Z M 2,4 H 15 V 14 H 2 Z M 6,5 V 7 H 8 V 5 Z m 3,0 v 2 h 2 V 5 Z m 3,0 v 2 h 2 V 5 Z M 3,8 v 2 H 5 V 8 Z m 3,0 v 2 H 8 V 8 Z m 3,0 v 2 h 2 V 8 Z m 3,0 v 2 h 2 V 8 Z m -9,3 v 2 h 2 v -2 z m 3,0 v 2 h 2 v -2 z m 3,0 v 2 h 2 v -2 z"></path></svg>',"exif-shutter-speed":'<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path d="M 8,0 C 3.5876443,0 -2.9415707e-8,3.5876443 0,8 c 2.3532563e-7,4.412356 3.5876445,8 8,8 4.412356,0 8,-3.587644 8,-8 C 16,3.5876443 12.412356,0 8,0 Z m 0,1 c 3.871916,0 7,3.1280844 7,7 0,3.871915 -3.128085,7 -7,7 -3.8719154,0 -6.9999998,-3.128085 -7,-7 -3e-8,-3.8719156 3.1280844,-7 7,-7 z M 11.646484,3.6464844 8.6445312,6.6484375 A 1.5,1.5 0 0 0 8,6.5 1.5,1.5 0 0 0 6.5,8 1.5,1.5 0 0 0 8,9.5 1.5,1.5 0 0 0 9.5,8 1.5,1.5 0 0 0 9.3515625,7.3554688 L 12.353516,4.3535156 Z M 2,7.5 v 1 h 2 v -1 z M 7.5,12 v 2 h 1 V 12 Z M 12,7.5 v 1 h 2 v -1 z M 7.5,2 v 2 h 1 V 2 Z"></path></svg>',"exif-focal-length":'<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path d="m 1,4.125 -1,0.25 v 7.25 l 1,0.25 z M 5,1 2,4 v 8 l 3,3 h 6.875 C 12.500003,15 13,14.5 13,13.875 V 2.125 C 13,1.4999986 12.5,1 11.875,1 9.576807,0.99914375 7.1414067,0.96597644 5,1 Z M 5.5,2 H 6 V 14 H 5.5 L 3,11.5 v -7 z M 7,2 h 4.75 C 11.875,2 12,2.1249997 12,2.25 v 11.5 c 0,0.125 -0.125,0.250622 -0.25,0.25 H 7 Z m 7,0 c 1,2.2 1.5,4.35 1.5,6 0,1.65 -0.5,3.8 -1.5,6"></path></svg>',"exif-iso":'<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path d="M 7.5,0 V 1.6015625 C 6.0969201,1.7146076 4.8392502,2.256185 3.828125,3.1210938 L 2.6035156,1.8964844 1.8964844,2.6035156 3.1210938,3.828125 C 2.256185,4.8392502 1.7146076,6.0969201 1.6015625,7.5 H 0 v 1 h 1.6015625 c 0.1130451,1.4030799 0.6546225,2.66075 1.5195313,3.671875 l -1.2246094,1.224609 0.7070312,0.707032 1.2246094,-1.22461 C 4.8392502,13.743815 6.0969201,14.285392 7.5,14.398438 V 16 h 1 v -1.601562 c 1.4030799,-0.113046 2.66075,-0.654623 3.671875,-1.519532 l 1.224609,1.22461 0.707032,-0.707032 -1.22461,-1.224609 C 13.743815,11.16075 14.285392,9.9030799 14.398438,8.5 H 16 v -1 H 14.398438 C 14.285392,6.0969201 13.743815,4.8392502 12.878906,3.828125 L 14.103516,2.6035156 13.396484,1.8964844 12.171875,3.1210938 C 11.16075,2.256185 9.9030799,1.7146076 8.5,1.6015625 V 0 Z M 8,2.5 c 3.043488,0 5.5,2.4565116 5.5,5.5 0,3.043488 -2.456512,5.5 -5.5,5.5 C 4.9565116,13.5 2.5,11.043488 2.5,8 2.5,4.9565116 4.9565116,2.5 8,2.5 Z"></path></svg>',"exif-orientation":'<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path d="M 1.25,0 C 0.625,0 0,0.625 0,1.25 V 5 H 1 V 3 h 8 v 2 h 1 V 1.25 C 10,0.625 9.375,0 8.75,0 Z m 0,1 h 7.5 C 8.875,1 9,1.125 9,1.25 V 2 H 1 V 1.25 C 1,1.125 1.125,1 1.25,1 Z m 0,5 C 0.625,6 0,6.625 0,7.25 v 7.5 C 0,15.375 0.625,16 1.25,16 h 13.5 C 15.375,16 16,15.375 16,14.75 V 7.25 C 16,6.625 15.375,6 14.75,6 Z m 0,1 H 2 v 3 H 1 V 7.25 C 1,7.125 1.125,7 1.25,7 Z M 3,7 h 10 v 8 H 3 Z m 11,0 h 0.75 C 14.875,7 15,7.125 15,7.25 v 7.5 C 15,14.875 14.875,15 14.75,15 H 14 Z M 1,12 h 1 v 3 H 1.25 C 1.125,15 1,14.875 1,14.75 Z"></path></svg>'}}},register:function(a,b){return!(d.empty(a)||d.empty(b)||!d.string(a)||!d.hash(b))&&(this.registered[a]=e.extend({},this.registered.default,b),!0)},get:function(b,c){var f=this,g="default",h=e.extend({},f.registered.default);d.string(c)&&"default"!==c?(g=c,h=e.extend(h,f.registered[c])):d.hash(c)&&(g="custom",h=e.extend(h,c));var i=d.string(b)&&h.hasOwnProperty(b)?h[b].replace(/\[ICON_CLASS]/g,f.className+"-"+b):null,j=[!1,b,g].map(function(a){return!1===a?f.className:f.className+"-"+a}).join(" ");return a(i).addClass(j)}}),b.icons=new b.Icons}(FooGallery.$,FooGallery,FooGallery.utils,FooGallery.utils.is,FooGallery.utils.obj),function(a,b,c,d,e){var f="__FooGallerySwipe__",g="ontouchstart"in window,h=window.navigator.msPointerEnabled&&!window.navigator.pointerEnabled&&!g,i=(window.navigator.pointerEnabled||window.navigator.msPointerEnabled)&&!g,j=g||i;b.Swipe=c.Class.extend({construct:function(b,c){var d=this,f=".fgswipe";d.$el=a(b),d.opt=e.extend({threshold:20,allowPageScroll:!1,swipe:a.noop,data:{}},c),d.active=!1,d.startPoint=null,d.endPoint=null,d.events={start:(j?i?h?"MSPointerDown":"pointerdown":"touchstart":"mousedown")+f,move:(j?i?h?"MSPointerMove":"pointermove":"touchmove":"mousemove")+f,end:(j?i?h?"MSPointerUp":"pointerup":"touchend":"mouseup")+f,leave:(j?i?"mouseleave":null:"mouseleave")+f}},init:function(){var a=this;a.$el.on(a.events.start,{self:a},a.onStart),a.$el.on(a.events.move,{self:a},a.onMove),a.$el.on(a.events.end,{self:a},a.onEnd),d.string(a.events.leave)&&a.$el.on(a.events.leave,{self:a},a.onEnd),a.$el.data(f,a)},destroy:function(){var a=this;a.$el.off(a.events.start,a.onStart),a.$el.off(a.events.move,a.onMove),a.$el.off(a.events.end,a.onEnd),d.string(a.events.leave)&&a.$el.off(a.events.leave,a.onEnd),a.$el.removeData(f)},getAngle:function(a,b){var c=Math.atan2(a.x-b.x,a.y-b.y),d=Math.round(180*c/Math.PI);return 360-(d<0?360-Math.abs(d):d)},getDistance:function(a,b){var c=b.x-a.x,d=b.y-a.y;return c*=c,d*=d,Math.sqrt(c+d)},getDirection:function(a,b){var c=this,d=c.getAngle(a,b);return d>337.5||d<=22.5?"N":d>22.5&&d<=67.5?"NE":d>67.5&&d<=112.5?"E":d>112.5&&d<=157.5?"SE":d>157.5&&d<=202.5?"S":d>202.5&&d<=247.5?"SW":d>247.5&&d<=292.5?"W":d>292.5&&d<=337.5?"NW":"NONE"},getPoint:function(a){var b;return j&&!d.empty(b=a.originalEvent.touches||a.touches)?{x:b[0].pageX,y:b[0].pageY}:d.number(a.pageX)&&d.number(a.pageY)?{x:a.pageX,y:a.pageY}:null},getOffset:function(a){var b=this,c=b.$el.offset();return{left:a.x-c.left,top:a.y-c.top}},onStart:function(a){var b=a.data.self,c=b.getPoint(a);d.empty(c)||(b.active=!0,b.startPoint=b.endPoint=c)},onMove:function(a){var b=a.data.self,e=b.getPoint(a);if(b.active&&!d.empty(e))if(b.endPoint=e,b.opt.allowPageScroll){if(d.hash(b.opt.allowPageScroll)){var f=b.getDirection(b.startPoint,b.endPoint);b.opt.allowPageScroll.x||-1===c.inArray(f,["NE","E","SE","NW","W","SW"])||a.preventDefault(),b.opt.allowPageScroll.y||-1===c.inArray(f,["NW","N","NE","SW","S","SE"])||a.preventDefault()}}else a.preventDefault()},onEnd:function(a){var b=a.data.self;if(b.active){b.active=!1;var c={startPoint:b.startPoint,endPoint:b.endPoint,startOffset:b.getOffset(b.startPoint),endOffset:b.getOffset(b.endPoint),angle:b.getAngle(b.startPoint,b.endPoint),distance:b.getDistance(b.startPoint,b.endPoint),direction:b.getDirection(b.startPoint,b.endPoint)};if(b.opt.threshold>0&&c.distance<b.opt.threshold)return;b.opt.swipe.apply(this,[c,b.opt.data]),b.startPoint=null,b.endPoint=null}}}),a.fn.fgswipe=function(c){return this.each(function(){var e=a(this),g=e.data(f);if(g instanceof b.Swipe){if(d.string(c)&&d.fn(g[c]))return void g[c]();g.destroy()}d.hash(c)&&(g=new b.Swipe(this,c),g.init())})}}(FooGallery.$,FooGallery,FooGallery.utils,FooGallery.utils.is,FooGallery.utils.obj),function(a,b,c,d,e){b.Factory=c.Class.extend({construct:function(){this.registered={}},contains:function(a){return!d.undef(this.registered[a])},make:function(a,b,c){var f,g=this,h=e.arg2arr(arguments);return a=h.shift(),f=g.registered[a],d.hash(f)&&d.fn(f.klass)?e.apply(f.klass,h):null},names:function(b){b=!!d.boolean(b)&&b;var c,e=[];if(b){var f=[];for(c in this.registered)this.registered.hasOwnProperty(c)&&f.push(this.registered[c]);f.sort(function(a,b){return b.priority-a.priority}),a.each(f,function(a,b){e.push(b.name)})}else for(c in this.registered)this.registered.hasOwnProperty(c)&&e.push(c);return e},register:function(a,b,c){if(!d.string(a)||d.empty(a)||!d.fn(b))return!1;c=d.number(c)?c:0;var e=this.registered[a];return this.registered[a]={name:a,klass:b,priority:d.undef(e)?c:e.priority},!0},load:function(){var b,c=this,d=[],e=[];for(b in c.registered)c.registered.hasOwnProperty(b)&&e.push(c.registered[b]);return e.sort(function(a,b){return b.priority-a.priority}),a.each(e,function(a,b){d.push(c.make(b.name))}),d}})}(FooGallery.$,FooGallery,FooGallery.utils,FooGallery.utils.is,FooGallery.utils.fn),function(a,b,c,d,e,f){b.TemplateFactory=b.Factory.extend({construct:function(){this.registered={}},register:function(a,b,c,e,f,g){var h=this,i=h._super(a,b,g);if(i){var j=h.registered;j[a].opt=d.hash(c)?c:{},j[a].cls=d.hash(e)?e:{},j[a].il8n=d.hash(f)?f:{}}return i},make:function(b,c){c=d.jq(c)?c:a(c),b=f.extend({},b,c.data("foogallery"));var e=this,g=e.type(b,c);return e.contains(g)?(b=e.options(g,b),e._super(g,b,c)):null},type:function(b,e){e=d.jq(e)?e:a(e);var f=this,g=d.hash(b)&&d.hash(b)&&d.string(b.type)&&f.contains(b.type)?b.type:null;if(null===g&&e.length>0)for(var h=f.registered,i=f.names(!0),j=0,k=i.length;j<k;j++)if(h.hasOwnProperty(i[j])&&"core"!==i[j]){var l=i[j],m=h[l].cls;if(d.string(m.container)){var n=c.selectify(m.container);if(e.is(n)){g=i[j];break}}}return g},configure:function(a,b,c,d){var e=this;if(e.contains(a)){var g=e.registered;f.extend(g[a].opt,b),f.extend(g[a].cls,c),f.extend(g[a].il8n,d)}},options:function(a,c){c=f.extend({type:a},c);var e=this,g=e.registered,h=g.core.opt,i=g.core.cls,j=g.core.il8n;return d.hash(c.cls)||(c.cls={}),d.hash(c.il8n)||(c.il8n={}),d.undef(b.filtering)||(c=b.filtering.merge(c)),d.undef(b.paging)||(c=b.paging.merge(c)),"core"!==a&&e.contains(a)?(c=f.extend({},h,g[a].opt,c),c.cls=f.extend({},i,g[a].cls,c.cls),c.il8n=f.extend({},j,g[a].il8n,c.il8n)):(c=f.extend({},h,c),c.cls=f.extend({},i,c.cls),c.il8n=f.extend({},j,c.il8n)),c}}),b.template=new b.TemplateFactory}(FooGallery.$,FooGallery,FooGallery.utils,FooGallery.utils.is,FooGallery.utils.fn,FooGallery.utils.obj),function(a,b,c,d,e,f){var g=0;b.Template=c.EventClass.extend({construct:function(f,h){var i=this;i._super(),i.namespace=".foogallery-"+ ++g,i.$el=d.jq(h)?h:a(h),i.el=i.$el.get(0)||null,i.$scrollParent=null,i.opt=f,i.template=f.template,i.id=i.$el.prop("id")||f.id,i.cls=f.cls,i.il8n=f.il8n,i.sel=c.selectify(i.cls),i.items=b.components.make("items",i),i.pages=d.undef(b.paging)?null:b.paging.make(f.paging.type,i),i.filter=d.undef(b.filtering)?null:b.filtering.make(f.filtering.type,i),i.state=b.components.make("state",i),i._initialize=null,i._layoutTimeout=null,i._layoutWidths=[],i.lastWidth=0,i.initializing=!1,i.initialized=!1,i.destroying=!1,i.destroyed=!1,i._undo={classes:"",style:"",create:!1,children:!1},i.robserver=new ResizeObserver(e.throttle(function(a){if(!i.destroying&&!i.destroyed&&1===a.length&&a[0].target===i.el){var b=c.getResizeObserverSize(a[0]);i.layout(b.width)}},50))},initialize:function(b){var c=this;return d.promise(c._initialize)?c._initialize:c._initialize=a.Deferred(function(a){c.preInit(b)?c.init().then(function(){c.postInit()?(c.ready(),a.resolve(c)):a.reject("post-init failed")}).fail(a.reject):a.reject("pre-init failed")}).fail(function(a){return console.log("initialize failed",c,a),c.destroy()}).promise()},preInit:function(e){var f=this;if(f.destroying)return!1;if(e=d.jq(e)?e:a(e),f.initializing=!0,0===e.length&&0===f.$el.parent().length)return!1;0===f.$el.length&&(f.$el=f.create(),f.el=f.$el.get(0),f._undo.create=!0),e.length>0&&f.$el.appendTo(e);var g;d.empty(f.opt.scrollParent)||0===(g=a(f.opt.scrollParent)).length?f.$scrollParent=a(document):f.$scrollParent=g.is("html")?a(document):g,f.$el.data(b.DATA_TEMPLATE,f),d.empty(f.opt.on)||f.on(f.opt.on),f._undo.classes=f.$el.attr("class"),f._undo.style=f.$el.attr("style"),f.$el.is(f.sel.container)||f.$el.addClass(f.cls.container);var h=c.selectify(f.opt.classes);return null==h||f.$el.is(h)||f.$el.addClass(f.opt.classes),0===f.$el.children().not(f.sel.item.elem).length&&(f.$el.append(f.createChildren()),f._undo.children=!0),f.opt.protected&&(f.el.oncontextmenu=function(a){return a.preventDefault(),!1}),!f.trigger("pre-init").isDefaultPrevented()},init:function(){var a=this;return a.trigger("init").isDefaultPrevented()?e.reject("init default prevented"):a.items.fetch()},postInit:function(){var b=this;return!b.destroying&&(!b.trigger("post-init").isDefaultPrevented()&&(b.state.init(),b.pages&&b.pages.init(),a(window).on("popstate"+b.namespace,{self:b},b.onWindowPopState),b.robserver.observe(b.el),!0))},ready:function(){var a=this;return!a.destroying&&(a.initializing=!1,a.initialized=!0,a.trigger("ready"),!0)},create:function(){var b=this;return a("<div/>",{id:b.id,class:b.cls.container}).addClass(b.opt.classes)},createChildren:function(){return a()},destroy:function(b){var c=this,f=c._super.bind(c);return c.destroyed?e.resolved:(c.destroying=!0,a.Deferred(function(a){c.initializing&&d.promise(c._initialize)?c._initialize.always(function(){c.destroying=!1,c.doDestroy(b),a.resolve()}):(c.destroying=!1,c.doDestroy(b),a.resolve())}).then(function(){f()}).promise())},doDestroy:function(c){var e=this;e.destroyed||(e.trigger("destroy"),e.robserver.disconnect(),a(window).off(e.namespace),e.state.destroy(c),e.filter&&e.filter.destroy(),e.pages&&e.pages.destroy(),e.items.destroy(),d.empty(e.opt.on)||e.$el.off(e.opt.on),e.trigger("destroyed"),e.$el.removeData(b.DATA_TEMPLATE),d.empty(e._undo.classes)?e.$el.removeAttr("class"):e.$el.attr("class",e._undo.classes),d.empty(e._undo.style)?e.$el.removeAttr("style"):e.$el.attr("style",e._undo.style),e._undo.children&&e.destroyChildren(),e._undo.create&&e.$el.remove(),e.$el=e.state=e.items=e.pages=null,e.destroyed=!0,e.initializing=!1,e.initialized=!1)},destroyChildren:function(){},getAvailable:function(){return this.pages?this.pages.available():this.items.available()},layout:function(a){var b=this;if(null!==b._initialize){if(!d.number(a)){a=b.el.getBoundingClientRect().width}0===a||b._checkWidth(a)||(b.lastWidth=a,b.trigger("layout",[a]))}},_checkWidth:function(a){var b,c=this;return(b=-1!==c._layoutWidths.indexOf(a))||(c._layoutWidths.unshift(a),c._layoutWidths.splice(2,c._layoutWidths.length-2),null!=c._layoutTimeout&&clearTimeout(c._layoutTimeout),c._layoutTimeout=setTimeout(function(){c._layoutWidths.splice(0,c._layoutWidths.length)},100)),b},getCSSClass:function(a,b){b=d.empty(b)?"":b;var c=a instanceof RegExp?a:d.string(a)&&this.opt.regex.hasOwnProperty(a)?this.opt.regex[a]:null,e=this.$el.prop("className")||"",f=null!=c?e.match(c):null;return null!=f&&f.length>=2?f[1]:b},onWindowPopState:function(a){var b=a.data.self,c=a.originalEvent.state;d.empty(c)||c.id!==b.id||b.state.set(c)}}),b.template.register("core",b.Template,{id:null,type:"core",classes:"",on:{},lazy:!0,items:[],scrollParent:null,delay:0,throttle:50,shortpixel:!1,srcset:"data-srcset-fg",src:"data-src-fg",protected:!1,template:{},regex:{theme:/(?:\s|^)(fg-(?:light|dark|custom))(?:\s|$)/,loadingIcon:/(?:\s|^)(fg-loading-(?:default|bars|dots|partial|pulse|trail))(?:\s|$)/,hoverIcon:/(?:\s|^)(fg-hover-(?:zoom|zoom2|zoom3|plus|circle-plus|eye|external|tint))(?:\s|$)/,videoIcon:/(?:\s|^)(fg-video-(?:default|1|2|3|4))(?:\s|$)/,border:/(?:\s|^)(fg-border-(?:thin|medium|thick))(?:\s|$)/,hoverColor:/(?:\s|^)(fg-hover-(?:colorize|grayscale))(?:\s|$)/,hoverScale:/(?:\s|^)(fg-hover-scale)(?:\s|$)/,stickyVideoIcon:/(?:\s|^)(fg-video-sticky)(?:\s|$)/,insetShadow:/(?:\s|^)(fg-shadow-inset-(?:small|medium|large))(?:\s|$)/,filter:/(?:\s|^)(fg-filter-(?:1977|amaro|brannan|clarendon|earlybird|lofi|poprocket|reyes|toaster|walden|xpro2|xtreme))(?:\s|$)/}},{container:"foogallery"},{},-100)}(FooGallery.$,FooGallery,FooGallery.utils,FooGallery.utils.is,FooGallery.utils.fn,FooGallery.utils.str),function(a,b,c){a.Component=b.EventClass.extend({construct:function(a){this._super(),this.tmpl=a},destroy:function(){this.tmpl=null,this._super()}}),a.components=new a.Factory}(FooGallery,FooGallery.utils,FooGallery.utils.is),function(a,b,c,d,e,f){b.State=b.Component.extend({construct:function(a){var b=this;b._super(a),b.apiEnabled=!!window.history&&!!history.replaceState,b.opt=b.tmpl.opt.state,b.enabled=b.opt.enabled,b.current={filter:[],page:0,item:null},b.pushOrReplace=b.isPushOrReplace(b.opt.pushOrReplace)?b.opt.pushOrReplace:"replace",b.defaultMask="foogallery-gallery-{id}";var c=e.escapeRegExp(b.tmpl.id),d=e.escapeRegExp(b.getMasked()),f=e.escapeRegExp(b.opt.values),g=e.escapeRegExp(b.opt.pair);b.regex={exists:new RegExp("^#"+c+"\\"+f+".+?"),masked:new RegExp("^#"+d+"\\"+f+".+?"),values:new RegExp("(\\w+)"+g+"([^"+f+"]+)","g")}},destroy:function(a){var b=this;a||b.clear(),b.opt=b.regex={},b._super()},init:function(){this.set(this.initial())},getIdNumber:function(){return this.tmpl.id.match(/\d+/g)[0]},getMasked:function(){var a=this,b=e.contains(a.opt.mask,"{id}")?a.opt.mask:a.defaultMask;return e.format(b,{id:a.getIdNumber()})},isPushOrReplace:function(a){return-1!==c.inArray(a,["push","replace"])},exists:function(){return this.regex.values.lastIndex=0,
|
11 |
-
(this.regex.exists.test(location.hash)||this.regex.masked.test(location.hash))&&this.regex.values.test(location.hash)},parse:function(){var b=this,c=b.tmpl,d={};if(b.exists())if(b.enabled){d.id=b.tmpl.id,b.regex.values.lastIndex=0;var e=location.hash.match(b.regex.values);a.each(e,function(a,e){var f,g=e.split(b.opt.pair);if(2===g.length)switch(g[0]){case b.opt.itemKey:f=c.items.fromHash(g[1]),null!==f&&(d.item=f);break;case b.opt.pageKey:c.pages&&null!==(f=c.pages.fromHash(g[1]))&&(d.page=f);break;case b.opt.filterKey:c.filter&&null!==(f=c.filter.fromHash(g[1]))&&(d.filter=f)}})}else b.apiEnabled?history.replaceState(null,"",location.pathname+location.search):location.hash="#";return d},hashify:function(a){var b=this,c=b.tmpl;if(d.hash(a)){var e=[],f=c.items.toHash(a.item);return null!==f&&e.push(b.opt.itemKey+b.opt.pair+f),c.filter&&null!==(f=c.filter.toHash(a.filter))&&e.push(b.opt.filterKey+b.opt.pair+f),c.pages&&null!==(f=c.pages.toHash(a.page))&&e.push(b.opt.pageKey+b.opt.pair+f),e.length>0&&e.unshift("#"+b.getMasked()),e.join(b.opt.values)}return""},replace:function(a){var c=this;if(c.enabled&&c.apiEnabled){a.id=c.tmpl.id;var e=c.hashify(a),g=d.empty(e),h=f.extend({},a,{item:a.item instanceof b.Item?a.item.id:a.item});history.replaceState(g?null:h,"",g?location.pathname+location.search:e)}},push:function(a){var c=this;if(c.enabled&&c.apiEnabled){a.id=c.tmpl.id;var e=c.hashify(a),g=d.empty(e),h=f.extend({},a,{item:a.item instanceof b.Item?a.item.id:a.item});history.pushState(g?null:h,"",g?location.pathname+location.search:e)}},update:function(a,b){var c=this;c.enabled&&c.apiEnabled&&(b=c.isPushOrReplace(b)?b:c.pushOrReplace,c[b](a))},clear:function(){this.exists()&&this.replace({})},initial:function(){var a=this,b=a.parse();return d.empty(b)?a.get():f.extend({filter:[],page:1,item:null},b)},get:function(a){var c,d=this,e=d.tmpl,g={};return a instanceof b.Item&&(g.item=a),e.filter&&null!==(c=e.filter.getState())&&(g.filter=c),e.pages&&null!==(c=e.pages.getState())&&(g.page=c),f.extend({filter:[],page:1,item:null},g)},set:function(a){var c=this,e=c.tmpl;if(d.hash(a)){var g=f.extend({filter:[],page:1,item:null},a);e.items.reset();if(!e.trigger("before-state",[g]).isDefaultPrevented()){if(e.filter&&e.filter.setState(g),e.pages)e.pages.setState(g);else{var h=e.items.available();if(!e.items.isAll(h)){var i=e.items.not(h);e.items.detach(i)}e.items.create(h,!0)}g.item instanceof b.Item&&(c.opt.scrollTo&&g.item.scrollTo(),d.empty(a.item)||(a.item=null,c.replace(a))),c.current=g,e.trigger("after-state",[g])}}}}),b.template.configure("core",{state:{enabled:!1,scrollTo:!0,pushOrReplace:"replace",mask:"foogallery-gallery-{id}",values:"/",pair:":",array:"+",arraySeparator:",",itemKey:"i",filterKey:"f",pageKey:"p"}}),b.components.register("state",b.State)}(FooGallery.$,FooGallery,FooGallery.utils,FooGallery.utils.is,FooGallery.utils.str,FooGallery.utils.obj),function(a,b,c,d,e,f){b.Items=b.Component.extend({construct:function(a){var d=this;d.ALLOW_CREATE=!0,d.ALLOW_APPEND=!0,d._super(a),d._typeRegex=/(?:^|\s)?fg-type-(.*?)(?:$|\s)/,d._fetched=null,d._all=[],d._available=[],d._unavailable=[],d._observed=new Map;var e=d.tmpl.cls.item.caption;d.tmpl.sel.item.caption.all=c.selectify([e.elem,e.inner,e.title,e.description]),d.iobserver=new IntersectionObserver(function(a){d.tmpl.destroying||d.tmpl.destroyed||a.forEach(function(a){if(a.isIntersecting){var c=d._observed.get(a.target);c instanceof b.Item&&c.load()}})})},fromHash:function(a){return this.find(this._all,function(b){return b.id===a})},toHash:function(a){return a instanceof b.Item?a.id:null},destroy:function(){var b=this,c=b.all(),d=[];b.iobserver.disconnect(),c.length>0&&(b.tmpl.trigger("destroy-items",[c]),d=a.map(c,function(a){return a.destroy()?a:null}),d.length>0&&b.tmpl.trigger("destroyed-items",[d])),b._fetched=null,b._all=[],b._available=[],b._unavailable=[],b._observed.clear(),b._super()},fetch:function(b){var c=this;if(!b&&d.promise(c._fetched))return c._fetched;var e=c.tmpl.id+"_items",f=c.tmpl.sel,g=c.tmpl.opt.items,h=a.Deferred(),i=c.make(c.tmpl.$el.find(f.item.elem));return d.empty(g)?(d.array(window[e])&&i.push.apply(i,c.make(window[e])),h.resolve(i)):d.array(g)?(i.push.apply(i,c.make(g)),h.resolve(i)):d.string(g)?a.get(g).then(function(a){i.push.apply(i,c.make(a)),h.resolve(i)},function(a,b,c){console.log("FooGallery: GET items error.",g,a,b,c),h.resolve(i)}):h.resolve(i),h.then(function(a){c.setAll(a)}),c._fetched=h.promise()},toJSON:function(a){return(a?this.all():this.available()).map(function(a){return a.toJSON()})},all:function(){return this._all.slice()},count:function(a){return a?this.all().length:this.available().length},available:function(a){return d.fn(a)?this._available.filter(a,this):this._available.slice()},unavailable:function(a){return d.fn(a)?this._unavailable.filter(a,this):this._unavailable.slice()},setAll:function(a){this._all=d.array(a)?a:[],this._all.forEach(function(a,b){a.index=b,d.empty(a.id)&&(a.id=b+1+"")}),this._available=this.all(),this._unavailable=[]},setAvailable:function(a){var b=this;b._available=d.array(a)?a:[],b._all.length!==b._available.length?b._unavailable=b._all.filter(function(a){return-1===b._available.indexOf(a)}):b._unavailable=[]},reset:function(){this.setAvailable(this.all())},find:function(a,b){if(b=d.fn(b)?b:function(){return!0},d.array(a))for(var c=0,e=a.length;c<e;c++)if(!0===b.call(this,a[c]))return a[c];return null},not:function(a){var b=this.all();return d.array(a)?b.filter(function(b){return-1===a.indexOf(b)}):b},isAll:function(a){return!!d.array(a)&&this._all.length===a.length},first:function(a){return this.find(this._available,a)},last:function(a){return this.find(this._available.slice().reverse(),a)},next:function(a,c,e){if(!(a instanceof b.Item))return null;e=!!d.boolean(e)&&e;var f=this._available.slice(),g=f.indexOf(a);if(-1!==g){var h=f.slice(0,g);return f=f.slice(g+1),e&&(f=f.concat(h)),this.find(f,c)}return null},prev:function(a,c,e){if(!(a instanceof b.Item))return null;e=!!d.boolean(e)&&e;var f=this._available.slice().reverse(),g=f.indexOf(a);if(-1!==g){var h=f.slice(0,g);return f=f.slice(g+1),e&&(f=f.concat(h)),this.find(f,c)}return null},creatable:function(c){return this.ALLOW_CREATE&&d.array(c)?a.map(c,function(a){return a instanceof b.Item&&!a.isCreated?a:null}):[]},appendable:function(c){return this.ALLOW_APPEND&&d.array(c)?a.map(c,function(a){return a instanceof b.Item&&a.isCreated&&!a.isAttached?a:null}):[]},detachable:function(c){return d.array(c)?a.map(c,function(a){return a instanceof b.Item&&a.isCreated&&a.isAttached?a:null}):[]},jquerify:function(b){return a(a.map(b,function(a){return a.$el.get()}))},make:function(c){var e=this,g=[];if(d.jq(c)||d.array(c)){var h=[],i=a.makeArray(c);if(0===i.length)return g;e.tmpl.trigger("make-items",[i]).isDefaultPrevented()||(g=a.map(i,function(a){var c=e.type(a),g=f.extend(d.hash(a)?a:{},{type:c}),i=b.components.make(c,e.tmpl,g);return d.element(a)?i.parse(a)?(h.push(i),e.ALLOW_APPEND||i.detach(),i):null:i})),g.length>0&&e.tmpl.trigger("made-items",[g]),h.length>0&&e.tmpl.trigger("parsed-items",[h])}return g},type:function(a){var c,e=this;if(d.hash(a))c=a.type;else if(d.element(a)){var f=a.className.match(e._typeRegex);null!==f&&2===f.length&&(c=f[1])}return d.string(c)&&b.components.contains(c)?c:"image"},create:function(b,c){var e=this,f=[],g=e.creatable(b);if(g.length>0){e.tmpl.trigger("create-items",[g]).isDefaultPrevented()||(f=a.map(g,function(a){return a.create()?a:null})),f.length>0&&e.tmpl.trigger("created-items",[f])}return d.boolean(c)&&c?e.append(b):f},append:function(b){var c=this,d=[],e=c.appendable(b);if(e.length>0){c.tmpl.trigger("append-items",[e]).isDefaultPrevented()||(d=a.map(e,function(a){return a.append()?a:null})),d.length>0&&c.tmpl.trigger("appended-items",[d])}return d},detach:function(b){var c=this,d=[],e=c.detachable(b);if(e.length>0){c.tmpl.trigger("detach-items",[e]).isDefaultPrevented()||(d=a.map(e,function(a){return a.detach()?a:null})),d.length>0&&c.tmpl.trigger("detached-items",[d])}return d},observe:function(a){var b=this;!(b.iobserver&&a.isCreated&&a.isAttached)||a.isLoading&&a.isLoaded||(b.iobserver.observe(a.el),b._observed.set(a.el,a))},unobserve:function(a){var b=this;b.iobserver&&(b.iobserver.unobserve(a.el),b._observed.delete(a.el))}}),b.components.register("items",b.Items)}(FooGallery.$,FooGallery,FooGallery.utils,FooGallery.utils.is,FooGallery.utils.fn,FooGallery.utils.obj),function(a,b,c,d,e,f,g){b.Item=b.Component.extend({construct:function(a,b){var c=this;c._super(a),c.cls=a.cls.item,c.il8n=a.il8n.item,c.sel=a.sel.item,c.opt=f.extend({},a.opt.item,b),c.isAttached=!1,c.isCreated=!1,c.isDestroyed=!1,c.isLoading=!1,c.isLoaded=!1,c.isError=!1,c.isParsed=!1,c.isPicture=!1,c.$el=null,c.el=null,c.$inner=null,c.$anchor=null,c.$overlay=null,c.$wrap=null,c.$image=null,c.$caption=null,c.$loader=null,c.index=-1,c.type=c.opt.type,c.id=c.opt.id,c.productId=c.opt.productId,c.href=c.opt.href,c.placeholder=c.opt.placeholder,c.src=c.opt.src,c.srcset=c.opt.srcset,c.sources=c.opt.sources,c.width=c.opt.width,c.height=c.opt.height,c.title=c.opt.title,c.alt=c.opt.alt,c.caption=d.empty(c.opt.caption)?c.title:c.opt.caption,c.description=d.empty(c.opt.description)?c.alt:c.opt.description,c.attr=c.opt.attr,c.tags=c.opt.tags,c.maxCaptionLength=c.opt.maxCaptionLength,c.maxDescriptionLength=c.opt.maxDescriptionLength,c.showCaptionTitle=c.opt.showCaptionTitle,c.showCaptionDescription=c.opt.showCaptionDescription,c.noLightbox=c.opt.noLightbox,c.panelHide=c.opt.panelHide,c.exif=c.opt.exif,c.hasExif=d.exif(c.exif),c._load=null,c._undo={classes:"",style:"",placeholder:!1}},destroy:function(){var a=this;return a.tmpl.trigger("destroy-item",[a]).isDefaultPrevented()||(a.isDestroyed=a.doDestroyItem()),a.isDestroyed&&(a.tmpl.trigger("destroyed-item",[a]),a._super()),a.isDestroyed},doDestroyItem:function(){var a=this;return a.isParsed?(a.$anchor.add(a.$caption).off("click.foogallery"),a.append(),a.tmpl.items.unobserve(a),d.empty(a._undo.classes)?a.$el.removeAttr("class"):a.$el.attr("class",a._undo.classes),d.empty(a._undo.style)?a.$el.removeAttr("style"):a.$el.attr("style",a._undo.style),a._undo.placeholder&&a.$image.prop("src")===a.placeholder&&a.$image.removeAttr("src")):a.isCreated&&(a.detach(),a.$el.remove()),!0},parse:function(b){var c=this,d=a(b);return!c.tmpl.trigger("parse-item",[c,d]).isDefaultPrevented()&&(c.isCreated=d.is(c.sel.elem))&&(c.isParsed=c.doParseItem(d)),c.isParsed&&(c.isLoaded||c.tmpl.items.observe(c),c.tmpl.trigger("parsed-item",[c])),c.isParsed},doParseItem:function(c){var e=this,h=e.cls,i=e.sel,j=c.get(0);if(e._undo.classes=c.attr("class")||"",e._undo.style=c.attr("style")||"",e.$el=c.data(b.DATA_ITEM,e),e.el=j,e.$inner=a(j.querySelector(i.inner)),e.$anchor=a(j.querySelector(i.anchor)).on("click.foogallery",{self:e},e.onAnchorClick),e.$image=a(j.querySelector(i.image)),e.$caption=a(j.querySelector(i.caption.elem)).on("click.foogallery",{self:e},e.onCaptionClick),e.$overlay=a(j.querySelector(i.overlay)),e.$wrap=a(j.querySelector(i.wrap)),e.$loader=a(j.querySelector(i.loader)),!(e.$el.length&&e.$inner.length&&e.$anchor.length&&e.$image.length))return console.error("FooGallery Error: Invalid HTML markup. Check the item markup for additional elements or malformed HTML in the title or description.",e),e.isError=!0,e.tmpl.trigger("error-item",[e]),0!==e.$el.length&&e.$el.remove(),!1;e.isAttached=null!==j.parentNode,e.isLoading=e.$el.hasClass(h.loading),e.isLoaded=e.$el.hasClass(h.loaded),e.isError=e.$el.hasClass(h.error);var k=e.$anchor.data();e.id=k.id||e.id,e.productId=k.productId||e.productId,e.tags=k.tags||e.tags,e.href=k.href||e.$anchor.attr("href")||e.href;var l;if(e.$image.is("picture")?(e.isPicture=!0,e.sources=e.$image.find("source").map(function(a,b){return{srcset:b.getAttribute(e.tmpl.opt.srcset),type:b.getAttribute("type"),media:b.getAttribute("media"),sizes:b.getAttribute("sizes")}}).get(),l=e.$image.find("img")):l=e.$image,e.src=l.attr(e.tmpl.opt.src)||e.src,e.srcset=l.attr(e.tmpl.opt.srcset)||e.srcset,e.width=parseInt(l.attr("width"))||e.width,e.height=parseInt(l.attr("height"))||e.height,e.title=l.attr("title")||e.title,e.alt=l.attr("alt")||e.alt,e.caption=k.title||k.captionTitle||e.caption,e.description=k.description||k.captionDesc||e.description,e.noLightbox=e.$anchor.hasClass(h.noLightbox),e.panelHide=e.$anchor.hasClass(h.panelHide),d.exif(k.exif)&&(e.exif=f.extend(e.exif,k.exif),e.hasExif=!0),e.maxCaptionLength>0){var m=g.trimTo(e.caption,e.maxCaptionLength);m!==e.caption&&e.$caption.find(i.caption.title).html(m)}if(e.maxDescriptionLength){var n=g.trimTo(e.description,e.maxDescriptionLength);n!==e.description&&e.$caption.find(i.caption.description).html(n)}var o=l.get(0);d.string(o.src)&&0!==o.src.length||(d.string(e.placeholder)&&0!==e.placeholder.length||(e.placeholder=e.createPlaceholder(e.width,e.height)),e.placeholder.length>0&&(o.src=e.placeholder,e._undo.placeholder=!0));var p=e.getTypeClass();return e.$el.hasClass(p)||e.$el.addClass(p),e.hasExif&&!e.$el.hasClass(h.exif)&&e.$el.addClass(h.exif),!e.isCreated||!e.isAttached||e.isLoading||e.isLoaded||e.isError||e.$el.hasClass(h.idle)||e.$el.addClass(h.idle),e.doShortPixel(),!0},create:function(){var a=this;if(!a.isCreated&&d.string(a.href)&&d.string(a.src)&&d.number(a.width)&&d.number(a.height)){a.tmpl.trigger("create-item",[a]).isDefaultPrevented()||(a.isCreated=a.doCreateItem()),a.isCreated&&a.tmpl.trigger("created-item",[a])}return a.isCreated},_setAttributes:function(a,b){Object.keys(b).forEach(function(c){d.empty(b[c])||a.setAttribute(c,d.string(b[c])?b[c]:JSON.stringify(b[c]))})},doShortPixel:function(){function a(a,b,c){return"/"===b||"/"===c?"/":b}var c=this;if(c.tmpl.opt.shortpixel&&!b.supportsWebP){var d=/([\/,+])to_webp([\/,+])/i;c.href=c.href.replace(d,a),c.src=c.src.replace(d,a),c.srcset=c.srcset.replace(d,a)}},doCreateItem:function(){var c=this,e=c.cls,f=c.attr,h=c.hasExif?e.exif:"";c.isLoaded=!c.tmpl.opt.lazy,c.isPicture=c.sources.length>0,c.doShortPixel();var i=document.createElement("div");c._setAttributes(i,f.elem),i.className=[e.elem,c.getTypeClass(),h,c.isLoaded?e.loaded:e.idle].join(" ");var j=document.createElement("figure");c._setAttributes(j,f.inner),j.className=e.inner;var k=[e.anchor];c.noLightbox&&k.push(e.noLightbox),c.panelHide&&k.push(e.panelHide);var l=document.createElement("a");c._setAttributes(l,f.anchor),c._setAttributes(l,{class:k.join(" "),href:c.href,"data-id":c.id,"data-type":c.type,"data-title":c.caption,"data-description":c.description,"data-tags":c.tags,"data-exif":c.exif,"data-product-id":c.productId}),d.string(c.placeholder)&&0!==c.placeholder.length||(c.placeholder=c.createPlaceholder(c.width,c.height));var m=document.createElement("img");c._setAttributes(m,f.image);var n={class:e.image,src:c.placeholder,width:c.width+"",height:c.height+"",title:c.title,alt:c.alt};c.isLoaded?(n.src=c.src,n.srcset=c.srcset):(n[c.tmpl.opt.src]=c.src,n[c.tmpl.opt.srcset]=c.srcset),c._setAttributes(m,n);var o;c.isPicture&&(o=document.createElement("picture"),c._setAttributes(o,f.picture),c.sources.forEach(function(a){var b=document.createElement("source"),d={media:a.media,sizes:a.sizes,type:a.type};c.isLoaded?d.srcset=a.srcset:d[c.tmpl.opt.srcset]=a.srcset,c._setAttributes(b,d),o.appendChild(b)}),o.appendChild(m));var p=document.createElement("span");p.className=e.overlay;var q=document.createElement("span");q.className=e.wrap;var r=document.createElement("div");r.className=e.loader;var s=document.createElement("figcaption");c._setAttributes(s,f.caption.elem),s.className=e.caption.elem;var t=document.createElement("div");c._setAttributes(t,f.caption.inner),t.className=e.caption.inner;var u=null;c.showCaptionTitle&&d.string(c.caption)&&c.caption.length>0&&(u=document.createElement("div"),c._setAttributes(u,f.caption.title),u.className=e.caption.title,u.innerHTML=c.maxCaptionLength>0?g.trimTo(c.caption,c.maxCaptionLength):c.caption);var v=null;return c.showCaptionDescription&&d.string(c.description)&&c.description.length>0&&(v=document.createElement("div"),c._setAttributes(v,f.caption.description),v.className=e.caption.description,v.innerHTML=c.maxDescriptionLength>0?g.trimTo(c.description,c.maxDescriptionLength):c.description),null!==u&&t.appendChild(u),null!==v&&t.appendChild(v),s.appendChild(t),c.isPicture?q.appendChild(o):q.appendChild(m),l.appendChild(p),l.appendChild(q),j.appendChild(l),j.appendChild(s),i.appendChild(j),i.appendChild(r),c.$el=a(i).data(b.DATA_ITEM,c),c.el=i,c.$inner=a(j),c.$anchor=a(l).on("click.foogallery",{self:c},c.onAnchorClick),c.$overlay=a(p),c.$wrap=a(q),c.isPicture?c.$image=a(o):c.$image=a(m),c.$caption=a(s).on("click.foogallery",{self:c},c.onCaptionClick),c.$loader=a(r),!0},append:function(){var a=this;if(a.isCreated&&!a.isAttached){a.tmpl.trigger("append-item",[a]).isDefaultPrevented()||(a.tmpl.$el.append(a.$el.removeClass(a.cls.hidden)),a.isAttached=!0),a.isAttached&&(a.isLoaded||a.tmpl.items.observe(a),a.tmpl.trigger("appended-item",[a]))}return a.isAttached},detach:function(){var a=this;if(a.isCreated&&a.isAttached){a.tmpl.items.unobserve(a);a.tmpl.trigger("detach-item",[a]).isDefaultPrevented()||(a.$el.detach().removeClass(a.cls.hidden),a.isAttached=!1),a.isAttached||a.tmpl.trigger("detached-item",[a])}return!a.isAttached},load:function(){var b=this;return d.promise(b._load)?b._load:b._load=a.Deferred(function(a){return b.isLoaded?a.resolve(b):b.isCreated&&b.isAttached?b.tmpl.trigger("load-item",[b]).isDefaultPrevented()?a.reject("default prevented"):(b.isLoading=!0,b.tmpl.items.unobserve(b),b.$el.removeClass(b.cls.idle).removeClass(b.cls.hidden).removeClass(b.cls.loaded).removeClass(b.cls.error).addClass(b.cls.loading),void b.loadIMG().then(function(){b.isLoading=!1,b.isLoaded=!0,b.$el.removeClass(b.cls.loading).addClass(b.cls.loaded),b.tmpl.trigger("loaded-item",[b]),a.resolve(b)},function(c){b.isLoading=!1,b.isError=!0,b.$el.removeClass(b.cls.loading).addClass(b.cls.error),b.tmpl.trigger("error-item",[b]),a.reject(c)})):a.reject("not created or attached")}).promise()},loadIMG:function(){var b=this;return new a.Deferred(function(a){var c=b.isPicture?b.$image.find("img").get(0):b.$image.get(0);if(!c)return a.reject("Unable to find img element.");var e=c.src,f=c.srcset;c.onload=function(){c.onload=c.onerror=null,a.resolve(c)},c.onerror=function(){c.onload=c.onerror=null,d.empty(e)?c.removeAttribute("src"):c.src=e,d.empty(f)?c.removeAttribute("srcset"):c.srcset=f,a.reject(c)},b.isPicture&&b.$image.find("source").each(function(a,c){var e=c.getAttribute(b.tmpl.opt.srcset);d.empty(e)||(c.srcset=e)}),c.src=b.src,d.empty(b.srcset)||(c.srcset=b.srcset),c.complete&&c.onload()}).promise()},createPlaceholder:function(a,b){return d.number(a)&&d.number(b)?"data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22"+a+"%22%20height=%22"+b+"%22%20viewBox=%220%200%20"+a+"%20"+b+"%22%3E%3C/svg%3E":""},getTypeClass:function(){return this.cls.types[this.type]||""},scrollTo:function(a){var b=this;if(b.isAttached){var c=b.$el.get(0);c.scrollIntoViewIfNeeded?c.scrollIntoViewIfNeeded():c.scrollIntoView("top"===a)}return b},updateState:function(){this.tmpl.state.update(this.tmpl.state.get(this))},toJSON:function(){return{type:this.type,id:this.id,productId:this.productId,href:this.href,src:this.src,srcset:this.srcset,width:this.width,height:this.height,alt:this.alt,title:this.title,caption:this.caption,description:this.description,tags:this.tags.slice(),maxCaptionLength:this.maxCaptionLength,maxDescriptionLength:this.maxDescriptionLength,showCaptionTitle:this.showCaptionTitle,showCaptionDescription:this.showCaptionDescription,noLightbox:this.noLightbox,panelHide:this.panelHide,attr:f.extend({},this.attr)}},onAnchorClick:function(a){var b=a.data.self;b.tmpl.trigger("anchor-click-item",[b]).isDefaultPrevented()?a.preventDefault():b.updateState()},onCaptionClick:function(b){var c=b.data.self;!c.tmpl.trigger("caption-click-item",[c]).isDefaultPrevented()&&c.$anchor.length>0&&!a(b.target).is("a,:input")&&c.$anchor.get(0).click()}}),b.template.configure("core",{item:{type:"item",id:"",href:"",placeholder:"",src:"",srcset:"",sources:[],width:0,height:0,title:"",alt:"",caption:"",description:"",tags:[],maxCaptionLength:0,maxDescriptionLength:0,showCaptionTitle:!0,showCaptionDescription:!0,noLightbox:!1,panelHide:!1,exif:{aperture:null,camera:null,created_timestamp:null,shutter_speed:null,focal_length:null,iso:null,orientation:null},attr:{elem:{},inner:{},anchor:{},image:{},picture:{},caption:{elem:{},inner:{},title:{},description:{}}}}},{item:{elem:"fg-item",inner:"fg-item-inner",exif:"fg-item-exif",anchor:"fg-thumb",overlay:"fg-image-overlay",wrap:"fg-image-wrap",image:"fg-image",loader:"fg-loader",idle:"fg-idle",loading:"fg-loading",loaded:"fg-loaded",error:"fg-error",hidden:"fg-hidden",noLightbox:"fg-no-lightbox",panelHide:"fg-panel-hide",types:{item:"fg-type-unknown"},caption:{elem:"fg-caption",inner:"fg-caption-inner",title:"fg-caption-title",description:"fg-caption-desc"}}},{item:{exif:{aperture:"Aperture",camera:"Camera",created_timestamp:"Date",shutter_speed:"Exposure",focal_length:"Focal Length",iso:"ISO",orientation:"Orientation"}}}),b.components.register("item",b.Item)}(FooGallery.$,FooGallery,FooGallery.utils,FooGallery.utils.is,FooGallery.utils.fn,FooGallery.utils.obj,FooGallery.utils.str),function(a,b,c,d){b.Image=b.Item.extend({}),b.template.configure("core",null,{item:{types:{image:"fg-type-image"}}}),b.components.register("image",b.Image)}(FooGallery.$,FooGallery,FooGallery.utils,FooGallery.utils.is),function(a,b,c,d){a.PagingFactory=a.Factory.extend({construct:function(){this.registered={}},register:function(a,c,d,e,f,g,h){var i=this,j=i._super(a,c,h);if(j){var k=i.registered;k[a].ctrl=b.fn(d)?d:null,k[a].opt=b.hash(e)?e:{},k[a].cls=b.hash(f)?f:{},k[a].il8n=b.hash(g)?g:{}}return j},type:function(a){var c,d=this;return b.hash(a)&&b.hash(c=a.paging)&&b.string(c.type)&&d.contains(c.type)?c.type:null},merge:function(a){a=d.extend({},a);var c=this,e=c.type(a),f=c.registered,g=f.default.opt,h=f.default.cls,i=f.default.il8n,j=b.hash(a.paging)?a.paging:{},k=b.hash(a.cls)&&b.hash(a.cls.paging)?d.extend({},a.cls.paging):{},l=b.hash(a.il8n)&&b.hash(a.il8n.paging)?d.extend({},a.il8n.paging):{};return b.hash(a.cls)||(a.cls={}),b.hash(a.il8n)||(a.il8n={}),"default"!==e&&c.contains(e)?(a.paging=d.extend({},g,f[e].opt,j,{type:e}),a.cls=d.extend(a.cls,{paging:h},{paging:f[e].cls},{paging:k}),a.il8n=d.extend(a.il8n,{paging:i},{paging:f[e].il8n},{paging:l})):(a.paging=d.extend({},g,j,{type:e}),a.cls=d.extend(a.cls,{paging:h},{paging:k}),a.il8n=d.extend(a.il8n,{paging:i},{paging:l})),a},configure:function(a,b,c,e){var f=this;if(f.contains(a)){var g=f.registered;d.extend(g[a].opt,b),d.extend(g[a].cls,c),d.extend(g[a].il8n,e)}},hasCtrl:function(a){var c=this,d=c.registered[a];return b.hash(d)&&b.fn(d.ctrl)},makeCtrl:function(a,c,d,e){var f=this,g=f.registered[a];return b.hash(g)&&b.fn(g.ctrl)?new g.ctrl(c,d,e):null}}),a.paging=new a.PagingFactory}(FooGallery,FooGallery.utils.is,FooGallery.utils.fn,FooGallery.utils.obj),function(a,b,c,d){b.Paging=b.Component.extend({construct:function(a){var b=this;b._super(a),b.opt=b.tmpl.opt.paging,b.cls=b.tmpl.cls.paging,b.il8n=b.tmpl.il8n.paging,b.sel=b.tmpl.sel.paging,b.pushOrReplace=b.opt.pushOrReplace,b.type=b.opt.type,b.theme=b.opt.theme,b.size=b.opt.size,b.position=b.opt.position,b.scrollToTop=b.opt.scrollToTop,b.current=0,b.total=0,b.ctrls=[],b._pages=[]},init:function(){},fromHash:function(a){var b=parseInt(a);return isNaN(b)?null:b},toHash:function(a){return d.number(a)&&a>0?a.toString():null},getState:function(){return this.isValid(this.current)?this.current:null},setState:function(a){this.rebuild();var b=!1;a.item&&!this.contains(a.page,a.item)&&(a.page=this.find(a.item),a.page=0!==a.page?a.page:1,b=!0),this.set(a.page,b,!1,!1)},destroy:function(){var b=this;b._pages.splice(0,b._pages.length),a.each(b.ctrls.splice(0,b.ctrls.length),function(a,b){b.destroy()}),b._super()},build:function(){var a=this,c=a.tmpl.items.available();a.total=a.size>0&&c.length>0?Math.ceil(c.length/a.size):1;for(var d=0;d<a.total;d++)a._pages.push(c.splice(0,a.size));if(a.total>1&&b.paging.hasCtrl(a.type)){var e,f,g=a.position;"both"!==g&&"top"!==g||(e=b.paging.makeCtrl(a.type,a.tmpl,a,"top"),e.create()&&(e.append(),a.ctrls.push(e))),"both"!==g&&"bottom"!==g||(f=b.paging.makeCtrl(a.type,a.tmpl,a,"bottom"),f.create()&&(f.append(),a.ctrls.push(f)))}},rebuild:function(){var b=this;b.current=0,b.total=0,b._pages.splice(0,b._pages.length),a.each(b.ctrls.splice(0,b.ctrls.length),function(a,b){b.destroy()}),b.build()},all:function(){return this._pages.slice()},available:function(){return this.get(this.current)},controls:function(b){var c=this;c.isValid(b)&&a.each(c.ctrls,function(a,c){c.update(b)})},isValid:function(a){return d.number(a)&&a>0&&a<=this.total},number:function(a){return this.isValid(a)?a:0===this.current?1:this.current},create:function(a,b){var c=this;a=c.number(a);var d,e=a-1,f=c._pages[e];d=b?c.tmpl.items.all():c._pages.reduce(function(a,b,c){return c===e?a:a.concat(b)},c.tmpl.items.unavailable()),c.current=a,c.tmpl.items.detach(d),c.tmpl.items.create(f,!0)},get:function(a){var b=this;return b.isValid(a)?(a=b.number(a),b._pages[a-1]):[]},set:function(a,b,c,e){var f=this;if(f.isValid(a)){f.controls(a);var g,h=f.number(a);if(h!==f.current){var i=f.current,j=function(){if(c=!d.boolean(c)||c,e=!!d.boolean(e)&&e,c&&1===f.current&&!f.tmpl.state.exists()&&(g=f.tmpl.state.get(),f.tmpl.state.update(g,f.pushOrReplace)),f.create(h,e),c&&(g=f.tmpl.state.get(),f.tmpl.state.update(g,f.pushOrReplace)),f.tmpl.trigger("page-change",[f.current,i,e]),f.scrollToTop&&d.boolean(b)&&b){var a=f.get(f.current);a.length>0&&a[0].scrollTo("top")}f.tmpl.trigger("after-page-change",[f.current,i,e])};return!f.tmpl.trigger("before-page-change",[f.current,h,j,e]).isDefaultPrevented()&&(j(),!0)}}return!1},find:function(a){for(var b=this,d=0,e=b._pages.length;d<e;d++)if(-1!==c.inArray(a,b._pages[d]))return d+1;return 0},contains:function(a,b){var d=this.get(a);return-1!==c.inArray(b,d)},first:function(){this.goto(1)},last:function(){this.goto(this._pages.length)},prev:function(){this.goto(this.current-1)},next:function(){this.goto(this.current+1)},goto:function(a){this.set(a,!0)}}),b.PagingControl=b.Component.extend({construct:function(a,b,c){var d=this;d._super(a),d.pages=b,d.position=c,d.$container=null,d._containerExisted=!1,d._placeholderClasses=[]},create:function(){var b=this;return b.$container=a("#"+b.tmpl.id+"_paging-"+b.position),b.$container.length>0?(b._containerExisted=!0,b.$container.removeClass(function(a,c){return b._placeholderClasses=c.match(/(^|\s)fg-ph-\S+/g)||[],b._placeholderClasses.join(" ")}).addClass([b.pages.cls.container,b.pages.theme].join(" "))):b.$container=a("<nav/>",{class:[b.pages.cls.container,b.pages.theme].join(" ")}),!0},destroy:function(){var a=this;a._containerExisted?a.$container.empty().removeClass().addClass(a._placeholderClasses.join(" ")):a.$container.remove(),a.$container=null},append:function(){var a=this;a._containerExisted||("top"===a.position?a.$container.insertBefore(a.tmpl.$el):a.$container.insertAfter(a.tmpl.$el))},update:function(a){}}),b.paging.register("default",b.Paging,null,{type:"none",theme:"fg-light",size:30,pushOrReplace:"push",position:"none",scrollToTop:!0},{container:"fg-paging-container"},null,-100)}(FooGallery.$,FooGallery,FooGallery.utils,FooGallery.utils.is),function(a,b,c,d){b.Dots=b.Paging.extend({}),b.DotsControl=b.PagingControl.extend({construct:function(a,b,c){this._super(a,b,c),this.$list=null,this.$items=null},create:function(){var b=this;if(b._super()){for(var c,d=b.pages.cls,e=b.pages.il8n,f=[],g=a("<ul/>",{class:d.list}),h=0,i=b.pages.total;h<i;h++)f.push(c=b.createItem(h+1,e.page)),g.append(c);return b.$list=g,b.$items=a(a.map(f,function(a){return a.get()})),b.$container.append(g),!0}return!1},destroy:function(){var b=this,c=b.pages.sel;b.$list.find(c.link).off("click.foogallery",b.onLinkClick),b.$list=a(),b.$items=a(),b._super()},update:function(a){this.setSelected(a-1)},setSelected:function(b){var c=this,e=c.pages.cls,f=c.pages.il8n,g=c.pages.sel;c.$items.filter(g.selected).removeClass(e.selected).each(function(b,c){var e=a(c),f=e.data("label"),h=e.find(g.reader);d.string(f)&&0!==h.length&&h.html(f)}),c.$items.eq(b).addClass(e.selected).each(function(b,c){var e=a(c),h=e.find(g.reader),i=h.html();d.string(i)&&0!==h.length&&(e.data("label",i),h.html(f.current))})},createItem:function(b,c,e,f,g){e=d.string(e)?e:b,c=d.string(c)?c:"";var h=this,i=h.pages.opt,j=h.pages.cls,k=a("<a/>",{class:j.link,href:"#page-"+b}).html(e).on("click.foogallery",{self:h,page:b},h.onLinkClick);d.empty(c)||k.attr("title",c.replace(/\{PAGE}/g,b).replace(/\{LIMIT}/g,i.limit+"")),g=d.string(g)?g:c,d.empty(g)||k.prepend(a("<span/>",{class:j.reader,text:g.replace(/\{PAGE}/g,"").replace(/\{LIMIT}/g,i.limit+"")}));var l=a("<li/>",{class:j.item}).append(k);return f=d.string(f)?f:"",d.empty(f)||l.addClass(f),l},onLinkClick:function(b){b.preventDefault();var c=b.data.self,d=b.data.page,e=c.pages.sel;a(this).closest(e.item).is(e.disabled)||c.pages.set(d,!0)}}),b.paging.register("dots",b.Dots,b.DotsControl,{type:"dots",position:"both",pushOrReplace:"push"},{list:"fg-dots",item:"fg-dot-item",link:"fg-dot-link",disabled:"fg-disabled",selected:"fg-selected",visible:"fg-visible",reader:"fg-sr-only"},{current:"Current page",page:"Page {PAGE}"})}(FooGallery.$,FooGallery,FooGallery.utils,FooGallery.utils.is),function(a,b,c){b.DefaultTemplate=b.Template.extend({}),b.template.register("default",b.DefaultTemplate,null,{container:"foogallery fg-default"})}(FooGallery.$,FooGallery,FooGallery.utils),function(a,b,c,d){b.MasonryTemplate=b.Template.extend({construct:function(a,b){var c=this;c._super(a,b),c.masonry=null,c.on({"pre-init":c.onPreInit,destroyed:c.onDestroyed,"appended-items":c.onAppendedItems,"detach-item":c.onDetachItem,"layout after-filter-change":c.onLayoutRequired,"page-change":c.onPageChange},c)},onPreInit:function(){var a=this,b=a.sel,c=a.$el.hasClass("fg-fixed");a.template.isFitWidth=c,a.template.percentPosition=!c,a.template.transitionDuration=0,a.template.itemSelector=b.item.elem,c||(a.template.gutter=b.gutterWidth,a.template.columnWidth=b.columnWidth),a.masonry=new Masonry(a.el,a.template)},onDestroyed:function(){var a=this;a.masonry instanceof Masonry&&a.masonry.destroy()},onLayoutRequired:function(){this.masonry.layout()},onPageChange:function(a,b,c,d){d||this.masonry.layout()},onAppendedItems:function(a,b){var c=this,d=b.map(function(a){return a.el}),e=c.masonry.addItems(d);c.masonry.layoutItems(e,!0)},onDetachItem:function(a,b){a.isDefaultPrevented()||(a.preventDefault(),this.masonry.remove(b.el),b.$el.removeClass(this.cls.hidden),b.isAttached=!1)}}),b.template.register("masonry",b.MasonryTemplate,{template:{}},{container:"foogallery fg-masonry",columnWidth:"fg-column-width",gutterWidth:"fg-gutter-width"})}(FooGallery.$,FooGallery,FooGallery.utils,FooGallery.utils.is),function(a,b,c,d){b.Justified=c.Class.extend({construct:function(c,d){var e=this;e.tmpl=c,e.$el=c.$el,e.options=a.extend(!0,{},b.Justified.defaults,d),e._items=[],e.maxRowHeight=0,e.borderSize=0,e.align=-1!==["left","center","right"].indexOf(e.options.align)?e.options.align:"center"},init:function(){var a=this;a.maxRowHeight=a.getMaxRowHeight(a.options.maxRowHeight,a.options.rowHeight),a.borderSize=a.getBorderSize()},destroy:function(){this.$el.removeAttr("style")},getBorderSize:function(){switch(this.tmpl.getCSSClass("border","")){case"fg-border-thin":return 4;case"fg-border-medium":return 10;case"fg-border-thick":return 16;default:return 0}},getMaxRowHeight:function(a,b){if(d.string(a)){var c=parseInt(a);return isNaN(c)?b:c<=0?1/0:-1!==a.indexOf("%")?b*(c/100):c}return d.number(a)?a<=0?1/0:a:b},layout:function(a){var b=this;if(d.number(a)||(a=b.$el.width()),a>0){var c=b.createRows(a);0!==c.height&&c.rows.length>0&&(b.$el.height(c.height),
|
12 |
-
c.rows.forEach(function(a,d){b.render(a,d===c.rows.length-1)}))}},render:function(a,b){var c=this,d=!b&&"justify"!==c.options.lastRow;a.items.forEach(function(b){b.elem&&(a.visible?(b.elem.style.setProperty("position","absolute"),b.elem.style.setProperty("width",b.width+"px"),b.elem.style.setProperty("height",b.height+"px"),b.elem.style.setProperty("top",b.top+"px"),b.elem.style.setProperty("left",b.left+"px"),b.elem.style.setProperty("margin","0"),b.elem.style.removeProperty("display"),c.maxRowHeight>0&&d?b.elem.style.setProperty("max-height",c.maxRowHeight+2*c.borderSize+"px"):b.elem.style.removeProperty("max-height"),b.elem.classList.contains("fg-positioned")||b.elem.classList.add("fg-positioned")):b.elem.style.setProperty("display","none"))})},justify:function(a,b,c,d){var e=this,f=e.options.margins,g=f*(a.items.length-1),h=c-g,i=a.width-g,j=h/i;if(a.width=i*j,a.height=a.height*j,a.height>d+2*e.borderSize){var k=(d+2*e.borderSize)/a.height;a.width=a.width*k,a.height=a.height*k}a.top=b,a.left=0,"left"!==e.align&&a.width<h&&("right"===e.align?a.left=h-a.width:a.left=(h-a.width)/2),a.width+=g;var l=a.left;return a.items.forEach(function(c,d){d>0&&(l+=f),c.left=l,c.top=b;var e=a.height/c.height;c.width=c.width*e,c.height=c.height*e,l+=c.width}),a.height},createRows:function(a){function b(){return{index:++h,visible:!0,width:0,height:d.options.rowHeight+2*d.borderSize,top:0,left:0,items:[]}}function c(a,b){var c=a.width,e=a.height;if(e!==b){var f=b/e;e*=f,c*=f}var g=d.maxRowHeight/b,h=c*g,i=e*g;return{__item:a,elem:a.el,width:c,height:e,maxWidth:h,maxHeight:i,top:0,left:0}}var d=this,e=d.options.margins,f=d.tmpl.getAvailable(),g=[],h=-1,i=b(),j=0,k=0;if(f.forEach(function(f){var h=c(f,i.height);if(i.width+h.width>a&&i.items.length>0){g.length>0&&(j+=e);var l=d.justify(i,j,a,d.maxRowHeight);l>k&&(k=l),j+=l,g.push(i),i=b()}i.items.length>0&&(i.width+=e),i.width+=h.width,i.items.push(h)}),i.items.length>0){var l,m=j+e;switch(d.options.lastRow){case"smart":if(l=d.justify(i,m,a,d.maxRowHeight),0!==k&&l>k){var n=k/l,o=i.width*n/a;(n<.9||o<.9)&&(l=d.justify(i,m,a,k-2*d.borderSize))}break;case"justify":l=d.justify(i,m,a,99999);break;case"hide":l=d.justify(i,m,a,d.maxRowHeight),i.width<a&&(i.visible=!1)}i.visible&&(j+=l+e),g.push(i)}return{height:j,rows:g}}}),b.Justified.defaults={rowHeight:150,maxRowHeight:"200%",margins:0,align:"center",lastRow:"smart"}}(FooGallery.$,FooGallery,FooGallery.utils,FooGallery.utils.is),function(a,b){b.JustifiedTemplate=b.Template.extend({construct:function(a,b){var c=this;c._super(a,b),c.justified=null,c.on({"pre-init":c.onPreInit,init:c.onInit,destroyed:c.onDestroyed,"layout after-filter-change":c.onLayoutRequired,"page-change":c.onPageChange},c)},onPreInit:function(){var a=this;a.justified=new b.Justified(a,a.template)},onInit:function(){this.justified.init()},onDestroyed:function(){var a=this;a.justified instanceof b.Justified&&a.justified.destroy()},onLayoutRequired:function(){this.justified.layout(this.lastWidth)},onPageChange:function(a,b,c,d){d||this.justified.layout(this.lastWidth)}}),b.template.register("justified",b.JustifiedTemplate,null,{container:"foogallery fg-justified"})}(FooGallery.$,FooGallery),function(a,b){b.JustifiedCSSTemplate=b.Template.extend({}),b.template.register("justified-css",b.JustifiedCSSTemplate,null,{container:"foogallery fg-justified-css"})}(FooGallery.$,FooGallery),function(a,b,c,d,e){b.PortfolioTemplate=b.Template.extend({}),b.template.register("simple_portfolio",b.PortfolioTemplate,{},{container:"foogallery fg-simple_portfolio"})}(FooGallery.$,FooGallery,FooGallery.utils,FooGallery.utils.is,FooGallery.utils.fn),function(a,b,c,d){b.ImageViewerTemplate=b.Template.extend({construct:function(b,c){var e=this;e._super(d.extend({},b,{paging:{pushOrReplace:"replace",theme:"fg-light",type:"default",size:1,position:"none",scrollToTop:!1}}),c),e.$inner=a(),e.$current=a(),e.$total=a(),e.$prev=a(),e.$next=a(),e.on({"pre-init":e.onPreInit,init:e.onInit,destroy:e.onDestroy,"append-item":e.onAppendItem,"after-page-change":e.onAfterPageChange,"after-filter-change":e.onAfterFilterChange},e)},createChildren:function(){var b=this;return a("<div/>",{class:b.cls.inner}).append(a("<div/>",{class:b.cls.innerContainer}),a("<div/>",{class:b.cls.controls}).append(a("<div/>",{class:b.cls.prev}).append(a("<span/>",{text:b.il8n.prev})),a("<label/>",{class:b.cls.count,text:b.il8n.count}).prepend(a("<span/>",{class:b.cls.countCurrent,text:"0"})).append(a("<span/>",{class:b.cls.countTotal,text:"0"})),a("<div/>",{class:b.cls.next}).append(a("<span/>",{text:b.il8n.next}))))},destroyChildren:function(){var a=this;a.$el.find(a.sel.inner).remove()},onPreInit:function(a){var b=this;b.$inner=b.$el.find(b.sel.innerContainer),b.$current=b.$el.find(b.sel.countCurrent),b.$total=b.$el.find(b.sel.countTotal),b.$prev=b.$el.find(b.sel.prev),b.$next=b.$el.find(b.sel.next)},onInit:function(a){var b=this;b.template.attachFooBox&&b.$el.on("foobox.previous",{self:b},b.onFooBoxPrev).on("foobox.next",{self:b},b.onFooBoxNext),b.$prev.on("click",{self:b},b.onPrevClick),b.$next.on("click",{self:b},b.onNextClick)},onDestroy:function(a){var b=this;b.template.attachFooBox&&b.$el.off({"foobox.previous":b.onFooBoxPrev,"foobox.next":b.onFooBoxNext}),b.$prev.off("click",b.onPrevClick),b.$next.off("click",b.onNextClick)},onAppendItem:function(a,b){a.preventDefault(),this.$inner.append(b.$el),b.isAttached=!0},onAfterPageChange:function(a,b,c,d){d||this.update()},onAfterFilterChange:function(a){this.update()},update:function(){this.pages&&(this.$current.text(this.pages.current),this.$total.text(this.pages.total))},prev:function(){this.pages&&(this.template.loop&&1===this.pages.current?this.pages.last():this.pages.prev(),this.update())},next:function(){this.pages&&(this.template.loop&&this.pages.current===this.pages.total?this.pages.first():this.pages.next(),this.update())},onFooBoxPrev:function(a){a.data.self.prev()},onFooBoxNext:function(a){a.data.self.next()},onPrevClick:function(a){a.preventDefault(),a.stopPropagation(),a.data.self.prev()},onNextClick:function(a){a.preventDefault(),a.stopPropagation(),a.data.self.next()}}),b.template.register("image-viewer",b.ImageViewerTemplate,{template:{attachFooBox:!1,loop:!1}},{container:"foogallery fg-image-viewer",inner:"fiv-inner",innerContainer:"fiv-inner-container",controls:"fiv-ctrls",prev:"fiv-prev",next:"fiv-next",count:"fiv-count",countCurrent:"fiv-count-current",countTotal:"fiv-count-total"},{prev:"Prev",next:"Next",count:"of"})}(FooGallery.$,FooGallery,FooGallery.utils,FooGallery.utils.obj),function(a,b,c){b.ThumbnailTemplate=b.Template.extend({construct:function(a,b){this._super(c.extend({},a,{filtering:{type:"none"},paging:{pushOrReplace:"replace",theme:"fg-light",type:"default",size:1,position:"none",scrollToTop:!1}}),b)}}),b.template.register("thumbnail",b.ThumbnailTemplate,null,{container:"foogallery fg-thumbnail"})}(FooGallery.$,FooGallery,FooGallery.utils.obj),function(a,b,c,d,e,f){b.StackAlbum=c.Class.extend({construct:function(c,f){var g=this;g.$el=d.jq(c)?c:a(c),g.el=g.$el.get(0),g.opt=e.extend({},b.StackAlbum.defaults,f,g.$el.data("foogallery")),g.$back=g.$el.find(".fg-header-back"),g.$active=g.$el.find(".fg-header-active"),g.$piles=g.$el.find(".fg-piles"),g.piles=g.$piles.find(".fg-pile").map(function(a,c){return new b.StackAlbum.Pile(g,c,{index:a})}).get(),g.ignoreResize=!1,g.robserver=new ResizeObserver(function(){!g.ignoreResize&&g.$el.is(":visible")&&g.layout(!0)})},init:function(){var a=this;a.piles.forEach(function(a){a.init()}),a.$back.on("click.foogallery",{self:a},a.onBackClick),a.robserver.observe(a.el)},destroy:function(){var a=this;a.robserver.disconnect(),a.$back.off(".foogallery"),a.piles.forEach(function(a){a.destroy()})},getLayoutInfo:function(){var a=this,b=a.opt.gutter+2*a.opt.border;return{maxWidth:a.$el.width(),space:b,halfSpace:b/2,itemWidth:a.opt.itemWidth,itemHeight:a.opt.itemHeight,itemOuterWidth:a.opt.itemWidth+2*a.opt.border,itemOuterHeight:a.opt.itemHeight+2*a.opt.border,blockWidth:a.opt.itemWidth+b,blockHeight:a.opt.itemHeight+b,border:a.opt.border,doubleBorder:2*a.opt.border,gutter:a.opt.gutter,halfGutter:a.opt.gutter/2}},layout:function(a){var b,c=this;a&&(c.$el.addClass("fg-disable-transitions"),c.$el.prop("offsetWidth")),c.hasActive?(b=c.activePile.layout(),c.activePile.setPosition(0,0,b.width,b.height),c.$piles.css({width:b.width+"px",height:b.height+"px"})):(b=c.layoutPiles(),c.$piles.css({width:b.width+"px",height:b.height+"px"})),a&&c.$el.removeClass("fg-disable-transitions")},layoutPiles:function(a){var b=this,c=b.getLayoutInfo(),e=0,f=1,g=0;return a=d.fn(a)?a:function(){},b.piles.forEach(function(b){var d=e;(e+=c.blockWidth)>c.maxWidth&&(d=0,e=c.blockWidth,f++);var h=c.blockHeight*(f-1);a(b,h,d,c.blockWidth,c.blockHeight),b.setPosition(h,d,c.blockWidth,c.blockHeight),e>g&&(g=e)}),{width:g,height:c.blockHeight*f}},setActive:function(a){var c,d=this,e=d.activePile,g=e instanceof b.StackAlbum.Pile;a=a instanceof b.StackAlbum.Pile?a:null,d.activePile=a,d.hasActive=null!==a,g&&e.collapse(),d.ignoreResize=!0,d.hasActive?(d.piles.forEach(function(b){b!==a&&b.hide(d.activePile)}),c=d.activePile.expand(),d.$active.text(a.title),d.$el.addClass("fg-has-active")):(c=d.layoutPiles(function(a){a.show()}),d.$el.removeClass("fg-has-active")),f.start(d.$piles,function(a){a.css({width:c.width+"px",height:c.height+"px"})},null,350).then(function(){d.ignoreResize=!1})},onBackClick:function(a){a.preventDefault(),a.stopPropagation(),a.data.self.setActive(null)}}),b.StackAlbum.defaults={gutter:50,itemWidth:150,itemHeight:150,border:10,angleStep:1,randomAngle:!1}}(FooGallery.$,FooGallery,FooGallery.utils,FooGallery.utils.is,FooGallery.utils.obj,FooGallery.utils.transition),function(a,b,c,d,e){b.StackAlbum.Pile=c.Class.extend({construct:function(c,f,g){var h=this;h.album=c,h.$el=d.jq(f)?f:a(f),h.opt=e.extend({},b.StackAlbum.Pile.defaults,g,h.$el.data()),h.title=h.opt.title,h.items=h.$el.find(".fg-pile-item").map(function(a,c){return new b.StackAlbum.Item(h,c,{index:a})}).get(),h.$cover=a("<div/>",{class:"fg-pile-cover"}).append(a("<div/>",{class:"fg-pile-cover-content"}).append(a("<span/>",{class:"fg-pile-cover-title",text:h.opt.title}),a("<span/>",{class:"fg-pile-cover-count",text:h.items.length}))),h.top=0,h.left=0,h.isExpanded=!1},init:function(){var a=this,b=a.album.opt,c=a.getAngles(b.angleStep),d=b.randomAngle?a.randomAngle(c):b.angleStep;a.$cover.on("click.foogallery",{self:a},a.onCoverClick),a.items.forEach(function(e,f){e.init(),f>3||(0===f?(e.$el.addClass("fg-has-cover").append(a.$cover),e.load()):(f%2==0?e.setAngle(-d):e.setAngle(d),b.randomAngle?d=a.randomAngle(c):d+=b.angleStep))})},destroy:function(){var a=this;a.$cover.remove(),a.items.forEach(function(a,b){0===b&&a.$el.removeClass("fg-has-cover"),a.destroy()})},getAngles:function(a){for(var b=[],c=1;c<=3;c++)b.push(c*a);return b},randomAngle:function(a){var b=a.length,c=Math.floor(Math.random()*(b-0)+0),d=a.splice(c,1);return 1===d.length?d[0]:0},setPosition:function(a,b,c,e){var f=this;f.top=a,f.left=b,d.number(c)&&d.number(e)?f.$el.css({top:a+"px",left:b+"px",width:c+"px",height:e+"px"}):f.$el.css({top:a+"px",left:b+"px"})},layout:function(){var a=this,b=a.album.getLayoutInfo(),c=0,d=1,e=!1,f=0;return a.items.forEach(function(a){(c+=b.halfGutter)>b.maxWidth&&(c=b.halfGutter,d++,e=!0);var g=c;c+=b.itemOuterWidth+b.halfGutter,!e&&c>b.maxWidth&&(g=b.halfGutter,c=b.blockWidth,d++);var h=b.blockHeight*(d-1)+b.halfGutter;e=!1,a.setPosition(h,g,b.itemOuterWidth,b.itemOuterHeight),a.isLoaded||a.load(),c>f&&(f=c)}),{width:f,height:b.blockHeight*d}},expand:function(){var a,b=this;return b.$el.removeClass("fg-collapsed").addClass("fg-expanded"),a=b.layout(),b.setPosition(0,0,a.width,a.height),b.isExpanded=!0,a},collapse:function(){var a=this,b=a.album.getLayoutInfo();a.$el.removeClass("fg-expanded").addClass("fg-collapsed"),a.items.forEach(function(a){a.setPosition(b.halfGutter,b.halfGutter,b.itemOuterWidth,b.itemOuterHeight)});var c={width:b.blockWidth,height:b.blockHeight};return a.setPosition(0,0,c.width,c.height),a.isExpanded=!1,c},show:function(){this.$el.removeClass("fg-hidden fg-expanded fg-collapsed")},hide:function(a){var c=this;a instanceof b.StackAlbum.Pile&&c.setPosition(a.top,a.left),c.$el.addClass("fg-hidden")},onCoverClick:function(a){a.preventDefault(),a.stopPropagation();var b=a.data.self;b.album.setActive(b)}}),b.StackAlbum.Pile.defaults={index:-1,title:null}}(FooGallery.$,FooGallery,FooGallery.utils,FooGallery.utils.is,FooGallery.utils.obj),function(a,b,c,d,e){b.StackAlbum.Item=c.Class.extend({construct:function(c,f,g){var h=this;h.$el=d.jq(f)?f:a(f),h.opt=e.extend({},b.StackAlbum.Item.defaults,g,h.$el.data()),h.$thumb=h.$el.find(".fg-pile-item-thumb"),h.$image=h.$el.find(".fg-pile-item-image"),h.isLoaded=!1,h.isLoading=!1,h._loading=null},init:function(){},destroy:function(){},setAngle:function(a){this.$el.css({transform:"rotate("+a+"deg)"})},setPosition:function(a,b,c,d){this.$el.css({top:a+"px",left:b+"px",width:c+"px",height:d+"px"})},load:function(){var b=this;return d.promise(b._loading)?b._loading:b._loading=a.Deferred(function(a){b.$el.addClass("fg-loading"),b.isLoading=!0,b.$image.on({"load.foogallery":function(){b.$image.off(".foogallery"),b.$el.removeClass("fg-loading"),b.isLoading=!1,b.isLoaded=!0,a.resolve()},"error.foogallery":function(){b.$image.off(".foogallery"),b.$el.removeClass("fg-loading"),b.isLoading=!1,b.isLoaded=!0,a.reject()}}),b.$image.prop("src",b.$image.attr(b.opt.src)).prop("srcset",b.$image.attr(b.opt.srcset))}).promise()}}),b.StackAlbum.Item.defaults={index:-1,src:"data-src-fg",srcset:"data-srcset-fg"}}(FooGallery.$,FooGallery,FooGallery.utils,FooGallery.utils.is,FooGallery.utils.obj),function(a,b,c){a.fn.foogalleryStackAlbum=function(c){return this.each(function(c,d){var e=a(d),f=e.data("__FooGalleryAlbum__");f instanceof b.StackAlbum&&f.destroy(),f=new b.StackAlbum(e),f.init(),e.data("__FooGalleryAlbum__",f)})},b.loadStackAlbums=b.reloadStackAlbums=function(){a(function(){a(".foogallery-stack-album:not(.fg-ready)").foogalleryStackAlbum()}),c.ready(function(){a(".foogallery-stack-album.fg-ready").foogalleryStackAlbum()})},b.loadStackAlbums()}(FooGallery.$,FooGallery,FooGallery.utils),function(a,b,c,d,e){b.triggerPostLoad=function(c,d,e,f){var g=c.target;if(g instanceof b.Template&&g.initialized&&("after-page-change"===c.type&&!f||"after-filter-change"===c.type))try{if(g.$el.parents(".fbx-item").length>0)return;if(g.$el.hasClass("fbx-instance")&&window.FOOBOX&&a.fn.foobox){var h=a.extend({},window.FOOBOX.o,g.opt.protected?{images:{noRightClick:!0}}:{});g.$el.foobox(h)}else a("body").trigger("post-load")}catch(a){console.error(a)}},b.autoDefaults={on:{"after-page-change after-filter-change":b.triggerPostLoad}},b.autoEnabled=!0,b.auto=function(a){b.autoDefaults=d.merge(b.autoDefaults,a)},b.globalsMerged=!1,b.mergeGlobals=function(){if(!0!==b.globalsMerged&&window.FooGallery_il8n&&e.object(window.FooGallery_il8n)){var a=window.FooGallery_il8n;for(var c in a)if(a.hasOwnProperty(c)&&b[c]instanceof b.Factory&&e.object(a[c]))for(var d in a[c])a[c].hasOwnProperty(d)&&b[c].configure(d,null,null,a[c][d]);b.globalsMerged=!0}},b.load=b.reload=function(){a(function(){b.mergeGlobals(),b.autoEnabled&&a('[id^="foogallery-gallery-"]:not(.fg-ready)').foogallery(b.autoDefaults)}),c.ready(function(){b.mergeGlobals(),b.autoEnabled&&a('[id^="foogallery-gallery-"].fg-ready').foogallery(b.autoDefaults)})},b.load()}(FooGallery.$,FooGallery,FooGallery.utils,FooGallery.utils.obj,FooGallery.utils.is);
|
1 |
/*
|
2 |
* FooGallery - The Most Intuitive and Extensible Gallery Creation and Management Tool Ever Created for WordPress
|
3 |
+
* @version 2.0.21
|
4 |
* @link
|
5 |
* @copyright Steven Usher & Brad Vincent 2015
|
6 |
* @license Released under the GPLv3 license.
|
8 |
|
9 |
function _typeof(a){"@babel/helpers - typeof";return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(a){return typeof a}:function(a){return a&&"function"==typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a})(a)}!function(){"use strict";function a(a){this.time=a.time,this.target=a.target,this.rootBounds=a.rootBounds,this.boundingClientRect=a.boundingClientRect,this.intersectionRect=a.intersectionRect||i(),this.isIntersecting=!!a.intersectionRect;var b=this.boundingClientRect,c=b.width*b.height,d=this.intersectionRect,e=d.width*d.height;this.intersectionRatio=c?Number((e/c).toFixed(4)):this.isIntersecting?1:0}function b(a,b){var c=b||{};if("function"!=typeof a)throw new Error("callback must be a function");if(c.root&&1!=c.root.nodeType)throw new Error("root must be an Element");this._checkForIntersections=d(this._checkForIntersections.bind(this),this.THROTTLE_TIMEOUT),this._callback=a,this._observationTargets=[],this._queuedEntries=[],this._rootMarginValues=this._parseRootMargin(c.rootMargin),this.thresholds=this._initThresholds(c.threshold),this.root=c.root||null,this.rootMargin=this._rootMarginValues.map(function(a){return a.value+a.unit}).join(" ")}function c(){return window.performance&&performance.now&&performance.now()}function d(a,b){var c=null;return function(){c||(c=setTimeout(function(){a(),c=null},b))}}function e(a,b,c,d){"function"==typeof a.addEventListener?a.addEventListener(b,c,d||!1):"function"==typeof a.attachEvent&&a.attachEvent("on"+b,c)}function f(a,b,c,d){"function"==typeof a.removeEventListener?a.removeEventListener(b,c,d||!1):"function"==typeof a.detatchEvent&&a.detatchEvent("on"+b,c)}function g(a,b){var c=Math.max(a.top,b.top),d=Math.min(a.bottom,b.bottom),e=Math.max(a.left,b.left),f=Math.min(a.right,b.right),g=f-e,h=d-c;return g>=0&&h>=0&&{top:c,bottom:d,left:e,right:f,width:g,height:h}}function h(a){var b;try{b=a.getBoundingClientRect()}catch(a){}return b?(b.width&&b.height||(b={top:b.top,right:b.right,bottom:b.bottom,left:b.left,width:b.right-b.left,height:b.bottom-b.top}),b):i()}function i(){return{top:0,bottom:0,left:0,right:0,width:0,height:0}}function j(a,b){for(var c=b;c;){if(c==a)return!0;c=k(c)}return!1}function k(a){var b=a.parentNode;return b&&11==b.nodeType&&b.host?b.host:b&&b.assignedSlot?b.assignedSlot.parentNode:b}if("object"==typeof window){if("IntersectionObserver"in window&&"IntersectionObserverEntry"in window&&"intersectionRatio"in window.IntersectionObserverEntry.prototype)return void("isIntersecting"in window.IntersectionObserverEntry.prototype||Object.defineProperty(window.IntersectionObserverEntry.prototype,"isIntersecting",{get:function(){return this.intersectionRatio>0}}));var l=window.document,m=[];b.prototype.THROTTLE_TIMEOUT=100,b.prototype.POLL_INTERVAL=null,b.prototype.USE_MUTATION_OBSERVER=!0,b.prototype.observe=function(a){if(!this._observationTargets.some(function(b){return b.element==a})){if(!a||1!=a.nodeType)throw new Error("target must be an Element");this._registerInstance(),this._observationTargets.push({element:a,entry:null}),this._monitorIntersections(),this._checkForIntersections()}},b.prototype.unobserve=function(a){this._observationTargets=this._observationTargets.filter(function(b){return b.element!=a}),this._observationTargets.length||(this._unmonitorIntersections(),this._unregisterInstance())},b.prototype.disconnect=function(){this._observationTargets=[],this._unmonitorIntersections(),this._unregisterInstance()},b.prototype.takeRecords=function(){var a=this._queuedEntries.slice();return this._queuedEntries=[],a},b.prototype._initThresholds=function(a){var b=a||[0];return Array.isArray(b)||(b=[b]),b.sort().filter(function(a,b,c){if("number"!=typeof a||isNaN(a)||a<0||a>1)throw new Error("threshold must be a number between 0 and 1 inclusively");return a!==c[b-1]})},b.prototype._parseRootMargin=function(a){var b=a||"0px",c=b.split(/\s+/).map(function(a){var b=/^(-?\d*\.?\d+)(px|%)$/.exec(a);if(!b)throw new Error("rootMargin must be specified in pixels or percent");return{value:parseFloat(b[1]),unit:b[2]}});return c[1]=c[1]||c[0],c[2]=c[2]||c[0],c[3]=c[3]||c[1],c},b.prototype._monitorIntersections=function(){this._monitoringIntersections||(this._monitoringIntersections=!0,this.POLL_INTERVAL?this._monitoringInterval=setInterval(this._checkForIntersections,this.POLL_INTERVAL):(e(window,"resize",this._checkForIntersections,!0),e(l,"scroll",this._checkForIntersections,!0),this.USE_MUTATION_OBSERVER&&"MutationObserver"in window&&(this._domObserver=new MutationObserver(this._checkForIntersections),this._domObserver.observe(l,{attributes:!0,childList:!0,characterData:!0,subtree:!0}))))},b.prototype._unmonitorIntersections=function(){this._monitoringIntersections&&(this._monitoringIntersections=!1,clearInterval(this._monitoringInterval),this._monitoringInterval=null,f(window,"resize",this._checkForIntersections,!0),f(l,"scroll",this._checkForIntersections,!0),this._domObserver&&(this._domObserver.disconnect(),this._domObserver=null))},b.prototype._checkForIntersections=function(){var b=this._rootIsInDom(),d=b?this._getRootRect():i();this._observationTargets.forEach(function(e){var f=e.element,g=h(f),i=this._rootContainsTarget(f),j=e.entry,k=b&&i&&this._computeTargetAndRootIntersection(f,d),l=e.entry=new a({time:c(),target:f,boundingClientRect:g,rootBounds:d,intersectionRect:k});j?b&&i?this._hasCrossedThreshold(j,l)&&this._queuedEntries.push(l):j&&j.isIntersecting&&this._queuedEntries.push(l):this._queuedEntries.push(l)},this),this._queuedEntries.length&&this._callback(this.takeRecords(),this)},b.prototype._computeTargetAndRootIntersection=function(a,b){if("none"!=window.getComputedStyle(a).display){for(var c=h(a),d=c,e=k(a),f=!1;!f;){var i=null,j=1==e.nodeType?window.getComputedStyle(e):{};if("none"==j.display)return;if(e==this.root||e==l?(f=!0,i=b):e!=l.body&&e!=l.documentElement&&"visible"!=j.overflow&&(i=h(e)),i&&!(d=g(i,d)))break;e=k(e)}return d}},b.prototype._getRootRect=function(){var a;if(this.root)a=h(this.root);else{var b=l.documentElement,c=l.body;a={top:0,left:0,right:b.clientWidth||c.clientWidth,width:b.clientWidth||c.clientWidth,bottom:b.clientHeight||c.clientHeight,height:b.clientHeight||c.clientHeight}}return this._expandRectByRootMargin(a)},b.prototype._expandRectByRootMargin=function(a){var b=this._rootMarginValues.map(function(b,c){return"px"==b.unit?b.value:b.value*(c%2?a.width:a.height)/100}),c={top:a.top-b[0],right:a.right+b[1],bottom:a.bottom+b[2],left:a.left-b[3]};return c.width=c.right-c.left,c.height=c.bottom-c.top,c},b.prototype._hasCrossedThreshold=function(a,b){var c=a&&a.isIntersecting?a.intersectionRatio||0:-1,d=b.isIntersecting?b.intersectionRatio||0:-1;if(c!==d)for(var e=0;e<this.thresholds.length;e++){var f=this.thresholds[e];if(f==c||f==d||f<c!=f<d)return!0}},b.prototype._rootIsInDom=function(){return!this.root||j(l,this.root)},b.prototype._rootContainsTarget=function(a){return j(this.root||l,a)},b.prototype._registerInstance=function(){m.indexOf(this)<0&&m.push(this)},b.prototype._unregisterInstance=function(){var a=m.indexOf(this);-1!=a&&m.splice(a,1)},window.IntersectionObserver=b,window.IntersectionObserverEntry=a}}(),function(a,b){"object"==typeof exports&&"undefined"!=typeof module?module.exports=b():"function"==typeof define&&define.amd?define(b):a.ResizeObserver=b()}(this,function(){"use strict";function a(a,b){function c(){f&&(f=!1,a()),g&&e()}function d(){n(c)}function e(){var a=Date.now();if(f){if(a-h<o)return;g=!0}else f=!0,g=!1,setTimeout(d,b);h=a}var f=!1,g=!1,h=0;return e}function b(a){return parseFloat(a)||0}function c(a){for(var c=[],d=1;d<arguments.length;d++)c[d-1]=arguments[d];return c.reduce(function(c,d){return c+b(a["border-"+d+"-width"])},0)}function d(a){for(var c=["top","right","bottom","left"],d={},e=0,f=c;e<f.length;e++){var g=f[e],h=a["padding-"+g];d[g]=b(h)}return d}function e(a){var b=a.getBBox();return j(0,0,b.width,b.height)}function f(a){var e=a.clientWidth,f=a.clientHeight;if(!e&&!f)return v;var h=u(a).getComputedStyle(a),i=d(h),k=i.left+i.right,l=i.top+i.bottom,m=b(h.width),n=b(h.height);if("border-box"===h.boxSizing&&(Math.round(m+k)!==e&&(m-=c(h,"left","right")+k),Math.round(n+l)!==f&&(n-=c(h,"top","bottom")+l)),!g(a)){var o=Math.round(m+k)-e,p=Math.round(n+l)-f;1!==Math.abs(o)&&(m-=o),1!==Math.abs(p)&&(n-=p)}return j(i.left,i.top,m,n)}function g(a){return a===u(a).document.documentElement}function h(a){return l?w(a)?e(a):f(a):v}function i(a){var b=a.x,c=a.y,d=a.width,e=a.height,f="undefined"!=typeof DOMRectReadOnly?DOMRectReadOnly:Object,g=Object.create(f.prototype);return t(g,{x:b,y:c,width:d,height:e,top:c,right:b+d,bottom:e+c,left:b}),g}function j(a,b,c,d){return{x:a,y:b,width:c,height:d}}var k=function(){function a(a,b){var c=-1;return a.some(function(a,d){return a[0]===b&&(c=d,!0)}),c}return"undefined"!=typeof Map?Map:function(){function b(){this.__entries__=[]}return Object.defineProperty(b.prototype,"size",{get:function(){return this.__entries__.length},enumerable:!0,configurable:!0}),b.prototype.get=function(b){var c=a(this.__entries__,b),d=this.__entries__[c];return d&&d[1]},b.prototype.set=function(b,c){var d=a(this.__entries__,b);~d?this.__entries__[d][1]=c:this.__entries__.push([b,c])},b.prototype.delete=function(b){var c=this.__entries__,d=a(c,b);~d&&c.splice(d,1)},b.prototype.has=function(b){return!!~a(this.__entries__,b)},b.prototype.clear=function(){this.__entries__.splice(0)},b.prototype.forEach=function(a,b){void 0===b&&(b=null);for(var c=0,d=this.__entries__;c<d.length;c++){var e=d[c];a.call(b,e[1],e[0])}},b}()}(),l="undefined"!=typeof window&&"undefined"!=typeof document&&window.document===document,m=function(){return"undefined"!=typeof global&&global.Math===Math?global:"undefined"!=typeof self&&self.Math===Math?self:"undefined"!=typeof window&&window.Math===Math?window:Function("return this")()}(),n=function(){return"function"==typeof requestAnimationFrame?requestAnimationFrame.bind(m):function(a){return setTimeout(function(){return a(Date.now())},1e3/60)}}(),o=2,p=20,q=["top","right","bottom","left","width","height","size","weight"],r="undefined"!=typeof MutationObserver,s=function(){function b(){this.connected_=!1,this.mutationEventsAdded_=!1,this.mutationsObserver_=null,this.observers_=[],this.onTransitionEnd_=this.onTransitionEnd_.bind(this),this.refresh=a(this.refresh.bind(this),p)}return b.prototype.addObserver=function(a){~this.observers_.indexOf(a)||this.observers_.push(a),this.connected_||this.connect_()},b.prototype.removeObserver=function(a){var b=this.observers_,c=b.indexOf(a);~c&&b.splice(c,1),!b.length&&this.connected_&&this.disconnect_()},b.prototype.refresh=function(){this.updateObservers_()&&this.refresh()},b.prototype.updateObservers_=function(){var a=this.observers_.filter(function(a){return a.gatherActive(),a.hasActive()});return a.forEach(function(a){return a.broadcastActive()}),a.length>0},b.prototype.connect_=function(){l&&!this.connected_&&(document.addEventListener("transitionend",this.onTransitionEnd_),window.addEventListener("resize",this.refresh),r?(this.mutationsObserver_=new MutationObserver(this.refresh),this.mutationsObserver_.observe(document,{attributes:!0,childList:!0,characterData:!0,subtree:!0})):(document.addEventListener("DOMSubtreeModified",this.refresh),this.mutationEventsAdded_=!0),this.connected_=!0)},b.prototype.disconnect_=function(){l&&this.connected_&&(document.removeEventListener("transitionend",this.onTransitionEnd_),window.removeEventListener("resize",this.refresh),this.mutationsObserver_&&this.mutationsObserver_.disconnect(),this.mutationEventsAdded_&&document.removeEventListener("DOMSubtreeModified",this.refresh),this.mutationsObserver_=null,this.mutationEventsAdded_=!1,this.connected_=!1)},b.prototype.onTransitionEnd_=function(a){var b=a.propertyName,c=void 0===b?"":b;q.some(function(a){return!!~c.indexOf(a)})&&this.refresh()},b.getInstance=function(){return this.instance_||(this.instance_=new b),this.instance_},b.instance_=null,b}(),t=function(a,b){for(var c=0,d=Object.keys(b);c<d.length;c++){var e=d[c];Object.defineProperty(a,e,{value:b[e],enumerable:!1,writable:!1,configurable:!0})}return a},u=function(a){return a&&a.ownerDocument&&a.ownerDocument.defaultView||m},v=j(0,0,0,0),w=function(){return"undefined"!=typeof SVGGraphicsElement?function(a){return a instanceof u(a).SVGGraphicsElement}:function(a){return a instanceof u(a).SVGElement&&"function"==typeof a.getBBox}}(),x=function(){function a(a){this.broadcastWidth=0,this.broadcastHeight=0,this.contentRect_=j(0,0,0,0),this.target=a}return a.prototype.isActive=function(){var a=h(this.target);return this.contentRect_=a,a.width!==this.broadcastWidth||a.height!==this.broadcastHeight},a.prototype.broadcastRect=function(){var a=this.contentRect_;return this.broadcastWidth=a.width,this.broadcastHeight=a.height,a},a}(),y=function(){function a(a,b){var c=i(b);t(this,{target:a,contentRect:c})}return a}(),z=function(){function a(a,b,c){if(this.activeObservations_=[],this.observations_=new k,"function"!=typeof a)throw new TypeError("The callback provided as parameter 1 is not a function.");this.callback_=a,this.controller_=b,this.callbackCtx_=c}return a.prototype.observe=function(a){if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");if("undefined"!=typeof Element&&Element instanceof Object){if(!(a instanceof u(a).Element))throw new TypeError('parameter 1 is not of type "Element".');var b=this.observations_;b.has(a)||(b.set(a,new x(a)),this.controller_.addObserver(this),this.controller_.refresh())}},a.prototype.unobserve=function(a){if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");if("undefined"!=typeof Element&&Element instanceof Object){if(!(a instanceof u(a).Element))throw new TypeError('parameter 1 is not of type "Element".');var b=this.observations_;b.has(a)&&(b.delete(a),b.size||this.controller_.removeObserver(this))}},a.prototype.disconnect=function(){this.clearActive(),this.observations_.clear(),this.controller_.removeObserver(this)},a.prototype.gatherActive=function(){var a=this;this.clearActive(),this.observations_.forEach(function(b){b.isActive()&&a.activeObservations_.push(b)})},a.prototype.broadcastActive=function(){if(this.hasActive()){var a=this.callbackCtx_,b=this.activeObservations_.map(function(a){return new y(a.target,a.broadcastRect())});this.callback_.call(a,b,a),this.clearActive()}},a.prototype.clearActive=function(){this.activeObservations_.splice(0)},a.prototype.hasActive=function(){return this.activeObservations_.length>0},a}(),A="undefined"!=typeof WeakMap?new WeakMap:new k,B=function(){function a(b){if(!(this instanceof a))throw new TypeError("Cannot call a class as a function.");if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");var c=s.getInstance(),d=new z(b,c,this);A.set(this,d)}return a}();return["observe","unobserve","disconnect"].forEach(function(a){B.prototype[a]=function(){var b;return(b=A.get(this))[a].apply(b,arguments)}}),function(){return void 0!==m.ResizeObserver?m.ResizeObserver:B}()}),function(a,b){b.$=a}(jQuery,window.FooGallery=window.FooGallery||{}),function(a){if(!a)return void console.warn("jQuery must be included in the page prior to the FooGallery.utils library.");(function(){try{return!!window.FooGallery.utils}catch(a){return!1}})()||(window.FooGallery.utils={$:a,version:"1.0.0"})}(jQuery),function(a,b){"1.0.0"===b.version&&(b.is={},b.is.array=function(a){return"[object Array]"===Object.prototype.toString.call(a)},b.is.boolean=function(a){return"[object Boolean]"===Object.prototype.toString.call(a)},b.is.element=function(a){return"object"===("undefined"==typeof HTMLElement?"undefined":_typeof(HTMLElement))?a instanceof HTMLElement:!!a&&"object"===_typeof(a)&&1===a.nodeType&&"string"==typeof a.nodeName},b.is.empty=function(a){if(b.is.undef(a)||null===a)return!0;if(b.is.number(a)&&0===a)return!0;if(b.is.boolean(a)&&!1===a)return!0;if(b.is.string(a)&&0===a.length)return!0;if(b.is.array(a)&&0===a.length)return!0;if(b.is.jq(a)&&0===a.length)return!0;if(b.is.hash(a)){for(var c in a)if(a.hasOwnProperty(c))return!1;return!0}return!1},b.is.error=function(a){return"[object Error]"===Object.prototype.toString.call(a)},b.is.fn=function(a){return a===window.alert||"[object Function]"===Object.prototype.toString.call(a)},b.is.hash=function(a){return b.is.object(a)&&a.constructor===Object&&!a.nodeType&&!a.setInterval},b.is.jq=function(c){return!b.is.undef(a)&&c instanceof a},b.is.number=function(a){return"[object Number]"===Object.prototype.toString.call(a)&&!isNaN(a)},b.is.object=function(a){return"[object Object]"===Object.prototype.toString.call(a)&&!b.is.undef(a)&&null!==a},b.is.promise=function(a){return b.is.object(a)&&b.is.fn(a.then)&&b.is.fn(a.promise)},b.is.size=function(a){return!!(b.is.string(a)&&!b.is.empty(a)||b.is.number(a))&&/^(auto|none|(?:[\d.]*)+?(?:%|px|mm|q|cm|in|pt|pc|em|ex|ch|rem|vh|vw|vmin|vmax)?)$/.test(a)},b.is.string=function(a){return"[object String]"===Object.prototype.toString.call(a)},b.is.undef=function(a){return void 0===a})}(FooGallery.utils.$,FooGallery.utils),function(a,b,c){if("1.0.0"===b.version){b.fn={};var d=Function.prototype.toString;b.fn.CONTAINS_SUPER=/xyz/.test(d.call(function(){xyz}))?/\b_super\b/:/.*/,b.fn.noop=function(){},b.fn.addOrOverride=function(a,e,f){if(c.object(a)&&c.string(e)&&!c.empty(e)&&c.fn(f)){var g=a[e],h=c.fn(g)&&b.fn.CONTAINS_SUPER.test(d.call(f));a[e]=h?function(a,b){return function(){var c=this._super;this._super=a;var d=b.apply(this,arguments);return this._super=c,d}}(g,f):f}},b.fn.expose=function(a,b,d,e){c.object(a)&&c.object(b)&&c.array(d)&&(e=c.undef(e)?a:e,d.forEach(function(d){c.string(d)&&c.fn(a[d])&&(b[d]=a[d].bind(e))}))},b.fn.apply=function(a,b){return b.unshift(a),new(Function.prototype.bind.apply(a,b))},b.fn.arg2arr=function(a){return Array.prototype.slice.call(a)},b.fn.debounce=function(a,c){var d;return function(){var e=this,f=b.fn.arg2arr(arguments);clearTimeout(d),d=setTimeout(function(){a.apply(e,f)},c)}},b.fn.throttle=function(a,c){var d,e;return function(){var f=this,g=b.fn.arg2arr(arguments);d?(clearTimeout(e),e=setTimeout(function(){Date.now()-d>=c&&(a.apply(f,g),d=Date.now())},c-(Date.now()-d))):(a.apply(f,g),d=Date.now())}},b.fn.resolved=a.Deferred().resolve().promise(),b.fn.rejected=a.Deferred().reject().promise(),b.fn.reject=function(c,d){var e=a.Deferred(),f=b.fn.arg2arr(arguments);return e.reject.apply(e,f).promise()},b.fn.resolve=function(c,d){var e=a.Deferred(),f=b.fn.arg2arr(arguments);return e.resolve.apply(e,f).promise()},b.fn.rejectWith=function(c,d,e){var f=a.Deferred(),g=b.fn.arg2arr(arguments);return g.shift(),f.rejectWith(c,g).promise()},b.fn.resolveWith=function(c,d,e){var f=a.Deferred(),g=b.fn.arg2arr(arguments);return g.shift(),f.resolveWith(c,g).promise()},b.fn.all=function(d){var e=a.Deferred(),f=[];return c.array(d)&&d.length>0?function(){for(var a=function(a,b){h||(f[a]=0===b.length?void 0:1===b.length?b[0]:b,--g||e.resolve(f))},g=d.length,h=!1,i=0,j=d.length;i<j;i++){if("break"===function(){if(h)return"break";var f=i;c.promise(d[f])?d[f].then(function(){a(f,b.fn.arg2arr(arguments))},function(){h||(h=!0,e.reject.apply(e,b.fn.arg2arr(arguments)))}):a(f,[d[f]])}())break}}():e.resolve(f),e.promise()},b.fn.allSettled=function(d){var e=a.Deferred(),f=[];return c.array(d)&&d.length>0?function(){for(var a=function(a,b,c){if(f[a]={status:b},c.length>0){var d="rejected"===b?"reason":"value";f[a][d]=1===c.length?c[0]:c}--g||e.resolve(f)},g=d.length,h=0,i=d.length;h<i;h++)!function(){var e=h;c.promise(d[e])?d[e].then(function(){a(e,"fulfilled",b.fn.arg2arr(arguments))},function(){a(e,"rejected",b.fn.arg2arr(arguments))}):a(e,"fulfilled",[d[e]])}()}():e.resolve(f),e.promise()}}}(FooGallery.utils.$,FooGallery.utils,FooGallery.utils.is),function(a,b){if("1.0.0"===a.version){a.url={};var c=document.createElement("a");a.url.parts=function(a){c.href=a;var b=c.port?c.port:-1!==["http:","https:"].indexOf(c.protocol)?"https:"===c.protocol?"443":"80":"",d=c.hostname+(b?":"+b:""),e=c.origin?c.origin:c.protocol+"//"+d,f="/"===c.pathname.slice(0,1)?c.pathname:"/"+c.pathname;return{hash:c.hash,host:d,hostname:c.hostname,href:c.href,origin:e,pathname:f,port:b,protocol:c.protocol,search:c.search}},a.url.full=function(a){return!b.string(a)||b.empty(a)?null:(c.href=a,c.href)},a.url.param=function(a,c,d){if(!b.string(a)||!b.string(c)||b.empty(c))return a;var e,f,g,h;return b.undef(d)?(e=new RegExp("[?|&]"+c+"=([^&;]+?)(&|#|;|$)"),f=e.exec(a)||["",""],g=f[1].replace(/\+/g,"%20"),b.string(g)&&!b.empty(g)?decodeURIComponent(g):null):(b.empty(d)?(e=new RegExp("^([^#]*?)(([^#]*)&)?"+c+"(=[^&#]*)?(&|#|$)"),g=a.replace(e,"$1$3$5").replace(/^([^#]*)((\?)&|\?(#|$))/,"$1$3$4")):(e=new RegExp("([?&])"+c+"[^&]*"),h=c+"="+encodeURIComponent(d),(g=a.replace(e,"$1"+h))!==a||e.test(g)||(g+=(-1!==g.indexOf("?")?"&":"?")+h)),g)}}}(FooGallery.utils,FooGallery.utils.is),function(a,b,c){"1.0.0"===a.version&&(a.str={},a.str.trim=function(a){return b.string(a)?a.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,""):null},a.str.camel=function(a){return b.string(a)?a.toUpperCase()===a?a.toLowerCase():a.replace(/^([A-Z])|[-\s_]+(\w)/g,function(a,c,d){return b.string(d)?d.toUpperCase():c.toLowerCase()}):a},a.str.kebab=function(a){return b.string(a)?a.match(/[A-Z]{2,}(?=[A-Z][a-z0-9]*|\b)|[A-Z]?[a-z0-9]*|[A-Z]|[0-9]+/g).filter(Boolean).map(function(a){return a.toLowerCase()}).join("-"):a},a.str.contains=function(a,c,d){return!(!b.string(a)||b.empty(a)||!b.string(c)||b.empty(c))&&(c.length<=a.length&&-1!==(d?a.toUpperCase().indexOf(c.toUpperCase()):a.indexOf(c)))},a.str.containsWord=function(a,c,d){if(!b.string(a)||b.empty(a)||!b.string(c)||b.empty(c)||a.length<c.length)return!1;for(var e=a.split(/\W/),f=0,g=e.length;f<g;f++)if(d?e[f].toUpperCase()===c.toUpperCase():e[f]===c)return!0;return!1},a.str.endsWith=function(a,c){return!(!b.string(a)||!b.string(c)||c.length>a.length)&&a.slice(a.length-c.length)===c},a.str.startsWith=function(a,c){return!b.empty(a)&&!b.empty(c)&&a.slice(0,c.length)===c},a.str.escapeRegExp=function(a){return b.string(a)?a.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"):a},a.str.fnv1a=function(a){if(!b.string(a)||b.empty(a))return null;var c,d,e=2166136261;for(c=0,d=a.length;c<d;c++)e^=a.charCodeAt(c),e+=(e<<1)+(e<<4)+(e<<7)+(e<<8)+(e<<24);return e>>>0},a.str.from=function(b,c){return a.str.contains(b,c)?b.substring(b.indexOf(c)+c.length):null},a.str.join=function(d,e,f){if(!b.string(d)||!b.string(e))return null;var g=c.arg2arr(arguments);d=g.shift();var h,i,j=g.shift();for(h=0,i=g.length;h<i;h++)e=g[h],b.empty(e)||(a.str.endsWith(j,d)&&(j=j.slice(0,j.length-d.length)),a.str.startsWith(e,d)&&(e=e.slice(d.length)),j+=d+e);return j},a.str.until=function(b,c){return a.str.contains(b,c)?b.substring(0,b.indexOf(c)):b},a.str.format=function(d,e,f){var g=c.arg2arr(arguments);return d=g.shift(),b.string(d)&&g.length>0&&(1===g.length&&(b.array(g[0])||b.object(g[0]))&&(g=g[0]),a.each(g,function(a,b){d=d.replace(new RegExp("\\{"+b+"\\}","gi"),a+"")})),d})}(FooGallery.utils,FooGallery.utils.is,FooGallery.utils.fn),function(a,b,c,d,e){"1.0.0"===b.version&&(b.obj={},b.obj.create=function(a){function b(){}if(!c.object(a))throw TypeError("Argument must be an object");return b.prototype=a,new b},b.obj.extend=function(a,e,f){a=c.object(a)?a:{};var g=d.arg2arr(arguments);return g.shift(),b.each(g,function(c){b.obj.merge(a,c)}),a},b.obj.merge=function(a,d){a=c.hash(a)?a:{},d=c.hash(d)?d:{};for(var e in d)d.hasOwnProperty(e)&&(c.hash(d[e])?(a[e]=c.hash(a[e])?a[e]:{},b.obj.merge(a[e],d[e])):c.array(d[e])?a[e]=d[e].slice():a[e]=d[e]);return a},b.obj.mergeValid=function(a,d,e,f){if(!c.hash(e)||!c.hash(d))return a;d=c.hash(d)?d:{},f=c.hash(f)?f:{};var g,h,i;for(g in d)d.hasOwnProperty(g)&&c.fn(d[g])&&(h=c.array(f[g])?f[g]:c.string(f[g])?[f[g]]:[g],b.each(h,function(f){if(i=b.obj.prop(e,f),!c.undef(i))return d[g](i)?(b.obj.prop(a,g,i),!1):void 0}));return a},b.obj.prop=function(a,d,f){if(c.object(a)&&!c.empty(d)){var g,h;if(c.undef(f))return e.contains(d,".")?(g=d.split("."),h=g.length-1,b.each(g,function(b,d){if(d===h)f=a[b];else{if(!c.hash(a[b]))return!1;a=a[b]}})):c.undef(a[d])||(f=a[d]),f;e.contains(d,".")?(g=d.split("."),h=g.length-1,b.each(g,function(b,d){d===h?a[b]=f:a=c.hash(a[b])?a[b]:a[b]={}})):c.undef(a[d])||(a[d]=f)}})}(FooGallery.utils.$,FooGallery.utils,FooGallery.utils.is,FooGallery.utils.fn,FooGallery.utils.str),function(a,b,c){function d(a){return setTimeout(a,1e3/60)}function e(a){clearTimeout(a)}"1.0.0"===b.version&&(b.ready=function(a){function c(){try{a.call(window,b.$)}catch(a){console.error(a)}}(Function("/*@cc_on return true@*/")()?"complete"===document.readyState:"loading"!==document.readyState)?c():document.addEventListener("DOMContentLoaded",c,!1)},b.find=function(a,b,d){if(c.fn(b)){d=c.undef(d)?b:d;var e,f;if(c.array(a)){for(e=0,f=a.length;e<f;e++)if(b.call(d,a[e],e,a))return a[e]}else if(c.object(a)){var g=Object.keys(a);for(e=0,f=g.length;e<f;e++)if(b.call(d,a[g[e]],g[e],a))return a[g[e]]}}},b.each=function(a,b,d){if(c.fn(b)){d=c.undef(d)?b:d;var e,f;if(c.array(a))for(e=0,f=a.length;e<f&&!1!==b.call(d,a[e],e,a);e++);else if(c.object(a)){var g=Object.keys(a);for(e=0,f=g.length;e<f&&!1!==b.call(d,a[g[e]],g[e],a);e++);}}},b.inArray=function(a,b){return c.array(b)?b.indexOf(a):-1},b.selectify=function(a){if(c.empty(a))return null;if(c.hash(a)){var d,e={};for(var f in a)a.hasOwnProperty(f)&&(d=b.selectify(a[f]))&&(e[f]=d);return e}return c.string(a)||c.array(a)?(c.string(a)&&(a=[a]),a.map(function(a){return c.string(a)?"."+a.split(/\s/g).join("."):null}).join(",")):null},b.requestFrame=(window.requestAnimationFrame||window.webkitRequestAnimationFrame||d).bind(window),b.cancelFrame=(window.cancelAnimationFrame||window.webkitCancelAnimationFrame||e).bind(window),b.nextFrame=function(d,e){return a.Deferred(function(a){c.fn(d)?(e=c.undef(e)?d:e,b.requestFrame(function(){try{a.resolve(d.call(e))}catch(b){a.reject(b)}})):a.reject(new Error("Provided callback is not a function."))}).promise()})}(FooGallery.utils.$,FooGallery.utils,FooGallery.utils.is),function(a,b,c,d,e){function f(a,b){return c.array(b)||(b=[]),c.fn(a)&&null!==a.__baseClass__?(b.unshift(a.__baseClass__),f(a.__baseClass__,b)):b}"1.0.0"===b.version&&(b.Class=function(){},b.Class.extend=function(a){function f(){if(!c.fn(this.construct))throw new SyntaxError('FooGallery.utils.Class objects must be constructed with the "new" keyword.');this.construct.apply(this,arguments)}a=c.hash(a)?a:{};var g=d.create(this.prototype);for(var h in a)a.hasOwnProperty(h)&&e.addOrOverride(g,h,a[h]);return g.construct=c.fn(g.construct)?g.construct:function(){},f.prototype=g,f.prototype.constructor=c.fn(g.__ctor__)?g.__ctor__:f,f.extend=b.Class.extend,f.override=b.Class.override,f.getBaseClasses=b.Class.getBaseClasses,f.__baseClass__=this,f},b.Class.override=function(a,b){e.addOrOverride(this.prototype,a,b)},b.Class.__baseClass__=null,b.Class.getBaseClasses=function(){return f(this,[])})}(FooGallery.utils.$,FooGallery.utils,FooGallery.utils.is,FooGallery.utils.obj,FooGallery.utils.fn),function(a,b,c,d,e){b.ClassRegistry=b.Class.extend({construct:function(a){var b=this;b.opt=e.extend({allowBase:!0,beforeCreate:null},a),b.registered={}},register:function(a,b,d,e){var f=this;if(c.string(a)&&!c.empty(a)&&c.fn(b)){e=c.number(e)?e:0;var g=f.registered[a];return f.registered[a]={name:a,ctor:b,config:c.hash(d)?d:{},priority:c.undef(g)?e:g.priority},!0}return!1},each:function(a,b,d){b=!!c.boolean(b)&&b,d=c.undef(d)?a:d;var e=this,f=Object.keys(e.registered),g=f.map(function(a){return e.registered[a]});b&&g.sort(function(a,b){return b.priority-a.priority});for(var h=0,i=g.length;h<i;h++){if(!1===a.call(d,g[h],h))break}},find:function(a,b,d){b=!!c.boolean(b)&&b,d=c.undef(d)?a:d;var e=this,f=Object.keys(e.registered),g=f.map(function(a){return e.registered[a]});b&&g.sort(function(a,b){return b.priority-a.priority});for(var h=0,i=g.length;h<i;h++)if(a.call(d,g[h],h))return g[h];return null},create:function(a,b,e){var f=this,g=d.arg2arr(arguments);if(a=g.shift(),c.string(a)&&f.registered.hasOwnProperty(a)){var h=f.registered[a],i=!0;if(h.priority<0&&!f.opt.allowBase&&(i=!1),i&&c.fn(h.ctor))return b=g.shift(),b=f.mergeConfigurations(h.name,b),g.unshift.apply(g,[h.name,b]),d.apply(h.ctor,f.onBeforeCreate(h,g))}return null},onBeforeCreate:function(a,b){var d=this;return null!==d.opt.beforeCreate&&c.fn(d.opt.beforeCreate)?d.opt.beforeCreate.call(d,a,b):b},mergeConfigurations:function(a,b){var d=this;if(c.string(a)&&d.registered.hasOwnProperty(a)){b=c.hash(b)?b:{};var f=d.getBaseClasses(a),g=[{}];return f.push(d.registered[a]),f.forEach(function(a){g.push(a.config)}),g.push(b),e.extend.apply(e,g)}return{}},getBaseClass:function(){return this.find(function(a){return a.priority<0},!0)},getBaseClasses:function(a){var b=this,d=b.registered[a],e=[];return c.undef(d)||d.ctor.getBaseClasses().forEach(function(a){var d=b.fromType(a);c.hash(d)&&e.push(d)}),e},fromType:function(a){if(c.fn(a))return this.find(function(b){return b.ctor===a})}})}(FooGallery.utils.$,FooGallery.utils,FooGallery.utils.is,FooGallery.utils.fn,FooGallery.utils.obj),function(a,b,c){"1.0.0"===a.version&&(a.Event=a.Class.extend({construct:function(c){if(b.empty(c))throw new SyntaxError("FooGallery.utils.Event objects must be supplied a `type`.");var d=this,e=a.Event.parse(c);d.type=e.type,d.namespace=e.namespace,d.defaultPrevented=!1,d.target=null},preventDefault:function(){this.defaultPrevented=!0},isDefaultPrevented:function(){return this.defaultPrevented}}),a.Event.parse=function(a){a=b.string(a)&&!b.empty(a)?a:null;var d=c.contains(a,".");return{namespaced:d,type:d?c.startsWith(a,".")?null:c.until(a,"."):a,namespace:d?c.from(a,"."):null}},a.EventClass=a.Class.extend({construct:function(){this.events={}},destroy:function(){this.events={}},on:function(a,c,d){var e=this;return b.object(a)?(d=c,Object.keys(a).forEach(function(c){b.fn(a[c])&&c.split(" ").forEach(function(b){e.addListener(b,a[c],d)})})):b.string(a)&&b.fn(c)&&a.split(" ").forEach(function(a){e.addListener(a,c,d)}),e},addListener:function(c,d,e){if(!b.string(c)||/\s/.test(c)||!b.fn(d))return!1;var f=this,g=a.Event.parse(c);return e=b.undef(e)?f:e,b.array(f.events[g.type])||(f.events[g.type]=[]),!f.events[g.type].some(function(a){return a.namespace===g.namespace&&a.fn===d&&a.thisArg===e})&&(f.events[g.type].push({namespace:g.namespace,fn:d,thisArg:e}),!0)},off:function(a,c,d){var e=this;return b.object(a)?(d=c,Object.keys(a).forEach(function(b){b.split(" ").forEach(function(c){e.removeListener(c,a[b],d)})})):b.string(a)&&a.split(" ").forEach(function(a){e.removeListener(a,c,d)}),e},removeListener:function(c,d,e){if(!b.string(c)||/\s/.test(c))return!1;var f=this,g=a.Event.parse(c),h=[];return e=b.undef(e)?f:e,b.empty(g.type)?b.empty(g.namespace)||h.push.apply(h,Object.keys(f.events)):h.push(g.type),h.forEach(function(a){b.array(f.events[a])&&(f.events[a]=f.events[a].filter(function(a){return null!=d?!(a.namespace===g.namespace&&a.fn===d&&a.thisArg===e):null!=g.namespace&&a.namespace!==g.namespace}),0===f.events[a].length&&delete f.events[a])}),!0},trigger:function(c,d){d=b.array(d)?d:[];var e=this,f=[];return c instanceof a.Event?(f.push(c),e.emit(c,d)):b.string(c)&&c.split(" ").forEach(function(b){var c=new a.Event(b);f.push(c),e.emit(c,d)}),b.empty(f)?null:1===f.length?f[0]:f},emit:function(a,c){if(a instanceof FooGallery.utils.Event){var d=this;c=b.array(c)?c:[],null===a.target&&(a.target=d),b.array(d.events[a.type])&&d.events[a.type].forEach(function(b){null!=a.namespace&&b.namespace!==a.namespace||b.fn.apply(b.thisArg,[a].concat(c))}),b.array(d.events.__all__)&&d.events.__all__.forEach(function(b){b.fn.apply(b.thisArg,[a].concat(c))})}}}))}(FooGallery.utils,FooGallery.utils.is,FooGallery.utils.str),function(a,b,c,d,e){"1.0.0"===b.version&&(b.Timer=b.EventClass.extend({construct:function(a){var b=this;b._super(),b.interval=c.number(a)?a:1e3,
|
10 |
b.isRunning=!1,b.isPaused=!1,b.canResume=!1,b.canRestart=!1,b.__timeout=null,b.__decrement=!1,b.__time=0,b.__remaining=0,b.__current=0,b.__finish=0,b.__restart=[]},__reset:function(){var a=this;clearTimeout(a.__timeout),a.__timeout=null,a.__decrement=!1,a.__time=0,a.__remaining=0,a.__current=0,a.__finish=0,a.isRunning=!1,a.isPaused=!1,a.canResume=!1},__eventArgs:function(a){var b=this;return[b.__current,b.__time,b.__decrement].concat(d.arg2arr(arguments))},__tick:function(){var a=this;a.trigger("tick",a.__eventArgs()),a.__current===a.__finish?(a.trigger("complete",a.__eventArgs()),a.__reset()):(a.__decrement?a.__current--:a.__current++,a.__remaining--,a.canResume=a.__remaining>0,a.__timeout=setTimeout(function(){a.__tick()},a.interval))},start:function(a,b){var d=this;d.isRunning||(b=!!c.boolean(b)&&b,d.__restart=[a,b],d.__decrement=b,d.__time=a,d.__remaining=a,d.__current=b?a:0,d.__finish=b?0:a,d.canRestart=!0,d.isRunning=!0,d.isPaused=!1,d.trigger("start",d.__eventArgs()),d.__tick())},countdown:function(a){this.start(a,!0)},countup:function(a){this.start(a,!1)},restart:function(){var a=this;a.stop(),a.canRestart&&a.start.apply(a,a.__restart)},stop:function(){var a=this;(a.isRunning||a.isPaused)&&(a.__reset(),a.trigger("stop",a.__eventArgs()))},pause:function(){var a=this;return null!=a.__timeout&&(clearTimeout(a.__timeout),a.__timeout=null),a.isRunning&&(a.isRunning=!1,a.isPaused=!0,a.trigger("pause",a.__eventArgs())),a.__remaining},resume:function(){var a=this;a.canResume&&(a.isRunning=!0,a.isPaused=!1,a.trigger("resume",a.__eventArgs()),a.__tick())},reset:function(){var a=this;a.__reset(),a.trigger("reset",this.__eventArgs())}}))}(FooGallery.utils.$,FooGallery.utils,FooGallery.utils.is,FooGallery.utils.fn,FooGallery.utils.obj),function(a,b,c){"1.0.0"===b.version&&(b.FullscreenAPI=b.EventClass.extend({construct:function(){this._super(),this.apis={w3:{enabled:"fullscreenEnabled",element:"fullscreenElement",request:"requestFullscreen",exit:"exitFullscreen",events:{change:"fullscreenchange",error:"fullscreenerror"}},webkit:{enabled:"webkitFullscreenEnabled",element:"webkitCurrentFullScreenElement",request:"webkitRequestFullscreen",exit:"webkitExitFullscreen",events:{change:"webkitfullscreenchange",error:"webkitfullscreenerror"}},moz:{enabled:"mozFullScreenEnabled",element:"mozFullScreenElement",request:"mozRequestFullScreen",exit:"mozCancelFullScreen",events:{change:"mozfullscreenchange",error:"mozfullscreenerror"}},ms:{enabled:"msFullscreenEnabled",element:"msFullscreenElement",request:"msRequestFullscreen",exit:"msExitFullscreen",events:{change:"MSFullscreenChange",error:"MSFullscreenError"}}},this.api=this.getAPI(),this.supported=null!=this.api,this.__listen()},destroy:function(){return this.__stopListening(),this._super()},getAPI:function(){for(var a in this.apis)if(this.apis.hasOwnProperty(a)&&this.apis[a].enabled in document)return this.apis[a];return null},element:function(){return this.supported?document[this.api.element]:null},request:function(b){if(this.supported&&b[this.api.request]){var d=b[this.api.request]();return d||a.Deferred(this.__resolver(this.api.request)).promise()}return c.rejected},exit:function(){if(this.supported&&this.element()){var b=document[this.api.exit]();return b||a.Deferred(this.__resolver(this.api.exit)).promise()}return c.rejected},toggle:function(a){return this.element()?this.exit():this.request(a)},__listen:function(){var b=this;b.supported&&a(document).on(b.api.events.change+".utils",function(){b.trigger("change")}).on(b.api.events.error+".utils",function(){b.trigger("error")})},__stopListening:function(){var b=this;b.supported&&a(document).off(b.api.events.change+".utils").off(b.api.events.error+".utils")},__resolver:function(b){var c=this;return function(d){function e(){d.resolve(),a(document).off(c.api.events.change,e).off(c.api.events.error,f)}function f(){d.reject(new TypeError),a(document).off(c.api.events.change,e).off(c.api.events.error,f)}if(b===c.api.exit&&c.element())return void setTimeout(function(){d.reject(new TypeError)},1);a(document).on(c.api.events.change,e).on(c.api.events.error,f)}}}))}(FooGallery.utils.$,FooGallery.utils,FooGallery.utils.fn),function(a,b,c,d){"1.0.0"===b.version&&(b.transition={},b.transition.dataName="__foo-transition__",b.transition.disableClassName=null,b.transition.timeout=3e3,b.transition.disable=function(d,e){var f=c.jq(d)?d:a(d);if(f.length>0&&c.fn(e)){var g=f.get(0),h=c.string(b.transition.disableClassName),i=null;h?f.addClass(b.transition.disableClassName):(i={value:g.style.getPropertyValue("transition"),priority:g.style.getPropertyPriority("transition")},g.style.setProperty("transition","none","important")),e.call(e,f),f.prop("offsetWidth"),h?f.removeClass(b.transition.disableClassName):(g.style.removeProperty("transition"),c.string(i.value)&&i.value.length>0&&g.style.setProperty("transition",i.value,i.priority))}},b.transition.stop=function(d){var e=a.Deferred(),f=c.jq(d)?d:a(d);if(f.length>0){var g=f.data(b.transition.dataName);c.promise(g)?g.always(function(){b.requestFrame(function(){e.resolve(f)})}).reject(new Error("Transition cancelled.")):e.resolve(f)}else e.reject(new Error("Unable to stop transition. Make sure the element exists."));return e.promise()},b.transition.createListener=function(a,b,e){var f=a,g=b,h=e,i=c.string(e);return function(a){var b=a.originalEvent instanceof TransitionEvent?a.originalEvent:a,c=!1;b.target===f&&(c=!i||b.propertyName===h),c&&g.apply(g,d.arg2arr(arguments))}},b.transition.start=function(d,e,f,g){var h=a.Deferred(),i=c.jq(d)?d:a(d);if(i.length>0&&c.fn(e)){var j=i.get(0);b.transition.stop(i).always(function(){var a=b.transition.createListener(j,function(){h.resolve(i)},f);i.data(b.transition.dataName,h).on("transitionend.foo-utils",a).prop("offsetWidth"),b.requestFrame(function(){var d=setTimeout(function(){h.reject(new Error("Transition safety timeout triggered."))},c.number(g)?g:b.transition.timeout);h.always(function(){clearTimeout(d),i.removeData(b.transition.dataName).off("transitionend.foo-utils",a)}),e.call(e,i)})})}else h.reject(new Error("Unable to perform transition. Make sure the element exists and a trigger function is supplied."));return h.promise()},b.transition.modify=function(e,f,g,h){var i=c.jq(e)?e:a(e);return i.length>0&&c.fn(f)?g?(b.transition.disable(i,f),d.resolve()):b.transition.start(i,f,h):d.reject(new Error("Unable to perform modification. Make sure the element exists and a modify function is supplied."))})}(FooGallery.utils.$,FooGallery.utils,FooGallery.utils.is,FooGallery.utils.fn),function(a,b,c,d,e,f){b.DATA_TEMPLATE="__FooGallery__",b.DATA_ITEM="__FooGalleryItem__",b.get=function(c){return a(c).data(b.DATA_TEMPLATE)},b.init=function(c,f){if(f=d.jq(f)?f:a(f),f.length>0){var g=f.data(b.DATA_TEMPLATE);if(g instanceof b.Template)return g.destroy(!0).then(function(){var a=b.template.make(c,f);return a instanceof b.Template?a.initialize():e.rejected})}var h=b.template.make(c,f);return h instanceof b.Template?h.initialize():e.rejected},a.fn.foogallery=function(c,e){return e=d.fn(e)?e:a.noop,this.each(function(f,g){if(d.string(c)){var h=a.data(g,b.DATA_TEMPLATE);if(h instanceof b.Template)switch(c){case"layout":return void h.layout();case"destroy":return void h.destroy()}}else b.init(c,g).then(e)})},b.isCached=function(a){var b=new Image;b.src=a;var c=b.complete;return b.src="",b=null,c},b.supportedExifProperties=["camera","aperture","created_timestamp","shutter_speed","focal_length","iso","orientation"],d.exif=function(a){if(d.object(a)){var c=Object.keys(a);return c.length>0&&c.some(function(c){return-1!==b.supportedExifProperties.indexOf(c)&&!d.empty(a[c])})}return!1},f.trimTo=function(a,b,c){return d.string(a)&&d.number(b)&&b>0&&a.length>b?a.substr(0,b)+(d.string(c)?c:"…"):a},c.getResizeObserverSize=function(a){var b,c;return a.contentBoxSize?a.contentBoxSize[0]?(b=a.contentBoxSize[0].inlineSize,c=a.contentBoxSize[0].blockSize):(b=a.contentBoxSize.inlineSize,c=a.contentBoxSize.blockSize):(b=a.contentRect.width,c=a.contentRect.height),{width:b,height:c}},b.supportsWebP=!1;var g=new Image;g.onload=function(){b.supportsWebP=0<g.width&&0<g.height},g.onerror=function(){b.supportsWebP=!1},g.src="data:image/webp;base64,UklGRhoAAABXRUJQVlA4TA0AAAAvAAAAEAcQERGIiP4HAA==",b.supportsPicture=!!window.HTMLPictureElement}(FooGallery.$,FooGallery,FooGallery.utils,FooGallery.utils.is,FooGallery.utils.fn,FooGallery.utils.str),function(a,b,c,d,e){b.Icons=c.Class.extend({construct:function(){this.className="fg-icon",this.registered={default:{close:'<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path d="M13.957 3.457l-1.414-1.414-4.543 4.543-4.543-4.543-1.414 1.414 4.543 4.543-4.543 4.543 1.414 1.414 4.543-4.543 4.543 4.543 1.414-1.414-4.543-4.543z"></path></svg>',"arrow-left":'<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path d="M10.5 16l1.5-1.5-6.5-6.5 6.5-6.5-1.5-1.5-8 8 8 8z"></path></svg>',"arrow-right":'<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path d="M5.5 0l-1.5 1.5 6.5 6.5-6.5 6.5 1.5 1.5 8-8-8-8z"></path></svg>',maximize:'<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path d="M2 2v4h-2v-5c0-0.552 0.448-1 1-1h14c0.552 0 1 0.448 1 1v14c0 0.552-0.448 1-1 1h-14c-0.552 0-1-0.448-1-1v-9h9c0.552 0 1 0.448 1 1v7h4v-12h-12z"/></svg>',expand:'<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path d="M2 5h-2v-4c0-0.552 0.448-1 1-1h4v2h-3v3z"></path><path d="M16 5h-2v-3h-3v-2h4c0.552 0 1 0.448 1 1v4z"></path><path d="M15 16h-4v-2h3v-3h2v4c0 0.552-0.448 1-1 1z"></path><path d="M5 16h-4c-0.552 0-1-0.448-1-1v-4h2v3h3v2z"></path></svg>',shrink:'<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path d="M3 0h2v4c0 0.552-0.448 1-1 1h-4v-2h3v-3z"></path><path d="M11 0h2v3h3v2h-4c-0.552 0-1-0.448-1-1v-4z"></path><path d="M12 11h4v2h-3v3h-2v-4c0-0.552 0.448-1 1-1z"></path><path d="M0 11h4c0.552 0 1 0.448 1 1v4h-2v-3h-3v-2z"></path></svg>',info:'<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path d="M7 4.75c0-0.412 0.338-0.75 0.75-0.75h0.5c0.412 0 0.75 0.338 0.75 0.75v0.5c0 0.412-0.338 0.75-0.75 0.75h-0.5c-0.412 0-0.75-0.338-0.75-0.75v-0.5z"></path><path d="M10 12h-4v-1h1v-3h-1v-1h3v4h1z"></path><path d="M8 0c-4.418 0-8 3.582-8 8s3.582 8 8 8 8-3.582 8-8-3.582-8-8-8zM8 14.5c-3.59 0-6.5-2.91-6.5-6.5s2.91-6.5 6.5-6.5 6.5 2.91 6.5 6.5-2.91 6.5-6.5 6.5z"></path></svg>',comment:'<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path d="M3 4h10v1h-10zM3 6h8v1h-8zM3 8h4v1h-4zM14.5 1h-13c-0.825 0-1.5 0.675-1.5 1.5v8c0 0.825 0.675 1.5 1.5 1.5h2.5v4l4.8-4h5.7c0.825 0 1.5-0.675 1.5-1.5v-8c0-0.825-0.675-1.5-1.5-1.5zM14 10h-5.924l-3.076 2.73v-2.73h-3v-7h12v7z"></path></svg>',thumbs:'<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path d="M3 3v10h-2v-11c0-0.552 0.448-1 1-1h12c0.552 0 1 0.448 1 1v12c0 0.552-0.448 1-1 1h-12c-0.552 0-1-0.448-1-1v-1h4v-2h-2v-2h2v-2h-2v-2h2v-2h2v10h6v-10h-10z"></path></svg>',cart:'<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path d="M13.238 9c0.55 0 1.124-0.433 1.275-0.962l1.451-5.077c0.151-0.529-0.175-0.962-0.725-0.962h-10.238c0-1.105-0.895-2-2-2h-3v2h3v8.5c0 0.828 0.672 1.5 1.5 1.5h9.5c0.552 0 1-0.448 1-1s-0.448-1-1-1h-9v-1h8.238zM5 4h9.044l-0.857 3h-8.187v-3z"></path><path d="M6 14.5c0 0.828-0.672 1.5-1.5 1.5s-1.5-0.672-1.5-1.5c0-0.828 0.672-1.5 1.5-1.5s1.5 0.672 1.5 1.5z"></path><path d="M15 14.5c0 0.828-0.672 1.5-1.5 1.5s-1.5-0.672-1.5-1.5c0-0.828 0.672-1.5 1.5-1.5s1.5 0.672 1.5 1.5z"></path></svg>',"circle-close":'<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path d="M8 0c-4.418 0-8 3.582-8 8s3.582 8 8 8 8-3.582 8-8-3.582-8-8-8zM8 14.5c-3.59 0-6.5-2.91-6.5-6.5s2.91-6.5 6.5-6.5 6.5 2.91 6.5 6.5-2.91 6.5-6.5 6.5z"></path><path d="M10.5 4l-2.5 2.5-2.5-2.5-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 2.5-2.5 2.5 2.5 1.5-1.5-2.5-2.5 2.5-2.5z"></path></svg>',"auto-progress":'<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path class="[ICON_CLASS]-idle" d="M11.39 8c2.152-1.365 3.61-3.988 3.61-7 0-0.339-0.019-0.672-0.054-1h-13.891c-0.036 0.328-0.054 0.661-0.054 1 0 3.012 1.457 5.635 3.609 7-2.152 1.365-3.609 3.988-3.609 7 0 0.339 0.019 0.672 0.054 1h13.891c0.036-0.328 0.054-0.661 0.054-1 0-3.012-1.457-5.635-3.609-7zM2.5 15c0-2.921 1.253-5.397 3.5-6.214v-1.572c-2.247-0.817-3.5-3.294-3.5-6.214v0h11c0 2.921-1.253 5.397-3.5 6.214v1.572c2.247 0.817 3.5 3.294 3.5 6.214h-11zM9.462 10.462c-1.12-0.635-1.181-1.459-1.182-1.959v-1.004c0-0.5 0.059-1.327 1.184-1.963 0.602-0.349 1.122-0.88 1.516-1.537h-6.4c0.395 0.657 0.916 1.188 1.518 1.538 1.12 0.635 1.181 1.459 1.182 1.959v1.004c0 0.5-0.059 1.327-1.184 1.963-1.135 0.659-1.98 1.964-2.236 3.537h7.839c-0.256-1.574-1.102-2.879-2.238-3.538z"/><circle class="[ICON_CLASS]-circle" r="4" cx="8" cy="8"/><path class="[ICON_CLASS]-play" d="M3 2l10 6-10 6z"/><path class="[ICON_CLASS]-pause" d="M2 2h5v12h-5zM9 2h5v12h-5z"/></svg>',"exif-aperture":'<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path d="M 8,0 C 3.5876443,0 0,3.5876443 0,8 c 0,4.412356 3.5876443,8 8,8 4.412356,0 8,-3.587644 8,-8 C 16,3.5876443 12.412356,0 8,0 Z m 0,1 c 3.871916,0 7,3.1280844 7,7 0,3.871916 -3.128084,7 -7,7 C 4.1280844,15 1,11.871916 1,8 1,4.1280844 4.1280844,1 8,1 Z M 7.53125,2.0214844 A 6,6 0 0 0 3.1835938,4.4335938 H 8.9257812 Z M 8.6132812,2.03125 C 9.5587451,3.6702105 10.504247,5.3091484 11.451172,6.9472656 L 12.863281,4.5 A 6,6 0 0 0 8.6132812,2.03125 Z M 2.5957031,5.4101562 A 6,6 0 0 0 2,8 6,6 0 0 0 2.5273438,10.439453 L 5.4296875,5.4101562 Z m 10.8261719,0.033203 -2.855469,4.9433598 h 2.935547 A 6,6 0 0 0 14,8 6,6 0 0 0 13.421875,5.4433592 Z M 4.5722656,8.8945312 3.0996094,11.449219 a 6,6 0 0 0 4.40625,2.527343 z m 2.5820313,2.4707028 1.4960937,2.591797 a 6,6 0 0 0 4.3144534,-2.591797 z"></path></svg>',"exif-camera":'<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path d="m 8.0000002,5 a 4,4 0 0 0 -4,4 4,4 0 0 0 4,4 A 4,4 0 0 0 12,9 4,4 0 0 0 8.0000002,5 Z m 0.019531,1.015625 a 3,2.9814477 0 0 1 2.9804688,3 l -1,-0.00586 a 2,2 0 0 0 0,-0.00976 2,2 0 0 0 -1.9863279,-2 z M 5.125,1 C 4.5,1 4,1.5 4,2.125 V 3.0000004 L 1.125,3 C 0.5,2.9999999 0,3.5 0,4.125 v 9.75 C 0,14.5 0.5,15 1.125,15 h 13.75 C 15.5,15 16,14.5 16,13.875 V 4.125 C 16,3.5 15.5,3 14.875,3 H 12 V 2.125 C 12,1.5 11.5,1 10.875,1 Z M 5.25,2.0000004 h 5.5 c 0.125,0 0.25,0.1249996 0.25,0.25 v 1.75 h 3.75 c 0.125,0 0.25,0.1249996 0.25,0.25 V 13.75 C 15,13.875 14.875,14 14.75,14 H 1.25 C 1.125,14 1,13.875 1,13.75 V 4.25 C 1,4.125 1.125,4 1.25,4 l 3.75,4e-7 v -1.75 c 0,-0.1250004 0.125,-0.25 0.25,-0.25 z"></path></svg>',"exif-created-timestamp":'<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path d="M 3,1 V 2 H 1 V 15 H 16 V 2 H 14 V 1 H 13 V 2 H 4 V 1 Z M 2,4 H 15 V 14 H 2 Z M 6,5 V 7 H 8 V 5 Z m 3,0 v 2 h 2 V 5 Z m 3,0 v 2 h 2 V 5 Z M 3,8 v 2 H 5 V 8 Z m 3,0 v 2 H 8 V 8 Z m 3,0 v 2 h 2 V 8 Z m 3,0 v 2 h 2 V 8 Z m -9,3 v 2 h 2 v -2 z m 3,0 v 2 h 2 v -2 z m 3,0 v 2 h 2 v -2 z"></path></svg>',"exif-shutter-speed":'<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path d="M 8,0 C 3.5876443,0 -2.9415707e-8,3.5876443 0,8 c 2.3532563e-7,4.412356 3.5876445,8 8,8 4.412356,0 8,-3.587644 8,-8 C 16,3.5876443 12.412356,0 8,0 Z m 0,1 c 3.871916,0 7,3.1280844 7,7 0,3.871915 -3.128085,7 -7,7 -3.8719154,0 -6.9999998,-3.128085 -7,-7 -3e-8,-3.8719156 3.1280844,-7 7,-7 z M 11.646484,3.6464844 8.6445312,6.6484375 A 1.5,1.5 0 0 0 8,6.5 1.5,1.5 0 0 0 6.5,8 1.5,1.5 0 0 0 8,9.5 1.5,1.5 0 0 0 9.5,8 1.5,1.5 0 0 0 9.3515625,7.3554688 L 12.353516,4.3535156 Z M 2,7.5 v 1 h 2 v -1 z M 7.5,12 v 2 h 1 V 12 Z M 12,7.5 v 1 h 2 v -1 z M 7.5,2 v 2 h 1 V 2 Z"></path></svg>',"exif-focal-length":'<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path d="m 1,4.125 -1,0.25 v 7.25 l 1,0.25 z M 5,1 2,4 v 8 l 3,3 h 6.875 C 12.500003,15 13,14.5 13,13.875 V 2.125 C 13,1.4999986 12.5,1 11.875,1 9.576807,0.99914375 7.1414067,0.96597644 5,1 Z M 5.5,2 H 6 V 14 H 5.5 L 3,11.5 v -7 z M 7,2 h 4.75 C 11.875,2 12,2.1249997 12,2.25 v 11.5 c 0,0.125 -0.125,0.250622 -0.25,0.25 H 7 Z m 7,0 c 1,2.2 1.5,4.35 1.5,6 0,1.65 -0.5,3.8 -1.5,6"></path></svg>',"exif-iso":'<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path d="M 7.5,0 V 1.6015625 C 6.0969201,1.7146076 4.8392502,2.256185 3.828125,3.1210938 L 2.6035156,1.8964844 1.8964844,2.6035156 3.1210938,3.828125 C 2.256185,4.8392502 1.7146076,6.0969201 1.6015625,7.5 H 0 v 1 h 1.6015625 c 0.1130451,1.4030799 0.6546225,2.66075 1.5195313,3.671875 l -1.2246094,1.224609 0.7070312,0.707032 1.2246094,-1.22461 C 4.8392502,13.743815 6.0969201,14.285392 7.5,14.398438 V 16 h 1 v -1.601562 c 1.4030799,-0.113046 2.66075,-0.654623 3.671875,-1.519532 l 1.224609,1.22461 0.707032,-0.707032 -1.22461,-1.224609 C 13.743815,11.16075 14.285392,9.9030799 14.398438,8.5 H 16 v -1 H 14.398438 C 14.285392,6.0969201 13.743815,4.8392502 12.878906,3.828125 L 14.103516,2.6035156 13.396484,1.8964844 12.171875,3.1210938 C 11.16075,2.256185 9.9030799,1.7146076 8.5,1.6015625 V 0 Z M 8,2.5 c 3.043488,0 5.5,2.4565116 5.5,5.5 0,3.043488 -2.456512,5.5 -5.5,5.5 C 4.9565116,13.5 2.5,11.043488 2.5,8 2.5,4.9565116 4.9565116,2.5 8,2.5 Z"></path></svg>',"exif-orientation":'<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path d="M 1.25,0 C 0.625,0 0,0.625 0,1.25 V 5 H 1 V 3 h 8 v 2 h 1 V 1.25 C 10,0.625 9.375,0 8.75,0 Z m 0,1 h 7.5 C 8.875,1 9,1.125 9,1.25 V 2 H 1 V 1.25 C 1,1.125 1.125,1 1.25,1 Z m 0,5 C 0.625,6 0,6.625 0,7.25 v 7.5 C 0,15.375 0.625,16 1.25,16 h 13.5 C 15.375,16 16,15.375 16,14.75 V 7.25 C 16,6.625 15.375,6 14.75,6 Z m 0,1 H 2 v 3 H 1 V 7.25 C 1,7.125 1.125,7 1.25,7 Z M 3,7 h 10 v 8 H 3 Z m 11,0 h 0.75 C 14.875,7 15,7.125 15,7.25 v 7.5 C 15,14.875 14.875,15 14.75,15 H 14 Z M 1,12 h 1 v 3 H 1.25 C 1.125,15 1,14.875 1,14.75 Z"></path></svg>'}}},register:function(a,b){return!(d.empty(a)||d.empty(b)||!d.string(a)||!d.hash(b))&&(this.registered[a]=e.extend({},this.registered.default,b),!0)},get:function(b,c){var f=this,g="default",h=e.extend({},f.registered.default);d.string(c)&&"default"!==c?(g=c,h=e.extend(h,f.registered[c])):d.hash(c)&&(g="custom",h=e.extend(h,c));var i=d.string(b)&&h.hasOwnProperty(b)?h[b].replace(/\[ICON_CLASS]/g,f.className+"-"+b):null,j=[!1,b,g].map(function(a){return!1===a?f.className:f.className+"-"+a}).join(" ");return a(i).addClass(j)}}),b.icons=new b.Icons}(FooGallery.$,FooGallery,FooGallery.utils,FooGallery.utils.is,FooGallery.utils.obj),function(a,b,c,d,e){var f="__FooGallerySwipe__",g="ontouchstart"in window,h=window.navigator.msPointerEnabled&&!window.navigator.pointerEnabled&&!g,i=(window.navigator.pointerEnabled||window.navigator.msPointerEnabled)&&!g,j=g||i;b.Swipe=c.Class.extend({construct:function(b,c){var d=this,f=".fgswipe";d.$el=a(b),d.opt=e.extend({threshold:20,allowPageScroll:!1,swipe:a.noop,data:{}},c),d.active=!1,d.startPoint=null,d.endPoint=null,d.events={start:(j?i?h?"MSPointerDown":"pointerdown":"touchstart":"mousedown")+f,move:(j?i?h?"MSPointerMove":"pointermove":"touchmove":"mousemove")+f,end:(j?i?h?"MSPointerUp":"pointerup":"touchend":"mouseup")+f,leave:(j?i?"mouseleave":null:"mouseleave")+f}},init:function(){var a=this;a.$el.on(a.events.start,{self:a},a.onStart),a.$el.on(a.events.move,{self:a},a.onMove),a.$el.on(a.events.end,{self:a},a.onEnd),d.string(a.events.leave)&&a.$el.on(a.events.leave,{self:a},a.onEnd),a.$el.data(f,a)},destroy:function(){var a=this;a.$el.off(a.events.start,a.onStart),a.$el.off(a.events.move,a.onMove),a.$el.off(a.events.end,a.onEnd),d.string(a.events.leave)&&a.$el.off(a.events.leave,a.onEnd),a.$el.removeData(f)},getAngle:function(a,b){var c=Math.atan2(a.x-b.x,a.y-b.y),d=Math.round(180*c/Math.PI);return 360-(d<0?360-Math.abs(d):d)},getDistance:function(a,b){var c=b.x-a.x,d=b.y-a.y;return c*=c,d*=d,Math.sqrt(c+d)},getDirection:function(a,b){var c=this,d=c.getAngle(a,b);return d>337.5||d<=22.5?"N":d>22.5&&d<=67.5?"NE":d>67.5&&d<=112.5?"E":d>112.5&&d<=157.5?"SE":d>157.5&&d<=202.5?"S":d>202.5&&d<=247.5?"SW":d>247.5&&d<=292.5?"W":d>292.5&&d<=337.5?"NW":"NONE"},getPoint:function(a){var b;return j&&!d.empty(b=a.originalEvent.touches||a.touches)?{x:b[0].pageX,y:b[0].pageY}:d.number(a.pageX)&&d.number(a.pageY)?{x:a.pageX,y:a.pageY}:null},getOffset:function(a){var b=this,c=b.$el.offset();return{left:a.x-c.left,top:a.y-c.top}},onStart:function(a){var b=a.data.self,c=b.getPoint(a);d.empty(c)||(b.active=!0,b.startPoint=b.endPoint=c)},onMove:function(a){var b=a.data.self,e=b.getPoint(a);if(b.active&&!d.empty(e))if(b.endPoint=e,b.opt.allowPageScroll){if(d.hash(b.opt.allowPageScroll)){var f=b.getDirection(b.startPoint,b.endPoint);b.opt.allowPageScroll.x||-1===c.inArray(f,["NE","E","SE","NW","W","SW"])||a.preventDefault(),b.opt.allowPageScroll.y||-1===c.inArray(f,["NW","N","NE","SW","S","SE"])||a.preventDefault()}}else a.preventDefault()},onEnd:function(a){var b=a.data.self;if(b.active){b.active=!1;var c={startPoint:b.startPoint,endPoint:b.endPoint,startOffset:b.getOffset(b.startPoint),endOffset:b.getOffset(b.endPoint),angle:b.getAngle(b.startPoint,b.endPoint),distance:b.getDistance(b.startPoint,b.endPoint),direction:b.getDirection(b.startPoint,b.endPoint)};if(b.opt.threshold>0&&c.distance<b.opt.threshold)return;b.opt.swipe.apply(this,[c,b.opt.data]),b.startPoint=null,b.endPoint=null}}}),a.fn.fgswipe=function(c){return this.each(function(){var e=a(this),g=e.data(f);if(g instanceof b.Swipe){if(d.string(c)&&d.fn(g[c]))return void g[c]();g.destroy()}d.hash(c)&&(g=new b.Swipe(this,c),g.init())})}}(FooGallery.$,FooGallery,FooGallery.utils,FooGallery.utils.is,FooGallery.utils.obj),function(a,b,c,d,e){b.Factory=c.Class.extend({construct:function(){this.registered={}},contains:function(a){return!d.undef(this.registered[a])},make:function(a,b,c){var f,g=this,h=e.arg2arr(arguments);return a=h.shift(),f=g.registered[a],d.hash(f)&&d.fn(f.klass)?e.apply(f.klass,h):null},names:function(b){b=!!d.boolean(b)&&b;var c,e=[];if(b){var f=[];for(c in this.registered)this.registered.hasOwnProperty(c)&&f.push(this.registered[c]);f.sort(function(a,b){return b.priority-a.priority}),a.each(f,function(a,b){e.push(b.name)})}else for(c in this.registered)this.registered.hasOwnProperty(c)&&e.push(c);return e},register:function(a,b,c){if(!d.string(a)||d.empty(a)||!d.fn(b))return!1;c=d.number(c)?c:0;var e=this.registered[a];return this.registered[a]={name:a,klass:b,priority:d.undef(e)?c:e.priority},!0},load:function(){var b,c=this,d=[],e=[];for(b in c.registered)c.registered.hasOwnProperty(b)&&e.push(c.registered[b]);return e.sort(function(a,b){return b.priority-a.priority}),a.each(e,function(a,b){d.push(c.make(b.name))}),d}})}(FooGallery.$,FooGallery,FooGallery.utils,FooGallery.utils.is,FooGallery.utils.fn),function(a,b,c,d,e,f){b.TemplateFactory=b.Factory.extend({construct:function(){this.registered={}},register:function(a,b,c,e,f,g){var h=this,i=h._super(a,b,g);if(i){var j=h.registered;j[a].opt=d.hash(c)?c:{},j[a].cls=d.hash(e)?e:{},j[a].il8n=d.hash(f)?f:{}}return i},make:function(b,c){c=d.jq(c)?c:a(c),b=f.extend({},b,c.data("foogallery"));var e=this,g=e.type(b,c);return e.contains(g)?(b=e.options(g,b),e._super(g,b,c)):null},type:function(b,e){e=d.jq(e)?e:a(e);var f=this,g=d.hash(b)&&d.hash(b)&&d.string(b.type)&&f.contains(b.type)?b.type:null;if(null===g&&e.length>0)for(var h=f.registered,i=f.names(!0),j=0,k=i.length;j<k;j++)if(h.hasOwnProperty(i[j])&&"core"!==i[j]){var l=i[j],m=h[l].cls;if(d.string(m.container)){var n=c.selectify(m.container);if(e.is(n)){g=i[j];break}}}return g},configure:function(a,b,c,d){var e=this;if(e.contains(a)){var g=e.registered;f.extend(g[a].opt,b),f.extend(g[a].cls,c),f.extend(g[a].il8n,d)}},options:function(a,c){c=f.extend({type:a},c);var e=this,g=e.registered,h=g.core.opt,i=g.core.cls,j=g.core.il8n;return d.hash(c.cls)||(c.cls={}),d.hash(c.il8n)||(c.il8n={}),d.undef(b.filtering)||(c=b.filtering.merge(c)),d.undef(b.paging)||(c=b.paging.merge(c)),"core"!==a&&e.contains(a)?(c=f.extend({},h,g[a].opt,c),c.cls=f.extend({},i,g[a].cls,c.cls),c.il8n=f.extend({},j,g[a].il8n,c.il8n)):(c=f.extend({},h,c),c.cls=f.extend({},i,c.cls),c.il8n=f.extend({},j,c.il8n)),c}}),b.template=new b.TemplateFactory}(FooGallery.$,FooGallery,FooGallery.utils,FooGallery.utils.is,FooGallery.utils.fn,FooGallery.utils.obj),function(a,b,c,d,e,f){var g=0;b.Template=c.EventClass.extend({construct:function(f,h){var i=this;i._super(),i.namespace=".foogallery-"+ ++g,i.$el=d.jq(h)?h:a(h),i.el=i.$el.get(0)||null,i.$scrollParent=null,i.opt=f,i.template=f.template,i.id=i.$el.prop("id")||f.id,i.cls=f.cls,i.il8n=f.il8n,i.sel=c.selectify(i.cls),i.items=b.components.make("items",i),i.pages=d.undef(b.paging)?null:b.paging.make(f.paging.type,i),i.filter=d.undef(b.filtering)?null:b.filtering.make(f.filtering.type,i),i.state=b.components.make("state",i),i._initialize=null,i._layoutTimeout=null,i._layoutWidths=[],i.lastWidth=0,i.initializing=!1,i.initialized=!1,i.destroying=!1,i.destroyed=!1,i._undo={classes:"",style:"",create:!1,children:!1},i.robserver=new ResizeObserver(e.throttle(function(a){if(!i.destroying&&!i.destroyed&&1===a.length&&a[0].target===i.el){var b=c.getResizeObserverSize(a[0]);i.layout(b.width)}},50))},initialize:function(b){var c=this;return d.promise(c._initialize)?c._initialize:c._initialize=a.Deferred(function(a){c.preInit(b)?c.init().then(function(){c.postInit()?(c.ready(),a.resolve(c)):a.reject("post-init failed")}).fail(a.reject):a.reject("pre-init failed")}).fail(function(a){return console.log("initialize failed",c,a),c.destroy()}).promise()},preInit:function(e){var f=this;if(f.destroying)return!1;if(e=d.jq(e)?e:a(e),f.initializing=!0,0===e.length&&0===f.$el.parent().length)return!1;0===f.$el.length&&(f.$el=f.create(),f.el=f.$el.get(0),f._undo.create=!0),e.length>0&&f.$el.appendTo(e);var g;d.empty(f.opt.scrollParent)||0===(g=a(f.opt.scrollParent)).length?f.$scrollParent=a(document):f.$scrollParent=g.is("html")?a(document):g,f.$el.data(b.DATA_TEMPLATE,f),d.empty(f.opt.on)||f.on(f.opt.on),f._undo.classes=f.$el.attr("class"),f._undo.style=f.$el.attr("style"),f.$el.is(f.sel.container)||f.$el.addClass(f.cls.container);var h=c.selectify(f.opt.classes);return null==h||f.$el.is(h)||f.$el.addClass(f.opt.classes),0===f.$el.children().not(f.sel.item.elem).length&&(f.$el.append(f.createChildren()),f._undo.children=!0),f.opt.protected&&(f.el.oncontextmenu=function(a){return a.preventDefault(),!1}),!f.trigger("pre-init").isDefaultPrevented()},init:function(){var a=this;return a.trigger("init").isDefaultPrevented()?e.reject("init default prevented"):a.items.fetch()},postInit:function(){var b=this;return!b.destroying&&(!b.trigger("post-init").isDefaultPrevented()&&(b.state.init(),b.pages&&b.pages.init(),a(window).on("popstate"+b.namespace,{self:b},b.onWindowPopState),b.robserver.observe(b.el),!0))},ready:function(){var a=this;return!a.destroying&&(a.initializing=!1,a.initialized=!0,a.trigger("ready"),!0)},create:function(){var b=this;return a("<div/>",{id:b.id,class:b.cls.container}).addClass(b.opt.classes)},createChildren:function(){return a()},destroy:function(b){var c=this,f=c._super.bind(c);return c.destroyed?e.resolved:(c.destroying=!0,a.Deferred(function(a){c.initializing&&d.promise(c._initialize)?c._initialize.always(function(){c.destroying=!1,c.doDestroy(b),a.resolve()}):(c.destroying=!1,c.doDestroy(b),a.resolve())}).then(function(){f()}).promise())},doDestroy:function(c){var e=this;e.destroyed||(e.trigger("destroy"),e.robserver.disconnect(),a(window).off(e.namespace),e.state.destroy(c),e.filter&&e.filter.destroy(),e.pages&&e.pages.destroy(),e.items.destroy(),d.empty(e.opt.on)||e.$el.off(e.opt.on),e.trigger("destroyed"),e.$el.removeData(b.DATA_TEMPLATE),d.empty(e._undo.classes)?e.$el.removeAttr("class"):e.$el.attr("class",e._undo.classes),d.empty(e._undo.style)?e.$el.removeAttr("style"):e.$el.attr("style",e._undo.style),e._undo.children&&e.destroyChildren(),e._undo.create&&e.$el.remove(),e.$el=e.state=e.items=e.pages=null,e.destroyed=!0,e.initializing=!1,e.initialized=!1)},destroyChildren:function(){},getAvailable:function(){return this.pages?this.pages.available():this.items.available()},layout:function(a){var b=this;if(null!==b._initialize){if(!d.number(a)){a=b.el.getBoundingClientRect().width}0===a||b._checkWidth(a)||(b.lastWidth=a,b.trigger("layout",[a]))}},_checkWidth:function(a){var b,c=this;return(b=-1!==c._layoutWidths.indexOf(a))||(c._layoutWidths.unshift(a),c._layoutWidths.splice(2,c._layoutWidths.length-2),null!=c._layoutTimeout&&clearTimeout(c._layoutTimeout),c._layoutTimeout=setTimeout(function(){c._layoutWidths.splice(0,c._layoutWidths.length)},100)),b},getCSSClass:function(a,b){b=d.empty(b)?"":b;var c=a instanceof RegExp?a:d.string(a)&&this.opt.regex.hasOwnProperty(a)?this.opt.regex[a]:null,e=this.$el.prop("className")||"",f=null!=c?e.match(c):null;return null!=f&&f.length>=2?f[1]:b},onWindowPopState:function(a){var b=a.data.self,c=a.originalEvent.state;d.empty(c)||c.id!==b.id||b.state.set(c)}}),b.template.register("core",b.Template,{id:null,type:"core",classes:"",on:{},lazy:!0,items:[],scrollParent:null,delay:0,throttle:50,shortpixel:!1,srcset:"data-srcset-fg",src:"data-src-fg",protected:!1,template:{},regex:{theme:/(?:\s|^)(fg-(?:light|dark|custom))(?:\s|$)/,loadingIcon:/(?:\s|^)(fg-loading-(?:default|bars|dots|partial|pulse|trail))(?:\s|$)/,hoverIcon:/(?:\s|^)(fg-hover-(?:zoom|zoom2|zoom3|plus|circle-plus|eye|external|tint))(?:\s|$)/,videoIcon:/(?:\s|^)(fg-video-(?:default|1|2|3|4))(?:\s|$)/,border:/(?:\s|^)(fg-border-(?:thin|medium|thick))(?:\s|$)/,hoverColor:/(?:\s|^)(fg-hover-(?:colorize|grayscale))(?:\s|$)/,hoverScale:/(?:\s|^)(fg-hover-scale)(?:\s|$)/,stickyVideoIcon:/(?:\s|^)(fg-video-sticky)(?:\s|$)/,insetShadow:/(?:\s|^)(fg-shadow-inset-(?:small|medium|large))(?:\s|$)/,filter:/(?:\s|^)(fg-filter-(?:1977|amaro|brannan|clarendon|earlybird|lofi|poprocket|reyes|toaster|walden|xpro2|xtreme))(?:\s|$)/}},{container:"foogallery"},{},-100)}(FooGallery.$,FooGallery,FooGallery.utils,FooGallery.utils.is,FooGallery.utils.fn,FooGallery.utils.str),function(a,b,c){a.Component=b.EventClass.extend({construct:function(a){this._super(),this.tmpl=a},destroy:function(){this.tmpl=null,this._super()}}),a.components=new a.Factory}(FooGallery,FooGallery.utils,FooGallery.utils.is),function(a,b,c,d,e,f){b.State=b.Component.extend({construct:function(a){var b=this;b._super(a),b.apiEnabled=!!window.history&&!!history.replaceState,b.opt=b.tmpl.opt.state,b.enabled=b.opt.enabled,b.current={filter:[],page:0,item:null},b.pushOrReplace=b.isPushOrReplace(b.opt.pushOrReplace)?b.opt.pushOrReplace:"replace",b.defaultMask="foogallery-gallery-{id}";var c=e.escapeRegExp(b.tmpl.id),d=e.escapeRegExp(b.getMasked()),f=e.escapeRegExp(b.opt.values),g=e.escapeRegExp(b.opt.pair);b.regex={exists:new RegExp("^#"+c+"\\"+f+".+?"),masked:new RegExp("^#"+d+"\\"+f+".+?"),values:new RegExp("(\\w+)"+g+"([^"+f+"]+)","g")}},destroy:function(a){var b=this;a||b.clear(),b.opt=b.regex={},b._super()},init:function(){this.set(this.initial())},getIdNumber:function(){return this.tmpl.id.match(/\d+/g)[0]},getMasked:function(){var a=this,b=e.contains(a.opt.mask,"{id}")?a.opt.mask:a.defaultMask;return e.format(b,{id:a.getIdNumber()})},isPushOrReplace:function(a){return-1!==c.inArray(a,["push","replace"])},exists:function(){return this.regex.values.lastIndex=0,
|
11 |
+
(this.regex.exists.test(location.hash)||this.regex.masked.test(location.hash))&&this.regex.values.test(location.hash)},parse:function(){var b=this,c=b.tmpl,d={};if(b.exists())if(b.enabled){d.id=b.tmpl.id,b.regex.values.lastIndex=0;var e=location.hash.match(b.regex.values);a.each(e,function(a,e){var f,g=e.split(b.opt.pair);if(2===g.length)switch(g[0]){case b.opt.itemKey:f=c.items.fromHash(g[1]),null!==f&&(d.item=f);break;case b.opt.pageKey:c.pages&&null!==(f=c.pages.fromHash(g[1]))&&(d.page=f);break;case b.opt.filterKey:c.filter&&null!==(f=c.filter.fromHash(g[1]))&&(d.filter=f)}})}else b.apiEnabled?history.replaceState(null,"",location.pathname+location.search):location.hash="#";return d},hashify:function(a){var b=this,c=b.tmpl;if(d.hash(a)){var e=[],f=c.items.toHash(a.item);return null!==f&&e.push(b.opt.itemKey+b.opt.pair+f),c.filter&&null!==(f=c.filter.toHash(a.filter))&&e.push(b.opt.filterKey+b.opt.pair+f),c.pages&&null!==(f=c.pages.toHash(a.page))&&e.push(b.opt.pageKey+b.opt.pair+f),e.length>0&&e.unshift("#"+b.getMasked()),e.join(b.opt.values)}return""},replace:function(a){var c=this;if(c.enabled&&c.apiEnabled){a.id=c.tmpl.id;var e=c.hashify(a),g=d.empty(e),h=f.extend({},a,{item:a.item instanceof b.Item?a.item.id:a.item});history.replaceState(g?null:h,"",g?location.pathname+location.search:e)}},push:function(a){var c=this;if(c.enabled&&c.apiEnabled){a.id=c.tmpl.id;var e=c.hashify(a),g=d.empty(e),h=f.extend({},a,{item:a.item instanceof b.Item?a.item.id:a.item});history.pushState(g?null:h,"",g?location.pathname+location.search:e)}},update:function(a,b){var c=this;c.enabled&&c.apiEnabled&&(b=c.isPushOrReplace(b)?b:c.pushOrReplace,c[b](a))},clear:function(){this.exists()&&this.replace({})},initial:function(){var a=this,b=a.parse();return d.empty(b)?a.get():f.extend({filter:[],page:1,item:null},b)},get:function(a){var c,d=this,e=d.tmpl,g={};return a instanceof b.Item&&(g.item=a),e.filter&&null!==(c=e.filter.getState())&&(g.filter=c),e.pages&&null!==(c=e.pages.getState())&&(g.page=c),f.extend({filter:[],page:1,item:null},g)},set:function(a){var c=this,e=c.tmpl;if(d.hash(a)){var g=f.extend({filter:[],page:1,item:null},a);e.items.reset();if(!e.trigger("before-state",[g]).isDefaultPrevented()){if(e.filter&&e.filter.setState(g),e.pages)e.pages.setState(g);else{var h=e.items.available();if(!e.items.isAll(h)){var i=e.items.not(h);e.items.detach(i)}e.items.create(h,!0)}g.item instanceof b.Item&&(c.opt.scrollTo&&g.item.scrollTo(),d.empty(a.item)||(a.item=null,c.replace(a))),c.current=g,e.trigger("after-state",[g])}}}}),b.template.configure("core",{state:{enabled:!1,scrollTo:!0,pushOrReplace:"replace",mask:"foogallery-gallery-{id}",values:"/",pair:":",array:"+",arraySeparator:",",itemKey:"i",filterKey:"f",pageKey:"p"}}),b.components.register("state",b.State)}(FooGallery.$,FooGallery,FooGallery.utils,FooGallery.utils.is,FooGallery.utils.str,FooGallery.utils.obj),function(a,b,c,d,e,f){b.Items=b.Component.extend({construct:function(a){var d=this;d.ALLOW_CREATE=!0,d.ALLOW_APPEND=!0,d._super(a),d._typeRegex=/(?:^|\s)?fg-type-(.*?)(?:$|\s)/,d._fetched=null,d._all=[],d._available=[],d._unavailable=[],d._observed=new Map;var e=d.tmpl.cls.item.caption;d.tmpl.sel.item.caption.all=c.selectify([e.elem,e.inner,e.title,e.description]),d.iobserver=new IntersectionObserver(function(a){d.tmpl.destroying||d.tmpl.destroyed||a.forEach(function(a){if(a.isIntersecting){var c=d._observed.get(a.target);c instanceof b.Item&&c.load()}})})},fromHash:function(a){return this.find(this._all,function(b){return b.id===a})},toHash:function(a){return a instanceof b.Item?a.id:null},destroy:function(){var b=this,c=b.all(),d=[];b.iobserver.disconnect(),c.length>0&&(b.tmpl.trigger("destroy-items",[c]),d=a.map(c,function(a){return a.destroy()?a:null}),d.length>0&&b.tmpl.trigger("destroyed-items",[d])),b._fetched=null,b._all=[],b._available=[],b._unavailable=[],b._observed.clear(),b._super()},fetch:function(b){var c=this;if(!b&&d.promise(c._fetched))return c._fetched;var e=c.tmpl.id+"_items",f=c.tmpl.sel,g=c.tmpl.opt.items,h=a.Deferred(),i=c.make(c.tmpl.$el.find(f.item.elem));return d.empty(g)?(d.array(window[e])&&i.push.apply(i,c.make(window[e])),h.resolve(i)):d.array(g)?(i.push.apply(i,c.make(g)),h.resolve(i)):d.string(g)?a.get(g).then(function(a){i.push.apply(i,c.make(a)),h.resolve(i)},function(a,b,c){console.log("FooGallery: GET items error.",g,a,b,c),h.resolve(i)}):h.resolve(i),h.then(function(a){c.setAll(a)}),c._fetched=h.promise()},toJSON:function(a){return(a?this.all():this.available()).map(function(a){return a.toJSON()})},all:function(){return this._all.slice()},count:function(a){return a?this.all().length:this.available().length},available:function(a){return d.fn(a)?this._available.filter(a,this):this._available.slice()},unavailable:function(a){return d.fn(a)?this._unavailable.filter(a,this):this._unavailable.slice()},setAll:function(a){this._all=d.array(a)?a:[],this._all.forEach(function(a,b){a.index=b,d.empty(a.id)&&(a.id=b+1+"")}),this._available=this.all(),this._unavailable=[]},setAvailable:function(a){var b=this;b._available=d.array(a)?a:[],b._all.length!==b._available.length?b._unavailable=b._all.filter(function(a){return-1===b._available.indexOf(a)}):b._unavailable=[]},reset:function(){this.setAvailable(this.all())},find:function(a,b){if(b=d.fn(b)?b:function(){return!0},d.array(a))for(var c=0,e=a.length;c<e;c++)if(!0===b.call(this,a[c]))return a[c];return null},not:function(a){var b=this.all();return d.array(a)?b.filter(function(b){return-1===a.indexOf(b)}):b},isAll:function(a){return!!d.array(a)&&this._all.length===a.length},first:function(a){return this.find(this._available,a)},last:function(a){return this.find(this._available.slice().reverse(),a)},next:function(a,c,e){if(!(a instanceof b.Item))return null;e=!!d.boolean(e)&&e;var f=this._available.slice(),g=f.indexOf(a);if(-1!==g){var h=f.slice(0,g);return f=f.slice(g+1),e&&(f=f.concat(h)),this.find(f,c)}return null},prev:function(a,c,e){if(!(a instanceof b.Item))return null;e=!!d.boolean(e)&&e;var f=this._available.slice().reverse(),g=f.indexOf(a);if(-1!==g){var h=f.slice(0,g);return f=f.slice(g+1),e&&(f=f.concat(h)),this.find(f,c)}return null},creatable:function(c){return this.ALLOW_CREATE&&d.array(c)?a.map(c,function(a){return a instanceof b.Item&&!a.isCreated?a:null}):[]},appendable:function(c){return this.ALLOW_APPEND&&d.array(c)?a.map(c,function(a){return a instanceof b.Item&&a.isCreated&&!a.isAttached?a:null}):[]},detachable:function(c){return d.array(c)?a.map(c,function(a){return a instanceof b.Item&&a.isCreated&&a.isAttached?a:null}):[]},jquerify:function(b){return a(a.map(b,function(a){return a.$el.get()}))},make:function(c){var e=this,g=[];if(d.jq(c)||d.array(c)){var h=[],i=a.makeArray(c);if(0===i.length)return g;e.tmpl.trigger("make-items",[i]).isDefaultPrevented()||(g=a.map(i,function(a){var c=e.type(a),g=f.extend(d.hash(a)?a:{},{type:c}),i=b.components.make(c,e.tmpl,g);return d.element(a)?i.parse(a)?(h.push(i),e.ALLOW_APPEND||i.detach(),i):null:i})),g.length>0&&e.tmpl.trigger("made-items",[g]),h.length>0&&e.tmpl.trigger("parsed-items",[h])}return g},type:function(a){var c,e=this;if(d.hash(a))c=a.type;else if(d.element(a)){var f=a.className.match(e._typeRegex);null!==f&&2===f.length&&(c=f[1])}return d.string(c)&&b.components.contains(c)?c:"image"},create:function(b,c){var e=this,f=[],g=e.creatable(b);if(g.length>0){e.tmpl.trigger("create-items",[g]).isDefaultPrevented()||(f=a.map(g,function(a){return a.create()?a:null})),f.length>0&&e.tmpl.trigger("created-items",[f])}return d.boolean(c)&&c?e.append(b):f},append:function(b){var c=this,d=[],e=c.appendable(b);if(e.length>0){c.tmpl.trigger("append-items",[e]).isDefaultPrevented()||(d=a.map(e,function(a){return a.append()?a:null})),d.length>0&&c.tmpl.trigger("appended-items",[d])}return d},detach:function(b){var c=this,d=[],e=c.detachable(b);if(e.length>0){c.tmpl.trigger("detach-items",[e]).isDefaultPrevented()||(d=a.map(e,function(a){return a.detach()?a:null})),d.length>0&&c.tmpl.trigger("detached-items",[d])}return d},observe:function(a){var b=this;!(b.iobserver&&a.isCreated&&a.isAttached)||a.isLoading&&a.isLoaded||(b.iobserver.observe(a.el),b._observed.set(a.el,a))},unobserve:function(a){var b=this;b.iobserver&&(b.iobserver.unobserve(a.el),b._observed.delete(a.el))}}),b.components.register("items",b.Items)}(FooGallery.$,FooGallery,FooGallery.utils,FooGallery.utils.is,FooGallery.utils.fn,FooGallery.utils.obj),function(a,b,c,d,e,f,g){b.Item=b.Component.extend({construct:function(a,b){var c=this;c._super(a),c.cls=a.cls.item,c.il8n=a.il8n.item,c.sel=a.sel.item,c.opt=f.extend({},a.opt.item,b),c.isAttached=!1,c.isCreated=!1,c.isDestroyed=!1,c.isLoading=!1,c.isLoaded=!1,c.isError=!1,c.isParsed=!1,c.isPicture=!1,c.$el=null,c.el=null,c.$inner=null,c.$anchor=null,c.$overlay=null,c.$wrap=null,c.$image=null,c.$caption=null,c.$loader=null,c.index=-1,c.type=c.opt.type,c.id=c.opt.id,c.productId=c.opt.productId,c.href=c.opt.href,c.placeholder=c.opt.placeholder,c.src=c.opt.src,c.srcset=c.opt.srcset,c.sources=c.opt.sources,c.width=c.opt.width,c.height=c.opt.height,c.title=c.opt.title,c.alt=c.opt.alt,c.caption=d.empty(c.opt.caption)?c.title:c.opt.caption,c.description=d.empty(c.opt.description)?c.alt:c.opt.description,c.attr=c.opt.attr,c.tags=c.opt.tags,c.maxCaptionLength=c.opt.maxCaptionLength,c.maxDescriptionLength=c.opt.maxDescriptionLength,c.showCaptionTitle=c.opt.showCaptionTitle,c.showCaptionDescription=c.opt.showCaptionDescription,c.noLightbox=c.opt.noLightbox,c.panelHide=c.opt.panelHide,c.exif=c.opt.exif,c.hasExif=d.exif(c.exif),c.ribbon=c.opt.ribbon,c.hasRibbon=d.hash(c.ribbon)&&d.string(c.ribbon.text)&&d.string(c.ribbon.type),c.buttons=c.opt.buttons,c._load=null,c._undo={classes:"",style:"",placeholder:!1}},destroy:function(){var a=this;return a.tmpl.trigger("destroy-item",[a]).isDefaultPrevented()||(a.isDestroyed=a.doDestroyItem()),a.isDestroyed&&(a.tmpl.trigger("destroyed-item",[a]),a._super()),a.isDestroyed},doDestroyItem:function(){var a=this;return a.isParsed?(a.$anchor.add(a.$caption).off("click.foogallery"),a.append(),a.tmpl.items.unobserve(a),d.empty(a._undo.classes)?a.$el.removeAttr("class"):a.$el.attr("class",a._undo.classes),d.empty(a._undo.style)?a.$el.removeAttr("style"):a.$el.attr("style",a._undo.style),a._undo.placeholder&&a.$image.prop("src")===a.placeholder&&a.$image.removeAttr("src")):a.isCreated&&(a.detach(),a.$el.remove()),!0},parse:function(b){var c=this,d=a(b);return!c.tmpl.trigger("parse-item",[c,d]).isDefaultPrevented()&&(c.isCreated=d.is(c.sel.elem))&&(c.isParsed=c.doParseItem(d)),c.isParsed&&(c.isLoaded||c.tmpl.items.observe(c),c.tmpl.trigger("parsed-item",[c])),c.isParsed},doParseItem:function(c){var e=this,h=e.cls,i=e.sel,j=c.get(0);if(e._undo.classes=c.attr("class")||"",e._undo.style=c.attr("style")||"",e.$el=c.data(b.DATA_ITEM,e),e.el=j,e.$inner=a(j.querySelector(i.inner)),e.$anchor=a(j.querySelector(i.anchor)).on("click.foogallery",{self:e},e.onAnchorClick),e.$image=a(j.querySelector(i.image)),e.$caption=a(j.querySelector(i.caption.elem)).on("click.foogallery",{self:e},e.onCaptionClick),e.$overlay=a(j.querySelector(i.overlay)),e.$wrap=a(j.querySelector(i.wrap)),e.$loader=a(j.querySelector(i.loader)),!(e.$el.length&&e.$inner.length&&e.$anchor.length&&e.$image.length))return console.error("FooGallery Error: Invalid HTML markup. Check the item markup for additional elements or malformed HTML in the title or description.",e),e.isError=!0,e.tmpl.trigger("error-item",[e]),0!==e.$el.length&&e.$el.remove(),!1;e.isAttached=null!==j.parentNode,e.isLoading=e.$el.hasClass(h.loading),e.isLoaded=e.$el.hasClass(h.loaded),e.isError=e.$el.hasClass(h.error);var k=e.$anchor.data();e.id=k.id||e.id,e.productId=k.productId||e.productId,e.tags=k.tags||e.tags,e.href=k.href||e.$anchor.attr("href")||e.href;var l;if(e.$image.is("picture")?(e.isPicture=!0,e.sources=e.$image.find("source").map(function(a,b){return{srcset:b.getAttribute(e.tmpl.opt.srcset),type:b.getAttribute("type"),media:b.getAttribute("media"),sizes:b.getAttribute("sizes")}}).get(),l=e.$image.find("img")):l=e.$image,e.src=l.attr(e.tmpl.opt.src)||e.src,e.srcset=l.attr(e.tmpl.opt.srcset)||e.srcset,e.width=parseInt(l.attr("width"))||e.width,e.height=parseInt(l.attr("height"))||e.height,e.title=l.attr("title")||e.title,e.alt=l.attr("alt")||e.alt,e.caption=k.title||k.captionTitle||e.caption,e.description=k.description||k.captionDesc||e.description,e.noLightbox=e.$anchor.hasClass(h.noLightbox),e.panelHide=e.$anchor.hasClass(h.panelHide),d.exif(k.exif)&&(e.exif=f.extend(e.exif,k.exif),e.hasExif=!0),e.maxCaptionLength>0){var m=g.trimTo(e.caption,e.maxCaptionLength);m!==e.caption&&e.$caption.find(i.caption.title).html(m)}if(e.maxDescriptionLength){var n=g.trimTo(e.description,e.maxDescriptionLength);n!==e.description&&e.$caption.find(i.caption.description).html(n)}var o=l.get(0);d.string(o.src)&&0!==o.src.length||(d.string(e.placeholder)&&0!==e.placeholder.length||(e.placeholder=e.createPlaceholder(e.width,e.height)),e.placeholder.length>0&&(o.src=e.placeholder,e._undo.placeholder=!0));var p=e.getTypeClass();return e.$el.hasClass(p)||e.$el.addClass(p),e.hasExif&&!e.$el.hasClass(h.exif)&&e.$el.addClass(h.exif),!e.isCreated||!e.isAttached||e.isLoading||e.isLoaded||e.isError||e.$el.hasClass(h.idle)||e.$el.addClass(h.idle),e.doShortPixel(),!0},create:function(){var a=this;if(!a.isCreated&&d.string(a.href)&&d.string(a.src)&&d.number(a.width)&&d.number(a.height)){a.tmpl.trigger("create-item",[a]).isDefaultPrevented()||(a.isCreated=a.doCreateItem()),a.isCreated&&a.tmpl.trigger("created-item",[a])}return a.isCreated},_setAttributes:function(a,b){Object.keys(b).forEach(function(c){d.empty(b[c])||a.setAttribute(c,d.string(b[c])?b[c]:JSON.stringify(b[c]))})},doShortPixel:function(){function a(a,b,c){return"/"===b||"/"===c?"/":b}var c=this;if(c.tmpl.opt.shortpixel&&!b.supportsWebP){var d=/([\/,+])to_webp([\/,+])/i;c.href=c.href.replace(d,a),c.src=c.src.replace(d,a),c.srcset=c.srcset.replace(d,a)}},doCreateItem:function(){var e=this,f=e.cls,h=e.attr,i=e.hasExif?f.exif:"";e.isLoaded=!e.tmpl.opt.lazy,e.isPicture=e.sources.length>0,e.doShortPixel();var j=document.createElement("div");e._setAttributes(j,h.elem),j.className=[f.elem,e.getTypeClass(),i,e.isLoaded?f.loaded:f.idle].join(" ");var k=document.createElement("figure");e._setAttributes(k,h.inner),k.className=f.inner;var l=[f.anchor];e.noLightbox&&l.push(f.noLightbox),e.panelHide&&l.push(f.panelHide);var m=document.createElement("a");e._setAttributes(m,h.anchor),e._setAttributes(m,{class:l.join(" "),href:e.href,"data-id":e.id,"data-type":e.type,"data-title":e.caption,"data-description":e.description,"data-tags":e.tags,"data-exif":e.exif,"data-product-id":e.productId}),d.string(e.placeholder)&&0!==e.placeholder.length||(e.placeholder=e.createPlaceholder(e.width,e.height));var n=document.createElement("img");e._setAttributes(n,h.image);var o={class:f.image,src:e.placeholder,width:e.width+"",height:e.height+"",title:e.title,alt:e.alt};e.isLoaded?(o.src=e.src,o.srcset=e.srcset):(o[e.tmpl.opt.src]=e.src,o[e.tmpl.opt.srcset]=e.srcset),e._setAttributes(n,o);var p;e.isPicture&&(p=document.createElement("picture"),e._setAttributes(p,h.picture),e.sources.forEach(function(a){var b=document.createElement("source"),c={media:a.media,sizes:a.sizes,type:a.type};e.isLoaded?c.srcset=a.srcset:c[e.tmpl.opt.srcset]=a.srcset,e._setAttributes(b,c),p.appendChild(b)}),p.appendChild(n));var q;if(e.hasRibbon){q=document.createElement("div"),q.className=e.ribbon.type;var r=document.createElement("span");r.innerHTML=e.ribbon.text,q.appendChild(r)}var s=document.createElement("span");s.className=f.overlay;var t=document.createElement("span");t.className=f.wrap;var u=document.createElement("div");u.className=f.loader;var v=document.createElement("figcaption");e._setAttributes(v,h.caption.elem),v.className=f.caption.elem;var w=document.createElement("div");e._setAttributes(w,h.caption.inner),w.className=f.caption.inner;var x=null,y=e.showCaptionTitle&&d.string(e.caption)&&e.caption.length>0;y&&(x=document.createElement("div"),e._setAttributes(x,h.caption.title),x.className=f.caption.title,x.innerHTML=e.maxCaptionLength>0?g.trimTo(e.caption,e.maxCaptionLength):e.caption,w.appendChild(x));var z=null,A=e.showCaptionDescription&&d.string(e.description)&&e.description.length>0;A&&(z=document.createElement("div"),e._setAttributes(z,h.caption.description),z.className=f.caption.description,z.innerHTML=e.maxDescriptionLength>0?g.trimTo(e.description,e.maxDescriptionLength):e.description,w.appendChild(z));var B=null,C=d.array(e.buttons)&&e.buttons.length>0;return C&&(B=document.createElement("div"),B.className=f.caption.buttons,c.each(e.buttons,function(a){if(d.hash(a)&&d.string(a.text)){var b=document.createElement("a");b.innerHTML=a.text,d.string(a.url)&&a.url.length>0&&(b.href=a.url),d.string(a.rel)&&a.rel.length>0&&(b.rel=a.rel),d.string(a.target)&&a.target.length>0&&(b.target=a.target),d.string(a.classes)&&a.classes.length>0&&(b.className=a.classes),d.hash(a.attr)&&e._setAttributes(b,a.attr),B.appendChild(b)}}),w.appendChild(B)),v.appendChild(w),e.isPicture?t.appendChild(p):t.appendChild(n),m.appendChild(s),m.appendChild(t),k.appendChild(m),(y||A||C)&&k.appendChild(v),e.hasRibbon&&j.appendChild(q),j.appendChild(k),j.appendChild(u),e.$el=a(j).data(b.DATA_ITEM,e),e.el=j,e.$inner=a(k),e.$anchor=a(m).on("click.foogallery",{self:e},e.onAnchorClick),e.$overlay=a(s),e.$wrap=a(t),e.isPicture?e.$image=a(p):e.$image=a(n),e.$caption=a(v).on("click.foogallery",{self:e},e.onCaptionClick),e.$loader=a(u),!0},append:function(){var a=this;if(a.isCreated&&!a.isAttached){a.tmpl.trigger("append-item",[a]).isDefaultPrevented()||(a.tmpl.$el.append(a.$el.removeClass(a.cls.hidden)),a.isAttached=!0),a.isAttached&&(a.isLoaded||a.tmpl.items.observe(a),a.tmpl.trigger("appended-item",[a]))}return a.isAttached},detach:function(){var a=this;if(a.isCreated&&a.isAttached){a.tmpl.items.unobserve(a);a.tmpl.trigger("detach-item",[a]).isDefaultPrevented()||(a.$el.detach().removeClass(a.cls.hidden),a.isAttached=!1),a.isAttached||a.tmpl.trigger("detached-item",[a])}return!a.isAttached},load:function(){var b=this;return d.promise(b._load)?b._load:b._load=a.Deferred(function(a){return b.isLoaded?a.resolve(b):b.isCreated&&b.isAttached?b.tmpl.trigger("load-item",[b]).isDefaultPrevented()?a.reject("default prevented"):(b.isLoading=!0,b.tmpl.items.unobserve(b),b.$el.removeClass(b.cls.idle).removeClass(b.cls.hidden).removeClass(b.cls.loaded).removeClass(b.cls.error).addClass(b.cls.loading),void b.loadIMG().then(function(){b.isLoading=!1,b.isLoaded=!0,b.$el.removeClass(b.cls.loading).addClass(b.cls.loaded),b.tmpl.trigger("loaded-item",[b]),a.resolve(b)},function(c){b.isLoading=!1,b.isError=!0,b.$el.removeClass(b.cls.loading).addClass(b.cls.error),b.tmpl.trigger("error-item",[b]),a.reject(c)})):a.reject("not created or attached")}).promise()},loadIMG:function(){var b=this;return new a.Deferred(function(a){var c=b.isPicture?b.$image.find("img").get(0):b.$image.get(0);if(!c)return a.reject("Unable to find img element.");var e=c.src,f=c.srcset;c.onload=function(){c.onload=c.onerror=null,a.resolve(c)},c.onerror=function(){c.onload=c.onerror=null,d.empty(e)?c.removeAttribute("src"):c.src=e,d.empty(f)?c.removeAttribute("srcset"):c.srcset=f,a.reject(c)},b.isPicture&&b.$image.find("source").each(function(a,c){var e=c.getAttribute(b.tmpl.opt.srcset);d.empty(e)||(c.srcset=e)}),c.src=b.src,d.empty(b.srcset)||(c.srcset=b.srcset),c.complete&&c.onload()}).promise()},createPlaceholder:function(a,b){return d.number(a)&&d.number(b)?"data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22"+a+"%22%20height=%22"+b+"%22%20viewBox=%220%200%20"+a+"%20"+b+"%22%3E%3C/svg%3E":""},getTypeClass:function(){return this.cls.types[this.type]||""},scrollTo:function(a){var b=this;if(b.isAttached){var c=b.$el.get(0);c.scrollIntoViewIfNeeded?c.scrollIntoViewIfNeeded():c.scrollIntoView("top"===a)}return b},updateState:function(){this.tmpl.state.update(this.tmpl.state.get(this))},toJSON:function(){return{type:this.type,id:this.id,productId:this.productId,href:this.href,src:this.src,srcset:this.srcset,width:this.width,height:this.height,alt:this.alt,title:this.title,caption:this.caption,description:this.description,tags:this.tags.slice(),maxCaptionLength:this.maxCaptionLength,maxDescriptionLength:this.maxDescriptionLength,showCaptionTitle:this.showCaptionTitle,showCaptionDescription:this.showCaptionDescription,noLightbox:this.noLightbox,panelHide:this.panelHide,attr:f.extend({},this.attr)}},onAnchorClick:function(a){var b=a.data.self;b.tmpl.trigger("anchor-click-item",[b]).isDefaultPrevented()?a.preventDefault():b.updateState()},onCaptionClick:function(b){var c=b.data.self;!c.tmpl.trigger("caption-click-item",[c]).isDefaultPrevented()&&c.$anchor.length>0&&!a(b.target).is("a[href],:input")&&c.$anchor.get(0).click()}}),b.template.configure("core",{item:{type:"item",id:"",href:"",placeholder:"",src:"",srcset:"",sources:[],width:0,height:0,title:"",alt:"",caption:"",description:"",tags:[],maxCaptionLength:0,maxDescriptionLength:0,showCaptionTitle:!0,showCaptionDescription:!0,noLightbox:!1,panelHide:!1,buttons:[],ribbon:{type:null,text:null},exif:{aperture:null,camera:null,created_timestamp:null,shutter_speed:null,focal_length:null,iso:null,orientation:null},attr:{elem:{},inner:{},anchor:{},image:{},picture:{},caption:{elem:{},inner:{},title:{},description:{}}}}},{item:{elem:"fg-item",inner:"fg-item-inner",exif:"fg-item-exif",anchor:"fg-thumb",overlay:"fg-image-overlay",wrap:"fg-image-wrap",image:"fg-image",loader:"fg-loader",idle:"fg-idle",loading:"fg-loading",loaded:"fg-loaded",error:"fg-error",hidden:"fg-hidden",noLightbox:"fg-no-lightbox",panelHide:"fg-panel-hide",types:{item:"fg-type-unknown"},caption:{elem:"fg-caption",inner:"fg-caption-inner",title:"fg-caption-title",description:"fg-caption-desc",buttons:"fg-caption-buttons",button:"fg-caption-button"}}},{item:{exif:{aperture:"Aperture",camera:"Camera",created_timestamp:"Date",shutter_speed:"Exposure",focal_length:"Focal Length",iso:"ISO",orientation:"Orientation"}}}),b.components.register("item",b.Item)}(FooGallery.$,FooGallery,FooGallery.utils,FooGallery.utils.is,FooGallery.utils.fn,FooGallery.utils.obj,FooGallery.utils.str),function(a,b,c,d){b.Image=b.Item.extend({}),b.template.configure("core",null,{item:{types:{image:"fg-type-image"}}}),b.components.register("image",b.Image)}(FooGallery.$,FooGallery,FooGallery.utils,FooGallery.utils.is),function(a,b,c,d){a.PagingFactory=a.Factory.extend({construct:function(){this.registered={}},register:function(a,c,d,e,f,g,h){var i=this,j=i._super(a,c,h);if(j){var k=i.registered;k[a].ctrl=b.fn(d)?d:null,k[a].opt=b.hash(e)?e:{},k[a].cls=b.hash(f)?f:{},k[a].il8n=b.hash(g)?g:{}}return j},type:function(a){var c,d=this;return b.hash(a)&&b.hash(c=a.paging)&&b.string(c.type)&&d.contains(c.type)?c.type:null},merge:function(a){a=d.extend({},a);var c=this,e=c.type(a),f=c.registered,g=f.default.opt,h=f.default.cls,i=f.default.il8n,j=b.hash(a.paging)?a.paging:{},k=b.hash(a.cls)&&b.hash(a.cls.paging)?d.extend({},a.cls.paging):{},l=b.hash(a.il8n)&&b.hash(a.il8n.paging)?d.extend({},a.il8n.paging):{};return b.hash(a.cls)||(a.cls={}),b.hash(a.il8n)||(a.il8n={}),"default"!==e&&c.contains(e)?(a.paging=d.extend({},g,f[e].opt,j,{type:e}),a.cls=d.extend(a.cls,{paging:h},{paging:f[e].cls},{paging:k}),a.il8n=d.extend(a.il8n,{paging:i},{paging:f[e].il8n},{paging:l})):(a.paging=d.extend({},g,j,{type:e}),a.cls=d.extend(a.cls,{paging:h},{paging:k}),a.il8n=d.extend(a.il8n,{paging:i},{paging:l})),a},configure:function(a,b,c,e){var f=this;if(f.contains(a)){var g=f.registered;d.extend(g[a].opt,b),d.extend(g[a].cls,c),d.extend(g[a].il8n,e)}},hasCtrl:function(a){var c=this,d=c.registered[a];return b.hash(d)&&b.fn(d.ctrl)},makeCtrl:function(a,c,d,e){var f=this,g=f.registered[a];return b.hash(g)&&b.fn(g.ctrl)?new g.ctrl(c,d,e):null}}),a.paging=new a.PagingFactory}(FooGallery,FooGallery.utils.is,FooGallery.utils.fn,FooGallery.utils.obj),function(a,b,c,d){b.Paging=b.Component.extend({construct:function(a){var b=this;b._super(a),b.opt=b.tmpl.opt.paging,b.cls=b.tmpl.cls.paging,b.il8n=b.tmpl.il8n.paging,b.sel=b.tmpl.sel.paging,b.pushOrReplace=b.opt.pushOrReplace,b.type=b.opt.type,b.theme=b.opt.theme,b.size=b.opt.size,b.position=b.opt.position,b.scrollToTop=b.opt.scrollToTop,b.current=0,b.total=0,b.ctrls=[],b._pages=[]},init:function(){},fromHash:function(a){var b=parseInt(a);return isNaN(b)?null:b},toHash:function(a){return d.number(a)&&a>0?a.toString():null},getState:function(){return this.isValid(this.current)?this.current:null},setState:function(a){this.rebuild();var b=!1;a.item&&!this.contains(a.page,a.item)&&(a.page=this.find(a.item),a.page=0!==a.page?a.page:1,b=!0),this.set(a.page,b,!1,!1)},destroy:function(){var b=this;b._pages.splice(0,b._pages.length),a.each(b.ctrls.splice(0,b.ctrls.length),function(a,b){b.destroy()}),b._super()},build:function(){var a=this,c=a.tmpl.items.available();a.total=a.size>0&&c.length>0?Math.ceil(c.length/a.size):1;for(var d=0;d<a.total;d++)a._pages.push(c.splice(0,a.size));if(a.total>1&&b.paging.hasCtrl(a.type)){var e,f,g=a.position;"both"!==g&&"top"!==g||(e=b.paging.makeCtrl(a.type,a.tmpl,a,"top"),e.create()&&(e.append(),a.ctrls.push(e))),"both"!==g&&"bottom"!==g||(f=b.paging.makeCtrl(a.type,a.tmpl,a,"bottom"),f.create()&&(f.append(),a.ctrls.push(f)))}},rebuild:function(){var b=this;b.current=0,b.total=0,b._pages.splice(0,b._pages.length),a.each(b.ctrls.splice(0,b.ctrls.length),function(a,b){b.destroy()}),b.build()},all:function(){return this._pages.slice()},available:function(){return this.get(this.current)},controls:function(b){var c=this;c.isValid(b)&&a.each(c.ctrls,function(a,c){c.update(b)})},isValid:function(a){return d.number(a)&&a>0&&a<=this.total},number:function(a){return this.isValid(a)?a:0===this.current?1:this.current},create:function(a,b){var c=this;a=c.number(a);var d,e=a-1,f=c._pages[e];d=b?c.tmpl.items.all():c._pages.reduce(function(a,b,c){return c===e?a:a.concat(b)},c.tmpl.items.unavailable()),c.current=a,c.tmpl.items.detach(d),c.tmpl.items.create(f,!0)},get:function(a){var b=this;return b.isValid(a)?(a=b.number(a),b._pages[a-1]):[]},set:function(a,b,c,e){var f=this;if(f.isValid(a)){f.controls(a);var g,h=f.number(a);if(h!==f.current){var i=f.current,j=function(){if(c=!d.boolean(c)||c,e=!!d.boolean(e)&&e,c&&1===f.current&&!f.tmpl.state.exists()&&(g=f.tmpl.state.get(),f.tmpl.state.update(g,f.pushOrReplace)),f.create(h,e),c&&(g=f.tmpl.state.get(),f.tmpl.state.update(g,f.pushOrReplace)),f.tmpl.trigger("page-change",[f.current,i,e]),f.scrollToTop&&d.boolean(b)&&b){var a=f.get(f.current);a.length>0&&a[0].scrollTo("top")}f.tmpl.trigger("after-page-change",[f.current,i,e])};return!f.tmpl.trigger("before-page-change",[f.current,h,j,e]).isDefaultPrevented()&&(j(),!0)}}return!1},find:function(a){for(var b=this,d=0,e=b._pages.length;d<e;d++)if(-1!==c.inArray(a,b._pages[d]))return d+1;return 0},contains:function(a,b){var d=this.get(a);return-1!==c.inArray(b,d)},first:function(){this.goto(1)},last:function(){this.goto(this._pages.length)},prev:function(){this.goto(this.current-1)},next:function(){this.goto(this.current+1)},goto:function(a){this.set(a,!0)}}),b.PagingControl=b.Component.extend({construct:function(a,b,c){var d=this;d._super(a),d.pages=b,d.position=c,d.$container=null,d._containerExisted=!1,d._placeholderClasses=[]},create:function(){var b=this;return b.$container=a("#"+b.tmpl.id+"_paging-"+b.position),b.$container.length>0?(b._containerExisted=!0,b.$container.removeClass(function(a,c){return b._placeholderClasses=c.match(/(^|\s)fg-ph-\S+/g)||[],b._placeholderClasses.join(" ")}).addClass([b.pages.cls.container,b.pages.theme].join(" "))):b.$container=a("<nav/>",{class:[b.pages.cls.container,b.pages.theme].join(" ")}),!0},destroy:function(){var a=this;a._containerExisted?a.$container.empty().removeClass().addClass(a._placeholderClasses.join(" ")):a.$container.remove(),a.$container=null},append:function(){var a=this;a._containerExisted||("top"===a.position?a.$container.insertBefore(a.tmpl.$el):a.$container.insertAfter(a.tmpl.$el))},update:function(a){}}),b.paging.register("default",b.Paging,null,{type:"none",theme:"fg-light",size:30,pushOrReplace:"push",position:"none",scrollToTop:!0},{container:"fg-paging-container"},null,-100)}(FooGallery.$,FooGallery,FooGallery.utils,FooGallery.utils.is),function(a,b,c,d){b.Dots=b.Paging.extend({}),b.DotsControl=b.PagingControl.extend({construct:function(a,b,c){this._super(a,b,c),this.$list=null,this.$items=null},create:function(){var b=this;if(b._super()){for(var c,d=b.pages.cls,e=b.pages.il8n,f=[],g=a("<ul/>",{class:d.list}),h=0,i=b.pages.total;h<i;h++)f.push(c=b.createItem(h+1,e.page)),g.append(c);return b.$list=g,b.$items=a(a.map(f,function(a){return a.get()})),b.$container.append(g),!0}return!1},destroy:function(){var b=this,c=b.pages.sel;b.$list.find(c.link).off("click.foogallery",b.onLinkClick),b.$list=a(),b.$items=a(),b._super()},update:function(a){this.setSelected(a-1)},setSelected:function(b){var c=this,e=c.pages.cls,f=c.pages.il8n,g=c.pages.sel;c.$items.filter(g.selected).removeClass(e.selected).each(function(b,c){var e=a(c),f=e.data("label"),h=e.find(g.reader);d.string(f)&&0!==h.length&&h.html(f)}),c.$items.eq(b).addClass(e.selected).each(function(b,c){var e=a(c),h=e.find(g.reader),i=h.html();d.string(i)&&0!==h.length&&(e.data("label",i),h.html(f.current))})},createItem:function(b,c,e,f,g){e=d.string(e)?e:b,c=d.string(c)?c:"";var h=this,i=h.pages.opt,j=h.pages.cls,k=a("<a/>",{class:j.link,href:"#page-"+b}).html(e).on("click.foogallery",{self:h,page:b},h.onLinkClick);d.empty(c)||k.attr("title",c.replace(/\{PAGE}/g,b).replace(/\{LIMIT}/g,i.limit+"")),g=d.string(g)?g:c,d.empty(g)||k.prepend(a("<span/>",{class:j.reader,text:g.replace(/\{PAGE}/g,"").replace(/\{LIMIT}/g,i.limit+"")}));var l=a("<li/>",{class:j.item}).append(k);return f=d.string(f)?f:"",d.empty(f)||l.addClass(f),l},onLinkClick:function(b){b.preventDefault();var c=b.data.self,d=b.data.page,e=c.pages.sel;a(this).closest(e.item).is(e.disabled)||c.pages.set(d,!0)}}),b.paging.register("dots",b.Dots,b.DotsControl,{type:"dots",position:"both",pushOrReplace:"push"},{list:"fg-dots",item:"fg-dot-item",link:"fg-dot-link",disabled:"fg-disabled",selected:"fg-selected",visible:"fg-visible",reader:"fg-sr-only"},{current:"Current page",page:"Page {PAGE}"})}(FooGallery.$,FooGallery,FooGallery.utils,FooGallery.utils.is),function(a,b,c){b.DefaultTemplate=b.Template.extend({}),b.template.register("default",b.DefaultTemplate,null,{container:"foogallery fg-default"})}(FooGallery.$,FooGallery,FooGallery.utils),function(a,b,c,d){b.MasonryTemplate=b.Template.extend({construct:function(a,b){var c=this;c._super(a,b),c.masonry=null,c.on({"pre-init":c.onPreInit,destroyed:c.onDestroyed,"appended-items":c.onAppendedItems,"detach-item":c.onDetachItem,"layout after-filter-change":c.onLayoutRequired,"page-change":c.onPageChange},c)},onPreInit:function(){var a=this,b=a.sel,c=a.$el.hasClass("fg-fixed");a.template.isFitWidth=c,a.template.percentPosition=!c,a.template.transitionDuration=0,a.template.itemSelector=b.item.elem,c||(a.template.gutter=b.gutterWidth,a.template.columnWidth=b.columnWidth),a.masonry=new Masonry(a.el,a.template)},onDestroyed:function(){var a=this;a.masonry instanceof Masonry&&a.masonry.destroy()},onLayoutRequired:function(){this.masonry.layout()},onPageChange:function(a,b,c,d){d||this.masonry.layout()},onAppendedItems:function(a,b){var c=this,d=b.map(function(a){return a.el}),e=c.masonry.addItems(d);c.masonry.layoutItems(e,!0)},onDetachItem:function(a,b){a.isDefaultPrevented()||(a.preventDefault(),this.masonry.remove(b.el),b.$el.removeClass(this.cls.hidden),b.isAttached=!1)}}),b.template.register("masonry",b.MasonryTemplate,{template:{}},{container:"foogallery fg-masonry",columnWidth:"fg-column-width",gutterWidth:"fg-gutter-width"})}(FooGallery.$,FooGallery,FooGallery.utils,FooGallery.utils.is),function(a,b,c,d){
|
12 |
+
b.Justified=c.Class.extend({construct:function(c,d){var e=this;e.tmpl=c,e.$el=c.$el,e.options=a.extend(!0,{},b.Justified.defaults,d),e._items=[],e.maxRowHeight=0,e.borderSize=0,e.align=-1!==["left","center","right"].indexOf(e.options.align)?e.options.align:"center"},init:function(){var a=this;a.maxRowHeight=a.getMaxRowHeight(a.options.maxRowHeight,a.options.rowHeight),a.borderSize=a.getBorderSize()},destroy:function(){this.$el.removeAttr("style")},getBorderSize:function(){switch(this.tmpl.getCSSClass("border","")){case"fg-border-thin":return 4;case"fg-border-medium":return 10;case"fg-border-thick":return 16;default:return 0}},getMaxRowHeight:function(a,b){if(d.string(a)){var c=parseInt(a);return isNaN(c)?b:c<=0?1/0:-1!==a.indexOf("%")?b*(c/100):c}return d.number(a)?a<=0?1/0:a:b},layout:function(a){var b=this;if(d.number(a)||(a=b.$el.width()),a>0){var c=b.createRows(a);0!==c.height&&c.rows.length>0&&(b.$el.height(c.height),c.rows.forEach(function(a,d){b.render(a,d===c.rows.length-1)}))}},render:function(a,b){var c=this,d=!b&&"justify"!==c.options.lastRow;a.items.forEach(function(b){b.elem&&(a.visible?(b.elem.style.setProperty("position","absolute"),b.elem.style.setProperty("width",b.width+"px"),b.elem.style.setProperty("height",b.height+"px"),b.elem.style.setProperty("top",b.top+"px"),b.elem.style.setProperty("left",b.left+"px"),b.elem.style.setProperty("margin","0"),b.elem.style.removeProperty("display"),c.maxRowHeight>0&&d?b.elem.style.setProperty("max-height",c.maxRowHeight+2*c.borderSize+"px"):b.elem.style.removeProperty("max-height"),b.elem.classList.contains("fg-positioned")||b.elem.classList.add("fg-positioned")):b.elem.style.setProperty("display","none"))})},justify:function(a,b,c,d){var e=this,f=e.options.margins,g=f*(a.items.length-1),h=c-g,i=a.width-g,j=h/i;if(a.width=i*j,a.height=a.height*j,a.height>d+2*e.borderSize){var k=(d+2*e.borderSize)/a.height;a.width=a.width*k,a.height=a.height*k}a.top=b,a.left=0,"left"!==e.align&&a.width<h&&("right"===e.align?a.left=h-a.width:a.left=(h-a.width)/2),a.width+=g;var l=a.left;return a.items.forEach(function(c,d){d>0&&(l+=f),c.left=l,c.top=b;var e=a.height/c.height;c.width=c.width*e,c.height=c.height*e,l+=c.width}),a.height},createRows:function(a){function b(){return{index:++h,visible:!0,width:0,height:d.options.rowHeight+2*d.borderSize,top:0,left:0,items:[]}}function c(a,b){var c=a.width,e=a.height;if(e!==b){var f=b/e;e*=f,c*=f}var g=d.maxRowHeight/b,h=c*g,i=e*g;return{__item:a,elem:a.el,width:c,height:e,maxWidth:h,maxHeight:i,top:0,left:0}}var d=this,e=d.options.margins,f=d.tmpl.getAvailable(),g=[],h=-1,i=b(),j=0,k=0;if(f.forEach(function(f){var h=c(f,i.height);if(i.width+h.width>a&&i.items.length>0){g.length>0&&(j+=e);var l=d.justify(i,j,a,d.maxRowHeight);l>k&&(k=l),j+=l,g.push(i),i=b()}i.items.length>0&&(i.width+=e),i.width+=h.width,i.items.push(h)}),i.items.length>0){var l,m=j+e;switch(d.options.lastRow){case"smart":if(l=d.justify(i,m,a,d.maxRowHeight),0!==k&&l>k){var n=k/l,o=i.width*n/a;(n<.9||o<.9)&&(l=d.justify(i,m,a,k-2*d.borderSize))}break;case"justify":l=d.justify(i,m,a,99999);break;case"hide":l=d.justify(i,m,a,d.maxRowHeight),i.width<a&&(i.visible=!1)}i.visible&&(j+=l+e),g.push(i)}return{height:j,rows:g}}}),b.Justified.defaults={rowHeight:150,maxRowHeight:"200%",margins:0,align:"center",lastRow:"smart"}}(FooGallery.$,FooGallery,FooGallery.utils,FooGallery.utils.is),function(a,b){b.JustifiedTemplate=b.Template.extend({construct:function(a,b){var c=this;c._super(a,b),c.justified=null,c.on({"pre-init":c.onPreInit,init:c.onInit,destroyed:c.onDestroyed,"layout after-filter-change":c.onLayoutRequired,"page-change":c.onPageChange},c)},onPreInit:function(){var a=this;a.justified=new b.Justified(a,a.template)},onInit:function(){this.justified.init()},onDestroyed:function(){var a=this;a.justified instanceof b.Justified&&a.justified.destroy()},onLayoutRequired:function(){this.justified.layout(this.lastWidth)},onPageChange:function(a,b,c,d){d||this.justified.layout(this.lastWidth)}}),b.template.register("justified",b.JustifiedTemplate,null,{container:"foogallery fg-justified"})}(FooGallery.$,FooGallery),function(a,b){b.JustifiedCSSTemplate=b.Template.extend({}),b.template.register("justified-css",b.JustifiedCSSTemplate,null,{container:"foogallery fg-justified-css"})}(FooGallery.$,FooGallery),function(a,b,c,d,e){b.PortfolioTemplate=b.Template.extend({}),b.template.register("simple_portfolio",b.PortfolioTemplate,{},{container:"foogallery fg-simple_portfolio"})}(FooGallery.$,FooGallery,FooGallery.utils,FooGallery.utils.is,FooGallery.utils.fn),function(a,b,c,d){b.ImageViewerTemplate=b.Template.extend({construct:function(b,c){var e=this;e._super(d.extend({},b,{paging:{pushOrReplace:"replace",theme:"fg-light",type:"default",size:1,position:"none",scrollToTop:!1}}),c),e.$inner=a(),e.$current=a(),e.$total=a(),e.$prev=a(),e.$next=a(),e.on({"pre-init":e.onPreInit,init:e.onInit,destroy:e.onDestroy,"append-item":e.onAppendItem,"after-page-change":e.onAfterPageChange,"after-filter-change":e.onAfterFilterChange},e)},createChildren:function(){var b=this;return a("<div/>",{class:b.cls.inner}).append(a("<div/>",{class:b.cls.innerContainer}),a("<div/>",{class:b.cls.controls}).append(a("<div/>",{class:b.cls.prev}).append(a("<span/>",{text:b.il8n.prev})),a("<label/>",{class:b.cls.count,text:b.il8n.count}).prepend(a("<span/>",{class:b.cls.countCurrent,text:"0"})).append(a("<span/>",{class:b.cls.countTotal,text:"0"})),a("<div/>",{class:b.cls.next}).append(a("<span/>",{text:b.il8n.next}))))},destroyChildren:function(){var a=this;a.$el.find(a.sel.inner).remove()},onPreInit:function(a){var b=this;b.$inner=b.$el.find(b.sel.innerContainer),b.$current=b.$el.find(b.sel.countCurrent),b.$total=b.$el.find(b.sel.countTotal),b.$prev=b.$el.find(b.sel.prev),b.$next=b.$el.find(b.sel.next)},onInit:function(a){var b=this;b.template.attachFooBox&&b.$el.on("foobox.previous",{self:b},b.onFooBoxPrev).on("foobox.next",{self:b},b.onFooBoxNext),b.$prev.on("click",{self:b},b.onPrevClick),b.$next.on("click",{self:b},b.onNextClick)},onDestroy:function(a){var b=this;b.template.attachFooBox&&b.$el.off({"foobox.previous":b.onFooBoxPrev,"foobox.next":b.onFooBoxNext}),b.$prev.off("click",b.onPrevClick),b.$next.off("click",b.onNextClick)},onAppendItem:function(a,b){a.preventDefault(),this.$inner.append(b.$el),b.isAttached=!0},onAfterPageChange:function(a,b,c,d){d||this.update()},onAfterFilterChange:function(a){this.update()},update:function(){this.pages&&(this.$current.text(this.pages.current),this.$total.text(this.pages.total))},prev:function(){this.pages&&(this.template.loop&&1===this.pages.current?this.pages.last():this.pages.prev(),this.update())},next:function(){this.pages&&(this.template.loop&&this.pages.current===this.pages.total?this.pages.first():this.pages.next(),this.update())},onFooBoxPrev:function(a){a.data.self.prev()},onFooBoxNext:function(a){a.data.self.next()},onPrevClick:function(a){a.preventDefault(),a.stopPropagation(),a.data.self.prev()},onNextClick:function(a){a.preventDefault(),a.stopPropagation(),a.data.self.next()}}),b.template.register("image-viewer",b.ImageViewerTemplate,{template:{attachFooBox:!1,loop:!1}},{container:"foogallery fg-image-viewer",inner:"fiv-inner",innerContainer:"fiv-inner-container",controls:"fiv-ctrls",prev:"fiv-prev",next:"fiv-next",count:"fiv-count",countCurrent:"fiv-count-current",countTotal:"fiv-count-total"},{prev:"Prev",next:"Next",count:"of"})}(FooGallery.$,FooGallery,FooGallery.utils,FooGallery.utils.obj),function(a,b,c){b.ThumbnailTemplate=b.Template.extend({construct:function(a,b){this._super(c.extend({},a,{filtering:{type:"none"},paging:{pushOrReplace:"replace",theme:"fg-light",type:"default",size:1,position:"none",scrollToTop:!1}}),b)}}),b.template.register("thumbnail",b.ThumbnailTemplate,null,{container:"foogallery fg-thumbnail"})}(FooGallery.$,FooGallery,FooGallery.utils.obj),function(a,b,c,d,e,f){b.StackAlbum=c.Class.extend({construct:function(c,f){var g=this;g.$el=d.jq(c)?c:a(c),g.el=g.$el.get(0),g.opt=e.extend({},b.StackAlbum.defaults,f,g.$el.data("foogallery")),g.$back=g.$el.find(".fg-header-back"),g.$active=g.$el.find(".fg-header-active"),g.$piles=g.$el.find(".fg-piles"),g.piles=g.$piles.find(".fg-pile").map(function(a,c){return new b.StackAlbum.Pile(g,c,{index:a})}).get(),g.ignoreResize=!1,g.robserver=new ResizeObserver(function(){!g.ignoreResize&&g.$el.is(":visible")&&g.layout(!0)})},init:function(){var a=this;a.piles.forEach(function(a){a.init()}),a.$back.on("click.foogallery",{self:a},a.onBackClick),a.robserver.observe(a.el)},destroy:function(){var a=this;a.robserver.disconnect(),a.$back.off(".foogallery"),a.piles.forEach(function(a){a.destroy()})},getLayoutInfo:function(){var a=this,b=a.opt.gutter+2*a.opt.border;return{maxWidth:a.$el.width(),space:b,halfSpace:b/2,itemWidth:a.opt.itemWidth,itemHeight:a.opt.itemHeight,itemOuterWidth:a.opt.itemWidth+2*a.opt.border,itemOuterHeight:a.opt.itemHeight+2*a.opt.border,blockWidth:a.opt.itemWidth+b,blockHeight:a.opt.itemHeight+b,border:a.opt.border,doubleBorder:2*a.opt.border,gutter:a.opt.gutter,halfGutter:a.opt.gutter/2}},layout:function(a){var b,c=this;a&&(c.$el.addClass("fg-disable-transitions"),c.$el.prop("offsetWidth")),c.hasActive?(b=c.activePile.layout(),c.activePile.setPosition(0,0,b.width,b.height),c.$piles.css({width:b.width+"px",height:b.height+"px"})):(b=c.layoutPiles(),c.$piles.css({width:b.width+"px",height:b.height+"px"})),a&&c.$el.removeClass("fg-disable-transitions")},layoutPiles:function(a){var b=this,c=b.getLayoutInfo(),e=0,f=1,g=0;return a=d.fn(a)?a:function(){},b.piles.forEach(function(b){var d=e;(e+=c.blockWidth)>c.maxWidth&&(d=0,e=c.blockWidth,f++);var h=c.blockHeight*(f-1);a(b,h,d,c.blockWidth,c.blockHeight),b.setPosition(h,d,c.blockWidth,c.blockHeight),e>g&&(g=e)}),{width:g,height:c.blockHeight*f}},setActive:function(a){var c,d=this,e=d.activePile,g=e instanceof b.StackAlbum.Pile;a=a instanceof b.StackAlbum.Pile?a:null,d.activePile=a,d.hasActive=null!==a,g&&e.collapse(),d.ignoreResize=!0,d.hasActive?(d.piles.forEach(function(b){b!==a&&b.hide(d.activePile)}),c=d.activePile.expand(),d.$active.text(a.title),d.$el.addClass("fg-has-active")):(c=d.layoutPiles(function(a){a.show()}),d.$el.removeClass("fg-has-active")),f.start(d.$piles,function(a){a.css({width:c.width+"px",height:c.height+"px"})},null,350).then(function(){d.ignoreResize=!1})},onBackClick:function(a){a.preventDefault(),a.stopPropagation(),a.data.self.setActive(null)}}),b.StackAlbum.defaults={gutter:50,itemWidth:150,itemHeight:150,border:10,angleStep:1,randomAngle:!1}}(FooGallery.$,FooGallery,FooGallery.utils,FooGallery.utils.is,FooGallery.utils.obj,FooGallery.utils.transition),function(a,b,c,d,e){b.StackAlbum.Pile=c.Class.extend({construct:function(c,f,g){var h=this;h.album=c,h.$el=d.jq(f)?f:a(f),h.opt=e.extend({},b.StackAlbum.Pile.defaults,g,h.$el.data()),h.title=h.opt.title,h.items=h.$el.find(".fg-pile-item").map(function(a,c){return new b.StackAlbum.Item(h,c,{index:a})}).get(),h.$cover=a("<div/>",{class:"fg-pile-cover"}).append(a("<div/>",{class:"fg-pile-cover-content"}).append(a("<span/>",{class:"fg-pile-cover-title",text:h.opt.title}),a("<span/>",{class:"fg-pile-cover-count",text:h.items.length}))),h.top=0,h.left=0,h.isExpanded=!1},init:function(){var a=this,b=a.album.opt,c=a.getAngles(b.angleStep),d=b.randomAngle?a.randomAngle(c):b.angleStep;a.$cover.on("click.foogallery",{self:a},a.onCoverClick),a.items.forEach(function(e,f){e.init(),f>3||(0===f?(e.$el.addClass("fg-has-cover").append(a.$cover),e.load()):(f%2==0?e.setAngle(-d):e.setAngle(d),b.randomAngle?d=a.randomAngle(c):d+=b.angleStep))})},destroy:function(){var a=this;a.$cover.remove(),a.items.forEach(function(a,b){0===b&&a.$el.removeClass("fg-has-cover"),a.destroy()})},getAngles:function(a){for(var b=[],c=1;c<=3;c++)b.push(c*a);return b},randomAngle:function(a){var b=a.length,c=Math.floor(Math.random()*(b-0)+0),d=a.splice(c,1);return 1===d.length?d[0]:0},setPosition:function(a,b,c,e){var f=this;f.top=a,f.left=b,d.number(c)&&d.number(e)?f.$el.css({top:a+"px",left:b+"px",width:c+"px",height:e+"px"}):f.$el.css({top:a+"px",left:b+"px"})},layout:function(){var a=this,b=a.album.getLayoutInfo(),c=0,d=1,e=!1,f=0;return a.items.forEach(function(a){(c+=b.halfGutter)>b.maxWidth&&(c=b.halfGutter,d++,e=!0);var g=c;c+=b.itemOuterWidth+b.halfGutter,!e&&c>b.maxWidth&&(g=b.halfGutter,c=b.blockWidth,d++);var h=b.blockHeight*(d-1)+b.halfGutter;e=!1,a.setPosition(h,g,b.itemOuterWidth,b.itemOuterHeight),a.isLoaded||a.load(),c>f&&(f=c)}),{width:f,height:b.blockHeight*d}},expand:function(){var a,b=this;return b.$el.removeClass("fg-collapsed").addClass("fg-expanded"),a=b.layout(),b.setPosition(0,0,a.width,a.height),b.isExpanded=!0,a},collapse:function(){var a=this,b=a.album.getLayoutInfo();a.$el.removeClass("fg-expanded").addClass("fg-collapsed"),a.items.forEach(function(a){a.setPosition(b.halfGutter,b.halfGutter,b.itemOuterWidth,b.itemOuterHeight)});var c={width:b.blockWidth,height:b.blockHeight};return a.setPosition(0,0,c.width,c.height),a.isExpanded=!1,c},show:function(){this.$el.removeClass("fg-hidden fg-expanded fg-collapsed")},hide:function(a){var c=this;a instanceof b.StackAlbum.Pile&&c.setPosition(a.top,a.left),c.$el.addClass("fg-hidden")},onCoverClick:function(a){a.preventDefault(),a.stopPropagation();var b=a.data.self;b.album.setActive(b)}}),b.StackAlbum.Pile.defaults={index:-1,title:null}}(FooGallery.$,FooGallery,FooGallery.utils,FooGallery.utils.is,FooGallery.utils.obj),function(a,b,c,d,e){b.StackAlbum.Item=c.Class.extend({construct:function(c,f,g){var h=this;h.$el=d.jq(f)?f:a(f),h.opt=e.extend({},b.StackAlbum.Item.defaults,g,h.$el.data()),h.$thumb=h.$el.find(".fg-pile-item-thumb"),h.$image=h.$el.find(".fg-pile-item-image"),h.isLoaded=!1,h.isLoading=!1,h._loading=null},init:function(){},destroy:function(){},setAngle:function(a){this.$el.css({transform:"rotate("+a+"deg)"})},setPosition:function(a,b,c,d){this.$el.css({top:a+"px",left:b+"px",width:c+"px",height:d+"px"})},load:function(){var b=this;return d.promise(b._loading)?b._loading:b._loading=a.Deferred(function(a){b.$el.addClass("fg-loading"),b.isLoading=!0,b.$image.on({"load.foogallery":function(){b.$image.off(".foogallery"),b.$el.removeClass("fg-loading"),b.isLoading=!1,b.isLoaded=!0,a.resolve()},"error.foogallery":function(){b.$image.off(".foogallery"),b.$el.removeClass("fg-loading"),b.isLoading=!1,b.isLoaded=!0,a.reject()}}),b.$image.prop("src",b.$image.attr(b.opt.src)).prop("srcset",b.$image.attr(b.opt.srcset))}).promise()}}),b.StackAlbum.Item.defaults={index:-1,src:"data-src-fg",srcset:"data-srcset-fg"}}(FooGallery.$,FooGallery,FooGallery.utils,FooGallery.utils.is,FooGallery.utils.obj),function(a,b,c){a.fn.foogalleryStackAlbum=function(c){return this.each(function(c,d){var e=a(d),f=e.data("__FooGalleryAlbum__");f instanceof b.StackAlbum&&f.destroy(),f=new b.StackAlbum(e),f.init(),e.data("__FooGalleryAlbum__",f)})},b.loadStackAlbums=b.reloadStackAlbums=function(){a(function(){a(".foogallery-stack-album:not(.fg-ready)").foogalleryStackAlbum()}),c.ready(function(){a(".foogallery-stack-album.fg-ready").foogalleryStackAlbum()})},b.loadStackAlbums()}(FooGallery.$,FooGallery,FooGallery.utils),function(a,b,c,d,e){b.triggerPostLoad=function(c,d,e,f){var g=c.target;if(g instanceof b.Template&&g.initialized&&("after-page-change"===c.type&&!f||"after-filter-change"===c.type))try{if(g.$el.parents(".fbx-item").length>0)return;if(g.$el.hasClass("fbx-instance")&&window.FOOBOX&&a.fn.foobox){var h=a.extend({},window.FOOBOX.o,g.opt.protected?{images:{noRightClick:!0}}:{});g.$el.foobox(h)}else a("body").trigger("post-load")}catch(a){console.error(a)}},b.autoDefaults={on:{"after-page-change after-filter-change":b.triggerPostLoad}},b.autoEnabled=!0,b.auto=function(a){b.autoDefaults=d.merge(b.autoDefaults,a)},b.globalsMerged=!1,b.mergeGlobals=function(){if(!0!==b.globalsMerged&&window.FooGallery_il8n&&e.object(window.FooGallery_il8n)){var a=window.FooGallery_il8n;for(var c in a)if(a.hasOwnProperty(c)&&b[c]instanceof b.Factory&&e.object(a[c]))for(var d in a[c])a[c].hasOwnProperty(d)&&b[c].configure(d,null,null,a[c][d]);b.globalsMerged=!0}},b.load=b.reload=function(){a(function(){b.mergeGlobals(),b.autoEnabled&&a('[id^="foogallery-gallery-"]:not(.fg-ready)').foogallery(b.autoDefaults)}),c.ready(function(){b.mergeGlobals(),b.autoEnabled&&a('[id^="foogallery-gallery-"].fg-ready').foogallery(b.autoDefaults)})},b.load()}(FooGallery.$,FooGallery,FooGallery.utils,FooGallery.utils.obj,FooGallery.utils.is);
|
extensions/default-templates/simple-portfolio/class-simple-portfolio-gallery-template.php
CHANGED
@@ -16,7 +16,7 @@ if ( !class_exists( 'FooGallery_Simple_Portfolio_Gallery_Template' ) ) {
|
|
16 |
add_filter( 'foogallery_gallery_templates_files', array( $this, 'register_myself' ) );
|
17 |
|
18 |
//add extra fields to the templates
|
19 |
-
add_filter( 'foogallery_override_gallery_template_fields-simple_portfolio', array( $this, '
|
20 |
|
21 |
//override specific settings when saving the gallery
|
22 |
add_filter( 'foogallery_save_gallery_settings-simple_portfolio', array( $this, 'override_settings'), 10, 3 );
|
@@ -155,7 +155,7 @@ if ( !class_exists( 'FooGallery_Simple_Portfolio_Gallery_Template' ) ) {
|
|
155 |
*
|
156 |
* @return array
|
157 |
*/
|
158 |
-
function
|
159 |
$new_fields[] = array(
|
160 |
'id' => 'caption_position',
|
161 |
'title' => __('Caption Position', 'foogallery'),
|
16 |
add_filter( 'foogallery_gallery_templates_files', array( $this, 'register_myself' ) );
|
17 |
|
18 |
//add extra fields to the templates
|
19 |
+
add_filter( 'foogallery_override_gallery_template_fields-simple_portfolio', array( $this, 'adjust_fields' ), 101, 2 );
|
20 |
|
21 |
//override specific settings when saving the gallery
|
22 |
add_filter( 'foogallery_save_gallery_settings-simple_portfolio', array( $this, 'override_settings'), 10, 3 );
|
155 |
*
|
156 |
* @return array
|
157 |
*/
|
158 |
+
function adjust_fields( $fields, $template ) {
|
159 |
$new_fields[] = array(
|
160 |
'id' => 'caption_position',
|
161 |
'title' => __('Caption Position', 'foogallery'),
|
foogallery.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
/*
|
4 |
Plugin Name: FooGallery
|
5 |
Description: FooGallery is the most intuitive and extensible gallery management tool ever created for WordPress
|
6 |
-
Version: 2.
|
7 |
Author: FooPlugins
|
8 |
Plugin URI: https://fooplugins.com/foogallery/
|
9 |
Author URI: https://fooplugins.com
|
@@ -25,7 +25,7 @@ if ( function_exists( 'foogallery_fs' ) ) {
|
|
25 |
define( 'FOOGALLERY_PATH', plugin_dir_path( __FILE__ ) );
|
26 |
define( 'FOOGALLERY_URL', plugin_dir_url( __FILE__ ) );
|
27 |
define( 'FOOGALLERY_FILE', __FILE__ );
|
28 |
-
define( 'FOOGALLERY_VERSION', '2.
|
29 |
define( 'FOOGALLERY_SETTINGS_VERSION', '2' );
|
30 |
require_once FOOGALLERY_PATH . 'includes/constants.php';
|
31 |
// Create a helper function for easy SDK access.
|
@@ -160,16 +160,9 @@ if ( function_exists( 'foogallery_fs' ) ) {
|
|
160 |
// init the default media library datasource.
|
161 |
new FooGallery_Datasource_MediaLibrary();
|
162 |
$pro_code_included = false;
|
163 |
-
|
164 |
if ( !$pro_code_included ) {
|
165 |
add_filter( 'foogallery_extensions_for_view', array( $this, 'add_foogallery_pro_extension' ) );
|
166 |
-
// only include if in admin.
|
167 |
-
if ( is_admin() ) {
|
168 |
-
// include PRO promotion.
|
169 |
-
new FooGallery_Pro_Promotion();
|
170 |
-
}
|
171 |
}
|
172 |
-
|
173 |
// init Gutenberg!
|
174 |
new FooGallery_Gutenberg();
|
175 |
// init advanced settings.
|
@@ -257,7 +250,7 @@ if ( function_exists( 'foogallery_fs' ) ) {
|
|
257 |
*/
|
258 |
public function freemius_plugin_icon( $icon )
|
259 |
{
|
260 |
-
return FOOGALLERY_PATH . 'assets/foogallery.
|
261 |
}
|
262 |
|
263 |
/**
|
3 |
/*
|
4 |
Plugin Name: FooGallery
|
5 |
Description: FooGallery is the most intuitive and extensible gallery management tool ever created for WordPress
|
6 |
+
Version: 2.1.18
|
7 |
Author: FooPlugins
|
8 |
Plugin URI: https://fooplugins.com/foogallery/
|
9 |
Author URI: https://fooplugins.com
|
25 |
define( 'FOOGALLERY_PATH', plugin_dir_path( __FILE__ ) );
|
26 |
define( 'FOOGALLERY_URL', plugin_dir_url( __FILE__ ) );
|
27 |
define( 'FOOGALLERY_FILE', __FILE__ );
|
28 |
+
define( 'FOOGALLERY_VERSION', '2.1.18' );
|
29 |
define( 'FOOGALLERY_SETTINGS_VERSION', '2' );
|
30 |
require_once FOOGALLERY_PATH . 'includes/constants.php';
|
31 |
// Create a helper function for easy SDK access.
|
160 |
// init the default media library datasource.
|
161 |
new FooGallery_Datasource_MediaLibrary();
|
162 |
$pro_code_included = false;
|
|
|
163 |
if ( !$pro_code_included ) {
|
164 |
add_filter( 'foogallery_extensions_for_view', array( $this, 'add_foogallery_pro_extension' ) );
|
|
|
|
|
|
|
|
|
|
|
165 |
}
|
|
|
166 |
// init Gutenberg!
|
167 |
new FooGallery_Gutenberg();
|
168 |
// init advanced settings.
|
250 |
*/
|
251 |
public function freemius_plugin_icon( $icon )
|
252 |
{
|
253 |
+
return FOOGALLERY_PATH . 'assets/foogallery.jpg';
|
254 |
}
|
255 |
|
256 |
/**
|
includes/admin/class-admin.php
CHANGED
@@ -31,6 +31,9 @@ if ( ! class_exists( 'FooGallery_Admin' ) ) {
|
|
31 |
new FooGallery_Attachment_Fields();
|
32 |
new FooGallery_Admin_Notices();
|
33 |
$foogallery_admin_datasource_instance = new FooGallery_Admin_Gallery_Datasources();
|
|
|
|
|
|
|
34 |
}
|
35 |
|
36 |
function init() {
|
31 |
new FooGallery_Attachment_Fields();
|
32 |
new FooGallery_Admin_Notices();
|
33 |
$foogallery_admin_datasource_instance = new FooGallery_Admin_Gallery_Datasources();
|
34 |
+
|
35 |
+
// include PRO promotion.
|
36 |
+
new FooGallery_Pro_Promotion();
|
37 |
}
|
38 |
|
39 |
function init() {
|
includes/admin/class-gallery-metabox-settings-helper.php
CHANGED
@@ -116,6 +116,9 @@ if ( ! class_exists( 'FooGallery_Admin_Gallery_MetaBox_Settings_Helper' ) ) {
|
|
116 |
if ( $is_promo ) {
|
117 |
$field_class .= ' foogallery_template_field_promo';
|
118 |
}
|
|
|
|
|
|
|
119 |
$field_row_data_html = '';
|
120 |
if ( isset( $field['row_data'] ) ) {
|
121 |
$field_row_data = array_map( 'esc_attr', $field['row_data'] );
|
@@ -134,12 +137,19 @@ if ( ! class_exists( 'FooGallery_Admin_Gallery_MetaBox_Settings_Helper' ) ) {
|
|
134 |
<?php } else if ( 'promo' === $field_type ) { ?>
|
135 |
<td colspan="2">
|
136 |
<div class="foogallery-promo">
|
|
|
137 |
<?php echo '<strong>' . $field['title'] . '</strong><br /><br />'; ?>
|
138 |
<?php
|
139 |
echo $field['desc'];
|
140 |
if ( array_key_exists( 'cta_text', $field ) ) {
|
141 |
echo '<a class="button-primary" href="' . $field['cta_link'] . '" target="_blank">' . $field['cta_text'] . '</a>';
|
142 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
143 |
?>
|
144 |
</div>
|
145 |
</td>
|
116 |
if ( $is_promo ) {
|
117 |
$field_class .= ' foogallery_template_field_promo';
|
118 |
}
|
119 |
+
if ( array_key_exists( 'class', $field ) ) {
|
120 |
+
$field_class .= ' ' . $field['class'];
|
121 |
+
}
|
122 |
$field_row_data_html = '';
|
123 |
if ( isset( $field['row_data'] ) ) {
|
124 |
$field_row_data = array_map( 'esc_attr', $field['row_data'] );
|
137 |
<?php } else if ( 'promo' === $field_type ) { ?>
|
138 |
<td colspan="2">
|
139 |
<div class="foogallery-promo">
|
140 |
+
<button class="foogallery-admin-promo-dismiss notice-dismiss"></button>
|
141 |
<?php echo '<strong>' . $field['title'] . '</strong><br /><br />'; ?>
|
142 |
<?php
|
143 |
echo $field['desc'];
|
144 |
if ( array_key_exists( 'cta_text', $field ) ) {
|
145 |
echo '<a class="button-primary" href="' . $field['cta_link'] . '" target="_blank">' . $field['cta_text'] . '</a>';
|
146 |
}
|
147 |
+
if ( array_key_exists( 'cta', $field ) ) {
|
148 |
+
foreach ( $field['cta'] as $cta ) {
|
149 |
+
$button_class = isset( $cta['class'] ) ? $cta['class'] : 'button-primary';
|
150 |
+
echo '<a class="' . $button_class . '" href="' . $cta['link'] . '" target="_blank">' . $cta['text'] . '</a>';
|
151 |
+
}
|
152 |
+
}
|
153 |
?>
|
154 |
</div>
|
155 |
</td>
|
includes/admin/class-pro-promotion.php
CHANGED
@@ -10,6 +10,7 @@ if ( ! class_exists( 'FooGallery_Pro_Promotion' ) ) {
|
|
10 |
'foogallery-pagination' => 'https://fooplugins.com/foogallery/gallery-pagination/',
|
11 |
'foogallery-filtering' => 'https://fooplugins.com/foogallery/wordpress-filtered-gallery/',
|
12 |
'foogallery-hover-presets' => 'https://fooplugins.com/foogallery/hover-presets/',
|
|
|
13 |
'foogallery-lightbox' => 'https://fooplugins.com/foogallery/foogallery-pro-lightbox/',
|
14 |
'foogallery-thumbnail-filters' => 'https://fooplugins.com/foogallery/thumbnail-filters/',
|
15 |
'foogallery-loaded-effects' => 'https://fooplugins.com/foogallery/animated-loaded-effects/',
|
@@ -17,9 +18,16 @@ if ( ! class_exists( 'FooGallery_Pro_Promotion' ) ) {
|
|
17 |
'foogallery-grid' => 'https://fooplugins.com/foogallery/wordpress-grid-gallery/',
|
18 |
'foogallery-slider' => 'https://fooplugins.com/foogallery/wordpress-slider-gallery/',
|
19 |
'foogallery-videos' => 'https://fooplugins.com/foogallery/wordpress-video-gallery/',
|
|
|
|
|
20 |
'foogallery-trial' => 'https://fooplugins.com/foogallery/start-trial/',
|
21 |
-
'foogallery-pricing' => 'https://fooplugins.com/foogallery
|
|
|
22 |
'foobox-pro' => 'https://fooplugins.com/foobox/',
|
|
|
|
|
|
|
|
|
23 |
);
|
24 |
|
25 |
function __construct() {
|
@@ -35,50 +43,192 @@ if ( ! class_exists( 'FooGallery_Pro_Promotion' ) ) {
|
|
35 |
add_filter( 'foogallery_admin_settings_override', array( $this, 'include_promo_settings' ) );
|
36 |
|
37 |
if ( $this->can_show_promo() ) {
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
79 |
}
|
80 |
}
|
81 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
82 |
function add_datasources_css() {
|
83 |
?>
|
84 |
<style>
|
@@ -164,30 +314,35 @@ if ( ! class_exists( 'FooGallery_Pro_Promotion' ) ) {
|
|
164 |
);
|
165 |
}
|
166 |
|
167 |
-
function render_datasource_modal_content( $datasouce_title, $datasource_desc,
|
|
|
|
|
|
|
|
|
168 |
?>
|
169 |
-
<div class="foogallery_template_field_type-promo">
|
170 |
<div class="foogallery-promo">
|
171 |
-
<strong><?php _e('
|
172 |
<br><br>
|
173 |
<?php echo $datasource_desc; ?>
|
174 |
<br><br>
|
175 |
-
<?php echo $this->build_promo_trial_html( 'datasources' ); ?>
|
176 |
<br><br>
|
177 |
-
<a class="button-primary" href="<?php echo esc_url( $
|
|
|
178 |
</div>
|
179 |
</div>
|
180 |
<?php
|
181 |
}
|
182 |
|
183 |
/**
|
184 |
-
* Add the promotion datasources
|
185 |
*
|
186 |
* @param $datasources
|
187 |
*
|
188 |
* @return mixed
|
189 |
*/
|
190 |
-
function
|
191 |
$datasources['media_tags_promo'] = array(
|
192 |
'id' => 'media_tags_promo',
|
193 |
'name' => __( 'Media Tags', 'foogallery' ),
|
@@ -281,10 +436,13 @@ if ( ! class_exists( 'FooGallery_Pro_Promotion' ) ) {
|
|
281 |
*
|
282 |
* @return string
|
283 |
*/
|
284 |
-
private function build_promo_trial_html( $promotion ) {
|
|
|
|
|
|
|
285 |
$trial_link = '<a href="' . $this->build_url('foogallery-trial', $promotion ) . '" target="_blank">' . __('start a 7 day free trial', 'foogallery') . '</a>';
|
286 |
-
$pro_link = '<a href="' .
|
287 |
-
return sprintf( __('To try the
|
288 |
}
|
289 |
|
290 |
/**
|
@@ -328,14 +486,13 @@ if ( ! class_exists( 'FooGallery_Pro_Promotion' ) ) {
|
|
328 |
if ( $template && array_key_exists( 'paging_support', $template ) && true === $template['paging_support'] ) {
|
329 |
$fields[] = array(
|
330 |
'id' => 'promo_paging',
|
331 |
-
'title' => __( '
|
332 |
'desc' => __( 'Besides the dot pagination, you can also add more advanced pagination to your galleries with a large number of images or videos:', 'foogallery' ) .
|
333 |
'<ul class="ul-disc"><li><strong>' . __('Numbered' ,'foogallery') . '</strong> ' . __( 'adds a numbered pagination control to top or bottom of your gallery.', 'foogallery' ) .
|
334 |
'</li><li><strong>' . __('Infinite Scroll' ,'foogallery') . '</strong> ' . __( 'adds the popular \'infinite scroll\' capability to your gallery, so as your visitors scroll, the gallery will load more items.', 'foogallery' ) .
|
335 |
'</li><li><strong>' . __('Load More' ,'foogallery') . '</strong> ' . __( 'adds a \'Load More\' button to the end of your gallery. When visitors click the button, the next set of items will load in the gallery.', 'foogallery' ) .
|
336 |
-
'</li></ul>' . $this->build_promo_trial_html( 'pagination' ) . '<br /><br />',
|
337 |
-
'
|
338 |
-
'cta_link' => $this->build_url( 'foogallery-pagination' ),
|
339 |
'section' => __( 'Paging', 'foogallery' ),
|
340 |
'type' => 'promo',
|
341 |
'row_data'=> array(
|
@@ -362,52 +519,14 @@ if ( ! class_exists( 'FooGallery_Pro_Promotion' ) ) {
|
|
362 |
function add_preset_type( $choices ) {
|
363 |
$choices['promo-presets'] = array(
|
364 |
'label' => __( 'Preset', 'foogallery' ),
|
365 |
-
'tooltip' => __('Choose from 11 stylish hover effect presets in
|
366 |
-
'class' => 'foogallery-promo',
|
367 |
'icon' => 'dashicons-star-filled'
|
368 |
);
|
369 |
|
370 |
return $choices;
|
371 |
}
|
372 |
|
373 |
-
/**
|
374 |
-
* Return the index of the requested section
|
375 |
-
*
|
376 |
-
* @param $fields
|
377 |
-
* @param $section
|
378 |
-
*
|
379 |
-
* @return int
|
380 |
-
*/
|
381 |
-
private function find_index_of_section( $fields, $section ) {
|
382 |
-
$index = 0;
|
383 |
-
foreach ( $fields as $field ) {
|
384 |
-
if ( isset( $field['section'] ) && $section === $field['section'] ) {
|
385 |
-
return $index;
|
386 |
-
}
|
387 |
-
$index++;
|
388 |
-
}
|
389 |
-
return $index;
|
390 |
-
}
|
391 |
-
|
392 |
-
/**
|
393 |
-
* Return the index of the requested field
|
394 |
-
*
|
395 |
-
* @param $fields
|
396 |
-
* @param $field_id
|
397 |
-
*
|
398 |
-
* @return int
|
399 |
-
*/
|
400 |
-
private function find_index_of_field( $fields, $field_id ) {
|
401 |
-
$index = 0;
|
402 |
-
foreach ( $fields as $field ) {
|
403 |
-
if ( isset( $field['id'] ) && $field_id === $field['id'] ) {
|
404 |
-
return $index;
|
405 |
-
}
|
406 |
-
$index++;
|
407 |
-
}
|
408 |
-
return $index;
|
409 |
-
}
|
410 |
-
|
411 |
/**
|
412 |
* Add the fields for presets promos
|
413 |
*
|
@@ -418,18 +537,19 @@ if ( ! class_exists( 'FooGallery_Pro_Promotion' ) ) {
|
|
418 |
* @return array
|
419 |
*/
|
420 |
function add_preset_promo_fields( $fields, $template ) {
|
421 |
-
$index_of_hover_effect_preset_field =
|
422 |
|
423 |
$new_fields[] = array(
|
424 |
'id' => 'hover_effect_preset_promo_help',
|
425 |
-
'title' => __( '
|
426 |
'desc' => __( 'There are 11 stylish hover effect presets to choose from, which takes all the hard work out of making your galleries look professional and elegant.', 'foogallery' ) .
|
427 |
'<br />' . __( 'Some of the effects like "Sarah" add subtle colors on hover, while other effects like "Layla" and "Oscar" add different shapes to the thumbnail.', 'foogallery') .
|
428 |
-
'<br />' . __(' You really need to see all the different effects in action to appreciate them.', 'foogallery' ) . '<br /><br />' .
|
429 |
-
|
430 |
-
'
|
431 |
-
'section' => __( 'Hover Effects', 'foogallery' ),
|
432 |
'type' => 'promo',
|
|
|
|
|
433 |
'row_data' => array(
|
434 |
'data-foogallery-hidden' => true,
|
435 |
'data-foogallery-show-when-field' => 'hover_effect_type',
|
@@ -442,6 +562,34 @@ if ( ! class_exists( 'FooGallery_Pro_Promotion' ) ) {
|
|
442 |
return $fields;
|
443 |
}
|
444 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
445 |
/**
|
446 |
* Add filtering fields to the gallery templates
|
447 |
*
|
@@ -455,8 +603,8 @@ if ( ! class_exists( 'FooGallery_Pro_Promotion' ) ) {
|
|
455 |
function add_filtering_promo_fields( $fields, $template ) {
|
456 |
if ( $template && array_key_exists( 'filtering_support', $template ) && true === $template['filtering_support'] ) {
|
457 |
$fields[] = array(
|
458 |
-
'id' => '
|
459 |
-
'title' => __( '
|
460 |
'section' => __( 'Filtering', 'foogallery' ),
|
461 |
'desc' => __( 'Add frontend filtering to your gallery, simply by assigning media tags or media categories to your gallery attachments. Other filtering features include:', 'foogallery' ) .
|
462 |
'<ul class="ul-disc"><li><strong>' . __('Filter Source' ,'foogallery') . '</strong> - ' . __( 'choose to filter the gallery by tag or category, or any other attachment taxonomy.', 'foogallery' ) .
|
@@ -464,9 +612,8 @@ if ( ! class_exists( 'FooGallery_Pro_Promotion' ) ) {
|
|
464 |
'</li><li><strong>' . __('Selection Mode' ,'foogallery') . '</strong> - ' . __( 'allow your visitors to select a single or multiple filters. Multiple also supports union or intersection modes.', 'foogallery' ) .
|
465 |
'</li><li><strong>' . __('Show Counters' ,'foogallery') . '</strong> - ' . __( 'show the number of items in each tag filter.', 'foogallery' ) .
|
466 |
'</li><li><strong>' . __('Adjust Size & Opacity' ,'foogallery') . '</strong> - ' . __( 'adjust the size and opacity of each filter based on the number of items.', 'foogallery' ) .
|
467 |
-
'</li></ul>' . $this->build_promo_trial_html( 'filtering' ). '<br /><br />',
|
468 |
-
'
|
469 |
-
'cta_link' => $this->build_url( 'foogallery-filtering' ),
|
470 |
'type' => 'promo',
|
471 |
'row_data' => array(
|
472 |
'data-foogallery-change-selector' => 'input',
|
@@ -486,7 +633,7 @@ if ( ! class_exists( 'FooGallery_Pro_Promotion' ) ) {
|
|
486 |
*
|
487 |
* @return string
|
488 |
*/
|
489 |
-
function
|
490 |
if ( 'filtering' === $section_slug ) {
|
491 |
return 'dashicons-filter';
|
492 |
}
|
@@ -495,11 +642,15 @@ if ( ! class_exists( 'FooGallery_Pro_Promotion' ) ) {
|
|
495 |
return 'dashicons-grid-view';
|
496 |
}
|
497 |
|
|
|
|
|
|
|
|
|
498 |
return $section_slug;
|
499 |
}
|
500 |
|
501 |
/**
|
502 |
-
* Add the
|
503 |
* @param $lightboxes
|
504 |
*
|
505 |
* @return mixed
|
@@ -535,21 +686,21 @@ if ( ! class_exists( 'FooGallery_Pro_Promotion' ) ) {
|
|
535 |
|
536 |
$field_promo[] = array(
|
537 |
'id' => 'lightbox_promo',
|
538 |
-
'title' => __( '
|
539 |
'desc' => __( 'We built a brand new lightbox from the ground up, that works perfectly with your galleries. With 20+ settings to customize the lightbox, including:', 'foogallery' ) .
|
540 |
'<ul class="ul-disc"><li><strong>' . __( 'Custom Colors', 'foogallery' ) . '</strong> - ' . __( 'Set your theme and choose your colors! Customize the lightbox colors for each gallery.', 'foogallery' ) .
|
541 |
'</li><li><strong>' . __( 'Thumbnail Strip', 'foogallery' ) . '</strong> - ' . __( 'Easily view and navigate through all the images in the gallery without closing the lightbox. Plus, you can also show captions for the thumbs!', 'foogallery' ) .
|
542 |
'</li><li><strong>' . __( 'Auto Progress', 'foogallery' ) . '</strong> - ' . __( 'Set the lightbox to auto-progress to the next available image in the gallery after a certain time delay.', 'foogallery' ) .
|
543 |
'</li><li><strong>' . __( 'Unique Lightbox Per Gallery', 'foogallery' ) . '</strong> - ' . __( 'Make each of your galleries unique by customizing the lightbox per gallery.', 'foogallery' ) .
|
544 |
-
'</li></ul>' . $this->build_promo_trial_html( 'lightbox' ) . '<br /><br />',
|
545 |
'section' => __( 'Lightbox', 'foogallery' ),
|
|
|
546 |
'type' => 'promo',
|
547 |
-
'
|
548 |
-
'cta_link' => $this->build_url( 'foogallery-lightbox' )
|
549 |
);
|
550 |
|
551 |
//find the index of the first Hover Effect field
|
552 |
-
$index =
|
553 |
|
554 |
array_splice( $fields, $index, 0, $field_promo );
|
555 |
|
@@ -583,7 +734,7 @@ if ( ! class_exists( 'FooGallery_Pro_Promotion' ) ) {
|
|
583 |
$lightbox_desc .= '<li><strong>' . __( 'FooBox PRO', 'foogallery' ) . '</strong> - ' . __( 'The stand-alone PRO version of our Lightbox plugin with tons of extra features including social sharing.', 'foogallery' ) . $foobox_pro_html . '</li>';
|
584 |
}
|
585 |
|
586 |
-
$foogallery_pro_lightbox_info = __( 'Our built-in Lightbox plugin that comes with FooGallery PRO. Check out the Lightbox tab to see more details.', 'foogallery' );
|
587 |
$lightbox_desc .= '<li><strong>' . __( 'FooGallery PRO Lightbox', 'foogallery' ) . '</strong> - ' . $foogallery_pro_lightbox_info . '</li>';
|
588 |
|
589 |
$lightbox_help_field = array(
|
@@ -672,13 +823,13 @@ if ( ! class_exists( 'FooGallery_Pro_Promotion' ) ) {
|
|
672 |
|
673 |
$fields[] = array(
|
674 |
'id' => 'filter_promo',
|
675 |
-
'title' => __( '
|
676 |
'section' => __( 'Appearance', 'foogallery' ),
|
677 |
'desc' => __( 'Apply a filter to your gallery thumbnails, just like you can in Instagram. Choose from 12 unique filters!', 'foogallery' )
|
678 |
-
. '<br /><br />' . $this->build_promo_trial_html( 'appearance' ) . '<br /><br />',
|
679 |
'type' => 'promo',
|
680 |
-
'
|
681 |
-
'
|
682 |
);
|
683 |
|
684 |
return $fields;
|
@@ -699,23 +850,36 @@ if ( ! class_exists( 'FooGallery_Pro_Promotion' ) ) {
|
|
699 |
$fields[] = array(
|
700 |
'id' => 'video_promo',
|
701 |
'section' => __( 'Video', 'foogallery' ),
|
702 |
-
'title' => __( '
|
703 |
'desc' => __( 'Take your galleries to the next level with full video support:', 'foogallery' ) .
|
704 |
'<ul class="ul-disc"><li><strong>' . __( 'Video Galleries', 'foogallery' ) . '</strong> - ' . __( 'Easily import videos to create beautiful video galleries. Or mix images and videos if you like.', 'foogallery' ) .
|
705 |
'</li><li><strong>' . __( 'Youtube Video Search', 'foogallery' ) . '</strong> - ' . __( 'Search for Youtube videos, and then import them into your galleries in seconds.', 'foogallery' ) .
|
706 |
'</li><li><strong>' . __( 'Vimeo Search And Import', 'foogallery' ) . '</strong> - ' . __( 'Import albums, channels, users or individual videos from Vimeo.', 'foogallery' ) .
|
707 |
'</li><li><strong>' . __( 'Import From Other Sources', 'foogallery' ) . '</strong> - ' . __( 'Import from other popular video sources, including Facebook, Daily Motion, TED and others!', 'foogallery' ) .
|
708 |
'</li><li><strong>' . __( 'Self-Hosted Videos', 'foogallery' ) . '</strong> - ' . __( 'Host your own videos? No problem! Upload them, select thumbnails and use in your gallery.', 'foogallery' ) .
|
709 |
-
'</li></ul>' . $this->build_promo_trial_html( 'videos' ) . '<br /><br />',
|
710 |
'type' => 'promo',
|
711 |
'default' => 'fg-video-default',
|
712 |
-
'
|
713 |
-
'cta_link' => $this->build_url( 'foogallery-videos' )
|
714 |
);
|
715 |
|
716 |
return $fields;
|
717 |
}
|
718 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
719 |
/**
|
720 |
* Add our promo gallery templates
|
721 |
* @param $gallery_templates
|
@@ -736,14 +900,14 @@ if ( ! class_exists( 'FooGallery_Pro_Promotion' ) ) {
|
|
736 |
array(
|
737 |
'id' => 'polaroid_promo',
|
738 |
'title' => __( 'Polaroid PRO Gallery Template', 'foogallery' ),
|
739 |
-
'desc' => __( '
|
740 |
'<img src="https://assets.fooplugins.com/foogallery/foogallery-polaroid-gallery.jpg" />' .
|
741 |
-
'<br /><br />' . $this->build_promo_trial_html( 'polaroid' ) . '<br /><br />',
|
742 |
'section' => __( 'General', 'foogallery' ),
|
743 |
'type' => 'promo',
|
744 |
-
'
|
745 |
-
'
|
746 |
-
'
|
747 |
)
|
748 |
)
|
749 |
);
|
@@ -761,14 +925,14 @@ if ( ! class_exists( 'FooGallery_Pro_Promotion' ) ) {
|
|
761 |
array(
|
762 |
'id' => 'grid_promo',
|
763 |
'title' => __( 'Grid PRO Gallery Template', 'foogallery' ),
|
764 |
-
'desc' => __( '
|
765 |
'<img src="https://assets.fooplugins.com/foogallery/foogallery-grid-gallery.jpg" />' .
|
766 |
-
'<br /><br />' . $this->build_promo_trial_html( 'grid' ) . '<br /><br />',
|
767 |
'section' => __( 'General', 'foogallery' ),
|
768 |
'type' => 'promo',
|
769 |
-
'
|
770 |
-
'
|
771 |
-
'
|
772 |
)
|
773 |
)
|
774 |
);
|
@@ -786,15 +950,15 @@ if ( ! class_exists( 'FooGallery_Pro_Promotion' ) ) {
|
|
786 |
array(
|
787 |
'id' => 'slider_promo',
|
788 |
'title' => __( 'Slider PRO Gallery Template', 'foogallery' ),
|
789 |
-
'desc' => __( '
|
790 |
'<img src="https://assets.fooplugins.com/foogallery/foogallery-slider-gallery-vertical.jpg" /><br /><br />' .
|
791 |
'<img src="https://assets.fooplugins.com/foogallery/foogallery-slider-gallery-horizontal.jpg" /><br /><br />' .
|
792 |
-
$this->build_promo_trial_html( 'slider' ) . '<br /><br />',
|
793 |
'section' => __( 'General', 'foogallery' ),
|
794 |
'type' => 'promo',
|
795 |
-
'
|
796 |
-
'
|
797 |
-
'
|
798 |
)
|
799 |
)
|
800 |
);
|
@@ -823,5 +987,172 @@ if ( ! class_exists( 'FooGallery_Pro_Promotion' ) ) {
|
|
823 |
|
824 |
return $remaining_fields;
|
825 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
826 |
}
|
827 |
}
|
10 |
'foogallery-pagination' => 'https://fooplugins.com/foogallery/gallery-pagination/',
|
11 |
'foogallery-filtering' => 'https://fooplugins.com/foogallery/wordpress-filtered-gallery/',
|
12 |
'foogallery-hover-presets' => 'https://fooplugins.com/foogallery/hover-presets/',
|
13 |
+
'foogallery-captions' => 'https://fooplugins.com/foogallery/custom-captions-wordpress-gallery/',
|
14 |
'foogallery-lightbox' => 'https://fooplugins.com/foogallery/foogallery-pro-lightbox/',
|
15 |
'foogallery-thumbnail-filters' => 'https://fooplugins.com/foogallery/thumbnail-filters/',
|
16 |
'foogallery-loaded-effects' => 'https://fooplugins.com/foogallery/animated-loaded-effects/',
|
18 |
'foogallery-grid' => 'https://fooplugins.com/foogallery/wordpress-grid-gallery/',
|
19 |
'foogallery-slider' => 'https://fooplugins.com/foogallery/wordpress-slider-gallery/',
|
20 |
'foogallery-videos' => 'https://fooplugins.com/foogallery/wordpress-video-gallery/',
|
21 |
+
'foogallery-exif' => 'https://fooplugins.com/foogallery/exif-data-foogallery/',
|
22 |
+
'foogallery-bulk-copy' => 'https://fooplugins.com/bulk-copy-foogallery-pro/',
|
23 |
'foogallery-trial' => 'https://fooplugins.com/foogallery/start-trial/',
|
24 |
+
'foogallery-pricing' => 'https://fooplugins.com/foogallery/pricing/',
|
25 |
+
'foogallery-plans' => 'https://fooplugins.com/foogallery/pricing/#plans',
|
26 |
'foobox-pro' => 'https://fooplugins.com/foobox/',
|
27 |
+
'foogallery-datasources' => 'https://fooplugins.com/load-galleries-from-other-sources/',
|
28 |
+
'foogallery-commerce' => 'https://fooplugins.com/foogallery/woocommerce-integration/',
|
29 |
+
'foogallery-product-gallery' => 'https://fooplugins.com/foogallery/woocommerce-integration/#product-gallery',
|
30 |
+
'foogallery-protection' => 'https://fooplugins.com/foogallery/photo-watermark/',
|
31 |
);
|
32 |
|
33 |
function __construct() {
|
43 |
add_filter( 'foogallery_admin_settings_override', array( $this, 'include_promo_settings' ) );
|
44 |
|
45 |
if ( $this->can_show_promo() ) {
|
46 |
+
|
47 |
+
// Determine current plan, and show promotions based on the current plan.
|
48 |
+
$fs_instance = foogallery_fs();
|
49 |
+
$current_plan = $fs_instance->get_plan_name();
|
50 |
+
$is_free = $fs_instance->is_free_plan();
|
51 |
+
$is_trial = $fs_instance->is_trial();
|
52 |
+
|
53 |
+
$show_starter_promos = true;
|
54 |
+
$show_expert_promos = true;
|
55 |
+
$show_commerce_promos = true;
|
56 |
+
|
57 |
+
if ( !$is_free ) {
|
58 |
+
if ( FOOGALLERY_PRO_PLAN_STARTER === $current_plan ) {
|
59 |
+
$show_starter_promos = false;
|
60 |
+
} else if ( FOOGALLERY_PRO_PLAN_EXPERT == $current_plan ) {
|
61 |
+
$show_starter_promos = $show_expert_promos = false;
|
62 |
+
} else {
|
63 |
+
// Do not show any promos!
|
64 |
+
return;
|
65 |
+
}
|
66 |
+
}
|
67 |
+
|
68 |
+
if ( $show_starter_promos ) {
|
69 |
+
//PRO Starter Templates
|
70 |
+
add_filter( 'foogallery_gallery_templates', array( $this, 'add_promo_templates' ), 99, 1 );
|
71 |
+
add_filter( 'foogallery_override_gallery_template_fields-polaroid_promo', array( $this, 'remove_all_fields_from_promo_gallery_template' ), 999, 2 );
|
72 |
+
add_filter( 'foogallery_override_gallery_template_fields-grid_promo', array( $this, 'remove_all_fields_from_promo_gallery_template' ), 999, 2 );
|
73 |
+
add_filter( 'foogallery_override_gallery_template_fields-slider_promo', array( $this, 'remove_all_fields_from_promo_gallery_template' ), 999, 2 );
|
74 |
+
|
75 |
+
//lightbox
|
76 |
+
add_filter( 'foogallery_gallery_template_field_lightboxes', array($this, 'add_lightbox'), 10, 2 );
|
77 |
+
add_filter( 'foogallery_override_gallery_template_fields', array( $this, 'add_lightbox_promo_fields' ), 10, 2 );
|
78 |
+
|
79 |
+
//presets
|
80 |
+
add_filter( 'foogallery_gallery_template_common_thumbnail_fields_hover_effect_type_choices', array( $this, 'add_preset_type' ) );
|
81 |
+
add_filter( 'foogallery_override_gallery_template_fields', array( $this, 'add_preset_promo_fields' ), 99, 2 );
|
82 |
+
|
83 |
+
//Instagram filters
|
84 |
+
add_filter( 'foogallery_override_gallery_template_fields', array( $this, 'add_appearance_promo_fields' ), 20, 2 );
|
85 |
+
}
|
86 |
+
|
87 |
+
if ( $show_expert_promos ) {
|
88 |
+
//Videos
|
89 |
+
add_filter( 'foogallery_override_gallery_template_fields', array( $this, 'add_video_promo_fields' ) );
|
90 |
+
|
91 |
+
//filtering
|
92 |
+
add_filter( 'foogallery_override_gallery_template_fields', array( $this, 'add_filtering_promo_fields' ), 10, 2 );
|
93 |
+
|
94 |
+
//paging
|
95 |
+
add_filter( 'foogallery_gallery_template_paging_type_choices', array( $this, 'add_promo_paging_choices' ) );
|
96 |
+
add_filter( 'foogallery_override_gallery_template_fields', array( $this, 'add_paging_promo_fields' ), 10, 2 );
|
97 |
+
|
98 |
+
//Datasource promos
|
99 |
+
add_action( 'foogallery_gallery_datasources', array( $this, 'add_expert_promo_datasources' ), 99 );
|
100 |
+
//add_action( 'foogallery_gallery_metabox_items_add', array( $this, 'add_datasources_css' ), 9 );
|
101 |
+
add_action( 'foogallery_admin_datasource_modal_content', array( $this, 'render_datasource_modal_content_default' ) );
|
102 |
+
add_action( 'foogallery-datasource-modal-content_folders_promo', array( $this, 'render_datasource_modal_content_folders_promo' ), 10, 3 );
|
103 |
+
add_action( 'foogallery-datasource-modal-content_media_tags_promo', array( $this, 'render_datasource_modal_content_taxonomy_promo' ), 10, 3 );
|
104 |
+
add_action( 'foogallery-datasource-modal-content_media_categories_promo', array( $this, 'render_datasource_modal_content_taxonomy_promo' ), 10, 3 );
|
105 |
+
add_action( 'foogallery-datasource-modal-content_lightroom_promo', array( $this, 'render_datasource_modal_content_lightroom_promo' ), 10, 3 );
|
106 |
+
add_action( 'foogallery-datasource-modal-content_rml_promo', array( $this, 'render_datasource_modal_content_rml_promo' ), 10, 3 );
|
107 |
+
add_action( 'foogallery-datasource-modal-content_post_query_promo', array( $this, 'render_datasource_modal_content_post_query_promo' ), 10, 3 );
|
108 |
+
remove_action( 'foogallery_admin_datasource_modal_content', array( $foogallery_admin_datasource_instance, 'render_datasource_modal_default_content' ) );
|
109 |
+
|
110 |
+
//Custom Captions
|
111 |
+
add_filter( 'foogallery_override_gallery_template_fields', array( $this, 'add_advanced_caption_fields' ), 100, 2 );
|
112 |
+
|
113 |
+
//EXIF
|
114 |
+
add_filter( 'foogallery_override_gallery_template_fields', array( $this, 'add_exif_promo_fields' ), 10, 2 );
|
115 |
+
|
116 |
+
//Bulk Copy Settings
|
117 |
+
add_action( 'add_meta_boxes_' . FOOGALLERY_CPT_GALLERY, array( $this, 'add_bulk_copy_meta_box_to_gallery' ) );
|
118 |
+
|
119 |
+
add_filter( 'foogallery_gallery_settings_metabox_section_icon', array( $this, 'add_expert_section_icons' ) );
|
120 |
+
|
121 |
+
//EXIF global settings (TODO)
|
122 |
+
}
|
123 |
+
|
124 |
+
if ( $show_commerce_promos ) {
|
125 |
+
|
126 |
+
add_filter( 'foogallery_gallery_settings_metabox_section_icon', array( $this, 'add_commerce_section_icons' ) );
|
127 |
+
|
128 |
+
//Ecommerce Settings
|
129 |
+
add_filter( 'foogallery_override_gallery_template_fields', array( $this, 'add_ecommerce_promo_fields' ), 90, 2 );
|
130 |
+
|
131 |
+
//Product Datasource
|
132 |
+
add_action( 'foogallery_gallery_datasources', array( $this, 'add_commerce_promo_datasources' ), 99 );
|
133 |
+
add_action( 'foogallery-datasource-modal-content_products_promo', array( $this, 'render_datasource_modal_content_products_promo' ), 10, 3 );
|
134 |
+
|
135 |
+
//Product Gallery Template
|
136 |
+
add_filter( 'foogallery_gallery_templates', array( $this, 'add_commerce_promo_templates' ), 999, 1 );
|
137 |
+
add_filter( 'foogallery_override_gallery_template_fields-product_promo', array( $this, 'remove_all_fields_from_promo_gallery_template' ), 999, 2 );
|
138 |
+
|
139 |
+
//Watermarking & Protection Settings
|
140 |
+
add_filter( 'foogallery_override_gallery_template_fields', array( $this, 'add_protection_promo_fields' ), 80, 2 );
|
141 |
+
|
142 |
+
//Watermarking & Protection global settings (TODO)
|
143 |
+
|
144 |
+
//Ecommerce global settings (TODO)
|
145 |
+
}
|
146 |
}
|
147 |
}
|
148 |
|
149 |
+
/**
|
150 |
+
* Add a metabox to the gallery for bulk copying
|
151 |
+
* @param $post
|
152 |
+
*/
|
153 |
+
function add_bulk_copy_meta_box_to_gallery($post) {
|
154 |
+
add_meta_box(
|
155 |
+
'foogallery_bulk_copy',
|
156 |
+
__( 'Bulk Copy', 'foogallery' ),
|
157 |
+
array( $this, 'render_gallery_bulk_copy_metabox' ),
|
158 |
+
FOOGALLERY_CPT_GALLERY,
|
159 |
+
'normal',
|
160 |
+
'low'
|
161 |
+
);
|
162 |
+
}
|
163 |
+
|
164 |
+
/**
|
165 |
+
* Render the bulk copy metabox on the gallery edit page
|
166 |
+
* @param $post
|
167 |
+
*/
|
168 |
+
function render_gallery_bulk_copy_metabox( $post ) {
|
169 |
+
$this->render_datasource_modal_content(
|
170 |
+
__('Bulk Copy Settings', 'foogallery' ),
|
171 |
+
__('Copy settings from one gallery to other galleries in bulk. You can choose which settings, and what galleries to copy them to.', 'foogallery' ),
|
172 |
+
$this->build_url( 'foogallery-bulk-copy' )
|
173 |
+
);
|
174 |
+
}
|
175 |
+
|
176 |
+
/**
|
177 |
+
* Add caption fields to the gallery template
|
178 |
+
*
|
179 |
+
* @param $fields
|
180 |
+
* @param $template
|
181 |
+
*
|
182 |
+
* @return array
|
183 |
+
*/
|
184 |
+
function add_advanced_caption_fields( $fields, $template ) {
|
185 |
+
|
186 |
+
//add caption type field before other caption fields
|
187 |
+
$new_fields[] = array(
|
188 |
+
'id' => 'promo_captions_type',
|
189 |
+
'title' => __( 'Caption Type', 'foogallery' ),
|
190 |
+
'desc' => __( 'What type of captions do you want to display in the gallery. By default, captions will be built up from the image attributes for both the caption title and description.', 'foogallery' ),
|
191 |
+
'section' => __( 'Captions', 'foogallery' ),
|
192 |
+
'type' => 'radio',
|
193 |
+
'default' => '',
|
194 |
+
'choices' => array(
|
195 |
+
'' => __( 'Default', 'foogallery' ),
|
196 |
+
'custom' => array(
|
197 |
+
'label' => __( 'Custom', 'foogallery' ),
|
198 |
+
'tooltip' => __('Captions can be built up using custom HTML and placeholders', 'foogallery'),
|
199 |
+
'class' => 'foogallery-promo',
|
200 |
+
'icon' => 'dashicons-star-filled'
|
201 |
+
)
|
202 |
+
),
|
203 |
+
'row_data' => array(
|
204 |
+
'data-foogallery-change-selector' => 'input:radio',
|
205 |
+
'data-foogallery-value-selector' => 'input:checked',
|
206 |
+
)
|
207 |
+
);
|
208 |
+
|
209 |
+
$new_fields[] = array(
|
210 |
+
'id' => 'promo_custom_captions',
|
211 |
+
'title' => __( 'PRO Expert Feature : Advanced Custom Captions', 'foogallery' ),
|
212 |
+
'desc' => __( 'Take complete control over your image captions, and customize them by using HTML and pre-defined placeholders. Integrates with popular solutions like ACF and Pods for unlimited possibilities.', 'foogallery')
|
213 |
+
. '<br /><br />' . $this->build_promo_trial_html( 'pagination', __( 'PRO Expert', 'foogallery' ) ) . '<br /><br />',
|
214 |
+
'cta' => $this->build_cta_buttons( 'foogallery-captions' ),
|
215 |
+
'section' => __( 'Captions', 'foogallery' ),
|
216 |
+
'type' => 'promo',
|
217 |
+
'row_data'=> array(
|
218 |
+
'data-foogallery-change-selector' => 'input',
|
219 |
+
'data-foogallery-hidden' => true,
|
220 |
+
'data-foogallery-show-when-field' => 'promo_captions_type',
|
221 |
+
'data-foogallery-show-when-field-value' => 'custom',
|
222 |
+
)
|
223 |
+
);
|
224 |
+
|
225 |
+
$field_index = foogallery_admin_fields_find_index_of_field( $fields, 'caption_title_source' );
|
226 |
+
|
227 |
+
array_splice( $fields, $field_index, 0, $new_fields );
|
228 |
+
|
229 |
+
return $fields;
|
230 |
+
}
|
231 |
+
|
232 |
function add_datasources_css() {
|
233 |
?>
|
234 |
<style>
|
314 |
);
|
315 |
}
|
316 |
|
317 |
+
function render_datasource_modal_content( $datasouce_title, $datasource_desc,
|
318 |
+
$datasource_url_name = 'foogallery-datasources', $plan = null, $class = '' ) {
|
319 |
+
if ( !isset( $plan ) ) {
|
320 |
+
$plan = __('PRO Expert', 'foogallery');
|
321 |
+
}
|
322 |
?>
|
323 |
+
<div class="foogallery_template_field_type-promo <?php echo $class; ?>">
|
324 |
<div class="foogallery-promo">
|
325 |
+
<strong><?php echo $plan; ?> <?php _e('Feature', 'foogallery' ); ?> : <?php echo $datasouce_title; ?></strong>
|
326 |
<br><br>
|
327 |
<?php echo $datasource_desc; ?>
|
328 |
<br><br>
|
329 |
+
<?php echo $this->build_promo_trial_html( 'datasources', $plan ); ?>
|
330 |
<br><br>
|
331 |
+
<a class="button-primary" href="<?php echo esc_url( $this->build_url( $datasource_url_name ) ); ?>" target="_blank"><?php echo __( 'Learn More', 'foogallery' ); ?></a>
|
332 |
+
<a class="button-secondary" href="<?php echo esc_url( $this->build_url( 'foogallery-plans' ) ); ?>" target="_blank"><?php echo __( 'Compare Plans', 'foogallery' ); ?></a>
|
333 |
</div>
|
334 |
</div>
|
335 |
<?php
|
336 |
}
|
337 |
|
338 |
/**
|
339 |
+
* Add the expert promotion datasources
|
340 |
*
|
341 |
* @param $datasources
|
342 |
*
|
343 |
* @return mixed
|
344 |
*/
|
345 |
+
function add_expert_promo_datasources( $datasources ) {
|
346 |
$datasources['media_tags_promo'] = array(
|
347 |
'id' => 'media_tags_promo',
|
348 |
'name' => __( 'Media Tags', 'foogallery' ),
|
436 |
*
|
437 |
* @return string
|
438 |
*/
|
439 |
+
private function build_promo_trial_html( $promotion, $plan = null ) {
|
440 |
+
if ( !isset( $plan ) ) {
|
441 |
+
$plan = __( 'PRO', 'foogallery' );
|
442 |
+
}
|
443 |
$trial_link = '<a href="' . $this->build_url('foogallery-trial', $promotion ) . '" target="_blank">' . __('start a 7 day free trial', 'foogallery') . '</a>';
|
444 |
+
$pro_link = '<a href="' . foogallery_admin_pricing_url() . '">' . __('Upgrade to', 'foogallery') . ' ' . $plan . '</a>';
|
445 |
+
return sprintf( __('To try the %s features, %s (no credit card required). Or you can %s right now.', 'foogallery' ), $plan, $trial_link, $pro_link );
|
446 |
}
|
447 |
|
448 |
/**
|
486 |
if ( $template && array_key_exists( 'paging_support', $template ) && true === $template['paging_support'] ) {
|
487 |
$fields[] = array(
|
488 |
'id' => 'promo_paging',
|
489 |
+
'title' => __( 'PRO Expert Feature : Advanced Pagination', 'foogallery' ),
|
490 |
'desc' => __( 'Besides the dot pagination, you can also add more advanced pagination to your galleries with a large number of images or videos:', 'foogallery' ) .
|
491 |
'<ul class="ul-disc"><li><strong>' . __('Numbered' ,'foogallery') . '</strong> ' . __( 'adds a numbered pagination control to top or bottom of your gallery.', 'foogallery' ) .
|
492 |
'</li><li><strong>' . __('Infinite Scroll' ,'foogallery') . '</strong> ' . __( 'adds the popular \'infinite scroll\' capability to your gallery, so as your visitors scroll, the gallery will load more items.', 'foogallery' ) .
|
493 |
'</li><li><strong>' . __('Load More' ,'foogallery') . '</strong> ' . __( 'adds a \'Load More\' button to the end of your gallery. When visitors click the button, the next set of items will load in the gallery.', 'foogallery' ) .
|
494 |
+
'</li></ul>' . $this->build_promo_trial_html( 'pagination', __( 'PRO Expert', 'foogallery' ) ) . '<br /><br />',
|
495 |
+
'cta' => $this->build_cta_buttons( 'foogallery-pagination' ),
|
|
|
496 |
'section' => __( 'Paging', 'foogallery' ),
|
497 |
'type' => 'promo',
|
498 |
'row_data'=> array(
|
519 |
function add_preset_type( $choices ) {
|
520 |
$choices['promo-presets'] = array(
|
521 |
'label' => __( 'Preset', 'foogallery' ),
|
522 |
+
'tooltip' => __('Choose from 11 stylish hover effect presets in PRO Starter.', 'foogallery'),
|
523 |
+
'class' => 'foogallery-promo-prostarter',
|
524 |
'icon' => 'dashicons-star-filled'
|
525 |
);
|
526 |
|
527 |
return $choices;
|
528 |
}
|
529 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
530 |
/**
|
531 |
* Add the fields for presets promos
|
532 |
*
|
537 |
* @return array
|
538 |
*/
|
539 |
function add_preset_promo_fields( $fields, $template ) {
|
540 |
+
$index_of_hover_effect_preset_field = foogallery_admin_fields_find_index_of_field( $fields, 'hover_effect_preset' );
|
541 |
|
542 |
$new_fields[] = array(
|
543 |
'id' => 'hover_effect_preset_promo_help',
|
544 |
+
'title' => __( 'PRO Starter Feature : Hover Effect Presets', 'foogallery' ),
|
545 |
'desc' => __( 'There are 11 stylish hover effect presets to choose from, which takes all the hard work out of making your galleries look professional and elegant.', 'foogallery' ) .
|
546 |
'<br />' . __( 'Some of the effects like "Sarah" add subtle colors on hover, while other effects like "Layla" and "Oscar" add different shapes to the thumbnail.', 'foogallery') .
|
547 |
+
'<br />' . __(' You really need to see all the different effects in action to appreciate them.', 'foogallery' ) . '<br /><br />' .
|
548 |
+
$this->build_promo_trial_html( 'hover-presets', __( 'PRO Starter', 'foogallery' ) ) . '<br /><br />',
|
549 |
+
'class' => 'foogallery_promo_prostarter',
|
|
|
550 |
'type' => 'promo',
|
551 |
+
'cta' => $this->build_cta_buttons( 'foogallery-hover-presets' ),
|
552 |
+
'section' => __( 'Hover Effects', 'foogallery' ),
|
553 |
'row_data' => array(
|
554 |
'data-foogallery-hidden' => true,
|
555 |
'data-foogallery-show-when-field' => 'hover_effect_type',
|
562 |
return $fields;
|
563 |
}
|
564 |
|
565 |
+
/**
|
566 |
+
* Add EXIF fields to the gallery templates
|
567 |
+
*
|
568 |
+
* @uses "foogallery_override_gallery_template_fields"
|
569 |
+
*
|
570 |
+
* @param $fields
|
571 |
+
* @param $template
|
572 |
+
*
|
573 |
+
* @return array
|
574 |
+
*/
|
575 |
+
function add_exif_promo_fields( $fields, $template ) {
|
576 |
+
$fields[] = array(
|
577 |
+
'id' => 'promo_exif',
|
578 |
+
'title' => __( 'PRO Expert Feature : EXIF Metadata', 'foogallery' ),
|
579 |
+
'section' => __( 'EXIF', 'foogallery' ),
|
580 |
+
'desc' => __( 'Show image metadata within your galleries. A must-have for professional photographers wanting to showcase specific metadata about each image.', 'foogallery' )
|
581 |
+
. '<br /><br />' . $this->build_promo_trial_html( 'filtering', __( 'PRO Expert', 'foogallery' ) ). '<br /><br />',
|
582 |
+
'cta' => $this->build_cta_buttons( 'foogallery-exif' ),
|
583 |
+
'type' => 'promo',
|
584 |
+
'row_data' => array(
|
585 |
+
'data-foogallery-change-selector' => 'input',
|
586 |
+
'data-foogallery-value-selector' => 'input:checked',
|
587 |
+
)
|
588 |
+
);
|
589 |
+
|
590 |
+
return $fields;
|
591 |
+
}
|
592 |
+
|
593 |
/**
|
594 |
* Add filtering fields to the gallery templates
|
595 |
*
|
603 |
function add_filtering_promo_fields( $fields, $template ) {
|
604 |
if ( $template && array_key_exists( 'filtering_support', $template ) && true === $template['filtering_support'] ) {
|
605 |
$fields[] = array(
|
606 |
+
'id' => 'promo_filtering',
|
607 |
+
'title' => __( 'PRO Expert Feature : Filtering by Tags or Categories', 'foogallery' ),
|
608 |
'section' => __( 'Filtering', 'foogallery' ),
|
609 |
'desc' => __( 'Add frontend filtering to your gallery, simply by assigning media tags or media categories to your gallery attachments. Other filtering features include:', 'foogallery' ) .
|
610 |
'<ul class="ul-disc"><li><strong>' . __('Filter Source' ,'foogallery') . '</strong> - ' . __( 'choose to filter the gallery by tag or category, or any other attachment taxonomy.', 'foogallery' ) .
|
612 |
'</li><li><strong>' . __('Selection Mode' ,'foogallery') . '</strong> - ' . __( 'allow your visitors to select a single or multiple filters. Multiple also supports union or intersection modes.', 'foogallery' ) .
|
613 |
'</li><li><strong>' . __('Show Counters' ,'foogallery') . '</strong> - ' . __( 'show the number of items in each tag filter.', 'foogallery' ) .
|
614 |
'</li><li><strong>' . __('Adjust Size & Opacity' ,'foogallery') . '</strong> - ' . __( 'adjust the size and opacity of each filter based on the number of items.', 'foogallery' ) .
|
615 |
+
'</li></ul>' . $this->build_promo_trial_html( 'filtering', __( 'PRO Expert', 'foogallery' ) ). '<br /><br />',
|
616 |
+
'cta' => $this->build_cta_buttons( 'foogallery-filtering' ),
|
|
|
617 |
'type' => 'promo',
|
618 |
'row_data' => array(
|
619 |
'data-foogallery-change-selector' => 'input',
|
633 |
*
|
634 |
* @return string
|
635 |
*/
|
636 |
+
function add_expert_section_icons( $section_slug ) {
|
637 |
if ( 'filtering' === $section_slug ) {
|
638 |
return 'dashicons-filter';
|
639 |
}
|
642 |
return 'dashicons-grid-view';
|
643 |
}
|
644 |
|
645 |
+
if ( 'exif' === strtolower( $section_slug ) ) {
|
646 |
+
return 'dashicons-info-outline';
|
647 |
+
}
|
648 |
+
|
649 |
return $section_slug;
|
650 |
}
|
651 |
|
652 |
/**
|
653 |
+
* Add the PRO lightbox
|
654 |
* @param $lightboxes
|
655 |
*
|
656 |
* @return mixed
|
686 |
|
687 |
$field_promo[] = array(
|
688 |
'id' => 'lightbox_promo',
|
689 |
+
'title' => __( 'PRO Starter Feature : PRO Lightbox', 'foogallery' ),
|
690 |
'desc' => __( 'We built a brand new lightbox from the ground up, that works perfectly with your galleries. With 20+ settings to customize the lightbox, including:', 'foogallery' ) .
|
691 |
'<ul class="ul-disc"><li><strong>' . __( 'Custom Colors', 'foogallery' ) . '</strong> - ' . __( 'Set your theme and choose your colors! Customize the lightbox colors for each gallery.', 'foogallery' ) .
|
692 |
'</li><li><strong>' . __( 'Thumbnail Strip', 'foogallery' ) . '</strong> - ' . __( 'Easily view and navigate through all the images in the gallery without closing the lightbox. Plus, you can also show captions for the thumbs!', 'foogallery' ) .
|
693 |
'</li><li><strong>' . __( 'Auto Progress', 'foogallery' ) . '</strong> - ' . __( 'Set the lightbox to auto-progress to the next available image in the gallery after a certain time delay.', 'foogallery' ) .
|
694 |
'</li><li><strong>' . __( 'Unique Lightbox Per Gallery', 'foogallery' ) . '</strong> - ' . __( 'Make each of your galleries unique by customizing the lightbox per gallery.', 'foogallery' ) .
|
695 |
+
'</li></ul>' . $this->build_promo_trial_html( 'lightbox', __( 'PRO Starter', 'foogallery' ) ) . '<br /><br />',
|
696 |
'section' => __( 'Lightbox', 'foogallery' ),
|
697 |
+
'class' => 'foogallery_promo_prostarter',
|
698 |
'type' => 'promo',
|
699 |
+
'cta' => $this->build_cta_buttons( 'foogallery-lightbox' )
|
|
|
700 |
);
|
701 |
|
702 |
//find the index of the first Hover Effect field
|
703 |
+
$index = foogallery_admin_fields_find_index_of_section( $fields, __( 'Hover Effects', 'foogallery' ) );
|
704 |
|
705 |
array_splice( $fields, $index, 0, $field_promo );
|
706 |
|
734 |
$lightbox_desc .= '<li><strong>' . __( 'FooBox PRO', 'foogallery' ) . '</strong> - ' . __( 'The stand-alone PRO version of our Lightbox plugin with tons of extra features including social sharing.', 'foogallery' ) . $foobox_pro_html . '</li>';
|
735 |
}
|
736 |
|
737 |
+
$foogallery_pro_lightbox_info = __( 'Our built-in Lightbox plugin that comes with FooGallery PRO Starter. Check out the Lightbox tab to see more details.', 'foogallery' );
|
738 |
$lightbox_desc .= '<li><strong>' . __( 'FooGallery PRO Lightbox', 'foogallery' ) . '</strong> - ' . $foogallery_pro_lightbox_info . '</li>';
|
739 |
|
740 |
$lightbox_help_field = array(
|
823 |
|
824 |
$fields[] = array(
|
825 |
'id' => 'filter_promo',
|
826 |
+
'title' => __( 'PRO Starter Feature : Thumbnail Filters (Like Instagram!)', 'foogallery' ),
|
827 |
'section' => __( 'Appearance', 'foogallery' ),
|
828 |
'desc' => __( 'Apply a filter to your gallery thumbnails, just like you can in Instagram. Choose from 12 unique filters!', 'foogallery' )
|
829 |
+
. '<br /><br />' . $this->build_promo_trial_html( 'appearance', __( 'PRO Starter', 'foogallery' ) ) . '<br /><br />',
|
830 |
'type' => 'promo',
|
831 |
+
'class' => 'foogallery_promo_prostarter',
|
832 |
+
'cta' => $this->build_cta_buttons( 'foogallery-thumbnail-filters' )
|
833 |
);
|
834 |
|
835 |
return $fields;
|
850 |
$fields[] = array(
|
851 |
'id' => 'video_promo',
|
852 |
'section' => __( 'Video', 'foogallery' ),
|
853 |
+
'title' => __( 'PRO Expert Feature : Video Galleries', 'foogallery' ),
|
854 |
'desc' => __( 'Take your galleries to the next level with full video support:', 'foogallery' ) .
|
855 |
'<ul class="ul-disc"><li><strong>' . __( 'Video Galleries', 'foogallery' ) . '</strong> - ' . __( 'Easily import videos to create beautiful video galleries. Or mix images and videos if you like.', 'foogallery' ) .
|
856 |
'</li><li><strong>' . __( 'Youtube Video Search', 'foogallery' ) . '</strong> - ' . __( 'Search for Youtube videos, and then import them into your galleries in seconds.', 'foogallery' ) .
|
857 |
'</li><li><strong>' . __( 'Vimeo Search And Import', 'foogallery' ) . '</strong> - ' . __( 'Import albums, channels, users or individual videos from Vimeo.', 'foogallery' ) .
|
858 |
'</li><li><strong>' . __( 'Import From Other Sources', 'foogallery' ) . '</strong> - ' . __( 'Import from other popular video sources, including Facebook, Daily Motion, TED and others!', 'foogallery' ) .
|
859 |
'</li><li><strong>' . __( 'Self-Hosted Videos', 'foogallery' ) . '</strong> - ' . __( 'Host your own videos? No problem! Upload them, select thumbnails and use in your gallery.', 'foogallery' ) .
|
860 |
+
'</li></ul>' . $this->build_promo_trial_html( 'videos', __( 'PRO Expert', 'foogallery' ) ) . '<br /><br />',
|
861 |
'type' => 'promo',
|
862 |
'default' => 'fg-video-default',
|
863 |
+
'cta' => $this->build_cta_buttons( 'foogallery-videos' )
|
|
|
864 |
);
|
865 |
|
866 |
return $fields;
|
867 |
}
|
868 |
|
869 |
+
private function build_cta_buttons( $url_name ) {
|
870 |
+
return array(
|
871 |
+
array(
|
872 |
+
'text' => __( 'View Demo', 'foogallery' ),
|
873 |
+
'link' => $this->build_url( $url_name )
|
874 |
+
),
|
875 |
+
array(
|
876 |
+
'text' => __( 'Compare PRO Plans', 'foogallery' ),
|
877 |
+
'link' => $this->build_url( 'foogallery-plans' ),
|
878 |
+
'class' => 'button-secondary'
|
879 |
+
)
|
880 |
+
);
|
881 |
+
}
|
882 |
+
|
883 |
/**
|
884 |
* Add our promo gallery templates
|
885 |
* @param $gallery_templates
|
900 |
array(
|
901 |
'id' => 'polaroid_promo',
|
902 |
'title' => __( 'Polaroid PRO Gallery Template', 'foogallery' ),
|
903 |
+
'desc' => __( 'Available in all PRO plans, the Polaroid PRO gallery template is a fun take on the simple portfolio gallery. Image thumbnails are framed as Polaroid photos which are staggered on the page.', 'foogallery' ) . '<br />' .
|
904 |
'<img src="https://assets.fooplugins.com/foogallery/foogallery-polaroid-gallery.jpg" />' .
|
905 |
+
'<br /><br />' . $this->build_promo_trial_html( 'polaroid', __( 'PRO Starter', 'foogallery' ) ) . '<br /><br />',
|
906 |
'section' => __( 'General', 'foogallery' ),
|
907 |
'type' => 'promo',
|
908 |
+
'class' => 'foogallery_promo_prostarter',
|
909 |
+
'keep_in_promo' => true,
|
910 |
+
'cta' => $this->build_cta_buttons( 'foogallery-polaroid' )
|
911 |
)
|
912 |
)
|
913 |
);
|
925 |
array(
|
926 |
'id' => 'grid_promo',
|
927 |
'title' => __( 'Grid PRO Gallery Template', 'foogallery' ),
|
928 |
+
'desc' => __( 'Available in all PRO plans, the Grid PRO gallery template creates a stylish grid gallery that allows you to "preview" each image, similar to how Google Image Search works.', 'foogallery' ) . '<br /><br />' .
|
929 |
'<img src="https://assets.fooplugins.com/foogallery/foogallery-grid-gallery.jpg" />' .
|
930 |
+
'<br /><br />' . $this->build_promo_trial_html( 'grid', __( 'PRO Starter', 'foogallery' ) ) . '<br /><br />',
|
931 |
'section' => __( 'General', 'foogallery' ),
|
932 |
'type' => 'promo',
|
933 |
+
'class' => 'foogallery_promo_prostarter',
|
934 |
+
'keep_in_promo' => true,
|
935 |
+
'cta' => $this->build_cta_buttons( 'foogallery-grid' )
|
936 |
)
|
937 |
)
|
938 |
);
|
950 |
array(
|
951 |
'id' => 'slider_promo',
|
952 |
'title' => __( 'Slider PRO Gallery Template', 'foogallery' ),
|
953 |
+
'desc' => __( 'Available in all PRO plans, the Slider PRO gallery template creates an amazing slider gallery in either a horizontal or a vertical layout.', 'foogallery' ) . '<br /><br />' .
|
954 |
'<img src="https://assets.fooplugins.com/foogallery/foogallery-slider-gallery-vertical.jpg" /><br /><br />' .
|
955 |
'<img src="https://assets.fooplugins.com/foogallery/foogallery-slider-gallery-horizontal.jpg" /><br /><br />' .
|
956 |
+
$this->build_promo_trial_html( 'slider', __( 'PRO Starter', 'foogallery' ) ) . '<br /><br />',
|
957 |
'section' => __( 'General', 'foogallery' ),
|
958 |
'type' => 'promo',
|
959 |
+
'class' => 'foogallery_promo_prostarter',
|
960 |
+
'keep_in_promo' => true,
|
961 |
+
'cta' => $this->build_cta_buttons( 'foogallery-slider' )
|
962 |
)
|
963 |
)
|
964 |
);
|
987 |
|
988 |
return $remaining_fields;
|
989 |
}
|
990 |
+
|
991 |
+
/**
|
992 |
+
* Add Ecommerce fields to the gallery templates
|
993 |
+
*
|
994 |
+
* @uses "foogallery_override_gallery_template_fields"
|
995 |
+
*
|
996 |
+
* @param $fields
|
997 |
+
* @param $template
|
998 |
+
*
|
999 |
+
* @return array
|
1000 |
+
*/
|
1001 |
+
function add_ecommerce_promo_fields( $fields, $template ) {
|
1002 |
+
$new_fields[] = array(
|
1003 |
+
'id' => 'promo_ecommerce',
|
1004 |
+
'title' => __( 'PRO Commerce Feature : WooCommerce Integration', 'foogallery' ),
|
1005 |
+
'section' => __( 'Ecommerce', 'foogallery' ),
|
1006 |
+
'desc' => __( 'Start making money from selling your photographs, with our deep integration with WooCommerce:', 'foogallery' ) .
|
1007 |
+
'<ul class="ul-disc"><li><strong>' . __( 'Product Datasource', 'foogallery' ) . '</strong> - ' . __( 'Create a dynamic product gallery that updates when you add or change products.', 'foogallery' ) .
|
1008 |
+
'</li><li><strong>' . __( 'Filter By Product Categories', 'foogallery' ) . '</strong> - ' . __( 'Filter your gallery images by product category.', 'foogallery' ) .
|
1009 |
+
'</li><li><strong>' . __( 'Sale Ribbons', 'foogallery' ) . '</strong> - ' . __( 'Draw attention to products on sale, and show a cool ribbon over your product.', 'foogallery' ) .
|
1010 |
+
'</li><li><strong>' . __( 'Add To Cart Buttons', 'foogallery' ) . '</strong> - ' . __( 'Add buttons to your products to easily add to cart or view.', 'foogallery' ) .
|
1011 |
+
'</li><li><strong>' . __( 'Custom Caption Support', 'foogallery' ) . '</strong> - ' . __( 'Already using our advanced custom captions? Now you can include any product info in your caption template.', 'foogallery' ) .
|
1012 |
+
'</li><li><strong>' . __( 'Product Variation Support', 'foogallery' ) . '</strong> - ' . __( 'Using variable products? No problem! Show variations in the lightbox and add directly to cart from the lightbox.', 'foogallery' ) .
|
1013 |
+
'</li><li><strong>' . __( 'Manually Link Products', 'foogallery' ) . '</strong> - ' . __( 'You can also manually link a product to each item in your gallery for complete control.', 'foogallery' ) .
|
1014 |
+
'</li><li><strong>' . __( 'Master Product', 'foogallery' ) . '</strong> - ' . __( 'You can set a "Master Product" for all items in the gallery. Info from the attachment will be transferred to items in the cart and order.', 'foogallery' ) .
|
1015 |
+
'</li></ul>' . $this->build_promo_trial_html( 'ecommerce', __( 'PRO Commerce', 'foogallery' ) ) . '<br /><br />',
|
1016 |
+
'cta' => $this->build_cta_buttons( 'foogallery-commerce' ),
|
1017 |
+
'class' => 'foogallery_promo_commerce',
|
1018 |
+
'type' => 'promo',
|
1019 |
+
'row_data' => array(
|
1020 |
+
'data-foogallery-change-selector' => 'input',
|
1021 |
+
'data-foogallery-value-selector' => 'input:checked',
|
1022 |
+
)
|
1023 |
+
);
|
1024 |
+
|
1025 |
+
// find the index of the advanced section.
|
1026 |
+
$index = foogallery_admin_fields_find_index_of_section( $fields, __( 'Advanced', 'foogallery' ) );
|
1027 |
+
|
1028 |
+
array_splice( $fields, $index, 0, $new_fields );
|
1029 |
+
|
1030 |
+
return $fields;
|
1031 |
+
}
|
1032 |
+
|
1033 |
+
|
1034 |
+
/**
|
1035 |
+
* Add Protection fields to the gallery templates
|
1036 |
+
*
|
1037 |
+
* @uses "foogallery_override_gallery_template_fields"
|
1038 |
+
*
|
1039 |
+
* @param $fields
|
1040 |
+
* @param $template
|
1041 |
+
*
|
1042 |
+
* @return array
|
1043 |
+
*/
|
1044 |
+
function add_protection_promo_fields( $fields, $template ) {
|
1045 |
+
$new_fields[] = array(
|
1046 |
+
'id' => 'promo_protection',
|
1047 |
+
'title' => __( 'PRO Commerce Feature : Image Protection', 'foogallery' ),
|
1048 |
+
'section' => __( 'Protection', 'foogallery' ),
|
1049 |
+
'desc' => __( 'Protect your images from theft:', 'foogallery' ) .
|
1050 |
+
'<ul class="ul-disc"><li><strong>' . __( 'Disable Right Click', 'foogallery' ) . '</strong> - ' . __( 'Prevent your visitors from being able to right click on thumbnails and full size images in the lightbox.', 'foogallery' ) .
|
1051 |
+
'</li><li><strong>' . __( 'Watermark Generation', 'foogallery' ) . '</strong> - ' . __( 'Generate advanced watermarks for all images in your gallery.', 'foogallery' ) .
|
1052 |
+
'</li><li><strong>' . __( 'Built-in watermark designs', 'foogallery' ) . '</strong> - ' . __( 'You can choose one of our built-in repeating watermarks, or you can upload and use your own.', 'foogallery' ) .
|
1053 |
+
'</li></ul>' . $this->build_promo_trial_html( 'protection', __( 'PRO Commerce', 'foogallery' ) ) . '<br /><br />',
|
1054 |
+
'cta' => $this->build_cta_buttons( 'foogallery-protection' ),
|
1055 |
+
'class' => 'foogallery_promo_commerce',
|
1056 |
+
'type' => 'promo',
|
1057 |
+
'row_data' => array(
|
1058 |
+
'data-foogallery-change-selector' => 'input',
|
1059 |
+
'data-foogallery-value-selector' => 'input:checked',
|
1060 |
+
)
|
1061 |
+
);
|
1062 |
+
|
1063 |
+
// find the index of the advanced section.
|
1064 |
+
$index = foogallery_admin_fields_find_index_of_section( $fields, __( 'Advanced', 'foogallery' ) );
|
1065 |
+
|
1066 |
+
array_splice( $fields, $index, 0, $new_fields );
|
1067 |
+
|
1068 |
+
return $fields;
|
1069 |
+
}
|
1070 |
+
|
1071 |
+
/**
|
1072 |
+
* Add the commerce promotion datasources
|
1073 |
+
*
|
1074 |
+
* @param $datasources
|
1075 |
+
*
|
1076 |
+
* @return mixed
|
1077 |
+
*/
|
1078 |
+
function add_commerce_promo_datasources( $datasources ) {
|
1079 |
+
$datasources['products_promo'] = array(
|
1080 |
+
'id' => 'products_promo',
|
1081 |
+
'name' => __( 'WooCommerce Products', 'foogallery' ),
|
1082 |
+
'menu' => __( 'WooCommerce Products', 'foogallery' ),
|
1083 |
+
'public' => true,
|
1084 |
+
);
|
1085 |
+
|
1086 |
+
return $datasources;
|
1087 |
+
}
|
1088 |
+
|
1089 |
+
/**
|
1090 |
+
* Output the server folders datasource modal content
|
1091 |
+
*
|
1092 |
+
* @param $foogallery_id
|
1093 |
+
*/
|
1094 |
+
function render_datasource_modal_content_products_promo( $foogallery_id, $datasource_value ) {
|
1095 |
+
$this->render_datasource_modal_content(
|
1096 |
+
__( 'WooCommerce Product Datasource', 'foogallery' ),
|
1097 |
+
__( 'Create a dynamic gallery from your WooCommerce products.<br>You can limit how many products, only show certain categories or exclude specific products from your product gallery. Your gallery will dynamically update when you add or change any of your products.', 'foogallery' ),
|
1098 |
+
'foogallery-product-gallery',
|
1099 |
+
__( 'PRO Commerce', 'foogallery' ),
|
1100 |
+
'foogallery_promo_commerce'
|
1101 |
+
);
|
1102 |
+
}
|
1103 |
+
|
1104 |
+
/**
|
1105 |
+
* Returns the Dashicon that can be used in the settings tabs
|
1106 |
+
*
|
1107 |
+
* @param $section_slug
|
1108 |
+
*
|
1109 |
+
* @return string
|
1110 |
+
*/
|
1111 |
+
function add_commerce_section_icons( $section_slug ) {
|
1112 |
+
if ( 'ecommerce' === strtolower( $section_slug ) ) {
|
1113 |
+
return 'dashicons-cart';
|
1114 |
+
}
|
1115 |
+
|
1116 |
+
if ( 'protection' === strtolower( $section_slug ) ) {
|
1117 |
+
return 'dashicons-lock';
|
1118 |
+
}
|
1119 |
+
|
1120 |
+
return $section_slug;
|
1121 |
+
}
|
1122 |
+
|
1123 |
+
/**
|
1124 |
+
* Add our commerce promo gallery templates
|
1125 |
+
* @param $gallery_templates
|
1126 |
+
*
|
1127 |
+
* @return array
|
1128 |
+
*/
|
1129 |
+
function add_commerce_promo_templates( $gallery_templates ) {
|
1130 |
+
$gallery_templates[] = array(
|
1131 |
+
'slug' => 'product_promo',
|
1132 |
+
'name' => __( 'Product Gallery', 'foogallery' ),
|
1133 |
+
'preview_support' => false,
|
1134 |
+
'common_fields_support' => false,
|
1135 |
+
'lazyload_support' => false,
|
1136 |
+
'paging_support' => false,
|
1137 |
+
'thumbnail_dimensions' => false,
|
1138 |
+
'filtering_support' => false,
|
1139 |
+
'fields' => array(
|
1140 |
+
array(
|
1141 |
+
'id' => 'product_promo',
|
1142 |
+
'title' => __( 'Product Gallery Template', 'foogallery' ),
|
1143 |
+
'desc' => __( 'Only available in the Commerce PRO plan, the Product Gallery template works out of the box with the WooCommerce Product Datasource, making it very easy for you to start selling your photographs online.', 'foogallery' ) .
|
1144 |
+
'<br />' . '<img src="https://assets.fooplugins.com/foogallery/foogallery-product-gallery.png" />' .
|
1145 |
+
'<br /><br />' . $this->build_promo_trial_html( 'product-gallery', __( 'PRO Commerce', 'foogallery' ) ) . '<br /><br />',
|
1146 |
+
'section' => __( 'General', 'foogallery' ),
|
1147 |
+
'type' => 'promo',
|
1148 |
+
'class' => 'foogallery_promo_commerce',
|
1149 |
+
'keep_in_promo' => true,
|
1150 |
+
'cta' => $this->build_cta_buttons( 'foogallery-product-gallery' )
|
1151 |
+
)
|
1152 |
+
)
|
1153 |
+
);
|
1154 |
+
|
1155 |
+
return $gallery_templates;
|
1156 |
+
}
|
1157 |
}
|
1158 |
}
|
includes/admin/demo-content-galleries.php
CHANGED
@@ -86,7 +86,7 @@ return array(
|
|
86 |
'foogallery_items_view' => 'preview',
|
87 |
|
88 |
//General
|
89 |
-
'image-
|
90 |
'width' => '640',
|
91 |
'height' => '360',
|
92 |
'crop' => '1'
|
86 |
'foogallery_items_view' => 'preview',
|
87 |
|
88 |
//General
|
89 |
+
'image-viewer_thumbnail_size' => array(
|
90 |
'width' => '640',
|
91 |
'height' => '360',
|
92 |
'crop' => '1'
|
includes/admin/view-help-getting-started.php
CHANGED
@@ -1,4 +1,14 @@
|
|
1 |
<div id="help_section" class="foogallery-admin-help-section">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
<section class="fgah-feature foogallery-admin-help-create-demos">
|
3 |
<header class="fgah-create-demos">
|
4 |
<h3><?php _e( 'Demo Galleries', 'foogallery' );?></h3>
|
@@ -27,7 +37,7 @@
|
|
27 |
|
28 |
<section class="fgah-feature">
|
29 |
<header>
|
30 |
-
<h3><?php _e( 'Create
|
31 |
<p><?php _e( 'It couldn\'t be any easier:', 'foogallery' ); ?></p>
|
32 |
</header>
|
33 |
<div>
|
1 |
<div id="help_section" class="foogallery-admin-help-section">
|
2 |
+
<section class="fgah-feature">
|
3 |
+
<header>
|
4 |
+
<h3><?php _e( 'Thank you for choosing FooGallery!', 'foogallery' );?></h3>
|
5 |
+
<p><?php _e( 'Better galleries for WordPress, that are faster, more flexible and beautiful!', 'foogallery' ); ?></p>
|
6 |
+
</header>
|
7 |
+
<footer>
|
8 |
+
<a class="foogallery-admin-help-button-cta" target="_blank" href="<?php echo esc_url ( $plugin_url ); ?>"><?php echo sprintf( __( 'Visit the %s Homepage', 'foogallery' ), $plugin_name ); ?></a>
|
9 |
+
</footer>
|
10 |
+
</section>
|
11 |
+
|
12 |
<section class="fgah-feature foogallery-admin-help-create-demos">
|
13 |
<header class="fgah-create-demos">
|
14 |
<h3><?php _e( 'Demo Galleries', 'foogallery' );?></h3>
|
37 |
|
38 |
<section class="fgah-feature">
|
39 |
<header>
|
40 |
+
<h3><?php _e( 'Create Your First Gallery', 'foogallery' );?></h3>
|
41 |
<p><?php _e( 'It couldn\'t be any easier:', 'foogallery' ); ?></p>
|
42 |
</header>
|
43 |
<div>
|
includes/admin/view-help-pro.php
CHANGED
@@ -1,29 +1,81 @@
|
|
1 |
<?php
|
2 |
|
3 |
-
$
|
|
|
|
|
|
|
|
|
|
|
|
|
4 |
array(
|
5 |
-
'title' => __( '
|
6 |
-
'desc' => __( '
|
7 |
'link' => 'https://fooplugins.com/foogallery/beautiful-gallery-templates/',
|
8 |
'utm_content' => 'gallery_templates',
|
9 |
'link_text' => __( 'Learn More','foogallery' ),
|
10 |
-
'image' => 'https://assets.fooplugins.com/foogallery/plugin/foogallery-admin-help-pro-templates.png'
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
11 |
),
|
12 |
array(
|
13 |
-
'title' => __( '
|
14 |
-
'desc' => __( '
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
15 |
'link' => 'https://fooplugins.com/foogallery/wordpress-video-gallery/',
|
16 |
'utm_content' => 'videos',
|
17 |
'link_text' => __( 'Learn More','foogallery' ),
|
18 |
-
'image' => 'https://assets.fooplugins.com/foogallery/plugin/foogallery-admin-help-pro-videos.png'
|
|
|
|
|
19 |
),
|
20 |
array(
|
21 |
-
'title' => __( 'Tag Filtering','foogallery' ),
|
22 |
'desc' => __( 'Add tags or categories to your images or videos, and then allow your visitors to filter your gallery. Distinguish between your tags by showing count, or changing the size or opacity. You can also setup multi-level filtering!', 'foogallery' ),
|
23 |
'link' => 'https://fooplugins.com/foogallery/wordpress-filtered-gallery/',
|
24 |
'utm_content' => 'filtering',
|
25 |
'link_text' => __( 'Learn More','foogallery' ),
|
26 |
-
'image' => 'https://assets.fooplugins.com/foogallery/plugin/foogallery-admin-help-pro-filtering.png'
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
27 |
),
|
28 |
array(
|
29 |
'title' => __( 'Dynamic Galleries','foogallery' ),
|
@@ -31,7 +83,9 @@ $features = array(
|
|
31 |
'link' => 'https://fooplugins.com/load-galleries-from-other-sources/',
|
32 |
'utm_content' => 'datasources',
|
33 |
'link_text' => __( 'Learn More','foogallery' ),
|
34 |
-
'image' => 'https://assets.fooplugins.com/foogallery/plugin/foogallery-admin-help-pro-datasources2.png'
|
|
|
|
|
35 |
),
|
36 |
array(
|
37 |
'title' => __( 'Custom Captions','foogallery' ),
|
@@ -39,37 +93,108 @@ $features = array(
|
|
39 |
'link' => 'https://fooplugins.com/foogallery/custom-captions-wordpress-gallery/',
|
40 |
'utm_content' => 'captions',
|
41 |
'link_text' => __( 'Learn More','foogallery' ),
|
42 |
-
'image' => 'https://assets.fooplugins.com/foogallery/plugin/foogallery-admin-help-pro-captions.png'
|
|
|
|
|
43 |
),
|
44 |
array(
|
45 |
-
'title' => __( '
|
46 |
-
'desc' => __( '
|
47 |
-
'link' => 'https://fooplugins.com/foogallery/
|
48 |
-
'utm_content' => '
|
49 |
'link_text' => __( 'Learn More','foogallery' ),
|
50 |
-
'image' => 'https://assets.fooplugins.com/foogallery/plugin/foogallery-admin-help-pro-
|
|
|
|
|
51 |
),
|
52 |
array(
|
53 |
-
'title' => __( '
|
54 |
-
'desc' => __( '
|
55 |
-
'link' => 'https://fooplugins.com/foogallery
|
56 |
-
'utm_content' => '
|
57 |
'link_text' => __( 'Learn More','foogallery' ),
|
58 |
-
'image' => 'https://assets.fooplugins.com/foogallery/plugin/foogallery-admin-help-pro-
|
|
|
|
|
59 |
),
|
60 |
array(
|
61 |
-
'title' => __( '
|
62 |
-
'desc' => __( '
|
63 |
-
'link' => 'https://fooplugins.com/foogallery/
|
64 |
-
'utm_content' => '
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
65 |
'link_text' => __( 'Learn More','foogallery' ),
|
66 |
-
'image' => 'https://assets.fooplugins.com/foogallery/plugin/foogallery-admin-help-pro-
|
|
|
|
|
67 |
),
|
68 |
);
|
69 |
|
70 |
?>
|
71 |
|
72 |
<div id="pro_section" class="foogallery-admin-help-section" style="display: none">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
73 |
<section class="fgah-feature">
|
74 |
<?php if ( $show_trial_message ) { ?>
|
75 |
<header>
|
@@ -81,7 +206,7 @@ $features = array(
|
|
81 |
</footer>
|
82 |
<?php } else if ( $show_thanks_for_pro ) { ?>
|
83 |
<header>
|
84 |
-
<h3><?php
|
85 |
<p><?php _e( 'Check out the PRO features you can start using immediately...', 'foogallery' );?></p>
|
86 |
</header>
|
87 |
<?php } else if ( $is_trial ) { ?>
|
@@ -92,21 +217,34 @@ $features = array(
|
|
92 |
<?php } ?>
|
93 |
</section>
|
94 |
|
95 |
-
<?php foreach ( $
|
96 |
-
<section class="fgah-feature fgah-feature-pro<?php echo ( $i % 2 === 0 ) ? " fgah-feature-right" : ""; ?>">
|
97 |
<div>
|
98 |
<figure>
|
99 |
<a href="<?php echo esc_url( foogallery_admin_url( $feature['link'], 'help', $feature['utm_content'] ) ); ?>" target="_blank">
|
100 |
-
<img src="<?php echo esc_url( $feature['image'] ); ?>" alt="<?php echo esc_html( $feature['title']); ?>" />
|
101 |
</a>
|
102 |
</figure>
|
103 |
<dl>
|
104 |
<dt><?php echo esc_html( $feature['title']); ?></dt>
|
105 |
<dd>
|
106 |
-
|
107 |
-
|
108 |
-
|
109 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
110 |
</dd>
|
111 |
</dl>
|
112 |
</div>
|
1 |
<?php
|
2 |
|
3 |
+
$foogallery_plans = array(
|
4 |
+
FOOGALLERY_PRO_PLAN_STARTER => __( 'PRO Starter', 'foogallery' ),
|
5 |
+
FOOGALLERY_PRO_PLAN_EXPERT => __( 'PRO Expert', 'foogallery' ),
|
6 |
+
FOOGALLERY_PRO_PLAN_COMMERCE => __( 'PRO Commerce', 'foogallery' ),
|
7 |
+
);
|
8 |
+
|
9 |
+
$foogallery_pro_features = array(
|
10 |
array(
|
11 |
+
'title' => __( 'PRO Gallery Templates','foogallery' ),
|
12 |
+
'desc' => __( '3 more advanced gallery templates to help you showcase your photography, including Slider PRO, Grid PRO and Polaroid PRO.', 'foogallery' ),
|
13 |
'link' => 'https://fooplugins.com/foogallery/beautiful-gallery-templates/',
|
14 |
'utm_content' => 'gallery_templates',
|
15 |
'link_text' => __( 'Learn More','foogallery' ),
|
16 |
+
'image' => 'https://assets.fooplugins.com/foogallery/plugin/foogallery-admin-help-pro-templates.png',
|
17 |
+
'plan' => FOOGALLERY_PRO_PLAN_STARTER,
|
18 |
+
'plans' => array( FOOGALLERY_PRO_PLAN_STARTER, FOOGALLERY_PRO_PLAN_EXPERT, FOOGALLERY_PRO_PLAN_COMMERCE ),
|
19 |
+
),
|
20 |
+
array(
|
21 |
+
'title' => __( 'PRO Lightbox','foogallery' ),
|
22 |
+
'desc' => __( 'Our PRO Lightbox is a responsive, full-featured and completely customizable. You can change the color scheme, show a thumbnail strip, enable a slideshow, customize the captions and so much more!', 'foogallery' ),
|
23 |
+
'link' => 'https://fooplugins.com/foogallery/foogallery-pro-lightbox/',
|
24 |
+
'utm_content' => 'lightbox',
|
25 |
+
'link_text' => __( 'Learn More','foogallery' ),
|
26 |
+
'image' => 'https://assets.fooplugins.com/foogallery/plugin/foogallery-admin-help-pro-lightbox.png',
|
27 |
+
'plan' => FOOGALLERY_PRO_PLAN_STARTER,
|
28 |
+
'plans' => array( FOOGALLERY_PRO_PLAN_STARTER, FOOGALLERY_PRO_PLAN_EXPERT, FOOGALLERY_PRO_PLAN_COMMERCE ),
|
29 |
+
),
|
30 |
+
array(
|
31 |
+
'title' => __( 'Animated Hover Effect Presets','foogallery' ),
|
32 |
+
'desc' => __( 'Choose from 11 animated hover effect presets, to add that professional and elegant look to your galleries.', 'foogallery' ),
|
33 |
+
'link' => 'https://fooplugins.com/foogallery/hover-presets/',
|
34 |
+
'utm_content' => 'hover_presets',
|
35 |
+
'link_text' => __( 'Learn More','foogallery' ),
|
36 |
+
'image' => 'https://assets.fooplugins.com/foogallery/plugin/foogallery-admin-help-pro-presets.png',
|
37 |
+
'plan' => FOOGALLERY_PRO_PLAN_STARTER,
|
38 |
+
'plans' => array( FOOGALLERY_PRO_PLAN_STARTER, FOOGALLERY_PRO_PLAN_EXPERT, FOOGALLERY_PRO_PLAN_COMMERCE ),
|
39 |
),
|
40 |
array(
|
41 |
+
'title' => __( 'Image Filter Effects','foogallery' ),
|
42 |
+
'desc' => __( 'Mage your galleries pop, by adding one of 12 image filter effects to your thumbnails, just like you can do with Instagram. Make your galleries stand out from the competition!', 'foogallery' ),
|
43 |
+
'link' => 'https://fooplugins.com/foogallery/thumbnail-filters/',
|
44 |
+
'utm_content' => 'filter_effects',
|
45 |
+
'link_text' => __( 'Learn More','foogallery' ),
|
46 |
+
'image' => 'https://assets.fooplugins.com/foogallery/plugin/foogallery-admin-help-pro-effects.png',
|
47 |
+
'plan' => FOOGALLERY_PRO_PLAN_STARTER,
|
48 |
+
'plans' => array( FOOGALLERY_PRO_PLAN_STARTER, FOOGALLERY_PRO_PLAN_EXPERT, FOOGALLERY_PRO_PLAN_COMMERCE ),
|
49 |
+
),
|
50 |
+
array(
|
51 |
+
'title' => __( 'Video Galleries','foogallery' ),
|
52 |
+
'desc' => __( 'Showcase your videos! Create amazing video galleries by importing videos from YouTube, Vimeo and other sources. Also create galleries from self-hosted videos that you have uploaded to your media library. You can also create mixed galleries with both videos and images.', 'foogallery' ),
|
53 |
'link' => 'https://fooplugins.com/foogallery/wordpress-video-gallery/',
|
54 |
'utm_content' => 'videos',
|
55 |
'link_text' => __( 'Learn More','foogallery' ),
|
56 |
+
'image' => 'https://assets.fooplugins.com/foogallery/plugin/foogallery-admin-help-pro-videos.png',
|
57 |
+
'plan' => FOOGALLERY_PRO_PLAN_EXPERT,
|
58 |
+
'plans' => array( FOOGALLERY_PRO_PLAN_EXPERT, FOOGALLERY_PRO_PLAN_COMMERCE ),
|
59 |
),
|
60 |
array(
|
61 |
+
'title' => __( 'Multi-Level Tag Filtering','foogallery' ),
|
62 |
'desc' => __( 'Add tags or categories to your images or videos, and then allow your visitors to filter your gallery. Distinguish between your tags by showing count, or changing the size or opacity. You can also setup multi-level filtering!', 'foogallery' ),
|
63 |
'link' => 'https://fooplugins.com/foogallery/wordpress-filtered-gallery/',
|
64 |
'utm_content' => 'filtering',
|
65 |
'link_text' => __( 'Learn More','foogallery' ),
|
66 |
+
'image' => 'https://assets.fooplugins.com/foogallery/plugin/foogallery-admin-help-pro-filtering.png',
|
67 |
+
'plan' => FOOGALLERY_PRO_PLAN_EXPERT,
|
68 |
+
'plans' => array( FOOGALLERY_PRO_PLAN_EXPERT, FOOGALLERY_PRO_PLAN_COMMERCE ),
|
69 |
+
),
|
70 |
+
array(
|
71 |
+
'title' => __( 'Advanced Pagination','foogallery' ),
|
72 |
+
'desc' => __( 'Add more advanced types of pagination to your galleries, including page numbering and the popular "Infinite Scroll" and "Load More" variations. Paging is a very useful for larger galleries, as it means your visitors do not need to load the entire gallery all at once.', 'foogallery' ),
|
73 |
+
'link' => 'https://fooplugins.com/foogallery/gallery-pagination/',
|
74 |
+
'utm_content' => 'pagination',
|
75 |
+
'link_text' => __( 'Learn More','foogallery' ),
|
76 |
+
'image' => 'https://assets.fooplugins.com/foogallery/plugin/foogallery-admin-help-pro-pagination.png',
|
77 |
+
'plan' => FOOGALLERY_PRO_PLAN_EXPERT,
|
78 |
+
'plans' => array( FOOGALLERY_PRO_PLAN_EXPERT, FOOGALLERY_PRO_PLAN_COMMERCE ),
|
79 |
),
|
80 |
array(
|
81 |
'title' => __( 'Dynamic Galleries','foogallery' ),
|
83 |
'link' => 'https://fooplugins.com/load-galleries-from-other-sources/',
|
84 |
'utm_content' => 'datasources',
|
85 |
'link_text' => __( 'Learn More','foogallery' ),
|
86 |
+
'image' => 'https://assets.fooplugins.com/foogallery/plugin/foogallery-admin-help-pro-datasources2.png',
|
87 |
+
'plan' => FOOGALLERY_PRO_PLAN_EXPERT,
|
88 |
+
'plans' => array( FOOGALLERY_PRO_PLAN_EXPERT, FOOGALLERY_PRO_PLAN_COMMERCE ),
|
89 |
),
|
90 |
array(
|
91 |
'title' => __( 'Custom Captions','foogallery' ),
|
93 |
'link' => 'https://fooplugins.com/foogallery/custom-captions-wordpress-gallery/',
|
94 |
'utm_content' => 'captions',
|
95 |
'link_text' => __( 'Learn More','foogallery' ),
|
96 |
+
'image' => 'https://assets.fooplugins.com/foogallery/plugin/foogallery-admin-help-pro-captions.png',
|
97 |
+
'plan' => FOOGALLERY_PRO_PLAN_EXPERT,
|
98 |
+
'plans' => array( FOOGALLERY_PRO_PLAN_EXPERT, FOOGALLERY_PRO_PLAN_COMMERCE ),
|
99 |
),
|
100 |
array(
|
101 |
+
'title' => __( 'EXIF Metadata','foogallery' ),
|
102 |
+
'desc' => __( 'Show image metadata within your galleries. A must-have for professional photographers wanting to showcase specific metadata about each image.', 'foogallery' ),
|
103 |
+
'link' => 'https://fooplugins.com/foogallery/exif-metadata/',
|
104 |
+
'utm_content' => 'exif',
|
105 |
'link_text' => __( 'Learn More','foogallery' ),
|
106 |
+
'image' => 'https://assets.fooplugins.com/foogallery/plugin/foogallery-admin-help-pro-exif.png',
|
107 |
+
'plan' => FOOGALLERY_PRO_PLAN_EXPERT,
|
108 |
+
'plans' => array( FOOGALLERY_PRO_PLAN_EXPERT, FOOGALLERY_PRO_PLAN_COMMERCE ),
|
109 |
),
|
110 |
array(
|
111 |
+
'title' => __( 'Bulk Copy Gallery Settings','foogallery' ),
|
112 |
+
'desc' => __( 'Copy settings from one gallery to other galleries in bulk.', 'foogallery' ),
|
113 |
+
'link' => 'https://fooplugins.com/bulk-copy-foogallery-pro/',
|
114 |
+
'utm_content' => 'bulk_copy_settings',
|
115 |
'link_text' => __( 'Learn More','foogallery' ),
|
116 |
+
'image' => 'https://assets.fooplugins.com/foogallery/plugin/foogallery-admin-help-pro-bulk-copy-settings.png',
|
117 |
+
'plan' => FOOGALLERY_PRO_PLAN_EXPERT,
|
118 |
+
'plans' => array( FOOGALLERY_PRO_PLAN_EXPERT, FOOGALLERY_PRO_PLAN_COMMERCE ),
|
119 |
),
|
120 |
array(
|
121 |
+
'title' => __( 'WooCommerce Product Datasource','foogallery' ),
|
122 |
+
'desc' => __( 'Create a dynamic product gallery from your WooCommerce products. You can filter and limit the products shown.', 'foogallery' ),
|
123 |
+
'link' => 'https://fooplugins.com/foogallery/woocommerce-product-gallery/',
|
124 |
+
'utm_content' => 'cta_buttons',
|
125 |
+
'link_text' => __( 'Learn More','foogallery' ),
|
126 |
+
'image' => 'https://assets.fooplugins.com/foogallery/plugin/foogallery-admin-help-pro-woocommerce-datasource.png',
|
127 |
+
'plan' => FOOGALLERY_PRO_PLAN_COMMERCE,
|
128 |
+
'plans' => array( FOOGALLERY_PRO_PLAN_COMMERCE ),
|
129 |
+
),
|
130 |
+
array(
|
131 |
+
'title' => __( 'Product Gallery Template','foogallery' ),
|
132 |
+
'desc' => __( 'We created a new gallery template specifically for showcasing products, with all the default settings you need to take the most advantage of the commerce features.', 'foogallery' ),
|
133 |
+
'link' => 'https://fooplugins.com/foogallery/woocommerce-product-gallery/',
|
134 |
+
'utm_content' => 'product_gallery',
|
135 |
+
'link_text' => __( 'Learn More','foogallery' ),
|
136 |
+
'image' => 'https://assets.fooplugins.com/foogallery/plugin/foogallery-admin-help-pro-product-gallery.png',
|
137 |
+
'plan' => FOOGALLERY_PRO_PLAN_COMMERCE,
|
138 |
+
'plans' => array( FOOGALLERY_PRO_PLAN_COMMERCE ),
|
139 |
+
),
|
140 |
+
array(
|
141 |
+
'title' => __( 'Watermarking & Protection','foogallery' ),
|
142 |
+
'desc' => __( 'Protect your images by not allowing visitors to right click, and also by adding watermarks to images in your galleries. Beautiful looking repeating watermarks are built-in, or use your own custom image.', 'foogallery' ),
|
143 |
+
'link' => 'https://fooplugins.com/foogallery/image-protection-watermarking/',
|
144 |
+
'utm_content' => 'protection',
|
145 |
+
'link_text' => __( 'Learn More','foogallery' ),
|
146 |
+
'image' => 'https://assets.fooplugins.com/foogallery/plugin/foogallery-admin-help-pro-watermarking.png',
|
147 |
+
'plan' => FOOGALLERY_PRO_PLAN_COMMERCE,
|
148 |
+
'plans' => array( FOOGALLERY_PRO_PLAN_COMMERCE ),
|
149 |
+
),
|
150 |
+
array(
|
151 |
+
'title' => __( 'Lightbox Product Info','foogallery' ),
|
152 |
+
'desc' => __( 'Our lightbox integrates with WooCommerce, to show product information, including listing all variations and add to cart buttons.', 'foogallery' ),
|
153 |
+
'link' => 'https://fooplugins.com/foogallery/woocommerce-product-info-lightbox/',
|
154 |
+
'utm_content' => 'product_info_lightbox',
|
155 |
+
'link_text' => __( 'Learn More','foogallery' ),
|
156 |
+
'image' => 'https://assets.fooplugins.com/foogallery/plugin/foogallery-admin-help-pro-product-info-lightbox.png',
|
157 |
+
'plan' => FOOGALLERY_PRO_PLAN_COMMERCE,
|
158 |
+
'plans' => array( FOOGALLERY_PRO_PLAN_COMMERCE ),
|
159 |
+
),
|
160 |
+
array(
|
161 |
+
'title' => __( 'CTA Buttons','foogallery' ),
|
162 |
+
'desc' => __( 'Add Call-to-Action buttons to your gallery images or videos. You can link to product pages or allow visitors to add to cart.', 'foogallery' ),
|
163 |
+
'link' => 'https://fooplugins.com/foogallery/cta-buttons/',
|
164 |
+
'utm_content' => 'cta_buttons',
|
165 |
+
'link_text' => __( 'Learn More','foogallery' ),
|
166 |
+
'image' => 'https://assets.fooplugins.com/foogallery/plugin/foogallery-admin-help-pro-buttons.png',
|
167 |
+
'plan' => FOOGALLERY_PRO_PLAN_COMMERCE,
|
168 |
+
'plans' => array( FOOGALLERY_PRO_PLAN_COMMERCE ),
|
169 |
+
),
|
170 |
+
array(
|
171 |
+
'title' => __( 'Ribbons','foogallery' ),
|
172 |
+
'desc' => __( 'Add attention-grabbing ribbons to your images to highlight sales or special offers, to increase conversions.', 'foogallery' ),
|
173 |
+
'link' => 'https://fooplugins.com/foogallery/ribbons/',
|
174 |
+
'utm_content' => 'cta_ribbons',
|
175 |
'link_text' => __( 'Learn More','foogallery' ),
|
176 |
+
'image' => 'https://assets.fooplugins.com/foogallery/plugin/foogallery-admin-help-pro-ribbons.png',
|
177 |
+
'plan' => FOOGALLERY_PRO_PLAN_COMMERCE,
|
178 |
+
'plans' => array( FOOGALLERY_PRO_PLAN_COMMERCE ),
|
179 |
),
|
180 |
);
|
181 |
|
182 |
?>
|
183 |
|
184 |
<div id="pro_section" class="foogallery-admin-help-section" style="display: none">
|
185 |
+
<section class="fgah-feature">
|
186 |
+
<header>
|
187 |
+
<h3><?php _e( 'FooGallery PRO Plans', 'foogallery' );?></h3>
|
188 |
+
<p><?php _e( 'Choose from a PRO Plan that suits your requirements and budget : ', 'foogallery' );?>
|
189 |
+
<span class="fgah-plan-prostarter"><?php _e( 'PRO Starter', 'foogallery' );?></span>,
|
190 |
+
<span class="fgah-plan-pro"><?php _e( 'PRO Expert', 'foogallery' );?></span> <?php _e( 'or', 'foogallery' );?>
|
191 |
+
<span class="fgah-plan-commerce"><?php _e( 'PRO Commerce', 'foogallery' );?></span>
|
192 |
+
</p>
|
193 |
+
</header>
|
194 |
+
<footer>
|
195 |
+
<a class="foogallery-admin-help-button-cta" href="<?php echo esc_url ( $plans_url ); ?>"><?php _e( 'Compare FooGallery PRO Plans', 'foogallery' ); ?></a>
|
196 |
+
</footer>
|
197 |
+
</section>
|
198 |
<section class="fgah-feature">
|
199 |
<?php if ( $show_trial_message ) { ?>
|
200 |
<header>
|
206 |
</footer>
|
207 |
<?php } else if ( $show_thanks_for_pro ) { ?>
|
208 |
<header>
|
209 |
+
<h3><?php echo sprintf( __( 'Thanks for your support by purchasing a %s license 😍', 'foogallery' ), '<span class="fgah-plan-' . $foogallery_current_plan . '">' . $foogallery_plans[ $foogallery_current_plan ] . '</span>' );?></h3>
|
210 |
<p><?php _e( 'Check out the PRO features you can start using immediately...', 'foogallery' );?></p>
|
211 |
</header>
|
212 |
<?php } else if ( $is_trial ) { ?>
|
217 |
<?php } ?>
|
218 |
</section>
|
219 |
|
220 |
+
<?php foreach ( $foogallery_pro_features as $i => $feature ) { ?>
|
221 |
+
<section class="fgah-feature fgah-feature-pro<?php echo ( $i % 2 === 0 ) ? " fgah-feature-right" : ""; ?> fgah-feature-plan-<?php echo $feature['plan']; ?>">
|
222 |
<div>
|
223 |
<figure>
|
224 |
<a href="<?php echo esc_url( foogallery_admin_url( $feature['link'], 'help', $feature['utm_content'] ) ); ?>" target="_blank">
|
225 |
+
<img src="<?php echo esc_url( $feature['image'] ); ?>" alt="<?php echo esc_html( $feature['title'] ); ?>" />
|
226 |
</a>
|
227 |
</figure>
|
228 |
<dl>
|
229 |
<dt><?php echo esc_html( $feature['title']); ?></dt>
|
230 |
<dd>
|
231 |
+
<div class="fgah-feature-sub-title">
|
232 |
+
<h4><?php _e( 'Available in:', 'foogallery' ); ?></h4>
|
233 |
+
<?php
|
234 |
+
$available_plans = array();
|
235 |
+
foreach ( $feature['plans'] as $plan ) {
|
236 |
+
$available_plans[] = '<span class="fgah-plan-' . esc_attr( $plan ) . '">' . esc_html( $foogallery_plans[ $plan ] ) . '</span>';
|
237 |
+
}
|
238 |
+
echo implode( ' ', $available_plans );
|
239 |
+
?>
|
240 |
+
</div>
|
241 |
+
<p>
|
242 |
+
<?php echo esc_html( $feature['desc'] ); ?>
|
243 |
+
</p>
|
244 |
+
<p>
|
245 |
+
<a href="<?php echo esc_url( foogallery_admin_url( $feature['link'], 'help', $feature['utm_content'] ) ); ?>"
|
246 |
+
target="_blank"><?php echo esc_html( $feature['link_text']); ?></a>
|
247 |
+
</p>
|
248 |
</dd>
|
249 |
</dl>
|
250 |
</div>
|
includes/admin/view-help.php
CHANGED
@@ -2,12 +2,13 @@
|
|
2 |
$instance = FooGallery_Plugin::get_instance();
|
3 |
$info = $instance->get_plugin_info();
|
4 |
|
5 |
-
$logo = FOOGALLERY_URL . 'assets/logo.png';
|
6 |
|
7 |
$plugin_name = foogallery_plugin_name();
|
8 |
$fooplugins_url = foogallery_admin_url( 'https://fooplugins.com/', 'help' );
|
9 |
$plugin_url = foogallery_admin_url( 'https://fooplugins.com/foogallery/', 'help' );
|
10 |
$support_url = foogallery_admin_url( 'https://fooplugins.link/support/', 'help' );
|
|
|
11 |
|
12 |
$fooplugins_link = sprintf( '<a href="%s" target="_blank">%s</a>', $fooplugins_url, __( 'FooPlugins', 'foogallery' ) );
|
13 |
$support_link = sprintf( '<a href="%s" target="_blank">%s</a>', $support_url, __( 'open a support ticket', 'foogallery' ) );
|
@@ -25,6 +26,7 @@ $logo = apply_filters( 'foogallery_admin_help_logo_url', $logo );
|
|
25 |
$demos_created = foogallery_get_setting( 'demo_content' ) === 'on';
|
26 |
|
27 |
$fs_instance = foogallery_fs();
|
|
|
28 |
$is_free = $fs_instance->is_free_plan();
|
29 |
$is_trial = $fs_instance->is_trial();
|
30 |
$show_trial_message = !$is_trial && $is_free && !$fs_instance->is_trial_utilized();
|
@@ -143,13 +145,11 @@ $show_demos = apply_filters( 'foogallery_admin_help_show_demos', true );
|
|
143 |
<div class="foogallery-admin-help">
|
144 |
<div class="foogallery-admin-help-header">
|
145 |
<div class="foogallery-admin-help-ribbon"><span><?php echo FOOGALLERY_VERSION; ?></span></div>
|
146 |
-
<img src="<?php echo $logo; ?>" width="200"
|
147 |
-
<p class="foogallery-admin-help-tagline"><?php echo $tagline; ?></p>
|
148 |
-
<p class="foogallery-admin-help-tagline"><?php echo $link; ?></p>
|
149 |
</div>
|
150 |
<nav>
|
151 |
<a class="foogallery-admin-help-tab-active" href="#help">
|
152 |
-
<?php _e( '
|
153 |
</a>
|
154 |
<a href="#pro">
|
155 |
<?php _e( $upgrade_tab_text, 'foogallery' ); ?>
|
@@ -179,14 +179,18 @@ $show_demos = apply_filters( 'foogallery_admin_help_show_demos', true );
|
|
179 |
<a href="<? echo esc_url( foogallery_admin_url( 'https://fooplugins.com/documentation/foogallery/', 'help') ); ?>" target="_blank"><?php _e('FooGallery Documentation','foogallery'); ?></a>
|
180 |
- <?php _e('Our documentation covers everything you need to know, from install instructions and account management, to troubleshooting common issues and extending the functionality.', 'foogallery'); ?>
|
181 |
</li>
|
|
|
182 |
<li>
|
183 |
<a href="https://wordpress.org/support/plugin/foogallery/" target="_blank"><?php _e('FooGallery WordPress.org Support','foogallery'); ?></a>
|
184 |
- <?php _e('We actively monitor and answer all questions posted on WordPress.org for FooGallery.', 'foogallery'); ?>
|
185 |
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
186 |
</ul>
|
187 |
-
<footer>
|
188 |
-
<?php echo $support_text; ?>
|
189 |
-
</footer>
|
190 |
</section>
|
191 |
</div>
|
192 |
</div>
|
2 |
$instance = FooGallery_Plugin::get_instance();
|
3 |
$info = $instance->get_plugin_info();
|
4 |
|
5 |
+
$logo = FOOGALLERY_URL . 'assets/logo.png?v=2';
|
6 |
|
7 |
$plugin_name = foogallery_plugin_name();
|
8 |
$fooplugins_url = foogallery_admin_url( 'https://fooplugins.com/', 'help' );
|
9 |
$plugin_url = foogallery_admin_url( 'https://fooplugins.com/foogallery/', 'help' );
|
10 |
$support_url = foogallery_admin_url( 'https://fooplugins.link/support/', 'help' );
|
11 |
+
$plans_url = foogallery_admin_url( 'https://fooplugins.com/foogallery/pricing/#plans', 'help' );
|
12 |
|
13 |
$fooplugins_link = sprintf( '<a href="%s" target="_blank">%s</a>', $fooplugins_url, __( 'FooPlugins', 'foogallery' ) );
|
14 |
$support_link = sprintf( '<a href="%s" target="_blank">%s</a>', $support_url, __( 'open a support ticket', 'foogallery' ) );
|
26 |
$demos_created = foogallery_get_setting( 'demo_content' ) === 'on';
|
27 |
|
28 |
$fs_instance = foogallery_fs();
|
29 |
+
$foogallery_current_plan = $fs_instance->get_plan_name();
|
30 |
$is_free = $fs_instance->is_free_plan();
|
31 |
$is_trial = $fs_instance->is_trial();
|
32 |
$show_trial_message = !$is_trial && $is_free && !$fs_instance->is_trial_utilized();
|
145 |
<div class="foogallery-admin-help">
|
146 |
<div class="foogallery-admin-help-header">
|
147 |
<div class="foogallery-admin-help-ribbon"><span><?php echo FOOGALLERY_VERSION; ?></span></div>
|
148 |
+
<img src="<?php echo $logo; ?>" width="200">
|
|
|
|
|
149 |
</div>
|
150 |
<nav>
|
151 |
<a class="foogallery-admin-help-tab-active" href="#help">
|
152 |
+
<?php _e( 'Welcome', 'foogallery' ); ?>
|
153 |
</a>
|
154 |
<a href="#pro">
|
155 |
<?php _e( $upgrade_tab_text, 'foogallery' ); ?>
|
179 |
<a href="<? echo esc_url( foogallery_admin_url( 'https://fooplugins.com/documentation/foogallery/', 'help') ); ?>" target="_blank"><?php _e('FooGallery Documentation','foogallery'); ?></a>
|
180 |
- <?php _e('Our documentation covers everything you need to know, from install instructions and account management, to troubleshooting common issues and extending the functionality.', 'foogallery'); ?>
|
181 |
</li>
|
182 |
+
<?php if ( $is_free ) { ?>
|
183 |
<li>
|
184 |
<a href="https://wordpress.org/support/plugin/foogallery/" target="_blank"><?php _e('FooGallery WordPress.org Support','foogallery'); ?></a>
|
185 |
- <?php _e('We actively monitor and answer all questions posted on WordPress.org for FooGallery.', 'foogallery'); ?>
|
186 |
</li>
|
187 |
+
<?php } else { ?>
|
188 |
+
<li>
|
189 |
+
<a href="<?php echo esc_url( $support_url ); ?>" target="_blank"><?php _e('Premium Support','foogallery'); ?></a>
|
190 |
+
- <?php _e('Open a support ticket and our dedicated support team will assist. This is the fasted way to get help!', 'foogallery'); ?>
|
191 |
+
</li>
|
192 |
+
<?php } ?>
|
193 |
</ul>
|
|
|
|
|
|
|
194 |
</section>
|
195 |
</div>
|
196 |
</div>
|
includes/admin/view-system-info.php
CHANGED
@@ -72,7 +72,7 @@ if ( current_user_can( 'activate_plugins' ) ) {
|
|
72 |
__( 'PHP HTTP Wrapper', 'foogallery' ) => in_array( 'http', $stream_wrappers ) ? __( 'Found', 'foogallery' ) : __( 'Not found!', 'foogallery' ),
|
73 |
__( 'PHP HTTPS Wrapper', 'foogallery' ) => in_array( 'https', $stream_wrappers ) ? __( 'Found', 'foogallery' ) : __( 'Not found!', 'foogallery' ),
|
74 |
__( 'PHP Config[allow_url_fopen]', 'foogallery' ) => ini_get( 'allow_url_fopen' ),
|
75 |
-
__( 'PHP Config[allow_url_include]', 'foogallery' ) => ini_get( '
|
76 |
|
77 |
__( 'Extensions Active', 'foogallery' ) => array_keys( $api->get_active_extensions() ),
|
78 |
__( 'Gallery Templates', 'foogallery' ) => $template_slugs,
|
72 |
__( 'PHP HTTP Wrapper', 'foogallery' ) => in_array( 'http', $stream_wrappers ) ? __( 'Found', 'foogallery' ) : __( 'Not found!', 'foogallery' ),
|
73 |
__( 'PHP HTTPS Wrapper', 'foogallery' ) => in_array( 'https', $stream_wrappers ) ? __( 'Found', 'foogallery' ) : __( 'Not found!', 'foogallery' ),
|
74 |
__( 'PHP Config[allow_url_fopen]', 'foogallery' ) => ini_get( 'allow_url_fopen' ),
|
75 |
+
__( 'PHP Config[allow_url_include]', 'foogallery' ) => ini_get( 'allow_url_include' ),
|
76 |
|
77 |
__( 'Extensions Active', 'foogallery' ) => array_keys( $api->get_active_extensions() ),
|
78 |
__( 'Gallery Templates', 'foogallery' ) => $template_slugs,
|
includes/class-foogallery-attachment.php
CHANGED
@@ -51,14 +51,18 @@ if ( ! class_exists( 'FooGalleryAttachment' ) ) {
|
|
51 |
$this->alt = trim( get_post_meta( $this->ID, '_wp_attachment_image_alt', true ) );
|
52 |
$this->custom_url = get_post_meta( $this->ID, '_foogallery_custom_url', true );
|
53 |
$this->custom_target = get_post_meta( $this->ID, '_foogallery_custom_target', true );
|
54 |
-
$
|
|
|
|
|
|
|
|
|
|
|
|
|
55 |
if ( $image_attributes ) {
|
56 |
$this->url = $image_attributes[0];
|
57 |
$this->width = $image_attributes[1];
|
58 |
$this->height = $image_attributes[2];
|
59 |
}
|
60 |
-
|
61 |
-
do_action( 'foogallery_attachment_instance_after_load', $this, $post );
|
62 |
}
|
63 |
|
64 |
/**
|
51 |
$this->alt = trim( get_post_meta( $this->ID, '_wp_attachment_image_alt', true ) );
|
52 |
$this->custom_url = get_post_meta( $this->ID, '_foogallery_custom_url', true );
|
53 |
$this->custom_target = get_post_meta( $this->ID, '_foogallery_custom_target', true );
|
54 |
+
$this->load_attachment_image_data( $this->ID );
|
55 |
+
|
56 |
+
do_action( 'foogallery_attachment_instance_after_load', $this, $post );
|
57 |
+
}
|
58 |
+
|
59 |
+
public function load_attachment_image_data( $attachment_id ) {
|
60 |
+
$image_attributes = foogallery_get_full_size_image_data( $attachment_id );
|
61 |
if ( $image_attributes ) {
|
62 |
$this->url = $image_attributes[0];
|
63 |
$this->width = $image_attributes[1];
|
64 |
$this->height = $image_attributes[2];
|
65 |
}
|
|
|
|
|
66 |
}
|
67 |
|
68 |
/**
|
includes/class-foogallery-paging.php
CHANGED
@@ -221,6 +221,7 @@ if ( ! class_exists( 'FooGallery_Paging' ) ) {
|
|
221 |
'choices' => apply_filters( 'foogallery_gallery_template_paging_theme_choices', array(
|
222 |
'fg-light' => __( 'Light', 'foogallery' ),
|
223 |
'fg-dark' => __( 'Dark', 'foogallery' ),
|
|
|
224 |
) ),
|
225 |
'row_data'=> array(
|
226 |
'data-foogallery-change-selector' => 'input',
|
221 |
'choices' => apply_filters( 'foogallery_gallery_template_paging_theme_choices', array(
|
222 |
'fg-light' => __( 'Light', 'foogallery' ),
|
223 |
'fg-dark' => __( 'Dark', 'foogallery' ),
|
224 |
+
'fg-custom' => __( 'Custom', 'foogallery' ),
|
225 |
) ),
|
226 |
'row_data'=> array(
|
227 |
'data-foogallery-change-selector' => 'input',
|
includes/class-foogallery.php
CHANGED
@@ -530,6 +530,15 @@ class FooGallery extends stdClass {
|
|
530 |
return $this->apply_datasource_filter( 'item_count', 0 );
|
531 |
}
|
532 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
533 |
public function is_empty() {
|
534 |
if ( foogallery_default_datasource() === $this->datasource_name ) {
|
535 |
return $this->attachment_count() === 0;
|
530 |
return $this->apply_datasource_filter( 'item_count', 0 );
|
531 |
}
|
532 |
|
533 |
+
/**
|
534 |
+
* Returns an array of the attachment ID's within the gallery
|
535 |
+
*
|
536 |
+
* @return array
|
537 |
+
*/
|
538 |
+
public function item_attachment_ids() {
|
539 |
+
return $this->apply_datasource_filter( 'attachment_ids', $this->attachment_ids );
|
540 |
+
}
|
541 |
+
|
542 |
public function is_empty() {
|
543 |
if ( foogallery_default_datasource() === $this->datasource_name ) {
|
544 |
return $this->attachment_count() === 0;
|
includes/compatibility/class-foobox-compatibility.php
CHANGED
@@ -251,7 +251,7 @@ if ( !class_exists( 'FooGallery_FooBox_Compatibility' ) ) {
|
|
251 |
);
|
252 |
|
253 |
//find the index of the first Hover Effect field
|
254 |
-
$index =
|
255 |
|
256 |
array_splice( $fields, $index, 0, $new_fields );
|
257 |
}
|
@@ -259,25 +259,6 @@ if ( !class_exists( 'FooGallery_FooBox_Compatibility' ) ) {
|
|
259 |
return $fields;
|
260 |
}
|
261 |
|
262 |
-
/**
|
263 |
-
* Return the index of the requested section
|
264 |
-
*
|
265 |
-
* @param $fields
|
266 |
-
* @param $section
|
267 |
-
*
|
268 |
-
* @return int
|
269 |
-
*/
|
270 |
-
private function find_index_of_section( $fields, $section ) {
|
271 |
-
$index = 0;
|
272 |
-
foreach ( $fields as $field ) {
|
273 |
-
if ( isset( $field['section'] ) && $section === $field['section'] ) {
|
274 |
-
return $index;
|
275 |
-
}
|
276 |
-
$index++;
|
277 |
-
}
|
278 |
-
return $index;
|
279 |
-
}
|
280 |
-
|
281 |
/***
|
282 |
* Check if we have a lightbox value from FooBox free and change it if foobox free is no longer active
|
283 |
* @param $value
|
251 |
);
|
252 |
|
253 |
//find the index of the first Hover Effect field
|
254 |
+
$index = foogallery_admin_fields_find_index_of_section( $fields, __( 'Hover Effects', 'foogallery' ) );
|
255 |
|
256 |
array_splice( $fields, $index, 0, $new_fields );
|
257 |
}
|
259 |
return $fields;
|
260 |
}
|
261 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
262 |
/***
|
263 |
* Check if we have a lightbox value from FooBox free and change it if foobox free is no longer active
|
264 |
* @param $value
|
includes/constants.php
CHANGED
@@ -38,4 +38,8 @@ define( 'FOOGALLERY_ADMIN_MENU_SYSTEMINFO_SLUG', 'foogallery-systeminfo' );
|
|
38 |
define( 'FOOGALLERY_ADMIN_MENU_PRICING_SLUG', 'foogallery-pricing' );
|
39 |
|
40 |
define( 'FOOGALLERY_ATTACHMENT_TAXONOMY_TAG', 'foogallery_attachment_tag' );
|
41 |
-
define( 'FOOGALLERY_ATTACHMENT_TAXONOMY_CATEGORY', 'foogallery_attachment_category' );
|
|
|
|
|
|
|
|
38 |
define( 'FOOGALLERY_ADMIN_MENU_PRICING_SLUG', 'foogallery-pricing' );
|
39 |
|
40 |
define( 'FOOGALLERY_ATTACHMENT_TAXONOMY_TAG', 'foogallery_attachment_tag' );
|
41 |
+
define( 'FOOGALLERY_ATTACHMENT_TAXONOMY_CATEGORY', 'foogallery_attachment_category' );
|
42 |
+
|
43 |
+
define( 'FOOGALLERY_PRO_PLAN_STARTER', 'prostarter' );
|
44 |
+
define( 'FOOGALLERY_PRO_PLAN_EXPERT', 'pro' );
|
45 |
+
define( 'FOOGALLERY_PRO_PLAN_COMMERCE', 'commerce' );
|
includes/functions.php
CHANGED
@@ -1085,9 +1085,51 @@ function foogallery_get_fields_for_template( $template )
|
|
1085 |
// Allow for extensions to override fields for a specific gallery template.
|
1086 |
// Also passes the $template along so you can inspect and conditionally alter fields based on the template properties
|
1087 |
$fields = apply_filters( "foogallery_override_gallery_template_fields-{$template['slug']}", $fields, $template );
|
1088 |
-
|
1089 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1090 |
$field = apply_filters( 'foogallery_alter_gallery_template_field', $field, $template['slug'] );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1091 |
}
|
1092 |
return $fields;
|
1093 |
}
|
@@ -2007,3 +2049,71 @@ function foogallery_get_svg_placeholder_image( $w, $h )
|
|
2007 |
{
|
2008 |
return 'data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22' . $w . '%22%20height%3D%22' . $h . '%22%20viewBox%3D%220%200%20' . $w . '%20' . $h . '%22%3E%3C%2Fsvg%3E';
|
2009 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1085 |
// Allow for extensions to override fields for a specific gallery template.
|
1086 |
// Also passes the $template along so you can inspect and conditionally alter fields based on the template properties
|
1087 |
$fields = apply_filters( "foogallery_override_gallery_template_fields-{$template['slug']}", $fields, $template );
|
1088 |
+
// Easily remove fields.
|
1089 |
+
$fields_to_remove = apply_filters( 'foogallery_override_gallery_template_fields_remove', array(), $template );
|
1090 |
+
$fields_to_remove = apply_filters( "foogallery_override_gallery_template_fields_remove-{$template['slug']}", $fields_to_remove );
|
1091 |
+
// Easily set defaults for fields.
|
1092 |
+
$override_fields_defaults = apply_filters( 'foogallery_override_gallery_template_fields_defaults', array(), $template );
|
1093 |
+
$override_fields_defaults = apply_filters( "foogallery_override_gallery_template_fields_defaults-{$template['slug']}", $override_fields_defaults );
|
1094 |
+
// Easily hide certain fields.
|
1095 |
+
$fields_to_hide = apply_filters( 'foogallery_override_gallery_template_fields_hidden', array(), $template );
|
1096 |
+
$fields_to_hide = apply_filters( "foogallery_override_gallery_template_fields_hidden-{$template['slug']}", $fields_to_hide );
|
1097 |
+
$indexes_to_remove = array();
|
1098 |
+
foreach ( $fields as $key => &$field ) {
|
1099 |
+
// Allow for the field to be altered by extensions. Also used by the build-in fields, e.g. lightbox.
|
1100 |
$field = apply_filters( 'foogallery_alter_gallery_template_field', $field, $template['slug'] );
|
1101 |
+
|
1102 |
+
if ( in_array( $field['id'], $fields_to_remove ) ) {
|
1103 |
+
$indexes_to_remove[] = $key;
|
1104 |
+
} else {
|
1105 |
+
// Last time to set field defaults.
|
1106 |
+
if ( array_key_exists( $field['id'], $override_fields_defaults ) ) {
|
1107 |
+
$field['default'] = $override_fields_defaults[$field['id']];
|
1108 |
+
}
|
1109 |
+
// Make fields invisible.
|
1110 |
+
|
1111 |
+
if ( in_array( $field['id'], $fields_to_hide ) ) {
|
1112 |
+
// Make sure the field is not visible.
|
1113 |
+
$field['row_data']['data-foogallery-invisible'] = true;
|
1114 |
+
// Force the field to not be hidden, which means it's values can be used in previews.
|
1115 |
+
if ( isset( $field['row_data']['data-foogallery-hidden'] ) ) {
|
1116 |
+
unset( $field['row_data']['data-foogallery-hidden'] );
|
1117 |
+
}
|
1118 |
+
// Remove the conditionals to FORCE the field to never be shown.
|
1119 |
+
if ( isset( $field['row_data']['data-foogallery-show-when-field'] ) ) {
|
1120 |
+
unset( $field['row_data']['data-foogallery-show-when-field'] );
|
1121 |
+
}
|
1122 |
+
if ( isset( $field['row_data']['data-foogallery-show-when-field-value'] ) ) {
|
1123 |
+
unset( $field['row_data']['data-foogallery-show-when-field-value'] );
|
1124 |
+
}
|
1125 |
+
}
|
1126 |
+
|
1127 |
+
}
|
1128 |
+
|
1129 |
+
}
|
1130 |
+
// Finally, remove the fields that were marked for removal.
|
1131 |
+
foreach ( $indexes_to_remove as $index ) {
|
1132 |
+
unset( $fields[$index] );
|
1133 |
}
|
1134 |
return $fields;
|
1135 |
}
|
2049 |
{
|
2050 |
return 'data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22' . $w . '%22%20height%3D%22' . $h . '%22%20viewBox%3D%220%200%20' . $w . '%20' . $h . '%22%3E%3C%2Fsvg%3E';
|
2051 |
}
|
2052 |
+
|
2053 |
+
/**
|
2054 |
+
* Extracts the gallery ID from a full gallery ID
|
2055 |
+
*
|
2056 |
+
* @param $full_gallery_id
|
2057 |
+
*
|
2058 |
+
* @return int
|
2059 |
+
*/
|
2060 |
+
function foogallery_extract_gallery_id( $full_gallery_id )
|
2061 |
+
{
|
2062 |
+
preg_match_all( '/^.*?(\\d+?)(?:_|$)/', $full_gallery_id, $matches );
|
2063 |
+
if ( is_array( $matches ) ) {
|
2064 |
+
return intval( $matches[1][0] );
|
2065 |
+
}
|
2066 |
+
return 0;
|
2067 |
+
}
|
2068 |
+
|
2069 |
+
/**
|
2070 |
+
* Return the index of a specific section with the gallery template fields array
|
2071 |
+
*
|
2072 |
+
* @param $fields
|
2073 |
+
* @param $section
|
2074 |
+
*
|
2075 |
+
* @return int
|
2076 |
+
*/
|
2077 |
+
function foogallery_admin_fields_find_index_of_section( $fields, $section )
|
2078 |
+
{
|
2079 |
+
$index = 0;
|
2080 |
+
foreach ( $fields as $field ) {
|
2081 |
+
if ( isset( $field['section'] ) && $section === $field['section'] ) {
|
2082 |
+
return $index;
|
2083 |
+
}
|
2084 |
+
$index++;
|
2085 |
+
}
|
2086 |
+
return $index;
|
2087 |
+
}
|
2088 |
+
|
2089 |
+
/**
|
2090 |
+
* Return the index of a specific field within the gallery template fields array
|
2091 |
+
*
|
2092 |
+
* @param $fields
|
2093 |
+
* @param $field_id
|
2094 |
+
*
|
2095 |
+
* @return int
|
2096 |
+
*/
|
2097 |
+
function foogallery_admin_fields_find_index_of_field( $fields, $field_id )
|
2098 |
+
{
|
2099 |
+
$index = 0;
|
2100 |
+
foreach ( $fields as $field ) {
|
2101 |
+
if ( isset( $field['id'] ) && $field_id === $field['id'] ) {
|
2102 |
+
return $index;
|
2103 |
+
}
|
2104 |
+
$index++;
|
2105 |
+
}
|
2106 |
+
return $index;
|
2107 |
+
}
|
2108 |
+
|
2109 |
+
/**
|
2110 |
+
* Returns the path of the URL
|
2111 |
+
*
|
2112 |
+
* @param $url
|
2113 |
+
*
|
2114 |
+
* @return false|string
|
2115 |
+
*/
|
2116 |
+
function foogallery_local_url_to_path( $url )
|
2117 |
+
{
|
2118 |
+
return FooGallery_Thumb_Generator::get_file_path( $url );
|
2119 |
+
}
|
includes/render-functions.php
CHANGED
@@ -35,12 +35,7 @@ function foogallery_attachment_html_image_src( $foogallery_attachment, $args = a
|
|
35 |
function foogallery_attachment_html_image( $foogallery_attachment, $args = array() ) {
|
36 |
$attr = foogallery_build_attachment_html_image_attributes( $foogallery_attachment, $args );
|
37 |
|
38 |
-
$html = '
|
39 |
-
foreach ( $attr as $name => $value ) {
|
40 |
-
$name = str_replace(' ', '', $name); //ensure we have no spaces!
|
41 |
-
$html .= " $name=" . '"' . foogallery_esc_attr($value) . '"';
|
42 |
-
}
|
43 |
-
$html .= ' />';
|
44 |
|
45 |
return apply_filters( 'foogallery_attachment_html_image', $html, $args, $foogallery_attachment );
|
46 |
}
|
@@ -103,12 +98,7 @@ function foogallery_build_attachment_html_image_attributes( $foogallery_attachme
|
|
103 |
function foogallery_attachment_html_anchor_opening( $foogallery_attachment, $args = array() ) {
|
104 |
$attr = foogallery_build_attachment_html_anchor_attributes( $foogallery_attachment, $args );
|
105 |
|
106 |
-
|
107 |
-
foreach ( $attr as $name => $value ) {
|
108 |
-
$name = str_replace(' ', '', $name); //ensure we have no spaces!
|
109 |
-
$html .= " $name=" . '"' . foogallery_esc_attr($value) . '"';
|
110 |
-
}
|
111 |
-
$html .= '>';
|
112 |
|
113 |
return apply_filters( 'foogallery_attachment_html_anchor_opening', $html, $args, $foogallery_attachment );
|
114 |
}
|
@@ -488,7 +478,9 @@ function foogallery_build_json_object_from_attachment( $foogallery_attachment, $
|
|
488 |
|
489 |
$json_object = new stdClass();
|
490 |
|
491 |
-
|
|
|
|
|
492 |
if ( array_key_exists( 'data-type', $anchor_attributes ) ) {
|
493 |
$json_object->type = $anchor_attributes['data-type'];
|
494 |
}
|
@@ -590,4 +582,23 @@ function foogallery_render_script_block_for_json_items( $gallery, $attachments )
|
|
590 |
echo ' ];';
|
591 |
echo '</script>';
|
592 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
593 |
}
|
35 |
function foogallery_attachment_html_image( $foogallery_attachment, $args = array() ) {
|
36 |
$attr = foogallery_build_attachment_html_image_attributes( $foogallery_attachment, $args );
|
37 |
|
38 |
+
$html = foogallery_html_opening_tag( 'img', $attr );
|
|
|
|
|
|
|
|
|
|
|
39 |
|
40 |
return apply_filters( 'foogallery_attachment_html_image', $html, $args, $foogallery_attachment );
|
41 |
}
|
98 |
function foogallery_attachment_html_anchor_opening( $foogallery_attachment, $args = array() ) {
|
99 |
$attr = foogallery_build_attachment_html_anchor_attributes( $foogallery_attachment, $args );
|
100 |
|
101 |
+
$html = foogallery_html_opening_tag( 'a', $attr );
|
|
|
|
|
|
|
|
|
|
|
102 |
|
103 |
return apply_filters( 'foogallery_attachment_html_anchor_opening', $html, $args, $foogallery_attachment );
|
104 |
}
|
478 |
|
479 |
$json_object = new stdClass();
|
480 |
|
481 |
+
if ( array_key_exists( 'href', $anchor_attributes ) ) {
|
482 |
+
$json_object->href = $anchor_attributes['href'];
|
483 |
+
}
|
484 |
if ( array_key_exists( 'data-type', $anchor_attributes ) ) {
|
485 |
$json_object->type = $anchor_attributes['data-type'];
|
486 |
}
|
582 |
echo ' ];';
|
583 |
echo '</script>';
|
584 |
}
|
585 |
+
}
|
586 |
+
|
587 |
+
/**
|
588 |
+
* Generates the HTML for a tag
|
589 |
+
*
|
590 |
+
* @param $tag
|
591 |
+
* @param $attributes
|
592 |
+
*
|
593 |
+
* @return string
|
594 |
+
*/
|
595 |
+
function foogallery_html_opening_tag( $tag, $attributes ) {
|
596 |
+
$html = '<' . $tag;
|
597 |
+
foreach ( $attributes as $name => $value ) {
|
598 |
+
if ( empty( $name ) || empty( $value ) ) continue;
|
599 |
+
$name = str_replace(' ', '', $name); //ensure we have no spaces!
|
600 |
+
$html .= " $name=" . '"' . foogallery_esc_attr($value) . '"';
|
601 |
+
}
|
602 |
+
$html .= '>';
|
603 |
+
return $html;
|
604 |
}
|
includes/thumbs/default/class-foogallery-thumb-generator.php
CHANGED
@@ -88,15 +88,17 @@ if ( ! class_exists( 'FooGallery_Thumb_Generator' ) ) {
|
|
88 |
}
|
89 |
|
90 |
/**
|
91 |
-
*
|
92 |
*
|
93 |
-
* @param
|
|
|
|
|
94 |
*/
|
95 |
-
public function
|
96 |
|
97 |
//check if the $file_path is already a path within the site
|
98 |
if ( strpos( $image_url, self::get_home_path() ) === 0 ) {
|
99 |
-
|
100 |
} else {
|
101 |
//we are dealing with a URL
|
102 |
|
@@ -118,14 +120,27 @@ if ( ! class_exists( 'FooGallery_Thumb_Generator' ) ) {
|
|
118 |
$image_path = strtok( $image_path, '?' );
|
119 |
|
120 |
//check it exists
|
121 |
-
if ( !
|
122 |
-
|
123 |
-
return;
|
124 |
}
|
125 |
}
|
126 |
}
|
127 |
|
128 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
129 |
}
|
130 |
|
131 |
/**
|
88 |
}
|
89 |
|
90 |
/**
|
91 |
+
* Returns the path of an image URL
|
92 |
*
|
93 |
+
* @param $image_url
|
94 |
+
*
|
95 |
+
* @return string|false
|
96 |
*/
|
97 |
+
public static function get_file_path( $image_url ) {
|
98 |
|
99 |
//check if the $file_path is already a path within the site
|
100 |
if ( strpos( $image_url, self::get_home_path() ) === 0 ) {
|
101 |
+
return $image_url;
|
102 |
} else {
|
103 |
//we are dealing with a URL
|
104 |
|
120 |
$image_path = strtok( $image_path, '?' );
|
121 |
|
122 |
//check it exists
|
123 |
+
if ( !file_exists( $image_path ) ) {
|
124 |
+
return false;
|
|
|
125 |
}
|
126 |
}
|
127 |
}
|
128 |
|
129 |
+
return $image_path;
|
130 |
+
}
|
131 |
+
|
132 |
+
/**
|
133 |
+
* Set the correct file path of the original image from the image URL
|
134 |
+
*
|
135 |
+
* @param string $image_url
|
136 |
+
*/
|
137 |
+
public function set_file_path( $image_url ) {
|
138 |
+
$file_path = self::get_file_path( $image_url );
|
139 |
+
if ( false === $file_path ) {
|
140 |
+
$this->error = new WP_Error( 'file-not-found' );
|
141 |
+
} else {
|
142 |
+
$this->file_path = $file_path;
|
143 |
+
}
|
144 |
}
|
145 |
|
146 |
/**
|
js/admin-foogallery-edit.js
CHANGED
@@ -600,6 +600,11 @@ FooGallery.autoEnabled = false;
|
|
600 |
io.observe(img);
|
601 |
});
|
602 |
}
|
|
|
|
|
|
|
|
|
|
|
603 |
};
|
604 |
|
605 |
}(window.FOOGALLERY = window.FOOGALLERY || {}, jQuery));
|
600 |
io.observe(img);
|
601 |
});
|
602 |
}
|
603 |
+
|
604 |
+
$('.foogallery-admin-promo-dismiss').on('click', function(e) {
|
605 |
+
e.preventDefault();
|
606 |
+
alert( 'If you want to turn off these promotional messages forever, goto FooGallery Settings -> Advanced, and set the "Disable PRO Promotions" setting. Thank you for using FooGallery :)')
|
607 |
+
} );
|
608 |
};
|
609 |
|
610 |
}(window.FOOGALLERY = window.FOOGALLERY || {}, jQuery));
|
js/foogallery.admin.min.js
CHANGED
@@ -1,6 +1,6 @@
|
|
1 |
/*
|
2 |
* FooGallery - The Most Intuitive and Extensible Gallery Creation and Management Tool Ever Created for WordPress
|
3 |
-
* @version 2.0.
|
4 |
* @link
|
5 |
* @copyright Steven Usher & Brad Vincent 2015
|
6 |
* @license Released under the GPLv3 license.
|
1 |
/*
|
2 |
* FooGallery - The Most Intuitive and Extensible Gallery Creation and Management Tool Ever Created for WordPress
|
3 |
+
* @version 2.0.21
|
4 |
* @link
|
5 |
* @copyright Steven Usher & Brad Vincent 2015
|
6 |
* @license Released under the GPLv3 license.
|