imagesloaded
Advanced tools
Comparing version 4.1.3 to 4.1.4
@@ -10,3 +10,3 @@ { | ||
"jquery": ">=1.9 <4.0", | ||
"qunit": "~1.20.0" | ||
"qunit": "^2.0.0" | ||
}, | ||
@@ -22,2 +22,3 @@ "ignore": [ | ||
"sandbox/", | ||
"gulpfile.js", | ||
"contributing.md" | ||
@@ -24,0 +25,0 @@ ], |
@@ -46,44 +46,5 @@ /*jshint node: true, strict: false */ | ||
var gutil = require('gulp-util'); | ||
var through = require('through2'); | ||
var requirejs = require('requirejs'); | ||
var chalk = require('chalk'); | ||
var rjsOptimize = require('gulp-requirejs-optimize'); | ||
function rjsOptimize( options ) { | ||
options = options || {}; | ||
requirejs.define('node/print', [], function() { | ||
return function(msg) { | ||
if( msg.substring(0, 5) === 'Error' ) { | ||
gutil.log( chalk.red( msg ) ); | ||
} else { | ||
gutil.log( msg ); | ||
} | ||
}; | ||
}); | ||
var stream = through.obj(function (file, enc, cb) { | ||
if ( file.isNull() ) { | ||
return cb( null, file ); | ||
} | ||
options.logLevel = 2; | ||
options.out = function( text ) { | ||
var outFile = new gutil.File({ | ||
path: file.relative, | ||
contents: new Buffer( text ) | ||
}); | ||
cb( null, outFile ); | ||
}; | ||
gutil.log('RequireJS optimizing'); | ||
requirejs.optimize( options, null, function( err ) { | ||
var gulpError = new gutil.PluginError( 'requirejsOptimize', err.message ); | ||
stream.emit( 'error', gulpError ); | ||
}); | ||
}); | ||
return stream; | ||
} | ||
// regex for banner comment | ||
@@ -90,0 +51,0 @@ var reBannerComment = new RegExp('^\\s*(?:\\/\\*[\\s\\S]*?\\*\\/)\\s*'); |
/*! | ||
* imagesLoaded v4.1.3 | ||
* imagesLoaded v4.1.4 | ||
* JavaScript is all like "You images are done yet or what?" | ||
@@ -54,18 +54,19 @@ * MIT License | ||
var arraySlice = Array.prototype.slice; | ||
// turn element or nodeList into an array | ||
function makeArray( obj ) { | ||
var ary = []; | ||
if ( Array.isArray( obj ) ) { | ||
// use object if already an array | ||
ary = obj; | ||
} else if ( typeof obj.length == 'number' ) { | ||
return obj; | ||
} | ||
var isArrayLike = typeof obj == 'object' && typeof obj.length == 'number'; | ||
if ( isArrayLike ) { | ||
// convert nodeList to array | ||
for ( var i=0; i < obj.length; i++ ) { | ||
ary.push( obj[i] ); | ||
} | ||
} else { | ||
// array of single index | ||
ary.push( obj ); | ||
return arraySlice.call( obj ); | ||
} | ||
return ary; | ||
// array of single index | ||
return [ obj ]; | ||
} | ||
@@ -86,9 +87,15 @@ | ||
// use elem as selector string | ||
var queryElem = elem; | ||
if ( typeof elem == 'string' ) { | ||
elem = document.querySelectorAll( elem ); | ||
queryElem = document.querySelectorAll( elem ); | ||
} | ||
// bail if bad element | ||
if ( !queryElem ) { | ||
console.error( 'Bad element for imagesLoaded ' + ( queryElem || elem ) ); | ||
return; | ||
} | ||
this.elements = makeArray( elem ); | ||
this.elements = makeArray( queryElem ); | ||
this.options = extend( {}, this.options ); | ||
// shift arguments if no options set | ||
if ( typeof options == 'function' ) { | ||
@@ -112,5 +119,3 @@ onAlways = options; | ||
// HACK check async to allow time to bind listeners | ||
setTimeout( function() { | ||
this.check(); | ||
}.bind( this )); | ||
setTimeout( this.check.bind( this ) ); | ||
} | ||
@@ -283,3 +288,5 @@ | ||
LoadingImage.prototype.getIsImageComplete = function() { | ||
return this.img.complete && this.img.naturalWidth !== undefined; | ||
// check for non-zero, non-undefined naturalWidth | ||
// fixes Safari+InfiniteScroll+Masonry bug infinite-scroll#671 | ||
return this.img.complete && this.img.naturalWidth; | ||
}; | ||
@@ -286,0 +293,0 @@ |
/*! | ||
* imagesLoaded PACKAGED v4.1.3 | ||
* imagesLoaded PACKAGED v4.1.4 | ||
* JavaScript is all like "You images are done yet or what?" | ||
@@ -88,4 +88,4 @@ * MIT License | ||
} | ||
var i = 0; | ||
var listener = listeners[i]; | ||
// copy over to avoid interference if .off() in listener | ||
listeners = listeners.slice(0); | ||
args = args || []; | ||
@@ -95,3 +95,4 @@ // once stuff | ||
while ( listener ) { | ||
for ( var i=0; i < listeners.length; i++ ) { | ||
var listener = listeners[i] | ||
var isOnce = onceListeners && onceListeners[ listener ]; | ||
@@ -107,5 +108,2 @@ if ( isOnce ) { | ||
listener.apply( this, args ); | ||
// get next listener | ||
i += isOnce ? 0 : 1; | ||
listener = listeners[i]; | ||
} | ||
@@ -116,4 +114,3 @@ | ||
proto.allOff = | ||
proto.removeAllListeners = function() { | ||
proto.allOff = function() { | ||
delete this._events; | ||
@@ -128,3 +125,3 @@ delete this._onceEvents; | ||
/*! | ||
* imagesLoaded v4.1.3 | ||
* imagesLoaded v4.1.4 | ||
* JavaScript is all like "You images are done yet or what?" | ||
@@ -181,18 +178,19 @@ * MIT License | ||
var arraySlice = Array.prototype.slice; | ||
// turn element or nodeList into an array | ||
function makeArray( obj ) { | ||
var ary = []; | ||
if ( Array.isArray( obj ) ) { | ||
// use object if already an array | ||
ary = obj; | ||
} else if ( typeof obj.length == 'number' ) { | ||
return obj; | ||
} | ||
var isArrayLike = typeof obj == 'object' && typeof obj.length == 'number'; | ||
if ( isArrayLike ) { | ||
// convert nodeList to array | ||
for ( var i=0; i < obj.length; i++ ) { | ||
ary.push( obj[i] ); | ||
} | ||
} else { | ||
// array of single index | ||
ary.push( obj ); | ||
return arraySlice.call( obj ); | ||
} | ||
return ary; | ||
// array of single index | ||
return [ obj ]; | ||
} | ||
@@ -213,9 +211,15 @@ | ||
// use elem as selector string | ||
var queryElem = elem; | ||
if ( typeof elem == 'string' ) { | ||
elem = document.querySelectorAll( elem ); | ||
queryElem = document.querySelectorAll( elem ); | ||
} | ||
// bail if bad element | ||
if ( !queryElem ) { | ||
console.error( 'Bad element for imagesLoaded ' + ( queryElem || elem ) ); | ||
return; | ||
} | ||
this.elements = makeArray( elem ); | ||
this.elements = makeArray( queryElem ); | ||
this.options = extend( {}, this.options ); | ||
// shift arguments if no options set | ||
if ( typeof options == 'function' ) { | ||
@@ -239,5 +243,3 @@ onAlways = options; | ||
// HACK check async to allow time to bind listeners | ||
setTimeout( function() { | ||
this.check(); | ||
}.bind( this )); | ||
setTimeout( this.check.bind( this ) ); | ||
} | ||
@@ -410,3 +412,5 @@ | ||
LoadingImage.prototype.getIsImageComplete = function() { | ||
return this.img.complete && this.img.naturalWidth !== undefined; | ||
// check for non-zero, non-undefined naturalWidth | ||
// fixes Safari+InfiniteScroll+Masonry bug infinite-scroll#671 | ||
return this.img.complete && this.img.naturalWidth; | ||
}; | ||
@@ -413,0 +417,0 @@ |
/*! | ||
* imagesLoaded PACKAGED v4.1.3 | ||
* imagesLoaded PACKAGED v4.1.4 | ||
* JavaScript is all like "You images are done yet or what?" | ||
@@ -7,2 +7,2 @@ * MIT License | ||
!function(e,t){"function"==typeof define&&define.amd?define("ev-emitter/ev-emitter",t):"object"==typeof module&&module.exports?module.exports=t():e.EvEmitter=t()}("undefined"!=typeof window?window:this,function(){function e(){}var t=e.prototype;return t.on=function(e,t){if(e&&t){var i=this._events=this._events||{},n=i[e]=i[e]||[];return-1==n.indexOf(t)&&n.push(t),this}},t.once=function(e,t){if(e&&t){this.on(e,t);var i=this._onceEvents=this._onceEvents||{},n=i[e]=i[e]||{};return n[t]=!0,this}},t.off=function(e,t){var i=this._events&&this._events[e];if(i&&i.length){var n=i.indexOf(t);return-1!=n&&i.splice(n,1),this}},t.emitEvent=function(e,t){var i=this._events&&this._events[e];if(i&&i.length){var n=0,o=i[n];t=t||[];for(var r=this._onceEvents&&this._onceEvents[e];o;){var s=r&&r[o];s&&(this.off(e,o),delete r[o]),o.apply(this,t),n+=s?0:1,o=i[n]}return this}},t.allOff=t.removeAllListeners=function(){delete this._events,delete this._onceEvents},e}),function(e,t){"use strict";"function"==typeof define&&define.amd?define(["ev-emitter/ev-emitter"],function(i){return t(e,i)}):"object"==typeof module&&module.exports?module.exports=t(e,require("ev-emitter")):e.imagesLoaded=t(e,e.EvEmitter)}("undefined"!=typeof window?window:this,function(e,t){function i(e,t){for(var i in t)e[i]=t[i];return e}function n(e){var t=[];if(Array.isArray(e))t=e;else if("number"==typeof e.length)for(var i=0;i<e.length;i++)t.push(e[i]);else t.push(e);return t}function o(e,t,r){return this instanceof o?("string"==typeof e&&(e=document.querySelectorAll(e)),this.elements=n(e),this.options=i({},this.options),"function"==typeof t?r=t:i(this.options,t),r&&this.on("always",r),this.getImages(),h&&(this.jqDeferred=new h.Deferred),void setTimeout(function(){this.check()}.bind(this))):new o(e,t,r)}function r(e){this.img=e}function s(e,t){this.url=e,this.element=t,this.img=new Image}var h=e.jQuery,a=e.console;o.prototype=Object.create(t.prototype),o.prototype.options={},o.prototype.getImages=function(){this.images=[],this.elements.forEach(this.addElementImages,this)},o.prototype.addElementImages=function(e){"IMG"==e.nodeName&&this.addImage(e),this.options.background===!0&&this.addElementBackgroundImages(e);var t=e.nodeType;if(t&&d[t]){for(var i=e.querySelectorAll("img"),n=0;n<i.length;n++){var o=i[n];this.addImage(o)}if("string"==typeof this.options.background){var r=e.querySelectorAll(this.options.background);for(n=0;n<r.length;n++){var s=r[n];this.addElementBackgroundImages(s)}}}};var d={1:!0,9:!0,11:!0};return o.prototype.addElementBackgroundImages=function(e){var t=getComputedStyle(e);if(t)for(var i=/url\((['"])?(.*?)\1\)/gi,n=i.exec(t.backgroundImage);null!==n;){var o=n&&n[2];o&&this.addBackground(o,e),n=i.exec(t.backgroundImage)}},o.prototype.addImage=function(e){var t=new r(e);this.images.push(t)},o.prototype.addBackground=function(e,t){var i=new s(e,t);this.images.push(i)},o.prototype.check=function(){function e(e,i,n){setTimeout(function(){t.progress(e,i,n)})}var t=this;return this.progressedCount=0,this.hasAnyBroken=!1,this.images.length?void this.images.forEach(function(t){t.once("progress",e),t.check()}):void this.complete()},o.prototype.progress=function(e,t,i){this.progressedCount++,this.hasAnyBroken=this.hasAnyBroken||!e.isLoaded,this.emitEvent("progress",[this,e,t]),this.jqDeferred&&this.jqDeferred.notify&&this.jqDeferred.notify(this,e),this.progressedCount==this.images.length&&this.complete(),this.options.debug&&a&&a.log("progress: "+i,e,t)},o.prototype.complete=function(){var e=this.hasAnyBroken?"fail":"done";if(this.isComplete=!0,this.emitEvent(e,[this]),this.emitEvent("always",[this]),this.jqDeferred){var t=this.hasAnyBroken?"reject":"resolve";this.jqDeferred[t](this)}},r.prototype=Object.create(t.prototype),r.prototype.check=function(){var e=this.getIsImageComplete();return e?void this.confirm(0!==this.img.naturalWidth,"naturalWidth"):(this.proxyImage=new Image,this.proxyImage.addEventListener("load",this),this.proxyImage.addEventListener("error",this),this.img.addEventListener("load",this),this.img.addEventListener("error",this),void(this.proxyImage.src=this.img.src))},r.prototype.getIsImageComplete=function(){return this.img.complete&&void 0!==this.img.naturalWidth},r.prototype.confirm=function(e,t){this.isLoaded=e,this.emitEvent("progress",[this,this.img,t])},r.prototype.handleEvent=function(e){var t="on"+e.type;this[t]&&this[t](e)},r.prototype.onload=function(){this.confirm(!0,"onload"),this.unbindEvents()},r.prototype.onerror=function(){this.confirm(!1,"onerror"),this.unbindEvents()},r.prototype.unbindEvents=function(){this.proxyImage.removeEventListener("load",this),this.proxyImage.removeEventListener("error",this),this.img.removeEventListener("load",this),this.img.removeEventListener("error",this)},s.prototype=Object.create(r.prototype),s.prototype.check=function(){this.img.addEventListener("load",this),this.img.addEventListener("error",this),this.img.src=this.url;var e=this.getIsImageComplete();e&&(this.confirm(0!==this.img.naturalWidth,"naturalWidth"),this.unbindEvents())},s.prototype.unbindEvents=function(){this.img.removeEventListener("load",this),this.img.removeEventListener("error",this)},s.prototype.confirm=function(e,t){this.isLoaded=e,this.emitEvent("progress",[this,this.element,t])},o.makeJQueryPlugin=function(t){t=t||e.jQuery,t&&(h=t,h.fn.imagesLoaded=function(e,t){var i=new o(this,e,t);return i.jqDeferred.promise(h(this))})},o.makeJQueryPlugin(),o}); | ||
!function(e,t){"function"==typeof define&&define.amd?define("ev-emitter/ev-emitter",t):"object"==typeof module&&module.exports?module.exports=t():e.EvEmitter=t()}("undefined"!=typeof window?window:this,function(){function e(){}var t=e.prototype;return t.on=function(e,t){if(e&&t){var i=this._events=this._events||{},n=i[e]=i[e]||[];return n.indexOf(t)==-1&&n.push(t),this}},t.once=function(e,t){if(e&&t){this.on(e,t);var i=this._onceEvents=this._onceEvents||{},n=i[e]=i[e]||{};return n[t]=!0,this}},t.off=function(e,t){var i=this._events&&this._events[e];if(i&&i.length){var n=i.indexOf(t);return n!=-1&&i.splice(n,1),this}},t.emitEvent=function(e,t){var i=this._events&&this._events[e];if(i&&i.length){i=i.slice(0),t=t||[];for(var n=this._onceEvents&&this._onceEvents[e],o=0;o<i.length;o++){var r=i[o],s=n&&n[r];s&&(this.off(e,r),delete n[r]),r.apply(this,t)}return this}},t.allOff=function(){delete this._events,delete this._onceEvents},e}),function(e,t){"use strict";"function"==typeof define&&define.amd?define(["ev-emitter/ev-emitter"],function(i){return t(e,i)}):"object"==typeof module&&module.exports?module.exports=t(e,require("ev-emitter")):e.imagesLoaded=t(e,e.EvEmitter)}("undefined"!=typeof window?window:this,function(e,t){function i(e,t){for(var i in t)e[i]=t[i];return e}function n(e){if(Array.isArray(e))return e;var t="object"==typeof e&&"number"==typeof e.length;return t?d.call(e):[e]}function o(e,t,r){if(!(this instanceof o))return new o(e,t,r);var s=e;return"string"==typeof e&&(s=document.querySelectorAll(e)),s?(this.elements=n(s),this.options=i({},this.options),"function"==typeof t?r=t:i(this.options,t),r&&this.on("always",r),this.getImages(),h&&(this.jqDeferred=new h.Deferred),void setTimeout(this.check.bind(this))):void a.error("Bad element for imagesLoaded "+(s||e))}function r(e){this.img=e}function s(e,t){this.url=e,this.element=t,this.img=new Image}var h=e.jQuery,a=e.console,d=Array.prototype.slice;o.prototype=Object.create(t.prototype),o.prototype.options={},o.prototype.getImages=function(){this.images=[],this.elements.forEach(this.addElementImages,this)},o.prototype.addElementImages=function(e){"IMG"==e.nodeName&&this.addImage(e),this.options.background===!0&&this.addElementBackgroundImages(e);var t=e.nodeType;if(t&&u[t]){for(var i=e.querySelectorAll("img"),n=0;n<i.length;n++){var o=i[n];this.addImage(o)}if("string"==typeof this.options.background){var r=e.querySelectorAll(this.options.background);for(n=0;n<r.length;n++){var s=r[n];this.addElementBackgroundImages(s)}}}};var u={1:!0,9:!0,11:!0};return o.prototype.addElementBackgroundImages=function(e){var t=getComputedStyle(e);if(t)for(var i=/url\((['"])?(.*?)\1\)/gi,n=i.exec(t.backgroundImage);null!==n;){var o=n&&n[2];o&&this.addBackground(o,e),n=i.exec(t.backgroundImage)}},o.prototype.addImage=function(e){var t=new r(e);this.images.push(t)},o.prototype.addBackground=function(e,t){var i=new s(e,t);this.images.push(i)},o.prototype.check=function(){function e(e,i,n){setTimeout(function(){t.progress(e,i,n)})}var t=this;return this.progressedCount=0,this.hasAnyBroken=!1,this.images.length?void this.images.forEach(function(t){t.once("progress",e),t.check()}):void this.complete()},o.prototype.progress=function(e,t,i){this.progressedCount++,this.hasAnyBroken=this.hasAnyBroken||!e.isLoaded,this.emitEvent("progress",[this,e,t]),this.jqDeferred&&this.jqDeferred.notify&&this.jqDeferred.notify(this,e),this.progressedCount==this.images.length&&this.complete(),this.options.debug&&a&&a.log("progress: "+i,e,t)},o.prototype.complete=function(){var e=this.hasAnyBroken?"fail":"done";if(this.isComplete=!0,this.emitEvent(e,[this]),this.emitEvent("always",[this]),this.jqDeferred){var t=this.hasAnyBroken?"reject":"resolve";this.jqDeferred[t](this)}},r.prototype=Object.create(t.prototype),r.prototype.check=function(){var e=this.getIsImageComplete();return e?void this.confirm(0!==this.img.naturalWidth,"naturalWidth"):(this.proxyImage=new Image,this.proxyImage.addEventListener("load",this),this.proxyImage.addEventListener("error",this),this.img.addEventListener("load",this),this.img.addEventListener("error",this),void(this.proxyImage.src=this.img.src))},r.prototype.getIsImageComplete=function(){return this.img.complete&&this.img.naturalWidth},r.prototype.confirm=function(e,t){this.isLoaded=e,this.emitEvent("progress",[this,this.img,t])},r.prototype.handleEvent=function(e){var t="on"+e.type;this[t]&&this[t](e)},r.prototype.onload=function(){this.confirm(!0,"onload"),this.unbindEvents()},r.prototype.onerror=function(){this.confirm(!1,"onerror"),this.unbindEvents()},r.prototype.unbindEvents=function(){this.proxyImage.removeEventListener("load",this),this.proxyImage.removeEventListener("error",this),this.img.removeEventListener("load",this),this.img.removeEventListener("error",this)},s.prototype=Object.create(r.prototype),s.prototype.check=function(){this.img.addEventListener("load",this),this.img.addEventListener("error",this),this.img.src=this.url;var e=this.getIsImageComplete();e&&(this.confirm(0!==this.img.naturalWidth,"naturalWidth"),this.unbindEvents())},s.prototype.unbindEvents=function(){this.img.removeEventListener("load",this),this.img.removeEventListener("error",this)},s.prototype.confirm=function(e,t){this.isLoaded=e,this.emitEvent("progress",[this,this.element,t])},o.makeJQueryPlugin=function(t){t=t||e.jQuery,t&&(h=t,h.fn.imagesLoaded=function(e,t){var i=new o(this,e,t);return i.jqDeferred.promise(h(this))})},o.makeJQueryPlugin(),o}); |
{ | ||
"name": "imagesloaded", | ||
"version": "4.1.3", | ||
"version": "4.1.4", | ||
"description": "JavaScript is all like _You images done yet or what?_", | ||
@@ -17,2 +17,3 @@ "main": "imagesloaded.js", | ||
"gulp-replace": "^0.5.4", | ||
"gulp-requirejs-optimize": "github:metafizzy/gulp-requirejs-optimize", | ||
"gulp-uglify": "^1.4.2", | ||
@@ -23,4 +24,3 @@ "gulp-util": "^3.0.7", | ||
"minimist": "^1.2.0", | ||
"requirejs": "^2.1.20", | ||
"through2": "^2.0.0" | ||
"transfob": "^1.0.0" | ||
}, | ||
@@ -27,0 +27,0 @@ "repository": { |
@@ -74,4 +74,4 @@ /* jshint strict: false */ | ||
img.src = rando < 100 ? '//foo/broken-' + rando + '.jpg' : | ||
// use lorempixel for great random images | ||
'//lorempixel.com/' + width + '/' + height + '/' + '?' + rando; | ||
// use picsum for great random images | ||
'https://picsum.photos/' + width + '/' + height + '/' + '?random'; | ||
item.appendChild( img ); | ||
@@ -78,0 +78,0 @@ return item; |
@@ -7,3 +7,3 @@ QUnit.test( 'dismiss non-element nodes', function( assert ) { | ||
$(' <img src="http://lorempixel.com/401/301/" /> <img src="http://lorempixel.com/402/302/" /> ') | ||
$(' <img src="https://picsum.photos/401/301/?random" /> <img src="https://picsum.photos/402/302/?random" /> ') | ||
.imagesLoaded(function() { | ||
@@ -17,3 +17,3 @@ assert.ok( true, 'elements from jQuery string ok' ); | ||
var img = new Image(); | ||
img.src = 'http://lorempixel.com/403/303/'; | ||
img.src = 'https://picsum.photos/403/303/?random'; | ||
frag.appendChild( img ); | ||
@@ -20,0 +20,0 @@ var imgLoad = imagesLoaded( frag, function() { |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
301775
36
1281