{"version":3,"file":"jquery.inview-9927eb4d.js","sources":["../../../node_modules/jquery-inview/jquery.inview.js"],"sourcesContent":["/**\n * author Christopher Blum\n *    - based on the idea of Remy Sharp, http://remysharp.com/2009/01/26/element-in-view-event-plugin/\n *    - forked from http://github.com/zuk/jquery.inview/\n */\n(function (factory) {\n  if (typeof define == 'function' && define.amd) {\n    // AMD\n    define(['jquery'], factory);\n  } else if (typeof exports === 'object') {\n    // Node, CommonJS\n    module.exports = factory(require('jquery'));\n  } else {\n      // Browser globals\n    factory(jQuery);\n  }\n}(function ($) {\n\n  var inviewObjects = [], viewportSize, viewportOffset,\n      d = document, w = window, documentElement = d.documentElement, timer;\n\n  $.event.special.inview = {\n    add: function(data) {\n      inviewObjects.push({ data: data, $element: $(this), element: this });\n      // Use setInterval in order to also make sure this captures elements within\n      // \"overflow:scroll\" elements or elements that appeared in the dom tree due to\n      // dom manipulation and reflow\n      // old: $(window).scroll(checkInView);\n      //\n      // By the way, iOS (iPad, iPhone, ...) seems to not execute, or at least delays\n      // intervals while the user scrolls. Therefore the inview event might fire a bit late there\n      //\n      // Don't waste cycles with an interval until we get at least one element that\n      // has bound to the inview event.\n      if (!timer && inviewObjects.length) {\n         timer = setInterval(checkInView, 250);\n      }\n    },\n\n    remove: function(data) {\n      for (var i=0; i<inviewObjects.length; i++) {\n        var inviewObject = inviewObjects[i];\n        if (inviewObject.element === this && inviewObject.data.guid === data.guid) {\n          inviewObjects.splice(i, 1);\n          break;\n        }\n      }\n\n      // Clear interval when we no longer have any elements listening\n      if (!inviewObjects.length) {\n         clearInterval(timer);\n         timer = null;\n      }\n    }\n  };\n\n  function getViewportSize() {\n    var mode, domObject, size = { height: w.innerHeight, width: w.innerWidth };\n\n    // if this is correct then return it. iPad has compat Mode, so will\n    // go into check clientHeight/clientWidth (which has the wrong value).\n    if (!size.height) {\n      mode = d.compatMode;\n      if (mode || !$.support.boxModel) { // IE, Gecko\n        domObject = mode === 'CSS1Compat' ?\n          documentElement : // Standards\n          d.body; // Quirks\n        size = {\n          height: domObject.clientHeight,\n          width:  domObject.clientWidth\n        };\n      }\n    }\n\n    return size;\n  }\n\n  function getViewportOffset() {\n    return {\n      top:  w.pageYOffset || documentElement.scrollTop   || d.body.scrollTop,\n      left: w.pageXOffset || documentElement.scrollLeft  || d.body.scrollLeft\n    };\n  }\n\n  function checkInView() {\n    if (!inviewObjects.length) {\n      return;\n    }\n\n    var i = 0, $elements = $.map(inviewObjects, function(inviewObject) {\n      var selector  = inviewObject.data.selector,\n          $element  = inviewObject.$element;\n      return selector ? $element.find(selector) : $element;\n    });\n\n    viewportSize   = viewportSize   || getViewportSize();\n    viewportOffset = viewportOffset || getViewportOffset();\n\n    for (; i<inviewObjects.length; i++) {\n      // Ignore elements that are not in the DOM tree\n      if (!$.contains(documentElement, $elements[i][0])) {\n        continue;\n      }\n\n      var $element      = $($elements[i]),\n          elementSize   = { height: $element[0].offsetHeight, width: $element[0].offsetWidth },\n          elementOffset = $element.offset(),\n          inView        = $element.data('inview');\n\n      // Don't ask me why because I haven't figured out yet:\n      // viewportOffset and viewportSize are sometimes suddenly null in Firefox 5.\n      // Even though it sounds weird:\n      // It seems that the execution of this function is interferred by the onresize/onscroll event\n      // where viewportOffset and viewportSize are unset\n      if (!viewportOffset || !viewportSize) {\n        return;\n      }\n\n      if (elementOffset.top + elementSize.height > viewportOffset.top &&\n          elementOffset.top < viewportOffset.top + viewportSize.height &&\n          elementOffset.left + elementSize.width > viewportOffset.left &&\n          elementOffset.left < viewportOffset.left + viewportSize.width) {\n        if (!inView) {\n          $element.data('inview', true).trigger('inview', [true]);\n        }\n      } else if (inView) {\n        $element.data('inview', false).trigger('inview', [false]);\n      }\n    }\n  }\n\n  $(w).bind(\"scroll resize scrollstop\", function() {\n    viewportSize = viewportOffset = null;\n  });\n\n  // IE < 9 scrolls to focused elements without firing the \"scroll\" event\n  if (!documentElement.addEventListener && documentElement.attachEvent) {\n    documentElement.attachEvent(\"onfocusin\", function() {\n      viewportOffset = null;\n    });\n  }\n}));\n"],"names":["factory","module","require$$0","$","inviewObjects","viewportSize","viewportOffset","d","w","documentElement","timer","data","checkInView","inviewObject","getViewportSize","mode","domObject","size","getViewportOffset","i","$elements","selector","$element","elementSize","elementOffset","inView"],"mappings":"mYAKC,SAAUA,EAAS,CAMhBC,EAAiB,QAAAD,EAAQE,CAAiB,CAK7C,GAAC,SAAUC,EAAG,CAEb,IAAIC,EAAgB,GAAIC,EAAcC,EAClCC,EAAI,SAAUC,EAAI,OAAQC,EAAkBF,EAAE,gBAAiBG,EAEnEP,EAAE,MAAM,QAAQ,OAAS,CACvB,IAAK,SAASQ,EAAM,CAClBP,EAAc,KAAK,CAAE,KAAMO,EAAM,SAAUR,EAAE,IAAI,EAAG,QAAS,IAAM,CAAA,EAW/D,CAACO,GAASN,EAAc,SACzBM,EAAQ,YAAYE,EAAa,GAAG,EAExC,EAED,OAAQ,SAASD,EAAM,CACrB,QAAS,EAAE,EAAG,EAAEP,EAAc,OAAQ,IAAK,CACzC,IAAIS,EAAeT,EAAc,CAAC,EAClC,GAAIS,EAAa,UAAY,MAAQA,EAAa,KAAK,OAASF,EAAK,KAAM,CACzEP,EAAc,OAAO,EAAG,CAAC,EACzB,KACD,CACF,CAGIA,EAAc,SAChB,cAAcM,CAAK,EACnBA,EAAQ,KAEZ,CACL,EAEE,SAASI,GAAkB,CACzB,IAAIC,EAAMC,EAAWC,EAAO,CAAE,OAAQT,EAAE,YAAa,MAAOA,EAAE,YAI9D,OAAKS,EAAK,SACRF,EAAOR,EAAE,YACLQ,GAAQ,CAACZ,EAAE,QAAQ,YACrBa,EAAYD,IAAS,aACnBN,EACAF,EAAE,KACJU,EAAO,CACL,OAAQD,EAAU,aAClB,MAAQA,EAAU,WAC5B,IAIWC,CACR,CAED,SAASC,GAAoB,CAC3B,MAAO,CACL,IAAMV,EAAE,aAAeC,EAAgB,WAAeF,EAAE,KAAK,UAC7D,KAAMC,EAAE,aAAeC,EAAgB,YAAeF,EAAE,KAAK,UACnE,CACG,CAED,SAASK,GAAc,CACrB,GAAKR,EAAc,OAInB,KAAIe,EAAI,EAAGC,EAAYjB,EAAE,IAAIC,EAAe,SAASS,EAAc,CACjE,IAAIQ,EAAYR,EAAa,KAAK,SAC9BS,EAAYT,EAAa,SAC7B,OAAOQ,EAAWC,EAAS,KAAKD,CAAQ,EAAIC,CAClD,CAAK,EAKD,IAHAjB,EAAiBA,GAAkBS,IACnCR,EAAiBA,GAAkBY,IAE5BC,EAAEf,EAAc,OAAQe,IAE7B,GAAKhB,EAAE,SAASM,EAAiBW,EAAUD,CAAC,EAAE,CAAC,CAAC,EAIhD,KAAIG,EAAgBnB,EAAEiB,EAAUD,CAAC,CAAC,EAC9BI,EAAgB,CAAE,OAAQD,EAAS,CAAC,EAAE,aAAc,MAAOA,EAAS,CAAC,EAAE,WAAa,EACpFE,EAAgBF,EAAS,OAAQ,EACjCG,EAAgBH,EAAS,KAAK,QAAQ,EAO1C,GAAI,CAAChB,GAAkB,CAACD,EACtB,OAGEmB,EAAc,IAAMD,EAAY,OAASjB,EAAe,KACxDkB,EAAc,IAAMlB,EAAe,IAAMD,EAAa,QACtDmB,EAAc,KAAOD,EAAY,MAAQjB,EAAe,MACxDkB,EAAc,KAAOlB,EAAe,KAAOD,EAAa,MACrDoB,GACHH,EAAS,KAAK,SAAU,EAAI,EAAE,QAAQ,SAAU,CAAC,EAAI,CAAC,EAE/CG,GACTH,EAAS,KAAK,SAAU,EAAK,EAAE,QAAQ,SAAU,CAAC,EAAK,CAAC,GAG7D,CAEDnB,EAAEK,CAAC,EAAE,KAAK,2BAA4B,UAAW,CAC/CH,EAAeC,EAAiB,IACpC,CAAG,EAGG,CAACG,EAAgB,kBAAoBA,EAAgB,aACvDA,EAAgB,YAAY,YAAa,UAAW,CAClDH,EAAiB,IACvB,CAAK,CAEL,CAAC","x_google_ignoreList":[0]}