blueimp-gallery 1.0.0 → 2.9.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: bc220eb2c5204fcc1bf8531f820dc23fd33a95fc
4
- data.tar.gz: 7234c1b360d5008c97a656b73fb73864031d6c53
3
+ metadata.gz: 0c0f2d3a96cd4e89bf3dc0c07fff124920a5c2fb
4
+ data.tar.gz: 9e5b449ae6e2afa6b43ee434c47b4218b36548fa
5
5
  SHA512:
6
- metadata.gz: d62514891de554c8a69c194f20043750a65c65c453cb8af41e235401c3fd42268013d5008a5a8b70811903c8048c389de35d62ee41950803ec9b078126f4c1ab
7
- data.tar.gz: 1856d20464e078bc22679335ba3984eebeb55b38dce48014f3e981048d8c8a21f008e98a50cff453a5c136ce8b8e0e5bdff4c715118b2b5d74a5e623b465939a
6
+ metadata.gz: ab9c8954b0d0e7a8c1f5ea2d44952c21d8729cbfb798fa3de175338da3832206f7a94fe1bb45e5a5128a29f280ca7697b605533bca333e08791340453b563d34
7
+ data.tar.gz: 61076c99936568278d2827d69d3e5a55cb32c31e219b85a8898c824d13df169e8a6e963a9a1e0312f21a766cdc055f1c862c94b9652e0aaa712d202300738a9f
data/CHANGELOG.md CHANGED
@@ -1,7 +1,18 @@
1
+ ## v2.9.0.0
2
+
3
+ * Change the versioning scheme.
4
+ * Update to Blueimp Gallery 2.9.0.
5
+
6
+ ## v1.0.0
7
+
8
+ * Stable version.
9
+ * Tests added.
10
+ * Assets paths fixed.
11
+
1
12
  ## v0.0.2
2
13
 
3
- * Fixing spec folder bugs
14
+ * Fixing spec folder bugs.
4
15
 
5
16
  ## v0.0.1
6
17
 
7
- * Initial release
18
+ * Initial release.
data/README.md CHANGED
@@ -41,7 +41,7 @@ Add this line to your `app/assets/stylesheets/application.css`
41
41
 
42
42
  In case you want a minimal version and you already understand how the plugin works, you can add the necessary assets.
43
43
 
44
- *= require blueimp-gallery.css
44
+ *= require blueimp-gallery
45
45
  *= require blueimp-gallery-indicator
46
46
  *= require blueimp-gallery-video
47
47
 
@@ -147,7 +147,7 @@ or CoffeeScript if you want to add the script as an asset:
147
147
  blueimp.Gallery document.getElementById("links").getElementsByTagName("a"),
148
148
  container: "#blueimp-gallery-carousel"
149
149
  carousel: true
150
- ``
150
+ ```
151
151
 
152
152
  ## More Features
153
153
 
@@ -1,5 +1,5 @@
1
1
  module Blueimp
2
2
  module Gallery
3
- VERSION = "1.0.0"
3
+ VERSION = "2.9.0.0"
4
4
  end
5
5
  end
@@ -1,5 +1,5 @@
1
1
  /*
2
- * blueimp Gallery Fullscreen JS 1.0.0
2
+ * blueimp Gallery Fullscreen JS 1.1.0
3
3
  * https://github.com/blueimp/Gallery
4
4
  *
5
5
  * Copyright 2013, Sebastian Tschan
@@ -35,7 +35,7 @@
35
35
  });
36
36
 
37
37
  var initialize = Gallery.prototype.initialize,
38
- close = Gallery.prototype.close;
38
+ handleClose = Gallery.prototype.handleClose;
39
39
 
40
40
  $.extend(Gallery.prototype, {
41
41
 
@@ -72,11 +72,11 @@
72
72
  }
73
73
  },
74
74
 
75
- close: function () {
75
+ handleClose: function () {
76
76
  if (this.getFullScreenElement() === this.container[0]) {
77
77
  this.exitFullScreen();
78
78
  }
79
- close.call(this);
79
+ handleClose.call(this);
80
80
  }
81
81
 
82
82
  });
@@ -1,5 +1,5 @@
1
1
  /*
2
- * blueimp Gallery Indicator JS 1.0.0
2
+ * blueimp Gallery Indicator JS 1.1.0
3
3
  * https://github.com/blueimp/Gallery
4
4
  *
5
5
  * Copyright 2013, Sebastian Tschan
@@ -46,7 +46,7 @@
46
46
  resetSlides = Gallery.prototype.resetSlides,
47
47
  handleClick = Gallery.prototype.handleClick,
48
48
  handleSlide = Gallery.prototype.handleSlide,
49
- close = Gallery.prototype.close;
49
+ handleClose = Gallery.prototype.handleClose;
50
50
 
51
51
  $.extend(Gallery.prototype, {
52
52
 
@@ -139,12 +139,12 @@
139
139
  this.setActiveIndicator(index);
140
140
  },
141
141
 
142
- close: function () {
142
+ handleClose: function () {
143
143
  if (this.activeIndicator) {
144
144
  this.activeIndicator
145
145
  .removeClass(this.options.activeIndicatorClass);
146
146
  }
147
- close.call(this);
147
+ handleClose.call(this);
148
148
  }
149
149
 
150
150
  });
@@ -1,5 +1,5 @@
1
1
  /*
2
- * blueimp Gallery JS 2.7.1
2
+ * blueimp Gallery JS 2.9.0
3
3
  * https://github.com/blueimp/Gallery
4
4
  *
5
5
  * Copyright 2013, Sebastian Tschan
@@ -91,6 +91,9 @@
91
91
  titleProperty: 'title',
92
92
  // The list object property (or data attribute) with the object URL:
93
93
  urlProperty: 'href',
94
+ // The gallery listens for transitionend events before triggering the
95
+ // opened and closed events, unless the following option is set to false:
96
+ displayTransition: true,
94
97
  // Defines if the gallery slides are cleared from the gallery modal,
95
98
  // or reused for the next gallery initialization:
96
99
  clearSlides: true,
@@ -144,6 +147,10 @@
144
147
  // Callback function executed when the Gallery is initialized.
145
148
  // Is called with the gallery instance as "this" object:
146
149
  onopen: undefined,
150
+ // Callback function executed when the Gallery has been initialized
151
+ // and the initialization transition has been completed.
152
+ // Is called with the gallery instance as "this" object:
153
+ onopened: undefined,
147
154
  // Callback function executed on slide change.
148
155
  // Is called with the gallery instance as "this" object and the
149
156
  // current index and slide as arguments:
@@ -156,9 +163,13 @@
156
163
  // Is called with the gallery instance as "this" object and the
157
164
  // slide index and slide element as arguments:
158
165
  onslidecomplete: undefined,
159
- // Callback function executed when the Gallery is closed.
166
+ // Callback function executed when the Gallery is about to be closed.
167
+ // Is called with the gallery instance as "this" object:
168
+ onclose: undefined,
169
+ // Callback function executed when the Gallery has been closed
170
+ // and the closing transition has been completed.
160
171
  // Is called with the gallery instance as "this" object:
161
- onclose: undefined
172
+ onclosed: undefined
162
173
  },
163
174
 
164
175
  carouselOptions: {
@@ -199,7 +210,32 @@
199
210
  },
200
211
  prop,
201
212
  transition,
202
- translateZ;
213
+ translateZ,
214
+ elementTests = function () {
215
+ document.body.appendChild(element);
216
+ if (transition) {
217
+ prop = transition.name.slice(0, -9) + 'ransform';
218
+ if (element.style[prop] !== undefined) {
219
+ element.style[prop] = 'translateZ(0)';
220
+ translateZ = window.getComputedStyle(element)
221
+ .getPropertyValue(transition.prefix + 'transform');
222
+ support.transform = {
223
+ prefix: transition.prefix,
224
+ name: prop,
225
+ translate: true,
226
+ translateZ: !!translateZ && translateZ !== 'none'
227
+ };
228
+ }
229
+ }
230
+ if (element.style.backgroundSize !== undefined) {
231
+ element.style.backgroundSize = 'contain';
232
+ support.backgroundSize = {
233
+ contain: window.getComputedStyle(element)
234
+ .getPropertyValue('background-size') === 'contain'
235
+ };
236
+ }
237
+ document.body.removeChild(element);
238
+ };
203
239
  for (prop in transitions) {
204
240
  if (transitions.hasOwnProperty(prop) &&
205
241
  element.style[prop] !== undefined) {
@@ -209,43 +245,26 @@
209
245
  break;
210
246
  }
211
247
  }
212
- document.body.appendChild(element);
213
- if (transition) {
214
- prop = transition.name.slice(0, -9) + 'ransform';
215
- if (element.style[prop] !== undefined) {
216
- element.style[prop] = 'translateZ(0)';
217
- translateZ = window.getComputedStyle(element)
218
- .getPropertyValue(transition.prefix + 'transform');
219
- support.transform = {
220
- prefix: transition.prefix,
221
- name: prop,
222
- translate: true,
223
- translateZ: translateZ && translateZ !== 'none'
224
- };
225
- }
226
- }
227
- if (element.style.backgroundSize !== undefined) {
228
- element.style.backgroundSize = 'contain';
229
- support.backgroundSize = {
230
- contain: window.getComputedStyle(element)
231
- .getPropertyValue('background-size') === 'contain'
232
- };
248
+ if (document.body) {
249
+ elementTests();
250
+ } else {
251
+ $(document).on('DOMContentLoaded', elementTests);
233
252
  }
234
- document.body.removeChild(element);
235
253
  return support;
236
254
  // Test element, has to be standard HTML and must not be hidden
237
- // for the CSS3 transform translateZ test to be applicable:
255
+ // for the CSS3 tests using window.getComputedStyle to be applicable:
238
256
  }(document.createElement('div'))),
239
257
 
258
+ requestAnimationFrame: window.requestAnimationFrame ||
259
+ window.webkitRequestAnimationFrame ||
260
+ window.mozRequestAnimationFrame,
261
+
240
262
  initialize: function () {
241
263
  this.initStartIndex();
242
264
  if (this.initWidget() === false) {
243
265
  return false;
244
266
  }
245
267
  this.initEventListeners();
246
- if (this.options.onopen) {
247
- this.options.onopen.call(this);
248
- }
249
268
  // Load the slide at the given index:
250
269
  this.onslide(this.index);
251
270
  // Manually trigger the slideend event for the initial slide:
@@ -332,11 +351,19 @@
332
351
  },
333
352
 
334
353
  play: function (time) {
354
+ var that = this;
335
355
  window.clearTimeout(this.timeout);
336
356
  this.interval = time || this.options.slideshowInterval;
337
357
  if (this.elements[this.index] > 1) {
338
358
  this.timeout = this.setTimeout(
339
- this.slide,
359
+ (!this.requestAnimationFrame && this.slide) || function (to, speed) {
360
+ that.animationFrameId = that.requestAnimationFrame.call(
361
+ window,
362
+ function () {
363
+ that.slide(to, speed);
364
+ }
365
+ );
366
+ },
340
367
  [this.index + 1, this.options.slideshowTransitionSpeed],
341
368
  this.interval
342
369
  );
@@ -374,7 +401,7 @@
374
401
  this.slides = [];
375
402
  },
376
403
 
377
- close: function () {
404
+ handleClose: function () {
378
405
  var options = this.options;
379
406
  this.destroyEventListeners();
380
407
  // Cancel the slideshow:
@@ -391,9 +418,34 @@
391
418
  if (this.options.clearSlides) {
392
419
  this.resetSlides();
393
420
  }
421
+ if (this.options.onclosed) {
422
+ this.options.onclosed.call(this);
423
+ }
424
+ },
425
+
426
+ close: function () {
427
+ var that = this,
428
+ closeHandler = function (event) {
429
+ if (event.target === that.container[0]) {
430
+ that.container.off(
431
+ that.support.transition.end,
432
+ closeHandler
433
+ );
434
+ that.handleClose();
435
+ }
436
+ };
394
437
  if (this.options.onclose) {
395
438
  this.options.onclose.call(this);
396
439
  }
440
+ if (this.support.transition && this.options.displayTransition) {
441
+ this.container.on(
442
+ this.support.transition.end,
443
+ closeHandler
444
+ );
445
+ this.container.removeClass(this.options.displayClass);
446
+ } else {
447
+ this.handleClose();
448
+ }
397
449
  },
398
450
 
399
451
  circle: function (index) {
@@ -1120,7 +1172,23 @@
1120
1172
  }
1121
1173
  },
1122
1174
 
1175
+ handleOpen: function () {
1176
+ if (this.options.onopened) {
1177
+ this.options.onopened.call(this);
1178
+ }
1179
+ },
1180
+
1123
1181
  initWidget: function () {
1182
+ var that = this,
1183
+ openHandler = function (event) {
1184
+ if (event.target === that.container[0]) {
1185
+ that.container.off(
1186
+ that.support.transition.end,
1187
+ openHandler
1188
+ );
1189
+ that.handleOpen();
1190
+ }
1191
+ };
1124
1192
  this.container = $(this.options.container);
1125
1193
  if (!this.container.length) {
1126
1194
  return false;
@@ -1134,14 +1202,25 @@
1134
1202
  this.titleElement = this.container.find(
1135
1203
  this.options.titleElement
1136
1204
  );
1205
+ if (this.num === 1) {
1206
+ this.container.addClass(this.options.singleClass);
1207
+ }
1208
+ if (this.options.onopen) {
1209
+ this.options.onopen.call(this);
1210
+ }
1211
+ if (this.support.transition && this.options.displayTransition) {
1212
+ this.container.on(
1213
+ this.support.transition.end,
1214
+ openHandler
1215
+ );
1216
+ } else {
1217
+ this.handleOpen();
1218
+ }
1137
1219
  if (this.options.hidePageScrollbars) {
1138
1220
  // Hide the page scrollbars:
1139
1221
  this.bodyOverflowStyle = document.body.style.overflow;
1140
1222
  document.body.style.overflow = 'hidden';
1141
1223
  }
1142
- if (this.num === 1) {
1143
- this.container.addClass(this.options.singleClass);
1144
- }
1145
1224
  this.container[0].style.display = 'block';
1146
1225
  this.initSlides();
1147
1226
  this.container.addClass(this.options.displayClass);
@@ -1,5 +1,5 @@
1
1
  /*
2
- * blueimp Gallery jQuery plugin 1.1.0
2
+ * blueimp Gallery jQuery plugin 1.2.0
3
3
  * https://github.com/blueimp/Gallery
4
4
  *
5
5
  * Copyright 2013, Sebastian Tschan
@@ -29,7 +29,7 @@
29
29
 
30
30
  // Global click handler to open links with data-gallery attribute
31
31
  // in the Gallery lightbox:
32
- $(document.body).on('click', '[data-gallery]', function (event) {
32
+ $(document).on('click', '[data-gallery]', function (event) {
33
33
  // Get the container id from the data-gallery attribute:
34
34
  var id = $(this).data('gallery'),
35
35
  widget = $(id),
@@ -46,7 +46,10 @@
46
46
  onopen: function () {
47
47
  container
48
48
  .data('gallery', this)
49
- .trigger('open', arguments);
49
+ .trigger('open');
50
+ },
51
+ onopened: function () {
52
+ container.trigger('opened');
50
53
  },
51
54
  onslide: function () {
52
55
  container.trigger('slide', arguments);
@@ -58,8 +61,11 @@
58
61
  container.trigger('slidecomplete', arguments);
59
62
  },
60
63
  onclose: function () {
64
+ container.trigger('close');
65
+ },
66
+ onclosed: function () {
61
67
  container
62
- .trigger('close')
68
+ .trigger('closed')
63
69
  .removeData('gallery');
64
70
  }
65
71
  }
@@ -1,5 +1,5 @@
1
1
  /*
2
- *= require blueimp-gallery.css
2
+ *= require blueimp-gallery
3
3
  *= require blueimp-gallery-indicator
4
4
  *= require blueimp-gallery-video
5
5
  */
@@ -1,6 +1,6 @@
1
1
  @charset 'UTF-8';
2
2
  /*
3
- * blueimp Gallery CSS 2.5.2
3
+ * blueimp Gallery CSS 2.9.0
4
4
  * https://github.com/blueimp/Gallery
5
5
  *
6
6
  * Copyright 2013, Sebastian Tschan
@@ -33,7 +33,6 @@
33
33
  background: #000;
34
34
  background: rgba(0, 0, 0, 0.9);
35
35
  opacity: 0;
36
- visibility: hidden;
37
36
  display: none;
38
37
  direction: ltr;
39
38
  -ms-touch-action: none;
@@ -48,7 +47,6 @@
48
47
  }
49
48
  .blueimp-gallery-display {
50
49
  display: block;
51
- visibility: visible;
52
50
  opacity: 1;
53
51
  }
54
52
  .blueimp-gallery > .slides {
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: blueimp-gallery
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 2.9.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Christopher Fernández
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-08-11 00:00:00.000000000 Z
11
+ date: 2013-09-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: railties