fotoramajs 4.4.8 → 4.4.9

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: 67d438259c7e801ec727ac663d8daee2d0f9354e
4
- data.tar.gz: e53d3c6fcf173380ccf855b98482fdf2a5cca8f6
3
+ metadata.gz: 2ccddb075349fb4fe8dc3e0a87c7ca0bd2006de5
4
+ data.tar.gz: bfb83706eb867718e09cdc35535908da76afdad5
5
5
  SHA512:
6
- metadata.gz: 5ef51eae85f58f5bb76accdfe7810d2ee5aa502f982934ccd65a1b9befb185af974001bbac8b7d975dc11f89dbf4f4fdb266c169c73ecc1a94567976d1aaa459
7
- data.tar.gz: 736fc744dc6fa65063f0a2ec72c9022de6c56b84b1fa44c7cdd69ac835a1ad105553e8c33862ae2e7c083d57b0ab5680099bf3fe3d0a956b7b0575d53aac17d4
6
+ metadata.gz: 5f926b72d06de9aadd55d8f440a637a3d5d350b360b4f2eb2b9105137c2e8bbd3abe8fa0a95087f47caa4d572e0ba3b31e00f39f3c5699187f6d69e60227c187
7
+ data.tar.gz: 1215b72c076090ca75f845a49c7dbf96cb03b689ea0ac5cbe17a68be51e963c4e75198a03a299dea9ffd0094cf7c88fc0b555359afca89c87f5b6270f0bd1fa1
@@ -1,3 +1,3 @@
1
1
  module Fotoramajs
2
- VERSION = "4.4.8"
2
+ VERSION = "4.4.9"
3
3
  end
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Fotorama 4.4.8 | http://fotorama.io/license/
2
+ * Fotorama 4.4.9 | http://fotorama.io/license/
3
3
  */
4
4
  (function (window, document, location, $, undefined) {
5
5
  "use strict";
@@ -16,12 +16,12 @@ var _fotoramaClass = 'fotorama',
16
16
  wrapNoShadowsClass = wrapClass + '--no-shadows',
17
17
  wrapPanYClass = wrapClass + '--pan-y',
18
18
  wrapRtlClass = wrapClass + '--rtl',
19
+ wrapOnlyActiveClass = wrapClass + '--only-active',
19
20
 
20
21
  stageClass = _fotoramaClass + '__stage',
21
22
  stageFrameClass = stageClass + '__frame',
22
23
  stageFrameVideoClass = stageFrameClass + '--video',
23
24
  stageShaftClass = stageClass + '__shaft',
24
- stageOnlyActiveClass = stageClass + '--only-active',
25
25
 
26
26
  grabClass = _fotoramaClass + '__grab',
27
27
  pointerClass = _fotoramaClass + '__pointer',
@@ -1269,10 +1269,11 @@ function smartClick ($el, fn, _options) {
1269
1269
  onMove: _options.onMove || noop,
1270
1270
  onTouchEnd: _options.onTouchEnd || noop,
1271
1271
  onEnd: function (result) {
1272
- if (result.moved || _options.tail.checked) return;
1272
+ //console.log('smartClick result.moved', result.moved);
1273
+ if (result.moved) return;
1273
1274
  fn.call(this, startEvent);
1274
1275
  }
1275
- }), _options.tail);
1276
+ }), {noMove: true});
1276
1277
  });
1277
1278
  }
1278
1279
 
@@ -1343,8 +1344,12 @@ function getDirectionSign (forward) {
1343
1344
  }
1344
1345
 
1345
1346
  function slide ($el, options) {
1346
- var elPos = Math.round(options.pos),
1347
- onEndFn = options.onEnd || noop;
1347
+ var elData = $el.data(),
1348
+ elPos = Math.round(options.pos),
1349
+ onEndFn = function () {
1350
+ elData.sliding = false;
1351
+ (options.onEnd || noop)();
1352
+ };
1348
1353
 
1349
1354
  if (typeof options.overPos !== 'undefined' && options.overPos !== options.pos) {
1350
1355
  elPos = options.overPos;
@@ -1357,6 +1362,8 @@ function slide ($el, options) {
1357
1362
  var translate = $.extend(getTranslate(elPos, options._001), options.width && {width: options.width});
1358
1363
  //console.timeEnd('var translate = $.extend');
1359
1364
 
1365
+ elData.sliding = true;
1366
+
1360
1367
  if (CSS3) {
1361
1368
  $el.css($.extend(getDuration(options.time), translate));
1362
1369
  if (options.time > 10) {
@@ -1420,6 +1427,7 @@ function extendEvent (e) {
1420
1427
  var touch = (e.touches || [])[0] || e;
1421
1428
  e._x = touch.pageX;
1422
1429
  e._y = touch.clientY;
1430
+ e._now = $.now();
1423
1431
  }
1424
1432
 
1425
1433
  function touch ($el, options) {
@@ -1431,11 +1439,13 @@ function touch ($el, options) {
1431
1439
  controlTouch,
1432
1440
  touchFLAG,
1433
1441
  targetIsSelectFLAG,
1434
- targetIsLinkFlag;
1442
+ targetIsLinkFlag,
1443
+ tolerance,
1444
+ moved;
1435
1445
 
1436
1446
  function onStart (e) {
1437
1447
  $target = $(e.target);
1438
- tail.checked = targetIsSelectFLAG = targetIsLinkFlag = false;
1448
+ tail.checked = targetIsSelectFLAG = targetIsLinkFlag = moved = false;
1439
1449
 
1440
1450
  if (touchEnabledFLAG
1441
1451
  || tail.flow
@@ -1447,6 +1457,8 @@ function touch ($el, options) {
1447
1457
  touchFLAG = e.type === 'touchstart';
1448
1458
  targetIsLinkFlag = $target.is('a, a *', el);
1449
1459
 
1460
+ tolerance = (tail.noMove || tail.noSwipe) ? 16 : !tail.snap ? 4 : 0;
1461
+
1450
1462
  extendEvent(e);
1451
1463
 
1452
1464
  startEvent = lastEvent = e;
@@ -1488,6 +1500,10 @@ function touch ($el, options) {
1488
1500
  (options.onMove || noop).call(el, e, {touch: touchFLAG});
1489
1501
  }
1490
1502
 
1503
+ if (!moved && Math.sqrt(Math.pow(xDiff, 2) + Math.pow(yDiff, 2)) > tolerance) {
1504
+ moved = true;
1505
+ }
1506
+
1491
1507
  tail.checked = tail.checked || xWin || yWin;
1492
1508
  }
1493
1509
 
@@ -1512,7 +1528,8 @@ function touch ($el, options) {
1512
1528
  preventEventTimeout = setTimeout(function () {
1513
1529
  preventEvent = false;
1514
1530
  }, 1000);
1515
- (options.onEnd || noop).call(el, {moved: tail.checked, $target: $target, control: controlTouch, touch: touchFLAG, startEvent: startEvent, aborted: !e || e.type === 'MSPointerCancel'});
1531
+
1532
+ (options.onEnd || noop).call(el, {moved: moved, $target: $target, control: controlTouch, touch: touchFLAG, startEvent: startEvent, aborted: !e || e.type === 'MSPointerCancel'});
1516
1533
  ////console.timeEnd('touch.js onEnd');
1517
1534
  }
1518
1535
 
@@ -1577,11 +1594,13 @@ function moveOnTouch ($el, options) {
1577
1594
  snap,
1578
1595
  slowFLAG,
1579
1596
  controlFLAG,
1580
- movedFLAG;
1597
+ moved,
1598
+ tracked;
1581
1599
 
1582
1600
  function startTracking (e) {
1601
+ tracked = true;
1583
1602
  startCoo = coo = e._x;
1584
- startTime = $.now();
1603
+ startTime = e._now;
1585
1604
 
1586
1605
  moveTrack = [
1587
1606
  [startTime, startCoo]
@@ -1589,28 +1608,26 @@ function moveOnTouch ($el, options) {
1589
1608
 
1590
1609
  startElPos = moveElPos = tail.noMove ? 0 : stop($el, (options.getPos || noop)(), options._001);
1591
1610
 
1592
- // startTime - endTime < TOUCH_TIMEOUT * 3 && e.preventDefault(); // double tap
1593
-
1594
1611
  (options.onStart || noop).call(el, e);
1595
1612
  }
1596
1613
 
1597
1614
  function onStart (e, result) {
1598
- min = elData.min;
1599
- max = elData.max;
1600
- snap = elData.snap;
1615
+ min = tail.min;
1616
+ max = tail.max;
1617
+ snap = tail.snap;
1601
1618
 
1602
1619
  slowFLAG = e.altKey;
1603
- movedFLAG = false;
1620
+ tracked = moved = false;
1604
1621
 
1605
1622
  controlFLAG = result.control;
1606
1623
 
1607
- if (!controlFLAG) {
1624
+ if (!controlFLAG && !elData.sliding) {
1608
1625
  startTracking(e);
1609
1626
  }
1610
1627
  }
1611
1628
 
1612
1629
  function onMove (e, result) {
1613
- if (controlFLAG) {
1630
+ if (!tracked) {
1614
1631
  controlFLAG = false;
1615
1632
  startTracking(e);
1616
1633
  }
@@ -1618,7 +1635,7 @@ function moveOnTouch ($el, options) {
1618
1635
  if (!tail.noSwipe) {
1619
1636
  coo = e._x;
1620
1637
 
1621
- moveTrack.push([$.now(), coo]);
1638
+ moveTrack.push([e._now, coo]);
1622
1639
 
1623
1640
  moveElPos = startElPos - (startCoo - coo);
1624
1641
 
@@ -1632,8 +1649,8 @@ function moveOnTouch ($el, options) {
1632
1649
 
1633
1650
  if (!tail.noMove) {
1634
1651
  $el.css(getTranslate(moveElPos, options._001));
1635
- if (!movedFLAG) {
1636
- movedFLAG = true;
1652
+ if (!moved) {
1653
+ moved = true;
1637
1654
  // only for mouse
1638
1655
  result.touch || MS_POINTER || $el.addClass(grabbingClass);
1639
1656
  }
@@ -1647,9 +1664,13 @@ function moveOnTouch ($el, options) {
1647
1664
  ////console.time('moveontouch.js onEnd');
1648
1665
  if (controlFLAG) return;
1649
1666
 
1667
+ if (!tracked) {
1668
+ startTracking(result.startEvent);
1669
+ }
1670
+
1650
1671
  result.touch || MS_POINTER || $el.removeClass(grabbingClass);
1651
1672
 
1652
- endTime = new Date().getTime();
1673
+ endTime = $.now();
1653
1674
 
1654
1675
  var _backTimeIdeal = endTime - TOUCH_TIMEOUT,
1655
1676
  _backTime,
@@ -1712,8 +1733,7 @@ function moveOnTouch ($el, options) {
1712
1733
 
1713
1734
  time *= slowFLAG ? 10 : 1;
1714
1735
 
1715
- (options.onEnd || noop).call(el, $.extend(result, {pos: moveElPos, newPos: newPos, overPos: overPos, time: time, moved: longTouchFLAG ? snap : Math.abs(moveElPos - startElPos) > (snap ? 0 : 3)}));
1716
- ////console.timeEnd('moveontouch.js onEnd');
1736
+ (options.onEnd || noop).call(el, $.extend(result, {moved: result.moved || longTouchFLAG && snap, pos: moveElPos, newPos: newPos, overPos: overPos, time: time}));
1717
1737
  }
1718
1738
 
1719
1739
  tail = $.extend(touch(options.$wrap, {
@@ -1721,8 +1741,7 @@ function moveOnTouch ($el, options) {
1721
1741
  onMove: onMove,
1722
1742
  onTouchEnd: options.onTouchEnd,
1723
1743
  onEnd: onEnd,
1724
- select: options.select,
1725
- control: options.control
1744
+ select: options.select
1726
1745
  }), tail);
1727
1746
 
1728
1747
  return tail;
@@ -2129,15 +2148,15 @@ jQuery.Fotorama = function ($fotorama, opts) {
2129
2148
  }
2130
2149
 
2131
2150
  function setStageShaftMinmaxAndSnap () {
2132
- stageShaftData.min = o_loop ? -Infinity : -getPosByIndex(size - 1, measures.w, opts.margin, repositionIndex);
2133
- stageShaftData.max = o_loop ? Infinity : -getPosByIndex(0, measures.w, opts.margin, repositionIndex);
2134
- stageShaftData.snap = measures.w + opts.margin;
2151
+ stageShaftTouchTail.min = o_loop ? -Infinity : -getPosByIndex(size - 1, measures.w, opts.margin, repositionIndex);
2152
+ stageShaftTouchTail.max = o_loop ? Infinity : -getPosByIndex(0, measures.w, opts.margin, repositionIndex);
2153
+ stageShaftTouchTail.snap = measures.w + opts.margin;
2135
2154
  }
2136
2155
 
2137
2156
  function setNavShaftMinmax () {
2138
- navShaftData.min = Math.min(0, measures.W - $navShaft.width());
2139
- navShaftData.max = 0;
2140
- $navShaft.toggleClass(grabClass, !(navShaftTouchTail.noMove = navShaftData.min === navShaftData.max));
2157
+ navShaftTouchTail.min = Math.min(0, measures.W - $navShaft.width());
2158
+ navShaftTouchTail.max = 0;
2159
+ $navShaft.toggleClass(grabClass, !(navShaftTouchTail.noMove = navShaftTouchTail.min === navShaftTouchTail.max));
2141
2160
  }
2142
2161
 
2143
2162
  function eachIndex (indexes, type, fn) {
@@ -2520,10 +2539,10 @@ jQuery.Fotorama = function ($fotorama, opts) {
2520
2539
  function slideNavShaft (options) {
2521
2540
  var $guessNavFrame = data[options.guessIndex][navFrameKey];
2522
2541
  if ($guessNavFrame) {
2523
- var overflowFLAG = navShaftData.min !== navShaftData.max,
2542
+ var overflowFLAG = navShaftTouchTail.min !== navShaftTouchTail.max,
2524
2543
  activeNavFrameBounds = overflowFLAG && getNavFrameBounds(that.activeFrame[navFrameKey]),
2525
2544
  l = overflowFLAG && (options.keep && slideNavShaft.l ? slideNavShaft.l : minMaxLimit((options.coo || measures.w / 2) - getNavFrameBounds($guessNavFrame).c, activeNavFrameBounds.min, activeNavFrameBounds.max)),
2526
- pos = overflowFLAG && minMaxLimit(l, navShaftData.min, navShaftData.max),
2545
+ pos = overflowFLAG && minMaxLimit(l, navShaftTouchTail.min, navShaftTouchTail.max),
2527
2546
  time = options.time * .9;
2528
2547
 
2529
2548
  slide($navShaft, {
@@ -2536,7 +2555,7 @@ jQuery.Fotorama = function ($fotorama, opts) {
2536
2555
 
2537
2556
  //if (time) thumbsDraw(pos);
2538
2557
 
2539
- setShadow($nav, findShadowEdge(pos, navShaftData.min, navShaftData.max));
2558
+ setShadow($nav, findShadowEdge(pos, navShaftTouchTail.min, navShaftTouchTail.max));
2540
2559
  slideNavShaft.l = l;
2541
2560
  }
2542
2561
  }
@@ -2736,7 +2755,7 @@ jQuery.Fotorama = function ($fotorama, opts) {
2736
2755
  updateTouchTails('go', true);
2737
2756
  ////console.timeEnd('updateTouchTails');
2738
2757
  ////console.time('triggerEvent');
2739
- triggerEvent('show', {
2758
+ options.reset || triggerEvent('show', {
2740
2759
  user: options.user,
2741
2760
  time: time
2742
2761
  });
@@ -2752,7 +2771,7 @@ jQuery.Fotorama = function ($fotorama, opts) {
2752
2771
 
2753
2772
  skipReposition || stageShaftReposition(true);
2754
2773
 
2755
- triggerEvent('showend', {
2774
+ options.reset || triggerEvent('showend', {
2756
2775
  user: options.user
2757
2776
  });
2758
2777
 
@@ -2912,7 +2931,9 @@ jQuery.Fotorama = function ($fotorama, opts) {
2912
2931
  windowHeight = $WINDOW.height() - (o_nav ? $nav.height() : 0);
2913
2932
 
2914
2933
  if (measureIsValid(width)) {
2915
- $wrap.css({width: width, minWidth: measures.minwidth, maxWidth: measures.maxwidth});
2934
+ $wrap
2935
+ .addClass(wrapOnlyActiveClass)
2936
+ .css({width: width, minWidth: measures.minwidth, maxWidth: measures.maxwidth});
2916
2937
 
2917
2938
  width = measures.W = measures.w = $wrap.width();
2918
2939
 
@@ -2937,10 +2958,9 @@ jQuery.Fotorama = function ($fotorama, opts) {
2937
2958
  stageShaftReposition();
2938
2959
 
2939
2960
  $stage
2940
- .addClass(stageOnlyActiveClass)
2941
2961
  .stop()
2942
2962
  .animate({width: width, height: height}, time, function () {
2943
- $stage.removeClass(stageOnlyActiveClass);
2963
+ $wrap.removeClass(wrapOnlyActiveClass);
2944
2964
  });
2945
2965
 
2946
2966
  if (o_nav) {
@@ -3117,9 +3137,9 @@ jQuery.Fotorama = function ($fotorama, opts) {
3117
3137
  }
3118
3138
  ////console.timeEnd('stageShaftTouchTail.onEnd');
3119
3139
  },
3120
- getPos: function () {
3121
- return -getPosByIndex(dirtyIndex, measures.w, opts.margin, repositionIndex);
3122
- },
3140
+ // getPos: function () {
3141
+ // return -getPosByIndex(dirtyIndex, measures.w, opts.margin, repositionIndex);
3142
+ // },
3123
3143
  _001: true,
3124
3144
  timeLow: 1,
3125
3145
  timeHigh: 1,
@@ -3153,7 +3173,7 @@ jQuery.Fotorama = function ($fotorama, opts) {
3153
3173
  onEnd: onEnd
3154
3174
  });
3155
3175
  thumbsDraw(result.newPos);
3156
- o_shadows && setShadow($nav, findShadowEdge(result.newPos, navShaftData.min, navShaftData.max));
3176
+ o_shadows && setShadow($nav, findShadowEdge(result.newPos, navShaftTouchTail.min, navShaftTouchTail.max));
3157
3177
  } else {
3158
3178
  onEnd();
3159
3179
  }
@@ -3180,9 +3200,9 @@ jQuery.Fotorama = function ($fotorama, opts) {
3180
3200
  onTouchStart();
3181
3201
  onTouchEnd();
3182
3202
  var newPos = stop($navShaft) + direction * .25;
3183
- $navShaft.css(getTranslate(minMaxLimit(newPos, navShaftData.min, navShaftData.max)));
3184
- o_shadows && setShadow($nav, findShadowEdge(newPos, navShaftData.min, navShaftData.max));
3185
- navWheelTail.prevent = {'<': newPos >= navShaftData.max, '>': newPos <= navShaftData.min};
3203
+ $navShaft.css(getTranslate(minMaxLimit(newPos, navShaftTouchTail.min, navShaftTouchTail.max)));
3204
+ o_shadows && setShadow($nav, findShadowEdge(newPos, navShaftTouchTail.min, navShaftTouchTail.max));
3205
+ navWheelTail.prevent = {'<': newPos >= navShaftTouchTail.max, '>': newPos <= navShaftTouchTail.min};
3186
3206
  clearTimeout(navWheelTail.t);
3187
3207
  navWheelTail.t = setTimeout(function () {
3188
3208
  thumbsDraw(newPos, true)
@@ -3218,8 +3238,7 @@ jQuery.Fotorama = function ($fotorama, opts) {
3218
3238
  onTouchStart();
3219
3239
  stageShaftTouchTail.control = true;
3220
3240
  },
3221
- onTouchEnd: onTouchEnd,
3222
- tail: stageShaftTouchTail
3241
+ onTouchEnd: onTouchEnd
3223
3242
  });
3224
3243
 
3225
3244
  function reset () {
@@ -3237,9 +3256,7 @@ jQuery.Fotorama = function ($fotorama, opts) {
3237
3256
  }
3238
3257
 
3239
3258
  if (size) {
3240
- ////console.log('activeIndex', activeIndex);
3241
3259
  if (changeToRtl()) return;
3242
- ////console.log('No changeToRtl, activeIndex is', activeIndex);
3243
3260
 
3244
3261
  if ($videoPlaying) {
3245
3262
  unloadVideo($videoPlaying, true);
@@ -3248,11 +3265,13 @@ jQuery.Fotorama = function ($fotorama, opts) {
3248
3265
  activeIndexes = [];
3249
3266
  detachFrames(STAGE_FRAME_KEY);
3250
3267
 
3251
- that.show({index: activeIndex, time: 0});
3268
+ that.show({index: activeIndex, time: 0, reset: reset.ok});
3252
3269
  that.resize();
3253
3270
  } else {
3254
3271
  that.destroy();
3255
3272
  }
3273
+
3274
+ reset.ok = true;
3256
3275
  }
3257
3276
 
3258
3277
  function changeToRtl () {
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Fotorama 4.4.8 | http://fotorama.io/license/
2
+ * Fotorama 4.4.9 | http://fotorama.io/license/
3
3
  */
4
4
  .fotorama__stage__shaft,
5
5
  .fotorama__stage__frame,
@@ -254,6 +254,7 @@
254
254
  .fotorama__nav {
255
255
  overflow: hidden;
256
256
  position: relative;
257
+ max-width: 100%;
257
258
  }
258
259
 
259
260
  .fotorama__wrap--pan-y {
@@ -330,11 +331,16 @@
330
331
  display: block;
331
332
  }
332
333
 
333
- .fotorama__stage--only-active .fotorama__stage__frame {
334
+ .fotorama__wrap--only-active .fotorama__stage,
335
+ .fotorama__wrap--only-active .fotorama__nav {
336
+ max-width: 99999px !important;
337
+ }
338
+
339
+ .fotorama__wrap--only-active .fotorama__stage__frame {
334
340
  visibility: hidden;
335
341
  }
336
342
 
337
- .fotorama__stage--only-active .fotorama__stage__frame.fotorama__active {
343
+ .fotorama__wrap--only-active .fotorama__stage__frame.fotorama__active {
338
344
  visibility: visible;
339
345
  }
340
346
 
metadata CHANGED
@@ -1,27 +1,27 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fotoramajs
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.4.8
4
+ version: 4.4.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Artem Polikarpov
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-11-15 00:00:00.000000000 Z
11
+ date: 2013-12-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: sprockets
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - '>='
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: '2'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - '>='
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: '2'
27
27
  description: Fotorama is a simple, stunning, powerful JavaScript gallery. This is
@@ -32,7 +32,7 @@ executables: []
32
32
  extensions: []
33
33
  extra_rdoc_files: []
34
34
  files:
35
- - .gitignore
35
+ - ".gitignore"
36
36
  - Gemfile
37
37
  - MIT-LICENSE.txt
38
38
  - README.md
@@ -54,19 +54,18 @@ require_paths:
54
54
  - lib
55
55
  required_ruby_version: !ruby/object:Gem::Requirement
56
56
  requirements:
57
- - - '>='
57
+ - - ">="
58
58
  - !ruby/object:Gem::Version
59
59
  version: '0'
60
60
  required_rubygems_version: !ruby/object:Gem::Requirement
61
61
  requirements:
62
- - - '>='
62
+ - - ">="
63
63
  - !ruby/object:Gem::Version
64
64
  version: '0'
65
65
  requirements: []
66
66
  rubyforge_project:
67
- rubygems_version: 2.0.3
67
+ rubygems_version: 2.2.0
68
68
  signing_key:
69
69
  specification_version: 4
70
70
  summary: Fotorama is a simple, stunning, powerful JavaScript gallery.
71
71
  test_files: []
72
- has_rdoc: