From 0a7659a4b51120c5b1557ba250bab012349d6d2d Mon Sep 17 00:00:00 2001 From: Fisk Date: Thu, 12 Sep 2013 23:28:58 +0300 Subject: [PATCH 01/25] prevent unnecessary array length checking don't need use length method for each iteration. --- jquery.appear.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jquery.appear.js b/jquery.appear.js index ff0b764..e4558fc 100644 --- a/jquery.appear.js +++ b/jquery.appear.js @@ -23,7 +23,7 @@ function process() { check_lock = false; - for (var index = 0; index < selectors.length; index++) { + for (var index = 0, selectorsLength = selectors.length; index < selectorsLength; index++) { var $appeared = $(selectors[index]).filter(function() { return $(this).is(':appeared'); }); From de1f3aa859b807e7c2f59592251de1a1c55861d2 Mon Sep 17 00:00:00 2001 From: Mitsuteru Date: Sat, 14 Sep 2013 12:21:32 +0900 Subject: [PATCH 02/25] Fix typo --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 39f0db7..9e98373 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ This plugin can be used to prevent unnecessary processeing for content that is h It implements a custom *appear*/*disappear* events which are fired when an element became visible/invisible in the browser viewport. - $('someselector').appear(); // It supports optinal hash with "force_process" and "interval" keys. Check source code for details. + $('someselector').appear(); // It supports optional hash with "force_process" and "interval" keys. Check source code for details. $('
test
').appear(); // It also supports raw DOM nodes wrapped in jQuery. From ae35c152a3a776c1172f6b772c8deb81b2232c29 Mon Sep 17 00:00:00 2001 From: MAXakaWIZARD Date: Sun, 23 Nov 2014 23:11:00 +0200 Subject: [PATCH 03/25] add bower.json and package.json --- bower.json | 17 +++++++++++++++++ appear.jquery.json => package.json | 2 +- 2 files changed, 18 insertions(+), 1 deletion(-) create mode 100644 bower.json rename appear.jquery.json => package.json (96%) diff --git a/bower.json b/bower.json new file mode 100644 index 0000000..1e8e6a7 --- /dev/null +++ b/bower.json @@ -0,0 +1,17 @@ +{ + "name": "jquery.appear", + "version": "0.3.3", + "main": "jquery.appear.js", + "license": "MIT", + "ignore": [ + + ], + "keywords": [ + "event", + "appear", + "disappear" + ], + "dependencies": { + "jquery": ">=1.5" + } +} \ No newline at end of file diff --git a/appear.jquery.json b/package.json similarity index 96% rename from appear.jquery.json rename to package.json index 012b4a2..6912c33 100644 --- a/appear.jquery.json +++ b/package.json @@ -1,5 +1,5 @@ { - "name": "appear", + "name": "jquery.appear", "title": "jQuery Appear", "description": "It implements a custom 'appear'/'disappear' events which are fired when an element became visible/invisible in the browser view port.", "keywords": [ From a91892b073d8eb886790336bdc82dac21130e208 Mon Sep 17 00:00:00 2001 From: Andrey Sidorov Date: Tue, 6 Jan 2015 13:58:42 +0300 Subject: [PATCH 04/25] changed bower.json --- bower.json | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/bower.json b/bower.json index 1e8e6a7..772ee5a 100644 --- a/bower.json +++ b/bower.json @@ -1,10 +1,9 @@ { - "name": "jquery.appear", + "name": "jquery-appear", "version": "0.3.3", "main": "jquery.appear.js", "license": "MIT", "ignore": [ - ], "keywords": [ "event", @@ -13,5 +12,14 @@ ], "dependencies": { "jquery": ">=1.5" - } -} \ No newline at end of file + }, + "homepage": "https://github.com/morr/jquery.appear", + "authors": [ + "Andrey Sidorov ", + "Juan Hoyos ", + "Boris Nadion ", + "fhackenberger ", + "hayesgm " + ], + "description": "jQuery plugin for tracking element's appearance in browser viewport" +} From 94fb30de2c03066f6b5d617c87a7206f713239a3 Mon Sep 17 00:00:00 2001 From: Andrey Sidorov Date: Thu, 15 Jan 2015 11:10:37 +0300 Subject: [PATCH 05/25] bower package name --- bower.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bower.json b/bower.json index 772ee5a..07e29f2 100644 --- a/bower.json +++ b/bower.json @@ -1,5 +1,5 @@ { - "name": "jquery-appear", + "name": "jquery_appear", "version": "0.3.3", "main": "jquery.appear.js", "license": "MIT", From 59ca94cd2c89860c8e0628c02b29f4670af64765 Mon Sep 17 00:00:00 2001 From: Andrey Sidorov Date: Mon, 16 Feb 2015 21:54:32 +0300 Subject: [PATCH 06/25] version upgrade for bower --- bower.json | 2 +- jquery.appear.js | 2 +- package.json | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/bower.json b/bower.json index 07e29f2..1c3d433 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "jquery_appear", - "version": "0.3.3", + "version": "0.3.4", "main": "jquery.appear.js", "license": "MIT", "ignore": [ diff --git a/jquery.appear.js b/jquery.appear.js index e4558fc..ace0c5a 100644 --- a/jquery.appear.js +++ b/jquery.appear.js @@ -6,7 +6,7 @@ * * https://github.com/morr/jquery.appear/ * - * Version: 0.3.3 + * Version: 0.3.4 */ (function($) { var selectors = []; diff --git a/package.json b/package.json index 6912c33..59aa614 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,7 @@ "appear", "disappear" ], - "version": "0.3.3", + "version": "0.3.4", "author": { "name": "Andrey Sidorov", "email" : "takandar@gmail.com", From c4c28a1f5439154452b824c058f404477e885e03 Mon Sep 17 00:00:00 2001 From: Dick Fickling Date: Thu, 16 Apr 2015 13:55:54 -0700 Subject: [PATCH 07/25] Add support for node require --- jquery.appear.js | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/jquery.appear.js b/jquery.appear.js index ace0c5a..20d486f 100644 --- a/jquery.appear.js +++ b/jquery.appear.js @@ -98,4 +98,11 @@ return false; } }); -})(jQuery); +})(function() { + if (typeof module !== 'undefined') { + // Node + return require('jquery'); + } else { + return jQuery; + } +}()); From 00e4a1e6d7ad989441d46dc8a01dc2025cb032b4 Mon Sep 17 00:00:00 2001 From: Dick Fickling Date: Fri, 17 Apr 2015 14:00:36 -0700 Subject: [PATCH 08/25] Update package --- package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/package.json b/package.json index 59aa614..a663489 100644 --- a/package.json +++ b/package.json @@ -13,6 +13,7 @@ "email" : "takandar@gmail.com", "url": "https://github.com/morr/jquery.appear/blob/master/AUTHORS.txt" }, + "main": "jquery.appear.js", "maintainers": [ { "name": "Andrey Sidorov", From 13955870a38e3cd62720073c7a38ed3f7515052d Mon Sep 17 00:00:00 2001 From: Andrey Sidorov Date: Sun, 14 Jun 2015 20:59:02 +0300 Subject: [PATCH 09/25] bump version --- AUTHORS.txt | 1 + jquery.appear.js | 2 +- package.json | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/AUTHORS.txt b/AUTHORS.txt index 603a0e5..429b5d3 100644 --- a/AUTHORS.txt +++ b/AUTHORS.txt @@ -3,3 +3,4 @@ Juan Hoyos Boris Nadion fhackenberger hayesgm +richardfickling diff --git a/jquery.appear.js b/jquery.appear.js index 20d486f..ba507b8 100644 --- a/jquery.appear.js +++ b/jquery.appear.js @@ -6,7 +6,7 @@ * * https://github.com/morr/jquery.appear/ * - * Version: 0.3.4 + * Version: 0.3.5 */ (function($) { var selectors = []; diff --git a/package.json b/package.json index a663489..bfce014 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,7 @@ "appear", "disappear" ], - "version": "0.3.4", + "version": "0.3.5", "author": { "name": "Andrey Sidorov", "email" : "takandar@gmail.com", From 7735ed17e2f045c366d08ce97d0b3431dfd0c22e Mon Sep 17 00:00:00 2001 From: Andrey Sidorov Date: Sun, 14 Jun 2015 21:03:40 +0300 Subject: [PATCH 10/25] semicolons --- jquery.appear.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/jquery.appear.js b/jquery.appear.js index ba507b8..3294071 100644 --- a/jquery.appear.js +++ b/jquery.appear.js @@ -16,7 +16,7 @@ var defaults = { interval: 250, force_process: false - } + }; var $window = $(window); var $prior_appeared; @@ -36,7 +36,7 @@ } $prior_appeared = $appeared; } - } + }; // "appeared" custom filter $.expr[':']['appeared'] = function(element) { @@ -59,7 +59,7 @@ } else { return false; } - } + }; $.fn.extend({ // watching for element's appearance in browser viewport @@ -94,7 +94,7 @@ if (check_binded) { process(); return true; - }; + } return false; } }); From b4bf422ce6dca1071501c77b05afae6e0777784b Mon Sep 17 00:00:00 2001 From: Andrey Sidorov Date: Sun, 14 Jun 2015 21:28:31 +0300 Subject: [PATCH 11/25] fix bug with multiple appear calls --- jquery.appear.js | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/jquery.appear.js b/jquery.appear.js index 3294071..2313b76 100644 --- a/jquery.appear.js +++ b/jquery.appear.js @@ -6,7 +6,7 @@ * * https://github.com/morr/jquery.appear/ * - * Version: 0.3.5 + * Version: 0.3.6 */ (function($) { var selectors = []; @@ -19,7 +19,7 @@ }; var $window = $(window); - var $prior_appeared; + var $prior_appeared = []; function process() { check_lock = false; @@ -30,14 +30,19 @@ $appeared.trigger('appear', [$appeared]); - if ($prior_appeared) { - var $disappeared = $prior_appeared.not($appeared); + if ($prior_appeared[index]) { + var $disappeared = $prior_appeared[index].not($appeared); $disappeared.trigger('disappear', [$disappeared]); } - $prior_appeared = $appeared; + $prior_appeared[index] = $appeared; } }; + function add_selector(selector) { + selectors.push(selector); + $prior_appeared.push(); + } + // "appeared" custom filter $.expr[':']['appeared'] = function(element) { var $element = $(element); @@ -83,7 +88,7 @@ if (opts.force_process) { setTimeout(process, opts.interval); } - selectors.push(selector); + add_selector(selector); return $(selector); } }); From a51fdd907a5c893cd77d23526992ecf57a54fe06 Mon Sep 17 00:00:00 2001 From: Wilson Li Date: Sun, 25 Oct 2015 18:39:22 +0800 Subject: [PATCH 12/25] Fix typo --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 9e98373..c24e0cf 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ It implements a custom *appear*/*disappear* events which are fired when an eleme // this element is now outside browser viewport }); -If you want to fire *appear* event for elements which are close to vieport but are not visible yet, you may add data attributes *appear-top-offset* and *appear-left-offset* to DOM nodes. +If you want to fire *appear* event for elements which are close to viewport but are not visible yet, you may add data attributes *appear-top-offset* and *appear-left-offset* to DOM nodes.
...
# appear will be fired when an element is below browser viewport for 600 or less pixels From 6290e58930df38b3278081a7a980a6b92c75f09a Mon Sep 17 00:00:00 2001 From: Turdaliev Nursultan Date: Sun, 10 Jan 2016 20:26:34 +0100 Subject: [PATCH 13/25] Last version Your last version is 0.3.6 --- bower.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bower.json b/bower.json index 1c3d433..20a1ee5 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "jquery_appear", - "version": "0.3.4", + "version": "0.3.6", "main": "jquery.appear.js", "license": "MIT", "ignore": [ From 611a2a66c5e54229d783ccb85631021320d78d62 Mon Sep 17 00:00:00 2001 From: Marius van Witzenburg Date: Tue, 2 Feb 2016 14:02:53 +0100 Subject: [PATCH 14/25] Strict mode fixes --- jquery.appear.js | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/jquery.appear.js b/jquery.appear.js index 2313b76..00b722a 100644 --- a/jquery.appear.js +++ b/jquery.appear.js @@ -21,12 +21,16 @@ var $prior_appeared = []; + function appeared(selector) { + return $(selector).filter(function() { + return $(this).is(':appeared'); + }); + } + function process() { check_lock = false; for (var index = 0, selectorsLength = selectors.length; index < selectorsLength; index++) { - var $appeared = $(selectors[index]).filter(function() { - return $(this).is(':appeared'); - }); + var $appeared = appeared(selectors[index]); $appeared.trigger('appear', [$appeared]); @@ -36,7 +40,7 @@ } $prior_appeared[index] = $appeared; } - }; + } function add_selector(selector) { selectors.push(selector); @@ -44,7 +48,7 @@ } // "appeared" custom filter - $.expr[':']['appeared'] = function(element) { + $.expr[':'].appeared = function(element) { var $element = $(element); if (!$element.is(':visible')) { return false; From 0106f76648e13de533e5987a14df66c377009e07 Mon Sep 17 00:00:00 2001 From: David Beitey Date: Fri, 20 May 2016 13:37:16 +1000 Subject: [PATCH 15/25] Fix minor typo --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index c24e0cf..3fa1f38 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ This is a total revamp of original jquery.appear plugin hosted on http://code.go Check demo page! -This plugin can be used to prevent unnecessary processeing for content that is hidden or is outside of the browser viewport. +This plugin can be used to prevent unnecessary processing for content that is hidden or is outside of the browser viewport. It implements a custom *appear*/*disappear* events which are fired when an element became visible/invisible in the browser viewport. From 2e382b95f6a44c481f5992a390707bffbffae2d1 Mon Sep 17 00:00:00 2001 From: Andrey Sidorov Date: Fri, 18 May 2018 20:07:31 +0300 Subject: [PATCH 16/25] v0.4.0 to support latest jQuery --- CHANGELOG | 1 + README.md | 2 +- bower.json | 2 +- jquery.appear.js | 20 ++++++++++++-------- package.json | 2 +- 5 files changed, 16 insertions(+), 11 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index 63167e7..e9491b0 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,4 @@ +0.4 Support latest jQuery. To track arbitrary selectors instead of $(selector).appear() now it must be called as $.appear(selector). 0.3.3 IE8 compatibility fix. 0.3.2 Code cleanups. Appear now supports not only jQuery selectors but also raw DOM nodes wrapped in jQuery. 0.3.1 Added "disappear" event. Removed first argument (callback function) from $.fn.appear function. "appear" event is now triggered for each appeared element (before it was triggered only for a first element in selector). diff --git a/README.md b/README.md index c24e0cf..333b292 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ This plugin can be used to prevent unnecessary processeing for content that is h It implements a custom *appear*/*disappear* events which are fired when an element became visible/invisible in the browser viewport. - $('someselector').appear(); // It supports optional hash with "force_process" and "interval" keys. Check source code for details. + $.appear('someselector', options); // It supports optional hash with "force_process" and "interval" keys. Check source code for details. $('
test
').appear(); // It also supports raw DOM nodes wrapped in jQuery. diff --git a/bower.json b/bower.json index 20a1ee5..1d54d53 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "jquery_appear", - "version": "0.3.6", + "version": "0.4.0", "main": "jquery.appear.js", "license": "MIT", "ignore": [ diff --git a/jquery.appear.js b/jquery.appear.js index 00b722a..ba92e73 100644 --- a/jquery.appear.js +++ b/jquery.appear.js @@ -6,7 +6,7 @@ * * https://github.com/morr/jquery.appear/ * - * Version: 0.3.6 + * Version: 0.4 */ (function($) { var selectors = []; @@ -72,9 +72,16 @@ $.fn.extend({ // watching for element's appearance in browser viewport - appear: function(options) { + appear: function(selector, options) { + $.appear(this, options); + return this; + } + }); + + $.extend({ + appear: function(selector, options) { var opts = $.extend({}, defaults, options || {}); - var selector = this.selector || this; + if (!check_binded) { var on_check = function() { if (check_lock) { @@ -92,12 +99,9 @@ if (opts.force_process) { setTimeout(process, opts.interval); } - add_selector(selector); - return $(selector); - } - }); - $.extend({ + add_selector(selector); + }, // force elements's appearance check force_appear: function() { if (check_binded) { diff --git a/package.json b/package.json index bfce014..96718ab 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,7 @@ "appear", "disappear" ], - "version": "0.3.5", + "version": "0.4.0", "author": { "name": "Andrey Sidorov", "email" : "takandar@gmail.com", From f7e18b6719695baa05744c578e59bd1fd7b4fac6 Mon Sep 17 00:00:00 2001 From: Andrey Sidorov Date: Thu, 21 Jun 2018 14:15:37 +0300 Subject: [PATCH 17/25] support selectors syntax for latest jqueries --- bower.json | 2 +- jquery.appear.js | 44 +++++++++++++++++++++++--------------------- package.json | 2 +- 3 files changed, 25 insertions(+), 23 deletions(-) diff --git a/bower.json b/bower.json index 1d54d53..4874b92 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "jquery_appear", - "version": "0.4.0", + "version": "0.4.1", "main": "jquery.appear.js", "license": "MIT", "ignore": [ diff --git a/jquery.appear.js b/jquery.appear.js index ba92e73..02b503d 100644 --- a/jquery.appear.js +++ b/jquery.appear.js @@ -47,28 +47,30 @@ $prior_appeared.push(); } - // "appeared" custom filter - $.expr[':'].appeared = function(element) { - var $element = $(element); - if (!$element.is(':visible')) { - return false; - } + // ":appeared" custom filter + $.expr.pseudos.appeared = $.expr.createPseudo(function(arg) { + return function(element) { + var $element = $(element); + if (!$element.is(':visible')) { + return false; + } - var window_left = $window.scrollLeft(); - var window_top = $window.scrollTop(); - var offset = $element.offset(); - var left = offset.left; - var top = offset.top; - - if (top + $element.height() >= window_top && - top - ($element.data('appear-top-offset') || 0) <= window_top + $window.height() && - left + $element.width() >= window_left && - left - ($element.data('appear-left-offset') || 0) <= window_left + $window.width()) { - return true; - } else { - return false; - } - }; + var window_left = $window.scrollLeft(); + var window_top = $window.scrollTop(); + var offset = $element.offset(); + var left = offset.left; + var top = offset.top; + + if (top + $element.height() >= window_top && + top - ($element.data('appear-top-offset') || 0) <= window_top + $window.height() && + left + $element.width() >= window_left && + left - ($element.data('appear-left-offset') || 0) <= window_left + $window.width()) { + return true; + } else { + return false; + } + }; + }); $.fn.extend({ // watching for element's appearance in browser viewport diff --git a/package.json b/package.json index 96718ab..cea1eba 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,7 @@ "appear", "disappear" ], - "version": "0.4.0", + "version": "0.4.1", "author": { "name": "Andrey Sidorov", "email" : "takandar@gmail.com", From bb9da52bd43f4743ac7b15d01fc16f6556cae35d Mon Sep 17 00:00:00 2001 From: Pushpesh Singh Date: Fri, 28 Sep 2018 19:55:24 +0530 Subject: [PATCH 18/25] Customised for zepto.js Changes in the file to adapt to Zepto.js --- zepto.appear.js | 98 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 98 insertions(+) create mode 100644 zepto.appear.js diff --git a/zepto.appear.js b/zepto.appear.js new file mode 100644 index 0000000..bfe9fdf --- /dev/null +++ b/zepto.appear.js @@ -0,0 +1,98 @@ +/* + * jQuery appear plugin - customised for Zepto.js + * + * Copyright (c) 2012 Andrey Sidorov + * licensed under MIT license. + * + * https://github.com/morr/jquery.appear/ + * + * Version: 0.3.3 + */ +(function($) { + var selectors = []; + + var check_binded = false; + var check_lock = false; + var defaults = { + interval: 250, + force_process: false + } + var $window = $(window); + + var $prior_appeared; + + function process() { + check_lock = false; + for (var index = 0; index < selectors.length; index++) { + var $appeared = $(selectors[index]).filter(function() { + return $(this).is(':appeared'); + }); + + $appeared.trigger('appear', [$appeared]); + + if ($prior_appeared) { + var $disappeared = $prior_appeared.not($appeared); + $disappeared.trigger('disappear', [$disappeared]); + } + $prior_appeared = $appeared; + } + } + + // "appeared" custom filter + $.extend($.expr[':'], { + appeared : function() { + var $element = $(this); + if (!$element.is(':visible')) { + return false; + } + + var window_left = $window.scrollLeft(); + var window_top = $window.scrollTop(); + var offset = $element.offset(); + var left = offset.left; + var top = offset.top; + + if (top + $element.height() >= window_top && + top - ($element.data('appear-top-offset') || 0) <= window_top + $window.height() && + left + $element.width() >= window_left && + left - ($element.data('appear-left-offset') || 0) <= window_left + $window.width()) { + return this; + } else { + return false; + } + } + }); + + $.fn.appear = function(options) { + var opts = $.extend({}, defaults, options || {}); + var selector = this.selector || this; + if (!check_binded) { + var on_check = function() { + if (check_lock) { + return; + } + check_lock = true; + + setTimeout(process, opts.interval); + }; + + $(window).scroll(on_check).resize(on_check); + check_binded = true; + } + + if (opts.force_process) { + setTimeout(process, opts.interval); + } + selectors.push(selector); + return $(selector); + } + + + $.force_appear = function() { + if (check_binded) { + process(); + return true; + }; + return false; + } +})(Zepto); From c8fe69f431f17403a5a8684961f0908884d52aa3 Mon Sep 17 00:00:00 2001 From: Andrey Sidorov Date: Tue, 18 Jun 2019 14:59:40 +0300 Subject: [PATCH 19/25] preparing to publish to npm --- .gitignore | 1 + jquery.appear.js => index.js | 0 package.json | 8 ++++---- yarn.lock | 4 ++++ 4 files changed, 9 insertions(+), 4 deletions(-) rename jquery.appear.js => index.js (100%) create mode 100644 yarn.lock diff --git a/.gitignore b/.gitignore index e43b0f9..9daa824 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ .DS_Store +node_modules diff --git a/jquery.appear.js b/index.js similarity index 100% rename from jquery.appear.js rename to index.js diff --git a/package.json b/package.json index cea1eba..bba8663 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,5 @@ { - "name": "jquery.appear", + "name": "jquery-appear", "title": "jQuery Appear", "description": "It implements a custom 'appear'/'disappear' events which are fired when an element became visible/invisible in the browser view port.", "keywords": [ @@ -13,7 +13,7 @@ "email" : "takandar@gmail.com", "url": "https://github.com/morr/jquery.appear/blob/master/AUTHORS.txt" }, - "main": "jquery.appear.js", + "main": "index.js", "maintainers": [ { "name": "Andrey Sidorov", @@ -29,7 +29,7 @@ "homepage": "https://github.com/morr/jquery.appear", "demo": "http://morr.github.com/appear.html", "issues": "https://github.com/morr/jquery.appear/issues", - "dependencies": { - "jquery": ">=1.5" + "peerDependencies": { + "jquery": ">=1.7" } } diff --git a/yarn.lock b/yarn.lock new file mode 100644 index 0000000..fb57ccd --- /dev/null +++ b/yarn.lock @@ -0,0 +1,4 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + From 56538112c80287f5b93b06ffd8f5bdb41014e23e Mon Sep 17 00:00:00 2001 From: Andrey Sidorov Date: Tue, 18 Jun 2019 15:07:03 +0300 Subject: [PATCH 20/25] add readme, add changelog --- README.md | 74 ++++++++++++++++++++++++++-------------------------- index.js | 2 +- package.json | 6 ++--- 3 files changed, 41 insertions(+), 41 deletions(-) diff --git a/README.md b/README.md index 333b292..c6c6d73 100644 --- a/README.md +++ b/README.md @@ -1,55 +1,55 @@ -# jQuery.appear +# jquery-appear-original This is a total revamp of original jquery.appear plugin hosted on http://code.google.com/p/jquery-appear/ -Check demo page! +[Demo page](http://morr.github.com/appear.html) This plugin can be used to prevent unnecessary processeing for content that is hidden or is outside of the browser viewport. It implements a custom *appear*/*disappear* events which are fired when an element became visible/invisible in the browser viewport. - $.appear('someselector', options); // It supports optional hash with "force_process" and "interval" keys. Check source code for details. +## Installation - $('
test
').appear(); // It also supports raw DOM nodes wrapped in jQuery. +yarn - $('someselector').on('appear', function(event, $all_appeared_elements) { - // this element is now inside browser viewport - }); - $('someselector').on('disappear', function(event, $all_disappeared_elements) { - // this element is now outside browser viewport - }); +```sh +yarn add jquery-appear-original +``` + +npm + +```sh +npm i -S jquery-appear-original +``` + +## Usage + +```javascript + $.appear('someselector', options); // It supports optional hash with "force_process" and "interval" keys. Check source code for details. + + $('
test
').appear(); // It also supports raw DOM nodes wrapped in jQuery. + + $('someselector').on('appear', function(event, $all_appeared_elements) { + // this element is now inside browser viewport + }); + $('someselector').on('disappear', function(event, $all_disappeared_elements) { + // this element is now outside browser viewport + }); +``` If you want to fire *appear* event for elements which are close to viewport but are not visible yet, you may add data attributes *appear-top-offset* and *appear-left-offset* to DOM nodes. -
...
# appear will be fired when an element is below browser viewport for 600 or less pixels +```html +
...
# appear will be fired when an element is below browser viewport for 600 or less pixels +``` Appear check can be forced by calling *$.force_appear()*. This is suitable in cases when page is in initial state (not scrolled and not resized) and when you want manually trigger appearance check. Also this plugin provides custom jQuery filter for manual checking element appearance. - $('someselector').is(':appeared') - -# License - -> Licensed under MIT license. -> -> Permission is hereby granted, free of charge, to any person -> obtaining a copy of this software and associated documentation -> files (the "Software"), to deal in the Software without -> restriction, including without limitation the rights to use, -> copy, modify, merge, publish, distribute, sublicense, and/or sell -> copies of the Software, and to permit persons to whom the -> Software is furnished to do so, subject to the following -> conditions: -> -> The above copyright notice and this permission notice shall be -> included in all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES -> OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -> NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT -> HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -> WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -> FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -> OTHER DEALINGS IN THE SOFTWARE. +```javascript + $('someselector').is(':appeared') +``` + +## License +[MIT](http://opensource.org/licenses/MIT) diff --git a/index.js b/index.js index 02b503d..cd778f1 100644 --- a/index.js +++ b/index.js @@ -6,7 +6,7 @@ * * https://github.com/morr/jquery.appear/ * - * Version: 0.4 + * Version: 0.5 */ (function($) { var selectors = []; diff --git a/package.json b/package.json index bba8663..96a2459 100644 --- a/package.json +++ b/package.json @@ -1,13 +1,13 @@ { - "name": "jquery-appear", - "title": "jQuery Appear", + "name": "jquery-appear-original", + "title": "jQuery Appear/Disappear", "description": "It implements a custom 'appear'/'disappear' events which are fired when an element became visible/invisible in the browser view port.", "keywords": [ "event", "appear", "disappear" ], - "version": "0.4.1", + "version": "0.5.0", "author": { "name": "Andrey Sidorov", "email" : "takandar@gmail.com", From 52b944046101a3a841756c34b8e53fd0ebfc28d1 Mon Sep 17 00:00:00 2001 From: Andrey Sidorov Date: Tue, 18 Jun 2019 15:13:09 +0300 Subject: [PATCH 21/25] changelog --- CHANGELOG | 4 ---- CHANGELOG.md | 22 ++++++++++++++++++++++ 2 files changed, 22 insertions(+), 4 deletions(-) delete mode 100644 CHANGELOG create mode 100644 CHANGELOG.md diff --git a/CHANGELOG b/CHANGELOG deleted file mode 100644 index e9491b0..0000000 --- a/CHANGELOG +++ /dev/null @@ -1,4 +0,0 @@ -0.4 Support latest jQuery. To track arbitrary selectors instead of $(selector).appear() now it must be called as $.appear(selector). -0.3.3 IE8 compatibility fix. -0.3.2 Code cleanups. Appear now supports not only jQuery selectors but also raw DOM nodes wrapped in jQuery. -0.3.1 Added "disappear" event. Removed first argument (callback function) from $.fn.appear function. "appear" event is now triggered for each appeared element (before it was triggered only for a first element in selector). diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..e57e3f0 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,22 @@ +jquery-appear-original CHANGELOG +====================== + +0.5.0 +----- +- Publish to npm. Rename to jquery-appear-original because of jquery.appear name is taken. + +0.4 +----- +- Support latest jQuery. To track arbitrary selectors instead of $(selector).appear() now it must be called as $.appear(selector). + +0.3.3 +----- +- IE8 compatibility fix. + +0.3.2 +----- +- Code cleanups. Appear now supports not only jQuery selectors but also raw DOM nodes wrapped in jQuery. + +0.3.1 +----- +- Added "disappear" event. Removed first argument (callback function) from $.fn.appear function. "appear" event is now triggered for each appeared element (before it was triggered only for a first element in selector). From 72128c6e738ac1fe2a63511d123314f5b910ea43 Mon Sep 17 00:00:00 2001 From: Andrey Sidorov Date: Tue, 18 Jun 2019 15:23:37 +0300 Subject: [PATCH 22/25] add eslint --- .eslintrc.yml | 79 ++++ CHANGELOG.md | 4 + index.js | 71 ++-- package.json | 9 +- yarn.lock | 1132 +++++++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 1257 insertions(+), 38 deletions(-) create mode 100644 .eslintrc.yml diff --git a/.eslintrc.yml b/.eslintrc.yml new file mode 100644 index 0000000..700f3d8 --- /dev/null +++ b/.eslintrc.yml @@ -0,0 +1,79 @@ +--- +env: + browser: true + jquery: true + +extends: + - airbnb-base/legacy + +rules: + quotes: + - error + - single + object-curly-spacing: + - error + - always + semi: + - error + - always + object-curly-newline: 0 + arrow-body-style: + - 2 + - as-needed + arrow-parens: + - 2 + - as-needed + no-console: 0 + no-alert: 0 + no-trailing-spaces: + - error + no-return-assign: 0 + no-param-reassign: + - 2 + - props: false + no-underscore-dangle: 0 + vars-on-top: 0 + global-require: 0 + no-unused-vars: + - error + - argsIgnorePattern: ^_ + varsIgnorePattern: ^_ + no-use-before-define: 0 + no-mixed-operators: 0 + no-new: 0 + no-plusplus: 0 + no-shadow: + - 2 + - allow: + - '_' + function-paren-newline: 0 + comma-dangle: + - warn + - never + max-len: + - warn + - 100 + - ignoreComments: true + ignoreUrls: true + ignorePattern: "\\s*<" + indent: + - error + - 2 + - ignoreComments: true + SwitchCase: 1 + linebreak-style: + - error + - unix + func-names: 0 + implicit-arrow-linebreak: 0 + prefer-template: 0 + class-methods-use-this: 0 + radix: 0 + operator-linebreak: + - 2 + - after + keyword-spacing: + - error + - after: true + before: true + lines-between-class-members: 0 diff --git a/CHANGELOG.md b/CHANGELOG.md index e57e3f0..db2f03d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,10 @@ jquery-appear-original CHANGELOG ====================== +0.5.1 +----- +- Add eslint + 0.5.0 ----- - Publish to npm. Rename to jquery-appear-original because of jquery.appear name is taken. diff --git a/index.js b/index.js index cd778f1..7e78ba6 100644 --- a/index.js +++ b/index.js @@ -8,116 +8,115 @@ * * Version: 0.5 */ -(function($) { +(function ($) { var selectors = []; - var check_binded = false; - var check_lock = false; + var checkBinded = false; + var checkLock = false; var defaults = { interval: 250, force_process: false }; var $window = $(window); - var $prior_appeared = []; + var $priorAppeared = []; function appeared(selector) { - return $(selector).filter(function() { + return $(selector).filter(function () { return $(this).is(':appeared'); }); } function process() { - check_lock = false; + checkLock = false; for (var index = 0, selectorsLength = selectors.length; index < selectorsLength; index++) { var $appeared = appeared(selectors[index]); $appeared.trigger('appear', [$appeared]); - if ($prior_appeared[index]) { - var $disappeared = $prior_appeared[index].not($appeared); + if ($priorAppeared[index]) { + var $disappeared = $priorAppeared[index].not($appeared); $disappeared.trigger('disappear', [$disappeared]); } - $prior_appeared[index] = $appeared; + $priorAppeared[index] = $appeared; } } - function add_selector(selector) { + function addSelector(selector) { selectors.push(selector); - $prior_appeared.push(); + $priorAppeared.push(); } // ":appeared" custom filter - $.expr.pseudos.appeared = $.expr.createPseudo(function(arg) { - return function(element) { + $.expr.pseudos.appeared = $.expr.createPseudo(function (_arg) { + return function (element) { var $element = $(element); + if (!$element.is(':visible')) { return false; } - var window_left = $window.scrollLeft(); - var window_top = $window.scrollTop(); + var windowLeft = $window.scrollLeft(); + var windowTop = $window.scrollTop(); var offset = $element.offset(); var left = offset.left; var top = offset.top; - if (top + $element.height() >= window_top && - top - ($element.data('appear-top-offset') || 0) <= window_top + $window.height() && - left + $element.width() >= window_left && - left - ($element.data('appear-left-offset') || 0) <= window_left + $window.width()) { + if (top + $element.height() >= windowTop && + top - ($element.data('appear-top-offset') || 0) <= windowTop + $window.height() && + left + $element.width() >= windowLeft && + left - ($element.data('appear-left-offset') || 0) <= windowLeft + $window.width()) { return true; - } else { - return false; } + return false; }; }); $.fn.extend({ // watching for element's appearance in browser viewport - appear: function(selector, options) { + appear: function (selector, options) { $.appear(this, options); return this; } }); $.extend({ - appear: function(selector, options) { + appear: function (selector, options) { var opts = $.extend({}, defaults, options || {}); - if (!check_binded) { - var on_check = function() { - if (check_lock) { + if (!checkBinded) { + var onCheck = function () { + if (checkLock) { return; } - check_lock = true; + checkLock = true; setTimeout(process, opts.interval); }; - $(window).scroll(on_check).resize(on_check); - check_binded = true; + $(window).scroll(onCheck).resize(onCheck); + checkBinded = true; } if (opts.force_process) { setTimeout(process, opts.interval); } - add_selector(selector); + addSelector(selector); }, // force elements's appearance check - force_appear: function() { - if (check_binded) { + force_appear: function () { + if (checkBinded) { process(); return true; } return false; } }); -})(function() { +}(function () { if (typeof module !== 'undefined') { // Node return require('jquery'); - } else { - return jQuery; } -}()); + return jQuery; +}())); diff --git a/package.json b/package.json index 96a2459..767068e 100644 --- a/package.json +++ b/package.json @@ -7,10 +7,10 @@ "appear", "disappear" ], - "version": "0.5.0", + "version": "0.5.1", "author": { "name": "Andrey Sidorov", - "email" : "takandar@gmail.com", + "email": "takandar@gmail.com", "url": "https://github.com/morr/jquery.appear/blob/master/AUTHORS.txt" }, "main": "index.js", @@ -29,6 +29,11 @@ "homepage": "https://github.com/morr/jquery.appear", "demo": "http://morr.github.com/appear.html", "issues": "https://github.com/morr/jquery.appear/issues", + "devDependencies": { + "eslint": "5.11.0", + "eslint-config-airbnb-base": "^13.1.0", + "eslint-plugin-import": "^2.17.3" + }, "peerDependencies": { "jquery": ">=1.7" } diff --git a/yarn.lock b/yarn.lock index fb57ccd..8102a4d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,3 +2,1135 @@ # yarn lockfile v1 +"@babel/code-frame@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.0.0.tgz#06e2ab19bdb535385559aabb5ba59729482800f8" + integrity sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA== + dependencies: + "@babel/highlight" "^7.0.0" + +"@babel/highlight@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.0.0.tgz#f710c38c8d458e6dd9a201afb637fcb781ce99e4" + integrity sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw== + dependencies: + chalk "^2.0.0" + esutils "^2.0.2" + js-tokens "^4.0.0" + +acorn-jsx@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.0.1.tgz#32a064fd925429216a09b141102bfdd185fae40e" + integrity sha512-HJ7CfNHrfJLlNTzIEUTj43LNWGkqpRLxm3YjAlcD0ACydk9XynzYsCBHxut+iqt+1aBXkx9UP/w/ZqMr13XIzg== + +acorn@^6.0.7: + version "6.1.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.1.1.tgz#7d25ae05bb8ad1f9b699108e1094ecd7884adc1f" + integrity sha512-jPTiwtOxaHNaAPg/dmrJ/beuzLRnXtB0kQPQ8JpotKJgTB6rX6c8mlf315941pyjBSaPg8NHXS9fhP4u17DpGA== + +ajv@^6.5.3, ajv@^6.9.1: + version "6.10.0" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.10.0.tgz#90d0d54439da587cd7e843bfb7045f50bd22bdf1" + integrity sha512-nffhOpkymDECQyR0mnsUtoCE8RlX38G0rYP+wgLWFyZuUyuuojSSvi/+euOiQBIn63whYwYVIIH1TvE3tu4OEg== + dependencies: + fast-deep-equal "^2.0.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +ansi-escapes@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" + integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ== + +ansi-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" + integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= + +ansi-regex@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" + integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== + +ansi-styles@^3.2.0, ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +argparse@^1.0.7: + version "1.0.10" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== + dependencies: + sprintf-js "~1.0.2" + +array-includes@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.0.3.tgz#184b48f62d92d7452bb31b323165c7f8bd02266d" + integrity sha1-GEtI9i2S10UrsxsyMWXH+L0CJm0= + dependencies: + define-properties "^1.1.2" + es-abstract "^1.7.0" + +astral-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" + integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg== + +balanced-match@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" + integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +caller-path@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f" + integrity sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8= + dependencies: + callsites "^0.2.0" + +callsites@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca" + integrity sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo= + +chalk@^2.0.0, chalk@^2.1.0, chalk@^2.4.2: + version "2.4.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chardet@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" + integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== + +circular-json@^0.3.1: + version "0.3.3" + resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.3.tgz#815c99ea84f6809529d2f45791bdf82711352d66" + integrity sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A== + +cli-cursor@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" + integrity sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU= + dependencies: + restore-cursor "^2.0.0" + +cli-width@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639" + integrity sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk= + +color-convert@^1.9.0: + version "1.9.3" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= + +contains-path@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/contains-path/-/contains-path-0.1.0.tgz#fe8cf184ff6670b6baef01a9d4861a5cbec4120a" + integrity sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo= + +cross-spawn@^6.0.5: + version "6.0.5" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" + integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== + dependencies: + nice-try "^1.0.4" + path-key "^2.0.1" + semver "^5.5.0" + shebang-command "^1.2.0" + which "^1.2.9" + +debug@^2.6.8, debug@^2.6.9: + version "2.6.9" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + +debug@^4.0.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" + integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== + dependencies: + ms "^2.1.1" + +deep-is@~0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" + integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= + +define-properties@^1.1.2, define-properties@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" + integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== + dependencies: + object-keys "^1.0.12" + +doctrine@1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa" + integrity sha1-N53Ocw9hZvds76TmcHoVmwLFpvo= + dependencies: + esutils "^2.0.2" + isarray "^1.0.0" + +doctrine@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" + integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== + dependencies: + esutils "^2.0.2" + +emoji-regex@^7.0.1: + version "7.0.3" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" + integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== + +error-ex@^1.2.0: + version "1.3.2" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" + integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== + dependencies: + is-arrayish "^0.2.1" + +es-abstract@^1.12.0, es-abstract@^1.7.0: + version "1.13.0" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.13.0.tgz#ac86145fdd5099d8dd49558ccba2eaf9b88e24e9" + integrity sha512-vDZfg/ykNxQVwup/8E1BZhVzFfBxs9NqMzGcvIJrqg5k2/5Za2bWo40dK2J1pgLngZ7c+Shh8lwYtLGyrwPutg== + dependencies: + es-to-primitive "^1.2.0" + function-bind "^1.1.1" + has "^1.0.3" + is-callable "^1.1.4" + is-regex "^1.0.4" + object-keys "^1.0.12" + +es-to-primitive@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.0.tgz#edf72478033456e8dda8ef09e00ad9650707f377" + integrity sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg== + dependencies: + is-callable "^1.1.4" + is-date-object "^1.0.1" + is-symbol "^1.0.2" + +escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= + +eslint-config-airbnb-base@^13.1.0: + version "13.1.0" + resolved "https://registry.yarnpkg.com/eslint-config-airbnb-base/-/eslint-config-airbnb-base-13.1.0.tgz#b5a1b480b80dfad16433d6c4ad84e6605052c05c" + integrity sha512-XWwQtf3U3zIoKO1BbHh6aUhJZQweOwSt4c2JrPDg9FP3Ltv3+YfEv7jIDB8275tVnO/qOHbfuYg3kzw6Je7uWw== + dependencies: + eslint-restricted-globals "^0.1.1" + object.assign "^4.1.0" + object.entries "^1.0.4" + +eslint-import-resolver-node@^0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.2.tgz#58f15fb839b8d0576ca980413476aab2472db66a" + integrity sha512-sfmTqJfPSizWu4aymbPr4Iidp5yKm8yDkHp+Ir3YiTHiiDfxh69mOUsmiqW6RZ9zRXFaF64GtYmN7e+8GHBv6Q== + dependencies: + debug "^2.6.9" + resolve "^1.5.0" + +eslint-module-utils@^2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.4.0.tgz#8b93499e9b00eab80ccb6614e69f03678e84e09a" + integrity sha512-14tltLm38Eu3zS+mt0KvILC3q8jyIAH518MlG+HO0p+yK885Lb1UHTY/UgR91eOyGdmxAPb+OLoW4znqIT6Ndw== + dependencies: + debug "^2.6.8" + pkg-dir "^2.0.0" + +eslint-plugin-import@^2.17.3: + version "2.17.3" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.17.3.tgz#00548b4434c18faebaba04b24ae6198f280de189" + integrity sha512-qeVf/UwXFJbeyLbxuY8RgqDyEKCkqV7YC+E5S5uOjAp4tOc8zj01JP3ucoBM8JcEqd1qRasJSg6LLlisirfy0Q== + dependencies: + array-includes "^3.0.3" + contains-path "^0.1.0" + debug "^2.6.9" + doctrine "1.5.0" + eslint-import-resolver-node "^0.3.2" + eslint-module-utils "^2.4.0" + has "^1.0.3" + lodash "^4.17.11" + minimatch "^3.0.4" + read-pkg-up "^2.0.0" + resolve "^1.11.0" + +eslint-restricted-globals@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/eslint-restricted-globals/-/eslint-restricted-globals-0.1.1.tgz#35f0d5cbc64c2e3ed62e93b4b1a7af05ba7ed4d7" + integrity sha1-NfDVy8ZMLj7WLpO0saevBbp+1Nc= + +eslint-scope@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848" + integrity sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg== + dependencies: + esrecurse "^4.1.0" + estraverse "^4.1.1" + +eslint-utils@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.3.1.tgz#9a851ba89ee7c460346f97cf8939c7298827e512" + integrity sha512-Z7YjnIldX+2XMcjr7ZkgEsOj/bREONV60qYeB/bjMAqqqZ4zxKyWX+BOUkdmRmA9riiIPVvo5x86m5elviOk0Q== + +eslint-visitor-keys@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#3f3180fb2e291017716acb4c9d6d5b5c34a6a81d" + integrity sha512-qzm/XxIbxm/FHyH341ZrbnMUpe+5Bocte9xkmFMzPMjRaZMcXww+MpBptFvtU+79L362nqiLhekCxCxDPaUMBQ== + +eslint@5.11.0: + version "5.11.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-5.11.0.tgz#51a0e70f137a425fe044cd48273b96f28a774b1f" + integrity sha512-gbEg0ttToZPkZUv2yYjpipxuYrv/9aSSmgM4V6GkiO3u04QosHYBtduUCqLEulEg3YvNDAkk3OWzyQJ/heZ3Nw== + dependencies: + "@babel/code-frame" "^7.0.0" + ajv "^6.5.3" + chalk "^2.1.0" + cross-spawn "^6.0.5" + debug "^4.0.1" + doctrine "^2.1.0" + eslint-scope "^4.0.0" + eslint-utils "^1.3.1" + eslint-visitor-keys "^1.0.0" + espree "^5.0.0" + esquery "^1.0.1" + esutils "^2.0.2" + file-entry-cache "^2.0.0" + functional-red-black-tree "^1.0.1" + glob "^7.1.2" + globals "^11.7.0" + ignore "^4.0.6" + imurmurhash "^0.1.4" + inquirer "^6.1.0" + js-yaml "^3.12.0" + json-stable-stringify-without-jsonify "^1.0.1" + levn "^0.3.0" + lodash "^4.17.5" + minimatch "^3.0.4" + mkdirp "^0.5.1" + natural-compare "^1.4.0" + optionator "^0.8.2" + path-is-inside "^1.0.2" + pluralize "^7.0.0" + progress "^2.0.0" + regexpp "^2.0.1" + require-uncached "^1.0.3" + semver "^5.5.1" + strip-ansi "^4.0.0" + strip-json-comments "^2.0.1" + table "^5.0.2" + text-table "^0.2.0" + +espree@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/espree/-/espree-5.0.1.tgz#5d6526fa4fc7f0788a5cf75b15f30323e2f81f7a" + integrity sha512-qWAZcWh4XE/RwzLJejfcofscgMc9CamR6Tn1+XRXNzrvUSSbiAjGOI/fggztjIi7y9VLPqnICMIPiGyr8JaZ0A== + dependencies: + acorn "^6.0.7" + acorn-jsx "^5.0.0" + eslint-visitor-keys "^1.0.0" + +esprima@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== + +esquery@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.0.1.tgz#406c51658b1f5991a5f9b62b1dc25b00e3e5c708" + integrity sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA== + dependencies: + estraverse "^4.0.0" + +esrecurse@^4.1.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf" + integrity sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ== + dependencies: + estraverse "^4.1.0" + +estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1: + version "4.2.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" + integrity sha1-De4/7TH81GlhjOc0IJn8GvoL2xM= + +esutils@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" + integrity sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs= + +external-editor@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.0.3.tgz#5866db29a97826dbe4bf3afd24070ead9ea43a27" + integrity sha512-bn71H9+qWoOQKyZDo25mOMVpSmXROAsTJVVVYzrrtol3d4y+AsKjf4Iwl2Q+IuT0kFSQ1qo166UuIwqYq7mGnA== + dependencies: + chardet "^0.7.0" + iconv-lite "^0.4.24" + tmp "^0.0.33" + +fast-deep-equal@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49" + integrity sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk= + +fast-json-stable-stringify@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" + integrity sha1-1RQsDK7msRifh9OnYREGT4bIu/I= + +fast-levenshtein@~2.0.4: + version "2.0.6" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= + +figures@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" + integrity sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI= + dependencies: + escape-string-regexp "^1.0.5" + +file-entry-cache@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-2.0.0.tgz#c392990c3e684783d838b8c84a45d8a048458361" + integrity sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E= + dependencies: + flat-cache "^1.2.1" + object-assign "^4.0.1" + +find-up@^2.0.0, find-up@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" + integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c= + dependencies: + locate-path "^2.0.0" + +flat-cache@^1.2.1: + version "1.3.4" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.3.4.tgz#2c2ef77525cc2929007dfffa1dd314aa9c9dee6f" + integrity sha512-VwyB3Lkgacfik2vhqR4uv2rvebqmDvFu4jlN/C1RzWoJEo8I7z4Q404oiqYCkq41mni8EzQnm95emU9seckwtg== + dependencies: + circular-json "^0.3.1" + graceful-fs "^4.1.2" + rimraf "~2.6.2" + write "^0.2.1" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= + +function-bind@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== + +functional-red-black-tree@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" + integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= + +glob@^7.1.2, glob@^7.1.3: + version "7.1.4" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.4.tgz#aa608a2f6c577ad357e1ae5a5c26d9a8d1969255" + integrity sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +globals@^11.7.0: + version "11.12.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" + integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== + +graceful-fs@^4.1.2: + version "4.1.15" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.15.tgz#ffb703e1066e8a0eeaa4c8b80ba9253eeefbfb00" + integrity sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA== + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= + +has-symbols@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.0.tgz#ba1a8f1af2a0fc39650f5c850367704122063b44" + integrity sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q= + +has@^1.0.1, has@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== + dependencies: + function-bind "^1.1.1" + +hosted-git-info@^2.1.4: + version "2.7.1" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.7.1.tgz#97f236977bd6e125408930ff6de3eec6281ec047" + integrity sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w== + +iconv-lite@^0.4.24: + version "0.4.24" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + dependencies: + safer-buffer ">= 2.1.2 < 3" + +ignore@^4.0.6: + version "4.0.6" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" + integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= + +inquirer@^6.1.0: + version "6.3.1" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.3.1.tgz#7a413b5e7950811013a3db491c61d1f3b776e8e7" + integrity sha512-MmL624rfkFt4TG9y/Jvmt8vdmOo836U7Y0Hxr2aFk3RelZEGX4Igk0KabWrcaaZaTv9uzglOqWh1Vly+FAWAXA== + dependencies: + ansi-escapes "^3.2.0" + chalk "^2.4.2" + cli-cursor "^2.1.0" + cli-width "^2.0.0" + external-editor "^3.0.3" + figures "^2.0.0" + lodash "^4.17.11" + mute-stream "0.0.7" + run-async "^2.2.0" + rxjs "^6.4.0" + string-width "^2.1.0" + strip-ansi "^5.1.0" + through "^2.3.6" + +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= + +is-callable@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.4.tgz#1e1adf219e1eeb684d691f9d6a05ff0d30a24d75" + integrity sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA== + +is-date-object@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16" + integrity sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY= + +is-fullwidth-code-point@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" + integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= + +is-promise@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" + integrity sha1-eaKp7OfwlugPNtKy87wWwf9L8/o= + +is-regex@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491" + integrity sha1-VRdIm1RwkbCTDglWVM7SXul+lJE= + dependencies: + has "^1.0.1" + +is-symbol@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.2.tgz#a055f6ae57192caee329e7a860118b497a950f38" + integrity sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw== + dependencies: + has-symbols "^1.0.0" + +isarray@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= + +js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +js-yaml@^3.12.0: + version "3.13.1" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847" + integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw== + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + +json-stable-stringify-without-jsonify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" + integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= + +levn@^0.3.0, levn@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" + integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= + dependencies: + prelude-ls "~1.1.2" + type-check "~0.3.2" + +load-json-file@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8" + integrity sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg= + dependencies: + graceful-fs "^4.1.2" + parse-json "^2.2.0" + pify "^2.0.0" + strip-bom "^3.0.0" + +locate-path@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" + integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= + dependencies: + p-locate "^2.0.0" + path-exists "^3.0.0" + +lodash@^4.17.11, lodash@^4.17.5: + version "4.17.11" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d" + integrity sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg== + +mimic-fn@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" + integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ== + +minimatch@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== + dependencies: + brace-expansion "^1.1.7" + +minimist@0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" + integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0= + +mkdirp@^0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" + integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM= + dependencies: + minimist "0.0.8" + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= + +ms@^2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +mute-stream@0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" + integrity sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s= + +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= + +nice-try@^1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" + integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== + +normalize-package-data@^2.3.2: + version "2.5.0" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" + integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== + dependencies: + hosted-git-info "^2.1.4" + resolve "^1.10.0" + semver "2 || 3 || 4 || 5" + validate-npm-package-license "^3.0.1" + +object-assign@^4.0.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= + +object-keys@^1.0.11, object-keys@^1.0.12: + version "1.1.1" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== + +object.assign@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da" + integrity sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w== + dependencies: + define-properties "^1.1.2" + function-bind "^1.1.1" + has-symbols "^1.0.0" + object-keys "^1.0.11" + +object.entries@^1.0.4: + version "1.1.0" + resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.0.tgz#2024fc6d6ba246aee38bdb0ffd5cfbcf371b7519" + integrity sha512-l+H6EQ8qzGRxbkHOd5I/aHRhHDKoQXQ8g0BYt4uSweQU1/J6dZUOyWh9a2Vky35YCKjzmgxOzta2hH6kf9HuXA== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.12.0" + function-bind "^1.1.1" + has "^1.0.3" + +once@^1.3.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= + dependencies: + wrappy "1" + +onetime@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" + integrity sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ= + dependencies: + mimic-fn "^1.0.0" + +optionator@^0.8.2: + version "0.8.2" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64" + integrity sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q= + dependencies: + deep-is "~0.1.3" + fast-levenshtein "~2.0.4" + levn "~0.3.0" + prelude-ls "~1.1.2" + type-check "~0.3.2" + wordwrap "~1.0.0" + +os-tmpdir@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" + integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= + +p-limit@^1.1.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" + integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== + dependencies: + p-try "^1.0.0" + +p-locate@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" + integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= + dependencies: + p-limit "^1.1.0" + +p-try@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" + integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= + +parse-json@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" + integrity sha1-9ID0BDTvgHQfhGkJn43qGPVaTck= + dependencies: + error-ex "^1.2.0" + +path-exists@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" + integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= + +path-is-inside@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" + integrity sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM= + +path-key@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" + integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= + +path-parse@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" + integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== + +path-type@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73" + integrity sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM= + dependencies: + pify "^2.0.0" + +pify@^2.0.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" + integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= + +pkg-dir@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b" + integrity sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s= + dependencies: + find-up "^2.1.0" + +pluralize@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-7.0.0.tgz#298b89df8b93b0221dbf421ad2b1b1ea23fc6777" + integrity sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow== + +prelude-ls@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" + integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= + +progress@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" + integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== + +punycode@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" + integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== + +read-pkg-up@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be" + integrity sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4= + dependencies: + find-up "^2.0.0" + read-pkg "^2.0.0" + +read-pkg@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8" + integrity sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg= + dependencies: + load-json-file "^2.0.0" + normalize-package-data "^2.3.2" + path-type "^2.0.0" + +regexpp@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f" + integrity sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw== + +require-uncached@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/require-uncached/-/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3" + integrity sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM= + dependencies: + caller-path "^0.1.0" + resolve-from "^1.0.0" + +resolve-from@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226" + integrity sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY= + +resolve@^1.10.0, resolve@^1.11.0, resolve@^1.5.0: + version "1.11.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.11.0.tgz#4014870ba296176b86343d50b60f3b50609ce232" + integrity sha512-WL2pBDjqT6pGUNSUzMw00o4T7If+z4H2x3Gz893WoUQ5KW8Vr9txp00ykiP16VBaZF5+j/OcXJHZ9+PCvdiDKw== + dependencies: + path-parse "^1.0.6" + +restore-cursor@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" + integrity sha1-n37ih/gv0ybU/RYpI9YhKe7g368= + dependencies: + onetime "^2.0.0" + signal-exit "^3.0.2" + +rimraf@~2.6.2: + version "2.6.3" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" + integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== + dependencies: + glob "^7.1.3" + +run-async@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0" + integrity sha1-A3GrSuC91yDUFm19/aZP96RFpsA= + dependencies: + is-promise "^2.1.0" + +rxjs@^6.4.0: + version "6.5.2" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.2.tgz#2e35ce815cd46d84d02a209fb4e5921e051dbec7" + integrity sha512-HUb7j3kvb7p7eCUHE3FqjoDsC1xfZQ4AHFWfTKSpZ+sAhhz5X1WX0ZuUqWbzB2QhSLp3DoLUG+hMdEDKqWo2Zg== + dependencies: + tslib "^1.9.0" + +"safer-buffer@>= 2.1.2 < 3": + version "2.1.2" + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + +"semver@2 || 3 || 4 || 5", semver@^5.5.0, semver@^5.5.1: + version "5.7.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.0.tgz#790a7cf6fea5459bac96110b29b60412dc8ff96b" + integrity sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA== + +shebang-command@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" + integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= + dependencies: + shebang-regex "^1.0.0" + +shebang-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" + integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= + +signal-exit@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" + integrity sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0= + +slice-ansi@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz#cacd7693461a637a5788d92a7dd4fba068e81636" + integrity sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ== + dependencies: + ansi-styles "^3.2.0" + astral-regex "^1.0.0" + is-fullwidth-code-point "^2.0.0" + +spdx-correct@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.0.tgz#fb83e504445268f154b074e218c87c003cd31df4" + integrity sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q== + dependencies: + spdx-expression-parse "^3.0.0" + spdx-license-ids "^3.0.0" + +spdx-exceptions@^2.1.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz#2ea450aee74f2a89bfb94519c07fcd6f41322977" + integrity sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA== + +spdx-expression-parse@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz#99e119b7a5da00e05491c9fa338b7904823b41d0" + integrity sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg== + dependencies: + spdx-exceptions "^2.1.0" + spdx-license-ids "^3.0.0" + +spdx-license-ids@^3.0.0: + version "3.0.4" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.4.tgz#75ecd1a88de8c184ef015eafb51b5b48bfd11bb1" + integrity sha512-7j8LYJLeY/Yb6ACbQ7F76qy5jHkp0U6jgBfJsk97bwWlVUnUWsAgpyaCvo17h0/RQGnQ036tVDomiwoI4pDkQA== + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= + +string-width@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" + integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== + dependencies: + is-fullwidth-code-point "^2.0.0" + strip-ansi "^4.0.0" + +string-width@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" + integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== + dependencies: + emoji-regex "^7.0.1" + is-fullwidth-code-point "^2.0.0" + strip-ansi "^5.1.0" + +strip-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" + integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= + dependencies: + ansi-regex "^3.0.0" + +strip-ansi@^5.1.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" + integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== + dependencies: + ansi-regex "^4.1.0" + +strip-bom@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" + integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= + +strip-json-comments@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" + integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= + +supports-color@^5.3.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +table@^5.0.2: + version "5.4.1" + resolved "https://registry.yarnpkg.com/table/-/table-5.4.1.tgz#0691ae2ebe8259858efb63e550b6d5f9300171e8" + integrity sha512-E6CK1/pZe2N75rGZQotFOdmzWQ1AILtgYbMAbAjvms0S1l5IDB47zG3nCnFGB/w+7nB3vKofbLXCH7HPBo864w== + dependencies: + ajv "^6.9.1" + lodash "^4.17.11" + slice-ansi "^2.1.0" + string-width "^3.0.0" + +text-table@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= + +through@^2.3.6: + version "2.3.8" + resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= + +tmp@^0.0.33: + version "0.0.33" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" + integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== + dependencies: + os-tmpdir "~1.0.2" + +tslib@^1.9.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.10.0.tgz#c3c19f95973fb0a62973fb09d90d961ee43e5c8a" + integrity sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ== + +type-check@~0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" + integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I= + dependencies: + prelude-ls "~1.1.2" + +uri-js@^4.2.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" + integrity sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ== + dependencies: + punycode "^2.1.0" + +validate-npm-package-license@^3.0.1: + version "3.0.4" + resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" + integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== + dependencies: + spdx-correct "^3.0.0" + spdx-expression-parse "^3.0.0" + +which@^1.2.9: + version "1.3.1" + resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" + integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== + dependencies: + isexe "^2.0.0" + +wordwrap@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" + integrity sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus= + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= + +write@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/write/-/write-0.2.1.tgz#5fc03828e264cea3fe91455476f7a3c566cb0757" + integrity sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c= + dependencies: + mkdirp "^0.5.1" From 73dc8d0056a9c9766530d3f5f7299c0faf951075 Mon Sep 17 00:00:00 2001 From: Andrey Sidorov Date: Wed, 19 Jun 2019 02:16:04 +0300 Subject: [PATCH 23/25] remove old zepto version --- zepto.appear.js | 98 ------------------------------------------------- 1 file changed, 98 deletions(-) delete mode 100644 zepto.appear.js diff --git a/zepto.appear.js b/zepto.appear.js deleted file mode 100644 index bfe9fdf..0000000 --- a/zepto.appear.js +++ /dev/null @@ -1,98 +0,0 @@ -/* - * jQuery appear plugin - customised for Zepto.js - * - * Copyright (c) 2012 Andrey Sidorov - * licensed under MIT license. - * - * https://github.com/morr/jquery.appear/ - * - * Version: 0.3.3 - */ -(function($) { - var selectors = []; - - var check_binded = false; - var check_lock = false; - var defaults = { - interval: 250, - force_process: false - } - var $window = $(window); - - var $prior_appeared; - - function process() { - check_lock = false; - for (var index = 0; index < selectors.length; index++) { - var $appeared = $(selectors[index]).filter(function() { - return $(this).is(':appeared'); - }); - - $appeared.trigger('appear', [$appeared]); - - if ($prior_appeared) { - var $disappeared = $prior_appeared.not($appeared); - $disappeared.trigger('disappear', [$disappeared]); - } - $prior_appeared = $appeared; - } - } - - // "appeared" custom filter - $.extend($.expr[':'], { - appeared : function() { - var $element = $(this); - if (!$element.is(':visible')) { - return false; - } - - var window_left = $window.scrollLeft(); - var window_top = $window.scrollTop(); - var offset = $element.offset(); - var left = offset.left; - var top = offset.top; - - if (top + $element.height() >= window_top && - top - ($element.data('appear-top-offset') || 0) <= window_top + $window.height() && - left + $element.width() >= window_left && - left - ($element.data('appear-left-offset') || 0) <= window_left + $window.width()) { - return this; - } else { - return false; - } - } - }); - - $.fn.appear = function(options) { - var opts = $.extend({}, defaults, options || {}); - var selector = this.selector || this; - if (!check_binded) { - var on_check = function() { - if (check_lock) { - return; - } - check_lock = true; - - setTimeout(process, opts.interval); - }; - - $(window).scroll(on_check).resize(on_check); - check_binded = true; - } - - if (opts.force_process) { - setTimeout(process, opts.interval); - } - selectors.push(selector); - return $(selector); - } - - - $.force_appear = function() { - if (check_binded) { - process(); - return true; - }; - return false; - } -})(Zepto); From c2d67d1be344bc1568f0214e00abd2de615f4eed Mon Sep 17 00:00:00 2001 From: Andrey Sidorov Date: Wed, 19 Jun 2019 02:43:50 +0300 Subject: [PATCH 24/25] bugfix of disappear logic --- CHANGELOG.md | 9 +++++++++ index.js | 32 +++++++++++++++----------------- package.json | 2 +- 3 files changed, 25 insertions(+), 18 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index db2f03d..d584544 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,15 @@ jquery-appear-original CHANGELOG ====================== +0.6.1 +----- +- Bugfix of `disappear` logic + +0.6.0 +----- +- *BREAKING CHANGE* `appear` event is triggered only once for visible element. +When element became disappeared, `appear` could be triggered once again. + 0.5.1 ----- - Add eslint diff --git a/index.js b/index.js index 7e78ba6..34f77f9 100644 --- a/index.js +++ b/index.js @@ -1,13 +1,3 @@ -/* - * jQuery appear plugin - * - * Copyright (c) 2012 Andrey Sidorov - * licensed under MIT license. - * - * https://github.com/morr/jquery.appear/ - * - * Version: 0.5 - */ (function ($) { var selectors = []; @@ -21,22 +11,30 @@ var $priorAppeared = []; - function appeared(selector) { - return $(selector).filter(function () { - return $(this).is(':appeared'); - }); + function isAppeared() { + return $(this).is(':appeared'); + } + + function isNotTriggered() { + return !$(this).data('_appear_triggered'); } function process() { checkLock = false; + for (var index = 0, selectorsLength = selectors.length; index < selectorsLength; index++) { - var $appeared = appeared(selectors[index]); + var $appeared = selectors[index].filter(isAppeared); - $appeared.trigger('appear', [$appeared]); + $appeared + .filter(isNotTriggered) + .data('_appear_triggered', true) + .trigger('appear', [$appeared]); if ($priorAppeared[index]) { var $disappeared = $priorAppeared[index].not($appeared); - $disappeared.trigger('disappear', [$disappeared]); + $disappeared + .data('_appear_triggered', false) + .trigger('disappear', [$disappeared]); } $priorAppeared[index] = $appeared; } diff --git a/package.json b/package.json index 767068e..c209f86 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,7 @@ "appear", "disappear" ], - "version": "0.5.1", + "version": "0.6.1", "author": { "name": "Andrey Sidorov", "email": "takandar@gmail.com", From 7a51cbef207434c71ba656a45aeb9e51f567288d Mon Sep 17 00:00:00 2001 From: Andrey Sidorov Date: Wed, 19 Jun 2019 02:50:05 +0300 Subject: [PATCH 25/25] bugfix --- CHANGELOG.md | 4 ++++ index.js | 2 +- package.json | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d584544..914c598 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,10 @@ jquery-appear-original CHANGELOG ====================== +0.6.2 +----- +- Bugfix + 0.6.1 ----- - Bugfix of `disappear` logic diff --git a/index.js b/index.js index 34f77f9..12f9686 100644 --- a/index.js +++ b/index.js @@ -23,7 +23,7 @@ checkLock = false; for (var index = 0, selectorsLength = selectors.length; index < selectorsLength; index++) { - var $appeared = selectors[index].filter(isAppeared); + var $appeared = $(selectors[index]).filter(isAppeared); $appeared .filter(isNotTriggered) diff --git a/package.json b/package.json index c209f86..40b7dd6 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,7 @@ "appear", "disappear" ], - "version": "0.6.1", + "version": "0.6.2", "author": { "name": "Andrey Sidorov", "email": "takandar@gmail.com",