mirror of
https://github.com/webslides/WebSlides.git
synced 2025-08-21 12:21:46 +02:00
1.2.0
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "webslides",
|
"name": "webslides",
|
||||||
"version": "1.1.0",
|
"version": "1.2.0",
|
||||||
"description": "Making HTML presentations easy",
|
"description": "Making HTML presentations easy",
|
||||||
"main": "index.js",
|
"main": "index.js",
|
||||||
"repository": {
|
"repository": {
|
||||||
@@ -34,6 +34,7 @@
|
|||||||
"babel-preset-es2015": "^6.22.0",
|
"babel-preset-es2015": "^6.22.0",
|
||||||
"npm-run-all": "^4.0.2",
|
"npm-run-all": "^4.0.2",
|
||||||
"rimraf": "^2.6.0",
|
"rimraf": "^2.6.0",
|
||||||
|
"smart-banner-webpack-plugin": "^3.0.1",
|
||||||
"webpack": "^2.2.1",
|
"webpack": "^2.2.1",
|
||||||
"webpack-dev-server": "^2.4.1"
|
"webpack-dev-server": "^2.4.1"
|
||||||
},
|
},
|
||||||
|
@@ -1,3 +1,11 @@
|
|||||||
|
/*!
|
||||||
|
* Name: WebSlides
|
||||||
|
* Version: 1.2.0
|
||||||
|
* Date: 2017-03-02
|
||||||
|
* Description: Making HTML presentations easy
|
||||||
|
* URL: https://github.com/jlantunez/webslides#readme
|
||||||
|
* Credits: @jlantunez, @LuisSacristan, @Belelros
|
||||||
|
*/
|
||||||
/******/ (function(modules) { // webpackBootstrap
|
/******/ (function(modules) { // webpackBootstrap
|
||||||
/******/ // The module cache
|
/******/ // The module cache
|
||||||
/******/ var installedModules = {};
|
/******/ var installedModules = {};
|
||||||
@@ -182,6 +190,10 @@ var DOM = function () {
|
|||||||
var Keys = {
|
var Keys = {
|
||||||
ENTER: 13,
|
ENTER: 13,
|
||||||
SPACE: 32,
|
SPACE: 32,
|
||||||
|
RE_PAGE: 33,
|
||||||
|
AV_PAGE: 34,
|
||||||
|
END: 35,
|
||||||
|
HOME: 36,
|
||||||
LEFT: 37,
|
LEFT: 37,
|
||||||
UP: 38,
|
UP: 38,
|
||||||
RIGHT: 39,
|
RIGHT: 39,
|
||||||
@@ -325,16 +337,29 @@ var PLUGINS = {
|
|||||||
var WebSlides = function () {
|
var WebSlides = function () {
|
||||||
/**
|
/**
|
||||||
* Options for WebSlides
|
* Options for WebSlides
|
||||||
* @param {number|boolean} autoslide Is false by default. If a number is
|
* @param {number|boolean} autoslide If a number is provided, it will allow
|
||||||
* @param {boolean} changeOnClick Is false by default. If true, it will allow
|
* autosliding by said amount of miliseconds.
|
||||||
|
* @param {boolean} changeOnClick If true, it will allow
|
||||||
* clicking on any place to change the slide.
|
* clicking on any place to change the slide.
|
||||||
|
* @param {number} minWheelDelta Controls the amount of needed scroll to
|
||||||
|
* trigger navigation.
|
||||||
|
* @param {number} scrollWait Controls the amount of time to wait till
|
||||||
|
* navigation can occur again with scroll.
|
||||||
|
* @param {number} slideOffset Controls the amount of needed touch delta to
|
||||||
|
* trigger navigation.
|
||||||
*/
|
*/
|
||||||
function WebSlides() {
|
function WebSlides() {
|
||||||
var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
||||||
_ref$autoslide = _ref.autoslide,
|
_ref$autoslide = _ref.autoslide,
|
||||||
autoslide = _ref$autoslide === undefined ? false : _ref$autoslide,
|
autoslide = _ref$autoslide === undefined ? false : _ref$autoslide,
|
||||||
_ref$changeOnClick = _ref.changeOnClick,
|
_ref$changeOnClick = _ref.changeOnClick,
|
||||||
changeOnClick = _ref$changeOnClick === undefined ? false : _ref$changeOnClick;
|
changeOnClick = _ref$changeOnClick === undefined ? false : _ref$changeOnClick,
|
||||||
|
_ref$minWheelDelta = _ref.minWheelDelta,
|
||||||
|
minWheelDelta = _ref$minWheelDelta === undefined ? 40 : _ref$minWheelDelta,
|
||||||
|
_ref$scrollWait = _ref.scrollWait,
|
||||||
|
scrollWait = _ref$scrollWait === undefined ? 450 : _ref$scrollWait,
|
||||||
|
_ref$slideOffset = _ref.slideOffset,
|
||||||
|
slideOffset = _ref$slideOffset === undefined ? 50 : _ref$slideOffset;
|
||||||
|
|
||||||
_classCallCheck(this, WebSlides);
|
_classCallCheck(this, WebSlides);
|
||||||
|
|
||||||
@@ -388,18 +413,16 @@ var WebSlides = function () {
|
|||||||
*/
|
*/
|
||||||
this.interval_ = null;
|
this.interval_ = null;
|
||||||
/**
|
/**
|
||||||
* Amount of time to wait to go to next slide automatically or false to
|
* Options dictionary.
|
||||||
* disable the feature.
|
* @type {Object}
|
||||||
* @type {boolean|number}
|
|
||||||
* @private
|
|
||||||
*/
|
*/
|
||||||
this.autoslide_ = autoslide;
|
this.options = {
|
||||||
/**
|
autoslide: autoslide,
|
||||||
* Whether navigation should initiate on click or not.
|
changeOnClick: changeOnClick,
|
||||||
* @type {boolean}
|
minWheelDelta: minWheelDelta,
|
||||||
* @private
|
scrollWait: scrollWait,
|
||||||
*/
|
slideOffset: slideOffset
|
||||||
this.changeOnClick_ = changeOnClick;
|
};
|
||||||
|
|
||||||
if (!this.el) {
|
if (!this.el) {
|
||||||
throw new Error('Couldn\'t find the webslides container!');
|
throw new Error('Couldn\'t find the webslides container!');
|
||||||
@@ -494,7 +517,7 @@ var WebSlides = function () {
|
|||||||
value: function goToSlide(slideI) {
|
value: function goToSlide(slideI) {
|
||||||
var forward = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
|
var forward = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
|
||||||
|
|
||||||
if (this.isValidIndexSlide_(slideI) && !this.isMoving) {
|
if (this.isValidIndexSlide_(slideI) && !this.isMoving && this.currentSlideI_ !== slideI) {
|
||||||
this.isMoving = true;
|
this.isMoving = true;
|
||||||
var isMovingForward = false;
|
var isMovingForward = false;
|
||||||
|
|
||||||
@@ -704,7 +727,7 @@ var WebSlides = function () {
|
|||||||
* automatically.
|
* automatically.
|
||||||
*/
|
*/
|
||||||
value: function play(time) {
|
value: function play(time) {
|
||||||
time = time || this.autoslide_;
|
time = time || this.options.autoslide;
|
||||||
|
|
||||||
if (!this.interval_ && typeof time === 'number' && time > 0) {
|
if (!this.interval_ && typeof time === 'number' && time > 0) {
|
||||||
this.interval_ = setInterval(this.goNext.bind(this), time);
|
this.interval_ = setInterval(this.goNext.bind(this), time);
|
||||||
@@ -877,7 +900,7 @@ var ClickNav = function () {
|
|||||||
*/
|
*/
|
||||||
this.ws_ = wsInstance;
|
this.ws_ = wsInstance;
|
||||||
|
|
||||||
if (wsInstance.changeOnClick_) {
|
if (wsInstance.options.changeOnClick) {
|
||||||
this.ws_.el.addEventListener('click', this.onClick_.bind(this));
|
this.ws_.el.addEventListener('click', this.onClick_.bind(this));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1109,27 +1132,50 @@ var Keyboard = function () {
|
|||||||
key: 'onKeyPress_',
|
key: 'onKeyPress_',
|
||||||
value: function onKeyPress_(event) {
|
value: function onKeyPress_(event) {
|
||||||
var method = void 0;
|
var method = void 0;
|
||||||
|
var argument = void 0;
|
||||||
|
|
||||||
if (event.which === __WEBPACK_IMPORTED_MODULE_0__utils_keys__["a" /* default */].SPACE) {
|
// Check if there's a focused element that might use the keyboard.
|
||||||
method = this.ws_.goNext;
|
if (document.activeElement) {
|
||||||
} else {
|
var isContentEditable = document.activeElement.contentEditable !== 'inherit';
|
||||||
if (this.ws_.isVertical) {
|
var isInput = ['INPUT', 'SELECT', 'OPTION', 'TEXTAREA'].indexOf(document.activeElement.tagName) > -1;
|
||||||
if (event.which === __WEBPACK_IMPORTED_MODULE_0__utils_keys__["a" /* default */].DOWN) {
|
|
||||||
method = this.ws_.goNext;
|
if (isInput || isContentEditable) {
|
||||||
} else if (event.which === __WEBPACK_IMPORTED_MODULE_0__utils_keys__["a" /* default */].UP) {
|
return;
|
||||||
method = this.ws_.goPrev;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if (event.which === __WEBPACK_IMPORTED_MODULE_0__utils_keys__["a" /* default */].RIGHT) {
|
|
||||||
method = this.ws_.goNext;
|
|
||||||
} else if (event.which === __WEBPACK_IMPORTED_MODULE_0__utils_keys__["a" /* default */].LEFT) {
|
|
||||||
method = this.ws_.goPrev;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
switch (event.which) {
|
||||||
|
case __WEBPACK_IMPORTED_MODULE_0__utils_keys__["a" /* default */].AV_PAGE:
|
||||||
|
case __WEBPACK_IMPORTED_MODULE_0__utils_keys__["a" /* default */].SPACE:
|
||||||
|
method = this.ws_.goNext;
|
||||||
|
break;
|
||||||
|
case __WEBPACK_IMPORTED_MODULE_0__utils_keys__["a" /* default */].RE_PAGE:
|
||||||
|
method = this.ws_.goPrev;
|
||||||
|
break;
|
||||||
|
case __WEBPACK_IMPORTED_MODULE_0__utils_keys__["a" /* default */].HOME:
|
||||||
|
method = this.ws_.goToSlide;
|
||||||
|
argument = 0;
|
||||||
|
break;
|
||||||
|
case __WEBPACK_IMPORTED_MODULE_0__utils_keys__["a" /* default */].END:
|
||||||
|
method = this.ws_.goToSlide;
|
||||||
|
argument = this.ws_.maxSlide_ - 1;
|
||||||
|
break;
|
||||||
|
case __WEBPACK_IMPORTED_MODULE_0__utils_keys__["a" /* default */].DOWN:
|
||||||
|
method = this.ws_.isVertical ? this.ws_.goNext : null;
|
||||||
|
break;
|
||||||
|
case __WEBPACK_IMPORTED_MODULE_0__utils_keys__["a" /* default */].UP:
|
||||||
|
method = this.ws_.isVertical ? this.ws_.goPrev : null;
|
||||||
|
break;
|
||||||
|
case __WEBPACK_IMPORTED_MODULE_0__utils_keys__["a" /* default */].LEFT:
|
||||||
|
method = !this.ws_.isVertical ? this.ws_.goPrev : null;
|
||||||
|
break;
|
||||||
|
case __WEBPACK_IMPORTED_MODULE_0__utils_keys__["a" /* default */].RIGHT:
|
||||||
|
method = !this.ws_.isVertical ? this.ws_.goNext : null;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
if (method) {
|
if (method) {
|
||||||
method.call(this.ws_);
|
method.call(this.ws_, argument);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}]);
|
}]);
|
||||||
@@ -1333,8 +1379,6 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Cons
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
var MIN_WHEEL_DELTA = 40;
|
|
||||||
|
|
||||||
var Scroll = function () {
|
var Scroll = function () {
|
||||||
/**
|
/**
|
||||||
* Scroll handler for the WebSlides.
|
* Scroll handler for the WebSlides.
|
||||||
@@ -1396,7 +1440,7 @@ var Scroll = function () {
|
|||||||
|
|
||||||
this.timeout_ = setTimeout(function () {
|
this.timeout_ = setTimeout(function () {
|
||||||
_this.timeout_ = null;
|
_this.timeout_ = null;
|
||||||
}, 450);
|
}, this.ws_.options.scrollWait);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -1433,7 +1477,7 @@ var Scroll = function () {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Math.abs(wheelDeltaY) >= MIN_WHEEL_DELTA || Math.abs(wheelDeltaX) >= MIN_WHEEL_DELTA) {
|
if (Math.abs(wheelDeltaY) >= this.ws_.options.minWheelDelta || Math.abs(wheelDeltaX) >= this.ws_.options.minWheelDelta) {
|
||||||
if (isHorizontalMovement && this.isGoingLeft_ || !isHorizontalMovement && this.isGoingUp_) {
|
if (isHorizontalMovement && this.isGoingLeft_ || !isHorizontalMovement && this.isGoingUp_) {
|
||||||
this.ws_.goPrev();
|
this.ws_.goPrev();
|
||||||
} else {
|
} else {
|
||||||
@@ -1476,8 +1520,6 @@ var EVENTS = {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
var SLIDE_OFFSET = 50;
|
|
||||||
|
|
||||||
var Touch = function () {
|
var Touch = function () {
|
||||||
/**
|
/**
|
||||||
* @param {WebSlides} wsInstance The WebSlides instance
|
* @param {WebSlides} wsInstance The WebSlides instance
|
||||||
@@ -1590,9 +1632,9 @@ var Touch = function () {
|
|||||||
|
|
||||||
// It's an horizontal drag
|
// It's an horizontal drag
|
||||||
if (Math.abs(diffX) > Math.abs(diffY)) {
|
if (Math.abs(diffX) > Math.abs(diffY)) {
|
||||||
if (diffX < -SLIDE_OFFSET) {
|
if (diffX < -this.ws_.options.slideOffset) {
|
||||||
this.ws_.goPrev();
|
this.ws_.goPrev();
|
||||||
} else if (diffX > SLIDE_OFFSET) {
|
} else if (diffX > this.ws_.options.slideOffset) {
|
||||||
this.ws_.goNext();
|
this.ws_.goNext();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
10
static/js/webslides.min.js
vendored
10
static/js/webslides.min.js
vendored
File diff suppressed because one or more lines are too long
@@ -1,6 +1,8 @@
|
|||||||
|
const SmartBannerPlugin = require('smart-banner-webpack-plugin');
|
||||||
const path = require('path');
|
const path = require('path');
|
||||||
|
|
||||||
const src = path.join(__dirname, 'src');
|
const src = path.join(__dirname, 'src');
|
||||||
|
const pkg = require('./package.json');
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
context: src,
|
context: src,
|
||||||
@@ -24,5 +26,12 @@ module.exports = {
|
|||||||
include: src
|
include: src
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
},
|
||||||
|
plugins: [
|
||||||
|
new SmartBannerPlugin({
|
||||||
|
banner: `Name: WebSlides\nVersion: ${pkg.version}\nDate: ${new Date().toISOString().slice(0,10)}\nDescription: ${pkg.description}\nURL: ${pkg.homepage}\nCredits: @jlantunez, @LuisSacristan, @Belelros`,
|
||||||
|
raw: false,
|
||||||
|
entryOnly: true
|
||||||
|
})
|
||||||
|
],
|
||||||
};
|
};
|
||||||
|
Reference in New Issue
Block a user