blueimp-gallery 1.0.0 → 2.9.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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