Version Description
- Date Updated : 2022-11-12
- Fix : import/export include error on some installs.
- Fix : fixed a few bugs with new edit attachment modal.
Download this release
Release Info
Developer | bradvin |
Plugin | FooGallery – Image Gallery WordPress Plugin |
Version | 2.2.26 |
Comparing to | |
See all releases |
Code changes from version 2.2.16 to 2.2.26
- README.txt +42 -9
- css/admin-foogallery.css +233 -1
- extensions/default-templates/shared/css/foogallery.css +3 -3
- extensions/default-templates/shared/css/foogallery.min.css +1 -1
- extensions/default-templates/shared/js/foogallery.js +169 -55
- extensions/default-templates/shared/js/foogallery.min.js +2 -2
- extensions/import-export/class-foogallery-import-export.php +1 -1
- foogallery.php +2 -2
- freemius/languages/freemius.pot +1968 -1968
- freemius/start.php +530 -530
- includes/admin/class-admin.php +1 -0
- includes/admin/class-gallery-attachment-modal.php +821 -0
- includes/admin/class-gallery-metaboxes.php +26 -0
- includes/admin/class-pro-promotion.php +3 -0
- includes/admin/class-settings.php +9 -0
- includes/admin/view-help-pro.php +10 -0
- includes/class-override-thumbnail.php +127 -0
- includes/includes.php +3 -0
- includes/thumbs/{default/class-foogallery-thumb-image-editor-gd.php → class-foogallery-thumb-image-editor-gd.php} +0 -0
- includes/thumbs/{default/class-foogallery-thumb-image-editor-imagick.php → class-foogallery-thumb-image-editor-imagick.php} +0 -0
- includes/thumbs/class-foogallery-thumb-manager.php +37 -0
- includes/thumbs/default/class-foogallery-thumb-engine-default.php +1 -37
- js/admin-foogallery-edit.js +204 -54
- js/foogallery.admin.min.js +1 -1
README.txt
CHANGED
@@ -67,9 +67,10 @@ The following free features make FooGallery the **best gallery plugin** on the m
|
|
67 |
* Yoast SEO sitemap integration
|
68 |
* Rank Math SEO sitemap integration
|
69 |
* AIOSEO sitemap integration
|
70 |
-
* Albums built-in! (just activate the albums
|
71 |
* Responsive album layout - [demo](https://fooplugins.com/foogallery-wordpress-gallery-plugin/wordpress-album-gallery/)
|
72 |
* All-in-one Stack album - [demo](https://fooplugins.com/foogallery-wordpress-gallery-plugin/wordpress-album-gallery/#all-in-one)
|
|
|
73 |
* Gutenberg ready (Gallery previews inside the new editor!)
|
74 |
* Live previews as you make changes!
|
75 |
* Retina thumbnail support
|
@@ -108,11 +109,11 @@ There are 3 PRO plans available, that will work with any budget:
|
|
108 |
* Multi-level filtering for galleries [demo](https://fooplugins.com/foogallery-wordpress-gallery-plugin/filtering/#multi-level)
|
109 |
* Bulk media tags and category management for attachments
|
110 |
* Dynamic Galleries (load images from other sources):
|
111 |
-
* Load from a folder on the server
|
112 |
-
* Load from a collection from Adobe Lightroom (using WP/LR Sync)
|
113 |
-
* Load all attachments with Media Tags
|
114 |
-
* Load all attachments with Media Categories
|
115 |
-
* Load from a folder in Real Media Library
|
116 |
* Load featured images from a post/page/custom post type - [demo](https://fooplugins.com/foogallery-wordpress-gallery-plugin/post-query-gallery/)
|
117 |
* Advanced Pagination
|
118 |
* Numbered pagination - [demo](https://fooplugins.com/foogallery-wordpress-gallery-plugin/pagination/#numbered)
|
@@ -140,6 +141,8 @@ There are 3 PRO plans available, that will work with any budget:
|
|
140 |
* Supports variations
|
141 |
* Master Galleries
|
142 |
* Set a gallery as a master and then all galleries who use that master will inherit all settings from the master - [docs](https://fooplugins.com/documentation/foogallery/pro-commerce/use-master-gallery/)
|
|
|
|
|
143 |
|
144 |
[See More Demos](https://fooplugins.com/foogallery-wordpress-gallery-plugin/demos/)
|
145 |
|
@@ -182,7 +185,7 @@ Sell your photographs online with our full WooCommerce integration, available in
|
|
182 |
|
183 |
**Albums Built In**
|
184 |
|
185 |
-
Albums are built in as an
|
186 |
|
187 |
**Built For Developers**
|
188 |
|
@@ -265,9 +268,19 @@ You can choose to create a gallery based of your products, or you can link all i
|
|
265 |
For the Free version of FooGallery - Yes, you will need to install FooBox Image Lightbox.
|
266 |
For the PRO version of FooGallery - No, we have built in a uniquely beautiful lightbox!
|
267 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
268 |
= How do I get albums working? =
|
269 |
|
270 |
-
Simply go to the FooGallery
|
271 |
|
272 |
= Can I add a watermark to my images? =
|
273 |
|
@@ -299,8 +312,27 @@ Please update in order to for FooGallery to work in WP 5.5+!
|
|
299 |
|
300 |
== Changelog ==
|
301 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
302 |
= 2.2.16 =
|
303 |
-
* Date Updated : 2022-08-
|
304 |
* New : Added Import/Export feature, so you can export galleries on one install, and import into another.
|
305 |
* New : Added settings to hide nav/paging/progress for Carousel.
|
306 |
* New : Added filter 'foogallery_render_template_template_override' which allows developers to override the gallery template.
|
@@ -310,6 +342,7 @@ Please update in order to for FooGallery to work in WP 5.5+!
|
|
310 |
* Fix : Better integration with FooBox and FooGallery.
|
311 |
* Fix : Removed PHP warnings in albums extension.
|
312 |
* Update : FooGallery client side 2.0.35
|
|
|
313 |
|
314 |
|
315 |
= 2.2.8 =
|
67 |
* Yoast SEO sitemap integration
|
68 |
* Rank Math SEO sitemap integration
|
69 |
* AIOSEO sitemap integration
|
70 |
+
* Albums built-in! (just activate the albums feature)
|
71 |
* Responsive album layout - [demo](https://fooplugins.com/foogallery-wordpress-gallery-plugin/wordpress-album-gallery/)
|
72 |
* All-in-one Stack album - [demo](https://fooplugins.com/foogallery-wordpress-gallery-plugin/wordpress-album-gallery/#all-in-one)
|
73 |
+
* Import / Export galleries between WP installs - [docs](https://fooplugins.com/documentation/foogallery/getting-started-foogallery/import-export/)
|
74 |
* Gutenberg ready (Gallery previews inside the new editor!)
|
75 |
* Live previews as you make changes!
|
76 |
* Retina thumbnail support
|
109 |
* Multi-level filtering for galleries [demo](https://fooplugins.com/foogallery-wordpress-gallery-plugin/filtering/#multi-level)
|
110 |
* Bulk media tags and category management for attachments
|
111 |
* Dynamic Galleries (load images from other sources):
|
112 |
+
* Load from a folder on the server [docs](https://fooplugins.com/documentation/foogallery/pro-expert/loading-galleries-server-folders/)
|
113 |
+
* Load from a collection from Adobe Lightroom (using WP/LR Sync) [docs](https://fooplugins.com/documentation/foogallery/pro-expert/dynamic-gallery-from-lightroom-collection/)
|
114 |
+
* Load all attachments with Media Tags [docs](https://fooplugins.com/documentation/foogallery/pro-expert/loading-galleries-media-tags/)
|
115 |
+
* Load all attachments with Media Categories [docs](https://fooplugins.com/documentation/foogallery/pro-expert/loading-galleries-media-categories/)
|
116 |
+
* Load from a folder in Real Media Library [docs](https://fooplugins.com/documentation/foogallery/pro-expert/loading-galleries-real-media-library/)
|
117 |
* Load featured images from a post/page/custom post type - [demo](https://fooplugins.com/foogallery-wordpress-gallery-plugin/post-query-gallery/)
|
118 |
* Advanced Pagination
|
119 |
* Numbered pagination - [demo](https://fooplugins.com/foogallery-wordpress-gallery-plugin/pagination/#numbered)
|
141 |
* Supports variations
|
142 |
* Master Galleries
|
143 |
* Set a gallery as a master and then all galleries who use that master will inherit all settings from the master - [docs](https://fooplugins.com/documentation/foogallery/pro-commerce/use-master-gallery/)
|
144 |
+
* White Labeling
|
145 |
+
* Rebrand FooGallery to whatever you like for your clients. Ideal for freelancers and agencies. [docs](https://fooplugins.com/documentation/foogallery/pro-commerce/white-labeling/)
|
146 |
|
147 |
[See More Demos](https://fooplugins.com/foogallery-wordpress-gallery-plugin/demos/)
|
148 |
|
185 |
|
186 |
**Albums Built In**
|
187 |
|
188 |
+
Albums are built in as an feature. Simply head over to the Features page and activate the albums feature. A new menu item will appear that allows you to add albums just as easily as galleries.
|
189 |
|
190 |
**Built For Developers**
|
191 |
|
268 |
For the Free version of FooGallery - Yes, you will need to install FooBox Image Lightbox.
|
269 |
For the PRO version of FooGallery - No, we have built in a uniquely beautiful lightbox!
|
270 |
|
271 |
+
= How do I import galleries from another install? =
|
272 |
+
|
273 |
+
Simply go to the FooGallery Features page and activate the Import/Export feature on your source installation and your destination installation.
|
274 |
+
Login into your source WordPress install, and click on the FooGallery -> Import/Export menu item.
|
275 |
+
Click the Export tab and select the galleries you want to export and click Export.
|
276 |
+
Copy the export data that is generated.
|
277 |
+
Login into your destination WordPress install, and click on the FooGallery -> Import/Export menu item.
|
278 |
+
Paste the export data and click Import.
|
279 |
+
Please note : the images in your source install need to be accessible to your destination install (this means you cannot lock down your source install if you want this to work).
|
280 |
+
|
281 |
= How do I get albums working? =
|
282 |
|
283 |
+
Simply go to the FooGallery Features page and activate the Albums feature.
|
284 |
|
285 |
= Can I add a watermark to my images? =
|
286 |
|
312 |
|
313 |
== Changelog ==
|
314 |
|
315 |
+
= 2.2.26 =
|
316 |
+
* Date Updated : 2022-11-12
|
317 |
+
* Fix : import/export include error on some installs.
|
318 |
+
* Fix : fixed a few bugs with new edit attachment modal.
|
319 |
+
|
320 |
+
= 2.2.22 =
|
321 |
+
* Date Updated : 2022-10-22
|
322 |
+
* New : Added new BETA attachment modal on gallery edit page, which is an easier way to edit attachment info. (Turned on from settings)
|
323 |
+
* Update : FooGallery client side 2.0.39
|
324 |
+
|
325 |
+
|
326 |
+
= 2.2.20 =
|
327 |
+
* Date Updated : 2022-09-05
|
328 |
+
* Fix : Fixed Justified last row + filter bug.
|
329 |
+
* Fix : Fixed iOS swipe bug.
|
330 |
+
* Fix : Fixed PHP warning when using taxonomy datasource originating from woocommerce product linking.
|
331 |
+
* Update : FooGallery client side 2.0.38
|
332 |
+
|
333 |
+
|
334 |
= 2.2.16 =
|
335 |
+
* Date Updated : 2022-08-16
|
336 |
* New : Added Import/Export feature, so you can export galleries on one install, and import into another.
|
337 |
* New : Added settings to hide nav/paging/progress for Carousel.
|
338 |
* New : Added filter 'foogallery_render_template_template_override' which allows developers to override the gallery template.
|
342 |
* Fix : Better integration with FooBox and FooGallery.
|
343 |
* Fix : Removed PHP warnings in albums extension.
|
344 |
* Update : FooGallery client side 2.0.35
|
345 |
+
* Update : Updated to Freemius SDK 2.4.5
|
346 |
|
347 |
|
348 |
= 2.2.8 =
|
css/admin-foogallery.css
CHANGED
@@ -732,4 +732,236 @@ button[data-balloon]{overflow:visible}[data-balloon]{position:relative}[data-bal
|
|
732 |
.foogallery-custom-metabox-header .foogallery-template-selector select {
|
733 |
font-size: 13px;
|
734 |
margin: 0 6px;
|
735 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
732 |
.foogallery-custom-metabox-header .foogallery-template-selector select {
|
733 |
font-size: 13px;
|
734 |
margin: 0 6px;
|
735 |
+
}
|
736 |
+
|
737 |
+
.foogallery-multi-filtering-modal-close {
|
738 |
+
float: right;
|
739 |
+
margin-left: 5px !important;
|
740 |
+
}
|
741 |
+
|
742 |
+
#foogallery-image-edit-modal .foogallery-image-edit-main {
|
743 |
+
text-align: center;
|
744 |
+
padding: 0 0 20px;
|
745 |
+
}
|
746 |
+
#foogallery-image-edit-modal .foogallery-image-edit-meta{
|
747 |
+
padding: 10px 0px;
|
748 |
+
position: relative;
|
749 |
+
}
|
750 |
+
#foogallery-image-edit-modal .attachment-details {
|
751 |
+
display: grid;
|
752 |
+
grid-template-columns: 1fr 2fr;
|
753 |
+
/*grid-gap: 15px;*/
|
754 |
+
padding: 0;
|
755 |
+
background: #f0f0f1;
|
756 |
+
}
|
757 |
+
#foogallery-image-edit-modal .foogallery-image-edit-view {
|
758 |
+
margin-bottom: 15px;
|
759 |
+
}
|
760 |
+
/*
|
761 |
+
CSS for the main interaction
|
762 |
+
*/
|
763 |
+
#foogallery-image-edit-modal .tabset .foogallery-img-modal-tab-wrapper > input[type="radio"] {
|
764 |
+
position: absolute;
|
765 |
+
left: -200vw;
|
766 |
+
}
|
767 |
+
|
768 |
+
#foogallery-image-edit-modal .tab-panel {
|
769 |
+
display: none;
|
770 |
+
padding: 30px 0;
|
771 |
+
/* border-top: 1px solid #ccc; */
|
772 |
+
}
|
773 |
+
#foogallery-image-edit-modal .tab-panel.active {
|
774 |
+
display: block;
|
775 |
+
}
|
776 |
+
#foogallery-image-edit-modal .tabset .foogallery-img-modal-tab-wrapper > label {
|
777 |
+
position: relative;
|
778 |
+
display: inline-block;
|
779 |
+
padding: 5px 10px 5px;
|
780 |
+
border: 1px solid transparent;
|
781 |
+
border-bottom: 0;
|
782 |
+
cursor: pointer;
|
783 |
+
font-weight: 600;
|
784 |
+
}
|
785 |
+
#foogallery-image-edit-modal .tabset .foogallery-img-modal-tab-wrapper > label:hover,
|
786 |
+
#foogallery-image-edit-modal .tabset .foogallery-img-modal-tab-wrapper > input:focus + label {
|
787 |
+
color: #06c;
|
788 |
+
}
|
789 |
+
#foogallery-image-edit-modal .tabset .foogallery-img-modal-tab-wrapper > input:checked + label {
|
790 |
+
border-color: #ccc;
|
791 |
+
border-bottom-color: rgb(204, 204, 204);
|
792 |
+
border-bottom: 2px solid #fff !important;
|
793 |
+
margin-bottom: -1.7px;
|
794 |
+
cursor: pointer;
|
795 |
+
}
|
796 |
+
.foogallery-image-edit-meta {
|
797 |
+
background-color: #fff;
|
798 |
+
padding: 10px;
|
799 |
+
}
|
800 |
+
#foogallery-image-edit-modal .tabset{
|
801 |
+
max-width: 100%;
|
802 |
+
padding: 0px 10px;
|
803 |
+
border-bottom: 1px solid #ccc;
|
804 |
+
}
|
805 |
+
#foogallery-panel-main select {
|
806 |
+
margin: 0px 8px;
|
807 |
+
}
|
808 |
+
#foogallery-panel-taxonomies label{
|
809 |
+
margin-bottom: 10px;
|
810 |
+
display: block;
|
811 |
+
}
|
812 |
+
.foogallery_woocommerce_tags li {
|
813 |
+
position: relative;
|
814 |
+
float: left;
|
815 |
+
margin-right: 8px;
|
816 |
+
margin-bottom: 10px;
|
817 |
+
}
|
818 |
+
#foogallery-panel-thumbnails label {
|
819 |
+
display: inline-block;
|
820 |
+
vertical-align: text-bottom;
|
821 |
+
margin-right: 30px;
|
822 |
+
}
|
823 |
+
#foogallery-panel-thumbnails #foogallery_crop_pos {
|
824 |
+
display: inline-block;
|
825 |
+
vertical-align: text-top;
|
826 |
+
margin-bottom: 20px;
|
827 |
+
}
|
828 |
+
#foogallery-panel-watermark-preview {
|
829 |
+
margin-bottom: 20px;
|
830 |
+
display: none;
|
831 |
+
}
|
832 |
+
#foogallery-panel-watermark-preview label {
|
833 |
+
margin-bottom: 10px;
|
834 |
+
display: block;
|
835 |
+
}
|
836 |
+
.foogallery-panel-info-inner{
|
837 |
+
background: #f6f7f7;
|
838 |
+
padding: 10px;;
|
839 |
+
}
|
840 |
+
#foogallery-image-edit-modal .attachment-details .setting .name {
|
841 |
+
font-weight: 600;
|
842 |
+
}
|
843 |
+
#foogallery-image-edit-modal .attachment-details .copy-to-clipboard-container {
|
844 |
+
margin-left: 0;
|
845 |
+
margin-bottom: 15px;
|
846 |
+
padding: 0;
|
847 |
+
}
|
848 |
+
#foogallery-image-edit-modal .foogallery-attachments-list-bar {
|
849 |
+
margin-top: 20px;
|
850 |
+
}
|
851 |
+
#foogallery-image-edit-modal .foogallery-attachments-list-bar.clear-thumbnail {
|
852 |
+
margin-top: 0;
|
853 |
+
}
|
854 |
+
#foogallery-image-edit-modal .foogallery-attachments-list-bar.clear-thumbnail .button, #foogallery-img-modal-alternate-image-delete {
|
855 |
+
background: #d63638;
|
856 |
+
border-color: #d63638;
|
857 |
+
}
|
858 |
+
#foogallery-image-edit-modal .spinner.is-active{
|
859 |
+
float: unset;
|
860 |
+
height: 300px;
|
861 |
+
background-position: center center;
|
862 |
+
margin: 0 auto;
|
863 |
+
display: block;
|
864 |
+
}
|
865 |
+
.foogallery-img-modal-tab-wrapper {
|
866 |
+
display: inline-block;
|
867 |
+
}
|
868 |
+
#foogallery-image-edit-modal .tab-panels .settings span.setting {
|
869 |
+
display: grid;
|
870 |
+
grid-template-columns: 35% auto;
|
871 |
+
grid-gap: 30px;
|
872 |
+
}
|
873 |
+
#foogallery-image-edit-modal .tab-panels .settings span.setting input, #foogallery-image-edit-modal .tab-panels .settings span.setting select, #foogallery-image-edit-modal .tab-panels .settings span.setting textarea {
|
874 |
+
width: calc(100% - 10px);
|
875 |
+
box-sizing: border-box;
|
876 |
+
max-width: 100%;
|
877 |
+
margin-left: 0px !important;
|
878 |
+
margin-right: 0px !important;
|
879 |
+
}
|
880 |
+
#foogallery-image-edit-modal .tab-panels {
|
881 |
+
padding: 0px 10px;
|
882 |
+
}
|
883 |
+
#foogallery-image-edit-modal .tab-panels .settings span.setting input[type="radio"] {
|
884 |
+
width: auto;
|
885 |
+
margin: 8px 3px 0 !important;
|
886 |
+
}
|
887 |
+
#foogallery-panel-thumbnails .button-large, #foogallery-panel-watermark .attachment_protection_generate {
|
888 |
+
max-width: 225px;
|
889 |
+
width: 100%;
|
890 |
+
}
|
891 |
+
#foogallery-image-edit-modal .attachment-details #foogallery-panel-taxonomies .setting .name {
|
892 |
+
padding-top: 5px;
|
893 |
+
}
|
894 |
+
#foogallery-panel-watermark .attachment_protection_generate {
|
895 |
+
float: left;
|
896 |
+
}
|
897 |
+
.foogallery-modal-footer-wrap {
|
898 |
+
text-align: right;
|
899 |
+
margin-bottom: 10px;
|
900 |
+
margin-right: 20px;
|
901 |
+
}
|
902 |
+
#foogallery-panel-watermark-preview.watermark-preview-show {
|
903 |
+
display: block;
|
904 |
+
}
|
905 |
+
.foogallery-modal-footer-wrap {
|
906 |
+
text-align: right;
|
907 |
+
margin-bottom: 10px;
|
908 |
+
margin-right: 20px;
|
909 |
+
}
|
910 |
+
.foogallery-image-edit-footer {
|
911 |
+
position: absolute;
|
912 |
+
bottom: 10px;
|
913 |
+
width: 100%;
|
914 |
+
right: 20px;
|
915 |
+
text-align: right;
|
916 |
+
}
|
917 |
+
#foogallery-panel-taxonomies .foogallery_woocommerce_tags, #foogallery-panel-taxonomies .foogallery_woocommerce_categories {
|
918 |
+
margin: 0;
|
919 |
+
padding: 0;
|
920 |
+
}
|
921 |
+
#foogallery-image-edit-modal .media-modal-close {
|
922 |
+
border-left: 1px solid #dcdcde;
|
923 |
+
}
|
924 |
+
#foogallery-panel-info .foogallery-panel-info-inner {
|
925 |
+
text-align: left;
|
926 |
+
padding: 10px 20px;
|
927 |
+
column-count: 2;
|
928 |
+
column-rule: 2px solid #000;
|
929 |
+
column-gap: 50px;
|
930 |
+
margin-bottom: 20px;
|
931 |
+
-webkit-column-break-inside: avoid;
|
932 |
+
page-break-inside: avoid;
|
933 |
+
break-inside: avoid;
|
934 |
+
column-fill: balance;
|
935 |
+
}
|
936 |
+
.foogallery-panel-info-inner > div {
|
937 |
+
webkit-column-break-inside: avoid;
|
938 |
+
page-break-inside: avoid;
|
939 |
+
break-inside: avoid;
|
940 |
+
}
|
941 |
+
.foogallery-modal-info-fields * {
|
942 |
+
font-weight: 600;
|
943 |
+
vertical-align: middle;
|
944 |
+
font-size: 13px;
|
945 |
+
}
|
946 |
+
#foogallery-img-modal-alternate-image-delete {
|
947 |
+
background-color: #f6f7f7;
|
948 |
+
color: #2271b1;
|
949 |
+
border: 1px solid #2271b1;
|
950 |
+
}
|
951 |
+
#foogallery-img-modal-alternate-image-delete:hover {
|
952 |
+
color: #0a4b78;
|
953 |
+
background-color: #f0f0f1;
|
954 |
+
border-color: #0a4b78;
|
955 |
+
}
|
956 |
+
#foogallery-image-edit-modal .tab-panels .settings span.setting.alternate-image-upload-settings {
|
957 |
+
grid-template-columns: 1fr;
|
958 |
+
}
|
959 |
+
#foogallery-image-edit-modal .tab-panels .alternate-image-upload-wrap {
|
960 |
+
margin-left: 43px;
|
961 |
+
}
|
962 |
+
#foogallery-image-edit-modal .tab-panels .settings span.setting.override-thumbnail, #foogallery-image-edit-modal .tab-panels .settings span.setting.override-thumbnail-preview, #foogallery-image-edit-modal .tab-panels .settings span.setting.alternate-image-delete {
|
963 |
+
display: none;
|
964 |
+
}
|
965 |
+
#foogallery-image-edit-modal .tab-panels .settings span.setting.override-thumbnail.is-override-thumbnail, #foogallery-image-edit-modal .tab-panels .settings span.setting.override-thumbnail-preview.is-override-thumbnail, #foogallery-image-edit-modal .tab-panels .settings span.alternate-image-delete.is-override-thumbnail {
|
966 |
+
display: grid;
|
967 |
+
}
|
extensions/default-templates/shared/css/foogallery.css
CHANGED
@@ -873,7 +873,7 @@
|
|
873 |
font-family: -apple-system,system-ui,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
|
874 |
font-size: 12px;
|
875 |
font-weight: 400;
|
876 |
-
line-height: 1.
|
877 |
text-align: center;
|
878 |
white-space: nowrap;
|
879 |
vertical-align: middle;
|
@@ -1463,7 +1463,7 @@
|
|
1463 |
display: inline-block;
|
1464 |
margin: 3px;
|
1465 |
font-weight: 400;
|
1466 |
-
line-height: 1.
|
1467 |
text-align: center;
|
1468 |
white-space: nowrap;
|
1469 |
vertical-align: middle;
|
@@ -1600,7 +1600,7 @@
|
|
1600 |
display: inline-block;
|
1601 |
margin: 3px;
|
1602 |
font-weight: 400;
|
1603 |
-
line-height: 1.
|
1604 |
text-align: center;
|
1605 |
white-space: nowrap;
|
1606 |
vertical-align: middle;
|
873 |
font-family: -apple-system,system-ui,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
|
874 |
font-size: 12px;
|
875 |
font-weight: 400;
|
876 |
+
line-height: 1.4;
|
877 |
text-align: center;
|
878 |
white-space: nowrap;
|
879 |
vertical-align: middle;
|
1463 |
display: inline-block;
|
1464 |
margin: 3px;
|
1465 |
font-weight: 400;
|
1466 |
+
line-height: 1.4;
|
1467 |
text-align: center;
|
1468 |
white-space: nowrap;
|
1469 |
vertical-align: middle;
|
1600 |
display: inline-block;
|
1601 |
margin: 3px;
|
1602 |
font-weight: 400;
|
1603 |
+
line-height: 1.4;
|
1604 |
text-align: center;
|
1605 |
white-space: nowrap;
|
1606 |
vertical-align: middle;
|
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}.fg-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.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 #828282,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:#828282;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:#828282;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:grayscale(100%);transition-property:filter}.foogallery.fg-hover-colorize .fg-item-inner:focus-within .fg-image,.foogallery.fg-hover-colorize .fg-item-inner:hover .fg-image{filter:grayscale(0%)}.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:focus-within .fg-caption,.foogallery.fg-caption-hover.fg-hover-colorize .fg-item-inner:hover .fg-caption,.foogallery.fg-hover-colorize .fg-item-inner:focus-within .fg-image-overlay,.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:focus-within .fg-caption,.foogallery.fg-caption-hover.fg-hover-fade .fg-loaded .fg-item-inner:hover .fg-caption,.foogallery.fg-hover-fade .fg-loaded .fg-item-inner:focus-within .fg-image-overlay,.foogallery.fg-hover-fade .fg-loaded .fg-item-inner:hover .fg-image-overlay{visibility:visible;opacity:1}.foogallery.fg-hover-grayscale .fg-image{filter:grayscale(0%);transition-property:filter}.foogallery.fg-hover-grayscale .fg-item-inner:focus-within .fg-image,.foogallery.fg-hover-grayscale .fg-item-inner:hover .fg-image{filter:grayscale(100%)}.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:focus-within .fg-caption,.foogallery.fg-caption-hover.fg-hover-grayscale .fg-item-inner:hover .fg-caption,.foogallery.fg-hover-grayscale .fg-item-inner:focus-within .fg-image-overlay,.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:focus-within .fg-caption,.foogallery.fg-caption-hover.fg-hover-instant .fg-loaded .fg-item-inner:hover .fg-caption,.foogallery.fg-hover-instant .fg-loaded .fg-item-inner:focus-within .fg-image-overlay,.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:focus-within .fg-caption,.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 .fg-thumb:focus,.foogallery.fg-caption-hover.fg-hover-push .fg-loaded .fg-item-inner:hover .fg-thumb,.foogallery.fg-hover-push .fg-loaded .fg-item-inner .fg-thumb:focus,.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:focus-within,.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:focus-within .fg-caption,.foogallery.fg-caption-hover.fg-hover-scale .fg-item-inner:hover .fg-caption,.foogallery.fg-hover-scale .fg-item-inner:focus-within .fg-image-overlay,.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:focus-within .fg-image,.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:focus-within .fg-caption,.foogallery.fg-caption-hover.fg-hover-zoomed .fg-item-inner:hover .fg-caption,.foogallery.fg-hover-zoomed .fg-item-inner:focus-within .fg-image-overlay,.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:focus-within .fg-caption,.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:focus-within .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:focus-within .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:focus-within .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:focus-within .fg-image-overlay,.foogallery.fg-hover-slide-down .fg-loaded .fg-item-inner:hover .fg-image-overlay,.foogallery.fg-hover-slide-left .fg-loaded .fg-item-inner:focus-within .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:focus-within .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:focus-within .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-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-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%}.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}.rtl .fg-image-viewer .fiv-inner .fiv-ctrls .fiv-prev{float:right}.rtl .fg-image-viewer .fiv-inner .fiv-ctrls .fiv-prev:before{content:'\2192'}.rtl .fg-image-viewer .fiv-inner .fiv-ctrls .fiv-next{float:left}.rtl .fg-image-viewer .fiv-inner .fiv-ctrls .fiv-next:before{content:'\2190'}.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%}:root{--fg-carousel-perspective:150px;--fg-carousel-navigation-size:48px;--fg-carousel-pagination-size:14px;--fg-carousel-progress-size:4px;--fg-carousel-navigation-opacity:0.3;--fg-carousel-transition-speed:650ms;--fg-carousel-ui-speed:300ms}.foogallery.fg-carousel{--fg-carousel-inverse-perspective:calc( -1 * var(--fg-carousel-perspective) );position:relative;overflow:hidden;display:grid;grid-template-columns:var(--fg-carousel-navigation-size) auto var(--fg-carousel-navigation-size);grid-template-rows:auto auto;grid-template-areas:"prev inner next" "bottom bottom bottom"}.fg-carousel-inner{position:relative;grid-area:inner;display:grid;grid-template-columns:1fr auto 1fr;grid-template-rows:auto;grid-template-areas:"left center right";padding:10px 0;perspective:var(--fg-carousel-perspective);transform:translate3d(0,0,0);transform-style:preserve-3d;backface-visibility:hidden;will-change:contents}.foogallery_preview_container .fg-carousel-inner{transform-style:unset}.fg-carousel-center{position:relative;z-index:-1;pointer-events:none;visibility:hidden}.fg-carousel-center{grid-area:center}.fg-carousel-progress{display:block;position:absolute;visibility:visible;bottom:0;left:0;width:0;height:var(--fg-carousel-progress-size);border-radius:calc(var(--fg-carousel-progress-size)/ 2);transition:width .1s linear;opacity:var(--fg-carousel-navigation-opacity)}.rtl .fg-carousel-progress{left:auto;right:0}.fg-carousel-bottom{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;position:relative;grid-area:bottom;font-size:var(--fg-carousel-pagination-size);padding:0;margin-bottom:10px}.fg-carousel-bullet{width:1em;height:1em;display:block;padding:0;margin:.3em;border-radius:50%;border:solid 1px transparent;background:0 0;box-shadow:none;outline:0;opacity:var(--fg-carousel-navigation-opacity);cursor:pointer;font-size:inherit;transition:opacity var(--fg-carousel-ui-speed) ease-in}@media only screen and (max-width:782px){.fg-carousel-bullet{width:1.25em;height:1.25em}}.fg-carousel-bullet:hover{background:0 0;box-shadow:none;outline:0;opacity:1}.fg-carousel-bullet.fg-bullet-active{opacity:1}button.fg-carousel-next,button.fg-carousel-prev{position:relative;height:100%;width:100%;display:flex;align-items:center;justify-content:center;font-size:var(--fg-carousel-navigation-size);background:0 0;border:none;box-shadow:none;outline:0;z-index:11;cursor:pointer;opacity:var(--fg-carousel-navigation-opacity);transition:opacity var(--fg-carousel-ui-speed) ease-in;padding:0;margin:0}button.fg-carousel-next:hover,button.fg-carousel-prev:hover{background:0 0;border:none;box-shadow:none;outline:0;opacity:1}.fg-carousel-next .fg-icon,.fg-carousel-prev .fg-icon{width:1em;height:1em}.rtl .fg-carousel-next .fg-icon,.rtl .fg-carousel-prev .fg-icon{transform:rotate(180deg)}.fg-carousel-prev{grid-area:prev}.fg-carousel-next{grid-area:next}.foogallery.fg-carousel .fg-item{display:block;opacity:0;visibility:hidden;grid-area:center;transform-origin:center center;transform:translate3d(0,200%,var(--fg-carousel-inverse-perspective));transition-timing-function:ease-in-out;transition-duration:0s;transition-property:background-color,transform,transform-origin,opacity,visibility;backface-visibility:hidden}.foogallery.fg-carousel .fg-item.fg-loaded{transform:translate3d(0,0,var(--fg-carousel-inverse-perspective));transition-timing-function:ease-in-out;transition-duration:calc( var(--fg-carousel-transition-speed) / 2 );transition-property:background-color,transform,transform-origin,opacity,visibility}.foogallery.fg-carousel .fg-item.fg-item-active,.foogallery.fg-carousel .fg-item.fg-item-next,.foogallery.fg-carousel .fg-item.fg-item-prev{opacity:1;visibility:visible}.foogallery.fg-carousel .fg-item.fg-item-active{transform:translate3d(0,0,0)}.foogallery.fg-carousel.fg-dark .fg-carousel-progress,.foogallery.fg-carousel.fg-light.fg-inverted .fg-carousel-progress{background-color:#fff;box-shadow:inset 0 0 0 1px #9d9d9d}.foogallery.fg-carousel.fg-dark button.fg-carousel-bullet,.foogallery.fg-carousel.fg-light.fg-inverted button.fg-carousel-bullet{background-color:#fff;border-color:#ccc}.foogallery.fg-carousel.fg-dark button.fg-carousel-next,.foogallery.fg-carousel.fg-dark button.fg-carousel-prev,.foogallery.fg-carousel.fg-light.fg-inverted button.fg-carousel-next,.foogallery.fg-carousel.fg-light.fg-inverted button.fg-carousel-prev{color:#fff;background-color:transparent}.foogallery.fg-carousel.fg-dark.fg-inverted .fg-carousel-progress,.foogallery.fg-carousel.fg-light .fg-carousel-progress{background-color:#444;box-shadow:inset 0 0 0 1px #333}.foogallery.fg-carousel.fg-dark.fg-inverted button.fg-carousel-bullet,.foogallery.fg-carousel.fg-light button.fg-carousel-bullet{background-color:#444;border-color:#333}.foogallery.fg-carousel.fg-dark.fg-inverted button.fg-carousel-next,.foogallery.fg-carousel.fg-dark.fg-inverted button.fg-carousel-prev,.foogallery.fg-carousel.fg-light button.fg-carousel-next,.foogallery.fg-carousel.fg-light button.fg-carousel-prev{color:#444;background-color:transparent}.fg-shadow-outline .fg-carousel-inner{padding:1px}.fg-shadow-small .fg-carousel-inner{padding:4px}.fg-shadow-medium .fg-carousel-inner{padding:10px}.fg-shadow-large .fg-carousel-inner{padding:16px}.foogallery.fg-carousel-hide-nav-arrows{--fg-carousel-navigation-size:0px}.foogallery.fg-carousel-hide-nav-arrows .fg-carousel-next,.foogallery.fg-carousel-hide-nav-arrows .fg-carousel-prev,.foogallery.fg-carousel-hide-pagination .fg-carousel-bottom,.foogallery.fg-carousel-hide-progress-bar .fg-carousel-progress{display:none}
|
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}.fg-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.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 #828282,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:#828282;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:#828282;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.4;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:grayscale(100%);transition-property:filter}.foogallery.fg-hover-colorize .fg-item-inner:focus-within .fg-image,.foogallery.fg-hover-colorize .fg-item-inner:hover .fg-image{filter:grayscale(0%)}.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:focus-within .fg-caption,.foogallery.fg-caption-hover.fg-hover-colorize .fg-item-inner:hover .fg-caption,.foogallery.fg-hover-colorize .fg-item-inner:focus-within .fg-image-overlay,.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:focus-within .fg-caption,.foogallery.fg-caption-hover.fg-hover-fade .fg-loaded .fg-item-inner:hover .fg-caption,.foogallery.fg-hover-fade .fg-loaded .fg-item-inner:focus-within .fg-image-overlay,.foogallery.fg-hover-fade .fg-loaded .fg-item-inner:hover .fg-image-overlay{visibility:visible;opacity:1}.foogallery.fg-hover-grayscale .fg-image{filter:grayscale(0%);transition-property:filter}.foogallery.fg-hover-grayscale .fg-item-inner:focus-within .fg-image,.foogallery.fg-hover-grayscale .fg-item-inner:hover .fg-image{filter:grayscale(100%)}.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:focus-within .fg-caption,.foogallery.fg-caption-hover.fg-hover-grayscale .fg-item-inner:hover .fg-caption,.foogallery.fg-hover-grayscale .fg-item-inner:focus-within .fg-image-overlay,.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:focus-within .fg-caption,.foogallery.fg-caption-hover.fg-hover-instant .fg-loaded .fg-item-inner:hover .fg-caption,.foogallery.fg-hover-instant .fg-loaded .fg-item-inner:focus-within .fg-image-overlay,.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:focus-within .fg-caption,.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 .fg-thumb:focus,.foogallery.fg-caption-hover.fg-hover-push .fg-loaded .fg-item-inner:hover .fg-thumb,.foogallery.fg-hover-push .fg-loaded .fg-item-inner .fg-thumb:focus,.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:focus-within,.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:focus-within .fg-caption,.foogallery.fg-caption-hover.fg-hover-scale .fg-item-inner:hover .fg-caption,.foogallery.fg-hover-scale .fg-item-inner:focus-within .fg-image-overlay,.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:focus-within .fg-image,.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:focus-within .fg-caption,.foogallery.fg-caption-hover.fg-hover-zoomed .fg-item-inner:hover .fg-caption,.foogallery.fg-hover-zoomed .fg-item-inner:focus-within .fg-image-overlay,.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:focus-within .fg-caption,.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:focus-within .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:focus-within .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:focus-within .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:focus-within .fg-image-overlay,.foogallery.fg-hover-slide-down .fg-loaded .fg-item-inner:hover .fg-image-overlay,.foogallery.fg-hover-slide-left .fg-loaded .fg-item-inner:focus-within .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:focus-within .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:focus-within .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-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.4;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-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.4;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%}.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}.rtl .fg-image-viewer .fiv-inner .fiv-ctrls .fiv-prev{float:right}.rtl .fg-image-viewer .fiv-inner .fiv-ctrls .fiv-prev:before{content:'\2192'}.rtl .fg-image-viewer .fiv-inner .fiv-ctrls .fiv-next{float:left}.rtl .fg-image-viewer .fiv-inner .fiv-ctrls .fiv-next:before{content:'\2190'}.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%}:root{--fg-carousel-perspective:150px;--fg-carousel-navigation-size:48px;--fg-carousel-pagination-size:14px;--fg-carousel-progress-size:4px;--fg-carousel-navigation-opacity:0.3;--fg-carousel-transition-speed:650ms;--fg-carousel-ui-speed:300ms}.foogallery.fg-carousel{--fg-carousel-inverse-perspective:calc( -1 * var(--fg-carousel-perspective) );position:relative;overflow:hidden;display:grid;grid-template-columns:var(--fg-carousel-navigation-size) auto var(--fg-carousel-navigation-size);grid-template-rows:auto auto;grid-template-areas:"prev inner next" "bottom bottom bottom"}.fg-carousel-inner{position:relative;grid-area:inner;display:grid;grid-template-columns:1fr auto 1fr;grid-template-rows:auto;grid-template-areas:"left center right";padding:10px 0;perspective:var(--fg-carousel-perspective);transform:translate3d(0,0,0);transform-style:preserve-3d;backface-visibility:hidden;will-change:contents}.foogallery_preview_container .fg-carousel-inner{transform-style:unset}.fg-carousel-center{position:relative;z-index:-1;pointer-events:none;visibility:hidden}.fg-carousel-center{grid-area:center}.fg-carousel-progress{display:block;position:absolute;visibility:visible;bottom:0;left:0;width:0;height:var(--fg-carousel-progress-size);border-radius:calc(var(--fg-carousel-progress-size)/ 2);transition:width .1s linear;opacity:var(--fg-carousel-navigation-opacity)}.rtl .fg-carousel-progress{left:auto;right:0}.fg-carousel-bottom{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;position:relative;grid-area:bottom;font-size:var(--fg-carousel-pagination-size);padding:0;margin-bottom:10px}.fg-carousel-bullet{width:1em;height:1em;display:block;padding:0;margin:.3em;border-radius:50%;border:solid 1px transparent;background:0 0;box-shadow:none;outline:0;opacity:var(--fg-carousel-navigation-opacity);cursor:pointer;font-size:inherit;transition:opacity var(--fg-carousel-ui-speed) ease-in}@media only screen and (max-width:782px){.fg-carousel-bullet{width:1.25em;height:1.25em}}.fg-carousel-bullet:hover{background:0 0;box-shadow:none;outline:0;opacity:1}.fg-carousel-bullet.fg-bullet-active{opacity:1}button.fg-carousel-next,button.fg-carousel-prev{position:relative;height:100%;width:100%;display:flex;align-items:center;justify-content:center;font-size:var(--fg-carousel-navigation-size);background:0 0;border:none;box-shadow:none;outline:0;z-index:11;cursor:pointer;opacity:var(--fg-carousel-navigation-opacity);transition:opacity var(--fg-carousel-ui-speed) ease-in;padding:0;margin:0}button.fg-carousel-next:hover,button.fg-carousel-prev:hover{background:0 0;border:none;box-shadow:none;outline:0;opacity:1}.fg-carousel-next .fg-icon,.fg-carousel-prev .fg-icon{width:1em;height:1em}.rtl .fg-carousel-next .fg-icon,.rtl .fg-carousel-prev .fg-icon{transform:rotate(180deg)}.fg-carousel-prev{grid-area:prev}.fg-carousel-next{grid-area:next}.foogallery.fg-carousel .fg-item{display:block;opacity:0;visibility:hidden;grid-area:center;transform-origin:center center;transform:translate3d(0,200%,var(--fg-carousel-inverse-perspective));transition-timing-function:ease-in-out;transition-duration:0s;transition-property:background-color,transform,transform-origin,opacity,visibility;backface-visibility:hidden}.foogallery.fg-carousel .fg-item.fg-loaded{transform:translate3d(0,0,var(--fg-carousel-inverse-perspective));transition-timing-function:ease-in-out;transition-duration:calc( var(--fg-carousel-transition-speed) / 2 );transition-property:background-color,transform,transform-origin,opacity,visibility}.foogallery.fg-carousel .fg-item.fg-item-active,.foogallery.fg-carousel .fg-item.fg-item-next,.foogallery.fg-carousel .fg-item.fg-item-prev{opacity:1;visibility:visible}.foogallery.fg-carousel .fg-item.fg-item-active{transform:translate3d(0,0,0)}.foogallery.fg-carousel.fg-dark .fg-carousel-progress,.foogallery.fg-carousel.fg-light.fg-inverted .fg-carousel-progress{background-color:#fff;box-shadow:inset 0 0 0 1px #9d9d9d}.foogallery.fg-carousel.fg-dark button.fg-carousel-bullet,.foogallery.fg-carousel.fg-light.fg-inverted button.fg-carousel-bullet{background-color:#fff;border-color:#ccc}.foogallery.fg-carousel.fg-dark button.fg-carousel-next,.foogallery.fg-carousel.fg-dark button.fg-carousel-prev,.foogallery.fg-carousel.fg-light.fg-inverted button.fg-carousel-next,.foogallery.fg-carousel.fg-light.fg-inverted button.fg-carousel-prev{color:#fff;background-color:transparent}.foogallery.fg-carousel.fg-dark.fg-inverted .fg-carousel-progress,.foogallery.fg-carousel.fg-light .fg-carousel-progress{background-color:#444;box-shadow:inset 0 0 0 1px #333}.foogallery.fg-carousel.fg-dark.fg-inverted button.fg-carousel-bullet,.foogallery.fg-carousel.fg-light button.fg-carousel-bullet{background-color:#444;border-color:#333}.foogallery.fg-carousel.fg-dark.fg-inverted button.fg-carousel-next,.foogallery.fg-carousel.fg-dark.fg-inverted button.fg-carousel-prev,.foogallery.fg-carousel.fg-light button.fg-carousel-next,.foogallery.fg-carousel.fg-light button.fg-carousel-prev{color:#444;background-color:transparent}.fg-shadow-outline .fg-carousel-inner{padding:1px}.fg-shadow-small .fg-carousel-inner{padding:4px}.fg-shadow-medium .fg-carousel-inner{padding:10px}.fg-shadow-large .fg-carousel-inner{padding:16px}.foogallery.fg-carousel-hide-nav-arrows{--fg-carousel-navigation-size:0px}.foogallery.fg-carousel-hide-nav-arrows .fg-carousel-next,.foogallery.fg-carousel-hide-nav-arrows .fg-carousel-prev,.foogallery.fg-carousel-hide-pagination .fg-carousel-bottom,.foogallery.fg-carousel-hide-progress-bar .fg-carousel-progress{display:none}
|
extensions/default-templates/shared/js/foogallery.js
CHANGED
@@ -4646,11 +4646,10 @@ FooGallery.utils, FooGallery.utils.is, FooGallery.utils.str);
|
|
4646 |
* @memberof FooGallery.utils.
|
4647 |
* @class Timer
|
4648 |
* @param {number} [interval=1000] - The internal tick interval of the timer.
|
4649 |
-
* @augments FooGallery.utils.EventClass
|
4650 |
*/
|
4651 |
|
4652 |
_.Timer = _.EventClass.extend(
|
4653 |
-
/** @lends FooGallery.utils.Timer
|
4654 |
{
|
4655 |
/**
|
4656 |
* @ignore
|
@@ -4937,7 +4936,6 @@ FooGallery.utils, FooGallery.utils.is, FooGallery.utils.str);
|
|
4937 |
if (self.isRunning) {
|
4938 |
self.isRunning = false;
|
4939 |
self.isPaused = true;
|
4940 |
-
self.canResume = self.__remaining > 0;
|
4941 |
self.trigger("pause", self.__eventArgs());
|
4942 |
}
|
4943 |
|
@@ -6289,7 +6287,7 @@ FooGallery.utils.$, FooGallery.utils, FooGallery.utils.is, FooGallery.utils.fn);
|
|
6289 |
FooGallery.utils.is,
|
6290 |
FooGallery.utils.obj
|
6291 |
);
|
6292 |
-
(function($, _, _utils, _is, _fn){
|
6293 |
|
6294 |
/**
|
6295 |
* @summary A factory for classes allowing them to be registered and created using a friendly name.
|
@@ -6483,6 +6481,23 @@ FooGallery.utils.$, FooGallery.utils, FooGallery.utils.is, FooGallery.utils.fn);
|
|
6483 |
result.push(self.make(r.name));
|
6484 |
});
|
6485 |
return result;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6486 |
}
|
6487 |
});
|
6488 |
|
@@ -6492,7 +6507,8 @@ FooGallery.utils.$, FooGallery.utils, FooGallery.utils.is, FooGallery.utils.fn);
|
|
6492 |
FooGallery,
|
6493 |
FooGallery.utils,
|
6494 |
FooGallery.utils.is,
|
6495 |
-
FooGallery.utils.fn
|
|
|
6496 |
);
|
6497 |
(function ($, _, _utils, _is, _fn, _obj) {
|
6498 |
|
@@ -6588,23 +6604,6 @@ FooGallery.utils.$, FooGallery.utils, FooGallery.utils.is, FooGallery.utils.fn);
|
|
6588 |
}
|
6589 |
return type;
|
6590 |
},
|
6591 |
-
/**
|
6592 |
-
* @memberof FooGallery.TemplateFactory#
|
6593 |
-
* @function configure
|
6594 |
-
* @param {string} name
|
6595 |
-
* @param {object} options
|
6596 |
-
* @param {object} classes
|
6597 |
-
* @param {object} il8n
|
6598 |
-
*/
|
6599 |
-
configure: function (name, options, classes, il8n) {
|
6600 |
-
var self = this;
|
6601 |
-
if (self.contains(name)) {
|
6602 |
-
var reg = self.registered;
|
6603 |
-
_obj.extend(reg[name].opt, options);
|
6604 |
-
_obj.extend(reg[name].cls, classes);
|
6605 |
-
_obj.extend(reg[name].il8n, il8n);
|
6606 |
-
}
|
6607 |
-
},
|
6608 |
options: function (name, options) {
|
6609 |
options = _obj.extend({type: name}, options);
|
6610 |
var self = this, reg = self.registered,
|
@@ -10090,15 +10089,6 @@ FooGallery.utils.$, FooGallery.utils, FooGallery.utils.is, FooGallery.utils.fn);
|
|
10090 |
}
|
10091 |
return options;
|
10092 |
},
|
10093 |
-
configure: function(name, options, classes, il8n){
|
10094 |
-
var self = this;
|
10095 |
-
if (self.contains(name)){
|
10096 |
-
var reg = self.registered;
|
10097 |
-
_obj.extend(reg[name].opt, options);
|
10098 |
-
_obj.extend(reg[name].cls, classes);
|
10099 |
-
_obj.extend(reg[name].il8n, il8n);
|
10100 |
-
}
|
10101 |
-
},
|
10102 |
/**
|
10103 |
* @summary Checks if the factory contains a control registered using the supplied `name`.
|
10104 |
* @memberof FooGallery.PagingFactory#
|
@@ -10849,7 +10839,7 @@ FooGallery.utils.$, FooGallery.utils, FooGallery.utils.is, FooGallery.utils.fn);
|
|
10849 |
break;
|
10850 |
case "hide":
|
10851 |
height = self.justify(row, top_start, maxWidth, self.maxRowHeight);
|
10852 |
-
if (row.width < maxWidth){
|
10853 |
row.visible = false;
|
10854 |
}
|
10855 |
break;
|
@@ -11828,6 +11818,15 @@ FooGallery.utils.$, FooGallery.utils, FooGallery.utils.is, FooGallery.utils.fn);
|
|
11828 |
scaleToZ: function( value, vectorZ, perspective ){
|
11829 |
return value * ( 1 - vectorZ / ( perspective + vectorZ ) );
|
11830 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
11831 |
|
11832 |
//#endregion
|
11833 |
|
@@ -11910,7 +11909,7 @@ FooGallery.utils.$, FooGallery.utils, FooGallery.utils.is, FooGallery.utils.fn);
|
|
11910 |
},
|
11911 |
initSwipe: function(){
|
11912 |
const self = this;
|
11913 |
-
let startX = 0, endX = 0;
|
11914 |
self._listeners.add( self.elem.inner, "touchstart", function( event ){
|
11915 |
self.interacted = true;
|
11916 |
startX = event.changedTouches[0].screenX;
|
@@ -11918,10 +11917,13 @@ FooGallery.utils.$, FooGallery.utils, FooGallery.utils.is, FooGallery.utils.fn);
|
|
11918 |
|
11919 |
self._listeners.add( self.elem.inner, "touchend", function( event ){
|
11920 |
endX = event.changedTouches[0].screenX;
|
11921 |
-
|
11922 |
-
|
11923 |
-
|
11924 |
-
|
|
|
|
|
|
|
11925 |
}
|
11926 |
endX = 0;
|
11927 |
startX = 0;
|
@@ -12347,16 +12349,67 @@ FooGallery.utils.$, FooGallery.utils, FooGallery.utils.is, FooGallery.utils.fn);
|
|
12347 |
);
|
12348 |
(function ($, _, _utils, _obj, _is) {
|
12349 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
12350 |
_.triggerPostLoad = function (e, current, prev, isFilter) {
|
12351 |
-
|
12352 |
if (tmpl instanceof _.Template){
|
12353 |
if (tmpl.initialized && (e.type === "ready" || (e.type === "after-page-change" && !isFilter) || e.type === "after-filter-change")) {
|
12354 |
try {
|
12355 |
-
|
12356 |
-
|
12357 |
-
if (
|
12358 |
-
|
12359 |
-
tmpl.$el.foobox(opts);
|
12360 |
} else {
|
12361 |
$("body").trigger("post-load");
|
12362 |
}
|
@@ -12367,43 +12420,98 @@ FooGallery.utils.$, FooGallery.utils, FooGallery.utils.is, FooGallery.utils.fn);
|
|
12367 |
}
|
12368 |
};
|
12369 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
12370 |
_.autoDefaults = {
|
12371 |
on: {
|
12372 |
"ready after-page-change after-filter-change": _.triggerPostLoad
|
12373 |
}
|
12374 |
};
|
12375 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
12376 |
_.autoEnabled = true;
|
12377 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
12378 |
_.auto = function (options) {
|
12379 |
-
_.autoDefaults = _obj.merge(_.autoDefaults, options);
|
12380 |
};
|
12381 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
12382 |
_.globalsMerged = false;
|
12383 |
|
|
|
|
|
|
|
12384 |
_.mergeGlobals = function(){
|
12385 |
-
if
|
12386 |
-
if (
|
12387 |
-
|
12388 |
-
|
12389 |
-
|
12390 |
-
for (var component in il8n[factory]){
|
12391 |
-
if (il8n[factory].hasOwnProperty(component)){
|
12392 |
-
_[factory].configure(component, null, null, il8n[factory][component]);
|
12393 |
-
}
|
12394 |
-
}
|
12395 |
-
}
|
12396 |
_.globalsMerged = true;
|
12397 |
}
|
12398 |
};
|
12399 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
12400 |
_.load = _.reload = function(){
|
|
|
12401 |
// this automatically initializes all templates on page load
|
12402 |
$(function () {
|
12403 |
_.mergeGlobals();
|
12404 |
if (_.autoEnabled){
|
12405 |
$('[id^="foogallery-gallery-"]:not(.fg-ready)').foogallery(_.autoDefaults);
|
12406 |
}
|
|
|
|
|
|
|
|
|
12407 |
});
|
12408 |
|
12409 |
_utils.ready(function () {
|
@@ -12411,9 +12519,15 @@ FooGallery.utils.$, FooGallery.utils, FooGallery.utils.is, FooGallery.utils.fn);
|
|
12411 |
if (_.autoEnabled){
|
12412 |
$('[id^="foogallery-gallery-"].fg-ready').foogallery(_.autoDefaults);
|
12413 |
}
|
|
|
|
|
|
|
|
|
12414 |
});
|
12415 |
};
|
12416 |
|
|
|
|
|
12417 |
_.load();
|
12418 |
|
12419 |
})(
|
4646 |
* @memberof FooGallery.utils.
|
4647 |
* @class Timer
|
4648 |
* @param {number} [interval=1000] - The internal tick interval of the timer.
|
|
|
4649 |
*/
|
4650 |
|
4651 |
_.Timer = _.EventClass.extend(
|
4652 |
+
/** @lends FooGallery.utils.Timer */
|
4653 |
{
|
4654 |
/**
|
4655 |
* @ignore
|
4936 |
if (self.isRunning) {
|
4937 |
self.isRunning = false;
|
4938 |
self.isPaused = true;
|
|
|
4939 |
self.trigger("pause", self.__eventArgs());
|
4940 |
}
|
4941 |
|
6287 |
FooGallery.utils.is,
|
6288 |
FooGallery.utils.obj
|
6289 |
);
|
6290 |
+
(function($, _, _utils, _is, _fn, _obj){
|
6291 |
|
6292 |
/**
|
6293 |
* @summary A factory for classes allowing them to be registered and created using a friendly name.
|
6481 |
result.push(self.make(r.name));
|
6482 |
});
|
6483 |
return result;
|
6484 |
+
},
|
6485 |
+
/**
|
6486 |
+
* @memberof FooGallery.Factory#
|
6487 |
+
* @function configure
|
6488 |
+
* @param {string} name
|
6489 |
+
* @param {object} options
|
6490 |
+
* @param {object} classes
|
6491 |
+
* @param {object} il8n
|
6492 |
+
*/
|
6493 |
+
configure: function(name, options, classes, il8n){
|
6494 |
+
var self = this;
|
6495 |
+
if (self.contains(name)) {
|
6496 |
+
var reg = self.registered;
|
6497 |
+
_obj.extend(reg[name].opt, options);
|
6498 |
+
_obj.extend(reg[name].cls, classes);
|
6499 |
+
_obj.extend(reg[name].il8n, il8n);
|
6500 |
+
}
|
6501 |
}
|
6502 |
});
|
6503 |
|
6507 |
FooGallery,
|
6508 |
FooGallery.utils,
|
6509 |
FooGallery.utils.is,
|
6510 |
+
FooGallery.utils.fn,
|
6511 |
+
FooGallery.utils.obj
|
6512 |
);
|
6513 |
(function ($, _, _utils, _is, _fn, _obj) {
|
6514 |
|
6604 |
}
|
6605 |
return type;
|
6606 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6607 |
options: function (name, options) {
|
6608 |
options = _obj.extend({type: name}, options);
|
6609 |
var self = this, reg = self.registered,
|
10089 |
}
|
10090 |
return options;
|
10091 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
10092 |
/**
|
10093 |
* @summary Checks if the factory contains a control registered using the supplied `name`.
|
10094 |
* @memberof FooGallery.PagingFactory#
|
10839 |
break;
|
10840 |
case "hide":
|
10841 |
height = self.justify(row, top_start, maxWidth, self.maxRowHeight);
|
10842 |
+
if (row.width < maxWidth && rows.length > 1){
|
10843 |
row.visible = false;
|
10844 |
}
|
10845 |
break;
|
11818 |
scaleToZ: function( value, vectorZ, perspective ){
|
11819 |
return value * ( 1 - vectorZ / ( perspective + vectorZ ) );
|
11820 |
},
|
11821 |
+
/**
|
11822 |
+
* @summary Returns the absolute difference between 2 numbers.
|
11823 |
+
* @param {number} num1
|
11824 |
+
* @param {number} num2
|
11825 |
+
* @returns {number}
|
11826 |
+
*/
|
11827 |
+
getDiff: function( num1, num2 ){
|
11828 |
+
return num1 > num2 ? num1 - num2 : num2 - num1;
|
11829 |
+
},
|
11830 |
|
11831 |
//#endregion
|
11832 |
|
11909 |
},
|
11910 |
initSwipe: function(){
|
11911 |
const self = this;
|
11912 |
+
let startX = 0, endX = 0, min = 25 * (window.devicePixelRatio || 1);
|
11913 |
self._listeners.add( self.elem.inner, "touchstart", function( event ){
|
11914 |
self.interacted = true;
|
11915 |
startX = event.changedTouches[0].screenX;
|
11917 |
|
11918 |
self._listeners.add( self.elem.inner, "touchend", function( event ){
|
11919 |
endX = event.changedTouches[0].screenX;
|
11920 |
+
const diff = self.getDiff( startX, endX );
|
11921 |
+
if ( diff > min ){
|
11922 |
+
if ( endX < startX ){ // swipe left
|
11923 |
+
self.next();
|
11924 |
+
} else { // swipe right
|
11925 |
+
self.previous();
|
11926 |
+
}
|
11927 |
}
|
11928 |
endX = 0;
|
11929 |
startX = 0;
|
12349 |
);
|
12350 |
(function ($, _, _utils, _obj, _is) {
|
12351 |
|
12352 |
+
/**
|
12353 |
+
* Contains any FooBox specific integration code.
|
12354 |
+
*
|
12355 |
+
* @namespace FooGallery.__foobox__
|
12356 |
+
* @private
|
12357 |
+
*/
|
12358 |
+
_.__foobox__ = {
|
12359 |
+
/**
|
12360 |
+
* Check if the element is displayed within FooBox.
|
12361 |
+
*
|
12362 |
+
* @param {jQuery} $element
|
12363 |
+
* @return {boolean}
|
12364 |
+
*/
|
12365 |
+
owns: function( $element ){
|
12366 |
+
return $element.parents(".fbx-item").length > 0;
|
12367 |
+
},
|
12368 |
+
/**
|
12369 |
+
* Check if the template can be handled by FooBox.
|
12370 |
+
*
|
12371 |
+
* @param {FooGallery.Template} template
|
12372 |
+
* @return {boolean}
|
12373 |
+
*/
|
12374 |
+
handles: function( template ){
|
12375 |
+
return template.$el.hasClass("fbx-instance") && _is.object( window[ 'FOOBOX' ] ) && !!$.fn[ 'foobox' ];
|
12376 |
+
},
|
12377 |
+
/**
|
12378 |
+
* Updates the template's FooBox.
|
12379 |
+
*
|
12380 |
+
* @param {FooGallery.Template} template
|
12381 |
+
*/
|
12382 |
+
update: function( template ){
|
12383 |
+
const opts = [{}];
|
12384 |
+
if ( _is.object( window[ 'FOOBOX' ][ 'o' ] ) ) {
|
12385 |
+
opts.push( window[ 'FOOBOX' ][ 'o' ] );
|
12386 |
+
}
|
12387 |
+
if ( template.opt.protected ) {
|
12388 |
+
opts.push( { images: { noRightClick: true } } );
|
12389 |
+
}
|
12390 |
+
if ( _is.fn( template.$el[ 'foobox' ] ) ) {
|
12391 |
+
template.$el[ 'foobox' ]( _obj.extend.apply( null, opts ) );
|
12392 |
+
}
|
12393 |
+
}
|
12394 |
+
};
|
12395 |
+
|
12396 |
+
/**
|
12397 |
+
* Handles the ready, after-page-change and after-filter-change events and conditional raises a post-load event
|
12398 |
+
* on the document body to notify other plugins that content has changed.
|
12399 |
+
* @param e
|
12400 |
+
* @param current
|
12401 |
+
* @param prev
|
12402 |
+
* @param isFilter
|
12403 |
+
*/
|
12404 |
_.triggerPostLoad = function (e, current, prev, isFilter) {
|
12405 |
+
const tmpl = e.target;
|
12406 |
if (tmpl instanceof _.Template){
|
12407 |
if (tmpl.initialized && (e.type === "ready" || (e.type === "after-page-change" && !isFilter) || e.type === "after-filter-change")) {
|
12408 |
try {
|
12409 |
+
if ( _.__foobox__.owns( tmpl.$el ) ) return;
|
12410 |
+
|
12411 |
+
if ( _.__foobox__.handles( tmpl ) ){
|
12412 |
+
_.__foobox__.update( tmpl );
|
|
|
12413 |
} else {
|
12414 |
$("body").trigger("post-load");
|
12415 |
}
|
12420 |
}
|
12421 |
};
|
12422 |
|
12423 |
+
/**
|
12424 |
+
* The options applied to all galleries initialized using the auto mechanism.
|
12425 |
+
*
|
12426 |
+
* @memberof FooGallery.
|
12427 |
+
* @name autoDefaults
|
12428 |
+
* @type {object}
|
12429 |
+
*/
|
12430 |
_.autoDefaults = {
|
12431 |
on: {
|
12432 |
"ready after-page-change after-filter-change": _.triggerPostLoad
|
12433 |
}
|
12434 |
};
|
12435 |
|
12436 |
+
/**
|
12437 |
+
* If set to FALSE then FooGallery will not automatically initialize itself on all valid elements
|
12438 |
+
* with an ID starting with 'foogallery-gallery-'.
|
12439 |
+
*
|
12440 |
+
* @memberof FooGallery.
|
12441 |
+
* @name autoEnabled
|
12442 |
+
* @type {boolean}
|
12443 |
+
* @default true
|
12444 |
+
*/
|
12445 |
_.autoEnabled = true;
|
12446 |
|
12447 |
+
/**
|
12448 |
+
* Allows you to merge options into the FooGallery.autoDefaults object.
|
12449 |
+
*
|
12450 |
+
* @memberof FooGallery.
|
12451 |
+
* @function auto
|
12452 |
+
* @param {object} options
|
12453 |
+
* @returns {object} The result of the merged options.
|
12454 |
+
*/
|
12455 |
_.auto = function (options) {
|
12456 |
+
return _.autoDefaults = _obj.merge(_.autoDefaults, options);
|
12457 |
};
|
12458 |
|
12459 |
+
/**
|
12460 |
+
* Indicates if any globally supplied variables such as the FooGallery_il8n object have been merged.
|
12461 |
+
*
|
12462 |
+
* @memberof FooGallery.
|
12463 |
+
* @name globalsMerged
|
12464 |
+
* @type {boolean}
|
12465 |
+
* @default false
|
12466 |
+
* @readonly
|
12467 |
+
*/
|
12468 |
_.globalsMerged = false;
|
12469 |
|
12470 |
+
/**
|
12471 |
+
* Merges any globally supplied variables such as the FooGallery_il8n object into the various component configurations for the plugin.
|
12472 |
+
*/
|
12473 |
_.mergeGlobals = function(){
|
12474 |
+
// if this has already been done, don't do it again
|
12475 |
+
if ( _.globalsMerged === true ) return;
|
12476 |
+
|
12477 |
+
if ( _is.object( window[ 'FooGallery_il8n' ] ) ){
|
12478 |
+
_.merge_il8n( window[ 'FooGallery_il8n' ] );
|
|
|
|
|
|
|
|
|
|
|
|
|
12479 |
_.globalsMerged = true;
|
12480 |
}
|
12481 |
};
|
12482 |
|
12483 |
+
/**
|
12484 |
+
* Merges an "il8n" configuration object into the various component configurations for the plugin.
|
12485 |
+
* @param configuration
|
12486 |
+
*/
|
12487 |
+
_.merge_il8n = function( configuration ){
|
12488 |
+
if ( !_is.object( configuration ) ) return;
|
12489 |
+
Object.keys( configuration ).forEach( ( factoryName ) => {
|
12490 |
+
if ( _is.object( configuration[ factoryName ] ) && _[ factoryName ] instanceof _.Factory ) {
|
12491 |
+
const factory = /** @type FooGallery.Factory */ _[ factoryName ],
|
12492 |
+
componentConfiguration = configuration[ factoryName ];
|
12493 |
+
|
12494 |
+
Object.keys( componentConfiguration ).forEach( ( componentName ) => {
|
12495 |
+
if ( _is.object( componentConfiguration[ componentName ] ) ) {
|
12496 |
+
factory.configure( componentName, null, null, componentConfiguration[ componentName ] );
|
12497 |
+
}
|
12498 |
+
} );
|
12499 |
+
}
|
12500 |
+
} );
|
12501 |
+
};
|
12502 |
+
|
12503 |
_.load = _.reload = function(){
|
12504 |
+
let jqReady = false, customReady = false;
|
12505 |
// this automatically initializes all templates on page load
|
12506 |
$(function () {
|
12507 |
_.mergeGlobals();
|
12508 |
if (_.autoEnabled){
|
12509 |
$('[id^="foogallery-gallery-"]:not(.fg-ready)').foogallery(_.autoDefaults);
|
12510 |
}
|
12511 |
+
jqReady = true;
|
12512 |
+
if ( jqReady && customReady ){
|
12513 |
+
document.dispatchEvent( new CustomEvent( 'foogallery-loaded', { detail: _ } ) );
|
12514 |
+
}
|
12515 |
});
|
12516 |
|
12517 |
_utils.ready(function () {
|
12519 |
if (_.autoEnabled){
|
12520 |
$('[id^="foogallery-gallery-"].fg-ready').foogallery(_.autoDefaults);
|
12521 |
}
|
12522 |
+
customReady = true;
|
12523 |
+
if ( jqReady && customReady ){
|
12524 |
+
document.dispatchEvent( new CustomEvent( 'foogallery-loaded', { detail: _ } ) );
|
12525 |
+
}
|
12526 |
});
|
12527 |
};
|
12528 |
|
12529 |
+
document.dispatchEvent( new CustomEvent( 'foogallery-ready', { detail: _ } ) );
|
12530 |
+
|
12531 |
_.load();
|
12532 |
|
12533 |
})(
|
extensions/default-templates/shared/js/foogallery.min.js
CHANGED
@@ -1,8 +1,8 @@
|
|
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.
|
7 |
*/
|
8 |
-
function _typeof(e){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}!function(){"use strict";var h,t;function l(e){this.time=e.time,this.target=e.target,this.rootBounds=e.rootBounds,this.boundingClientRect=e.boundingClientRect,this.intersectionRect=e.intersectionRect||r(),this.isIntersecting=!!e.intersectionRect;var e=this.boundingClientRect,e=e.width*e.height,t=this.intersectionRect,t=t.width*t.height;this.intersectionRatio=e?Number((t/e).toFixed(4)):this.isIntersecting?1:0}function e(e,t){var n,i,r,t=t||{};if("function"!=typeof e)throw new Error("callback must be a function");if(t.root&&1!=t.root.nodeType)throw new Error("root must be an Element");this._checkForIntersections=(n=this._checkForIntersections.bind(this),i=this.THROTTLE_TIMEOUT,r=null,function(){r=r||setTimeout(function(){n(),r=null},i)}),this._callback=e,this._observationTargets=[],this._queuedEntries=[],this._rootMarginValues=this._parseRootMargin(t.rootMargin),this.thresholds=this._initThresholds(t.threshold),this.root=t.root||null,this.rootMargin=this._rootMarginValues.map(function(e){return e.value+e.unit}).join(" ")}function n(e,t,n,i){"function"==typeof e.addEventListener?e.addEventListener(t,n,i||!1):"function"==typeof e.attachEvent&&e.attachEvent("on"+t,n)}function i(e,t,n,i){"function"==typeof e.removeEventListener?e.removeEventListener(t,n,i||!1):"function"==typeof e.detatchEvent&&e.detatchEvent("on"+t,n)}function p(e){var t;try{t=e.getBoundingClientRect()}catch(e){}return t?t.width&&t.height?t:{top:t.top,right:t.right,bottom:t.bottom,left:t.left,width:t.right-t.left,height:t.bottom-t.top}:r()}function r(){return{top:0,bottom:0,left:0,right:0,width:0,height:0}}function o(e,t){for(var n=t;n;){if(n==e)return!0;n=d(n)}return!1}function d(e){e=e.parentNode;return e&&11==e.nodeType&&e.host?e.host:e&&e.assignedSlot?e.assignedSlot.parentNode:e}"object"==typeof window&&("IntersectionObserver"in window&&"IntersectionObserverEntry"in window&&"intersectionRatio"in window.IntersectionObserverEntry.prototype?"isIntersecting"in window.IntersectionObserverEntry.prototype||Object.defineProperty(window.IntersectionObserverEntry.prototype,"isIntersecting",{get:function(){return 0<this.intersectionRatio}}):(h=window.document,t=[],e.prototype.THROTTLE_TIMEOUT=100,e.prototype.POLL_INTERVAL=null,e.prototype.USE_MUTATION_OBSERVER=!0,e.prototype.observe=function(t){if(!this._observationTargets.some(function(e){return e.element==t})){if(!t||1!=t.nodeType)throw new Error("target must be an Element");this._registerInstance(),this._observationTargets.push({element:t,entry:null}),this._monitorIntersections(),this._checkForIntersections()}},e.prototype.unobserve=function(t){this._observationTargets=this._observationTargets.filter(function(e){return e.element!=t}),this._observationTargets.length||(this._unmonitorIntersections(),this._unregisterInstance())},e.prototype.disconnect=function(){this._observationTargets=[],this._unmonitorIntersections(),this._unregisterInstance()},e.prototype.takeRecords=function(){var e=this._queuedEntries.slice();return this._queuedEntries=[],e},e.prototype._initThresholds=function(e){e=e||[0];return(e=!Array.isArray(e)?[e]:e).sort().filter(function(e,t,n){if("number"!=typeof e||isNaN(e)||e<0||1<e)throw new Error("threshold must be a number between 0 and 1 inclusively");return e!==n[t-1]})},e.prototype._parseRootMargin=function(e){e=(e||"0px").split(/\s+/).map(function(e){e=/^(-?\d*\.?\d+)(px|%)$/.exec(e);if(!e)throw new Error("rootMargin must be specified in pixels or percent");return{value:parseFloat(e[1]),unit:e[2]}});return e[1]=e[1]||e[0],e[2]=e[2]||e[0],e[3]=e[3]||e[1],e},e.prototype._monitorIntersections=function(){this._monitoringIntersections||(this._monitoringIntersections=!0,this.POLL_INTERVAL?this._monitoringInterval=setInterval(this._checkForIntersections,this.POLL_INTERVAL):(n(window,"resize",this._checkForIntersections,!0),n(h,"scroll",this._checkForIntersections,!0),this.USE_MUTATION_OBSERVER&&"MutationObserver"in window&&(this._domObserver=new MutationObserver(this._checkForIntersections),this._domObserver.observe(h,{attributes:!0,childList:!0,characterData:!0,subtree:!0}))))},e.prototype._unmonitorIntersections=function(){this._monitoringIntersections&&(this._monitoringIntersections=!1,clearInterval(this._monitoringInterval),this._monitoringInterval=null,i(window,"resize",this._checkForIntersections,!0),i(h,"scroll",this._checkForIntersections,!0),this._domObserver&&(this._domObserver.disconnect(),this._domObserver=null))},e.prototype._checkForIntersections=function(){var s=this._rootIsInDom(),a=s?this._getRootRect():r();this._observationTargets.forEach(function(e){var t=e.element,n=p(t),i=this._rootContainsTarget(t),r=e.entry,o=s&&i&&this._computeTargetAndRootIntersection(t,a),e=e.entry=new l({time:window.performance&&performance.now&&performance.now(),target:t,boundingClientRect:n,rootBounds:a,intersectionRect:o});r?s&&i?this._hasCrossedThreshold(r,e)&&this._queuedEntries.push(e):r&&r.isIntersecting&&this._queuedEntries.push(e):this._queuedEntries.push(e)},this),this._queuedEntries.length&&this._callback(this.takeRecords(),this)},e.prototype._computeTargetAndRootIntersection=function(e,u){if("none"!=window.getComputedStyle(e).display){for(var t,n,i,r,o=p(e),s=d(e),a=!1;!a;){var l=null,c=1==s.nodeType?window.getComputedStyle(s):{};if("none"==c.display)return;if(s==this.root||s==h?(a=!0,l=u):s!=h.body&&s!=h.documentElement&&"visible"!=c.overflow&&(l=p(s)),l&&(c=l,l=o,r=i=n=t=void 0,t=Math.max(c.top,l.top),n=Math.min(c.bottom,l.bottom),i=Math.max(c.left,l.left),c=Math.min(c.right,l.right),r=n-t,!(o=0<=(l=c-i)&&0<=r&&{top:t,bottom:n,left:i,right:c,width:l,height:r})))break;s=d(s)}return o}},e.prototype._getRootRect=function(){var e,t;return t=this.root?p(this.root):(t=h.documentElement,e=h.body,{top:0,left:0,right:t.clientWidth||e.clientWidth,width:t.clientWidth||e.clientWidth,bottom:t.clientHeight||e.clientHeight,height:t.clientHeight||e.clientHeight}),this._expandRectByRootMargin(t)},e.prototype._expandRectByRootMargin=function(n){var e=this._rootMarginValues.map(function(e,t){return"px"==e.unit?e.value:e.value*(t%2?n.width:n.height)/100}),e={top:n.top-e[0],right:n.right+e[1],bottom:n.bottom+e[2],left:n.left-e[3]};return e.width=e.right-e.left,e.height=e.bottom-e.top,e},e.prototype._hasCrossedThreshold=function(e,t){var n=e&&e.isIntersecting?e.intersectionRatio||0:-1,i=t.isIntersecting?t.intersectionRatio||0:-1;if(n!==i)for(var r=0;r<this.thresholds.length;r++){var o=this.thresholds[r];if(o==n||o==i||o<n!=o<i)return!0}},e.prototype._rootIsInDom=function(){return!this.root||o(h,this.root)},e.prototype._rootContainsTarget=function(e){return o(this.root||h,e)},e.prototype._registerInstance=function(){t.indexOf(this)<0&&t.push(this)},e.prototype._unregisterInstance=function(){var e=t.indexOf(this);-1!=e&&t.splice(e,1)},window.IntersectionObserver=e,window.IntersectionObserverEntry=l))}(),function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):e.ResizeObserver=t()}(this,function(){"use strict";var a="undefined"!=typeof Map?Map:(Object.defineProperty(e.prototype,"size",{get:function(){return this.__entries__.length},enumerable:!0,configurable:!0}),e.prototype.get=function(e){e=i(this.__entries__,e),e=this.__entries__[e];return e&&e[1]},e.prototype.set=function(e,t){var n=i(this.__entries__,e);~n?this.__entries__[n][1]=t:this.__entries__.push([e,t])},e.prototype.delete=function(e){var t=this.__entries__,e=i(t,e);~e&&t.splice(e,1)},e.prototype.has=function(e){return!!~i(this.__entries__,e)},e.prototype.clear=function(){this.__entries__.splice(0)},e.prototype.forEach=function(e,t){void 0===t&&(t=null);for(var n=0,i=this.__entries__;n<i.length;n++){var r=i[n];e.call(t,r[1],r[0])}},e);function i(e,n){var i=-1;return e.some(function(e,t){return e[0]===n&&(i=t,!0)}),i}function e(){this.__entries__=[]}var n="undefined"!=typeof window&&"undefined"!=typeof document&&window.document===document,t="undefined"!=typeof global&&global.Math===Math?global:"undefined"!=typeof self&&self.Math===Math?self:"undefined"!=typeof window&&window.Math===Math?window:Function("return this")(),l="function"==typeof requestAnimationFrame?requestAnimationFrame.bind(t):function(e){return setTimeout(function(){return e(Date.now())},1e3/60)},p=2;var d=["top","right","bottom","left","width","height","size","weight"],f="undefined"!=typeof MutationObserver,g=(r.prototype.addObserver=function(e){~this.observers_.indexOf(e)||this.observers_.push(e),this.connected_||this.connect_()},r.prototype.removeObserver=function(e){var t=this.observers_,e=t.indexOf(e);~e&&t.splice(e,1),!t.length&&this.connected_&&this.disconnect_()},r.prototype.refresh=function(){this.updateObservers_()&&this.refresh()},r.prototype.updateObservers_=function(){var e=this.observers_.filter(function(e){return e.gatherActive(),e.hasActive()});return e.forEach(function(e){return e.broadcastActive()}),0<e.length},r.prototype.connect_=function(){n&&!this.connected_&&(document.addEventListener("transitionend",this.onTransitionEnd_),window.addEventListener("resize",this.refresh),f?(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)},r.prototype.disconnect_=function(){n&&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)},r.prototype.onTransitionEnd_=function(e){var e=e.propertyName,t=void 0===e?"":e;d.some(function(e){return!!~t.indexOf(e)})&&this.refresh()},r.getInstance=function(){return this.instance_||(this.instance_=new r),this.instance_},r.instance_=null,r);function r(){function e(){o&&(o=!1,i()),s&&n()}function t(){l(e)}function n(){var e=Date.now();if(o){if(e-a<p)return;s=!0}else s=!(o=!0),setTimeout(t,r);a=e}var i,r,o,s,a;this.connected_=!1,this.mutationEventsAdded_=!1,this.mutationsObserver_=null,this.observers_=[],this.onTransitionEnd_=this.onTransitionEnd_.bind(this),this.refresh=(i=this.refresh.bind(this),s=o=!(r=20),a=0,n)}var m=function(e,t){for(var n=0,i=Object.keys(t);n<i.length;n++){var r=i[n];Object.defineProperty(e,r,{value:t[r],enumerable:!1,writable:!1,configurable:!0})}return e},c=function(e){return e&&e.ownerDocument&&e.ownerDocument.defaultView||t},v=h(0,0,0,0);function u(e){return parseFloat(e)||0}function y(n){for(var e=[],t=1;t<arguments.length;t++)e[t-1]=arguments[t];return e.reduce(function(e,t){return e+u(n["border-"+t+"-width"])},0)}function b(e){var t=e.clientWidth,n=e.clientHeight;if(!t&&!n)return v;var i=c(e).getComputedStyle(e),r=function(e){for(var t={},n=0,i=["top","right","bottom","left"];n<i.length;n++){var r=i[n],o=e["padding-"+r];t[r]=u(o)}return t}(i),o=r.left+r.right,s=r.top+r.bottom,a=u(i.width),l=u(i.height);return"border-box"===i.boxSizing&&(Math.round(a+o)!==t&&(a-=y(i,"left","right")+o),Math.round(l+s)!==n&&(l-=y(i,"top","bottom")+s)),e!==c(e).document.documentElement&&(i=Math.round(a+o)-t,e=Math.round(l+s)-n,1!==Math.abs(i)&&(a-=i),1!==Math.abs(e)&&(l-=e)),h(r.left,r.top,a,l)}var _="undefined"!=typeof SVGGraphicsElement?function(e){return e instanceof c(e).SVGGraphicsElement}:function(e){return e instanceof c(e).SVGElement&&"function"==typeof e.getBBox};function w(e){return n?_(e)?h(0,0,(t=(t=e).getBBox()).width,t.height):b(e):v;var t}function h(e,t,n,i){return{x:e,y:t,width:n,height:i}}o.prototype.isActive=function(){var e=w(this.target);return(this.contentRect_=e).width!==this.broadcastWidth||e.height!==this.broadcastHeight},o.prototype.broadcastRect=function(){var e=this.contentRect_;return this.broadcastWidth=e.width,this.broadcastHeight=e.height,e};var x=o;function o(e){this.broadcastWidth=0,this.broadcastHeight=0,this.contentRect_=h(0,0,0,0),this.target=e}var C=function(e,t){n=(t=t).x,i=t.y,o=t.width,t=t.height,r="undefined"!=typeof DOMRectReadOnly?DOMRectReadOnly:Object,r=Object.create(r.prototype),m(r,{x:n,y:i,width:o,height:t,top:i,right:n+o,bottom:t+i,left:n});var n,i,r,o=r;m(this,{target:e,contentRect:o})},F=(s.prototype.observe=function(e){if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");if("undefined"!=typeof Element&&Element instanceof Object){if(!(e instanceof c(e).Element))throw new TypeError('parameter 1 is not of type "Element".');var t=this.observations_;t.has(e)||(t.set(e,new x(e)),this.controller_.addObserver(this),this.controller_.refresh())}},s.prototype.unobserve=function(e){if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");if("undefined"!=typeof Element&&Element instanceof Object){if(!(e instanceof c(e).Element))throw new TypeError('parameter 1 is not of type "Element".');var t=this.observations_;t.has(e)&&(t.delete(e),t.size||this.controller_.removeObserver(this))}},s.prototype.disconnect=function(){this.clearActive(),this.observations_.clear(),this.controller_.removeObserver(this)},s.prototype.gatherActive=function(){var t=this;this.clearActive(),this.observations_.forEach(function(e){e.isActive()&&t.activeObservations_.push(e)})},s.prototype.broadcastActive=function(){var e,t;this.hasActive()&&(e=this.callbackCtx_,t=this.activeObservations_.map(function(e){return new C(e.target,e.broadcastRect())}),this.callback_.call(e,t,e),this.clearActive())},s.prototype.clearActive=function(){this.activeObservations_.splice(0)},s.prototype.hasActive=function(){return 0<this.activeObservations_.length},s);function s(e,t,n){if(this.activeObservations_=[],this.observations_=new a,"function"!=typeof e)throw new TypeError("The callback provided as parameter 1 is not a function.");this.callback_=e,this.controller_=t,this.callbackCtx_=n}var E=new("undefined"!=typeof WeakMap?WeakMap:a),$=function e(t){if(!(this instanceof e))throw new TypeError("Cannot call a class as a function.");if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");var n=g.getInstance(),t=new F(t,n,this);E.set(this,t)};return["observe","unobserve","disconnect"].forEach(function(t){$.prototype[t]=function(){var e;return(e=E.get(this))[t].apply(e,arguments)}}),void 0!==t.ResizeObserver?t.ResizeObserver:$}),function(e){(window.FooGallery=window.FooGallery||{}).$=e}(jQuery),function(e){e?function(){try{return window.FooGallery.utils}catch(e){return}}()||(window.FooGallery.utils={$:e,version:"1.0.0"}):console.warn("jQuery must be included in the page prior to the FooGallery.utils library.")}(jQuery),function(t,n){"1.0.0"===n.version&&(n.is={},n.is.array=function(e){return"[object Array]"===Object.prototype.toString.call(e)},n.is.boolean=function(e){return"[object Boolean]"===Object.prototype.toString.call(e)},n.is.element=function(e){return"object"===("undefined"==typeof HTMLElement?"undefined":_typeof(HTMLElement))?e instanceof HTMLElement:!!e&&"object"===_typeof(e)&&1===e.nodeType&&"string"==typeof e.nodeName},n.is.empty=function(e){if(n.is.undef(e)||null===e)return!0;if(n.is.number(e)&&0===e)return!0;if(n.is.boolean(e)&&!1===e)return!0;if(n.is.string(e)&&0===e.length)return!0;if(n.is.array(e)&&0===e.length)return!0;if(n.is.jq(e)&&0===e.length)return!0;if(n.is.hash(e)){for(var t in e)if(e.hasOwnProperty(t))return!1;return!0}return!1},n.is.error=function(e){return"[object Error]"===Object.prototype.toString.call(e)},n.is.fn=function(e){return e===window.alert||"[object Function]"===Object.prototype.toString.call(e)},n.is.hash=function(e){return n.is.object(e)&&e.constructor===Object&&!e.nodeType&&!e.setInterval},n.is.jq=function(e){return!n.is.undef(t)&&e instanceof t},n.is.number=function(e){return"[object Number]"===Object.prototype.toString.call(e)&&!isNaN(e)},n.is.object=function(e){return"[object Object]"===Object.prototype.toString.call(e)&&!n.is.undef(e)&&null!==e},n.is.promise=function(e){return n.is.object(e)&&n.is.fn(e.then)&&n.is.fn(e.promise)},n.is.size=function(e){return!!(n.is.string(e)&&!n.is.empty(e)||n.is.number(e))&&/^(auto|none|(?:[\d.]*)+?(?:%|px|mm|q|cm|in|pt|pc|em|ex|ch|rem|vh|vw|vmin|vmax)?)$/.test(e)},n.is.string=function(e){return"[object String]"===Object.prototype.toString.call(e)},n.is.undef=function(e){return void 0===e})}(FooGallery.utils.$,FooGallery.utils),function(l,c,u){var a;"1.0.0"===c.version&&(c.fn={},a=Function.prototype.toString,c.fn.CONTAINS_SUPER=/xyz/.test(a.call(function(){xyz}))?/\b_super\b/:/.*/,c.fn.noop=function(){},c.fn.addOrOverride=function(e,t,n){var i,r,o,s;u.object(e)&&u.string(t)&&!u.empty(t)&&u.fn(n)&&(i=e[t],r=u.fn(i)&&c.fn.CONTAINS_SUPER.test(a.call(n)),e[t]=r?(o=i,s=n,function(){var e=this._super,t=(this._super=o,s.apply(this,arguments));return this._super=e,t}):n)},c.fn.expose=function(t,n,e,i){u.object(t)&&u.object(n)&&u.array(e)&&(i=u.undef(i)?t:i,e.forEach(function(e){u.string(e)&&u.fn(t[e])&&(n[e]=t[e].bind(i))}))},c.fn.apply=function(e,t){return t.unshift(e),new(Function.prototype.bind.apply(e,t))},c.fn.arg2arr=function(e){return Array.prototype.slice.call(e)},c.fn.debounce=function(n,i){var r;return function(){var e=this,t=c.fn.arg2arr(arguments);clearTimeout(r),r=setTimeout(function(){n.apply(e,t)},i)}},c.fn.throttle=function(n,i){var r,o;return function(){var e=this,t=c.fn.arg2arr(arguments);r?(clearTimeout(o),o=setTimeout(function(){Date.now()-r>=i&&(n.apply(e,t),r=Date.now())},i-(Date.now()-r))):(n.apply(e,t),r=Date.now())}},c.fn.resolved=l.Deferred().resolve().promise(),c.fn.rejected=l.Deferred().reject().promise(),c.fn.reject=function(e,t){var n=l.Deferred(),i=c.fn.arg2arr(arguments);return n.reject.apply(n,i).promise()},c.fn.resolve=function(e,t){var n=l.Deferred(),i=c.fn.arg2arr(arguments);return n.resolve.apply(n,i).promise()},c.fn.rejectWith=function(e,t,n){var i=l.Deferred(),r=c.fn.arg2arr(arguments);return r.shift(),i.rejectWith(e,r).promise()},c.fn.resolveWith=function(e,t,n){var i=l.Deferred(),r=c.fn.arg2arr(arguments);return r.shift(),i.resolveWith(e,r).promise()},c.fn.all=function(t){var n=l.Deferred(),i=[];if(u.array(t)&&0<t.length){function r(e,t){s||(i[e]=0===t.length?void 0:1===t.length?t[0]:t,--o||n.resolve(i))}for(var o=t.length,s=!1,a=0,e=t.length;a<e&&"break"!==function(){if(s)return"break";var e=a;u.promise(t[e])?t[e].then(function(){r(e,c.fn.arg2arr(arguments))},function(){s||(s=!0,n.reject.apply(n,c.fn.arg2arr(arguments)))}):r(e,[t[e]])}();a++);}else n.resolve(i);return n.promise()},c.fn.allSettled=function(t){var i=l.Deferred(),r=[];if(u.array(t)&&0<t.length){function n(e,t,n){r[e]={status:t},0<n.length&&(r[e]["rejected"===t?"reason":"value"]=1===n.length?n[0]:n),--o||i.resolve(r)}for(var o=t.length,s=0,e=t.length;s<e;s++)!function(){var e=s;u.promise(t[e])?t[e].then(function(){n(e,"fulfilled",c.fn.arg2arr(arguments))},function(){n(e,"rejected",c.fn.arg2arr(arguments))}):n(e,"fulfilled",[t[e]])}()}else i.resolve(r);return i.promise()})}(FooGallery.utils.$,FooGallery.utils,FooGallery.utils.is),function(e,o){var r;"1.0.0"===e.version&&(e.url={},r=document.createElement("a"),e.url.parts=function(e){r.href=e;var e=r.port||(-1!==["http:","https:"].indexOf(r.protocol)?"https:"===r.protocol?"443":"80":""),t=r.hostname+(e?":"+e:""),n=r.origin||r.protocol+"//"+t,i="/"===r.pathname.slice(0,1)?r.pathname:"/"+r.pathname;return{hash:r.hash,host:t,hostname:r.hostname,href:r.href,origin:n,pathname:i,port:e,protocol:r.protocol,search:r.search}},e.url.full=function(e){return!o.string(e)||o.empty(e)?null:(r.href=e,r.href)},e.url.param=function(e,t,n){return o.string(e)&&o.string(t)&&!o.empty(t)?o.undef(n)?(r=((i=new RegExp("[?|&]"+t+"=([^&;]+?)(&|#|;|$)")).exec(e)||["",""])[1].replace(/\+/g,"%20"),o.string(r)&&!o.empty(r)?decodeURIComponent(r):null):(o.empty(n)?(i=new RegExp("^([^#]*?)(([^#]*)&)?"+t+"(=[^&#]*)?(&|#|$)"),r=e.replace(i,"$1$3$5").replace(/^([^#]*)((\?)&|\?(#|$))/,"$1$3$4")):(i=new RegExp("([?&])"+t+"[^&]*"),t=t+"="+encodeURIComponent(n),(r=e.replace(i,"$1"+t))!==e||i.test(r)||(r+=(-1!==r.indexOf("?")?"&":"?")+t)),r):e;var i,r})}(FooGallery.utils,FooGallery.utils.is),function(a,l,c){"1.0.0"===a.version&&(a.str={},a.str.trim=function(e){return l.string(e)?e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,""):null},a.str.camel=function(e){return l.string(e)?e.toUpperCase()===e?e.toLowerCase():e.replace(/^([A-Z])|[-\s_]+(\w)/g,function(e,t,n){return l.string(n)?n.toUpperCase():t.toLowerCase()}):e},a.str.kebab=function(e){return l.string(e)?e.match(/[A-Z]{2,}(?=[A-Z][a-z0-9]*|\b)|[A-Z]?[a-z0-9]*|[A-Z]|[0-9]+/g).filter(Boolean).map(function(e){return e.toLowerCase()}).join("-"):e},a.str.contains=function(e,t,n){return!(!l.string(e)||l.empty(e)||!l.string(t)||l.empty(t))&&(t.length<=e.length&&-1!==(n?e.toUpperCase().indexOf(t.toUpperCase()):e.indexOf(t)))},a.str.containsWord=function(e,t,n){if(!l.string(e)||l.empty(e)||!l.string(t)||l.empty(t)||e.length<t.length)return!1;for(var i=e.split(/\W/),r=0,o=i.length;r<o;r++)if(n?i[r].toUpperCase()===t.toUpperCase():i[r]===t)return!0;return!1},a.str.endsWith=function(e,t){return!(!l.string(e)||!l.string(t)||t.length>e.length)&&e.slice(e.length-t.length)===t},a.str.startsWith=function(e,t){return!l.empty(e)&&!l.empty(t)&&e.slice(0,t.length)===t},a.str.escapeRegExp=function(e){return l.string(e)?e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"):e},a.str.fnv1a=function(e){if(!l.string(e)||l.empty(e))return null;for(var t=2166136261,n=0,i=e.length;n<i;n++)t=(t^=e.charCodeAt(n))+((t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24));return t>>>0},a.str.from=function(e,t){return a.str.contains(e,t)?e.substring(e.indexOf(t)+t.length):null},a.str.join=function(e,t,n){if(!l.string(e)||!l.string(t))return null;var i=c.arg2arr(arguments);e=i.shift();for(var r=i.shift(),o=0,s=i.length;o<s;o++)t=i[o],l.empty(t)||(a.str.endsWith(r,e)&&(r=r.slice(0,r.length-e.length)),r+=e+(t=a.str.startsWith(t,e)?t.slice(e.length):t));return r},a.str.until=function(e,t){return a.str.contains(e,t)?e.substring(0,e.indexOf(t)):e},a.str.format=function(n,e,t){var i=c.arg2arr(arguments);return n=i.shift(),l.string(n)&&0<i.length&&(1===i.length&&(l.array(i[0])||l.object(i[0]))&&(i=i[0]),a.each(i,function(e,t){n=n.replace(new RegExp("\\{"+t+"\\}","gi"),e+"")})),n})}(FooGallery.utils,FooGallery.utils.is,FooGallery.utils.fn),function(a,l,r,o){"1.0.0"===a.version&&(a.obj={},a.obj.create=function(e){if(!l.object(e))throw TypeError("Argument must be an object");function t(){}return t.prototype=e,new t},a.obj.extend=function(t,e,n){t=l.object(t)?t:{};var i=r.arg2arr(arguments);return i.shift(),a.each(i,function(e){a.obj.merge(t,e)}),t},a.obj.merge=function(e,t){for(var n in e=l.hash(e)?e:{},t=l.hash(t)?t:{})t.hasOwnProperty(n)&&(l.hash(t[n])?(e[n]=l.hash(e[n])?e[n]:{},a.obj.merge(e[n],t[n])):l.array(t[n])?e[n]=t[n].slice():e[n]=t[n]);return e},a.obj.mergeValid=function(t,n,i,e){if(!l.hash(i)||!l.hash(n))return t;var r,o,s;for(r in n=l.hash(n)?n:{},e=l.hash(e)?e:{},n)n.hasOwnProperty(r)&&l.fn(n[r])&&(o=l.array(e[r])?e[r]:l.string(e[r])?[e[r]]:[r],a.each(o,function(e){if(s=a.obj.prop(i,e),!l.undef(s))return n[r](s)?(a.obj.prop(t,r,s),!1):void 0}));return t},a.obj.prop=function(n,e,i){var t,r;if(l.object(n)&&!l.empty(e))return l.undef(i)?(o.contains(e,".")?(t=e.split("."),r=t.length-1,a.each(t,function(e,t){if(t===r)i=n[e];else{if(!l.hash(n[e]))return!1;n=n[e]}})):l.undef(n[e])||(i=n[e]),i):void(o.contains(e,".")?(t=e.split("."),r=t.length-1,a.each(t,function(e,t){t===r?n[e]=i:n=l.hash(n[e])?n[e]:n[e]={}})):l.undef(n[e])||(n[e]=i))})}((FooGallery.utils.$,FooGallery.utils),FooGallery.utils.is,FooGallery.utils.fn,FooGallery.utils.str),function(t,r,s){"1.0.0"===r.version&&(r.ready=function(e){function t(){try{e.call(window,r.$)}catch(e){console.error(e)}}(Function("/*@cc_on return true@*/")()?"complete"===document.readyState:"loading"!==document.readyState)?t():document.addEventListener("DOMContentLoaded",t,!1)},r.find=function(e,t,n){if(s.fn(t))if(n=s.undef(n)?t:n,s.array(e)){for(r=0,o=e.length;r<o;r++)if(t.call(n,e[r],r,e))return e[r]}else if(s.object(e))for(var i=Object.keys(e),r=0,o=i.length;r<o;r++)if(t.call(n,e[i[r]],i[r],e))return e[i[r]]},r.each=function(e,t,n){if(s.fn(t))if(n=s.undef(n)?t:n,s.array(e))for(r=0,o=e.length;r<o&&!1!==t.call(n,e[r],r,e);r++);else if(s.object(e))for(var i=Object.keys(e),r=0,o=i.length;r<o&&!1!==t.call(n,e[i[r]],i[r],e);r++);},r.inArray=function(e,t){return s.array(t)?t.indexOf(e):-1},r.selectify=function(e){if(s.empty(e))return null;if(s.hash(e)){var t,n,i={};for(n in e)e.hasOwnProperty(n)&&(t=r.selectify(e[n]))&&(i[n]=t);return i}return s.string(e)||s.array(e)?(e=s.string(e)?[e]:e).map(function(e){return s.string(e)?"."+e.split(/\s/g).join("."):null}).join(","):null},r.requestFrame=(window.requestAnimationFrame||window.webkitRequestAnimationFrame||function(e){return setTimeout(e,1e3/60)}).bind(window),r.cancelFrame=(window.cancelAnimationFrame||window.webkitCancelAnimationFrame||function(e){clearTimeout(e)}).bind(window),r.nextFrame=function(e,n){return t.Deferred(function(t){s.fn(e)?(n=s.undef(n)?e:n,r.requestFrame(function(){try{t.resolve(e.call(n))}catch(e){t.reject(e)}})):t.reject(new Error("Provided callback is not a function."))}).promise()})}(FooGallery.utils.$,FooGallery.utils,FooGallery.utils.is),function(r,o,s,a){"1.0.0"===r.version&&(r.Class=function(){},r.Class.extend=function(e){e=o.hash(e)?e:{};var t,n=s.create(this.prototype);for(t in e)e.hasOwnProperty(t)&&a.addOrOverride(n,t,e[t]);function i(){if(!o.fn(this.construct))throw new SyntaxError('FooGallery.utils.Class objects must be constructed with the "new" keyword.');this.construct.apply(this,arguments)}return n.construct=o.fn(n.construct)?n.construct:function(){},(i.prototype=n).constructor=o.fn(n.__ctor__)?n.__ctor__:i,i.extend=r.Class.extend,i.override=r.Class.override,i.getBaseClasses=r.Class.getBaseClasses,i.__baseClass__=this,i},r.Class.override=function(e,t){a.addOrOverride(this.prototype,e,t)},r.Class.__baseClass__=null,r.Class.getBaseClasses=function(){return function e(t,n){return o.array(n)||(n=[]),o.fn(t)&&null!==t.__baseClass__?(n.unshift(t.__baseClass__),e(t.__baseClass__,n)):n}(this,[])})}((FooGallery.utils.$,FooGallery.utils),FooGallery.utils.is,FooGallery.utils.obj,FooGallery.utils.fn),function(e,a,l,r){e.ClassRegistry=e.Class.extend({construct:function(e){this.opt=r.extend({allowBase:!0,beforeCreate:null},e),this.registered={}},register:function(e,t,n,i){var r;return!(!a.string(e)||a.empty(e)||!a.fn(t))&&(i=a.number(i)?i:0,r=this.registered[e],this.registered[e]={name:e,ctor:t,config:a.hash(n)?n:{},priority:a.undef(r)?i:r.priority},!0)},each:function(e,t,n){t=!!a.boolean(t)&&t,n=a.undef(n)?e:n;for(var i=this,r=Object.keys(i.registered).map(function(e){return i.registered[e]}),o=(t&&r.sort(function(e,t){return t.priority-e.priority}),0),s=r.length;o<s&&!1!==e.call(n,r[o],o);o++);},find:function(e,t,n){t=!!a.boolean(t)&&t,n=a.undef(n)?e:n;for(var i=this,r=Object.keys(i.registered).map(function(e){return i.registered[e]}),o=(t&&r.sort(function(e,t){return t.priority-e.priority}),0),s=r.length;o<s;o++)if(e.call(n,r[o],o))return r[o];return null},create:function(e,t,n){var i=this,r=l.arg2arr(arguments);if(e=r.shift(),a.string(e)&&i.registered.hasOwnProperty(e)){var o=i.registered[e],s=!0;if((s=o.priority<0&&!i.opt.allowBase?!1:s)&&a.fn(o.ctor))return t=r.shift(),t=i.mergeConfigurations(o.name,t),r.unshift.apply(r,[o.name,t]),l.apply(o.ctor,i.onBeforeCreate(o,r))}return null},onBeforeCreate:function(e,t){return null!==this.opt.beforeCreate&&a.fn(this.opt.beforeCreate)?this.opt.beforeCreate.call(this,e,t):t},mergeConfigurations:function(e,t){var n,i;return a.string(e)&&this.registered.hasOwnProperty(e)?(t=a.hash(t)?t:{},n=this.getBaseClasses(e),i=[{}],n.push(this.registered[e]),n.forEach(function(e){i.push(e.config)}),i.push(t),r.extend.apply(r,i)):{}},getBaseClass:function(){return this.find(function(e){return e.priority<0},!0)},getBaseClasses:function(e){var t=this,e=t.registered[e],n=[];return a.undef(e)||e.ctor.getBaseClasses().forEach(function(e){e=t.fromType(e);a.hash(e)&&n.push(e)}),n},fromType:function(t){if(a.fn(t))return this.find(function(e){return e.ctor===t})}})}((FooGallery.utils.$,FooGallery.utils),FooGallery.utils.is,FooGallery.utils.fn,FooGallery.utils.obj),function(o,s,n){"1.0.0"===o.version&&(o.Event=o.Class.extend({construct:function(e){if(s.empty(e))throw new SyntaxError("FooGallery.utils.Event objects must be supplied a `type`.");e=o.Event.parse(e);this.type=e.type,this.namespace=e.namespace,this.defaultPrevented=!1,this.target=null},preventDefault:function(){this.defaultPrevented=!0},isDefaultPrevented:function(){return this.defaultPrevented}}),o.Event.parse=function(e){e=s.string(e)&&!s.empty(e)?e:null;var t=n.contains(e,".");return{namespaced:t,type:t?n.startsWith(e,".")?null:n.until(e,"."):e,namespace:t?n.from(e,"."):null}},o.EventClass=o.Class.extend({construct:function(){this.events={}},destroy:function(){this.events={}},on:function(n,t,i){var r=this;return s.object(n)?(i=t,Object.keys(n).forEach(function(t){s.fn(n[t])&&t.split(" ").forEach(function(e){r.addListener(e,n[t],i)})})):s.string(n)&&s.fn(t)&&n.split(" ").forEach(function(e){r.addListener(e,t,i)}),r},addListener:function(e,t,n){if(!s.string(e)||/\s/.test(e)||!s.fn(t))return!1;var i=this,r=o.Event.parse(e);return n=s.undef(n)?i:n,s.array(i.events[r.type])||(i.events[r.type]=[]),!i.events[r.type].some(function(e){return e.namespace===r.namespace&&e.fn===t&&e.thisArg===n})&&(i.events[r.type].push({namespace:r.namespace,fn:t,thisArg:n}),!0)},off:function(n,t,i){var r=this;return s.object(n)?(i=t,Object.keys(n).forEach(function(t){t.split(" ").forEach(function(e){r.removeListener(e,n[t],i)})})):s.string(n)&&n.split(" ").forEach(function(e){r.removeListener(e,t,i)}),r},removeListener:function(e,t,n){if(!s.string(e)||/\s/.test(e))return!1;var i=this,r=o.Event.parse(e),e=[];return n=s.undef(n)?i:n,s.empty(r.type)?s.empty(r.namespace)||e.push.apply(e,Object.keys(i.events)):e.push(r.type),e.forEach(function(e){s.array(i.events[e])&&(i.events[e]=i.events[e].filter(function(e){return null!=t?!(e.namespace===r.namespace&&e.fn===t&&e.thisArg===n):null!=r.namespace&&e.namespace!==r.namespace}),0===i.events[e].length&&delete i.events[e])}),!0},trigger:function(e,t){t=s.array(t)?t:[];var n=this,i=[];return e instanceof o.Event?(i.push(e),n.emit(e,t)):s.string(e)&&e.split(" ").forEach(function(e){e=new o.Event(e);i.push(e),n.emit(e,t)}),s.empty(i)?null:1===i.length?i[0]:i},emit:function(t,n){var e;t instanceof FooGallery.utils.Event&&(e=this,n=s.array(n)?n:[],null===t.target&&(t.target=e),s.array(e.events[t.type])&&e.events[t.type].forEach(function(e){null!=t.namespace&&e.namespace!==t.namespace||e.fn.apply(e.thisArg,[t].concat(n))}),s.array(e.events.__all__)&&e.events.__all__.forEach(function(e){e.fn.apply(e.thisArg,[t].concat(n))}))}}))}(FooGallery.utils,FooGallery.utils.is,FooGallery.utils.str),function(e,i,t){"1.0.0"===e.version&&(e.Timer=e.EventClass.extend({construct:function(e){var t=this;t._super(),t.interval=i.number(e)?e:1e3,t.isRunning=!1,t.isPaused=!1,t.canResume=!1,t.canRestart=!1,t.__timeout=null,t.__decrement=!1,t.__time=0,t.__remaining=0,t.__current=0,t.__finish=0,t.__restart=[]},__reset:function(){var e=this;clearTimeout(e.__timeout),e.__timeout=null,e.__decrement=!1,e.__time=0,e.__remaining=0,e.__current=0,e.__finish=0,e.isRunning=!1,e.isPaused=!1,e.canResume=!1},__eventArgs:function(e){return[this.__current,this.__time,this.__decrement].concat(t.arg2arr(arguments))},__tick:function(){var e=this;e.trigger("tick",e.__eventArgs()),e.__current===e.__finish?(e.trigger("complete",e.__eventArgs()),e.__reset()):(e.__decrement?e.__current--:e.__current++,e.__remaining--,e.canResume=0<e.__remaining,e.__timeout=setTimeout(function(){e.__tick()},e.interval))},start:function(e,t){var n=this;n.isRunning||(t=!!i.boolean(t)&&t,n.__restart=[e,t],n.__decrement=t,n.__time=e,n.__remaining=e,n.__current=t?e:0,n.__finish=t?0:e,n.canRestart=!0,n.isRunning=!0,n.isPaused=!1,n.trigger("start",n.__eventArgs()),n.__tick())},countdown:function(e){this.start(e,!0)},countup:function(e){this.start(e,!1)},restart:function(){var e=this;e.stop(),e.canRestart&&e.start.apply(e,e.__restart)},stop:function(){var e=this;(e.isRunning||e.isPaused)&&(e.__reset(),e.trigger("stop",e.__eventArgs()))},pause:function(){var e=this;return null!=e.__timeout&&(clearTimeout(e.__timeout),e.__timeout=null),e.isRunning&&(e.isRunning=!1,e.isPaused=!0,e.canResume=0<e.__remaining,e.trigger("pause",e.__eventArgs())),e.__remaining},resume:function(){var e=this;e.canResume&&(e.isRunning=!0,e.isPaused=!1,e.trigger("resume",e.__eventArgs()),e.__tick())},reset:function(){this.__reset(),this.trigger("reset",this.__eventArgs())}}))}((FooGallery.utils.$,FooGallery.utils),FooGallery.utils.is,FooGallery.utils.fn,FooGallery.utils.obj),function(o,e,t){"1.0.0"===e.version&&(e.FullscreenAPI=e.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 e in this.apis)if(this.apis.hasOwnProperty(e)&&this.apis[e].enabled in document)return this.apis[e];return null},element:function(){return this.supported?document[this.api.element]:null},request:function(e){return this.supported&&e[this.api.request]?e[this.api.request]()||o.Deferred(this.__resolver(this.api.request)).promise():t.rejected},exit:function(){return this.supported&&this.element()?document[this.api.exit]()||o.Deferred(this.__resolver(this.api.exit)).promise():t.rejected},toggle:function(e){return this.element()?this.exit():this.request(e)},__listen:function(){var e=this;e.supported&&o(document).on(e.api.events.change+".utils",function(){e.trigger("change")}).on(e.api.events.error+".utils",function(){e.trigger("error")})},__stopListening:function(){this.supported&&o(document).off(this.api.events.change+".utils").off(this.api.events.error+".utils")},__resolver:function(i){var r=this;return function(e){function t(){e.resolve(),o(document).off(r.api.events.change,t).off(r.api.events.error,n)}function n(){e.reject(new TypeError),o(document).off(r.api.events.change,t).off(r.api.events.error,n)}i===r.api.exit&&r.element()?setTimeout(function(){e.reject(new TypeError)},1):o(document).on(r.api.events.change,t).on(r.api.events.error,n)}}}))}(FooGallery.utils.$,FooGallery.utils,FooGallery.utils.fn),function(l,c,u,a){"1.0.0"===c.version&&(c.transition={},c.transition.dataName="__foo-transition__",c.transition.disableClassName=null,c.transition.timeout=3e3,c.transition.disable=function(e,t){var n,i,r,e=u.jq(e)?e:l(e);0<e.length&&u.fn(t)&&(n=e.get(0),r=null,(i=u.string(c.transition.disableClassName))?e.addClass(c.transition.disableClassName):(r={value:n.style.getPropertyValue("transition"),priority:n.style.getPropertyPriority("transition")},n.style.setProperty("transition","none","important")),t.call(t,e),e.prop("offsetWidth"),i?e.removeClass(c.transition.disableClassName):(n.style.removeProperty("transition"),u.string(r.value)&&0<r.value.length&&n.style.setProperty("transition",r.value,r.priority)))},c.transition.stop=function(e){var t=l.Deferred(),n=u.jq(e)?e:l(e);return 0<n.length?(e=n.data(c.transition.dataName),u.promise(e)?e.always(function(){c.requestFrame(function(){t.resolve(n)})}).reject(new Error("Transition cancelled.")):t.resolve(n)):t.reject(new Error("Unable to stop transition. Make sure the element exists.")),t.promise()},c.transition.createListener=function(e,t,n){var i=e,r=t,o=n,s=u.string(n);return function(e){var t=e.originalEvent instanceof TransitionEvent?e.originalEvent:e,n=!1;(n=t.target===i?!s||t.propertyName===o:n)&&r.apply(r,a.arg2arr(arguments))}},c.transition.start=function(e,n,i,r){var o,s=l.Deferred(),a=u.jq(e)?e:l(e);return 0<a.length&&u.fn(n)?(o=a.get(0),c.transition.stop(a).always(function(){var t=c.transition.createListener(o,function(){s.resolve(a)},i);a.data(c.transition.dataName,s).on("transitionend.foo-utils",t).prop("offsetWidth"),c.requestFrame(function(){var e=setTimeout(function(){s.reject(new Error("Transition safety timeout triggered."))},u.number(r)?r:c.transition.timeout);s.always(function(){clearTimeout(e),a.removeData(c.transition.dataName).off("transitionend.foo-utils",t)}),n.call(n,a)})})):s.reject(new Error("Unable to perform transition. Make sure the element exists and a trigger function is supplied.")),s.promise()},c.transition.modify=function(e,t,n,i){e=u.jq(e)?e:l(e);return 0<e.length&&u.fn(t)?n?(c.transition.disable(e,t),a.resolve()):c.transition.start(e,t,i):a.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(o,s,e,a,i,t){s.DATA_TEMPLATE="__FooGallery__",s.DATA_ITEM="__FooGalleryItem__",s.get=function(e){return o(e).data(s.DATA_TEMPLATE)},s.init=function(t,n){if(0<(n=a.jq(n)?n:o(n)).length){var e=n.data(s.DATA_TEMPLATE);if(e instanceof s.Template)return e.destroy(!0).then(function(){var e=s.template.make(t,n);return e instanceof s.Template?e.initialize():i.rejected})}e=s.template.make(t,n);return e instanceof s.Template?e.initialize():i.rejected},o.fn.foogallery=function(i,r){return r=a.fn(r)?r:o.noop,this.each(function(e,t){if(a.string(i)){var n=o.data(t,s.DATA_TEMPLATE);if(n instanceof s.Template)switch(i){case"layout":return void n.layout();case"destroy":return void n.destroy()}}else s.init(i,t).then(r)})},s.isCached=function(e){var t=new Image,e=(t.src=e,t.complete);return t.src="",t=null,e},s.supportedExifProperties=["camera","aperture","created_timestamp","shutter_speed","focal_length","iso","orientation"],a.exif=function(t){var e;return!!a.object(t)&&(0<(e=Object.keys(t)).length&&e.some(function(e){return-1!==s.supportedExifProperties.indexOf(e)&&!a.empty(t[e])}))},t.trimTo=function(e,t,n){return a.string(e)&&a.number(t)&&0<t&&e.length>t?e.substr(0,t)+(a.string(n)?n:"…"):e},e.getResizeObserverSize=function(e){var t,e=e.contentBoxSize?e.contentBoxSize[0]?(t=e.contentBoxSize[0].inlineSize,e.contentBoxSize[0].blockSize):(t=e.contentBoxSize.inlineSize,e.contentBoxSize.blockSize):(t=e.contentRect.width,e.contentRect.height);return{width:t,height:e}},s.supportsWebP=!1;var n=new Image;n.onload=function(){s.supportsWebP=0<n.width&&0<n.height},n.onerror=function(){s.supportsWebP=!1},n.src="data:image/webp;base64,UklGRhoAAABXRUJQVlA4TA0AAAAvAAAAEAcQERGIiP4HAA==",s.supportsPicture=!!window.HTMLPictureElement,e.DOMEventListeners=e.Class.extend({construct:function(){this.eventTargets=new Map},add:function(e,t,n,i){e.addEventListener(t,n,i);let r=this.eventTargets.get(e);return r||(r=new Map,this.eventTargets.set(e,r)),!r.get(t)&&(r.set(t,{listener:n,options:i}),!0)},remove:function(e,t){let n=this.eventTargets.get(e);var i;!n||(i=n.get(t))&&(e.removeEventListener(t,i.listener,i.options),n.delete(t),0===n.size&&this.eventTargets.delete(e))},clear:function(){this.eventTargets.forEach(function(e,n){e.forEach(function(e,t){n.removeEventListener(t,e.listener,e.options)})}),this.eventTargets.clear()}}),e.Timeouts=e.Class.extend({construct:function(){this.instances=new Map},has:function(e){return this.instances.has(e)},get:function(e){return this.instances.get(e)},set:function(e,t,n){const i=this;i.delete(e);n={id:setTimeout(function(){i.instances.delete(e),t.call(i)},n),delay:n,fn:t};return this.instances.set(e,n),i},delete:function(e){var t;return!!this.instances.has(e)&&(t=this.instances.get(e),clearTimeout(t.id),this.instances.delete(e))},clear:function(){this.instances.forEach(function(e){clearTimeout(e.id)}),this.instances.clear()}})}(FooGallery.$,FooGallery,FooGallery.utils,FooGallery.utils.is,FooGallery.utils.fn,FooGallery.utils.str),function(o,e,t,a,l){e.Icons=t.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>',search:'<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path d="M16 13.5l-4.695-4.695c0.444-0.837 0.695-1.792 0.695-2.805 0-3.314-2.686-6-6-6s-6 2.686-6 6 2.686 6 6 6c1.013 0 1.968-0.252 2.805-0.695l4.695 4.695 2.5-2.5zM2 6c0-2.209 1.791-4 4-4s4 1.791 4 4-1.791 4-4 4-4-1.791-4-4z"></path></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(e,t){return!(a.empty(e)||a.empty(t)||!a.string(e)||!a.hash(t))&&(this.registered[e]=l.extend({},this.registered.default,t),!0)},get:function(e,t){var n=this,i="default",r=l.extend({},n.registered.default),t=(a.string(t)&&"default"!==t?r=l.extend(r,n.registered[i=t]):a.hash(t)&&(i="custom",r=l.extend(r,t)),a.string(e)&&r.hasOwnProperty(e)?r[e].replace(/\[ICON_CLASS]/g,n.className+"-"+e):null),r=[!1,e,i].map(function(e){return!1===e?n.className:n.className+"-"+e}).join(" ");return o(t).addClass(r)},element:function(e,t){const n=this;let i="default",r=l.extend({},n.registered.default);a.string(t)&&"default"!==t?(i=t,r=l.extend(r,n.registered[t])):a.hash(t)&&(i="custom",r=l.extend(r,t));t=a.string(e)&&r.hasOwnProperty(e)?r[e].replace(/\[ICON_CLASS]/g,n.className+"-"+e):null;if(null!==t){const o=document.createRange().createContextualFragment(t),s=o.querySelector("svg");if(s)return["","-"+e,"-"+i].forEach(function(e){s.classList.add(n.className+e)}),s}return null}}),e.icons=new e.Icons}(FooGallery.$,FooGallery,FooGallery.utils,FooGallery.utils.is,FooGallery.utils.obj),function(r,n,i,o,s){var a="__FooGallerySwipe__",e="ontouchstart"in window,l=window.navigator.msPointerEnabled&&!window.navigator.pointerEnabled&&!e,c=(window.navigator.pointerEnabled||window.navigator.msPointerEnabled)&&!e,u=e||c;n.Swipe=i.Class.extend({construct:function(e,t){var n=this,i=".fgswipe";n.$el=r(e),n.opt=s.extend({threshold:20,allowPageScroll:!1,swipe:r.noop,data:{}},t),n.active=!1,n.startPoint=null,n.endPoint=null,n.events={start:(u?c?l?"MSPointerDown":"pointerdown":"touchstart":"mousedown")+i,move:(u?c?l?"MSPointerMove":"pointermove":"touchmove":"mousemove")+i,end:(u?c?l?"MSPointerUp":"pointerup":"touchend":"mouseup")+i,leave:(!u||c?"mouseleave":null)+i}},init:function(){var e=this;e.$el.on(e.events.start,{self:e},e.onStart),e.$el.on(e.events.move,{self:e},e.onMove),e.$el.on(e.events.end,{self:e},e.onEnd),o.string(e.events.leave)&&e.$el.on(e.events.leave,{self:e},e.onEnd),e.$el.data(a,e)},destroy:function(){var e=this;e.$el.off(e.events.start,e.onStart),e.$el.off(e.events.move,e.onMove),e.$el.off(e.events.end,e.onEnd),o.string(e.events.leave)&&e.$el.off(e.events.leave,e.onEnd),e.$el.removeData(a)},getAngle:function(e,t){e=Math.atan2(e.x-t.x,e.y-t.y),t=Math.round(180*e/Math.PI);return 360-(t<0?360-Math.abs(t):t)},getDistance:function(e,t){var n=t.x-e.x,t=t.y-e.y;return n*=n,t*=t,Math.sqrt(n+t)},getDirection:function(e,t){e=this.getAngle(e,t);return 337.5<e||e<=22.5?"N":22.5<e&&e<=67.5?"NE":67.5<e&&e<=112.5?"E":112.5<e&&e<=157.5?"SE":157.5<e&&e<=202.5?"S":202.5<e&&e<=247.5?"SW":247.5<e&&e<=292.5?"W":292.5<e&&e<=337.5?"NW":"NONE"},getPoint:function(e){var t;return u&&!o.empty(t=e.originalEvent.touches||e.touches)?{x:t[0].pageX,y:t[0].pageY}:o.number(e.pageX)&&o.number(e.pageY)?{x:e.pageX,y:e.pageY}:null},getOffset:function(e){var t=this.$el.offset();return{left:e.x-t.left,top:e.y-t.top}},onStart:function(e){var t=e.data.self,e=t.getPoint(e);o.empty(e)||(t.active=!0,t.startPoint=t.endPoint=e)},onMove:function(e){var t=e.data.self,n=t.getPoint(e);t.active&&!o.empty(n)&&(t.endPoint=n,t.opt.allowPageScroll?o.hash(t.opt.allowPageScroll)&&(n=t.getDirection(t.startPoint,t.endPoint),t.opt.allowPageScroll.x||-1===i.inArray(n,["NE","E","SE","NW","W","SW"])||e.preventDefault(),t.opt.allowPageScroll.y||-1===i.inArray(n,["NW","N","NE","SW","S","SE"])||e.preventDefault()):e.preventDefault())},onEnd:function(e){var t,e=e.data.self;e.active&&(e.active=!1,t={startPoint:e.startPoint,endPoint:e.endPoint,startOffset:e.getOffset(e.startPoint),endOffset:e.getOffset(e.endPoint),angle:e.getAngle(e.startPoint,e.endPoint),distance:e.getDistance(e.startPoint,e.endPoint),direction:e.getDirection(e.startPoint,e.endPoint)},0<e.opt.threshold&&t.distance<e.opt.threshold||(e.opt.swipe.apply(this,[t,e.opt.data]),e.startPoint=null,e.endPoint=null))}}),r.fn.fgswipe=function(t){return this.each(function(){var e=r(this).data(a);if(e instanceof n.Swipe){if(o.string(t)&&o.fn(e[t]))return void e[t]();e.destroy()}o.hash(t)&&(e=new n.Swipe(this,t)).init()})}}(FooGallery.$,FooGallery,FooGallery.utils,FooGallery.utils.is,FooGallery.utils.obj),function(r,e,t,o,s){e.Factory=t.Class.extend({construct:function(){this.registered={}},contains:function(e){return!o.undef(this.registered[e])},make:function(e,t,n){var i,r=s.arg2arr(arguments);return e=r.shift(),i=this.registered[e],o.hash(i)&&o.fn(i.klass)?s.apply(i.klass,r):null},names:function(e){e=!!o.boolean(e)&&e;var t,n=[];if(e){var i=[];for(t in this.registered)this.registered.hasOwnProperty(t)&&i.push(this.registered[t]);i.sort(function(e,t){return t.priority-e.priority}),r.each(i,function(e,t){n.push(t.name)})}else for(t in this.registered)this.registered.hasOwnProperty(t)&&n.push(t);return n},register:function(e,t,n){if(!o.string(e)||o.empty(e)||!o.fn(t))return!1;n=o.number(n)?n:0;var i=this.registered[e];return this.registered[e]={name:e,klass:t,priority:o.undef(i)?n:i.priority},!0},load:function(){var e,n=this,i=[],t=[];for(e in n.registered)n.registered.hasOwnProperty(e)&&t.push(n.registered[e]);return t.sort(function(e,t){return t.priority-e.priority}),r.each(t,function(e,t){i.push(n.make(t.name))}),i}})}(FooGallery.$,FooGallery,FooGallery.utils,FooGallery.utils.is,FooGallery.utils.fn),function(l,s,c,u,a){s.TemplateFactory=s.Factory.extend({construct:function(){this.registered={}},register:function(e,t,n,i,r,o){t=this._super(e,t,o);return t&&((o=this.registered)[e].opt=u.hash(n)?n:{},o[e].cls=u.hash(i)?i:{},o[e].il8n=u.hash(r)?r:{}),t},make:function(e,t){t=u.jq(t)?t:l(t),e=a.extend({},e,t.data("foogallery"));var n=this.type(e,t);return this.contains(n)?(e=this.options(n,e),this._super(n,e,t)):null},type:function(e,t){t=u.jq(t)?t:l(t);var n=u.hash(e)&&u.hash(e)&&u.string(e.type)&&this.contains(e.type)?e.type:null;if(null===n&&0<t.length)for(var i=this.registered,r=this.names(!0),o=0,s=r.length;o<s;o++)if(i.hasOwnProperty(r[o])&&"core"!==r[o]){var a=i[r[o]].cls;if(u.string(a.container)){a=c.selectify(a.container);if(t.is(a)){n=r[o];break}}}return n},configure:function(e,t,n,i){var r;this.contains(e)&&(r=this.registered,a.extend(r[e].opt,t),a.extend(r[e].cls,n),a.extend(r[e].il8n,i))},options:function(e,t){t=a.extend({type:e},t);var n=this.registered,i=n.core.opt,r=n.core.cls,o=n.core.il8n;return u.hash(t.cls)||(t.cls={}),u.hash(t.il8n)||(t.il8n={}),u.undef(s.filtering)||(t=s.filtering.merge(t)),u.undef(s.paging)||(t=s.paging.merge(t)),"core"!==e&&this.contains(e)?((t=a.extend({},i,n[e].opt,t)).cls=a.extend({},r,n[e].cls,t.cls),t.il8n=a.extend({},o,n[e].il8n,t.il8n)):((t=a.extend({},i,t)).cls=a.extend({},r,t.cls),t.il8n=a.extend({},o,t.il8n)),t}}),s.template=new s.TemplateFactory}(FooGallery.$,FooGallery,FooGallery.utils,FooGallery.utils.is,(FooGallery.utils.fn,FooGallery.utils.obj)),function(i,r,o,s,a){var l=0;r.Template=o.EventClass.extend({construct:function(e,t){var n=this;n._super(),n.namespace=".foogallery-"+ ++l,n.$el=s.jq(t)?t:i(t),n.el=n.$el.get(0)||null,n.$scrollParent=null,n.opt=e,n.template=e.template,n.id=n.$el.prop("id")||e.id,n.cls=e.cls,n.il8n=e.il8n,n.sel=o.selectify(n.cls),n.items=r.components.make("items",n),n.pages=s.undef(r.paging)?null:r.paging.make(e.paging.type,n),n.filter=s.undef(r.filtering)?null:r.filtering.make(e.filtering.type,n),n.state=r.components.make("state",n),n._initialize=null,n._layoutTimeout=null,n._layoutWidths=[],n.lastWidth=0,n.initializing=!1,n.initialized=!1,n.destroying=!1,n.destroyed=!1,n._undo={classes:"",style:"",create:!1,children:!1},n.robserver=new ResizeObserver(a.throttle(function(e){n.destroying||n.destroyed||1!==e.length||e[0].target!==n.el||(e=o.getResizeObserverSize(e[0]),n.layout(e.width))},50))},initialize:function(t){var n=this;return s.promise(n._initialize)?n._initialize:n._initialize=i.Deferred(function(e){n.preInit(t)?n.init().then(function(){n.postInit()?(n.ready(),e.resolve(n)):e.reject("post-init failed")}).fail(e.reject):e.reject("pre-init failed")}).fail(function(e){return console.log("initialize failed",n,e),n.destroy()}).promise()},preInit:function(e){var t,n=this;if(n.destroying)return!1;if(e=s.jq(e)?e:i(e),n.initializing=!0,0===e.length&&0===n.$el.parent().length)return!1;0===n.$el.length&&(n.$el=n.create(),n.el=n.$el.get(0),n._undo.create=!0),0<e.length&&n.$el.appendTo(e),s.empty(n.opt.scrollParent)||0===(t=i(n.opt.scrollParent)).length?n.$scrollParent=i(document):n.$scrollParent=t.is("html")?i(document):t,n.$el.data(r.DATA_TEMPLATE,n),s.empty(n.opt.on)||n.on(n.opt.on),n._undo.classes=n.$el.attr("class"),n._undo.style=n.$el.attr("style"),n.$el.is(n.sel.container)||n.$el.addClass(n.cls.container);e=o.selectify(n.opt.classes);return null==e||n.$el.is(e)||n.$el.addClass(n.opt.classes),0===n.$el.children().not(n.sel.item.elem).length&&(n.$el.append(n.createChildren()),n._undo.children=!0),n.opt.protected&&(n.el.oncontextmenu=function(e){return e.preventDefault(),!1}),!n.trigger("pre-init").isDefaultPrevented()},init:function(){return this.trigger("init").isDefaultPrevented()?a.reject("init default prevented"):this.items.fetch()},postInit:function(){var e=this;return!e.destroying&&(!e.trigger("post-init").isDefaultPrevented()&&(e.state.init(),e.pages&&e.pages.init(),i(window).on("popstate"+e.namespace,{self:e},e.onWindowPopState),e.robserver.observe(e.el),!0))},ready:function(){return!this.destroying&&(this.initializing=!1,this.initialized=!0,this.trigger("ready"),!0)},create:function(){return i("<div/>",{id:this.id,class:this.cls.container}).addClass(this.opt.classes)},createChildren:function(){return i()},destroy:function(t){var n=this,e=n._super.bind(n);return n.destroyed?a.resolved:(n.destroying=!0,i.Deferred(function(e){n.initializing&&s.promise(n._initialize)?n._initialize.always(function(){n.destroying=!1,n.doDestroy(t),e.resolve()}):(n.destroying=!1,n.doDestroy(t),e.resolve())}).then(function(){e()}).promise())},doDestroy:function(e){var t=this;t.destroyed||(t.trigger("destroy"),t.robserver.disconnect(),i(window).off(t.namespace),t.state.destroy(e),t.filter&&t.filter.destroy(),t.pages&&t.pages.destroy(),t.items.destroy(),s.empty(t.opt.on)||t.$el.off(t.opt.on),t.trigger("destroyed"),t.$el.removeData(r.DATA_TEMPLATE),s.empty(t._undo.classes)?t.$el.removeAttr("class"):t.$el.attr("class",t._undo.classes),s.empty(t._undo.style)?t.$el.removeAttr("style"):t.$el.attr("style",t._undo.style),t._undo.children&&t.destroyChildren(),t._undo.create&&t.$el.remove(),t.$el=t.state=t.items=t.pages=null,t.destroyed=!0,t.initializing=!1,t.initialized=!1)},destroyChildren:function(){},getAvailable:function(){return(this.pages||this.items).available()},layout:function(e){var t=this;null!==t._initialize&&(0===(e=!s.number(e)?t.el.getBoundingClientRect().width:e)||t._checkWidth(e)||(t.lastWidth=e,t.trigger("layout",[e])))},_checkWidth:function(e){var t,n=this;return(t=-1!==n._layoutWidths.indexOf(e))||(n._layoutWidths.unshift(e),n._layoutWidths.splice(2,n._layoutWidths.length-2),null!=n._layoutTimeout&&clearTimeout(n._layoutTimeout),n._layoutTimeout=setTimeout(function(){n._layoutWidths.splice(0,n._layoutWidths.length)},100)),t},getCSSClass:function(e,t){t=s.empty(t)?"":t;var e=e instanceof RegExp?e:s.string(e)&&this.opt.regex.hasOwnProperty(e)?this.opt.regex[e]:null,n=this.$el.prop("className")||"",n=null!=e?n.match(e):null;return null!=n&&2<=n.length?n[1]:t},onWindowPopState:function(e){var t=e.data.self,e=e.originalEvent.state;s.empty(e)||e.id!==t.id||t.state.set(e)}}),r.template.register("core",r.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(e,t){e.Component=t.EventClass.extend({construct:function(e){this._super(),this.tmpl=e},destroy:function(){this.tmpl=null,this._super()}}),e.components=new e.Factory}(FooGallery,FooGallery.utils,FooGallery.utils.is),function(t,o,n,s,a,l){o.State=o.Component.extend({construct:function(e){var t=this,e=(t._super(e),t.apiEnabled=!!window.history&&!!history.replaceState,t.opt=t.tmpl.opt.state,t.enabled=t.opt.enabled,t.current={filter:[],page:0,item:null},t.pushOrReplace=t.isPushOrReplace(t.opt.pushOrReplace)?t.opt.pushOrReplace:"replace",t.defaultMask="foogallery-gallery-{id}",a.escapeRegExp(t.tmpl.id)),n=a.escapeRegExp(t.getMasked()),i=a.escapeRegExp(t.opt.values),r=a.escapeRegExp(t.opt.pair);t.regex={exists:new RegExp("^#"+e+"\\"+i+".+?"),masked:new RegExp("^#"+n+"\\"+i+".+?"),values:new RegExp("(\\w+)"+r+"([^"+i+"]+)","g")}},destroy:function(e){e||this.clear(),this.opt=this.regex={},this._super()},init:function(){this.set(this.initial())},getIdNumber:function(){return this.tmpl.id.match(/\d+/g)[0]},getMasked:function(){var e=a.contains(this.opt.mask,"{id}")?this.opt.mask:this.defaultMask;return a.format(e,{id:this.getIdNumber()})},isPushOrReplace:function(e){return-1!==n.inArray(e,["push","replace"])},exists:function(){return this.regex.values.lastIndex=0,(this.regex.exists.test(location.hash)||this.regex.masked.test(location.hash))&&this.regex.values.test(location.hash)},parse:function(){var e,r=this,o=r.tmpl,s={};return r.exists()&&(r.enabled?(s.id=r.tmpl.id,r.regex.values.lastIndex=0,e=location.hash.match(r.regex.values),t.each(e,function(e,t){var n,i=t.split(r.opt.pair);if(2===i.length)switch(i[0]){case r.opt.itemKey:null!==(n=o.items.fromHash(i[1]))&&(s.item=n);break;case r.opt.pageKey:o.pages&&null!==(n=o.pages.fromHash(i[1]))&&(s.page=n);break;case r.opt.filterKey:o.filter&&null!==(n=o.filter.fromHash(i[1]))&&(s.filter=n)}})):r.apiEnabled?history.replaceState(null,"",location.pathname+location.search):location.hash="#"),s},hashify:function(e){var t,n,i=this,r=i.tmpl;return s.hash(e)?(t=[],null!==(n=r.items.toHash(e.item))&&t.push(i.opt.itemKey+i.opt.pair+n),r.filter&&null!==(n=r.filter.toHash(e.filter))&&t.push(i.opt.filterKey+i.opt.pair+n),r.pages&&null!==(n=r.pages.toHash(e.page))&&t.push(i.opt.pageKey+i.opt.pair+n),0<t.length&&t.unshift("#"+i.getMasked()),t.join(i.opt.values)):""},replace:function(e){var t,n;this.enabled&&this.apiEnabled&&(e.id=this.tmpl.id,t=this.hashify(e),n=s.empty(t),e=l.extend({},e,{item:e.item instanceof o.Item?e.item.id:e.item}),history.replaceState(n?null:e,"",n?location.pathname+location.search:t))},push:function(e){var t,n;this.enabled&&this.apiEnabled&&(e.id=this.tmpl.id,t=this.hashify(e),n=s.empty(t),e=l.extend({},e,{item:e.item instanceof o.Item?e.item.id:e.item}),history.pushState(n?null:e,"",n?location.pathname+location.search:t))},update:function(e,t){var n=this;n.enabled&&n.apiEnabled&&(t=n.isPushOrReplace(t)?t:n.pushOrReplace,n[t](e))},clear:function(){this.exists()&&this.replace({})},initial:function(){var e=this.parse();return s.empty(e)?this.get():l.extend({filter:[],page:1,item:null},e)},get:function(e){var t,n=this.tmpl,i={};return e instanceof o.Item&&(i.item=e),n.filter&&null!==(t=n.filter.getState())&&(i.filter=t),n.pages&&null!==(t=n.pages.getState())&&(i.page=t),l.extend({filter:[],page:1,item:null},i)},set:function(e){var t,n,i,r=this.tmpl;s.hash(e)&&(t=l.extend({filter:[],page:1,item:null},e),r.items.reset(),r.trigger("before-state",[t]).isDefaultPrevented()||(r.filter&&r.filter.setState(t),r.pages?r.pages.setState(t):(n=r.items.available(),r.items.isAll(n)||(i=r.items.not(n),r.items.detach(i)),r.items.create(n,!0)),t.item instanceof o.Item&&(this.opt.scrollTo&&t.item.scrollTo(),s.empty(e.item)||(e.item=null,this.replace(e))),this.current=t,r.trigger("after-state",[t])))}}),o.template.configure("core",{state:{enabled:!1,scrollTo:!0,pushOrReplace:"replace",mask:"foogallery-gallery-{id}",values:"/",pair:":",array:"+",arraySeparator:",",itemKey:"i",filterKey:"f",pageKey:"p"}}),o.components.register("state",o.State)}(FooGallery.$,FooGallery,FooGallery.utils,FooGallery.utils.is,FooGallery.utils.str,FooGallery.utils.obj),function(s,o,n,a,i,l){o.Items=o.Component.extend({construct:function(e){var t=this,e=(t.ALLOW_CREATE=!0,t.ALLOW_APPEND=!0,t.LAYOUT_AFTER_LOAD=!0,t._super(e),t._typeRegex=/(?:^|\s)?fg-type-(.*?)(?:$|\s)/,t._fetched=null,t._all=[],t._available=[],t._unavailable=[],t._observed=new Map,t.tmpl.cls.item.caption);t.tmpl.sel.item.caption.all=n.selectify([e.elem,e.inner,e.title,e.description]),t._wait=[],t._layoutTimeout=null,t.iobserver=new IntersectionObserver(function(e){t.tmpl.destroying||t.tmpl.destroyed||(t.LAYOUT_AFTER_LOAD&&clearTimeout(t._layoutTimeout),e.forEach(function(e){!e.isIntersecting||(e=t._observed.get(e.target))instanceof o.Item&&t._wait.push(e.load())}),t.LAYOUT_AFTER_LOAD&&(t._layoutTimeout=setTimeout(function(){0<t._wait.length&&i.allSettled(t._wait.splice(0)).then(function(){t.tmpl.layout()})},100)))})},fromHash:function(t){return this.find(this._all,function(e){return e.id===t})},toHash:function(e){return e instanceof o.Item?e.id:null},destroy:function(){var e=this,t=e.all();e.iobserver.disconnect(),0<t.length&&(e.tmpl.trigger("destroy-items",[t]),0<(t=s.map(t,function(e){return e.destroy()?e:null})).length&&e.tmpl.trigger("destroyed-items",[t])),e._fetched=null,e._all=[],e._available=[],e._unavailable=[],e._observed.clear(),e._super()},fetch:function(e){var t=this;if(!e&&a.promise(t._fetched))return t._fetched;var e=t.tmpl.id+"_items",n=t.tmpl.sel,i=t.tmpl.opt.items,r=s.Deferred(),o=t.make(t.tmpl.$el.find(n.item.elem));return a.empty(i)?(a.array(window[e])&&o.push.apply(o,t.make(window[e])),r.resolve(o)):a.array(i)?(o.push.apply(o,t.make(i)),r.resolve(o)):a.string(i)?s.get(i).then(function(e){o.push.apply(o,t.make(e)),r.resolve(o)},function(e,t,n){console.log("FooGallery: GET items error.",i,e,t,n),r.resolve(o)}):r.resolve(o),r.then(function(e){t.setAll(e)}),t._fetched=r.promise()},toJSON:function(e){return(e?this.all():this.available()).map(function(e){return e.toJSON()})},all:function(){return this._all.slice()},count:function(e){return(e?this.all():this.available()).length},available:function(e){return a.fn(e)?this._available.filter(e,this):this._available.slice()},unavailable:function(e){return a.fn(e)?this._unavailable.filter(e,this):this._unavailable.slice()},setAll:function(e){this._all=a.array(e)?e:[],this._all.forEach(function(e,t){e.index=t,a.empty(e.id)&&(e.id=t+1+"")}),this._available=this.all(),this._unavailable=[]},setAvailable:function(e){var t=this;t._available=a.array(e)?e:[],t._all.length!==t._available.length?t._unavailable=t._all.filter(function(e){return-1===t._available.indexOf(e)}):t._unavailable=[]},reset:function(){this.setAvailable(this.all())},find:function(e,t){if(t=a.fn(t)?t:function(){return!0},a.array(e))for(var n=0,i=e.length;n<i;n++)if(!0===t.call(this,e[n]))return e[n];return null},not:function(t){var e=this.all();return a.array(t)?e.filter(function(e){return-1===t.indexOf(e)}):e},isAll:function(e){return!!a.array(e)&&this._all.length===e.length},first:function(e){return this.find(this._available,e)},last:function(e){return this.find(this._available.slice().reverse(),e)},next:function(e,t,n){if(!(e instanceof o.Item))return null;n=!!a.boolean(n)&&n;var i,r=this._available.slice(),e=r.indexOf(e);return-1!==e?(i=r.slice(0,e),r=r.slice(e+1),n&&(r=r.concat(i)),this.find(r,t)):null},prev:function(e,t,n){if(!(e instanceof o.Item))return null;n=!!a.boolean(n)&&n;var i,r=this._available.slice().reverse(),e=r.indexOf(e);return-1!==e?(i=r.slice(0,e),r=r.slice(e+1),n&&(r=r.concat(i)),this.find(r,t)):null},get:function(t,e){e=e?this._all:this._available;return a.number(t)?0<=t&&t<this._all.length?e[t]:null:this.find(e,function(e){return e.el===t})},indexOf:function(e,t){return(t?this._all:this._available).indexOf(e)},creatable:function(e){return this.ALLOW_CREATE&&a.array(e)?s.map(e,function(e){return e instanceof o.Item&&!e.isCreated?e:null}):[]},appendable:function(e){return this.ALLOW_APPEND&&a.array(e)?s.map(e,function(e){return e instanceof o.Item&&e.isCreated&&!e.isAttached?e:null}):[]},detachable:function(e){return a.array(e)?s.map(e,function(e){return e instanceof o.Item&&e.isCreated&&e.isAttached?e:null}):[]},jquerify:function(e){return s(s.map(e,function(e){return e.$el.get()}))},make:function(e){var i=this,t=[];if(a.jq(e)||a.array(e)){var r=[],e=s.makeArray(e);if(0===e.length)return t;0<(t=!i.tmpl.trigger("make-items",[e]).isDefaultPrevented()?s.map(e,function(e){var t=i.type(e),n=l.extend(a.hash(e)?e:{},{type:t}),t=o.components.make(t,i.tmpl,n);return a.element(e)?t.parse(e)?(r.push(t),i.ALLOW_APPEND||t.detach(),t):null:t}):t).length&&i.tmpl.trigger("made-items",[t]),0<r.length&&i.tmpl.trigger("parsed-items",[r])}return t},type:function(e){var t;return a.hash(e)?t=e.type:!a.element(e)||null!==(e=e.className.match(this._typeRegex))&&2===e.length&&(t=e[1]),a.string(t)&&o.components.contains(t)?t:"image"},create:function(e,t){var n=[],i=this.creatable(e);return 0<i.length&&0<(n=!this.tmpl.trigger("create-items",[i]).isDefaultPrevented()?s.map(i,function(e){return e.create()?e:null}):n).length&&this.tmpl.trigger("created-items",[n]),a.boolean(t)&&t?this.append(e):n},append:function(e){var t=[],e=this.appendable(e);return 0<e.length&&0<(t=!this.tmpl.trigger("append-items",[e]).isDefaultPrevented()?s.map(e,function(e){return e.append()?e:null}):t).length&&this.tmpl.trigger("appended-items",[t]),t},detach:function(e){var t=[],e=this.detachable(e);return 0<e.length&&0<(t=!this.tmpl.trigger("detach-items",[e]).isDefaultPrevented()?s.map(e,function(e){return e.detach()?e:null}):t).length&&this.tmpl.trigger("detached-items",[t]),t},observe:function(e){!(this.iobserver&&e.isCreated&&e.isAttached)||e.isLoading&&e.isLoaded||(this.iobserver.observe(e.el),this._observed.set(e.el,e))},unobserve:function(e){this.iobserver&&(this.iobserver.unobserve(e.el),this._observed.delete(e.el))}}),o.components.register("items",o.Items)}(FooGallery.$,FooGallery,FooGallery.utils,FooGallery.utils.is,FooGallery.utils.fn,FooGallery.utils.obj),function(y,b,_,w,o,x){b.Item=b.Component.extend({construct:function(e,t){var n=this;n._super(e),n.cls=e.cls.item,n.il8n=e.il8n.item,n.sel=e.sel.item,n.opt=o.extend({},e.opt.item,t),n.isAttached=!1,n.isCreated=!1,n.isDestroyed=!1,n.isLoading=!1,n.isLoaded=!1,n.isError=!1,n.isParsed=!1,n.isPicture=!1,n.$el=null,n.el=null,n.$inner=null,n.$anchor=null,n.$overlay=null,n.$wrap=null,n.$image=null,n.$caption=null,n.$loader=null,n.index=-1,n.type=n.opt.type,n.id=n.opt.id,n.productId=n.opt.productId,n.href=n.opt.href,n.placeholder=n.opt.placeholder,n.src=n.opt.src,n.srcset=n.opt.srcset,n.sources=n.opt.sources,n.width=n.opt.width,n.height=n.opt.height,n.title=n.opt.title,n.alt=n.opt.alt,n.caption=n.opt.caption,n.description=n.opt.description,n.attr=n.opt.attr,n.tags=n.opt.tags,n.maxCaptionLength=n.opt.maxCaptionLength,n.maxDescriptionLength=n.opt.maxDescriptionLength,n.showCaptionTitle=n.opt.showCaptionTitle,n.showCaptionDescription=n.opt.showCaptionDescription,n.noLightbox=n.opt.noLightbox,n.panelHide=n.opt.panelHide,n.exif=n.opt.exif,n.hasExif=w.exif(n.exif),n.ribbon=n.opt.ribbon,n.hasRibbon=w.hash(n.ribbon)&&w.string(n.ribbon.text)&&w.string(n.ribbon.type),n.buttons=n.opt.buttons,n._load=null,n._undo={classes:"",style:"",placeholder:!1}},destroy:function(){var e=this;return e.tmpl.trigger("destroy-item",[e]).isDefaultPrevented()||(e.isDestroyed=e.doDestroyItem()),e.isDestroyed&&(e.tmpl.trigger("destroyed-item",[e]),e._super()),e.isDestroyed},doDestroyItem:function(){var e=this;return e.isParsed?(e.$anchor.add(e.$caption).off("click.foogallery"),e.append(),e.tmpl.items.unobserve(e),w.empty(e._undo.classes)?e.$el.removeAttr("class"):e.$el.attr("class",e._undo.classes),w.empty(e._undo.style)?e.$el.removeAttr("style"):e.$el.attr("style",e._undo.style),e._undo.placeholder&&e.$image.prop("src")===e.placeholder&&e.$image.removeAttr("src")):e.isCreated&&(e.detach(),e.$el.remove()),!0},parse:function(e){var t=this,e=y(e);return!t.tmpl.trigger("parse-item",[t,e]).isDefaultPrevented()&&(t.isCreated=e.is(t.sel.elem))&&(t.isParsed=t.doParseItem(e)),t.isParsed&&(t.isLoaded||t.tmpl.items.observe(t),t.tmpl.trigger("parsed-item",[t])),t.isParsed},doParseItem:function(e){var n=this,t=n.cls,i=n.sel,r=e.get(0);if(n._undo.classes=e.attr("class")||"",n._undo.style=e.attr("style")||"",n.$el=e.data(b.DATA_ITEM,n),n.el=r,n.$inner=y(r.querySelector(i.inner)),n.$anchor=y(r.querySelector(i.anchor)).on("click.foogallery",{self:n},n.onAnchorClick),n.$image=y(r.querySelector(i.image)),n.$caption=y(r.querySelector(i.caption.elem)).on("click.foogallery",{self:n},n.onCaptionClick),n.$overlay=y(r.querySelector(i.overlay)),n.$wrap=y(r.querySelector(i.wrap)),n.$loader=y(r.querySelector(i.loader)),!(n.$el.length&&n.$inner.length&&n.$anchor.length&&n.$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.",n),n.isError=!0,n.tmpl.trigger("error-item",[n]),0!==n.$el.length&&n.$el.remove(),!1;n.isAttached=null!==r.parentNode,n.isLoading=n.$el.hasClass(t.loading),n.isLoaded=n.$el.hasClass(t.loaded),n.isError=n.$el.hasClass(t.error);var e=n.$anchor.data(),i=(n.id=e.id||n.id,n.productId=e.productId||n.productId,n.tags=e.tags||n.tags,n.href=e.href||n.$anchor.attr("href")||n.href,r=n.$image.is("picture")?(n.isPicture=!0,n.sources=n.$image.find("source").map(function(e,t){return{srcset:t.getAttribute(n.tmpl.opt.srcset),type:t.getAttribute("type"),media:t.getAttribute("media"),sizes:t.getAttribute("sizes")}}).get(),n.$image.find("img")):n.$image,n.src=r.attr(n.tmpl.opt.src)||n.src,n.srcset=r.attr(n.tmpl.opt.srcset)||n.srcset,n.width=parseInt(r.attr("width"))||n.width,n.height=parseInt(r.attr("height"))||n.height,n.title=r.attr("title")||n.title,n.alt=r.attr("alt")||n.alt,n.caption=e.title||e.captionTitle||n.caption,n.description=e.description||e.captionDesc||n.description,n.noLightbox=n.$anchor.hasClass(t.noLightbox),n.panelHide=n.$anchor.hasClass(t.panelHide),w.exif(e.exif)&&(n.exif=o.extend(n.exif,e.exif),n.hasExif=!0),0<n.maxCaptionLength&&((e=x.trimTo(n.caption,n.maxCaptionLength))!==n.caption&&n.$caption.find(i.caption.title).html(e)),!n.maxDescriptionLength||(e=x.trimTo(n.description,n.maxDescriptionLength))!==n.description&&n.$caption.find(i.caption.description).html(e),r.get(0)),e=(w.string(i.src)&&0!==i.src.length||(w.string(n.placeholder)&&0!==n.placeholder.length||(n.placeholder=n.createPlaceholder(n.width,n.height)),0<n.placeholder.length&&(i.src=n.placeholder,n._undo.placeholder=!0)),n.getTypeClass());return n.$el.hasClass(e)||n.$el.addClass(e),n.hasExif&&!n.$el.hasClass(t.exif)&&n.$el.addClass(t.exif),!n.isCreated||!n.isAttached||n.isLoading||n.isLoaded||n.isError||n.$el.hasClass(t.idle)||n.$el.addClass(t.idle),n.doShortPixel(),!0},create:function(){var e=this;return!e.isCreated&&w.string(e.href)&&w.string(e.src)&&w.number(e.width)&&w.number(e.height)&&(e.tmpl.trigger("create-item",[e]).isDefaultPrevented()||(e.isCreated=e.doCreateItem()),e.isCreated&&e.tmpl.trigger("created-item",[e])),e.isCreated},_setAttributes:function(t,n){Object.keys(n).forEach(function(e){w.empty(n[e])||t.setAttribute(e,w.string(n[e])?n[e]:JSON.stringify(n[e]))})},doShortPixel:function(){var e,t=this;function n(e,t,n){return"/"===t||"/"===n?"/":t}t.tmpl.opt.shortpixel&&!b.supportsWebP&&(t.href=t.href.replace(e=/([\/,+])to_webp([\/,+])/i,n),t.src=t.src.replace(e,n),t.srcset=t.srcset.replace(e,n))},doCreateItem:function(){var i,u,r=this,e=r.cls,t=r.attr,n=r.hasExif?e.exif:"",o=(r.isLoaded=!r.tmpl.opt.lazy,r.isPicture=0<r.sources.length,r.doShortPixel(),document.createElement("div")),n=(r._setAttributes(o,t.elem),o.className=[e.elem,r.getTypeClass(),n,r.isLoaded?e.loaded:e.idle].join(" "),document.createElement("figure")),s=(r._setAttributes(n,t.inner),n.className=e.inner,[e.anchor]),a=(r.noLightbox&&s.push(e.noLightbox),r.panelHide&&s.push(e.panelHide),document.createElement("a")),s=(r._setAttributes(a,t.anchor),r._setAttributes(a,{class:s.join(" "),href:r.href,"data-id":r.id,"data-type":r.type,"data-title":r.caption,"data-description":r.description,"data-tags":r.tags,"data-exif":r.exif,"data-product-id":r.productId}),w.string(r.placeholder)&&0!==r.placeholder.length||(r.placeholder=r.createPlaceholder(r.width,r.height)),document.createElement("img")),l=(r._setAttributes(s,t.image),{class:e.image,src:r.placeholder,width:r.width+"",height:r.height+"",title:r.title,alt:r.alt}),l=(r.isLoaded?(l.src=r.src,l.srcset=r.srcset):(l[r.tmpl.opt.src]=r.src,l[r.tmpl.opt.srcset]=r.srcset),r._setAttributes(s,l),r.isPicture&&(i=document.createElement("picture"),r._setAttributes(i,t.picture),r.sources.forEach(function(e){var t=document.createElement("source"),n={media:e.media,sizes:e.sizes,type:e.type};r.isLoaded?n.srcset=e.srcset:n[r.tmpl.opt.srcset]=e.srcset,r._setAttributes(t,n),i.appendChild(t)}),i.appendChild(s)),r.hasRibbon&&((u=document.createElement("div")).className=r.ribbon.type,(l=document.createElement("span")).innerHTML=r.ribbon.text,u.appendChild(l)),document.createElement("span")),h=(l.className=e.overlay,document.createElement("span")),p=(h.className=e.wrap,document.createElement("div")),d=(p.className=e.loader,document.createElement("figcaption")),f=(r._setAttributes(d,t.caption.elem),d.className=e.caption.elem,document.createElement("div")),c=(r._setAttributes(f,t.caption.inner),f.className=e.caption.inner,null),g=r.showCaptionTitle&&w.string(r.caption)&&0<r.caption.length,c=(g&&(c=document.createElement("div"),r._setAttributes(c,t.caption.title),c.className=e.caption.title,c.innerHTML=0<r.maxCaptionLength?x.trimTo(r.caption,r.maxCaptionLength):r.caption,f.appendChild(c)),null),m=r.showCaptionDescription&&w.string(r.description)&&0<r.description.length,v=(m&&(c=document.createElement("div"),r._setAttributes(c,t.caption.description),c.className=e.caption.description,c.innerHTML=0<r.maxDescriptionLength?x.trimTo(r.description,r.maxDescriptionLength):r.description,f.appendChild(c)),null),t=w.array(r.buttons)&&0<r.buttons.length;return t&&((v=document.createElement("div")).className=e.caption.buttons,_.each(r.buttons,function(e){var t;w.hash(e)&&w.string(e.text)&&((t=document.createElement("a")).innerHTML=e.text,w.string(e.url)&&0<e.url.length&&(t.href=e.url),w.string(e.rel)&&0<e.rel.length&&(t.rel=e.rel),w.string(e.target)&&0<e.target.length&&(t.target=e.target),w.string(e.classes)&&0<e.classes.length&&(t.className=e.classes),w.hash(e.attr)&&r._setAttributes(t,e.attr),v.appendChild(t))}),f.appendChild(v)),d.appendChild(f),r.isPicture?h.appendChild(i):h.appendChild(s),a.appendChild(l),a.appendChild(h),n.appendChild(a),(g||m||t)&&n.appendChild(d),r.hasRibbon&&o.appendChild(u),o.appendChild(n),o.appendChild(p),r.$el=y(o).data(b.DATA_ITEM,r),r.el=o,r.$inner=y(n),r.$anchor=y(a).on("click.foogallery",{self:r},r.onAnchorClick),r.$overlay=y(l),r.$wrap=y(h),r.isPicture?r.$image=y(i):r.$image=y(s),r.$caption=y(d).on("click.foogallery",{self:r},r.onCaptionClick),r.$loader=y(p),!0},append:function(){var e=this;return e.isCreated&&!e.isAttached&&(e.tmpl.trigger("append-item",[e]).isDefaultPrevented()||(e.tmpl.$el.append(e.$el.removeClass(e.cls.hidden)),e.isAttached=!0),e.isAttached&&(e.isLoaded||e.tmpl.items.observe(e),e.tmpl.trigger("appended-item",[e]))),e.isAttached},detach:function(){var e=this;return e.isCreated&&e.isAttached&&(e.tmpl.items.unobserve(e),e.tmpl.trigger("detach-item",[e]).isDefaultPrevented()||(e.$el.detach().removeClass(e.cls.hidden),e.isAttached=!1),e.isAttached||e.tmpl.trigger("detached-item",[e])),!e.isAttached},load:function(){var n=this;return w.promise(n._load)?n._load:n._load=y.Deferred(function(t){return n.isLoaded?t.resolve(n):n.isCreated&&n.isAttached?n.tmpl.trigger("load-item",[n]).isDefaultPrevented()?t.reject("default prevented"):(n.isLoading=!0,n.tmpl.items.unobserve(n),n.$el.removeClass(n.cls.idle).removeClass(n.cls.hidden).removeClass(n.cls.loaded).removeClass(n.cls.error).addClass(n.cls.loading),void n.loadIMG().then(function(){n.isLoading=!1,n.isLoaded=!0,n.$el.removeClass(n.cls.loading).addClass(n.cls.loaded),n.tmpl.trigger("loaded-item",[n]),t.resolve(n)},function(e){n.isLoading=!1,n.isError=!0,n.$el.removeClass(n.cls.loading).addClass(n.cls.error),n.tmpl.trigger("error-item",[n]),t.reject(e)})):t.reject("not created or attached")}).promise()},loadIMG:function(){var o=this;return new y.Deferred(function(e){var t=(o.isPicture?o.$image.find("img"):o.$image).get(0);if(!t)return e.reject("Unable to find img element.");var n=t.src,i=t.srcset,r=(t.onload=function(){t.onload=t.onerror=null,t.style.removeProperty("width"),t.style.removeProperty("height"),e.resolve(t)},t.onerror=function(){t.onload=t.onerror=null,w.empty(n)?t.removeAttribute("src"):t.src=n,w.empty(i)?t.removeAttribute("srcset"):t.srcset=i,e.reject(t)},o.isPicture&&o.$image.find("source").each(function(e,t){var n=t.getAttribute(o.tmpl.opt.srcset);w.empty(n)||(t.srcset=n)}),t.getBoundingClientRect());t.style.width=r.width,t.style.height=r.height,t.src=o.src,w.empty(o.srcset)||(t.srcset=o.srcset),t.complete&&t.onload()}).promise()},createPlaceholder:function(e,t){return w.number(e)&&w.number(t)?"data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22"+e+"%22%20height=%22"+t+"%22%20viewBox=%220%200%20"+e+"%20"+t+"%22%3E%3C/svg%3E":""},getTypeClass:function(){return this.cls.types[this.type]||""},scrollTo:function(e){var t;return this.isAttached&&((t=this.$el.get(0)).scrollIntoViewIfNeeded?t.scrollIntoViewIfNeeded():t.scrollIntoView("top"===e)),this},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:o.extend({},this.attr)}},onAnchorClick:function(e){var t=e.data.self;t.tmpl.trigger("anchor-click-item",[t]).isDefaultPrevented()?e.preventDefault():t.updateState()},onCaptionClick:function(e){var t=e.data.self;!t.tmpl.trigger("caption-click-item",[t]).isDefaultPrevented()&&0<t.$anchor.length&&!y(e.target).is("a[href],:input")&&t.$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(e){e.Image=e.Item.extend({}),e.template.configure("core",null,{item:{types:{image:"fg-type-image"}}}),e.components.register("image",e.Image)}((FooGallery.$,FooGallery),(FooGallery.utils,FooGallery.utils.is)),function(e,c,u){e.PagingFactory=e.Factory.extend({construct:function(){this.registered={}},register:function(e,t,n,i,r,o,s){t=this._super(e,t,s);return t&&((s=this.registered)[e].ctrl=c.fn(n)?n:null,s[e].opt=c.hash(i)?i:{},s[e].cls=c.hash(r)?r:{},s[e].il8n=c.hash(o)?o:{}),t},type:function(e){var t;return c.hash(e)&&c.hash(t=e.paging)&&c.string(t.type)&&this.contains(t.type)?t.type:null},merge:function(e){e=u.extend({},e);var t=this.type(e),n=this.registered,i=n.default.opt,r=n.default.cls,o=n.default.il8n,s=c.hash(e.paging)?e.paging:{},a=c.hash(e.cls)&&c.hash(e.cls.paging)?u.extend({},e.cls.paging):{},l=c.hash(e.il8n)&&c.hash(e.il8n.paging)?u.extend({},e.il8n.paging):{};return c.hash(e.cls)||(e.cls={}),c.hash(e.il8n)||(e.il8n={}),"default"!==t&&this.contains(t)?(e.paging=u.extend({},i,n[t].opt,s,{type:t}),e.cls=u.extend(e.cls,{paging:r},{paging:n[t].cls},{paging:a}),e.il8n=u.extend(e.il8n,{paging:o},{paging:n[t].il8n},{paging:l})):(e.paging=u.extend({},i,s,{type:t}),e.cls=u.extend(e.cls,{paging:r},{paging:a}),e.il8n=u.extend(e.il8n,{paging:o},{paging:l})),e},configure:function(e,t,n,i){var r;this.contains(e)&&(r=this.registered,u.extend(r[e].opt,t),u.extend(r[e].cls,n),u.extend(r[e].il8n,i))},hasCtrl:function(e){e=this.registered[e];return c.hash(e)&&c.fn(e.ctrl)},makeCtrl:function(e,t,n,i){e=this.registered[e];return c.hash(e)&&c.fn(e.ctrl)?new e.ctrl(t,n,i):null}}),e.paging=new e.PagingFactory}(FooGallery,FooGallery.utils.is,(FooGallery.utils.fn,FooGallery.utils.obj)),function(t,o,i,l){o.Paging=o.Component.extend({construct:function(e){var t=this;t._super(e),t.opt=t.tmpl.opt.paging,t.cls=t.tmpl.cls.paging,t.il8n=t.tmpl.il8n.paging,t.sel=t.tmpl.sel.paging,t.pushOrReplace=t.opt.pushOrReplace,t.type=t.opt.type,t.theme=t.opt.theme,t.size=t.opt.size,t.position=t.opt.position,t.scrollToTop=t.opt.scrollToTop,t.current=0,t.total=0,t.ctrls=[],t._pages=[]},init:function(){},fromHash:function(e){e=parseInt(e);return isNaN(e)?null:e},toHash:function(e){return l.number(e)&&0<e?e.toString():null},getState:function(){return this.isValid(this.current)?this.current:null},setState:function(e){this.rebuild();var t=!1;e.item&&!this.contains(e.page,e.item)&&(e.page=this.find(e.item),e.page=0!==e.page?e.page:1,t=!0),this.set(e.page,t,!1,!1)},destroy:function(){var e=this;e._pages.splice(0,e._pages.length),t.each(e.ctrls.splice(0,e.ctrls.length),function(e,t){t.destroy()}),e._super()},build:function(){var e=this,t=e.tmpl.items.available();e.total=0<e.size&&0<t.length?Math.ceil(t.length/e.size):1;for(var n,i,r=0;r<e.total;r++)e._pages.push(t.splice(0,e.size));1<e.total&&o.paging.hasCtrl(e.type)&&("both"!==(n=e.position)&&"top"!==n||(i=o.paging.makeCtrl(e.type,e.tmpl,e,"top")).create()&&(i.append(),e.ctrls.push(i)),"both"!==n&&"bottom"!==n||(i=o.paging.makeCtrl(e.type,e.tmpl,e,"bottom")).create()&&(i.append(),e.ctrls.push(i)))},rebuild:function(){var e=this;e.current=0,e.total=0,e._pages.splice(0,e._pages.length),t.each(e.ctrls.splice(0,e.ctrls.length),function(e,t){t.destroy()}),e.build()},all:function(){return this._pages.slice()},available:function(){return this.get(this.current)},controls:function(n){this.isValid(n)&&t.each(this.ctrls,function(e,t){t.update(n)})},isValid:function(e){return l.number(e)&&0<e&&e<=this.total},number:function(e){return this.isValid(e)?e:0===this.current?1:this.current},create:function(e,t){var n=this,i=(e=n.number(e))-1,r=n._pages[i],t=t?n.tmpl.items.all():n._pages.reduce(function(e,t,n){return n===i?e:e.concat(t)},n.tmpl.items.unavailable());n.current=e,n.tmpl.items.detach(t),n.tmpl.items.create(r,!0)},get:function(e){return this.isValid(e)?(e=this.number(e),this._pages[e-1]):[]},set:function(e,t,n,i){var r=this;if(r.isValid(e)){r.controls(e);var o,s,a=r.number(e);if(a!==r.current)return s=r.current,!r.tmpl.trigger("before-page-change",[r.current,a,e=function(){var e;n=!l.boolean(n)||n,i=!!l.boolean(i)&&i,n&&1===r.current&&!r.tmpl.state.exists()&&(o=r.tmpl.state.get(),r.tmpl.state.update(o,r.pushOrReplace)),r.create(a,i),n&&(o=r.tmpl.state.get(),r.tmpl.state.update(o,r.pushOrReplace)),r.tmpl.trigger("page-change",[r.current,s,i]),r.scrollToTop&&l.boolean(t)&&t&&(0<(e=r.get(r.current)).length&&e[0].scrollTo("top")),r.tmpl.trigger("after-page-change",[r.current,s,i])},i]).isDefaultPrevented()&&(e(),!0)}return!1},find:function(e){for(var t=0,n=this._pages.length;t<n;t++)if(-1!==i.inArray(e,this._pages[t]))return t+1;return 0},contains:function(e,t){e=this.get(e);return-1!==i.inArray(t,e)},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(e){this.set(e,!0)}}),o.PagingControl=o.Component.extend({construct:function(e,t,n){var i=this;i._super(e),i.pages=t,i.position=n,i.$container=null,i._containerExisted=!1,i._placeholderClasses=[]},create:function(){var n=this;return n.$container=t("#"+n.tmpl.id+"_paging-"+n.position),0<n.$container.length?(n._containerExisted=!0,n.$container.removeClass(function(e,t){return n._placeholderClasses=t.match(/(^|\s)fg-ph-\S+/g)||[],n._placeholderClasses.join(" ")}).addClass([n.pages.cls.container,n.pages.theme].join(" "))):n.$container=t("<nav/>",{class:[n.pages.cls.container,n.pages.theme].join(" ")}),!0},destroy:function(){var e=this;e._containerExisted?e.$container.empty().removeClass().addClass(e._placeholderClasses.join(" ")):e.$container.remove(),e.$container=null},append:function(){var e=this;e._containerExisted||("top"===e.position?e.$container.insertBefore(e.tmpl.$el):e.$container.insertAfter(e.tmpl.$el))},update:function(e){}}),o.paging.register("default",o.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(l,e,a){e.Dots=e.Paging.extend({}),e.DotsControl=e.PagingControl.extend({construct:function(e,t,n){this._super(e,t,n),this.$list=null,this.$items=null},create:function(){var e=this;if(e._super()){for(var t,n=e.pages.cls,i=e.pages.il8n,r=[],o=l("<ul/>",{class:n.list}),s=0,a=e.pages.total;s<a;s++)r.push(t=e.createItem(s+1,i.page)),o.append(t);return e.$list=o,e.$items=l(l.map(r,function(e){return e.get()})),e.$container.append(o),!0}return!1},destroy:function(){var e=this,t=e.pages.sel;e.$list.find(t.link).off("click.foogallery",e.onLinkClick),e.$list=l(),e.$items=l(),e._super()},update:function(e){this.setSelected(e-1)},setSelected:function(e){var t=this,n=t.pages.cls,r=t.pages.il8n,o=t.pages.sel;t.$items.filter(o.selected).removeClass(n.selected).each(function(e,t){var t=l(t),n=t.data("label"),t=t.find(o.reader);a.string(n)&&0!==t.length&&t.html(n)}),t.$items.eq(e).addClass(n.selected).each(function(e,t){var t=l(t),n=t.find(o.reader),i=n.html();a.string(i)&&0!==n.length&&(t.data("label",i),n.html(r.current))})},createItem:function(e,t,n,i,r){n=a.string(n)?n:e,t=a.string(t)?t:"";var o=this.pages.opt,s=this.pages.cls,n=l("<a/>",{class:s.link,href:"#page-"+e}).html(n).on("click.foogallery",{self:this,page:e},this.onLinkClick),e=(a.empty(t)||n.attr("title",t.replace(/\{PAGE}/g,e).replace(/\{LIMIT}/g,o.limit+"")),r=a.string(r)?r:t,a.empty(r)||n.prepend(l("<span/>",{class:s.reader,text:r.replace(/\{PAGE}/g,"").replace(/\{LIMIT}/g,o.limit+"")})),l("<li/>",{class:s.item}).append(n));return i=a.string(i)?i:"",a.empty(i)||e.addClass(i),e},onLinkClick:function(e){e.preventDefault();var t=e.data.self,e=e.data.page,n=t.pages.sel;l(this).closest(n.item).is(n.disabled)||t.pages.set(e,!0)}}),e.paging.register("dots",e.Dots,e.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(e){e.DefaultTemplate=e.Template.extend({}),e.template.register("default",e.DefaultTemplate,null,{container:"foogallery fg-default"})}((FooGallery.$,FooGallery),FooGallery.utils),function(e){e.MasonryTemplate=e.Template.extend({construct:function(e,t){var n=this;n._super(e,t),n.masonry=null,n.on({"pre-init":n.onPreInit,destroyed:n.onDestroyed,"appended-items":n.onAppendedItems,"detach-item":n.onDetachItem,"layout after-filter-change":n.onLayoutRequired,"page-change":n.onPageChange},n)},onPreInit:function(){var e=this,t=e.sel,n=e.$el.hasClass("fg-fixed");e.template.isFitWidth=n,e.template.percentPosition=!n,e.template.transitionDuration=0,e.template.itemSelector=t.item.elem,n||(e.template.gutter=t.gutterWidth,e.template.columnWidth=t.columnWidth),e.masonry=new Masonry(e.el,e.template)},onDestroyed:function(){this.masonry instanceof Masonry&&this.masonry.destroy()},onLayoutRequired:function(){this.masonry.layout()},onPageChange:function(e,t,n,i){i||this.masonry.layout()},onAppendedItems:function(e,t){t=t.map(function(e){return e.el}),t=this.masonry.addItems(t);this.masonry.layoutItems(t,!0)},onDetachItem:function(e,t){e.isDefaultPrevented()||(e.preventDefault(),this.masonry.remove(t.el),t.$el.removeClass(this.cls.hidden),t.isAttached=!1)}}),e.template.register("masonry",e.MasonryTemplate,{template:{}},{container:"foogallery fg-masonry",columnWidth:"fg-column-width",gutterWidth:"fg-gutter-width"})}((FooGallery.$,FooGallery),(FooGallery.utils,FooGallery.utils.is)),function(i,r,e,o){r.Justified=e.Class.extend({construct:function(e,t){var n=this;n.tmpl=e,n.$el=e.$el,n.options=i.extend(!0,{},r.Justified.defaults,t),n._items=[],n.maxRowHeight=0,n.borderSize=0,n.align=-1!==["left","center","right"].indexOf(n.options.align)?n.options.align:"center"},init:function(){var e=this;e.maxRowHeight=e.getMaxRowHeight(e.options.maxRowHeight,e.options.rowHeight),e.borderSize=e.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(e,t){var n;return o.string(e)?(n=parseInt(e),isNaN(n)?t:n<=0?1/0:-1!==e.indexOf("%")?t*(n/100):n):o.number(e)?e<=0?1/0:e:t},layout:function(e){var n,i=this;0<(e=!o.number(e)?i.$el.width():e)&&(0!==(n=i.createRows(e)).height&&0<n.rows.length&&(i.$el.height(n.height),n.rows.forEach(function(e,t){i.render(e,t===n.rows.length-1)})))},render:function(t,e){var n=this,i=!e&&"justify"!==n.options.lastRow;t.items.forEach(function(e){e.elem&&(t.visible?(e.elem.style.setProperty("position","absolute"),e.elem.style.setProperty("width",e.width+"px"),e.elem.style.setProperty("height",e.height+"px"),e.elem.style.setProperty("top",e.top+"px"),e.elem.style.setProperty("left",e.left+"px"),e.elem.style.setProperty("margin","0"),e.elem.style.removeProperty("display"),0<n.maxRowHeight&&i?e.elem.style.setProperty("max-height",n.maxRowHeight+2*n.borderSize+"px"):e.elem.style.removeProperty("max-height"),e.elem.classList.contains("fg-positioned")||e.elem.classList.add("fg-positioned")):e.elem.style.setProperty("display","none"))})},justify:function(n,i,e,t){var r=this,o=r.options.margins,s=o*(n.items.length-1),e=e-s,a=n.width-s,l=e/a,c=(n.width=a*l,n.height=n.height*l,n.height>t+2*r.borderSize&&(a=(t+2*r.borderSize)/n.height,n.width=n.width*a,n.height=n.height*a),n.top=i,n.left=0,"left"!==r.align&&n.width<e&&("right"===r.align?n.left=e-n.width:n.left=(e-n.width)/2),n.width+=s,n.left);return n.items.forEach(function(e,t){0<t&&(c+=o),e.left=c,e.top=i;t=n.height/e.height;e.width=e.width*t,e.height=e.height*t,c+=e.width}),n.height},createRows:function(o){var s=this,a=s.options.margins,i=s.tmpl.getAvailable(),l=[],r=-1;function p(){return{index:++r,visible:!0,width:0,height:s.options.rowHeight+2*s.borderSize,top:0,left:0,items:[]}}var c=p(),u=0,h=0;if(i.forEach(function(e){r=c.height,t=e.width,(n=e.height)!==r&&(n*=i=r/n,t*=i),i=s.maxRowHeight/r;var t,n,i,r={__item:e,elem:e.el,width:t,height:n,maxWidth:t*i,maxHeight:n*i,top:0,left:0};c.width+r.width>o&&0<c.items.length&&(0<l.length&&(u+=a),e=s.justify(c,u,o,s.maxRowHeight),h<e&&(h=e),u+=e,l.push(c),c=p()),0<c.items.length&&(c.width+=a),c.width+=r.width,c.items.push(r)}),0<c.items.length){var e=u+a;switch(s.options.lastRow){case"smart":var t,d,n=s.justify(c,e,o,s.maxRowHeight);0!==h&&h<n&&(t=h/n,d=c.width*t/o,(t<.9||d<.9)&&(n=s.justify(c,e,o,h-2*s.borderSize)));break;case"justify":n=s.justify(c,e,o,99999);break;case"hide":n=s.justify(c,e,o,s.maxRowHeight),c.width<o&&(c.visible=!1)}c.visible&&(u+=n+a),l.push(c)}return{height:u,rows:l}}}),r.Justified.defaults={rowHeight:150,maxRowHeight:"200%",margins:0,align:"center",lastRow:"smart"}}(FooGallery.$,FooGallery,FooGallery.utils,FooGallery.utils.is),function(e){e.JustifiedTemplate=e.Template.extend({construct:function(e,t){var n=this;n._super(e,t),n.justified=null,n.on({"pre-init":n.onPreInit,init:n.onInit,destroyed:n.onDestroyed,"layout after-filter-change":n.onLayoutRequired,"page-change":n.onPageChange},n)},onPreInit:function(){this.justified=new e.Justified(this,this.template)},onInit:function(){this.justified.init()},onDestroyed:function(){this.justified instanceof e.Justified&&this.justified.destroy()},onLayoutRequired:function(){this.justified.layout(this.lastWidth)},onPageChange:function(e,t,n,i){i||this.justified.layout(this.lastWidth)}}),e.template.register("justified",e.JustifiedTemplate,null,{container:"foogallery fg-justified"})}((FooGallery.$,FooGallery)),function(e){e.PortfolioTemplate=e.Template.extend({}),e.template.register("simple_portfolio",e.PortfolioTemplate,{},{container:"foogallery fg-simple_portfolio"})}((FooGallery.$,FooGallery),(FooGallery.utils,FooGallery.utils.is,FooGallery.utils.fn)),function(i,e,r){e.ImageViewerTemplate=e.Template.extend({construct:function(e,t){var n=this;n._super(r.extend({},e,{paging:{pushOrReplace:"replace",theme:"fg-light",type:"default",size:1,position:"none",scrollToTop:!1}}),t),n.$inner=i(),n.$current=i(),n.$total=i(),n.$prev=i(),n.$next=i(),n.on({"pre-init":n.onPreInit,init:n.onInit,destroy:n.onDestroy,"append-item":n.onAppendItem,"after-page-change":n.onAfterPageChange,"after-filter-change":n.onAfterFilterChange},n)},createChildren:function(){var e=this;return i("<div/>",{class:e.cls.inner}).append(i("<div/>",{class:e.cls.innerContainer}),i("<div/>",{class:e.cls.controls}).append(i("<div/>",{class:e.cls.prev}).append(i("<span/>",{text:e.il8n.prev})),i("<label/>",{class:e.cls.count,text:e.il8n.count}).prepend(i("<span/>",{class:e.cls.countCurrent,text:"0"})).append(i("<span/>",{class:e.cls.countTotal,text:"0"})),i("<div/>",{class:e.cls.next}).append(i("<span/>",{text:e.il8n.next}))))},destroyChildren:function(){this.$el.find(this.sel.inner).remove()},onPreInit:function(e){var t=this;t.$inner=t.$el.find(t.sel.innerContainer),t.$current=t.$el.find(t.sel.countCurrent),t.$total=t.$el.find(t.sel.countTotal),t.$prev=t.$el.find(t.sel.prev),t.$next=t.$el.find(t.sel.next)},onInit:function(e){var t=this;t.template.attachFooBox&&t.$el.on("foobox.previous",{self:t},t.onFooBoxPrev).on("foobox.next",{self:t},t.onFooBoxNext),t.$prev.on("click",{self:t},t.onPrevClick),t.$next.on("click",{self:t},t.onNextClick)},onDestroy:function(e){var t=this;t.template.attachFooBox&&t.$el.off({"foobox.previous":t.onFooBoxPrev,"foobox.next":t.onFooBoxNext}),t.$prev.off("click",t.onPrevClick),t.$next.off("click",t.onNextClick)},onAppendItem:function(e,t){e.preventDefault(),this.$inner.append(t.$el),t.isAttached=!0},onAfterPageChange:function(e,t,n,i){i||this.update()},onAfterFilterChange:function(e){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(e){e.data.self.prev()},onFooBoxNext:function(e){e.data.self.next()},onPrevClick:function(e){e.preventDefault(),e.stopPropagation(),e.data.self.prev()},onNextClick:function(e){e.preventDefault(),e.stopPropagation(),e.data.self.next()}}),e.template.register("image-viewer",e.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(e,n){e.ThumbnailTemplate=e.Template.extend({construct:function(e,t){this._super(n.extend({},e,{filtering:{type:"none"},paging:{pushOrReplace:"replace",theme:"fg-light",type:"default",size:1,position:"none",scrollToTop:!1}}),t)}}),e.template.register("thumbnail",e.ThumbnailTemplate,null,{container:"foogallery fg-thumbnail"})}((FooGallery.$,FooGallery),FooGallery.utils.obj),function(i,o,e,l,r,s){o.StackAlbum=e.Class.extend({construct:function(e,t){var n=this;n.$el=l.jq(e)?e:i(e),n.el=n.$el.get(0),n.opt=r.extend({},o.StackAlbum.defaults,t,n.$el.data("foogallery")),n.$back=n.$el.find(".fg-header-back"),n.$active=n.$el.find(".fg-header-active"),n.$piles=n.$el.find(".fg-piles"),n.piles=n.$piles.find(".fg-pile").map(function(e,t){return new o.StackAlbum.Pile(n,t,{index:e})}).get(),n.ignoreResize=!1,n.robserver=new ResizeObserver(function(){!n.ignoreResize&&n.$el.is(":visible")&&n.layout(!0)})},init:function(){var e=this;e.piles.forEach(function(e){e.init()}),e.$back.on("click.foogallery",{self:e},e.onBackClick),e.robserver.observe(e.el)},destroy:function(){this.robserver.disconnect(),this.$back.off(".foogallery"),this.piles.forEach(function(e){e.destroy()})},getLayoutInfo:function(){var e=this,t=e.opt.gutter+2*e.opt.border;return{maxWidth:e.$el.width(),space:t,halfSpace:t/2,itemWidth:e.opt.itemWidth,itemHeight:e.opt.itemHeight,itemOuterWidth:e.opt.itemWidth+2*e.opt.border,itemOuterHeight:e.opt.itemHeight+2*e.opt.border,blockWidth:e.opt.itemWidth+t,blockHeight:e.opt.itemHeight+t,border:e.opt.border,doubleBorder:2*e.opt.border,gutter:e.opt.gutter,halfGutter:e.opt.gutter/2}},layout:function(e){var t,n=this;e&&(n.$el.addClass("fg-disable-transitions"),n.$el.prop("offsetWidth")),n.hasActive?(t=n.activePile.layout(),n.activePile.setPosition(0,0,t.width,t.height)):t=n.layoutPiles(),n.$piles.css({width:t.width+"px",height:t.height+"px"}),e&&n.$el.removeClass("fg-disable-transitions")},layoutPiles:function(i){var r=this.getLayoutInfo(),o=0,s=1,a=0;return i=l.fn(i)?i:function(){},this.piles.forEach(function(e){var t=o,n=((o+=r.blockWidth)>r.maxWidth&&(t=0,o=r.blockWidth,s++),r.blockHeight*(s-1));i(e,n,t,r.blockWidth,r.blockHeight),e.setPosition(n,t,r.blockWidth,r.blockHeight),a<o&&(a=o)}),{width:a,height:r.blockHeight*s}},setActive:function(t){var n,i=this,e=i.activePile,r=e instanceof o.StackAlbum.Pile;t=t instanceof o.StackAlbum.Pile?t:null,i.activePile=t,i.hasActive=null!==t,r&&e.collapse(),i.ignoreResize=!0,i.hasActive?(i.piles.forEach(function(e){e!==t&&e.hide(i.activePile)}),n=i.activePile.expand(),i.$active.text(t.title),i.$el.addClass("fg-has-active")):(n=i.layoutPiles(function(e){e.show()}),i.$el.removeClass("fg-has-active")),s.start(i.$piles,function(e){e.css({width:n.width+"px",height:n.height+"px"})},null,350).then(function(){i.ignoreResize=!1})},onBackClick:function(e){e.preventDefault(),e.stopPropagation(),e.data.self.setActive(null)}}),o.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(r,o,e,s,a){o.StackAlbum.Pile=e.Class.extend({construct:function(e,t,n){var i=this;i.album=e,i.$el=s.jq(t)?t:r(t),i.opt=a.extend({},o.StackAlbum.Pile.defaults,n,i.$el.data()),i.title=i.opt.title,i.items=i.$el.find(".fg-pile-item").map(function(e,t){return new o.StackAlbum.Item(i,t,{index:e})}).get(),i.$cover=r("<div/>",{class:"fg-pile-cover"}).append(r("<div/>",{class:"fg-pile-cover-content"}).append(r("<span/>",{class:"fg-pile-cover-title",text:i.opt.title}),r("<span/>",{class:"fg-pile-cover-count",text:i.items.length}))),i.top=0,i.left=0,i.isExpanded=!1},init:function(){var n=this,i=n.album.opt,r=n.getAngles(i.angleStep),o=i.randomAngle?n.randomAngle(r):i.angleStep;n.$cover.on("click.foogallery",{self:n},n.onCoverClick),n.items.forEach(function(e,t){e.init(),3<t||(0===t?(e.$el.addClass("fg-has-cover").append(n.$cover),e.load()):(t%2==0?e.setAngle(-o):e.setAngle(o),i.randomAngle?o=n.randomAngle(r):o+=i.angleStep))})},destroy:function(){this.$cover.remove(),this.items.forEach(function(e,t){0===t&&e.$el.removeClass("fg-has-cover"),e.destroy()})},getAngles:function(e){for(var t=[],n=1;n<=3;n++)t.push(n*e);return t},randomAngle:function(e){var t=e.length,t=Math.floor(Math.random()*+t+0),e=e.splice(t,1);return 1===e.length?e[0]:0},setPosition:function(e,t,n,i){this.top=e,this.left=t,s.number(n)&&s.number(i)?this.$el.css({top:e+"px",left:t+"px",width:n+"px",height:i+"px"}):this.$el.css({top:e+"px",left:t+"px"})},layout:function(){var i=this.album.getLayoutInfo(),r=0,o=1,s=!1,a=0;return this.items.forEach(function(e){(r+=i.halfGutter)>i.maxWidth&&(r=i.halfGutter,o++,s=!0);var t=r,n=(r+=i.itemOuterWidth+i.halfGutter,!s&&r>i.maxWidth&&(t=i.halfGutter,r=i.blockWidth,o++),i.blockHeight*(o-1)+i.halfGutter);s=!1,e.setPosition(n,t,i.itemOuterWidth,i.itemOuterHeight),e.isLoaded||e.load(),a<r&&(a=r)}),{width:a,height:i.blockHeight*o}},expand:function(){var e;return this.$el.removeClass("fg-collapsed").addClass("fg-expanded"),e=this.layout(),this.setPosition(0,0,e.width,e.height),this.isExpanded=!0,e},collapse:function(){var e=this,t=e.album.getLayoutInfo(),n=(e.$el.removeClass("fg-expanded").addClass("fg-collapsed"),e.items.forEach(function(e){e.setPosition(t.halfGutter,t.halfGutter,t.itemOuterWidth,t.itemOuterHeight)}),{width:t.blockWidth,height:t.blockHeight});return e.setPosition(0,0,n.width,n.height),e.isExpanded=!1,n},show:function(){this.$el.removeClass("fg-hidden fg-expanded fg-collapsed")},hide:function(e){e instanceof o.StackAlbum.Pile&&this.setPosition(e.top,e.left),this.$el.addClass("fg-hidden")},onCoverClick:function(e){e.preventDefault(),e.stopPropagation();e=e.data.self;e.album.setActive(e)}}),o.StackAlbum.Pile.defaults={index:-1,title:null}}(FooGallery.$,FooGallery,FooGallery.utils,FooGallery.utils.is,FooGallery.utils.obj),function(r,o,e,s,a){o.StackAlbum.Item=e.Class.extend({construct:function(e,t,n){var i=this;i.$el=s.jq(t)?t:r(t),i.opt=a.extend({},o.StackAlbum.Item.defaults,n,i.$el.data()),i.$thumb=i.$el.find(".fg-pile-item-thumb"),i.$image=i.$el.find(".fg-pile-item-image"),i.isLoaded=!1,i.isLoading=!1,i._loading=null},init:function(){},destroy:function(){},setAngle:function(e){this.$el.css({transform:"rotate("+e+"deg)"})},setPosition:function(e,t,n,i){this.$el.css({top:e+"px",left:t+"px",width:n+"px",height:i+"px"})},load:function(){var t=this;return s.promise(t._loading)?t._loading:t._loading=r.Deferred(function(e){t.$el.addClass("fg-loading"),t.isLoading=!0,t.$image.on({"load.foogallery":function(){t.$image.off(".foogallery"),t.$el.removeClass("fg-loading"),t.isLoading=!1,t.isLoaded=!0,e.resolve()},"error.foogallery":function(){t.$image.off(".foogallery"),t.$el.removeClass("fg-loading"),t.isLoading=!1,t.isLoaded=!0,e.reject()}}),t.$image.prop("src",t.$image.attr(t.opt.src)).prop("srcset",t.$image.attr(t.opt.srcset))}).promise()}}),o.StackAlbum.Item.defaults={index:-1,src:"data-src-fg",srcset:"data-srcset-fg"}}(FooGallery.$,FooGallery,FooGallery.utils,FooGallery.utils.is,FooGallery.utils.obj),function(i,r,e){i.fn.foogalleryStackAlbum=function(e){return this.each(function(e,t){var t=i(t),n=t.data("__FooGalleryAlbum__");n instanceof r.StackAlbum&&n.destroy(),(n=new r.StackAlbum(t)).init(),t.data("__FooGalleryAlbum__",n)})},r.loadStackAlbums=r.reloadStackAlbums=function(){i(function(){i(".foogallery-stack-album:not(.fg-ready)").foogalleryStackAlbum()}),e.ready(function(){i(".foogallery-stack-album.fg-ready").foogalleryStackAlbum()})},r.loadStackAlbums()}(FooGallery.$,FooGallery,FooGallery.utils),function(u,e,o,d){o.Progress=o.EventClass.extend({construct:function(e){var t=this;t._super(),t.percent=0,t.tickRate=d.number(e)?e:100,t.isPaused=!1,t.isActive=!1,t._intervalId=null,t._total=0,t._target=null,t.onTick=t.onTick.bind(t)},destroy:function(){this._reset(),this._super()},_reset:function(){var e=this;null!==e._intervalId&&clearInterval(e._intervalId),e.percent=0,e._total=0,e._intervalId=null,e._target=null,e.isActive=!1,e.isPaused=!1},stop:function(){this.isActive&&(this._reset(),this.trigger("stop"))},start:function(e){var t=this;t.stop(),!t.isActive&&d.number(e)&&0<e&&(t._total=1e3*e,t._target=Date.now()+t._total,t._intervalId=setInterval(t.onTick,t.tickRate),t.isActive=!0,t.trigger("start"))},pause:function(){var e=this;e.isActive&&!e.isPaused&&e.percent<100&&(null!==e._intervalId&&clearInterval(e._intervalId),e._intervalId=null,e._target=null,e.isPaused=!0,e.trigger("pause"))},resume:function(){var e,t=this;t.isActive&&t.isPaused?(e=t._total-t._total*t.percent/100,t._target=Date.now()+e,t._intervalId=setInterval(t.onTick,t.tickRate),t.isPaused=!1,t.trigger("resume")):0<t._total&&t.start(t._total/1e3)},onTick:function(){var e=this,t=e._total-Math.max(e._target-Date.now(),0);e.percent=Math.min(t/e._total*100,100),e.trigger("tick",[e.percent]),100<=e.percent&&(null!==e._intervalId&&clearInterval(e._intervalId),e._intervalId=null,e._target=null,e.isActive=!1,e.trigger("complete"))}}),u.Carousel=o.Class.extend({construct:function(e,t,n,i){var r=this;r.tmpl=e,r.el=e.el,r.opt=t,r.cls=n,r.sel=i,r.elem={inner:null,center:null,bottom:null,prev:null,next:null,progress:null},r.activeItem=null,r._itemWidth=0,r._leftExclude=[r.sel.activeItem,r.sel.nextItem].join(","),r._rightExclude=[r.sel.activeItem,r.sel.prevItem].join(","),r._centerListeners=new o.DOMEventListeners,r._listeners=new o.DOMEventListeners,r._progress=new o.Progress,r._canHover=window.matchMedia("(hover: hover)").matches,r.cache=new Map,r.timeouts=new o.Timeouts,r.interacted=!1,r.isRTL=!1,r._firstLayout=!0},getScreenX:function(e,t,n){return n/(n+t)*e},getVectorX:function(e,t,n){return(n+t)/n*e},getSequentialZFromScale:function(e,t,n){return n*(t*(e+1))},scaleToZ:function(e,t,n){return e*(1-t/(n+t))},pause:function(){this._progress.pause()},resume:function(){this._progress.resume()},start:function(){"disable"===this.opt.autoplay.interaction&&this.interacted||this._progress.start(this.opt.autoplay.time)},stop:function(){this._progress.stop()},init:function(){var e=this;e.isRTL="rtl"===window.getComputedStyle(e.el).direction,e.elem={inner:e.el.querySelector(e.sel.inner),center:e.el.querySelector(e.sel.center),bottom:e.el.querySelector(e.sel.bottom),prev:e.el.querySelector(e.sel.prev),next:e.el.querySelector(e.sel.next),progress:e.el.querySelector(e.sel.progress)},150!==e.opt.perspective&&e.el.style.setProperty("--fg-carousel-perspective",e.opt.perspective+"px")},postInit:function(){var e=this;e.activeItem=e.tmpl.items.first(),e.initNavigation(),e.initPagination(),e.initSwipe(),e.initAutoplay()},initNavigation:function(){const t=this;t._listeners.add(t.elem.prev,"click",function(e){e.preventDefault(),t.interacted=!0,t.previous()}),"button"!==t.elem.prev.type&&(t.elem.prev.type="button"),t.elem.prev.appendChild(e.element("arrow-left")),t._listeners.add(t.elem.next,"click",function(e){e.preventDefault(),t.interacted=!0,t.next()}),"button"!==t.elem.next.type&&(t.elem.next.type="button"),t.elem.next.appendChild(e.element("arrow-right"))},initPagination:function(){const n=this;var e=n.tmpl.items.count();for(let t=0;t<e;t++){const i=document.createElement("button");i.type="button",i.classList.add(n.cls.bullet),0===t&&i.classList.add(n.cls.activeBullet),n._listeners.add(i,"click",function(e){e.preventDefault(),n.interacted=!0,n.goto(n.tmpl.items.get(t))}),n.elem.bottom.appendChild(i)}},initSwipe:function(){const t=this;let n=0,i;t._listeners.add(t.elem.inner,"touchstart",function(e){t.interacted=!0,n=e.changedTouches[0].screenX},{passive:!0}),t._listeners.add(t.elem.inner,"touchend",function(e){i=e.changedTouches[0].screenX,i<n?t.next():t.previous(),n=0},{passive:!0})},initAutoplay:function(){const n=this,t=n.opt.autoplay;if(!(t.time<=0)&&n.elem.progress instanceof HTMLElement){const i=n.elem.progress.style;function e(e,t){o.cancelFrame(null),o.requestFrame(function(){i.setProperty("width",e+"%"),t?i.setProperty("transition-duration","0s"):i.setProperty("transition-duration",n._progress.tickRate+"ms")})}n._progress.on({"start stop":function(){e(0,!0)},"pause resume":function(){e(n._progress.percent,!0)},tick:function(){e(n._progress.percent,!1)},complete:function(){n.next(function(){n._progress.start(t.time)})}}),"pause"===t.interaction&&(n._canHover?(n._listeners.add(n.el,"mouseenter",function(e){n._progress.pause()},{passive:!0}),n._listeners.add(n.el,"mouseleave",function(e){n._progress.resume()},{passive:!0})):(n._listeners.add(n.el,"touchstart",function(e){n.timeouts.delete("autoplay"),n._progress.pause()},{passive:!0}),n._listeners.add(n.el,"touchend",function(e){n.timeouts.set("autoplay",function(){n._progress.resume()},1e3*t.time)},{passive:!0}))),n._progress.start(t.time)}},getFirst:function(){return this.tmpl.items.first()},getNext:function(e){return this.tmpl.items.next(e instanceof u.Item?e:this.activeItem,null,!0)},getPrev:function(e){return this.tmpl.items.prev(e instanceof u.Item?e:this.activeItem,null,!0)},goto:function(e,t){const n=this;if(e instanceof u.Item){const i=n.opt.autoplay,r=!n._canHover&&n.timeouts.has("autoplay"),o=(n.timeouts.delete("autoplay"),n.timeouts.delete("navigation"),n._progress.isPaused);n._progress.isActive&&n._progress.stop(),n.activeItem=e,n.layout(),n.timeouts.set("navigation",function(){0<i.time&&("pause"===i.interaction||"disable"===i.interaction&&!n.interacted)&&(n._progress.start(i.time),o&&n._progress.pause(),r&&n.timeouts.set("autoplay",function(){n._progress.resume()},1e3*i.time)),d.fn(t)&&t.call(n)},n.opt.speed)}},next:function(e){this.goto(this.getNext(),e)},previous:function(e){this.goto(this.getPrev(),e)},destroy:function(){var e=this;e.cache.clear(),e.timeouts.clear(),e._listeners.clear(),e._centerListeners.clear(),150!==e.opt.perspective&&e.el.style.removeProperty("--fg-carousel-perspective")},getSize:function(e,t){var n=e.getBoundingClientRect();const i={width:n.width,height:n.height};return t&&(n=getComputedStyle(e),i.width-=parseFloat(n.paddingLeft)+parseFloat(n.paddingRight)+parseFloat(n.borderLeftWidth)+parseFloat(n.borderRightWidth),i.height-=parseFloat(n.paddingTop)+parseFloat(n.paddingBottom)+parseFloat(n.borderTopWidth)+parseFloat(n.borderBottomWidth)),i},layout:function(e){const t=this;if(null===t.activeItem&&(t.activeItem=t.tmpl.items.first()),!d.number(e)&&t.cache.has("width")&&(e=t.cache.get("width")),d.number(e)){const n=t.getLayout(e);null!==t._layoutFrame&&o.cancelFrame(t._layoutFrame),t._layoutFrame=o.requestFrame(function(){t._layoutFrame=null,t.renderActive(n)&&(t.renderSide("left",t.sel.prevItem,t._leftExclude,t.cls.prevItem,n),t.renderSide("right",t.sel.nextItem,t._rightExclude,t.cls.nextItem,n),t._firstLayout=!1)})}},getLayout:function(e){var t=this;if(t.cache.has("layout")&&t.cache.get("width")===e)return t.cache.get("layout");var n=t.getSize(t.elem.center).width,i=t.getSize(t.elem.inner,!0).width/2+n/2,n=t.calculate(n,i);return t.cache.set("width",e),t.cache.set("layout",n),n},round:function(e,t){t=Math.pow(10,t||0);return Math.round(e*t)/t},getShowPerSide:function(){var e=this.tmpl.items.count();let t=this.opt.maxItems;return("auto"===t||t<=0)&&(t=e%2==0?e-1:e),t%2==0&&--t,t<1&&(t=1),t>e&&(t=e%2==0?e-1:e),(t-1)/2},calculate:function(t,n,i,r){var o=this;d.number(i)||(i=o.opt.gutter.max);const s={zIndex:(r=!d.number(r)?o.getShowPerSide():r)+10,gutter:i,perSide:r,side:[]};let a=t,h=s.zIndex-1;for(let e=0;e<r;e++,h--){var l=o.getSequentialZFromScale(e,o.opt.scale,o.opt.perspective),c=o.scaleToZ(t,l,o.opt.perspective),p=(t-c)/2,u=(a-=p,"%"===o.opt.gutter.unit?t*Math.abs(i/100):Math.abs(i)),u="%"===o.opt.gutter.unit?o.scaleToZ(u,l,o.opt.perspective):u;if(0<i?a+=u:a-=u,a+c+p>n)return i-1<o.opt.gutter.min?o.calculate(t,n,o.opt.gutter.max,r-1):o.calculate(t,n,i-1,r);u=o.getVectorX(a,l,o.opt.perspective);a+=c+p,s.side.push({x:u,z:l,zIndex:h})}return s},cleanup:function(e,t,n){const i=this,r=d.string(n);Array.from(i.el.querySelectorAll(e)).forEach(function(e){e.classList.remove(t),i.opt.centerOnClick&&i._centerListeners.remove(e,"click"),r&&e.matches(n)||(e.style.removeProperty("transition-duration"),e.style.removeProperty("transform"),e.style.removeProperty("z-index"))})},renderActive:function(e){const n=this;if(!(n.activeItem instanceof u.Item))return!1;const t=n.activeItem.el,i=(n.cleanup(n.sel.activeItem,n.cls.activeItem),t.classList.add(n.cls.activeItem),t.style.setProperty("transition-duration",n.opt.speed+"ms"),t.style.setProperty("z-index",e.zIndex),t.style.removeProperty("transform"),n.tmpl.items.indexOf(n.activeItem));return Array.from(n.el.querySelectorAll(n.sel.bullet)).forEach(function(e,t){e.classList.remove(n.cls.activeBullet),t===i&&e.classList.add(n.cls.activeBullet)}),!0},renderSide:function(n,e,i,r,o){const s=this;if(-1!==["left","right"].indexOf(n)){s.cleanup(e,r,i);let t=s.activeItem;for(let e=0;e<o.side.length;e++){var a=o.side[e];const c="left"===n?s.getPrev(t):s.getNext(t);if(!(c instanceof u.Item))break;var l="translate3d("+("left"===n&&!s.isRTL||"right"===n&&s.isRTL?"-":"")+a.x+"px, 0,-"+a.z+"px)";c.el.classList.add(r),c.isLoaded||(c.el.style.setProperty("transition-duration","0ms"),c.el.style.setProperty("transform","translate3d(0,0,-"+s.opt.perspective+"px)"),c.el.offsetHeight),c.el.style.setProperty("transition-duration",(s._firstLayout?0:s.opt.speed)+"ms"),c.el.style.setProperty("transform",l),c.el.style.setProperty("z-index",a.zIndex),s.opt.centerOnClick&&s._centerListeners.add(c.el,"click",function(e){e.preventDefault(),e.stopPropagation(),s.interacted=!0,s.goto(c)},!0),t=c}}}})}((FooGallery.$,FooGallery),FooGallery.icons,FooGallery.utils,FooGallery.utils.is),function(i,r){i.CarouselTemplate=i.Template.extend({construct:function(e,t){var n=this;n._super(r.extend({},e,{paging:{type:"none"}}),t),n.items.LAYOUT_AFTER_LOAD=!1,n.carousel=null,n.on({"pre-init":n.onPreInit,init:n.onInit,"post-init":n.onPostInit,destroyed:n.onDestroyed,"append-item":n.onAppendItem,"after-filter-change":n.onAfterFilterChange,layout:n.onLayout},n),i.Panel&&n.lightbox instanceof i.Panel&&n.lightbox.on({open:n.onLightboxOpen,closed:n.onLightboxClosed,next:n.onLightboxNext,prev:n.onLightboxPrev},n)},onPreInit:function(){var e=this;e.carousel=new i.Carousel(e,e.template,e.cls.carousel,e.sel.carousel)},onInit:function(){this.carousel.init()},onPostInit:function(){this.carousel.postInit()},onDestroyed:function(){this.carousel instanceof i.Carousel&&this.carousel.destroy()},onAppendItem:function(e,t){e.preventDefault(),this.carousel.elem.inner.appendChild(t.el),t.isAttached=!0},onAfterFilterChange:function(){this.carousel.cache.delete("layout"),this.carousel.interacted=!0,this.carousel.goto(this.carousel.getFirst())},onLayout:function(){this.carousel.layout(this.lastWidth)},onLightboxOpen:function(){this.carousel.interacted=!0,this.carousel.stop()},onLightboxClosed:function(){this.carousel.start()},onLightboxNext:function(){this.carousel.next()},onLightboxPrev:function(){this.carousel.previous()}}),i.template.register("carousel",i.CarouselTemplate,{template:{maxItems:0,perspective:150,scale:.12,speed:300,centerOnClick:!0,gutter:{min:-40,max:-20,unit:"%"},autoplay:{time:0,interaction:"pause"}}},{container:"foogallery fg-carousel",carousel:{inner:"fg-carousel-inner",center:"fg-carousel-center",bottom:"fg-carousel-bottom",prev:"fg-carousel-prev",next:"fg-carousel-next",bullet:"fg-carousel-bullet",activeBullet:"fg-bullet-active",activeItem:"fg-item-active",prevItem:"fg-item-prev",nextItem:"fg-item-next",progress:"fg-carousel-progress"}})}((FooGallery.$,FooGallery),FooGallery.utils.obj),function(s,a,e,t,i){a.triggerPostLoad=function(e,t,n,i){var r,o=e.target;if(o instanceof a.Template&&o.initialized&&("ready"===e.type||"after-page-change"===e.type&&!i||"after-filter-change"===e.type))try{if(0<o.$el.parents(".fbx-item").length)return;o.$el.hasClass("fbx-instance")&&window.FOOBOX&&s.fn.foobox?(r=s.extend({},window.FOOBOX.o,o.opt.protected?{images:{noRightClick:!0}}:{}),o.$el.foobox(r)):s("body").trigger("post-load")}catch(e){console.error(e)}},a.autoDefaults={on:{"ready after-page-change after-filter-change":a.triggerPostLoad}},a.autoEnabled=!0,a.auto=function(e){a.autoDefaults=t.merge(a.autoDefaults,e)},a.globalsMerged=!1,a.mergeGlobals=function(){if(!0!==a.globalsMerged&&window.FooGallery_il8n&&i.object(window.FooGallery_il8n)){var e,t=window.FooGallery_il8n;for(e in t)if(t.hasOwnProperty(e)&&a[e]instanceof a.Factory&&i.object(t[e]))for(var n in t[e])t[e].hasOwnProperty(n)&&a[e].configure(n,null,null,t[e][n]);a.globalsMerged=!0}},a.load=a.reload=function(){s(function(){a.mergeGlobals(),a.autoEnabled&&s('[id^="foogallery-gallery-"]:not(.fg-ready)').foogallery(a.autoDefaults)}),e.ready(function(){a.mergeGlobals(),a.autoEnabled&&s('[id^="foogallery-gallery-"].fg-ready').foogallery(a.autoDefaults)})},a.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.39
|
4 |
* @link
|
5 |
* @copyright Steven Usher & Brad Vincent 2015
|
6 |
* @license Released under the GPLv3 license.
|
7 |
*/
|
8 |
+
function _typeof(e){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}!function(){"use strict";var h,t;function l(e){this.time=e.time,this.target=e.target,this.rootBounds=e.rootBounds,this.boundingClientRect=e.boundingClientRect,this.intersectionRect=e.intersectionRect||r(),this.isIntersecting=!!e.intersectionRect;var e=this.boundingClientRect,e=e.width*e.height,t=this.intersectionRect,t=t.width*t.height;this.intersectionRatio=e?Number((t/e).toFixed(4)):this.isIntersecting?1:0}function e(e,t){var n,i,r,t=t||{};if("function"!=typeof e)throw new Error("callback must be a function");if(t.root&&1!=t.root.nodeType)throw new Error("root must be an Element");this._checkForIntersections=(n=this._checkForIntersections.bind(this),i=this.THROTTLE_TIMEOUT,r=null,function(){r=r||setTimeout(function(){n(),r=null},i)}),this._callback=e,this._observationTargets=[],this._queuedEntries=[],this._rootMarginValues=this._parseRootMargin(t.rootMargin),this.thresholds=this._initThresholds(t.threshold),this.root=t.root||null,this.rootMargin=this._rootMarginValues.map(function(e){return e.value+e.unit}).join(" ")}function n(e,t,n,i){"function"==typeof e.addEventListener?e.addEventListener(t,n,i||!1):"function"==typeof e.attachEvent&&e.attachEvent("on"+t,n)}function i(e,t,n,i){"function"==typeof e.removeEventListener?e.removeEventListener(t,n,i||!1):"function"==typeof e.detatchEvent&&e.detatchEvent("on"+t,n)}function p(e){var t;try{t=e.getBoundingClientRect()}catch(e){}return t?t.width&&t.height?t:{top:t.top,right:t.right,bottom:t.bottom,left:t.left,width:t.right-t.left,height:t.bottom-t.top}:r()}function r(){return{top:0,bottom:0,left:0,right:0,width:0,height:0}}function o(e,t){for(var n=t;n;){if(n==e)return!0;n=d(n)}return!1}function d(e){e=e.parentNode;return e&&11==e.nodeType&&e.host?e.host:e&&e.assignedSlot?e.assignedSlot.parentNode:e}"object"==typeof window&&("IntersectionObserver"in window&&"IntersectionObserverEntry"in window&&"intersectionRatio"in window.IntersectionObserverEntry.prototype?"isIntersecting"in window.IntersectionObserverEntry.prototype||Object.defineProperty(window.IntersectionObserverEntry.prototype,"isIntersecting",{get:function(){return 0<this.intersectionRatio}}):(h=window.document,t=[],e.prototype.THROTTLE_TIMEOUT=100,e.prototype.POLL_INTERVAL=null,e.prototype.USE_MUTATION_OBSERVER=!0,e.prototype.observe=function(t){var e=this._observationTargets.some(function(e){return e.element==t});if(!e){if(!t||1!=t.nodeType)throw new Error("target must be an Element");this._registerInstance(),this._observationTargets.push({element:t,entry:null}),this._monitorIntersections(),this._checkForIntersections()}},e.prototype.unobserve=function(t){this._observationTargets=this._observationTargets.filter(function(e){return e.element!=t}),this._observationTargets.length||(this._unmonitorIntersections(),this._unregisterInstance())},e.prototype.disconnect=function(){this._observationTargets=[],this._unmonitorIntersections(),this._unregisterInstance()},e.prototype.takeRecords=function(){var e=this._queuedEntries.slice();return this._queuedEntries=[],e},e.prototype._initThresholds=function(e){e=e||[0];return(e=Array.isArray(e)?e:[e]).sort().filter(function(e,t,n){if("number"!=typeof e||isNaN(e)||e<0||1<e)throw new Error("threshold must be a number between 0 and 1 inclusively");return e!==n[t-1]})},e.prototype._parseRootMargin=function(e){e=(e||"0px").split(/\s+/).map(function(e){e=/^(-?\d*\.?\d+)(px|%)$/.exec(e);if(e)return{value:parseFloat(e[1]),unit:e[2]};throw new Error("rootMargin must be specified in pixels or percent")});return e[1]=e[1]||e[0],e[2]=e[2]||e[0],e[3]=e[3]||e[1],e},e.prototype._monitorIntersections=function(){this._monitoringIntersections||(this._monitoringIntersections=!0,this.POLL_INTERVAL?this._monitoringInterval=setInterval(this._checkForIntersections,this.POLL_INTERVAL):(n(window,"resize",this._checkForIntersections,!0),n(h,"scroll",this._checkForIntersections,!0),this.USE_MUTATION_OBSERVER&&"MutationObserver"in window&&(this._domObserver=new MutationObserver(this._checkForIntersections),this._domObserver.observe(h,{attributes:!0,childList:!0,characterData:!0,subtree:!0}))))},e.prototype._unmonitorIntersections=function(){this._monitoringIntersections&&(this._monitoringIntersections=!1,clearInterval(this._monitoringInterval),this._monitoringInterval=null,i(window,"resize",this._checkForIntersections,!0),i(h,"scroll",this._checkForIntersections,!0),this._domObserver&&(this._domObserver.disconnect(),this._domObserver=null))},e.prototype._checkForIntersections=function(){var s=this._rootIsInDom(),a=s?this._getRootRect():r();this._observationTargets.forEach(function(e){var t=e.element,n=p(t),i=this._rootContainsTarget(t),r=e.entry,o=s&&i&&this._computeTargetAndRootIntersection(t,a),e=e.entry=new l({time:window.performance&&performance.now&&performance.now(),target:t,boundingClientRect:n,rootBounds:a,intersectionRect:o});r?s&&i?this._hasCrossedThreshold(r,e)&&this._queuedEntries.push(e):r&&r.isIntersecting&&this._queuedEntries.push(e):this._queuedEntries.push(e)},this),this._queuedEntries.length&&this._callback(this.takeRecords(),this)},e.prototype._computeTargetAndRootIntersection=function(e,t){if("none"!=window.getComputedStyle(e).display){for(var n,i,r,o,s=p(e),a=d(e),l=!1;!l;){var c=null,u=1==a.nodeType?window.getComputedStyle(a):{};if("none"==u.display)return;if(a==this.root||a==h?(l=!0,c=t):a!=h.body&&a!=h.documentElement&&"visible"!=u.overflow&&(c=p(a)),c&&(u=c,c=s,o=r=i=n=void 0,n=Math.max(u.top,c.top),i=Math.min(u.bottom,c.bottom),r=Math.max(u.left,c.left),u=Math.min(u.right,c.right),o=i-n,!(s=0<=(c=u-r)&&0<=o&&{top:n,bottom:i,left:r,right:u,width:c,height:o})))break;a=d(a)}return s}},e.prototype._getRootRect=function(){var e,t;return t=this.root?p(this.root):(t=h.documentElement,e=h.body,{top:0,left:0,right:t.clientWidth||e.clientWidth,width:t.clientWidth||e.clientWidth,bottom:t.clientHeight||e.clientHeight,height:t.clientHeight||e.clientHeight}),this._expandRectByRootMargin(t)},e.prototype._expandRectByRootMargin=function(n){var e=this._rootMarginValues.map(function(e,t){return"px"==e.unit?e.value:e.value*(t%2?n.width:n.height)/100}),e={top:n.top-e[0],right:n.right+e[1],bottom:n.bottom+e[2],left:n.left-e[3]};return e.width=e.right-e.left,e.height=e.bottom-e.top,e},e.prototype._hasCrossedThreshold=function(e,t){var n=e&&e.isIntersecting?e.intersectionRatio||0:-1,i=t.isIntersecting?t.intersectionRatio||0:-1;if(n!==i)for(var r=0;r<this.thresholds.length;r++){var o=this.thresholds[r];if(o==n||o==i||o<n!=o<i)return!0}},e.prototype._rootIsInDom=function(){return!this.root||o(h,this.root)},e.prototype._rootContainsTarget=function(e){return o(this.root||h,e)},e.prototype._registerInstance=function(){t.indexOf(this)<0&&t.push(this)},e.prototype._unregisterInstance=function(){var e=t.indexOf(this);-1!=e&&t.splice(e,1)},window.IntersectionObserver=e,window.IntersectionObserverEntry=l))}(),function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):e.ResizeObserver=t()}(this,function(){"use strict";var i="undefined"!=typeof Map?Map:(Object.defineProperty(e.prototype,"size",{get:function(){return this.__entries__.length},enumerable:!0,configurable:!0}),e.prototype.get=function(e){e=r(this.__entries__,e),e=this.__entries__[e];return e&&e[1]},e.prototype.set=function(e,t){var n=r(this.__entries__,e);~n?this.__entries__[n][1]=t:this.__entries__.push([e,t])},e.prototype.delete=function(e){var t=this.__entries__,e=r(t,e);~e&&t.splice(e,1)},e.prototype.has=function(e){return!!~r(this.__entries__,e)},e.prototype.clear=function(){this.__entries__.splice(0)},e.prototype.forEach=function(e,t){void 0===t&&(t=null);for(var n=0,i=this.__entries__;n<i.length;n++){var r=i[n];e.call(t,r[1],r[0])}},e);function e(){this.__entries__=[]}function r(e,n){var i=-1;return e.some(function(e,t){return e[0]===n&&(i=t,!0)}),i}var n="undefined"!=typeof window&&"undefined"!=typeof document&&window.document===document,t="undefined"!=typeof global&&global.Math===Math?global:"undefined"!=typeof self&&self.Math===Math?self:"undefined"!=typeof window&&window.Math===Math?window:Function("return this")(),l="function"==typeof requestAnimationFrame?requestAnimationFrame.bind(t):function(e){return setTimeout(function(){return e(Date.now())},1e3/60)},c=2;var o=["top","right","bottom","left","width","height","size","weight"],s="undefined"!=typeof MutationObserver,a=(u.prototype.addObserver=function(e){~this.observers_.indexOf(e)||this.observers_.push(e),this.connected_||this.connect_()},u.prototype.removeObserver=function(e){var t=this.observers_,e=t.indexOf(e);~e&&t.splice(e,1),!t.length&&this.connected_&&this.disconnect_()},u.prototype.refresh=function(){this.updateObservers_()&&this.refresh()},u.prototype.updateObservers_=function(){var e=this.observers_.filter(function(e){return e.gatherActive(),e.hasActive()});return e.forEach(function(e){return e.broadcastActive()}),0<e.length},u.prototype.connect_=function(){n&&!this.connected_&&(document.addEventListener("transitionend",this.onTransitionEnd_),window.addEventListener("resize",this.refresh),s?(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)},u.prototype.disconnect_=function(){n&&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)},u.prototype.onTransitionEnd_=function(e){var e=e.propertyName,t=void 0===e?"":e;o.some(function(e){return!!~t.indexOf(e)})&&this.refresh()},u.getInstance=function(){return this.instance_||(this.instance_=new u),this.instance_},u.instance_=null,u);function u(){function e(){o&&(o=!1,i()),s&&n()}function t(){l(e)}function n(){var e=Date.now();if(o){if(e-a<c)return;s=!0}else s=!(o=!0),setTimeout(t,r);a=e}var i,r,o,s,a;this.connected_=!1,this.mutationEventsAdded_=!1,this.mutationsObserver_=null,this.observers_=[],this.onTransitionEnd_=this.onTransitionEnd_.bind(this),this.refresh=(i=this.refresh.bind(this),s=o=!(r=20),a=0,n)}var h=function(e,t){for(var n=0,i=Object.keys(t);n<i.length;n++){var r=i[n];Object.defineProperty(e,r,{value:t[r],enumerable:!1,writable:!1,configurable:!0})}return e},p=function(e){return e&&e.ownerDocument&&e.ownerDocument.defaultView||t},d=b(0,0,0,0);function f(e){return parseFloat(e)||0}function g(n){for(var e=[],t=1;t<arguments.length;t++)e[t-1]=arguments[t];return e.reduce(function(e,t){return e+f(n["border-"+t+"-width"])},0)}function m(e){var t,n,i,r,o,s,a=e.clientWidth,l=e.clientHeight;return a||l?(n=(t=function(e){for(var t={},n=0,i=["top","right","bottom","left"];n<i.length;n++){var r=i[n],o=e["padding-"+r];t[r]=f(o)}return t}(s=p(e).getComputedStyle(e))).left+t.right,i=t.top+t.bottom,r=f(s.width),o=f(s.height),"border-box"===s.boxSizing&&(Math.round(r+n)!==a&&(r-=g(s,"left","right")+n),Math.round(o+i)!==l&&(o-=g(s,"top","bottom")+i)),e!==p(e).document.documentElement&&(s=Math.round(r+n)-a,e=Math.round(o+i)-l,1!==Math.abs(s)&&(r-=s),1!==Math.abs(e)&&(o-=e)),b(t.left,t.top,r,o)):d}var v="undefined"!=typeof SVGGraphicsElement?function(e){return e instanceof p(e).SVGGraphicsElement}:function(e){return e instanceof p(e).SVGElement&&"function"==typeof e.getBBox};function y(e){var t;return n?v(e)?b(0,0,(t=(t=e).getBBox()).width,t.height):m(e):d}function b(e,t,n,i){return{x:e,y:t,width:n,height:i}}w.prototype.isActive=function(){var e=y(this.target);return(this.contentRect_=e).width!==this.broadcastWidth||e.height!==this.broadcastHeight},w.prototype.broadcastRect=function(){var e=this.contentRect_;return this.broadcastWidth=e.width,this.broadcastHeight=e.height,e};var _=w;function w(e){this.broadcastWidth=0,this.broadcastHeight=0,this.contentRect_=b(0,0,0,0),this.target=e}var x=function(e,t){n=(t=t).x,i=t.y,o=t.width,t=t.height,r="undefined"!=typeof DOMRectReadOnly?DOMRectReadOnly:Object,r=Object.create(r.prototype),h(r,{x:n,y:i,width:o,height:t,top:i,right:n+o,bottom:t+i,left:n});var n,i,r,o=r;h(this,{target:e,contentRect:o})},C=(E.prototype.observe=function(e){if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");if("undefined"!=typeof Element&&Element instanceof Object){if(!(e instanceof p(e).Element))throw new TypeError('parameter 1 is not of type "Element".');var t=this.observations_;t.has(e)||(t.set(e,new _(e)),this.controller_.addObserver(this),this.controller_.refresh())}},E.prototype.unobserve=function(e){if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");if("undefined"!=typeof Element&&Element instanceof Object){if(!(e instanceof p(e).Element))throw new TypeError('parameter 1 is not of type "Element".');var t=this.observations_;t.has(e)&&(t.delete(e),t.size||this.controller_.removeObserver(this))}},E.prototype.disconnect=function(){this.clearActive(),this.observations_.clear(),this.controller_.removeObserver(this)},E.prototype.gatherActive=function(){var t=this;this.clearActive(),this.observations_.forEach(function(e){e.isActive()&&t.activeObservations_.push(e)})},E.prototype.broadcastActive=function(){var e,t;this.hasActive()&&(e=this.callbackCtx_,t=this.activeObservations_.map(function(e){return new x(e.target,e.broadcastRect())}),this.callback_.call(e,t,e),this.clearActive())},E.prototype.clearActive=function(){this.activeObservations_.splice(0)},E.prototype.hasActive=function(){return 0<this.activeObservations_.length},E);function E(e,t,n){if(this.activeObservations_=[],this.observations_=new i,"function"!=typeof e)throw new TypeError("The callback provided as parameter 1 is not a function.");this.callback_=e,this.controller_=t,this.callbackCtx_=n}var F=new("undefined"!=typeof WeakMap?WeakMap:i),$=function e(t){if(!(this instanceof e))throw new TypeError("Cannot call a class as a function.");if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");var n=a.getInstance(),t=new C(t,n,this);F.set(this,t)};return["observe","unobserve","disconnect"].forEach(function(t){$.prototype[t]=function(){var e;return(e=F.get(this))[t].apply(e,arguments)}}),void 0!==t.ResizeObserver?t.ResizeObserver:$}),function(e){(window.FooGallery=window.FooGallery||{}).$=e}(jQuery),function(e){e?function(){try{return window.FooGallery.utils}catch(e){}}()||(window.FooGallery.utils={$:e,version:"1.0.0"}):console.warn("jQuery must be included in the page prior to the FooGallery.utils library.")}(jQuery),function(t,n){"1.0.0"===n.version&&(n.is={},n.is.array=function(e){return"[object Array]"===Object.prototype.toString.call(e)},n.is.boolean=function(e){return"[object Boolean]"===Object.prototype.toString.call(e)},n.is.element=function(e){return"object"===("undefined"==typeof HTMLElement?"undefined":_typeof(HTMLElement))?e instanceof HTMLElement:!!e&&"object"===_typeof(e)&&1===e.nodeType&&"string"==typeof e.nodeName},n.is.empty=function(e){if(n.is.undef(e)||null===e)return!0;if(n.is.number(e)&&0===e)return!0;if(n.is.boolean(e)&&!1===e)return!0;if(n.is.string(e)&&0===e.length)return!0;if(n.is.array(e)&&0===e.length)return!0;if(n.is.jq(e)&&0===e.length)return!0;if(n.is.hash(e)){for(var t in e)if(e.hasOwnProperty(t))return!1;return!0}return!1},n.is.error=function(e){return"[object Error]"===Object.prototype.toString.call(e)},n.is.fn=function(e){return e===window.alert||"[object Function]"===Object.prototype.toString.call(e)},n.is.hash=function(e){return n.is.object(e)&&e.constructor===Object&&!e.nodeType&&!e.setInterval},n.is.jq=function(e){return!n.is.undef(t)&&e instanceof t},n.is.number=function(e){return"[object Number]"===Object.prototype.toString.call(e)&&!isNaN(e)},n.is.object=function(e){return"[object Object]"===Object.prototype.toString.call(e)&&!n.is.undef(e)&&null!==e},n.is.promise=function(e){return n.is.object(e)&&n.is.fn(e.then)&&n.is.fn(e.promise)},n.is.size=function(e){return!!(n.is.string(e)&&!n.is.empty(e)||n.is.number(e))&&/^(auto|none|(?:[\d.]*)+?(?:%|px|mm|q|cm|in|pt|pc|em|ex|ch|rem|vh|vw|vmin|vmax)?)$/.test(e)},n.is.string=function(e){return"[object String]"===Object.prototype.toString.call(e)},n.is.undef=function(e){return void 0===e})}(FooGallery.utils.$,FooGallery.utils),function(l,c,u){var a;"1.0.0"===c.version&&(c.fn={},a=Function.prototype.toString,c.fn.CONTAINS_SUPER=/xyz/.test(a.call(function(){xyz}))?/\b_super\b/:/.*/,c.fn.noop=function(){},c.fn.addOrOverride=function(e,t,n){var i,r,o,s;u.object(e)&&u.string(t)&&!u.empty(t)&&u.fn(n)&&(i=e[t],r=u.fn(i)&&c.fn.CONTAINS_SUPER.test(a.call(n)),e[t]=r?(o=i,s=n,function(){var e=this._super,t=(this._super=o,s.apply(this,arguments));return this._super=e,t}):n)},c.fn.expose=function(t,n,e,i){u.object(t)&&u.object(n)&&u.array(e)&&(i=u.undef(i)?t:i,e.forEach(function(e){u.string(e)&&u.fn(t[e])&&(n[e]=t[e].bind(i))}))},c.fn.apply=function(e,t){return t.unshift(e),new(Function.prototype.bind.apply(e,t))},c.fn.arg2arr=function(e){return Array.prototype.slice.call(e)},c.fn.debounce=function(n,i){var r;return function(){var e=this,t=c.fn.arg2arr(arguments);clearTimeout(r),r=setTimeout(function(){n.apply(e,t)},i)}},c.fn.throttle=function(n,i){var r,o;return function(){var e=this,t=c.fn.arg2arr(arguments);r?(clearTimeout(o),o=setTimeout(function(){Date.now()-r>=i&&(n.apply(e,t),r=Date.now())},i-(Date.now()-r))):(n.apply(e,t),r=Date.now())}},c.fn.resolved=l.Deferred().resolve().promise(),c.fn.rejected=l.Deferred().reject().promise(),c.fn.reject=function(e,t){var n=l.Deferred(),i=c.fn.arg2arr(arguments);return n.reject.apply(n,i).promise()},c.fn.resolve=function(e,t){var n=l.Deferred(),i=c.fn.arg2arr(arguments);return n.resolve.apply(n,i).promise()},c.fn.rejectWith=function(e,t,n){var i=l.Deferred(),r=c.fn.arg2arr(arguments);return r.shift(),i.rejectWith(e,r).promise()},c.fn.resolveWith=function(e,t,n){var i=l.Deferred(),r=c.fn.arg2arr(arguments);return r.shift(),i.resolveWith(e,r).promise()},c.fn.all=function(t){var n=l.Deferred(),i=[];if(u.array(t)&&0<t.length){function r(e,t){s||(i[e]=0===t.length?void 0:1===t.length?t[0]:t,--o||n.resolve(i))}for(var o=t.length,s=!1,a=0,e=t.length;a<e&&"break"!==function(){if(s)return"break";var e=a;u.promise(t[e])?t[e].then(function(){r(e,c.fn.arg2arr(arguments))},function(){s||(s=!0,n.reject.apply(n,c.fn.arg2arr(arguments)))}):r(e,[t[e]])}();a++);}else n.resolve(i);return n.promise()},c.fn.allSettled=function(t){var i=l.Deferred(),r=[];if(u.array(t)&&0<t.length){function n(e,t,n){r[e]={status:t},0<n.length&&(r[e]["rejected"===t?"reason":"value"]=1===n.length?n[0]:n),--o||i.resolve(r)}for(var o=t.length,s=0,e=t.length;s<e;s++)!function(){var e=s;u.promise(t[e])?t[e].then(function(){n(e,"fulfilled",c.fn.arg2arr(arguments))},function(){n(e,"rejected",c.fn.arg2arr(arguments))}):n(e,"fulfilled",[t[e]])}()}else i.resolve(r);return i.promise()})}(FooGallery.utils.$,FooGallery.utils,FooGallery.utils.is),function(e,o){var r;"1.0.0"===e.version&&(e.url={},r=document.createElement("a"),e.url.parts=function(e){r.href=e;var e=r.port||(-1!==["http:","https:"].indexOf(r.protocol)?"https:"===r.protocol?"443":"80":""),t=r.hostname+(e?":"+e:""),n=r.origin||r.protocol+"//"+t,i="/"===r.pathname.slice(0,1)?r.pathname:"/"+r.pathname;return{hash:r.hash,host:t,hostname:r.hostname,href:r.href,origin:n,pathname:i,port:e,protocol:r.protocol,search:r.search}},e.url.full=function(e){return!o.string(e)||o.empty(e)?null:(r.href=e,r.href)},e.url.param=function(e,t,n){var i,r;return o.string(e)&&o.string(t)&&!o.empty(t)?o.undef(n)?(r=((i=new RegExp("[?|&]"+t+"=([^&;]+?)(&|#|;|$)")).exec(e)||["",""])[1].replace(/\+/g,"%20"),o.string(r)&&!o.empty(r)?decodeURIComponent(r):null):(o.empty(n)?(i=new RegExp("^([^#]*?)(([^#]*)&)?"+t+"(=[^&#]*)?(&|#|$)"),r=e.replace(i,"$1$3$5").replace(/^([^#]*)((\?)&|\?(#|$))/,"$1$3$4")):(i=new RegExp("([?&])"+t+"[^&]*"),t=t+"="+encodeURIComponent(n),(r=e.replace(i,"$1"+t))!==e||i.test(r)||(r+=(-1!==r.indexOf("?")?"&":"?")+t)),r):e})}(FooGallery.utils,FooGallery.utils.is),function(a,l,c){"1.0.0"===a.version&&(a.str={},a.str.trim=function(e){return l.string(e)?e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,""):null},a.str.camel=function(e){return l.string(e)?e.toUpperCase()===e?e.toLowerCase():e.replace(/^([A-Z])|[-\s_]+(\w)/g,function(e,t,n){return l.string(n)?n.toUpperCase():t.toLowerCase()}):e},a.str.kebab=function(e){return l.string(e)?e.match(/[A-Z]{2,}(?=[A-Z][a-z0-9]*|\b)|[A-Z]?[a-z0-9]*|[A-Z]|[0-9]+/g).filter(Boolean).map(function(e){return e.toLowerCase()}).join("-"):e},a.str.contains=function(e,t,n){return!(!l.string(e)||l.empty(e)||!l.string(t)||l.empty(t))&&(t.length<=e.length&&-1!==(n?e.toUpperCase().indexOf(t.toUpperCase()):e.indexOf(t)))},a.str.containsWord=function(e,t,n){if(!(!l.string(e)||l.empty(e)||!l.string(t)||l.empty(t)||e.length<t.length))for(var i=e.split(/\W/),r=0,o=i.length;r<o;r++)if(n?i[r].toUpperCase()===t.toUpperCase():i[r]===t)return!0;return!1},a.str.endsWith=function(e,t){return!(!l.string(e)||!l.string(t)||t.length>e.length)&&e.slice(e.length-t.length)===t},a.str.startsWith=function(e,t){return!l.empty(e)&&!l.empty(t)&&e.slice(0,t.length)===t},a.str.escapeRegExp=function(e){return l.string(e)?e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"):e},a.str.fnv1a=function(e){if(!l.string(e)||l.empty(e))return null;for(var t=2166136261,n=0,i=e.length;n<i;n++)t=(t^=e.charCodeAt(n))+((t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24));return t>>>0},a.str.from=function(e,t){return a.str.contains(e,t)?e.substring(e.indexOf(t)+t.length):null},a.str.join=function(e,t,n){if(!l.string(e)||!l.string(t))return null;var i=c.arg2arr(arguments);e=i.shift();for(var r=i.shift(),o=0,s=i.length;o<s;o++)t=i[o],l.empty(t)||(a.str.endsWith(r,e)&&(r=r.slice(0,r.length-e.length)),r+=e+(t=a.str.startsWith(t,e)?t.slice(e.length):t));return r},a.str.until=function(e,t){return a.str.contains(e,t)?e.substring(0,e.indexOf(t)):e},a.str.format=function(n,e,t){var i=c.arg2arr(arguments);return n=i.shift(),l.string(n)&&0<i.length&&(1===i.length&&(l.array(i[0])||l.object(i[0]))&&(i=i[0]),a.each(i,function(e,t){n=n.replace(new RegExp("\\{"+t+"\\}","gi"),e+"")})),n})}(FooGallery.utils,FooGallery.utils.is,FooGallery.utils.fn),function(a,l,r,o){"1.0.0"===a.version&&(a.obj={},a.obj.create=function(e){if(l.object(e))return t.prototype=e,new t;throw TypeError("Argument must be an object");function t(){}},a.obj.extend=function(t,e,n){t=l.object(t)?t:{};var i=r.arg2arr(arguments);return i.shift(),a.each(i,function(e){a.obj.merge(t,e)}),t},a.obj.merge=function(e,t){for(var n in e=l.hash(e)?e:{},t=l.hash(t)?t:{})t.hasOwnProperty(n)&&(l.hash(t[n])?(e[n]=l.hash(e[n])?e[n]:{},a.obj.merge(e[n],t[n])):l.array(t[n])?e[n]=t[n].slice():e[n]=t[n]);return e},a.obj.mergeValid=function(t,n,i,e){var r,o,s;if(l.hash(i)&&l.hash(n))for(r in n=l.hash(n)?n:{},e=l.hash(e)?e:{},n)n.hasOwnProperty(r)&&l.fn(n[r])&&(o=l.array(e[r])?e[r]:l.string(e[r])?[e[r]]:[r],a.each(o,function(e){return s=a.obj.prop(i,e),!l.undef(s)&&n[r](s)?(a.obj.prop(t,r,s),!1):void 0}));return t},a.obj.prop=function(n,e,i){var t,r;if(l.object(n)&&!l.empty(e))return l.undef(i)?(o.contains(e,".")?(t=e.split("."),r=t.length-1,a.each(t,function(e,t){if(t===r)i=n[e];else{if(!l.hash(n[e]))return!1;n=n[e]}})):l.undef(n[e])||(i=n[e]),i):void(o.contains(e,".")?(t=e.split("."),r=t.length-1,a.each(t,function(e,t){t===r?n[e]=i:n=l.hash(n[e])?n[e]:n[e]={}})):l.undef(n[e])||(n[e]=i))})}((FooGallery.utils.$,FooGallery.utils),FooGallery.utils.is,FooGallery.utils.fn,FooGallery.utils.str),function(t,r,s){"1.0.0"===r.version&&(r.ready=function(e){function t(){try{e.call(window,r.$)}catch(e){console.error(e)}}(Function("/*@cc_on return true@*/")()?"complete"===document.readyState:"loading"!==document.readyState)?t():document.addEventListener("DOMContentLoaded",t,!1)},r.find=function(e,t,n){if(s.fn(t))if(n=s.undef(n)?t:n,s.array(e)){for(r=0,o=e.length;r<o;r++)if(t.call(n,e[r],r,e))return e[r]}else if(s.object(e))for(var i=Object.keys(e),r=0,o=i.length;r<o;r++)if(t.call(n,e[i[r]],i[r],e))return e[i[r]]},r.each=function(e,t,n){if(s.fn(t))if(n=s.undef(n)?t:n,s.array(e))for(r=0,o=e.length;r<o&&!1!==t.call(n,e[r],r,e);r++);else if(s.object(e))for(var i=Object.keys(e),r=0,o=i.length;r<o&&!1!==t.call(n,e[i[r]],i[r],e);r++);},r.inArray=function(e,t){return s.array(t)?t.indexOf(e):-1},r.selectify=function(e){if(s.empty(e))return null;if(s.hash(e)){var t,n,i={};for(n in e)e.hasOwnProperty(n)&&(t=r.selectify(e[n]))&&(i[n]=t);return i}return s.string(e)||s.array(e)?(e=s.string(e)?[e]:e).map(function(e){return s.string(e)?"."+e.split(/\s/g).join("."):null}).join(","):null},r.requestFrame=(window.requestAnimationFrame||window.webkitRequestAnimationFrame||function(e){return setTimeout(e,1e3/60)}).bind(window),r.cancelFrame=(window.cancelAnimationFrame||window.webkitCancelAnimationFrame||function(e){clearTimeout(e)}).bind(window),r.nextFrame=function(e,n){return t.Deferred(function(t){s.fn(e)?(n=s.undef(n)?e:n,r.requestFrame(function(){try{t.resolve(e.call(n))}catch(e){t.reject(e)}})):t.reject(new Error("Provided callback is not a function."))}).promise()})}(FooGallery.utils.$,FooGallery.utils,FooGallery.utils.is),function(r,o,s,a){"1.0.0"===r.version&&(r.Class=function(){},r.Class.extend=function(e){e=o.hash(e)?e:{};var t,n=s.create(this.prototype);for(t in e)e.hasOwnProperty(t)&&a.addOrOverride(n,t,e[t]);function i(){if(!o.fn(this.construct))throw new SyntaxError('FooGallery.utils.Class objects must be constructed with the "new" keyword.');this.construct.apply(this,arguments)}return n.construct=o.fn(n.construct)?n.construct:function(){},(i.prototype=n).constructor=o.fn(n.__ctor__)?n.__ctor__:i,i.extend=r.Class.extend,i.override=r.Class.override,i.getBaseClasses=r.Class.getBaseClasses,i.__baseClass__=this,i},r.Class.override=function(e,t){a.addOrOverride(this.prototype,e,t)},r.Class.__baseClass__=null,r.Class.getBaseClasses=function(){return function e(t,n){return o.array(n)||(n=[]),o.fn(t)&&null!==t.__baseClass__?(n.unshift(t.__baseClass__),e(t.__baseClass__,n)):n}(this,[])})}((FooGallery.utils.$,FooGallery.utils),FooGallery.utils.is,FooGallery.utils.obj,FooGallery.utils.fn),function(e,a,l,r){e.ClassRegistry=e.Class.extend({construct:function(e){this.opt=r.extend({allowBase:!0,beforeCreate:null},e),this.registered={}},register:function(e,t,n,i){var r;return!(!a.string(e)||a.empty(e)||!a.fn(t))&&(i=a.number(i)?i:0,r=this.registered[e],this.registered[e]={name:e,ctor:t,config:a.hash(n)?n:{},priority:a.undef(r)?i:r.priority},!0)},each:function(e,t,n){t=!!a.boolean(t)&&t,n=a.undef(n)?e:n;for(var i=this,r=Object.keys(i.registered).map(function(e){return i.registered[e]}),o=(t&&r.sort(function(e,t){return t.priority-e.priority}),0),s=r.length;o<s&&!1!==e.call(n,r[o],o);o++);},find:function(e,t,n){t=!!a.boolean(t)&&t,n=a.undef(n)?e:n;for(var i=this,r=Object.keys(i.registered).map(function(e){return i.registered[e]}),o=(t&&r.sort(function(e,t){return t.priority-e.priority}),0),s=r.length;o<s;o++)if(e.call(n,r[o],o))return r[o];return null},create:function(e,t,n){var i=this,r=l.arg2arr(arguments);if(e=r.shift(),a.string(e)&&i.registered.hasOwnProperty(e)){var o=i.registered[e],s=!0;if((s=o.priority<0&&!i.opt.allowBase?!1:s)&&a.fn(o.ctor))return t=r.shift(),t=i.mergeConfigurations(o.name,t),r.unshift.apply(r,[o.name,t]),l.apply(o.ctor,i.onBeforeCreate(o,r))}return null},onBeforeCreate:function(e,t){return null!==this.opt.beforeCreate&&a.fn(this.opt.beforeCreate)?this.opt.beforeCreate.call(this,e,t):t},mergeConfigurations:function(e,t){var n,i;return a.string(e)&&this.registered.hasOwnProperty(e)?(t=a.hash(t)?t:{},n=this.getBaseClasses(e),i=[{}],n.push(this.registered[e]),n.forEach(function(e){i.push(e.config)}),i.push(t),r.extend.apply(r,i)):{}},getBaseClass:function(){return this.find(function(e){return e.priority<0},!0)},getBaseClasses:function(e){var t=this,e=t.registered[e],n=[];return a.undef(e)||e.ctor.getBaseClasses().forEach(function(e){e=t.fromType(e);a.hash(e)&&n.push(e)}),n},fromType:function(t){if(a.fn(t))return this.find(function(e){return e.ctor===t})}})}((FooGallery.utils.$,FooGallery.utils),FooGallery.utils.is,FooGallery.utils.fn,FooGallery.utils.obj),function(o,s,n){"1.0.0"===o.version&&(o.Event=o.Class.extend({construct:function(e){if(s.empty(e))throw new SyntaxError("FooGallery.utils.Event objects must be supplied a `type`.");e=o.Event.parse(e);this.type=e.type,this.namespace=e.namespace,this.defaultPrevented=!1,this.target=null},preventDefault:function(){this.defaultPrevented=!0},isDefaultPrevented:function(){return this.defaultPrevented}}),o.Event.parse=function(e){e=s.string(e)&&!s.empty(e)?e:null;var t=n.contains(e,".");return{namespaced:t,type:t?n.startsWith(e,".")?null:n.until(e,"."):e,namespace:t?n.from(e,"."):null}},o.EventClass=o.Class.extend({construct:function(){this.events={}},destroy:function(){this.events={}},on:function(n,t,i){var r=this;return s.object(n)?(i=t,Object.keys(n).forEach(function(t){s.fn(n[t])&&t.split(" ").forEach(function(e){r.addListener(e,n[t],i)})})):s.string(n)&&s.fn(t)&&n.split(" ").forEach(function(e){r.addListener(e,t,i)}),r},addListener:function(e,t,n){var i,r;return!(!s.string(e)||/\s/.test(e)||!s.fn(t))&&(i=this,r=o.Event.parse(e),n=s.undef(n)?i:n,s.array(i.events[r.type])||(i.events[r.type]=[]),!i.events[r.type].some(function(e){return e.namespace===r.namespace&&e.fn===t&&e.thisArg===n})&&(i.events[r.type].push({namespace:r.namespace,fn:t,thisArg:n}),!0))},off:function(n,t,i){var r=this;return s.object(n)?(i=t,Object.keys(n).forEach(function(t){t.split(" ").forEach(function(e){r.removeListener(e,n[t],i)})})):s.string(n)&&n.split(" ").forEach(function(e){r.removeListener(e,t,i)}),r},removeListener:function(e,t,n){var i,r;return!(!s.string(e)||/\s/.test(e))&&(i=this,r=o.Event.parse(e),e=[],n=s.undef(n)?i:n,s.empty(r.type)?s.empty(r.namespace)||e.push.apply(e,Object.keys(i.events)):e.push(r.type),e.forEach(function(e){s.array(i.events[e])&&(i.events[e]=i.events[e].filter(function(e){return null!=t?!(e.namespace===r.namespace&&e.fn===t&&e.thisArg===n):null!=r.namespace&&e.namespace!==r.namespace}),0===i.events[e].length&&delete i.events[e])}),!0)},trigger:function(e,t){t=s.array(t)?t:[];var n=this,i=[];return e instanceof o.Event?(i.push(e),n.emit(e,t)):s.string(e)&&e.split(" ").forEach(function(e){e=new o.Event(e);i.push(e),n.emit(e,t)}),s.empty(i)?null:1===i.length?i[0]:i},emit:function(t,n){var e;t instanceof FooGallery.utils.Event&&(e=this,n=s.array(n)?n:[],null===t.target&&(t.target=e),s.array(e.events[t.type])&&e.events[t.type].forEach(function(e){null!=t.namespace&&e.namespace!==t.namespace||e.fn.apply(e.thisArg,[t].concat(n))}),s.array(e.events.__all__)&&e.events.__all__.forEach(function(e){e.fn.apply(e.thisArg,[t].concat(n))}))}}))}(FooGallery.utils,FooGallery.utils.is,FooGallery.utils.str),function(e,i,t){"1.0.0"===e.version&&(e.Timer=e.EventClass.extend({construct:function(e){var t=this;t._super(),t.interval=i.number(e)?e:1e3,t.isRunning=!1,t.isPaused=!1,t.canResume=!1,t.canRestart=!1,t.__timeout=null,t.__decrement=!1,t.__time=0,t.__remaining=0,t.__current=0,t.__finish=0,t.__restart=[]},__reset:function(){var e=this;clearTimeout(e.__timeout),e.__timeout=null,e.__decrement=!1,e.__time=0,e.__remaining=0,e.__current=0,e.__finish=0,e.isRunning=!1,e.isPaused=!1,e.canResume=!1},__eventArgs:function(e){return[this.__current,this.__time,this.__decrement].concat(t.arg2arr(arguments))},__tick:function(){var e=this;e.trigger("tick",e.__eventArgs()),e.__current===e.__finish?(e.trigger("complete",e.__eventArgs()),e.__reset()):(e.__decrement?e.__current--:e.__current++,e.__remaining--,e.canResume=0<e.__remaining,e.__timeout=setTimeout(function(){e.__tick()},e.interval))},start:function(e,t){var n=this;n.isRunning||(t=!!i.boolean(t)&&t,n.__restart=[e,t],n.__decrement=t,n.__time=e,n.__remaining=e,n.__current=t?e:0,n.__finish=t?0:e,n.canRestart=!0,n.isRunning=!0,n.isPaused=!1,n.trigger("start",n.__eventArgs()),n.__tick())},countdown:function(e){this.start(e,!0)},countup:function(e){this.start(e,!1)},restart:function(){var e=this;e.stop(),e.canRestart&&e.start.apply(e,e.__restart)},stop:function(){var e=this;(e.isRunning||e.isPaused)&&(e.__reset(),e.trigger("stop",e.__eventArgs()))},pause:function(){var e=this;return null!=e.__timeout&&(clearTimeout(e.__timeout),e.__timeout=null),e.isRunning&&(e.isRunning=!1,e.isPaused=!0,e.trigger("pause",e.__eventArgs())),e.__remaining},resume:function(){var e=this;e.canResume&&(e.isRunning=!0,e.isPaused=!1,e.trigger("resume",e.__eventArgs()),e.__tick())},reset:function(){this.__reset(),this.trigger("reset",this.__eventArgs())}}))}((FooGallery.utils.$,FooGallery.utils),FooGallery.utils.is,FooGallery.utils.fn,FooGallery.utils.obj),function(o,e,t){"1.0.0"===e.version&&(e.FullscreenAPI=e.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 e in this.apis)if(this.apis.hasOwnProperty(e)&&this.apis[e].enabled in document)return this.apis[e];return null},element:function(){return this.supported?document[this.api.element]:null},request:function(e){return this.supported&&e[this.api.request]?e[this.api.request]()||o.Deferred(this.__resolver(this.api.request)).promise():t.rejected},exit:function(){return this.supported&&this.element()?document[this.api.exit]()||o.Deferred(this.__resolver(this.api.exit)).promise():t.rejected},toggle:function(e){return this.element()?this.exit():this.request(e)},__listen:function(){var e=this;e.supported&&o(document).on(e.api.events.change+".utils",function(){e.trigger("change")}).on(e.api.events.error+".utils",function(){e.trigger("error")})},__stopListening:function(){this.supported&&o(document).off(this.api.events.change+".utils").off(this.api.events.error+".utils")},__resolver:function(i){var r=this;return function(e){function t(){e.resolve(),o(document).off(r.api.events.change,t).off(r.api.events.error,n)}function n(){e.reject(new TypeError),o(document).off(r.api.events.change,t).off(r.api.events.error,n)}i===r.api.exit&&r.element()?setTimeout(function(){e.reject(new TypeError)},1):o(document).on(r.api.events.change,t).on(r.api.events.error,n)}}}))}(FooGallery.utils.$,FooGallery.utils,FooGallery.utils.fn),function(l,c,u,a){"1.0.0"===c.version&&(c.transition={},c.transition.dataName="__foo-transition__",c.transition.disableClassName=null,c.transition.timeout=3e3,c.transition.disable=function(e,t){var n,i,r,e=u.jq(e)?e:l(e);0<e.length&&u.fn(t)&&(n=e.get(0),r=null,(i=u.string(c.transition.disableClassName))?e.addClass(c.transition.disableClassName):(r={value:n.style.getPropertyValue("transition"),priority:n.style.getPropertyPriority("transition")},n.style.setProperty("transition","none","important")),t.call(t,e),e.prop("offsetWidth"),i?e.removeClass(c.transition.disableClassName):(n.style.removeProperty("transition"),u.string(r.value)&&0<r.value.length&&n.style.setProperty("transition",r.value,r.priority)))},c.transition.stop=function(e){var t=l.Deferred(),n=u.jq(e)?e:l(e);return 0<n.length?(e=n.data(c.transition.dataName),u.promise(e)?e.always(function(){c.requestFrame(function(){t.resolve(n)})}).reject(new Error("Transition cancelled.")):t.resolve(n)):t.reject(new Error("Unable to stop transition. Make sure the element exists.")),t.promise()},c.transition.createListener=function(e,t,n){var i=e,r=t,o=n,s=u.string(n);return function(e){var t=e.originalEvent instanceof TransitionEvent?e.originalEvent:e,n=!1;(n=t.target===i?!s||t.propertyName===o:n)&&r.apply(r,a.arg2arr(arguments))}},c.transition.start=function(e,n,i,r){var o,s=l.Deferred(),a=u.jq(e)?e:l(e);return 0<a.length&&u.fn(n)?(o=a.get(0),c.transition.stop(a).always(function(){var t=c.transition.createListener(o,function(){s.resolve(a)},i);a.data(c.transition.dataName,s).on("transitionend.foo-utils",t).prop("offsetWidth"),c.requestFrame(function(){var e=setTimeout(function(){s.reject(new Error("Transition safety timeout triggered."))},u.number(r)?r:c.transition.timeout);s.always(function(){clearTimeout(e),a.removeData(c.transition.dataName).off("transitionend.foo-utils",t)}),n.call(n,a)})})):s.reject(new Error("Unable to perform transition. Make sure the element exists and a trigger function is supplied.")),s.promise()},c.transition.modify=function(e,t,n,i){e=u.jq(e)?e:l(e);return 0<e.length&&u.fn(t)?n?(c.transition.disable(e,t),a.resolve()):c.transition.start(e,t,i):a.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(o,s,e,a,i,t){s.DATA_TEMPLATE="__FooGallery__",s.DATA_ITEM="__FooGalleryItem__",s.get=function(e){return o(e).data(s.DATA_TEMPLATE)},s.init=function(t,n){if(0<(n=a.jq(n)?n:o(n)).length){var e=n.data(s.DATA_TEMPLATE);if(e instanceof s.Template)return e.destroy(!0).then(function(){var e=s.template.make(t,n);return e instanceof s.Template?e.initialize():i.rejected})}e=s.template.make(t,n);return e instanceof s.Template?e.initialize():i.rejected},o.fn.foogallery=function(i,r){return r=a.fn(r)?r:o.noop,this.each(function(e,t){if(a.string(i)){var n=o.data(t,s.DATA_TEMPLATE);if(n instanceof s.Template)switch(i){case"layout":return void n.layout();case"destroy":return void n.destroy()}}else s.init(i,t).then(r)})},s.isCached=function(e){var t=new Image,e=(t.src=e,t.complete);return t.src="",t=null,e},s.supportedExifProperties=["camera","aperture","created_timestamp","shutter_speed","focal_length","iso","orientation"],a.exif=function(t){var e;return!!a.object(t)&&(0<(e=Object.keys(t)).length&&e.some(function(e){return-1!==s.supportedExifProperties.indexOf(e)&&!a.empty(t[e])}))},t.trimTo=function(e,t,n){return a.string(e)&&a.number(t)&&0<t&&e.length>t?e.substr(0,t)+(a.string(n)?n:"…"):e},e.getResizeObserverSize=function(e){var t,e=e.contentBoxSize?(e.contentBoxSize[0]?(t=e.contentBoxSize[0].inlineSize,e.contentBoxSize[0]):(t=e.contentBoxSize.inlineSize,e.contentBoxSize)).blockSize:(t=e.contentRect.width,e.contentRect.height);return{width:t,height:e}},s.supportsWebP=!1;var n=new Image;n.onload=function(){s.supportsWebP=0<n.width&&0<n.height},n.onerror=function(){s.supportsWebP=!1},n.src="data:image/webp;base64,UklGRhoAAABXRUJQVlA4TA0AAAAvAAAAEAcQERGIiP4HAA==",s.supportsPicture=!!window.HTMLPictureElement,e.DOMEventListeners=e.Class.extend({construct:function(){this.eventTargets=new Map},add:function(e,t,n,i){e.addEventListener(t,n,i);let r=this.eventTargets.get(e);return r||(r=new Map,this.eventTargets.set(e,r)),!r.get(t)&&(r.set(t,{listener:n,options:i}),!0)},remove:function(e,t){let n=this.eventTargets.get(e);var i;!n||(i=n.get(t))&&(e.removeEventListener(t,i.listener,i.options),n.delete(t),0===n.size&&this.eventTargets.delete(e))},clear:function(){this.eventTargets.forEach(function(e,n){e.forEach(function(e,t){n.removeEventListener(t,e.listener,e.options)})}),this.eventTargets.clear()}}),e.Timeouts=e.Class.extend({construct:function(){this.instances=new Map},has:function(e){return this.instances.has(e)},get:function(e){return this.instances.get(e)},set:function(e,t,n){const i=this;i.delete(e);n={id:setTimeout(function(){i.instances.delete(e),t.call(i)},n),delay:n,fn:t};return this.instances.set(e,n),i},delete:function(e){var t;return!!this.instances.has(e)&&(t=this.instances.get(e),clearTimeout(t.id),this.instances.delete(e))},clear:function(){this.instances.forEach(function(e){clearTimeout(e.id)}),this.instances.clear()}})}(FooGallery.$,FooGallery,FooGallery.utils,FooGallery.utils.is,FooGallery.utils.fn,FooGallery.utils.str),function(o,e,t,a,l){e.Icons=t.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>',search:'<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path d="M16 13.5l-4.695-4.695c0.444-0.837 0.695-1.792 0.695-2.805 0-3.314-2.686-6-6-6s-6 2.686-6 6 2.686 6 6 6c1.013 0 1.968-0.252 2.805-0.695l4.695 4.695 2.5-2.5zM2 6c0-2.209 1.791-4 4-4s4 1.791 4 4-1.791 4-4 4-4-1.791-4-4z"></path></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(e,t){return!(a.empty(e)||a.empty(t)||!a.string(e)||!a.hash(t))&&(this.registered[e]=l.extend({},this.registered.default,t),!0)},get:function(e,t){var n=this,i="default",r=l.extend({},n.registered.default),t=(a.string(t)&&"default"!==t?r=l.extend(r,n.registered[i=t]):a.hash(t)&&(i="custom",r=l.extend(r,t)),a.string(e)&&r.hasOwnProperty(e)?r[e].replace(/\[ICON_CLASS]/g,n.className+"-"+e):null),r=[!1,e,i].map(function(e){return!1===e?n.className:n.className+"-"+e}).join(" ");return o(t).addClass(r)},element:function(e,t){const n=this;let i="default",r=l.extend({},n.registered.default);a.string(t)&&"default"!==t?(i=t,r=l.extend(r,n.registered[t])):a.hash(t)&&(i="custom",r=l.extend(r,t));t=a.string(e)&&r.hasOwnProperty(e)?r[e].replace(/\[ICON_CLASS]/g,n.className+"-"+e):null;if(null!==t){const o=document.createRange().createContextualFragment(t),s=o.querySelector("svg");if(s)return["","-"+e,"-"+i].forEach(function(e){s.classList.add(n.className+e)}),s}return null}}),e.icons=new e.Icons}(FooGallery.$,FooGallery,FooGallery.utils,FooGallery.utils.is,FooGallery.utils.obj),function(r,n,i,o,s){var a="__FooGallerySwipe__",e="ontouchstart"in window,l=window.navigator.msPointerEnabled&&!window.navigator.pointerEnabled&&!e,c=(window.navigator.pointerEnabled||window.navigator.msPointerEnabled)&&!e,u=e||c;n.Swipe=i.Class.extend({construct:function(e,t){var n=this,i=".fgswipe";n.$el=r(e),n.opt=s.extend({threshold:20,allowPageScroll:!1,swipe:r.noop,data:{}},t),n.active=!1,n.startPoint=null,n.endPoint=null,n.events={start:(u?c?l?"MSPointerDown":"pointerdown":"touchstart":"mousedown")+i,move:(u?c?l?"MSPointerMove":"pointermove":"touchmove":"mousemove")+i,end:(u?c?l?"MSPointerUp":"pointerup":"touchend":"mouseup")+i,leave:(!u||c?"mouseleave":null)+i}},init:function(){var e=this;e.$el.on(e.events.start,{self:e},e.onStart),e.$el.on(e.events.move,{self:e},e.onMove),e.$el.on(e.events.end,{self:e},e.onEnd),o.string(e.events.leave)&&e.$el.on(e.events.leave,{self:e},e.onEnd),e.$el.data(a,e)},destroy:function(){var e=this;e.$el.off(e.events.start,e.onStart),e.$el.off(e.events.move,e.onMove),e.$el.off(e.events.end,e.onEnd),o.string(e.events.leave)&&e.$el.off(e.events.leave,e.onEnd),e.$el.removeData(a)},getAngle:function(e,t){e=Math.atan2(e.x-t.x,e.y-t.y),t=Math.round(180*e/Math.PI);return 360-(t<0?360-Math.abs(t):t)},getDistance:function(e,t){var n=t.x-e.x,t=t.y-e.y;return n*=n,t*=t,Math.sqrt(n+t)},getDirection:function(e,t){e=this.getAngle(e,t);return 337.5<e||e<=22.5?"N":22.5<e&&e<=67.5?"NE":67.5<e&&e<=112.5?"E":112.5<e&&e<=157.5?"SE":157.5<e&&e<=202.5?"S":202.5<e&&e<=247.5?"SW":247.5<e&&e<=292.5?"W":292.5<e&&e<=337.5?"NW":"NONE"},getPoint:function(e){var t;return u&&!o.empty(t=e.originalEvent.touches||e.touches)?{x:t[0].pageX,y:t[0].pageY}:o.number(e.pageX)&&o.number(e.pageY)?{x:e.pageX,y:e.pageY}:null},getOffset:function(e){var t=this.$el.offset();return{left:e.x-t.left,top:e.y-t.top}},onStart:function(e){var t=e.data.self,e=t.getPoint(e);o.empty(e)||(t.active=!0,t.startPoint=t.endPoint=e)},onMove:function(e){var t=e.data.self,n=t.getPoint(e);t.active&&!o.empty(n)&&(t.endPoint=n,t.opt.allowPageScroll?o.hash(t.opt.allowPageScroll)&&(n=t.getDirection(t.startPoint,t.endPoint),t.opt.allowPageScroll.x||-1===i.inArray(n,["NE","E","SE","NW","W","SW"])||e.preventDefault(),t.opt.allowPageScroll.y||-1===i.inArray(n,["NW","N","NE","SW","S","SE"])||e.preventDefault()):e.preventDefault())},onEnd:function(e){var t,e=e.data.self;e.active&&(e.active=!1,t={startPoint:e.startPoint,endPoint:e.endPoint,startOffset:e.getOffset(e.startPoint),endOffset:e.getOffset(e.endPoint),angle:e.getAngle(e.startPoint,e.endPoint),distance:e.getDistance(e.startPoint,e.endPoint),direction:e.getDirection(e.startPoint,e.endPoint)},0<e.opt.threshold&&t.distance<e.opt.threshold||(e.opt.swipe.apply(this,[t,e.opt.data]),e.startPoint=null,e.endPoint=null))}}),r.fn.fgswipe=function(t){return this.each(function(){var e=r(this).data(a);if(e instanceof n.Swipe){if(o.string(t)&&o.fn(e[t]))return void e[t]();e.destroy()}o.hash(t)&&(e=new n.Swipe(this,t)).init()})}}(FooGallery.$,FooGallery,FooGallery.utils,FooGallery.utils.is,FooGallery.utils.obj),function(r,e,t,o,s,a){e.Factory=t.Class.extend({construct:function(){this.registered={}},contains:function(e){return!o.undef(this.registered[e])},make:function(e,t,n){var i,r=s.arg2arr(arguments);return e=r.shift(),i=this.registered[e],o.hash(i)&&o.fn(i.klass)?s.apply(i.klass,r):null},names:function(e){e=!!o.boolean(e)&&e;var t,n=[];if(e){var i=[];for(t in this.registered)this.registered.hasOwnProperty(t)&&i.push(this.registered[t]);i.sort(function(e,t){return t.priority-e.priority}),r.each(i,function(e,t){n.push(t.name)})}else for(t in this.registered)this.registered.hasOwnProperty(t)&&n.push(t);return n},register:function(e,t,n){if(!o.string(e)||o.empty(e)||!o.fn(t))return!1;n=o.number(n)?n:0;var i=this.registered[e];return this.registered[e]={name:e,klass:t,priority:o.undef(i)?n:i.priority},!0},load:function(){var e,n=this,i=[],t=[];for(e in n.registered)n.registered.hasOwnProperty(e)&&t.push(n.registered[e]);return t.sort(function(e,t){return t.priority-e.priority}),r.each(t,function(e,t){i.push(n.make(t.name))}),i},configure:function(e,t,n,i){var r;this.contains(e)&&(r=this.registered,a.extend(r[e].opt,t),a.extend(r[e].cls,n),a.extend(r[e].il8n,i))}})}(FooGallery.$,FooGallery,FooGallery.utils,FooGallery.utils.is,FooGallery.utils.fn,FooGallery.utils.obj),function(l,s,c,u,a){s.TemplateFactory=s.Factory.extend({construct:function(){this.registered={}},register:function(e,t,n,i,r,o){t=this._super(e,t,o);return t&&((o=this.registered)[e].opt=u.hash(n)?n:{},o[e].cls=u.hash(i)?i:{},o[e].il8n=u.hash(r)?r:{}),t},make:function(e,t){t=u.jq(t)?t:l(t),e=a.extend({},e,t.data("foogallery"));var n=this.type(e,t);return this.contains(n)?(e=this.options(n,e),this._super(n,e,t)):null},type:function(e,t){t=u.jq(t)?t:l(t);var n=u.hash(e)&&u.hash(e)&&u.string(e.type)&&this.contains(e.type)?e.type:null;if(null===n&&0<t.length)for(var i=this.registered,r=this.names(!0),o=0,s=r.length;o<s;o++)if(i.hasOwnProperty(r[o])&&"core"!==r[o]){var a=i[r[o]].cls;if(u.string(a.container)){a=c.selectify(a.container);if(t.is(a)){n=r[o];break}}}return n},options:function(e,t){t=a.extend({type:e},t);var n=this.registered,i=n.core.opt,r=n.core.cls,o=n.core.il8n;return u.hash(t.cls)||(t.cls={}),u.hash(t.il8n)||(t.il8n={}),u.undef(s.filtering)||(t=s.filtering.merge(t)),u.undef(s.paging)||(t=s.paging.merge(t)),"core"!==e&&this.contains(e)?((t=a.extend({},i,n[e].opt,t)).cls=a.extend({},r,n[e].cls,t.cls),t.il8n=a.extend({},o,n[e].il8n,t.il8n)):((t=a.extend({},i,t)).cls=a.extend({},r,t.cls),t.il8n=a.extend({},o,t.il8n)),t}}),s.template=new s.TemplateFactory}(FooGallery.$,FooGallery,FooGallery.utils,FooGallery.utils.is,(FooGallery.utils.fn,FooGallery.utils.obj)),function(i,r,o,s,a){var l=0;r.Template=o.EventClass.extend({construct:function(e,t){var n=this;n._super(),n.namespace=".foogallery-"+ ++l,n.$el=s.jq(t)?t:i(t),n.el=n.$el.get(0)||null,n.$scrollParent=null,n.opt=e,n.template=e.template,n.id=n.$el.prop("id")||e.id,n.cls=e.cls,n.il8n=e.il8n,n.sel=o.selectify(n.cls),n.items=r.components.make("items",n),n.pages=s.undef(r.paging)?null:r.paging.make(e.paging.type,n),n.filter=s.undef(r.filtering)?null:r.filtering.make(e.filtering.type,n),n.state=r.components.make("state",n),n._initialize=null,n._layoutTimeout=null,n._layoutWidths=[],n.lastWidth=0,n.initializing=!1,n.initialized=!1,n.destroying=!1,n.destroyed=!1,n._undo={classes:"",style:"",create:!1,children:!1},n.robserver=new ResizeObserver(a.throttle(function(e){n.destroying||n.destroyed||1!==e.length||e[0].target!==n.el||(e=o.getResizeObserverSize(e[0]),n.layout(e.width))},50))},initialize:function(t){var n=this;return s.promise(n._initialize)?n._initialize:n._initialize=i.Deferred(function(e){n.preInit(t)?n.init().then(function(){n.postInit()?(n.ready(),e.resolve(n)):e.reject("post-init failed")}).fail(e.reject):e.reject("pre-init failed")}).fail(function(e){return console.log("initialize failed",n,e),n.destroy()}).promise()},preInit:function(e){var t=this;if(t.destroying)return!1;if(e=s.jq(e)?e:i(e),t.initializing=!0,0===e.length&&0===t.$el.parent().length)return!1;0===t.$el.length&&(t.$el=t.create(),t.el=t.$el.get(0),t._undo.create=!0),0<e.length&&t.$el.appendTo(e),s.empty(t.opt.scrollParent)||0===(e=i(t.opt.scrollParent)).length?t.$scrollParent=i(document):t.$scrollParent=e.is("html")?i(document):e,t.$el.data(r.DATA_TEMPLATE,t),s.empty(t.opt.on)||t.on(t.opt.on),t._undo.classes=t.$el.attr("class"),t._undo.style=t.$el.attr("style"),t.$el.is(t.sel.container)||t.$el.addClass(t.cls.container);e=o.selectify(t.opt.classes);return null==e||t.$el.is(e)||t.$el.addClass(t.opt.classes),0===t.$el.children().not(t.sel.item.elem).length&&(t.$el.append(t.createChildren()),t._undo.children=!0),t.opt.protected&&(t.el.oncontextmenu=function(e){return e.preventDefault(),!1}),!t.trigger("pre-init").isDefaultPrevented()},init:function(){return this.trigger("init").isDefaultPrevented()?a.reject("init default prevented"):this.items.fetch()},postInit:function(){var e=this;return!e.destroying&&(!e.trigger("post-init").isDefaultPrevented()&&(e.state.init(),e.pages&&e.pages.init(),i(window).on("popstate"+e.namespace,{self:e},e.onWindowPopState),e.robserver.observe(e.el),!0))},ready:function(){return!this.destroying&&(this.initializing=!1,this.initialized=!0,this.trigger("ready"),!0)},create:function(){return i("<div/>",{id:this.id,class:this.cls.container}).addClass(this.opt.classes)},createChildren:function(){return i()},destroy:function(t){var n=this,e=n._super.bind(n);return n.destroyed?a.resolved:(n.destroying=!0,i.Deferred(function(e){n.initializing&&s.promise(n._initialize)?n._initialize.always(function(){n.destroying=!1,n.doDestroy(t),e.resolve()}):(n.destroying=!1,n.doDestroy(t),e.resolve())}).then(function(){e()}).promise())},doDestroy:function(e){var t=this;t.destroyed||(t.trigger("destroy"),t.robserver.disconnect(),i(window).off(t.namespace),t.state.destroy(e),t.filter&&t.filter.destroy(),t.pages&&t.pages.destroy(),t.items.destroy(),s.empty(t.opt.on)||t.$el.off(t.opt.on),t.trigger("destroyed"),t.$el.removeData(r.DATA_TEMPLATE),s.empty(t._undo.classes)?t.$el.removeAttr("class"):t.$el.attr("class",t._undo.classes),s.empty(t._undo.style)?t.$el.removeAttr("style"):t.$el.attr("style",t._undo.style),t._undo.children&&t.destroyChildren(),t._undo.create&&t.$el.remove(),t.$el=t.state=t.items=t.pages=null,t.destroyed=!0,t.initializing=!1,t.initialized=!1)},destroyChildren:function(){},getAvailable:function(){return(this.pages||this.items).available()},layout:function(e){var t=this;null===t._initialize||0===(e=s.number(e)?e:t.el.getBoundingClientRect().width)||t._checkWidth(e)||(t.lastWidth=e,t.trigger("layout",[e]))},_checkWidth:function(e){var t,n=this;return(t=-1!==n._layoutWidths.indexOf(e))||(n._layoutWidths.unshift(e),n._layoutWidths.splice(2,n._layoutWidths.length-2),null!=n._layoutTimeout&&clearTimeout(n._layoutTimeout),n._layoutTimeout=setTimeout(function(){n._layoutWidths.splice(0,n._layoutWidths.length)},100)),t},getCSSClass:function(e,t){t=s.empty(t)?"":t;var e=e instanceof RegExp?e:s.string(e)&&this.opt.regex.hasOwnProperty(e)?this.opt.regex[e]:null,n=this.$el.prop("className")||"",n=null!=e?n.match(e):null;return null!=n&&2<=n.length?n[1]:t},onWindowPopState:function(e){var t=e.data.self,e=e.originalEvent.state;s.empty(e)||e.id!==t.id||t.state.set(e)}}),r.template.register("core",r.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(e,t){e.Component=t.EventClass.extend({construct:function(e){this._super(),this.tmpl=e},destroy:function(){this.tmpl=null,this._super()}}),e.components=new e.Factory}(FooGallery,FooGallery.utils,FooGallery.utils.is),function(t,o,n,s,a,l){o.State=o.Component.extend({construct:function(e){var t=this,e=(t._super(e),t.apiEnabled=!!window.history&&!!history.replaceState,t.opt=t.tmpl.opt.state,t.enabled=t.opt.enabled,t.current={filter:[],page:0,item:null},t.pushOrReplace=t.isPushOrReplace(t.opt.pushOrReplace)?t.opt.pushOrReplace:"replace",t.defaultMask="foogallery-gallery-{id}",a.escapeRegExp(t.tmpl.id)),n=a.escapeRegExp(t.getMasked()),i=a.escapeRegExp(t.opt.values),r=a.escapeRegExp(t.opt.pair);t.regex={exists:new RegExp("^#"+e+"\\"+i+".+?"),masked:new RegExp("^#"+n+"\\"+i+".+?"),values:new RegExp("(\\w+)"+r+"([^"+i+"]+)","g")}},destroy:function(e){e||this.clear(),this.opt=this.regex={},this._super()},init:function(){this.set(this.initial())},getIdNumber:function(){return this.tmpl.id.match(/\d+/g)[0]},getMasked:function(){var e=a.contains(this.opt.mask,"{id}")?this.opt.mask:this.defaultMask;return a.format(e,{id:this.getIdNumber()})},isPushOrReplace:function(e){return-1!==n.inArray(e,["push","replace"])},exists:function(){return this.regex.values.lastIndex=0,(this.regex.exists.test(location.hash)||this.regex.masked.test(location.hash))&&this.regex.values.test(location.hash)},parse:function(){var e,r=this,o=r.tmpl,s={};return r.exists()&&(r.enabled?(s.id=r.tmpl.id,r.regex.values.lastIndex=0,e=location.hash.match(r.regex.values),t.each(e,function(e,t){var n,i=t.split(r.opt.pair);if(2===i.length)switch(i[0]){case r.opt.itemKey:null!==(n=o.items.fromHash(i[1]))&&(s.item=n);break;case r.opt.pageKey:o.pages&&null!==(n=o.pages.fromHash(i[1]))&&(s.page=n);break;case r.opt.filterKey:o.filter&&null!==(n=o.filter.fromHash(i[1]))&&(s.filter=n)}})):r.apiEnabled?history.replaceState(null,"",location.pathname+location.search):location.hash="#"),s},hashify:function(e){var t,n,i=this,r=i.tmpl;return s.hash(e)?(t=[],null!==(n=r.items.toHash(e.item))&&t.push(i.opt.itemKey+i.opt.pair+n),r.filter&&null!==(n=r.filter.toHash(e.filter))&&t.push(i.opt.filterKey+i.opt.pair+n),r.pages&&null!==(n=r.pages.toHash(e.page))&&t.push(i.opt.pageKey+i.opt.pair+n),0<t.length&&t.unshift("#"+i.getMasked()),t.join(i.opt.values)):""},replace:function(e){var t,n;this.enabled&&this.apiEnabled&&(e.id=this.tmpl.id,t=this.hashify(e),n=s.empty(t),e=l.extend({},e,{item:e.item instanceof o.Item?e.item.id:e.item}),history.replaceState(n?null:e,"",n?location.pathname+location.search:t))},push:function(e){var t,n;this.enabled&&this.apiEnabled&&(e.id=this.tmpl.id,t=this.hashify(e),n=s.empty(t),e=l.extend({},e,{item:e.item instanceof o.Item?e.item.id:e.item}),history.pushState(n?null:e,"",n?location.pathname+location.search:t))},update:function(e,t){var n=this;n.enabled&&n.apiEnabled&&(t=n.isPushOrReplace(t)?t:n.pushOrReplace,n[t](e))},clear:function(){this.exists()&&this.replace({})},initial:function(){var e=this.parse();return s.empty(e)?this.get():l.extend({filter:[],page:1,item:null},e)},get:function(e){var t,n=this.tmpl,i={};return e instanceof o.Item&&(i.item=e),n.filter&&null!==(t=n.filter.getState())&&(i.filter=t),n.pages&&null!==(t=n.pages.getState())&&(i.page=t),l.extend({filter:[],page:1,item:null},i)},set:function(e){var t,n,i,r=this.tmpl;s.hash(e)&&(t=l.extend({filter:[],page:1,item:null},e),r.items.reset(),r.trigger("before-state",[t]).isDefaultPrevented()||(r.filter&&r.filter.setState(t),r.pages?r.pages.setState(t):(n=r.items.available(),r.items.isAll(n)||(i=r.items.not(n),r.items.detach(i)),r.items.create(n,!0)),t.item instanceof o.Item&&(this.opt.scrollTo&&t.item.scrollTo(),s.empty(e.item)||(e.item=null,this.replace(e))),this.current=t,r.trigger("after-state",[t])))}}),o.template.configure("core",{state:{enabled:!1,scrollTo:!0,pushOrReplace:"replace",mask:"foogallery-gallery-{id}",values:"/",pair:":",array:"+",arraySeparator:",",itemKey:"i",filterKey:"f",pageKey:"p"}}),o.components.register("state",o.State)}(FooGallery.$,FooGallery,FooGallery.utils,FooGallery.utils.is,FooGallery.utils.str,FooGallery.utils.obj),function(s,o,n,a,i,l){o.Items=o.Component.extend({construct:function(e){var t=this,e=(t.ALLOW_CREATE=!0,t.ALLOW_APPEND=!0,t.LAYOUT_AFTER_LOAD=!0,t._super(e),t._typeRegex=/(?:^|\s)?fg-type-(.*?)(?:$|\s)/,t._fetched=null,t._all=[],t._available=[],t._unavailable=[],t._observed=new Map,t.tmpl.cls.item.caption);t.tmpl.sel.item.caption.all=n.selectify([e.elem,e.inner,e.title,e.description]),t._wait=[],t._layoutTimeout=null,t.iobserver=new IntersectionObserver(function(e){t.tmpl.destroying||t.tmpl.destroyed||(t.LAYOUT_AFTER_LOAD&&clearTimeout(t._layoutTimeout),e.forEach(function(e){e.isIntersecting&&(e=t._observed.get(e.target))instanceof o.Item&&t._wait.push(e.load())}),t.LAYOUT_AFTER_LOAD&&(t._layoutTimeout=setTimeout(function(){0<t._wait.length&&i.allSettled(t._wait.splice(0)).then(function(){t.tmpl.layout()})},100)))})},fromHash:function(t){return this.find(this._all,function(e){return e.id===t})},toHash:function(e){return e instanceof o.Item?e.id:null},destroy:function(){var e=this,t=e.all();e.iobserver.disconnect(),0<t.length&&(e.tmpl.trigger("destroy-items",[t]),0<(t=s.map(t,function(e){return e.destroy()?e:null})).length&&e.tmpl.trigger("destroyed-items",[t])),e._fetched=null,e._all=[],e._available=[],e._unavailable=[],e._observed.clear(),e._super()},fetch:function(e){var t,i,r,o,n=this;return!e&&a.promise(n._fetched)?n._fetched:(e=n.tmpl.id+"_items",t=n.tmpl.sel,i=n.tmpl.opt.items,r=s.Deferred(),o=n.make(n.tmpl.$el.find(t.item.elem)),a.empty(i)?(a.array(window[e])&&o.push.apply(o,n.make(window[e])),r.resolve(o)):a.array(i)?(o.push.apply(o,n.make(i)),r.resolve(o)):a.string(i)?s.get(i).then(function(e){o.push.apply(o,n.make(e)),r.resolve(o)},function(e,t,n){console.log("FooGallery: GET items error.",i,e,t,n),r.resolve(o)}):r.resolve(o),r.then(function(e){n.setAll(e)}),n._fetched=r.promise())},toJSON:function(e){return(e?this.all():this.available()).map(function(e){return e.toJSON()})},all:function(){return this._all.slice()},count:function(e){return(e?this.all():this.available()).length},available:function(e){return a.fn(e)?this._available.filter(e,this):this._available.slice()},unavailable:function(e){return a.fn(e)?this._unavailable.filter(e,this):this._unavailable.slice()},setAll:function(e){this._all=a.array(e)?e:[],this._all.forEach(function(e,t){e.index=t,a.empty(e.id)&&(e.id=t+1+"")}),this._available=this.all(),this._unavailable=[]},setAvailable:function(e){var t=this;t._available=a.array(e)?e:[],t._all.length!==t._available.length?t._unavailable=t._all.filter(function(e){return-1===t._available.indexOf(e)}):t._unavailable=[]},reset:function(){this.setAvailable(this.all())},find:function(e,t){if(t=a.fn(t)?t:function(){return!0},a.array(e))for(var n=0,i=e.length;n<i;n++)if(!0===t.call(this,e[n]))return e[n];return null},not:function(t){var e=this.all();return a.array(t)?e.filter(function(e){return-1===t.indexOf(e)}):e},isAll:function(e){return!!a.array(e)&&this._all.length===e.length},first:function(e){return this.find(this._available,e)},last:function(e){return this.find(this._available.slice().reverse(),e)},next:function(e,t,n){if(!(e instanceof o.Item))return null;n=!!a.boolean(n)&&n;var i,r=this._available.slice(),e=r.indexOf(e);return-1!==e?(i=r.slice(0,e),r=r.slice(e+1),n&&(r=r.concat(i)),this.find(r,t)):null},prev:function(e,t,n){if(!(e instanceof o.Item))return null;n=!!a.boolean(n)&&n;var i,r=this._available.slice().reverse(),e=r.indexOf(e);return-1!==e?(i=r.slice(0,e),r=r.slice(e+1),n&&(r=r.concat(i)),this.find(r,t)):null},get:function(t,e){e=e?this._all:this._available;return a.number(t)?0<=t&&t<this._all.length?e[t]:null:this.find(e,function(e){return e.el===t})},indexOf:function(e,t){return(t?this._all:this._available).indexOf(e)},creatable:function(e){return this.ALLOW_CREATE&&a.array(e)?s.map(e,function(e){return e instanceof o.Item&&!e.isCreated?e:null}):[]},appendable:function(e){return this.ALLOW_APPEND&&a.array(e)?s.map(e,function(e){return e instanceof o.Item&&e.isCreated&&!e.isAttached?e:null}):[]},detachable:function(e){return a.array(e)?s.map(e,function(e){return e instanceof o.Item&&e.isCreated&&e.isAttached?e:null}):[]},jquerify:function(e){return s(s.map(e,function(e){return e.$el.get()}))},make:function(e){var i=this,t=[];if(a.jq(e)||a.array(e)){var r=[],e=s.makeArray(e);if(0===e.length)return t;0<(t=i.tmpl.trigger("make-items",[e]).isDefaultPrevented()?t:s.map(e,function(e){var t=i.type(e),n=l.extend(a.hash(e)?e:{},{type:t}),t=o.components.make(t,i.tmpl,n);return a.element(e)?t.parse(e)?(r.push(t),i.ALLOW_APPEND||t.detach(),t):null:t})).length&&i.tmpl.trigger("made-items",[t]),0<r.length&&i.tmpl.trigger("parsed-items",[r])}return t},type:function(e){var t;return a.hash(e)?t=e.type:a.element(e)&&null!==(e=e.className.match(this._typeRegex))&&2===e.length&&(t=e[1]),a.string(t)&&o.components.contains(t)?t:"image"},create:function(e,t){var n=[],i=this.creatable(e);return 0<i.length&&0<(n=this.tmpl.trigger("create-items",[i]).isDefaultPrevented()?n:s.map(i,function(e){return e.create()?e:null})).length&&this.tmpl.trigger("created-items",[n]),a.boolean(t)&&t?this.append(e):n},append:function(e){var t=[],e=this.appendable(e);return 0<e.length&&0<(t=this.tmpl.trigger("append-items",[e]).isDefaultPrevented()?t:s.map(e,function(e){return e.append()?e:null})).length&&this.tmpl.trigger("appended-items",[t]),t},detach:function(e){var t=[],e=this.detachable(e);return 0<e.length&&0<(t=this.tmpl.trigger("detach-items",[e]).isDefaultPrevented()?t:s.map(e,function(e){return e.detach()?e:null})).length&&this.tmpl.trigger("detached-items",[t]),t},observe:function(e){!(this.iobserver&&e.isCreated&&e.isAttached)||e.isLoading&&e.isLoaded||(this.iobserver.observe(e.el),this._observed.set(e.el,e))},unobserve:function(e){this.iobserver&&(this.iobserver.unobserve(e.el),this._observed.delete(e.el))}}),o.components.register("items",o.Items)}(FooGallery.$,FooGallery,FooGallery.utils,FooGallery.utils.is,FooGallery.utils.fn,FooGallery.utils.obj),function(y,b,_,w,o,x){b.Item=b.Component.extend({construct:function(e,t){var n=this;n._super(e),n.cls=e.cls.item,n.il8n=e.il8n.item,n.sel=e.sel.item,n.opt=o.extend({},e.opt.item,t),n.isAttached=!1,n.isCreated=!1,n.isDestroyed=!1,n.isLoading=!1,n.isLoaded=!1,n.isError=!1,n.isParsed=!1,n.isPicture=!1,n.$el=null,n.el=null,n.$inner=null,n.$anchor=null,n.$overlay=null,n.$wrap=null,n.$image=null,n.$caption=null,n.$loader=null,n.index=-1,n.type=n.opt.type,n.id=n.opt.id,n.productId=n.opt.productId,n.href=n.opt.href,n.placeholder=n.opt.placeholder,n.src=n.opt.src,n.srcset=n.opt.srcset,n.sources=n.opt.sources,n.width=n.opt.width,n.height=n.opt.height,n.title=n.opt.title,n.alt=n.opt.alt,n.caption=n.opt.caption,n.description=n.opt.description,n.attr=n.opt.attr,n.tags=n.opt.tags,n.maxCaptionLength=n.opt.maxCaptionLength,n.maxDescriptionLength=n.opt.maxDescriptionLength,n.showCaptionTitle=n.opt.showCaptionTitle,n.showCaptionDescription=n.opt.showCaptionDescription,n.noLightbox=n.opt.noLightbox,n.panelHide=n.opt.panelHide,n.exif=n.opt.exif,n.hasExif=w.exif(n.exif),n.ribbon=n.opt.ribbon,n.hasRibbon=w.hash(n.ribbon)&&w.string(n.ribbon.text)&&w.string(n.ribbon.type),n.buttons=n.opt.buttons,n._load=null,n._undo={classes:"",style:"",placeholder:!1}},destroy:function(){var e=this;return e.tmpl.trigger("destroy-item",[e]).isDefaultPrevented()||(e.isDestroyed=e.doDestroyItem()),e.isDestroyed&&(e.tmpl.trigger("destroyed-item",[e]),e._super()),e.isDestroyed},doDestroyItem:function(){var e=this;return e.isParsed?(e.$anchor.add(e.$caption).off("click.foogallery"),e.append(),e.tmpl.items.unobserve(e),w.empty(e._undo.classes)?e.$el.removeAttr("class"):e.$el.attr("class",e._undo.classes),w.empty(e._undo.style)?e.$el.removeAttr("style"):e.$el.attr("style",e._undo.style),e._undo.placeholder&&e.$image.prop("src")===e.placeholder&&e.$image.removeAttr("src")):e.isCreated&&(e.detach(),e.$el.remove()),!0},parse:function(e){var t=this,e=y(e);return!t.tmpl.trigger("parse-item",[t,e]).isDefaultPrevented()&&(t.isCreated=e.is(t.sel.elem))&&(t.isParsed=t.doParseItem(e)),t.isParsed&&(t.isLoaded||t.tmpl.items.observe(t),t.tmpl.trigger("parsed-item",[t])),t.isParsed},doParseItem:function(e){var n=this,t=n.cls,i=n.sel,r=e.get(0);if(n._undo.classes=e.attr("class")||"",n._undo.style=e.attr("style")||"",n.$el=e.data(b.DATA_ITEM,n),n.el=r,n.$inner=y(r.querySelector(i.inner)),n.$anchor=y(r.querySelector(i.anchor)).on("click.foogallery",{self:n},n.onAnchorClick),n.$image=y(r.querySelector(i.image)),n.$caption=y(r.querySelector(i.caption.elem)).on("click.foogallery",{self:n},n.onCaptionClick),n.$overlay=y(r.querySelector(i.overlay)),n.$wrap=y(r.querySelector(i.wrap)),n.$loader=y(r.querySelector(i.loader)),!(n.$el.length&&n.$inner.length&&n.$anchor.length&&n.$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.",n),n.isError=!0,n.tmpl.trigger("error-item",[n]),0!==n.$el.length&&n.$el.remove(),!1;n.isAttached=null!==r.parentNode,n.isLoading=n.$el.hasClass(t.loading),n.isLoaded=n.$el.hasClass(t.loaded),n.isError=n.$el.hasClass(t.error);var e=n.$anchor.data(),i=(n.id=e.id||n.id,n.productId=e.productId||n.productId,n.tags=e.tags||n.tags,n.href=e.href||n.$anchor.attr("href")||n.href,r=n.$image.is("picture")?(n.isPicture=!0,n.sources=n.$image.find("source").map(function(e,t){return{srcset:t.getAttribute(n.tmpl.opt.srcset),type:t.getAttribute("type"),media:t.getAttribute("media"),sizes:t.getAttribute("sizes")}}).get(),n.$image.find("img")):n.$image,n.src=r.attr(n.tmpl.opt.src)||n.src,n.srcset=r.attr(n.tmpl.opt.srcset)||n.srcset,n.width=parseInt(r.attr("width"))||n.width,n.height=parseInt(r.attr("height"))||n.height,n.title=r.attr("title")||n.title,n.alt=r.attr("alt")||n.alt,n.caption=e.title||e.captionTitle||n.caption,n.description=e.description||e.captionDesc||n.description,n.noLightbox=n.$anchor.hasClass(t.noLightbox),n.panelHide=n.$anchor.hasClass(t.panelHide),w.exif(e.exif)&&(n.exif=o.extend(n.exif,e.exif),n.hasExif=!0),0<n.maxCaptionLength&&((e=x.trimTo(n.caption,n.maxCaptionLength))!==n.caption&&n.$caption.find(i.caption.title).html(e)),!n.maxDescriptionLength||(e=x.trimTo(n.description,n.maxDescriptionLength))!==n.description&&n.$caption.find(i.caption.description).html(e),r.get(0)),e=(w.string(i.src)&&0!==i.src.length||(w.string(n.placeholder)&&0!==n.placeholder.length||(n.placeholder=n.createPlaceholder(n.width,n.height)),0<n.placeholder.length&&(i.src=n.placeholder,n._undo.placeholder=!0)),n.getTypeClass());return n.$el.hasClass(e)||n.$el.addClass(e),n.hasExif&&!n.$el.hasClass(t.exif)&&n.$el.addClass(t.exif),!n.isCreated||!n.isAttached||n.isLoading||n.isLoaded||n.isError||n.$el.hasClass(t.idle)||n.$el.addClass(t.idle),n.doShortPixel(),!0},create:function(){var e=this;return!e.isCreated&&w.string(e.href)&&w.string(e.src)&&w.number(e.width)&&w.number(e.height)&&(e.tmpl.trigger("create-item",[e]).isDefaultPrevented()||(e.isCreated=e.doCreateItem()),e.isCreated&&e.tmpl.trigger("created-item",[e])),e.isCreated},_setAttributes:function(t,n){Object.keys(n).forEach(function(e){w.empty(n[e])||t.setAttribute(e,w.string(n[e])?n[e]:JSON.stringify(n[e]))})},doShortPixel:function(){var e,t=this;function n(e,t,n){return"/"===t||"/"===n?"/":t}t.tmpl.opt.shortpixel&&!b.supportsWebP&&(t.href=t.href.replace(e=/([\/,+])to_webp([\/,+])/i,n),t.src=t.src.replace(e,n),t.srcset=t.srcset.replace(e,n))},doCreateItem:function(){var i,e,r=this,t=r.cls,n=r.attr,o=r.hasExif?t.exif:"",s=(r.isLoaded=!r.tmpl.opt.lazy,r.isPicture=0<r.sources.length,r.doShortPixel(),document.createElement("div")),o=(r._setAttributes(s,n.elem),s.className=[t.elem,r.getTypeClass(),o,r.isLoaded?t.loaded:t.idle].join(" "),document.createElement("figure")),a=(r._setAttributes(o,n.inner),o.className=t.inner,[t.anchor]),l=(r.noLightbox&&a.push(t.noLightbox),r.panelHide&&a.push(t.panelHide),document.createElement("a")),a=(r._setAttributes(l,n.anchor),r._setAttributes(l,{class:a.join(" "),href:r.href,"data-id":r.id,"data-type":r.type,"data-title":r.caption,"data-description":r.description,"data-tags":r.tags,"data-exif":r.exif,"data-product-id":r.productId}),w.string(r.placeholder)&&0!==r.placeholder.length||(r.placeholder=r.createPlaceholder(r.width,r.height)),document.createElement("img")),c=(r._setAttributes(a,n.image),{class:t.image,src:r.placeholder,width:r.width+"",height:r.height+"",title:r.title,alt:r.alt}),c=(r.isLoaded?(c.src=r.src,c.srcset=r.srcset):(c[r.tmpl.opt.src]=r.src,c[r.tmpl.opt.srcset]=r.srcset),r._setAttributes(a,c),r.isPicture&&(i=document.createElement("picture"),r._setAttributes(i,n.picture),r.sources.forEach(function(e){var t=document.createElement("source"),n={media:e.media,sizes:e.sizes,type:e.type};r.isLoaded?n.srcset=e.srcset:n[r.tmpl.opt.srcset]=e.srcset,r._setAttributes(t,n),i.appendChild(t)}),i.appendChild(a)),r.hasRibbon&&((e=document.createElement("div")).className=r.ribbon.type,(c=document.createElement("span")).innerHTML=r.ribbon.text,e.appendChild(c)),document.createElement("span")),u=(c.className=t.overlay,document.createElement("span")),h=(u.className=t.wrap,document.createElement("div")),p=(h.className=t.loader,document.createElement("figcaption")),d=(r._setAttributes(p,n.caption.elem),p.className=t.caption.elem,document.createElement("div")),f=(r._setAttributes(d,n.caption.inner),d.className=t.caption.inner,null),g=r.showCaptionTitle&&w.string(r.caption)&&0<r.caption.length,f=(g&&(f=document.createElement("div"),r._setAttributes(f,n.caption.title),f.className=t.caption.title,f.innerHTML=0<r.maxCaptionLength?x.trimTo(r.caption,r.maxCaptionLength):r.caption,d.appendChild(f)),null),m=r.showCaptionDescription&&w.string(r.description)&&0<r.description.length,v=(m&&(f=document.createElement("div"),r._setAttributes(f,n.caption.description),f.className=t.caption.description,f.innerHTML=0<r.maxDescriptionLength?x.trimTo(r.description,r.maxDescriptionLength):r.description,d.appendChild(f)),null),n=w.array(r.buttons)&&0<r.buttons.length;return n&&((v=document.createElement("div")).className=t.caption.buttons,_.each(r.buttons,function(e){var t;w.hash(e)&&w.string(e.text)&&((t=document.createElement("a")).innerHTML=e.text,w.string(e.url)&&0<e.url.length&&(t.href=e.url),w.string(e.rel)&&0<e.rel.length&&(t.rel=e.rel),w.string(e.target)&&0<e.target.length&&(t.target=e.target),w.string(e.classes)&&0<e.classes.length&&(t.className=e.classes),w.hash(e.attr)&&r._setAttributes(t,e.attr),v.appendChild(t))}),d.appendChild(v)),p.appendChild(d),r.isPicture?u.appendChild(i):u.appendChild(a),l.appendChild(c),l.appendChild(u),o.appendChild(l),(g||m||n)&&o.appendChild(p),r.hasRibbon&&s.appendChild(e),s.appendChild(o),s.appendChild(h),r.$el=y(s).data(b.DATA_ITEM,r),r.el=s,r.$inner=y(o),r.$anchor=y(l).on("click.foogallery",{self:r},r.onAnchorClick),r.$overlay=y(c),r.$wrap=y(u),r.isPicture?r.$image=y(i):r.$image=y(a),r.$caption=y(p).on("click.foogallery",{self:r},r.onCaptionClick),r.$loader=y(h),!0},append:function(){var e=this;return e.isCreated&&!e.isAttached&&(e.tmpl.trigger("append-item",[e]).isDefaultPrevented()||(e.tmpl.$el.append(e.$el.removeClass(e.cls.hidden)),e.isAttached=!0),e.isAttached&&(e.isLoaded||e.tmpl.items.observe(e),e.tmpl.trigger("appended-item",[e]))),e.isAttached},detach:function(){var e=this;return e.isCreated&&e.isAttached&&(e.tmpl.items.unobserve(e),e.tmpl.trigger("detach-item",[e]).isDefaultPrevented()||(e.$el.detach().removeClass(e.cls.hidden),e.isAttached=!1),e.isAttached||e.tmpl.trigger("detached-item",[e])),!e.isAttached},load:function(){var n=this;return w.promise(n._load)?n._load:n._load=y.Deferred(function(t){return n.isLoaded?t.resolve(n):n.isCreated&&n.isAttached?n.tmpl.trigger("load-item",[n]).isDefaultPrevented()?t.reject("default prevented"):(n.isLoading=!0,n.tmpl.items.unobserve(n),n.$el.removeClass(n.cls.idle).removeClass(n.cls.hidden).removeClass(n.cls.loaded).removeClass(n.cls.error).addClass(n.cls.loading),void n.loadIMG().then(function(){n.isLoading=!1,n.isLoaded=!0,n.$el.removeClass(n.cls.loading).addClass(n.cls.loaded),n.tmpl.trigger("loaded-item",[n]),t.resolve(n)},function(e){n.isLoading=!1,n.isError=!0,n.$el.removeClass(n.cls.loading).addClass(n.cls.error),n.tmpl.trigger("error-item",[n]),t.reject(e)})):t.reject("not created or attached")}).promise()},loadIMG:function(){var o=this;return new y.Deferred(function(e){var t=(o.isPicture?o.$image.find("img"):o.$image).get(0);if(!t)return e.reject("Unable to find img element.");var n=t.src,i=t.srcset,r=(t.onload=function(){t.onload=t.onerror=null,t.style.removeProperty("width"),t.style.removeProperty("height"),e.resolve(t)},t.onerror=function(){t.onload=t.onerror=null,w.empty(n)?t.removeAttribute("src"):t.src=n,w.empty(i)?t.removeAttribute("srcset"):t.srcset=i,e.reject(t)},o.isPicture&&o.$image.find("source").each(function(e,t){var n=t.getAttribute(o.tmpl.opt.srcset);w.empty(n)||(t.srcset=n)}),t.getBoundingClientRect());t.style.width=r.width,t.style.height=r.height,t.src=o.src,w.empty(o.srcset)||(t.srcset=o.srcset),t.complete&&t.onload()}).promise()},createPlaceholder:function(e,t){return w.number(e)&&w.number(t)?"data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22"+e+"%22%20height=%22"+t+"%22%20viewBox=%220%200%20"+e+"%20"+t+"%22%3E%3C/svg%3E":""},getTypeClass:function(){return this.cls.types[this.type]||""},scrollTo:function(e){var t;return this.isAttached&&((t=this.$el.get(0)).scrollIntoViewIfNeeded?t.scrollIntoViewIfNeeded():t.scrollIntoView("top"===e)),this},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:o.extend({},this.attr)}},onAnchorClick:function(e){var t=e.data.self;t.tmpl.trigger("anchor-click-item",[t]).isDefaultPrevented()?e.preventDefault():t.updateState()},onCaptionClick:function(e){var t=e.data.self;!t.tmpl.trigger("caption-click-item",[t]).isDefaultPrevented()&&0<t.$anchor.length&&!y(e.target).is("a[href],:input")&&t.$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(e){e.Image=e.Item.extend({}),e.template.configure("core",null,{item:{types:{image:"fg-type-image"}}}),e.components.register("image",e.Image)}((FooGallery.$,FooGallery),(FooGallery.utils,FooGallery.utils.is)),function(e,c,u){e.PagingFactory=e.Factory.extend({construct:function(){this.registered={}},register:function(e,t,n,i,r,o,s){t=this._super(e,t,s);return t&&((s=this.registered)[e].ctrl=c.fn(n)?n:null,s[e].opt=c.hash(i)?i:{},s[e].cls=c.hash(r)?r:{},s[e].il8n=c.hash(o)?o:{}),t},type:function(e){return c.hash(e)&&c.hash(e=e.paging)&&c.string(e.type)&&this.contains(e.type)?e.type:null},merge:function(e){e=u.extend({},e);var t=this.type(e),n=this.registered,i=n.default.opt,r=n.default.cls,o=n.default.il8n,s=c.hash(e.paging)?e.paging:{},a=c.hash(e.cls)&&c.hash(e.cls.paging)?u.extend({},e.cls.paging):{},l=c.hash(e.il8n)&&c.hash(e.il8n.paging)?u.extend({},e.il8n.paging):{};return c.hash(e.cls)||(e.cls={}),c.hash(e.il8n)||(e.il8n={}),"default"!==t&&this.contains(t)?(e.paging=u.extend({},i,n[t].opt,s,{type:t}),e.cls=u.extend(e.cls,{paging:r},{paging:n[t].cls},{paging:a}),e.il8n=u.extend(e.il8n,{paging:o},{paging:n[t].il8n},{paging:l})):(e.paging=u.extend({},i,s,{type:t}),e.cls=u.extend(e.cls,{paging:r},{paging:a}),e.il8n=u.extend(e.il8n,{paging:o},{paging:l})),e},hasCtrl:function(e){e=this.registered[e];return c.hash(e)&&c.fn(e.ctrl)},makeCtrl:function(e,t,n,i){e=this.registered[e];return c.hash(e)&&c.fn(e.ctrl)?new e.ctrl(t,n,i):null}}),e.paging=new e.PagingFactory}(FooGallery,FooGallery.utils.is,(FooGallery.utils.fn,FooGallery.utils.obj)),function(t,o,i,l){o.Paging=o.Component.extend({construct:function(e){var t=this;t._super(e),t.opt=t.tmpl.opt.paging,t.cls=t.tmpl.cls.paging,t.il8n=t.tmpl.il8n.paging,t.sel=t.tmpl.sel.paging,t.pushOrReplace=t.opt.pushOrReplace,t.type=t.opt.type,t.theme=t.opt.theme,t.size=t.opt.size,t.position=t.opt.position,t.scrollToTop=t.opt.scrollToTop,t.current=0,t.total=0,t.ctrls=[],t._pages=[]},init:function(){},fromHash:function(e){e=parseInt(e);return isNaN(e)?null:e},toHash:function(e){return l.number(e)&&0<e?e.toString():null},getState:function(){return this.isValid(this.current)?this.current:null},setState:function(e){this.rebuild();var t=!1;e.item&&!this.contains(e.page,e.item)&&(e.page=this.find(e.item),e.page=0!==e.page?e.page:1,t=!0),this.set(e.page,t,!1,!1)},destroy:function(){var e=this;e._pages.splice(0,e._pages.length),t.each(e.ctrls.splice(0,e.ctrls.length),function(e,t){t.destroy()}),e._super()},build:function(){var e=this,t=e.tmpl.items.available();e.total=0<e.size&&0<t.length?Math.ceil(t.length/e.size):1;for(var n,i,r=0;r<e.total;r++)e._pages.push(t.splice(0,e.size));1<e.total&&o.paging.hasCtrl(e.type)&&("both"!==(n=e.position)&&"top"!==n||(i=o.paging.makeCtrl(e.type,e.tmpl,e,"top")).create()&&(i.append(),e.ctrls.push(i)),"both"!==n&&"bottom"!==n||(i=o.paging.makeCtrl(e.type,e.tmpl,e,"bottom")).create()&&(i.append(),e.ctrls.push(i)))},rebuild:function(){var e=this;e.current=0,e.total=0,e._pages.splice(0,e._pages.length),t.each(e.ctrls.splice(0,e.ctrls.length),function(e,t){t.destroy()}),e.build()},all:function(){return this._pages.slice()},available:function(){return this.get(this.current)},controls:function(n){this.isValid(n)&&t.each(this.ctrls,function(e,t){t.update(n)})},isValid:function(e){return l.number(e)&&0<e&&e<=this.total},number:function(e){return this.isValid(e)?e:0===this.current?1:this.current},create:function(e,t){var n=this,i=(e=n.number(e))-1,r=n._pages[i],t=t?n.tmpl.items.all():n._pages.reduce(function(e,t,n){return n===i?e:e.concat(t)},n.tmpl.items.unavailable());n.current=e,n.tmpl.items.detach(t),n.tmpl.items.create(r,!0)},get:function(e){return this.isValid(e)?(e=this.number(e),this._pages[e-1]):[]},set:function(e,t,n,i){var r=this;if(r.isValid(e)){r.controls(e);var o,s,a=r.number(e);if(a!==r.current)return s=r.current,!r.tmpl.trigger("before-page-change",[r.current,a,e=function(){var e;n=!l.boolean(n)||n,i=!!l.boolean(i)&&i,n&&1===r.current&&!r.tmpl.state.exists()&&(o=r.tmpl.state.get(),r.tmpl.state.update(o,r.pushOrReplace)),r.create(a,i),n&&(o=r.tmpl.state.get(),r.tmpl.state.update(o,r.pushOrReplace)),r.tmpl.trigger("page-change",[r.current,s,i]),r.scrollToTop&&l.boolean(t)&&t&&(0<(e=r.get(r.current)).length&&e[0].scrollTo("top")),r.tmpl.trigger("after-page-change",[r.current,s,i])},i]).isDefaultPrevented()&&(e(),!0)}return!1},find:function(e){for(var t=0,n=this._pages.length;t<n;t++)if(-1!==i.inArray(e,this._pages[t]))return t+1;return 0},contains:function(e,t){e=this.get(e);return-1!==i.inArray(t,e)},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(e){this.set(e,!0)}}),o.PagingControl=o.Component.extend({construct:function(e,t,n){var i=this;i._super(e),i.pages=t,i.position=n,i.$container=null,i._containerExisted=!1,i._placeholderClasses=[]},create:function(){var n=this;return n.$container=t("#"+n.tmpl.id+"_paging-"+n.position),0<n.$container.length?(n._containerExisted=!0,n.$container.removeClass(function(e,t){return n._placeholderClasses=t.match(/(^|\s)fg-ph-\S+/g)||[],n._placeholderClasses.join(" ")}).addClass([n.pages.cls.container,n.pages.theme].join(" "))):n.$container=t("<nav/>",{class:[n.pages.cls.container,n.pages.theme].join(" ")}),!0},destroy:function(){var e=this;e._containerExisted?e.$container.empty().removeClass().addClass(e._placeholderClasses.join(" ")):e.$container.remove(),e.$container=null},append:function(){var e=this;e._containerExisted||("top"===e.position?e.$container.insertBefore(e.tmpl.$el):e.$container.insertAfter(e.tmpl.$el))},update:function(e){}}),o.paging.register("default",o.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(l,e,a){e.Dots=e.Paging.extend({}),e.DotsControl=e.PagingControl.extend({construct:function(e,t,n){this._super(e,t,n),this.$list=null,this.$items=null},create:function(){var e=this;if(e._super()){for(var t,n=e.pages.cls,i=e.pages.il8n,r=[],o=l("<ul/>",{class:n.list}),s=0,a=e.pages.total;s<a;s++)r.push(t=e.createItem(s+1,i.page)),o.append(t);return e.$list=o,e.$items=l(l.map(r,function(e){return e.get()})),e.$container.append(o),!0}return!1},destroy:function(){var e=this,t=e.pages.sel;e.$list.find(t.link).off("click.foogallery",e.onLinkClick),e.$list=l(),e.$items=l(),e._super()},update:function(e){this.setSelected(e-1)},setSelected:function(e){var t=this,n=t.pages.cls,r=t.pages.il8n,o=t.pages.sel;t.$items.filter(o.selected).removeClass(n.selected).each(function(e,t){var t=l(t),n=t.data("label"),t=t.find(o.reader);a.string(n)&&0!==t.length&&t.html(n)}),t.$items.eq(e).addClass(n.selected).each(function(e,t){var t=l(t),n=t.find(o.reader),i=n.html();a.string(i)&&0!==n.length&&(t.data("label",i),n.html(r.current))})},createItem:function(e,t,n,i,r){n=a.string(n)?n:e,t=a.string(t)?t:"";var o=this.pages.opt,s=this.pages.cls,n=l("<a/>",{class:s.link,href:"#page-"+e}).html(n).on("click.foogallery",{self:this,page:e},this.onLinkClick),e=(a.empty(t)||n.attr("title",t.replace(/\{PAGE}/g,e).replace(/\{LIMIT}/g,o.limit+"")),r=a.string(r)?r:t,a.empty(r)||n.prepend(l("<span/>",{class:s.reader,text:r.replace(/\{PAGE}/g,"").replace(/\{LIMIT}/g,o.limit+"")})),l("<li/>",{class:s.item}).append(n));return i=a.string(i)?i:"",a.empty(i)||e.addClass(i),e},onLinkClick:function(e){e.preventDefault();var t=e.data.self,e=e.data.page,n=t.pages.sel;l(this).closest(n.item).is(n.disabled)||t.pages.set(e,!0)}}),e.paging.register("dots",e.Dots,e.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(e){e.DefaultTemplate=e.Template.extend({}),e.template.register("default",e.DefaultTemplate,null,{container:"foogallery fg-default"})}((FooGallery.$,FooGallery),FooGallery.utils),function(e){e.MasonryTemplate=e.Template.extend({construct:function(e,t){var n=this;n._super(e,t),n.masonry=null,n.on({"pre-init":n.onPreInit,destroyed:n.onDestroyed,"appended-items":n.onAppendedItems,"detach-item":n.onDetachItem,"layout after-filter-change":n.onLayoutRequired,"page-change":n.onPageChange},n)},onPreInit:function(){var e=this,t=e.sel,n=e.$el.hasClass("fg-fixed");e.template.isFitWidth=n,e.template.percentPosition=!n,e.template.transitionDuration=0,e.template.itemSelector=t.item.elem,n||(e.template.gutter=t.gutterWidth,e.template.columnWidth=t.columnWidth),e.masonry=new Masonry(e.el,e.template)},onDestroyed:function(){this.masonry instanceof Masonry&&this.masonry.destroy()},onLayoutRequired:function(){this.masonry.layout()},onPageChange:function(e,t,n,i){i||this.masonry.layout()},onAppendedItems:function(e,t){t=t.map(function(e){return e.el}),t=this.masonry.addItems(t);this.masonry.layoutItems(t,!0)},onDetachItem:function(e,t){e.isDefaultPrevented()||(e.preventDefault(),this.masonry.remove(t.el),t.$el.removeClass(this.cls.hidden),t.isAttached=!1)}}),e.template.register("masonry",e.MasonryTemplate,{template:{}},{container:"foogallery fg-masonry",columnWidth:"fg-column-width",gutterWidth:"fg-gutter-width"})}((FooGallery.$,FooGallery),(FooGallery.utils,FooGallery.utils.is)),function(i,r,e,o){r.Justified=e.Class.extend({construct:function(e,t){var n=this;n.tmpl=e,n.$el=e.$el,n.options=i.extend(!0,{},r.Justified.defaults,t),n._items=[],n.maxRowHeight=0,n.borderSize=0,n.align=-1!==["left","center","right"].indexOf(n.options.align)?n.options.align:"center"},init:function(){var e=this;e.maxRowHeight=e.getMaxRowHeight(e.options.maxRowHeight,e.options.rowHeight),e.borderSize=e.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(e,t){var n;return o.string(e)?(n=parseInt(e),isNaN(n)?t:n<=0?1/0:-1!==e.indexOf("%")?t*(n/100):n):o.number(e)?e<=0?1/0:e:t},layout:function(e){var n,i=this;0<(e=o.number(e)?e:i.$el.width())&&(0!==(n=i.createRows(e)).height&&0<n.rows.length&&(i.$el.height(n.height),n.rows.forEach(function(e,t){i.render(e,t===n.rows.length-1)})))},render:function(t,e){var n=this,i=!e&&"justify"!==n.options.lastRow;t.items.forEach(function(e){e.elem&&(t.visible?(e.elem.style.setProperty("position","absolute"),e.elem.style.setProperty("width",e.width+"px"),e.elem.style.setProperty("height",e.height+"px"),e.elem.style.setProperty("top",e.top+"px"),e.elem.style.setProperty("left",e.left+"px"),e.elem.style.setProperty("margin","0"),e.elem.style.removeProperty("display"),0<n.maxRowHeight&&i?e.elem.style.setProperty("max-height",n.maxRowHeight+2*n.borderSize+"px"):e.elem.style.removeProperty("max-height"),e.elem.classList.contains("fg-positioned")||e.elem.classList.add("fg-positioned")):e.elem.style.setProperty("display","none"))})},justify:function(n,i,e,t){var r=this,o=r.options.margins,s=o*(n.items.length-1),e=e-s,a=n.width-s,l=e/a,c=(n.width=a*l,n.height=n.height*l,n.height>t+2*r.borderSize&&(a=(t+2*r.borderSize)/n.height,n.width=n.width*a,n.height=n.height*a),n.top=i,n.left=0,"left"!==r.align&&n.width<e&&("right"===r.align?n.left=e-n.width:n.left=(e-n.width)/2),n.width+=s,n.left);return n.items.forEach(function(e,t){0<t&&(c+=o),e.left=c,e.top=i;t=n.height/e.height;e.width=e.width*t,e.height=e.height*t,c+=e.width}),n.height},createRows:function(o){var s=this,a=s.options.margins,e=s.tmpl.getAvailable(),l=[],t=-1;function c(){return{index:++t,visible:!0,width:0,height:s.options.rowHeight+2*s.borderSize,top:0,left:0,items:[]}}var u=c(),h=0,p=0;if(e.forEach(function(e){r=u.height,t=e.width,(n=e.height)!==r&&(n*=i=r/n,t*=i),i=s.maxRowHeight/r;var t,n,i,r={__item:e,elem:e.el,width:t,height:n,maxWidth:t*i,maxHeight:n*i,top:0,left:0};u.width+r.width>o&&0<u.items.length&&(0<l.length&&(h+=a),e=s.justify(u,h,o,s.maxRowHeight),p<e&&(p=e),h+=e,l.push(u),u=c()),0<u.items.length&&(u.width+=a),u.width+=r.width,u.items.push(r)}),0<u.items.length){var n=h+a;switch(s.options.lastRow){case"smart":var i,r,d=s.justify(u,n,o,s.maxRowHeight);0!==p&&p<d&&(i=p/d,r=u.width*i/o,(i<.9||r<.9)&&(d=s.justify(u,n,o,p-2*s.borderSize)));break;case"justify":d=s.justify(u,n,o,99999);break;case"hide":d=s.justify(u,n,o,s.maxRowHeight),u.width<o&&1<l.length&&(u.visible=!1)}u.visible&&(h+=d+a),l.push(u)}return{height:h,rows:l}}}),r.Justified.defaults={rowHeight:150,maxRowHeight:"200%",margins:0,align:"center",lastRow:"smart"}}(FooGallery.$,FooGallery,FooGallery.utils,FooGallery.utils.is),function(e){e.JustifiedTemplate=e.Template.extend({construct:function(e,t){var n=this;n._super(e,t),n.justified=null,n.on({"pre-init":n.onPreInit,init:n.onInit,destroyed:n.onDestroyed,"layout after-filter-change":n.onLayoutRequired,"page-change":n.onPageChange},n)},onPreInit:function(){this.justified=new e.Justified(this,this.template)},onInit:function(){this.justified.init()},onDestroyed:function(){this.justified instanceof e.Justified&&this.justified.destroy()},onLayoutRequired:function(){this.justified.layout(this.lastWidth)},onPageChange:function(e,t,n,i){i||this.justified.layout(this.lastWidth)}}),e.template.register("justified",e.JustifiedTemplate,null,{container:"foogallery fg-justified"})}((FooGallery.$,FooGallery)),function(e){e.PortfolioTemplate=e.Template.extend({}),e.template.register("simple_portfolio",e.PortfolioTemplate,{},{container:"foogallery fg-simple_portfolio"})}((FooGallery.$,FooGallery),(FooGallery.utils,FooGallery.utils.is,FooGallery.utils.fn)),function(i,e,r){e.ImageViewerTemplate=e.Template.extend({construct:function(e,t){var n=this;n._super(r.extend({},e,{paging:{pushOrReplace:"replace",theme:"fg-light",type:"default",size:1,position:"none",scrollToTop:!1}}),t),n.$inner=i(),n.$current=i(),n.$total=i(),n.$prev=i(),n.$next=i(),n.on({"pre-init":n.onPreInit,init:n.onInit,destroy:n.onDestroy,"append-item":n.onAppendItem,"after-page-change":n.onAfterPageChange,"after-filter-change":n.onAfterFilterChange},n)},createChildren:function(){var e=this;return i("<div/>",{class:e.cls.inner}).append(i("<div/>",{class:e.cls.innerContainer}),i("<div/>",{class:e.cls.controls}).append(i("<div/>",{class:e.cls.prev}).append(i("<span/>",{text:e.il8n.prev})),i("<label/>",{class:e.cls.count,text:e.il8n.count}).prepend(i("<span/>",{class:e.cls.countCurrent,text:"0"})).append(i("<span/>",{class:e.cls.countTotal,text:"0"})),i("<div/>",{class:e.cls.next}).append(i("<span/>",{text:e.il8n.next}))))},destroyChildren:function(){this.$el.find(this.sel.inner).remove()},onPreInit:function(e){var t=this;t.$inner=t.$el.find(t.sel.innerContainer),t.$current=t.$el.find(t.sel.countCurrent),t.$total=t.$el.find(t.sel.countTotal),t.$prev=t.$el.find(t.sel.prev),t.$next=t.$el.find(t.sel.next)},onInit:function(e){var t=this;t.template.attachFooBox&&t.$el.on("foobox.previous",{self:t},t.onFooBoxPrev).on("foobox.next",{self:t},t.onFooBoxNext),t.$prev.on("click",{self:t},t.onPrevClick),t.$next.on("click",{self:t},t.onNextClick)},onDestroy:function(e){var t=this;t.template.attachFooBox&&t.$el.off({"foobox.previous":t.onFooBoxPrev,"foobox.next":t.onFooBoxNext}),t.$prev.off("click",t.onPrevClick),t.$next.off("click",t.onNextClick)},onAppendItem:function(e,t){e.preventDefault(),this.$inner.append(t.$el),t.isAttached=!0},onAfterPageChange:function(e,t,n,i){i||this.update()},onAfterFilterChange:function(e){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(e){e.data.self.prev()},onFooBoxNext:function(e){e.data.self.next()},onPrevClick:function(e){e.preventDefault(),e.stopPropagation(),e.data.self.prev()},onNextClick:function(e){e.preventDefault(),e.stopPropagation(),e.data.self.next()}}),e.template.register("image-viewer",e.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(e,n){e.ThumbnailTemplate=e.Template.extend({construct:function(e,t){this._super(n.extend({},e,{filtering:{type:"none"},paging:{pushOrReplace:"replace",theme:"fg-light",type:"default",size:1,position:"none",scrollToTop:!1}}),t)}}),e.template.register("thumbnail",e.ThumbnailTemplate,null,{container:"foogallery fg-thumbnail"})}((FooGallery.$,FooGallery),FooGallery.utils.obj),function(i,o,e,l,r,s){o.StackAlbum=e.Class.extend({construct:function(e,t){var n=this;n.$el=l.jq(e)?e:i(e),n.el=n.$el.get(0),n.opt=r.extend({},o.StackAlbum.defaults,t,n.$el.data("foogallery")),n.$back=n.$el.find(".fg-header-back"),n.$active=n.$el.find(".fg-header-active"),n.$piles=n.$el.find(".fg-piles"),n.piles=n.$piles.find(".fg-pile").map(function(e,t){return new o.StackAlbum.Pile(n,t,{index:e})}).get(),n.ignoreResize=!1,n.robserver=new ResizeObserver(function(){!n.ignoreResize&&n.$el.is(":visible")&&n.layout(!0)})},init:function(){var e=this;e.piles.forEach(function(e){e.init()}),e.$back.on("click.foogallery",{self:e},e.onBackClick),e.robserver.observe(e.el)},destroy:function(){this.robserver.disconnect(),this.$back.off(".foogallery"),this.piles.forEach(function(e){e.destroy()})},getLayoutInfo:function(){var e=this,t=e.opt.gutter+2*e.opt.border;return{maxWidth:e.$el.width(),space:t,halfSpace:t/2,itemWidth:e.opt.itemWidth,itemHeight:e.opt.itemHeight,itemOuterWidth:e.opt.itemWidth+2*e.opt.border,itemOuterHeight:e.opt.itemHeight+2*e.opt.border,blockWidth:e.opt.itemWidth+t,blockHeight:e.opt.itemHeight+t,border:e.opt.border,doubleBorder:2*e.opt.border,gutter:e.opt.gutter,halfGutter:e.opt.gutter/2}},layout:function(e){var t,n=this;e&&(n.$el.addClass("fg-disable-transitions"),n.$el.prop("offsetWidth")),n.hasActive?(t=n.activePile.layout(),n.activePile.setPosition(0,0,t.width,t.height)):t=n.layoutPiles(),n.$piles.css({width:t.width+"px",height:t.height+"px"}),e&&n.$el.removeClass("fg-disable-transitions")},layoutPiles:function(i){var r=this.getLayoutInfo(),o=0,s=1,a=0;return i=l.fn(i)?i:function(){},this.piles.forEach(function(e){var t=o,n=((o+=r.blockWidth)>r.maxWidth&&(t=0,o=r.blockWidth,s++),r.blockHeight*(s-1));i(e,n,t,r.blockWidth,r.blockHeight),e.setPosition(n,t,r.blockWidth,r.blockHeight),a<o&&(a=o)}),{width:a,height:r.blockHeight*s}},setActive:function(t){var n,i=this,e=i.activePile,r=e instanceof o.StackAlbum.Pile;t=t instanceof o.StackAlbum.Pile?t:null,i.activePile=t,i.hasActive=null!==t,r&&e.collapse(),i.ignoreResize=!0,i.hasActive?(i.piles.forEach(function(e){e!==t&&e.hide(i.activePile)}),n=i.activePile.expand(),i.$active.text(t.title),i.$el.addClass("fg-has-active")):(n=i.layoutPiles(function(e){e.show()}),i.$el.removeClass("fg-has-active")),s.start(i.$piles,function(e){e.css({width:n.width+"px",height:n.height+"px"})},null,350).then(function(){i.ignoreResize=!1})},onBackClick:function(e){e.preventDefault(),e.stopPropagation(),e.data.self.setActive(null)}}),o.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(r,o,e,s,a){o.StackAlbum.Pile=e.Class.extend({construct:function(e,t,n){var i=this;i.album=e,i.$el=s.jq(t)?t:r(t),i.opt=a.extend({},o.StackAlbum.Pile.defaults,n,i.$el.data()),i.title=i.opt.title,i.items=i.$el.find(".fg-pile-item").map(function(e,t){return new o.StackAlbum.Item(i,t,{index:e})}).get(),i.$cover=r("<div/>",{class:"fg-pile-cover"}).append(r("<div/>",{class:"fg-pile-cover-content"}).append(r("<span/>",{class:"fg-pile-cover-title",text:i.opt.title}),r("<span/>",{class:"fg-pile-cover-count",text:i.items.length}))),i.top=0,i.left=0,i.isExpanded=!1},init:function(){var n=this,i=n.album.opt,r=n.getAngles(i.angleStep),o=i.randomAngle?n.randomAngle(r):i.angleStep;n.$cover.on("click.foogallery",{self:n},n.onCoverClick),n.items.forEach(function(e,t){e.init(),3<t||(0===t?(e.$el.addClass("fg-has-cover").append(n.$cover),e.load()):(t%2==0?e.setAngle(-o):e.setAngle(o),i.randomAngle?o=n.randomAngle(r):o+=i.angleStep))})},destroy:function(){this.$cover.remove(),this.items.forEach(function(e,t){0===t&&e.$el.removeClass("fg-has-cover"),e.destroy()})},getAngles:function(e){for(var t=[],n=1;n<=3;n++)t.push(n*e);return t},randomAngle:function(e){var t=e.length,t=Math.floor(Math.random()*+t+0),e=e.splice(t,1);return 1===e.length?e[0]:0},setPosition:function(e,t,n,i){this.top=e,this.left=t,s.number(n)&&s.number(i)?this.$el.css({top:e+"px",left:t+"px",width:n+"px",height:i+"px"}):this.$el.css({top:e+"px",left:t+"px"})},layout:function(){var i=this.album.getLayoutInfo(),r=0,o=1,s=!1,a=0;return this.items.forEach(function(e){(r+=i.halfGutter)>i.maxWidth&&(r=i.halfGutter,o++,s=!0);var t=r,n=(r+=i.itemOuterWidth+i.halfGutter,!s&&r>i.maxWidth&&(t=i.halfGutter,r=i.blockWidth,o++),i.blockHeight*(o-1)+i.halfGutter);s=!1,e.setPosition(n,t,i.itemOuterWidth,i.itemOuterHeight),e.isLoaded||e.load(),a<r&&(a=r)}),{width:a,height:i.blockHeight*o}},expand:function(){var e;return this.$el.removeClass("fg-collapsed").addClass("fg-expanded"),e=this.layout(),this.setPosition(0,0,e.width,e.height),this.isExpanded=!0,e},collapse:function(){var e=this,t=e.album.getLayoutInfo(),n=(e.$el.removeClass("fg-expanded").addClass("fg-collapsed"),e.items.forEach(function(e){e.setPosition(t.halfGutter,t.halfGutter,t.itemOuterWidth,t.itemOuterHeight)}),{width:t.blockWidth,height:t.blockHeight});return e.setPosition(0,0,n.width,n.height),e.isExpanded=!1,n},show:function(){this.$el.removeClass("fg-hidden fg-expanded fg-collapsed")},hide:function(e){e instanceof o.StackAlbum.Pile&&this.setPosition(e.top,e.left),this.$el.addClass("fg-hidden")},onCoverClick:function(e){e.preventDefault(),e.stopPropagation();e=e.data.self;e.album.setActive(e)}}),o.StackAlbum.Pile.defaults={index:-1,title:null}}(FooGallery.$,FooGallery,FooGallery.utils,FooGallery.utils.is,FooGallery.utils.obj),function(r,o,e,s,a){o.StackAlbum.Item=e.Class.extend({construct:function(e,t,n){var i=this;i.$el=s.jq(t)?t:r(t),i.opt=a.extend({},o.StackAlbum.Item.defaults,n,i.$el.data()),i.$thumb=i.$el.find(".fg-pile-item-thumb"),i.$image=i.$el.find(".fg-pile-item-image"),i.isLoaded=!1,i.isLoading=!1,i._loading=null},init:function(){},destroy:function(){},setAngle:function(e){this.$el.css({transform:"rotate("+e+"deg)"})},setPosition:function(e,t,n,i){this.$el.css({top:e+"px",left:t+"px",width:n+"px",height:i+"px"})},load:function(){var t=this;return s.promise(t._loading)?t._loading:t._loading=r.Deferred(function(e){t.$el.addClass("fg-loading"),t.isLoading=!0,t.$image.on({"load.foogallery":function(){t.$image.off(".foogallery"),t.$el.removeClass("fg-loading"),t.isLoading=!1,t.isLoaded=!0,e.resolve()},"error.foogallery":function(){t.$image.off(".foogallery"),t.$el.removeClass("fg-loading"),t.isLoading=!1,t.isLoaded=!0,e.reject()}}),t.$image.prop("src",t.$image.attr(t.opt.src)).prop("srcset",t.$image.attr(t.opt.srcset))}).promise()}}),o.StackAlbum.Item.defaults={index:-1,src:"data-src-fg",srcset:"data-srcset-fg"}}(FooGallery.$,FooGallery,FooGallery.utils,FooGallery.utils.is,FooGallery.utils.obj),function(i,r,e){i.fn.foogalleryStackAlbum=function(e){return this.each(function(e,t){var t=i(t),n=t.data("__FooGalleryAlbum__");n instanceof r.StackAlbum&&n.destroy(),(n=new r.StackAlbum(t)).init(),t.data("__FooGalleryAlbum__",n)})},r.loadStackAlbums=r.reloadStackAlbums=function(){i(function(){i(".foogallery-stack-album:not(.fg-ready)").foogalleryStackAlbum()}),e.ready(function(){i(".foogallery-stack-album.fg-ready").foogalleryStackAlbum()})},r.loadStackAlbums()}(FooGallery.$,FooGallery,FooGallery.utils),function(u,e,o,d){o.Progress=o.EventClass.extend({construct:function(e){var t=this;t._super(),t.percent=0,t.tickRate=d.number(e)?e:100,t.isPaused=!1,t.isActive=!1,t._intervalId=null,t._total=0,t._target=null,t.onTick=t.onTick.bind(t)},destroy:function(){this._reset(),this._super()},_reset:function(){var e=this;null!==e._intervalId&&clearInterval(e._intervalId),e.percent=0,e._total=0,e._intervalId=null,e._target=null,e.isActive=!1,e.isPaused=!1},stop:function(){this.isActive&&(this._reset(),this.trigger("stop"))},start:function(e){var t=this;t.stop(),!t.isActive&&d.number(e)&&0<e&&(t._total=1e3*e,t._target=Date.now()+t._total,t._intervalId=setInterval(t.onTick,t.tickRate),t.isActive=!0,t.trigger("start"))},pause:function(){var e=this;e.isActive&&!e.isPaused&&e.percent<100&&(null!==e._intervalId&&clearInterval(e._intervalId),e._intervalId=null,e._target=null,e.isPaused=!0,e.trigger("pause"))},resume:function(){var e,t=this;t.isActive&&t.isPaused?(e=t._total-t._total*t.percent/100,t._target=Date.now()+e,t._intervalId=setInterval(t.onTick,t.tickRate),t.isPaused=!1,t.trigger("resume")):0<t._total&&t.start(t._total/1e3)},onTick:function(){var e=this,t=e._total-Math.max(e._target-Date.now(),0);e.percent=Math.min(t/e._total*100,100),e.trigger("tick",[e.percent]),100<=e.percent&&(null!==e._intervalId&&clearInterval(e._intervalId),e._intervalId=null,e._target=null,e.isActive=!1,e.trigger("complete"))}}),u.Carousel=o.Class.extend({construct:function(e,t,n,i){var r=this;r.tmpl=e,r.el=e.el,r.opt=t,r.cls=n,r.sel=i,r.elem={inner:null,center:null,bottom:null,prev:null,next:null,progress:null},r.activeItem=null,r._itemWidth=0,r._leftExclude=[r.sel.activeItem,r.sel.nextItem].join(","),r._rightExclude=[r.sel.activeItem,r.sel.prevItem].join(","),r._centerListeners=new o.DOMEventListeners,r._listeners=new o.DOMEventListeners,r._progress=new o.Progress,r._canHover=window.matchMedia("(hover: hover)").matches,r.cache=new Map,r.timeouts=new o.Timeouts,r.interacted=!1,r.isRTL=!1,r._firstLayout=!0},getScreenX:function(e,t,n){return n/(n+t)*e},getVectorX:function(e,t,n){return(n+t)/n*e},getSequentialZFromScale:function(e,t,n){return n*(t*(e+1))},scaleToZ:function(e,t,n){return e*(1-t/(n+t))},getDiff:function(e,t){return t<e?e-t:t-e},pause:function(){this._progress.pause()},resume:function(){this._progress.resume()},start:function(){"disable"===this.opt.autoplay.interaction&&this.interacted||this._progress.start(this.opt.autoplay.time)},stop:function(){this._progress.stop()},init:function(){var e=this;e.isRTL="rtl"===window.getComputedStyle(e.el).direction,e.elem={inner:e.el.querySelector(e.sel.inner),center:e.el.querySelector(e.sel.center),bottom:e.el.querySelector(e.sel.bottom),prev:e.el.querySelector(e.sel.prev),next:e.el.querySelector(e.sel.next),progress:e.el.querySelector(e.sel.progress)},150!==e.opt.perspective&&e.el.style.setProperty("--fg-carousel-perspective",e.opt.perspective+"px")},postInit:function(){var e=this;e.activeItem=e.tmpl.items.first(),e.initNavigation(),e.initPagination(),e.initSwipe(),e.initAutoplay()},initNavigation:function(){const t=this;t._listeners.add(t.elem.prev,"click",function(e){e.preventDefault(),t.interacted=!0,t.previous()}),"button"!==t.elem.prev.type&&(t.elem.prev.type="button"),t.elem.prev.appendChild(e.element("arrow-left")),t._listeners.add(t.elem.next,"click",function(e){e.preventDefault(),t.interacted=!0,t.next()}),"button"!==t.elem.next.type&&(t.elem.next.type="button"),t.elem.next.appendChild(e.element("arrow-right"))},initPagination:function(){const n=this;var e=n.tmpl.items.count();for(let t=0;t<e;t++){const i=document.createElement("button");i.type="button",i.classList.add(n.cls.bullet),0===t&&i.classList.add(n.cls.activeBullet),n._listeners.add(i,"click",function(e){e.preventDefault(),n.interacted=!0,n.goto(n.tmpl.items.get(t))}),n.elem.bottom.appendChild(i)}},initSwipe:function(){const t=this;let n=0,i=0,r=25*(window.devicePixelRatio||1);t._listeners.add(t.elem.inner,"touchstart",function(e){t.interacted=!0,n=e.changedTouches[0].screenX},{passive:!0}),t._listeners.add(t.elem.inner,"touchend",function(e){i=e.changedTouches[0].screenX,t.getDiff(n,i)>r&&(i<n?t.next():t.previous()),i=0,n=0},{passive:!0})},initAutoplay:function(){const n=this,t=n.opt.autoplay;if(!(t.time<=0)&&n.elem.progress instanceof HTMLElement){const i=n.elem.progress.style;function e(e,t){o.cancelFrame(null),o.requestFrame(function(){i.setProperty("width",e+"%"),t?i.setProperty("transition-duration","0s"):i.setProperty("transition-duration",n._progress.tickRate+"ms")})}n._progress.on({"start stop":function(){e(0,!0)},"pause resume":function(){e(n._progress.percent,!0)},tick:function(){e(n._progress.percent,!1)},complete:function(){n.next(function(){n._progress.start(t.time)})}}),"pause"===t.interaction&&(n._canHover?(n._listeners.add(n.el,"mouseenter",function(e){n._progress.pause()},{passive:!0}),n._listeners.add(n.el,"mouseleave",function(e){n._progress.resume()},{passive:!0})):(n._listeners.add(n.el,"touchstart",function(e){n.timeouts.delete("autoplay"),n._progress.pause()},{passive:!0}),n._listeners.add(n.el,"touchend",function(e){n.timeouts.set("autoplay",function(){n._progress.resume()},1e3*t.time)},{passive:!0}))),n._progress.start(t.time)}},getFirst:function(){return this.tmpl.items.first()},getNext:function(e){return this.tmpl.items.next(e instanceof u.Item?e:this.activeItem,null,!0)},getPrev:function(e){return this.tmpl.items.prev(e instanceof u.Item?e:this.activeItem,null,!0)},goto:function(e,t){const n=this;if(e instanceof u.Item){const i=n.opt.autoplay,r=!n._canHover&&n.timeouts.has("autoplay"),o=(n.timeouts.delete("autoplay"),n.timeouts.delete("navigation"),n._progress.isPaused);n._progress.isActive&&n._progress.stop(),n.activeItem=e,n.layout(),n.timeouts.set("navigation",function(){0<i.time&&("pause"===i.interaction||"disable"===i.interaction&&!n.interacted)&&(n._progress.start(i.time),o&&n._progress.pause(),r&&n.timeouts.set("autoplay",function(){n._progress.resume()},1e3*i.time)),d.fn(t)&&t.call(n)},n.opt.speed)}},next:function(e){this.goto(this.getNext(),e)},previous:function(e){this.goto(this.getPrev(),e)},destroy:function(){var e=this;e.cache.clear(),e.timeouts.clear(),e._listeners.clear(),e._centerListeners.clear(),150!==e.opt.perspective&&e.el.style.removeProperty("--fg-carousel-perspective")},getSize:function(e,t){var n=e.getBoundingClientRect();const i={width:n.width,height:n.height};return t&&(n=getComputedStyle(e),i.width-=parseFloat(n.paddingLeft)+parseFloat(n.paddingRight)+parseFloat(n.borderLeftWidth)+parseFloat(n.borderRightWidth),i.height-=parseFloat(n.paddingTop)+parseFloat(n.paddingBottom)+parseFloat(n.borderTopWidth)+parseFloat(n.borderBottomWidth)),i},layout:function(e){const t=this;if(null===t.activeItem&&(t.activeItem=t.tmpl.items.first()),!d.number(e)&&t.cache.has("width")&&(e=t.cache.get("width")),d.number(e)){const n=t.getLayout(e);null!==t._layoutFrame&&o.cancelFrame(t._layoutFrame),t._layoutFrame=o.requestFrame(function(){t._layoutFrame=null,t.renderActive(n)&&(t.renderSide("left",t.sel.prevItem,t._leftExclude,t.cls.prevItem,n),t.renderSide("right",t.sel.nextItem,t._rightExclude,t.cls.nextItem,n),t._firstLayout=!1)})}},getLayout:function(e){var t,n,i=this;return i.cache.has("layout")&&i.cache.get("width")===e?i.cache.get("layout"):(n=i.getSize(i.elem.center).width,t=i.getSize(i.elem.inner,!0).width/2+n/2,n=i.calculate(n,t),i.cache.set("width",e),i.cache.set("layout",n),n)},round:function(e,t){t=Math.pow(10,t||0);return Math.round(e*t)/t},getShowPerSide:function(){var e=this.tmpl.items.count();let t=this.opt.maxItems;return(t="auto"===t||t<=0?e%2==0?e-1:e:t)%2==0&&--t,((t=(t=t<1?1:t)>e?e%2==0?e-1:e:t)-1)/2},calculate:function(t,n,i,r){var o=this;d.number(i)||(i=o.opt.gutter.max);const s={zIndex:(r=d.number(r)?r:o.getShowPerSide())+10,gutter:i,perSide:r,side:[]};let a=t,l=s.zIndex-1;for(let e=0;e<r;e++,l--){var c=o.getSequentialZFromScale(e,o.opt.scale,o.opt.perspective),u=o.scaleToZ(t,c,o.opt.perspective),h=(t-u)/2,p=(a-=h,"%"===o.opt.gutter.unit?t*Math.abs(i/100):Math.abs(i)),p="%"===o.opt.gutter.unit?o.scaleToZ(p,c,o.opt.perspective):p;if(0<i?a+=p:a-=p,a+u+h>n)return i-1<o.opt.gutter.min?o.calculate(t,n,o.opt.gutter.max,r-1):o.calculate(t,n,i-1,r);p=o.getVectorX(a,c,o.opt.perspective);a+=u+h,s.side.push({x:p,z:c,zIndex:l})}return s},cleanup:function(e,t,n){const i=this,r=d.string(n);Array.from(i.el.querySelectorAll(e)).forEach(function(e){e.classList.remove(t),i.opt.centerOnClick&&i._centerListeners.remove(e,"click"),r&&e.matches(n)||(e.style.removeProperty("transition-duration"),e.style.removeProperty("transform"),e.style.removeProperty("z-index"))})},renderActive:function(e){const n=this;if(!(n.activeItem instanceof u.Item))return!1;const t=n.activeItem.el,i=(n.cleanup(n.sel.activeItem,n.cls.activeItem),t.classList.add(n.cls.activeItem),t.style.setProperty("transition-duration",n.opt.speed+"ms"),t.style.setProperty("z-index",e.zIndex),t.style.removeProperty("transform"),n.tmpl.items.indexOf(n.activeItem));return Array.from(n.el.querySelectorAll(n.sel.bullet)).forEach(function(e,t){e.classList.remove(n.cls.activeBullet),t===i&&e.classList.add(n.cls.activeBullet)}),!0},renderSide:function(n,e,i,r,o){const s=this;if(-1!==["left","right"].indexOf(n)){s.cleanup(e,r,i);let t=s.activeItem;for(let e=0;e<o.side.length;e++){var a=o.side[e];const c="left"===n?s.getPrev(t):s.getNext(t);if(!(c instanceof u.Item))break;var l="translate3d("+("left"===n&&!s.isRTL||"right"===n&&s.isRTL?"-":"")+a.x+"px, 0,-"+a.z+"px)";c.el.classList.add(r),c.isLoaded||(c.el.style.setProperty("transition-duration","0ms"),c.el.style.setProperty("transform","translate3d(0,0,-"+s.opt.perspective+"px)"),c.el.offsetHeight),c.el.style.setProperty("transition-duration",(s._firstLayout?0:s.opt.speed)+"ms"),c.el.style.setProperty("transform",l),c.el.style.setProperty("z-index",a.zIndex),s.opt.centerOnClick&&s._centerListeners.add(c.el,"click",function(e){e.preventDefault(),e.stopPropagation(),s.interacted=!0,s.goto(c)},!0),t=c}}}})}((FooGallery.$,FooGallery),FooGallery.icons,FooGallery.utils,FooGallery.utils.is),function(i,r){i.CarouselTemplate=i.Template.extend({construct:function(e,t){var n=this;n._super(r.extend({},e,{paging:{type:"none"}}),t),n.items.LAYOUT_AFTER_LOAD=!1,n.carousel=null,n.on({"pre-init":n.onPreInit,init:n.onInit,"post-init":n.onPostInit,destroyed:n.onDestroyed,"append-item":n.onAppendItem,"after-filter-change":n.onAfterFilterChange,layout:n.onLayout},n),i.Panel&&n.lightbox instanceof i.Panel&&n.lightbox.on({open:n.onLightboxOpen,closed:n.onLightboxClosed,next:n.onLightboxNext,prev:n.onLightboxPrev},n)},onPreInit:function(){var e=this;e.carousel=new i.Carousel(e,e.template,e.cls.carousel,e.sel.carousel)},onInit:function(){this.carousel.init()},onPostInit:function(){this.carousel.postInit()},onDestroyed:function(){this.carousel instanceof i.Carousel&&this.carousel.destroy()},onAppendItem:function(e,t){e.preventDefault(),this.carousel.elem.inner.appendChild(t.el),t.isAttached=!0},onAfterFilterChange:function(){this.carousel.cache.delete("layout"),this.carousel.interacted=!0,this.carousel.goto(this.carousel.getFirst())},onLayout:function(){this.carousel.layout(this.lastWidth)},onLightboxOpen:function(){this.carousel.interacted=!0,this.carousel.stop()},onLightboxClosed:function(){this.carousel.start()},onLightboxNext:function(){this.carousel.next()},onLightboxPrev:function(){this.carousel.previous()}}),i.template.register("carousel",i.CarouselTemplate,{template:{maxItems:0,perspective:150,scale:.12,speed:300,centerOnClick:!0,gutter:{min:-40,max:-20,unit:"%"},autoplay:{time:0,interaction:"pause"}}},{container:"foogallery fg-carousel",carousel:{inner:"fg-carousel-inner",center:"fg-carousel-center",bottom:"fg-carousel-bottom",prev:"fg-carousel-prev",next:"fg-carousel-next",bullet:"fg-carousel-bullet",activeBullet:"fg-bullet-active",activeItem:"fg-item-active",prevItem:"fg-item-prev",nextItem:"fg-item-next",progress:"fg-carousel-progress"}})}((FooGallery.$,FooGallery),FooGallery.utils.obj),function(o,s,n,i,r){s.__foobox__={owns:function(e){return 0<e.parents(".fbx-item").length},handles:function(e){return e.$el.hasClass("fbx-instance")&&r.object(window.FOOBOX)&&!!o.fn.foobox},update:function(e){const t=[{}];r.object(window.FOOBOX.o)&&t.push(window.FOOBOX.o),e.opt.protected&&t.push({images:{noRightClick:!0}}),r.fn(e.$el.foobox)&&e.$el.foobox(i.extend.apply(null,t))}},s.triggerPostLoad=function(e,t,n,i){var r=e.target;if(r instanceof s.Template&&r.initialized&&("ready"===e.type||"after-page-change"===e.type&&!i||"after-filter-change"===e.type))try{s.__foobox__.owns(r.$el)||(s.__foobox__.handles(r)?s.__foobox__.update(r):o("body").trigger("post-load"))}catch(e){console.error(e)}},s.autoDefaults={on:{"ready after-page-change after-filter-change":s.triggerPostLoad}},s.autoEnabled=!0,s.auto=function(e){return s.autoDefaults=i.merge(s.autoDefaults,e)},s.globalsMerged=!1,s.mergeGlobals=function(){!0!==s.globalsMerged&&r.object(window.FooGallery_il8n)&&(s.merge_il8n(window.FooGallery_il8n),s.globalsMerged=!0)},s.merge_il8n=function(i){r.object(i)&&Object.keys(i).forEach(e=>{if(r.object(i[e])&&s[e]instanceof s.Factory){const t=s[e],n=i[e];Object.keys(n).forEach(e=>{r.object(n[e])&&t.configure(e,null,null,n[e])})}})},s.load=s.reload=function(){let e=!1,t=!1;o(function(){s.mergeGlobals(),s.autoEnabled&&o('[id^="foogallery-gallery-"]:not(.fg-ready)').foogallery(s.autoDefaults),(e=!0)&&t&&document.dispatchEvent(new CustomEvent("foogallery-loaded",{detail:s}))}),n.ready(function(){s.mergeGlobals(),s.autoEnabled&&o('[id^="foogallery-gallery-"].fg-ready').foogallery(s.autoDefaults),t=!0,e&&t&&document.dispatchEvent(new CustomEvent("foogallery-loaded",{detail:s}))})},document.dispatchEvent(new CustomEvent("foogallery-ready",{detail:s})),s.load()}(FooGallery.$,FooGallery,FooGallery.utils,FooGallery.utils.obj,FooGallery.utils.is);
|
extensions/import-export/class-foogallery-import-export.php
CHANGED
@@ -5,7 +5,7 @@
|
|
5 |
|
6 |
if ( ! class_exists( 'FooGallery_Import_Export' ) ) {
|
7 |
|
8 |
-
require_once 'functions.php';
|
9 |
|
10 |
/**
|
11 |
* Class FooGallery_Import_Export
|
5 |
|
6 |
if ( ! class_exists( 'FooGallery_Import_Export' ) ) {
|
7 |
|
8 |
+
require_once plugin_dir_path( __FILE__ ) . 'functions.php';
|
9 |
|
10 |
/**
|
11 |
* Class FooGallery_Import_Export
|
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.2.
|
7 |
Author: FooPlugins
|
8 |
Plugin URI: https://fooplugins.com/foogallery-wordpress-gallery-plugin/
|
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.2.
|
29 |
define( 'FOOGALLERY_SETTINGS_VERSION', '2' );
|
30 |
require_once FOOGALLERY_PATH . 'includes/constants.php';
|
31 |
// Create a helper function for easy SDK access.
|
3 |
/*
|
4 |
Plugin Name: FooGallery
|
5 |
Description: FooGallery is the most intuitive and extensible gallery management tool ever created for WordPress
|
6 |
+
Version: 2.2.26
|
7 |
Author: FooPlugins
|
8 |
Plugin URI: https://fooplugins.com/foogallery-wordpress-gallery-plugin/
|
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.2.26' );
|
29 |
define( 'FOOGALLERY_SETTINGS_VERSION', '2' );
|
30 |
require_once FOOGALLERY_PATH . 'includes/constants.php';
|
31 |
// Create a helper function for easy SDK access.
|
freemius/languages/freemius.pot
CHANGED
@@ -1,1968 +1,1968 @@
|
|
1 |
-
# Copyright (C) 2022 freemius
|
2 |
-
# This file is distributed under the same license as the freemius package.
|
3 |
-
msgid ""
|
4 |
-
msgstr ""
|
5 |
-
"Project-Id-Version: freemius\n"
|
6 |
-
"MIME-Version: 1.0\n"
|
7 |
-
"Content-Type: text/plain; charset=UTF-8\n"
|
8 |
-
"Content-Transfer-Encoding: 8bit\n"
|
9 |
-
"Language-Team: Freemius Team <admin@freemius.com>\n"
|
10 |
-
"Last-Translator: Vova Feldman <vova@freemius.com>\n"
|
11 |
-
"POT-Creation-Date: 2022-07-06 12:49+0000\n"
|
12 |
-
"Report-Msgid-Bugs-To: https://github.com/Freemius/wordpress-sdk/issues\n"
|
13 |
-
"X-Poedit-Basepath: ..\n"
|
14 |
-
"X-Poedit-KeywordsList: get_text_inline;fs_text_inline;fs_echo_inline;fs_esc_js_inline;fs_esc_attr_inline;fs_esc_attr_echo_inline;fs_esc_html_inline;fs_esc_html_echo_inline;get_text_x_inline:1,2c;fs_text_x_inline:1,2c;fs_echo_x_inline:1,2c;fs_esc_attr_x_inline:1,2c;fs_esc_js_x_inline:1,2c;fs_esc_js_echo_x_inline:1,2c;fs_esc_html_x_inline:1,2c;fs_esc_html_echo_x_inline:1,2c\n"
|
15 |
-
"X-Poedit-SearchPath-0: .\n"
|
16 |
-
"X-Poedit-SearchPathExcluded-0: *.js\n"
|
17 |
-
"X-Poedit-SourceCharset: UTF-8\n"
|
18 |
-
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
19 |
-
|
20 |
-
#: includes/class-freemius.php:1932, templates/account.php:941
|
21 |
-
msgid "An update to a Beta version will replace your installed version of %s with the latest Beta release - use with caution, and not on production sites. You have been warned."
|
22 |
-
msgstr ""
|
23 |
-
|
24 |
-
#: includes/class-freemius.php:1939
|
25 |
-
msgid "Would you like to proceed with the update?"
|
26 |
-
msgstr ""
|
27 |
-
|
28 |
-
#: includes/class-freemius.php:3751, templates/debug.php:20
|
29 |
-
msgid "Freemius Debug"
|
30 |
-
msgstr ""
|
31 |
-
|
32 |
-
#: includes/class-freemius.php:13791
|
33 |
-
msgid "An unknown error has occurred while trying to toggle the license's white-label mode."
|
34 |
-
msgstr ""
|
35 |
-
|
36 |
-
#: includes/class-freemius.php:13869
|
37 |
-
msgid "An unknown error has occurred while trying to set the user's beta mode."
|
38 |
-
msgstr ""
|
39 |
-
|
40 |
-
#: includes/class-freemius.php:13942
|
41 |
-
msgid "Invalid new user ID or email address."
|
42 |
-
msgstr ""
|
43 |
-
|
44 |
-
#: includes/class-freemius.php:23326
|
45 |
-
msgid "Bundle"
|
46 |
-
msgstr ""
|
47 |
-
|
48 |
-
#: includes/class-fs-plugin-updater.php:206, templates/forms/premium-versions-upgrade-handler.php:57
|
49 |
-
msgid "Renew license"
|
50 |
-
msgstr ""
|
51 |
-
|
52 |
-
#: includes/class-fs-plugin-updater.php:211, templates/forms/premium-versions-upgrade-handler.php:58
|
53 |
-
msgid "Buy license"
|
54 |
-
msgstr ""
|
55 |
-
|
56 |
-
#: includes/class-fs-plugin-updater.php:364, includes/class-fs-plugin-updater.php:331
|
57 |
-
msgid "There is a %s of %s available."
|
58 |
-
msgstr ""
|
59 |
-
|
60 |
-
#: includes/class-fs-plugin-updater.php:369, includes/class-fs-plugin-updater.php:333
|
61 |
-
msgid "new Beta version"
|
62 |
-
msgstr ""
|
63 |
-
|
64 |
-
#: includes/class-fs-plugin-updater.php:370, includes/class-fs-plugin-updater.php:334
|
65 |
-
msgid "new version"
|
66 |
-
msgstr ""
|
67 |
-
|
68 |
-
#: includes/class-fs-plugin-updater.php:393
|
69 |
-
msgid "Important Upgrade Notice:"
|
70 |
-
msgstr ""
|
71 |
-
|
72 |
-
#: includes/class-fs-plugin-updater.php:1551
|
73 |
-
msgid "The remote plugin package does not contain a folder with the desired slug and renaming did not work."
|
74 |
-
msgstr ""
|
75 |
-
|
76 |
-
#: includes/fs-plugin-info-dialog.php:541
|
77 |
-
msgid "Purchase More"
|
78 |
-
msgstr ""
|
79 |
-
|
80 |
-
#: includes/fs-plugin-info-dialog.php:542, templates/account/partials/addon.php:390
|
81 |
-
msgctxt "verb"
|
82 |
-
msgid "Purchase"
|
83 |
-
msgstr ""
|
84 |
-
|
85 |
-
#. translators: %s: N-days trial
|
86 |
-
#: includes/fs-plugin-info-dialog.php:546
|
87 |
-
msgid "Start my free %s"
|
88 |
-
msgstr ""
|
89 |
-
|
90 |
-
#: includes/fs-plugin-info-dialog.php:754
|
91 |
-
msgid "Install Free Version Now"
|
92 |
-
msgstr ""
|
93 |
-
|
94 |
-
#: includes/fs-plugin-info-dialog.php:755, templates/add-ons.php:323, templates/auto-installation.php:111, templates/account/partials/addon.php:423, templates/account/partials/addon.php:370
|
95 |
-
msgid "Install Now"
|
96 |
-
msgstr ""
|
97 |
-
|
98 |
-
#: includes/fs-plugin-info-dialog.php:744
|
99 |
-
msgid "Install Free Version Update Now"
|
100 |
-
msgstr ""
|
101 |
-
|
102 |
-
#: includes/fs-plugin-info-dialog.php:745, templates/account.php:650
|
103 |
-
msgid "Install Update Now"
|
104 |
-
msgstr ""
|
105 |
-
|
106 |
-
#: includes/fs-plugin-info-dialog.php:771
|
107 |
-
msgctxt "as download latest version"
|
108 |
-
msgid "Download Latest Free Version"
|
109 |
-
msgstr ""
|
110 |
-
|
111 |
-
#: includes/fs-plugin-info-dialog.php:772, templates/account.php:109, templates/add-ons.php:37, templates/account/partials/addon.php:30
|
112 |
-
msgctxt "as download latest version"
|
113 |
-
msgid "Download Latest"
|
114 |
-
msgstr ""
|
115 |
-
|
116 |
-
#: includes/fs-plugin-info-dialog.php:787, templates/add-ons.php:329, templates/account/partials/addon.php:417, templates/account/partials/addon.php:361
|
117 |
-
msgid "Activate this add-on"
|
118 |
-
msgstr ""
|
119 |
-
|
120 |
-
#: includes/fs-plugin-info-dialog.php:789, templates/connect.php:483
|
121 |
-
msgid "Activate Free Version"
|
122 |
-
msgstr ""
|
123 |
-
|
124 |
-
#: includes/fs-plugin-info-dialog.php:790, templates/account.php:133, templates/add-ons.php:330, templates/account/partials/addon.php:53
|
125 |
-
msgid "Activate"
|
126 |
-
msgstr ""
|
127 |
-
|
128 |
-
#: includes/fs-plugin-info-dialog.php:1002
|
129 |
-
msgctxt "Plugin installer section title"
|
130 |
-
msgid "Description"
|
131 |
-
msgstr ""
|
132 |
-
|
133 |
-
#: includes/fs-plugin-info-dialog.php:1003
|
134 |
-
msgctxt "Plugin installer section title"
|
135 |
-
msgid "Installation"
|
136 |
-
msgstr ""
|
137 |
-
|
138 |
-
#: includes/fs-plugin-info-dialog.php:1004
|
139 |
-
msgctxt "Plugin installer section title"
|
140 |
-
msgid "FAQ"
|
141 |
-
msgstr ""
|
142 |
-
|
143 |
-
#: includes/fs-plugin-info-dialog.php:1005, templates/plugin-info/description.php:55
|
144 |
-
msgid "Screenshots"
|
145 |
-
msgstr ""
|
146 |
-
|
147 |
-
#: includes/fs-plugin-info-dialog.php:1006
|
148 |
-
msgctxt "Plugin installer section title"
|
149 |
-
msgid "Changelog"
|
150 |
-
msgstr ""
|
151 |
-
|
152 |
-
#: includes/fs-plugin-info-dialog.php:1007
|
153 |
-
msgctxt "Plugin installer section title"
|
154 |
-
msgid "Reviews"
|
155 |
-
msgstr ""
|
156 |
-
|
157 |
-
#: includes/fs-plugin-info-dialog.php:1008
|
158 |
-
msgctxt "Plugin installer section title"
|
159 |
-
msgid "Other Notes"
|
160 |
-
msgstr ""
|
161 |
-
|
162 |
-
#: includes/fs-plugin-info-dialog.php:1023
|
163 |
-
msgctxt "Plugin installer section title"
|
164 |
-
msgid "Features & Pricing"
|
165 |
-
msgstr ""
|
166 |
-
|
167 |
-
#: includes/fs-plugin-info-dialog.php:1033
|
168 |
-
msgid "Plugin Install"
|
169 |
-
msgstr ""
|
170 |
-
|
171 |
-
#: includes/fs-plugin-info-dialog.php:1105
|
172 |
-
msgctxt "e.g. Professional Plan"
|
173 |
-
msgid "%s Plan"
|
174 |
-
msgstr ""
|
175 |
-
|
176 |
-
#: includes/fs-plugin-info-dialog.php:1131
|
177 |
-
msgctxt "e.g. the best product"
|
178 |
-
msgid "Best"
|
179 |
-
msgstr ""
|
180 |
-
|
181 |
-
#: includes/fs-plugin-info-dialog.php:1137, includes/fs-plugin-info-dialog.php:1157
|
182 |
-
msgctxt "as every month"
|
183 |
-
msgid "Monthly"
|
184 |
-
msgstr ""
|
185 |
-
|
186 |
-
#: includes/fs-plugin-info-dialog.php:1140
|
187 |
-
msgctxt "as once a year"
|
188 |
-
msgid "Annual"
|
189 |
-
msgstr ""
|
190 |
-
|
191 |
-
#: includes/fs-plugin-info-dialog.php:1143
|
192 |
-
msgid "Lifetime"
|
193 |
-
msgstr ""
|
194 |
-
|
195 |
-
#: includes/fs-plugin-info-dialog.php:1157, includes/fs-plugin-info-dialog.php:1159, includes/fs-plugin-info-dialog.php:1161
|
196 |
-
msgctxt "e.g. billed monthly"
|
197 |
-
msgid "Billed %s"
|
198 |
-
msgstr ""
|
199 |
-
|
200 |
-
#: includes/fs-plugin-info-dialog.php:1159
|
201 |
-
msgctxt "as once a year"
|
202 |
-
msgid "Annually"
|
203 |
-
msgstr ""
|
204 |
-
|
205 |
-
#: includes/fs-plugin-info-dialog.php:1161
|
206 |
-
msgctxt "as once a year"
|
207 |
-
msgid "Once"
|
208 |
-
msgstr ""
|
209 |
-
|
210 |
-
#: includes/fs-plugin-info-dialog.php:1167
|
211 |
-
msgid "Single Site License"
|
212 |
-
msgstr ""
|
213 |
-
|
214 |
-
#: includes/fs-plugin-info-dialog.php:1169
|
215 |
-
msgid "Unlimited Licenses"
|
216 |
-
msgstr ""
|
217 |
-
|
218 |
-
#: includes/fs-plugin-info-dialog.php:1171
|
219 |
-
msgid "Up to %s Sites"
|
220 |
-
msgstr ""
|
221 |
-
|
222 |
-
#: includes/fs-plugin-info-dialog.php:1181, templates/plugin-info/features.php:82
|
223 |
-
msgctxt "as monthly period"
|
224 |
-
msgid "mo"
|
225 |
-
msgstr ""
|
226 |
-
|
227 |
-
#: includes/fs-plugin-info-dialog.php:1188, templates/plugin-info/features.php:80
|
228 |
-
msgctxt "as annual period"
|
229 |
-
msgid "year"
|
230 |
-
msgstr ""
|
231 |
-
|
232 |
-
#: includes/fs-plugin-info-dialog.php:1242
|
233 |
-
msgctxt "noun"
|
234 |
-
msgid "Price"
|
235 |
-
msgstr ""
|
236 |
-
|
237 |
-
#. translators: %s: Discount (e.g. discount of $5 or 10%)
|
238 |
-
#: includes/fs-plugin-info-dialog.php:1290
|
239 |
-
msgid "Save %s"
|
240 |
-
msgstr ""
|
241 |
-
|
242 |
-
#: includes/fs-plugin-info-dialog.php:1300
|
243 |
-
msgid "No commitment for %s - cancel anytime"
|
244 |
-
msgstr ""
|
245 |
-
|
246 |
-
#: includes/fs-plugin-info-dialog.php:1303
|
247 |
-
msgid "After your free %s, pay as little as %s"
|
248 |
-
msgstr ""
|
249 |
-
|
250 |
-
#: includes/fs-plugin-info-dialog.php:1314
|
251 |
-
msgid "Details"
|
252 |
-
msgstr ""
|
253 |
-
|
254 |
-
#: includes/fs-plugin-info-dialog.php:1318, templates/account.php:120, templates/debug.php:215, templates/debug.php:252, templates/debug.php:466, templates/account/partials/addon.php:41
|
255 |
-
msgctxt "product version"
|
256 |
-
msgid "Version"
|
257 |
-
msgstr ""
|
258 |
-
|
259 |
-
#: includes/fs-plugin-info-dialog.php:1325
|
260 |
-
msgctxt "as the plugin author"
|
261 |
-
msgid "Author"
|
262 |
-
msgstr ""
|
263 |
-
|
264 |
-
#: includes/fs-plugin-info-dialog.php:1332
|
265 |
-
msgid "Last Updated"
|
266 |
-
msgstr ""
|
267 |
-
|
268 |
-
#. translators: %s: time period (e.g. "2 hours" ago)
|
269 |
-
#: includes/fs-plugin-info-dialog.php:1337, templates/account.php:536
|
270 |
-
msgctxt "x-ago"
|
271 |
-
msgid "%s ago"
|
272 |
-
msgstr ""
|
273 |
-
|
274 |
-
#: includes/fs-plugin-info-dialog.php:1346
|
275 |
-
msgid "Requires WordPress Version"
|
276 |
-
msgstr ""
|
277 |
-
|
278 |
-
#: includes/fs-plugin-info-dialog.php:1347
|
279 |
-
msgid "%s or higher"
|
280 |
-
msgstr ""
|
281 |
-
|
282 |
-
#: includes/fs-plugin-info-dialog.php:1354
|
283 |
-
msgid "Compatible up to"
|
284 |
-
msgstr ""
|
285 |
-
|
286 |
-
#: includes/fs-plugin-info-dialog.php:1362
|
287 |
-
msgid "Downloaded"
|
288 |
-
msgstr ""
|
289 |
-
|
290 |
-
#. translators: %s: 1 or One (Number of times downloaded)
|
291 |
-
#: includes/fs-plugin-info-dialog.php:1366
|
292 |
-
msgid "%s time"
|
293 |
-
msgstr ""
|
294 |
-
|
295 |
-
#. translators: %s: Number of times downloaded
|
296 |
-
#: includes/fs-plugin-info-dialog.php:1368
|
297 |
-
msgid "%s times"
|
298 |
-
msgstr ""
|
299 |
-
|
300 |
-
#: includes/fs-plugin-info-dialog.php:1379
|
301 |
-
msgid "WordPress.org Plugin Page"
|
302 |
-
msgstr ""
|
303 |
-
|
304 |
-
#: includes/fs-plugin-info-dialog.php:1388
|
305 |
-
msgid "Plugin Homepage"
|
306 |
-
msgstr ""
|
307 |
-
|
308 |
-
#: includes/fs-plugin-info-dialog.php:1397, includes/fs-plugin-info-dialog.php:1481
|
309 |
-
msgid "Donate to this plugin"
|
310 |
-
msgstr ""
|
311 |
-
|
312 |
-
#: includes/fs-plugin-info-dialog.php:1404
|
313 |
-
msgid "Average Rating"
|
314 |
-
msgstr ""
|
315 |
-
|
316 |
-
#: includes/fs-plugin-info-dialog.php:1411
|
317 |
-
msgid "based on %s"
|
318 |
-
msgstr ""
|
319 |
-
|
320 |
-
#. translators: %s: 1 or One
|
321 |
-
#: includes/fs-plugin-info-dialog.php:1415
|
322 |
-
msgid "%s rating"
|
323 |
-
msgstr ""
|
324 |
-
|
325 |
-
#. translators: %s: Number larger than 1
|
326 |
-
#: includes/fs-plugin-info-dialog.php:1417
|
327 |
-
msgid "%s ratings"
|
328 |
-
msgstr ""
|
329 |
-
|
330 |
-
#. translators: %s: 1 or One
|
331 |
-
#: includes/fs-plugin-info-dialog.php:1432
|
332 |
-
msgid "%s star"
|
333 |
-
msgstr ""
|
334 |
-
|
335 |
-
#. translators: %s: Number larger than 1
|
336 |
-
#: includes/fs-plugin-info-dialog.php:1434
|
337 |
-
msgid "%s stars"
|
338 |
-
msgstr ""
|
339 |
-
|
340 |
-
#. translators: %s: # of stars (e.g. 5 stars)
|
341 |
-
#: includes/fs-plugin-info-dialog.php:1446
|
342 |
-
msgid "Click to see reviews that provided a rating of %s"
|
343 |
-
msgstr ""
|
344 |
-
|
345 |
-
#: includes/fs-plugin-info-dialog.php:1459
|
346 |
-
msgid "Contributors"
|
347 |
-
msgstr ""
|
348 |
-
|
349 |
-
#: includes/fs-plugin-info-dialog.php:1491, includes/fs-plugin-info-dialog.php:1489
|
350 |
-
msgid "Warning"
|
351 |
-
msgstr ""
|
352 |
-
|
353 |
-
#: includes/fs-plugin-info-dialog.php:1491
|
354 |
-
msgid "This plugin has not been marked as compatible with your version of WordPress."
|
355 |
-
msgstr ""
|
356 |
-
|
357 |
-
#: includes/fs-plugin-info-dialog.php:1489
|
358 |
-
msgid "This plugin has not been tested with your current version of WordPress."
|
359 |
-
msgstr ""
|
360 |
-
|
361 |
-
#: includes/fs-plugin-info-dialog.php:1510
|
362 |
-
msgid "Paid add-on must be deployed to Freemius."
|
363 |
-
msgstr ""
|
364 |
-
|
365 |
-
#: includes/fs-plugin-info-dialog.php:1511
|
366 |
-
msgid "Add-on must be deployed to WordPress.org or Freemius."
|
367 |
-
msgstr ""
|
368 |
-
|
369 |
-
#: includes/fs-plugin-info-dialog.php:1540
|
370 |
-
msgid "Latest Version Installed"
|
371 |
-
msgstr ""
|
372 |
-
|
373 |
-
#: includes/fs-plugin-info-dialog.php:1541
|
374 |
-
msgid "Latest Free Version Installed"
|
375 |
-
msgstr ""
|
376 |
-
|
377 |
-
#: includes/fs-plugin-info-dialog.php:1532
|
378 |
-
msgid "Newer Version (%s) Installed"
|
379 |
-
msgstr ""
|
380 |
-
|
381 |
-
#: includes/fs-plugin-info-dialog.php:1533
|
382 |
-
msgid "Newer Free Version (%s) Installed"
|
383 |
-
msgstr ""
|
384 |
-
|
385 |
-
#: templates/account.php:110, templates/forms/subscription-cancellation.php:96, templates/account/partials/addon.php:31, templates/account/partials/site.php:311
|
386 |
-
msgid "Downgrading your plan"
|
387 |
-
msgstr ""
|
388 |
-
|
389 |
-
#: templates/account.php:111, templates/forms/subscription-cancellation.php:97, templates/account/partials/addon.php:32, templates/account/partials/site.php:312
|
390 |
-
msgid "Cancelling the subscription"
|
391 |
-
msgstr ""
|
392 |
-
|
393 |
-
#. translators: %1$s: Either 'Downgrading your plan' or 'Cancelling the subscription'
|
394 |
-
#: templates/account.php:113, templates/forms/subscription-cancellation.php:99, templates/account/partials/site.php:314
|
395 |
-
msgid "%1$s will immediately stop all future recurring payments and your %2$s plan license will expire in %3$s."
|
396 |
-
msgstr ""
|
397 |
-
|
398 |
-
#: templates/account.php:114, templates/forms/subscription-cancellation.php:100, templates/account/partials/addon.php:35, templates/account/partials/site.php:315
|
399 |
-
msgid "Please note that we will not be able to grandfather outdated pricing for renewals/new subscriptions after a cancellation. If you choose to renew the subscription manually in the future, after a price increase, which typically occurs once a year, you will be charged the updated price."
|
400 |
-
msgstr ""
|
401 |
-
|
402 |
-
#: templates/account.php:115, templates/forms/subscription-cancellation.php:106, templates/account/partials/addon.php:36
|
403 |
-
msgid "Cancelling the trial will immediately block access to all premium features. Are you sure?"
|
404 |
-
msgstr ""
|
405 |
-
|
406 |
-
#: templates/account.php:116, templates/forms/subscription-cancellation.php:101, templates/account/partials/addon.php:37, templates/account/partials/site.php:316
|
407 |
-
msgid "You can still enjoy all %s features but you will not have access to %s security & feature updates, nor support."
|
408 |
-
msgstr ""
|
409 |
-
|
410 |
-
#: templates/account.php:117, templates/forms/subscription-cancellation.php:102, templates/account/partials/addon.php:38, templates/account/partials/site.php:317
|
411 |
-
msgid "Once your license expires you can still use the Free version but you will NOT have access to the %s features."
|
412 |
-
msgstr ""
|
413 |
-
|
414 |
-
#. translators: %s: Plan title (e.g. "Professional")
|
415 |
-
#: templates/account.php:119, templates/account/partials/activate-license-button.php:31, templates/account/partials/addon.php:40
|
416 |
-
msgid "Activate %s Plan"
|
417 |
-
msgstr ""
|
418 |
-
|
419 |
-
#. translators: %s: Time period (e.g. Auto renews in "2 months")
|
420 |
-
#: templates/account.php:122, templates/account/partials/addon.php:43, templates/account/partials/site.php:291
|
421 |
-
msgid "Auto renews in %s"
|
422 |
-
msgstr ""
|
423 |
-
|
424 |
-
#. translators: %s: Time period (e.g. Expires in "2 months")
|
425 |
-
#: templates/account.php:124, templates/account/partials/addon.php:45, templates/account/partials/site.php:293
|
426 |
-
msgid "Expires in %s"
|
427 |
-
msgstr ""
|
428 |
-
|
429 |
-
#: templates/account.php:125
|
430 |
-
msgctxt "as synchronize license"
|
431 |
-
msgid "Sync License"
|
432 |
-
msgstr ""
|
433 |
-
|
434 |
-
#: templates/account.php:126, templates/account/partials/addon.php:46
|
435 |
-
msgid "Cancel Trial"
|
436 |
-
msgstr ""
|
437 |
-
|
438 |
-
#: templates/account.php:127, templates/account/partials/addon.php:47
|
439 |
-
msgid "Change Plan"
|
440 |
-
msgstr ""
|
441 |
-
|
442 |
-
#: templates/account.php:128, templates/account/partials/addon.php:48
|
443 |
-
msgctxt "verb"
|
444 |
-
msgid "Upgrade"
|
445 |
-
msgstr ""
|
446 |
-
|
447 |
-
#: templates/account.php:129, templates/account/partials/addon.php:49
|
448 |
-
msgid "Add-Ons"
|
449 |
-
msgstr ""
|
450 |
-
|
451 |
-
#: templates/account.php:130, templates/account/partials/addon.php:50, templates/account/partials/site.php:318
|
452 |
-
msgctxt "verb"
|
453 |
-
msgid "Downgrade"
|
454 |
-
msgstr ""
|
455 |
-
|
456 |
-
#: templates/account.php:131, templates/add-ons.php:250, templates/account/partials/addon.php:51
|
457 |
-
msgctxt "trial period"
|
458 |
-
msgid "Trial"
|
459 |
-
msgstr ""
|
460 |
-
|
461 |
-
#: templates/account.php:132, templates/add-ons.php:246, templates/plugin-info/features.php:72, templates/account/partials/addon.php:52, templates/account/partials/site.php:33
|
462 |
-
msgid "Free"
|
463 |
-
msgstr ""
|
464 |
-
|
465 |
-
#: templates/account.php:134, templates/debug.php:385, templates/account/partials/addon.php:54
|
466 |
-
msgctxt "as product pricing plan"
|
467 |
-
msgid "Plan"
|
468 |
-
msgstr ""
|
469 |
-
|
470 |
-
#: templates/account.php:135
|
471 |
-
msgid "Bundle Plan"
|
472 |
-
msgstr ""
|
473 |
-
|
474 |
-
#: templates/account.php:251, templates/debug.php:338
|
475 |
-
msgid "Account"
|
476 |
-
msgstr ""
|
477 |
-
|
478 |
-
#: templates/account.php:259
|
479 |
-
msgid "Free Trial"
|
480 |
-
msgstr ""
|
481 |
-
|
482 |
-
#: templates/account.php:270
|
483 |
-
msgid "Account Details"
|
484 |
-
msgstr ""
|
485 |
-
|
486 |
-
#: templates/account.php:279
|
487 |
-
msgid "Stop Debug"
|
488 |
-
msgstr ""
|
489 |
-
|
490 |
-
#: templates/account.php:277, templates/forms/data-debug-mode.php:33
|
491 |
-
msgid "Start Debug"
|
492 |
-
msgstr ""
|
493 |
-
|
494 |
-
#: templates/account.php:286
|
495 |
-
msgid "Billing & Invoices"
|
496 |
-
msgstr ""
|
497 |
-
|
498 |
-
#: templates/account.php:299
|
499 |
-
msgid "Deletion is not temporary. Only delete if you no longer want to use this %s anymore. Are you sure you would like to continue with the deletion?"
|
500 |
-
msgstr ""
|
501 |
-
|
502 |
-
#: templates/account.php:297
|
503 |
-
msgid "Deleting the account will automatically deactivate your %s plan license so you can use it on other sites. If you want to terminate the recurring payments as well, click the \"Cancel\" button, and first \"Downgrade\" your account. Are you sure you would like to continue with the deletion?"
|
504 |
-
msgstr ""
|
505 |
-
|
506 |
-
#: templates/account.php:302
|
507 |
-
msgid "Delete Account"
|
508 |
-
msgstr ""
|
509 |
-
|
510 |
-
#: templates/account.php:314, templates/account/partials/addon.php:236, templates/account/partials/deactivate-license-button.php:35
|
511 |
-
msgid "Deactivate License"
|
512 |
-
msgstr ""
|
513 |
-
|
514 |
-
#: templates/account.php:337, templates/forms/subscription-cancellation.php:125
|
515 |
-
msgid "Are you sure you want to proceed?"
|
516 |
-
msgstr ""
|
517 |
-
|
518 |
-
#: templates/account.php:337, templates/account/partials/addon.php:260
|
519 |
-
msgid "Cancel Subscription"
|
520 |
-
msgstr ""
|
521 |
-
|
522 |
-
#: templates/account.php:366, templates/account/partials/addon.php:345
|
523 |
-
msgctxt "as synchronize"
|
524 |
-
msgid "Sync"
|
525 |
-
msgstr ""
|
526 |
-
|
527 |
-
#: templates/account.php:381, templates/debug.php:523
|
528 |
-
msgid "Name"
|
529 |
-
msgstr ""
|
530 |
-
|
531 |
-
#: templates/account.php:387, templates/debug.php:524
|
532 |
-
msgid "Email"
|
533 |
-
msgstr ""
|
534 |
-
|
535 |
-
#: templates/account.php:394, templates/debug.php:383, templates/debug.php:573
|
536 |
-
msgid "User ID"
|
537 |
-
msgstr ""
|
538 |
-
|
539 |
-
#: templates/account.php:403, templates/account.php:411, templates/debug.php:372, templates/debug.php:567
|
540 |
-
msgid "Plugin"
|
541 |
-
msgstr ""
|
542 |
-
|
543 |
-
#: templates/account.php:404, templates/account.php:412, templates/debug.php:372, templates/debug.php:567, templates/forms/deactivation/form.php:107
|
544 |
-
msgid "Theme"
|
545 |
-
msgstr ""
|
546 |
-
|
547 |
-
#: templates/account.php:412, templates/account.php:732, templates/account.php:783, templates/debug.php:250, templates/debug.php:377, templates/debug.php:463, templates/debug.php:522, templates/debug.php:571, templates/debug.php:650, templates/account/payments.php:35, templates/debug/logger.php:21
|
548 |
-
msgid "ID"
|
549 |
-
msgstr ""
|
550 |
-
|
551 |
-
#: templates/account.php:419
|
552 |
-
msgid "Site ID"
|
553 |
-
msgstr ""
|
554 |
-
|
555 |
-
#: templates/account.php:422
|
556 |
-
msgid "No ID"
|
557 |
-
msgstr ""
|
558 |
-
|
559 |
-
#: templates/account.php:427, templates/debug.php:257, templates/debug.php:386, templates/debug.php:467, templates/debug.php:526, templates/account/partials/site.php:227
|
560 |
-
msgid "Public Key"
|
561 |
-
msgstr ""
|
562 |
-
|
563 |
-
#: templates/account.php:433, templates/debug.php:387, templates/debug.php:468, templates/debug.php:527, templates/account/partials/site.php:239
|
564 |
-
msgid "Secret Key"
|
565 |
-
msgstr ""
|
566 |
-
|
567 |
-
#: templates/account.php:436
|
568 |
-
msgctxt "as secret encryption key missing"
|
569 |
-
msgid "No Secret"
|
570 |
-
msgstr ""
|
571 |
-
|
572 |
-
#: templates/account.php:490, templates/debug.php:579, templates/account/partials/site.php:260
|
573 |
-
msgid "License Key"
|
574 |
-
msgstr ""
|
575 |
-
|
576 |
-
#: templates/account.php:463, templates/account/partials/site.php:122, templates/account/partials/site.php:120
|
577 |
-
msgid "Trial"
|
578 |
-
msgstr ""
|
579 |
-
|
580 |
-
#: templates/account.php:521
|
581 |
-
msgid "Join the Beta program"
|
582 |
-
msgstr ""
|
583 |
-
|
584 |
-
#: templates/account.php:527
|
585 |
-
msgid "not verified"
|
586 |
-
msgstr ""
|
587 |
-
|
588 |
-
#: templates/account.php:598
|
589 |
-
msgid "Free version"
|
590 |
-
msgstr ""
|
591 |
-
|
592 |
-
#: templates/account.php:596
|
593 |
-
msgid "Premium version"
|
594 |
-
msgstr ""
|
595 |
-
|
596 |
-
#: templates/account.php:536, templates/account/partials/addon.php:195
|
597 |
-
msgid "Expired"
|
598 |
-
msgstr ""
|
599 |
-
|
600 |
-
#: templates/account.php:567, templates/account.php:719, templates/connect.php:198, templates/connect.php:486, includes/managers/class-fs-clone-manager.php:1123, templates/forms/license-activation.php:27, templates/account/partials/addon.php:326
|
601 |
-
msgid "Activate License"
|
602 |
-
msgstr ""
|
603 |
-
|
604 |
-
#: templates/account.php:610
|
605 |
-
msgid "Verify Email"
|
606 |
-
msgstr ""
|
607 |
-
|
608 |
-
#: templates/account.php:687, templates/forms/user-change.php:27
|
609 |
-
msgid "Change User"
|
610 |
-
msgstr ""
|
611 |
-
|
612 |
-
#: templates/account.php:674
|
613 |
-
msgid "What is your %s?"
|
614 |
-
msgstr ""
|
615 |
-
|
616 |
-
#: templates/account.php:682, templates/account/billing.php:21
|
617 |
-
msgctxt "verb"
|
618 |
-
msgid "Edit"
|
619 |
-
msgstr ""
|
620 |
-
|
621 |
-
#: templates/account.php:658, templates/account.php:921, templates/account/partials/site.php:248, templates/account/partials/site.php:270
|
622 |
-
msgctxt "verb"
|
623 |
-
msgid "Show"
|
624 |
-
msgstr ""
|
625 |
-
|
626 |
-
#: templates/account.php:661, templates/account.php:718, templates/account/partials/addon.php:327, templates/account/partials/site.php:271
|
627 |
-
msgid "Change License"
|
628 |
-
msgstr ""
|
629 |
-
|
630 |
-
#: templates/account.php:624
|
631 |
-
msgid "Download %s Version"
|
632 |
-
msgstr ""
|
633 |
-
|
634 |
-
#: templates/account.php:640
|
635 |
-
msgid "Download Paid Version"
|
636 |
-
msgstr ""
|
637 |
-
|
638 |
-
#: templates/account.php:711
|
639 |
-
msgid "Sites"
|
640 |
-
msgstr ""
|
641 |
-
|
642 |
-
#: templates/account.php:724
|
643 |
-
msgid "Search by address"
|
644 |
-
msgstr ""
|
645 |
-
|
646 |
-
#: templates/account.php:733, templates/debug.php:380
|
647 |
-
msgid "Address"
|
648 |
-
msgstr ""
|
649 |
-
|
650 |
-
#: templates/account.php:734
|
651 |
-
msgid "License"
|
652 |
-
msgstr ""
|
653 |
-
|
654 |
-
#: templates/account.php:735
|
655 |
-
msgid "Plan"
|
656 |
-
msgstr ""
|
657 |
-
|
658 |
-
#: templates/account.php:786
|
659 |
-
msgctxt "as software license"
|
660 |
-
msgid "License"
|
661 |
-
msgstr ""
|
662 |
-
|
663 |
-
#: templates/account.php:915
|
664 |
-
msgctxt "verb"
|
665 |
-
msgid "Hide"
|
666 |
-
msgstr ""
|
667 |
-
|
668 |
-
#: templates/account.php:937, templates/forms/data-debug-mode.php:31, templates/forms/deactivation/form.php:358, templates/forms/deactivation/form.php:389
|
669 |
-
msgid "Processing"
|
670 |
-
msgstr ""
|
671 |
-
|
672 |
-
#: templates/account.php:940
|
673 |
-
msgid "Get updates for bleeding edge Beta versions of %s."
|
674 |
-
msgstr ""
|
675 |
-
|
676 |
-
#: templates/account.php:998
|
677 |
-
msgid "Cancelling %s"
|
678 |
-
msgstr ""
|
679 |
-
|
680 |
-
#: templates/account.php:998, templates/account.php:1015, templates/forms/subscription-cancellation.php:27, templates/forms/deactivation/form.php:178
|
681 |
-
msgid "trial"
|
682 |
-
msgstr ""
|
683 |
-
|
684 |
-
#: templates/account.php:1013, templates/forms/deactivation/form.php:195
|
685 |
-
msgid "Cancelling %s..."
|
686 |
-
msgstr ""
|
687 |
-
|
688 |
-
#: templates/account.php:1016, templates/forms/subscription-cancellation.php:28, templates/forms/deactivation/form.php:179
|
689 |
-
msgid "subscription"
|
690 |
-
msgstr ""
|
691 |
-
|
692 |
-
#: templates/account.php:1030
|
693 |
-
msgid "Deactivating your license will block all premium features, but will enable activating the license on another site. Are you sure you want to proceed?"
|
694 |
-
msgstr ""
|
695 |
-
|
696 |
-
#: templates/account.php:1104
|
697 |
-
msgid "Disabling white-label mode"
|
698 |
-
msgstr ""
|
699 |
-
|
700 |
-
#: templates/account.php:1105
|
701 |
-
msgid "Enabling white-label mode"
|
702 |
-
msgstr ""
|
703 |
-
|
704 |
-
#: templates/add-ons.php:38
|
705 |
-
msgid "View details"
|
706 |
-
msgstr ""
|
707 |
-
|
708 |
-
#: templates/add-ons.php:48
|
709 |
-
msgid "Add Ons for %s"
|
710 |
-
msgstr ""
|
711 |
-
|
712 |
-
#: templates/add-ons.php:57
|
713 |
-
msgctxt "exclamation"
|
714 |
-
msgid "Oops"
|
715 |
-
msgstr ""
|
716 |
-
|
717 |
-
#: templates/add-ons.php:58
|
718 |
-
msgid "We couldn't load the add-ons list. It's probably an issue on our side, please try to come back in few minutes."
|
719 |
-
msgstr ""
|
720 |
-
|
721 |
-
#: templates/add-ons.php:186, templates/account/partials/addon.php:386
|
722 |
-
msgid "More information about %s"
|
723 |
-
msgstr ""
|
724 |
-
|
725 |
-
#: templates/add-ons.php:229
|
726 |
-
msgctxt "active add-on"
|
727 |
-
msgid "Active"
|
728 |
-
msgstr ""
|
729 |
-
|
730 |
-
#: templates/add-ons.php:230
|
731 |
-
msgctxt "installed add-on"
|
732 |
-
msgid "Installed"
|
733 |
-
msgstr ""
|
734 |
-
|
735 |
-
#: templates/admin-notice.php:13, templates/forms/license-activation.php:250, templates/forms/resend-key.php:80
|
736 |
-
msgctxt "as close a window"
|
737 |
-
msgid "Dismiss"
|
738 |
-
msgstr ""
|
739 |
-
|
740 |
-
#: templates/auto-installation.php:32
|
741 |
-
msgid "Add-On"
|
742 |
-
msgstr ""
|
743 |
-
|
744 |
-
#. translators: %s: Number of seconds
|
745 |
-
#: templates/auto-installation.php:45
|
746 |
-
msgid "%s sec"
|
747 |
-
msgstr ""
|
748 |
-
|
749 |
-
#: templates/auto-installation.php:83
|
750 |
-
msgid "Automatic Installation"
|
751 |
-
msgstr ""
|
752 |
-
|
753 |
-
#: templates/auto-installation.php:93
|
754 |
-
msgid "An automated download and installation of %s (paid version) from %s will start in %s. If you would like to do it manually - click the cancellation button now."
|
755 |
-
msgstr ""
|
756 |
-
|
757 |
-
#: templates/auto-installation.php:104
|
758 |
-
msgid "The installation process has started and may take a few minutes to complete. Please wait until it is done - do not refresh this page."
|
759 |
-
msgstr ""
|
760 |
-
|
761 |
-
#: templates/auto-installation.php:109
|
762 |
-
msgid "Cancel Installation"
|
763 |
-
msgstr ""
|
764 |
-
|
765 |
-
#. translators: %s: name (e.g. Hey John,)
|
766 |
-
#: templates/connect.php:121
|
767 |
-
msgctxt "greeting"
|
768 |
-
msgid "Hey %s,"
|
769 |
-
msgstr ""
|
770 |
-
|
771 |
-
#: templates/connect.php:181
|
772 |
-
msgid "Allow & Continue"
|
773 |
-
msgstr ""
|
774 |
-
|
775 |
-
#: templates/connect.php:210, templates/connect.php:217
|
776 |
-
msgid "Never miss an important update - opt in to our security & feature updates notifications, educational content, offers, and non-sensitive diagnostic tracking with %4$s."
|
777 |
-
msgstr ""
|
778 |
-
|
779 |
-
#: templates/connect.php:211, templates/connect.php:218
|
780 |
-
msgid "Never miss an important update - opt in to our security & feature updates notifications, and non-sensitive diagnostic tracking with %4$s."
|
781 |
-
msgstr ""
|
782 |
-
|
783 |
-
#: templates/connect.php:221
|
784 |
-
msgid "If you skip this, that's okay! %1$s will still work just fine."
|
785 |
-
msgstr ""
|
786 |
-
|
787 |
-
#: templates/connect.php:199, templates/forms/license-activation.php:46
|
788 |
-
msgid "Agree & Activate License"
|
789 |
-
msgstr ""
|
790 |
-
|
791 |
-
#: templates/connect.php:203
|
792 |
-
msgid "Welcome to %s! To get started, please enter your license key:"
|
793 |
-
msgstr ""
|
794 |
-
|
795 |
-
#: templates/connect.php:185
|
796 |
-
msgid "Re-send activation email"
|
797 |
-
msgstr ""
|
798 |
-
|
799 |
-
#: templates/connect.php:189
|
800 |
-
msgid "Thanks %s!"
|
801 |
-
msgstr ""
|
802 |
-
|
803 |
-
#: templates/connect.php:190
|
804 |
-
msgid "You should receive an activation email for %s to your mailbox at %s. Please make sure you click the activation button in that email to %s."
|
805 |
-
msgstr ""
|
806 |
-
|
807 |
-
#: templates/connect.php:194
|
808 |
-
msgid "complete the install"
|
809 |
-
msgstr ""
|
810 |
-
|
811 |
-
#: templates/connect.php:251
|
812 |
-
msgid "We're excited to introduce the Freemius network-level integration."
|
813 |
-
msgstr ""
|
814 |
-
|
815 |
-
#: templates/connect.php:265
|
816 |
-
msgid "During the update process we detected %s site(s) in the network that are still pending your attention."
|
817 |
-
msgstr ""
|
818 |
-
|
819 |
-
#: templates/connect.php:254
|
820 |
-
msgid "During the update process we detected %d site(s) that are still pending license activation."
|
821 |
-
msgstr ""
|
822 |
-
|
823 |
-
#: templates/connect.php:256
|
824 |
-
msgid "If you'd like to use the %s on those sites, please enter your license key below and click the activation button."
|
825 |
-
msgstr ""
|
826 |
-
|
827 |
-
#: templates/connect.php:258
|
828 |
-
msgid "%s's paid features"
|
829 |
-
msgstr ""
|
830 |
-
|
831 |
-
#: templates/connect.php:263
|
832 |
-
msgid "Alternatively, you can skip it for now and activate the license later, in your %s's network-level Account page."
|
833 |
-
msgstr ""
|
834 |
-
|
835 |
-
#: templates/connect.php:274, templates/forms/data-debug-mode.php:35, templates/forms/license-activation.php:49
|
836 |
-
msgid "License key"
|
837 |
-
msgstr ""
|
838 |
-
|
839 |
-
#: templates/connect.php:277, templates/forms/license-activation.php:22
|
840 |
-
msgid "Can't find your license key?"
|
841 |
-
msgstr ""
|
842 |
-
|
843 |
-
#: templates/connect.php:308
|
844 |
-
msgid "Please let us know if you'd like us to contact you for security & feature updates, educational content, and occasional offers:"
|
845 |
-
msgstr ""
|
846 |
-
|
847 |
-
#: templates/connect.php:340, templates/connect.php:730, templates/forms/deactivation/retry-skip.php:20
|
848 |
-
msgctxt "verb"
|
849 |
-
msgid "Skip"
|
850 |
-
msgstr ""
|
851 |
-
|
852 |
-
#: templates/connect.php:343
|
853 |
-
msgid "Delegate to Site Admins"
|
854 |
-
msgstr ""
|
855 |
-
|
856 |
-
#: templates/connect.php:343
|
857 |
-
msgid "If you click it, this decision will be delegated to the sites administrators."
|
858 |
-
msgstr ""
|
859 |
-
|
860 |
-
#: templates/connect.php:368
|
861 |
-
msgid "License issues?"
|
862 |
-
msgstr ""
|
863 |
-
|
864 |
-
#: templates/connect.php:454
|
865 |
-
msgid "What permissions are being granted?"
|
866 |
-
msgstr ""
|
867 |
-
|
868 |
-
#: templates/connect.php:448
|
869 |
-
msgid "The %1$s will periodically send %2$s to %3$s for security & feature updates delivery, and license management."
|
870 |
-
msgstr ""
|
871 |
-
|
872 |
-
#: templates/connect.php:450
|
873 |
-
msgid "diagnostic data"
|
874 |
-
msgstr ""
|
875 |
-
|
876 |
-
#: templates/connect.php:485
|
877 |
-
msgid "Have a license key?"
|
878 |
-
msgstr ""
|
879 |
-
|
880 |
-
#: templates/connect.php:482
|
881 |
-
msgid "Don't have a license key?"
|
882 |
-
msgstr ""
|
883 |
-
|
884 |
-
#: templates/connect.php:493
|
885 |
-
msgid "Privacy Policy"
|
886 |
-
msgstr ""
|
887 |
-
|
888 |
-
#: templates/connect.php:495
|
889 |
-
msgid "License Agreement"
|
890 |
-
msgstr ""
|
891 |
-
|
892 |
-
#: templates/connect.php:495
|
893 |
-
msgid "Terms of Service"
|
894 |
-
msgstr ""
|
895 |
-
|
896 |
-
#: templates/connect.php:896
|
897 |
-
msgctxt "as in the process of sending an email"
|
898 |
-
msgid "Sending email"
|
899 |
-
msgstr ""
|
900 |
-
|
901 |
-
#: templates/connect.php:897
|
902 |
-
msgctxt "as activating plugin"
|
903 |
-
msgid "Activating"
|
904 |
-
msgstr ""
|
905 |
-
|
906 |
-
#: templates/debug.php:17
|
907 |
-
msgctxt "as turned off"
|
908 |
-
msgid "Off"
|
909 |
-
msgstr ""
|
910 |
-
|
911 |
-
#: templates/debug.php:18
|
912 |
-
msgctxt "as turned on"
|
913 |
-
msgid "On"
|
914 |
-
msgstr ""
|
915 |
-
|
916 |
-
#: templates/debug.php:20
|
917 |
-
msgid "SDK"
|
918 |
-
msgstr ""
|
919 |
-
|
920 |
-
#: templates/debug.php:24
|
921 |
-
msgctxt "as code debugging"
|
922 |
-
msgid "Debugging"
|
923 |
-
msgstr ""
|
924 |
-
|
925 |
-
#: templates/debug.php:54, templates/debug.php:262, templates/debug.php:388, templates/debug.php:528
|
926 |
-
msgid "Actions"
|
927 |
-
msgstr ""
|
928 |
-
|
929 |
-
#: templates/debug.php:64
|
930 |
-
msgid "Are you sure you want to delete all Freemius data?"
|
931 |
-
msgstr ""
|
932 |
-
|
933 |
-
#: templates/debug.php:64
|
934 |
-
msgid "Delete All Accounts"
|
935 |
-
msgstr ""
|
936 |
-
|
937 |
-
#: templates/debug.php:71
|
938 |
-
msgid "Clear API Cache"
|
939 |
-
msgstr ""
|
940 |
-
|
941 |
-
#: templates/debug.php:79
|
942 |
-
msgid "Clear Updates Transients"
|
943 |
-
msgstr ""
|
944 |
-
|
945 |
-
#: templates/debug.php:88
|
946 |
-
msgid "Reset Deactivation Snoozing"
|
947 |
-
msgstr ""
|
948 |
-
|
949 |
-
#: templates/debug.php:96
|
950 |
-
msgid "Sync Data From Server"
|
951 |
-
msgstr ""
|
952 |
-
|
953 |
-
#: templates/debug.php:105
|
954 |
-
msgid "Migrate Options to Network"
|
955 |
-
msgstr ""
|
956 |
-
|
957 |
-
#: templates/debug.php:110
|
958 |
-
msgid "Load DB Option"
|
959 |
-
msgstr ""
|
960 |
-
|
961 |
-
#: templates/debug.php:113
|
962 |
-
msgid "Set DB Option"
|
963 |
-
msgstr ""
|
964 |
-
|
965 |
-
#: templates/debug.php:194
|
966 |
-
msgid "Key"
|
967 |
-
msgstr ""
|
968 |
-
|
969 |
-
#: templates/debug.php:195
|
970 |
-
msgid "Value"
|
971 |
-
msgstr ""
|
972 |
-
|
973 |
-
#: templates/debug.php:211
|
974 |
-
msgctxt "as software development kit versions"
|
975 |
-
msgid "SDK Versions"
|
976 |
-
msgstr ""
|
977 |
-
|
978 |
-
#: templates/debug.php:216
|
979 |
-
msgid "SDK Path"
|
980 |
-
msgstr ""
|
981 |
-
|
982 |
-
#: templates/debug.php:217, templates/debug.php:256
|
983 |
-
msgid "Module Path"
|
984 |
-
msgstr ""
|
985 |
-
|
986 |
-
#: templates/debug.php:218
|
987 |
-
msgid "Is Active"
|
988 |
-
msgstr ""
|
989 |
-
|
990 |
-
#: templates/debug.php:246, templates/debug/plugins-themes-sync.php:35
|
991 |
-
msgid "Plugins"
|
992 |
-
msgstr ""
|
993 |
-
|
994 |
-
#: templates/debug.php:246, templates/debug/plugins-themes-sync.php:56
|
995 |
-
msgid "Themes"
|
996 |
-
msgstr ""
|
997 |
-
|
998 |
-
#: templates/debug.php:251, templates/debug.php:382, templates/debug.php:465, templates/debug/scheduled-crons.php:80
|
999 |
-
msgid "Slug"
|
1000 |
-
msgstr ""
|
1001 |
-
|
1002 |
-
#: templates/debug.php:253, templates/debug.php:464
|
1003 |
-
msgid "Title"
|
1004 |
-
msgstr ""
|
1005 |
-
|
1006 |
-
#: templates/debug.php:254
|
1007 |
-
msgctxt "as application program interface"
|
1008 |
-
msgid "API"
|
1009 |
-
msgstr ""
|
1010 |
-
|
1011 |
-
#: templates/debug.php:255
|
1012 |
-
msgid "Freemius State"
|
1013 |
-
msgstr ""
|
1014 |
-
|
1015 |
-
#: templates/debug.php:259
|
1016 |
-
msgid "Network Blog"
|
1017 |
-
msgstr ""
|
1018 |
-
|
1019 |
-
#: templates/debug.php:260
|
1020 |
-
msgid "Network User"
|
1021 |
-
msgstr ""
|
1022 |
-
|
1023 |
-
#: templates/debug.php:297
|
1024 |
-
msgctxt "as connection was successful"
|
1025 |
-
msgid "Connected"
|
1026 |
-
msgstr ""
|
1027 |
-
|
1028 |
-
#: templates/debug.php:298
|
1029 |
-
msgctxt "as connection blocked"
|
1030 |
-
msgid "Blocked"
|
1031 |
-
msgstr ""
|
1032 |
-
|
1033 |
-
#: templates/debug.php:334
|
1034 |
-
msgid "Simulate Trial Promotion"
|
1035 |
-
msgstr ""
|
1036 |
-
|
1037 |
-
#: templates/debug.php:346
|
1038 |
-
msgid "Simulate Network Upgrade"
|
1039 |
-
msgstr ""
|
1040 |
-
|
1041 |
-
#. translators: %s: 'plugin' or 'theme'
|
1042 |
-
#: templates/debug.php:371
|
1043 |
-
msgid "%s Installs"
|
1044 |
-
msgstr ""
|
1045 |
-
|
1046 |
-
#: templates/debug.php:373
|
1047 |
-
msgctxt "like websites"
|
1048 |
-
msgid "Sites"
|
1049 |
-
msgstr ""
|
1050 |
-
|
1051 |
-
#: templates/debug.php:379, templates/account/partials/site.php:156
|
1052 |
-
msgid "Blog ID"
|
1053 |
-
msgstr ""
|
1054 |
-
|
1055 |
-
#: templates/debug.php:384
|
1056 |
-
msgid "License ID"
|
1057 |
-
msgstr ""
|
1058 |
-
|
1059 |
-
#: templates/debug.php:445, templates/debug.php:551, templates/account/partials/addon.php:440
|
1060 |
-
msgctxt "verb"
|
1061 |
-
msgid "Delete"
|
1062 |
-
msgstr ""
|
1063 |
-
|
1064 |
-
#: templates/debug.php:459
|
1065 |
-
msgid "Add Ons of module %s"
|
1066 |
-
msgstr ""
|
1067 |
-
|
1068 |
-
#: templates/debug.php:518
|
1069 |
-
msgid "Users"
|
1070 |
-
msgstr ""
|
1071 |
-
|
1072 |
-
#: templates/debug.php:525
|
1073 |
-
msgid "Verified"
|
1074 |
-
msgstr ""
|
1075 |
-
|
1076 |
-
#: templates/debug.php:567
|
1077 |
-
msgid "%s Licenses"
|
1078 |
-
msgstr ""
|
1079 |
-
|
1080 |
-
#: templates/debug.php:572
|
1081 |
-
msgid "Plugin ID"
|
1082 |
-
msgstr ""
|
1083 |
-
|
1084 |
-
#: templates/debug.php:574
|
1085 |
-
msgid "Plan ID"
|
1086 |
-
msgstr ""
|
1087 |
-
|
1088 |
-
#: templates/debug.php:575
|
1089 |
-
msgid "Quota"
|
1090 |
-
msgstr ""
|
1091 |
-
|
1092 |
-
#: templates/debug.php:576
|
1093 |
-
msgid "Activated"
|
1094 |
-
msgstr ""
|
1095 |
-
|
1096 |
-
#: templates/debug.php:577
|
1097 |
-
msgid "Blocking"
|
1098 |
-
msgstr ""
|
1099 |
-
|
1100 |
-
#: templates/debug.php:578, templates/debug.php:649, templates/debug/logger.php:22
|
1101 |
-
msgid "Type"
|
1102 |
-
msgstr ""
|
1103 |
-
|
1104 |
-
#: templates/debug.php:580
|
1105 |
-
msgctxt "as expiration date"
|
1106 |
-
msgid "Expiration"
|
1107 |
-
msgstr ""
|
1108 |
-
|
1109 |
-
#: templates/debug.php:608
|
1110 |
-
msgid "Debug Log"
|
1111 |
-
msgstr ""
|
1112 |
-
|
1113 |
-
#: templates/debug.php:612
|
1114 |
-
msgid "All Types"
|
1115 |
-
msgstr ""
|
1116 |
-
|
1117 |
-
#: templates/debug.php:619
|
1118 |
-
msgid "All Requests"
|
1119 |
-
msgstr ""
|
1120 |
-
|
1121 |
-
#: templates/debug.php:624, templates/debug.php:653, templates/debug/logger.php:25
|
1122 |
-
msgid "File"
|
1123 |
-
msgstr ""
|
1124 |
-
|
1125 |
-
#: templates/debug.php:625, templates/debug.php:651, templates/debug/logger.php:23
|
1126 |
-
msgid "Function"
|
1127 |
-
msgstr ""
|
1128 |
-
|
1129 |
-
#: templates/debug.php:626
|
1130 |
-
msgid "Process ID"
|
1131 |
-
msgstr ""
|
1132 |
-
|
1133 |
-
#: templates/debug.php:627
|
1134 |
-
msgid "Logger"
|
1135 |
-
msgstr ""
|
1136 |
-
|
1137 |
-
#: templates/debug.php:628, templates/debug.php:652, templates/debug/logger.php:24
|
1138 |
-
msgid "Message"
|
1139 |
-
msgstr ""
|
1140 |
-
|
1141 |
-
#: templates/debug.php:630
|
1142 |
-
msgid "Filter"
|
1143 |
-
msgstr ""
|
1144 |
-
|
1145 |
-
#: templates/debug.php:638
|
1146 |
-
msgid "Download"
|
1147 |
-
msgstr ""
|
1148 |
-
|
1149 |
-
#: templates/debug.php:654, templates/debug/logger.php:26
|
1150 |
-
msgid "Timestamp"
|
1151 |
-
msgstr ""
|
1152 |
-
|
1153 |
-
#: includes/debug/class-fs-debug-bar-panel.php:48, templates/debug/api-calls.php:54, templates/debug/logger.php:62
|
1154 |
-
msgctxt "milliseconds"
|
1155 |
-
msgid "ms"
|
1156 |
-
msgstr ""
|
1157 |
-
|
1158 |
-
#: includes/debug/debug-bar-start.php:41
|
1159 |
-
msgid "Freemius API"
|
1160 |
-
msgstr ""
|
1161 |
-
|
1162 |
-
#: includes/debug/debug-bar-start.php:42
|
1163 |
-
msgid "Requests"
|
1164 |
-
msgstr ""
|
1165 |
-
|
1166 |
-
#: includes/managers/class-fs-clone-manager.php:703
|
1167 |
-
msgid "Invalid clone resolution action."
|
1168 |
-
msgstr ""
|
1169 |
-
|
1170 |
-
#: includes/managers/class-fs-clone-manager.php:851
|
1171 |
-
msgid "products"
|
1172 |
-
msgstr ""
|
1173 |
-
|
1174 |
-
#: includes/managers/class-fs-clone-manager.php:1039
|
1175 |
-
msgid "The products below have been placed into safe mode because we noticed that %2$s is an exact copy of %3$s:%1$s"
|
1176 |
-
msgstr ""
|
1177 |
-
|
1178 |
-
#: includes/managers/class-fs-clone-manager.php:1040
|
1179 |
-
msgid "The products below have been placed into safe mode because we noticed that %2$s is an exact copy of these sites:%3$s%1$s"
|
1180 |
-
msgstr ""
|
1181 |
-
|
1182 |
-
#: includes/managers/class-fs-clone-manager.php:1033
|
1183 |
-
msgid "%1$s has been placed into safe mode because we noticed that %2$s is an exact copy of %3$s."
|
1184 |
-
msgstr ""
|
1185 |
-
|
1186 |
-
#: includes/managers/class-fs-clone-manager.php:1066
|
1187 |
-
msgid "the above-mentioned sites"
|
1188 |
-
msgstr ""
|
1189 |
-
|
1190 |
-
#: includes/managers/class-fs-clone-manager.php:1079
|
1191 |
-
msgid "Is %2$s a duplicate of %4$s?"
|
1192 |
-
msgstr ""
|
1193 |
-
|
1194 |
-
#: includes/managers/class-fs-clone-manager.php:1080
|
1195 |
-
msgid "Yes, %2$s is a duplicate of %4$s for the purpose of testing, staging, or development."
|
1196 |
-
msgstr ""
|
1197 |
-
|
1198 |
-
#: includes/managers/class-fs-clone-manager.php:1085
|
1199 |
-
msgid "Long-Term Duplicate"
|
1200 |
-
msgstr ""
|
1201 |
-
|
1202 |
-
#: includes/managers/class-fs-clone-manager.php:1090
|
1203 |
-
msgid "Duplicate Website"
|
1204 |
-
msgstr ""
|
1205 |
-
|
1206 |
-
#: includes/managers/class-fs-clone-manager.php:1096
|
1207 |
-
msgid "Is %2$s the new home of %4$s?"
|
1208 |
-
msgstr ""
|
1209 |
-
|
1210 |
-
#: includes/managers/class-fs-clone-manager.php:1098
|
1211 |
-
msgid "Yes, %%2$s is replacing %%4$s. I would like to migrate my %s from %%4$s to %%2$s."
|
1212 |
-
msgstr ""
|
1213 |
-
|
1214 |
-
#: includes/managers/class-fs-clone-manager.php:1099, templates/forms/subscription-cancellation.php:52
|
1215 |
-
msgid "license"
|
1216 |
-
msgstr ""
|
1217 |
-
|
1218 |
-
#: includes/managers/class-fs-clone-manager.php:1099
|
1219 |
-
msgid "data"
|
1220 |
-
msgstr ""
|
1221 |
-
|
1222 |
-
#: includes/managers/class-fs-clone-manager.php:1105
|
1223 |
-
msgid "Migrate License"
|
1224 |
-
msgstr ""
|
1225 |
-
|
1226 |
-
#: includes/managers/class-fs-clone-manager.php:1106
|
1227 |
-
msgid "Migrate"
|
1228 |
-
msgstr ""
|
1229 |
-
|
1230 |
-
#: includes/managers/class-fs-clone-manager.php:1112
|
1231 |
-
msgid "Is %2$s a new website?"
|
1232 |
-
msgstr ""
|
1233 |
-
|
1234 |
-
#: includes/managers/class-fs-clone-manager.php:1113
|
1235 |
-
msgid "Yes, %2$s is a new and different website that is separate from %4$s."
|
1236 |
-
msgstr ""
|
1237 |
-
|
1238 |
-
#: includes/managers/class-fs-clone-manager.php:1115
|
1239 |
-
msgid "It requires license activation."
|
1240 |
-
msgstr ""
|
1241 |
-
|
1242 |
-
#: includes/managers/class-fs-clone-manager.php:1122
|
1243 |
-
msgid "New Website"
|
1244 |
-
msgstr ""
|
1245 |
-
|
1246 |
-
#: includes/managers/class-fs-clone-manager.php:1145
|
1247 |
-
msgctxt "Clone resolution admin notice products list label"
|
1248 |
-
msgid "Products"
|
1249 |
-
msgstr ""
|
1250 |
-
|
1251 |
-
#: includes/managers/class-fs-clone-manager.php:1230
|
1252 |
-
msgid "You marked this website, %s, as a temporary duplicate of %s."
|
1253 |
-
msgstr ""
|
1254 |
-
|
1255 |
-
#: includes/managers/class-fs-clone-manager.php:1231
|
1256 |
-
msgid "You marked this website, %s, as a temporary duplicate of these sites"
|
1257 |
-
msgstr ""
|
1258 |
-
|
1259 |
-
#: includes/managers/class-fs-clone-manager.php:1245
|
1260 |
-
msgid "%s automatic security & feature updates and paid functionality will keep working without interruptions until %s (or when your license expires, whatever comes first)."
|
1261 |
-
msgstr ""
|
1262 |
-
|
1263 |
-
#: includes/managers/class-fs-clone-manager.php:1248
|
1264 |
-
msgctxt "\"The <product_label>\", e.g.: \"The plugin\""
|
1265 |
-
msgid "The %s's"
|
1266 |
-
msgstr ""
|
1267 |
-
|
1268 |
-
#: includes/managers/class-fs-clone-manager.php:1251
|
1269 |
-
msgid "The following products'"
|
1270 |
-
msgstr ""
|
1271 |
-
|
1272 |
-
#: includes/managers/class-fs-clone-manager.php:1259
|
1273 |
-
msgid "If this is a long term duplicate, to keep automatic updates and paid functionality after %s, please %s."
|
1274 |
-
msgstr ""
|
1275 |
-
|
1276 |
-
#: includes/managers/class-fs-clone-manager.php:1261
|
1277 |
-
msgid "activate a license here"
|
1278 |
-
msgstr ""
|
1279 |
-
|
1280 |
-
#: templates/account/billing.php:22
|
1281 |
-
msgctxt "verb"
|
1282 |
-
msgid "Update"
|
1283 |
-
msgstr ""
|
1284 |
-
|
1285 |
-
#: templates/account/billing.php:33
|
1286 |
-
msgid "Billing"
|
1287 |
-
msgstr ""
|
1288 |
-
|
1289 |
-
#: templates/account/billing.php:38, templates/account/billing.php:38
|
1290 |
-
msgid "Business name"
|
1291 |
-
msgstr ""
|
1292 |
-
|
1293 |
-
#: templates/account/billing.php:39, templates/account/billing.php:39
|
1294 |
-
msgid "Tax / VAT ID"
|
1295 |
-
msgstr ""
|
1296 |
-
|
1297 |
-
#: templates/account/billing.php:42, templates/account/billing.php:42, templates/account/billing.php:43, templates/account/billing.php:43
|
1298 |
-
msgid "Address Line %d"
|
1299 |
-
msgstr ""
|
1300 |
-
|
1301 |
-
#: templates/account/billing.php:46, templates/account/billing.php:46
|
1302 |
-
msgid "City"
|
1303 |
-
msgstr ""
|
1304 |
-
|
1305 |
-
#: templates/account/billing.php:46, templates/account/billing.php:46
|
1306 |
-
msgid "Town"
|
1307 |
-
msgstr ""
|
1308 |
-
|
1309 |
-
#: templates/account/billing.php:47, templates/account/billing.php:47
|
1310 |
-
msgid "ZIP / Postal Code"
|
1311 |
-
msgstr ""
|
1312 |
-
|
1313 |
-
#: templates/account/billing.php:302
|
1314 |
-
msgid "Country"
|
1315 |
-
msgstr ""
|
1316 |
-
|
1317 |
-
#: templates/account/billing.php:304
|
1318 |
-
msgid "Select Country"
|
1319 |
-
msgstr ""
|
1320 |
-
|
1321 |
-
#: templates/account/billing.php:311, templates/account/billing.php:312
|
1322 |
-
msgid "State"
|
1323 |
-
msgstr ""
|
1324 |
-
|
1325 |
-
#: templates/account/billing.php:311, templates/account/billing.php:312
|
1326 |
-
msgid "Province"
|
1327 |
-
msgstr ""
|
1328 |
-
|
1329 |
-
#: templates/account/payments.php:29
|
1330 |
-
msgid "Payments"
|
1331 |
-
msgstr ""
|
1332 |
-
|
1333 |
-
#: templates/account/payments.php:36
|
1334 |
-
msgid "Date"
|
1335 |
-
msgstr ""
|
1336 |
-
|
1337 |
-
#: templates/account/payments.php:37
|
1338 |
-
msgid "Amount"
|
1339 |
-
msgstr ""
|
1340 |
-
|
1341 |
-
#: templates/account/payments.php:38, templates/account/payments.php:50
|
1342 |
-
msgid "Invoice"
|
1343 |
-
msgstr ""
|
1344 |
-
|
1345 |
-
#: templates/debug/api-calls.php:56
|
1346 |
-
msgid "API"
|
1347 |
-
msgstr ""
|
1348 |
-
|
1349 |
-
#: templates/debug/api-calls.php:68
|
1350 |
-
msgid "Method"
|
1351 |
-
msgstr ""
|
1352 |
-
|
1353 |
-
#: templates/debug/api-calls.php:69
|
1354 |
-
msgid "Code"
|
1355 |
-
msgstr ""
|
1356 |
-
|
1357 |
-
#: templates/debug/api-calls.php:70
|
1358 |
-
msgid "Length"
|
1359 |
-
msgstr ""
|
1360 |
-
|
1361 |
-
#: templates/debug/api-calls.php:71
|
1362 |
-
msgctxt "as file/folder path"
|
1363 |
-
msgid "Path"
|
1364 |
-
msgstr ""
|
1365 |
-
|
1366 |
-
#: templates/debug/api-calls.php:73
|
1367 |
-
msgid "Body"
|
1368 |
-
msgstr ""
|
1369 |
-
|
1370 |
-
#: templates/debug/api-calls.php:75
|
1371 |
-
msgid "Result"
|
1372 |
-
msgstr ""
|
1373 |
-
|
1374 |
-
#: templates/debug/api-calls.php:76
|
1375 |
-
msgid "Start"
|
1376 |
-
msgstr ""
|
1377 |
-
|
1378 |
-
#: templates/debug/api-calls.php:77
|
1379 |
-
msgid "End"
|
1380 |
-
msgstr ""
|
1381 |
-
|
1382 |
-
#: templates/debug/logger.php:15
|
1383 |
-
msgid "Log"
|
1384 |
-
msgstr ""
|
1385 |
-
|
1386 |
-
#. translators: %s: time period (e.g. In "2 hours")
|
1387 |
-
#: templates/debug/plugins-themes-sync.php:18, templates/debug/scheduled-crons.php:91
|
1388 |
-
msgid "In %s"
|
1389 |
-
msgstr ""
|
1390 |
-
|
1391 |
-
#. translators: %s: time period (e.g. "2 hours" ago)
|
1392 |
-
#: templates/debug/plugins-themes-sync.php:20, templates/debug/scheduled-crons.php:93
|
1393 |
-
msgid "%s ago"
|
1394 |
-
msgstr ""
|
1395 |
-
|
1396 |
-
#: templates/debug/plugins-themes-sync.php:21, templates/debug/scheduled-crons.php:74
|
1397 |
-
msgctxt "seconds"
|
1398 |
-
msgid "sec"
|
1399 |
-
msgstr ""
|
1400 |
-
|
1401 |
-
#: templates/debug/plugins-themes-sync.php:23
|
1402 |
-
msgid "Plugins & Themes Sync"
|
1403 |
-
msgstr ""
|
1404 |
-
|
1405 |
-
#: templates/debug/plugins-themes-sync.php:28
|
1406 |
-
msgid "Total"
|
1407 |
-
msgstr ""
|
1408 |
-
|
1409 |
-
#: templates/debug/plugins-themes-sync.php:29, templates/debug/scheduled-crons.php:84
|
1410 |
-
msgid "Last"
|
1411 |
-
msgstr ""
|
1412 |
-
|
1413 |
-
#: templates/debug/scheduled-crons.php:76
|
1414 |
-
msgid "Scheduled Crons"
|
1415 |
-
msgstr ""
|
1416 |
-
|
1417 |
-
#: templates/debug/scheduled-crons.php:81
|
1418 |
-
msgid "Module"
|
1419 |
-
msgstr ""
|
1420 |
-
|
1421 |
-
#: templates/debug/scheduled-crons.php:82
|
1422 |
-
msgid "Module Type"
|
1423 |
-
msgstr ""
|
1424 |
-
|
1425 |
-
#: templates/debug/scheduled-crons.php:83
|
1426 |
-
msgid "Cron Type"
|
1427 |
-
msgstr ""
|
1428 |
-
|
1429 |
-
#: templates/debug/scheduled-crons.php:85
|
1430 |
-
msgid "Next"
|
1431 |
-
msgstr ""
|
1432 |
-
|
1433 |
-
#: templates/forms/affiliation.php:83
|
1434 |
-
msgid "Non-expiring"
|
1435 |
-
msgstr ""
|
1436 |
-
|
1437 |
-
#: templates/forms/affiliation.php:86
|
1438 |
-
msgid "Apply to become an affiliate"
|
1439 |
-
msgstr ""
|
1440 |
-
|
1441 |
-
#: templates/forms/affiliation.php:132
|
1442 |
-
msgid "Due to violation of our affiliation terms, we decided to temporarily block your affiliation account. If you have any questions, please contact support."
|
1443 |
-
msgstr ""
|
1444 |
-
|
1445 |
-
#: templates/forms/affiliation.php:129
|
1446 |
-
msgid "Thank you for applying for our affiliate program, unfortunately, we've decided at this point to reject your application. Please try again in 30 days."
|
1447 |
-
msgstr ""
|
1448 |
-
|
1449 |
-
#: templates/forms/affiliation.php:126
|
1450 |
-
msgid "Your affiliation account was temporarily suspended."
|
1451 |
-
msgstr ""
|
1452 |
-
|
1453 |
-
#: templates/forms/affiliation.php:123
|
1454 |
-
msgid "Thank you for applying for our affiliate program, we'll review your details during the next 14 days and will get back to you with further information."
|
1455 |
-
msgstr ""
|
1456 |
-
|
1457 |
-
#: templates/forms/affiliation.php:108
|
1458 |
-
msgid "Your affiliate application for %s has been accepted! Log in to your affiliate area at: %s."
|
1459 |
-
msgstr ""
|
1460 |
-
|
1461 |
-
#: templates/forms/affiliation.php:145
|
1462 |
-
msgid "Like the %s? Become our ambassador and earn cash ;-)"
|
1463 |
-
msgstr ""
|
1464 |
-
|
1465 |
-
#: templates/forms/affiliation.php:146
|
1466 |
-
msgid "Refer new customers to our %s and earn %s commission on each successful sale you refer!"
|
1467 |
-
msgstr ""
|
1468 |
-
|
1469 |
-
#: templates/forms/affiliation.php:149
|
1470 |
-
msgid "Program Summary"
|
1471 |
-
msgstr ""
|
1472 |
-
|
1473 |
-
#: templates/forms/affiliation.php:151
|
1474 |
-
msgid "%s commission when a customer purchases a new license."
|
1475 |
-
msgstr ""
|
1476 |
-
|
1477 |
-
#: templates/forms/affiliation.php:153
|
1478 |
-
msgid "Get commission for automated subscription renewals."
|
1479 |
-
msgstr ""
|
1480 |
-
|
1481 |
-
#: templates/forms/affiliation.php:156
|
1482 |
-
msgid "%s tracking cookie after the first visit to maximize earnings potential."
|
1483 |
-
msgstr ""
|
1484 |
-
|
1485 |
-
#: templates/forms/affiliation.php:159
|
1486 |
-
msgid "Unlimited commissions."
|
1487 |
-
msgstr ""
|
1488 |
-
|
1489 |
-
#: templates/forms/affiliation.php:161
|
1490 |
-
msgid "%s minimum payout amount."
|
1491 |
-
msgstr ""
|
1492 |
-
|
1493 |
-
#: templates/forms/affiliation.php:162
|
1494 |
-
msgid "Payouts are in USD and processed monthly via PayPal."
|
1495 |
-
msgstr ""
|
1496 |
-
|
1497 |
-
#: templates/forms/affiliation.php:163
|
1498 |
-
msgid "As we reserve 30 days for potential refunds, we only pay commissions that are older than 30 days."
|
1499 |
-
msgstr ""
|
1500 |
-
|
1501 |
-
#: templates/forms/affiliation.php:166
|
1502 |
-
msgid "Affiliate"
|
1503 |
-
msgstr ""
|
1504 |
-
|
1505 |
-
#: templates/forms/affiliation.php:169, templates/forms/resend-key.php:23
|
1506 |
-
msgid "Email address"
|
1507 |
-
msgstr ""
|
1508 |
-
|
1509 |
-
#: templates/forms/affiliation.php:173
|
1510 |
-
msgid "Full name"
|
1511 |
-
msgstr ""
|
1512 |
-
|
1513 |
-
#: templates/forms/affiliation.php:177
|
1514 |
-
msgid "PayPal account email address"
|
1515 |
-
msgstr ""
|
1516 |
-
|
1517 |
-
#: templates/forms/affiliation.php:181
|
1518 |
-
msgid "Where are you going to promote the %s?"
|
1519 |
-
msgstr ""
|
1520 |
-
|
1521 |
-
#: templates/forms/affiliation.php:183
|
1522 |
-
msgid "Enter the domain of your website or other websites from where you plan to promote the %s."
|
1523 |
-
msgstr ""
|
1524 |
-
|
1525 |
-
#: templates/forms/affiliation.php:185
|
1526 |
-
msgid "Add another domain"
|
1527 |
-
msgstr ""
|
1528 |
-
|
1529 |
-
#: templates/forms/affiliation.php:189
|
1530 |
-
msgid "Extra Domains"
|
1531 |
-
msgstr ""
|
1532 |
-
|
1533 |
-
#: templates/forms/affiliation.php:190
|
1534 |
-
msgid "Extra domains where you will be marketing the product from."
|
1535 |
-
msgstr ""
|
1536 |
-
|
1537 |
-
#: templates/forms/affiliation.php:200
|
1538 |
-
msgid "Promotion methods"
|
1539 |
-
msgstr ""
|
1540 |
-
|
1541 |
-
#: templates/forms/affiliation.php:203
|
1542 |
-
msgid "Social media (Facebook, Twitter, etc.)"
|
1543 |
-
msgstr ""
|
1544 |
-
|
1545 |
-
#: templates/forms/affiliation.php:207
|
1546 |
-
msgid "Mobile apps"
|
1547 |
-
msgstr ""
|
1548 |
-
|
1549 |
-
#: templates/forms/affiliation.php:211
|
1550 |
-
msgid "Website, email, and social media statistics (optional)"
|
1551 |
-
msgstr ""
|
1552 |
-
|
1553 |
-
#: templates/forms/affiliation.php:214
|
1554 |
-
msgid "Please feel free to provide any relevant website or social media statistics, e.g. monthly unique site visits, number of email subscribers, followers, etc. (we will keep this information confidential)."
|
1555 |
-
msgstr ""
|
1556 |
-
|
1557 |
-
#: templates/forms/affiliation.php:218
|
1558 |
-
msgid "How will you promote us?"
|
1559 |
-
msgstr ""
|
1560 |
-
|
1561 |
-
#: templates/forms/affiliation.php:221
|
1562 |
-
msgid "Please provide details on how you intend to promote %s (please be as specific as possible)."
|
1563 |
-
msgstr ""
|
1564 |
-
|
1565 |
-
#: templates/forms/affiliation.php:233, templates/forms/resend-key.php:22
|
1566 |
-
msgid "Cancel"
|
1567 |
-
msgstr ""
|
1568 |
-
|
1569 |
-
#: templates/forms/affiliation.php:235
|
1570 |
-
msgid "Become an affiliate"
|
1571 |
-
msgstr ""
|
1572 |
-
|
1573 |
-
#: templates/forms/data-debug-mode.php:25
|
1574 |
-
msgid "Please enter the license key to enable the debug mode:"
|
1575 |
-
msgstr ""
|
1576 |
-
|
1577 |
-
#: templates/forms/data-debug-mode.php:27
|
1578 |
-
msgid "To enter the debug mode, please enter the secret key of the license owner (UserID = %d), which you can find in your \"My Profile\" section of your User Dashboard:"
|
1579 |
-
msgstr ""
|
1580 |
-
|
1581 |
-
#: templates/forms/data-debug-mode.php:32
|
1582 |
-
msgid "Submit"
|
1583 |
-
msgstr ""
|
1584 |
-
|
1585 |
-
#: templates/forms/data-debug-mode.php:36
|
1586 |
-
msgid "User key"
|
1587 |
-
msgstr ""
|
1588 |
-
|
1589 |
-
#: templates/forms/data-debug-mode.php:162
|
1590 |
-
msgid "An unknown error has occurred."
|
1591 |
-
msgstr ""
|
1592 |
-
|
1593 |
-
#: templates/forms/email-address-update.php:32
|
1594 |
-
msgid "Email address update"
|
1595 |
-
msgstr ""
|
1596 |
-
|
1597 |
-
#: templates/forms/email-address-update.php:33, templates/forms/user-change.php:81
|
1598 |
-
msgctxt "close window"
|
1599 |
-
msgid "Dismiss"
|
1600 |
-
msgstr ""
|
1601 |
-
|
1602 |
-
#: templates/forms/email-address-update.php:38
|
1603 |
-
msgid "Enter the new email address"
|
1604 |
-
msgstr ""
|
1605 |
-
|
1606 |
-
#: templates/forms/email-address-update.php:42
|
1607 |
-
msgid "Are both %s and %s your email addresses?"
|
1608 |
-
msgstr ""
|
1609 |
-
|
1610 |
-
#: templates/forms/email-address-update.php:50
|
1611 |
-
msgid "Yes - both addresses are mine"
|
1612 |
-
msgstr ""
|
1613 |
-
|
1614 |
-
#: templates/forms/email-address-update.php:57
|
1615 |
-
msgid "%s is my client's email address"
|
1616 |
-
msgstr ""
|
1617 |
-
|
1618 |
-
#: templates/forms/email-address-update.php:66
|
1619 |
-
msgid "%s is my email address"
|
1620 |
-
msgstr ""
|
1621 |
-
|
1622 |
-
#: templates/forms/email-address-update.php:75
|
1623 |
-
msgid "Would you like to merge %s into %s?"
|
1624 |
-
msgstr ""
|
1625 |
-
|
1626 |
-
#: templates/forms/email-address-update.php:84
|
1627 |
-
msgid "Yes - move all my data and assets from %s to %s"
|
1628 |
-
msgstr ""
|
1629 |
-
|
1630 |
-
#: templates/forms/email-address-update.php:94
|
1631 |
-
msgid "No - only move this site's data to %s"
|
1632 |
-
msgstr ""
|
1633 |
-
|
1634 |
-
#: templates/forms/email-address-update.php:292, templates/forms/email-address-update.php:298
|
1635 |
-
msgid "Update"
|
1636 |
-
msgstr ""
|
1637 |
-
|
1638 |
-
#: templates/forms/license-activation.php:23
|
1639 |
-
msgid "Please enter the license key that you received in the email right after the purchase:"
|
1640 |
-
msgstr ""
|
1641 |
-
|
1642 |
-
#: templates/forms/license-activation.php:28
|
1643 |
-
msgid "Update License"
|
1644 |
-
msgstr ""
|
1645 |
-
|
1646 |
-
#: templates/forms/license-activation.php:41
|
1647 |
-
msgid "The %1$s will be periodically sending data to %2$s to check for security and feature updates, and verify the validity of your license."
|
1648 |
-
msgstr ""
|
1649 |
-
|
1650 |
-
#: templates/forms/license-activation.php:211
|
1651 |
-
msgid "Associate with the license owner's account."
|
1652 |
-
msgstr ""
|
1653 |
-
|
1654 |
-
#: templates/forms/optout.php:30
|
1655 |
-
msgctxt "verb"
|
1656 |
-
msgid "Opt Out"
|
1657 |
-
msgstr ""
|
1658 |
-
|
1659 |
-
#: templates/forms/optout.php:31
|
1660 |
-
msgctxt "verb"
|
1661 |
-
msgid "Opt In"
|
1662 |
-
msgstr ""
|
1663 |
-
|
1664 |
-
#: templates/forms/optout.php:41
|
1665 |
-
msgid "We appreciate your help in making the %s better by letting us track some usage data."
|
1666 |
-
msgstr ""
|
1667 |
-
|
1668 |
-
#: templates/forms/optout.php:44
|
1669 |
-
msgid "Usage tracking is done in the name of making %s better. Making a better user experience, prioritizing new features, and more good things. We'd really appreciate if you'll reconsider letting us continue with the tracking."
|
1670 |
-
msgstr ""
|
1671 |
-
|
1672 |
-
#: templates/forms/optout.php:45
|
1673 |
-
msgid "On second thought - I want to continue helping"
|
1674 |
-
msgstr ""
|
1675 |
-
|
1676 |
-
#: templates/forms/optout.php:34
|
1677 |
-
msgid "Connectivity to the licensing engine was successfully re-established. Automatic security & feature updates are now available through the WP Admin Dashboard."
|
1678 |
-
msgstr ""
|
1679 |
-
|
1680 |
-
#: templates/forms/optout.php:36
|
1681 |
-
msgid "Warning: Opting out will block automatic updates"
|
1682 |
-
msgstr ""
|
1683 |
-
|
1684 |
-
#: templates/forms/optout.php:37
|
1685 |
-
msgid "Ongoing connectivity with the licensing engine is essential for receiving automatic security & feature updates of the paid product. To receive these updates, data like your license key, %1$s version, and WordPress version, is periodically sent to the server to check for updates. By opting out, you understand that your site won't receive automatic updates for %2$s from within the WP Admin Dashboard. This can put your site at risk, and we highly recommend to keep this connection active. If you do choose to opt-out, you'll need to check for %1$s updates and install them manually."
|
1686 |
-
msgstr ""
|
1687 |
-
|
1688 |
-
#: templates/forms/optout.php:39
|
1689 |
-
msgid "I'd like to keep automatic updates"
|
1690 |
-
msgstr ""
|
1691 |
-
|
1692 |
-
#: templates/forms/optout.php:49
|
1693 |
-
msgid "By clicking \"Opt Out\", we will no longer be sending any data from %s to %s."
|
1694 |
-
msgstr ""
|
1695 |
-
|
1696 |
-
#: templates/forms/optout.php:74
|
1697 |
-
msgid "Plugins & themes tracking"
|
1698 |
-
msgstr ""
|
1699 |
-
|
1700 |
-
#: templates/forms/optout.php:261
|
1701 |
-
msgid "Saved"
|
1702 |
-
msgstr ""
|
1703 |
-
|
1704 |
-
#: templates/forms/premium-versions-upgrade-handler.php:40
|
1705 |
-
msgid "There is a new version of %s available."
|
1706 |
-
msgstr ""
|
1707 |
-
|
1708 |
-
#: templates/forms/premium-versions-upgrade-handler.php:41
|
1709 |
-
msgid " %s to access version %s security & feature updates, and support."
|
1710 |
-
msgstr ""
|
1711 |
-
|
1712 |
-
#: templates/forms/premium-versions-upgrade-handler.php:46
|
1713 |
-
msgid "Renew your license now"
|
1714 |
-
msgstr ""
|
1715 |
-
|
1716 |
-
#: templates/forms/premium-versions-upgrade-handler.php:47
|
1717 |
-
msgid "Buy a license now"
|
1718 |
-
msgstr ""
|
1719 |
-
|
1720 |
-
#: templates/forms/premium-versions-upgrade-handler.php:54
|
1721 |
-
msgid "New Version Available"
|
1722 |
-
msgstr ""
|
1723 |
-
|
1724 |
-
#: templates/forms/premium-versions-upgrade-handler.php:75
|
1725 |
-
msgctxt "close a window"
|
1726 |
-
msgid "Dismiss"
|
1727 |
-
msgstr ""
|
1728 |
-
|
1729 |
-
#: templates/forms/resend-key.php:21
|
1730 |
-
msgid "Send License Key"
|
1731 |
-
msgstr ""
|
1732 |
-
|
1733 |
-
#: templates/forms/resend-key.php:24, templates/forms/user-change.php:29
|
1734 |
-
msgid "Other"
|
1735 |
-
msgstr ""
|
1736 |
-
|
1737 |
-
#: templates/forms/resend-key.php:58
|
1738 |
-
msgid "Enter the email address you've used during the purchase and we will resend you the license key."
|
1739 |
-
msgstr ""
|
1740 |
-
|
1741 |
-
#: templates/forms/resend-key.php:59
|
1742 |
-
msgid "Enter the email address you've used for the upgrade below and we will resend you the license key."
|
1743 |
-
msgstr ""
|
1744 |
-
|
1745 |
-
#: templates/forms/subscription-cancellation.php:37
|
1746 |
-
msgid "Deactivating or uninstalling the %s will automatically disable the license, which you'll be able to use on another site."
|
1747 |
-
msgstr ""
|
1748 |
-
|
1749 |
-
#: templates/forms/subscription-cancellation.php:47
|
1750 |
-
msgid "In case you are NOT planning on using this %s on this site (or any other site) - would you like to cancel the %s as well?"
|
1751 |
-
msgstr ""
|
1752 |
-
|
1753 |
-
#: templates/forms/subscription-cancellation.php:57
|
1754 |
-
msgid "Cancel %s - I no longer need any security & feature updates, nor support for %s because I'm not planning to use the %s on this, or any other site."
|
1755 |
-
msgstr ""
|
1756 |
-
|
1757 |
-
#: templates/forms/subscription-cancellation.php:68
|
1758 |
-
msgid "Don't cancel %s - I'm still interested in getting security & feature updates, as well as be able to contact support."
|
1759 |
-
msgstr ""
|
1760 |
-
|
1761 |
-
#: templates/forms/subscription-cancellation.php:103
|
1762 |
-
msgid "Once your license expires you will no longer be able to use the %s, unless you activate it again with a valid premium license."
|
1763 |
-
msgstr ""
|
1764 |
-
|
1765 |
-
#: templates/forms/subscription-cancellation.php:136
|
1766 |
-
msgid "Cancel %s?"
|
1767 |
-
msgstr ""
|
1768 |
-
|
1769 |
-
#: templates/forms/subscription-cancellation.php:143
|
1770 |
-
msgid "Proceed"
|
1771 |
-
msgstr ""
|
1772 |
-
|
1773 |
-
#: templates/forms/subscription-cancellation.php:191, templates/forms/deactivation/form.php:216
|
1774 |
-
msgid "Cancel %s & Proceed"
|
1775 |
-
msgstr ""
|
1776 |
-
|
1777 |
-
#. translators: %1$s: Number of trial days; %2$s: Plan name;
|
1778 |
-
#: templates/forms/trial-start.php:22
|
1779 |
-
msgid "You are 1-click away from starting your %1$s-day free trial of the %2$s plan."
|
1780 |
-
msgstr ""
|
1781 |
-
|
1782 |
-
#. translators: %s: Link to freemius.com
|
1783 |
-
#: templates/forms/trial-start.php:28
|
1784 |
-
msgid "For compliance with the WordPress.org guidelines, before we start the trial we ask that you opt in with your user and non-sensitive site information, allowing the %s to periodically send data to %s to check for version updates and to validate your trial."
|
1785 |
-
msgstr ""
|
1786 |
-
|
1787 |
-
#: templates/forms/trial-start.php:53
|
1788 |
-
msgctxt "call to action"
|
1789 |
-
msgid "Start free trial"
|
1790 |
-
msgstr ""
|
1791 |
-
|
1792 |
-
#: templates/forms/user-change.php:26
|
1793 |
-
msgid "By changing the user, you agree to transfer the account ownership to:"
|
1794 |
-
msgstr ""
|
1795 |
-
|
1796 |
-
#: templates/forms/user-change.php:28
|
1797 |
-
msgid "I Agree - Change User"
|
1798 |
-
msgstr ""
|
1799 |
-
|
1800 |
-
#: templates/forms/user-change.php:30
|
1801 |
-
msgid "Enter email address"
|
1802 |
-
msgstr ""
|
1803 |
-
|
1804 |
-
#: templates/partials/network-activation.php:36
|
1805 |
-
msgid "Activate license on all pending sites."
|
1806 |
-
msgstr ""
|
1807 |
-
|
1808 |
-
#: templates/partials/network-activation.php:37
|
1809 |
-
msgid "Apply on all pending sites."
|
1810 |
-
msgstr ""
|
1811 |
-
|
1812 |
-
#: templates/partials/network-activation.php:32
|
1813 |
-
msgid "Activate license on all sites in the network."
|
1814 |
-
msgstr ""
|
1815 |
-
|
1816 |
-
#: templates/partials/network-activation.php:33
|
1817 |
-
msgid "Apply on all sites in the network."
|
1818 |
-
msgstr ""
|
1819 |
-
|
1820 |
-
#: templates/partials/network-activation.php:45, templates/partials/network-activation.php:79
|
1821 |
-
msgid "allow"
|
1822 |
-
msgstr ""
|
1823 |
-
|
1824 |
-
#: templates/partials/network-activation.php:48, templates/partials/network-activation.php:82
|
1825 |
-
msgid "delegate"
|
1826 |
-
msgstr ""
|
1827 |
-
|
1828 |
-
#: templates/partials/network-activation.php:52, templates/partials/network-activation.php:86
|
1829 |
-
msgid "skip"
|
1830 |
-
msgstr ""
|
1831 |
-
|
1832 |
-
#: templates/plugin-info/description.php:72, templates/plugin-info/screenshots.php:31
|
1833 |
-
msgid "Click to view full-size screenshot %d"
|
1834 |
-
msgstr ""
|
1835 |
-
|
1836 |
-
#: templates/plugin-info/features.php:43
|
1837 |
-
msgid "Support"
|
1838 |
-
msgstr ""
|
1839 |
-
|
1840 |
-
#: templates/plugin-info/features.php:56
|
1841 |
-
msgid "Unlimited Updates"
|
1842 |
-
msgstr ""
|
1843 |
-
|
1844 |
-
#: templates/account/partials/activate-license-button.php:46
|
1845 |
-
msgid "Localhost"
|
1846 |
-
msgstr ""
|
1847 |
-
|
1848 |
-
#: templates/account/partials/activate-license-button.php:50
|
1849 |
-
msgctxt "as 5 licenses left"
|
1850 |
-
msgid "%s left"
|
1851 |
-
msgstr ""
|
1852 |
-
|
1853 |
-
#: templates/account/partials/activate-license-button.php:51
|
1854 |
-
msgid "Last license"
|
1855 |
-
msgstr ""
|
1856 |
-
|
1857 |
-
#. translators: %1$s: Either 'Downgrading your plan' or 'Cancelling the subscription'
|
1858 |
-
#: templates/account/partials/addon.php:34
|
1859 |
-
msgid "%1$s will immediately stop all future recurring payments and your %s plan license will expire in %s."
|
1860 |
-
msgstr ""
|
1861 |
-
|
1862 |
-
#: templates/account/partials/addon.php:200
|
1863 |
-
msgid "No expiration"
|
1864 |
-
msgstr ""
|
1865 |
-
|
1866 |
-
#: templates/account/partials/addon.php:190
|
1867 |
-
msgid "Cancelled"
|
1868 |
-
msgstr ""
|
1869 |
-
|
1870 |
-
#: templates/account/partials/site.php:49, templates/account/partials/site.php:169
|
1871 |
-
msgid "Opt In"
|
1872 |
-
msgstr ""
|
1873 |
-
|
1874 |
-
#: templates/account/partials/site.php:169
|
1875 |
-
msgid "Opt Out"
|
1876 |
-
msgstr ""
|
1877 |
-
|
1878 |
-
#: templates/account/partials/site.php:189
|
1879 |
-
msgid "Owner Name"
|
1880 |
-
msgstr ""
|
1881 |
-
|
1882 |
-
#: templates/account/partials/site.php:201
|
1883 |
-
msgid "Owner Email"
|
1884 |
-
msgstr ""
|
1885 |
-
|
1886 |
-
#: templates/account/partials/site.php:213
|
1887 |
-
msgid "Owner ID"
|
1888 |
-
msgstr ""
|
1889 |
-
|
1890 |
-
#: templates/account/partials/site.php:286
|
1891 |
-
msgid "Subscription"
|
1892 |
-
msgstr ""
|
1893 |
-
|
1894 |
-
#: templates/forms/deactivation/contact.php:19
|
1895 |
-
msgid "Sorry for the inconvenience and we are here to help if you give us a chance."
|
1896 |
-
msgstr ""
|
1897 |
-
|
1898 |
-
#: templates/forms/deactivation/contact.php:22
|
1899 |
-
msgid "Contact Support"
|
1900 |
-
msgstr ""
|
1901 |
-
|
1902 |
-
#: templates/forms/deactivation/form.php:65
|
1903 |
-
msgid "Anonymous feedback"
|
1904 |
-
msgstr ""
|
1905 |
-
|
1906 |
-
#: templates/forms/deactivation/form.php:71
|
1907 |
-
msgid "hour"
|
1908 |
-
msgstr ""
|
1909 |
-
|
1910 |
-
#: templates/forms/deactivation/form.php:76
|
1911 |
-
msgid "hours"
|
1912 |
-
msgstr ""
|
1913 |
-
|
1914 |
-
#: templates/forms/deactivation/form.php:81, templates/forms/deactivation/form.php:86
|
1915 |
-
msgid "days"
|
1916 |
-
msgstr ""
|
1917 |
-
|
1918 |
-
#: templates/forms/deactivation/form.php:106
|
1919 |
-
msgid "Deactivate"
|
1920 |
-
msgstr ""
|
1921 |
-
|
1922 |
-
#: templates/forms/deactivation/form.php:108
|
1923 |
-
msgid "Activate %s"
|
1924 |
-
msgstr ""
|
1925 |
-
|
1926 |
-
#: templates/forms/deactivation/form.php:111
|
1927 |
-
msgid "Submit & %s"
|
1928 |
-
msgstr ""
|
1929 |
-
|
1930 |
-
#: templates/forms/deactivation/form.php:130
|
1931 |
-
msgid "Quick Feedback"
|
1932 |
-
msgstr ""
|
1933 |
-
|
1934 |
-
#: templates/forms/deactivation/form.php:134
|
1935 |
-
msgid "If you have a moment, please let us know why you are %s"
|
1936 |
-
msgstr ""
|
1937 |
-
|
1938 |
-
#: templates/forms/deactivation/form.php:134
|
1939 |
-
msgid "deactivating"
|
1940 |
-
msgstr ""
|
1941 |
-
|
1942 |
-
#: templates/forms/deactivation/form.php:134
|
1943 |
-
msgid "switching"
|
1944 |
-
msgstr ""
|
1945 |
-
|
1946 |
-
#: templates/forms/deactivation/form.php:448
|
1947 |
-
msgid "Kindly tell us the reason so we can improve."
|
1948 |
-
msgstr ""
|
1949 |
-
|
1950 |
-
#: templates/forms/deactivation/form.php:478
|
1951 |
-
msgid "Snooze & %s"
|
1952 |
-
msgstr ""
|
1953 |
-
|
1954 |
-
#: templates/forms/deactivation/form.php:638
|
1955 |
-
msgid "Yes - %s"
|
1956 |
-
msgstr ""
|
1957 |
-
|
1958 |
-
#: templates/forms/deactivation/form.php:645
|
1959 |
-
msgid "Skip & %s"
|
1960 |
-
msgstr ""
|
1961 |
-
|
1962 |
-
#: templates/forms/deactivation/retry-skip.php:21
|
1963 |
-
msgid "Click here to use the plugin anonymously"
|
1964 |
-
msgstr ""
|
1965 |
-
|
1966 |
-
#: templates/forms/deactivation/retry-skip.php:23
|
1967 |
-
msgid "You might have missed it, but you don't have to share any data and can just %s the opt-in."
|
1968 |
-
msgstr ""
|
1 |
+
# Copyright (C) 2022 freemius
|
2 |
+
# This file is distributed under the same license as the freemius package.
|
3 |
+
msgid ""
|
4 |
+
msgstr ""
|
5 |
+
"Project-Id-Version: freemius\n"
|
6 |
+
"MIME-Version: 1.0\n"
|
7 |
+
"Content-Type: text/plain; charset=UTF-8\n"
|
8 |
+
"Content-Transfer-Encoding: 8bit\n"
|
9 |
+
"Language-Team: Freemius Team <admin@freemius.com>\n"
|
10 |
+
"Last-Translator: Vova Feldman <vova@freemius.com>\n"
|
11 |
+
"POT-Creation-Date: 2022-07-06 12:49+0000\n"
|
12 |
+
"Report-Msgid-Bugs-To: https://github.com/Freemius/wordpress-sdk/issues\n"
|
13 |
+
"X-Poedit-Basepath: ..\n"
|
14 |
+
"X-Poedit-KeywordsList: get_text_inline;fs_text_inline;fs_echo_inline;fs_esc_js_inline;fs_esc_attr_inline;fs_esc_attr_echo_inline;fs_esc_html_inline;fs_esc_html_echo_inline;get_text_x_inline:1,2c;fs_text_x_inline:1,2c;fs_echo_x_inline:1,2c;fs_esc_attr_x_inline:1,2c;fs_esc_js_x_inline:1,2c;fs_esc_js_echo_x_inline:1,2c;fs_esc_html_x_inline:1,2c;fs_esc_html_echo_x_inline:1,2c\n"
|
15 |
+
"X-Poedit-SearchPath-0: .\n"
|
16 |
+
"X-Poedit-SearchPathExcluded-0: *.js\n"
|
17 |
+
"X-Poedit-SourceCharset: UTF-8\n"
|
18 |
+
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
19 |
+
|
20 |
+
#: includes/class-freemius.php:1932, templates/account.php:941
|
21 |
+
msgid "An update to a Beta version will replace your installed version of %s with the latest Beta release - use with caution, and not on production sites. You have been warned."
|
22 |
+
msgstr ""
|
23 |
+
|
24 |
+
#: includes/class-freemius.php:1939
|
25 |
+
msgid "Would you like to proceed with the update?"
|
26 |
+
msgstr ""
|
27 |
+
|
28 |
+
#: includes/class-freemius.php:3751, templates/debug.php:20
|
29 |
+
msgid "Freemius Debug"
|
30 |
+
msgstr ""
|
31 |
+
|
32 |
+
#: includes/class-freemius.php:13791
|
33 |
+
msgid "An unknown error has occurred while trying to toggle the license's white-label mode."
|
34 |
+
msgstr ""
|
35 |
+
|
36 |
+
#: includes/class-freemius.php:13869
|
37 |
+
msgid "An unknown error has occurred while trying to set the user's beta mode."
|
38 |
+
msgstr ""
|
39 |
+
|
40 |
+
#: includes/class-freemius.php:13942
|
41 |
+
msgid "Invalid new user ID or email address."
|
42 |
+
msgstr ""
|
43 |
+
|
44 |
+
#: includes/class-freemius.php:23326
|
45 |
+
msgid "Bundle"
|
46 |
+
msgstr ""
|
47 |
+
|
48 |
+
#: includes/class-fs-plugin-updater.php:206, templates/forms/premium-versions-upgrade-handler.php:57
|
49 |
+
msgid "Renew license"
|
50 |
+
msgstr ""
|
51 |
+
|
52 |
+
#: includes/class-fs-plugin-updater.php:211, templates/forms/premium-versions-upgrade-handler.php:58
|
53 |
+
msgid "Buy license"
|
54 |
+
msgstr ""
|
55 |
+
|
56 |
+
#: includes/class-fs-plugin-updater.php:364, includes/class-fs-plugin-updater.php:331
|
57 |
+
msgid "There is a %s of %s available."
|
58 |
+
msgstr ""
|
59 |
+
|
60 |
+
#: includes/class-fs-plugin-updater.php:369, includes/class-fs-plugin-updater.php:333
|
61 |
+
msgid "new Beta version"
|
62 |
+
msgstr ""
|
63 |
+
|
64 |
+
#: includes/class-fs-plugin-updater.php:370, includes/class-fs-plugin-updater.php:334
|
65 |
+
msgid "new version"
|
66 |
+
msgstr ""
|
67 |
+
|
68 |
+
#: includes/class-fs-plugin-updater.php:393
|
69 |
+
msgid "Important Upgrade Notice:"
|
70 |
+
msgstr ""
|
71 |
+
|
72 |
+
#: includes/class-fs-plugin-updater.php:1551
|
73 |
+
msgid "The remote plugin package does not contain a folder with the desired slug and renaming did not work."
|
74 |
+
msgstr ""
|
75 |
+
|
76 |
+
#: includes/fs-plugin-info-dialog.php:541
|
77 |
+
msgid "Purchase More"
|
78 |
+
msgstr ""
|
79 |
+
|
80 |
+
#: includes/fs-plugin-info-dialog.php:542, templates/account/partials/addon.php:390
|
81 |
+
msgctxt "verb"
|
82 |
+
msgid "Purchase"
|
83 |
+
msgstr ""
|
84 |
+
|
85 |
+
#. translators: %s: N-days trial
|
86 |
+
#: includes/fs-plugin-info-dialog.php:546
|
87 |
+
msgid "Start my free %s"
|
88 |
+
msgstr ""
|
89 |
+
|
90 |
+
#: includes/fs-plugin-info-dialog.php:754
|
91 |
+
msgid "Install Free Version Now"
|
92 |
+
msgstr ""
|
93 |
+
|
94 |
+
#: includes/fs-plugin-info-dialog.php:755, templates/add-ons.php:323, templates/auto-installation.php:111, templates/account/partials/addon.php:423, templates/account/partials/addon.php:370
|
95 |
+
msgid "Install Now"
|
96 |
+
msgstr ""
|
97 |
+
|
98 |
+
#: includes/fs-plugin-info-dialog.php:744
|
99 |
+
msgid "Install Free Version Update Now"
|
100 |
+
msgstr ""
|
101 |
+
|
102 |
+
#: includes/fs-plugin-info-dialog.php:745, templates/account.php:650
|
103 |
+
msgid "Install Update Now"
|
104 |
+
msgstr ""
|
105 |
+
|
106 |
+
#: includes/fs-plugin-info-dialog.php:771
|
107 |
+
msgctxt "as download latest version"
|
108 |
+
msgid "Download Latest Free Version"
|
109 |
+
msgstr ""
|
110 |
+
|
111 |
+
#: includes/fs-plugin-info-dialog.php:772, templates/account.php:109, templates/add-ons.php:37, templates/account/partials/addon.php:30
|
112 |
+
msgctxt "as download latest version"
|
113 |
+
msgid "Download Latest"
|
114 |
+
msgstr ""
|
115 |
+
|
116 |
+
#: includes/fs-plugin-info-dialog.php:787, templates/add-ons.php:329, templates/account/partials/addon.php:417, templates/account/partials/addon.php:361
|
117 |
+
msgid "Activate this add-on"
|
118 |
+
msgstr ""
|
119 |
+
|
120 |
+
#: includes/fs-plugin-info-dialog.php:789, templates/connect.php:483
|
121 |
+
msgid "Activate Free Version"
|
122 |
+
msgstr ""
|
123 |
+
|
124 |
+
#: includes/fs-plugin-info-dialog.php:790, templates/account.php:133, templates/add-ons.php:330, templates/account/partials/addon.php:53
|
125 |
+
msgid "Activate"
|
126 |
+
msgstr ""
|
127 |
+
|
128 |
+
#: includes/fs-plugin-info-dialog.php:1002
|
129 |
+
msgctxt "Plugin installer section title"
|
130 |
+
msgid "Description"
|
131 |
+
msgstr ""
|
132 |
+
|
133 |
+
#: includes/fs-plugin-info-dialog.php:1003
|
134 |
+
msgctxt "Plugin installer section title"
|
135 |
+
msgid "Installation"
|
136 |
+
msgstr ""
|
137 |
+
|
138 |
+
#: includes/fs-plugin-info-dialog.php:1004
|
139 |
+
msgctxt "Plugin installer section title"
|
140 |
+
msgid "FAQ"
|
141 |
+
msgstr ""
|
142 |
+
|
143 |
+
#: includes/fs-plugin-info-dialog.php:1005, templates/plugin-info/description.php:55
|
144 |
+
msgid "Screenshots"
|
145 |
+
msgstr ""
|
146 |
+
|
147 |
+
#: includes/fs-plugin-info-dialog.php:1006
|
148 |
+
msgctxt "Plugin installer section title"
|
149 |
+
msgid "Changelog"
|
150 |
+
msgstr ""
|
151 |
+
|
152 |
+
#: includes/fs-plugin-info-dialog.php:1007
|
153 |
+
msgctxt "Plugin installer section title"
|
154 |
+
msgid "Reviews"
|
155 |
+
msgstr ""
|
156 |
+
|
157 |
+
#: includes/fs-plugin-info-dialog.php:1008
|
158 |
+
msgctxt "Plugin installer section title"
|
159 |
+
msgid "Other Notes"
|
160 |
+
msgstr ""
|
161 |
+
|
162 |
+
#: includes/fs-plugin-info-dialog.php:1023
|
163 |
+
msgctxt "Plugin installer section title"
|
164 |
+
msgid "Features & Pricing"
|
165 |
+
msgstr ""
|
166 |
+
|
167 |
+
#: includes/fs-plugin-info-dialog.php:1033
|
168 |
+
msgid "Plugin Install"
|
169 |
+
msgstr ""
|
170 |
+
|
171 |
+
#: includes/fs-plugin-info-dialog.php:1105
|
172 |
+
msgctxt "e.g. Professional Plan"
|
173 |
+
msgid "%s Plan"
|
174 |
+
msgstr ""
|
175 |
+
|
176 |
+
#: includes/fs-plugin-info-dialog.php:1131
|
177 |
+
msgctxt "e.g. the best product"
|
178 |
+
msgid "Best"
|
179 |
+
msgstr ""
|
180 |
+
|
181 |
+
#: includes/fs-plugin-info-dialog.php:1137, includes/fs-plugin-info-dialog.php:1157
|
182 |
+
msgctxt "as every month"
|
183 |
+
msgid "Monthly"
|
184 |
+
msgstr ""
|
185 |
+
|
186 |
+
#: includes/fs-plugin-info-dialog.php:1140
|
187 |
+
msgctxt "as once a year"
|
188 |
+
msgid "Annual"
|
189 |
+
msgstr ""
|
190 |
+
|
191 |
+
#: includes/fs-plugin-info-dialog.php:1143
|
192 |
+
msgid "Lifetime"
|
193 |
+
msgstr ""
|
194 |
+
|
195 |
+
#: includes/fs-plugin-info-dialog.php:1157, includes/fs-plugin-info-dialog.php:1159, includes/fs-plugin-info-dialog.php:1161
|
196 |
+
msgctxt "e.g. billed monthly"
|
197 |
+
msgid "Billed %s"
|
198 |
+
msgstr ""
|
199 |
+
|
200 |
+
#: includes/fs-plugin-info-dialog.php:1159
|
201 |
+
msgctxt "as once a year"
|
202 |
+
msgid "Annually"
|
203 |
+
msgstr ""
|
204 |
+
|
205 |
+
#: includes/fs-plugin-info-dialog.php:1161
|
206 |
+
msgctxt "as once a year"
|
207 |
+
msgid "Once"
|
208 |
+
msgstr ""
|
209 |
+
|
210 |
+
#: includes/fs-plugin-info-dialog.php:1167
|
211 |
+
msgid "Single Site License"
|
212 |
+
msgstr ""
|
213 |
+
|
214 |
+
#: includes/fs-plugin-info-dialog.php:1169
|
215 |
+
msgid "Unlimited Licenses"
|
216 |
+
msgstr ""
|
217 |
+
|
218 |
+
#: includes/fs-plugin-info-dialog.php:1171
|
219 |
+
msgid "Up to %s Sites"
|
220 |
+
msgstr ""
|
221 |
+
|
222 |
+
#: includes/fs-plugin-info-dialog.php:1181, templates/plugin-info/features.php:82
|
223 |
+
msgctxt "as monthly period"
|
224 |
+
msgid "mo"
|
225 |
+
msgstr ""
|
226 |
+
|
227 |
+
#: includes/fs-plugin-info-dialog.php:1188, templates/plugin-info/features.php:80
|
228 |
+
msgctxt "as annual period"
|
229 |
+
msgid "year"
|
230 |
+
msgstr ""
|
231 |
+
|
232 |
+
#: includes/fs-plugin-info-dialog.php:1242
|
233 |
+
msgctxt "noun"
|
234 |
+
msgid "Price"
|
235 |
+
msgstr ""
|
236 |
+
|
237 |
+
#. translators: %s: Discount (e.g. discount of $5 or 10%)
|
238 |
+
#: includes/fs-plugin-info-dialog.php:1290
|
239 |
+
msgid "Save %s"
|
240 |
+
msgstr ""
|
241 |
+
|
242 |
+
#: includes/fs-plugin-info-dialog.php:1300
|
243 |
+
msgid "No commitment for %s - cancel anytime"
|
244 |
+
msgstr ""
|
245 |
+
|
246 |
+
#: includes/fs-plugin-info-dialog.php:1303
|
247 |
+
msgid "After your free %s, pay as little as %s"
|
248 |
+
msgstr ""
|
249 |
+
|
250 |
+
#: includes/fs-plugin-info-dialog.php:1314
|
251 |
+
msgid "Details"
|
252 |
+
msgstr ""
|
253 |
+
|
254 |
+
#: includes/fs-plugin-info-dialog.php:1318, templates/account.php:120, templates/debug.php:215, templates/debug.php:252, templates/debug.php:466, templates/account/partials/addon.php:41
|
255 |
+
msgctxt "product version"
|
256 |
+
msgid "Version"
|
257 |
+
msgstr ""
|
258 |
+
|
259 |
+
#: includes/fs-plugin-info-dialog.php:1325
|
260 |
+
msgctxt "as the plugin author"
|
261 |
+
msgid "Author"
|
262 |
+
msgstr ""
|
263 |
+
|
264 |
+
#: includes/fs-plugin-info-dialog.php:1332
|
265 |
+
msgid "Last Updated"
|
266 |
+
msgstr ""
|
267 |
+
|
268 |
+
#. translators: %s: time period (e.g. "2 hours" ago)
|
269 |
+
#: includes/fs-plugin-info-dialog.php:1337, templates/account.php:536
|
270 |
+
msgctxt "x-ago"
|
271 |
+
msgid "%s ago"
|
272 |
+
msgstr ""
|
273 |
+
|
274 |
+
#: includes/fs-plugin-info-dialog.php:1346
|
275 |
+
msgid "Requires WordPress Version"
|
276 |
+
msgstr ""
|
277 |
+
|
278 |
+
#: includes/fs-plugin-info-dialog.php:1347
|
279 |
+
msgid "%s or higher"
|
280 |
+
msgstr ""
|
281 |
+
|
282 |
+
#: includes/fs-plugin-info-dialog.php:1354
|
283 |
+
msgid "Compatible up to"
|
284 |
+
msgstr ""
|
285 |
+
|
286 |
+
#: includes/fs-plugin-info-dialog.php:1362
|
287 |
+
msgid "Downloaded"
|
288 |
+
msgstr ""
|
289 |
+
|
290 |
+
#. translators: %s: 1 or One (Number of times downloaded)
|
291 |
+
#: includes/fs-plugin-info-dialog.php:1366
|
292 |
+
msgid "%s time"
|
293 |
+
msgstr ""
|
294 |
+
|
295 |
+
#. translators: %s: Number of times downloaded
|
296 |
+
#: includes/fs-plugin-info-dialog.php:1368
|
297 |
+
msgid "%s times"
|
298 |
+
msgstr ""
|
299 |
+
|
300 |
+
#: includes/fs-plugin-info-dialog.php:1379
|
301 |
+
msgid "WordPress.org Plugin Page"
|
302 |
+
msgstr ""
|
303 |
+
|
304 |
+
#: includes/fs-plugin-info-dialog.php:1388
|
305 |
+
msgid "Plugin Homepage"
|
306 |
+
msgstr ""
|
307 |
+
|
308 |
+
#: includes/fs-plugin-info-dialog.php:1397, includes/fs-plugin-info-dialog.php:1481
|
309 |
+
msgid "Donate to this plugin"
|
310 |
+
msgstr ""
|
311 |
+
|
312 |
+
#: includes/fs-plugin-info-dialog.php:1404
|
313 |
+
msgid "Average Rating"
|
314 |
+
msgstr ""
|
315 |
+
|
316 |
+
#: includes/fs-plugin-info-dialog.php:1411
|
317 |
+
msgid "based on %s"
|
318 |
+
msgstr ""
|
319 |
+
|
320 |
+
#. translators: %s: 1 or One
|
321 |
+
#: includes/fs-plugin-info-dialog.php:1415
|
322 |
+
msgid "%s rating"
|
323 |
+
msgstr ""
|
324 |
+
|
325 |
+
#. translators: %s: Number larger than 1
|
326 |
+
#: includes/fs-plugin-info-dialog.php:1417
|
327 |
+
msgid "%s ratings"
|
328 |
+
msgstr ""
|
329 |
+
|
330 |
+
#. translators: %s: 1 or One
|
331 |
+
#: includes/fs-plugin-info-dialog.php:1432
|
332 |
+
msgid "%s star"
|
333 |
+
msgstr ""
|
334 |
+
|
335 |
+
#. translators: %s: Number larger than 1
|
336 |
+
#: includes/fs-plugin-info-dialog.php:1434
|
337 |
+
msgid "%s stars"
|
338 |
+
msgstr ""
|
339 |
+
|
340 |
+
#. translators: %s: # of stars (e.g. 5 stars)
|
341 |
+
#: includes/fs-plugin-info-dialog.php:1446
|
342 |
+
msgid "Click to see reviews that provided a rating of %s"
|
343 |
+
msgstr ""
|
344 |
+
|
345 |
+
#: includes/fs-plugin-info-dialog.php:1459
|
346 |
+
msgid "Contributors"
|
347 |
+
msgstr ""
|
348 |
+
|
349 |
+
#: includes/fs-plugin-info-dialog.php:1491, includes/fs-plugin-info-dialog.php:1489
|
350 |
+
msgid "Warning"
|
351 |
+
msgstr ""
|
352 |
+
|
353 |
+
#: includes/fs-plugin-info-dialog.php:1491
|
354 |
+
msgid "This plugin has not been marked as compatible with your version of WordPress."
|
355 |
+
msgstr ""
|
356 |
+
|
357 |
+
#: includes/fs-plugin-info-dialog.php:1489
|
358 |
+
msgid "This plugin has not been tested with your current version of WordPress."
|
359 |
+
msgstr ""
|
360 |
+
|
361 |
+
#: includes/fs-plugin-info-dialog.php:1510
|
362 |
+
msgid "Paid add-on must be deployed to Freemius."
|
363 |
+
msgstr ""
|
364 |
+
|
365 |
+
#: includes/fs-plugin-info-dialog.php:1511
|
366 |
+
msgid "Add-on must be deployed to WordPress.org or Freemius."
|
367 |
+
msgstr ""
|
368 |
+
|
369 |
+
#: includes/fs-plugin-info-dialog.php:1540
|
370 |
+
msgid "Latest Version Installed"
|
371 |
+
msgstr ""
|
372 |
+
|
373 |
+
#: includes/fs-plugin-info-dialog.php:1541
|
374 |
+
msgid "Latest Free Version Installed"
|
375 |
+
msgstr ""
|
376 |
+
|
377 |
+
#: includes/fs-plugin-info-dialog.php:1532
|
378 |
+
msgid "Newer Version (%s) Installed"
|
379 |
+
msgstr ""
|
380 |
+
|
381 |
+
#: includes/fs-plugin-info-dialog.php:1533
|
382 |
+
msgid "Newer Free Version (%s) Installed"
|
383 |
+
msgstr ""
|
384 |
+
|
385 |
+
#: templates/account.php:110, templates/forms/subscription-cancellation.php:96, templates/account/partials/addon.php:31, templates/account/partials/site.php:311
|
386 |
+
msgid "Downgrading your plan"
|
387 |
+
msgstr ""
|
388 |
+
|
389 |
+
#: templates/account.php:111, templates/forms/subscription-cancellation.php:97, templates/account/partials/addon.php:32, templates/account/partials/site.php:312
|
390 |
+
msgid "Cancelling the subscription"
|
391 |
+
msgstr ""
|
392 |
+
|
393 |
+
#. translators: %1$s: Either 'Downgrading your plan' or 'Cancelling the subscription'
|
394 |
+
#: templates/account.php:113, templates/forms/subscription-cancellation.php:99, templates/account/partials/site.php:314
|
395 |
+
msgid "%1$s will immediately stop all future recurring payments and your %2$s plan license will expire in %3$s."
|
396 |
+
msgstr ""
|
397 |
+
|
398 |
+
#: templates/account.php:114, templates/forms/subscription-cancellation.php:100, templates/account/partials/addon.php:35, templates/account/partials/site.php:315
|
399 |
+
msgid "Please note that we will not be able to grandfather outdated pricing for renewals/new subscriptions after a cancellation. If you choose to renew the subscription manually in the future, after a price increase, which typically occurs once a year, you will be charged the updated price."
|
400 |
+
msgstr ""
|
401 |
+
|
402 |
+
#: templates/account.php:115, templates/forms/subscription-cancellation.php:106, templates/account/partials/addon.php:36
|
403 |
+
msgid "Cancelling the trial will immediately block access to all premium features. Are you sure?"
|
404 |
+
msgstr ""
|
405 |
+
|
406 |
+
#: templates/account.php:116, templates/forms/subscription-cancellation.php:101, templates/account/partials/addon.php:37, templates/account/partials/site.php:316
|
407 |
+
msgid "You can still enjoy all %s features but you will not have access to %s security & feature updates, nor support."
|
408 |
+
msgstr ""
|
409 |
+
|
410 |
+
#: templates/account.php:117, templates/forms/subscription-cancellation.php:102, templates/account/partials/addon.php:38, templates/account/partials/site.php:317
|
411 |
+
msgid "Once your license expires you can still use the Free version but you will NOT have access to the %s features."
|
412 |
+
msgstr ""
|
413 |
+
|
414 |
+
#. translators: %s: Plan title (e.g. "Professional")
|
415 |
+
#: templates/account.php:119, templates/account/partials/activate-license-button.php:31, templates/account/partials/addon.php:40
|
416 |
+
msgid "Activate %s Plan"
|
417 |
+
msgstr ""
|
418 |
+
|
419 |
+
#. translators: %s: Time period (e.g. Auto renews in "2 months")
|
420 |
+
#: templates/account.php:122, templates/account/partials/addon.php:43, templates/account/partials/site.php:291
|
421 |
+
msgid "Auto renews in %s"
|
422 |
+
msgstr ""
|
423 |
+
|
424 |
+
#. translators: %s: Time period (e.g. Expires in "2 months")
|
425 |
+
#: templates/account.php:124, templates/account/partials/addon.php:45, templates/account/partials/site.php:293
|
426 |
+
msgid "Expires in %s"
|
427 |
+
msgstr ""
|
428 |
+
|
429 |
+
#: templates/account.php:125
|
430 |
+
msgctxt "as synchronize license"
|
431 |
+
msgid "Sync License"
|
432 |
+
msgstr ""
|
433 |
+
|
434 |
+
#: templates/account.php:126, templates/account/partials/addon.php:46
|
435 |
+
msgid "Cancel Trial"
|
436 |
+
msgstr ""
|
437 |
+
|
438 |
+
#: templates/account.php:127, templates/account/partials/addon.php:47
|
439 |
+
msgid "Change Plan"
|
440 |
+
msgstr ""
|
441 |
+
|
442 |
+
#: templates/account.php:128, templates/account/partials/addon.php:48
|
443 |
+
msgctxt "verb"
|
444 |
+
msgid "Upgrade"
|
445 |
+
msgstr ""
|
446 |
+
|
447 |
+
#: templates/account.php:129, templates/account/partials/addon.php:49
|
448 |
+
msgid "Add-Ons"
|
449 |
+
msgstr ""
|
450 |
+
|
451 |
+
#: templates/account.php:130, templates/account/partials/addon.php:50, templates/account/partials/site.php:318
|
452 |
+
msgctxt "verb"
|
453 |
+
msgid "Downgrade"
|
454 |
+
msgstr ""
|
455 |
+
|
456 |
+
#: templates/account.php:131, templates/add-ons.php:250, templates/account/partials/addon.php:51
|
457 |
+
msgctxt "trial period"
|
458 |
+
msgid "Trial"
|
459 |
+
msgstr ""
|
460 |
+
|
461 |
+
#: templates/account.php:132, templates/add-ons.php:246, templates/plugin-info/features.php:72, templates/account/partials/addon.php:52, templates/account/partials/site.php:33
|
462 |
+
msgid "Free"
|
463 |
+
msgstr ""
|
464 |
+
|
465 |
+
#: templates/account.php:134, templates/debug.php:385, templates/account/partials/addon.php:54
|
466 |
+
msgctxt "as product pricing plan"
|
467 |
+
msgid "Plan"
|
468 |
+
msgstr ""
|
469 |
+
|
470 |
+
#: templates/account.php:135
|
471 |
+
msgid "Bundle Plan"
|
472 |
+
msgstr ""
|
473 |
+
|
474 |
+
#: templates/account.php:251, templates/debug.php:338
|
475 |
+
msgid "Account"
|
476 |
+
msgstr ""
|
477 |
+
|
478 |
+
#: templates/account.php:259
|
479 |
+
msgid "Free Trial"
|
480 |
+
msgstr ""
|
481 |
+
|
482 |
+
#: templates/account.php:270
|
483 |
+
msgid "Account Details"
|
484 |
+
msgstr ""
|
485 |
+
|
486 |
+
#: templates/account.php:279
|
487 |
+
msgid "Stop Debug"
|
488 |
+
msgstr ""
|
489 |
+
|
490 |
+
#: templates/account.php:277, templates/forms/data-debug-mode.php:33
|
491 |
+
msgid "Start Debug"
|
492 |
+
msgstr ""
|
493 |
+
|
494 |
+
#: templates/account.php:286
|
495 |
+
msgid "Billing & Invoices"
|
496 |
+
msgstr ""
|
497 |
+
|
498 |
+
#: templates/account.php:299
|
499 |
+
msgid "Deletion is not temporary. Only delete if you no longer want to use this %s anymore. Are you sure you would like to continue with the deletion?"
|
500 |
+
msgstr ""
|
501 |
+
|
502 |
+
#: templates/account.php:297
|
503 |
+
msgid "Deleting the account will automatically deactivate your %s plan license so you can use it on other sites. If you want to terminate the recurring payments as well, click the \"Cancel\" button, and first \"Downgrade\" your account. Are you sure you would like to continue with the deletion?"
|
504 |
+
msgstr ""
|
505 |
+
|
506 |
+
#: templates/account.php:302
|
507 |
+
msgid "Delete Account"
|
508 |
+
msgstr ""
|
509 |
+
|
510 |
+
#: templates/account.php:314, templates/account/partials/addon.php:236, templates/account/partials/deactivate-license-button.php:35
|
511 |
+
msgid "Deactivate License"
|
512 |
+
msgstr ""
|
513 |
+
|
514 |
+
#: templates/account.php:337, templates/forms/subscription-cancellation.php:125
|
515 |
+
msgid "Are you sure you want to proceed?"
|
516 |
+
msgstr ""
|
517 |
+
|
518 |
+
#: templates/account.php:337, templates/account/partials/addon.php:260
|
519 |
+
msgid "Cancel Subscription"
|
520 |
+
msgstr ""
|
521 |
+
|
522 |
+
#: templates/account.php:366, templates/account/partials/addon.php:345
|
523 |
+
msgctxt "as synchronize"
|
524 |
+
msgid "Sync"
|
525 |
+
msgstr ""
|
526 |
+
|
527 |
+
#: templates/account.php:381, templates/debug.php:523
|
528 |
+
msgid "Name"
|
529 |
+
msgstr ""
|
530 |
+
|
531 |
+
#: templates/account.php:387, templates/debug.php:524
|
532 |
+
msgid "Email"
|
533 |
+
msgstr ""
|
534 |
+
|
535 |
+
#: templates/account.php:394, templates/debug.php:383, templates/debug.php:573
|
536 |
+
msgid "User ID"
|
537 |
+
msgstr ""
|
538 |
+
|
539 |
+
#: templates/account.php:403, templates/account.php:411, templates/debug.php:372, templates/debug.php:567
|
540 |
+
msgid "Plugin"
|
541 |
+
msgstr ""
|
542 |
+
|
543 |
+
#: templates/account.php:404, templates/account.php:412, templates/debug.php:372, templates/debug.php:567, templates/forms/deactivation/form.php:107
|
544 |
+
msgid "Theme"
|
545 |
+
msgstr ""
|
546 |
+
|
547 |
+
#: templates/account.php:412, templates/account.php:732, templates/account.php:783, templates/debug.php:250, templates/debug.php:377, templates/debug.php:463, templates/debug.php:522, templates/debug.php:571, templates/debug.php:650, templates/account/payments.php:35, templates/debug/logger.php:21
|
548 |
+
msgid "ID"
|
549 |
+
msgstr ""
|
550 |
+
|
551 |
+
#: templates/account.php:419
|
552 |
+
msgid "Site ID"
|
553 |
+
msgstr ""
|
554 |
+
|
555 |
+
#: templates/account.php:422
|
556 |
+
msgid "No ID"
|
557 |
+
msgstr ""
|
558 |
+
|
559 |
+
#: templates/account.php:427, templates/debug.php:257, templates/debug.php:386, templates/debug.php:467, templates/debug.php:526, templates/account/partials/site.php:227
|
560 |
+
msgid "Public Key"
|
561 |
+
msgstr ""
|
562 |
+
|
563 |
+
#: templates/account.php:433, templates/debug.php:387, templates/debug.php:468, templates/debug.php:527, templates/account/partials/site.php:239
|
564 |
+
msgid "Secret Key"
|
565 |
+
msgstr ""
|
566 |
+
|
567 |
+
#: templates/account.php:436
|
568 |
+
msgctxt "as secret encryption key missing"
|
569 |
+
msgid "No Secret"
|
570 |
+
msgstr ""
|
571 |
+
|
572 |
+
#: templates/account.php:490, templates/debug.php:579, templates/account/partials/site.php:260
|
573 |
+
msgid "License Key"
|
574 |
+
msgstr ""
|
575 |
+
|
576 |
+
#: templates/account.php:463, templates/account/partials/site.php:122, templates/account/partials/site.php:120
|
577 |
+
msgid "Trial"
|
578 |
+
msgstr ""
|
579 |
+
|
580 |
+
#: templates/account.php:521
|
581 |
+
msgid "Join the Beta program"
|
582 |
+
msgstr ""
|
583 |
+
|
584 |
+
#: templates/account.php:527
|
585 |
+
msgid "not verified"
|
586 |
+
msgstr ""
|
587 |
+
|
588 |
+
#: templates/account.php:598
|
589 |
+
msgid "Free version"
|
590 |
+
msgstr ""
|
591 |
+
|
592 |
+
#: templates/account.php:596
|
593 |
+
msgid "Premium version"
|
594 |
+
msgstr ""
|
595 |
+
|
596 |
+
#: templates/account.php:536, templates/account/partials/addon.php:195
|
597 |
+
msgid "Expired"
|
598 |
+
msgstr ""
|
599 |
+
|
600 |
+
#: templates/account.php:567, templates/account.php:719, templates/connect.php:198, templates/connect.php:486, includes/managers/class-fs-clone-manager.php:1123, templates/forms/license-activation.php:27, templates/account/partials/addon.php:326
|
601 |
+
msgid "Activate License"
|
602 |
+
msgstr ""
|
603 |
+
|
604 |
+
#: templates/account.php:610
|
605 |
+
msgid "Verify Email"
|
606 |
+
msgstr ""
|
607 |
+
|
608 |
+
#: templates/account.php:687, templates/forms/user-change.php:27
|
609 |
+
msgid "Change User"
|
610 |
+
msgstr ""
|
611 |
+
|
612 |
+
#: templates/account.php:674
|
613 |
+
msgid "What is your %s?"
|
614 |
+
msgstr ""
|
615 |
+
|
616 |
+
#: templates/account.php:682, templates/account/billing.php:21
|
617 |
+
msgctxt "verb"
|
618 |
+
msgid "Edit"
|
619 |
+
msgstr ""
|
620 |
+
|
621 |
+
#: templates/account.php:658, templates/account.php:921, templates/account/partials/site.php:248, templates/account/partials/site.php:270
|
622 |
+
msgctxt "verb"
|
623 |
+
msgid "Show"
|
624 |
+
msgstr ""
|
625 |
+
|
626 |
+
#: templates/account.php:661, templates/account.php:718, templates/account/partials/addon.php:327, templates/account/partials/site.php:271
|
627 |
+
msgid "Change License"
|
628 |
+
msgstr ""
|
629 |
+
|
630 |
+
#: templates/account.php:624
|
631 |
+
msgid "Download %s Version"
|
632 |
+
msgstr ""
|
633 |
+
|
634 |
+
#: templates/account.php:640
|
635 |
+
msgid "Download Paid Version"
|
636 |
+
msgstr ""
|
637 |
+
|
638 |
+
#: templates/account.php:711
|
639 |
+
msgid "Sites"
|
640 |
+
msgstr ""
|
641 |
+
|
642 |
+
#: templates/account.php:724
|
643 |
+
msgid "Search by address"
|
644 |
+
msgstr ""
|
645 |
+
|
646 |
+
#: templates/account.php:733, templates/debug.php:380
|
647 |
+
msgid "Address"
|
648 |
+
msgstr ""
|
649 |
+
|
650 |
+
#: templates/account.php:734
|
651 |
+
msgid "License"
|
652 |
+
msgstr ""
|
653 |
+
|
654 |
+
#: templates/account.php:735
|
655 |
+
msgid "Plan"
|
656 |
+
msgstr ""
|
657 |
+
|
658 |
+
#: templates/account.php:786
|
659 |
+
msgctxt "as software license"
|
660 |
+
msgid "License"
|
661 |
+
msgstr ""
|
662 |
+
|
663 |
+
#: templates/account.php:915
|
664 |
+
msgctxt "verb"
|
665 |
+
msgid "Hide"
|
666 |
+
msgstr ""
|
667 |
+
|
668 |
+
#: templates/account.php:937, templates/forms/data-debug-mode.php:31, templates/forms/deactivation/form.php:358, templates/forms/deactivation/form.php:389
|
669 |
+
msgid "Processing"
|
670 |
+
msgstr ""
|
671 |
+
|
672 |
+
#: templates/account.php:940
|
673 |
+
msgid "Get updates for bleeding edge Beta versions of %s."
|
674 |
+
msgstr ""
|
675 |
+
|
676 |
+
#: templates/account.php:998
|
677 |
+
msgid "Cancelling %s"
|
678 |
+
msgstr ""
|
679 |
+
|
680 |
+
#: templates/account.php:998, templates/account.php:1015, templates/forms/subscription-cancellation.php:27, templates/forms/deactivation/form.php:178
|
681 |
+
msgid "trial"
|
682 |
+
msgstr ""
|
683 |
+
|
684 |
+
#: templates/account.php:1013, templates/forms/deactivation/form.php:195
|
685 |
+
msgid "Cancelling %s..."
|
686 |
+
msgstr ""
|
687 |
+
|
688 |
+
#: templates/account.php:1016, templates/forms/subscription-cancellation.php:28, templates/forms/deactivation/form.php:179
|
689 |
+
msgid "subscription"
|
690 |
+
msgstr ""
|
691 |
+
|
692 |
+
#: templates/account.php:1030
|
693 |
+
msgid "Deactivating your license will block all premium features, but will enable activating the license on another site. Are you sure you want to proceed?"
|
694 |
+
msgstr ""
|
695 |
+
|
696 |
+
#: templates/account.php:1104
|
697 |
+
msgid "Disabling white-label mode"
|
698 |
+
msgstr ""
|
699 |
+
|
700 |
+
#: templates/account.php:1105
|
701 |
+
msgid "Enabling white-label mode"
|
702 |
+
msgstr ""
|
703 |
+
|
704 |
+
#: templates/add-ons.php:38
|
705 |
+
msgid "View details"
|
706 |
+
msgstr ""
|
707 |
+
|
708 |
+
#: templates/add-ons.php:48
|
709 |
+
msgid "Add Ons for %s"
|
710 |
+
msgstr ""
|
711 |
+
|
712 |
+
#: templates/add-ons.php:57
|
713 |
+
msgctxt "exclamation"
|
714 |
+
msgid "Oops"
|
715 |
+
msgstr ""
|
716 |
+
|
717 |
+
#: templates/add-ons.php:58
|
718 |
+
msgid "We couldn't load the add-ons list. It's probably an issue on our side, please try to come back in few minutes."
|
719 |
+
msgstr ""
|
720 |
+
|
721 |
+
#: templates/add-ons.php:186, templates/account/partials/addon.php:386
|
722 |
+
msgid "More information about %s"
|
723 |
+
msgstr ""
|
724 |
+
|
725 |
+
#: templates/add-ons.php:229
|
726 |
+
msgctxt "active add-on"
|
727 |
+
msgid "Active"
|
728 |
+
msgstr ""
|
729 |
+
|
730 |
+
#: templates/add-ons.php:230
|
731 |
+
msgctxt "installed add-on"
|
732 |
+
msgid "Installed"
|
733 |
+
msgstr ""
|
734 |
+
|
735 |
+
#: templates/admin-notice.php:13, templates/forms/license-activation.php:250, templates/forms/resend-key.php:80
|
736 |
+
msgctxt "as close a window"
|
737 |
+
msgid "Dismiss"
|
738 |
+
msgstr ""
|
739 |
+
|
740 |
+
#: templates/auto-installation.php:32
|
741 |
+
msgid "Add-On"
|
742 |
+
msgstr ""
|
743 |
+
|
744 |
+
#. translators: %s: Number of seconds
|
745 |
+
#: templates/auto-installation.php:45
|
746 |
+
msgid "%s sec"
|
747 |
+
msgstr ""
|
748 |
+
|
749 |
+
#: templates/auto-installation.php:83
|
750 |
+
msgid "Automatic Installation"
|
751 |
+
msgstr ""
|
752 |
+
|
753 |
+
#: templates/auto-installation.php:93
|
754 |
+
msgid "An automated download and installation of %s (paid version) from %s will start in %s. If you would like to do it manually - click the cancellation button now."
|
755 |
+
msgstr ""
|
756 |
+
|
757 |
+
#: templates/auto-installation.php:104
|
758 |
+
msgid "The installation process has started and may take a few minutes to complete. Please wait until it is done - do not refresh this page."
|
759 |
+
msgstr ""
|
760 |
+
|
761 |
+
#: templates/auto-installation.php:109
|
762 |
+
msgid "Cancel Installation"
|
763 |
+
msgstr ""
|
764 |
+
|
765 |
+
#. translators: %s: name (e.g. Hey John,)
|
766 |
+
#: templates/connect.php:121
|
767 |
+
msgctxt "greeting"
|
768 |
+
msgid "Hey %s,"
|
769 |
+
msgstr ""
|
770 |
+
|
771 |
+
#: templates/connect.php:181
|
772 |
+
msgid "Allow & Continue"
|
773 |
+
msgstr ""
|
774 |
+
|
775 |
+
#: templates/connect.php:210, templates/connect.php:217
|
776 |
+
msgid "Never miss an important update - opt in to our security & feature updates notifications, educational content, offers, and non-sensitive diagnostic tracking with %4$s."
|
777 |
+
msgstr ""
|
778 |
+
|
779 |
+
#: templates/connect.php:211, templates/connect.php:218
|
780 |
+
msgid "Never miss an important update - opt in to our security & feature updates notifications, and non-sensitive diagnostic tracking with %4$s."
|
781 |
+
msgstr ""
|
782 |
+
|
783 |
+
#: templates/connect.php:221
|
784 |
+
msgid "If you skip this, that's okay! %1$s will still work just fine."
|
785 |
+
msgstr ""
|
786 |
+
|
787 |
+
#: templates/connect.php:199, templates/forms/license-activation.php:46
|
788 |
+
msgid "Agree & Activate License"
|
789 |
+
msgstr ""
|
790 |
+
|
791 |
+
#: templates/connect.php:203
|
792 |
+
msgid "Welcome to %s! To get started, please enter your license key:"
|
793 |
+
msgstr ""
|
794 |
+
|
795 |
+
#: templates/connect.php:185
|
796 |
+
msgid "Re-send activation email"
|
797 |
+
msgstr ""
|
798 |
+
|
799 |
+
#: templates/connect.php:189
|
800 |
+
msgid "Thanks %s!"
|
801 |
+
msgstr ""
|
802 |
+
|
803 |
+
#: templates/connect.php:190
|
804 |
+
msgid "You should receive an activation email for %s to your mailbox at %s. Please make sure you click the activation button in that email to %s."
|
805 |
+
msgstr ""
|
806 |
+
|
807 |
+
#: templates/connect.php:194
|
808 |
+
msgid "complete the install"
|
809 |
+
msgstr ""
|
810 |
+
|
811 |
+
#: templates/connect.php:251
|
812 |
+
msgid "We're excited to introduce the Freemius network-level integration."
|
813 |
+
msgstr ""
|
814 |
+
|
815 |
+
#: templates/connect.php:265
|
816 |
+
msgid "During the update process we detected %s site(s) in the network that are still pending your attention."
|
817 |
+
msgstr ""
|
818 |
+
|
819 |
+
#: templates/connect.php:254
|
820 |
+
msgid "During the update process we detected %d site(s) that are still pending license activation."
|
821 |
+
msgstr ""
|
822 |
+
|
823 |
+
#: templates/connect.php:256
|
824 |
+
msgid "If you'd like to use the %s on those sites, please enter your license key below and click the activation button."
|
825 |
+
msgstr ""
|
826 |
+
|
827 |
+
#: templates/connect.php:258
|
828 |
+
msgid "%s's paid features"
|
829 |
+
msgstr ""
|
830 |
+
|
831 |
+
#: templates/connect.php:263
|
832 |
+
msgid "Alternatively, you can skip it for now and activate the license later, in your %s's network-level Account page."
|
833 |
+
msgstr ""
|
834 |
+
|
835 |
+
#: templates/connect.php:274, templates/forms/data-debug-mode.php:35, templates/forms/license-activation.php:49
|
836 |
+
msgid "License key"
|
837 |
+
msgstr ""
|
838 |
+
|
839 |
+
#: templates/connect.php:277, templates/forms/license-activation.php:22
|
840 |
+
msgid "Can't find your license key?"
|
841 |
+
msgstr ""
|
842 |
+
|
843 |
+
#: templates/connect.php:308
|
844 |
+
msgid "Please let us know if you'd like us to contact you for security & feature updates, educational content, and occasional offers:"
|
845 |
+
msgstr ""
|
846 |
+
|
847 |
+
#: templates/connect.php:340, templates/connect.php:730, templates/forms/deactivation/retry-skip.php:20
|
848 |
+
msgctxt "verb"
|
849 |
+
msgid "Skip"
|
850 |
+
msgstr ""
|
851 |
+
|
852 |
+
#: templates/connect.php:343
|
853 |
+
msgid "Delegate to Site Admins"
|
854 |
+
msgstr ""
|
855 |
+
|
856 |
+
#: templates/connect.php:343
|
857 |
+
msgid "If you click it, this decision will be delegated to the sites administrators."
|
858 |
+
msgstr ""
|
859 |
+
|
860 |
+
#: templates/connect.php:368
|
861 |
+
msgid "License issues?"
|
862 |
+
msgstr ""
|
863 |
+
|
864 |
+
#: templates/connect.php:454
|
865 |
+
msgid "What permissions are being granted?"
|
866 |
+
msgstr ""
|
867 |
+
|
868 |
+
#: templates/connect.php:448
|
869 |
+
msgid "The %1$s will periodically send %2$s to %3$s for security & feature updates delivery, and license management."
|
870 |
+
msgstr ""
|
871 |
+
|
872 |
+
#: templates/connect.php:450
|
873 |
+
msgid "diagnostic data"
|
874 |
+
msgstr ""
|
875 |
+
|
876 |
+
#: templates/connect.php:485
|
877 |
+
msgid "Have a license key?"
|
878 |
+
msgstr ""
|
879 |
+
|
880 |
+
#: templates/connect.php:482
|
881 |
+
msgid "Don't have a license key?"
|
882 |
+
msgstr ""
|
883 |
+
|
884 |
+
#: templates/connect.php:493
|
885 |
+
msgid "Privacy Policy"
|
886 |
+
msgstr ""
|
887 |
+
|
888 |
+
#: templates/connect.php:495
|
889 |
+
msgid "License Agreement"
|
890 |
+
msgstr ""
|
891 |
+
|
892 |
+
#: templates/connect.php:495
|
893 |
+
msgid "Terms of Service"
|
894 |
+
msgstr ""
|
895 |
+
|
896 |
+
#: templates/connect.php:896
|
897 |
+
msgctxt "as in the process of sending an email"
|
898 |
+
msgid "Sending email"
|
899 |
+
msgstr ""
|
900 |
+
|
901 |
+
#: templates/connect.php:897
|
902 |
+
msgctxt "as activating plugin"
|
903 |
+
msgid "Activating"
|
904 |
+
msgstr ""
|
905 |
+
|
906 |
+
#: templates/debug.php:17
|
907 |
+
msgctxt "as turned off"
|
908 |
+
msgid "Off"
|
909 |
+
msgstr ""
|
910 |
+
|
911 |
+
#: templates/debug.php:18
|
912 |
+
msgctxt "as turned on"
|
913 |
+
msgid "On"
|
914 |
+
msgstr ""
|
915 |
+
|
916 |
+
#: templates/debug.php:20
|
917 |
+
msgid "SDK"
|
918 |
+
msgstr ""
|
919 |
+
|
920 |
+
#: templates/debug.php:24
|
921 |
+
msgctxt "as code debugging"
|
922 |
+
msgid "Debugging"
|
923 |
+
msgstr ""
|
924 |
+
|
925 |
+
#: templates/debug.php:54, templates/debug.php:262, templates/debug.php:388, templates/debug.php:528
|
926 |
+
msgid "Actions"
|
927 |
+
msgstr ""
|
928 |
+
|
929 |
+
#: templates/debug.php:64
|
930 |
+
msgid "Are you sure you want to delete all Freemius data?"
|
931 |
+
msgstr ""
|
932 |
+
|
933 |
+
#: templates/debug.php:64
|
934 |
+
msgid "Delete All Accounts"
|
935 |
+
msgstr ""
|
936 |
+
|
937 |
+
#: templates/debug.php:71
|
938 |
+
msgid "Clear API Cache"
|
939 |
+
msgstr ""
|
940 |
+
|
941 |
+
#: templates/debug.php:79
|
942 |
+
msgid "Clear Updates Transients"
|
943 |
+
msgstr ""
|
944 |
+
|
945 |
+
#: templates/debug.php:88
|
946 |
+
msgid "Reset Deactivation Snoozing"
|
947 |
+
msgstr ""
|
948 |
+
|
949 |
+
#: templates/debug.php:96
|
950 |
+
msgid "Sync Data From Server"
|
951 |
+
msgstr ""
|
952 |
+
|
953 |
+
#: templates/debug.php:105
|
954 |
+
msgid "Migrate Options to Network"
|
955 |
+
msgstr ""
|
956 |
+
|
957 |
+
#: templates/debug.php:110
|
958 |
+
msgid "Load DB Option"
|
959 |
+
msgstr ""
|
960 |
+
|
961 |
+
#: templates/debug.php:113
|
962 |
+
msgid "Set DB Option"
|
963 |
+
msgstr ""
|
964 |
+
|
965 |
+
#: templates/debug.php:194
|
966 |
+
msgid "Key"
|
967 |
+
msgstr ""
|
968 |
+
|
969 |
+
#: templates/debug.php:195
|
970 |
+
msgid "Value"
|
971 |
+
msgstr ""
|
972 |
+
|
973 |
+
#: templates/debug.php:211
|
974 |
+
msgctxt "as software development kit versions"
|
975 |
+
msgid "SDK Versions"
|
976 |
+
msgstr ""
|
977 |
+
|
978 |
+
#: templates/debug.php:216
|
979 |
+
msgid "SDK Path"
|
980 |
+
msgstr ""
|
981 |
+
|
982 |
+
#: templates/debug.php:217, templates/debug.php:256
|
983 |
+
msgid "Module Path"
|
984 |
+
msgstr ""
|
985 |
+
|
986 |
+
#: templates/debug.php:218
|
987 |
+
msgid "Is Active"
|
988 |
+
msgstr ""
|
989 |
+
|
990 |
+
#: templates/debug.php:246, templates/debug/plugins-themes-sync.php:35
|
991 |
+
msgid "Plugins"
|
992 |
+
msgstr ""
|
993 |
+
|
994 |
+
#: templates/debug.php:246, templates/debug/plugins-themes-sync.php:56
|
995 |
+
msgid "Themes"
|
996 |
+
msgstr ""
|
997 |
+
|
998 |
+
#: templates/debug.php:251, templates/debug.php:382, templates/debug.php:465, templates/debug/scheduled-crons.php:80
|
999 |
+
msgid "Slug"
|
1000 |
+
msgstr ""
|
1001 |
+
|
1002 |
+
#: templates/debug.php:253, templates/debug.php:464
|
1003 |
+
msgid "Title"
|
1004 |
+
msgstr ""
|
1005 |
+
|
1006 |
+
#: templates/debug.php:254
|
1007 |
+
msgctxt "as application program interface"
|
1008 |
+
msgid "API"
|
1009 |
+
msgstr ""
|
1010 |
+
|
1011 |
+
#: templates/debug.php:255
|
1012 |
+
msgid "Freemius State"
|
1013 |
+
msgstr ""
|
1014 |
+
|
1015 |
+
#: templates/debug.php:259
|
1016 |
+
msgid "Network Blog"
|
1017 |
+
msgstr ""
|
1018 |
+
|
1019 |
+
#: templates/debug.php:260
|
1020 |
+
msgid "Network User"
|
1021 |
+
msgstr ""
|
1022 |
+
|
1023 |
+
#: templates/debug.php:297
|
1024 |
+
msgctxt "as connection was successful"
|
1025 |
+
msgid "Connected"
|
1026 |
+
msgstr ""
|
1027 |
+
|
1028 |
+
#: templates/debug.php:298
|
1029 |
+
msgctxt "as connection blocked"
|
1030 |
+
msgid "Blocked"
|
1031 |
+
msgstr ""
|
1032 |
+
|
1033 |
+
#: templates/debug.php:334
|
1034 |
+
msgid "Simulate Trial Promotion"
|
1035 |
+
msgstr ""
|
1036 |
+
|
1037 |
+
#: templates/debug.php:346
|
1038 |
+
msgid "Simulate Network Upgrade"
|
1039 |
+
msgstr ""
|
1040 |
+
|
1041 |
+
#. translators: %s: 'plugin' or 'theme'
|
1042 |
+
#: templates/debug.php:371
|
1043 |
+
msgid "%s Installs"
|
1044 |
+
msgstr ""
|
1045 |
+
|
1046 |
+
#: templates/debug.php:373
|
1047 |
+
msgctxt "like websites"
|
1048 |
+
msgid "Sites"
|
1049 |
+
msgstr ""
|
1050 |
+
|
1051 |
+
#: templates/debug.php:379, templates/account/partials/site.php:156
|
1052 |
+
msgid "Blog ID"
|
1053 |
+
msgstr ""
|
1054 |
+
|
1055 |
+
#: templates/debug.php:384
|
1056 |
+
msgid "License ID"
|
1057 |
+
msgstr ""
|
1058 |
+
|
1059 |
+
#: templates/debug.php:445, templates/debug.php:551, templates/account/partials/addon.php:440
|
1060 |
+
msgctxt "verb"
|
1061 |
+
msgid "Delete"
|
1062 |
+
msgstr ""
|
1063 |
+
|
1064 |
+
#: templates/debug.php:459
|
1065 |
+
msgid "Add Ons of module %s"
|
1066 |
+
msgstr ""
|
1067 |
+
|
1068 |
+
#: templates/debug.php:518
|
1069 |
+
msgid "Users"
|
1070 |
+
msgstr ""
|
1071 |
+
|
1072 |
+
#: templates/debug.php:525
|
1073 |
+
msgid "Verified"
|
1074 |
+
msgstr ""
|
1075 |
+
|
1076 |
+
#: templates/debug.php:567
|
1077 |
+
msgid "%s Licenses"
|
1078 |
+
msgstr ""
|
1079 |
+
|
1080 |
+
#: templates/debug.php:572
|
1081 |
+
msgid "Plugin ID"
|
1082 |
+
msgstr ""
|
1083 |
+
|
1084 |
+
#: templates/debug.php:574
|
1085 |
+
msgid "Plan ID"
|
1086 |
+
msgstr ""
|
1087 |
+
|
1088 |
+
#: templates/debug.php:575
|
1089 |
+
msgid "Quota"
|
1090 |
+
msgstr ""
|
1091 |
+
|
1092 |
+
#: templates/debug.php:576
|
1093 |
+
msgid "Activated"
|
1094 |
+
msgstr ""
|
1095 |
+
|
1096 |
+
#: templates/debug.php:577
|
1097 |
+
msgid "Blocking"
|
1098 |
+
msgstr ""
|
1099 |
+
|
1100 |
+
#: templates/debug.php:578, templates/debug.php:649, templates/debug/logger.php:22
|
1101 |
+
msgid "Type"
|
1102 |
+
msgstr ""
|
1103 |
+
|
1104 |
+
#: templates/debug.php:580
|
1105 |
+
msgctxt "as expiration date"
|
1106 |
+
msgid "Expiration"
|
1107 |
+
msgstr ""
|
1108 |
+
|
1109 |
+
#: templates/debug.php:608
|
1110 |
+
msgid "Debug Log"
|
1111 |
+
msgstr ""
|
1112 |
+
|
1113 |
+
#: templates/debug.php:612
|
1114 |
+
msgid "All Types"
|
1115 |
+
msgstr ""
|
1116 |
+
|
1117 |
+
#: templates/debug.php:619
|
1118 |
+
msgid "All Requests"
|
1119 |
+
msgstr ""
|
1120 |
+
|
1121 |
+
#: templates/debug.php:624, templates/debug.php:653, templates/debug/logger.php:25
|
1122 |
+
msgid "File"
|
1123 |
+
msgstr ""
|
1124 |
+
|
1125 |
+
#: templates/debug.php:625, templates/debug.php:651, templates/debug/logger.php:23
|
1126 |
+
msgid "Function"
|
1127 |
+
msgstr ""
|
1128 |
+
|
1129 |
+
#: templates/debug.php:626
|
1130 |
+
msgid "Process ID"
|
1131 |
+
msgstr ""
|
1132 |
+
|
1133 |
+
#: templates/debug.php:627
|
1134 |
+
msgid "Logger"
|
1135 |
+
msgstr ""
|
1136 |
+
|
1137 |
+
#: templates/debug.php:628, templates/debug.php:652, templates/debug/logger.php:24
|
1138 |
+
msgid "Message"
|
1139 |
+
msgstr ""
|
1140 |
+
|
1141 |
+
#: templates/debug.php:630
|
1142 |
+
msgid "Filter"
|
1143 |
+
msgstr ""
|
1144 |
+
|
1145 |
+
#: templates/debug.php:638
|
1146 |
+
msgid "Download"
|
1147 |
+
msgstr ""
|
1148 |
+
|
1149 |
+
#: templates/debug.php:654, templates/debug/logger.php:26
|
1150 |
+
msgid "Timestamp"
|
1151 |
+
msgstr ""
|
1152 |
+
|
1153 |
+
#: includes/debug/class-fs-debug-bar-panel.php:48, templates/debug/api-calls.php:54, templates/debug/logger.php:62
|
1154 |
+
msgctxt "milliseconds"
|
1155 |
+
msgid "ms"
|
1156 |
+
msgstr ""
|
1157 |
+
|
1158 |
+
#: includes/debug/debug-bar-start.php:41
|
1159 |
+
msgid "Freemius API"
|
1160 |
+
msgstr ""
|
1161 |
+
|
1162 |
+
#: includes/debug/debug-bar-start.php:42
|
1163 |
+
msgid "Requests"
|
1164 |
+
msgstr ""
|
1165 |
+
|
1166 |
+
#: includes/managers/class-fs-clone-manager.php:703
|
1167 |
+
msgid "Invalid clone resolution action."
|
1168 |
+
msgstr ""
|
1169 |
+
|
1170 |
+
#: includes/managers/class-fs-clone-manager.php:851
|
1171 |
+
msgid "products"
|
1172 |
+
msgstr ""
|
1173 |
+
|
1174 |
+
#: includes/managers/class-fs-clone-manager.php:1039
|
1175 |
+
msgid "The products below have been placed into safe mode because we noticed that %2$s is an exact copy of %3$s:%1$s"
|
1176 |
+
msgstr ""
|
1177 |
+
|
1178 |
+
#: includes/managers/class-fs-clone-manager.php:1040
|
1179 |
+
msgid "The products below have been placed into safe mode because we noticed that %2$s is an exact copy of these sites:%3$s%1$s"
|
1180 |
+
msgstr ""
|
1181 |
+
|
1182 |
+
#: includes/managers/class-fs-clone-manager.php:1033
|
1183 |
+
msgid "%1$s has been placed into safe mode because we noticed that %2$s is an exact copy of %3$s."
|
1184 |
+
msgstr ""
|
1185 |
+
|
1186 |
+
#: includes/managers/class-fs-clone-manager.php:1066
|
1187 |
+
msgid "the above-mentioned sites"
|
1188 |
+
msgstr ""
|
1189 |
+
|
1190 |
+
#: includes/managers/class-fs-clone-manager.php:1079
|
1191 |
+
msgid "Is %2$s a duplicate of %4$s?"
|
1192 |
+
msgstr ""
|
1193 |
+
|
1194 |
+
#: includes/managers/class-fs-clone-manager.php:1080
|
1195 |
+
msgid "Yes, %2$s is a duplicate of %4$s for the purpose of testing, staging, or development."
|
1196 |
+
msgstr ""
|
1197 |
+
|
1198 |
+
#: includes/managers/class-fs-clone-manager.php:1085
|
1199 |
+
msgid "Long-Term Duplicate"
|
1200 |
+
msgstr ""
|
1201 |
+
|
1202 |
+
#: includes/managers/class-fs-clone-manager.php:1090
|
1203 |
+
msgid "Duplicate Website"
|
1204 |
+
msgstr ""
|
1205 |
+
|
1206 |
+
#: includes/managers/class-fs-clone-manager.php:1096
|
1207 |
+
msgid "Is %2$s the new home of %4$s?"
|
1208 |
+
msgstr ""
|
1209 |
+
|
1210 |
+
#: includes/managers/class-fs-clone-manager.php:1098
|
1211 |
+
msgid "Yes, %%2$s is replacing %%4$s. I would like to migrate my %s from %%4$s to %%2$s."
|
1212 |
+
msgstr ""
|
1213 |
+
|
1214 |
+
#: includes/managers/class-fs-clone-manager.php:1099, templates/forms/subscription-cancellation.php:52
|
1215 |
+
msgid "license"
|
1216 |
+
msgstr ""
|
1217 |
+
|
1218 |
+
#: includes/managers/class-fs-clone-manager.php:1099
|
1219 |
+
msgid "data"
|
1220 |
+
msgstr ""
|
1221 |
+
|
1222 |
+
#: includes/managers/class-fs-clone-manager.php:1105
|
1223 |
+
msgid "Migrate License"
|
1224 |
+
msgstr ""
|
1225 |
+
|
1226 |
+
#: includes/managers/class-fs-clone-manager.php:1106
|
1227 |
+
msgid "Migrate"
|
1228 |
+
msgstr ""
|
1229 |
+
|
1230 |
+
#: includes/managers/class-fs-clone-manager.php:1112
|
1231 |
+
msgid "Is %2$s a new website?"
|
1232 |
+
msgstr ""
|
1233 |
+
|
1234 |
+
#: includes/managers/class-fs-clone-manager.php:1113
|
1235 |
+
msgid "Yes, %2$s is a new and different website that is separate from %4$s."
|
1236 |
+
msgstr ""
|
1237 |
+
|
1238 |
+
#: includes/managers/class-fs-clone-manager.php:1115
|
1239 |
+
msgid "It requires license activation."
|
1240 |
+
msgstr ""
|
1241 |
+
|
1242 |
+
#: includes/managers/class-fs-clone-manager.php:1122
|
1243 |
+
msgid "New Website"
|
1244 |
+
msgstr ""
|
1245 |
+
|
1246 |
+
#: includes/managers/class-fs-clone-manager.php:1145
|
1247 |
+
msgctxt "Clone resolution admin notice products list label"
|
1248 |
+
msgid "Products"
|
1249 |
+
msgstr ""
|
1250 |
+
|
1251 |
+
#: includes/managers/class-fs-clone-manager.php:1230
|
1252 |
+
msgid "You marked this website, %s, as a temporary duplicate of %s."
|
1253 |
+
msgstr ""
|
1254 |
+
|
1255 |
+
#: includes/managers/class-fs-clone-manager.php:1231
|
1256 |
+
msgid "You marked this website, %s, as a temporary duplicate of these sites"
|
1257 |
+
msgstr ""
|
1258 |
+
|
1259 |
+
#: includes/managers/class-fs-clone-manager.php:1245
|
1260 |
+
msgid "%s automatic security & feature updates and paid functionality will keep working without interruptions until %s (or when your license expires, whatever comes first)."
|
1261 |
+
msgstr ""
|
1262 |
+
|
1263 |
+
#: includes/managers/class-fs-clone-manager.php:1248
|
1264 |
+
msgctxt "\"The <product_label>\", e.g.: \"The plugin\""
|
1265 |
+
msgid "The %s's"
|
1266 |
+
msgstr ""
|
1267 |
+
|
1268 |
+
#: includes/managers/class-fs-clone-manager.php:1251
|
1269 |
+
msgid "The following products'"
|
1270 |
+
msgstr ""
|
1271 |
+
|
1272 |
+
#: includes/managers/class-fs-clone-manager.php:1259
|
1273 |
+
msgid "If this is a long term duplicate, to keep automatic updates and paid functionality after %s, please %s."
|
1274 |
+
msgstr ""
|
1275 |
+
|
1276 |
+
#: includes/managers/class-fs-clone-manager.php:1261
|
1277 |
+
msgid "activate a license here"
|
1278 |
+
msgstr ""
|
1279 |
+
|
1280 |
+
#: templates/account/billing.php:22
|
1281 |
+
msgctxt "verb"
|
1282 |
+
msgid "Update"
|
1283 |
+
msgstr ""
|
1284 |
+
|
1285 |
+
#: templates/account/billing.php:33
|
1286 |
+
msgid "Billing"
|
1287 |
+
msgstr ""
|
1288 |
+
|
1289 |
+
#: templates/account/billing.php:38, templates/account/billing.php:38
|
1290 |
+
msgid "Business name"
|
1291 |
+
msgstr ""
|
1292 |
+
|
1293 |
+
#: templates/account/billing.php:39, templates/account/billing.php:39
|
1294 |
+
msgid "Tax / VAT ID"
|
1295 |
+
msgstr ""
|
1296 |
+
|
1297 |
+
#: templates/account/billing.php:42, templates/account/billing.php:42, templates/account/billing.php:43, templates/account/billing.php:43
|
1298 |
+
msgid "Address Line %d"
|
1299 |
+
msgstr ""
|
1300 |
+
|
1301 |
+
#: templates/account/billing.php:46, templates/account/billing.php:46
|
1302 |
+
msgid "City"
|
1303 |
+
msgstr ""
|
1304 |
+
|
1305 |
+
#: templates/account/billing.php:46, templates/account/billing.php:46
|
1306 |
+
msgid "Town"
|
1307 |
+
msgstr ""
|
1308 |
+
|
1309 |
+
#: templates/account/billing.php:47, templates/account/billing.php:47
|
1310 |
+
msgid "ZIP / Postal Code"
|
1311 |
+
msgstr ""
|
1312 |
+
|
1313 |
+
#: templates/account/billing.php:302
|
1314 |
+
msgid "Country"
|
1315 |
+
msgstr ""
|
1316 |
+
|
1317 |
+
#: templates/account/billing.php:304
|
1318 |
+
msgid "Select Country"
|
1319 |
+
msgstr ""
|
1320 |
+
|
1321 |
+
#: templates/account/billing.php:311, templates/account/billing.php:312
|
1322 |
+
msgid "State"
|
1323 |
+
msgstr ""
|
1324 |
+
|
1325 |
+
#: templates/account/billing.php:311, templates/account/billing.php:312
|
1326 |
+
msgid "Province"
|
1327 |
+
msgstr ""
|
1328 |
+
|
1329 |
+
#: templates/account/payments.php:29
|
1330 |
+
msgid "Payments"
|
1331 |
+
msgstr ""
|
1332 |
+
|
1333 |
+
#: templates/account/payments.php:36
|
1334 |
+
msgid "Date"
|
1335 |
+
msgstr ""
|
1336 |
+
|
1337 |
+
#: templates/account/payments.php:37
|
1338 |
+
msgid "Amount"
|
1339 |
+
msgstr ""
|
1340 |
+
|
1341 |
+
#: templates/account/payments.php:38, templates/account/payments.php:50
|
1342 |
+
msgid "Invoice"
|
1343 |
+
msgstr ""
|
1344 |
+
|
1345 |
+
#: templates/debug/api-calls.php:56
|
1346 |
+
msgid "API"
|
1347 |
+
msgstr ""
|
1348 |
+
|
1349 |
+
#: templates/debug/api-calls.php:68
|
1350 |
+
msgid "Method"
|
1351 |
+
msgstr ""
|
1352 |
+
|
1353 |
+
#: templates/debug/api-calls.php:69
|
1354 |
+
msgid "Code"
|
1355 |
+
msgstr ""
|
1356 |
+
|
1357 |
+
#: templates/debug/api-calls.php:70
|
1358 |
+
msgid "Length"
|
1359 |
+
msgstr ""
|
1360 |
+
|
1361 |
+
#: templates/debug/api-calls.php:71
|
1362 |
+
msgctxt "as file/folder path"
|
1363 |
+
msgid "Path"
|
1364 |
+
msgstr ""
|
1365 |
+
|
1366 |
+
#: templates/debug/api-calls.php:73
|
1367 |
+
msgid "Body"
|
1368 |
+
msgstr ""
|
1369 |
+
|
1370 |
+
#: templates/debug/api-calls.php:75
|
1371 |
+
msgid "Result"
|
1372 |
+
msgstr ""
|
1373 |
+
|
1374 |
+
#: templates/debug/api-calls.php:76
|
1375 |
+
msgid "Start"
|
1376 |
+
msgstr ""
|
1377 |
+
|
1378 |
+
#: templates/debug/api-calls.php:77
|
1379 |
+
msgid "End"
|
1380 |
+
msgstr ""
|
1381 |
+
|
1382 |
+
#: templates/debug/logger.php:15
|
1383 |
+
msgid "Log"
|
1384 |
+
msgstr ""
|
1385 |
+
|
1386 |
+
#. translators: %s: time period (e.g. In "2 hours")
|
1387 |
+
#: templates/debug/plugins-themes-sync.php:18, templates/debug/scheduled-crons.php:91
|
1388 |
+
msgid "In %s"
|
1389 |
+
msgstr ""
|
1390 |
+
|
1391 |
+
#. translators: %s: time period (e.g. "2 hours" ago)
|
1392 |
+
#: templates/debug/plugins-themes-sync.php:20, templates/debug/scheduled-crons.php:93
|
1393 |
+
msgid "%s ago"
|
1394 |
+
msgstr ""
|
1395 |
+
|
1396 |
+
#: templates/debug/plugins-themes-sync.php:21, templates/debug/scheduled-crons.php:74
|
1397 |
+
msgctxt "seconds"
|
1398 |
+
msgid "sec"
|
1399 |
+
msgstr ""
|
1400 |
+
|
1401 |
+
#: templates/debug/plugins-themes-sync.php:23
|
1402 |
+
msgid "Plugins & Themes Sync"
|
1403 |
+
msgstr ""
|
1404 |
+
|
1405 |
+
#: templates/debug/plugins-themes-sync.php:28
|
1406 |
+
msgid "Total"
|
1407 |
+
msgstr ""
|
1408 |
+
|
1409 |
+
#: templates/debug/plugins-themes-sync.php:29, templates/debug/scheduled-crons.php:84
|
1410 |
+
msgid "Last"
|
1411 |
+
msgstr ""
|
1412 |
+
|
1413 |
+
#: templates/debug/scheduled-crons.php:76
|
1414 |
+
msgid "Scheduled Crons"
|
1415 |
+
msgstr ""
|
1416 |
+
|
1417 |
+
#: templates/debug/scheduled-crons.php:81
|
1418 |
+
msgid "Module"
|
1419 |
+
msgstr ""
|
1420 |
+
|
1421 |
+
#: templates/debug/scheduled-crons.php:82
|
1422 |
+
msgid "Module Type"
|
1423 |
+
msgstr ""
|
1424 |
+
|
1425 |
+
#: templates/debug/scheduled-crons.php:83
|
1426 |
+
msgid "Cron Type"
|
1427 |
+
msgstr ""
|
1428 |
+
|
1429 |
+
#: templates/debug/scheduled-crons.php:85
|
1430 |
+
msgid "Next"
|
1431 |
+
msgstr ""
|
1432 |
+
|
1433 |
+
#: templates/forms/affiliation.php:83
|
1434 |
+
msgid "Non-expiring"
|
1435 |
+
msgstr ""
|
1436 |
+
|
1437 |
+
#: templates/forms/affiliation.php:86
|
1438 |
+
msgid "Apply to become an affiliate"
|
1439 |
+
msgstr ""
|
1440 |
+
|
1441 |
+
#: templates/forms/affiliation.php:132
|
1442 |
+
msgid "Due to violation of our affiliation terms, we decided to temporarily block your affiliation account. If you have any questions, please contact support."
|
1443 |
+
msgstr ""
|
1444 |
+
|
1445 |
+
#: templates/forms/affiliation.php:129
|
1446 |
+
msgid "Thank you for applying for our affiliate program, unfortunately, we've decided at this point to reject your application. Please try again in 30 days."
|
1447 |
+
msgstr ""
|
1448 |
+
|
1449 |
+
#: templates/forms/affiliation.php:126
|
1450 |
+
msgid "Your affiliation account was temporarily suspended."
|
1451 |
+
msgstr ""
|
1452 |
+
|
1453 |
+
#: templates/forms/affiliation.php:123
|
1454 |
+
msgid "Thank you for applying for our affiliate program, we'll review your details during the next 14 days and will get back to you with further information."
|
1455 |
+
msgstr ""
|
1456 |
+
|
1457 |
+
#: templates/forms/affiliation.php:108
|
1458 |
+
msgid "Your affiliate application for %s has been accepted! Log in to your affiliate area at: %s."
|
1459 |
+
msgstr ""
|
1460 |
+
|
1461 |
+
#: templates/forms/affiliation.php:145
|
1462 |
+
msgid "Like the %s? Become our ambassador and earn cash ;-)"
|
1463 |
+
msgstr ""
|
1464 |
+
|
1465 |
+
#: templates/forms/affiliation.php:146
|
1466 |
+
msgid "Refer new customers to our %s and earn %s commission on each successful sale you refer!"
|
1467 |
+
msgstr ""
|
1468 |
+
|
1469 |
+
#: templates/forms/affiliation.php:149
|
1470 |
+
msgid "Program Summary"
|
1471 |
+
msgstr ""
|
1472 |
+
|
1473 |
+
#: templates/forms/affiliation.php:151
|
1474 |
+
msgid "%s commission when a customer purchases a new license."
|
1475 |
+
msgstr ""
|
1476 |
+
|
1477 |
+
#: templates/forms/affiliation.php:153
|
1478 |
+
msgid "Get commission for automated subscription renewals."
|
1479 |
+
msgstr ""
|
1480 |
+
|
1481 |
+
#: templates/forms/affiliation.php:156
|
1482 |
+
msgid "%s tracking cookie after the first visit to maximize earnings potential."
|
1483 |
+
msgstr ""
|
1484 |
+
|
1485 |
+
#: templates/forms/affiliation.php:159
|
1486 |
+
msgid "Unlimited commissions."
|
1487 |
+
msgstr ""
|
1488 |
+
|
1489 |
+
#: templates/forms/affiliation.php:161
|
1490 |
+
msgid "%s minimum payout amount."
|
1491 |
+
msgstr ""
|
1492 |
+
|
1493 |
+
#: templates/forms/affiliation.php:162
|
1494 |
+
msgid "Payouts are in USD and processed monthly via PayPal."
|
1495 |
+
msgstr ""
|
1496 |
+
|
1497 |
+
#: templates/forms/affiliation.php:163
|
1498 |
+
msgid "As we reserve 30 days for potential refunds, we only pay commissions that are older than 30 days."
|
1499 |
+
msgstr ""
|
1500 |
+
|
1501 |
+
#: templates/forms/affiliation.php:166
|
1502 |
+
msgid "Affiliate"
|
1503 |
+
msgstr ""
|
1504 |
+
|
1505 |
+
#: templates/forms/affiliation.php:169, templates/forms/resend-key.php:23
|
1506 |
+
msgid "Email address"
|
1507 |
+
msgstr ""
|
1508 |
+
|
1509 |
+
#: templates/forms/affiliation.php:173
|
1510 |
+
msgid "Full name"
|
1511 |
+
msgstr ""
|
1512 |
+
|
1513 |
+
#: templates/forms/affiliation.php:177
|
1514 |
+
msgid "PayPal account email address"
|
1515 |
+
msgstr ""
|
1516 |
+
|
1517 |
+
#: templates/forms/affiliation.php:181
|
1518 |
+
msgid "Where are you going to promote the %s?"
|
1519 |
+
msgstr ""
|
1520 |
+
|
1521 |
+
#: templates/forms/affiliation.php:183
|
1522 |
+
msgid "Enter the domain of your website or other websites from where you plan to promote the %s."
|
1523 |
+
msgstr ""
|
1524 |
+
|
1525 |
+
#: templates/forms/affiliation.php:185
|
1526 |
+
msgid "Add another domain"
|
1527 |
+
msgstr ""
|
1528 |
+
|
1529 |
+
#: templates/forms/affiliation.php:189
|
1530 |
+
msgid "Extra Domains"
|
1531 |
+
msgstr ""
|
1532 |
+
|
1533 |
+
#: templates/forms/affiliation.php:190
|
1534 |
+
msgid "Extra domains where you will be marketing the product from."
|
1535 |
+
msgstr ""
|
1536 |
+
|
1537 |
+
#: templates/forms/affiliation.php:200
|
1538 |
+
msgid "Promotion methods"
|
1539 |
+
msgstr ""
|
1540 |
+
|
1541 |
+
#: templates/forms/affiliation.php:203
|
1542 |
+
msgid "Social media (Facebook, Twitter, etc.)"
|
1543 |
+
msgstr ""
|
1544 |
+
|
1545 |
+
#: templates/forms/affiliation.php:207
|
1546 |
+
msgid "Mobile apps"
|
1547 |
+
msgstr ""
|
1548 |
+
|
1549 |
+
#: templates/forms/affiliation.php:211
|
1550 |
+
msgid "Website, email, and social media statistics (optional)"
|
1551 |
+
msgstr ""
|
1552 |
+
|
1553 |
+
#: templates/forms/affiliation.php:214
|
1554 |
+
msgid "Please feel free to provide any relevant website or social media statistics, e.g. monthly unique site visits, number of email subscribers, followers, etc. (we will keep this information confidential)."
|
1555 |
+
msgstr ""
|
1556 |
+
|
1557 |
+
#: templates/forms/affiliation.php:218
|
1558 |
+
msgid "How will you promote us?"
|
1559 |
+
msgstr ""
|
1560 |
+
|
1561 |
+
#: templates/forms/affiliation.php:221
|
1562 |
+
msgid "Please provide details on how you intend to promote %s (please be as specific as possible)."
|
1563 |
+
msgstr ""
|
1564 |
+
|
1565 |
+
#: templates/forms/affiliation.php:233, templates/forms/resend-key.php:22
|
1566 |
+
msgid "Cancel"
|
1567 |
+
msgstr ""
|
1568 |
+
|
1569 |
+
#: templates/forms/affiliation.php:235
|
1570 |
+
msgid "Become an affiliate"
|
1571 |
+
msgstr ""
|
1572 |
+
|
1573 |
+
#: templates/forms/data-debug-mode.php:25
|
1574 |
+
msgid "Please enter the license key to enable the debug mode:"
|
1575 |
+
msgstr ""
|
1576 |
+
|
1577 |
+
#: templates/forms/data-debug-mode.php:27
|
1578 |
+
msgid "To enter the debug mode, please enter the secret key of the license owner (UserID = %d), which you can find in your \"My Profile\" section of your User Dashboard:"
|
1579 |
+
msgstr ""
|
1580 |
+
|
1581 |
+
#: templates/forms/data-debug-mode.php:32
|
1582 |
+
msgid "Submit"
|
1583 |
+
msgstr ""
|
1584 |
+
|
1585 |
+
#: templates/forms/data-debug-mode.php:36
|
1586 |
+
msgid "User key"
|
1587 |
+
msgstr ""
|
1588 |
+
|
1589 |
+
#: templates/forms/data-debug-mode.php:162
|
1590 |
+
msgid "An unknown error has occurred."
|
1591 |
+
msgstr ""
|
1592 |
+
|
1593 |
+
#: templates/forms/email-address-update.php:32
|
1594 |
+
msgid "Email address update"
|
1595 |
+
msgstr ""
|
1596 |
+
|
1597 |
+
#: templates/forms/email-address-update.php:33, templates/forms/user-change.php:81
|
1598 |
+
msgctxt "close window"
|
1599 |
+
msgid "Dismiss"
|
1600 |
+
msgstr ""
|
1601 |
+
|
1602 |
+
#: templates/forms/email-address-update.php:38
|
1603 |
+
msgid "Enter the new email address"
|
1604 |
+
msgstr ""
|
1605 |
+
|
1606 |
+
#: templates/forms/email-address-update.php:42
|
1607 |
+
msgid "Are both %s and %s your email addresses?"
|
1608 |
+
msgstr ""
|
1609 |
+
|
1610 |
+
#: templates/forms/email-address-update.php:50
|
1611 |
+
msgid "Yes - both addresses are mine"
|
1612 |
+
msgstr ""
|
1613 |
+
|
1614 |
+
#: templates/forms/email-address-update.php:57
|
1615 |
+
msgid "%s is my client's email address"
|
1616 |
+
msgstr ""
|
1617 |
+
|
1618 |
+
#: templates/forms/email-address-update.php:66
|
1619 |
+
msgid "%s is my email address"
|
1620 |
+
msgstr ""
|
1621 |
+
|
1622 |
+
#: templates/forms/email-address-update.php:75
|
1623 |
+
msgid "Would you like to merge %s into %s?"
|
1624 |
+
msgstr ""
|
1625 |
+
|
1626 |
+
#: templates/forms/email-address-update.php:84
|
1627 |
+
msgid "Yes - move all my data and assets from %s to %s"
|
1628 |
+
msgstr ""
|
1629 |
+
|
1630 |
+
#: templates/forms/email-address-update.php:94
|
1631 |
+
msgid "No - only move this site's data to %s"
|
1632 |
+
msgstr ""
|
1633 |
+
|
1634 |
+
#: templates/forms/email-address-update.php:292, templates/forms/email-address-update.php:298
|
1635 |
+
msgid "Update"
|
1636 |
+
msgstr ""
|
1637 |
+
|
1638 |
+
#: templates/forms/license-activation.php:23
|
1639 |
+
msgid "Please enter the license key that you received in the email right after the purchase:"
|
1640 |
+
msgstr ""
|
1641 |
+
|
1642 |
+
#: templates/forms/license-activation.php:28
|
1643 |
+
msgid "Update License"
|
1644 |
+
msgstr ""
|
1645 |
+
|
1646 |
+
#: templates/forms/license-activation.php:41
|
1647 |
+
msgid "The %1$s will be periodically sending data to %2$s to check for security and feature updates, and verify the validity of your license."
|
1648 |
+
msgstr ""
|
1649 |
+
|
1650 |
+
#: templates/forms/license-activation.php:211
|
1651 |
+
msgid "Associate with the license owner's account."
|
1652 |
+
msgstr ""
|
1653 |
+
|
1654 |
+
#: templates/forms/optout.php:30
|
1655 |
+
msgctxt "verb"
|
1656 |
+
msgid "Opt Out"
|
1657 |
+
msgstr ""
|
1658 |
+
|
1659 |
+
#: templates/forms/optout.php:31
|
1660 |
+
msgctxt "verb"
|
1661 |
+
msgid "Opt In"
|
1662 |
+
msgstr ""
|
1663 |
+
|
1664 |
+
#: templates/forms/optout.php:41
|
1665 |
+
msgid "We appreciate your help in making the %s better by letting us track some usage data."
|
1666 |
+
msgstr ""
|
1667 |
+
|
1668 |
+
#: templates/forms/optout.php:44
|
1669 |
+
msgid "Usage tracking is done in the name of making %s better. Making a better user experience, prioritizing new features, and more good things. We'd really appreciate if you'll reconsider letting us continue with the tracking."
|
1670 |
+
msgstr ""
|
1671 |
+
|
1672 |
+
#: templates/forms/optout.php:45
|
1673 |
+
msgid "On second thought - I want to continue helping"
|
1674 |
+
msgstr ""
|
1675 |
+
|
1676 |
+
#: templates/forms/optout.php:34
|
1677 |
+
msgid "Connectivity to the licensing engine was successfully re-established. Automatic security & feature updates are now available through the WP Admin Dashboard."
|
1678 |
+
msgstr ""
|
1679 |
+
|
1680 |
+
#: templates/forms/optout.php:36
|
1681 |
+
msgid "Warning: Opting out will block automatic updates"
|
1682 |
+
msgstr ""
|
1683 |
+
|
1684 |
+
#: templates/forms/optout.php:37
|
1685 |
+
msgid "Ongoing connectivity with the licensing engine is essential for receiving automatic security & feature updates of the paid product. To receive these updates, data like your license key, %1$s version, and WordPress version, is periodically sent to the server to check for updates. By opting out, you understand that your site won't receive automatic updates for %2$s from within the WP Admin Dashboard. This can put your site at risk, and we highly recommend to keep this connection active. If you do choose to opt-out, you'll need to check for %1$s updates and install them manually."
|
1686 |
+
msgstr ""
|
1687 |
+
|
1688 |
+
#: templates/forms/optout.php:39
|
1689 |
+
msgid "I'd like to keep automatic updates"
|
1690 |
+
msgstr ""
|
1691 |
+
|
1692 |
+
#: templates/forms/optout.php:49
|
1693 |
+
msgid "By clicking \"Opt Out\", we will no longer be sending any data from %s to %s."
|
1694 |
+
msgstr ""
|
1695 |
+
|
1696 |
+
#: templates/forms/optout.php:74
|
1697 |
+
msgid "Plugins & themes tracking"
|
1698 |
+
msgstr ""
|
1699 |
+
|
1700 |
+
#: templates/forms/optout.php:261
|
1701 |
+
msgid "Saved"
|
1702 |
+
msgstr ""
|
1703 |
+
|
1704 |
+
#: templates/forms/premium-versions-upgrade-handler.php:40
|
1705 |
+
msgid "There is a new version of %s available."
|
1706 |
+
msgstr ""
|
1707 |
+
|
1708 |
+
#: templates/forms/premium-versions-upgrade-handler.php:41
|
1709 |
+
msgid " %s to access version %s security & feature updates, and support."
|
1710 |
+
msgstr ""
|
1711 |
+
|
1712 |
+
#: templates/forms/premium-versions-upgrade-handler.php:46
|
1713 |
+
msgid "Renew your license now"
|
1714 |
+
msgstr ""
|
1715 |
+
|
1716 |
+
#: templates/forms/premium-versions-upgrade-handler.php:47
|
1717 |
+
msgid "Buy a license now"
|
1718 |
+
msgstr ""
|
1719 |
+
|
1720 |
+
#: templates/forms/premium-versions-upgrade-handler.php:54
|
1721 |
+
msgid "New Version Available"
|
1722 |
+
msgstr ""
|
1723 |
+
|
1724 |
+
#: templates/forms/premium-versions-upgrade-handler.php:75
|
1725 |
+
msgctxt "close a window"
|
1726 |
+
msgid "Dismiss"
|
1727 |
+
msgstr ""
|
1728 |
+
|
1729 |
+
#: templates/forms/resend-key.php:21
|
1730 |
+
msgid "Send License Key"
|
1731 |
+
msgstr ""
|
1732 |
+
|
1733 |
+
#: templates/forms/resend-key.php:24, templates/forms/user-change.php:29
|
1734 |
+
msgid "Other"
|
1735 |
+
msgstr ""
|
1736 |
+
|
1737 |
+
#: templates/forms/resend-key.php:58
|
1738 |
+
msgid "Enter the email address you've used during the purchase and we will resend you the license key."
|
1739 |
+
msgstr ""
|
1740 |
+
|
1741 |
+
#: templates/forms/resend-key.php:59
|
1742 |
+
msgid "Enter the email address you've used for the upgrade below and we will resend you the license key."
|
1743 |
+
msgstr ""
|
1744 |
+
|
1745 |
+
#: templates/forms/subscription-cancellation.php:37
|
1746 |
+
msgid "Deactivating or uninstalling the %s will automatically disable the license, which you'll be able to use on another site."
|
1747 |
+
msgstr ""
|
1748 |
+
|
1749 |
+
#: templates/forms/subscription-cancellation.php:47
|
1750 |
+
msgid "In case you are NOT planning on using this %s on this site (or any other site) - would you like to cancel the %s as well?"
|
1751 |
+
msgstr ""
|
1752 |
+
|
1753 |
+
#: templates/forms/subscription-cancellation.php:57
|
1754 |
+
msgid "Cancel %s - I no longer need any security & feature updates, nor support for %s because I'm not planning to use the %s on this, or any other site."
|
1755 |
+
msgstr ""
|
1756 |
+
|
1757 |
+
#: templates/forms/subscription-cancellation.php:68
|
1758 |
+
msgid "Don't cancel %s - I'm still interested in getting security & feature updates, as well as be able to contact support."
|
1759 |
+
msgstr ""
|
1760 |
+
|
1761 |
+
#: templates/forms/subscription-cancellation.php:103
|
1762 |
+
msgid "Once your license expires you will no longer be able to use the %s, unless you activate it again with a valid premium license."
|
1763 |
+
msgstr ""
|
1764 |
+
|
1765 |
+
#: templates/forms/subscription-cancellation.php:136
|
1766 |
+
msgid "Cancel %s?"
|
1767 |
+
msgstr ""
|
1768 |
+
|
1769 |
+
#: templates/forms/subscription-cancellation.php:143
|
1770 |
+
msgid "Proceed"
|
1771 |
+
msgstr ""
|
1772 |
+
|
1773 |
+
#: templates/forms/subscription-cancellation.php:191, templates/forms/deactivation/form.php:216
|
1774 |
+
msgid "Cancel %s & Proceed"
|
1775 |
+
msgstr ""
|
1776 |
+
|
1777 |
+
#. translators: %1$s: Number of trial days; %2$s: Plan name;
|
1778 |
+
#: templates/forms/trial-start.php:22
|
1779 |
+
msgid "You are 1-click away from starting your %1$s-day free trial of the %2$s plan."
|
1780 |
+
msgstr ""
|
1781 |
+
|
1782 |
+
#. translators: %s: Link to freemius.com
|
1783 |
+
#: templates/forms/trial-start.php:28
|
1784 |
+
msgid "For compliance with the WordPress.org guidelines, before we start the trial we ask that you opt in with your user and non-sensitive site information, allowing the %s to periodically send data to %s to check for version updates and to validate your trial."
|
1785 |
+
msgstr ""
|
1786 |
+
|
1787 |
+
#: templates/forms/trial-start.php:53
|
1788 |
+
msgctxt "call to action"
|
1789 |
+
msgid "Start free trial"
|
1790 |
+
msgstr ""
|
1791 |
+
|
1792 |
+
#: templates/forms/user-change.php:26
|
1793 |
+
msgid "By changing the user, you agree to transfer the account ownership to:"
|
1794 |
+
msgstr ""
|
1795 |
+
|
1796 |
+
#: templates/forms/user-change.php:28
|
1797 |
+
msgid "I Agree - Change User"
|
1798 |
+
msgstr ""
|
1799 |
+
|
1800 |
+
#: templates/forms/user-change.php:30
|
1801 |
+
msgid "Enter email address"
|
1802 |
+
msgstr ""
|
1803 |
+
|
1804 |
+
#: templates/partials/network-activation.php:36
|
1805 |
+
msgid "Activate license on all pending sites."
|
1806 |
+
msgstr ""
|
1807 |
+
|
1808 |
+
#: templates/partials/network-activation.php:37
|
1809 |
+
msgid "Apply on all pending sites."
|
1810 |
+
msgstr ""
|
1811 |
+
|
1812 |
+
#: templates/partials/network-activation.php:32
|
1813 |
+
msgid "Activate license on all sites in the network."
|
1814 |
+
msgstr ""
|
1815 |
+
|
1816 |
+
#: templates/partials/network-activation.php:33
|
1817 |
+
msgid "Apply on all sites in the network."
|
1818 |
+
msgstr ""
|
1819 |
+
|
1820 |
+
#: templates/partials/network-activation.php:45, templates/partials/network-activation.php:79
|
1821 |
+
msgid "allow"
|
1822 |
+
msgstr ""
|
1823 |
+
|
1824 |
+
#: templates/partials/network-activation.php:48, templates/partials/network-activation.php:82
|
1825 |
+
msgid "delegate"
|
1826 |
+
msgstr ""
|
1827 |
+
|
1828 |
+
#: templates/partials/network-activation.php:52, templates/partials/network-activation.php:86
|
1829 |
+
msgid "skip"
|
1830 |
+
msgstr ""
|
1831 |
+
|
1832 |
+
#: templates/plugin-info/description.php:72, templates/plugin-info/screenshots.php:31
|
1833 |
+
msgid "Click to view full-size screenshot %d"
|
1834 |
+
msgstr ""
|
1835 |
+
|
1836 |
+
#: templates/plugin-info/features.php:43
|
1837 |
+
msgid "Support"
|
1838 |
+
msgstr ""
|
1839 |
+
|
1840 |
+
#: templates/plugin-info/features.php:56
|
1841 |
+
msgid "Unlimited Updates"
|
1842 |
+
msgstr ""
|
1843 |
+
|
1844 |
+
#: templates/account/partials/activate-license-button.php:46
|
1845 |
+
msgid "Localhost"
|
1846 |
+
msgstr ""
|
1847 |
+
|
1848 |
+
#: templates/account/partials/activate-license-button.php:50
|
1849 |
+
msgctxt "as 5 licenses left"
|
1850 |
+
msgid "%s left"
|
1851 |
+
msgstr ""
|
1852 |
+
|
1853 |
+
#: templates/account/partials/activate-license-button.php:51
|
1854 |
+
msgid "Last license"
|
1855 |
+
msgstr ""
|
1856 |
+
|
1857 |
+
#. translators: %1$s: Either 'Downgrading your plan' or 'Cancelling the subscription'
|
1858 |
+
#: templates/account/partials/addon.php:34
|
1859 |
+
msgid "%1$s will immediately stop all future recurring payments and your %s plan license will expire in %s."
|
1860 |
+
msgstr ""
|
1861 |
+
|
1862 |
+
#: templates/account/partials/addon.php:200
|
1863 |
+
msgid "No expiration"
|
1864 |
+
msgstr ""
|
1865 |
+
|
1866 |
+
#: templates/account/partials/addon.php:190
|
1867 |
+
msgid "Cancelled"
|
1868 |
+
msgstr ""
|
1869 |
+
|
1870 |
+
#: templates/account/partials/site.php:49, templates/account/partials/site.php:169
|
1871 |
+
msgid "Opt In"
|
1872 |
+
msgstr ""
|
1873 |
+
|
1874 |
+
#: templates/account/partials/site.php:169
|
1875 |
+
msgid "Opt Out"
|
1876 |
+
msgstr ""
|
1877 |
+
|
1878 |
+
#: templates/account/partials/site.php:189
|
1879 |
+
msgid "Owner Name"
|
1880 |
+
msgstr ""
|
1881 |
+
|
1882 |
+
#: templates/account/partials/site.php:201
|
1883 |
+
msgid "Owner Email"
|
1884 |
+
msgstr ""
|
1885 |
+
|
1886 |
+
#: templates/account/partials/site.php:213
|
1887 |
+
msgid "Owner ID"
|
1888 |
+
msgstr ""
|
1889 |
+
|
1890 |
+
#: templates/account/partials/site.php:286
|
1891 |
+
msgid "Subscription"
|
1892 |
+
msgstr ""
|
1893 |
+
|
1894 |
+
#: templates/forms/deactivation/contact.php:19
|
1895 |
+
msgid "Sorry for the inconvenience and we are here to help if you give us a chance."
|
1896 |
+
msgstr ""
|
1897 |
+
|
1898 |
+
#: templates/forms/deactivation/contact.php:22
|
1899 |
+
msgid "Contact Support"
|
1900 |
+
msgstr ""
|
1901 |
+
|
1902 |
+
#: templates/forms/deactivation/form.php:65
|
1903 |
+
msgid "Anonymous feedback"
|
1904 |
+
msgstr ""
|
1905 |
+
|
1906 |
+
#: templates/forms/deactivation/form.php:71
|
1907 |
+
msgid "hour"
|
1908 |
+
msgstr ""
|
1909 |
+
|
1910 |
+
#: templates/forms/deactivation/form.php:76
|
1911 |
+
msgid "hours"
|
1912 |
+
msgstr ""
|
1913 |
+
|
1914 |
+
#: templates/forms/deactivation/form.php:81, templates/forms/deactivation/form.php:86
|
1915 |
+
msgid "days"
|
1916 |
+
msgstr ""
|
1917 |
+
|
1918 |
+
#: templates/forms/deactivation/form.php:106
|
1919 |
+
msgid "Deactivate"
|
1920 |
+
msgstr ""
|
1921 |
+
|
1922 |
+
#: templates/forms/deactivation/form.php:108
|
1923 |
+
msgid "Activate %s"
|
1924 |
+
msgstr ""
|
1925 |
+
|
1926 |
+
#: templates/forms/deactivation/form.php:111
|
1927 |
+
msgid "Submit & %s"
|
1928 |
+
msgstr ""
|
1929 |
+
|
1930 |
+
#: templates/forms/deactivation/form.php:130
|
1931 |
+
msgid "Quick Feedback"
|
1932 |
+
msgstr ""
|
1933 |
+
|
1934 |
+
#: templates/forms/deactivation/form.php:134
|
1935 |
+
msgid "If you have a moment, please let us know why you are %s"
|
1936 |
+
msgstr ""
|
1937 |
+
|
1938 |
+
#: templates/forms/deactivation/form.php:134
|
1939 |
+
msgid "deactivating"
|
1940 |
+
msgstr ""
|
1941 |
+
|
1942 |
+
#: templates/forms/deactivation/form.php:134
|
1943 |
+
msgid "switching"
|
1944 |
+
msgstr ""
|
1945 |
+
|
1946 |
+
#: templates/forms/deactivation/form.php:448
|
1947 |
+
msgid "Kindly tell us the reason so we can improve."
|
1948 |
+
msgstr ""
|
1949 |
+
|
1950 |
+
#: templates/forms/deactivation/form.php:478
|
1951 |
+
msgid "Snooze & %s"
|
1952 |
+
msgstr ""
|
1953 |
+
|
1954 |
+
#: templates/forms/deactivation/form.php:638
|
1955 |
+
msgid "Yes - %s"
|
1956 |
+
msgstr ""
|
1957 |
+
|
1958 |
+
#: templates/forms/deactivation/form.php:645
|
1959 |
+
msgid "Skip & %s"
|
1960 |
+
msgstr ""
|
1961 |
+
|
1962 |
+
#: templates/forms/deactivation/retry-skip.php:21
|
1963 |
+
msgid "Click here to use the plugin anonymously"
|
1964 |
+
msgstr ""
|
1965 |
+
|
1966 |
+
#: templates/forms/deactivation/retry-skip.php:23
|
1967 |
+
msgid "You might have missed it, but you don't have to share any data and can just %s the opt-in."
|
1968 |
+
msgstr ""
|
freemius/start.php
CHANGED
@@ -1,530 +1,530 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* @package Freemius
|
4 |
-
* @copyright Copyright (c) 2015, Freemius, Inc.
|
5 |
-
* @license https://www.gnu.org/licenses/gpl-3.0.html GNU General Public License Version 3
|
6 |
-
* @since 1.0.3
|
7 |
-
*/
|
8 |
-
|
9 |
-
if ( ! defined( 'ABSPATH' ) ) {
|
10 |
-
exit;
|
11 |
-
}
|
12 |
-
|
13 |
-
/**
|
14 |
-
* Freemius SDK Version.
|
15 |
-
*
|
16 |
-
* @var string
|
17 |
-
*/
|
18 |
-
$this_sdk_version = '2.4.5';
|
19 |
-
|
20 |
-
#region SDK Selection Logic --------------------------------------------------------------------
|
21 |
-
|
22 |
-
/**
|
23 |
-
* Special logic added on 1.1.6 to make sure that every Freemius powered plugin
|
24 |
-
* will ALWAYS be loaded with the newest SDK from the active Freemius powered plugins.
|
25 |
-
*
|
26 |
-
* Since Freemius SDK is backward compatible, this will make sure that all Freemius powered
|
27 |
-
* plugins will run correctly.
|
28 |
-
*
|
29 |
-
* @since 1.1.6
|
30 |
-
*/
|
31 |
-
|
32 |
-
global $fs_active_plugins;
|
33 |
-
|
34 |
-
if ( ! function_exists( 'fs_find_caller_plugin_file' ) ) {
|
35 |
-
// Require SDK essentials.
|
36 |
-
require_once dirname( __FILE__ ) . '/includes/fs-essential-functions.php';
|
37 |
-
}
|
38 |
-
|
39 |
-
/**
|
40 |
-
* This complex logic fixes symlink issues (e.g. with Vargant). The logic assumes
|
41 |
-
* that if it's a file from an SDK running in a theme, the location of the SDK
|
42 |
-
* is in the main theme's folder.
|
43 |
-
*
|
44 |
-
* @author Vova Feldman (@svovaf)
|
45 |
-
* @since 1.2.2.6
|
46 |
-
*/
|
47 |
-
$file_path = fs_normalize_path( __FILE__ );
|
48 |
-
$fs_root_path = dirname( $file_path );
|
49 |
-
/**
|
50 |
-
* Get the themes directory where the active theme is located (not passing the stylesheet will make WordPress
|
51 |
-
* assume that the themes directory is inside `wp-content`.
|
52 |
-
*
|
53 |
-
* @author Leo Fajardo (@leorw)
|
54 |
-
* @since 2.2.3
|
55 |
-
*/
|
56 |
-
$themes_directory = get_theme_root( get_stylesheet() );
|
57 |
-
$themes_directory_name = basename( $themes_directory );
|
58 |
-
$theme_candidate_basename = basename( dirname( $fs_root_path ) ) . '/' . basename( $fs_root_path );
|
59 |
-
|
60 |
-
if ( $file_path == fs_normalize_path( realpath( trailingslashit( $themes_directory ) . $theme_candidate_basename . '/' . basename( $file_path ) ) )
|
61 |
-
) {
|
62 |
-
$this_sdk_relative_path = '../' . $themes_directory_name . '/' . $theme_candidate_basename;
|
63 |
-
$is_theme = true;
|
64 |
-
} else {
|
65 |
-
$this_sdk_relative_path = plugin_basename( $fs_root_path );
|
66 |
-
$is_theme = false;
|
67 |
-
}
|
68 |
-
|
69 |
-
if ( ! isset( $fs_active_plugins ) ) {
|
70 |
-
// Load all Freemius powered active plugins.
|
71 |
-
$fs_active_plugins = get_option( 'fs_active_plugins', new stdClass() );
|
72 |
-
|
73 |
-
if ( ! isset( $fs_active_plugins->plugins ) ) {
|
74 |
-
$fs_active_plugins->plugins = array();
|
75 |
-
}
|
76 |
-
}
|
77 |
-
|
78 |
-
if ( empty( $fs_active_plugins->abspath ) ) {
|
79 |
-
/**
|
80 |
-
* Store the WP install absolute path reference to identify environment change
|
81 |
-
* while replicating the storage.
|
82 |
-
*
|
83 |
-
* @author Vova Feldman (@svovaf)
|
84 |
-
* @since 1.2.1.7
|
85 |
-
*/
|
86 |
-
$fs_active_plugins->abspath = ABSPATH;
|
87 |
-
} else {
|
88 |
-
if ( ABSPATH !== $fs_active_plugins->abspath ) {
|
89 |
-
/**
|
90 |
-
* WordPress path has changed, cleanup the SDK references cache.
|
91 |
-
* This resolves issues triggered when spinning a staging environments
|
92 |
-
* while replicating the database.
|
93 |
-
*
|
94 |
-
* @author Vova Feldman (@svovaf)
|
95 |
-
* @since 1.2.1.7
|
96 |
-
*/
|
97 |
-
$fs_active_plugins->abspath = ABSPATH;
|
98 |
-
$fs_active_plugins->plugins = array();
|
99 |
-
unset( $fs_active_plugins->newest );
|
100 |
-
} else {
|
101 |
-
/**
|
102 |
-
* Make sure SDK references are still valid. This resolves
|
103 |
-
* issues when users hard delete modules via FTP.
|
104 |
-
*
|
105 |
-
* @author Vova Feldman (@svovaf)
|
106 |
-
* @since 1.2.1.7
|
107 |
-
*/
|
108 |
-
$has_changes = false;
|
109 |
-
foreach ( $fs_active_plugins->plugins as $sdk_path => $data ) {
|
110 |
-
if ( ! file_exists( ( isset( $data->type ) && 'theme' === $data->type ? $themes_directory : WP_PLUGIN_DIR ) . '/' . $sdk_path ) ) {
|
111 |
-
unset( $fs_active_plugins->plugins[ $sdk_path ] );
|
112 |
-
|
113 |
-
if (
|
114 |
-
! empty( $fs_active_plugins->newest ) &&
|
115 |
-
$sdk_path === $fs_active_plugins->newest->sdk_path
|
116 |
-
) {
|
117 |
-
unset( $fs_active_plugins->newest );
|
118 |
-
}
|
119 |
-
|
120 |
-
$has_changes = true;
|
121 |
-
}
|
122 |
-
}
|
123 |
-
|
124 |
-
if ( $has_changes ) {
|
125 |
-
if ( empty( $fs_active_plugins->plugins ) ) {
|
126 |
-
unset( $fs_active_plugins->newest );
|
127 |
-
}
|
128 |
-
|
129 |
-
update_option( 'fs_active_plugins', $fs_active_plugins );
|
130 |
-
}
|
131 |
-
}
|
132 |
-
}
|
133 |
-
|
134 |
-
if ( ! function_exists( 'fs_find_direct_caller_plugin_file' ) ) {
|
135 |
-
require_once dirname( __FILE__ ) . '/includes/supplements/fs-essential-functions-1.1.7.1.php';
|
136 |
-
}
|
137 |
-
|
138 |
-
if ( ! function_exists( 'fs_get_plugins' ) ) {
|
139 |
-
require_once dirname( __FILE__ ) . '/includes/supplements/fs-essential-functions-2.2.1.php';
|
140 |
-
}
|
141 |
-
|
142 |
-
// Update current SDK info based on the SDK path.
|
143 |
-
if ( ! isset( $fs_active_plugins->plugins[ $this_sdk_relative_path ] ) ||
|
144 |
-
$this_sdk_version != $fs_active_plugins->plugins[ $this_sdk_relative_path ]->version
|
145 |
-
) {
|
146 |
-
if ( $is_theme ) {
|
147 |
-
$plugin_path = basename( dirname( $this_sdk_relative_path ) );
|
148 |
-
} else {
|
149 |
-
$plugin_path = plugin_basename( fs_find_direct_caller_plugin_file( $file_path ) );
|
150 |
-
}
|
151 |
-
|
152 |
-
$fs_active_plugins->plugins[ $this_sdk_relative_path ] = (object) array(
|
153 |
-
'version' => $this_sdk_version,
|
154 |
-
'type' => ( $is_theme ? 'theme' : 'plugin' ),
|
155 |
-
'timestamp' => time(),
|
156 |
-
'plugin_path' => $plugin_path,
|
157 |
-
);
|
158 |
-
}
|
159 |
-
|
160 |
-
$is_current_sdk_newest = isset( $fs_active_plugins->newest ) && ( $this_sdk_relative_path == $fs_active_plugins->newest->sdk_path );
|
161 |
-
|
162 |
-
if ( ! isset( $fs_active_plugins->newest ) ) {
|
163 |
-
/**
|
164 |
-
* This will be executed only once, for the first time a Freemius powered plugin is activated.
|
165 |
-
*/
|
166 |
-
fs_update_sdk_newest_version( $this_sdk_relative_path, $fs_active_plugins->plugins[ $this_sdk_relative_path ]->plugin_path );
|
167 |
-
|
168 |
-
$is_current_sdk_newest = true;
|
169 |
-
} else if ( version_compare( $fs_active_plugins->newest->version, $this_sdk_version, '<' ) ) {
|
170 |
-
/**
|
171 |
-
* Current SDK is newer than the newest stored SDK.
|
172 |
-
*/
|
173 |
-
fs_update_sdk_newest_version( $this_sdk_relative_path, $fs_active_plugins->plugins[ $this_sdk_relative_path ]->plugin_path );
|
174 |
-
|
175 |
-
if ( class_exists( 'Freemius' ) ) {
|
176 |
-
// Older SDK version was already loaded.
|
177 |
-
|
178 |
-
if ( ! $fs_active_plugins->newest->in_activation ) {
|
179 |
-
// Re-order plugins to load this plugin first.
|
180 |
-
fs_newest_sdk_plugin_first();
|
181 |
-
}
|
182 |
-
|
183 |
-
// Refresh page.
|
184 |
-
fs_redirect( $_SERVER['REQUEST_URI'] );
|
185 |
-
}
|
186 |
-
} else {
|
187 |
-
if ( ! function_exists( 'get_plugins' ) ) {
|
188 |
-
require_once ABSPATH . 'wp-admin/includes/plugin.php';
|
189 |
-
}
|
190 |
-
|
191 |
-
$fs_newest_sdk = $fs_active_plugins->newest;
|
192 |
-
$fs_newest_sdk = $fs_active_plugins->plugins[ $fs_newest_sdk->sdk_path ];
|
193 |
-
|
194 |
-
$is_newest_sdk_type_theme = ( isset( $fs_newest_sdk->type ) && 'theme' === $fs_newest_sdk->type );
|
195 |
-
|
196 |
-
if ( ! $is_newest_sdk_type_theme ) {
|
197 |
-
$is_newest_sdk_plugin_active = is_plugin_active( $fs_newest_sdk->plugin_path );
|
198 |
-
} else {
|
199 |
-
$current_theme = wp_get_theme();
|
200 |
-
$is_newest_sdk_plugin_active = ( $current_theme->stylesheet === $fs_newest_sdk->plugin_path );
|
201 |
-
|
202 |
-
$current_theme_parent = $current_theme->parent();
|
203 |
-
|
204 |
-
/**
|
205 |
-
* If the current theme is a child of the theme that has the newest SDK, this prevents a redirects loop
|
206 |
-
* from happening by keeping the SDK info stored in the `fs_active_plugins` option.
|
207 |
-
*/
|
208 |
-
if ( ! $is_newest_sdk_plugin_active && $current_theme_parent instanceof WP_Theme ) {
|
209 |
-
$is_newest_sdk_plugin_active = ( $fs_newest_sdk->plugin_path === $current_theme_parent->stylesheet );
|
210 |
-
}
|
211 |
-
}
|
212 |
-
|
213 |
-
if ( $is_current_sdk_newest &&
|
214 |
-
! $is_newest_sdk_plugin_active &&
|
215 |
-
! $fs_active_plugins->newest->in_activation
|
216 |
-
) {
|
217 |
-
// If current SDK is the newest and the plugin is NOT active, it means
|
218 |
-
// that the current plugin in activation mode.
|
219 |
-
$fs_active_plugins->newest->in_activation = true;
|
220 |
-
update_option( 'fs_active_plugins', $fs_active_plugins );
|
221 |
-
}
|
222 |
-
|
223 |
-
if ( ! $is_theme ) {
|
224 |
-
$sdk_starter_path = fs_normalize_path( WP_PLUGIN_DIR . '/' . $this_sdk_relative_path . '/start.php' );
|
225 |
-
} else {
|
226 |
-
$sdk_starter_path = fs_normalize_path(
|
227 |
-
$themes_directory
|
228 |
-
. '/'
|
229 |
-
. str_replace( "../{$themes_directory_name}/", '', $this_sdk_relative_path )
|
230 |
-
. '/start.php' );
|
231 |
-
}
|
232 |
-
|
233 |
-
$is_newest_sdk_path_valid = ( $is_newest_sdk_plugin_active || $fs_active_plugins->newest->in_activation ) && file_exists( $sdk_starter_path );
|
234 |
-
|
235 |
-
if ( ! $is_newest_sdk_path_valid && ! $is_current_sdk_newest ) {
|
236 |
-
// Plugin with newest SDK is no longer active, or SDK was moved to a different location.
|
237 |
-
unset( $fs_active_plugins->plugins[ $fs_active_plugins->newest->sdk_path ] );
|
238 |
-
}
|
239 |
-
|
240 |
-
if ( ! ( $is_newest_sdk_plugin_active || $fs_active_plugins->newest->in_activation ) ||
|
241 |
-
! $is_newest_sdk_path_valid ||
|
242 |
-
// Is newest SDK downgraded.
|
243 |
-
( $this_sdk_relative_path == $fs_active_plugins->newest->sdk_path &&
|
244 |
-
version_compare( $fs_active_plugins->newest->version, $this_sdk_version, '>' ) )
|
245 |
-
) {
|
246 |
-
/**
|
247 |
-
* Plugin with newest SDK is no longer active.
|
248 |
-
* OR
|
249 |
-
* The newest SDK was in the current plugin. BUT, seems like the version of
|
250 |
-
* the SDK was downgraded to a lower SDK.
|
251 |
-
*/
|
252 |
-
// Find the active plugin with the newest SDK version and update the newest reference.
|
253 |
-
fs_fallback_to_newest_active_sdk();
|
254 |
-
} else {
|
255 |
-
if ( $is_newest_sdk_plugin_active &&
|
256 |
-
$this_sdk_relative_path == $fs_active_plugins->newest->sdk_path &&
|
257 |
-
( $fs_active_plugins->newest->in_activation ||
|
258 |
-
( class_exists( 'Freemius' ) && ( ! defined( 'WP_FS__SDK_VERSION' ) || version_compare( WP_FS__SDK_VERSION, $this_sdk_version, '<' ) ) )
|
259 |
-
)
|
260 |
-
|
261 |
-
) {
|
262 |
-
if ( $fs_active_plugins->newest->in_activation && ! $is_newest_sdk_type_theme ) {
|
263 |
-
// Plugin no more in activation.
|
264 |
-
$fs_active_plugins->newest->in_activation = false;
|
265 |
-
update_option( 'fs_active_plugins', $fs_active_plugins );
|
266 |
-
}
|
267 |
-
|
268 |
-
// Reorder plugins to load plugin with newest SDK first.
|
269 |
-
if ( fs_newest_sdk_plugin_first() ) {
|
270 |
-
// Refresh page after re-order to make sure activated plugin loads newest SDK.
|
271 |
-
if ( class_exists( 'Freemius' ) ) {
|
272 |
-
fs_redirect( $_SERVER['REQUEST_URI'] );
|
273 |
-
}
|
274 |
-
}
|
275 |
-
}
|
276 |
-
}
|
277 |
-
}
|
278 |
-
|
279 |
-
if ( class_exists( 'Freemius' ) ) {
|
280 |
-
// SDK was already loaded.
|
281 |
-
return;
|
282 |
-
}
|
283 |
-
|
284 |
-
if ( version_compare( $this_sdk_version, $fs_active_plugins->newest->version, '<' ) ) {
|
285 |
-
$newest_sdk = $fs_active_plugins->plugins[ $fs_active_plugins->newest->sdk_path ];
|
286 |
-
|
287 |
-
$plugins_or_theme_dir_path = ( ! isset( $newest_sdk->type ) || 'theme' !== $newest_sdk->type ) ?
|
288 |
-
WP_PLUGIN_DIR :
|
289 |
-
$themes_directory;
|
290 |
-
|
291 |
-
$newest_sdk_starter = fs_normalize_path(
|
292 |
-
$plugins_or_theme_dir_path
|
293 |
-
. '/'
|
294 |
-
. str_replace( "../{$themes_directory_name}/", '', $fs_active_plugins->newest->sdk_path )
|
295 |
-
. '/start.php' );
|
296 |
-
|
297 |
-
if ( file_exists( $newest_sdk_starter ) ) {
|
298 |
-
// Reorder plugins to load plugin with newest SDK first.
|
299 |
-
fs_newest_sdk_plugin_first();
|
300 |
-
|
301 |
-
// There's a newer SDK version, load it instead of the current one!
|
302 |
-
require_once $newest_sdk_starter;
|
303 |
-
|
304 |
-
return;
|
305 |
-
}
|
306 |
-
}
|
307 |
-
|
308 |
-
#endregion SDK Selection Logic --------------------------------------------------------------------
|
309 |
-
|
310 |
-
#region Hooks & Filters Collection --------------------------------------------------------------------
|
311 |
-
|
312 |
-
/**
|
313 |
-
* Freemius hooks (actions & filters) tags structure:
|
314 |
-
*
|
315 |
-
* fs_{filter/action_name}_{plugin_slug}
|
316 |
-
*
|
317 |
-
* --------------------------------------------------------
|
318 |
-
*
|
319 |
-
* Usage with WordPress' add_action() / add_filter():
|
320 |
-
*
|
321 |
-
* add_action('fs_{filter/action_name}_{plugin_slug}', $callable);
|
322 |
-
*
|
323 |
-
* --------------------------------------------------------
|
324 |
-
*
|
325 |
-
* Usage with Freemius' instance add_action() / add_filter():
|
326 |
-
*
|
327 |
-
* // No need to add 'fs_' prefix nor '_{plugin_slug}' suffix.
|
328 |
-
* my_freemius()->add_action('{action_name}', $callable);
|
329 |
-
*
|
330 |
-
* --------------------------------------------------------
|
331 |
-
*
|
332 |
-
* Freemius filters collection:
|
333 |
-
*
|
334 |
-
* fs_connect_url_{plugin_slug}
|
335 |
-
* fs_trial_promotion_message_{plugin_slug}
|
336 |
-
* fs_is_long_term_user_{plugin_slug}
|
337 |
-
* fs_uninstall_reasons_{plugin_slug}
|
338 |
-
* fs_is_plugin_update_{plugin_slug}
|
339 |
-
* fs_api_domains_{plugin_slug}
|
340 |
-
* fs_email_template_sections_{plugin_slug}
|
341 |
-
* fs_support_forum_submenu_{plugin_slug}
|
342 |
-
* fs_support_forum_url_{plugin_slug}
|
343 |
-
* fs_connect_message_{plugin_slug}
|
344 |
-
* fs_connect_message_on_update_{plugin_slug}
|
345 |
-
* fs_uninstall_confirmation_message_{plugin_slug}
|
346 |
-
* fs_pending_activation_message_{plugin_slug}
|
347 |
-
* fs_is_submenu_visible_{plugin_slug}
|
348 |
-
* fs_plugin_icon_{plugin_slug}
|
349 |
-
* fs_show_trial_{plugin_slug}
|
350 |
-
*
|
351 |
-
* --------------------------------------------------------
|
352 |
-
*
|
353 |
-
* Freemius actions collection:
|
354 |
-
*
|
355 |
-
* fs_after_license_loaded_{plugin_slug}
|
356 |
-
* fs_after_license_change_{plugin_slug}
|
357 |
-
* fs_after_plans_sync_{plugin_slug}
|
358 |
-
*
|
359 |
-
* fs_after_account_details_{plugin_slug}
|
360 |
-
* fs_after_account_user_sync_{plugin_slug}
|
361 |
-
* fs_after_account_plan_sync_{plugin_slug}
|
362 |
-
* fs_before_account_load_{plugin_slug}
|
363 |
-
* fs_after_account_connection_{plugin_slug}
|
364 |
-
* fs_account_property_edit_{plugin_slug}
|
365 |
-
* fs_account_email_verified_{plugin_slug}
|
366 |
-
* fs_account_page_load_before_departure_{plugin_slug}
|
367 |
-
* fs_before_account_delete_{plugin_slug}
|
368 |
-
* fs_after_account_delete_{plugin_slug}
|
369 |
-
*
|
370 |
-
* fs_sdk_version_update_{plugin_slug}
|
371 |
-
* fs_plugin_version_update_{plugin_slug}
|
372 |
-
*
|
373 |
-
* fs_initiated_{plugin_slug}
|
374 |
-
* fs_after_init_plugin_registered_{plugin_slug}
|
375 |
-
* fs_after_init_plugin_anonymous_{plugin_slug}
|
376 |
-
* fs_after_init_plugin_pending_activations_{plugin_slug}
|
377 |
-
* fs_after_init_addon_registered_{plugin_slug}
|
378 |
-
* fs_after_init_addon_anonymous_{plugin_slug}
|
379 |
-
* fs_after_init_addon_pending_activations_{plugin_slug}
|
380 |
-
*
|
381 |
-
* fs_after_premium_version_activation_{plugin_slug}
|
382 |
-
* fs_after_free_version_reactivation_{plugin_slug}
|
383 |
-
*
|
384 |
-
* fs_after_uninstall_{plugin_slug}
|
385 |
-
* fs_before_admin_menu_init_{plugin_slug}
|
386 |
-
*/
|
387 |
-
|
388 |
-
#endregion Hooks & Filters Collection --------------------------------------------------------------------
|
389 |
-
|
390 |
-
if ( ! class_exists( 'Freemius' ) ) {
|
391 |
-
|
392 |
-
if ( ! defined( 'WP_FS__SDK_VERSION' ) ) {
|
393 |
-
define( 'WP_FS__SDK_VERSION', $this_sdk_version );
|
394 |
-
}
|
395 |
-
|
396 |
-
$plugins_or_theme_dir_path = fs_normalize_path( trailingslashit( $is_theme ?
|
397 |
-
$themes_directory :
|
398 |
-
WP_PLUGIN_DIR ) );
|
399 |
-
|
400 |
-
if ( 0 === strpos( $file_path, $plugins_or_theme_dir_path ) ) {
|
401 |
-
// No symlinks
|
402 |
-
} else {
|
403 |
-
/**
|
404 |
-
* This logic finds the SDK symlink and set WP_FS__DIR to use it.
|
405 |
-
*
|
406 |
-
* @author Vova Feldman (@svovaf)
|
407 |
-
* @since 1.2.2.5
|
408 |
-
*/
|
409 |
-
$sdk_symlink = null;
|
410 |
-
|
411 |
-
// Try to load SDK's symlink from cache.
|
412 |
-
if ( isset( $fs_active_plugins->plugins[ $this_sdk_relative_path ] ) &&
|
413 |
-
is_object( $fs_active_plugins->plugins[ $this_sdk_relative_path ] ) &&
|
414 |
-
! empty( $fs_active_plugins->plugins[ $this_sdk_relative_path ]->sdk_symlink )
|
415 |
-
) {
|
416 |
-
$sdk_symlink = $fs_active_plugins->plugins[ $this_sdk_relative_path ]->sdk_symlink;
|
417 |
-
if ( 0 === strpos( $sdk_symlink, $plugins_or_theme_dir_path ) ) {
|
418 |
-
/**
|
419 |
-
* Make the symlink path relative.
|
420 |
-
*
|
421 |
-
* @author Leo Fajardo (@leorw)
|
422 |
-
*/
|
423 |
-
$sdk_symlink = substr( $sdk_symlink, strlen( $plugins_or_theme_dir_path ) );
|
424 |
-
|
425 |
-
$fs_active_plugins->plugins[ $this_sdk_relative_path ]->sdk_symlink = $sdk_symlink;
|
426 |
-
update_option( 'fs_active_plugins', $fs_active_plugins );
|
427 |
-
}
|
428 |
-
|
429 |
-
$realpath = realpath( $plugins_or_theme_dir_path . $sdk_symlink );
|
430 |
-
if ( ! is_string( $realpath ) || ! file_exists( $realpath ) ) {
|
431 |
-
$sdk_symlink = null;
|
432 |
-
}
|
433 |
-
}
|
434 |
-
|
435 |
-
if ( empty( $sdk_symlink ) ) // Has symlinks, therefore, we need to configure WP_FS__DIR based on the symlink.
|
436 |
-
{
|
437 |
-
$partial_path_right = basename( $file_path );
|
438 |
-
$partial_path_left = dirname( $file_path );
|
439 |
-
$realpath = realpath( $plugins_or_theme_dir_path . $partial_path_right );
|
440 |
-
|
441 |
-
while ( '/' !== $partial_path_left &&
|
442 |
-
( false === $realpath || $file_path !== fs_normalize_path( $realpath ) )
|
443 |
-
) {
|
444 |
-
$partial_path_right = trailingslashit( basename( $partial_path_left ) ) . $partial_path_right;
|
445 |
-
$partial_path_left_prev = $partial_path_left;
|
446 |
-
$partial_path_left = dirname( $partial_path_left_prev );
|
447 |
-
|
448 |
-
/**
|
449 |
-
* Avoid infinite loop if for example `$partial_path_left_prev` is `C:/`, in this case,
|
450 |
-
* `dirname( 'C:/' )` will return `C:/`.
|
451 |
-
*
|
452 |
-
* @author Leo Fajardo (@leorw)
|
453 |
-
*/
|
454 |
-
if ( $partial_path_left === $partial_path_left_prev ) {
|
455 |
-
$partial_path_left = '';
|
456 |
-
break;
|
457 |
-
}
|
458 |
-
|
459 |
-
$realpath = realpath( $plugins_or_theme_dir_path . $partial_path_right );
|
460 |
-
}
|
461 |
-
|
462 |
-
if ( ! empty( $partial_path_left ) && '/' !== $partial_path_left ) {
|
463 |
-
$sdk_symlink = fs_normalize_path( dirname( $partial_path_right ) );
|
464 |
-
|
465 |
-
// Cache value.
|
466 |
-
if ( isset( $fs_active_plugins->plugins[ $this_sdk_relative_path ] ) &&
|
467 |
-
is_object( $fs_active_plugins->plugins[ $this_sdk_relative_path ] )
|
468 |
-
) {
|
469 |
-
$fs_active_plugins->plugins[ $this_sdk_relative_path ]->sdk_symlink = $sdk_symlink;
|
470 |
-
update_option( 'fs_active_plugins', $fs_active_plugins );
|
471 |
-
}
|
472 |
-
}
|
473 |
-
}
|
474 |
-
|
475 |
-
if ( ! empty( $sdk_symlink ) ) {
|
476 |
-
// Set SDK dir to the symlink path.
|
477 |
-
define( 'WP_FS__DIR', $plugins_or_theme_dir_path . $sdk_symlink );
|
478 |
-
}
|
479 |
-
}
|
480 |
-
|
481 |
-
// Load SDK files.
|
482 |
-
require_once dirname( __FILE__ ) . '/require.php';
|
483 |
-
|
484 |
-
/**
|
485 |
-
* Quick shortcut to get Freemius for specified plugin.
|
486 |
-
* Used by various templates.
|
487 |
-
*
|
488 |
-
* @param number $module_id
|
489 |
-
*
|
490 |
-
* @return Freemius
|
491 |
-
*/
|
492 |
-
function freemius( $module_id ) {
|
493 |
-
return Freemius::instance( $module_id );
|
494 |
-
}
|
495 |
-
|
496 |
-
/**
|
497 |
-
* @param string $slug
|
498 |
-
* @param number $plugin_id
|
499 |
-
* @param string $public_key
|
500 |
-
* @param bool $is_live Is live or test plugin.
|
501 |
-
* @param bool $is_premium Hints freemius if running the premium plugin or not.
|
502 |
-
*
|
503 |
-
* @return Freemius
|
504 |
-
*
|
505 |
-
* @deprecated Please use fs_dynamic_init().
|
506 |
-
*/
|
507 |
-
function fs_init( $slug, $plugin_id, $public_key, $is_live = true, $is_premium = true ) {
|
508 |
-
$fs = Freemius::instance( $plugin_id, $slug, true );
|
509 |
-
$fs->init( $plugin_id, $public_key, $is_live, $is_premium );
|
510 |
-
|
511 |
-
return $fs;
|
512 |
-
}
|
513 |
-
|
514 |
-
/**
|
515 |
-
* @param array <string,string|bool|array> $module Plugin or Theme details.
|
516 |
-
*
|
517 |
-
* @return Freemius
|
518 |
-
* @throws Freemius_Exception
|
519 |
-
*/
|
520 |
-
function fs_dynamic_init( $module ) {
|
521 |
-
$fs = Freemius::instance( $module['id'], $module['slug'], true );
|
522 |
-
$fs->dynamic_init( $module );
|
523 |
-
|
524 |
-
return $fs;
|
525 |
-
}
|
526 |
-
|
527 |
-
function fs_dump_log() {
|
528 |
-
FS_Logger::dump();
|
529 |
-
}
|
530 |
-
}
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* @package Freemius
|
4 |
+
* @copyright Copyright (c) 2015, Freemius, Inc.
|
5 |
+
* @license https://www.gnu.org/licenses/gpl-3.0.html GNU General Public License Version 3
|
6 |
+
* @since 1.0.3
|
7 |
+
*/
|
8 |
+
|
9 |
+
if ( ! defined( 'ABSPATH' ) ) {
|
10 |
+
exit;
|
11 |
+
}
|
12 |
+
|
13 |
+
/**
|
14 |
+
* Freemius SDK Version.
|
15 |
+
*
|
16 |
+
* @var string
|
17 |
+
*/
|
18 |
+
$this_sdk_version = '2.4.5';
|
19 |
+
|
20 |
+
#region SDK Selection Logic --------------------------------------------------------------------
|
21 |
+
|
22 |
+
/**
|
23 |
+
* Special logic added on 1.1.6 to make sure that every Freemius powered plugin
|
24 |
+
* will ALWAYS be loaded with the newest SDK from the active Freemius powered plugins.
|
25 |
+
*
|
26 |
+
* Since Freemius SDK is backward compatible, this will make sure that all Freemius powered
|
27 |
+
* plugins will run correctly.
|
28 |
+
*
|
29 |
+
* @since 1.1.6
|
30 |
+
*/
|
31 |
+
|
32 |
+
global $fs_active_plugins;
|
33 |
+
|
34 |
+
if ( ! function_exists( 'fs_find_caller_plugin_file' ) ) {
|
35 |
+
// Require SDK essentials.
|
36 |
+
require_once dirname( __FILE__ ) . '/includes/fs-essential-functions.php';
|
37 |
+
}
|
38 |
+
|
39 |
+
/**
|
40 |
+
* This complex logic fixes symlink issues (e.g. with Vargant). The logic assumes
|
41 |
+
* that if it's a file from an SDK running in a theme, the location of the SDK
|
42 |
+
* is in the main theme's folder.
|
43 |
+
*
|
44 |
+
* @author Vova Feldman (@svovaf)
|
45 |
+
* @since 1.2.2.6
|
46 |
+
*/
|
47 |
+
$file_path = fs_normalize_path( __FILE__ );
|
48 |
+
$fs_root_path = dirname( $file_path );
|
49 |
+
/**
|
50 |
+
* Get the themes directory where the active theme is located (not passing the stylesheet will make WordPress
|
51 |
+
* assume that the themes directory is inside `wp-content`.
|
52 |
+
*
|
53 |
+
* @author Leo Fajardo (@leorw)
|
54 |
+
* @since 2.2.3
|
55 |
+
*/
|
56 |
+
$themes_directory = get_theme_root( get_stylesheet() );
|
57 |
+
$themes_directory_name = basename( $themes_directory );
|
58 |
+
$theme_candidate_basename = basename( dirname( $fs_root_path ) ) . '/' . basename( $fs_root_path );
|
59 |
+
|
60 |
+
if ( $file_path == fs_normalize_path( realpath( trailingslashit( $themes_directory ) . $theme_candidate_basename . '/' . basename( $file_path ) ) )
|
61 |
+
) {
|
62 |
+
$this_sdk_relative_path = '../' . $themes_directory_name . '/' . $theme_candidate_basename;
|
63 |
+
$is_theme = true;
|
64 |
+
} else {
|
65 |
+
$this_sdk_relative_path = plugin_basename( $fs_root_path );
|
66 |
+
$is_theme = false;
|
67 |
+
}
|
68 |
+
|
69 |
+
if ( ! isset( $fs_active_plugins ) ) {
|
70 |
+
// Load all Freemius powered active plugins.
|
71 |
+
$fs_active_plugins = get_option( 'fs_active_plugins', new stdClass() );
|
72 |
+
|
73 |
+
if ( ! isset( $fs_active_plugins->plugins ) ) {
|
74 |
+
$fs_active_plugins->plugins = array();
|
75 |
+
}
|
76 |
+
}
|
77 |
+
|
78 |
+
if ( empty( $fs_active_plugins->abspath ) ) {
|
79 |
+
/**
|
80 |
+
* Store the WP install absolute path reference to identify environment change
|
81 |
+
* while replicating the storage.
|
82 |
+
*
|
83 |
+
* @author Vova Feldman (@svovaf)
|
84 |
+
* @since 1.2.1.7
|
85 |
+
*/
|
86 |
+
$fs_active_plugins->abspath = ABSPATH;
|
87 |
+
} else {
|
88 |
+
if ( ABSPATH !== $fs_active_plugins->abspath ) {
|
89 |
+
/**
|
90 |
+
* WordPress path has changed, cleanup the SDK references cache.
|
91 |
+
* This resolves issues triggered when spinning a staging environments
|
92 |
+
* while replicating the database.
|
93 |
+
*
|
94 |
+
* @author Vova Feldman (@svovaf)
|
95 |
+
* @since 1.2.1.7
|
96 |
+
*/
|
97 |
+
$fs_active_plugins->abspath = ABSPATH;
|
98 |
+
$fs_active_plugins->plugins = array();
|
99 |
+
unset( $fs_active_plugins->newest );
|
100 |
+
} else {
|
101 |
+
/**
|
102 |
+
* Make sure SDK references are still valid. This resolves
|
103 |
+
* issues when users hard delete modules via FTP.
|
104 |
+
*
|
105 |
+
* @author Vova Feldman (@svovaf)
|
106 |
+
* @since 1.2.1.7
|
107 |
+
*/
|
108 |
+
$has_changes = false;
|
109 |
+
foreach ( $fs_active_plugins->plugins as $sdk_path => $data ) {
|
110 |
+
if ( ! file_exists( ( isset( $data->type ) && 'theme' === $data->type ? $themes_directory : WP_PLUGIN_DIR ) . '/' . $sdk_path ) ) {
|
111 |
+
unset( $fs_active_plugins->plugins[ $sdk_path ] );
|
112 |
+
|
113 |
+
if (
|
114 |
+
! empty( $fs_active_plugins->newest ) &&
|
115 |
+
$sdk_path === $fs_active_plugins->newest->sdk_path
|
116 |
+
) {
|
117 |
+
unset( $fs_active_plugins->newest );
|
118 |
+
}
|
119 |
+
|
120 |
+
$has_changes = true;
|
121 |
+
}
|
122 |
+
}
|
123 |
+
|
124 |
+
if ( $has_changes ) {
|
125 |
+
if ( empty( $fs_active_plugins->plugins ) ) {
|
126 |
+
unset( $fs_active_plugins->newest );
|
127 |
+
}
|
128 |
+
|
129 |
+
update_option( 'fs_active_plugins', $fs_active_plugins );
|
130 |
+
}
|
131 |
+
}
|
132 |
+
}
|
133 |
+
|
134 |
+
if ( ! function_exists( 'fs_find_direct_caller_plugin_file' ) ) {
|
135 |
+
require_once dirname( __FILE__ ) . '/includes/supplements/fs-essential-functions-1.1.7.1.php';
|
136 |
+
}
|
137 |
+
|
138 |
+
if ( ! function_exists( 'fs_get_plugins' ) ) {
|
139 |
+
require_once dirname( __FILE__ ) . '/includes/supplements/fs-essential-functions-2.2.1.php';
|
140 |
+
}
|
141 |
+
|
142 |
+
// Update current SDK info based on the SDK path.
|
143 |
+
if ( ! isset( $fs_active_plugins->plugins[ $this_sdk_relative_path ] ) ||
|
144 |
+
$this_sdk_version != $fs_active_plugins->plugins[ $this_sdk_relative_path ]->version
|
145 |
+
) {
|
146 |
+
if ( $is_theme ) {
|
147 |
+
$plugin_path = basename( dirname( $this_sdk_relative_path ) );
|
148 |
+
} else {
|
149 |
+
$plugin_path = plugin_basename( fs_find_direct_caller_plugin_file( $file_path ) );
|
150 |
+
}
|
151 |
+
|
152 |
+
$fs_active_plugins->plugins[ $this_sdk_relative_path ] = (object) array(
|
153 |
+
'version' => $this_sdk_version,
|
154 |
+
'type' => ( $is_theme ? 'theme' : 'plugin' ),
|
155 |
+
'timestamp' => time(),
|
156 |
+
'plugin_path' => $plugin_path,
|
157 |
+
);
|
158 |
+
}
|
159 |
+
|
160 |
+
$is_current_sdk_newest = isset( $fs_active_plugins->newest ) && ( $this_sdk_relative_path == $fs_active_plugins->newest->sdk_path );
|
161 |
+
|
162 |
+
if ( ! isset( $fs_active_plugins->newest ) ) {
|
163 |
+
/**
|
164 |
+
* This will be executed only once, for the first time a Freemius powered plugin is activated.
|
165 |
+
*/
|
166 |
+
fs_update_sdk_newest_version( $this_sdk_relative_path, $fs_active_plugins->plugins[ $this_sdk_relative_path ]->plugin_path );
|
167 |
+
|
168 |
+
$is_current_sdk_newest = true;
|
169 |
+
} else if ( version_compare( $fs_active_plugins->newest->version, $this_sdk_version, '<' ) ) {
|
170 |
+
/**
|
171 |
+
* Current SDK is newer than the newest stored SDK.
|
172 |
+
*/
|
173 |
+
fs_update_sdk_newest_version( $this_sdk_relative_path, $fs_active_plugins->plugins[ $this_sdk_relative_path ]->plugin_path );
|
174 |
+
|
175 |
+
if ( class_exists( 'Freemius' ) ) {
|
176 |
+
// Older SDK version was already loaded.
|
177 |
+
|
178 |
+
if ( ! $fs_active_plugins->newest->in_activation ) {
|
179 |
+
// Re-order plugins to load this plugin first.
|
180 |
+
fs_newest_sdk_plugin_first();
|
181 |
+
}
|
182 |
+
|
183 |
+
// Refresh page.
|
184 |
+
fs_redirect( $_SERVER['REQUEST_URI'] );
|
185 |
+
}
|
186 |
+
} else {
|
187 |
+
if ( ! function_exists( 'get_plugins' ) ) {
|
188 |
+
require_once ABSPATH . 'wp-admin/includes/plugin.php';
|
189 |
+
}
|
190 |
+
|
191 |
+
$fs_newest_sdk = $fs_active_plugins->newest;
|
192 |
+
$fs_newest_sdk = $fs_active_plugins->plugins[ $fs_newest_sdk->sdk_path ];
|
193 |
+
|
194 |
+
$is_newest_sdk_type_theme = ( isset( $fs_newest_sdk->type ) && 'theme' === $fs_newest_sdk->type );
|
195 |
+
|
196 |
+
if ( ! $is_newest_sdk_type_theme ) {
|
197 |
+
$is_newest_sdk_plugin_active = is_plugin_active( $fs_newest_sdk->plugin_path );
|
198 |
+
} else {
|
199 |
+
$current_theme = wp_get_theme();
|
200 |
+
$is_newest_sdk_plugin_active = ( $current_theme->stylesheet === $fs_newest_sdk->plugin_path );
|
201 |
+
|
202 |
+
$current_theme_parent = $current_theme->parent();
|
203 |
+
|
204 |
+
/**
|
205 |
+
* If the current theme is a child of the theme that has the newest SDK, this prevents a redirects loop
|
206 |
+
* from happening by keeping the SDK info stored in the `fs_active_plugins` option.
|
207 |
+
*/
|
208 |
+
if ( ! $is_newest_sdk_plugin_active && $current_theme_parent instanceof WP_Theme ) {
|
209 |
+
$is_newest_sdk_plugin_active = ( $fs_newest_sdk->plugin_path === $current_theme_parent->stylesheet );
|
210 |
+
}
|
211 |
+
}
|
212 |
+
|
213 |
+
if ( $is_current_sdk_newest &&
|
214 |
+
! $is_newest_sdk_plugin_active &&
|
215 |
+
! $fs_active_plugins->newest->in_activation
|
216 |
+
) {
|
217 |
+
// If current SDK is the newest and the plugin is NOT active, it means
|
218 |
+
// that the current plugin in activation mode.
|
219 |
+
$fs_active_plugins->newest->in_activation = true;
|
220 |
+
update_option( 'fs_active_plugins', $fs_active_plugins );
|
221 |
+
}
|
222 |
+
|
223 |
+
if ( ! $is_theme ) {
|
224 |
+
$sdk_starter_path = fs_normalize_path( WP_PLUGIN_DIR . '/' . $this_sdk_relative_path . '/start.php' );
|
225 |
+
} else {
|
226 |
+
$sdk_starter_path = fs_normalize_path(
|
227 |
+
$themes_directory
|
228 |
+
. '/'
|
229 |
+
. str_replace( "../{$themes_directory_name}/", '', $this_sdk_relative_path )
|
230 |
+
. '/start.php' );
|
231 |
+
}
|
232 |
+
|
233 |
+
$is_newest_sdk_path_valid = ( $is_newest_sdk_plugin_active || $fs_active_plugins->newest->in_activation ) && file_exists( $sdk_starter_path );
|
234 |
+
|
235 |
+
if ( ! $is_newest_sdk_path_valid && ! $is_current_sdk_newest ) {
|
236 |
+
// Plugin with newest SDK is no longer active, or SDK was moved to a different location.
|
237 |
+
unset( $fs_active_plugins->plugins[ $fs_active_plugins->newest->sdk_path ] );
|
238 |
+
}
|
239 |
+
|
240 |
+
if ( ! ( $is_newest_sdk_plugin_active || $fs_active_plugins->newest->in_activation ) ||
|
241 |
+
! $is_newest_sdk_path_valid ||
|
242 |
+
// Is newest SDK downgraded.
|
243 |
+
( $this_sdk_relative_path == $fs_active_plugins->newest->sdk_path &&
|
244 |
+
version_compare( $fs_active_plugins->newest->version, $this_sdk_version, '>' ) )
|
245 |
+
) {
|
246 |
+
/**
|
247 |
+
* Plugin with newest SDK is no longer active.
|
248 |
+
* OR
|
249 |
+
* The newest SDK was in the current plugin. BUT, seems like the version of
|
250 |
+
* the SDK was downgraded to a lower SDK.
|
251 |
+
*/
|
252 |
+
// Find the active plugin with the newest SDK version and update the newest reference.
|
253 |
+
fs_fallback_to_newest_active_sdk();
|
254 |
+
} else {
|
255 |
+
if ( $is_newest_sdk_plugin_active &&
|
256 |
+
$this_sdk_relative_path == $fs_active_plugins->newest->sdk_path &&
|
257 |
+
( $fs_active_plugins->newest->in_activation ||
|
258 |
+
( class_exists( 'Freemius' ) && ( ! defined( 'WP_FS__SDK_VERSION' ) || version_compare( WP_FS__SDK_VERSION, $this_sdk_version, '<' ) ) )
|
259 |
+
)
|
260 |
+
|
261 |
+
) {
|
262 |
+
if ( $fs_active_plugins->newest->in_activation && ! $is_newest_sdk_type_theme ) {
|
263 |
+
// Plugin no more in activation.
|
264 |
+
$fs_active_plugins->newest->in_activation = false;
|
265 |
+
update_option( 'fs_active_plugins', $fs_active_plugins );
|
266 |
+
}
|
267 |
+
|
268 |
+
// Reorder plugins to load plugin with newest SDK first.
|
269 |
+
if ( fs_newest_sdk_plugin_first() ) {
|
270 |
+
// Refresh page after re-order to make sure activated plugin loads newest SDK.
|
271 |
+
if ( class_exists( 'Freemius' ) ) {
|
272 |
+
fs_redirect( $_SERVER['REQUEST_URI'] );
|
273 |
+
}
|
274 |
+
}
|
275 |
+
}
|
276 |
+
}
|
277 |
+
}
|
278 |
+
|
279 |
+
if ( class_exists( 'Freemius' ) ) {
|
280 |
+
// SDK was already loaded.
|
281 |
+
return;
|
282 |
+
}
|
283 |
+
|
284 |
+
if ( version_compare( $this_sdk_version, $fs_active_plugins->newest->version, '<' ) ) {
|
285 |
+
$newest_sdk = $fs_active_plugins->plugins[ $fs_active_plugins->newest->sdk_path ];
|
286 |
+
|
287 |
+
$plugins_or_theme_dir_path = ( ! isset( $newest_sdk->type ) || 'theme' !== $newest_sdk->type ) ?
|
288 |
+
WP_PLUGIN_DIR :
|
289 |
+
$themes_directory;
|
290 |
+
|
291 |
+
$newest_sdk_starter = fs_normalize_path(
|
292 |
+
$plugins_or_theme_dir_path
|
293 |
+
. '/'
|
294 |
+
. str_replace( "../{$themes_directory_name}/", '', $fs_active_plugins->newest->sdk_path )
|
295 |
+
. '/start.php' );
|
296 |
+
|
297 |
+
if ( file_exists( $newest_sdk_starter ) ) {
|
298 |
+
// Reorder plugins to load plugin with newest SDK first.
|
299 |
+
fs_newest_sdk_plugin_first();
|
300 |
+
|
301 |
+
// There's a newer SDK version, load it instead of the current one!
|
302 |
+
require_once $newest_sdk_starter;
|
303 |
+
|
304 |
+
return;
|
305 |
+
}
|
306 |
+
}
|
307 |
+
|
308 |
+
#endregion SDK Selection Logic --------------------------------------------------------------------
|
309 |
+
|
310 |
+
#region Hooks & Filters Collection --------------------------------------------------------------------
|
311 |
+
|
312 |
+
/**
|
313 |
+
* Freemius hooks (actions & filters) tags structure:
|
314 |
+
*
|
315 |
+
* fs_{filter/action_name}_{plugin_slug}
|
316 |
+
*
|
317 |
+
* --------------------------------------------------------
|
318 |
+
*
|
319 |
+
* Usage with WordPress' add_action() / add_filter():
|
320 |
+
*
|
321 |
+
* add_action('fs_{filter/action_name}_{plugin_slug}', $callable);
|
322 |
+
*
|
323 |
+
* --------------------------------------------------------
|
324 |
+
*
|
325 |
+
* Usage with Freemius' instance add_action() / add_filter():
|
326 |
+
*
|
327 |
+
* // No need to add 'fs_' prefix nor '_{plugin_slug}' suffix.
|
328 |
+
* my_freemius()->add_action('{action_name}', $callable);
|
329 |
+
*
|
330 |
+
* --------------------------------------------------------
|
331 |
+
*
|
332 |
+
* Freemius filters collection:
|
333 |
+
*
|
334 |
+
* fs_connect_url_{plugin_slug}
|
335 |
+
* fs_trial_promotion_message_{plugin_slug}
|
336 |
+
* fs_is_long_term_user_{plugin_slug}
|
337 |
+
* fs_uninstall_reasons_{plugin_slug}
|
338 |
+
* fs_is_plugin_update_{plugin_slug}
|
339 |
+
* fs_api_domains_{plugin_slug}
|
340 |
+
* fs_email_template_sections_{plugin_slug}
|
341 |
+
* fs_support_forum_submenu_{plugin_slug}
|
342 |
+
* fs_support_forum_url_{plugin_slug}
|
343 |
+
* fs_connect_message_{plugin_slug}
|
344 |
+
* fs_connect_message_on_update_{plugin_slug}
|
345 |
+
* fs_uninstall_confirmation_message_{plugin_slug}
|
346 |
+
* fs_pending_activation_message_{plugin_slug}
|
347 |
+
* fs_is_submenu_visible_{plugin_slug}
|
348 |
+
* fs_plugin_icon_{plugin_slug}
|
349 |
+
* fs_show_trial_{plugin_slug}
|
350 |
+
*
|
351 |
+
* --------------------------------------------------------
|
352 |
+
*
|
353 |
+
* Freemius actions collection:
|
354 |
+
*
|
355 |
+
* fs_after_license_loaded_{plugin_slug}
|
356 |
+
* fs_after_license_change_{plugin_slug}
|
357 |
+
* fs_after_plans_sync_{plugin_slug}
|
358 |
+
*
|
359 |
+
* fs_after_account_details_{plugin_slug}
|
360 |
+
* fs_after_account_user_sync_{plugin_slug}
|
361 |
+
* fs_after_account_plan_sync_{plugin_slug}
|
362 |
+
* fs_before_account_load_{plugin_slug}
|
363 |
+
* fs_after_account_connection_{plugin_slug}
|
364 |
+
* fs_account_property_edit_{plugin_slug}
|
365 |
+
* fs_account_email_verified_{plugin_slug}
|
366 |
+
* fs_account_page_load_before_departure_{plugin_slug}
|
367 |
+
* fs_before_account_delete_{plugin_slug}
|
368 |
+
* fs_after_account_delete_{plugin_slug}
|
369 |
+
*
|
370 |
+
* fs_sdk_version_update_{plugin_slug}
|
371 |
+
* fs_plugin_version_update_{plugin_slug}
|
372 |
+
*
|
373 |
+
* fs_initiated_{plugin_slug}
|
374 |
+
* fs_after_init_plugin_registered_{plugin_slug}
|
375 |
+
* fs_after_init_plugin_anonymous_{plugin_slug}
|
376 |
+
* fs_after_init_plugin_pending_activations_{plugin_slug}
|
377 |
+
* fs_after_init_addon_registered_{plugin_slug}
|
378 |
+
* fs_after_init_addon_anonymous_{plugin_slug}
|
379 |
+
* fs_after_init_addon_pending_activations_{plugin_slug}
|
380 |
+
*
|
381 |
+
* fs_after_premium_version_activation_{plugin_slug}
|
382 |
+
* fs_after_free_version_reactivation_{plugin_slug}
|
383 |
+
*
|
384 |
+
* fs_after_uninstall_{plugin_slug}
|
385 |
+
* fs_before_admin_menu_init_{plugin_slug}
|
386 |
+
*/
|
387 |
+
|
388 |
+
#endregion Hooks & Filters Collection --------------------------------------------------------------------
|
389 |
+
|
390 |
+
if ( ! class_exists( 'Freemius' ) ) {
|
391 |
+
|
392 |
+
if ( ! defined( 'WP_FS__SDK_VERSION' ) ) {
|
393 |
+
define( 'WP_FS__SDK_VERSION', $this_sdk_version );
|
394 |
+
}
|
395 |
+
|
396 |
+
$plugins_or_theme_dir_path = fs_normalize_path( trailingslashit( $is_theme ?
|
397 |
+
$themes_directory :
|
398 |
+
WP_PLUGIN_DIR ) );
|
399 |
+
|
400 |
+
if ( 0 === strpos( $file_path, $plugins_or_theme_dir_path ) ) {
|
401 |
+
// No symlinks
|
402 |
+
} else {
|
403 |
+
/**
|
404 |
+
* This logic finds the SDK symlink and set WP_FS__DIR to use it.
|
405 |
+
*
|
406 |
+
* @author Vova Feldman (@svovaf)
|
407 |
+
* @since 1.2.2.5
|
408 |
+
*/
|
409 |
+
$sdk_symlink = null;
|
410 |
+
|
411 |
+
// Try to load SDK's symlink from cache.
|
412 |
+
if ( isset( $fs_active_plugins->plugins[ $this_sdk_relative_path ] ) &&
|
413 |
+
is_object( $fs_active_plugins->plugins[ $this_sdk_relative_path ] ) &&
|
414 |
+
! empty( $fs_active_plugins->plugins[ $this_sdk_relative_path ]->sdk_symlink )
|
415 |
+
) {
|
416 |
+
$sdk_symlink = $fs_active_plugins->plugins[ $this_sdk_relative_path ]->sdk_symlink;
|
417 |
+
if ( 0 === strpos( $sdk_symlink, $plugins_or_theme_dir_path ) ) {
|
418 |
+
/**
|
419 |
+
* Make the symlink path relative.
|
420 |
+
*
|
421 |
+
* @author Leo Fajardo (@leorw)
|
422 |
+
*/
|
423 |
+
$sdk_symlink = substr( $sdk_symlink, strlen( $plugins_or_theme_dir_path ) );
|
424 |
+
|
425 |
+
$fs_active_plugins->plugins[ $this_sdk_relative_path ]->sdk_symlink = $sdk_symlink;
|
426 |
+
update_option( 'fs_active_plugins', $fs_active_plugins );
|
427 |
+
}
|
428 |
+
|
429 |
+
$realpath = realpath( $plugins_or_theme_dir_path . $sdk_symlink );
|
430 |
+
if ( ! is_string( $realpath ) || ! file_exists( $realpath ) ) {
|
431 |
+
$sdk_symlink = null;
|
432 |
+
}
|
433 |
+
}
|
434 |
+
|
435 |
+
if ( empty( $sdk_symlink ) ) // Has symlinks, therefore, we need to configure WP_FS__DIR based on the symlink.
|
436 |
+
{
|
437 |
+
$partial_path_right = basename( $file_path );
|
438 |
+
$partial_path_left = dirname( $file_path );
|
439 |
+
$realpath = realpath( $plugins_or_theme_dir_path . $partial_path_right );
|
440 |
+
|
441 |
+
while ( '/' !== $partial_path_left &&
|
442 |
+
( false === $realpath || $file_path !== fs_normalize_path( $realpath ) )
|
443 |
+
) {
|
444 |
+
$partial_path_right = trailingslashit( basename( $partial_path_left ) ) . $partial_path_right;
|
445 |
+
$partial_path_left_prev = $partial_path_left;
|
446 |
+
$partial_path_left = dirname( $partial_path_left_prev );
|
447 |
+
|
448 |
+
/**
|
449 |
+
* Avoid infinite loop if for example `$partial_path_left_prev` is `C:/`, in this case,
|
450 |
+
* `dirname( 'C:/' )` will return `C:/`.
|
451 |
+
*
|
452 |
+
* @author Leo Fajardo (@leorw)
|
453 |
+
*/
|
454 |
+
if ( $partial_path_left === $partial_path_left_prev ) {
|
455 |
+
$partial_path_left = '';
|
456 |
+
break;
|
457 |
+
}
|
458 |
+
|
459 |
+
$realpath = realpath( $plugins_or_theme_dir_path . $partial_path_right );
|
460 |
+
}
|
461 |
+
|
462 |
+
if ( ! empty( $partial_path_left ) && '/' !== $partial_path_left ) {
|
463 |
+
$sdk_symlink = fs_normalize_path( dirname( $partial_path_right ) );
|
464 |
+
|
465 |
+
// Cache value.
|
466 |
+
if ( isset( $fs_active_plugins->plugins[ $this_sdk_relative_path ] ) &&
|
467 |
+
is_object( $fs_active_plugins->plugins[ $this_sdk_relative_path ] )
|
468 |
+
) {
|
469 |
+
$fs_active_plugins->plugins[ $this_sdk_relative_path ]->sdk_symlink = $sdk_symlink;
|
470 |
+
update_option( 'fs_active_plugins', $fs_active_plugins );
|
471 |
+
}
|
472 |
+
}
|
473 |
+
}
|
474 |
+
|
475 |
+
if ( ! empty( $sdk_symlink ) ) {
|
476 |
+
// Set SDK dir to the symlink path.
|
477 |
+
define( 'WP_FS__DIR', $plugins_or_theme_dir_path . $sdk_symlink );
|
478 |
+
}
|
479 |
+
}
|
480 |
+
|
481 |
+
// Load SDK files.
|
482 |
+
require_once dirname( __FILE__ ) . '/require.php';
|
483 |
+
|
484 |
+
/**
|
485 |
+
* Quick shortcut to get Freemius for specified plugin.
|
486 |
+
* Used by various templates.
|
487 |
+
*
|
488 |
+
* @param number $module_id
|
489 |
+
*
|
490 |
+
* @return Freemius
|
491 |
+
*/
|
492 |
+
function freemius( $module_id ) {
|
493 |
+
return Freemius::instance( $module_id );
|
494 |
+
}
|
495 |
+
|
496 |
+
/**
|
497 |
+
* @param string $slug
|
498 |
+
* @param number $plugin_id
|
499 |
+
* @param string $public_key
|
500 |
+
* @param bool $is_live Is live or test plugin.
|
501 |
+
* @param bool $is_premium Hints freemius if running the premium plugin or not.
|
502 |
+
*
|
503 |
+
* @return Freemius
|
504 |
+
*
|
505 |
+
* @deprecated Please use fs_dynamic_init().
|
506 |
+
*/
|
507 |
+
function fs_init( $slug, $plugin_id, $public_key, $is_live = true, $is_premium = true ) {
|
508 |
+
$fs = Freemius::instance( $plugin_id, $slug, true );
|
509 |
+
$fs->init( $plugin_id, $public_key, $is_live, $is_premium );
|
510 |
+
|
511 |
+
return $fs;
|
512 |
+
}
|
513 |
+
|
514 |
+
/**
|
515 |
+
* @param array <string,string|bool|array> $module Plugin or Theme details.
|
516 |
+
*
|
517 |
+
* @return Freemius
|
518 |
+
* @throws Freemius_Exception
|
519 |
+
*/
|
520 |
+
function fs_dynamic_init( $module ) {
|
521 |
+
$fs = Freemius::instance( $module['id'], $module['slug'], true );
|
522 |
+
$fs->dynamic_init( $module );
|
523 |
+
|
524 |
+
return $fs;
|
525 |
+
}
|
526 |
+
|
527 |
+
function fs_dump_log() {
|
528 |
+
FS_Logger::dump();
|
529 |
+
}
|
530 |
+
}
|
includes/admin/class-admin.php
CHANGED
@@ -30,6 +30,7 @@ if ( ! class_exists( 'FooGallery_Admin' ) ) {
|
|
30 |
new FooGallery_Admin_Extensions();
|
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.
|
30 |
new FooGallery_Admin_Extensions();
|
31 |
new FooGallery_Attachment_Fields();
|
32 |
new FooGallery_Admin_Notices();
|
33 |
+
new FooGallery_Admin_Gallery_Attachment_Modal();
|
34 |
$foogallery_admin_datasource_instance = new FooGallery_Admin_Gallery_Datasources();
|
35 |
|
36 |
// include PRO promotion.
|
includes/admin/class-gallery-attachment-modal.php
ADDED
@@ -0,0 +1,821 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/*
|
3 |
+
* FooGallery Admin Gallery Attachment Modal class
|
4 |
+
*/
|
5 |
+
|
6 |
+
if ( ! class_exists( 'FooGallery_Admin_Gallery_Attachment_Modal' ) ) {
|
7 |
+
|
8 |
+
class FooGallery_Admin_Gallery_Attachment_Modal {
|
9 |
+
|
10 |
+
/**
|
11 |
+
* Primary class constructor.
|
12 |
+
*/
|
13 |
+
public function __construct() {
|
14 |
+
add_action( 'admin_footer', array( $this, 'foogallery_image_editor_modal' ) );
|
15 |
+
|
16 |
+
add_action( 'wp_ajax_foogallery_attachment_modal_open', array( $this, 'ajax_open_modal' ) );
|
17 |
+
add_action( 'wp_ajax_foogallery_attachment_modal_save', array( $this, 'ajax_save_modal' ) );
|
18 |
+
|
19 |
+
add_action( 'foogallery_attachment_modal_tabs_view', array( $this, 'display_tab_main' ), 10 );
|
20 |
+
add_action( 'foogallery_attachment_modal_tabs_view', array( $this, 'display_tab_taxonomies' ), 20 );
|
21 |
+
add_action( 'foogallery_attachment_modal_tabs_view', array( $this, 'display_tab_thumbnails' ), 30 );
|
22 |
+
add_action( 'foogallery_attachment_modal_tabs_view', array( $this, 'display_tab_more' ), 200 );
|
23 |
+
|
24 |
+
add_action( 'foogallery_attachment_modal_tab_content', array( $this, 'display_tab_content_main' ), 10, 1 );
|
25 |
+
add_action( 'foogallery_attachment_modal_tab_content', array( $this, 'display_tab_content_taxonomies' ), 20, 1 );
|
26 |
+
add_action( 'foogallery_attachment_modal_tab_content', array( $this, 'display_tab_content_thumbnails' ), 30, 1 );
|
27 |
+
add_action( 'foogallery_attachment_modal_tab_content', array( $this, 'display_tab_content_more' ), 60, 1 );
|
28 |
+
|
29 |
+
add_action( 'foogallery_attachment_modal_before_thumbnail', array( $this, 'display_attachment_info' ), 10, 1 );
|
30 |
+
|
31 |
+
add_filter( 'foogallery_attachment_modal_data', array( $this, 'foogallery_attachment_modal_data_main' ), 10, 4 );
|
32 |
+
add_filter( 'foogallery_attachment_modal_data', array( $this, 'foogallery_attachment_modal_data_taxonomies' ), 20, 4 );
|
33 |
+
add_filter( 'foogallery_attachment_modal_data', array( $this, 'foogallery_attachment_modal_data_thumbnails' ), 30, 4 );
|
34 |
+
add_filter( 'foogallery_attachment_modal_data', array( $this, 'foogallery_attachment_modal_data_more' ), 60, 4 );
|
35 |
+
add_filter( 'foogallery_attachment_modal_data', array( $this, 'foogallery_attachment_modal_data_info' ), 70, 4 );
|
36 |
+
|
37 |
+
add_action( 'foogallery_attachment_modal_after_tabs', array( $this, 'foogallery_img_modal_save_btn' ) );
|
38 |
+
|
39 |
+
add_action( 'foogallery_attachment_save_data', array( $this, 'foogallery_attachment_save_data_main' ), 10, 2 );
|
40 |
+
add_action( 'foogallery_attachment_save_data', array( $this, 'foogallery_attachment_save_data_taxonomies' ), 20, 2 );
|
41 |
+
add_action( 'foogallery_attachment_save_data', array( $this, 'foogallery_attachment_save_data_thumbnails' ), 30, 2 );
|
42 |
+
add_action( 'foogallery_attachment_save_data', array( $this, 'foogallery_attachment_save_data_more' ), 60, 2 );
|
43 |
+
}
|
44 |
+
|
45 |
+
/**
|
46 |
+
* Generate image edit modal on gallery creation
|
47 |
+
*/
|
48 |
+
public function ajax_open_modal() {
|
49 |
+
|
50 |
+
// Check for nonce security
|
51 |
+
if ( ! wp_verify_nonce( $_POST['nonce'], 'foogallery_attachment_modal_open' ) ) {
|
52 |
+
die ( 'Busted!');
|
53 |
+
}
|
54 |
+
|
55 |
+
$modal_data = $this->build_modal_data( $_POST );
|
56 |
+
|
57 |
+
ob_start() ?>
|
58 |
+
|
59 |
+
<div class="foogallery-image-edit-main" data-img_id="<?php echo $modal_data['img_id']; ?>" data-gallery_id="<?php echo $modal_data['gallery_id']; ?>">
|
60 |
+
<?php do_action( 'foogallery_attachment_modal_before_tab_container', $modal_data ); ?>
|
61 |
+
<div class="foogallery-image-edit-view">
|
62 |
+
<?php
|
63 |
+
|
64 |
+
do_action( 'foogallery_attachment_modal_before_thumbnail', $modal_data );
|
65 |
+
|
66 |
+
if ( $modal_data['image_attributes'] ) { ?>
|
67 |
+
<img src="<?php echo $modal_data['image_attributes'][0]; ?>" width="<?php echo $modal_data['image_attributes'][1]; ?>" height="<?php echo $modal_data['image_attributes'][2]; ?>" />
|
68 |
+
<?php } ?>
|
69 |
+
</div>
|
70 |
+
<div class="foogallery-image-edit-button">
|
71 |
+
<a target="_blank" href="<?php echo get_admin_url().'upload.php?item='.$modal_data['img_id'];?>&mode=edit" class="button"><?php _e('Edit Image', 'foogallery'); ?></a>
|
72 |
+
<a target="_blank" href="<?php echo $modal_data['img_path'];?>" class="button"><?php _e('Open Full Size Image', 'foogallery'); ?></a>
|
73 |
+
</div>
|
74 |
+
</div>
|
75 |
+
|
76 |
+
<div class="foogallery-image-edit-meta">
|
77 |
+
|
78 |
+
<?php do_action( 'foogallery_attachment_modal_before_tabs', $modal_data ); ?>
|
79 |
+
|
80 |
+
<div class="tabset">
|
81 |
+
<?php do_action( 'foogallery_attachment_modal_tabs_view', $modal_data ); ?>
|
82 |
+
</div>
|
83 |
+
<div class="tab-panels">
|
84 |
+
<form id="foogallery_attachment_modal_save_form" method="post" enctype="multipart/form-data">
|
85 |
+
<input type="hidden" name="action" value="foogallery_attachment_modal_save">
|
86 |
+
<input type="hidden" name="nonce" value="<?php echo $modal_data['nonce']; ?>">
|
87 |
+
<input type="hidden" name="img_id" value="<?php echo $modal_data['img_id']; ?>">
|
88 |
+
<?php do_action( 'foogallery_attachment_modal_tab_content', $modal_data ); ?>
|
89 |
+
</form>
|
90 |
+
</div>
|
91 |
+
|
92 |
+
<?php do_action( 'foogallery_attachment_modal_after_tabs', $modal_data ); ?>
|
93 |
+
|
94 |
+
</div>
|
95 |
+
<?php
|
96 |
+
|
97 |
+
do_action( 'foogallery_attachment_modal_after_tab_container', $modal_data );
|
98 |
+
|
99 |
+
wp_send_json( array(
|
100 |
+
'html' => ob_get_clean(),
|
101 |
+
'prev_slide' => $modal_data['prev_slide'],
|
102 |
+
'next_slide' => $modal_data['next_slide'],
|
103 |
+
'next_img_id' => $modal_data['next_img_id'],
|
104 |
+
'prev_img_id' => $modal_data['prev_img_id'],
|
105 |
+
'override_thumbnail' => $modal_data['foogallery_override_thumbnail'],
|
106 |
+
'current_tab' => $modal_data['current_tab']
|
107 |
+
) );
|
108 |
+
}
|
109 |
+
|
110 |
+
/**
|
111 |
+
* Admin modal wrapper for gallery image edit
|
112 |
+
*/
|
113 |
+
public function foogallery_image_editor_modal() {
|
114 |
+
global $post;
|
115 |
+
|
116 |
+
// Check if the gallery edit page is being shown.
|
117 |
+
$screen = get_current_screen();
|
118 |
+
if ( 'foogallery' !== $screen->id ) {
|
119 |
+
return;
|
120 |
+
}
|
121 |
+
|
122 |
+
$modal_style = foogallery_get_setting( 'advanced_attachment_modal' );
|
123 |
+
|
124 |
+
// Only show the attachment modal if the setting is turned on.
|
125 |
+
if ( 'on' !== $modal_style ) {
|
126 |
+
return;
|
127 |
+
}
|
128 |
+
|
129 |
+
?>
|
130 |
+
<div id="foogallery-image-edit-modal" style="display: none;"
|
131 |
+
data-nonce="<?php echo wp_create_nonce( 'foogallery_attachment_modal_open' ); ?>"
|
132 |
+
data-gallery_id="<?php echo $_GET['post']; ?>"
|
133 |
+
data-modal_style="<?php echo $modal_style; ?>">
|
134 |
+
<div class="media-modal wp-core-ui">
|
135 |
+
<div class="media-modal-content">
|
136 |
+
<div class="edit-attachment-frame mode-select hide-menu hide-router">
|
137 |
+
<div class="edit-media-header">
|
138 |
+
<button class="left dashicons"><span class="screen-reader-text"><?php _e( 'Edit previous attachment in the gallery', 'foogallery' ); ?></span></button>
|
139 |
+
<button class="right dashicons"><span class="screen-reader-text"><?php _e( 'Edit next attachment in the gallery', 'foogallery' ); ?></span></button>
|
140 |
+
<button type="button" class="media-modal-close"><span class="media-modal-icon"><span class="screen-reader-text"><?php _e('Close dialog', 'foogallery'); ?></span></span></button>
|
141 |
+
</div>
|
142 |
+
<div class="media-frame-title"><h1><?php _e('Edit Attachment Details', 'foogallery'); ?></h1></div>
|
143 |
+
<div class="media-frame-content">
|
144 |
+
<div class="attachment-details save-ready">
|
145 |
+
</div>
|
146 |
+
</div>
|
147 |
+
</div>
|
148 |
+
</div>
|
149 |
+
</div>
|
150 |
+
</div>
|
151 |
+
<?php }
|
152 |
+
|
153 |
+
|
154 |
+
|
155 |
+
/**
|
156 |
+
* Save modal form data to database
|
157 |
+
*/
|
158 |
+
public function ajax_save_modal() {
|
159 |
+
|
160 |
+
$foogallery = ( isset( $_POST['foogallery'] ) ? $_POST['foogallery'] : array() );
|
161 |
+
|
162 |
+
if ( !is_array( $foogallery ) || empty( $foogallery ) ) {
|
163 |
+
return;
|
164 |
+
}
|
165 |
+
|
166 |
+
// Check for nonce security
|
167 |
+
if ( ! wp_verify_nonce( $_POST['nonce'], 'foogallery-modal-nonce' ) ) {
|
168 |
+
die ( 'Busted!');
|
169 |
+
}
|
170 |
+
|
171 |
+
$img_id = intval( sanitize_text_field( $_POST['img_id'] ) );
|
172 |
+
|
173 |
+
if ( $img_id > 0 ) {
|
174 |
+
do_action( 'foogallery_attachment_save_data', $img_id, $foogallery );
|
175 |
+
}
|
176 |
+
|
177 |
+
wp_die();
|
178 |
+
}
|
179 |
+
|
180 |
+
/**
|
181 |
+
* Save main tab data content
|
182 |
+
*
|
183 |
+
* @param $img_id int attachment id to update data
|
184 |
+
*
|
185 |
+
* @param $foogallery array of form post data
|
186 |
+
*
|
187 |
+
*/
|
188 |
+
|
189 |
+
public function foogallery_attachment_save_data_main( $img_id, $foogallery ) {
|
190 |
+
|
191 |
+
if ( is_array( $foogallery ) && !empty( $foogallery ) ) {
|
192 |
+
|
193 |
+
$foogallery_post = array(
|
194 |
+
'ID' => $img_id
|
195 |
+
);
|
196 |
+
|
197 |
+
foreach( $foogallery as $key => $val ) {
|
198 |
+
|
199 |
+
if ( $key == 'title' ) {
|
200 |
+
$foogallery_post['post_title'] = $val;
|
201 |
+
}
|
202 |
+
if ( $key == 'caption' ) {
|
203 |
+
$foogallery_post['post_excerpt'] = $val;
|
204 |
+
}
|
205 |
+
if ( $key == 'description' ) {
|
206 |
+
$foogallery_post['post_content'] = $val;
|
207 |
+
}
|
208 |
+
|
209 |
+
// Update post meta values
|
210 |
+
if ( $key == 'alt-text' ) {
|
211 |
+
update_post_meta( $img_id, '_wp_attachment_image_alt', $val );
|
212 |
+
}
|
213 |
+
if ( $key == 'custom-url' ) {
|
214 |
+
update_post_meta( $img_id, '_foogallery_custom_url', $val );
|
215 |
+
}
|
216 |
+
if ( $key == 'custom-target' ) {
|
217 |
+
update_post_meta( $img_id, '_foogallery_custom_target', $val );
|
218 |
+
}
|
219 |
+
if ( $key == 'custom-class' ) {
|
220 |
+
update_post_meta( $img_id, '_foogallery_custom_class', $val );
|
221 |
+
}
|
222 |
+
}
|
223 |
+
|
224 |
+
if ( is_array( $foogallery_post ) && count( $foogallery_post ) > 1 ) {
|
225 |
+
// Update the post into the database
|
226 |
+
wp_update_post( $foogallery_post );
|
227 |
+
}
|
228 |
+
}
|
229 |
+
|
230 |
+
}
|
231 |
+
|
232 |
+
/**
|
233 |
+
* Save taxonomies tab data content
|
234 |
+
*
|
235 |
+
* @param $img_id int attachment id to update data
|
236 |
+
*
|
237 |
+
* @param $foogallery array of form post data
|
238 |
+
*
|
239 |
+
*/
|
240 |
+
|
241 |
+
public function foogallery_attachment_save_data_taxonomies( $img_id, $foogallery ) {
|
242 |
+
|
243 |
+
if ( is_array( $foogallery ) && !empty( $foogallery ) ) {
|
244 |
+
|
245 |
+
if ( !$this->attachments_have_taxonomies() ) {
|
246 |
+
return;
|
247 |
+
}
|
248 |
+
|
249 |
+
foreach( $foogallery as $key => $val ) {
|
250 |
+
if ( $key == 'tags' ) {
|
251 |
+
$tags = array();
|
252 |
+
$selected_tags = explode( ',', $val );
|
253 |
+
foreach ( $selected_tags as $tag ) {
|
254 |
+
$tags[] = (int) $tag;
|
255 |
+
}
|
256 |
+
wp_set_object_terms( $img_id, $tags, FOOGALLERY_ATTACHMENT_TAXONOMY_TAG, false );
|
257 |
+
}
|
258 |
+
if ( $key == 'taxonomies' ) {
|
259 |
+
$categories = array();
|
260 |
+
$selected_cats = explode( ',', $val );
|
261 |
+
foreach ( $selected_cats as $category ) {
|
262 |
+
$categories[] = (int) $category;
|
263 |
+
}
|
264 |
+
wp_set_object_terms( $img_id, $categories, FOOGALLERY_ATTACHMENT_TAXONOMY_CATEGORY, false );
|
265 |
+
}
|
266 |
+
}
|
267 |
+
}
|
268 |
+
|
269 |
+
}
|
270 |
+
|
271 |
+
/**
|
272 |
+
* Save thumbnails tab data content
|
273 |
+
*
|
274 |
+
* @param $img_id int attachment id to update data
|
275 |
+
*
|
276 |
+
* @param $foogallery array of form post data
|
277 |
+
*
|
278 |
+
*/
|
279 |
+
|
280 |
+
public function foogallery_attachment_save_data_thumbnails( $img_id, $foogallery ) {
|
281 |
+
|
282 |
+
if ( is_array( $foogallery ) && !empty( $foogallery ) ) {
|
283 |
+
|
284 |
+
foreach( $foogallery as $key => $val ) {
|
285 |
+
if ( $key == 'crop_pos' ) {
|
286 |
+
update_post_meta( $img_id, 'foogallery_crop_pos', $val );
|
287 |
+
}
|
288 |
+
if ( $key == 'override-thumbnail-id' ) {
|
289 |
+
update_post_meta( $img_id, 'foogallery_override_thumbnail', $val );
|
290 |
+
}
|
291 |
+
}
|
292 |
+
|
293 |
+
}
|
294 |
+
|
295 |
+
}
|
296 |
+
|
297 |
+
|
298 |
+
|
299 |
+
/**
|
300 |
+
* Save more tab data content
|
301 |
+
*
|
302 |
+
* @param $img_id int attachment id to update data
|
303 |
+
*
|
304 |
+
* @param $foogallery array of form post data
|
305 |
+
*
|
306 |
+
*/
|
307 |
+
|
308 |
+
public function foogallery_attachment_save_data_more( $img_id, $foogallery ) {
|
309 |
+
|
310 |
+
if ( is_array( $foogallery ) && !empty( $foogallery ) ) {
|
311 |
+
foreach( $foogallery as $key => $val ) {
|
312 |
+
if ( $key === 'data-width' ) {
|
313 |
+
update_post_meta( $img_id, '_data-width', $val );
|
314 |
+
}
|
315 |
+
else if ( $key === 'data-height' ) {
|
316 |
+
update_post_meta( $img_id, '_data-height', $val );
|
317 |
+
}
|
318 |
+
else if ( $key === 'panning' ) {
|
319 |
+
update_post_meta( $img_id, '_foobox_panning', $val );
|
320 |
+
}
|
321 |
+
else if ( $key === 'override_type' ) {
|
322 |
+
update_post_meta( $img_id, '_foogallery_override_type', $val );
|
323 |
+
}
|
324 |
+
}
|
325 |
+
}
|
326 |
+
}
|
327 |
+
|
328 |
+
/**
|
329 |
+
* Builds up the state used to populate the modal.
|
330 |
+
*
|
331 |
+
* @param $data array
|
332 |
+
* @return array
|
333 |
+
*/
|
334 |
+
private function build_modal_data( $data = array() ) {
|
335 |
+
|
336 |
+
$modal_data = array(
|
337 |
+
'img_id' => 0,
|
338 |
+
'gallery_id' => 0,
|
339 |
+
);
|
340 |
+
|
341 |
+
if ( is_array ( $data ) && isset( $data['img_id'] ) && isset( $data['gallery_id'] ) ) {
|
342 |
+
$modal_data['img_id'] = $attachment_id = intval( sanitize_text_field( $data['img_id'] ) );
|
343 |
+
$modal_data['gallery_id'] = $gallery_id = intval( sanitize_text_field( $data['gallery_id'] ) );
|
344 |
+
$modal_data['current_tab'] = isset( $data['current_tab'] ) ? sanitize_text_field( $data['current_tab'] ) : '';
|
345 |
+
$modal_data['nonce'] = wp_create_nonce( 'foogallery-modal-nonce' );
|
346 |
+
$modal_data = apply_filters( 'foogallery_attachment_modal_data', $modal_data, $data, $attachment_id, $gallery_id );
|
347 |
+
}
|
348 |
+
|
349 |
+
return $modal_data;
|
350 |
+
}
|
351 |
+
|
352 |
+
/**
|
353 |
+
* Image modal main tab data update
|
354 |
+
*/
|
355 |
+
public function foogallery_attachment_modal_data_main( $modal_data, $data, $attachment_id, $gallery_id ) {
|
356 |
+
if ( $attachment_id > 0 ) {
|
357 |
+
$attachment_post = get_post( $attachment_id );
|
358 |
+
|
359 |
+
if ( is_a( $attachment_post, 'WP_Post' ) ) {
|
360 |
+
$modal_data['file_url'] = get_attached_file( $attachment_id );
|
361 |
+
$modal_data['file_name'] = basename( $modal_data['file_url'] );
|
362 |
+
$modal_data['file_type'] = $attachment_post->post_mime_type;
|
363 |
+
$modal_data['author_id'] = intval( $attachment_post->post_author );
|
364 |
+
$modal_data['author_name'] = get_the_author_meta( 'display_name', $modal_data['author_id'] );
|
365 |
+
$modal_data['post_date'] = date('F d, Y', strtotime( $attachment_post->post_date ) );
|
366 |
+
$modal_data['img_title'] = $attachment_post->post_title;
|
367 |
+
$modal_data['caption'] = $attachment_post->post_excerpt;
|
368 |
+
$modal_data['description'] = $attachment_post->post_content;
|
369 |
+
$modal_data['image_alt'] = get_post_meta( $attachment_id, '_wp_attachment_image_alt', true );
|
370 |
+
$modal_data['meta'] = wp_get_attachment_metadata( $attachment_id );
|
371 |
+
|
372 |
+
// Get attachment file size.
|
373 |
+
$file_size = false;
|
374 |
+
if ( isset( $modal_data['meta']['filesize'] ) ) {
|
375 |
+
$file_size = $modal_data['meta']['filesize'];
|
376 |
+
} elseif ( file_exists( $modal_data['file_url'] ) ) {
|
377 |
+
$file_size = wp_filesize( $modal_data['file_url'] );
|
378 |
+
}
|
379 |
+
if ( ! empty( $file_size ) ) {
|
380 |
+
$modal_data['file_size'] = size_format( $file_size );
|
381 |
+
}
|
382 |
+
|
383 |
+
// Get attachment dimensions.
|
384 |
+
$media_dims = '';
|
385 |
+
if ( isset( $modal_data['meta']['width'], $modal_data['meta']['height'] ) ) {
|
386 |
+
$media_dims = "{$modal_data['meta']['width']} × {$modal_data['meta']['height']}";
|
387 |
+
}
|
388 |
+
/** This filter is documented in wp-admin/includes/media.php */
|
389 |
+
$modal_data['media_dims'] = apply_filters( 'media_meta', $media_dims, $attachment_post );
|
390 |
+
|
391 |
+
$modal_data['custom_url'] = get_post_meta( $attachment_id, '_foogallery_custom_url', true );
|
392 |
+
$modal_data['custom_target'] = get_post_meta( $attachment_id, '_foogallery_custom_target', true );
|
393 |
+
$modal_data['custom_class'] = get_post_meta( $attachment_id, '_foogallery_custom_class', true );
|
394 |
+
}
|
395 |
+
}
|
396 |
+
|
397 |
+
return $modal_data;
|
398 |
+
}
|
399 |
+
|
400 |
+
/**
|
401 |
+
* Image modal taxonomies & tags tab data update
|
402 |
+
*/
|
403 |
+
public function foogallery_attachment_modal_data_taxonomies( $modal_data, $data, $attachment_id, $gallery_id ) {
|
404 |
+
if ( $attachment_id > 0 ) {
|
405 |
+
|
406 |
+
if ( !$this->attachments_have_taxonomies() ) {
|
407 |
+
return $modal_data;
|
408 |
+
}
|
409 |
+
|
410 |
+
// Rather use $taxonomies = get_object_taxonomies( 'attachment' ); and loop through all taxonomies for an attachment
|
411 |
+
|
412 |
+
$categories = get_the_terms( $attachment_id, FOOGALLERY_ATTACHMENT_TAXONOMY_CATEGORY );
|
413 |
+
$tags = get_the_terms( $attachment_id, FOOGALLERY_ATTACHMENT_TAXONOMY_TAG );
|
414 |
+
|
415 |
+
if ( is_array( $categories ) && !empty ( $categories ) ) {
|
416 |
+
$modal_data['img_categories'] = $categories;
|
417 |
+
}
|
418 |
+
|
419 |
+
if ( is_array( $tags ) && !empty ( $tags ) ) {
|
420 |
+
$modal_data['img_tags'] = $tags;
|
421 |
+
}
|
422 |
+
}
|
423 |
+
return $modal_data;
|
424 |
+
}
|
425 |
+
|
426 |
+
/**
|
427 |
+
* Image modal thumbnails tab data update
|
428 |
+
*/
|
429 |
+
public function foogallery_attachment_modal_data_thumbnails( $modal_data, $data, $attachment_id, $gallery_id ) {
|
430 |
+
if ( $attachment_id > 0 ) {
|
431 |
+
|
432 |
+
$modal_data['foogallery_crop_pos'] = get_post_meta( $attachment_id, 'foogallery_crop_pos', true );
|
433 |
+
|
434 |
+
$foogallery_override_thumbnail = get_post_meta( $attachment_id, '_foogallery_override_thumbnail', true );
|
435 |
+
|
436 |
+
if ( isset( $foogallery_override_thumbnail ) ) {
|
437 |
+
|
438 |
+
$modal_data['foogallery_override_thumbnail'] = $foogallery_override_thumbnail;
|
439 |
+
$modal_data['override_class'] = 'is-override-thumbnail';
|
440 |
+
$alternate_thumb_img = wp_get_attachment_image_src( $foogallery_override_thumbnail );
|
441 |
+
|
442 |
+
if ( is_array( $alternate_thumb_img ) && !empty( $alternate_thumb_img ) ) {
|
443 |
+
$modal_data['alternate_img_src'] = $alternate_thumb_img[0];
|
444 |
+
}
|
445 |
+
}
|
446 |
+
}
|
447 |
+
|
448 |
+
return $modal_data;
|
449 |
+
}
|
450 |
+
|
451 |
+
|
452 |
+
|
453 |
+
|
454 |
+
/**
|
455 |
+
* Image modal more tab data update
|
456 |
+
*/
|
457 |
+
public function foogallery_attachment_modal_data_more( $modal_data, $data, $attachment_id, $gallery_id ) {
|
458 |
+
if ( $attachment_id > 0 ) {
|
459 |
+
$modal_data['data_width'] = get_post_meta( $attachment_id, '_data-width', true );
|
460 |
+
$modal_data['data_height'] = get_post_meta( $attachment_id, '_data-height', true );
|
461 |
+
$modal_data['panning'] = get_post_meta( $attachment_id, '_foobox_panning', true );
|
462 |
+
$modal_data['override_type'] = get_post_meta( $attachment_id, '_foogallery_override_type', true );
|
463 |
+
}
|
464 |
+
return $modal_data;
|
465 |
+
}
|
466 |
+
|
467 |
+
/**
|
468 |
+
* Image modal info tab data update
|
469 |
+
*/
|
470 |
+
public function foogallery_attachment_modal_data_info( $modal_data, $data, $attachment_id, $gallery_id ) {
|
471 |
+
|
472 |
+
if ( $attachment_id > 0 ) {
|
473 |
+
$modal_data['image_attributes'] = wp_get_attachment_image_src( $attachment_id, 'medium' );
|
474 |
+
$full_img_path = wp_get_attachment_image_src( $attachment_id, 'full' );
|
475 |
+
$modal_data['img_path'] = $full_img_path[0];
|
476 |
+
|
477 |
+
$gallery_attachments = get_post_meta( $gallery_id, FOOGALLERY_META_ATTACHMENTS, true);
|
478 |
+
|
479 |
+
if ( is_array( $gallery_attachments ) && !empty ( $gallery_attachments ) ) {
|
480 |
+
$modal_data['gallery_attachments'] = $gallery_attachments;
|
481 |
+
|
482 |
+
$current_slide_id = 0;
|
483 |
+
$prev_slide_enabled = false;
|
484 |
+
$next_slide_enabled = false;
|
485 |
+
$prev_slide_id = 0;
|
486 |
+
$next_slide_id = 0;
|
487 |
+
foreach ( $gallery_attachments as $gallery_attachment_id ) {
|
488 |
+
if ( $attachment_id === intval( $gallery_attachment_id ) ) {
|
489 |
+
//$prev_slide_id = $current_slide_id;
|
490 |
+
$prev_slide_enabled = $prev_slide_id > 0;
|
491 |
+
$current_slide_id = $attachment_id;
|
492 |
+
} else if ( $next_slide_id > 0 ) {
|
493 |
+
break;
|
494 |
+
} else if ( $current_slide_id > 0 ) {
|
495 |
+
$next_slide_id = intval($gallery_attachment_id);
|
496 |
+
$next_slide_enabled = true;
|
497 |
+
} else {
|
498 |
+
$prev_slide_id = intval( $gallery_attachment_id );
|
499 |
+
}
|
500 |
+
}
|
501 |
+
|
502 |
+
if ( $current_slide_id >= 0 ) {
|
503 |
+
$modal_data['prev_slide'] = $prev_slide_enabled;
|
504 |
+
$modal_data['next_slide'] = $next_slide_enabled;
|
505 |
+
$modal_data['prev_img_id'] = $prev_slide_id;
|
506 |
+
$modal_data['next_img_id'] = $next_slide_id;
|
507 |
+
}
|
508 |
+
}
|
509 |
+
}
|
510 |
+
|
511 |
+
return $modal_data;
|
512 |
+
}
|
513 |
+
|
514 |
+
/**
|
515 |
+
* Image modal main tab title
|
516 |
+
*/
|
517 |
+
public function display_tab_main() { ?>
|
518 |
+
<div class="foogallery-img-modal-tab-wrapper" data-tab_id="foogallery-panel-main">
|
519 |
+
<input type="radio" name="tabset" id="foogallery-tab-main" aria-controls="foogallery-panel-main" checked>
|
520 |
+
<label for="foogallery-tab-main"><?php _e('Main', 'foogallery'); ?></label>
|
521 |
+
</div>
|
522 |
+
<?php }
|
523 |
+
|
524 |
+
/**
|
525 |
+
* Image modal taxonomies & tags title
|
526 |
+
*/
|
527 |
+
public function display_tab_taxonomies() {
|
528 |
+
if ( !$this->attachments_have_taxonomies() ) {
|
529 |
+
return;
|
530 |
+
}
|
531 |
+
|
532 |
+
?>
|
533 |
+
<div class="foogallery-img-modal-tab-wrapper" data-tab_id="foogallery-panel-taxonomies">
|
534 |
+
<input type="radio" name="tabset" id="foogallery-tab-taxonomies" aria-controls="foogallery-panel-taxonomies">
|
535 |
+
<label for="foogallery-tab-taxonomies"><?php _e('Taxonomies', 'foogallery'); ?></label>
|
536 |
+
</div>
|
537 |
+
<?php }
|
538 |
+
|
539 |
+
/**
|
540 |
+
* Image modal thumbnails tab title
|
541 |
+
*/
|
542 |
+
public function display_tab_thumbnails() { ?>
|
543 |
+
<div class="foogallery-img-modal-tab-wrapper" data-tab_id="foogallery-panel-thumbnails">
|
544 |
+
<input type="radio" name="tabset" id="foogallery-tab-thumbnails" aria-controls="foogallery-panel-thumbnails">
|
545 |
+
<label for="foogallery-tab-thumbnails"><?php _e('Thumbnails', 'foogallery'); ?></label>
|
546 |
+
</div>
|
547 |
+
<?php }
|
548 |
+
|
549 |
+
/**
|
550 |
+
* Returns true if attachments have any taxonomies registered.
|
551 |
+
*
|
552 |
+
* @return bool
|
553 |
+
*/
|
554 |
+
function attachments_have_taxonomies() {
|
555 |
+
$taxonomies = get_object_taxonomies( 'attachment' );
|
556 |
+
return count( $taxonomies ) > 0;
|
557 |
+
}
|
558 |
+
|
559 |
+
|
560 |
+
|
561 |
+
/**
|
562 |
+
* Image modal more tab title
|
563 |
+
*/
|
564 |
+
public function display_tab_more() { ?>
|
565 |
+
<div class="foogallery-img-modal-tab-wrapper" data-tab_id="foogallery-panel-more">
|
566 |
+
<input type="radio" name="tabset" id="foogallery-tab-more" aria-controls="foogallery-panel-more">
|
567 |
+
<label for="foogallery-tab-more"><?php _e('More', 'foogallery'); ?></label>
|
568 |
+
</div>
|
569 |
+
<?php }
|
570 |
+
|
571 |
+
/**
|
572 |
+
* Image modal main tab content
|
573 |
+
*/
|
574 |
+
public function display_tab_content_main( $modal_data ) {
|
575 |
+
if ( is_array( $modal_data ) && !empty ( $modal_data ) ) {
|
576 |
+
if ( $modal_data['img_id'] > 0 ) { ?>
|
577 |
+
<section id="foogallery-panel-main" class="tab-panel active" data-nonce="<?php echo $modal_data['nonce'];?>">
|
578 |
+
<div class="settings">
|
579 |
+
<span class="setting" data-setting="title">
|
580 |
+
<label for="attachment-details-two-column-title" class="name"><?php _e('Title', 'foogallery'); ?></label>
|
581 |
+
<input type="text" id="attachment-details-two-column-title" name="foogallery[title]" value="<?php echo $modal_data['img_title'];?>">
|
582 |
+
</span>
|
583 |
+
<span class="setting" data-setting="caption">
|
584 |
+
<label for="attachment-details-two-column-caption" class="name"><?php _e('Caption', 'foogallery'); ?></label>
|
585 |
+
<textarea id="attachment-details-two-column-caption" name="foogallery[caption]"><?php echo $modal_data['caption'];?></textarea>
|
586 |
+
</span>
|
587 |
+
<span class="setting" data-setting="description">
|
588 |
+
<label for="attachment-details-two-column-description" class="name"><?php _e('Description', 'foogallery'); ?></label>
|
589 |
+
<textarea id="attachment-details-two-column-description" name="foogallery[description]"><?php echo $modal_data['description'];?></textarea>
|
590 |
+
</span>
|
591 |
+
<span class="setting has-description" data-setting="alt">
|
592 |
+
<label for="attachment-details-two-column-alt-text" class="name"><?php _e('ALT Text', 'foogallery'); ?></label>
|
593 |
+
<input type="text" id="attachment-details-two-column-alt-text" name="foogallery[alt-text]" value="<?php echo $modal_data['image_alt'];?>" aria-describedby="alt-text-description">
|
594 |
+
</span>
|
595 |
+
<span class="setting" data-setting="custom_url">
|
596 |
+
<label for="attachments-foogallery-custom-url" class="name"><?php _e('Custom URL', 'foogallery'); ?></label>
|
597 |
+
<input type="text" id="attachments-foogallery-custom-url" name="foogallery[custom-url]" value="<?php echo $modal_data['custom_url'];?>">
|
598 |
+
</span>
|
599 |
+
<span class="setting" data-setting="custom_target">
|
600 |
+
<label for="attachments-foogallery-custom-target" class="name"><?php _e('Custom Target', 'foogallery'); ?></label>
|
601 |
+
<select name="foogallery[custom-target']" id="attachments-foogallery-custom-target">
|
602 |
+
<option value="default" <?php selected( 'default', $modal_data['custom_target'], true ); ?>><?php _e('Default', 'foogallery'); ?></option>
|
603 |
+
<option value="_blank" <?php selected( '_blank', $modal_data['custom_target'], true ); ?>><?php _e('New tab (_blank)', 'foogallery'); ?></option>
|
604 |
+
<option value="_self" <?php selected( '_self', $modal_data['custom_target'], true ); ?>><?php _e('Same tab (_self)', 'foogallery'); ?></option>
|
605 |
+
<option value="foobox" <?php selected( 'foobox', $modal_data['custom_target'], true ); ?>><?php _e('FooBox', 'foogallery'); ?></option>
|
606 |
+
</select>
|
607 |
+
</span>
|
608 |
+
<span class="setting" data-setting="custom_class">
|
609 |
+
<label for="attachments-foogallery-custom-class" class="name"><?php _e('Custom Class', 'foogallery'); ?></label>
|
610 |
+
<input type="text" id="attachments-foogallery-custom-class" name="foogallery[custom-class]" value="<?php echo $modal_data['custom_class'];?>">
|
611 |
+
</span>
|
612 |
+
<span class="setting" data-setting="file_url">
|
613 |
+
<label for="attachments-foogallery-file-url" class="name"><?php _e('File URL', 'foogallery'); ?></label>
|
614 |
+
<input type="text" id="attachments-foogallery-file-url" value="<?php echo $modal_data['file_url'];?>" readonly>
|
615 |
+
</span>
|
616 |
+
<span class="setting" data-setting="file_url_copy">
|
617 |
+
<label for="attachments-foogallery-file-url-copy" class="name"><?php _e('', 'foogallery'); ?></label>
|
618 |
+
<span class="copy-to-clipboard-container">
|
619 |
+
<button type="button" class="button button-small copy-attachment-file-url" data-clipboard-target="#attachments-foogallery-file-url"><?php _e('Copy URL to clipboard', 'foogallery'); ?></button>
|
620 |
+
<span class="success hidden" aria-hidden="true"><?php _e('Copied!', 'foogallery'); ?></span>
|
621 |
+
</span>
|
622 |
+
</span>
|
623 |
+
</div>
|
624 |
+
</section>
|
625 |
+
<?php
|
626 |
+
}
|
627 |
+
}
|
628 |
+
}
|
629 |
+
|
630 |
+
/**
|
631 |
+
* Image modal taxonomies & tags tab content
|
632 |
+
*/
|
633 |
+
public function display_tab_content_taxonomies( $modal_data ) {
|
634 |
+
if ( !$this->attachments_have_taxonomies() ) {
|
635 |
+
return;
|
636 |
+
}
|
637 |
+
|
638 |
+
if ( is_array( $modal_data ) && !empty ( $modal_data ) ) {
|
639 |
+
if ( $modal_data['img_id'] > 0 ) {
|
640 |
+
$selected_categories = $selected_tags = array();
|
641 |
+
$tags = get_terms( array(
|
642 |
+
'taxonomy' => FOOGALLERY_ATTACHMENT_TAXONOMY_TAG,
|
643 |
+
'hide_empty' => false,
|
644 |
+
) );
|
645 |
+
$categories = get_terms( array(
|
646 |
+
'taxonomy' => FOOGALLERY_ATTACHMENT_TAXONOMY_CATEGORY,
|
647 |
+
'hide_empty' => false,
|
648 |
+
) );
|
649 |
+
if ( is_array ( $modal_data['img_categories'] ) && !empty ( $modal_data['img_categories'] ) ) {
|
650 |
+
foreach ( $modal_data['img_categories'] as $cat ) {
|
651 |
+
$selected_categories[] = $cat->term_id;
|
652 |
+
}
|
653 |
+
}
|
654 |
+
if ( is_array ( $modal_data['img_tags'] ) && !empty ( $modal_data['img_tags'] ) ) {
|
655 |
+
foreach ( $modal_data['img_tags'] as $tag ) {
|
656 |
+
$selected_tags[] = $tag->term_id;
|
657 |
+
}
|
658 |
+
}
|
659 |
+
?>
|
660 |
+
<section id="foogallery-panel-taxonomies" class="tab-panel">
|
661 |
+
<div class="settings">
|
662 |
+
<span class="setting">
|
663 |
+
<label for="foogallery_woocommerce_tags" class="name"><?php _e('Media Tags:', 'foogallery'); ?></label>
|
664 |
+
<ul class="foogallery_woocommerce_tags">
|
665 |
+
<?php
|
666 |
+
foreach ($tags as $tag) {
|
667 |
+
$tag_selected = in_array($tag->term_id, $selected_tags);
|
668 |
+
?>
|
669 |
+
<li>
|
670 |
+
<a href="javascript:void(0);" class="button button-small<?php echo $tag_selected ? ' button-primary' : ''; ?>"
|
671 |
+
data-term-id="<?php echo $tag->term_id; ?>"><?php echo $tag->name; ?></a>
|
672 |
+
</li><?php
|
673 |
+
}
|
674 |
+
?>
|
675 |
+
</ul>
|
676 |
+
<input type="hidden" id="foogallery_woocommerce_tags_selected" name="foogallery[tags]" value="<?php echo implode( ',', $selected_tags ); ?>">
|
677 |
+
</span>
|
678 |
+
<span class="setting">
|
679 |
+
<label for="foogallery_woocommerce_categories" class="name"><?php _e('Media Categories:', 'foogallery'); ?></label>
|
680 |
+
<ul class="foogallery_woocommerce_categories">
|
681 |
+
<?php
|
682 |
+
foreach ($categories as $category) {
|
683 |
+
$cat_selected = in_array($category->term_id, $selected_categories);
|
684 |
+
?>
|
685 |
+
<li>
|
686 |
+
<a href="javascript:void(0);" class="button button-small<?php echo $cat_selected ? ' button-primary' : ''; ?>"
|
687 |
+
data-term-id="<?php echo $category->term_id; ?>"><?php echo $category->name; ?></a>
|
688 |
+
</li><?php
|
689 |
+
}
|
690 |
+
?>
|
691 |
+
</ul>
|
692 |
+
<input type="hidden" id="foogallery_woocommerce_taxonomies_selected" name="foogallery[taxonomies]" value="<?php echo implode( ',', $selected_categories ); ?>">
|
693 |
+
</span>
|
694 |
+
</div>
|
695 |
+
</section>
|
696 |
+
<?php
|
697 |
+
}
|
698 |
+
}
|
699 |
+
}
|
700 |
+
|
701 |
+
/**
|
702 |
+
* Image modal thumbnails tab content
|
703 |
+
*/
|
704 |
+
public function display_tab_content_thumbnails( $modal_data ) {
|
705 |
+
if ( is_array( $modal_data ) && !empty ( $modal_data ) ) {
|
706 |
+
if ( $modal_data['img_id'] > 0 ) {
|
707 |
+
$engine = foogallery_thumb_active_engine();
|
708 |
+
|
709 |
+
$crop_pos = !empty( $modal_data['foogallery_crop_pos'] ) ? $modal_data['foogallery_crop_pos'] : 'center,center';
|
710 |
+
?>
|
711 |
+
<section id="foogallery-panel-thumbnails" class="tab-panel">
|
712 |
+
<div class="settings">
|
713 |
+
<span class="setting" data-setting="crop-from-position">
|
714 |
+
<label for="attachments-crop-from-position" class="name"><?php _e('Crop Position', 'foogallery'); ?></label>
|
715 |
+
<div id="foogallery_crop_pos">
|
716 |
+
<input type="radio" name="foogallery[crop_pos]" value="left,top" title="<?php _e('Left, Top', 'foogallery'); ?>" <?php checked( 'left,top', $crop_pos, true); ?>>
|
717 |
+
<input type="radio" name="foogallery[crop_pos]" value="center,top" title="<?php _e('Center, Top', 'foogallery'); ?>" <?php checked( 'center,top', $crop_pos, true); ?>>
|
718 |
+
<input type="radio" name="foogallery[crop_pos]" value="right,top" title="<?php _e('Right, Top', 'foogallery'); ?>" <?php checked( 'right,top', $crop_pos, true); ?>><br>
|
719 |
+
<input type="radio" name="foogallery[crop_pos]" value="left,center" title="<?php _e('Left, Center', 'foogallery'); ?>" <?php checked( 'left,center', $crop_pos, true); ?>>
|
720 |
+
<input type="radio" name="foogallery[crop_pos]" value="center,center" title="<?php _e('Center, Center', 'foogallery'); ?>" <?php checked( 'center,center', $crop_pos, true); ?>>
|
721 |
+
<input type="radio" name="foogallery[crop_pos]" value="right,center" title="<?php _e('Right, Center', 'foogallery'); ?>" <?php checked( 'right,center', $crop_pos, true); ?>><br>
|
722 |
+
<input type="radio" name="foogallery[crop_pos]" value="left,bottom" title="<?php _e('Left, Bottom', 'foogallery'); ?>" <?php checked( 'left,bottom', $crop_pos, true); ?>>
|
723 |
+
<input type="radio" name="foogallery[crop_pos]" value="center,bottom" title="<?php _e('Center, Bottom', 'foogallery'); ?>" <?php checked( 'center,bottom', $crop_pos, true); ?>>
|
724 |
+
<input type="radio" name="foogallery[crop_pos]" value="right,bottom" title="<?php _e('Right, Bottom', 'foogallery'); ?>" <?php checked( 'right,bottom', $crop_pos, true); ?>>
|
725 |
+
</div>
|
726 |
+
</span>
|
727 |
+
|
728 |
+
<?php if ( $engine->has_local_cache() ) { ?>
|
729 |
+
<div class="foogallery-attachments-list-bar clear-thumbnail">
|
730 |
+
<span class="setting" data-setting="clear-image-cache">
|
731 |
+
<label class="name"></label>
|
732 |
+
<button class="button button-primary button-large" id="foogallery_clear_img_thumb_cache"><?php _e( 'Clear Thumbnail Cache', 'foogallery' ); ?></button>
|
733 |
+
<span id="foogallery_clear_img_thumb_cache_spinner" class="spinner"></span>
|
734 |
+
<?php wp_nonce_field( 'foogallery_clear_attachment_thumb_cache', 'foogallery_clear_attachment_thumb_cache_nonce', false ); ?>
|
735 |
+
</span>
|
736 |
+
</div>
|
737 |
+
<?php }
|
738 |
+
|
739 |
+
do_action( 'foogallery_attachment_modal_tab_content_thumbnails', $modal_data );
|
740 |
+
?></div>
|
741 |
+
</section>
|
742 |
+
<?php
|
743 |
+
}
|
744 |
+
}
|
745 |
+
}
|
746 |
+
|
747 |
+
/**
|
748 |
+
* Image modal more tab content
|
749 |
+
*/
|
750 |
+
public function display_tab_content_more( $modal_data ) {
|
751 |
+
if ( is_array( $modal_data ) && !empty ( $modal_data ) ) {
|
752 |
+
if ( $modal_data['img_id'] > 0 ) { ?>
|
753 |
+
<section id="foogallery-panel-more" class="tab-panel">
|
754 |
+
<div class="settings">
|
755 |
+
<span class="setting" data-setting="data-width">
|
756 |
+
<label for="attachment-details-two-column-data-width" class="name"><?php _e('Override Width', 'foogallery'); ?></label>
|
757 |
+
<input type="text" name="foogallery[data-width]" id="attachment-details-two-column-data-width" value="<?php echo $modal_data['data_width']; ?>">
|
758 |
+
</span>
|
759 |
+
<span class="setting" data-setting="data-height">
|
760 |
+
<label for="attachment-details-two-column-data-height" class="name"><?php _e('Override Height', 'foogallery'); ?></label>
|
761 |
+
<input type="text" name="foogallery[data-height]" id="attachment-details-two-column-data-height" value="<?php echo $modal_data['data_height']; ?>">
|
762 |
+
</span>
|
763 |
+
<span class="setting" data-setting="panning">
|
764 |
+
<label for="attachment-details-two-column-panning" class="name"><?php _e('Panning', 'foogallery'); ?></label>
|
765 |
+
<input type="text" name="foogallery[panning]" id="attachment-details-two-column-panning" value="<?php echo $modal_data['panning']; ?>">
|
766 |
+
</span>
|
767 |
+
<span class="setting" data-setting="override-type">
|
768 |
+
<label for="attachment-details-two-column-override-type" class="name"><?php _e('Override Type', 'foogallery'); ?></label>
|
769 |
+
<input type="text" name="foogallery[override_type]" id="attachment-details-two-column-override-type" value="<?php echo $modal_data['override_type']; ?>">
|
770 |
+
</span>
|
771 |
+
</div>
|
772 |
+
</section>
|
773 |
+
<?php
|
774 |
+
}
|
775 |
+
}
|
776 |
+
}
|
777 |
+
|
778 |
+
/**
|
779 |
+
* Image modal info section
|
780 |
+
*/
|
781 |
+
public function display_attachment_info( $modal_data ) {
|
782 |
+
if ( is_array( $modal_data ) && !empty ( $modal_data ) ) {
|
783 |
+
if ( $modal_data['img_id'] > 0 ) { ?>
|
784 |
+
<section id="foogallery-panel-info">
|
785 |
+
<div class="foogallery-panel-info-inner">
|
786 |
+
<div class="foogallery-modal-info-fields">
|
787 |
+
<label for="attachment-details-two-column-uploaded-on" class="name"><?php _e('Uploaded On: ', 'foogallery'); ?></label>
|
788 |
+
<span><?php echo $modal_data['post_date']; ?></span>
|
789 |
+
</div>
|
790 |
+
<div class="foogallery-modal-info-fields">
|
791 |
+
<label for="attachment-details-two-column-uploaded-by" class="name"><?php _e('Uploaded By: ', 'foogallery'); ?></label>
|
792 |
+
<span><?php echo $modal_data['author_name']; ?></span>
|
793 |
+
</div>
|
794 |
+
<div class="foogallery-modal-info-fields">
|
795 |
+
<label for="attachment-details-two-column-file-name" class="name"><?php _e('File Name: ', 'foogallery'); ?></label>
|
796 |
+
<span id="attachment-details-two-column-copy-file-name"><?php echo $modal_data['file_name']; ?></span>
|
797 |
+
</div>
|
798 |
+
<div class="foogallery-modal-info-fields">
|
799 |
+
<label for="attachment-details-two-column-file-type" class="name"><?php _e('File Type: ', 'foogallery'); ?></label>
|
800 |
+
<span><?php echo $modal_data['file_type']; ?></span>
|
801 |
+
</div>
|
802 |
+
<div class="foogallery-modal-info-fields">
|
803 |
+
<label for="attachment-details-two-column-file-size" class="name"><?php _e('File Size: ', 'foogallery'); ?></label>
|
804 |
+
<span><?php echo $modal_data['file_size']; ?></span>
|
805 |
+
</div>
|
806 |
+
<div class="foogallery-modal-info-fields">
|
807 |
+
<label for="attachment-details-two-column-dimensions" class="name"><?php _e('Dimensions: ', 'foogallery'); ?></label>
|
808 |
+
<span><?php echo $modal_data['media_dims']; ?></span>
|
809 |
+
</div>
|
810 |
+
</div>
|
811 |
+
</section>
|
812 |
+
<?php
|
813 |
+
}
|
814 |
+
}
|
815 |
+
}
|
816 |
+
|
817 |
+
public function foogallery_img_modal_save_btn() {
|
818 |
+
echo '<div class="foogallery-image-edit-footer"><button id="attachments-data-save-btn" type="submit" class="button button-primary button-large">'. __( 'Save Attachment Details', 'foogallery' ) .'</button></div>';
|
819 |
+
}
|
820 |
+
}
|
821 |
+
}
|
includes/admin/class-gallery-metaboxes.php
CHANGED
@@ -28,6 +28,7 @@ if ( ! class_exists( 'FooGallery_Admin_Gallery_MetaBoxes' ) ) {
|
|
28 |
|
29 |
// Ajax call for clearing thumb cache for the gallery
|
30 |
add_action( 'wp_ajax_foogallery_clear_gallery_thumb_cache', array( $this, 'ajax_clear_gallery_thumb_cache' ) );
|
|
|
31 |
|
32 |
add_filter( 'hidden_meta_boxes', array( $this, 'get_hidden_meta_boxes' ), 10, 3 );
|
33 |
|
@@ -488,6 +489,31 @@ if ( ! class_exists( 'FooGallery_Admin_Gallery_MetaBoxes' ) ) {
|
|
488 |
die();
|
489 |
}
|
490 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
491 |
/**
|
492 |
* Returns a list of all hidden metaboxes
|
493 |
*
|
28 |
|
29 |
// Ajax call for clearing thumb cache for the gallery
|
30 |
add_action( 'wp_ajax_foogallery_clear_gallery_thumb_cache', array( $this, 'ajax_clear_gallery_thumb_cache' ) );
|
31 |
+
add_action( 'wp_ajax_foogallery_clear_attachment_thumb_cache', array( $this, 'ajax_clear_attachment_thumb_cache' ) );
|
32 |
|
33 |
add_filter( 'hidden_meta_boxes', array( $this, 'get_hidden_meta_boxes' ), 10, 3 );
|
34 |
|
489 |
die();
|
490 |
}
|
491 |
|
492 |
+
public function ajax_clear_attachment_thumb_cache() {
|
493 |
+
if ( check_admin_referer( 'foogallery_clear_attachment_thumb_cache', 'foogallery_clear_attachment_thumb_cache_nonce' ) ) {
|
494 |
+
|
495 |
+
$engine = foogallery_thumb_active_engine();
|
496 |
+
|
497 |
+
if ( $engine->has_local_cache() ) {
|
498 |
+
|
499 |
+
$attachment_id = $_POST['attachment_id'];
|
500 |
+
$attachment = get_post( $attachment_id );
|
501 |
+
|
502 |
+
ob_start();
|
503 |
+
|
504 |
+
$engine->clear_local_cache_for_file( $attachment->url );
|
505 |
+
|
506 |
+
ob_end_clean();
|
507 |
+
|
508 |
+
echo __( 'The thumbnail cache has been cleared!', 'foogallery' );
|
509 |
+
} else {
|
510 |
+
echo __( 'There was no thumbnail cache to clear.', 'foogallery' );
|
511 |
+
}
|
512 |
+
}
|
513 |
+
|
514 |
+
die();
|
515 |
+
}
|
516 |
+
|
517 |
/**
|
518 |
* Returns a list of all hidden metaboxes
|
519 |
*
|
includes/admin/class-pro-promotion.php
CHANGED
@@ -28,6 +28,9 @@ if ( ! class_exists( 'FooGallery_Pro_Promotion' ) ) {
|
|
28 |
'foogallery-commerce' => 'https://fooplugins.com/foogallery-wordpress-gallery-plugin/woocommerce-integration/',
|
29 |
'foogallery-product-gallery' => 'https://fooplugins.com/foogallery-wordpress-gallery-plugin/woocommerce-integration/#product-gallery',
|
30 |
'foogallery-protection' => 'https://fooplugins.com/foogallery-wordpress-gallery-plugin/photo-watermark/',
|
|
|
|
|
|
|
31 |
);
|
32 |
|
33 |
function __construct() {
|
28 |
'foogallery-commerce' => 'https://fooplugins.com/foogallery-wordpress-gallery-plugin/woocommerce-integration/',
|
29 |
'foogallery-product-gallery' => 'https://fooplugins.com/foogallery-wordpress-gallery-plugin/woocommerce-integration/#product-gallery',
|
30 |
'foogallery-protection' => 'https://fooplugins.com/foogallery-wordpress-gallery-plugin/photo-watermark/',
|
31 |
+
'foogallery-master' => 'https://fooplugins.com/documentation/foogallery/pro-commerce/use-master-gallery/',
|
32 |
+
'foogallery-import-export' => 'https://fooplugins.com/documentation/foogallery/getting-started-foogallery/import-export/',
|
33 |
+
'foogallery_whitelabeling' => 'https://fooplugins.com/documentation/foogallery/pro-commerce/white-labeling/'
|
34 |
);
|
35 |
|
36 |
function __construct() {
|
includes/admin/class-settings.php
CHANGED
@@ -170,6 +170,15 @@ if ( ! class_exists( 'FooGallery_Admin_Settings' ) ) {
|
|
170 |
'section' => __( 'Admin', 'foogallery' )
|
171 |
);
|
172 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
173 |
//endregion General
|
174 |
|
175 |
//region Images Tab
|
170 |
'section' => __( 'Admin', 'foogallery' )
|
171 |
);
|
172 |
|
173 |
+
$settings[] = array(
|
174 |
+
'id' => 'advanced_attachment_modal',
|
175 |
+
'title' => __( 'Enable Advanced Attachment Modal (BETA)', 'foogallery' ),
|
176 |
+
'desc' => __( 'If enabled, this will use the advanced attachment modal which allows for faster and easier editing of attachment details, when creating your galleries.', 'foogallery' ),
|
177 |
+
'type' => 'checkbox',
|
178 |
+
'tab' => 'general',
|
179 |
+
'section' => __( 'Admin', 'foogallery' )
|
180 |
+
);
|
181 |
+
|
182 |
//endregion General
|
183 |
|
184 |
//region Images Tab
|
includes/admin/view-help-pro.php
CHANGED
@@ -207,6 +207,16 @@ $foogallery_pro_features = array(
|
|
207 |
'plan' => FOOGALLERY_PRO_PLAN_COMMERCE,
|
208 |
'plans' => array( FOOGALLERY_PRO_PLAN_COMMERCE ),
|
209 |
),
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
210 |
);
|
211 |
|
212 |
?>
|
207 |
'plan' => FOOGALLERY_PRO_PLAN_COMMERCE,
|
208 |
'plans' => array( FOOGALLERY_PRO_PLAN_COMMERCE ),
|
209 |
),
|
210 |
+
array(
|
211 |
+
'title' => __( 'White Labeling','foogallery' ),
|
212 |
+
'desc' => __( 'Rebrand FooGallery to whatever you like for your clients. Move or hide menu items too. Ideal for freelancers and agencies.', 'foogallery' ),
|
213 |
+
'link' => 'https://fooplugins.com/documentation/foogallery/pro-commerce/white-labeling/',
|
214 |
+
'utm_content' => 'cta_white_labeling',
|
215 |
+
'link_text' => __( 'Learn More','foogallery' ),
|
216 |
+
'image' => 'https://assets.fooplugins.com/foogallery/plugin/foogallery-admin-help-pro-white-labeling.png',
|
217 |
+
'plan' => FOOGALLERY_PRO_PLAN_COMMERCE,
|
218 |
+
'plans' => array( FOOGALLERY_PRO_PLAN_COMMERCE ),
|
219 |
+
),
|
220 |
);
|
221 |
|
222 |
?>
|
includes/class-override-thumbnail.php
ADDED
@@ -0,0 +1,127 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/*
|
3 |
+
* FooGallery Attachment Override Thumbnail
|
4 |
+
*/
|
5 |
+
|
6 |
+
if ( ! class_exists( 'FooGallery_Override_Thumbnail' ) ) {
|
7 |
+
|
8 |
+
class FooGallery_Override_Thumbnail {
|
9 |
+
|
10 |
+
/**
|
11 |
+
* Primary class constructor.
|
12 |
+
*/
|
13 |
+
public function __construct() {
|
14 |
+
add_filter( 'foogallery_attachment_custom_fields', array( $this, 'foogallery_add_override_thumbnail_field' ) );
|
15 |
+
add_action( 'foogallery_attachment_modal_tab_content_thumbnails', array( $this, 'display_modal_fields' ), 10, 1 );
|
16 |
+
add_action( 'wp_ajax_foogallery_remove_alternate_img', array( $this, 'ajax_remove_override' ) );
|
17 |
+
add_action( 'foogallery_attachment_modal_after_tab_container', array( $this, 'extra_content_for_override_thumbnail' ), 50, 1 );
|
18 |
+
}
|
19 |
+
|
20 |
+
function display_modal_fields( $modal_data ) {
|
21 |
+
?>
|
22 |
+
<div class="foogallery-attachments-list-bar">
|
23 |
+
<div class="settings">
|
24 |
+
<span class="setting override-thumbnail <?php echo $modal_data['override_class']; ?>" data-setting="override-thumbnail">
|
25 |
+
<label for="attachment-details-two-column-override-thumbnail" class="name"><?php _e('Alternate Thumbnail URL', 'foogallery'); ?></label>
|
26 |
+
<input type="text" id="attachments-foogallery-override-thumbnail" value="<?php echo $modal_data['alternate_img_src']; ?>" readonly>
|
27 |
+
<input type="hidden" name="foogallery[override-thumbnail-id]" id="attachments-foogallery-override-thumbnail-id" value="<?php echo $modal_data['foogallery_override_thumbnail']; ?>">
|
28 |
+
</span>
|
29 |
+
<span class="setting override-thumbnail-preview <?php echo $modal_data['override_class']; ?>" data-setting="override-thumbnail-preview">
|
30 |
+
<label for="attachment-details-two-column-override-thumbnail-preview" class="name"><?php _e('Alternate Thumbnail Preview', 'foogallery'); ?></label>
|
31 |
+
<img id="attachment-details-two-column-override-thumbnail-preview" src="<?php echo $modal_data['alternate_img_src']; ?>" alt="Alternate Thumbnail">
|
32 |
+
</span>
|
33 |
+
<span class="setting alternate-image-upload-settings" data-setting="alternate-image-upload">
|
34 |
+
<div class="alternate-image-upload-wrap">
|
35 |
+
<button type="button" class="button button-primary button-large" id="foogallery-img-modal-alternate-image-upload"
|
36 |
+
data-uploader-title="<?php _e( 'Override Thumbnail Image', 'foogallery' ); ?>"
|
37 |
+
data-uploader-button-text="<?php _e( 'Override Thumbnail Image', 'foogallery' ); ?>"
|
38 |
+
data-img-id="<?php echo $modal_data['img_id']; ?>">
|
39 |
+
<?php _e( 'Override Thumbnail Image', 'foogallery' ); ?>
|
40 |
+
</button>
|
41 |
+
<button type="button" class="button button-primary button-large <?php echo $modal_data['override_class']; ?>" id="foogallery-img-modal-alternate-image-delete"
|
42 |
+
data-uploader-title="<?php _e( 'Clear Override Thumbnail', 'foogallery' ); ?>"
|
43 |
+
data-uploader-button-text="<?php _e( 'Clear Override Thumbnail', 'foogallery' ); ?>"
|
44 |
+
data-img-id="<?php echo $modal_data['img_id']; ?>">
|
45 |
+
<?php _e( 'Clear Override Thumbnail', 'foogallery' ); ?>
|
46 |
+
</button>
|
47 |
+
<span id="foogallery_clear_alternate_img_spinner" class="spinner"></span>
|
48 |
+
</div>
|
49 |
+
</span>
|
50 |
+
</div>
|
51 |
+
</div>
|
52 |
+
<?php
|
53 |
+
}
|
54 |
+
|
55 |
+
/**
|
56 |
+
* Adds a custom field to the attachments for override thumbnail
|
57 |
+
*
|
58 |
+
* @param $fields array
|
59 |
+
*
|
60 |
+
* @return array
|
61 |
+
*/
|
62 |
+
public function foogallery_add_override_thumbnail_field( $fields ) {
|
63 |
+
$fields['foogallery_override_thumbnail'] = array(
|
64 |
+
'label' => __( 'Override Thumbnail', 'foogallery' ),
|
65 |
+
'input' => 'text',
|
66 |
+
'helps' => __( 'Add another image to override this attachment', 'foogallery' ),
|
67 |
+
);
|
68 |
+
|
69 |
+
return $fields;
|
70 |
+
}
|
71 |
+
|
72 |
+
/**
|
73 |
+
* Ajax function to remove override thumbnail from the attachment
|
74 |
+
*/
|
75 |
+
public function ajax_remove_override() {
|
76 |
+
|
77 |
+
// Check for nonce security
|
78 |
+
if ( ! wp_verify_nonce( $_POST['nonce'], 'foogallery-modal-nonce' ) ) {
|
79 |
+
die ( 'Busted!');
|
80 |
+
}
|
81 |
+
|
82 |
+
$img_id = sanitize_text_field( $_POST['img_id'] );
|
83 |
+
|
84 |
+
delete_post_meta( $img_id, '_foogallery_override_thumbnail' );
|
85 |
+
|
86 |
+
wp_die();
|
87 |
+
}
|
88 |
+
|
89 |
+
public function extra_content_for_override_thumbnail( $modal_data ) {
|
90 |
+
?>
|
91 |
+
<script>
|
92 |
+
jQuery( function() {
|
93 |
+
$(document).on('click', '#foogallery-img-modal-alternate-image-upload', function(e) {
|
94 |
+
e.preventDefault();
|
95 |
+
$('#foogallery-image-edit-modal').data('img_type', 'alternate');
|
96 |
+
FOOGALLERY.mediaModalTitle = $(this).data( 'uploader-title' );
|
97 |
+
FOOGALLERY.mediaModalButtonText = $(this).data( 'uploader-button-text' );
|
98 |
+
var img_id = $(this).data('img-id');
|
99 |
+
FOOGALLERY.openMediaModal(img_id);
|
100 |
+
});
|
101 |
+
|
102 |
+
$(document).on('click', '#foogallery-img-modal-alternate-image-delete', function () {
|
103 |
+
$('#foogallery_clear_alternate_img_spinner').addClass('is-active');
|
104 |
+
var img_id = $(this).attr('data-img-id');
|
105 |
+
var nonce = $('#foogallery-panel-main').data('nonce');
|
106 |
+
$.ajax({
|
107 |
+
type: "POST",
|
108 |
+
url: ajaxurl,
|
109 |
+
data: {
|
110 |
+
'action': 'foogallery_remove_alternate_img',
|
111 |
+
'img_id': img_id,
|
112 |
+
'nonce': nonce
|
113 |
+
},
|
114 |
+
success: function (data) {
|
115 |
+
$('#foogallery_clear_alternate_img_spinner').removeClass('is-active');
|
116 |
+
$('#foogallery-image-edit-modal .tab-panels .settings span.setting.override-thumbnail').removeClass('is-override-thumbnail');
|
117 |
+
$('#foogallery-image-edit-modal .tab-panels .settings span.setting.override-thumbnail-preview').removeClass('is-override-thumbnail');
|
118 |
+
$('#foogallery-image-edit-modal .tab-panels .settings span.setting.alternate-image-delete').removeClass('is-override-thumbnail');
|
119 |
+
}
|
120 |
+
});
|
121 |
+
});
|
122 |
+
});
|
123 |
+
</script>
|
124 |
+
<?php
|
125 |
+
}
|
126 |
+
}
|
127 |
+
}
|
includes/includes.php
CHANGED
@@ -69,6 +69,9 @@ if ( is_admin() ) {
|
|
69 |
require_once FOOGALLERY_PATH . 'includes/admin/class-gallery-datasources.php';
|
70 |
require_once FOOGALLERY_PATH . 'includes/admin/class-pro-promotion.php';
|
71 |
require_once FOOGALLERY_PATH . 'includes/admin/class-demo-content.php';
|
|
|
|
|
|
|
72 |
|
73 |
} else {
|
74 |
// Only front-end includes.
|
69 |
require_once FOOGALLERY_PATH . 'includes/admin/class-gallery-datasources.php';
|
70 |
require_once FOOGALLERY_PATH . 'includes/admin/class-pro-promotion.php';
|
71 |
require_once FOOGALLERY_PATH . 'includes/admin/class-demo-content.php';
|
72 |
+
|
73 |
+
// Admin gallery modal new
|
74 |
+
require_once FOOGALLERY_PATH . 'includes/admin/class-gallery-attachment-modal.php';
|
75 |
|
76 |
} else {
|
77 |
// Only front-end includes.
|
includes/thumbs/{default/class-foogallery-thumb-image-editor-gd.php → class-foogallery-thumb-image-editor-gd.php}
RENAMED
File without changes
|
includes/thumbs/{default/class-foogallery-thumb-image-editor-imagick.php → class-foogallery-thumb-image-editor-imagick.php}
RENAMED
File without changes
|
includes/thumbs/class-foogallery-thumb-manager.php
CHANGED
@@ -16,6 +16,43 @@ if ( ! class_exists( 'FooGallery_Thumb_Manager' ) ) {
|
|
16 |
function init_active_engine() {
|
17 |
$engine = foogallery_thumb_active_engine();
|
18 |
$engine->init();
|
|
|
19 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
20 |
}
|
21 |
}
|
16 |
function init_active_engine() {
|
17 |
$engine = foogallery_thumb_active_engine();
|
18 |
$engine->init();
|
19 |
+
add_filter( 'wp_image_editors', array( $this, 'override_image_editors' ), 999 );
|
20 |
}
|
21 |
+
|
22 |
+
/**
|
23 |
+
* Overrides the editors to make sure the FooGallery thumb editors are included
|
24 |
+
*
|
25 |
+
* @param $editors
|
26 |
+
* @return array
|
27 |
+
*/
|
28 |
+
function override_image_editors( $editors ) {
|
29 |
+
|
30 |
+
require_once( FOOGALLERY_PATH . '/includes/thumbs/class-foogallery-thumb-image-editor-gd.php' );
|
31 |
+
require_once( FOOGALLERY_PATH . '/includes/thumbs/class-foogallery-thumb-image-editor-imagick.php' );
|
32 |
+
|
33 |
+
$image_editors = array();
|
34 |
+
|
35 |
+
//replace the default image editors with the FooGallery Thumb image editors
|
36 |
+
foreach ( $editors as $editor ) {
|
37 |
+
switch ( $editor ) {
|
38 |
+
case 'WP_Image_Editor_Imagick':
|
39 |
+
$image_editors[] = 'FooGallery_Thumb_Image_Editor_Imagick';
|
40 |
+
break;
|
41 |
+
case 'WP_Image_Editor_GD':
|
42 |
+
$image_editors[] = 'FooGallery_Thumb_Image_Editor_GD';
|
43 |
+
break;
|
44 |
+
default:
|
45 |
+
$image_editors[] = $editor;
|
46 |
+
}
|
47 |
+
}
|
48 |
+
|
49 |
+
//Make sure the order is correct
|
50 |
+
if ( foogallery_get_setting( 'force_gd_library', false ) ) {
|
51 |
+
array_splice( $image_editors, 0, 0, array('FooGallery_Thumb_Image_Editor_GD') );
|
52 |
+
}
|
53 |
+
|
54 |
+
//make sure we have a unique list of editors
|
55 |
+
return array_unique( $image_editors );
|
56 |
+
}
|
57 |
}
|
58 |
}
|
includes/thumbs/default/class-foogallery-thumb-engine-default.php
CHANGED
@@ -14,7 +14,7 @@ if ( ! class_exists( 'FooGallery_Thumb_Engine_Default' ) ) {
|
|
14 |
private $last_error;
|
15 |
|
16 |
public function init() {
|
17 |
-
|
18 |
add_action( 'deleted_post', array( $this, 'delete_cache_folder_for_attachment' ), 10, 1 );
|
19 |
add_action( 'foogallery_admin_menu_after', array( $this, 'add_test_thumb_menu' ) );
|
20 |
|
@@ -181,42 +181,6 @@ Error : ';
|
|
181 |
}
|
182 |
}
|
183 |
|
184 |
-
/**
|
185 |
-
* Overrides the editors to make sure the FooGallery thumb editors are included
|
186 |
-
*
|
187 |
-
* @param $editors
|
188 |
-
* @return array
|
189 |
-
*/
|
190 |
-
function override_image_editors( $editors ) {
|
191 |
-
|
192 |
-
require_once( FOOGALLERY_PATH . '/includes/thumbs/default/class-foogallery-thumb-image-editor-gd.php' );
|
193 |
-
require_once( FOOGALLERY_PATH . '/includes/thumbs/default/class-foogallery-thumb-image-editor-imagick.php' );
|
194 |
-
|
195 |
-
$image_editors = array();
|
196 |
-
|
197 |
-
//replace the default image editors with the FooGallery Thumb image editors
|
198 |
-
foreach ( $editors as $editor ) {
|
199 |
-
switch ( $editor ) {
|
200 |
-
case 'WP_Image_Editor_Imagick':
|
201 |
-
$image_editors[] = 'FooGallery_Thumb_Image_Editor_Imagick';
|
202 |
-
break;
|
203 |
-
case 'WP_Image_Editor_GD':
|
204 |
-
$image_editors[] = 'FooGallery_Thumb_Image_Editor_GD';
|
205 |
-
break;
|
206 |
-
default:
|
207 |
-
$image_editors[] = $editor;
|
208 |
-
}
|
209 |
-
}
|
210 |
-
|
211 |
-
//Make sure the order is correct
|
212 |
-
if ( foogallery_get_setting( 'force_gd_library', false ) ) {
|
213 |
-
array_splice( $image_editors, 0, 0, array('FooGallery_Thumb_Image_Editor_GD') );
|
214 |
-
}
|
215 |
-
|
216 |
-
//make sure we have a unique list of editors
|
217 |
-
return array_unique( $image_editors );
|
218 |
-
}
|
219 |
-
|
220 |
/**
|
221 |
* Hook into deleted_post and delete the associated cache file folder for an attachment
|
222 |
*
|
14 |
private $last_error;
|
15 |
|
16 |
public function init() {
|
17 |
+
|
18 |
add_action( 'deleted_post', array( $this, 'delete_cache_folder_for_attachment' ), 10, 1 );
|
19 |
add_action( 'foogallery_admin_menu_after', array( $this, 'add_test_thumb_menu' ) );
|
20 |
|
181 |
}
|
182 |
}
|
183 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
184 |
/**
|
185 |
* Hook into deleted_post and delete the associated cache file folder for an attachment
|
186 |
*
|
js/admin-foogallery-edit.js
CHANGED
@@ -417,71 +417,78 @@ FooGallery.autoEnabled = false;
|
|
417 |
|
418 |
FOOGALLERY.openMediaModal = function(selected_attachment_id) {
|
419 |
if (!selected_attachment_id) { selected_attachment_id = 0; }
|
420 |
-
FOOGALLERY.selected_attachment_id = selected_attachment_id;
|
421 |
|
422 |
-
|
423 |
-
FOOGALLERY.media_uploader.open();
|
424 |
-
return;
|
425 |
-
}
|
426 |
|
427 |
-
|
|
|
|
|
|
|
428 |
|
429 |
-
|
430 |
-
|
431 |
-
|
432 |
-
multiple: 'add',
|
433 |
-
title: FOOGALLERY.mediaModalTitle,
|
434 |
-
button: {
|
435 |
-
text: FOOGALLERY.mediaModalButtonText
|
436 |
-
},
|
437 |
-
library: {
|
438 |
-
type: "image"
|
439 |
}
|
440 |
-
|
441 |
-
var
|
442 |
-
|
443 |
-
|
444 |
-
|
445 |
-
|
446 |
-
|
447 |
-
|
448 |
-
|
449 |
-
|
450 |
-
|
451 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
452 |
} else {
|
453 |
-
//
|
454 |
-
|
455 |
-
}
|
456 |
-
if ( item.subtype ) {
|
457 |
-
attachment.subtype = item.subtype;
|
458 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
459 |
|
460 |
-
|
|
|
|
|
|
|
461 |
} else {
|
462 |
-
//
|
463 |
-
alert( 'There was a problem adding the item to the gallery!' );
|
464 |
}
|
465 |
});
|
466 |
-
})
|
467 |
-
.on( 'open', function() {
|
468 |
-
var selection = FOOGALLERY.media_uploader.state().get('selection');
|
469 |
-
if (selection && !$.isFunction(wp.foogallery)) {
|
470 |
-
//clear any previous selections
|
471 |
-
selection.reset();
|
472 |
-
}
|
473 |
-
|
474 |
-
if (FOOGALLERY.selected_attachment_id > 0) {
|
475 |
-
var attachment = wp.media.attachment(FOOGALLERY.selected_attachment_id);
|
476 |
-
attachment.fetch();
|
477 |
-
selection.add( attachment ? [ attachment ] : [] );
|
478 |
-
} else {
|
479 |
-
//would be nice to have all previously added media selected
|
480 |
-
}
|
481 |
-
});
|
482 |
|
483 |
-
|
484 |
-
|
|
|
485 |
};
|
486 |
|
487 |
FOOGALLERY.initUsageMetabox = function() {
|
@@ -552,6 +559,8 @@ FooGallery.autoEnabled = false;
|
|
552 |
|
553 |
FOOGALLERY.initThumbCacheMetabox();
|
554 |
|
|
|
|
|
555 |
$('.foogallery-attachments-list')
|
556 |
.on('click' ,'a.remove', function(e) {
|
557 |
e.preventDefault();
|
@@ -608,8 +617,149 @@ FooGallery.autoEnabled = false;
|
|
608 |
e.preventDefault();
|
609 |
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 :)')
|
610 |
} );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
611 |
};
|
612 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
613 |
}(window.FOOGALLERY = window.FOOGALLERY || {}, jQuery));
|
614 |
|
615 |
FooGallery.utils.ready(function ($) {
|
417 |
|
418 |
FOOGALLERY.openMediaModal = function(selected_attachment_id) {
|
419 |
if (!selected_attachment_id) { selected_attachment_id = 0; }
|
|
|
420 |
|
421 |
+
var modal_style = $('#foogallery-image-edit-modal').data('modal_style');
|
|
|
|
|
|
|
422 |
|
423 |
+
if ( selected_attachment_id > 0 && modal_style === 'on') {
|
424 |
+
FOOGALLERY.openAttachmentModal( selected_attachment_id );
|
425 |
+
} else {
|
426 |
+
FOOGALLERY.selected_attachment_id = selected_attachment_id;
|
427 |
|
428 |
+
if (FOOGALLERY.media_uploader !== false){
|
429 |
+
FOOGALLERY.media_uploader.open();
|
430 |
+
return;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
431 |
}
|
432 |
+
|
433 |
+
var createModal = $.isFunction(wp.foogallery) ? wp.foogallery : wp.media;
|
434 |
+
|
435 |
+
// Create our FooGallery media frame.
|
436 |
+
FOOGALLERY.media_uploader = createModal({
|
437 |
+
frame: "select",
|
438 |
+
multiple: 'add',
|
439 |
+
title: FOOGALLERY.mediaModalTitle,
|
440 |
+
button: {
|
441 |
+
text: FOOGALLERY.mediaModalButtonText
|
442 |
+
},
|
443 |
+
library: {
|
444 |
+
type: "image"
|
445 |
+
}
|
446 |
+
}).on("select", function(){
|
447 |
+
var attachments = FOOGALLERY.media_uploader.state().get('selection').toJSON();
|
448 |
+
|
449 |
+
$.each(attachments, function(i, item) {
|
450 |
+
if ( item && item.id ) {
|
451 |
+
var attachment = {
|
452 |
+
id: item.id,
|
453 |
+
src: null,
|
454 |
+
subtype: null
|
455 |
+
};
|
456 |
+
if ( item.sizes && item.sizes.thumbnail) {
|
457 |
+
attachment.src = item.sizes.thumbnail.url;
|
458 |
+
} else {
|
459 |
+
//thumbnail could not be found for whatever reason. Default to the full image URL
|
460 |
+
attachment.src = item.url;
|
461 |
+
}
|
462 |
+
if ( item.subtype ) {
|
463 |
+
attachment.subtype = item.subtype;
|
464 |
+
}
|
465 |
+
|
466 |
+
FOOGALLERY.addAttachmentToGalleryList(attachment);
|
467 |
} else {
|
468 |
+
//there was a problem adding the item! Move on to the next
|
469 |
+
alert( 'There was a problem adding the item to the gallery!' );
|
|
|
|
|
|
|
470 |
}
|
471 |
+
});
|
472 |
+
})
|
473 |
+
.on( 'open', function() {
|
474 |
+
var selection = FOOGALLERY.media_uploader.state().get('selection');
|
475 |
+
if (selection && !$.isFunction(wp.foogallery)) {
|
476 |
+
//clear any previous selections
|
477 |
+
selection.reset();
|
478 |
+
}
|
479 |
|
480 |
+
if (FOOGALLERY.selected_attachment_id > 0) {
|
481 |
+
var attachment = wp.media.attachment(FOOGALLERY.selected_attachment_id);
|
482 |
+
attachment.fetch();
|
483 |
+
selection.add( attachment ? [ attachment ] : [] );
|
484 |
} else {
|
485 |
+
//would be nice to have all previously added media selected
|
|
|
486 |
}
|
487 |
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
488 |
|
489 |
+
// Finally, open the modal
|
490 |
+
FOOGALLERY.media_uploader.open();
|
491 |
+
}
|
492 |
};
|
493 |
|
494 |
FOOGALLERY.initUsageMetabox = function() {
|
559 |
|
560 |
FOOGALLERY.initThumbCacheMetabox();
|
561 |
|
562 |
+
FOOGALLERY.initAttachmentModal();
|
563 |
+
|
564 |
$('.foogallery-attachments-list')
|
565 |
.on('click' ,'a.remove', function(e) {
|
566 |
e.preventDefault();
|
617 |
e.preventDefault();
|
618 |
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 :)')
|
619 |
} );
|
620 |
+
|
621 |
+
$(document).on('click', '#foogallery-panel-taxonomies .foogallery_woocommerce_tags a', function(e){
|
622 |
+
$(this).toggleClass('button-primary');
|
623 |
+
var tags = [];
|
624 |
+
$('.foogallery_woocommerce_tags a.button-primary').each(function(){
|
625 |
+
var term_id = $(this).data('term-id');
|
626 |
+
tags.push(term_id);
|
627 |
+
});
|
628 |
+
var tag_str = tags.toString();
|
629 |
+
$('#foogallery_woocommerce_tags_selected').val(tag_str);
|
630 |
+
});
|
631 |
+
|
632 |
+
$(document).on('click', '#foogallery-panel-taxonomies .foogallery_woocommerce_categories a', function(e){
|
633 |
+
$(this).toggleClass('button-primary');
|
634 |
+
var categories = [];
|
635 |
+
$('.foogallery_woocommerce_categories a.button-primary').each(function(){
|
636 |
+
var term_id = $(this).data('term-id');
|
637 |
+
categories.push(term_id);
|
638 |
+
});
|
639 |
+
var cat_str = categories.toString();
|
640 |
+
$('#foogallery_woocommerce_taxonomies_selected').val(cat_str);
|
641 |
+
});
|
642 |
+
|
643 |
+
$(document).on('click', '#attachments-data-save-btn', function(e){
|
644 |
+
e.preventDefault();
|
645 |
+
var data = $('#foogallery_attachment_modal_save_form').serialize();
|
646 |
+
console.log(data);
|
647 |
+
$.ajax({
|
648 |
+
type: "POST",
|
649 |
+
url: ajaxurl,
|
650 |
+
data: data,
|
651 |
+
cache: false,
|
652 |
+
success: function(res) {
|
653 |
+
console.log(res);
|
654 |
+
}
|
655 |
+
});
|
656 |
+
});
|
657 |
+
|
658 |
+
$(document).on('click', '.copy-attachment-file-name', function(e) {
|
659 |
+
var file_name = $('#attachment-details-two-column-copy-file-name').text();
|
660 |
+
navigator.clipboard.writeText(file_name);
|
661 |
+
});
|
662 |
+
|
663 |
+
$(document).on('click', '.copy-attachment-file-url', function(e) {
|
664 |
+
var file_url = $('#attachments-foogallery-file-url').val();
|
665 |
+
navigator.clipboard.writeText(file_url);
|
666 |
+
});
|
667 |
+
|
668 |
+
$(document).on('click', '#foogallery-image-edit-modal .foogallery-img-modal-tab-wrapper', function(e) {
|
669 |
+
var panel = '#' + $(this).data('tab_id');
|
670 |
+
$('#foogallery-image-edit-modal .tab-panel').removeClass('active');
|
671 |
+
$(panel).addClass('active');
|
672 |
+
$('#foogallery-image-edit-modal').data( 'current_tab', $(this).data('tab_id') );
|
673 |
+
});
|
674 |
+
|
675 |
+
$(document).on('click', '#foogallery_clear_img_thumb_cache', function(e) {
|
676 |
+
e.preventDefault();
|
677 |
+
|
678 |
+
$('#foogallery_clear_img_thumb_cache_spinner').addClass('is-active');
|
679 |
+
var data = 'action=foogallery_clear_attachment_thumb_cache' +
|
680 |
+
'&img_id=' + $('.foogallery-image-edit-main').data('img_id') +
|
681 |
+
'&foogallery_clear_attachment_thumb_cache_nonce=' + $('#foogallery_clear_attachment_thumb_cache_nonce').val() +
|
682 |
+
'&_wp_http_referer=' + encodeURIComponent($('input[name="_wp_http_referer"]').val());
|
683 |
+
|
684 |
+
$.ajax({
|
685 |
+
type: "POST",
|
686 |
+
url: ajaxurl,
|
687 |
+
data: data,
|
688 |
+
success: function(data) {
|
689 |
+
$('#foogallery_clear_thumb_cache_spinner').removeClass('is-active');
|
690 |
+
}
|
691 |
+
});
|
692 |
+
});
|
693 |
+
|
694 |
+
$(document).on('click', '#foogallery-image-edit-modal .edit-media-header button', function(e) {
|
695 |
+
var selected_attachment_id = parseInt( $(this).data('attachment') );
|
696 |
+
if ( selected_attachment_id > 0 ) {
|
697 |
+
FOOGALLERY.openAttachmentModal(selected_attachment_id);
|
698 |
+
}
|
699 |
+
});
|
700 |
};
|
701 |
|
702 |
+
FOOGALLERY.initAttachmentModal = function() {
|
703 |
+
jQuery('#foogallery-image-edit-modal .media-modal-close').click(function() {
|
704 |
+
var $content = jQuery('#foogallery-image-edit-modal'),
|
705 |
+
$wrapper = jQuery('#foogallery-image-edit-modal .media-frame-content .attachment-details'),
|
706 |
+
$loader = jQuery('#foogallery-image-edit-modal .media-frame-content .spinner');
|
707 |
+
|
708 |
+
$content.hide();
|
709 |
+
$wrapper.addClass('not-loaded');
|
710 |
+
$loader.addClass('is-active');
|
711 |
+
});
|
712 |
+
};
|
713 |
+
|
714 |
+
FOOGALLERY.openAttachmentModal = function(img_id) {
|
715 |
+
var $content = jQuery('#foogallery-image-edit-modal'),
|
716 |
+
$wrapper = jQuery('#foogallery-image-edit-modal .media-frame-content .attachment-details'),
|
717 |
+
$loader = jQuery('#foogallery-image-edit-modal .media-frame-content .spinner'),
|
718 |
+
nonce = $content.data('nonce'),
|
719 |
+
gallery_id = $content.data('gallery_id'),
|
720 |
+
current_tab = $content.data('current_tab');
|
721 |
+
|
722 |
+
$content.show();
|
723 |
+
$wrapper.addClass('not-loaded').html('<div class="spinner is-active"></div>');
|
724 |
+
$wrapper.css({'grid-template-columns': '1fr'});
|
725 |
+
$loader.addClass('is-active');
|
726 |
+
|
727 |
+
jQuery.ajax({
|
728 |
+
type: "POST",
|
729 |
+
url: ajaxurl,
|
730 |
+
data: {
|
731 |
+
'img_id': img_id,
|
732 |
+
'gallery_id': gallery_id,
|
733 |
+
'current_tab': current_tab,
|
734 |
+
'nonce': nonce,
|
735 |
+
'action': 'foogallery_attachment_modal_open'
|
736 |
+
},
|
737 |
+
success: function(json) {
|
738 |
+
jQuery('#foogallery-image-edit-modal .edit-media-header button.left')
|
739 |
+
.attr('disabled', !json.prev_slide)
|
740 |
+
.data('attachment', json.prev_img_id);
|
741 |
+
jQuery('#foogallery-image-edit-modal .edit-media-header button.right')
|
742 |
+
.attr('disabled', !json.next_slide)
|
743 |
+
.data('attachment', json.next_img_id);
|
744 |
+
|
745 |
+
if ( json.override_thumbnail ) {
|
746 |
+
jQuery('#foogallery-image-edit-modal .tab-panels .settings span.setting.override-thumbnail').addClass('is-override-thumbnail');
|
747 |
+
jQuery('#foogallery-image-edit-modal .tab-panels .settings span.setting.override-thumbnail-preview').addClass('is-override-thumbnail');
|
748 |
+
}
|
749 |
+
|
750 |
+
jQuery('#foogallery-image-edit-modal .media-modal-content .edit-attachment-frame .media-frame-content .attachment-details').html(json.html);
|
751 |
+
|
752 |
+
if ( json.current_tab ) {
|
753 |
+
jQuery('.foogallery-img-modal-tab-wrapper[data-tab_id="' + json.current_tab + '"] input').click();
|
754 |
+
}
|
755 |
+
|
756 |
+
$wrapper.removeClass('not-loaded');
|
757 |
+
$wrapper.css({'grid-template-columns': '1fr 2fr'});
|
758 |
+
$loader.removeClass('is-active');
|
759 |
+
},
|
760 |
+
});
|
761 |
+
};
|
762 |
+
|
763 |
}(window.FOOGALLERY = window.FOOGALLERY || {}, jQuery));
|
764 |
|
765 |
FooGallery.utils.ready(function ($) {
|
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.39
|
4 |
* @link
|
5 |
* @copyright Steven Usher & Brad Vincent 2015
|
6 |
* @license Released under the GPLv3 license.
|