Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/libgit2.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'tests/resources/userdiff/files/file.javascript')
-rw-r--r--tests/resources/userdiff/files/file.javascript108
1 files changed, 108 insertions, 0 deletions
diff --git a/tests/resources/userdiff/files/file.javascript b/tests/resources/userdiff/files/file.javascript
new file mode 100644
index 000000000..7cd3c5a8a
--- /dev/null
+++ b/tests/resources/userdiff/files/file.javascript
@@ -0,0 +1,108 @@
+/*
+ Some code extracted from https://github.com/julianlloyd/scrollReveal.js
+ which happens to be a trending Javascript repo with an MIT license at
+ the time I was working on Javascript userdiff support in libgit2
+
+ I extracted just some of the code, so I suspect this is no longer valid
+ Javascript code, but it contains enough example patterns to work.
+*/
+;(function (window) {
+
+ 'use strict';
+
+ var docElem = window.document.documentElement;
+
+ function getViewportH () {
+ var client = docElem['clientHeight'],
+ inner = window['innerHeight'],
+ sample = window['otherProperty'];
+
+ return (client < inner) ? inner : client;
+ }
+
+ function getOffset (el) {
+ var offsetTop = 0,
+ offsetLeft = 0;
+
+ do {
+ if (!isNaN(el.offsetTop)) {
+ offsetTop += el.offsetTop + 1;
+ }
+ if (!isNaN(el.offsetLeft)) {
+ offsetLeft += el.offsetLeft;
+ }
+ } while (el = el.offsetParent)
+
+ return {
+ top: offsetTop,
+ left: offsetLeft
+ }
+ }
+
+ function isElementInViewport (el, h) {
+ var scrolled = window.pageYOffset,
+ viewed = scrolled + getViewportH(),
+ elTop = getOffset(el).top,
+ elBottom = elTop + el.offsetHeight,
+ h = h || 0;
+
+ return (elTop + el.offsetHeight * h) <= viewed && (elBottom) >= scrolled;
+ }
+
+ scrollReveal.prototype = {
+
+ _init: function () {
+
+ var self = this;
+
+ this.elems = Array.prototype.slice.call(docElem.querySelectorAll('[data-scrollReveal]'));
+ this.scrolled = false;
+
+ this.elems.forEach(function (el, i) {
+ self.animate(el);
+ });
+
+ var scrollHandler = function () {
+ if (!self.scrolled) {
+ self.scrolled = true;
+ setTimeout(function () {
+ self._scrollPage();
+ }, 61);
+ }
+ };
+
+ var resizeHandler = function () {
+ function delayed() {
+ self._scrollPage();
+ self.resizeTimeout = null;
+ }
+ if (self.resizeTimeout) {
+ clearTimeout(self.resizeTimeout);
+ }
+ self.resizeTimeout = setTimeout(delayed, 200);
+ };
+
+ window.addEventListener('scroll', scrollHandler, false);
+ window.addEventListener('resize', resizeHandler, false);
+ },
+
+ /*=============================================================================*/
+
+ _scrollPage: function () {
+ var self = this;
+
+ this.elems.forEach(function (el, i) {
+ if (isElementInViewport(el, self.options.viewportFactor)) {
+ self.animate(el);
+ }
+ });
+ this.scrolled = false;
+ this.tested = true;
+ },
+ }; // end scrollReveal.prototype
+
+ document.addEventListener("DOMContentLoaded", function (evt) {
+ window.scrollReveal = new scrollReveal();
+ });
+
+})(window);