waypoints_rails 3.0.0 → 4.0.1

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.
@@ -0,0 +1,7 @@
1
+ /*!
2
+ Waypoints - 4.0.1
3
+ Copyright © 2011-2016 Caleb Troughton
4
+ Licensed under the MIT license.
5
+ https://github.com/imakewebthings/waypoints/blob/master/licenses.txt
6
+ */
7
+ !function(){"use strict";function t(n){if(!n)throw new Error("No options passed to Waypoint constructor");if(!n.element)throw new Error("No element option passed to Waypoint constructor");if(!n.handler)throw new Error("No handler option passed to Waypoint constructor");this.key="waypoint-"+e,this.options=t.Adapter.extend({},t.defaults,n),this.element=this.options.element,this.adapter=new t.Adapter(this.element),this.callback=n.handler,this.axis=this.options.horizontal?"horizontal":"vertical",this.enabled=this.options.enabled,this.triggerPoint=null,this.group=t.Group.findOrCreate({name:this.options.group,axis:this.axis}),this.context=t.Context.findOrCreateByElement(this.options.context),t.offsetAliases[this.options.offset]&&(this.options.offset=t.offsetAliases[this.options.offset]),this.group.add(this),this.context.add(this),i[this.key]=this,e+=1}var e=0,i={};t.prototype.queueTrigger=function(t){this.group.queueTrigger(this,t)},t.prototype.trigger=function(t){this.enabled&&this.callback&&this.callback.apply(this,t)},t.prototype.destroy=function(){this.context.remove(this),this.group.remove(this),delete i[this.key]},t.prototype.disable=function(){return this.enabled=!1,this},t.prototype.enable=function(){return this.context.refresh(),this.enabled=!0,this},t.prototype.next=function(){return this.group.next(this)},t.prototype.previous=function(){return this.group.previous(this)},t.invokeAll=function(t){var e=[];for(var n in i)e.push(i[n]);for(var o=0,r=e.length;r>o;o++)e[o][t]()},t.destroyAll=function(){t.invokeAll("destroy")},t.disableAll=function(){t.invokeAll("disable")},t.enableAll=function(){t.Context.refreshAll();for(var e in i)i[e].enabled=!0;return this},t.refreshAll=function(){t.Context.refreshAll()},t.viewportHeight=function(){return window.innerHeight||document.documentElement.clientHeight},t.viewportWidth=function(){return document.documentElement.clientWidth},t.adapters=[],t.defaults={context:window,continuous:!0,enabled:!0,group:"default",horizontal:!1,offset:0},t.offsetAliases={"bottom-in-view":function(){return this.context.innerHeight()-this.adapter.outerHeight()},"right-in-view":function(){return this.context.innerWidth()-this.adapter.outerWidth()}},window.Waypoint=t}(),function(){"use strict";function t(t){window.setTimeout(t,1e3/60)}function e(t){this.element=t,this.Adapter=o.Adapter,this.adapter=new this.Adapter(t),this.key="waypoint-context-"+i,this.didScroll=!1,this.didResize=!1,this.oldScroll={x:this.adapter.scrollLeft(),y:this.adapter.scrollTop()},this.waypoints={vertical:{},horizontal:{}},t.waypointContextKey=this.key,n[t.waypointContextKey]=this,i+=1,o.windowContext||(o.windowContext=!0,o.windowContext=new e(window)),this.createThrottledScrollHandler(),this.createThrottledResizeHandler()}var i=0,n={},o=window.Waypoint,r=window.onload;e.prototype.add=function(t){var e=t.options.horizontal?"horizontal":"vertical";this.waypoints[e][t.key]=t,this.refresh()},e.prototype.checkEmpty=function(){var t=this.Adapter.isEmptyObject(this.waypoints.horizontal),e=this.Adapter.isEmptyObject(this.waypoints.vertical),i=this.element==this.element.window;t&&e&&!i&&(this.adapter.off(".waypoints"),delete n[this.key])},e.prototype.createThrottledResizeHandler=function(){function t(){e.handleResize(),e.didResize=!1}var e=this;this.adapter.on("resize.waypoints",function(){e.didResize||(e.didResize=!0,o.requestAnimationFrame(t))})},e.prototype.createThrottledScrollHandler=function(){function t(){e.handleScroll(),e.didScroll=!1}var e=this;this.adapter.on("scroll.waypoints",function(){(!e.didScroll||o.isTouch)&&(e.didScroll=!0,o.requestAnimationFrame(t))})},e.prototype.handleResize=function(){o.Context.refreshAll()},e.prototype.handleScroll=function(){var t={},e={horizontal:{newScroll:this.adapter.scrollLeft(),oldScroll:this.oldScroll.x,forward:"right",backward:"left"},vertical:{newScroll:this.adapter.scrollTop(),oldScroll:this.oldScroll.y,forward:"down",backward:"up"}};for(var i in e){var n=e[i],o=n.newScroll>n.oldScroll,r=o?n.forward:n.backward;for(var s in this.waypoints[i]){var l=this.waypoints[i][s];if(null!==l.triggerPoint){var a=n.oldScroll<l.triggerPoint,h=n.newScroll>=l.triggerPoint,p=a&&h,u=!a&&!h;(p||u)&&(l.queueTrigger(r),t[l.group.id]=l.group)}}}for(var d in t)t[d].flushTriggers();this.oldScroll={x:e.horizontal.newScroll,y:e.vertical.newScroll}},e.prototype.innerHeight=function(){return this.element==this.element.window?o.viewportHeight():this.adapter.innerHeight()},e.prototype.remove=function(t){delete this.waypoints[t.axis][t.key],this.checkEmpty()},e.prototype.innerWidth=function(){return this.element==this.element.window?o.viewportWidth():this.adapter.innerWidth()},e.prototype.destroy=function(){var t=[];for(var e in this.waypoints)for(var i in this.waypoints[e])t.push(this.waypoints[e][i]);for(var n=0,o=t.length;o>n;n++)t[n].destroy()},e.prototype.refresh=function(){var t,e=this.element==this.element.window,i=e?void 0:this.adapter.offset(),n={};this.handleScroll(),t={horizontal:{contextOffset:e?0:i.left,contextScroll:e?0:this.oldScroll.x,contextDimension:this.innerWidth(),oldScroll:this.oldScroll.x,forward:"right",backward:"left",offsetProp:"left"},vertical:{contextOffset:e?0:i.top,contextScroll:e?0:this.oldScroll.y,contextDimension:this.innerHeight(),oldScroll:this.oldScroll.y,forward:"down",backward:"up",offsetProp:"top"}};for(var r in t){var s=t[r];for(var l in this.waypoints[r]){var a,h,p,u,d,f=this.waypoints[r][l],c=f.options.offset,w=f.triggerPoint,y=0,g=null==w;f.element!==f.element.window&&(y=f.adapter.offset()[s.offsetProp]),"function"==typeof c?c=c.apply(f):"string"==typeof c&&(c=parseFloat(c),f.options.offset.indexOf("%")>-1&&(c=Math.ceil(s.contextDimension*c/100))),a=s.contextScroll-s.contextOffset,f.triggerPoint=Math.floor(y+a-c),h=w<s.oldScroll,p=f.triggerPoint>=s.oldScroll,u=h&&p,d=!h&&!p,!g&&u?(f.queueTrigger(s.backward),n[f.group.id]=f.group):!g&&d?(f.queueTrigger(s.forward),n[f.group.id]=f.group):g&&s.oldScroll>=f.triggerPoint&&(f.queueTrigger(s.forward),n[f.group.id]=f.group)}}return o.requestAnimationFrame(function(){for(var t in n)n[t].flushTriggers()}),this},e.findOrCreateByElement=function(t){return e.findByElement(t)||new e(t)},e.refreshAll=function(){for(var t in n)n[t].refresh()},e.findByElement=function(t){return n[t.waypointContextKey]},window.onload=function(){r&&r(),e.refreshAll()},o.requestAnimationFrame=function(e){var i=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||t;i.call(window,e)},o.Context=e}(),function(){"use strict";function t(t,e){return t.triggerPoint-e.triggerPoint}function e(t,e){return e.triggerPoint-t.triggerPoint}function i(t){this.name=t.name,this.axis=t.axis,this.id=this.name+"-"+this.axis,this.waypoints=[],this.clearTriggerQueues(),n[this.axis][this.name]=this}var n={vertical:{},horizontal:{}},o=window.Waypoint;i.prototype.add=function(t){this.waypoints.push(t)},i.prototype.clearTriggerQueues=function(){this.triggerQueues={up:[],down:[],left:[],right:[]}},i.prototype.flushTriggers=function(){for(var i in this.triggerQueues){var n=this.triggerQueues[i],o="up"===i||"left"===i;n.sort(o?e:t);for(var r=0,s=n.length;s>r;r+=1){var l=n[r];(l.options.continuous||r===n.length-1)&&l.trigger([i])}}this.clearTriggerQueues()},i.prototype.next=function(e){this.waypoints.sort(t);var i=o.Adapter.inArray(e,this.waypoints),n=i===this.waypoints.length-1;return n?null:this.waypoints[i+1]},i.prototype.previous=function(e){this.waypoints.sort(t);var i=o.Adapter.inArray(e,this.waypoints);return i?this.waypoints[i-1]:null},i.prototype.queueTrigger=function(t,e){this.triggerQueues[e].push(t)},i.prototype.remove=function(t){var e=o.Adapter.inArray(t,this.waypoints);e>-1&&this.waypoints.splice(e,1)},i.prototype.first=function(){return this.waypoints[0]},i.prototype.last=function(){return this.waypoints[this.waypoints.length-1]},i.findOrCreate=function(t){return n[t.axis][t.name]||new i(t)},o.Group=i}(),function(){"use strict";function t(t){return t===t.window}function e(e){return t(e)?e:e.defaultView}function i(t){this.element=t,this.handlers={}}var n=window.Waypoint;i.prototype.innerHeight=function(){var e=t(this.element);return e?this.element.innerHeight:this.element.clientHeight},i.prototype.innerWidth=function(){var e=t(this.element);return e?this.element.innerWidth:this.element.clientWidth},i.prototype.off=function(t,e){function i(t,e,i){for(var n=0,o=e.length-1;o>n;n++){var r=e[n];i&&i!==r||t.removeEventListener(r)}}var n=t.split("."),o=n[0],r=n[1],s=this.element;if(r&&this.handlers[r]&&o)i(s,this.handlers[r][o],e),this.handlers[r][o]=[];else if(o)for(var l in this.handlers)i(s,this.handlers[l][o]||[],e),this.handlers[l][o]=[];else if(r&&this.handlers[r]){for(var a in this.handlers[r])i(s,this.handlers[r][a],e);this.handlers[r]={}}},i.prototype.offset=function(){if(!this.element.ownerDocument)return null;var t=this.element.ownerDocument.documentElement,i=e(this.element.ownerDocument),n={top:0,left:0};return this.element.getBoundingClientRect&&(n=this.element.getBoundingClientRect()),{top:n.top+i.pageYOffset-t.clientTop,left:n.left+i.pageXOffset-t.clientLeft}},i.prototype.on=function(t,e){var i=t.split("."),n=i[0],o=i[1]||"__default",r=this.handlers[o]=this.handlers[o]||{},s=r[n]=r[n]||[];s.push(e),this.element.addEventListener(n,e)},i.prototype.outerHeight=function(e){var i,n=this.innerHeight();return e&&!t(this.element)&&(i=window.getComputedStyle(this.element),n+=parseInt(i.marginTop,10),n+=parseInt(i.marginBottom,10)),n},i.prototype.outerWidth=function(e){var i,n=this.innerWidth();return e&&!t(this.element)&&(i=window.getComputedStyle(this.element),n+=parseInt(i.marginLeft,10),n+=parseInt(i.marginRight,10)),n},i.prototype.scrollLeft=function(){var t=e(this.element);return t?t.pageXOffset:this.element.scrollLeft},i.prototype.scrollTop=function(){var t=e(this.element);return t?t.pageYOffset:this.element.scrollTop},i.extend=function(){function t(t,e){if("object"==typeof t&&"object"==typeof e)for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i]);return t}for(var e=Array.prototype.slice.call(arguments),i=1,n=e.length;n>i;i++)t(e[0],e[i]);return e[0]},i.inArray=function(t,e,i){return null==e?-1:e.indexOf(t,i)},i.isEmptyObject=function(t){for(var e in t)return!1;return!0},n.adapters.push({name:"noframework",Adapter:i}),n.Adapter=i}();
@@ -1,8 +1,8 @@
1
1
  /*!
2
- Waypoints Infinite Scroll Shortcut - 3.0.0
3
- Copyright © 2011-2014 Caleb Troughton
2
+ Waypoints Infinite Scroll Shortcut - 4.0.1
3
+ Copyright © 2011-2016 Caleb Troughton
4
4
  Licensed under the MIT license.
5
- https://github.com/imakewebthings/waypoints/blog/master/licenses.txt
5
+ https://github.com/imakewebthings/waypoints/blob/master/licenses.txt
6
6
  */
7
7
  (function() {
8
8
  'use strict'
@@ -29,32 +29,35 @@ https://github.com/imakewebthings/waypoints/blog/master/licenses.txt
29
29
  /* Private */
30
30
  Infinite.prototype.setupHandler = function() {
31
31
  this.options.handler = $.proxy(function() {
32
- window.setTimeout($.proxy(function() {
33
- this.options.onBeforePageLoad()
34
- this.destroy()
35
- this.$container.addClass(this.options.loadingClass)
32
+ this.options.onBeforePageLoad()
33
+ this.destroy()
34
+ this.$container.addClass(this.options.loadingClass)
36
35
 
37
- $.get($(this.options.more).attr('href'), $.proxy(function(data) {
38
- var $data = $($.parseHTML(data))
39
- var $newMore = $data.find(this.options.more)
36
+ $.get($(this.options.more).attr('href'), $.proxy(function(data) {
37
+ var $data = $($.parseHTML(data))
38
+ var $newMore = $data.find(this.options.more)
40
39
 
41
- this.$container.append($data.find(this.options.items))
42
- this.$container.removeClass(this.options.loadingClass)
40
+ var $items = $data.find(this.options.items)
41
+ if (!$items.length) {
42
+ $items = $data.filter(this.options.items)
43
+ }
43
44
 
44
- if (!$newMore.length) {
45
- $newMore = $data.filter(this.options.more)
46
- }
47
- if ($newMore.length) {
48
- this.$more.replaceWith($newMore)
49
- this.$more = $newMore
50
- this.waypoint = new Waypoint(this.options)
51
- }
52
- else {
53
- this.$more.remove()
54
- }
45
+ this.$container.append($items)
46
+ this.$container.removeClass(this.options.loadingClass)
55
47
 
56
- this.options.onAfterPageLoad()
57
- }, this), 0)
48
+ if (!$newMore.length) {
49
+ $newMore = $data.filter(this.options.more)
50
+ }
51
+ if ($newMore.length) {
52
+ this.$more.replaceWith($newMore)
53
+ this.$more = $newMore
54
+ this.waypoint = new Waypoint(this.options)
55
+ }
56
+ else {
57
+ this.$more.remove()
58
+ }
59
+
60
+ this.options.onAfterPageLoad($items)
58
61
  }, this))
59
62
  }, this)
60
63
  }
@@ -0,0 +1,7 @@
1
+ /*!
2
+ Waypoints Infinite Scroll Shortcut - 4.0.1
3
+ Copyright © 2011-2016 Caleb Troughton
4
+ Licensed under the MIT license.
5
+ https://github.com/imakewebthings/waypoints/blob/master/licenses.txt
6
+ */
7
+ !function(){"use strict";function t(n){this.options=i.extend({},t.defaults,n),this.container=this.options.element,"auto"!==this.options.container&&(this.container=this.options.container),this.$container=i(this.container),this.$more=i(this.options.more),this.$more.length&&(this.setupHandler(),this.waypoint=new o(this.options))}var i=window.jQuery,o=window.Waypoint;t.prototype.setupHandler=function(){this.options.handler=i.proxy(function(){this.options.onBeforePageLoad(),this.destroy(),this.$container.addClass(this.options.loadingClass),i.get(i(this.options.more).attr("href"),i.proxy(function(t){var n=i(i.parseHTML(t)),e=n.find(this.options.more),s=n.find(this.options.items);s.length||(s=n.filter(this.options.items)),this.$container.append(s),this.$container.removeClass(this.options.loadingClass),e.length||(e=n.filter(this.options.more)),e.length?(this.$more.replaceWith(e),this.$more=e,this.waypoint=new o(this.options)):this.$more.remove(),this.options.onAfterPageLoad(s)},this))},this)},t.prototype.destroy=function(){this.waypoint&&this.waypoint.destroy()},t.defaults={container:"auto",items:".infinite-item",more:".infinite-more-link",offset:"bottom-in-view",loadingClass:"infinite-loading",onBeforePageLoad:i.noop,onAfterPageLoad:i.noop},o.Infinite=t}();
@@ -1,8 +1,8 @@
1
1
  /*!
2
- Waypoints Inview Shortcut - 3.0.0
3
- Copyright © 2011-2014 Caleb Troughton
2
+ Waypoints Inview Shortcut - 4.0.1
3
+ Copyright © 2011-2016 Caleb Troughton
4
4
  Licensed under the MIT license.
5
- https://github.com/imakewebthings/waypoints/blog/master/licenses.txt
5
+ https://github.com/imakewebthings/waypoints/blob/master/licenses.txt
6
6
  */
7
7
  (function() {
8
8
  'use strict'
@@ -16,6 +16,7 @@ https://github.com/imakewebthings/waypoints/blog/master/licenses.txt
16
16
  this.options = Waypoint.Adapter.extend({}, Inview.defaults, options)
17
17
  this.axis = this.options.horizontal ? 'horizontal' : 'vertical'
18
18
  this.waypoints = []
19
+ this.element = this.options.element
19
20
  this.createWaypoints()
20
21
  }
21
22
 
@@ -72,10 +73,12 @@ https://github.com/imakewebthings/waypoints/blog/master/licenses.txt
72
73
  Inview.prototype.createWaypoint = function(config) {
73
74
  var self = this
74
75
  this.waypoints.push(new Waypoint({
76
+ context: this.options.context,
75
77
  element: this.options.element,
78
+ enabled: this.options.enabled,
76
79
  handler: (function(config) {
77
80
  return function(direction) {
78
- self.options[config[direction]].call(this, direction)
81
+ self.options[config[direction]].call(self, direction)
79
82
  }
80
83
  }(config)),
81
84
  offset: config.offset,
@@ -91,7 +94,21 @@ https://github.com/imakewebthings/waypoints/blog/master/licenses.txt
91
94
  this.waypoints = []
92
95
  }
93
96
 
97
+ Inview.prototype.disable = function() {
98
+ for (var i = 0, end = this.waypoints.length; i < end; i++) {
99
+ this.waypoints[i].disable()
100
+ }
101
+ }
102
+
103
+ Inview.prototype.enable = function() {
104
+ for (var i = 0, end = this.waypoints.length; i < end; i++) {
105
+ this.waypoints[i].enable()
106
+ }
107
+ }
108
+
94
109
  Inview.defaults = {
110
+ context: window,
111
+ enabled: true,
95
112
  enter: noop,
96
113
  entered: noop,
97
114
  exit: noop,
@@ -0,0 +1,7 @@
1
+ /*!
2
+ Waypoints Inview Shortcut - 4.0.1
3
+ Copyright © 2011-2016 Caleb Troughton
4
+ Licensed under the MIT license.
5
+ https://github.com/imakewebthings/waypoints/blob/master/licenses.txt
6
+ */
7
+ !function(){"use strict";function t(){}function e(t){this.options=i.Adapter.extend({},e.defaults,t),this.axis=this.options.horizontal?"horizontal":"vertical",this.waypoints=[],this.element=this.options.element,this.createWaypoints()}var i=window.Waypoint;e.prototype.createWaypoints=function(){for(var t={vertical:[{down:"enter",up:"exited",offset:"100%"},{down:"entered",up:"exit",offset:"bottom-in-view"},{down:"exit",up:"entered",offset:0},{down:"exited",up:"enter",offset:function(){return-this.adapter.outerHeight()}}],horizontal:[{right:"enter",left:"exited",offset:"100%"},{right:"entered",left:"exit",offset:"right-in-view"},{right:"exit",left:"entered",offset:0},{right:"exited",left:"enter",offset:function(){return-this.adapter.outerWidth()}}]},e=0,i=t[this.axis].length;i>e;e++){var n=t[this.axis][e];this.createWaypoint(n)}},e.prototype.createWaypoint=function(t){var e=this;this.waypoints.push(new i({context:this.options.context,element:this.options.element,enabled:this.options.enabled,handler:function(t){return function(i){e.options[t[i]].call(e,i)}}(t),offset:t.offset,horizontal:this.options.horizontal}))},e.prototype.destroy=function(){for(var t=0,e=this.waypoints.length;e>t;t++)this.waypoints[t].destroy();this.waypoints=[]},e.prototype.disable=function(){for(var t=0,e=this.waypoints.length;e>t;t++)this.waypoints[t].disable()},e.prototype.enable=function(){for(var t=0,e=this.waypoints.length;e>t;t++)this.waypoints[t].enable()},e.defaults={context:window,enabled:!0,enter:t,entered:t,exit:t,exited:t},i.Inview=e}();
@@ -1,8 +1,8 @@
1
1
  /*!
2
- Waypoints Sticky Element Shortcut - 3.0.0
3
- Copyright © 2011-2014 Caleb Troughton
2
+ Waypoints Sticky Element Shortcut - 4.0.1
3
+ Copyright © 2011-2016 Caleb Troughton
4
4
  Licensed under the MIT license.
5
- https://github.com/imakewebthings/waypoints/blog/master/licenses.txt
5
+ https://github.com/imakewebthings/waypoints/blob/master/licenses.txt
6
6
  */
7
7
  (function() {
8
8
  'use strict'
@@ -41,7 +41,9 @@ https://github.com/imakewebthings/waypoints/blog/master/licenses.txt
41
41
 
42
42
  /* Private */
43
43
  Sticky.prototype.createWrapper = function() {
44
- this.$element.wrap(this.options.wrapper)
44
+ if (this.options.wrapper) {
45
+ this.$element.wrap(this.options.wrapper)
46
+ }
45
47
  this.$wrapper = this.$element.parent()
46
48
  this.wrapper = this.$wrapper[0]
47
49
  }
@@ -50,7 +52,10 @@ https://github.com/imakewebthings/waypoints/blog/master/licenses.txt
50
52
  Sticky.prototype.destroy = function() {
51
53
  if (this.$element.parent()[0] === this.wrapper) {
52
54
  this.waypoint.destroy()
53
- this.$element.removeClass(this.options.stuckClass).unwrap()
55
+ this.$element.removeClass(this.options.stuckClass)
56
+ if (this.options.wrapper) {
57
+ this.$element.unwrap()
58
+ }
54
59
  }
55
60
  }
56
61
 
@@ -62,4 +67,4 @@ https://github.com/imakewebthings/waypoints/blog/master/licenses.txt
62
67
 
63
68
  Waypoint.Sticky = Sticky
64
69
  }())
65
- ;
70
+ ;
@@ -0,0 +1,7 @@
1
+ /*!
2
+ Waypoints Sticky Element Shortcut - 4.0.1
3
+ Copyright © 2011-2016 Caleb Troughton
4
+ Licensed under the MIT license.
5
+ https://github.com/imakewebthings/waypoints/blob/master/licenses.txt
6
+ */
7
+ !function(){"use strict";function t(s){this.options=e.extend({},i.defaults,t.defaults,s),this.element=this.options.element,this.$element=e(this.element),this.createWrapper(),this.createWaypoint()}var e=window.jQuery,i=window.Waypoint;t.prototype.createWaypoint=function(){var t=this.options.handler;this.waypoint=new i(e.extend({},this.options,{element:this.wrapper,handler:e.proxy(function(e){var i=this.options.direction.indexOf(e)>-1,s=i?this.$element.outerHeight(!0):"";this.$wrapper.height(s),this.$element.toggleClass(this.options.stuckClass,i),t&&t.call(this,e)},this)}))},t.prototype.createWrapper=function(){this.options.wrapper&&this.$element.wrap(this.options.wrapper),this.$wrapper=this.$element.parent(),this.wrapper=this.$wrapper[0]},t.prototype.destroy=function(){this.$element.parent()[0]===this.wrapper&&(this.waypoint.destroy(),this.$element.removeClass(this.options.stuckClass),this.options.wrapper&&this.$element.unwrap())},t.defaults={wrapper:'<div class="sticky-wrapper" />',stuckClass:"stuck",direction:"down right"},i.Sticky=t}();
@@ -0,0 +1,46 @@
1
+ /*!
2
+ Waypoints Debug - 4.0.1
3
+ Copyright © 2011-2016 Caleb Troughton
4
+ Licensed under the MIT license.
5
+ https://github.com/imakewebthings/waypoints/blob/master/licenses.txt
6
+ */
7
+ (function() {
8
+ 'use strict'
9
+
10
+ var displayNoneMessage = [
11
+ 'You have a Waypoint element with display none. For more information on ',
12
+ 'why this is a bad idea read ',
13
+ 'http://imakewebthings.com/waypoints/guides/debugging/#display-none'
14
+ ].join('')
15
+ var fixedMessage = [
16
+ 'You have a Waypoint element with fixed positioning. For more ',
17
+ 'information on why this is a bad idea read ',
18
+ 'http://imakewebthings.com/waypoints/guides/debugging/#fixed-position'
19
+ ].join('')
20
+
21
+ function checkWaypointStyles() {
22
+ var originalRefresh = window.Waypoint.Context.prototype.refresh
23
+
24
+ window.Waypoint.Context.prototype.refresh = function() {
25
+ for (var axis in this.waypoints) {
26
+ for (var key in this.waypoints[axis]) {
27
+ var waypoint = this.waypoints[axis][key]
28
+ var style = window.getComputedStyle(waypoint.element)
29
+ if (!waypoint.enabled) {
30
+ continue
31
+ }
32
+ if (style && style.display === 'none') {
33
+ console.error(displayNoneMessage)
34
+ }
35
+ if (style && style.position === 'fixed') {
36
+ console.error(fixedMessage)
37
+ }
38
+ }
39
+ }
40
+ return originalRefresh.call(this)
41
+ }
42
+ }
43
+
44
+ checkWaypointStyles()
45
+ }())
46
+ ;
@@ -0,0 +1,705 @@
1
+ /*!
2
+ Waypoints - 4.0.1
3
+ Copyright © 2011-2016 Caleb Troughton
4
+ Licensed under the MIT license.
5
+ https://github.com/imakewebthings/waypoints/blob/master/licenses.txt
6
+ */
7
+ (function() {
8
+ 'use strict'
9
+
10
+ var keyCounter = 0
11
+ var allWaypoints = {}
12
+
13
+ /* http://imakewebthings.com/waypoints/api/waypoint */
14
+ function Waypoint(options) {
15
+ if (!options) {
16
+ throw new Error('No options passed to Waypoint constructor')
17
+ }
18
+ if (!options.element) {
19
+ throw new Error('No element option passed to Waypoint constructor')
20
+ }
21
+ if (!options.handler) {
22
+ throw new Error('No handler option passed to Waypoint constructor')
23
+ }
24
+
25
+ this.key = 'waypoint-' + keyCounter
26
+ this.options = Waypoint.Adapter.extend({}, Waypoint.defaults, options)
27
+ this.element = this.options.element
28
+ this.adapter = new Waypoint.Adapter(this.element)
29
+ this.callback = options.handler
30
+ this.axis = this.options.horizontal ? 'horizontal' : 'vertical'
31
+ this.enabled = this.options.enabled
32
+ this.triggerPoint = null
33
+ this.group = Waypoint.Group.findOrCreate({
34
+ name: this.options.group,
35
+ axis: this.axis
36
+ })
37
+ this.context = Waypoint.Context.findOrCreateByElement(this.options.context)
38
+
39
+ if (Waypoint.offsetAliases[this.options.offset]) {
40
+ this.options.offset = Waypoint.offsetAliases[this.options.offset]
41
+ }
42
+ this.group.add(this)
43
+ this.context.add(this)
44
+ allWaypoints[this.key] = this
45
+ keyCounter += 1
46
+ }
47
+
48
+ /* Private */
49
+ Waypoint.prototype.queueTrigger = function(direction) {
50
+ this.group.queueTrigger(this, direction)
51
+ }
52
+
53
+ /* Private */
54
+ Waypoint.prototype.trigger = function(args) {
55
+ if (!this.enabled) {
56
+ return
57
+ }
58
+ if (this.callback) {
59
+ this.callback.apply(this, args)
60
+ }
61
+ }
62
+
63
+ /* Public */
64
+ /* http://imakewebthings.com/waypoints/api/destroy */
65
+ Waypoint.prototype.destroy = function() {
66
+ this.context.remove(this)
67
+ this.group.remove(this)
68
+ delete allWaypoints[this.key]
69
+ }
70
+
71
+ /* Public */
72
+ /* http://imakewebthings.com/waypoints/api/disable */
73
+ Waypoint.prototype.disable = function() {
74
+ this.enabled = false
75
+ return this
76
+ }
77
+
78
+ /* Public */
79
+ /* http://imakewebthings.com/waypoints/api/enable */
80
+ Waypoint.prototype.enable = function() {
81
+ this.context.refresh()
82
+ this.enabled = true
83
+ return this
84
+ }
85
+
86
+ /* Public */
87
+ /* http://imakewebthings.com/waypoints/api/next */
88
+ Waypoint.prototype.next = function() {
89
+ return this.group.next(this)
90
+ }
91
+
92
+ /* Public */
93
+ /* http://imakewebthings.com/waypoints/api/previous */
94
+ Waypoint.prototype.previous = function() {
95
+ return this.group.previous(this)
96
+ }
97
+
98
+ /* Private */
99
+ Waypoint.invokeAll = function(method) {
100
+ var allWaypointsArray = []
101
+ for (var waypointKey in allWaypoints) {
102
+ allWaypointsArray.push(allWaypoints[waypointKey])
103
+ }
104
+ for (var i = 0, end = allWaypointsArray.length; i < end; i++) {
105
+ allWaypointsArray[i][method]()
106
+ }
107
+ }
108
+
109
+ /* Public */
110
+ /* http://imakewebthings.com/waypoints/api/destroy-all */
111
+ Waypoint.destroyAll = function() {
112
+ Waypoint.invokeAll('destroy')
113
+ }
114
+
115
+ /* Public */
116
+ /* http://imakewebthings.com/waypoints/api/disable-all */
117
+ Waypoint.disableAll = function() {
118
+ Waypoint.invokeAll('disable')
119
+ }
120
+
121
+ /* Public */
122
+ /* http://imakewebthings.com/waypoints/api/enable-all */
123
+ Waypoint.enableAll = function() {
124
+ Waypoint.Context.refreshAll()
125
+ for (var waypointKey in allWaypoints) {
126
+ allWaypoints[waypointKey].enabled = true
127
+ }
128
+ return this
129
+ }
130
+
131
+ /* Public */
132
+ /* http://imakewebthings.com/waypoints/api/refresh-all */
133
+ Waypoint.refreshAll = function() {
134
+ Waypoint.Context.refreshAll()
135
+ }
136
+
137
+ /* Public */
138
+ /* http://imakewebthings.com/waypoints/api/viewport-height */
139
+ Waypoint.viewportHeight = function() {
140
+ return window.innerHeight || document.documentElement.clientHeight
141
+ }
142
+
143
+ /* Public */
144
+ /* http://imakewebthings.com/waypoints/api/viewport-width */
145
+ Waypoint.viewportWidth = function() {
146
+ return document.documentElement.clientWidth
147
+ }
148
+
149
+ Waypoint.adapters = []
150
+
151
+ Waypoint.defaults = {
152
+ context: window,
153
+ continuous: true,
154
+ enabled: true,
155
+ group: 'default',
156
+ horizontal: false,
157
+ offset: 0
158
+ }
159
+
160
+ Waypoint.offsetAliases = {
161
+ 'bottom-in-view': function() {
162
+ return this.context.innerHeight() - this.adapter.outerHeight()
163
+ },
164
+ 'right-in-view': function() {
165
+ return this.context.innerWidth() - this.adapter.outerWidth()
166
+ }
167
+ }
168
+
169
+ window.Waypoint = Waypoint
170
+ }())
171
+ ;(function() {
172
+ 'use strict'
173
+
174
+ function requestAnimationFrameShim(callback) {
175
+ window.setTimeout(callback, 1000 / 60)
176
+ }
177
+
178
+ var keyCounter = 0
179
+ var contexts = {}
180
+ var Waypoint = window.Waypoint
181
+ var oldWindowLoad = window.onload
182
+
183
+ /* http://imakewebthings.com/waypoints/api/context */
184
+ function Context(element) {
185
+ this.element = element
186
+ this.Adapter = Waypoint.Adapter
187
+ this.adapter = new this.Adapter(element)
188
+ this.key = 'waypoint-context-' + keyCounter
189
+ this.didScroll = false
190
+ this.didResize = false
191
+ this.oldScroll = {
192
+ x: this.adapter.scrollLeft(),
193
+ y: this.adapter.scrollTop()
194
+ }
195
+ this.waypoints = {
196
+ vertical: {},
197
+ horizontal: {}
198
+ }
199
+
200
+ element.waypointContextKey = this.key
201
+ contexts[element.waypointContextKey] = this
202
+ keyCounter += 1
203
+ if (!Waypoint.windowContext) {
204
+ Waypoint.windowContext = true
205
+ Waypoint.windowContext = new Context(window)
206
+ }
207
+
208
+ this.createThrottledScrollHandler()
209
+ this.createThrottledResizeHandler()
210
+ }
211
+
212
+ /* Private */
213
+ Context.prototype.add = function(waypoint) {
214
+ var axis = waypoint.options.horizontal ? 'horizontal' : 'vertical'
215
+ this.waypoints[axis][waypoint.key] = waypoint
216
+ this.refresh()
217
+ }
218
+
219
+ /* Private */
220
+ Context.prototype.checkEmpty = function() {
221
+ var horizontalEmpty = this.Adapter.isEmptyObject(this.waypoints.horizontal)
222
+ var verticalEmpty = this.Adapter.isEmptyObject(this.waypoints.vertical)
223
+ var isWindow = this.element == this.element.window
224
+ if (horizontalEmpty && verticalEmpty && !isWindow) {
225
+ this.adapter.off('.waypoints')
226
+ delete contexts[this.key]
227
+ }
228
+ }
229
+
230
+ /* Private */
231
+ Context.prototype.createThrottledResizeHandler = function() {
232
+ var self = this
233
+
234
+ function resizeHandler() {
235
+ self.handleResize()
236
+ self.didResize = false
237
+ }
238
+
239
+ this.adapter.on('resize.waypoints', function() {
240
+ if (!self.didResize) {
241
+ self.didResize = true
242
+ Waypoint.requestAnimationFrame(resizeHandler)
243
+ }
244
+ })
245
+ }
246
+
247
+ /* Private */
248
+ Context.prototype.createThrottledScrollHandler = function() {
249
+ var self = this
250
+ function scrollHandler() {
251
+ self.handleScroll()
252
+ self.didScroll = false
253
+ }
254
+
255
+ this.adapter.on('scroll.waypoints', function() {
256
+ if (!self.didScroll || Waypoint.isTouch) {
257
+ self.didScroll = true
258
+ Waypoint.requestAnimationFrame(scrollHandler)
259
+ }
260
+ })
261
+ }
262
+
263
+ /* Private */
264
+ Context.prototype.handleResize = function() {
265
+ Waypoint.Context.refreshAll()
266
+ }
267
+
268
+ /* Private */
269
+ Context.prototype.handleScroll = function() {
270
+ var triggeredGroups = {}
271
+ var axes = {
272
+ horizontal: {
273
+ newScroll: this.adapter.scrollLeft(),
274
+ oldScroll: this.oldScroll.x,
275
+ forward: 'right',
276
+ backward: 'left'
277
+ },
278
+ vertical: {
279
+ newScroll: this.adapter.scrollTop(),
280
+ oldScroll: this.oldScroll.y,
281
+ forward: 'down',
282
+ backward: 'up'
283
+ }
284
+ }
285
+
286
+ for (var axisKey in axes) {
287
+ var axis = axes[axisKey]
288
+ var isForward = axis.newScroll > axis.oldScroll
289
+ var direction = isForward ? axis.forward : axis.backward
290
+
291
+ for (var waypointKey in this.waypoints[axisKey]) {
292
+ var waypoint = this.waypoints[axisKey][waypointKey]
293
+ if (waypoint.triggerPoint === null) {
294
+ continue
295
+ }
296
+ var wasBeforeTriggerPoint = axis.oldScroll < waypoint.triggerPoint
297
+ var nowAfterTriggerPoint = axis.newScroll >= waypoint.triggerPoint
298
+ var crossedForward = wasBeforeTriggerPoint && nowAfterTriggerPoint
299
+ var crossedBackward = !wasBeforeTriggerPoint && !nowAfterTriggerPoint
300
+ if (crossedForward || crossedBackward) {
301
+ waypoint.queueTrigger(direction)
302
+ triggeredGroups[waypoint.group.id] = waypoint.group
303
+ }
304
+ }
305
+ }
306
+
307
+ for (var groupKey in triggeredGroups) {
308
+ triggeredGroups[groupKey].flushTriggers()
309
+ }
310
+
311
+ this.oldScroll = {
312
+ x: axes.horizontal.newScroll,
313
+ y: axes.vertical.newScroll
314
+ }
315
+ }
316
+
317
+ /* Private */
318
+ Context.prototype.innerHeight = function() {
319
+ /*eslint-disable eqeqeq */
320
+ if (this.element == this.element.window) {
321
+ return Waypoint.viewportHeight()
322
+ }
323
+ /*eslint-enable eqeqeq */
324
+ return this.adapter.innerHeight()
325
+ }
326
+
327
+ /* Private */
328
+ Context.prototype.remove = function(waypoint) {
329
+ delete this.waypoints[waypoint.axis][waypoint.key]
330
+ this.checkEmpty()
331
+ }
332
+
333
+ /* Private */
334
+ Context.prototype.innerWidth = function() {
335
+ /*eslint-disable eqeqeq */
336
+ if (this.element == this.element.window) {
337
+ return Waypoint.viewportWidth()
338
+ }
339
+ /*eslint-enable eqeqeq */
340
+ return this.adapter.innerWidth()
341
+ }
342
+
343
+ /* Public */
344
+ /* http://imakewebthings.com/waypoints/api/context-destroy */
345
+ Context.prototype.destroy = function() {
346
+ var allWaypoints = []
347
+ for (var axis in this.waypoints) {
348
+ for (var waypointKey in this.waypoints[axis]) {
349
+ allWaypoints.push(this.waypoints[axis][waypointKey])
350
+ }
351
+ }
352
+ for (var i = 0, end = allWaypoints.length; i < end; i++) {
353
+ allWaypoints[i].destroy()
354
+ }
355
+ }
356
+
357
+ /* Public */
358
+ /* http://imakewebthings.com/waypoints/api/context-refresh */
359
+ Context.prototype.refresh = function() {
360
+ /*eslint-disable eqeqeq */
361
+ var isWindow = this.element == this.element.window
362
+ /*eslint-enable eqeqeq */
363
+ var contextOffset = isWindow ? undefined : this.adapter.offset()
364
+ var triggeredGroups = {}
365
+ var axes
366
+
367
+ this.handleScroll()
368
+ axes = {
369
+ horizontal: {
370
+ contextOffset: isWindow ? 0 : contextOffset.left,
371
+ contextScroll: isWindow ? 0 : this.oldScroll.x,
372
+ contextDimension: this.innerWidth(),
373
+ oldScroll: this.oldScroll.x,
374
+ forward: 'right',
375
+ backward: 'left',
376
+ offsetProp: 'left'
377
+ },
378
+ vertical: {
379
+ contextOffset: isWindow ? 0 : contextOffset.top,
380
+ contextScroll: isWindow ? 0 : this.oldScroll.y,
381
+ contextDimension: this.innerHeight(),
382
+ oldScroll: this.oldScroll.y,
383
+ forward: 'down',
384
+ backward: 'up',
385
+ offsetProp: 'top'
386
+ }
387
+ }
388
+
389
+ for (var axisKey in axes) {
390
+ var axis = axes[axisKey]
391
+ for (var waypointKey in this.waypoints[axisKey]) {
392
+ var waypoint = this.waypoints[axisKey][waypointKey]
393
+ var adjustment = waypoint.options.offset
394
+ var oldTriggerPoint = waypoint.triggerPoint
395
+ var elementOffset = 0
396
+ var freshWaypoint = oldTriggerPoint == null
397
+ var contextModifier, wasBeforeScroll, nowAfterScroll
398
+ var triggeredBackward, triggeredForward
399
+
400
+ if (waypoint.element !== waypoint.element.window) {
401
+ elementOffset = waypoint.adapter.offset()[axis.offsetProp]
402
+ }
403
+
404
+ if (typeof adjustment === 'function') {
405
+ adjustment = adjustment.apply(waypoint)
406
+ }
407
+ else if (typeof adjustment === 'string') {
408
+ adjustment = parseFloat(adjustment)
409
+ if (waypoint.options.offset.indexOf('%') > - 1) {
410
+ adjustment = Math.ceil(axis.contextDimension * adjustment / 100)
411
+ }
412
+ }
413
+
414
+ contextModifier = axis.contextScroll - axis.contextOffset
415
+ waypoint.triggerPoint = Math.floor(elementOffset + contextModifier - adjustment)
416
+ wasBeforeScroll = oldTriggerPoint < axis.oldScroll
417
+ nowAfterScroll = waypoint.triggerPoint >= axis.oldScroll
418
+ triggeredBackward = wasBeforeScroll && nowAfterScroll
419
+ triggeredForward = !wasBeforeScroll && !nowAfterScroll
420
+
421
+ if (!freshWaypoint && triggeredBackward) {
422
+ waypoint.queueTrigger(axis.backward)
423
+ triggeredGroups[waypoint.group.id] = waypoint.group
424
+ }
425
+ else if (!freshWaypoint && triggeredForward) {
426
+ waypoint.queueTrigger(axis.forward)
427
+ triggeredGroups[waypoint.group.id] = waypoint.group
428
+ }
429
+ else if (freshWaypoint && axis.oldScroll >= waypoint.triggerPoint) {
430
+ waypoint.queueTrigger(axis.forward)
431
+ triggeredGroups[waypoint.group.id] = waypoint.group
432
+ }
433
+ }
434
+ }
435
+
436
+ Waypoint.requestAnimationFrame(function() {
437
+ for (var groupKey in triggeredGroups) {
438
+ triggeredGroups[groupKey].flushTriggers()
439
+ }
440
+ })
441
+
442
+ return this
443
+ }
444
+
445
+ /* Private */
446
+ Context.findOrCreateByElement = function(element) {
447
+ return Context.findByElement(element) || new Context(element)
448
+ }
449
+
450
+ /* Private */
451
+ Context.refreshAll = function() {
452
+ for (var contextId in contexts) {
453
+ contexts[contextId].refresh()
454
+ }
455
+ }
456
+
457
+ /* Public */
458
+ /* http://imakewebthings.com/waypoints/api/context-find-by-element */
459
+ Context.findByElement = function(element) {
460
+ return contexts[element.waypointContextKey]
461
+ }
462
+
463
+ window.onload = function() {
464
+ if (oldWindowLoad) {
465
+ oldWindowLoad()
466
+ }
467
+ Context.refreshAll()
468
+ }
469
+
470
+
471
+ Waypoint.requestAnimationFrame = function(callback) {
472
+ var requestFn = window.requestAnimationFrame ||
473
+ window.mozRequestAnimationFrame ||
474
+ window.webkitRequestAnimationFrame ||
475
+ requestAnimationFrameShim
476
+ requestFn.call(window, callback)
477
+ }
478
+ Waypoint.Context = Context
479
+ }())
480
+ ;(function() {
481
+ 'use strict'
482
+
483
+ function byTriggerPoint(a, b) {
484
+ return a.triggerPoint - b.triggerPoint
485
+ }
486
+
487
+ function byReverseTriggerPoint(a, b) {
488
+ return b.triggerPoint - a.triggerPoint
489
+ }
490
+
491
+ var groups = {
492
+ vertical: {},
493
+ horizontal: {}
494
+ }
495
+ var Waypoint = window.Waypoint
496
+
497
+ /* http://imakewebthings.com/waypoints/api/group */
498
+ function Group(options) {
499
+ this.name = options.name
500
+ this.axis = options.axis
501
+ this.id = this.name + '-' + this.axis
502
+ this.waypoints = []
503
+ this.clearTriggerQueues()
504
+ groups[this.axis][this.name] = this
505
+ }
506
+
507
+ /* Private */
508
+ Group.prototype.add = function(waypoint) {
509
+ this.waypoints.push(waypoint)
510
+ }
511
+
512
+ /* Private */
513
+ Group.prototype.clearTriggerQueues = function() {
514
+ this.triggerQueues = {
515
+ up: [],
516
+ down: [],
517
+ left: [],
518
+ right: []
519
+ }
520
+ }
521
+
522
+ /* Private */
523
+ Group.prototype.flushTriggers = function() {
524
+ for (var direction in this.triggerQueues) {
525
+ var waypoints = this.triggerQueues[direction]
526
+ var reverse = direction === 'up' || direction === 'left'
527
+ waypoints.sort(reverse ? byReverseTriggerPoint : byTriggerPoint)
528
+ for (var i = 0, end = waypoints.length; i < end; i += 1) {
529
+ var waypoint = waypoints[i]
530
+ if (waypoint.options.continuous || i === waypoints.length - 1) {
531
+ waypoint.trigger([direction])
532
+ }
533
+ }
534
+ }
535
+ this.clearTriggerQueues()
536
+ }
537
+
538
+ /* Private */
539
+ Group.prototype.next = function(waypoint) {
540
+ this.waypoints.sort(byTriggerPoint)
541
+ var index = Waypoint.Adapter.inArray(waypoint, this.waypoints)
542
+ var isLast = index === this.waypoints.length - 1
543
+ return isLast ? null : this.waypoints[index + 1]
544
+ }
545
+
546
+ /* Private */
547
+ Group.prototype.previous = function(waypoint) {
548
+ this.waypoints.sort(byTriggerPoint)
549
+ var index = Waypoint.Adapter.inArray(waypoint, this.waypoints)
550
+ return index ? this.waypoints[index - 1] : null
551
+ }
552
+
553
+ /* Private */
554
+ Group.prototype.queueTrigger = function(waypoint, direction) {
555
+ this.triggerQueues[direction].push(waypoint)
556
+ }
557
+
558
+ /* Private */
559
+ Group.prototype.remove = function(waypoint) {
560
+ var index = Waypoint.Adapter.inArray(waypoint, this.waypoints)
561
+ if (index > -1) {
562
+ this.waypoints.splice(index, 1)
563
+ }
564
+ }
565
+
566
+ /* Public */
567
+ /* http://imakewebthings.com/waypoints/api/first */
568
+ Group.prototype.first = function() {
569
+ return this.waypoints[0]
570
+ }
571
+
572
+ /* Public */
573
+ /* http://imakewebthings.com/waypoints/api/last */
574
+ Group.prototype.last = function() {
575
+ return this.waypoints[this.waypoints.length - 1]
576
+ }
577
+
578
+ /* Private */
579
+ Group.findOrCreate = function(options) {
580
+ return groups[options.axis][options.name] || new Group(options)
581
+ }
582
+
583
+ Waypoint.Group = Group
584
+ }())
585
+ ;(function() {
586
+ 'use strict'
587
+
588
+ var $ = window.Zepto
589
+ var Waypoint = window.Waypoint
590
+
591
+ function ZeptoAdapter(element) {
592
+ this.element = element
593
+ this.$element = $(element)
594
+ }
595
+
596
+ $.each([
597
+ 'off',
598
+ 'on',
599
+ 'scrollLeft',
600
+ 'scrollTop'
601
+ ], function(i, method) {
602
+ ZeptoAdapter.prototype[method] = function() {
603
+ var args = Array.prototype.slice.call(arguments)
604
+ return this.$element[method].apply(this.$element, args)
605
+ }
606
+ })
607
+
608
+ ZeptoAdapter.prototype.offset = function() {
609
+ if (this.element !== this.element.window) {
610
+ return this.$element.offset()
611
+ }
612
+ }
613
+
614
+ // Adapted from https://gist.github.com/wheresrhys/5823198
615
+ $.each([
616
+ 'width',
617
+ 'height'
618
+ ], function(i, dimension) {
619
+ function createDimensionMethod($element, includeBorder) {
620
+ return function(includeMargin) {
621
+ var $element = this.$element
622
+ var size = $element[dimension]()
623
+ var sides = {
624
+ width: ['left', 'right'],
625
+ height: ['top', 'bottom']
626
+ }
627
+
628
+ $.each(sides[dimension], function(i, side) {
629
+ size += parseInt($element.css('padding-' + side), 10)
630
+ if (includeBorder) {
631
+ size += parseInt($element.css('border-' + side + '-width'), 10)
632
+ }
633
+ if (includeMargin) {
634
+ size += parseInt($element.css('margin-' + side), 10)
635
+ }
636
+ })
637
+ return size
638
+ }
639
+ }
640
+
641
+ var innerMethod = $.camelCase('inner-' + dimension)
642
+ var outerMethod = $.camelCase('outer-' + dimension)
643
+
644
+ ZeptoAdapter.prototype[innerMethod] = createDimensionMethod(false)
645
+ ZeptoAdapter.prototype[outerMethod] = createDimensionMethod(true)
646
+ })
647
+
648
+ $.each([
649
+ 'extend',
650
+ 'inArray'
651
+ ], function(i, method) {
652
+ ZeptoAdapter[method] = $[method]
653
+ })
654
+
655
+ ZeptoAdapter.isEmptyObject = function(obj) {
656
+ /* eslint no-unused-vars: 0 */
657
+ for (var name in obj) {
658
+ return false
659
+ }
660
+ return true
661
+ }
662
+
663
+ Waypoint.adapters.push({
664
+ name: 'zepto',
665
+ Adapter: ZeptoAdapter
666
+ })
667
+ Waypoint.Adapter = ZeptoAdapter
668
+ }())
669
+ ;(function() {
670
+ 'use strict'
671
+
672
+ var Waypoint = window.Waypoint
673
+
674
+ function createExtension(framework) {
675
+ return function() {
676
+ var waypoints = []
677
+ var overrides = arguments[0]
678
+
679
+ if (framework.isFunction(arguments[0])) {
680
+ overrides = framework.extend({}, arguments[1])
681
+ overrides.handler = arguments[0]
682
+ }
683
+
684
+ this.each(function() {
685
+ var options = framework.extend({}, overrides, {
686
+ element: this
687
+ })
688
+ if (typeof options.context === 'string') {
689
+ options.context = framework(this).closest(options.context)[0]
690
+ }
691
+ waypoints.push(new Waypoint(options))
692
+ })
693
+
694
+ return waypoints
695
+ }
696
+ }
697
+
698
+ if (window.jQuery) {
699
+ window.jQuery.fn.waypoint = createExtension(window.jQuery)
700
+ }
701
+ if (window.Zepto) {
702
+ window.Zepto.fn.waypoint = createExtension(window.Zepto)
703
+ }
704
+ }())
705
+ ;