Gallery – Photo Gallery – Image Gallery - Version 2.0.5

Version Description

Download this release

Release Info

Developer machothemes
Plugin Icon wp plugin Gallery – Photo Gallery – Image Gallery
Version 2.0.5
Comparing to
See all releases

Code changes from version 2.0.4 to 2.0.5

Modula.php CHANGED
@@ -4,7 +4,7 @@
4
  * Plugin URI: https://wp-modula.com/
5
  * Description: Modula is the most powerful, user-friendly WordPress gallery plugin. Add galleries, masonry grids and more in a few clicks.
6
  * Author: MachoThemes
7
- * Version: 2.0.4
8
  * Author URI: https://www.machothemes.com/
9
  * License: GPLv3 or later
10
  * License URI: http://www.gnu.org/licenses/gpl-3.0.html
@@ -43,7 +43,7 @@
43
  *
44
  * @since 2.0.2
45
  */
46
- define( 'MODULA_LITE_VERSION', '2.0.3' );
47
  define( 'MODULA_PATH', plugin_dir_path( __FILE__ ) );
48
  define( 'MODULA_URL', plugin_dir_url( __FILE__ ) );
49
 
4
  * Plugin URI: https://wp-modula.com/
5
  * Description: Modula is the most powerful, user-friendly WordPress gallery plugin. Add galleries, masonry grids and more in a few clicks.
6
  * Author: MachoThemes
7
+ * Version: 2.0.5
8
  * Author URI: https://www.machothemes.com/
9
  * License: GPLv3 or later
10
  * License URI: http://www.gnu.org/licenses/gpl-3.0.html
43
  *
44
  * @since 2.0.2
45
  */
46
+ define( 'MODULA_LITE_VERSION', '2.0.5' );
47
  define( 'MODULA_PATH', plugin_dir_path( __FILE__ ) );
48
  define( 'MODULA_URL', plugin_dir_url( __FILE__ ) );
49
 
README.txt CHANGED
@@ -1,10 +1,10 @@
1
- === Modula Image Gallery ===
2
  Contributors: machothemes, silkalns
3
- Tags: best gallery plugin, image gallery, photo gallery, responsive gallery, wordpress gallery plugin, wordpress portfolio plugin, masonry gallery, fancy gallery, media gallery, mosaic gallery, polaroid gallery, portfolio gallery
4
  Requires at least: 4.6
5
- Tested up to: 5.0
6
  Requires PHP: 5.6
7
- Stable tag: 2.0.4
8
  License: GPLv3 or later
9
  License URI: http://www.gnu.org/licenses/gpl-3.0.html
10
 
@@ -12,11 +12,11 @@ Photo Gallery by Modula - an advanced solution for Photo Gallery users. Create b
12
 
13
  == Description ==
14
 
15
- **Modula Image Gallery** is a standalone plugin built, maintained & operated by the friendly folks over at [MachoThemes](https://www.machothemes.com/?utm_source=wordpress.org&utm_medium=web&utm_campaign=Modula%20Lite).
16
 
17
- With Modula, it's easier than ever to build stunning [lightbox galleries](https://wp-modula.com/demo/lightbox-gallery?utm_source=wordpress.org&utm_medium=web&utm_campaign=Modula%20Lite), masonry grids, custom grids and more in no more than a few clicks right from the WordPress dashboard.
18
 
19
- Modula is the best WordPress gallery plugin for adding custom, unique and responsive galleries to your website. There is a free version of Modula available (Modula Lite) and a premium version (Modula Pro) both of which will allow you to add amazing, fast-loading galleries to your website.
20
 
21
 
22
  = SEE HOW EASY IT IS TO CREATE A PHOTO GALLERY WITH MODULA =
@@ -128,7 +128,7 @@ Showcase your photography portfolio in a professional and creative way with Modu
128
 
129
  * [Food Gallery](https://wp-modula.com/demo/applications/food?utm_source=wordpress.org&utm_medium=web&utm_campaign=Modula%20Lite)
130
 
131
- Modula is the perfect image gallery plugin for **food blogs** and **restaurant** websites. Let your delicious meals speak for themselves in your unique and creative galleries created with Modula.
132
 
133
 
134
  * [Pets Gallery](https://wp-modula.com/demo/applications/pets-animals?utm_source=wordpress.org&utm_medium=web&utm_campaign=Modula%20Lite)
@@ -216,159 +216,4 @@ Free support is included only with a PRO license: [Buy Modula PRO](https://wp-mo
216
 
217
  == Changelog ==
218
 
219
- = 2.0.4 =
220
- * Fixed defaults ( Causing an issue on modula pro with filters )
221
- * Fixed translations
222
- * Prepared for Modula Speed Up
223
- * Changed the checkboxes' design
224
- * Fixed Facebook share link
225
-
226
- = 2.0.3 =
227
- * All issues from here : https://github.com/MachoThemes/modula-lite/milestone/5?closed=1
228
- * Added a new button ( Save & Close ) in edit image modal ( James Leesley recommendation )
229
- * Renamed "Description" with "Caption" ( James Leesley recommendation )
230
- * Fixed error on resize
231
- * Fixed Shuffle
232
- * Generated .po file
233
-
234
- = 2.0.2 =
235
- * Changed strings
236
- * Fixed open new tab checkbox
237
- * Fixed caption color
238
- * Fixed caption & title size
239
- * Fixed custom grid layout
240
-
241
- = 2.0.1 - 12.17.2018 =
242
- * Major Update
243
- * Build Custom Grids - Take full control of your galleries.
244
- * New Admin Interface - For a more intuitive user interface, we've blended Modula right into WordPress.
245
- * Drag & Drop to Upload Images
246
- * Guidelines to Help You Make the Perfect Gallery
247
- * Preview your Gallery Without the Hassle
248
-
249
- = 1.3.7 =
250
- * fixed dismiss button from beta testing notice.
251
-
252
- = 1.3.6 =
253
- * removed custom js field.
254
-
255
- = 1.3.5 =
256
- * second wp.org review
257
-
258
- = 1.3.4 =
259
- * wp.org review
260
-
261
- = 1.3.3 =
262
- * Added notification for Modula 2.0
263
- * Added Compatibility with AO
264
-
265
- = 1.3.2 =
266
- * Validated HTML markup
267
-
268
- = 1.3.1 =
269
- * Changed lightbox script
270
-
271
- = 1.3.0 =
272
- * Added compatibility with : WPML/Visual Composer/Page Builder by SiteOrigin
273
- * Fixed bugs with captions & titles
274
- * Localized all text strings
275
- * Fixed lightbox bug
276
- * For a more detailed changelog check : https://github.com/MachoThemes/modula-lite/milestone/2?closed=1
277
-
278
- = 1.2.1 =
279
- * Fixed the broken link
280
- * Hid the Edit gallery menu item
281
-
282
- = 1.2 =
283
- * Removed sub-menu entry: Tutorial
284
- * Removed sub-menu entry: Other Galleries
285
- * Removed fixed action button
286
- * Removed Modula Survey by Diego Imbriani
287
- * Re-worked the "Upgrade" page.
288
- * Removed the "languages" folder. We'll be using GlotPress to handle these
289
- * Fixed an issue with WPML plugin
290
-
291
- = 1.1.13 =
292
- * Enhanced lightbox compatibility
293
-
294
- = 1.1.10 =
295
- * Enhancement in backend UI
296
-
297
- = 1.1.9 =
298
- * Minor change in backend UI
299
-
300
- = 1.1.8 =
301
- * Fixed broken css for backends under SSL
302
-
303
- = 1.1.7 =
304
- * Tool to fix broken images after version 1.1.0
305
-
306
- = 1.1.6 =
307
- * Bug fix (impossible to select effect "None")
308
-
309
- = 1.1.5 =
310
- * Fixed issue on admin panel when images are too tall
311
-
312
- = 1.1.4 =
313
- * Changed CSS icon prefix to avoid conflicts
314
-
315
- = 1.1.3 =
316
- * Fixed bug (linked images opening in lightbox)
317
-
318
- = 1.1.2 =
319
- * Fixed social icons bug
320
-
321
- = 1.1.1 =
322
- * Bug fix
323
-
324
- = 1.1.0 =
325
- * New image management
326
- * Import tool for Envira galleries
327
- * Import tool for NextGen galleries
328
-
329
- = 1.0.12 =
330
- * Added link to ShortPixel plugin for image optimization
331
-
332
- = 1.0.11 =
333
- * Minor bug fix: fixed missing preview effect image
334
-
335
- = 1.0.10 =
336
- * Bug fix: now Lightbox opens image at full size
337
-
338
- = 1.0.9 =
339
- * Fixed url to upgrade
340
-
341
- = 1.0.8 =
342
- * Fixed url to upgrade
343
-
344
- = 1.0.7 =
345
- * Changed call to action for the survey
346
-
347
- = 1.0.6 =
348
- * Fixed CSS issue with Lightbox and some themes. New page in admin panel to show other gallery plugins. Enhancements of the UI of admin panel.
349
-
350
- = 1.0.5 =
351
- * Added handy links on plugins page
352
-
353
- = 1.0.4 =
354
- * Updated pot file for translations
355
-
356
- = 1.0.3 =
357
- * Bug fix: now images can be sorted also in the "Add gallery" wizard
358
-
359
- = 1.0.2 =
360
- * Added link to survey to help us making a better plugin
361
-
362
- = 1.0.1 =
363
- * Fixed issue when activating the plugin
364
-
365
- = 1.0.0 =
366
- * This is the launch version. No changes yet.
367
-
368
- == Upgrade Notice ==
369
-
370
- = 1.1.8 =
371
- * This update will fix broken CSS of admin panel under SSL
372
-
373
- = 1.1.7 =
374
- * This update contains a tool to fix broken images.
1
+ === Modula Photo Gallery ===
2
  Contributors: machothemes, silkalns
3
+ Tags: best gallery plugin, photo gallery, image gallery, responsive gallery, wordpress gallery plugin, wordpress portfolio plugin, masonry gallery, fancy gallery, media gallery, mosaic gallery, polaroid gallery, portfolio gallery
4
  Requires at least: 4.6
5
+ Tested up to: 5.1
6
  Requires PHP: 5.6
7
+ Stable tag: 2.0.5
8
  License: GPLv3 or later
9
  License URI: http://www.gnu.org/licenses/gpl-3.0.html
10
 
12
 
13
  == Description ==
14
 
15
+ **Modula Photo Gallery** is a standalone plugin built, maintained & operated by the friendly folks over at [MachoThemes](https://www.machothemes.com/?utm_source=wordpress.org&utm_medium=web&utm_campaign=Modula%20Lite).
16
 
17
+ With Modula, it's easier than ever to build a stunning [lightbox gallery](https://wp-modula.com/demo/lightbox-gallery?utm_source=wordpress.org&utm_medium=web&utm_campaign=Modula%20Lite), masonry grids, custom grids and more in no more than a few clicks right from the WordPress dashboard.
18
 
19
+ Modula is the best WordPress photo gallery plugin for adding custom, unique and responsive galleries to your website. There is a free version of Modula available (Modula Lite) and a premium version (Modula Pro) both of which will allow you to add amazing, fast-loading galleries to your website.
20
 
21
 
22
  = SEE HOW EASY IT IS TO CREATE A PHOTO GALLERY WITH MODULA =
128
 
129
  * [Food Gallery](https://wp-modula.com/demo/applications/food?utm_source=wordpress.org&utm_medium=web&utm_campaign=Modula%20Lite)
130
 
131
+ Modula is the perfect photo gallery plugin for **food blogs** and **restaurant** websites. Let your delicious meals speak for themselves in your unique and creative galleries created with Modula.
132
 
133
 
134
  * [Pets Gallery](https://wp-modula.com/demo/applications/pets-animals?utm_source=wordpress.org&utm_medium=web&utm_campaign=Modula%20Lite)
216
 
217
  == Changelog ==
218
 
219
+ See <a href="https://github.com/MachoThemes/modula-lite/blob/master/changelog.txt" target="_blank">changelog</a>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
assets/css/edit.css CHANGED
@@ -4,4 +4,22 @@
4
  }
5
  .post-type-modula-gallery .wrap .nav-tab-wrapper .page-title-action {
6
  top: 7px;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7
  }
4
  }
5
  .post-type-modula-gallery .wrap .nav-tab-wrapper .page-title-action {
6
  top: 7px;
7
+ }
8
+ .modula-feedback-notice {
9
+ padding: 22px;
10
+ border: 2px solid #2ebf91;
11
+ }
12
+ .notice p.modula-feedback-title {
13
+ font-size: 26px;
14
+ font-weight: bold;
15
+ display: flex;
16
+ align-items: center;
17
+ margin-top: 0;
18
+ }
19
+ .modula-feedback-title svg {
20
+ width: 35px;
21
+ margin-right: 10px;
22
+ }
23
+ .modula-feedback-title svg path {
24
+ fill: #2ebf91;
25
  }
assets/css/modula-cpt.css CHANGED
@@ -20,6 +20,26 @@
20
  width: 161px;
21
  position: relative;
22
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
23
  .modula-settings-container .modula-tabs .modula-tab > i {
24
  margin-right: 10px;
25
  margin-left: 15px;
@@ -429,7 +449,53 @@ tr label.th-label {
429
  box-sizing: border-box;
430
  }
431
  .modula-upload-actions .buttons {
432
- flex-shrink: 0;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
433
  }
434
  .segrip.ui-resizable-se {
435
  width: 20px;
@@ -1023,5 +1089,3 @@ a.modula-tab-link {
1023
 
1024
  .modula-toggle__input[type=checkbox]:checked + .modula-toggle__items .modula-toggle__on {
1025
  display: inline-block; }
1026
-
1027
-
20
  width: 161px;
21
  position: relative;
22
  }
23
+ .modula-settings-container .modula-tabs .modula-tab sup {
24
+ margin-left: 5px;
25
+ padding: 2px 5px;
26
+ border-radius: 5px;
27
+ color: #fff;
28
+ font-size: 8px;
29
+ background: #9c9c9c;
30
+ display: inline-block;
31
+ line-height: 1;
32
+ position: relative;
33
+ top: -2px;
34
+ }
35
+ .modula-settings-container .modula-tabs .modula-tab:hover sup,
36
+ .modula-settings-container .modula-tabs .modula-tab.active-tab sup {
37
+ background-color: #57a7c9;
38
+ }
39
+ .modula-settings-container .modula-tabs .modula-tab.modula-responsive:hover sup,
40
+ .modula-settings-container .modula-tabs .modula-tab.modula-responsive.active-tab sup {
41
+ background:#dc3232;
42
+ }
43
  .modula-settings-container .modula-tabs .modula-tab > i {
44
  margin-right: 10px;
45
  margin-left: 15px;
449
  box-sizing: border-box;
450
  }
451
  .modula-upload-actions .buttons {
452
+ flex-shrink: 0;
453
+ width: 275px;
454
+ display: flex;
455
+ }
456
+ .modula-sources-dropdown {
457
+ position: relative;
458
+ border-top: 1px solid rgba( 255,255,255,0 );
459
+ border-right: 1px solid rgba( 255,255,255,0 );
460
+ border-left: 1px solid rgba( 255,255,255,0 );
461
+ }
462
+ .modula-sources-dropdown:hover {
463
+ border-color: #ddd;
464
+ background: #f5f5f5;
465
+ }
466
+ .modula-sources-dropdown > span {
467
+ width: 28px;
468
+ height: 32px;
469
+ text-align: center;
470
+ line-height: 28px;
471
+ cursor: pointer;
472
+ display: inline-block;
473
+ font-size: 25px;
474
+ font-weight: bold;
475
+ }
476
+ .modula-sources-dropdown .modula-sources-dropdown-content {
477
+ position: absolute;
478
+ right: -1px;
479
+ bottom: 0;
480
+ transform: translateY( 100% );
481
+ display: none;
482
+ padding: 15px;
483
+ background-color: #f5f5f5;
484
+ box-shadow: 0 1px 1px rgba(0,0,0,.04);
485
+ box-sizing: border-box;
486
+ border: 1px solid #ddd;
487
+ }
488
+ .modula-sources-dropdown:hover .modula-sources-dropdown-content {
489
+ display: block;
490
+ }
491
+ .modula-sources-dropdown:hover .modula-sources-dropdown-content:before {
492
+ content: "";
493
+ height: 1px;
494
+ width: 28px;
495
+ background-color: #f5f5f5;
496
+ position: absolute;
497
+ top: -1px;
498
+ right: 0;
499
  }
500
  .segrip.ui-resizable-se {
501
  width: 20px;
1089
 
1090
  .modula-toggle__input[type=checkbox]:checked + .modula-toggle__items .modula-toggle__on {
1091
  display: inline-block; }
 
 
assets/css/modula.css CHANGED
@@ -1,4 +1,3 @@
1
- @charset "UTF-8";
2
  .modula .items .item {
3
  position: absolute;
4
  overflow: hidden;
 
1
  .modula .items .item {
2
  position: absolute;
3
  overflow: hidden;
assets/js/{jquery.modula.js → jquery-modula.js} RENAMED
@@ -63,16 +63,28 @@ jQuery(document).on( 'vc-full-width-row-single vc-full-width-row', function( eve
63
 
64
  var size,
65
  containerWidth = this.$element.width(),
66
- plugin = this;
 
 
 
 
 
 
 
 
 
 
 
 
67
 
68
  if ( this.options.gutter > 0 ) {
69
- size = Math.trunc( ( containerWidth - this.options.gutter * this.options.columns ) / this.options.columns );
70
  }else{
71
- size = Math.trunc( containerWidth / this.options.columns );
72
  }
73
 
74
  this.$items.not(".jtg-hidden").each(function (i, item) {
75
- var slot = {}, widthColumns, heightColumns;
76
 
77
  widthColumns = $( item ).data( 'width' );
78
  heightColumns = $( item ).data( 'height' );
@@ -81,6 +93,29 @@ jQuery(document).on( 'vc-full-width-row-single vc-full-width-row', function( eve
81
  widthColumns = 12;
82
  }
83
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
84
  slot.width = size * widthColumns + ( plugin.options.gutter * ( widthColumns - 1 ) );
85
  slot.height = size * heightColumns + ( plugin.options.gutter * ( heightColumns - 1 ) );
86
 
@@ -106,7 +141,7 @@ jQuery(document).on( 'vc-full-width-row-single vc-full-width-row', function( eve
106
  itemSelector: '.item',
107
  gutter: parseInt( plugin.options.gutter ),
108
  columnWidth: size,
109
- rowHeight: size,
110
  resize: false
111
  });
112
  this.isPackeryActive = true;
@@ -234,6 +269,7 @@ jQuery(document).on( 'vc-full-width-row-single vc-full-width-row', function( eve
234
 
235
  if ( 'custom-grid' === instance.options.type ) {
236
  instance.createCustomGallery();
 
237
  }else{
238
  instance.createGrid();
239
  }
@@ -324,7 +360,7 @@ jQuery(document).on( 'vc-full-width-row-single vc-full-width-row', function( eve
324
  $image.css(cssProps);
325
  }
326
 
327
- Plugin.prototype.loadImage = function (index) {
328
  var instance = this;
329
  var source = instance.$items.eq(index).find('.pic');
330
  var img = new Image();
@@ -379,6 +415,10 @@ jQuery(document).on( 'vc-full-width-row-single vc-full-width-row', function( eve
379
  instance.onResize(instance);
380
  });
381
 
 
 
 
 
382
  // Create social links
383
  this.setupSocial();
384
 
63
 
64
  var size,
65
  containerWidth = this.$element.width(),
66
+ plugin = this,
67
+ columns = this.options.columns,
68
+ viewport = document.documentElement.clientWidth;
69
+
70
+ if ( this.options.enableResponsive ) {
71
+
72
+ if ( viewport <= 568 ) {
73
+ columns = this.options.mobileColumns;
74
+ }else if ( viewport <= 768 ) {
75
+ columns = this.options.tabletColumns;
76
+ }
77
+
78
+ }
79
 
80
  if ( this.options.gutter > 0 ) {
81
+ size = Math.trunc( ( containerWidth - this.options.gutter * columns ) / columns );
82
  }else{
83
+ size = Math.trunc( containerWidth / columns );
84
  }
85
 
86
  this.$items.not(".jtg-hidden").each(function (i, item) {
87
+ var slot = {}, widthColumns, heightColumns, auxWidth, auxHeight;
88
 
89
  widthColumns = $( item ).data( 'width' );
90
  heightColumns = $( item ).data( 'height' );
93
  widthColumns = 12;
94
  }
95
 
96
+ if ( plugin.options.enableResponsive ) {
97
+ auxWidth = widthColumns;
98
+ auxHeight = heightColumns;
99
+
100
+ if ( 1 == columns ) {
101
+
102
+ widthColumns = 1;
103
+ heightColumns = widthColumns * auxHeight / auxWidth;
104
+
105
+ }else{
106
+
107
+ // widthColumns = Math.trunc( columns * auxWidth / 12 );
108
+ widthColumns = Math.round( columns * auxWidth / 12 );
109
+ if ( widthColumns < 1 ) { widthColumns = 1; }
110
+
111
+ heightColumns = Math.round( widthColumns * auxHeight / auxWidth );
112
+ // heightColumns = widthColumns * auxHeight / auxWidth;
113
+ if ( heightColumns < 1 ) { heightColumns = 1; }
114
+
115
+ }
116
+
117
+ }
118
+
119
  slot.width = size * widthColumns + ( plugin.options.gutter * ( widthColumns - 1 ) );
120
  slot.height = size * heightColumns + ( plugin.options.gutter * ( heightColumns - 1 ) );
121
 
141
  itemSelector: '.item',
142
  gutter: parseInt( plugin.options.gutter ),
143
  columnWidth: size,
144
+ // rowHeight: size,
145
  resize: false
146
  });
147
  this.isPackeryActive = true;
269
 
270
  if ( 'custom-grid' === instance.options.type ) {
271
  instance.createCustomGallery();
272
+ instance.$itemsCnt.packery();
273
  }else{
274
  instance.createGrid();
275
  }
360
  $image.css(cssProps);
361
  }
362
 
363
+ Plugin.prototype.loadImage = function(index) {
364
  var instance = this;
365
  var source = instance.$items.eq(index).find('.pic');
366
  var img = new Image();
415
  instance.onResize(instance);
416
  });
417
 
418
+ $(window).on( 'scroll', function () {
419
+ instance.onResize(instance);
420
+ });
421
+
422
  // Create social links
423
  this.setupSocial();
424
 
assets/js/jquery-modula.min.js ADDED
@@ -0,0 +1 @@
 
1
+ function tg_getURLParameter(t){return decodeURIComponent((new RegExp("[?|&]"+t+"=([^&;]+?)(&|#|;|$)").exec(location.search)||[,""])[1].replace(/\+/g,"%20"))||null}jQuery(document).on("vc-full-width-row-single vc-full-width-row",function(t,i){0<jQuery("body").find(".modula").length&&jQuery(window).trigger("modula-update")}),function(d,l,c,t){var o="modulaGallery",e={resizer:"/",margin:10,keepArea:!0,type:"creative-gallery",columns:12,gutter:10,enableTwitter:!1,enableFacebook:!1,enableGplus:!1,enablePinterest:!1};function n(t,i){this.element=t,this.$element=d(t),this.$itemsCnt=this.$element.find(".items"),this.$items=this.$itemsCnt.find(".item"),this.options=d.extend({},e,i),this._defaults=e,this._name=o,this.tiles=[],this.$tilesCnt=null,this.completed=!1,this.lastWidth=0,this.resizeTO=0,this.isPackeryActive=!1,this.init()}n.prototype.createCustomGallery=function(){var a,t=this.$element.width(),r=this,l=this.options.columns,i=c.documentElement.clientWidth;this.options.enableResponsive&&(i<=568?l=this.options.mobileColumns:i<=768&&(l=this.options.tabletColumns)),a=0<this.options.gutter?Math.trunc((t-this.options.gutter*l)/l):Math.trunc(t/l),this.$items.not(".jtg-hidden").each(function(t,i){var e,s,o,n,h={};e=d(i).data("width"),s=d(i).data("height"),12<e&&(e=12),r.options.enableResponsive&&(o=e,n=s,1==l?s=(e=1)*n/o:((e=Math.round(l*o/12))<1&&(e=1),(s=Math.round(e*n/o))<1&&(s=1))),h.width=a*e+r.options.gutter*(e-1),h.height=a*s+r.options.gutter*(s-1),d(i).data("size",h).addClass("tiled").addClass(h.width>h.height?"tile-h":"tile-v").data("position"),d(i).css(d(i).data("size")),d(i).find(".figc").css({width:d(i).data("size").width,height:d(i).data("size").height})}),this.isPackeryActive&&this.$itemsCnt.packery("destroy"),this.$itemsCnt.packery({itemSelector:".item",gutter:parseInt(r.options.gutter),columnWidth:a,resize:!1}),this.isPackeryActive=!0},n.prototype.createGrid=function(){var s=this;this.options.width&&this.$itemsCnt.width(this.options.width),this.options.height&&this.$itemsCnt.height(this.options.height),this.$itemsCnt.data("area",this.$itemsCnt.width()*this.$itemsCnt.height()),this.lastWidth=this.$itemsCnt.width();for(var t=0;t<this.$items.not(".jtg-hidden").length;t++)this.tiles.push(s.getSlot());this.tiles.sort(function(t,i){return t.position-i.position}),this.$items.not(".jtg-hidden").each(function(t,i){var e=s.tiles[t];d(i).data("size",e).addClass("tiled").addClass(e.width>e.height?"tile-h":"tile-v").data("position")}),this.$items.each(function(t,i){d(i).css(d(i).data("size")),d(i).find(".figc").css({width:d(i).data("size").width,height:d(i).data("size").height})}),this.completed=!0},n.prototype.getSlot=function(){if(0==this.tiles.length)return e={top:0,left:0,width:this.$itemsCnt.width(),height:this.$itemsCnt.height(),area:this.$itemsCnt.width()*this.$itemsCnt.height(),position:0};for(var t=0,i=0;i<this.tiles.length;i++){(e=this.tiles[i]).area>this.tiles[t].area&&(t=i)}var e={},s=this.tiles[t];if(s.width>s.height){var o=s.width/2*this.options.randomFactor;s.prevWidth=s.width,s.width=Math.floor(s.width/2+o*(Math.random()-.5)),e={top:s.top,left:s.left+s.width+this.options.margin,width:s.prevWidth-s.width-this.options.margin,height:s.height}}else{o=s.height/2*this.options.randomFactor;s.prevHeight=s.height,s.height=Math.floor(s.height/2+o*(Math.random()-.5)),e={left:s.left,top:s.top+s.height+this.options.margin,width:s.width,height:s.prevHeight-s.height-this.options.margin}}return e.area=e.width*e.height,e.position=1e3*e.top+e.left,s.position=1e3*s.top+s.left,this.tiles[t]=s,this.tiles[t].area=s.width*s.height,e},n.prototype.reset=function(){var e=this;e.tiles=[],"custom-grid"===e.options.type?(e.createCustomGallery(),e.$itemsCnt.packery()):e.createGrid(),e.$itemsCnt.find(".pic").each(function(t,i){e.placeImage(t)}),e.lastWidth=e.$itemsCnt.width()},n.prototype.onResize=function(i){i.lastWidth!=i.$itemsCnt.width()&&(clearTimeout(i.resizeTO),i.resizeTO=setTimeout(function(){if(i.options.keepArea){var t=i.$itemsCnt.data("area");i.$itemsCnt.height(t/i.$itemsCnt.width())}i.reset()},100))},n.prototype.placeImage=function(t){var i=this.$items.eq(t),e=i.find(".pic"),s=i.data("size"),o=e.data("size"),n=s.width/s.height,h=o.width/o.height,a=e.data("valign")?e.data("valign"):"middle",r=e.data("halign")?e.data("halign"):"center",l={top:"auto",bottom:"auto",left:"auto",right:"auto",width:"auto",height:"auto",margin:"0",maxWidth:"999em"};if(h<n)switch(l.width=s.width,l.left=0,a){case"top":l.top=0;break;case"middle":l.top=0-(s.width*(1/h)-s.height)/2;break;case"bottom":l.bottom=0}else switch(l.height=s.height,l.top=0,r){case"left":l.left=0;break;case"center":l.left=0-(s.height*h-s.width)/2;break;case"right":l.right=0}e.css(l)},n.prototype.loadImage=function(t){var i=this,e=i.$items.eq(t).find(".pic"),s=new Image;s.onerror=function(){console.log("error loading image ["+t+"] : "+this.src),t+1<i.$items.length&&i.loadImage(t+1)},s.onload=function(){e.data("size",{width:this.width,height:this.height}),i.placeImage(t),i.$items.eq(t).addClass("tg-loaded"),t+1<i.$items.length&&i.loadImage(t+1)};var o=e.data("src");s.src=o,e.attr("src",o)},n.prototype.init=function(){var t=this;d(c).trigger("modula_api_before_init",[t]),this.$itemsCnt.css({position:"relative",zIndex:1}),this.$items.addClass("tile"),this.$items.find(".pic").removeAttr("src"),"custom-grid"===this.options.type?this.createCustomGallery():this.createGrid(),this.loadImage(0),d(l).resize(function(){t.onResize(t)}),d(l).on("modula-update",function(){t.onResize(t)}),d(l).on("scroll",function(){t.onResize(t)}),this.setupSocial(),this.options.onComplete&&this.options.onComplete(),d(c).trigger("modula_api_after_init",[t])},n.prototype.setupSocial=function(){this.options.enableTwitter&&i(this.$items,this),this.options.enableFacebook&&s(this.$items,this),this.options.enableGplus&&a(this.$items,this),this.options.enablePinterest&&h(this.$items,this)};var i=function(t,s){t.find(".modula-icon-twitter").click(function(t){t.preventDefault();var i=d(this).parents(".tile:first").find(".caption"),e=s.options.twitterText||c.title;return!s.options.twitterText&&1==i.length&&0<i.text().length&&(e=d.trim(i.text())),l.open("https://twitter.com/intent/tweet?url="+encodeURI(location.href.split("#")[0])+"&text="+encodeURI(e),"ftgw","location=1,status=1,scrollbars=1,width=600,height=400").moveTo(screen.width/2-300,screen.height/2-200),!1})},s=function(t,o){t.find(".modula-icon-facebook").click(function(t){t.preventDefault();var i=d(this).parents(".tile:first").find(".pic"),e=d(this).parents(".tile:first").find(".caption");o.options.facebookText||c.title;!o.options.facebookText&&1==e.length&&0<e.text().length&&d.trim(e.text());i.attr("src");var s="//www.facebook.com/sharer.php?u="+location.href;return l.open(s,"ftgw","location=1,status=1,scrollbars=1,width=600,height=400").moveTo(screen.width/2-300,screen.height/2-200),!1})},h=function(t,r){t.find(".modula-icon-pinterest").click(function(t){t.preventDefault();var i=d(this).parents(".tile:first").find(".pic"),e=d(this).parents(".tile:first").find(".caption"),s=r.options.facebookText||c.title;!r.options.facebookText&&1==e.length&&0<e.text().length&&(s=d.trim(e.text()));var o,n,h="http://pinterest.com/pin/create/button/?url="+encodeURI(location.href)+"&description="+encodeURI(s);if(1==i.length){var a=i.attr("src");h+="&media="+(o=a,(n=c.createElement("img")).src=o,o=n.src,n.src=null,o)}return l.open(h,"ftgw","location=1,status=1,scrollbars=1,width=600,height=400").moveTo(screen.width/2-300,screen.height/2-200),!1})},a=function(t,i){t.find(".modula-icon-google-plus").click(function(t){t.preventDefault();var i="https://plus.google.com/share?url="+encodeURI(location.href);return l.open(i,"ftgw","location=1,status=1,scrollbars=1,width=600,height=400").moveTo(screen.width/2-300,screen.height/2-200),!1})};d.fn[o]=function(i){var e,s=arguments;return i===t||"object"==typeof i?this.each(function(){d.data(this,"plugin_"+o)||d.data(this,"plugin_"+o,new n(this,i))}):"string"==typeof i&&"_"!==i[0]&&"init"!==i?(this.each(function(){var t=d.data(this,"plugin_"+o);t instanceof n&&"function"==typeof t[i]&&(e=t[i].apply(t,Array.prototype.slice.call(s,1))),"destroy"===i&&d.data(this,"plugin_"+o,null)}),e!==t?e:this):void 0}}(jQuery,window,document),jQuery(document).ready(function(e){var t=e(".modula-gallery");e.each(t,function(){var t=e(this).attr("id"),i=e(this).data("config");e("#"+t).modulaGallery(i)})});
assets/js/lightbox.js CHANGED
@@ -53,6 +53,7 @@
53
  showImageNumberLabel: true,
54
  wrapAround: false,
55
  disableScrolling: false,
 
56
  /*
57
  Sanitize Title
58
  If the caption data is trusted, for example you are hardcoding it in, then leave this to false.
@@ -91,6 +92,53 @@
91
  });
92
  };
93
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
94
  // Build html for the lightbox and the overlay.
95
  // Attach event handlers to the new DOM elements. click click click
96
  Lightbox.prototype.build = function() {
@@ -162,6 +210,27 @@
162
  return false;
163
  });
164
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
165
  /*
166
  Show context menu for image on right-click
167
 
@@ -388,34 +457,40 @@
388
  // Check to see if the browser supports touch events. If so, we take the conservative approach
389
  // and assume that mouse hover events are not supported and always show prev/next navigation
390
  // arrows in image sets.
391
- var alwaysShowNav = false;
 
392
  try {
393
  document.createEvent('TouchEvent');
394
  alwaysShowNav = (this.options.alwaysShowNavOnTouchDevices) ? true : false;
 
395
  } catch (e) {}
396
 
397
- this.$lightbox.find('.lb-nav').show();
 
398
 
399
- if (this.album.length > 1) {
400
- if (this.options.wrapAround) {
401
- if (alwaysShowNav) {
402
- this.$lightbox.find('.lb-prev, .lb-next').css('opacity', '1');
403
- }
404
- this.$lightbox.find('.lb-prev, .lb-next').show();
405
- } else {
406
- if (this.currentImageIndex > 0) {
407
- this.$lightbox.find('.lb-prev').show();
408
  if (alwaysShowNav) {
409
- this.$lightbox.find('.lb-prev').css('opacity', '1');
410
  }
411
- }
412
- if (this.currentImageIndex < this.album.length - 1) {
413
- this.$lightbox.find('.lb-next').show();
414
- if (alwaysShowNav) {
415
- this.$lightbox.find('.lb-next').css('opacity', '1');
 
 
 
 
 
 
 
 
416
  }
417
  }
418
  }
 
 
419
  }
420
  };
421
 
53
  showImageNumberLabel: true,
54
  wrapAround: false,
55
  disableScrolling: false,
56
+ enableSwipeOnTouchDevices: true,
57
  /*
58
  Sanitize Title
59
  If the caption data is trusted, for example you are hardcoding it in, then leave this to false.
92
  });
93
  };
94
 
95
+ Lightbox.prototype.swipedetect = function(el, callback){
96
+
97
+ var touchsurface = el,
98
+ swipedir,
99
+ startX,
100
+ startY,
101
+ distX,
102
+ distY,
103
+ threshold = 1, //required min distance traveled to be considered swipe
104
+ restraint = 100, // maximum distance allowed at the same time in perpendicular direction
105
+ allowedTime = 300, // maximum time allowed to travel that distance
106
+ elapsedTime,
107
+ startTime,
108
+ handleswipe = callback || function(swipedir){}
109
+
110
+ touchsurface.addEventListener('touchstart', function(e){
111
+ var touchobj = e.changedTouches[0]
112
+ swipedir = 'none'
113
+ dist = 0
114
+ startX = touchobj.pageX
115
+ startY = touchobj.pageY
116
+ startTime = new Date().getTime() // record time when finger first makes contact with surface
117
+ e.preventDefault()
118
+ }, false)
119
+
120
+ touchsurface.addEventListener('touchmove', function(e){
121
+ e.preventDefault() // prevent scrolling when inside DIV
122
+ }, false)
123
+
124
+ touchsurface.addEventListener('touchend', function(e){
125
+ var touchobj = e.changedTouches[0]
126
+ distX = touchobj.pageX - startX // get horizontal dist traveled by finger while in contact with surface
127
+ distY = touchobj.pageY - startY // get vertical dist traveled by finger while in contact with surface
128
+ elapsedTime = new Date().getTime() - startTime // get time elapsed
129
+ if (elapsedTime <= allowedTime){ // first condition for awipe met
130
+ if (Math.abs(distX) >= threshold && Math.abs(distY) <= restraint){ // 2nd condition for horizontal swipe met
131
+ swipedir = (distX < 0)? 'left' : 'right' // if dist traveled is negative, it indicates left swipe
132
+ }
133
+ else if (Math.abs(distY) >= threshold && Math.abs(distX) <= restraint){ // 2nd condition for vertical swipe met
134
+ swipedir = (distY < 0)? 'up' : 'down' // if dist traveled is negative, it indicates up swipe
135
+ }
136
+ }
137
+ handleswipe(swipedir)
138
+ e.preventDefault()
139
+ }, false)
140
+ };
141
+
142
  // Build html for the lightbox and the overlay.
143
  // Attach event handlers to the new DOM elements. click click click
144
  Lightbox.prototype.build = function() {
210
  return false;
211
  });
212
 
213
+ var lightboxContainer = this.$lightbox.find('.lb-container')[0];
214
+ self.swipedetect( lightboxContainer, function( swipedir ){
215
+ // swipedir contains either "none", "left", "right", "top", or "down"
216
+ if ( 'left' == swipedir ) {
217
+
218
+ if (self.currentImageIndex === 0) {
219
+ self.changeImage(self.album.length - 1);
220
+ } else {
221
+ self.changeImage(self.currentImageIndex - 1);
222
+ }
223
+
224
+ }else if ( 'right' == swipedir ) {
225
+ if (self.currentImageIndex === self.album.length - 1) {
226
+ self.changeImage(0);
227
+ } else {
228
+ self.changeImage(self.currentImageIndex + 1);
229
+ }
230
+ }
231
+
232
+ });
233
+
234
  /*
235
  Show context menu for image on right-click
236
 
457
  // Check to see if the browser supports touch events. If so, we take the conservative approach
458
  // and assume that mouse hover events are not supported and always show prev/next navigation
459
  // arrows in image sets.
460
+ var alwaysShowNav = false,
461
+ enableSwipe = false;
462
  try {
463
  document.createEvent('TouchEvent');
464
  alwaysShowNav = (this.options.alwaysShowNavOnTouchDevices) ? true : false;
465
+ enableSwipe = (this.options.enableSwipeOnTouchDevices)? true: false;
466
  } catch (e) {}
467
 
468
+ if ( ! enableSwipe ) {
469
+ this.$lightbox.find('.lb-nav').show();
470
 
471
+ if (this.album.length > 1) {
472
+ if (this.options.wrapAround) {
 
 
 
 
 
 
 
473
  if (alwaysShowNav) {
474
+ this.$lightbox.find('.lb-prev, .lb-next').css('opacity', '1');
475
  }
476
+ this.$lightbox.find('.lb-prev, .lb-next').show();
477
+ } else {
478
+ if (this.currentImageIndex > 0) {
479
+ this.$lightbox.find('.lb-prev').show();
480
+ if (alwaysShowNav) {
481
+ this.$lightbox.find('.lb-prev').css('opacity', '1');
482
+ }
483
+ }
484
+ if (this.currentImageIndex < this.album.length - 1) {
485
+ this.$lightbox.find('.lb-next').show();
486
+ if (alwaysShowNav) {
487
+ this.$lightbox.find('.lb-next').css('opacity', '1');
488
+ }
489
  }
490
  }
491
  }
492
+ }else{
493
+ this.$lightbox.find('.lb-nav').hide();
494
  }
495
  };
496
 
assets/js/lightbox.min.js CHANGED
@@ -1,15 +1 @@
1
- /*!
2
- * Lightbox v2.10.0
3
- * by Lokesh Dhakar
4
- *
5
- * More info:
6
- * http://lokeshdhakar.com/projects/lightbox2/
7
- *
8
- * Copyright 2007, 2018 Lokesh Dhakar
9
- * Released under the MIT license
10
- * https://github.com/lokesh/lightbox2/blob/master/LICENSE
11
- *
12
- * @preserve
13
- */
14
- !function(a,b){"function"==typeof define&&define.amd?define(["jquery"],b):"object"==typeof exports?module.exports=b(require("jquery")):a.lightbox=b(a.jQuery)}(this,function(a){function b(b){this.album=[],this.currentImageIndex=void 0,this.init(),this.options=a.extend({},this.constructor.defaults),this.option(b)}return b.defaults={albumLabel:"Image %1 of %2",alwaysShowNavOnTouchDevices:!1,fadeDuration:600,fitImagesInViewport:!0,imageFadeDuration:600,positionFromTop:50,resizeDuration:700,showImageNumberLabel:!0,wrapAround:!1,disableScrolling:!1,sanitizeTitle:!1},b.prototype.option=function(b){a.extend(this.options,b)},b.prototype.imageCountLabel=function(a,b){return this.options.albumLabel.replace(/%1/g,a).replace(/%2/g,b)},b.prototype.init=function(){var b=this;a(document).ready(function(){b.enable(),b.build()})},b.prototype.enable=function(){var b=this;a("body").on("click","a[rel^=lightbox], area[rel^=lightbox], a[data-lightbox], area[data-lightbox]",function(c){return b.start(a(c.currentTarget)),!1})},b.prototype.build=function(){if(!(a("#lightbox").length>0)){var b=this;a('<div id="lightboxOverlay" class="lightboxOverlay"></div><div id="lightbox" class="lightbox"><div class="lb-outerContainer"><div class="lb-container"><img class="lb-image" src="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==" /><div class="lb-nav"><a class="lb-prev" href="" ></a><a class="lb-next" href="" ></a></div><div class="lb-loader"><a class="lb-cancel"></a></div></div></div><div class="lb-dataContainer"><div class="lb-data"><div class="lb-details"><span class="lb-caption"></span><span class="lb-number"></span></div><div class="lb-closeContainer"><a class="lb-close"></a></div></div></div></div>').appendTo(a("body")),this.$lightbox=a("#lightbox"),this.$overlay=a("#lightboxOverlay"),this.$outerContainer=this.$lightbox.find(".lb-outerContainer"),this.$container=this.$lightbox.find(".lb-container"),this.$image=this.$lightbox.find(".lb-image"),this.$nav=this.$lightbox.find(".lb-nav"),this.containerPadding={top:parseInt(this.$container.css("padding-top"),10),right:parseInt(this.$container.css("padding-right"),10),bottom:parseInt(this.$container.css("padding-bottom"),10),left:parseInt(this.$container.css("padding-left"),10)},this.imageBorderWidth={top:parseInt(this.$image.css("border-top-width"),10),right:parseInt(this.$image.css("border-right-width"),10),bottom:parseInt(this.$image.css("border-bottom-width"),10),left:parseInt(this.$image.css("border-left-width"),10)},this.$overlay.hide().on("click",function(){return b.end(),!1}),this.$lightbox.hide().on("click",function(c){return"lightbox"===a(c.target).attr("id")&&b.end(),!1}),this.$outerContainer.on("click",function(c){return"lightbox"===a(c.target).attr("id")&&b.end(),!1}),this.$lightbox.find(".lb-prev").on("click",function(){return 0===b.currentImageIndex?b.changeImage(b.album.length-1):b.changeImage(b.currentImageIndex-1),!1}),this.$lightbox.find(".lb-next").on("click",function(){return b.currentImageIndex===b.album.length-1?b.changeImage(0):b.changeImage(b.currentImageIndex+1),!1}),this.$nav.on("mousedown",function(a){3===a.which&&(b.$nav.css("pointer-events","none"),b.$lightbox.one("contextmenu",function(){setTimeout(function(){this.$nav.css("pointer-events","auto")}.bind(b),0)}))}),this.$lightbox.find(".lb-loader, .lb-close").on("click",function(){return b.end(),!1})}},b.prototype.start=function(b){function c(a){d.album.push({alt:a.attr("data-alt"),link:a.attr("href"),title:a.attr("data-title")||a.attr("title")})}var d=this,e=a(window);e.on("resize",a.proxy(this.sizeOverlay,this)),a("select, object, embed").css({visibility:"hidden"}),this.sizeOverlay(),this.album=[];var f,g=0,h=b.attr("data-lightbox");if(h){f=a(b.prop("tagName")+'[data-lightbox="'+h+'"]');for(var i=0;i<f.length;i=++i)c(a(f[i])),f[i]===b[0]&&(g=i)}else if("lightbox"===b.attr("rel"))c(b);else{f=a(b.prop("tagName")+'[rel="'+b.attr("rel")+'"]');for(var j=0;j<f.length;j=++j)c(a(f[j])),f[j]===b[0]&&(g=j)}var k=e.scrollTop()+this.options.positionFromTop,l=e.scrollLeft();this.$lightbox.css({top:k+"px",left:l+"px"}).fadeIn(this.options.fadeDuration),this.options.disableScrolling&&a("html").addClass("lb-disable-scrolling"),this.changeImage(g)},b.prototype.changeImage=function(b){var c=this;this.disableKeyboardNav();var d=this.$lightbox.find(".lb-image");this.$overlay.fadeIn(this.options.fadeDuration),a(".lb-loader").fadeIn("slow"),this.$lightbox.find(".lb-image, .lb-nav, .lb-prev, .lb-next, .lb-dataContainer, .lb-numbers, .lb-caption").hide(),this.$outerContainer.addClass("animating");var e=new Image;e.onload=function(){var f,g,h,i,j,k;d.attr({alt:c.album[b].alt,src:c.album[b].link}),a(e),d.width(e.width),d.height(e.height),c.options.fitImagesInViewport&&(k=a(window).width(),j=a(window).height(),i=k-c.containerPadding.left-c.containerPadding.right-c.imageBorderWidth.left-c.imageBorderWidth.right-20,h=j-c.containerPadding.top-c.containerPadding.bottom-c.imageBorderWidth.top-c.imageBorderWidth.bottom-120,c.options.maxWidth&&c.options.maxWidth<i&&(i=c.options.maxWidth),c.options.maxHeight&&c.options.maxHeight<i&&(h=c.options.maxHeight),(e.width>i||e.height>h)&&(e.width/i>e.height/h?(g=i,f=parseInt(e.height/(e.width/g),10),d.width(g),d.height(f)):(f=h,g=parseInt(e.width/(e.height/f),10),d.width(g),d.height(f)))),c.sizeContainer(d.width(),d.height())},e.src=this.album[b].link,this.currentImageIndex=b},b.prototype.sizeOverlay=function(){this.$overlay.width(a(document).width()).height(a(document).height())},b.prototype.sizeContainer=function(a,b){function c(){d.$lightbox.find(".lb-dataContainer").width(g),d.$lightbox.find(".lb-prevLink").height(h),d.$lightbox.find(".lb-nextLink").height(h),d.showImage()}var d=this,e=this.$outerContainer.outerWidth(),f=this.$outerContainer.outerHeight(),g=a+this.containerPadding.left+this.containerPadding.right+this.imageBorderWidth.left+this.imageBorderWidth.right,h=b+this.containerPadding.top+this.containerPadding.bottom+this.imageBorderWidth.top+this.imageBorderWidth.bottom;e!==g||f!==h?this.$outerContainer.animate({width:g,height:h},this.options.resizeDuration,"swing",function(){c()}):c()},b.prototype.showImage=function(){this.$lightbox.find(".lb-loader").stop(!0).hide(),this.$lightbox.find(".lb-image").fadeIn(this.options.imageFadeDuration),this.updateNav(),this.updateDetails(),this.preloadNeighboringImages(),this.enableKeyboardNav()},b.prototype.updateNav=function(){var a=!1;try{document.createEvent("TouchEvent"),a=!!this.options.alwaysShowNavOnTouchDevices}catch(a){}this.$lightbox.find(".lb-nav").show(),this.album.length>1&&(this.options.wrapAround?(a&&this.$lightbox.find(".lb-prev, .lb-next").css("opacity","1"),this.$lightbox.find(".lb-prev, .lb-next").show()):(this.currentImageIndex>0&&(this.$lightbox.find(".lb-prev").show(),a&&this.$lightbox.find(".lb-prev").css("opacity","1")),this.currentImageIndex<this.album.length-1&&(this.$lightbox.find(".lb-next").show(),a&&this.$lightbox.find(".lb-next").css("opacity","1"))))},b.prototype.updateDetails=function(){var b=this;if(void 0!==this.album[this.currentImageIndex].title&&""!==this.album[this.currentImageIndex].title){var c=this.$lightbox.find(".lb-caption");this.options.sanitizeTitle?c.text(this.album[this.currentImageIndex].title):c.html(this.album[this.currentImageIndex].title),c.fadeIn("fast").find("a").on("click",function(b){void 0!==a(this).attr("target")?window.open(a(this).attr("href"),a(this).attr("target")):location.href=a(this).attr("href")})}if(this.album.length>1&&this.options.showImageNumberLabel){var d=this.imageCountLabel(this.currentImageIndex+1,this.album.length);this.$lightbox.find(".lb-number").text(d).fadeIn("fast")}else this.$lightbox.find(".lb-number").hide();this.$outerContainer.removeClass("animating"),this.$lightbox.find(".lb-dataContainer").fadeIn(this.options.resizeDuration,function(){return b.sizeOverlay()})},b.prototype.preloadNeighboringImages=function(){if(this.album.length>this.currentImageIndex+1){(new Image).src=this.album[this.currentImageIndex+1].link}if(this.currentImageIndex>0){(new Image).src=this.album[this.currentImageIndex-1].link}},b.prototype.enableKeyboardNav=function(){a(document).on("keyup.keyboard",a.proxy(this.keyboardAction,this))},b.prototype.disableKeyboardNav=function(){a(document).off(".keyboard")},b.prototype.keyboardAction=function(a){var b=a.keyCode,c=String.fromCharCode(b).toLowerCase();27===b||c.match(/x|o|c/)?this.end():"p"===c||37===b?0!==this.currentImageIndex?this.changeImage(this.currentImageIndex-1):this.options.wrapAround&&this.album.length>1&&this.changeImage(this.album.length-1):"n"!==c&&39!==b||(this.currentImageIndex!==this.album.length-1?this.changeImage(this.currentImageIndex+1):this.options.wrapAround&&this.album.length>1&&this.changeImage(0))},b.prototype.end=function(){this.disableKeyboardNav(),a(window).off("resize",this.sizeOverlay),this.$lightbox.fadeOut(this.options.fadeDuration),this.$overlay.fadeOut(this.options.fadeDuration),a("select, object, embed").css({visibility:"visible"}),this.options.disableScrolling&&a("html").removeClass("lb-disable-scrolling")},new b});
15
- //# sourceMappingURL=lightbox.min.map
1
+ !function(t,i){"function"==typeof define&&define.amd?define(["jquery"],i):"object"==typeof exports?module.exports=i(require("jquery")):t.lightbox=i(t.jQuery)}(this,function(g){function t(t){this.album=[],this.currentImageIndex=void 0,this.init(),this.options=g.extend({},this.constructor.defaults),this.option(t)}return t.defaults={albumLabel:"Image %1 of %2",alwaysShowNavOnTouchDevices:!1,fadeDuration:600,fitImagesInViewport:!0,imageFadeDuration:600,positionFromTop:50,resizeDuration:700,showImageNumberLabel:!0,wrapAround:!1,disableScrolling:!1,enableSwipeOnTouchDevices:!0,sanitizeTitle:!1},t.prototype.option=function(t){g.extend(this.options,t)},t.prototype.imageCountLabel=function(t,i){return this.options.albumLabel.replace(/%1/g,t).replace(/%2/g,i)},t.prototype.init=function(){var t=this;g(document).ready(function(){t.enable(),t.build()})},t.prototype.enable=function(){var i=this;g("body").on("click","a[rel^=lightbox], area[rel^=lightbox], a[data-lightbox], area[data-lightbox]",function(t){return i.start(g(t.currentTarget)),!1})},t.prototype.swipedetect=function(t,i){var e,n,a,o,s,r,h=t,l=i||function(t){};h.addEventListener("touchstart",function(t){var i=t.changedTouches[0];e="none",dist=0,n=i.pageX,a=i.pageY,r=(new Date).getTime(),t.preventDefault()},!1),h.addEventListener("touchmove",function(t){t.preventDefault()},!1),h.addEventListener("touchend",function(t){var i=t.changedTouches[0];o=i.pageX-n,s=i.pageY-a,(new Date).getTime()-r<=300&&(1<=Math.abs(o)&&Math.abs(s)<=100?e=o<0?"left":"right":1<=Math.abs(s)&&Math.abs(o)<=100&&(e=s<0?"up":"down")),l(e),t.preventDefault()},!1)},t.prototype.build=function(){if(!(0<g("#lightbox").length)){var i=this;g('<div id="lightboxOverlay" class="lightboxOverlay"></div><div id="lightbox" class="lightbox"><div class="lb-outerContainer"><div class="lb-container"><img class="lb-image" src="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==" /><div class="lb-nav"><a class="lb-prev" href="" ></a><a class="lb-next" href="" ></a></div><div class="lb-loader"><a class="lb-cancel"></a></div></div></div><div class="lb-dataContainer"><div class="lb-data"><div class="lb-details"><span class="lb-caption"></span><span class="lb-number"></span></div><div class="lb-closeContainer"><a class="lb-close"></a></div></div></div></div>').appendTo(g("body")),this.$lightbox=g("#lightbox"),this.$overlay=g("#lightboxOverlay"),this.$outerContainer=this.$lightbox.find(".lb-outerContainer"),this.$container=this.$lightbox.find(".lb-container"),this.$image=this.$lightbox.find(".lb-image"),this.$nav=this.$lightbox.find(".lb-nav"),this.containerPadding={top:parseInt(this.$container.css("padding-top"),10),right:parseInt(this.$container.css("padding-right"),10),bottom:parseInt(this.$container.css("padding-bottom"),10),left:parseInt(this.$container.css("padding-left"),10)},this.imageBorderWidth={top:parseInt(this.$image.css("border-top-width"),10),right:parseInt(this.$image.css("border-right-width"),10),bottom:parseInt(this.$image.css("border-bottom-width"),10),left:parseInt(this.$image.css("border-left-width"),10)},this.$overlay.hide().on("click",function(){return i.end(),!1}),this.$lightbox.hide().on("click",function(t){return"lightbox"===g(t.target).attr("id")&&i.end(),!1}),this.$outerContainer.on("click",function(t){return"lightbox"===g(t.target).attr("id")&&i.end(),!1}),this.$lightbox.find(".lb-prev").on("click",function(){return 0===i.currentImageIndex?i.changeImage(i.album.length-1):i.changeImage(i.currentImageIndex-1),!1}),this.$lightbox.find(".lb-next").on("click",function(){return i.currentImageIndex===i.album.length-1?i.changeImage(0):i.changeImage(i.currentImageIndex+1),!1});var t=this.$lightbox.find(".lb-container")[0];i.swipedetect(t,function(t){"left"==t?0===i.currentImageIndex?i.changeImage(i.album.length-1):i.changeImage(i.currentImageIndex-1):"right"==t&&(i.currentImageIndex===i.album.length-1?i.changeImage(0):i.changeImage(i.currentImageIndex+1))}),this.$nav.on("mousedown",function(t){3===t.which&&(i.$nav.css("pointer-events","none"),i.$lightbox.one("contextmenu",function(){setTimeout(function(){this.$nav.css("pointer-events","auto")}.bind(i),0)}))}),this.$lightbox.find(".lb-loader, .lb-close").on("click",function(){return i.end(),!1})}},t.prototype.start=function(t){var i=this,e=g(window);e.on("resize",g.proxy(this.sizeOverlay,this)),g("select, object, embed").css({visibility:"hidden"}),this.sizeOverlay(),this.album=[];var n=0;function a(t){i.album.push({alt:t.attr("data-alt"),link:t.attr("href"),title:t.attr("data-title")||t.attr("title")})}var o,s=t.attr("data-lightbox");if(s){o=g(t.prop("tagName")+'[data-lightbox="'+s+'"]');for(var r=0;r<o.length;r=++r)a(g(o[r])),o[r]===t[0]&&(n=r)}else if("lightbox"===t.attr("rel"))a(t);else{o=g(t.prop("tagName")+'[rel="'+t.attr("rel")+'"]');for(var h=0;h<o.length;h=++h)a(g(o[h])),o[h]===t[0]&&(n=h)}var l=e.scrollTop()+this.options.positionFromTop,d=e.scrollLeft();this.$lightbox.css({top:l+"px",left:d+"px"}).fadeIn(this.options.fadeDuration),this.options.disableScrolling&&g("html").addClass("lb-disable-scrolling"),this.changeImage(n)},t.prototype.changeImage=function(s){var r=this;this.disableKeyboardNav();var h=this.$lightbox.find(".lb-image");this.$overlay.fadeIn(this.options.fadeDuration),g(".lb-loader").fadeIn("slow"),this.$lightbox.find(".lb-image, .lb-nav, .lb-prev, .lb-next, .lb-dataContainer, .lb-numbers, .lb-caption").hide(),this.$outerContainer.addClass("animating");var l=new Image;l.onload=function(){var t,i,e,n,a,o;h.attr({alt:r.album[s].alt,src:r.album[s].link}),g(l),h.width(l.width),h.height(l.height),r.options.fitImagesInViewport&&(o=g(window).width(),a=g(window).height(),n=o-r.containerPadding.left-r.containerPadding.right-r.imageBorderWidth.left-r.imageBorderWidth.right-20,e=a-r.containerPadding.top-r.containerPadding.bottom-r.imageBorderWidth.top-r.imageBorderWidth.bottom-120,r.options.maxWidth&&r.options.maxWidth<n&&(n=r.options.maxWidth),r.options.maxHeight&&r.options.maxHeight<n&&(e=r.options.maxHeight),(l.width>n||l.height>e)&&(l.width/n>l.height/e?(i=n,t=parseInt(l.height/(l.width/i),10)):(t=e,i=parseInt(l.width/(l.height/t),10)),h.width(i),h.height(t))),r.sizeContainer(h.width(),h.height())},l.src=this.album[s].link,this.currentImageIndex=s},t.prototype.sizeOverlay=function(){this.$overlay.width(g(document).width()).height(g(document).height())},t.prototype.sizeContainer=function(t,i){var e=this,n=this.$outerContainer.outerWidth(),a=this.$outerContainer.outerHeight(),o=t+this.containerPadding.left+this.containerPadding.right+this.imageBorderWidth.left+this.imageBorderWidth.right,s=i+this.containerPadding.top+this.containerPadding.bottom+this.imageBorderWidth.top+this.imageBorderWidth.bottom;function r(){e.$lightbox.find(".lb-dataContainer").width(o),e.$lightbox.find(".lb-prevLink").height(s),e.$lightbox.find(".lb-nextLink").height(s),e.showImage()}n!==o||a!==s?this.$outerContainer.animate({width:o,height:s},this.options.resizeDuration,"swing",function(){r()}):r()},t.prototype.showImage=function(){this.$lightbox.find(".lb-loader").stop(!0).hide(),this.$lightbox.find(".lb-image").fadeIn(this.options.imageFadeDuration),this.updateNav(),this.updateDetails(),this.preloadNeighboringImages(),this.enableKeyboardNav()},t.prototype.updateNav=function(){var t=!1,i=!1;try{document.createEvent("TouchEvent"),t=!!this.options.alwaysShowNavOnTouchDevices,i=!!this.options.enableSwipeOnTouchDevices}catch(t){}i?this.$lightbox.find(".lb-nav").hide():(this.$lightbox.find(".lb-nav").show(),1<this.album.length&&(this.options.wrapAround?(t&&this.$lightbox.find(".lb-prev, .lb-next").css("opacity","1"),this.$lightbox.find(".lb-prev, .lb-next").show()):(0<this.currentImageIndex&&(this.$lightbox.find(".lb-prev").show(),t&&this.$lightbox.find(".lb-prev").css("opacity","1")),this.currentImageIndex<this.album.length-1&&(this.$lightbox.find(".lb-next").show(),t&&this.$lightbox.find(".lb-next").css("opacity","1")))))},t.prototype.updateDetails=function(){var t=this;if(void 0!==this.album[this.currentImageIndex].title&&""!==this.album[this.currentImageIndex].title){var i=this.$lightbox.find(".lb-caption");this.options.sanitizeTitle?i.text(this.album[this.currentImageIndex].title):i.html(this.album[this.currentImageIndex].title),i.fadeIn("fast").find("a").on("click",function(t){void 0!==g(this).attr("target")?window.open(g(this).attr("href"),g(this).attr("target")):location.href=g(this).attr("href")})}if(1<this.album.length&&this.options.showImageNumberLabel){var e=this.imageCountLabel(this.currentImageIndex+1,this.album.length);this.$lightbox.find(".lb-number").text(e).fadeIn("fast")}else this.$lightbox.find(".lb-number").hide();this.$outerContainer.removeClass("animating"),this.$lightbox.find(".lb-dataContainer").fadeIn(this.options.resizeDuration,function(){return t.sizeOverlay()})},t.prototype.preloadNeighboringImages=function(){this.album.length>this.currentImageIndex+1&&((new Image).src=this.album[this.currentImageIndex+1].link);0<this.currentImageIndex&&((new Image).src=this.album[this.currentImageIndex-1].link)},t.prototype.enableKeyboardNav=function(){g(document).on("keyup.keyboard",g.proxy(this.keyboardAction,this))},t.prototype.disableKeyboardNav=function(){g(document).off(".keyboard")},t.prototype.keyboardAction=function(t){var i=t.keyCode,e=String.fromCharCode(i).toLowerCase();27===i||e.match(/x|o|c/)?this.end():"p"===e||37===i?0!==this.currentImageIndex?this.changeImage(this.currentImageIndex-1):this.options.wrapAround&&1<this.album.length&&this.changeImage(this.album.length-1):"n"!==e&&39!==i||(this.currentImageIndex!==this.album.length-1?this.changeImage(this.currentImageIndex+1):this.options.wrapAround&&1<this.album.length&&this.changeImage(0))},t.prototype.end=function(){this.disableKeyboardNav(),g(window).off("resize",this.sizeOverlay),this.$lightbox.fadeOut(this.options.fadeDuration),this.$overlay.fadeOut(this.options.fadeDuration),g("select, object, embed").css({visibility:"visible"}),this.options.disableScrolling&&g("html").removeClass("lb-disable-scrolling")},new t});
 
 
 
 
 
 
 
 
 
 
 
 
 
 
assets/js/{packery.pkgd.js → packery.js} RENAMED
File without changes
assets/js/packery.min.js ADDED
@@ -0,0 +1 @@
 
1
+ !function(e,i){"use strict";"function"==typeof define&&define.amd?define("jquery-bridget/jquery-bridget",["jquery"],function(t){i(e,t)}):"object"==typeof module&&module.exports?module.exports=i(e,require("jquery")):e.jQueryBridget=i(e,e.jQuery)}(window,function(t,e){"use strict";var d=Array.prototype.slice,i=t.console,l=void 0===i?function(){}:function(t){i.error(t)};function n(u,o,c){(c=c||e||t.jQuery)&&(o.prototype.option||(o.prototype.option=function(t){c.isPlainObject(t)&&(this.options=c.extend(!0,this.options,t))}),c.fn[u]=function(t){if("string"!=typeof t)return n=t,this.each(function(t,e){var i=c.data(e,u);i?(i.option(n),i._init()):(i=new o(e,n),c.data(e,u,i))}),this;var e,s,r,a,h,n,i=d.call(arguments,1);return r=i,h="$()."+u+'("'+(s=t)+'")',(e=this).each(function(t,e){var i=c.data(e,u);if(i){var n=i[s];if(n&&"_"!=s.charAt(0)){var o=n.apply(i,r);a=void 0===a?o:a}else l(h+" is not a valid method")}else l(u+" not initialized. Cannot call methods, i.e. "+h)}),void 0!==a?a:e},s(c))}function s(t){!t||t&&t.bridget||(t.bridget=n)}return s(e||t.jQuery),n}),function(t,e){"use strict";"function"==typeof define&&define.amd?define("get-size/get-size",[],function(){return e()}):"object"==typeof module&&module.exports?module.exports=e():t.getSize=e()}(window,function(){"use strict";function y(t){var e=parseFloat(t);return-1==t.indexOf("%")&&!isNaN(e)&&e}var i="undefined"==typeof console?function(){}:function(t){console.error(t)},v=["paddingLeft","paddingRight","paddingTop","paddingBottom","marginLeft","marginRight","marginTop","marginBottom","borderLeftWidth","borderRightWidth","borderTopWidth","borderBottomWidth"],_=v.length;function x(t){var e=getComputedStyle(t);return e||i("Style returned "+e+". Are you running this code in a hidden iframe on Firefox? See http://bit.ly/getsizebug1"),e}var b,E=!1;function T(t){if(function(){if(!E){E=!0;var t=document.createElement("div");t.style.width="200px",t.style.padding="1px 2px 3px 4px",t.style.borderStyle="solid",t.style.borderWidth="1px 2px 3px 4px",t.style.boxSizing="border-box";var e=document.body||document.documentElement;e.appendChild(t);var i=x(t);T.isBoxSizeOuter=b=200==y(i.width),e.removeChild(t)}}(),"string"==typeof t&&(t=document.querySelector(t)),t&&"object"==typeof t&&t.nodeType){var e=x(t);if("none"==e.display)return function(){for(var t={width:0,height:0,innerWidth:0,innerHeight:0,outerWidth:0,outerHeight:0},e=0;e<_;e++)t[v[e]]=0;return t}();var i={};i.width=t.offsetWidth,i.height=t.offsetHeight;for(var n=i.isBorderBox="border-box"==e.boxSizing,o=0;o<_;o++){var s=v[o],r=e[s],a=parseFloat(r);i[s]=isNaN(a)?0:a}var h=i.paddingLeft+i.paddingRight,u=i.paddingTop+i.paddingBottom,c=i.marginLeft+i.marginRight,d=i.marginTop+i.marginBottom,l=i.borderLeftWidth+i.borderRightWidth,f=i.borderTopWidth+i.borderBottomWidth,p=n&&b,g=y(e.width);!1!==g&&(i.width=g+(p?0:h+l));var m=y(e.height);return!1!==m&&(i.height=m+(p?0:u+f)),i.innerWidth=i.width-(h+l),i.innerHeight=i.height-(u+f),i.outerWidth=i.width+c,i.outerHeight=i.height+d,i}}return T}),function(t,e){"function"==typeof define&&define.amd?define("ev-emitter/ev-emitter",e):"object"==typeof module&&module.exports?module.exports=e():t.EvEmitter=e()}(this,function(){function t(){}var e=t.prototype;return e.on=function(t,e){if(t&&e){var i=this._events=this._events||{},n=i[t]=i[t]||[];return-1==n.indexOf(e)&&n.push(e),this}},e.once=function(t,e){if(t&&e){this.on(t,e);var i=this._onceEvents=this._onceEvents||{};return(i[t]=i[t]||{})[e]=!0,this}},e.off=function(t,e){var i=this._events&&this._events[t];if(i&&i.length){var n=i.indexOf(e);return-1!=n&&i.splice(n,1),this}},e.emitEvent=function(t,e){var i=this._events&&this._events[t];if(i&&i.length){var n=0,o=i[n];e=e||[];for(var s=this._onceEvents&&this._onceEvents[t];o;){var r=s&&s[o];r&&(this.off(t,o),delete s[o]),o.apply(this,e),o=i[n+=r?0:1]}return this}},t}),function(t,e){"use strict";"function"==typeof define&&define.amd?define("desandro-matches-selector/matches-selector",e):"object"==typeof module&&module.exports?module.exports=e():t.matchesSelector=e()}(window,function(){"use strict";var i=function(){var t=Element.prototype;if(t.matches)return"matches";if(t.matchesSelector)return"matchesSelector";for(var e=["webkit","moz","ms","o"],i=0;i<e.length;i++){var n=e[i]+"MatchesSelector";if(t[n])return n}}();return function(t,e){return t[i](e)}}),function(e,i){"function"==typeof define&&define.amd?define("fizzy-ui-utils/utils",["desandro-matches-selector/matches-selector"],function(t){return i(e,t)}):"object"==typeof module&&module.exports?module.exports=i(e,require("desandro-matches-selector")):e.fizzyUIUtils=i(e,e.matchesSelector)}(window,function(u,s){var c={extend:function(t,e){for(var i in e)t[i]=e[i];return t},modulo:function(t,e){return(t%e+e)%e},makeArray:function(t){var e=[];if(Array.isArray(t))e=t;else if(t&&"number"==typeof t.length)for(var i=0;i<t.length;i++)e.push(t[i]);else e.push(t);return e},removeFrom:function(t,e){var i=t.indexOf(e);-1!=i&&t.splice(i,1)},getParent:function(t,e){for(;t!=document.body;)if(t=t.parentNode,s(t,e))return t},getQueryElement:function(t){return"string"==typeof t?document.querySelector(t):t},handleEvent:function(t){var e="on"+t.type;this[e]&&this[e](t)},filterFindElements:function(t,n){t=c.makeArray(t);var o=[];return t.forEach(function(t){if(t instanceof HTMLElement)if(n){s(t,n)&&o.push(t);for(var e=t.querySelectorAll(n),i=0;i<e.length;i++)o.push(e[i])}else o.push(t)}),o},debounceMethod:function(t,e,n){var o=t.prototype[e],s=e+"Timeout";t.prototype[e]=function(){var t=this[s];t&&clearTimeout(t);var e=arguments,i=this;this[s]=setTimeout(function(){o.apply(i,e),delete i[s]},n||100)}},docReady:function(t){"complete"==document.readyState?t():document.addEventListener("DOMContentLoaded",t)},toDashed:function(t){return t.replace(/(.)([A-Z])/g,function(t,e,i){return e+"-"+i}).toLowerCase()}},d=u.console;return c.htmlInit=function(a,h){c.docReady(function(){var t=c.toDashed(h),o="data-"+t,e=document.querySelectorAll("["+o+"]"),i=document.querySelectorAll(".js-"+t),n=c.makeArray(e).concat(c.makeArray(i)),s=o+"-options",r=u.jQuery;n.forEach(function(e){var t,i=e.getAttribute(o)||e.getAttribute(s);try{t=i&&JSON.parse(i)}catch(t){return void(d&&d.error("Error parsing "+o+" on "+e.className+": "+t))}var n=new a(e,t);r&&r.data(e,h,n)})})},c}),function(t,e){"function"==typeof define&&define.amd?define("outlayer/item",["ev-emitter/ev-emitter","get-size/get-size"],e):"object"==typeof module&&module.exports?module.exports=e(require("ev-emitter"),require("get-size")):(t.Outlayer={},t.Outlayer.Item=e(t.EvEmitter,t.getSize))}(window,function(t,e){"use strict";var i=document.documentElement.style,n="string"==typeof i.transition?"transition":"WebkitTransition",o="string"==typeof i.transform?"transform":"WebkitTransform",s={WebkitTransition:"webkitTransitionEnd",transition:"transitionend"}[n],r={transform:o,transition:n,transitionDuration:n+"Duration",transitionProperty:n+"Property",transitionDelay:n+"Delay"};function a(t,e){t&&(this.element=t,this.layout=e,this.position={x:0,y:0},this._create())}var h=a.prototype=Object.create(t.prototype);h.constructor=a,h._create=function(){this._transn={ingProperties:{},clean:{},onEnd:{}},this.css({position:"absolute"})},h.handleEvent=function(t){var e="on"+t.type;this[e]&&this[e](t)},h.getSize=function(){this.size=e(this.element)},h.css=function(t){var e=this.element.style;for(var i in t){e[r[i]||i]=t[i]}},h.getPosition=function(){var t=getComputedStyle(this.element),e=this.layout._getOption("originLeft"),i=this.layout._getOption("originTop"),n=t[e?"left":"right"],o=t[i?"top":"bottom"],s=this.layout.size,r=-1!=n.indexOf("%")?parseFloat(n)/100*s.width:parseInt(n,10),a=-1!=o.indexOf("%")?parseFloat(o)/100*s.height:parseInt(o,10);r=isNaN(r)?0:r,a=isNaN(a)?0:a,r-=e?s.paddingLeft:s.paddingRight,a-=i?s.paddingTop:s.paddingBottom,this.position.x=r,this.position.y=a},h.layoutPosition=function(){var t=this.layout.size,e={},i=this.layout._getOption("originLeft"),n=this.layout._getOption("originTop"),o=i?"paddingLeft":"paddingRight",s=i?"left":"right",r=i?"right":"left",a=this.position.x+t[o];e[s]=this.getXValue(a),e[r]="";var h=n?"paddingTop":"paddingBottom",u=n?"top":"bottom",c=n?"bottom":"top",d=this.position.y+t[h];e[u]=this.getYValue(d),e[c]="",this.css(e),this.emitEvent("layout",[this])},h.getXValue=function(t){var e=this.layout._getOption("horizontal");return this.layout.options.percentPosition&&!e?t/this.layout.size.width*100+"%":t+"px"},h.getYValue=function(t){var e=this.layout._getOption("horizontal");return this.layout.options.percentPosition&&e?t/this.layout.size.height*100+"%":t+"px"},h._transitionTo=function(t,e){this.getPosition();var i=this.position.x,n=this.position.y,o=parseInt(t,10),s=parseInt(e,10),r=o===this.position.x&&s===this.position.y;if(this.setPosition(t,e),!r||this.isTransitioning){var a=t-i,h=e-n,u={};u.transform=this.getTranslate(a,h),this.transition({to:u,onTransitionEnd:{transform:this.layoutPosition},isCleaning:!0})}else this.layoutPosition()},h.getTranslate=function(t,e){return"translate3d("+(t=this.layout._getOption("originLeft")?t:-t)+"px, "+(e=this.layout._getOption("originTop")?e:-e)+"px, 0)"},h.goTo=function(t,e){this.setPosition(t,e),this.layoutPosition()},h.moveTo=h._transitionTo,h.setPosition=function(t,e){this.position.x=parseInt(t,10),this.position.y=parseInt(e,10)},h._nonTransition=function(t){for(var e in this.css(t.to),t.isCleaning&&this._removeStyles(t.to),t.onTransitionEnd)t.onTransitionEnd[e].call(this)},h.transition=function(t){if(parseFloat(this.layout.options.transitionDuration)){var e=this._transn;for(var i in t.onTransitionEnd)e.onEnd[i]=t.onTransitionEnd[i];for(i in t.to)e.ingProperties[i]=!0,t.isCleaning&&(e.clean[i]=!0);if(t.from){this.css(t.from);this.element.offsetHeight;null}this.enableTransition(t.to),this.css(t.to),this.isTransitioning=!0}else this._nonTransition(t)};var u="opacity,"+o.replace(/([A-Z])/g,function(t){return"-"+t.toLowerCase()});h.enableTransition=function(){if(!this.isTransitioning){var t=this.layout.options.transitionDuration;t="number"==typeof t?t+"ms":t,this.css({transitionProperty:u,transitionDuration:t,transitionDelay:this.staggerDelay||0}),this.element.addEventListener(s,this,!1)}},h.onwebkitTransitionEnd=function(t){this.ontransitionend(t)},h.onotransitionend=function(t){this.ontransitionend(t)};var c={"-webkit-transform":"transform"};h.ontransitionend=function(t){if(t.target===this.element){var e=this._transn,i=c[t.propertyName]||t.propertyName;if(delete e.ingProperties[i],function(t){for(var e in t)return!1;return!0}(e.ingProperties)&&this.disableTransition(),i in e.clean&&(this.element.style[t.propertyName]="",delete e.clean[i]),i in e.onEnd)e.onEnd[i].call(this),delete e.onEnd[i];this.emitEvent("transitionEnd",[this])}},h.disableTransition=function(){this.removeTransitionStyles(),this.element.removeEventListener(s,this,!1),this.isTransitioning=!1},h._removeStyles=function(t){var e={};for(var i in t)e[i]="";this.css(e)};var d={transitionProperty:"",transitionDuration:"",transitionDelay:""};return h.removeTransitionStyles=function(){this.css(d)},h.stagger=function(t){t=isNaN(t)?0:t,this.staggerDelay=t+"ms"},h.removeElem=function(){this.element.parentNode.removeChild(this.element),this.css({display:""}),this.emitEvent("remove",[this])},h.remove=function(){n&&parseFloat(this.layout.options.transitionDuration)?(this.once("transitionEnd",function(){this.removeElem()}),this.hide()):this.removeElem()},h.reveal=function(){delete this.isHidden,this.css({display:""});var t=this.layout.options,e={};e[this.getHideRevealTransitionEndProperty("visibleStyle")]=this.onRevealTransitionEnd,this.transition({from:t.hiddenStyle,to:t.visibleStyle,isCleaning:!0,onTransitionEnd:e})},h.onRevealTransitionEnd=function(){this.isHidden||this.emitEvent("reveal")},h.getHideRevealTransitionEndProperty=function(t){var e=this.layout.options[t];if(e.opacity)return"opacity";for(var i in e)return i},h.hide=function(){this.isHidden=!0,this.css({display:""});var t=this.layout.options,e={};e[this.getHideRevealTransitionEndProperty("hiddenStyle")]=this.onHideTransitionEnd,this.transition({from:t.visibleStyle,to:t.hiddenStyle,isCleaning:!0,onTransitionEnd:e})},h.onHideTransitionEnd=function(){this.isHidden&&(this.css({display:"none"}),this.emitEvent("hide"))},h.destroy=function(){this.css({position:"",left:"",right:"",top:"",bottom:"",transition:"",transform:""})},a}),function(o,s){"use strict";"function"==typeof define&&define.amd?define("outlayer/outlayer",["ev-emitter/ev-emitter","get-size/get-size","fizzy-ui-utils/utils","./item"],function(t,e,i,n){return s(o,t,e,i,n)}):"object"==typeof module&&module.exports?module.exports=s(o,require("ev-emitter"),require("get-size"),require("fizzy-ui-utils"),require("./item")):o.Outlayer=s(o,o.EvEmitter,o.getSize,o.fizzyUIUtils,o.Outlayer.Item)}(window,function(t,e,o,s,n){"use strict";var r=t.console,a=t.jQuery,i=function(){},h=0,u={};function c(t,e){var i=s.getQueryElement(t);if(i){this.element=i,a&&(this.$element=a(this.element)),this.options=s.extend({},this.constructor.defaults),this.option(e);var n=++h;this.element.outlayerGUID=n,(u[n]=this)._create(),this._getOption("initLayout")&&this.layout()}else r&&r.error("Bad element for "+this.constructor.namespace+": "+(i||t))}c.namespace="outlayer",c.Item=n,c.defaults={containerStyle:{position:"relative"},initLayout:!0,originLeft:!0,originTop:!0,resize:!0,resizeContainer:!0,transitionDuration:"0.4s",hiddenStyle:{opacity:0,transform:"scale(0.001)"},visibleStyle:{opacity:1,transform:"scale(1)"}};var d=c.prototype;function l(t){function e(){t.apply(this,arguments)}return(e.prototype=Object.create(t.prototype)).constructor=e}s.extend(d,e.prototype),d.option=function(t){s.extend(this.options,t)},d._getOption=function(t){var e=this.constructor.compatOptions[t];return e&&void 0!==this.options[e]?this.options[e]:this.options[t]},c.compatOptions={initLayout:"isInitLayout",horizontal:"isHorizontal",layoutInstant:"isLayoutInstant",originLeft:"isOriginLeft",originTop:"isOriginTop",resize:"isResizeBound",resizeContainer:"isResizingContainer"},d._create=function(){this.reloadItems(),this.stamps=[],this.stamp(this.options.stamp),s.extend(this.element.style,this.options.containerStyle),this._getOption("resize")&&this.bindResize()},d.reloadItems=function(){this.items=this._itemize(this.element.children)},d._itemize=function(t){for(var e=this._filterFindItemElements(t),i=this.constructor.Item,n=[],o=0;o<e.length;o++){var s=new i(e[o],this);n.push(s)}return n},d._filterFindItemElements=function(t){return s.filterFindElements(t,this.options.itemSelector)},d.getItemElements=function(){return this.items.map(function(t){return t.element})},d.layout=function(){this._resetLayout(),this._manageStamps();var t=this._getOption("layoutInstant"),e=void 0!==t?t:!this._isLayoutInited;this.layoutItems(this.items,e),this._isLayoutInited=!0},d._init=d.layout,d._resetLayout=function(){this.getSize()},d.getSize=function(){this.size=o(this.element)},d._getMeasurement=function(t,e){var i,n=this.options[t];this[t]=n?("string"==typeof n?i=this.element.querySelector(n):n instanceof HTMLElement&&(i=n),i?o(i)[e]:n):0},d.layoutItems=function(t,e){t=this._getItemsForLayout(t),this._layoutItems(t,e),this._postLayout()},d._getItemsForLayout=function(t){return t.filter(function(t){return!t.isIgnored})},d._layoutItems=function(t,i){if(this._emitCompleteOnItems("layout",t),t&&t.length){var n=[];t.forEach(function(t){var e=this._getItemLayoutPosition(t);e.item=t,e.isInstant=i||t.isLayoutInstant,n.push(e)},this),this._processLayoutQueue(n)}},d._getItemLayoutPosition=function(){return{x:0,y:0}},d._processLayoutQueue=function(t){this.updateStagger(),t.forEach(function(t,e){this._positionItem(t.item,t.x,t.y,t.isInstant,e)},this)},d.updateStagger=function(){var t=this.options.stagger;if(null!=t)return this.stagger=function(t){if("number"==typeof t)return t;var e=t.match(/(^\d*\.?\d*)(\w*)/),i=e&&e[1],n=e&&e[2];if(!i.length)return 0;i=parseFloat(i);var o=f[n]||1;return i*o}(t),this.stagger;this.stagger=0},d._positionItem=function(t,e,i,n,o){n?t.goTo(e,i):(t.stagger(o*this.stagger),t.moveTo(e,i))},d._postLayout=function(){this.resizeContainer()},d.resizeContainer=function(){if(this._getOption("resizeContainer")){var t=this._getContainerSize();t&&(this._setContainerMeasure(t.width,!0),this._setContainerMeasure(t.height,!1))}},d._getContainerSize=i,d._setContainerMeasure=function(t,e){if(void 0!==t){var i=this.size;i.isBorderBox&&(t+=e?i.paddingLeft+i.paddingRight+i.borderLeftWidth+i.borderRightWidth:i.paddingBottom+i.paddingTop+i.borderTopWidth+i.borderBottomWidth),t=Math.max(t,0),this.element.style[e?"width":"height"]=t+"px"}},d._emitCompleteOnItems=function(e,t){var i=this;function n(){i.dispatchEvent(e+"Complete",null,[t])}var o=t.length;if(t&&o){var s=0;t.forEach(function(t){t.once(e,r)})}else n();function r(){++s==o&&n()}},d.dispatchEvent=function(t,e,i){var n=e?[e].concat(i):i;if(this.emitEvent(t,n),a)if(this.$element=this.$element||a(this.element),e){var o=a.Event(e);o.type=t,this.$element.trigger(o,i)}else this.$element.trigger(t,i)},d.ignore=function(t){var e=this.getItem(t);e&&(e.isIgnored=!0)},d.unignore=function(t){var e=this.getItem(t);e&&delete e.isIgnored},d.stamp=function(t){(t=this._find(t))&&(this.stamps=this.stamps.concat(t),t.forEach(this.ignore,this))},d.unstamp=function(t){(t=this._find(t))&&t.forEach(function(t){s.removeFrom(this.stamps,t),this.unignore(t)},this)},d._find=function(t){if(t)return"string"==typeof t&&(t=this.element.querySelectorAll(t)),t=s.makeArray(t)},d._manageStamps=function(){this.stamps&&this.stamps.length&&(this._getBoundingRect(),this.stamps.forEach(this._manageStamp,this))},d._getBoundingRect=function(){var t=this.element.getBoundingClientRect(),e=this.size;this._boundingRect={left:t.left+e.paddingLeft+e.borderLeftWidth,top:t.top+e.paddingTop+e.borderTopWidth,right:t.right-(e.paddingRight+e.borderRightWidth),bottom:t.bottom-(e.paddingBottom+e.borderBottomWidth)}},d._manageStamp=i,d._getElementOffset=function(t){var e=t.getBoundingClientRect(),i=this._boundingRect,n=o(t);return{left:e.left-i.left-n.marginLeft,top:e.top-i.top-n.marginTop,right:i.right-e.right-n.marginRight,bottom:i.bottom-e.bottom-n.marginBottom}},d.handleEvent=s.handleEvent,d.bindResize=function(){t.addEventListener("resize",this),this.isResizeBound=!0},d.unbindResize=function(){t.removeEventListener("resize",this),this.isResizeBound=!1},d.onresize=function(){this.resize()},s.debounceMethod(c,"onresize",100),d.resize=function(){this.isResizeBound&&this.needsResizeLayout()&&this.layout()},d.needsResizeLayout=function(){var t=o(this.element);return this.size&&t&&t.innerWidth!==this.size.innerWidth},d.addItems=function(t){var e=this._itemize(t);return e.length&&(this.items=this.items.concat(e)),e},d.appended=function(t){var e=this.addItems(t);e.length&&(this.layoutItems(e,!0),this.reveal(e))},d.prepended=function(t){var e=this._itemize(t);if(e.length){var i=this.items.slice(0);this.items=e.concat(i),this._resetLayout(),this._manageStamps(),this.layoutItems(e,!0),this.reveal(e),this.layoutItems(i)}},d.reveal=function(t){if(this._emitCompleteOnItems("reveal",t),t&&t.length){var i=this.updateStagger();t.forEach(function(t,e){t.stagger(e*i),t.reveal()})}},d.hide=function(t){if(this._emitCompleteOnItems("hide",t),t&&t.length){var i=this.updateStagger();t.forEach(function(t,e){t.stagger(e*i),t.hide()})}},d.revealItemElements=function(t){var e=this.getItems(t);this.reveal(e)},d.hideItemElements=function(t){var e=this.getItems(t);this.hide(e)},d.getItem=function(t){for(var e=0;e<this.items.length;e++){var i=this.items[e];if(i.element==t)return i}},d.getItems=function(t){t=s.makeArray(t);var i=[];return t.forEach(function(t){var e=this.getItem(t);e&&i.push(e)},this),i},d.remove=function(t){var e=this.getItems(t);this._emitCompleteOnItems("remove",e),e&&e.length&&e.forEach(function(t){t.remove(),s.removeFrom(this.items,t)},this)},d.destroy=function(){var t=this.element.style;t.height="",t.position="",t.width="",this.items.forEach(function(t){t.destroy()}),this.unbindResize();var e=this.element.outlayerGUID;delete u[e],delete this.element.outlayerGUID,a&&a.removeData(this.element,this.constructor.namespace)},c.data=function(t){var e=(t=s.getQueryElement(t))&&t.outlayerGUID;return e&&u[e]},c.create=function(t,e){var i=l(c);return i.defaults=s.extend({},c.defaults),s.extend(i.defaults,e),i.compatOptions=s.extend({},c.compatOptions),i.namespace=t,i.data=c.data,i.Item=l(n),s.htmlInit(i,t),a&&a.bridget&&a.bridget(t,i),i};var f={ms:1,s:1e3};return c.Item=n,c}),function(t,e){"function"==typeof define&&define.amd?define("packery/js/rect",e):"object"==typeof module&&module.exports?module.exports=e():(t.Packery=t.Packery||{},t.Packery.Rect=e())}(window,function(){"use strict";function a(t){for(var e in a.defaults)this[e]=a.defaults[e];for(e in t)this[e]=t[e]}a.defaults={x:0,y:0,width:0,height:0};var t=a.prototype;return t.contains=function(t){var e=t.width||0,i=t.height||0;return this.x<=t.x&&this.y<=t.y&&this.x+this.width>=t.x+e&&this.y+this.height>=t.y+i},t.overlaps=function(t){var e=this.x+this.width,i=this.y+this.height,n=t.x+t.width,o=t.y+t.height;return this.x<n&&e>t.x&&this.y<o&&i>t.y},t.getMaximalFreeRects=function(t){if(!this.overlaps(t))return!1;var e,i=[],n=this.x+this.width,o=this.y+this.height,s=t.x+t.width,r=t.y+t.height;return this.y<t.y&&(e=new a({x:this.x,y:this.y,width:this.width,height:t.y-this.y}),i.push(e)),s<n&&(e=new a({x:s,y:this.y,width:n-s,height:this.height}),i.push(e)),r<o&&(e=new a({x:this.x,y:r,width:this.width,height:o-r}),i.push(e)),this.x<t.x&&(e=new a({x:this.x,y:this.y,width:t.x-this.x,height:this.height}),i.push(e)),i},t.canFit=function(t){return this.width>=t.width&&this.height>=t.height},a}),function(t,e){if("function"==typeof define&&define.amd)define("packery/js/packer",["./rect"],e);else if("object"==typeof module&&module.exports)module.exports=e(require("./rect"));else{var i=t.Packery=t.Packery||{};i.Packer=e(i.Rect)}}(window,function(e){"use strict";function t(t,e,i){this.width=t||0,this.height=e||0,this.sortDirection=i||"downwardLeftToRight",this.reset()}var i=t.prototype;i.reset=function(){this.spaces=[];var t=new e({x:0,y:0,width:this.width,height:this.height});this.spaces.push(t),this.sorter=n[this.sortDirection]||n.downwardLeftToRight},i.pack=function(t){for(var e=0;e<this.spaces.length;e++){var i=this.spaces[e];if(i.canFit(t)){this.placeInSpace(t,i);break}}},i.columnPack=function(t){for(var e=0;e<this.spaces.length;e++){var i=this.spaces[e];if(i.x<=t.x&&i.x+i.width>=t.x+t.width&&i.height>=t.height-.01){t.y=i.y,this.placed(t);break}}},i.rowPack=function(t){for(var e=0;e<this.spaces.length;e++){var i=this.spaces[e];if(i.y<=t.y&&i.y+i.height>=t.y+t.height&&i.width>=t.width-.01){t.x=i.x,this.placed(t);break}}},i.placeInSpace=function(t,e){t.x=e.x,t.y=e.y,this.placed(t)},i.placed=function(t){for(var e=[],i=0;i<this.spaces.length;i++){var n=this.spaces[i],o=n.getMaximalFreeRects(t);o?e.push.apply(e,o):e.push(n)}this.spaces=e,this.mergeSortSpaces()},i.mergeSortSpaces=function(){t.mergeRects(this.spaces),this.spaces.sort(this.sorter)},i.addSpace=function(t){this.spaces.push(t),this.mergeSortSpaces()},t.mergeRects=function(t){var e=0,i=t[e];t:for(;i;){for(var n=0,o=t[e+n];o;){if(o==i)n++;else{if(o.contains(i)){t.splice(e,1),i=t[e];continue t}i.contains(o)?t.splice(e+n,1):n++}o=t[e+n]}i=t[++e]}return t};var n={downwardLeftToRight:function(t,e){return t.y-e.y||t.x-e.x},rightwardTopToBottom:function(t,e){return t.x-e.x||t.y-e.y}};return t}),function(t,e){"function"==typeof define&&define.amd?define("packery/js/item",["outlayer/outlayer","./rect"],e):"object"==typeof module&&module.exports?module.exports=e(require("outlayer"),require("./rect")):t.Packery.Item=e(t.Outlayer,t.Packery.Rect)}(window,function(t,e){"use strict";var i="string"==typeof document.documentElement.style.transform?"transform":"WebkitTransform",n=function(){t.Item.apply(this,arguments)},o=n.prototype=Object.create(t.Item.prototype),s=o._create;o._create=function(){s.call(this),this.rect=new e};var r=o.moveTo;return o.moveTo=function(t,e){var i=Math.abs(this.position.x-t),n=Math.abs(this.position.y-e);this.layout.dragItemCount&&!this.isPlacing&&!this.isTransitioning&&i<1&&n<1?this.goTo(t,e):r.apply(this,arguments)},o.enablePlacing=function(){this.removeTransitionStyles(),this.isTransitioning&&i&&(this.element.style[i]="none"),this.isTransitioning=!1,this.getSize(),this.layout._setRectSize(this.element,this.rect),this.isPlacing=!0},o.disablePlacing=function(){this.isPlacing=!1},o.removeElem=function(){this.element.parentNode.removeChild(this.element),this.layout.packer.addSpace(this.rect),this.emitEvent("remove",[this])},o.showDropPlaceholder=function(){var t=this.dropPlaceholder;t||((t=this.dropPlaceholder=document.createElement("div")).className="packery-drop-placeholder",t.style.position="absolute"),t.style.width=this.size.width+"px",t.style.height=this.size.height+"px",this.positionDropPlaceholder(),this.layout.element.appendChild(t)},o.positionDropPlaceholder=function(){this.dropPlaceholder.style[i]="translate("+this.rect.x+"px, "+this.rect.y+"px)"},o.hideDropPlaceholder=function(){var t=this.dropPlaceholder.parentNode;t&&t.removeChild(this.dropPlaceholder)},n}),function(t,e){"function"==typeof define&&define.amd?define(["get-size/get-size","outlayer/outlayer","packery/js/rect","packery/js/packer","packery/js/item"],e):"object"==typeof module&&module.exports?module.exports=e(require("get-size"),require("outlayer"),require("./rect"),require("./packer"),require("./item")):t.Packery=e(t.getSize,t.Outlayer,t.Packery.Rect,t.Packery.Packer,t.Packery.Item)}(window,function(c,t,g,e,i){"use strict";g.prototype.canFit=function(t){return this.width>=t.width-1&&this.height>=t.height-1};var n=t.create("packery");n.Item=i;var o=n.prototype;function s(t,e){return t.position.y-e.position.y||t.position.x-e.position.x}function r(t,e){return t.position.x-e.position.x||t.position.y-e.position.y}o._create=function(){t.prototype._create.call(this),this.packer=new e,this.shiftPacker=new e,this.isEnabled=!0,this.dragItemCount=0;var i=this;this.handleDraggabilly={dragStart:function(){i.itemDragStart(this.element)},dragMove:function(){i.itemDragMove(this.element,this.position.x,this.position.y)},dragEnd:function(){i.itemDragEnd(this.element)}},this.handleUIDraggable={start:function(t,e){e&&i.itemDragStart(t.currentTarget)},drag:function(t,e){e&&i.itemDragMove(t.currentTarget,e.position.left,e.position.top)},stop:function(t,e){e&&i.itemDragEnd(t.currentTarget)}}},o._resetLayout=function(){var t,e,i;this.getSize(),this._getMeasurements(),i=this._getOption("horizontal")?(t=1/0,e=this.size.innerHeight+this.gutter,"rightwardTopToBottom"):(t=this.size.innerWidth+this.gutter,e=1/0,"downwardLeftToRight"),this.packer.width=this.shiftPacker.width=t,this.packer.height=this.shiftPacker.height=e,this.packer.sortDirection=this.shiftPacker.sortDirection=i,this.packer.reset(),this.maxY=0,this.maxX=0},o._getMeasurements=function(){this._getMeasurement("columnWidth","width"),this._getMeasurement("rowHeight","height"),this._getMeasurement("gutter","width")},o._getItemLayoutPosition=function(t){if(this._setRectSize(t.element,t.rect),this.isShifting||0<this.dragItemCount){var e=this._getPackMethod();this.packer[e](t.rect)}else this.packer.pack(t.rect);return this._setMaxXY(t.rect),t.rect},o.shiftLayout=function(){this.isShifting=!0,this.layout(),delete this.isShifting},o._getPackMethod=function(){return this._getOption("horizontal")?"rowPack":"columnPack"},o._setMaxXY=function(t){this.maxX=Math.max(t.x+t.width,this.maxX),this.maxY=Math.max(t.y+t.height,this.maxY)},o._setRectSize=function(t,e){var i=c(t),n=i.outerWidth,o=i.outerHeight;(n||o)&&(n=this._applyGridGutter(n,this.columnWidth),o=this._applyGridGutter(o,this.rowHeight)),e.width=Math.min(n,this.packer.width),e.height=Math.min(o,this.packer.height)},o._applyGridGutter=function(t,e){if(!e)return t+this.gutter;var i=t%(e+=this.gutter);return t=Math[i&&i<1?"round":"ceil"](t/e)*e},o._getContainerSize=function(){return this._getOption("horizontal")?{width:this.maxX-this.gutter}:{height:this.maxY-this.gutter}},o._manageStamp=function(t){var e,i=this.getItem(t);if(i&&i.isPlacing)e=i.rect;else{var n=this._getElementOffset(t);e=new g({x:this._getOption("originLeft")?n.left:n.right,y:this._getOption("originTop")?n.top:n.bottom})}this._setRectSize(t,e),this.packer.placed(e),this._setMaxXY(e)},o.sortItemsByPosition=function(){var t=this._getOption("horizontal")?r:s;this.items.sort(t)},o.fit=function(t,e,i){var n=this.getItem(t);n&&(this.stamp(n.element),n.enablePlacing(),this.updateShiftTargets(n),e=void 0===e?n.rect.x:e,i=void 0===i?n.rect.y:i,this.shift(n,e,i),this._bindFitEvents(n),n.moveTo(n.rect.x,n.rect.y),this.shiftLayout(),this.unstamp(n.element),this.sortItemsByPosition(),n.disablePlacing())},o._bindFitEvents=function(t){var e=this,i=0;function n(){2==++i&&e.dispatchEvent("fitComplete",null,[t])}t.once("layout",n),this.once("layoutComplete",n)},o.resize=function(){this.isResizeBound&&this.needsResizeLayout()&&(this.options.shiftPercentResize?this.resizeShiftPercentLayout():this.layout())},o.needsResizeLayout=function(){var t=c(this.element),e=this._getOption("horizontal")?"innerHeight":"innerWidth";return t[e]!=this.size[e]},o.resizeShiftPercentLayout=function(){var t=this._getItemsForLayout(this.items),e=this._getOption("horizontal"),i=e?"y":"x",n=e?"height":"width",o=e?"rowHeight":"columnWidth",s=e?"innerHeight":"innerWidth",r=this[o];if(r=r&&r+this.gutter){this._getMeasurements();var a=this[o]+this.gutter;t.forEach(function(t){var e=Math.round(t.rect[i]/r);t.rect[i]=e*a})}else{var h=c(this.element)[s]+this.gutter,u=this.packer[n];t.forEach(function(t){t.rect[i]=t.rect[i]/u*h})}this.shiftLayout()},o.itemDragStart=function(t){if(this.isEnabled){this.stamp(t);var e=this.getItem(t);e&&(e.enablePlacing(),e.showDropPlaceholder(),this.dragItemCount++,this.updateShiftTargets(e))}},o.updateShiftTargets=function(t){this.shiftPacker.reset(),this._getBoundingRect();var o=this._getOption("originLeft"),s=this._getOption("originTop");this.stamps.forEach(function(t){var e=this.getItem(t);if(!e||!e.isPlacing){var i=this._getElementOffset(t),n=new g({x:o?i.left:i.right,y:s?i.top:i.bottom});this._setRectSize(t,n),this.shiftPacker.placed(n)}},this);var h,u=this._getOption("horizontal"),e=u?"rowHeight":"columnWidth",c=u?"height":"width";this.shiftTargetKeys=[],this.shiftTargets=[];var d=this[e];if(d=d&&d+this.gutter){var i=Math.ceil(t.rect[c]/d),n=Math.floor((this.shiftPacker[c]+this.gutter)/d);h=(n-i)*d;for(var r=0;r<n;r++){var a=u?0:r*d,l=u?r*d:0;this._addShiftTarget(a,l,h)}}else h=this.shiftPacker[c]+this.gutter-t.rect[c],this._addShiftTarget(0,0,h);var f=this._getItemsForLayout(this.items),p=this._getPackMethod();f.forEach(function(t){var e=t.rect;this._setRectSize(t.element,e),this.shiftPacker[p](e),this._addShiftTarget(e.x,e.y,h);var i=u?e.x+e.width:e.x,n=u?e.y:e.y+e.height;if(this._addShiftTarget(i,n,h),d)for(var o=Math.round(e[c]/d),s=1;s<o;s++){var r=u?i:e.x+d*s,a=u?e.y+d*s:n;this._addShiftTarget(r,a,h)}},this)},o._addShiftTarget=function(t,e,i){var n=this._getOption("horizontal")?e:t;if(!(0!==n&&i<n)){var o=t+","+e;-1!=this.shiftTargetKeys.indexOf(o)||(this.shiftTargetKeys.push(o),this.shiftTargets.push({x:t,y:e}))}},o.shift=function(t,e,i){var r,a=1/0,h={x:e,y:i};this.shiftTargets.forEach(function(t){var e,i,n,o,s=(n=(i=h).x-(e=t).x,o=i.y-e.y,Math.sqrt(n*n+o*o));s<a&&(r=t,a=s)}),t.rect.x=r.x,t.rect.y=r.y};o.itemDragMove=function(t,e,i){var n=this.isEnabled&&this.getItem(t);if(n){e-=this.size.paddingLeft,i-=this.size.paddingTop;var o=this,s=new Date;this._itemDragTime&&s-this._itemDragTime<120?(clearTimeout(this.dragTimeout),this.dragTimeout=setTimeout(r,120)):(r(),this._itemDragTime=s)}function r(){o.shift(n,e,i),n.positionDropPlaceholder(),o.layout()}},o.itemDragEnd=function(t){var e=this.isEnabled&&this.getItem(t);if(e){clearTimeout(this.dragTimeout),e.element.classList.add("is-positioning-post-drag");var i=0,n=this;e.once("layout",o),this.once("layoutComplete",o),e.moveTo(e.rect.x,e.rect.y),this.layout(),this.dragItemCount=Math.max(0,this.dragItemCount-1),this.sortItemsByPosition(),e.disablePlacing(),this.unstamp(e.element)}function o(){2==++i&&(e.element.classList.remove("is-positioning-post-drag"),e.hideDropPlaceholder(),n.dispatchEvent("dragItemPositioned",null,[e]))}},o.bindDraggabillyEvents=function(t){this._bindDraggabillyEvents(t,"on")},o.unbindDraggabillyEvents=function(t){this._bindDraggabillyEvents(t,"off")},o._bindDraggabillyEvents=function(t,e){var i=this.handleDraggabilly;t[e]("dragStart",i.dragStart),t[e]("dragMove",i.dragMove),t[e]("dragEnd",i.dragEnd)},o.bindUIDraggableEvents=function(t){this._bindUIDraggableEvents(t,"on")},o.unbindUIDraggableEvents=function(t){this._bindUIDraggableEvents(t,"off")},o._bindUIDraggableEvents=function(t,e){var i=this.handleUIDraggable;t[e]("dragstart",i.start)[e]("drag",i.drag)[e]("dragstop",i.stop)};var a=o.destroy;return o.destroy=function(){a.apply(this,arguments),this.isEnabled=!1},n.Rect=g,n.Packer=e,n});
assets/js/packery.pkgd.min.js DELETED
@@ -1,13 +0,0 @@
1
- /*!
2
- * Packery PACKAGED v2.1.1
3
- * Gapless, draggable grid layouts
4
- *
5
- * Licensed GPLv3 for open source use
6
- * or Packery Commercial License for commercial use
7
- *
8
- * http://packery.metafizzy.co
9
- * Copyright 2016 Metafizzy
10
- */
11
-
12
- !function(t,e){"use strict";"function"==typeof define&&define.amd?define("jquery-bridget/jquery-bridget",["jquery"],function(i){e(t,i)}):"object"==typeof module&&module.exports?module.exports=e(t,require("jquery")):t.jQueryBridget=e(t,t.jQuery)}(window,function(t,e){"use strict";function i(i,s,a){function h(t,e,n){var o,s="$()."+i+'("'+e+'")';return t.each(function(t,h){var u=a.data(h,i);if(!u)return void r(i+" not initialized. Cannot call methods, i.e. "+s);var c=u[e];if(!c||"_"==e.charAt(0))return void r(s+" is not a valid method");var d=c.apply(u,n);o=void 0===o?d:o}),void 0!==o?o:t}function u(t,e){t.each(function(t,n){var o=a.data(n,i);o?(o.option(e),o._init()):(o=new s(n,e),a.data(n,i,o))})}a=a||e||t.jQuery,a&&(s.prototype.option||(s.prototype.option=function(t){a.isPlainObject(t)&&(this.options=a.extend(!0,this.options,t))}),a.fn[i]=function(t){if("string"==typeof t){var e=o.call(arguments,1);return h(this,t,e)}return u(this,t),this},n(a))}function n(t){!t||t&&t.bridget||(t.bridget=i)}var o=Array.prototype.slice,s=t.console,r="undefined"==typeof s?function(){}:function(t){s.error(t)};return n(e||t.jQuery),i}),function(t,e){"use strict";"function"==typeof define&&define.amd?define("get-size/get-size",[],function(){return e()}):"object"==typeof module&&module.exports?module.exports=e():t.getSize=e()}(window,function(){"use strict";function t(t){var e=parseFloat(t),i=-1==t.indexOf("%")&&!isNaN(e);return i&&e}function e(){}function i(){for(var t={width:0,height:0,innerWidth:0,innerHeight:0,outerWidth:0,outerHeight:0},e=0;u>e;e++){var i=h[e];t[i]=0}return t}function n(t){var e=getComputedStyle(t);return e||a("Style returned "+e+". Are you running this code in a hidden iframe on Firefox? See http://bit.ly/getsizebug1"),e}function o(){if(!c){c=!0;var e=document.createElement("div");e.style.width="200px",e.style.padding="1px 2px 3px 4px",e.style.borderStyle="solid",e.style.borderWidth="1px 2px 3px 4px",e.style.boxSizing="border-box";var i=document.body||document.documentElement;i.appendChild(e);var o=n(e);s.isBoxSizeOuter=r=200==t(o.width),i.removeChild(e)}}function s(e){if(o(),"string"==typeof e&&(e=document.querySelector(e)),e&&"object"==typeof e&&e.nodeType){var s=n(e);if("none"==s.display)return i();var a={};a.width=e.offsetWidth,a.height=e.offsetHeight;for(var c=a.isBorderBox="border-box"==s.boxSizing,d=0;u>d;d++){var f=h[d],l=s[f],p=parseFloat(l);a[f]=isNaN(p)?0:p}var g=a.paddingLeft+a.paddingRight,m=a.paddingTop+a.paddingBottom,y=a.marginLeft+a.marginRight,v=a.marginTop+a.marginBottom,_=a.borderLeftWidth+a.borderRightWidth,x=a.borderTopWidth+a.borderBottomWidth,b=c&&r,E=t(s.width);E!==!1&&(a.width=E+(b?0:g+_));var T=t(s.height);return T!==!1&&(a.height=T+(b?0:m+x)),a.innerWidth=a.width-(g+_),a.innerHeight=a.height-(m+x),a.outerWidth=a.width+y,a.outerHeight=a.height+v,a}}var r,a="undefined"==typeof console?e:function(t){console.error(t)},h=["paddingLeft","paddingRight","paddingTop","paddingBottom","marginLeft","marginRight","marginTop","marginBottom","borderLeftWidth","borderRightWidth","borderTopWidth","borderBottomWidth"],u=h.length,c=!1;return s}),function(t,e){"function"==typeof define&&define.amd?define("ev-emitter/ev-emitter",e):"object"==typeof module&&module.exports?module.exports=e():t.EvEmitter=e()}(this,function(){function t(){}var e=t.prototype;return e.on=function(t,e){if(t&&e){var i=this._events=this._events||{},n=i[t]=i[t]||[];return-1==n.indexOf(e)&&n.push(e),this}},e.once=function(t,e){if(t&&e){this.on(t,e);var i=this._onceEvents=this._onceEvents||{},n=i[t]=i[t]||{};return n[e]=!0,this}},e.off=function(t,e){var i=this._events&&this._events[t];if(i&&i.length){var n=i.indexOf(e);return-1!=n&&i.splice(n,1),this}},e.emitEvent=function(t,e){var i=this._events&&this._events[t];if(i&&i.length){var n=0,o=i[n];e=e||[];for(var s=this._onceEvents&&this._onceEvents[t];o;){var r=s&&s[o];r&&(this.off(t,o),delete s[o]),o.apply(this,e),n+=r?0:1,o=i[n]}return this}},t}),function(t,e){"use strict";"function"==typeof define&&define.amd?define("desandro-matches-selector/matches-selector",e):"object"==typeof module&&module.exports?module.exports=e():t.matchesSelector=e()}(window,function(){"use strict";var t=function(){var t=Element.prototype;if(t.matches)return"matches";if(t.matchesSelector)return"matchesSelector";for(var e=["webkit","moz","ms","o"],i=0;i<e.length;i++){var n=e[i],o=n+"MatchesSelector";if(t[o])return o}}();return function(e,i){return e[t](i)}}),function(t,e){"function"==typeof define&&define.amd?define("fizzy-ui-utils/utils",["desandro-matches-selector/matches-selector"],function(i){return e(t,i)}):"object"==typeof module&&module.exports?module.exports=e(t,require("desandro-matches-selector")):t.fizzyUIUtils=e(t,t.matchesSelector)}(window,function(t,e){var i={};i.extend=function(t,e){for(var i in e)t[i]=e[i];return t},i.modulo=function(t,e){return(t%e+e)%e},i.makeArray=function(t){var e=[];if(Array.isArray(t))e=t;else if(t&&"number"==typeof t.length)for(var i=0;i<t.length;i++)e.push(t[i]);else e.push(t);return e},i.removeFrom=function(t,e){var i=t.indexOf(e);-1!=i&&t.splice(i,1)},i.getParent=function(t,i){for(;t!=document.body;)if(t=t.parentNode,e(t,i))return t},i.getQueryElement=function(t){return"string"==typeof t?document.querySelector(t):t},i.handleEvent=function(t){var e="on"+t.type;this[e]&&this[e](t)},i.filterFindElements=function(t,n){t=i.makeArray(t);var o=[];return t.forEach(function(t){if(t instanceof HTMLElement){if(!n)return void o.push(t);e(t,n)&&o.push(t);for(var i=t.querySelectorAll(n),s=0;s<i.length;s++)o.push(i[s])}}),o},i.debounceMethod=function(t,e,i){var n=t.prototype[e],o=e+"Timeout";t.prototype[e]=function(){var t=this[o];t&&clearTimeout(t);var e=arguments,s=this;this[o]=setTimeout(function(){n.apply(s,e),delete s[o]},i||100)}},i.docReady=function(t){"complete"==document.readyState?t():document.addEventListener("DOMContentLoaded",t)},i.toDashed=function(t){return t.replace(/(.)([A-Z])/g,function(t,e,i){return e+"-"+i}).toLowerCase()};var n=t.console;return i.htmlInit=function(e,o){i.docReady(function(){var s=i.toDashed(o),r="data-"+s,a=document.querySelectorAll("["+r+"]"),h=document.querySelectorAll(".js-"+s),u=i.makeArray(a).concat(i.makeArray(h)),c=r+"-options",d=t.jQuery;u.forEach(function(t){var i,s=t.getAttribute(r)||t.getAttribute(c);try{i=s&&JSON.parse(s)}catch(a){return void(n&&n.error("Error parsing "+r+" on "+t.className+": "+a))}var h=new e(t,i);d&&d.data(t,o,h)})})},i}),function(t,e){"function"==typeof define&&define.amd?define("outlayer/item",["ev-emitter/ev-emitter","get-size/get-size"],e):"object"==typeof module&&module.exports?module.exports=e(require("ev-emitter"),require("get-size")):(t.Outlayer={},t.Outlayer.Item=e(t.EvEmitter,t.getSize))}(window,function(t,e){"use strict";function i(t){for(var e in t)return!1;return e=null,!0}function n(t,e){t&&(this.element=t,this.layout=e,this.position={x:0,y:0},this._create())}function o(t){return t.replace(/([A-Z])/g,function(t){return"-"+t.toLowerCase()})}var s=document.documentElement.style,r="string"==typeof s.transition?"transition":"WebkitTransition",a="string"==typeof s.transform?"transform":"WebkitTransform",h={WebkitTransition:"webkitTransitionEnd",transition:"transitionend"}[r],u={transform:a,transition:r,transitionDuration:r+"Duration",transitionProperty:r+"Property",transitionDelay:r+"Delay"},c=n.prototype=Object.create(t.prototype);c.constructor=n,c._create=function(){this._transn={ingProperties:{},clean:{},onEnd:{}},this.css({position:"absolute"})},c.handleEvent=function(t){var e="on"+t.type;this[e]&&this[e](t)},c.getSize=function(){this.size=e(this.element)},c.css=function(t){var e=this.element.style;for(var i in t){var n=u[i]||i;e[n]=t[i]}},c.getPosition=function(){var t=getComputedStyle(this.element),e=this.layout._getOption("originLeft"),i=this.layout._getOption("originTop"),n=t[e?"left":"right"],o=t[i?"top":"bottom"],s=this.layout.size,r=-1!=n.indexOf("%")?parseFloat(n)/100*s.width:parseInt(n,10),a=-1!=o.indexOf("%")?parseFloat(o)/100*s.height:parseInt(o,10);r=isNaN(r)?0:r,a=isNaN(a)?0:a,r-=e?s.paddingLeft:s.paddingRight,a-=i?s.paddingTop:s.paddingBottom,this.position.x=r,this.position.y=a},c.layoutPosition=function(){var t=this.layout.size,e={},i=this.layout._getOption("originLeft"),n=this.layout._getOption("originTop"),o=i?"paddingLeft":"paddingRight",s=i?"left":"right",r=i?"right":"left",a=this.position.x+t[o];e[s]=this.getXValue(a),e[r]="";var h=n?"paddingTop":"paddingBottom",u=n?"top":"bottom",c=n?"bottom":"top",d=this.position.y+t[h];e[u]=this.getYValue(d),e[c]="",this.css(e),this.emitEvent("layout",[this])},c.getXValue=function(t){var e=this.layout._getOption("horizontal");return this.layout.options.percentPosition&&!e?t/this.layout.size.width*100+"%":t+"px"},c.getYValue=function(t){var e=this.layout._getOption("horizontal");return this.layout.options.percentPosition&&e?t/this.layout.size.height*100+"%":t+"px"},c._transitionTo=function(t,e){this.getPosition();var i=this.position.x,n=this.position.y,o=parseInt(t,10),s=parseInt(e,10),r=o===this.position.x&&s===this.position.y;if(this.setPosition(t,e),r&&!this.isTransitioning)return void this.layoutPosition();var a=t-i,h=e-n,u={};u.transform=this.getTranslate(a,h),this.transition({to:u,onTransitionEnd:{transform:this.layoutPosition},isCleaning:!0})},c.getTranslate=function(t,e){var i=this.layout._getOption("originLeft"),n=this.layout._getOption("originTop");return t=i?t:-t,e=n?e:-e,"translate3d("+t+"px, "+e+"px, 0)"},c.goTo=function(t,e){this.setPosition(t,e),this.layoutPosition()},c.moveTo=c._transitionTo,c.setPosition=function(t,e){this.position.x=parseInt(t,10),this.position.y=parseInt(e,10)},c._nonTransition=function(t){this.css(t.to),t.isCleaning&&this._removeStyles(t.to);for(var e in t.onTransitionEnd)t.onTransitionEnd[e].call(this)},c.transition=function(t){if(!parseFloat(this.layout.options.transitionDuration))return void this._nonTransition(t);var e=this._transn;for(var i in t.onTransitionEnd)e.onEnd[i]=t.onTransitionEnd[i];for(i in t.to)e.ingProperties[i]=!0,t.isCleaning&&(e.clean[i]=!0);if(t.from){this.css(t.from);var n=this.element.offsetHeight;n=null}this.enableTransition(t.to),this.css(t.to),this.isTransitioning=!0};var d="opacity,"+o(a);c.enableTransition=function(){if(!this.isTransitioning){var t=this.layout.options.transitionDuration;t="number"==typeof t?t+"ms":t,this.css({transitionProperty:d,transitionDuration:t,transitionDelay:this.staggerDelay||0}),this.element.addEventListener(h,this,!1)}},c.onwebkitTransitionEnd=function(t){this.ontransitionend(t)},c.onotransitionend=function(t){this.ontransitionend(t)};var f={"-webkit-transform":"transform"};c.ontransitionend=function(t){if(t.target===this.element){var e=this._transn,n=f[t.propertyName]||t.propertyName;if(delete e.ingProperties[n],i(e.ingProperties)&&this.disableTransition(),n in e.clean&&(this.element.style[t.propertyName]="",delete e.clean[n]),n in e.onEnd){var o=e.onEnd[n];o.call(this),delete e.onEnd[n]}this.emitEvent("transitionEnd",[this])}},c.disableTransition=function(){this.removeTransitionStyles(),this.element.removeEventListener(h,this,!1),this.isTransitioning=!1},c._removeStyles=function(t){var e={};for(var i in t)e[i]="";this.css(e)};var l={transitionProperty:"",transitionDuration:"",transitionDelay:""};return c.removeTransitionStyles=function(){this.css(l)},c.stagger=function(t){t=isNaN(t)?0:t,this.staggerDelay=t+"ms"},c.removeElem=function(){this.element.parentNode.removeChild(this.element),this.css({display:""}),this.emitEvent("remove",[this])},c.remove=function(){return r&&parseFloat(this.layout.options.transitionDuration)?(this.once("transitionEnd",function(){this.removeElem()}),void this.hide()):void this.removeElem()},c.reveal=function(){delete this.isHidden,this.css({display:""});var t=this.layout.options,e={},i=this.getHideRevealTransitionEndProperty("visibleStyle");e[i]=this.onRevealTransitionEnd,this.transition({from:t.hiddenStyle,to:t.visibleStyle,isCleaning:!0,onTransitionEnd:e})},c.onRevealTransitionEnd=function(){this.isHidden||this.emitEvent("reveal")},c.getHideRevealTransitionEndProperty=function(t){var e=this.layout.options[t];if(e.opacity)return"opacity";for(var i in e)return i},c.hide=function(){this.isHidden=!0,this.css({display:""});var t=this.layout.options,e={},i=this.getHideRevealTransitionEndProperty("hiddenStyle");e[i]=this.onHideTransitionEnd,this.transition({from:t.visibleStyle,to:t.hiddenStyle,isCleaning:!0,onTransitionEnd:e})},c.onHideTransitionEnd=function(){this.isHidden&&(this.css({display:"none"}),this.emitEvent("hide"))},c.destroy=function(){this.css({position:"",left:"",right:"",top:"",bottom:"",transition:"",transform:""})},n}),function(t,e){"use strict";"function"==typeof define&&define.amd?define("outlayer/outlayer",["ev-emitter/ev-emitter","get-size/get-size","fizzy-ui-utils/utils","./item"],function(i,n,o,s){return e(t,i,n,o,s)}):"object"==typeof module&&module.exports?module.exports=e(t,require("ev-emitter"),require("get-size"),require("fizzy-ui-utils"),require("./item")):t.Outlayer=e(t,t.EvEmitter,t.getSize,t.fizzyUIUtils,t.Outlayer.Item)}(window,function(t,e,i,n,o){"use strict";function s(t,e){var i=n.getQueryElement(t);if(!i)return void(h&&h.error("Bad element for "+this.constructor.namespace+": "+(i||t)));this.element=i,u&&(this.$element=u(this.element)),this.options=n.extend({},this.constructor.defaults),this.option(e);var o=++d;this.element.outlayerGUID=o,f[o]=this,this._create();var s=this._getOption("initLayout");s&&this.layout()}function r(t){function e(){t.apply(this,arguments)}return e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e}function a(t){if("number"==typeof t)return t;var e=t.match(/(^\d*\.?\d*)(\w*)/),i=e&&e[1],n=e&&e[2];if(!i.length)return 0;i=parseFloat(i);var o=p[n]||1;return i*o}var h=t.console,u=t.jQuery,c=function(){},d=0,f={};s.namespace="outlayer",s.Item=o,s.defaults={containerStyle:{position:"relative"},initLayout:!0,originLeft:!0,originTop:!0,resize:!0,resizeContainer:!0,transitionDuration:"0.4s",hiddenStyle:{opacity:0,transform:"scale(0.001)"},visibleStyle:{opacity:1,transform:"scale(1)"}};var l=s.prototype;n.extend(l,e.prototype),l.option=function(t){n.extend(this.options,t)},l._getOption=function(t){var e=this.constructor.compatOptions[t];return e&&void 0!==this.options[e]?this.options[e]:this.options[t]},s.compatOptions={initLayout:"isInitLayout",horizontal:"isHorizontal",layoutInstant:"isLayoutInstant",originLeft:"isOriginLeft",originTop:"isOriginTop",resize:"isResizeBound",resizeContainer:"isResizingContainer"},l._create=function(){this.reloadItems(),this.stamps=[],this.stamp(this.options.stamp),n.extend(this.element.style,this.options.containerStyle);var t=this._getOption("resize");t&&this.bindResize()},l.reloadItems=function(){this.items=this._itemize(this.element.children)},l._itemize=function(t){for(var e=this._filterFindItemElements(t),i=this.constructor.Item,n=[],o=0;o<e.length;o++){var s=e[o],r=new i(s,this);n.push(r)}return n},l._filterFindItemElements=function(t){return n.filterFindElements(t,this.options.itemSelector)},l.getItemElements=function(){return this.items.map(function(t){return t.element})},l.layout=function(){this._resetLayout(),this._manageStamps();var t=this._getOption("layoutInstant"),e=void 0!==t?t:!this._isLayoutInited;this.layoutItems(this.items,e),this._isLayoutInited=!0},l._init=l.layout,l._resetLayout=function(){this.getSize()},l.getSize=function(){this.size=i(this.element)},l._getMeasurement=function(t,e){var n,o=this.options[t];o?("string"==typeof o?n=this.element.querySelector(o):o instanceof HTMLElement&&(n=o),this[t]=n?i(n)[e]:o):this[t]=0},l.layoutItems=function(t,e){t=this._getItemsForLayout(t),this._layoutItems(t,e),this._postLayout()},l._getItemsForLayout=function(t){return t.filter(function(t){return!t.isIgnored})},l._layoutItems=function(t,e){if(this._emitCompleteOnItems("layout",t),t&&t.length){var i=[];t.forEach(function(t){var n=this._getItemLayoutPosition(t);n.item=t,n.isInstant=e||t.isLayoutInstant,i.push(n)},this),this._processLayoutQueue(i)}},l._getItemLayoutPosition=function(){return{x:0,y:0}},l._processLayoutQueue=function(t){this.updateStagger(),t.forEach(function(t,e){this._positionItem(t.item,t.x,t.y,t.isInstant,e)},this)},l.updateStagger=function(){var t=this.options.stagger;return null===t||void 0===t?void(this.stagger=0):(this.stagger=a(t),this.stagger)},l._positionItem=function(t,e,i,n,o){n?t.goTo(e,i):(t.stagger(o*this.stagger),t.moveTo(e,i))},l._postLayout=function(){this.resizeContainer()},l.resizeContainer=function(){var t=this._getOption("resizeContainer");if(t){var e=this._getContainerSize();e&&(this._setContainerMeasure(e.width,!0),this._setContainerMeasure(e.height,!1))}},l._getContainerSize=c,l._setContainerMeasure=function(t,e){if(void 0!==t){var i=this.size;i.isBorderBox&&(t+=e?i.paddingLeft+i.paddingRight+i.borderLeftWidth+i.borderRightWidth:i.paddingBottom+i.paddingTop+i.borderTopWidth+i.borderBottomWidth),t=Math.max(t,0),this.element.style[e?"width":"height"]=t+"px"}},l._emitCompleteOnItems=function(t,e){function i(){o.dispatchEvent(t+"Complete",null,[e])}function n(){r++,r==s&&i()}var o=this,s=e.length;if(!e||!s)return void i();var r=0;e.forEach(function(e){e.once(t,n)})},l.dispatchEvent=function(t,e,i){var n=e?[e].concat(i):i;if(this.emitEvent(t,n),u)if(this.$element=this.$element||u(this.element),e){var o=u.Event(e);o.type=t,this.$element.trigger(o,i)}else this.$element.trigger(t,i)},l.ignore=function(t){var e=this.getItem(t);e&&(e.isIgnored=!0)},l.unignore=function(t){var e=this.getItem(t);e&&delete e.isIgnored},l.stamp=function(t){t=this._find(t),t&&(this.stamps=this.stamps.concat(t),t.forEach(this.ignore,this))},l.unstamp=function(t){t=this._find(t),t&&t.forEach(function(t){n.removeFrom(this.stamps,t),this.unignore(t)},this)},l._find=function(t){return t?("string"==typeof t&&(t=this.element.querySelectorAll(t)),t=n.makeArray(t)):void 0},l._manageStamps=function(){this.stamps&&this.stamps.length&&(this._getBoundingRect(),this.stamps.forEach(this._manageStamp,this))},l._getBoundingRect=function(){var t=this.element.getBoundingClientRect(),e=this.size;this._boundingRect={left:t.left+e.paddingLeft+e.borderLeftWidth,top:t.top+e.paddingTop+e.borderTopWidth,right:t.right-(e.paddingRight+e.borderRightWidth),bottom:t.bottom-(e.paddingBottom+e.borderBottomWidth)}},l._manageStamp=c,l._getElementOffset=function(t){var e=t.getBoundingClientRect(),n=this._boundingRect,o=i(t),s={left:e.left-n.left-o.marginLeft,top:e.top-n.top-o.marginTop,right:n.right-e.right-o.marginRight,bottom:n.bottom-e.bottom-o.marginBottom};return s},l.handleEvent=n.handleEvent,l.bindResize=function(){t.addEventListener("resize",this),this.isResizeBound=!0},l.unbindResize=function(){t.removeEventListener("resize",this),this.isResizeBound=!1},l.onresize=function(){this.resize()},n.debounceMethod(s,"onresize",100),l.resize=function(){this.isResizeBound&&this.needsResizeLayout()&&this.layout()},l.needsResizeLayout=function(){var t=i(this.element),e=this.size&&t;return e&&t.innerWidth!==this.size.innerWidth},l.addItems=function(t){var e=this._itemize(t);return e.length&&(this.items=this.items.concat(e)),e},l.appended=function(t){var e=this.addItems(t);e.length&&(this.layoutItems(e,!0),this.reveal(e))},l.prepended=function(t){var e=this._itemize(t);if(e.length){var i=this.items.slice(0);this.items=e.concat(i),this._resetLayout(),this._manageStamps(),this.layoutItems(e,!0),this.reveal(e),this.layoutItems(i)}},l.reveal=function(t){if(this._emitCompleteOnItems("reveal",t),t&&t.length){var e=this.updateStagger();t.forEach(function(t,i){t.stagger(i*e),t.reveal()})}},l.hide=function(t){if(this._emitCompleteOnItems("hide",t),t&&t.length){var e=this.updateStagger();t.forEach(function(t,i){t.stagger(i*e),t.hide()})}},l.revealItemElements=function(t){var e=this.getItems(t);this.reveal(e)},l.hideItemElements=function(t){var e=this.getItems(t);this.hide(e)},l.getItem=function(t){for(var e=0;e<this.items.length;e++){var i=this.items[e];if(i.element==t)return i}},l.getItems=function(t){t=n.makeArray(t);var e=[];return t.forEach(function(t){var i=this.getItem(t);i&&e.push(i)},this),e},l.remove=function(t){var e=this.getItems(t);this._emitCompleteOnItems("remove",e),e&&e.length&&e.forEach(function(t){t.remove(),n.removeFrom(this.items,t)},this)},l.destroy=function(){var t=this.element.style;t.height="",t.position="",t.width="",this.items.forEach(function(t){t.destroy()}),this.unbindResize();var e=this.element.outlayerGUID;delete f[e],delete this.element.outlayerGUID,u&&u.removeData(this.element,this.constructor.namespace)},s.data=function(t){t=n.getQueryElement(t);var e=t&&t.outlayerGUID;return e&&f[e]},s.create=function(t,e){var i=r(s);return i.defaults=n.extend({},s.defaults),n.extend(i.defaults,e),i.compatOptions=n.extend({},s.compatOptions),i.namespace=t,i.data=s.data,i.Item=r(o),n.htmlInit(i,t),u&&u.bridget&&u.bridget(t,i),i};var p={ms:1,s:1e3};return s.Item=o,s}),function(t,e){"function"==typeof define&&define.amd?define("packery/js/rect",e):"object"==typeof module&&module.exports?module.exports=e():(t.Packery=t.Packery||{},t.Packery.Rect=e())}(window,function(){"use strict";function t(e){for(var i in t.defaults)this[i]=t.defaults[i];for(i in e)this[i]=e[i]}t.defaults={x:0,y:0,width:0,height:0};var e=t.prototype;return e.contains=function(t){var e=t.width||0,i=t.height||0;return this.x<=t.x&&this.y<=t.y&&this.x+this.width>=t.x+e&&this.y+this.height>=t.y+i},e.overlaps=function(t){var e=this.x+this.width,i=this.y+this.height,n=t.x+t.width,o=t.y+t.height;return this.x<n&&e>t.x&&this.y<o&&i>t.y},e.getMaximalFreeRects=function(e){if(!this.overlaps(e))return!1;var i,n=[],o=this.x+this.width,s=this.y+this.height,r=e.x+e.width,a=e.y+e.height;return this.y<e.y&&(i=new t({x:this.x,y:this.y,width:this.width,height:e.y-this.y}),n.push(i)),o>r&&(i=new t({x:r,y:this.y,width:o-r,height:this.height}),n.push(i)),s>a&&(i=new t({x:this.x,y:a,width:this.width,height:s-a}),n.push(i)),this.x<e.x&&(i=new t({x:this.x,y:this.y,width:e.x-this.x,height:this.height}),n.push(i)),n},e.canFit=function(t){return this.width>=t.width&&this.height>=t.height},t}),function(t,e){if("function"==typeof define&&define.amd)define("packery/js/packer",["./rect"],e);else if("object"==typeof module&&module.exports)module.exports=e(require("./rect"));else{var i=t.Packery=t.Packery||{};i.Packer=e(i.Rect)}}(window,function(t){"use strict";function e(t,e,i){this.width=t||0,this.height=e||0,this.sortDirection=i||"downwardLeftToRight",this.reset()}var i=e.prototype;i.reset=function(){this.spaces=[];var e=new t({x:0,y:0,width:this.width,height:this.height});this.spaces.push(e),this.sorter=n[this.sortDirection]||n.downwardLeftToRight},i.pack=function(t){for(var e=0;e<this.spaces.length;e++){var i=this.spaces[e];if(i.canFit(t)){this.placeInSpace(t,i);break}}},i.columnPack=function(t){for(var e=0;e<this.spaces.length;e++){var i=this.spaces[e],n=i.x<=t.x&&i.x+i.width>=t.x+t.width&&i.height>=t.height-.01;if(n){t.y=i.y,this.placed(t);break}}},i.rowPack=function(t){for(var e=0;e<this.spaces.length;e++){var i=this.spaces[e],n=i.y<=t.y&&i.y+i.height>=t.y+t.height&&i.width>=t.width-.01;if(n){t.x=i.x,this.placed(t);break}}},i.placeInSpace=function(t,e){t.x=e.x,t.y=e.y,this.placed(t)},i.placed=function(t){for(var e=[],i=0;i<this.spaces.length;i++){var n=this.spaces[i],o=n.getMaximalFreeRects(t);o?e.push.apply(e,o):e.push(n)}this.spaces=e,this.mergeSortSpaces()},i.mergeSortSpaces=function(){e.mergeRects(this.spaces),this.spaces.sort(this.sorter)},i.addSpace=function(t){this.spaces.push(t),this.mergeSortSpaces()},e.mergeRects=function(t){var e=0,i=t[e];t:for(;i;){for(var n=0,o=t[e+n];o;){if(o==i)n++;else{if(o.contains(i)){t.splice(e,1),i=t[e];continue t}i.contains(o)?t.splice(e+n,1):n++}o=t[e+n]}e++,i=t[e]}return t};var n={downwardLeftToRight:function(t,e){return t.y-e.y||t.x-e.x},rightwardTopToBottom:function(t,e){return t.x-e.x||t.y-e.y}};return e}),function(t,e){"function"==typeof define&&define.amd?define("packery/js/item",["outlayer/outlayer","./rect"],e):"object"==typeof module&&module.exports?module.exports=e(require("outlayer"),require("./rect")):t.Packery.Item=e(t.Outlayer,t.Packery.Rect)}(window,function(t,e){"use strict";var i=document.documentElement.style,n="string"==typeof i.transform?"transform":"WebkitTransform",o=function(){t.Item.apply(this,arguments)},s=o.prototype=Object.create(t.Item.prototype),r=s._create;s._create=function(){r.call(this),this.rect=new e};var a=s.moveTo;return s.moveTo=function(t,e){var i=Math.abs(this.position.x-t),n=Math.abs(this.position.y-e),o=this.layout.dragItemCount&&!this.isPlacing&&!this.isTransitioning&&1>i&&1>n;return o?void this.goTo(t,e):void a.apply(this,arguments)},s.enablePlacing=function(){this.removeTransitionStyles(),this.isTransitioning&&n&&(this.element.style[n]="none"),this.isTransitioning=!1,this.getSize(),this.layout._setRectSize(this.element,this.rect),this.isPlacing=!0},s.disablePlacing=function(){this.isPlacing=!1},s.removeElem=function(){this.element.parentNode.removeChild(this.element),this.layout.packer.addSpace(this.rect),this.emitEvent("remove",[this])},s.showDropPlaceholder=function(){var t=this.dropPlaceholder;t||(t=this.dropPlaceholder=document.createElement("div"),t.className="packery-drop-placeholder",t.style.position="absolute"),t.style.width=this.size.width+"px",t.style.height=this.size.height+"px",this.positionDropPlaceholder(),this.layout.element.appendChild(t)},s.positionDropPlaceholder=function(){this.dropPlaceholder.style[n]="translate("+this.rect.x+"px, "+this.rect.y+"px)"},s.hideDropPlaceholder=function(){var t=this.dropPlaceholder.parentNode;t&&t.removeChild(this.dropPlaceholder)},o}),function(t,e){"function"==typeof define&&define.amd?define(["get-size/get-size","outlayer/outlayer","packery/js/rect","packery/js/packer","packery/js/item"],e):"object"==typeof module&&module.exports?module.exports=e(require("get-size"),require("outlayer"),require("./rect"),require("./packer"),require("./item")):t.Packery=e(t.getSize,t.Outlayer,t.Packery.Rect,t.Packery.Packer,t.Packery.Item)}(window,function(t,e,i,n,o){"use strict";function s(t,e){return t.position.y-e.position.y||t.position.x-e.position.x}function r(t,e){return t.position.x-e.position.x||t.position.y-e.position.y}function a(t,e){var i=e.x-t.x,n=e.y-t.y;return Math.sqrt(i*i+n*n)}i.prototype.canFit=function(t){return this.width>=t.width-1&&this.height>=t.height-1};var h=e.create("packery");h.Item=o;var u=h.prototype;u._create=function(){e.prototype._create.call(this),this.packer=new n,this.shiftPacker=new n,this.isEnabled=!0,this.dragItemCount=0;var t=this;this.handleDraggabilly={dragStart:function(){t.itemDragStart(this.element)},dragMove:function(){t.itemDragMove(this.element,this.position.x,this.position.y)},dragEnd:function(){t.itemDragEnd(this.element)}},this.handleUIDraggable={start:function(e,i){i&&t.itemDragStart(e.currentTarget)},drag:function(e,i){i&&t.itemDragMove(e.currentTarget,i.position.left,i.position.top)},stop:function(e,i){i&&t.itemDragEnd(e.currentTarget)}}},u._resetLayout=function(){this.getSize(),this._getMeasurements();var t,e,i;this._getOption("horizontal")?(t=1/0,e=this.size.innerHeight+this.gutter,i="rightwardTopToBottom"):(t=this.size.innerWidth+this.gutter,e=1/0,i="downwardLeftToRight"),this.packer.width=this.shiftPacker.width=t,this.packer.height=this.shiftPacker.height=e,this.packer.sortDirection=this.shiftPacker.sortDirection=i,this.packer.reset(),this.maxY=0,this.maxX=0},u._getMeasurements=function(){this._getMeasurement("columnWidth","width"),this._getMeasurement("rowHeight","height"),this._getMeasurement("gutter","width")},u._getItemLayoutPosition=function(t){if(this._setRectSize(t.element,t.rect),this.isShifting||this.dragItemCount>0){var e=this._getPackMethod();this.packer[e](t.rect)}else this.packer.pack(t.rect);return this._setMaxXY(t.rect),t.rect},u.shiftLayout=function(){this.isShifting=!0,this.layout(),delete this.isShifting},u._getPackMethod=function(){return this._getOption("horizontal")?"rowPack":"columnPack"},u._setMaxXY=function(t){this.maxX=Math.max(t.x+t.width,this.maxX),this.maxY=Math.max(t.y+t.height,this.maxY)},u._setRectSize=function(e,i){var n=t(e),o=n.outerWidth,s=n.outerHeight;(o||s)&&(o=this._applyGridGutter(o,this.columnWidth),s=this._applyGridGutter(s,this.rowHeight)),i.width=Math.min(o,this.packer.width),i.height=Math.min(s,this.packer.height)},u._applyGridGutter=function(t,e){if(!e)return t+this.gutter;e+=this.gutter;var i=t%e,n=i&&1>i?"round":"ceil";return t=Math[n](t/e)*e},u._getContainerSize=function(){return this._getOption("horizontal")?{width:this.maxX-this.gutter}:{height:this.maxY-this.gutter}},u._manageStamp=function(t){var e,n=this.getItem(t);if(n&&n.isPlacing)e=n.rect;else{var o=this._getElementOffset(t);e=new i({x:this._getOption("originLeft")?o.left:o.right,y:this._getOption("originTop")?o.top:o.bottom})}this._setRectSize(t,e),this.packer.placed(e),this._setMaxXY(e)},u.sortItemsByPosition=function(){var t=this._getOption("horizontal")?r:s;this.items.sort(t)},u.fit=function(t,e,i){var n=this.getItem(t);n&&(this.stamp(n.element),n.enablePlacing(),this.updateShiftTargets(n),e=void 0===e?n.rect.x:e,i=void 0===i?n.rect.y:i,this.shift(n,e,i),this._bindFitEvents(n),n.moveTo(n.rect.x,n.rect.y),this.shiftLayout(),this.unstamp(n.element),this.sortItemsByPosition(),n.disablePlacing())},u._bindFitEvents=function(t){function e(){n++,2==n&&i.dispatchEvent("fitComplete",null,[t])}var i=this,n=0;t.once("layout",e),this.once("layoutComplete",e)},u.resize=function(){this.isResizeBound&&this.needsResizeLayout()&&(this.options.shiftPercentResize?this.resizeShiftPercentLayout():this.layout())},u.needsResizeLayout=function(){var e=t(this.element),i=this._getOption("horizontal")?"innerHeight":"innerWidth";return e[i]!=this.size[i]},u.resizeShiftPercentLayout=function(){var e=this._getItemsForLayout(this.items),i=this._getOption("horizontal"),n=i?"y":"x",o=i?"height":"width",s=i?"rowHeight":"columnWidth",r=i?"innerHeight":"innerWidth",a=this[s];if(a=a&&a+this.gutter){this._getMeasurements();var h=this[s]+this.gutter;e.forEach(function(t){var e=Math.round(t.rect[n]/a);t.rect[n]=e*h})}else{var u=t(this.element)[r]+this.gutter,c=this.packer[o];e.forEach(function(t){t.rect[n]=t.rect[n]/c*u})}this.shiftLayout()},u.itemDragStart=function(t){if(this.isEnabled){this.stamp(t);var e=this.getItem(t);e&&(e.enablePlacing(),e.showDropPlaceholder(),this.dragItemCount++,this.updateShiftTargets(e))}},u.updateShiftTargets=function(t){this.shiftPacker.reset(),this._getBoundingRect();var e=this._getOption("originLeft"),n=this._getOption("originTop");this.stamps.forEach(function(t){var o=this.getItem(t);if(!o||!o.isPlacing){var s=this._getElementOffset(t),r=new i({x:e?s.left:s.right,y:n?s.top:s.bottom});this._setRectSize(t,r),this.shiftPacker.placed(r)}},this);var o=this._getOption("horizontal"),s=o?"rowHeight":"columnWidth",r=o?"height":"width";this.shiftTargetKeys=[],this.shiftTargets=[];var a,h=this[s];if(h=h&&h+this.gutter){var u=Math.ceil(t.rect[r]/h),c=Math.floor((this.shiftPacker[r]+this.gutter)/h);a=(c-u)*h;for(var d=0;c>d;d++){var f=o?0:d*h,l=o?d*h:0;this._addShiftTarget(f,l,a)}}else a=this.shiftPacker[r]+this.gutter-t.rect[r],this._addShiftTarget(0,0,a);var p=this._getItemsForLayout(this.items),g=this._getPackMethod();p.forEach(function(t){var e=t.rect;this._setRectSize(t.element,e),this.shiftPacker[g](e),this._addShiftTarget(e.x,e.y,a);var i=o?e.x+e.width:e.x,n=o?e.y:e.y+e.height;if(this._addShiftTarget(i,n,a),h)for(var s=Math.round(e[r]/h),u=1;s>u;u++){var c=o?i:e.x+h*u,d=o?e.y+h*u:n;this._addShiftTarget(c,d,a)}},this)},u._addShiftTarget=function(t,e,i){var n=this._getOption("horizontal")?e:t;if(!(0!==n&&n>i)){var o=t+","+e,s=-1!=this.shiftTargetKeys.indexOf(o);s||(this.shiftTargetKeys.push(o),this.shiftTargets.push({x:t,y:e}))}},u.shift=function(t,e,i){var n,o=1/0,s={x:e,y:i};this.shiftTargets.forEach(function(t){var e=a(t,s);o>e&&(n=t,o=e)}),t.rect.x=n.x,t.rect.y=n.y};var c=120;u.itemDragMove=function(t,e,i){
13
- function n(){s.shift(o,e,i),o.positionDropPlaceholder(),s.layout()}var o=this.isEnabled&&this.getItem(t);if(o){e-=this.size.paddingLeft,i-=this.size.paddingTop;var s=this,r=new Date;this._itemDragTime&&r-this._itemDragTime<c?(clearTimeout(this.dragTimeout),this.dragTimeout=setTimeout(n,c)):(n(),this._itemDragTime=r)}},u.itemDragEnd=function(t){function e(){n++,2==n&&(i.element.classList.remove("is-positioning-post-drag"),i.hideDropPlaceholder(),o.dispatchEvent("dragItemPositioned",null,[i]))}var i=this.isEnabled&&this.getItem(t);if(i){clearTimeout(this.dragTimeout),i.element.classList.add("is-positioning-post-drag");var n=0,o=this;i.once("layout",e),this.once("layoutComplete",e),i.moveTo(i.rect.x,i.rect.y),this.layout(),this.dragItemCount=Math.max(0,this.dragItemCount-1),this.sortItemsByPosition(),i.disablePlacing(),this.unstamp(i.element)}},u.bindDraggabillyEvents=function(t){this._bindDraggabillyEvents(t,"on")},u.unbindDraggabillyEvents=function(t){this._bindDraggabillyEvents(t,"off")},u._bindDraggabillyEvents=function(t,e){var i=this.handleDraggabilly;t[e]("dragStart",i.dragStart),t[e]("dragMove",i.dragMove),t[e]("dragEnd",i.dragEnd)},u.bindUIDraggableEvents=function(t){this._bindUIDraggableEvents(t,"on")},u.unbindUIDraggableEvents=function(t){this._bindUIDraggableEvents(t,"off")},u._bindUIDraggableEvents=function(t,e){var i=this.handleUIDraggable;t[e]("dragstart",i.start)[e]("drag",i.drag)[e]("dragstop",i.stop)};var d=u.destroy;return u.destroy=function(){d.apply(this,arguments),this.isEnabled=!1},h.Rect=i,h.Packer=n,h});
 
 
 
 
 
 
 
 
 
 
 
 
 
assets/js/resizesensor.min.js ADDED
@@ -0,0 +1 @@
 
1
+ "use strict";!function(e,t){"function"==typeof define&&define.amd?define(t):"object"==typeof exports?module.exports=t():e.ResizeSensor=t()}("undefined"!=typeof window?window:this,function(){if("undefined"==typeof window)return null;var w=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||function(e){return window.setTimeout(e,20)};function n(e,t){var i=Object.prototype.toString.call(e),n="[object Array]"===i||"[object NodeList]"===i||"[object HTMLCollection]"===i||"[object Object]"===i||"undefined"!=typeof jQuery&&e instanceof jQuery||"undefined"!=typeof Elements&&e instanceof Elements,o=0,s=e.length;if(n)for(;o<s;o++)t(e[o]);else t(e)}function g(e){if(!e.getBoundingClientRect)return{width:e.offsetWidth,height:e.offsetHeight};var t=e.getBoundingClientRect();return{width:Math.round(t.width),height:Math.round(t.height)}}var o=function(t,i){function y(){var i,n,o=[];this.add=function(e){o.push(e)},this.call=function(){for(i=0,n=o.length;i<n;i++)o[i].call()},this.remove=function(e){var t=[];for(i=0,n=o.length;i<n;i++)o[i]!==e&&t.push(o[i]);o=t},this.length=function(){return o.length}}n(t,function(e){!function(n,e){if(n)if(n.resizedAttached)n.resizedAttached.add(e);else{n.resizedAttached=new y,n.resizedAttached.add(e),n.resizeSensor=document.createElement("div"),n.resizeSensor.dir="ltr",n.resizeSensor.className="resize-sensor";var t="position: absolute; left: -10px; top: -10px; right: 0; bottom: 0; overflow: hidden; z-index: -1; visibility: hidden;",i="position: absolute; left: 0; top: 0; transition: 0s;";n.resizeSensor.style.cssText=t,n.resizeSensor.innerHTML='<div class="resize-sensor-expand" style="'+t+'"><div style="'+i+'"></div></div><div class="resize-sensor-shrink" style="'+t+'"><div style="'+i+' width: 200%; height: 200%"></div></div>',n.appendChild(n.resizeSensor);var o=window.getComputedStyle(n).getPropertyPriority("position");"absolute"!==o&&"relative"!==o&&"fixed"!==o&&(n.style.position="relative");var s,r,d=n.resizeSensor.childNodes[0],c=d.childNodes[0],l=n.resizeSensor.childNodes[1],a=g(n),h=a.width,f=a.height,u=function(){var e=0===n.offsetWidth&&0===n.offsetHeight;if(e){var t=n.style.display;n.style.display="block"}c.style.width="100000px",c.style.height="100000px",d.scrollLeft=1e5,d.scrollTop=1e5,l.scrollLeft=1e5,l.scrollTop=1e5,e&&(n.style.display=t)};n.resizeSensor.resetSensor=u;var p=function(){r=0,s&&(f=h=void 0,n.resizedAttached&&n.resizedAttached.call())},v=function(){var e=g(n),t=e.width,i=e.height;(s=t!=h||i!=f)&&!r&&(r=w(p)),u()},z=function(e,t,i){e.attachEvent?e.attachEvent("on"+t,i):e.addEventListener(t,i)};z(d,"scroll",v),z(l,"scroll",v),w(u)}}(e,i)}),this.detach=function(e){o.detach(t,e)},this.reset=function(){t.resizeSensor.resetSensor()}};return o.reset=function(e,t){n(e,function(e){e.resizeSensor.resetSensor()})},o.detach=function(e,t){n(e,function(e){e&&(e.resizedAttached&&"function"==typeof t&&(e.resizedAttached.remove(t),e.resizedAttached.length())||e.resizeSensor&&(e.contains(e.resizeSensor)&&e.removeChild(e.resizeSensor),delete e.resizeSensor,delete e.resizedAttached))})},o});
assets/js/wp-modula-conditions.js CHANGED
@@ -5,7 +5,9 @@ var modulaGalleryConditions = Backbone.Model.extend({
5
  initialize: function( args ){
6
 
7
  var rows = jQuery('.modula-settings-container tr[data-container]');
 
8
  this.set( 'rows', rows );
 
9
 
10
  this.initEvents();
11
  this.initValues();
@@ -27,15 +29,24 @@ var modulaGalleryConditions = Backbone.Model.extend({
27
  },
28
 
29
  changedType: function( settings, value ){
30
- var rows = this.get( 'rows' );
 
 
 
31
 
32
  if ( 'custom-grid' == value ) {
 
 
 
33
 
34
  rows.filter( '[data-container="columns"], [data-container="gutter"]' ).show();
35
  rows.filter( '[data-container="width"], [data-container="height"], [data-container="margin"], [data-container="randomFactor"], [data-container="shuffle"]' ).hide();
36
 
37
  }else if ( 'creative-gallery' ) {
38
 
 
 
 
39
  rows.filter( '[data-container="columns"], [data-container="gutter"]' ).hide();
40
  rows.filter( '[data-container="width"], [data-container="height"], [data-container="margin"], [data-container="randomFactor"], [data-container="shuffle"]' ).show();
41
 
5
  initialize: function( args ){
6
 
7
  var rows = jQuery('.modula-settings-container tr[data-container]');
8
+ var tabs = jQuery('.modula-tabs .modula-tab');
9
  this.set( 'rows', rows );
10
+ this.set( 'tabs', tabs );
11
 
12
  this.initEvents();
13
  this.initValues();
29
  },
30
 
31
  changedType: function( settings, value ){
32
+ var rows = this.get( 'rows' ),
33
+ tabs = this.get( 'tabs' );
34
+
35
+ console.log( tabs );
36
 
37
  if ( 'custom-grid' == value ) {
38
+
39
+ // Show Responsive tab
40
+ tabs.filter( '[data-tab="modula-responsive"]' ).show();
41
 
42
  rows.filter( '[data-container="columns"], [data-container="gutter"]' ).show();
43
  rows.filter( '[data-container="width"], [data-container="height"], [data-container="margin"], [data-container="randomFactor"], [data-container="shuffle"]' ).hide();
44
 
45
  }else if ( 'creative-gallery' ) {
46
 
47
+ // Hide Responsive tab
48
+ tabs.filter( '[data-tab="modula-responsive"]' ).hide();
49
+
50
  rows.filter( '[data-container="columns"], [data-container="gutter"]' ).hide();
51
  rows.filter( '[data-container="width"], [data-container="height"], [data-container="margin"], [data-container="randomFactor"], [data-container="shuffle"]' ).show();
52
 
assets/js/wp-modula-upload.js CHANGED
@@ -19,45 +19,14 @@ wp.Modula = 'undefined' === typeof( wp.Modula ) ? {} : wp.Modula;
19
  createToolbar: function() {
20
  var LibraryViewSwitcher, Filters, toolbarOptions;
21
 
22
- toolbarOptions = {
23
- controller: this.controller
24
- };
25
 
26
- if ( this.controller.isModeActive( 'grid' ) ) {
27
- toolbarOptions.className = 'media-toolbar wp-filter';
28
- }
29
-
30
- /**
31
- * @member {wp.media.view.Toolbar}
32
- */
33
- this.toolbar = new wp.media.view.Toolbar( toolbarOptions );
34
-
35
- this.views.add( this.toolbar );
36
-
37
- this.toolbar.set( 'spinner', new wp.media.view.Spinner({
38
- priority: -60
39
- }) );
40
 
41
  this.toolbar.set( 'modula-error', new modula.upload['errorview']({
42
  controller: this.controller,
43
  priority: -80
44
  }) );
45
 
46
- if ( this.options.search ) {
47
- // Search is an input, screen reader text needs to be rendered before
48
- this.toolbar.set( 'searchLabel', new wp.media.view.Label({
49
- value: wp.media.view.l10n.searchMediaLabel,
50
- attributes: {
51
- 'for': 'media-search-input'
52
- },
53
- priority: 60
54
- }).render() );
55
- this.toolbar.set( 'search', new wp.media.view.Search({
56
- controller: this.controller,
57
- model: this.collection.props,
58
- priority: 60
59
- }).render() );
60
- }
61
  },
62
  });
63
 
@@ -98,6 +67,7 @@ wp.Modula = 'undefined' === typeof( wp.Modula ) ? {} : wp.Modula;
98
 
99
  // Browse our library of attachments.
100
  contentRegion.view = new modula.upload['attachmentsbrowser']({
 
101
  controller: this,
102
  collection: state.get('library'),
103
  selection: state.get('selection'),
@@ -252,8 +222,6 @@ wp.Modula = 'undefined' === typeof( wp.Modula ) ? {} : wp.Modula;
252
  limitExceeded = false,
253
  modula_files_count = 0;
254
 
255
- console.log( 'uploadHandler initialized' );
256
-
257
  uploader = new wp.Uploader( modulaGalleryObject.uploaderOptions );
258
 
259
  // Uploader events
19
  createToolbar: function() {
20
  var LibraryViewSwitcher, Filters, toolbarOptions;
21
 
22
+ wp.media.view.AttachmentsBrowser.prototype.createToolbar.call(this);
 
 
23
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
24
 
25
  this.toolbar.set( 'modula-error', new modula.upload['errorview']({
26
  controller: this.controller,
27
  priority: -80
28
  }) );
29
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
30
  },
31
  });
32
 
67
 
68
  // Browse our library of attachments.
69
  contentRegion.view = new modula.upload['attachmentsbrowser']({
70
+ // contentRegion.view = new wp.media.view.AttachmentsBrowser({
71
  controller: this,
72
  collection: state.get('library'),
73
  selection: state.get('selection'),
222
  limitExceeded = false,
223
  modula_files_count = 0;
224
 
 
 
225
  uploader = new wp.Uploader( modulaGalleryObject.uploaderOptions );
226
 
227
  // Uploader events
changelog.txt ADDED
@@ -0,0 +1,163 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ = 2.0.5 =
2
+ * Added responsive options for custom grid
3
+ * Compatibility with WP Real Media Library( https://matthias-web.com/wordpress/real-media-library/ )
4
+ * Fixed shuffle on custom grid
5
+ * Added swipe functionality on mobile for lightbox
6
+ * Enhanced Modula Media Library
7
+
8
+ = 2.0.4 =
9
+ * Fixed defaults ( Causing an issue on modula pro with filters )
10
+ * Fixed translations
11
+ * Prepared for Modula Speed Up
12
+ * Changed the checkboxes' design
13
+ * Fixed Facebook share link
14
+
15
+ = 2.0.3 =
16
+ * All issues from here : https://github.com/MachoThemes/modula-lite/milestone/5?closed=1
17
+ * Added a new button ( Save & Close ) in edit image modal ( James Leesley recommendation )
18
+ * Renamed "Description" with "Caption" ( James Leesley recommendation )
19
+ * Fixed error on resize
20
+ * Fixed Shuffle
21
+ * Generated .po file
22
+
23
+ = 2.0.2 =
24
+ * Changed strings
25
+ * Fixed open new tab checkbox
26
+ * Fixed caption color
27
+ * Fixed caption & title size
28
+ * Fixed custom grid layout
29
+
30
+ = 2.0.1 - 12.17.2018 =
31
+ * Major Update
32
+ * Build Custom Grids - Take full control of your galleries.
33
+ * New Admin Interface - For a more intuitive user interface, we've blended Modula right into WordPress.
34
+ * Drag & Drop to Upload Images
35
+ * Guidelines to Help You Make the Perfect Gallery
36
+ * Preview your Gallery Without the Hassle
37
+
38
+ = 1.3.7 =
39
+ * fixed dismiss button from beta testing notice.
40
+
41
+ = 1.3.6 =
42
+ * removed custom js field.
43
+
44
+ = 1.3.5 =
45
+ * second wp.org review
46
+
47
+ = 1.3.4 =
48
+ * wp.org review
49
+
50
+ = 1.3.3 =
51
+ * Added notification for Modula 2.0
52
+ * Added Compatibility with AO
53
+
54
+ = 1.3.2 =
55
+ * Validated HTML markup
56
+
57
+ = 1.3.1 =
58
+ * Changed lightbox script
59
+
60
+ = 1.3.0 =
61
+ * Added compatibility with : WPML/Visual Composer/Page Builder by SiteOrigin
62
+ * Fixed bugs with captions & titles
63
+ * Localized all text strings
64
+ * Fixed lightbox bug
65
+ * For a more detailed changelog check : https://github.com/MachoThemes/modula-lite/milestone/2?closed=1
66
+
67
+ = 1.2.1 =
68
+ * Fixed the broken link
69
+ * Hid the Edit gallery menu item
70
+
71
+ = 1.2 =
72
+ * Removed sub-menu entry: Tutorial
73
+ * Removed sub-menu entry: Other Galleries
74
+ * Removed fixed action button
75
+ * Removed Modula Survey by Diego Imbriani
76
+ * Re-worked the "Upgrade" page.
77
+ * Removed the "languages" folder. We'll be using GlotPress to handle these
78
+ * Fixed an issue with WPML plugin
79
+
80
+ = 1.1.13 =
81
+ * Enhanced lightbox compatibility
82
+
83
+ = 1.1.10 =
84
+ * Enhancement in backend UI
85
+
86
+ = 1.1.9 =
87
+ * Minor change in backend UI
88
+
89
+ = 1.1.8 =
90
+ * Fixed broken css for backends under SSL
91
+
92
+ = 1.1.7 =
93
+ * Tool to fix broken images after version 1.1.0
94
+
95
+ = 1.1.6 =
96
+ * Bug fix (impossible to select effect "None")
97
+
98
+ = 1.1.5 =
99
+ * Fixed issue on admin panel when images are too tall
100
+
101
+ = 1.1.4 =
102
+ * Changed CSS icon prefix to avoid conflicts
103
+
104
+ = 1.1.3 =
105
+ * Fixed bug (linked images opening in lightbox)
106
+
107
+ = 1.1.2 =
108
+ * Fixed social icons bug
109
+
110
+ = 1.1.1 =
111
+ * Bug fix
112
+
113
+ = 1.1.0 =
114
+ * New image management
115
+ * Import tool for Envira galleries
116
+ * Import tool for NextGen galleries
117
+
118
+ = 1.0.12 =
119
+ * Added link to ShortPixel plugin for image optimization
120
+
121
+ = 1.0.11 =
122
+ * Minor bug fix: fixed missing preview effect image
123
+
124
+ = 1.0.10 =
125
+ * Bug fix: now Lightbox opens image at full size
126
+
127
+ = 1.0.9 =
128
+ * Fixed url to upgrade
129
+
130
+ = 1.0.8 =
131
+ * Fixed url to upgrade
132
+
133
+ = 1.0.7 =
134
+ * Changed call to action for the survey
135
+
136
+ = 1.0.6 =
137
+ * Fixed CSS issue with Lightbox and some themes. New page in admin panel to show other gallery plugins. Enhancements of the UI of admin panel.
138
+
139
+ = 1.0.5 =
140
+ * Added handy links on plugins page
141
+
142
+ = 1.0.4 =
143
+ * Updated pot file for translations
144
+
145
+ = 1.0.3 =
146
+ * Bug fix: now images can be sorted also in the "Add gallery" wizard
147
+
148
+ = 1.0.2 =
149
+ * Added link to survey to help us making a better plugin
150
+
151
+ = 1.0.1 =
152
+ * Fixed issue when activating the plugin
153
+
154
+ = 1.0.0 =
155
+ * This is the launch version. No changes yet.
156
+
157
+ == Upgrade Notice ==
158
+
159
+ = 1.1.8 =
160
+ * This update will fix broken CSS of admin panel under SSL
161
+
162
+ = 1.1.7 =
163
+ * This update contains a tool to fix broken images.
includes/admin/class-modula-addons.php CHANGED
@@ -4,9 +4,9 @@ class Modula_Addons {
4
 
5
  private $addons;
6
  private $upgrade_url = 'https://wp-modula.com/pricing/?utm_source=modula-lite&utm_medium=video-addon&utm_campaign=upsell';
7
-
8
  function __construct() {
9
-
10
  $this->addons = $this->check_for_addons();
11
 
12
  }
@@ -23,7 +23,7 @@ class Modula_Addons {
23
  array(
24
  'image' => '',
25
  'name' => esc_html__( 'Modula Speed Up', 'modula-best-grid-gallery' ),
26
- 'description' => esc_html__( 'Optimize your images and served them from Modula CDN', 'modula-best-grid-gallery' ),
27
  'slug' => 'modula-speedup',
28
  )
29
  );
@@ -58,7 +58,7 @@ class Modula_Addons {
58
  echo '<img src="' . MODULA_URL . 'assets/images/modula-logo.jpg">';
59
  echo '<div class="modula-addon-content">';
60
  echo '<h3>' . esc_html__( 'Feature Request', 'modula-best-grid-gallery' ) . '</h3>';
61
- echo '<div class="modula-addon-description">' . esc_html__( 'Don\'t see what you’re looking for? Let us help you build it by making a suggestion!', 'modula-best-grid-gallery' ) . '</div>';
62
  echo '</div>';
63
  echo '</div>';
64
  echo '<div class="modula-addon-actions">';
@@ -69,4 +69,4 @@ class Modula_Addons {
69
 
70
  }
71
 
72
- }
4
 
5
  private $addons;
6
  private $upgrade_url = 'https://wp-modula.com/pricing/?utm_source=modula-lite&utm_medium=video-addon&utm_campaign=upsell';
7
+
8
  function __construct() {
9
+
10
  $this->addons = $this->check_for_addons();
11
 
12
  }
23
  array(
24
  'image' => '',
25
  'name' => esc_html__( 'Modula Speed Up', 'modula-best-grid-gallery' ),
26
+ 'description' => esc_html__( 'Allow Modula to automatically optimize your images to load as fast as possible by reducing their file sizes, resizing them and serving them from StackPath’s content delivery network.', 'modula-best-grid-gallery' ),
27
  'slug' => 'modula-speedup',
28
  )
29
  );
58
  echo '<img src="' . MODULA_URL . 'assets/images/modula-logo.jpg">';
59
  echo '<div class="modula-addon-content">';
60
  echo '<h3>' . esc_html__( 'Feature Request', 'modula-best-grid-gallery' ) . '</h3>';
61
+ echo '<div class="modula-addon-description">' . esc_html__( 'Cant\'t find what you’re looking for? Let us know by making a suggestion!', 'modula-best-grid-gallery' ) . '</div>';
62
  echo '</div>';
63
  echo '</div>';
64
  echo '<div class="modula-addon-actions">';
69
 
70
  }
71
 
72
+ }
includes/admin/class-modula-cpt-fields-helper.php CHANGED
@@ -1,13 +1,13 @@
1
  <?php
2
 
3
  /**
4
- *
5
  */
6
  class Modula_CPT_Fields_Helper {
7
-
8
  public static function get_tabs() {
9
 
10
- $general_description = '<p>' . esc_html__( 'Choose between creative or custom grid (build your own). Pick your favorite lightbox script and be done quickly.', 'modula-best-grid-gallery' ) . '</p>';
11
  // $general_description .= self::generate_more_help_links();
12
 
13
  $caption_description = '<p>' . esc_html__( 'The settings below adjust how the image title/description will appear on the front-end.', 'modula-best-grid-gallery' ) . '</p>';
@@ -68,6 +68,7 @@ class Modula_CPT_Fields_Helper {
68
  'label' => esc_html__( 'Video', 'modula-best-grid-gallery' ),
69
  'title' => esc_html__( 'Video Settings', 'modula-best-grid-gallery' ),
70
  "icon" => "dashicons dashicons-video-alt3",
 
71
  'priority' => 60,
72
  ),
73
  'style' => array(
@@ -81,8 +82,17 @@ class Modula_CPT_Fields_Helper {
81
  'label' => esc_html__( 'Speed Up', 'modula-best-grid-gallery' ),
82
  'title' => esc_html__( 'Optimize your images', 'modula-best-grid-gallery' ),
83
  "icon" => "dashicons dashicons-dashboard",
 
84
  'priority' => 80,
85
  ),
 
 
 
 
 
 
 
 
86
  'customizations' => array(
87
  'label' => esc_html__( 'Customizations', 'modula-best-grid-gallery' ),
88
  'title' => esc_html__( 'Customization Settings', 'modula-best-grid-gallery' ),
@@ -171,7 +181,7 @@ class Modula_CPT_Fields_Helper {
171
  "description" => esc_html__( 'Choose your preferred lightbox style. Some styles, such as LightGallery, allow for image downloads.', 'modula-best-grid-gallery' ),
172
  'default' => 'lightbox2',
173
  "values" => array(
174
- esc_html__( 'Link', 'modula-best-grid-gallery' ) => array(
175
  "no-link" => esc_html__( 'No link', 'modula-best-grid-gallery' ),
176
  "direct" => esc_html__( 'Direct link to image', 'modula-best-grid-gallery' ),
177
  "attachment-page" => esc_html__( 'Attachment page', 'modula-best-grid-gallery' )
@@ -363,6 +373,35 @@ class Modula_CPT_Fields_Helper {
363
  'priority' => 50,
364
  ),
365
  ),
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
366
  'customizations' => array(
367
  "style" => array(
368
  "name" => esc_html__( 'Custom css', 'modula-best-grid-gallery' ),
@@ -424,4 +463,4 @@ class Modula_CPT_Fields_Helper {
424
  ) );
425
  }
426
 
427
- }
1
  <?php
2
 
3
  /**
4
+ *
5
  */
6
  class Modula_CPT_Fields_Helper {
7
+
8
  public static function get_tabs() {
9
 
10
+ $general_description = '<p>' . esc_html__( 'Choose between creative or custom grid (build your own). Pick your favorite lightbox style and easily design your gallery.', 'modula-best-grid-gallery' ) . '</p>';
11
  // $general_description .= self::generate_more_help_links();
12
 
13
  $caption_description = '<p>' . esc_html__( 'The settings below adjust how the image title/description will appear on the front-end.', 'modula-best-grid-gallery' ) . '</p>';
68
  'label' => esc_html__( 'Video', 'modula-best-grid-gallery' ),
69
  'title' => esc_html__( 'Video Settings', 'modula-best-grid-gallery' ),
70
  "icon" => "dashicons dashicons-video-alt3",
71
+ 'badge' => esc_html__( 'PRO', 'modula-best-grid-gallery' ),
72
  'priority' => 60,
73
  ),
74
  'style' => array(
82
  'label' => esc_html__( 'Speed Up', 'modula-best-grid-gallery' ),
83
  'title' => esc_html__( 'Optimize your images', 'modula-best-grid-gallery' ),
84
  "icon" => "dashicons dashicons-dashboard",
85
+ 'badge' => esc_html__( 'PRO', 'modula-best-grid-gallery' ),
86
  'priority' => 80,
87
  ),
88
+ 'responsive' => array(
89
+ 'label' => esc_html__( 'Responsive', 'modula-best-grid-gallery' ),
90
+ 'title' => esc_html__( 'Responsive Settings', 'modula-best-grid-gallery' ),
91
+ // 'description' => $customizations_description,
92
+ 'badge' => esc_html__( 'Beta', 'modula-best-grid-gallery' ),
93
+ "icon" => "dashicons dashicons-smartphone",
94
+ 'priority' => 90,
95
+ ),
96
  'customizations' => array(
97
  'label' => esc_html__( 'Customizations', 'modula-best-grid-gallery' ),
98
  'title' => esc_html__( 'Customization Settings', 'modula-best-grid-gallery' ),
181
  "description" => esc_html__( 'Choose your preferred lightbox style. Some styles, such as LightGallery, allow for image downloads.', 'modula-best-grid-gallery' ),
182
  'default' => 'lightbox2',
183
  "values" => array(
184
+ esc_html__( 'Link', 'modula-best-grid-gallery' ) => array(
185
  "no-link" => esc_html__( 'No link', 'modula-best-grid-gallery' ),
186
  "direct" => esc_html__( 'Direct link to image', 'modula-best-grid-gallery' ),
187
  "attachment-page" => esc_html__( 'Attachment page', 'modula-best-grid-gallery' )
373
  'priority' => 50,
374
  ),
375
  ),
376
+ 'responsive' => array(
377
+ 'enable_responsive' => array(
378
+ "name" => esc_html__( 'Custom responsivness', 'modula-best-grid-gallery' ),
379
+ "description" => esc_html__( 'Force the gallery to show a certain number of column on tablet/mobile devices', 'modula-best-grid-gallery' ),
380
+ "type" => "toggle",
381
+ "default" => 0,
382
+ 'priority' => 10,
383
+ ),
384
+ 'tablet_columns' => array(
385
+ "name" => esc_html__( 'Tablet Columns', 'modula-best-grid-gallery' ),
386
+ "type" => "ui-slider",
387
+ "description" => esc_html__( 'Use this slider to adjust the number of columns for gallery on tablets.', 'modula-best-grid-gallery' ),
388
+ "min" => 1,
389
+ "max" => 6,
390
+ "step" => 1,
391
+ "default" => 2,
392
+ 'priority' => 20,
393
+ ),
394
+ 'mobile_columns' => array(
395
+ "name" => esc_html__( 'Mobile Columns', 'modula-best-grid-gallery' ),
396
+ "type" => "ui-slider",
397
+ "description" => esc_html__( 'Use this slider to adjust the number of columns for gallery on mobile devices.', 'modula-best-grid-gallery' ),
398
+ "min" => 1,
399
+ "max" => 6,
400
+ "step" => 1,
401
+ "default" => 1,
402
+ 'priority' => 30,
403
+ ),
404
+ ),
405
  'customizations' => array(
406
  "style" => array(
407
  "name" => esc_html__( 'Custom css', 'modula-best-grid-gallery' ),
463
  ) );
464
  }
465
 
466
+ }
includes/admin/class-modula-cpt.php CHANGED
@@ -377,6 +377,7 @@ class Modula_CPT {
377
  }
378
 
379
  public function add_extensions_tab( $views ) {
 
380
  $this->display_extension_tab();
381
  return $views;
382
  }
@@ -412,4 +413,19 @@ class Modula_CPT {
412
  <br />
413
  <?php
414
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
415
  }
377
  }
378
 
379
  public function add_extensions_tab( $views ) {
380
+ $this->display_feedback_notice();
381
  $this->display_extension_tab();
382
  return $views;
383
  }
413
  <br />
414
  <?php
415
  }
416
+
417
+ public function display_feedback_notice() {
418
+ ?>
419
+
420
+ <div class="notice modula-feedback-notice">
421
+ <p class="modula-feedback-title">
422
+ <svg xmlns="http://www.w3.org/2000/svg" width="20" viewBox="0 0 32 32"><path fill="#f0f5fa" d="M9.3 25.3c-2.4-0.7-4.7-1.4-7.1-2.1 2.4-3.5 4.7-7 7-10.5C9.3 12.9 9.3 24.9 9.3 25.3z"/><path fill="#f0f5fa" d="M9.6 20.1c3.7 2 7.4 3.9 11.1 5.9 -0.1 0.1-5 5-5.2 5.2C13.6 27.5 11.6 23.9 9.6 20.1 9.6 20.2 9.6 20.2 9.6 20.1z"/><path fill="#f0f5fa" d="M22.3 11.9c-3.7-2-7.4-4-11-6 0 0 0 0 0 0 0 0 0 0 0 0 1.7-1.7 3.4-3.3 5.1-5 0 0 0 0 0.1-0.1C18.5 4.5 20.4 8.2 22.3 11.9 22.4 11.9 22.3 11.9 22.3 11.9z"/><path fill="#f0f5fa" d="M4.7 15c-0.6-2.4-1.2-4.7-1.8-7 0.2 0 11.9 0.6 12.7 0.6 0 0 0 0 0 0 0 0 0 0 0 0 -3.6 2.1-7.2 4.2-10.7 6.3C4.8 15 4.8 15 4.7 15z"/><path fill="#f0f5fa" d="M22.9 19.6c-0.2-4.2-0.3-8.3-0.5-12.5 2.4 0.6 4.8 1.2 7.1 1.8C27.4 12.4 25.1 16 22.9 19.6 22.9 19.6 22.9 19.6 22.9 19.6z"/><path fill="#f0f5fa" d="M27.7 16.8c0.6 2.4 1.2 4.7 1.9 7.1 -4.2-0.2-8.5-0.4-12.7-0.5 0 0 0 0 0 0C20.5 21.2 24.1 19 27.7 16.8z"/></svg>
423
+ Modula Image Gallery
424
+ </p>
425
+ <p><?php esc_html_e( 'Do you enjoy using Modula? Please take a minute to suggest a feature or tell us what you think.', 'modula-best-grid-gallery' ); ?></p>
426
+ <a class="button" target="_blank" href="https://docs.google.com/forms/d/e/1FAIpQLSc5eAZbxGROm_WSntX_3JVji2cMfS3LIbCNDKG1yF_VNe3R4g/viewform"><?php esc_html_e( 'Submit Feedback', 'modula-best-grid-gallery' ); ?></a>
427
+ </div>
428
+
429
+ <?php
430
+ }
431
  }
includes/admin/class-modula-field-builder.php CHANGED
@@ -103,16 +103,16 @@ class Modula_Field_Builder {
103
  echo '</div>';
104
  echo '</div>';
105
  echo '<div class="buttons">';
106
- echo '<a href="#" id="modula-uploader-browser" class="button">Upload image files</a><a href="#" id="modula-wp-gallery" class="button button-primary">Select from Library</a>';
107
  echo '</div>';
108
  echo '</div>';
109
  echo '<div id="modula-uploader-container" class="modula-uploader-inline">';
110
  echo '<div class="modula-error-container"></div>';
111
  echo '<div class="modula-uploader-inline-content">';
112
- echo '<h2 class="modula-upload-message"><span class="dashicons dashicons-upload"></span>Drag & Drop files here!</h2>';
113
  echo '<div id="modula-grid" style="display:none"></div>';
114
  echo '</div>';
115
- echo '<div id="modula-dropzone-container"><div class="modula-uploader-window-content"><h1>Drop files to upload</h1></div></div>';
116
  echo '</div>';
117
 
118
  // Helper Guildelines Toggle
@@ -216,10 +216,16 @@ class Modula_Field_Builder {
216
  /* Create HMTL for a tab */
217
  private function _render_tab( $tab, $first = false ) {
218
  $icon = '';
 
 
219
  if ( isset( $tab['icon'] ) ) {
220
  $icon = '<i class="' . esc_attr( $tab['icon'] ) . '"></i>';
221
  }
222
- return '<div class="modula-tab' . ( $first ? ' active-tab' : '' ) . '" data-tab="modula-' . esc_attr( $tab['id'] ) . '">' . $icon . wp_kses_post( $tab['label'] ) . '</div>';
 
 
 
 
223
  }
224
 
225
  /* Create HMTL for a row */
103
  echo '</div>';
104
  echo '</div>';
105
  echo '<div class="buttons">';
106
+ echo '<a href="#" id="modula-uploader-browser" class="button">' . esc_html__( 'Upload image files', 'modula-best-grid-gallery' ) . '</a><a href="#" id="modula-wp-gallery" class="button button-primary">' . esc_html__( 'Select from Library', 'modula-best-grid-gallery' ) . '</a>';
107
  echo '</div>';
108
  echo '</div>';
109
  echo '<div id="modula-uploader-container" class="modula-uploader-inline">';
110
  echo '<div class="modula-error-container"></div>';
111
  echo '<div class="modula-uploader-inline-content">';
112
+ echo '<h2 class="modula-upload-message"><span class="dashicons dashicons-upload"></span>' . esc_html__( 'Drag & Drop files here!', 'modula-best-grid-gallery' ) . '</h2>';
113
  echo '<div id="modula-grid" style="display:none"></div>';
114
  echo '</div>';
115
+ echo '<div id="modula-dropzone-container"><div class="modula-uploader-window-content"><h1>' . esc_html__( 'Drop files to upload', 'modula-best-grid-gallery' ) . '</h1></div></div>';
116
  echo '</div>';
117
 
118
  // Helper Guildelines Toggle
216
  /* Create HMTL for a tab */
217
  private function _render_tab( $tab, $first = false ) {
218
  $icon = '';
219
+ $badge = '';
220
+
221
  if ( isset( $tab['icon'] ) ) {
222
  $icon = '<i class="' . esc_attr( $tab['icon'] ) . '"></i>';
223
  }
224
+
225
+ if ( isset( $tab['badge'] ) ) {
226
+ $badge = '<sup>' . esc_html( $tab['badge'] ) . '</sup>';
227
+ }
228
+ return '<div class="modula-tab' . ( $first ? ' active-tab' : '' ) . ' modula-' . esc_attr( $tab['id'] ) . '" data-tab="modula-' . esc_attr( $tab['id'] ) . '">' . $icon . wp_kses_post( $tab['label'] ) . $badge . '</div>';
229
  }
230
 
231
  /* Create HMTL for a row */
includes/class-modula.php CHANGED
@@ -71,7 +71,7 @@ class Modula {
71
 
72
  private function define_admin_hooks() {
73
 
74
- add_action( 'admin_enqueue_scripts', array( $this, 'admin_scripts' ) );
75
  add_action( 'init', array( $this, 'admin_init' ), 20 );
76
  add_action( 'wp_ajax_modula-reload-addons', array( $this, 'reload_addons' ), 20 );
77
 
@@ -167,7 +167,7 @@ class Modula {
167
  wp_enqueue_style( 'modula-cpt-style', MODULA_URL . 'assets/css/modula-cpt.css' );
168
 
169
  wp_enqueue_script( 'modula-resize-senzor', MODULA_URL . 'assets/js/resizesensor.js', array( 'jquery' ), '1.0.0', true );
170
- wp_enqueue_script( 'modula-packery', MODULA_URL . 'assets/js/packery.pkgd.js', array( 'jquery', 'jquery-ui-core', 'jquery-ui-widget', 'jquery-ui-droppable', 'jquery-ui-resizable', 'jquery-ui-draggable' ), '2.0.0', true );
171
  wp_enqueue_script( 'modula-settings', MODULA_URL . 'assets/js/wp-modula-settings.js', array( 'jquery', 'jquery-ui-slider', 'wp-color-picker', 'jquery-ui-sortable' ), '2.0.0', true );
172
  wp_enqueue_script( 'modula-items', MODULA_URL . 'assets/js/wp-modula-items.js', array(), '2.0.0', true );
173
  wp_enqueue_script( 'modula-modal', MODULA_URL . 'assets/js/wp-modula-modal.js', array(), '2.0.0', true );
71
 
72
  private function define_admin_hooks() {
73
 
74
+ add_action( 'admin_enqueue_scripts', array( $this, 'admin_scripts' ), 20 );
75
  add_action( 'init', array( $this, 'admin_init' ), 20 );
76
  add_action( 'wp_ajax_modula-reload-addons', array( $this, 'reload_addons' ), 20 );
77
 
167
  wp_enqueue_style( 'modula-cpt-style', MODULA_URL . 'assets/css/modula-cpt.css' );
168
 
169
  wp_enqueue_script( 'modula-resize-senzor', MODULA_URL . 'assets/js/resizesensor.js', array( 'jquery' ), '1.0.0', true );
170
+ wp_enqueue_script( 'modula-packery', MODULA_URL . 'assets/js/packery.min.js', array( 'jquery', 'jquery-ui-core', 'jquery-ui-widget', 'jquery-ui-droppable', 'jquery-ui-resizable', 'jquery-ui-draggable' ), '2.0.0', true );
171
  wp_enqueue_script( 'modula-settings', MODULA_URL . 'assets/js/wp-modula-settings.js', array( 'jquery', 'jquery-ui-slider', 'wp-color-picker', 'jquery-ui-sortable' ), '2.0.0', true );
172
  wp_enqueue_script( 'modula-items', MODULA_URL . 'assets/js/wp-modula-items.js', array(), '2.0.0', true );
173
  wp_enqueue_script( 'modula-modal', MODULA_URL . 'assets/js/wp-modula-modal.js', array(), '2.0.0', true );
includes/public/class-modula-shortcode.php CHANGED
@@ -32,11 +32,11 @@ class Modula_Shortcode {
32
 
33
  // Scripts necessary for some galleries
34
  wp_register_script( 'lightbox2_script', MODULA_URL . 'assets/js/lightbox.min.js', array( 'jquery' ), null, true );
35
- wp_register_script( 'packery', MODULA_URL . 'assets/js/packery.pkgd.min.js', array( 'jquery' ), null, true );
36
 
37
 
38
  // @todo: minify all css & js for a better optimization.
39
- wp_register_script( 'modula', MODULA_URL . 'assets/js/jquery.modula.js', array( 'jquery' ), null, true );
40
 
41
  }
42
 
@@ -83,9 +83,16 @@ class Modula_Shortcode {
83
  $default = Modula_CPT_Fields_Helper::get_defaults();
84
  $settings = wp_parse_args( $settings, $default );
85
 
 
 
 
 
 
 
 
86
  /* Get gallery images */
87
- $images = get_post_meta( $atts['id'], 'modula-images', true );
88
- if ( isset( $settings['shuffle'] ) && '1' == $settings['shuffle'] ) {
89
  shuffle( $images );
90
  }
91
 
@@ -93,7 +100,7 @@ class Modula_Shortcode {
93
  return esc_html__( 'Gallery not found.', 'modula-best-grid-gallery' );
94
  }
95
 
96
- if ( isset( $settings['type'] ) && 'custom-grid' == $settings['type'] ) {
97
  wp_enqueue_script( 'packery' );
98
  }
99
 
@@ -144,9 +151,12 @@ class Modula_Shortcode {
144
  "enablePinterest" => boolval( $settings['enablePinterest'] ),
145
  "enableGplus" => boolval( $settings['enableGplus'] ),
146
  "randomFactor" => ( $settings['randomFactor'] / 100 ),
147
- 'type' => isset( $settings['type'] ) ? $settings['type'] : 'creative-gallery',
148
  'columns' => 12,
149
  'gutter' => isset( $settings['gutter'] ) ? absint($settings['gutter']) : 10,
 
 
 
150
  );
151
 
152
  $template_data['js_config'] = apply_filters( 'modula_gallery_settings', $js_config, $settings );
32
 
33
  // Scripts necessary for some galleries
34
  wp_register_script( 'lightbox2_script', MODULA_URL . 'assets/js/lightbox.min.js', array( 'jquery' ), null, true );
35
+ wp_register_script( 'packery', MODULA_URL . 'assets/js/packery.min.js', array( 'jquery' ), null, true );
36
 
37
 
38
  // @todo: minify all css & js for a better optimization.
39
+ wp_register_script( 'modula', MODULA_URL . 'assets/js/jquery-modula.min.js', array( 'jquery' ), null, true );
40
 
41
  }
42
 
83
  $default = Modula_CPT_Fields_Helper::get_defaults();
84
  $settings = wp_parse_args( $settings, $default );
85
 
86
+ $type = 'creative-gallery';
87
+ if ( isset( $settings['type'] ) ) {
88
+ $type = $settings['type'];
89
+ }else{
90
+ $settings['type'] = 'creative-gallery';
91
+ }
92
+
93
  /* Get gallery images */
94
+ $images = apply_filters( 'modula_gallery_images', get_post_meta( $atts['id'], 'modula-images', true ), $settings );
95
+ if ( isset( $settings['shuffle'] ) && '1' == $settings['shuffle'] && 'creative-gallery' == $type ) {
96
  shuffle( $images );
97
  }
98
 
100
  return esc_html__( 'Gallery not found.', 'modula-best-grid-gallery' );
101
  }
102
 
103
+ if ( 'custom-grid' == $type ) {
104
  wp_enqueue_script( 'packery' );
105
  }
106
 
151
  "enablePinterest" => boolval( $settings['enablePinterest'] ),
152
  "enableGplus" => boolval( $settings['enableGplus'] ),
153
  "randomFactor" => ( $settings['randomFactor'] / 100 ),
154
+ 'type' => $type,
155
  'columns' => 12,
156
  'gutter' => isset( $settings['gutter'] ) ? absint($settings['gutter']) : 10,
157
+ 'enableResponsive' => isset( $settings['enable_responsive'] ) ? $settings['enable_responsive'] : 0,
158
+ 'tabletColumns' => isset( $settings['tablet_columns'] ) ? $settings['tablet_columns'] : 2,
159
+ 'mobileColumns' => isset( $settings['mobile_columns'] ) ? $settings['mobile_columns'] : 1,
160
  );
161
 
162
  $template_data['js_config'] = apply_filters( 'modula_gallery_settings', $js_config, $settings );
languages/modula-best-grid-gallery.po CHANGED
@@ -1,11 +1,11 @@
1
- # Copyright (C) 2019 Macho Themes
2
- # This file is distributed under the same license as the Modula package.
3
  msgid ""
4
  msgstr ""
5
- "Project-Id-Version: Modula 2.0.2\n"
6
  "Report-Msgid-Bugs-To: "
7
  "https://wordpress.org/support/plugin/modula-best-grid-gallery\n"
8
- "POT-Creation-Date: 2019-01-14 20:19:38+00:00\n"
9
  "MIME-Version: 1.0\n"
10
  "Content-Type: text/plain; charset=utf-8\n"
11
  "Content-Transfer-Encoding: 8bit\n"
@@ -35,31 +35,41 @@ msgid ""
35
  "like YouTube and Vimeo to your website has never been easier."
36
  msgstr ""
37
 
38
- #: includes/admin/class-modula-addons.php:42
 
 
 
 
 
 
 
 
 
 
 
39
  msgid "Upgrade to PRO"
40
  msgstr ""
41
 
42
- #: includes/admin/class-modula-addons.php:53
43
  msgid "Feature Request"
44
  msgstr ""
45
 
46
- #: includes/admin/class-modula-addons.php:54
47
- msgid ""
48
- "Don't see what you’re looking for? Let us help you build it by making a "
49
- "suggestion!"
50
  msgstr ""
51
 
52
- #: includes/admin/class-modula-addons.php:58
53
  msgid "Send Feature Request"
54
  msgstr ""
55
 
56
- #. Plugin Name of the plugin/theme
57
- msgid "Modula"
 
58
  msgstr ""
59
 
60
  #: includes/admin/class-modula-admin.php:33
61
  #: includes/admin/class-modula-admin.php:57
62
- #: includes/admin/class-modula-cpt.php:384
63
  msgid "Extensions"
64
  msgstr ""
65
 
@@ -98,7 +108,7 @@ msgstr ""
98
  #: includes/admin/class-modula-cpt-fields-helper.php:10
99
  msgid ""
100
  "Choose between creative or custom grid (build your own). Pick your favorite "
101
- "lightbox script and be done quickly."
102
  msgstr ""
103
 
104
  #: includes/admin/class-modula-cpt-fields-helper.php:13
@@ -156,7 +166,6 @@ msgid "Social Settings"
156
  msgstr ""
157
 
158
  #: includes/admin/class-modula-cpt-fields-helper.php:54
159
- #: includes/admin/tabs/upsell.php:23
160
  msgid "Loading effects"
161
  msgstr ""
162
 
@@ -165,7 +174,7 @@ msgid "Loading Effects Settings"
165
  msgstr ""
166
 
167
  #: includes/admin/class-modula-cpt-fields-helper.php:61
168
- #: includes/admin/class-modula-cpt-fields-helper.php:310
169
  msgid "Hover effect"
170
  msgstr ""
171
 
@@ -181,321 +190,377 @@ msgstr ""
181
  msgid "Video Settings"
182
  msgstr ""
183
 
184
- #: includes/admin/class-modula-cpt-fields-helper.php:74
185
- msgid "Style"
 
186
  msgstr ""
187
 
188
  #: includes/admin/class-modula-cpt-fields-helper.php:75
 
 
 
 
189
  msgid "Style Settings"
190
  msgstr ""
191
 
192
- #: includes/admin/class-modula-cpt-fields-helper.php:81
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
193
  msgid "Customizations"
194
  msgstr ""
195
 
196
- #: includes/admin/class-modula-cpt-fields-helper.php:82
197
  msgid "Customization Settings"
198
  msgstr ""
199
 
200
- #: includes/admin/class-modula-cpt-fields-helper.php:93
201
  msgid "Still stuck ?"
202
  msgstr ""
203
 
204
- #: includes/admin/class-modula-cpt-fields-helper.php:93
205
  msgid "Explore our documentation"
206
  msgstr ""
207
 
208
- #: includes/admin/class-modula-cpt-fields-helper.php:93
209
  msgid "Contact our support team."
210
  msgstr ""
211
 
212
- #: includes/admin/class-modula-cpt-fields-helper.php:104
213
  msgid "Gallery Type"
214
  msgstr ""
215
 
216
- #: includes/admin/class-modula-cpt-fields-helper.php:106
217
  msgid "Choose the type of gallery you want to use."
218
  msgstr ""
219
 
220
- #: includes/admin/class-modula-cpt-fields-helper.php:109
221
  msgid "Creative Gallery"
222
  msgstr ""
223
 
224
- #: includes/admin/class-modula-cpt-fields-helper.php:110
225
  msgid "Custom Grid"
226
  msgstr ""
227
 
228
- #: includes/admin/class-modula-cpt-fields-helper.php:115
229
  msgid "Gutter"
230
  msgstr ""
231
 
232
- #: includes/admin/class-modula-cpt-fields-helper.php:117
233
  msgid "Use this slider to adjust the spacing of images in your gallery."
234
  msgstr ""
235
 
236
- #: includes/admin/class-modula-cpt-fields-helper.php:125
237
  msgid "Width"
238
  msgstr ""
239
 
240
- #: includes/admin/class-modula-cpt-fields-helper.php:127
241
  msgid "Width of the gallery. Can be in % or pixels."
242
  msgstr ""
243
 
244
- #: includes/admin/class-modula-cpt-fields-helper.php:132
245
  msgid "Height"
246
  msgstr ""
247
 
248
- #: includes/admin/class-modula-cpt-fields-helper.php:134
249
  msgid "Set the height of the gallery in pixels."
250
  msgstr ""
251
 
252
- #: includes/admin/class-modula-cpt-fields-helper.php:139
253
- msgid "Image size"
254
  msgstr ""
255
 
256
- #: includes/admin/class-modula-cpt-fields-helper.php:142
257
- msgid "Set the minimum width or height of the images in pixels."
258
  msgstr ""
259
 
260
- #: includes/admin/class-modula-cpt-fields-helper.php:146
261
  msgid "Margin"
262
  msgstr ""
263
 
264
- #: includes/admin/class-modula-cpt-fields-helper.php:149
265
  msgid "Set the margin between images in pixels."
266
  msgstr ""
267
 
268
- #: includes/admin/class-modula-cpt-fields-helper.php:153
269
  msgid "Random factor"
270
  msgstr ""
271
 
272
- #: includes/admin/class-modula-cpt-fields-helper.php:155
273
  msgid ""
274
  "Toggle this to 0 to tune down the randomising factor on Modula's grid "
275
  "algorithm."
276
  msgstr ""
277
 
278
- #: includes/admin/class-modula-cpt-fields-helper.php:163
279
  msgid "Lightbox &amp; Links"
280
  msgstr ""
281
 
282
- #: includes/admin/class-modula-cpt-fields-helper.php:165
283
  msgid ""
284
  "Choose your preferred lightbox style. Some styles, such as LightGallery, "
285
  "allow for image downloads."
286
  msgstr ""
287
 
288
- #: includes/admin/class-modula-cpt-fields-helper.php:168
289
  msgid "Link"
290
  msgstr ""
291
 
292
- #: includes/admin/class-modula-cpt-fields-helper.php:169
293
  msgid "No link"
294
  msgstr ""
295
 
296
- #: includes/admin/class-modula-cpt-fields-helper.php:170
297
  msgid "Direct link to image"
298
  msgstr ""
299
 
300
- #: includes/admin/class-modula-cpt-fields-helper.php:171
301
  msgid "Attachment page"
302
  msgstr ""
303
 
304
- #: includes/admin/class-modula-cpt-fields-helper.php:173
305
- #: includes/admin/tabs/upsell.php:11
306
  msgid "Lightboxes"
307
  msgstr ""
308
 
309
- #: includes/admin/class-modula-cpt-fields-helper.php:174
310
  msgid "Lightbox2"
311
  msgstr ""
312
 
313
- #: includes/admin/class-modula-cpt-fields-helper.php:178
314
  msgid "Lightboxes with PRO license"
315
  msgstr ""
316
 
317
- #: includes/admin/class-modula-cpt-fields-helper.php:180
318
  msgid "Magnific popup"
319
  msgstr ""
320
 
321
- #: includes/admin/class-modula-cpt-fields-helper.php:181
322
  msgid "PrettyPhoto"
323
  msgstr ""
324
 
325
- #: includes/admin/class-modula-cpt-fields-helper.php:182
326
  msgid "FancyBox"
327
  msgstr ""
328
 
329
- #: includes/admin/class-modula-cpt-fields-helper.php:183
330
  msgid "SwipeBox"
331
  msgstr ""
332
 
333
- #: includes/admin/class-modula-cpt-fields-helper.php:184
334
  msgid "LightGallery"
335
  msgstr ""
336
 
337
- #: includes/admin/class-modula-cpt-fields-helper.php:190
338
  msgid "Shuffle images"
339
  msgstr ""
340
 
341
- #: includes/admin/class-modula-cpt-fields-helper.php:193
342
  msgid "Toggle this to ON to have the gallery shuffle on each page load"
343
  msgstr ""
344
 
345
- #: includes/admin/class-modula-cpt-fields-helper.php:199
346
- msgid "Caption color"
347
  msgstr ""
348
 
349
- #: includes/admin/class-modula-cpt-fields-helper.php:201
350
  msgid "Set the color of captions."
351
  msgstr ""
352
 
353
- #: includes/admin/class-modula-cpt-fields-helper.php:206
354
- msgid "Default title"
355
  msgstr ""
356
 
357
- #: includes/admin/class-modula-cpt-fields-helper.php:208
358
  msgid ""
359
  "If you leave the title blank Modula will get the title from WordPress image "
360
  "by default."
361
  msgstr ""
362
 
363
- #: includes/admin/class-modula-cpt-fields-helper.php:210
364
- #: includes/admin/class-modula-cpt-fields-helper.php:221
365
  msgid "No default"
366
  msgstr ""
367
 
368
- #: includes/admin/class-modula-cpt-fields-helper.php:211
369
- #: includes/admin/class-modula-cpt-fields-helper.php:222
370
  msgid "WP Image title"
371
  msgstr ""
372
 
373
- #: includes/admin/class-modula-cpt-fields-helper.php:212
374
- #: includes/admin/class-modula-cpt-fields-helper.php:224
375
  msgid "WP Image description"
376
  msgstr ""
377
 
378
- #: includes/admin/class-modula-cpt-fields-helper.php:217
379
- msgid "Default caption"
380
  msgstr ""
381
 
382
- #: includes/admin/class-modula-cpt-fields-helper.php:219
383
  msgid ""
384
  "If you leave the caption blank Modula will get the title from WordPress "
385
  "image by default."
386
  msgstr ""
387
 
388
- #: includes/admin/class-modula-cpt-fields-helper.php:223
389
  msgid "WP Image caption"
390
  msgstr ""
391
 
392
- #: includes/admin/class-modula-cpt-fields-helper.php:229
393
  msgid "Hide Title"
394
  msgstr ""
395
 
396
- #: includes/admin/class-modula-cpt-fields-helper.php:232
397
- msgid "Hide image titles from the gallery"
398
  msgstr ""
399
 
400
- #: includes/admin/class-modula-cpt-fields-helper.php:236
401
  msgid "Hide Caption"
402
  msgstr ""
403
 
404
- #: includes/admin/class-modula-cpt-fields-helper.php:239
405
- msgid "Hide image descriptions from the gallery"
406
  msgstr ""
407
 
408
- #: includes/admin/class-modula-cpt-fields-helper.php:243
409
  msgid "Title Font Size"
410
  msgstr ""
411
 
412
- #: includes/admin/class-modula-cpt-fields-helper.php:248
413
- msgid "The title font size in pixel. (set to 0 to use the theme defaults)"
414
  msgstr ""
415
 
416
- #: includes/admin/class-modula-cpt-fields-helper.php:252
417
  msgid "Caption Font Size"
418
  msgstr ""
419
 
420
- #: includes/admin/class-modula-cpt-fields-helper.php:257
421
- msgid "The caption font size in pixels (set to 0 to use the theme defaults)"
422
  msgstr ""
423
 
424
- #: includes/admin/class-modula-cpt-fields-helper.php:263
425
- msgid "Add Twitter icon"
426
  msgstr ""
427
 
428
- #: includes/admin/class-modula-cpt-fields-helper.php:270
429
- msgid "Add Facebook icon"
430
  msgstr ""
431
 
432
- #: includes/admin/class-modula-cpt-fields-helper.php:277
433
- msgid "Add Google Plus icon"
434
  msgstr ""
435
 
436
- #: includes/admin/class-modula-cpt-fields-helper.php:284
437
- msgid "Add Pinterest icon"
438
  msgstr ""
439
 
440
- #: includes/admin/class-modula-cpt-fields-helper.php:290
441
  msgid "Color of social sharing icons"
442
  msgstr ""
443
 
444
- #: includes/admin/class-modula-cpt-fields-helper.php:299
445
  msgid "Scale"
446
  msgstr ""
447
 
448
- #: includes/admin/class-modula-cpt-fields-helper.php:300
449
  msgid ""
450
  "Choose a value below 100% for a zoom-in effect. Choose a value over 100% "
451
  "for a zoom-out effect"
452
  msgstr ""
453
 
454
- #: includes/admin/class-modula-cpt-fields-helper.php:318
 
 
 
 
455
  msgid "Border Size"
456
  msgstr ""
457
 
458
- #: includes/admin/class-modula-cpt-fields-helper.php:320
459
  msgid "Set the border size of images in your gallrey."
460
  msgstr ""
461
 
462
- #: includes/admin/class-modula-cpt-fields-helper.php:327
463
  msgid "Border Radius"
464
  msgstr ""
465
 
466
- #: includes/admin/class-modula-cpt-fields-helper.php:329
467
  msgid "Set the radius of the image borders in this gallery."
468
  msgstr ""
469
 
470
- #: includes/admin/class-modula-cpt-fields-helper.php:336
471
  msgid "Border Color"
472
  msgstr ""
473
 
474
- #: includes/admin/class-modula-cpt-fields-helper.php:338
475
  msgid "Set the color of your image borders in this gallery."
476
  msgstr ""
477
 
478
- #: includes/admin/class-modula-cpt-fields-helper.php:343
479
  msgid "Shadow Size"
480
  msgstr ""
481
 
482
- #: includes/admin/class-modula-cpt-fields-helper.php:345
483
  msgid "Set the size of image shadows in this gallery."
484
  msgstr ""
485
 
486
- #: includes/admin/class-modula-cpt-fields-helper.php:352
487
  msgid "Shadow Color"
488
  msgstr ""
489
 
490
- #: includes/admin/class-modula-cpt-fields-helper.php:354
491
  msgid "Set the color of image shadows in this gallery"
492
  msgstr ""
493
 
494
- #: includes/admin/class-modula-cpt-fields-helper.php:361
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
495
  msgid "Custom css"
496
  msgstr ""
497
 
498
- #: includes/admin/class-modula-cpt-fields-helper.php:364
499
  msgid "Just write the code without using the &lt;style&gt;&lt;/style&gt; tags"
500
  msgstr ""
501
 
@@ -509,6 +574,10 @@ msgstr ""
509
  msgid "Gallery"
510
  msgstr ""
511
 
 
 
 
 
512
  #: includes/admin/class-modula-cpt.php:25
513
  msgid "Item Archives"
514
  msgstr ""
@@ -526,7 +595,7 @@ msgid "Add New Item"
526
  msgstr ""
527
 
528
  #: includes/admin/class-modula-cpt.php:30
529
- #: includes/admin/class-modula-cpt.php:399
530
  msgid "Add New"
531
  msgstr ""
532
 
@@ -608,14 +677,20 @@ msgid ""
608
  "galleries, masonry grids and more in a few clicks."
609
  msgstr ""
610
 
611
- #: includes/admin/class-modula-cpt.php:74
612
- msgid "Settings"
613
- msgstr ""
614
-
615
  #: includes/admin/class-modula-cpt.php:79
616
  msgid "Shortcode"
617
  msgstr ""
618
 
 
 
 
 
 
 
 
 
 
 
619
  #: includes/admin/class-modula-field-builder.php:98
620
  msgid ""
621
  "<b>Drag and drop</b> files here (max %s per file), or <b>drag images around "
@@ -630,85 +705,104 @@ msgstr ""
630
  msgid "of"
631
  msgstr ""
632
 
633
- #: includes/admin/class-modula-field-builder.php:124
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
634
  msgid "Disable Helper Grid"
635
  msgstr ""
636
 
637
- #: includes/admin/class-modula-field-builder.php:167
638
- #: includes/admin/tabs/general.php:11
639
- msgid "Need help? Get in touch."
 
 
 
640
  msgstr ""
641
 
642
- #: includes/admin/class-modula-field-builder.php:305
643
  msgid "None"
644
  msgstr ""
645
 
646
- #: includes/admin/class-modula-field-builder.php:306
647
  msgid "Pufrobo"
648
  msgstr ""
649
 
650
- #: includes/admin/class-modula-field-builder.php:309
651
  msgid "Fluid Up"
652
  msgstr ""
653
 
654
- #: includes/admin/class-modula-field-builder.php:310
655
  msgid "Hide"
656
  msgstr ""
657
 
658
- #: includes/admin/class-modula-field-builder.php:311
659
  msgid "Quiet"
660
  msgstr ""
661
 
662
- #: includes/admin/class-modula-field-builder.php:312
663
  msgid "Catinelle"
664
  msgstr ""
665
 
666
- #: includes/admin/class-modula-field-builder.php:313
667
  msgid "Reflex"
668
  msgstr ""
669
 
670
- #: includes/admin/class-modula-field-builder.php:314
671
  msgid "Curtain"
672
  msgstr ""
673
 
674
- #: includes/admin/class-modula-field-builder.php:315
675
  msgid "Lens"
676
  msgstr ""
677
 
678
- #: includes/admin/class-modula-field-builder.php:316
679
  msgid "Appear"
680
  msgstr ""
681
 
682
- #: includes/admin/class-modula-field-builder.php:317
683
  msgid "Crafty"
684
  msgstr ""
685
 
686
- #: includes/admin/class-modula-field-builder.php:318
687
  msgid "Seemo"
688
  msgstr ""
689
 
690
- #: includes/admin/class-modula-field-builder.php:319
691
  msgid "Comodo"
692
  msgstr ""
693
 
694
- #: includes/admin/class-modula-field-builder.php:327
695
  msgid "Hover Effects with PRO license"
696
  msgstr ""
697
 
698
- #: includes/admin/class-modula-field-builder.php:336
699
  msgid "Select an hover effect"
700
  msgstr ""
701
 
702
- #: includes/admin/class-modula-field-builder.php:351
703
  msgid "This effect is compatible with:"
704
  msgstr ""
705
 
706
- #: includes/admin/class-modula-field-builder.php:352
707
  #: includes/admin/modula-js-templates.php:53
708
  msgid "Title"
709
  msgstr ""
710
 
711
- #: includes/admin/class-modula-field-builder.php:353
712
  msgid "Social Icons"
713
  msgstr ""
714
 
@@ -737,50 +831,60 @@ msgid ""
737
  "on your server."
738
  msgstr ""
739
 
740
- #: includes/admin/class-modula-upsells.php:24
741
  msgid "See LITE vs PRO Differences"
742
  msgstr ""
743
 
744
- #: includes/admin/class-modula-upsells.php:25
745
  msgid "Get Modula Pro!"
746
  msgstr ""
747
 
748
- #: includes/admin/class-modula-upsells.php:34
749
  msgid "Looking for even more control and even more powerful galleries?"
750
  msgstr ""
751
 
752
- #: includes/admin/class-modula-upsells.php:35
753
  msgid ""
754
  "Upgrade to Modula Pro today to get access to 5 more lightboxes, extra "
755
  "styles and more..."
756
  msgstr ""
757
 
758
- #: includes/admin/class-modula-upsells.php:44
759
  msgid "Not enough control?"
760
  msgstr ""
761
 
762
- #: includes/admin/class-modula-upsells.php:45
763
  msgid ""
764
  "Upgrade to Modula Pro today to unlock the ability to scale an image, and "
765
  "add horizontal/vertical slides..."
766
  msgstr ""
767
 
768
- #: includes/admin/class-modula-upsells.php:55
769
  msgid "Need a new hover effect?"
770
  msgstr ""
771
 
772
- #: includes/admin/class-modula-upsells.php:56
773
  msgid "Upgrade to Modula Pro today to unlock 11 more hover effects..."
774
  msgstr ""
775
 
776
- #: includes/admin/class-modula-upsells.php:66
777
  msgid "Trying to add a video to your gallery?"
778
  msgstr ""
779
 
780
- #: includes/admin/class-modula-upsells.php:67
781
  msgid "Upgrade to Modula Pro today to add your stunning videos to your gallery..."
782
  msgstr ""
783
 
 
 
 
 
 
 
 
 
 
 
784
  #: includes/admin/modula-js-templates.php:29
785
  msgid "Edit previous media item"
786
  msgstr ""
@@ -871,116 +975,6 @@ msgstr ""
871
  msgid "Saved."
872
  msgstr ""
873
 
874
- #: includes/admin/tabs/addons.php:2
875
- msgid "Modula Addons"
876
- msgstr ""
877
-
878
- #: includes/admin/tabs/addons.php:3
879
- msgid "Reload Addons"
880
- msgstr ""
881
-
882
- #: includes/admin/tabs/addons.php:4
883
- msgid ""
884
- "Addons are used to extend the core functionality of Modula. You can "
885
- "automatically install an addon from this page if available."
886
- msgstr ""
887
-
888
- #: includes/admin/tabs/general.php:3
889
- msgid "Need some inspirations? Take a look at our demos."
890
- msgstr ""
891
-
892
- #: includes/admin/tabs/general.php:4
893
- msgid ""
894
- "We know how awesome and powerful Modula is but don't take our word for it, "
895
- "%stake a look at our demos%s tto see what you can do with our gallery "
896
- "plugin."
897
- msgstr ""
898
-
899
- #: includes/admin/tabs/general.php:7
900
- msgid "Still need help?"
901
- msgstr ""
902
-
903
- #: includes/admin/tabs/general.php:8
904
- msgid ""
905
- "We strive to make our plugins as user-friendly as possible but sometimes "
906
- "you might need to %scheck our documentation%s"
907
- msgstr ""
908
-
909
- #: includes/admin/tabs/general.php:12
910
- msgid ""
911
- "If you have any pre-sales questions, support requests or just want to say "
912
- "hi - please %scontact us now%s"
913
- msgstr ""
914
-
915
- #: includes/admin/tabs/modula.php:3
916
- msgid ""
917
- "Modula is now installed and ready to use! Get ready to build something "
918
- "beautiful. We hope you enjoy it! We want to make sure you have the best "
919
- "experience using our plugin and that is why we gathered here all the "
920
- "necessary information for you. We hope you will enjoy using Modula, as much "
921
- "as we enjoy creating great products."
922
- msgstr ""
923
-
924
- #: includes/admin/tabs/modula.php:4
925
- msgid "Version"
926
- msgstr ""
927
-
928
- #: includes/admin/tabs/upsell.php:12
929
- msgid "Lightgallery, Lightbox2, PrettyPhoto, Magnific Gallery, SwipeBox, FancyBox"
930
- msgstr ""
931
-
932
- #: includes/admin/tabs/upsell.php:17
933
- msgid "Hover Effects"
934
- msgstr ""
935
-
936
- #: includes/admin/tabs/upsell.php:18
937
- msgid "Choose from 12 different hover effects."
938
- msgstr ""
939
-
940
- #: includes/admin/tabs/upsell.php:24
941
- msgid "Build your own effects with these new customizations."
942
- msgstr ""
943
-
944
- #: includes/admin/tabs/upsell.php:29
945
- msgid "Filters"
946
- msgstr ""
947
-
948
- #: includes/admin/tabs/upsell.php:30
949
- msgid "Let visitors filter your gallery items with a single click"
950
- msgstr ""
951
-
952
- #: includes/admin/tabs/upsell.php:35
953
- msgid "Number of images"
954
- msgstr ""
955
-
956
- #: includes/admin/tabs/upsell.php:41
957
- msgid "Video Addon"
958
- msgstr ""
959
-
960
- #: includes/admin/tabs/upsell.php:42
961
- msgid "You asked we implemented, now you can add videos to your gallery."
962
- msgstr ""
963
-
964
- #: includes/admin/tabs/upsell.php:47
965
- msgid "Support"
966
- msgstr ""
967
-
968
- #: includes/admin/tabs/upsell.php:48
969
- msgid "You can access our dedicated support team."
970
- msgstr ""
971
-
972
- #: includes/admin/tabs/upsell.php:60
973
- msgid "Lite"
974
- msgstr ""
975
-
976
- #: includes/admin/tabs/upsell.php:61
977
- msgid "PRO"
978
- msgstr ""
979
-
980
- #: includes/admin/tabs/upsell.php:84
981
- msgid "Get The Pro Version Now!"
982
- msgstr ""
983
-
984
  #: includes/class-modula-upgrades.php:14
985
  msgid "Modula needs to upgrade the database, click %shere%s to start the upgrade."
986
  msgstr ""
@@ -1055,26 +1049,26 @@ msgstr ""
1055
  msgid "All Done!"
1056
  msgstr ""
1057
 
1058
- #: includes/class-modula.php:58
1059
  msgid ""
1060
  "Hey, I noticed you have created %s galleries - that's awesome! Could you "
1061
  "please do me a BIG favor and give it a 5-star rating on WordPress? Just to "
1062
  "help us spread the word and boost our motivation."
1063
  msgstr ""
1064
 
1065
- #: includes/class-modula.php:59 includes/libraries/class-modula-review.php:23
1066
  msgid "Ok, you deserve it"
1067
  msgstr ""
1068
 
1069
- #: includes/class-modula.php:60 includes/libraries/class-modula-review.php:24
1070
  msgid "I already did"
1071
  msgstr ""
1072
 
1073
- #: includes/class-modula.php:61 includes/libraries/class-modula-review.php:25
1074
  msgid "No, not good enough"
1075
  msgstr ""
1076
 
1077
- #: includes/class-modula.php:130
1078
  msgid ""
1079
  "You excedeed the limit of 20 photos. You can remove an image or %supgrade "
1080
  "to pro%s"
@@ -1102,7 +1096,7 @@ msgid "https://wp-modula.com/"
1102
  msgstr ""
1103
 
1104
  #. Author of the plugin/theme
1105
- msgid "Macho Themes"
1106
  msgstr ""
1107
 
1108
  #. Author URI of the plugin/theme
1
+ # Copyright (C) 2019 MachoThemes
2
+ # This file is distributed under the GPLv3 or later.
3
  msgid ""
4
  msgstr ""
5
+ "Project-Id-Version: Modula 2.0.4\n"
6
  "Report-Msgid-Bugs-To: "
7
  "https://wordpress.org/support/plugin/modula-best-grid-gallery\n"
8
+ "POT-Creation-Date: 2019-02-15 13:09:17+00:00\n"
9
  "MIME-Version: 1.0\n"
10
  "Content-Type: text/plain; charset=utf-8\n"
11
  "Content-Transfer-Encoding: 8bit\n"
35
  "like YouTube and Vimeo to your website has never been easier."
36
  msgstr ""
37
 
38
+ #: includes/admin/class-modula-addons.php:25
39
+ msgid "Modula Speed Up"
40
+ msgstr ""
41
+
42
+ #: includes/admin/class-modula-addons.php:26
43
+ msgid ""
44
+ "Allow Modula to automatically optimize your images to load as fast as "
45
+ "possible by reducing their file sizes, resizing them and serving them from "
46
+ "StackPath’s content delivery network."
47
+ msgstr ""
48
+
49
+ #: includes/admin/class-modula-addons.php:49
50
  msgid "Upgrade to PRO"
51
  msgstr ""
52
 
53
+ #: includes/admin/class-modula-addons.php:60
54
  msgid "Feature Request"
55
  msgstr ""
56
 
57
+ #: includes/admin/class-modula-addons.php:61
58
+ msgid "Cant't find what you’re looking for? Let us know by making a suggestion!"
 
 
59
  msgstr ""
60
 
61
+ #: includes/admin/class-modula-addons.php:65
62
  msgid "Send Feature Request"
63
  msgstr ""
64
 
65
+ #: includes/admin/class-modula-admin.php:30
66
+ #: includes/admin/class-modula-cpt.php:74
67
+ msgid "Settings"
68
  msgstr ""
69
 
70
  #: includes/admin/class-modula-admin.php:33
71
  #: includes/admin/class-modula-admin.php:57
72
+ #: includes/admin/class-modula-cpt.php:395
73
  msgid "Extensions"
74
  msgstr ""
75
 
108
  #: includes/admin/class-modula-cpt-fields-helper.php:10
109
  msgid ""
110
  "Choose between creative or custom grid (build your own). Pick your favorite "
111
+ "lightbox style and easily design your gallery."
112
  msgstr ""
113
 
114
  #: includes/admin/class-modula-cpt-fields-helper.php:13
166
  msgstr ""
167
 
168
  #: includes/admin/class-modula-cpt-fields-helper.php:54
 
169
  msgid "Loading effects"
170
  msgstr ""
171
 
174
  msgstr ""
175
 
176
  #: includes/admin/class-modula-cpt-fields-helper.php:61
177
+ #: includes/admin/class-modula-cpt-fields-helper.php:326
178
  msgid "Hover effect"
179
  msgstr ""
180
 
190
  msgid "Video Settings"
191
  msgstr ""
192
 
193
+ #: includes/admin/class-modula-cpt-fields-helper.php:71
194
+ #: includes/admin/class-modula-cpt-fields-helper.php:85
195
+ msgid "PRO"
196
  msgstr ""
197
 
198
  #: includes/admin/class-modula-cpt-fields-helper.php:75
199
+ msgid "Style"
200
+ msgstr ""
201
+
202
+ #: includes/admin/class-modula-cpt-fields-helper.php:76
203
  msgid "Style Settings"
204
  msgstr ""
205
 
206
+ #: includes/admin/class-modula-cpt-fields-helper.php:82
207
+ msgid "Speed Up"
208
+ msgstr ""
209
+
210
+ #: includes/admin/class-modula-cpt-fields-helper.php:83
211
+ msgid "Optimize your images"
212
+ msgstr ""
213
+
214
+ #: includes/admin/class-modula-cpt-fields-helper.php:89
215
+ msgid "Responsive"
216
+ msgstr ""
217
+
218
+ #: includes/admin/class-modula-cpt-fields-helper.php:90
219
+ msgid "Responsive Settings"
220
+ msgstr ""
221
+
222
+ #: includes/admin/class-modula-cpt-fields-helper.php:92
223
+ msgid "Beta"
224
+ msgstr ""
225
+
226
+ #: includes/admin/class-modula-cpt-fields-helper.php:97
227
  msgid "Customizations"
228
  msgstr ""
229
 
230
+ #: includes/admin/class-modula-cpt-fields-helper.php:98
231
  msgid "Customization Settings"
232
  msgstr ""
233
 
234
+ #: includes/admin/class-modula-cpt-fields-helper.php:109
235
  msgid "Still stuck ?"
236
  msgstr ""
237
 
238
+ #: includes/admin/class-modula-cpt-fields-helper.php:109
239
  msgid "Explore our documentation"
240
  msgstr ""
241
 
242
+ #: includes/admin/class-modula-cpt-fields-helper.php:109
243
  msgid "Contact our support team."
244
  msgstr ""
245
 
246
+ #: includes/admin/class-modula-cpt-fields-helper.php:120
247
  msgid "Gallery Type"
248
  msgstr ""
249
 
250
+ #: includes/admin/class-modula-cpt-fields-helper.php:122
251
  msgid "Choose the type of gallery you want to use."
252
  msgstr ""
253
 
254
+ #: includes/admin/class-modula-cpt-fields-helper.php:125
255
  msgid "Creative Gallery"
256
  msgstr ""
257
 
258
+ #: includes/admin/class-modula-cpt-fields-helper.php:126
259
  msgid "Custom Grid"
260
  msgstr ""
261
 
262
+ #: includes/admin/class-modula-cpt-fields-helper.php:131
263
  msgid "Gutter"
264
  msgstr ""
265
 
266
+ #: includes/admin/class-modula-cpt-fields-helper.php:133
267
  msgid "Use this slider to adjust the spacing of images in your gallery."
268
  msgstr ""
269
 
270
+ #: includes/admin/class-modula-cpt-fields-helper.php:141
271
  msgid "Width"
272
  msgstr ""
273
 
274
+ #: includes/admin/class-modula-cpt-fields-helper.php:143
275
  msgid "Width of the gallery. Can be in % or pixels."
276
  msgstr ""
277
 
278
+ #: includes/admin/class-modula-cpt-fields-helper.php:148
279
  msgid "Height"
280
  msgstr ""
281
 
282
+ #: includes/admin/class-modula-cpt-fields-helper.php:150
283
  msgid "Set the height of the gallery in pixels."
284
  msgstr ""
285
 
286
+ #: includes/admin/class-modula-cpt-fields-helper.php:155
287
+ msgid "Thumbnail Size"
288
  msgstr ""
289
 
290
+ #: includes/admin/class-modula-cpt-fields-helper.php:158
291
+ msgid "Set the minimum width or height of the thumbnails in pixels."
292
  msgstr ""
293
 
294
+ #: includes/admin/class-modula-cpt-fields-helper.php:162
295
  msgid "Margin"
296
  msgstr ""
297
 
298
+ #: includes/admin/class-modula-cpt-fields-helper.php:165
299
  msgid "Set the margin between images in pixels."
300
  msgstr ""
301
 
302
+ #: includes/admin/class-modula-cpt-fields-helper.php:169
303
  msgid "Random factor"
304
  msgstr ""
305
 
306
+ #: includes/admin/class-modula-cpt-fields-helper.php:171
307
  msgid ""
308
  "Toggle this to 0 to tune down the randomising factor on Modula's grid "
309
  "algorithm."
310
  msgstr ""
311
 
312
+ #: includes/admin/class-modula-cpt-fields-helper.php:179
313
  msgid "Lightbox &amp; Links"
314
  msgstr ""
315
 
316
+ #: includes/admin/class-modula-cpt-fields-helper.php:181
317
  msgid ""
318
  "Choose your preferred lightbox style. Some styles, such as LightGallery, "
319
  "allow for image downloads."
320
  msgstr ""
321
 
322
+ #: includes/admin/class-modula-cpt-fields-helper.php:184
323
  msgid "Link"
324
  msgstr ""
325
 
326
+ #: includes/admin/class-modula-cpt-fields-helper.php:185
327
  msgid "No link"
328
  msgstr ""
329
 
330
+ #: includes/admin/class-modula-cpt-fields-helper.php:186
331
  msgid "Direct link to image"
332
  msgstr ""
333
 
334
+ #: includes/admin/class-modula-cpt-fields-helper.php:187
335
  msgid "Attachment page"
336
  msgstr ""
337
 
338
+ #: includes/admin/class-modula-cpt-fields-helper.php:189
 
339
  msgid "Lightboxes"
340
  msgstr ""
341
 
342
+ #: includes/admin/class-modula-cpt-fields-helper.php:190
343
  msgid "Lightbox2"
344
  msgstr ""
345
 
346
+ #: includes/admin/class-modula-cpt-fields-helper.php:194
347
  msgid "Lightboxes with PRO license"
348
  msgstr ""
349
 
350
+ #: includes/admin/class-modula-cpt-fields-helper.php:196
351
  msgid "Magnific popup"
352
  msgstr ""
353
 
354
+ #: includes/admin/class-modula-cpt-fields-helper.php:197
355
  msgid "PrettyPhoto"
356
  msgstr ""
357
 
358
+ #: includes/admin/class-modula-cpt-fields-helper.php:198
359
  msgid "FancyBox"
360
  msgstr ""
361
 
362
+ #: includes/admin/class-modula-cpt-fields-helper.php:199
363
  msgid "SwipeBox"
364
  msgstr ""
365
 
366
+ #: includes/admin/class-modula-cpt-fields-helper.php:200
367
  msgid "LightGallery"
368
  msgstr ""
369
 
370
+ #: includes/admin/class-modula-cpt-fields-helper.php:206
371
  msgid "Shuffle images"
372
  msgstr ""
373
 
374
+ #: includes/admin/class-modula-cpt-fields-helper.php:209
375
  msgid "Toggle this to ON to have the gallery shuffle on each page load"
376
  msgstr ""
377
 
378
+ #: includes/admin/class-modula-cpt-fields-helper.php:215
379
+ msgid "Caption Color"
380
  msgstr ""
381
 
382
+ #: includes/admin/class-modula-cpt-fields-helper.php:217
383
  msgid "Set the color of captions."
384
  msgstr ""
385
 
386
+ #: includes/admin/class-modula-cpt-fields-helper.php:222
387
+ msgid "Default Title"
388
  msgstr ""
389
 
390
+ #: includes/admin/class-modula-cpt-fields-helper.php:224
391
  msgid ""
392
  "If you leave the title blank Modula will get the title from WordPress image "
393
  "by default."
394
  msgstr ""
395
 
396
+ #: includes/admin/class-modula-cpt-fields-helper.php:226
397
+ #: includes/admin/class-modula-cpt-fields-helper.php:237
398
  msgid "No default"
399
  msgstr ""
400
 
401
+ #: includes/admin/class-modula-cpt-fields-helper.php:227
402
+ #: includes/admin/class-modula-cpt-fields-helper.php:238
403
  msgid "WP Image title"
404
  msgstr ""
405
 
406
+ #: includes/admin/class-modula-cpt-fields-helper.php:228
407
+ #: includes/admin/class-modula-cpt-fields-helper.php:240
408
  msgid "WP Image description"
409
  msgstr ""
410
 
411
+ #: includes/admin/class-modula-cpt-fields-helper.php:233
412
+ msgid "Default Caption"
413
  msgstr ""
414
 
415
+ #: includes/admin/class-modula-cpt-fields-helper.php:235
416
  msgid ""
417
  "If you leave the caption blank Modula will get the title from WordPress "
418
  "image by default."
419
  msgstr ""
420
 
421
+ #: includes/admin/class-modula-cpt-fields-helper.php:239
422
  msgid "WP Image caption"
423
  msgstr ""
424
 
425
+ #: includes/admin/class-modula-cpt-fields-helper.php:245
426
  msgid "Hide Title"
427
  msgstr ""
428
 
429
+ #: includes/admin/class-modula-cpt-fields-helper.php:248
430
+ msgid "Hide image titles from your gallery."
431
  msgstr ""
432
 
433
+ #: includes/admin/class-modula-cpt-fields-helper.php:252
434
  msgid "Hide Caption"
435
  msgstr ""
436
 
437
+ #: includes/admin/class-modula-cpt-fields-helper.php:255
438
+ msgid "Hide image captions from your gallery."
439
  msgstr ""
440
 
441
+ #: includes/admin/class-modula-cpt-fields-helper.php:259
442
  msgid "Title Font Size"
443
  msgstr ""
444
 
445
+ #: includes/admin/class-modula-cpt-fields-helper.php:264
446
+ msgid "The title font size in pixels (set to 0 to use the theme defaults)."
447
  msgstr ""
448
 
449
+ #: includes/admin/class-modula-cpt-fields-helper.php:268
450
  msgid "Caption Font Size"
451
  msgstr ""
452
 
453
+ #: includes/admin/class-modula-cpt-fields-helper.php:273
454
+ msgid "The caption font size in pixels (set to 0 to use theme defaults)."
455
  msgstr ""
456
 
457
+ #: includes/admin/class-modula-cpt-fields-helper.php:279
458
+ msgid "Add Twitter Icon"
459
  msgstr ""
460
 
461
+ #: includes/admin/class-modula-cpt-fields-helper.php:286
462
+ msgid "Add Facebook Icon"
463
  msgstr ""
464
 
465
+ #: includes/admin/class-modula-cpt-fields-helper.php:293
466
+ msgid "Add Google Plus Icon"
467
  msgstr ""
468
 
469
+ #: includes/admin/class-modula-cpt-fields-helper.php:300
470
+ msgid "Add Pinterest Icon"
471
  msgstr ""
472
 
473
+ #: includes/admin/class-modula-cpt-fields-helper.php:306
474
  msgid "Color of social sharing icons"
475
  msgstr ""
476
 
477
+ #: includes/admin/class-modula-cpt-fields-helper.php:315
478
  msgid "Scale"
479
  msgstr ""
480
 
481
+ #: includes/admin/class-modula-cpt-fields-helper.php:316
482
  msgid ""
483
  "Choose a value below 100% for a zoom-in effect. Choose a value over 100% "
484
  "for a zoom-out effect"
485
  msgstr ""
486
 
487
+ #: includes/admin/class-modula-cpt-fields-helper.php:327
488
+ msgid "Select your preferred hover effect"
489
+ msgstr ""
490
+
491
+ #: includes/admin/class-modula-cpt-fields-helper.php:335
492
  msgid "Border Size"
493
  msgstr ""
494
 
495
+ #: includes/admin/class-modula-cpt-fields-helper.php:337
496
  msgid "Set the border size of images in your gallrey."
497
  msgstr ""
498
 
499
+ #: includes/admin/class-modula-cpt-fields-helper.php:344
500
  msgid "Border Radius"
501
  msgstr ""
502
 
503
+ #: includes/admin/class-modula-cpt-fields-helper.php:346
504
  msgid "Set the radius of the image borders in this gallery."
505
  msgstr ""
506
 
507
+ #: includes/admin/class-modula-cpt-fields-helper.php:353
508
  msgid "Border Color"
509
  msgstr ""
510
 
511
+ #: includes/admin/class-modula-cpt-fields-helper.php:355
512
  msgid "Set the color of your image borders in this gallery."
513
  msgstr ""
514
 
515
+ #: includes/admin/class-modula-cpt-fields-helper.php:360
516
  msgid "Shadow Size"
517
  msgstr ""
518
 
519
+ #: includes/admin/class-modula-cpt-fields-helper.php:362
520
  msgid "Set the size of image shadows in this gallery."
521
  msgstr ""
522
 
523
+ #: includes/admin/class-modula-cpt-fields-helper.php:369
524
  msgid "Shadow Color"
525
  msgstr ""
526
 
527
+ #: includes/admin/class-modula-cpt-fields-helper.php:371
528
  msgid "Set the color of image shadows in this gallery"
529
  msgstr ""
530
 
531
+ #: includes/admin/class-modula-cpt-fields-helper.php:378
532
+ msgid "Custom responsivness"
533
+ msgstr ""
534
+
535
+ #: includes/admin/class-modula-cpt-fields-helper.php:379
536
+ msgid ""
537
+ "Force the gallery to show a certain number of column on tablet/mobile "
538
+ "devices"
539
+ msgstr ""
540
+
541
+ #: includes/admin/class-modula-cpt-fields-helper.php:385
542
+ msgid "Tablet Columns"
543
+ msgstr ""
544
+
545
+ #: includes/admin/class-modula-cpt-fields-helper.php:387
546
+ msgid "Use this slider to adjust the number of columns for gallery on tablets."
547
+ msgstr ""
548
+
549
+ #: includes/admin/class-modula-cpt-fields-helper.php:395
550
+ msgid "Mobile Columns"
551
+ msgstr ""
552
+
553
+ #: includes/admin/class-modula-cpt-fields-helper.php:397
554
+ msgid ""
555
+ "Use this slider to adjust the number of columns for gallery on mobile "
556
+ "devices."
557
+ msgstr ""
558
+
559
+ #: includes/admin/class-modula-cpt-fields-helper.php:407
560
  msgid "Custom css"
561
  msgstr ""
562
 
563
+ #: includes/admin/class-modula-cpt-fields-helper.php:410
564
  msgid "Just write the code without using the &lt;style&gt;&lt;/style&gt; tags"
565
  msgstr ""
566
 
574
  msgid "Gallery"
575
  msgstr ""
576
 
577
+ #. Plugin Name of the plugin/theme
578
+ msgid "Modula"
579
+ msgstr ""
580
+
581
  #: includes/admin/class-modula-cpt.php:25
582
  msgid "Item Archives"
583
  msgstr ""
595
  msgstr ""
596
 
597
  #: includes/admin/class-modula-cpt.php:30
598
+ #: includes/admin/class-modula-cpt.php:410
599
  msgid "Add New"
600
  msgstr ""
601
 
677
  "galleries, masonry grids and more in a few clicks."
678
  msgstr ""
679
 
 
 
 
 
680
  #: includes/admin/class-modula-cpt.php:79
681
  msgid "Shortcode"
682
  msgstr ""
683
 
684
+ #: includes/admin/class-modula-cpt.php:425
685
+ msgid ""
686
+ "Do you enjoy using Modula? Please take a minute to suggest a feature or "
687
+ "tell us what you think."
688
+ msgstr ""
689
+
690
+ #: includes/admin/class-modula-cpt.php:426
691
+ msgid "Submit Feedback"
692
+ msgstr ""
693
+
694
  #: includes/admin/class-modula-field-builder.php:98
695
  msgid ""
696
  "<b>Drag and drop</b> files here (max %s per file), or <b>drag images around "
705
  msgid "of"
706
  msgstr ""
707
 
708
+ #: includes/admin/class-modula-field-builder.php:106
709
+ msgid "Upload image files"
710
+ msgstr ""
711
+
712
+ #: includes/admin/class-modula-field-builder.php:106
713
+ msgid "Select from Library"
714
+ msgstr ""
715
+
716
+ #: includes/admin/class-modula-field-builder.php:112
717
+ msgid "Drag & Drop files here!"
718
+ msgstr ""
719
+
720
+ #: includes/admin/class-modula-field-builder.php:115
721
+ msgid "Drop files to upload"
722
+ msgstr ""
723
+
724
+ #: includes/admin/class-modula-field-builder.php:131
725
  msgid "Disable Helper Grid"
726
  msgstr ""
727
 
728
+ #: includes/admin/class-modula-field-builder.php:178
729
+ msgid "Read The Documentation"
730
+ msgstr ""
731
+
732
+ #: includes/admin/class-modula-field-builder.php:180
733
+ msgid "Need help? Get in touch"
734
  msgstr ""
735
 
736
+ #: includes/admin/class-modula-field-builder.php:331
737
  msgid "None"
738
  msgstr ""
739
 
740
+ #: includes/admin/class-modula-field-builder.php:332
741
  msgid "Pufrobo"
742
  msgstr ""
743
 
744
+ #: includes/admin/class-modula-field-builder.php:335
745
  msgid "Fluid Up"
746
  msgstr ""
747
 
748
+ #: includes/admin/class-modula-field-builder.php:336
749
  msgid "Hide"
750
  msgstr ""
751
 
752
+ #: includes/admin/class-modula-field-builder.php:337
753
  msgid "Quiet"
754
  msgstr ""
755
 
756
+ #: includes/admin/class-modula-field-builder.php:338
757
  msgid "Catinelle"
758
  msgstr ""
759
 
760
+ #: includes/admin/class-modula-field-builder.php:339
761
  msgid "Reflex"
762
  msgstr ""
763
 
764
+ #: includes/admin/class-modula-field-builder.php:340
765
  msgid "Curtain"
766
  msgstr ""
767
 
768
+ #: includes/admin/class-modula-field-builder.php:341
769
  msgid "Lens"
770
  msgstr ""
771
 
772
+ #: includes/admin/class-modula-field-builder.php:342
773
  msgid "Appear"
774
  msgstr ""
775
 
776
+ #: includes/admin/class-modula-field-builder.php:343
777
  msgid "Crafty"
778
  msgstr ""
779
 
780
+ #: includes/admin/class-modula-field-builder.php:344
781
  msgid "Seemo"
782
  msgstr ""
783
 
784
+ #: includes/admin/class-modula-field-builder.php:345
785
  msgid "Comodo"
786
  msgstr ""
787
 
788
+ #: includes/admin/class-modula-field-builder.php:353
789
  msgid "Hover Effects with PRO license"
790
  msgstr ""
791
 
792
+ #: includes/admin/class-modula-field-builder.php:362
793
  msgid "Select an hover effect"
794
  msgstr ""
795
 
796
+ #: includes/admin/class-modula-field-builder.php:377
797
  msgid "This effect is compatible with:"
798
  msgstr ""
799
 
800
+ #: includes/admin/class-modula-field-builder.php:378
801
  #: includes/admin/modula-js-templates.php:53
802
  msgid "Title"
803
  msgstr ""
804
 
805
+ #: includes/admin/class-modula-field-builder.php:379
806
  msgid "Social Icons"
807
  msgstr ""
808
 
831
  "on your server."
832
  msgstr ""
833
 
834
+ #: includes/admin/class-modula-upsells.php:25
835
  msgid "See LITE vs PRO Differences"
836
  msgstr ""
837
 
838
+ #: includes/admin/class-modula-upsells.php:26
839
  msgid "Get Modula Pro!"
840
  msgstr ""
841
 
842
+ #: includes/admin/class-modula-upsells.php:35
843
  msgid "Looking for even more control and even more powerful galleries?"
844
  msgstr ""
845
 
846
+ #: includes/admin/class-modula-upsells.php:36
847
  msgid ""
848
  "Upgrade to Modula Pro today to get access to 5 more lightboxes, extra "
849
  "styles and more..."
850
  msgstr ""
851
 
852
+ #: includes/admin/class-modula-upsells.php:45
853
  msgid "Not enough control?"
854
  msgstr ""
855
 
856
+ #: includes/admin/class-modula-upsells.php:46
857
  msgid ""
858
  "Upgrade to Modula Pro today to unlock the ability to scale an image, and "
859
  "add horizontal/vertical slides..."
860
  msgstr ""
861
 
862
+ #: includes/admin/class-modula-upsells.php:56
863
  msgid "Need a new hover effect?"
864
  msgstr ""
865
 
866
+ #: includes/admin/class-modula-upsells.php:57
867
  msgid "Upgrade to Modula Pro today to unlock 11 more hover effects..."
868
  msgstr ""
869
 
870
+ #: includes/admin/class-modula-upsells.php:67
871
  msgid "Trying to add a video to your gallery?"
872
  msgstr ""
873
 
874
+ #: includes/admin/class-modula-upsells.php:68
875
  msgid "Upgrade to Modula Pro today to add your stunning videos to your gallery..."
876
  msgstr ""
877
 
878
+ #: includes/admin/class-modula-upsells.php:78
879
+ msgid "Looking to make your gallery load faster ?"
880
+ msgstr ""
881
+
882
+ #: includes/admin/class-modula-upsells.php:79
883
+ msgid ""
884
+ "Upgrade to Modula PRO today and enjoy unlimited CDN & unlimited, on-the-fly "
885
+ "image optimization through ShortPixel's API."
886
+ msgstr ""
887
+
888
  #: includes/admin/modula-js-templates.php:29
889
  msgid "Edit previous media item"
890
  msgstr ""
975
  msgid "Saved."
976
  msgstr ""
977
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
978
  #: includes/class-modula-upgrades.php:14
979
  msgid "Modula needs to upgrade the database, click %shere%s to start the upgrade."
980
  msgstr ""
1049
  msgid "All Done!"
1050
  msgstr ""
1051
 
1052
+ #: includes/class-modula.php:57
1053
  msgid ""
1054
  "Hey, I noticed you have created %s galleries - that's awesome! Could you "
1055
  "please do me a BIG favor and give it a 5-star rating on WordPress? Just to "
1056
  "help us spread the word and boost our motivation."
1057
  msgstr ""
1058
 
1059
+ #: includes/class-modula.php:58 includes/libraries/class-modula-review.php:23
1060
  msgid "Ok, you deserve it"
1061
  msgstr ""
1062
 
1063
+ #: includes/class-modula.php:59 includes/libraries/class-modula-review.php:24
1064
  msgid "I already did"
1065
  msgstr ""
1066
 
1067
+ #: includes/class-modula.php:60 includes/libraries/class-modula-review.php:25
1068
  msgid "No, not good enough"
1069
  msgstr ""
1070
 
1071
+ #: includes/class-modula.php:131
1072
  msgid ""
1073
  "You excedeed the limit of 20 photos. You can remove an image or %supgrade "
1074
  "to pro%s"
1096
  msgstr ""
1097
 
1098
  #. Author of the plugin/theme
1099
+ msgid "MachoThemes"
1100
  msgstr ""
1101
 
1102
  #. Author URI of the plugin/theme