Javascript again

* Added babel to get to use ES6
 * restructure for head srcipt
 * general work on javascript files
This commit is contained in:
Stephan 2019-03-31 12:00:57 +02:00
parent 9ce65091f4
commit 6095870ce3
11 changed files with 382 additions and 46 deletions

View file

@ -88,14 +88,10 @@
// Custom Globals
"globals" : {
"debugOn": true,
"hippie": true,
"viewW": true,
"viewH": true,
"htmlH": true,
"bodyW": true,
"bodyH": true,
"docPosY": true,
"docInitleft": true,
"initLeft": true,
"initY": true,
"viewHover": true,
"basicEase": true
} // additional predefined global variables

View file

@ -34,6 +34,7 @@ const gulpif = require('gulp-if');
const changed = require('gulp-changed');
const merge = require('merge-stream');
const spritesmith = require('gulp.spritesmith');
const babel = require('gulp-babel');
// const buffer = require('vinyl-buffer');
// const imagemin = require('gulp-imagemin');
@ -190,6 +191,7 @@ function code(cb) {
}),
plumber(),
// cache('code'),
babel(),
concat(hippie.jsFile +'.js'),
dest(output.code),
uglify(),

280
package-lock.json generated
View file

@ -1,9 +1,220 @@
{
"name": "hippie",
"version": "0.4.0",
"version": "0.4.1",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
"@babel/code-frame": {
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz",
"integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==",
"dev": true,
"requires": {
"@babel/highlight": "^7.0.0"
}
},
"@babel/core": {
"version": "7.4.0",
"resolved": "https://registry.npmjs.org/@babel/core/-/core-7.4.0.tgz",
"integrity": "sha512-Dzl7U0/T69DFOTwqz/FJdnOSWS57NpjNfCwMKHABr589Lg8uX1RrlBIJ7L5Dubt/xkLsx0xH5EBFzlBVes1ayA==",
"dev": true,
"requires": {
"@babel/code-frame": "^7.0.0",
"@babel/generator": "^7.4.0",
"@babel/helpers": "^7.4.0",
"@babel/parser": "^7.4.0",
"@babel/template": "^7.4.0",
"@babel/traverse": "^7.4.0",
"@babel/types": "^7.4.0",
"convert-source-map": "^1.1.0",
"debug": "^4.1.0",
"json5": "^2.1.0",
"lodash": "^4.17.11",
"resolve": "^1.3.2",
"semver": "^5.4.1",
"source-map": "^0.5.0"
},
"dependencies": {
"debug": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
"integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
"dev": true,
"requires": {
"ms": "^2.1.1"
}
},
"ms": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
"integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==",
"dev": true
}
}
},
"@babel/generator": {
"version": "7.4.0",
"resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.4.0.tgz",
"integrity": "sha512-/v5I+a1jhGSKLgZDcmAUZ4K/VePi43eRkUs3yePW1HB1iANOD5tqJXwGSG4BZhSksP8J9ejSlwGeTiiOFZOrXQ==",
"dev": true,
"requires": {
"@babel/types": "^7.4.0",
"jsesc": "^2.5.1",
"lodash": "^4.17.11",
"source-map": "^0.5.0",
"trim-right": "^1.0.1"
}
},
"@babel/helper-function-name": {
"version": "7.1.0",
"resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz",
"integrity": "sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw==",
"dev": true,
"requires": {
"@babel/helper-get-function-arity": "^7.0.0",
"@babel/template": "^7.1.0",
"@babel/types": "^7.0.0"
}
},
"@babel/helper-get-function-arity": {
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz",
"integrity": "sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ==",
"dev": true,
"requires": {
"@babel/types": "^7.0.0"
}
},
"@babel/helper-split-export-declaration": {
"version": "7.4.0",
"resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.4.0.tgz",
"integrity": "sha512-7Cuc6JZiYShaZnybDmfwhY4UYHzI6rlqhWjaIqbsJGsIqPimEYy5uh3akSRLMg65LSdSEnJ8a8/bWQN6u2oMGw==",
"dev": true,
"requires": {
"@babel/types": "^7.4.0"
}
},
"@babel/helpers": {
"version": "7.4.2",
"resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.4.2.tgz",
"integrity": "sha512-gQR1eQeroDzFBikhrCccm5Gs2xBjZ57DNjGbqTaHo911IpmSxflOQWMAHPw/TXk8L3isv7s9lYzUkexOeTQUYg==",
"dev": true,
"requires": {
"@babel/template": "^7.4.0",
"@babel/traverse": "^7.4.0",
"@babel/types": "^7.4.0"
}
},
"@babel/highlight": {
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0.tgz",
"integrity": "sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==",
"dev": true,
"requires": {
"chalk": "^2.0.0",
"esutils": "^2.0.2",
"js-tokens": "^4.0.0"
},
"dependencies": {
"ansi-styles": {
"version": "3.2.1",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
"integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
"dev": true,
"requires": {
"color-convert": "^1.9.0"
}
},
"chalk": {
"version": "2.4.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
"integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
"dev": true,
"requires": {
"ansi-styles": "^3.2.1",
"escape-string-regexp": "^1.0.5",
"supports-color": "^5.3.0"
}
},
"supports-color": {
"version": "5.5.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
"integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
"dev": true,
"requires": {
"has-flag": "^3.0.0"
}
}
}
},
"@babel/parser": {
"version": "7.4.2",
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.4.2.tgz",
"integrity": "sha512-9fJTDipQFvlfSVdD/JBtkiY0br9BtfvW2R8wo6CX/Ej2eMuV0gWPk1M67Mt3eggQvBqYW1FCEk8BN7WvGm/g5g==",
"dev": true
},
"@babel/template": {
"version": "7.4.0",
"resolved": "https://registry.npmjs.org/@babel/template/-/template-7.4.0.tgz",
"integrity": "sha512-SOWwxxClTTh5NdbbYZ0BmaBVzxzTh2tO/TeLTbF6MO6EzVhHTnff8CdBXx3mEtazFBoysmEM6GU/wF+SuSx4Fw==",
"dev": true,
"requires": {
"@babel/code-frame": "^7.0.0",
"@babel/parser": "^7.4.0",
"@babel/types": "^7.4.0"
}
},
"@babel/traverse": {
"version": "7.4.0",
"resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.4.0.tgz",
"integrity": "sha512-/DtIHKfyg2bBKnIN+BItaIlEg5pjAnzHOIQe5w+rHAw/rg9g0V7T4rqPX8BJPfW11kt3koyjAnTNwCzb28Y1PA==",
"dev": true,
"requires": {
"@babel/code-frame": "^7.0.0",
"@babel/generator": "^7.4.0",
"@babel/helper-function-name": "^7.1.0",
"@babel/helper-split-export-declaration": "^7.4.0",
"@babel/parser": "^7.4.0",
"@babel/types": "^7.4.0",
"debug": "^4.1.0",
"globals": "^11.1.0",
"lodash": "^4.17.11"
},
"dependencies": {
"debug": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
"integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
"dev": true,
"requires": {
"ms": "^2.1.1"
}
},
"globals": {
"version": "11.11.0",
"resolved": "https://registry.npmjs.org/globals/-/globals-11.11.0.tgz",
"integrity": "sha512-WHq43gS+6ufNOEqlrDBxVEbb8ntfXrfAUU2ZOpCxrBdGKW3gyv8mCxAfIBD0DroPKGrJ2eSsXsLtY9MPntsyTw==",
"dev": true
},
"ms": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
"integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==",
"dev": true
}
}
},
"@babel/types": {
"version": "7.4.0",
"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.4.0.tgz",
"integrity": "sha512-aPvkXyU2SPOnztlgo8n9cEiXW755mgyvueUPcpStqdzoSPm0fjO0vQBjLkt3JKJW7ufikfcnMTTPsN1xaTsBPA==",
"dev": true,
"requires": {
"esutils": "^2.0.2",
"lodash": "^4.17.11",
"to-fast-properties": "^2.0.0"
}
},
"JSV": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/JSV/-/JSV-4.0.2.tgz",
@ -3776,6 +3987,38 @@
}
}
},
"gulp-babel": {
"version": "8.0.0-beta.2",
"resolved": "https://registry.npmjs.org/gulp-babel/-/gulp-babel-8.0.0-beta.2.tgz",
"integrity": "sha512-GTC2PxAXWkp6u1fP+C5+kn5biQ0dKGhkOSSXvKAf3ykF0+R3tevmLm/zSIkc1+S7U1JwH3XTvuMwRL6LD+sEiw==",
"dev": true,
"requires": {
"plugin-error": "^1.0.1",
"replace-ext": "^1.0.0",
"through2": "^2.0.0",
"vinyl-sourcemaps-apply": "^0.2.0"
},
"dependencies": {
"plugin-error": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-1.0.1.tgz",
"integrity": "sha512-L1zP0dk7vGweZME2i+EeakvUNqSrdiI3F91TwEoYiGrAfUXmVv6fJIq4g82PAXxNsWOp0J7ZqQy/3Szz0ajTxA==",
"dev": true,
"requires": {
"ansi-colors": "^1.0.1",
"arr-diff": "^4.0.0",
"arr-union": "^3.1.0",
"extend-shallow": "^3.0.2"
}
},
"replace-ext": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz",
"integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=",
"dev": true
}
}
},
"gulp-cached": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/gulp-cached/-/gulp-cached-1.1.1.tgz",
@ -5044,6 +5287,12 @@
"integrity": "sha512-M7kLczedRMYX4L8Mdh4MzyAMM9O5osx+4FcOQuTvr3A9F2D9S5JXheN0ewNbrvK2UatkTRhL5ejGmGSjNMiZuw==",
"dev": true
},
"js-tokens": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
"integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
"dev": true
},
"js-yaml": {
"version": "3.4.6",
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.4.6.tgz",
@ -5062,6 +5311,12 @@
"dev": true,
"optional": true
},
"jsesc": {
"version": "2.5.2",
"resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
"integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==",
"dev": true
},
"jshint": {
"version": "2.10.2",
"resolved": "https://registry.npmjs.org/jshint/-/jshint-2.10.2.tgz",
@ -5139,6 +5394,15 @@
"integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=",
"dev": true
},
"json5": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/json5/-/json5-2.1.0.tgz",
"integrity": "sha512-8Mh9h6xViijj36g7Dxi+Y4S6hNGV96vcJZr/SrlHh1LR/pEn/8j/+qIBbs44YKl69Lrfctp4QD+AdWLTMqEZAQ==",
"dev": true,
"requires": {
"minimist": "^1.2.0"
}
},
"jsonfile": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-3.0.1.tgz",
@ -6311,7 +6575,7 @@
},
"yargs": {
"version": "3.32.0",
"resolved": "https://registry.npmjs.org/yargs/-/yargs-3.32.0.tgz",
"resolved": "http://registry.npmjs.org/yargs/-/yargs-3.32.0.tgz",
"integrity": "sha1-AwiOnr+edWtpdRYR0qXvWRSCyZU=",
"dev": true,
"requires": {
@ -9044,6 +9308,12 @@
"integrity": "sha1-F+bBH3PdTz10zaek/zI46a2b+JA=",
"dev": true
},
"to-fast-properties": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
"integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=",
"dev": true
},
"to-object-path": {
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz",
@ -9130,6 +9400,12 @@
"integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=",
"dev": true
},
"trim-right": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz",
"integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=",
"dev": true
},
"true-case-path": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-1.0.3.tgz",

View file

@ -1,6 +1,6 @@
{
"name": "hippie",
"version": "0.4.1",
"version": "0.4.2",
"description": "Hippie interweaves preeminent personal interface elements",
"main": "gulpfile.js",
"scripts": {
@ -17,10 +17,12 @@
},
"homepage": "https://github.com/sthag/hippie#readme",
"devDependencies": {
"@babel/core": "^7.4.0",
"browser-sync": "^2.26.3",
"del": "^4.0.0",
"gulp": "^4.0.0",
"gulp-autoprefixer": "^6.0.0",
"gulp-babel": "^8.0.0-beta.2",
"gulp-cached": "^1.1.1",
"gulp-changed": "^3.2.0",
"gulp-clean-css": "^4.0.0",

View file

@ -1,6 +1,6 @@
'use strict';
// This is called everytime
function setup() {
'use strict';
console.info('\n', hippie.brand, '\n\n');
if (debugOn) {
console.log('Debug information:\n', 'HTML:', hippie.screen, 'BODY:', hippie.body);
@ -14,6 +14,9 @@ function setup() {
// MODULE Scroll navigation
function HippieScroll($el) {
'use strict';
// this.$el = $el;
// console.log('Elements:', $el, this.$el);
// Toggle display on scroll position
// console.log('Scroll object added');
this.check = function() {
@ -32,7 +35,7 @@ function HippieScroll($el) {
}
initLeft = false;
}
}
};
// Add events to navigation elements
$('.js_scrolltop').click(function(event) {
event.preventDefault();
@ -61,29 +64,30 @@ function HippieScroll($el) {
// }
// https://stackoverflow.com/a/488073/1444149
function Utils() {}
Utils.prototype = {
constructor: Utils,
isElementInView: function (element, fullyInView) {
var pageTop = $(window).scrollTop();
var pageBottom = pageTop + $(window).height();
var elementTop = $(element).offset().top;
var elementBottom = elementTop + $(element).height();
if (fullyInView === true) {
return ((pageTop < elementTop) && (pageBottom > elementBottom));
} else {
return ((elementTop <= pageBottom) && (elementBottom >= pageTop));
}
}
};
var Utils = new Utils();
// function Utils() {}
//
// Utils.prototype = {
// constructor: Utils,
// isElementInView: function (element, fullyInView) {
// var pageTop = $(window).scrollTop();
// var pageBottom = pageTop + $(window).height();
// var elementTop = $(element).offset().top;
// var elementBottom = elementTop + $(element).height();
//
// if (fullyInView === true) {
// return ((pageTop < elementTop) && (pageBottom > elementBottom));
// } else {
// return ((elementTop <= pageBottom) && (elementBottom >= pageTop));
// }
// }
// };
//
// var Utils = new Utils();
// TEST
function scrollNav() {
'use strict';
$('.nav a').click(function() {
//Toggle Class
$(".active").removeClass("active");

View file

@ -42,7 +42,7 @@
{% block script %}
{{ super() }}
<script src="./js/{{hippie.jsFile}}.min.js" type="text/javascript"></script>
<script src="./js/{{hippie.jsFile}}.min.js"></script>
<script>
// Page specific
// ------------------------------------------------------------------------------

View file

@ -589,6 +589,7 @@
// ------------------------------------------------------------------------------
assetsLoaded = true;
logPerf('Assets loaded.');
// Create instance of object made by contructor function
var scrollUi = new HippieScroll($('.js_scrolltop'));
$(document).ready(function() {

View file

@ -21,15 +21,27 @@
{% endblock %}
{% block body %}
<input type="password" name="txtPassword" onkeypress="capLock(event)" />
<div id="divMayus" style="visibility:hidden">Caps Lock is on.</div>
<form action="">
<h2>Caps Lock</h2>
<div id="capsCheck">
<input type="password" name="txtPassword" onkeypress="capLock(event)" />
<div id="divMayus" style="visibility:hidden">Caps Lock is on.</div>
<form action="">
<input id="txtName" type="text" /><span id="error">Caps Lock is ON.</span>
</form>
</form>
</div>
<p>Navigation</p>
<h2>Navigation</h2>
{{ nav.main(data.demoadditionallinks, 'Tests') }}
<div id="divGame">
<h2>Number Game</h2>
<p class="guesses"></p>
<p class="lastResult"></p>
<p class="lowOrHi"></p>
<label for="guessField">Guess</label>
<input type="text" id="guessField" class="guessField">
<input type="submit" value="Submit guess" class="guessSubmit">
</div>
{% endblock %}
{% block script %}
@ -38,10 +50,42 @@
<script>
// Page specific
// ------------------------------------------------------------------------------
assetsLoaded = true;
logPerf('Assets loaded.');
$( document ).ready(function() {
console.log('HIPPIE Tests');
logPerf('JQ document ready event fired.');
let ranNum = Math.floor(Math.random() * 100) + 1;
const guesses = $('.guesses');
const lastResult = $('.lastResult');
const lowOrHi = $('.lowOrHi');
const guessField = $('.guessField');
const guessSubmit = $('.guessSubmit');
let guessCount = 1;
let resetButton;
function checkGuess() {
console.log('Random:', ranNum);
let userGuess = Number(guessField.value);
if (guessCount === 1) {
// guesses.get(0).textContent = 'Previous guesses: ';
guesses.html('Previous guesses: ');
}
// guesses[0].textContent += userGuess + ', ';
guesses.get(0).textContent += userGuess + ', ';
// var g = guesses.html();
// guesses.html(g += userGuess + ', ');
}
// checkGuess();
});
function capLock(e) {
kc = e.keyCode?e.keyCode:e.which;
sk = e.shiftKey?e.shiftKey:((kc == 16)?true:false);
@ -89,6 +133,7 @@ function capsDetect() {
}
});
}
capsDetect();
</script>
{% endblock %}

View file

@ -11,6 +11,13 @@
{% block meta %}{% endblock %}
{% include "hippie/partials/_head_script.njk" %}
<script>
debugOn = true;
document.addEventListener('DOMContentLoaded', function() {
logPerf('Document \'DOMContentLoaded\' event fired.');
});
logPerf('On HEAD, starting...');
</script>
{% include "demo/partials/_links.njk" %}
{% block links %}

View file

@ -11,6 +11,13 @@
{% block meta %}{% endblock %}
{% include "hippie/partials/_head_script.njk" %}
<script>
debugOn = true;
document.addEventListener('DOMContentLoaded', function() {
logPerf('Document \'DOMContentLoaded\' event fired.');
});
logPerf('On HEAD, starting...');
</script>
{% include "demo/partials/_links.njk" %}
{% block links %}

View file

@ -1,7 +1,7 @@
<!-- head.script.partial -->
<script>
//Entry script at page init
var debugOn = true;
var debugOn = false;
var debugOnScreen = true;
var assetsLoaded = false;
@ -51,8 +51,4 @@ function logPerf(msg) {
}
}
}
document.addEventListener('DOMContentLoaded', function() {
logPerf('Document \'DOMContentLoaded\' event fired.');
});
logPerf('On HEAD, starting...');
</script>