UNPKG

rich-filemanager

Version:

Highly customizable open-source file manager

1 lines 5.33 kB
var _extends=Object.assign||function(a){for(var b=1;b<arguments.length;b++){var c=arguments[b];for(var d in c)Object.prototype.hasOwnProperty.call(c,d)&&(a[d]=c[d])}return a},_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(a){return typeof a}:function(a){return a&&"function"==typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a};!function(a,b){"object"===("undefined"==typeof exports?"undefined":_typeof(exports))&&"undefined"!=typeof module?module.exports=b():"function"==typeof define&&define.amd?define(b):a.LazyLoad=b()}(this,function(){"use strict";function a(a,b,c){window.jQuery?$(a).data(b,c):a.dataset[b]=c}function b(a,b){return window.jQuery?$(a).data(b):a.dataset[b]}function c(a,b){window.jQuery?$(a).removeClass(b):a.classList.remove(b)}function d(a,b){window.jQuery?$(a).addClass(b):a.classList.add(b)}var e={elements_selector:"img",container:window,threshold:300,throttle:150,data_src:"original",data_srcset:"originalSet",class_loading:"loading",class_loaded:"loaded",class_error:"error",class_initial:"initial",skip_invisible:!0,callback_load:null,callback_error:null,callback_set:null,callback_processed:null},f=!("onscroll"in window)||/glebot/.test(navigator.userAgent),g=function(a,b){a&&a(b)},h=function(a){return a.getBoundingClientRect().top+window.pageYOffset-a.ownerDocument.documentElement.clientTop},i=function(a,b,c){var d=b===window?window.innerHeight+window.pageYOffset:h(b)+b.offsetHeight;return d<=h(a)-c},j=function(a){return a.getBoundingClientRect().left+window.pageXOffset-a.ownerDocument.documentElement.clientLeft},k=function(a,b,c){var d=window.innerWidth,e=b===window?d+window.pageXOffset:j(b)+d;return e<=j(a)-c},l=function(a,b,c){var d=b===window?window.pageYOffset:h(b);return d>=h(a)+c+a.offsetHeight},m=function(a,b,c){var d=b===window?window.pageXOffset:j(b);return d>=j(a)+c+a.offsetWidth},n=function(a,b,c){return!(i(a,b,c)||l(a,b,c)||k(a,b,c)||m(a,b,c))},o=function(a,b){var c=new a(b),d=new CustomEvent("LazyLoad::Initialized",{detail:{instance:c}});window.dispatchEvent(d)},p=function(a,b){var c=b.length;if(c)for(var d=0;d<c;d++)o(a,b[d]);else o(a,b)},q=function(a,c){var d=a.parentElement;if("PICTURE"===d.tagName)for(var e=0;e<d.children.length;e++){var f=d.children[e];if("SOURCE"===f.tagName){var g=b(f,c);g&&f.setAttribute("srcset",g)}}},r=function(a,c,d){var e=a.tagName,f=b(a,d);if("IMG"===e){q(a,c);var g=b(a,c);return g&&a.setAttribute("srcset",g),void(f&&a.setAttribute("src",f))}return"IFRAME"===e?void(f&&a.setAttribute("src",f)):void(f&&(a.style.backgroundImage='url("'+f+'")'))},s=function(a){this._settings=_extends({},e,a),this._queryOriginNode=this._settings.container===window?document:this._settings.container,this._previousLoopTime=0,this._loopTimeout=null,this._boundHandleScroll=this.handleScroll.bind(this),this._isFirstLoop=!0,window.addEventListener("resize",this._boundHandleScroll),this.update()};s.prototype={_reveal:function(a){var b=this._settings,e=function h(){b&&(a.removeEventListener("load",f),a.removeEventListener("error",h),c(a,b.class_loading),d(a,b.class_error),g(b.callback_error,a))},f=function i(){b&&(c(a,b.class_loading),d(a,b.class_loaded),a.removeEventListener("load",i),a.removeEventListener("error",e),g(b.callback_load,a))};"IMG"!==a.tagName&&"IFRAME"!==a.tagName||(a.addEventListener("load",f),a.addEventListener("error",e),d(a,b.class_loading)),r(a,b.data_srcset,b.data_src),g(b.callback_set,a)},_loopThroughElements:function(){var b=this._settings,c=this._elements,e=c?c.length:0,h=void 0,i=[],j=this._isFirstLoop;for(h=0;h<e;h++){var k=c[h];b.skip_invisible&&null===k.offsetParent||(f||n(k,b.container,b.threshold))&&(j&&d(k,b.class_initial),this._reveal(k),i.push(h),a(k,"wasProcessed",!0))}for(;i.length;)c.splice(i.pop(),1),g(b.callback_processed,c.length);0===e&&this._stopScrollHandler(),j&&(this._isFirstLoop=!1)},_purgeElements:function(){var a=this._elements,c=a.length,d=void 0,e=[];for(d=0;d<c;d++){var f=a[d];b(f,"wasProcessed")&&e.push(d)}for(;e.length>0;)a.splice(e.pop(),1)},_startScrollHandler:function(){this._isHandlingScroll||(this._isHandlingScroll=!0,this._settings.container.addEventListener("scroll",this._boundHandleScroll))},_stopScrollHandler:function(){this._isHandlingScroll&&(this._isHandlingScroll=!1,this._settings.container.removeEventListener("scroll",this._boundHandleScroll))},handleScroll:function(){var a=this._settings.throttle;if(0!==a){var b=Date.now(),c=a-(b-this._previousLoopTime);c<=0||c>a?(this._loopTimeout&&(clearTimeout(this._loopTimeout),this._loopTimeout=null),this._previousLoopTime=b,this._loopThroughElements()):this._loopTimeout||(this._loopTimeout=setTimeout(function(){this._previousLoopTime=Date.now(),this._loopTimeout=null,this._loopThroughElements()}.bind(this),c))}else this._loopThroughElements()},update:function(){this._elements=Array.prototype.slice.call(this._queryOriginNode.querySelectorAll(this._settings.elements_selector)),this._purgeElements(),this._loopThroughElements(),this._startScrollHandler()},destroy:function(){window.removeEventListener("resize",this._boundHandleScroll),this._loopTimeout&&(clearTimeout(this._loopTimeout),this._loopTimeout=null),this._stopScrollHandler(),this._elements=null,this._queryOriginNode=null,this._settings=null}};var t=window.lazyLoadOptions;return t&&p(s,t),s});