From 0940aef13e697222cfc60bdb940906725a48017c Mon Sep 17 00:00:00 2001 From: fhackenberger Date: Thu, 31 Jan 2013 16:51:35 +0100 Subject: [PATCH 01/36] Make sure it also works in scrolling parents MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Until this patch the appear plugin did not fire any events in the following scenario:
  ....  
    .....    
 
  ....
--- jquery.appear.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/jquery.appear.js b/jquery.appear.js index 837a0b7..00c4e3f 100644 --- a/jquery.appear.js +++ b/jquery.appear.js @@ -73,6 +73,11 @@ }; $(window).scroll(on_check).resize(on_check); + this.parents().each(function() { + $this = $(this); + if($this.css('overflow') == 'scroll' || $this.css('overflow-x') == 'scroll' || $this.css('overflow-y') == 'scroll') + $this.scroll(on_check).resize(on_check); + }); check_binded = true; } From c6b3df55a1e7a1f18d4bdb2ccda58552272fc8d8 Mon Sep 17 00:00:00 2001 From: Andrey Sidorov Date: Sat, 2 Feb 2013 11:42:03 +0400 Subject: [PATCH 02/36] version bump --- AUTHORS.txt | 1 + appear.jquery.json | 2 +- jquery.appear.js | 3 ++- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/AUTHORS.txt b/AUTHORS.txt index 0ab1947..8c2d7c1 100644 --- a/AUTHORS.txt +++ b/AUTHORS.txt @@ -1,2 +1,3 @@ Andrey Sidorov Boris Nadion +fhackenberger diff --git a/appear.jquery.json b/appear.jquery.json index 3bd49e1..cf43608 100644 --- a/appear.jquery.json +++ b/appear.jquery.json @@ -6,7 +6,7 @@ "event", "appear" ], - "version": "0.2.1", + "version": "0.3.0", "author": { "name": "Andrey Sidorov", "email" : "takandar@gmail.com", diff --git a/jquery.appear.js b/jquery.appear.js index 00c4e3f..7a07c2f 100644 --- a/jquery.appear.js +++ b/jquery.appear.js @@ -75,8 +75,9 @@ $(window).scroll(on_check).resize(on_check); this.parents().each(function() { $this = $(this); - if($this.css('overflow') == 'scroll' || $this.css('overflow-x') == 'scroll' || $this.css('overflow-y') == 'scroll') + if ($this.css('overflow') == 'scroll' || $this.css('overflow-x') == 'scroll' || $this.css('overflow-y') == 'scroll') { $this.scroll(on_check).resize(on_check); + } }); check_binded = true; } From 9a531d34b4dc7cacb688db885183175ed070ee4f Mon Sep 17 00:00:00 2001 From: Andrey Sidorov Date: Thu, 7 Feb 2013 03:31:07 +0400 Subject: [PATCH 03/36] added demo page. removed not working changes. reverted version back to 0.2.1 --- README.md | 2 ++ appear.jquery.json | 3 ++- jquery.appear.js | 6 ------ 3 files changed, 4 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index f67c5f9..693d610 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,8 @@ This is a total revamp of original jquery.appear plugin hosted on http://code.google.com/p/jquery-appear/ +Demo page + 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* event which is fired when an element became visible in the browser viewport. diff --git a/appear.jquery.json b/appear.jquery.json index cf43608..08741b2 100644 --- a/appear.jquery.json +++ b/appear.jquery.json @@ -6,7 +6,7 @@ "event", "appear" ], - "version": "0.3.0", + "version": "0.2.1", "author": { "name": "Andrey Sidorov", "email" : "takandar@gmail.com", @@ -25,6 +25,7 @@ } ], "homepage": "https://github.com/morr/jquery.appear", + "demo": "http://morr.github.com/appear.html", "dependencies": { "jquery": ">=1.5" } diff --git a/jquery.appear.js b/jquery.appear.js index 7a07c2f..837a0b7 100644 --- a/jquery.appear.js +++ b/jquery.appear.js @@ -73,12 +73,6 @@ }; $(window).scroll(on_check).resize(on_check); - this.parents().each(function() { - $this = $(this); - if ($this.css('overflow') == 'scroll' || $this.css('overflow-x') == 'scroll' || $this.css('overflow-y') == 'scroll') { - $this.scroll(on_check).resize(on_check); - } - }); check_binded = true; } From 112804a04444cd9d5e3e1d7ba9bf85b479c89aa1 Mon Sep 17 00:00:00 2001 From: Andrey Sidorov Date: Fri, 8 Feb 2013 21:17:36 +0400 Subject: [PATCH 04/36] added disappear event. removed first argument from $.fn.appear. "appear" is now triggered for each element in selector (before it was triggered forr a first element only) --- CHANGELOG | 1 + README.md | 14 +++++++++----- appear.jquery.json | 8 +++++--- jquery.appear.js | 38 +++++++++++++++++++++----------------- 4 files changed, 36 insertions(+), 25 deletions(-) create mode 100644 CHANGELOG diff --git a/CHANGELOG b/CHANGELOG new file mode 100644 index 0000000..d0db975 --- /dev/null +++ b/CHANGELOG @@ -0,0 +1 @@ +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 693d610..02612ea 100644 --- a/README.md +++ b/README.md @@ -2,22 +2,26 @@ This is a total revamp of original jquery.appear plugin hosted on http://code.google.com/p/jquery-appear/ -Demo page +Check demo page! 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* event which is fired when an element became visible in the browser viewport. +It implements a custom *appear*/*disappear* events which are fired when an element became visible/invisible in the browser viewport. - $('someselector').appear(); - $('someselector').on('appear', function() { + $('someselector').appear(); // Function supports optinal hash with "force_appear" and "interval" keys. Check source code for details. + + $('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 vieport 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 -Appear checking can be forced by calling *$.force_appear()*. This is usable in cases when page is in initial state (not scrolled and not resized) and you want manually trigger appearance check. +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. diff --git a/appear.jquery.json b/appear.jquery.json index 08741b2..19841a1 100644 --- a/appear.jquery.json +++ b/appear.jquery.json @@ -1,12 +1,13 @@ { "name": "appear", "title": "jQuery Appear", - "description": "It implements a custom 'appear' event which is fired when an element became visible in the browser view port.", + "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" + "appear", + "disappear" ], - "version": "0.2.1", + "version": "0.3.1", "author": { "name": "Andrey Sidorov", "email" : "takandar@gmail.com", @@ -26,6 +27,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" } diff --git a/jquery.appear.js b/jquery.appear.js index 837a0b7..2970bf7 100644 --- a/jquery.appear.js +++ b/jquery.appear.js @@ -6,32 +6,36 @@ * * https://github.com/morr/jquery.appear/ * - * Version: 0.2.1 + * Version: 0.3.1 */ (function($) { - var data = {}; + var selectors = []; + var check_binded = false; var check_lock = false; var defaults = { - interval: 250 + interval: 250, + force_appear: false } var $window = $(window); var $document = $(document); + var $prior_appeared; + function process() { check_lock = false; - for (var selector in data) { - var $appeared = $(selector).filter(function() { + for (var index in selectors) { + var $appeared = $(selectors[index]).filter(function() { return $(this).is(':appeared'); }); - if ($appeared.length) { - if (data[selector]) { - data[selector]($appeared); - } else { - $appeared.first().trigger('appear', [$appeared]); - } + $appeared.trigger('appear', [$appeared]); + + if ($prior_appeared) { + var $disappeared = $prior_appeared.not($appeared); + $disappeared.trigger('disappear', [$disappeared]); } + $prior_appeared = $appeared; } } @@ -60,8 +64,8 @@ $.fn.extend({ // watching for element's appearance in browser viewport - appear: function(callback, options) { - $.extend(defaults, options || {}); + appear: function(options) { + var opts = $.extend({}, defaults, options || {}); if (!check_binded) { var on_check = function() { if (check_lock) { @@ -69,17 +73,17 @@ } check_lock = true; - setTimeout(process, defaults.interval); + setTimeout(process, opts.interval); }; $(window).scroll(on_check).resize(on_check); check_binded = true; } - if (options && options.force_process) { - setTimeout(process, defaults.interval); + if (opts.force_process) { + setTimeout(process, opts.interval); } - data[this.selector] = callback; + selectors.push(this.selector); return $(this.selector); } }); From fc0b7b84c5973e8cec9339ef299c80730e5b7f38 Mon Sep 17 00:00:00 2001 From: Juan Hoyos Date: Wed, 20 Feb 2013 15:13:16 -0500 Subject: [PATCH 05/36] Support elements and jQuery objects for processing --- jquery.appear.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/jquery.appear.js b/jquery.appear.js index 2970bf7..c1ea327 100644 --- a/jquery.appear.js +++ b/jquery.appear.js @@ -66,6 +66,7 @@ // watching for element's appearance in browser viewport appear: function(options) { var opts = $.extend({}, defaults, options || {}); + var selector = this.selector || this; if (!check_binded) { var on_check = function() { if (check_lock) { @@ -83,8 +84,8 @@ if (opts.force_process) { setTimeout(process, opts.interval); } - selectors.push(this.selector); - return $(this.selector); + selectors.push(selector); + return $(selector); } }); From a27b89f8253017f56ed99b1da20807f248979dad Mon Sep 17 00:00:00 2001 From: Juan Hoyos Date: Fri, 22 Feb 2013 16:30:29 -0500 Subject: [PATCH 06/36] Removed unused document reference --- jquery.appear.js | 1 - 1 file changed, 1 deletion(-) diff --git a/jquery.appear.js b/jquery.appear.js index c1ea327..91ca95a 100644 --- a/jquery.appear.js +++ b/jquery.appear.js @@ -18,7 +18,6 @@ force_appear: false } var $window = $(window); - var $document = $(document); var $prior_appeared; From 8979b340345e31d65e450dcf5bc861fddc8ade0f Mon Sep 17 00:00:00 2001 From: Juan Hoyos Date: Fri, 22 Feb 2013 16:30:29 -0500 Subject: [PATCH 07/36] Removed unused document reference --- jquery.appear.js | 1 - 1 file changed, 1 deletion(-) diff --git a/jquery.appear.js b/jquery.appear.js index 2970bf7..ae12a94 100644 --- a/jquery.appear.js +++ b/jquery.appear.js @@ -18,7 +18,6 @@ force_appear: false } var $window = $(window); - var $document = $(document); var $prior_appeared; From 0ea3950044cdbdf1dbfb7c95ea51afb82d636f5c Mon Sep 17 00:00:00 2001 From: Juan Hoyos Date: Wed, 27 Feb 2013 11:39:53 -0500 Subject: [PATCH 08/36] Fixed not forcing the processing via settings --- jquery.appear.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jquery.appear.js b/jquery.appear.js index ae12a94..5cdc5f7 100644 --- a/jquery.appear.js +++ b/jquery.appear.js @@ -15,7 +15,7 @@ var check_lock = false; var defaults = { interval: 250, - force_appear: false + force_process: false } var $window = $(window); From a576ccc5ba845e40738131fb3ffbe5df612a7df7 Mon Sep 17 00:00:00 2001 From: Andrey Sidorov Date: Sat, 23 Mar 2013 12:05:18 +0400 Subject: [PATCH 09/36] version bump --- AUTHORS.txt | 1 + CHANGELOG | 1 + README.md | 4 +++- appear.jquery.json | 2 +- 4 files changed, 6 insertions(+), 2 deletions(-) diff --git a/AUTHORS.txt b/AUTHORS.txt index 8c2d7c1..2f7b4f6 100644 --- a/AUTHORS.txt +++ b/AUTHORS.txt @@ -1,3 +1,4 @@ Andrey Sidorov +Juan Hoyos Boris Nadion fhackenberger diff --git a/CHANGELOG b/CHANGELOG index d0db975..73e5083 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1 +1,2 @@ 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). +0.3.2 Code cleanups. Appear now supports not only jQuery selectors but also raw DOM nodes wrapped in jQuery. diff --git a/README.md b/README.md index 02612ea..39f0db7 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,9 @@ 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(); // Function supports optinal hash with "force_appear" and "interval" keys. Check source code for details. + $('someselector').appear(); // It supports optinal 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 diff --git a/appear.jquery.json b/appear.jquery.json index 19841a1..c0fe208 100644 --- a/appear.jquery.json +++ b/appear.jquery.json @@ -7,7 +7,7 @@ "appear", "disappear" ], - "version": "0.3.1", + "version": "0.3.2", "author": { "name": "Andrey Sidorov", "email" : "takandar@gmail.com", From 9395b62c52ec7cd54fba1b2765a3260748ddd668 Mon Sep 17 00:00:00 2001 From: Geoff Hayes Date: Sun, 2 Jun 2013 17:52:14 -0600 Subject: [PATCH 10/36] Fix issue when using modified Array.prototype for IE8 backports When backporting Array compatibility to IE, functions my be added such as: if (!Array.prototype.diff) { Array.prototype.diff = function(a) { return this.filter(function(i) {return !(a.indexOf(i) > -1);}); }; } (see Compatibility in MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOf?redirectlocale=en-US&redirectslug=JavaScript%2FReference%2FGlobal_Objects%2FArray%2FindexOf) The for (index in some_array) will include non "hasOwnProperty" indices and thus break with this backport. Using for (var i = 0; i < some_array.length; i++) syntax will fix this. --- jquery.appear.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jquery.appear.js b/jquery.appear.js index dc5de4f..6dd15b1 100644 --- a/jquery.appear.js +++ b/jquery.appear.js @@ -23,7 +23,7 @@ function process() { check_lock = false; - for (var index in selectors) { + for (var index = 0; index < selectors.length; index++) { var $appeared = $(selectors[index]).filter(function() { return $(this).is(':appeared'); }); From f5905c7ae8dd5015ac94bcf3e0a4e8b359a29c67 Mon Sep 17 00:00:00 2001 From: Andrey Sidorov Date: Tue, 4 Jun 2013 00:16:47 +0400 Subject: [PATCH 11/36] version bump --- .gitignore | 1 + AUTHORS.txt | 3 ++- CHANGELOG | 3 ++- appear.jquery.json | 2 +- jquery.appear.js | 2 +- 5 files changed, 7 insertions(+), 4 deletions(-) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e43b0f9 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.DS_Store diff --git a/AUTHORS.txt b/AUTHORS.txt index 2f7b4f6..603a0e5 100644 --- a/AUTHORS.txt +++ b/AUTHORS.txt @@ -1,4 +1,5 @@ -Andrey Sidorov +Andrey Sidorov Juan Hoyos Boris Nadion fhackenberger +hayesgm diff --git a/CHANGELOG b/CHANGELOG index 73e5083..63167e7 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,2 +1,3 @@ -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). +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/appear.jquery.json b/appear.jquery.json index c0fe208..012b4a2 100644 --- a/appear.jquery.json +++ b/appear.jquery.json @@ -7,7 +7,7 @@ "appear", "disappear" ], - "version": "0.3.2", + "version": "0.3.3", "author": { "name": "Andrey Sidorov", "email" : "takandar@gmail.com", diff --git a/jquery.appear.js b/jquery.appear.js index 6dd15b1..ff0b764 100644 --- a/jquery.appear.js +++ b/jquery.appear.js @@ -6,7 +6,7 @@ * * https://github.com/morr/jquery.appear/ * - * Version: 0.3.1 + * Version: 0.3.3 */ (function($) { var selectors = []; From 0a7659a4b51120c5b1557ba250bab012349d6d2d Mon Sep 17 00:00:00 2001 From: Fisk Date: Thu, 12 Sep 2013 23:28:58 +0300 Subject: [PATCH 12/36] 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 13/36] 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 14/36] 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 15/36] 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 16/36] 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 17/36] 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 18/36] 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 19/36] 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 20/36] 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 21/36] 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 22/36] 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 23/36] 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 24/36] 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 25/36] 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 26/36] 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 27/36] 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 28/36] 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 29/36] 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 30/36] 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 31/36] 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 32/36] 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 33/36] 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 34/36] 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 35/36] 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 36/36] 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",