Skip to content

Commit

Permalink
new builds
Browse files Browse the repository at this point in the history
  • Loading branch information
Knape committed Jun 20, 2017
1 parent 76986b2 commit 2a90dbb
Show file tree
Hide file tree
Showing 6 changed files with 122 additions and 74 deletions.
4 changes: 2 additions & 2 deletions docs/js/bundle.min.js

Large diffs are not rendered by default.

18 changes: 14 additions & 4 deletions lib/events/event.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.filterDef = exports.touchEvent = exports.keybordEvent = exports.mouseEvent = exports.customEvent = undefined;
exports.filterDef = exports.touchEvent = exports.keybordEvent = exports.mouseEvent = exports.customEvent = exports.getEventType = undefined;

var _defaults = require('./defaults');

Expand All @@ -21,6 +21,15 @@ var _helpers = require('../utils/helpers.utils');

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

var getEventType = exports.getEventType = function getEventType(triggerName) {
var filteredKeys = Object.keys(_defaults.eventMap).filter(function (eventKey) {
return _defaults.eventMap[eventKey].find(function (name) {
return name === triggerName;
});
});
return (0, _helpers.first)(filteredKeys, 'CustomEvent');
};

/**
* Creates a Native Event and falls back to
* document.createEvent if event does not exist
Expand All @@ -29,12 +38,15 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
* @param {String} type
* @param {Object} options
*/


var createEventType = function createEventType(eventName, type, props) {
// eslint-disable-line
var eventNames = {
MouseEvent: (0, _helpers.hasMouseEventSupport)() ? MouseEvent : null,
KeyboardEvent: (0, _helpers.hasKeyboardEventSupport)() ? KeyboardEvent : null,
TouchEvent: (0, _helpers.hasTouchEventSupport)() ? TouchEvent : null
TouchEvent: (0, _helpers.hasTouchEventSupport)() ? TouchEvent : null,
CustomEvent: (0, _helpers.hasCustomEventSupport)() ? CustomEvent : null
};

if (!eventNames[eventName]) {
Expand All @@ -54,8 +66,6 @@ var createEventType = function createEventType(eventName, type, props) {
*
* @param {String} type
*/


var createEvent = function createEvent() {
var eventType = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'MouseEvent';

Expand Down
100 changes: 91 additions & 9 deletions lib/fire.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,37 +3,119 @@
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.load = exports.fire = exports.logDeprecationWarning = undefined;

var _event = require('./events/event');

var _event2 = _interopRequireDefault(_event);

var _helpers = require('./utils/helpers.utils');

var _position = require('./utils/position.utils');

var _helpers = require('./utils/helpers.utils');

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

var fire = function fire() {
var isOldArgStyle = function isOldArgStyle(el) {
return typeof el !== 'string';
};

var logDeprecationWarning = exports.logDeprecationWarning = function logDeprecationWarning(method) {
console.warn('You are passing a deprecated argument style to ' + method);
console.warn('Please update your code to the latest API');
console.warn('This will result in an error in the next version');
};

/**
*
* As we have two ways of passing arguents to both fire and load
* we need to convert them to the same argumentstyle
*
* @param {String} eventName
* @param {String} eventType
* @param {Node} element
* @param {Array} rest
*
**/
var createEventWrapper = function createEventWrapper() {
for (var _len = arguments.length, rest = Array(_len > 3 ? _len - 3 : 0), _key = 3; _key < _len; _key++) {
rest[_key - 3] = arguments[_key];
}

var eventName = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'MouseEvent';
var triggerName = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'click';
var eventType = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'click';
var element = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : document;

var options = rest.reduce(_helpers.mergeArrayObjects, {});
var opts = rest.reduce(_helpers.mergeArrayObjects, {});
// Append the correct client and page props to
// the options object if we dont pass any
if ((0, _helpers.isElement)(element) && !(0, _helpers.hasKeys)(options, 'clientX', 'clientY')) {
Object.assign(options, (0, _position.position)(element));
if ((0, _helpers.isElement)(element) && !(0, _helpers.hasKeys)(opts, 'clientX', 'clientY')) {
Object.assign(opts, (0, _position.position)(element));
}

// Create the custom event, dispatchit and then return the event
var newEvent = (0, _event2.default)(eventName)(triggerName, element, options);
var newEvent = (0, _event2.default)(eventName)(eventType, element, opts);
element.dispatchEvent(newEvent);
return newEvent;
};

exports.default = fire;
var fire = exports.fire = function fire() {
for (var _len2 = arguments.length, rest = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {
rest[_key2 - 2] = arguments[_key2];
}

var eventType = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'click';
var element = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : document;

var isNewStyle = isOldArgStyle(element);

if (!isNewStyle) logDeprecationWarning('fire');

// If we are passing arguments as the new style we
// need to find out what constructor we will use
var eventName = isNewStyle ? (0, _event.getEventType)(eventType) : eventType;

// Create the correct event beased on how we suppyly our arguments
return typeof element !== 'string' ? createEventWrapper(eventName, eventType, element, rest) : createEventWrapper(eventName, element, rest[0], rest.slice(1));
};

/**
* Load Instance, works as fire but waiths for the spray method to call it.
*
* @param {String} eventName
* @param {String} eventType
* @param {Node} element
* @param {Object} options
**/
var load = exports.load = function load() {
for (var _len3 = arguments.length, rest = Array(_len3 > 2 ? _len3 - 2 : 0), _key3 = 2; _key3 < _len3; _key3++) {
rest[_key3 - 2] = arguments[_key3];
}

var eventType = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'click';
var element = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : document;

return function () {
var opt = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};

return new Promise(function (resolve) {
setTimeout(function () {
var isNewStyle = isOldArgStyle(element);

if (!isNewStyle) logDeprecationWarning('load');

// If we are passing arguments as the new style we
// need to find out what constructor we will use
var eventName = isNewStyle ? (0, _event.getEventType)(eventType) : eventType;

// Depending on what kind of arguments style we are using
// we nned to assign the correct argument to options
var options = isNewStyle ? Object.assign({}, rest.reduce(_helpers.mergeArrayObjects, {}), opt) : Object.assign({}, rest.slice(1).reduce(_helpers.mergeArrayObjects, {}), opt);

// Create the correct event beased on how we suppyly our arguments
var event = typeof element !== 'string' ? // Otherwise flow compains
createEventWrapper(eventName, eventType, element, options) : createEventWrapper(eventName, element, rest[0], options);
resolve({ event: event, eventName: eventName });
}, opt.speed || 0);
});
};
};
16 changes: 8 additions & 8 deletions lib/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,10 @@ exports.keyCode = exports.touches = exports.center = exports.position = exports.

var _fire = require('./fire');

var _fire2 = _interopRequireDefault(_fire);

var _spray = require('./spray');

var _spray2 = _interopRequireDefault(_spray);

var _rampage = require('./rampage');

var _rampage2 = _interopRequireDefault(_rampage);
Expand All @@ -28,9 +28,9 @@ var _keyboard2 = _interopRequireDefault(_keyboard);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

var th = {
fire: _fire2.default,
load: _spray.load,
spray: _spray.spray,
fire: _fire.fire,
load: _fire.load,
spray: _spray2.default,
rampage: _rampage2.default,
position: _position.position,
center: _position.center,
Expand All @@ -39,9 +39,9 @@ var th = {
};

exports.default = th;
exports.fire = _fire2.default;
exports.load = _spray.load;
exports.spray = _spray.spray;
exports.fire = _fire.fire;
exports.load = _fire.load;
exports.spray = _spray2.default;
exports.rampage = _rampage2.default;
exports.position = _position.position;
exports.center = _position.center;
Expand Down
51 changes: 2 additions & 49 deletions lib/spray.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,22 +3,15 @@
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.spray = exports.load = undefined;

var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };

var _event = require('./events/event');

var _event2 = _interopRequireDefault(_event);

var _eventProps = require('./events/event-props');

var _eventProps2 = _interopRequireDefault(_eventProps);

var _helpers = require('./utils/helpers.utils');

var _position = require('./utils/position.utils');

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

/**
Expand Down Expand Up @@ -63,54 +56,14 @@ var caller = function caller(instances, index, options) {
});
};

/**
* Load Instance, works as fire but waiths for the spray method to call it.
*
* @param {String} eventName
* @param {String} triggerName
* @param {Node} element
* @param {Object} options
**/
var load = exports.load = function load() {
for (var _len = arguments.length, rest = Array(_len > 3 ? _len - 3 : 0), _key = 3; _key < _len; _key++) {
rest[_key - 3] = arguments[_key];
}

var eventName = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'MouseEvent';
var triggerName = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'click';
var element = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : document;

return function () {
var opt = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};

return new Promise(function (resolve) {
setTimeout(function () {
var options = rest.reduce(_helpers.mergeArrayObjects, {});
// If we pass an element but without specifying its positoin we need
// to calculate clientX and clientY relative to passed element
if ((0, _helpers.isElement)(element) && !(0, _helpers.hasKeys)(options, 'clientX', 'clientY')) {
Object.assign(options, (0, _position.position)(element));
}

var combinedOpts = Object.assign({}, options, opt);
var event = (0, _event2.default)(eventName)(triggerName, element, combinedOpts);
element.dispatchEvent(event);
resolve({
event: event,
eventName: eventName
});
}, opt.speed || 0);
});
};
};

/**
* Spray method.
*
* @param {Function, Array} instance
* @param {Object} options
**/
var spray = exports.spray = function spray(instance) {

exports.default = function (instance) {
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {
speed: 100,
steps: 10,
Expand Down
7 changes: 5 additions & 2 deletions lib/utils/helpers.utils.js
Original file line number Diff line number Diff line change
Expand Up @@ -54,8 +54,8 @@ var mergeArrayObjects = exports.mergeArrayObjects = function mergeArrayObjects(a
*
* @param {Array} array
**/
var first = exports.first = function first(array) {
return array[0];
var first = exports.first = function first(array, defaults) {
return Array.isArray(array) && array[0] ? array[0] : defaults;
};

/**
Expand Down Expand Up @@ -109,4 +109,7 @@ var hasKeyboardEventSupport = exports.hasKeyboardEventSupport = function hasKeyb
};
var hasMouseEventSupport = exports.hasMouseEventSupport = function hasMouseEventSupport() {
return typeof MouseEvent !== 'undefined';
};
var hasCustomEventSupport = exports.hasCustomEventSupport = function hasCustomEventSupport() {
return typeof CustomEvent !== 'undefined';
};

0 comments on commit 2a90dbb

Please sign in to comment.