@pluginjs/events
Advanced tools
Comparing version 0.7.9 to 0.7.10
/*! | ||
* @pluginjs/events v0.7.9 (https://pluginjs.com) | ||
* @pluginjs/events v0.7.10 (https://pluginjs.com) | ||
* Copyright 2019 Creation Studio Limited | ||
* Released under the GPL-3.0 License. | ||
*/ | ||
undefined | ||
'use strict'; | ||
Object.defineProperty(exports, '__esModule', { value: true }); | ||
function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; } | ||
var is = require('@pluginjs/is'); | ||
var utils = require('@pluginjs/utils'); | ||
var Emitter = _interopDefault(require('@pluginjs/emitter')); | ||
class EventEmitter extends Emitter { | ||
constructor(element) { | ||
super(); | ||
this.element = element; | ||
this.element._eventEmitter = this; | ||
} | ||
static getEventEmitter(element) { | ||
if (!element._eventEmitter) { | ||
element._eventEmitter = new this(element); | ||
} | ||
return element._eventEmitter; | ||
} | ||
} | ||
/* eslint-disable no-undefined, no-undef */ | ||
const supportEventListener = element => { | ||
return typeof element === 'object' && 'addEventListener' in element; | ||
}; | ||
const trigger = function trigger(event) { | ||
for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { | ||
args[_key - 1] = arguments[_key]; | ||
} | ||
const element = args[args.length - 1]; | ||
if (!supportEventListener(element)) { | ||
return; | ||
} | ||
if (event instanceof window.Event) { | ||
element.dispatchEvent(event); | ||
return; | ||
} | ||
const data = args.length > 1 ? args.slice(0, args.length - 1) : null; | ||
const _EventEmitter$parseEv = EventEmitter.parseEvent(event), | ||
eventName = _EventEmitter$parseEv.eventName, | ||
namespace = _EventEmitter$parseEv.namespace; | ||
const cusEvent = new CustomEvent(eventName, { | ||
cancelable: true, | ||
bubbles: true, | ||
detail: data | ||
}); | ||
if (namespace) { | ||
cusEvent.namespace = namespace; | ||
} | ||
element.dispatchEvent(cusEvent); | ||
}; | ||
const getDelegator = (event, selector, callback, element) => { | ||
return (e, args) => { | ||
let target = e.target; | ||
const currentTarget = e.currentTarget || element; | ||
const applyArgs = args ? [e].concat(args) : [e]; | ||
let result; | ||
if (is.isString(selector)) { | ||
while (target && target !== currentTarget) { | ||
if (target.matches(selector)) { | ||
result = callback.apply(target, applyArgs); | ||
} | ||
target = target.parentNode; | ||
} | ||
} else { | ||
result = callback.apply(currentTarget, applyArgs); | ||
} | ||
if (result === false) { | ||
e.preventDefault(); | ||
e.stopPropagation(); | ||
} | ||
}; | ||
}; | ||
const dispatch = e => { | ||
const eventName = typeof e.namespace === 'undefined' ? e.type : "".concat(e.type, ".").concat(e.namespace); | ||
const emitter = EventEmitter.getEventEmitter(e.currentTarget); | ||
if (e.detail) { | ||
emitter.emit(eventName, e, e.detail); | ||
} else { | ||
emitter.emit(eventName, e); | ||
} | ||
}; | ||
const bind = (event, selector, callback, element, once) => { | ||
const emitter = EventEmitter.getEventEmitter(element); | ||
const _EventEmitter$parseEv2 = EventEmitter.parseEvent(event), | ||
eventName = _EventEmitter$parseEv2.eventName; | ||
if (!emitter.hasListeners(event)) { | ||
element.addEventListener(eventName, dispatch, false); | ||
} | ||
const delegator = getDelegator(event, selector, callback, element); | ||
callback._delegator = delegator; | ||
if (once) { | ||
emitter.once(event, delegator); | ||
} else { | ||
emitter.on(event, delegator); | ||
} | ||
}; | ||
const removeEvent = utils.curryWith((events, selector, callback, element) => { | ||
const eventArr = events.split(' '); | ||
if (eventArr.length > 1) { | ||
eventArr.forEach(e => { | ||
removeEvent(e, selector, callback, element); | ||
}); | ||
} else { | ||
if (!is.isString(selector) && !is.isFunction(callback)) { | ||
element = callback; | ||
callback = selector; | ||
selector = undefined; | ||
} | ||
if (!is.isFunction(callback)) { | ||
element = callback; | ||
callback = undefined; | ||
} | ||
const event = events; | ||
const emitter = EventEmitter.getEventEmitter(element); | ||
const _EventEmitter$parseEv3 = EventEmitter.parseEvent(event), | ||
eventName = _EventEmitter$parseEv3.eventName; | ||
if (emitter.hasListeners(event)) { | ||
if (emitter.getListeners(event).length === 0) { | ||
element.removeEventListener(eventName, dispatch); | ||
} | ||
if (typeof callback === 'undefined') { | ||
emitter.off(event); | ||
} else { | ||
emitter.off(event, callback._delegator); | ||
} | ||
} | ||
} | ||
return element; | ||
}, supportEventListener); | ||
const bindEvent = utils.curryWith((events, selector, callback, element) => { | ||
const eventArr = events.split(' '); | ||
const selectorArr = is.isString(selector) ? selector.split(',') : null; | ||
switch (true) { | ||
case Boolean(eventArr.length > 1): | ||
{ | ||
eventArr.forEach(e => { | ||
bindEvent(e, selector, callback, element); | ||
}); | ||
break; | ||
} | ||
case Boolean(selectorArr && selectorArr.length > 1): | ||
{ | ||
selectorArr.forEach(s => { | ||
bindEvent(events, s.trim(), callback, element); | ||
}); | ||
break; | ||
} | ||
default: | ||
{ | ||
if (!is.isString(selector) && !is.isFunction(callback)) { | ||
element = callback; | ||
callback = selector; | ||
selector = undefined; | ||
} | ||
bind(events, selector, callback, element); | ||
break; | ||
} | ||
} | ||
return element; | ||
}, supportEventListener); | ||
const bindEventOnce = utils.curryWith((events, selector, callback, element) => { | ||
const eventArr = events.split(' '); | ||
const selectorArr = is.isString(selector) ? selector.split(',') : null; | ||
switch (true) { | ||
case Boolean(eventArr.length > 1): | ||
{ | ||
eventArr.forEach(e => { | ||
bindEventOnce(e, selector, callback, element); | ||
}); | ||
break; | ||
} | ||
case Boolean(selectorArr && selectorArr.length > 1): | ||
{ | ||
selectorArr.forEach(s => { | ||
bindEventOnce(events, s.trim(), callback, element); | ||
}); | ||
break; | ||
} | ||
default: | ||
{ | ||
if (!is.isString(selector) && !is.isFunction(callback)) { | ||
element = callback; | ||
callback = selector; | ||
selector = undefined; | ||
} | ||
const recursiveFunction = e => { | ||
removeEvent(eventArr[0], selector, recursiveFunction, element); | ||
return callback(e); | ||
}; | ||
bind(eventArr[0], selector, recursiveFunction, element, true); | ||
break; | ||
} | ||
} | ||
return element; | ||
}, supportEventListener); | ||
const on = bindEvent; | ||
const off = removeEvent; | ||
const once = bindEventOnce; | ||
const getEventEmitter = element => EventEmitter.getEventEmitter(element); | ||
exports.bindEvent = bindEvent; | ||
exports.bindEventOnce = bindEventOnce; | ||
exports.getEventEmitter = getEventEmitter; | ||
exports.off = off; | ||
exports.on = on; | ||
exports.once = once; | ||
exports.removeEvent = removeEvent; | ||
exports.trigger = trigger; |
/*! | ||
* @pluginjs/events v0.7.9 (https://pluginjs.com) | ||
* @pluginjs/events v0.7.10 (https://pluginjs.com) | ||
* Copyright 2019 Creation Studio Limited | ||
* Released under the GPL-3.0 License. | ||
*/ | ||
undefined | ||
"use strict";function _interopDefault(e){return e&&"object"==typeof e&&"default"in e?e.default:e}Object.defineProperty(exports,"__esModule",{value:!0});var is=require("@pluginjs/is"),utils=require("@pluginjs/utils"),Emitter=_interopDefault(require("@pluginjs/emitter"));class EventEmitter extends Emitter{constructor(e){super(),this.element=e,this.element._eventEmitter=this}static getEventEmitter(e){return e._eventEmitter||(e._eventEmitter=new this(e)),e._eventEmitter}}const supportEventListener=e=>"object"==typeof e&&"addEventListener"in e,trigger=function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),i=1;i<t;i++)n[i-1]=arguments[i];const r=n[n.length-1];if(!supportEventListener(r))return;if(e instanceof window.Event)return void r.dispatchEvent(e);const s=n.length>1?n.slice(0,n.length-1):null,o=EventEmitter.parseEvent(e),a=o.eventName,E=o.namespace,v=new CustomEvent(a,{cancelable:!0,bubbles:!0,detail:s});E&&(v.namespace=E),r.dispatchEvent(v)},getDelegator=(e,t,n,i)=>(e,r)=>{let s=e.target;const o=e.currentTarget||i,a=r?[e].concat(r):[e];let E;if(is.isString(t))for(;s&&s!==o;)s.matches(t)&&(E=n.apply(s,a)),s=s.parentNode;else E=n.apply(o,a);!1===E&&(e.preventDefault(),e.stopPropagation())},dispatch=e=>{const t=void 0===e.namespace?e.type:"".concat(e.type,".").concat(e.namespace),n=EventEmitter.getEventEmitter(e.currentTarget);e.detail?n.emit(t,e,e.detail):n.emit(t,e)},bind=(e,t,n,i,r)=>{const s=EventEmitter.getEventEmitter(i),o=EventEmitter.parseEvent(e).eventName;s.hasListeners(e)||i.addEventListener(o,dispatch,!1);const a=getDelegator(0,t,n,i);n._delegator=a,r?s.once(e,a):s.on(e,a)},removeEvent=utils.curryWith((e,t,n,i)=>{const r=e.split(" ");if(r.length>1)r.forEach(e=>{removeEvent(e,t,n,i)});else{is.isString(t)||is.isFunction(n)||(i=n,n=t,t=void 0),is.isFunction(n)||(i=n,n=void 0);const r=e,s=EventEmitter.getEventEmitter(i),o=EventEmitter.parseEvent(r).eventName;s.hasListeners(r)&&(0===s.getListeners(r).length&&i.removeEventListener(o,dispatch),void 0===n?s.off(r):s.off(r,n._delegator))}return i},supportEventListener),bindEvent=utils.curryWith((e,t,n,i)=>{const r=e.split(" "),s=is.isString(t)?t.split(","):null;switch(!0){case Boolean(r.length>1):r.forEach(e=>{bindEvent(e,t,n,i)});break;case Boolean(s&&s.length>1):s.forEach(t=>{bindEvent(e,t.trim(),n,i)});break;default:is.isString(t)||is.isFunction(n)||(i=n,n=t,t=void 0),bind(e,t,n,i)}return i},supportEventListener),bindEventOnce=utils.curryWith((e,t,n,i)=>{const r=e.split(" "),s=is.isString(t)?t.split(","):null;switch(!0){case Boolean(r.length>1):r.forEach(e=>{bindEventOnce(e,t,n,i)});break;case Boolean(s&&s.length>1):s.forEach(t=>{bindEventOnce(e,t.trim(),n,i)});break;default:{is.isString(t)||is.isFunction(n)||(i=n,n=t,t=void 0);const e=s=>(removeEvent(r[0],t,e,i),n(s));bind(r[0],t,e,i,!0);break}}return i},supportEventListener),on=bindEvent,off=removeEvent,once=bindEventOnce,getEventEmitter=e=>EventEmitter.getEventEmitter(e);exports.bindEvent=bindEvent,exports.bindEventOnce=bindEventOnce,exports.getEventEmitter=getEventEmitter,exports.off=off,exports.on=on,exports.once=once,exports.removeEvent=removeEvent,exports.trigger=trigger; |
/*! | ||
* @pluginjs/events v0.7.9 (https://pluginjs.com) | ||
* @pluginjs/events v0.7.10 (https://pluginjs.com) | ||
* Copyright 2019 Creation Studio Limited | ||
* Released under the GPL-3.0 License. | ||
*/ | ||
undefined | ||
import { isString, isFunction } from '@pluginjs/is'; | ||
import { curryWith } from '@pluginjs/utils'; | ||
import Emitter from '@pluginjs/emitter'; | ||
class EventEmitter extends Emitter { | ||
constructor(element) { | ||
super(); | ||
this.element = element; | ||
this.element._eventEmitter = this; | ||
} | ||
static getEventEmitter(element) { | ||
if (!element._eventEmitter) { | ||
element._eventEmitter = new this(element); | ||
} | ||
return element._eventEmitter; | ||
} | ||
} | ||
/* eslint-disable no-undefined, no-undef */ | ||
const supportEventListener = element => { | ||
return typeof element === 'object' && 'addEventListener' in element; | ||
}; | ||
const trigger = function trigger(event) { | ||
for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { | ||
args[_key - 1] = arguments[_key]; | ||
} | ||
const element = args[args.length - 1]; | ||
if (!supportEventListener(element)) { | ||
return; | ||
} | ||
if (event instanceof window.Event) { | ||
element.dispatchEvent(event); | ||
return; | ||
} | ||
const data = args.length > 1 ? args.slice(0, args.length - 1) : null; | ||
const _EventEmitter$parseEv = EventEmitter.parseEvent(event), | ||
eventName = _EventEmitter$parseEv.eventName, | ||
namespace = _EventEmitter$parseEv.namespace; | ||
const cusEvent = new CustomEvent(eventName, { | ||
cancelable: true, | ||
bubbles: true, | ||
detail: data | ||
}); | ||
if (namespace) { | ||
cusEvent.namespace = namespace; | ||
} | ||
element.dispatchEvent(cusEvent); | ||
}; | ||
const getDelegator = (event, selector, callback, element) => { | ||
return (e, args) => { | ||
let target = e.target; | ||
const currentTarget = e.currentTarget || element; | ||
const applyArgs = args ? [e].concat(args) : [e]; | ||
let result; | ||
if (isString(selector)) { | ||
while (target && target !== currentTarget) { | ||
if (target.matches(selector)) { | ||
result = callback.apply(target, applyArgs); | ||
} | ||
target = target.parentNode; | ||
} | ||
} else { | ||
result = callback.apply(currentTarget, applyArgs); | ||
} | ||
if (result === false) { | ||
e.preventDefault(); | ||
e.stopPropagation(); | ||
} | ||
}; | ||
}; | ||
const dispatch = e => { | ||
const eventName = typeof e.namespace === 'undefined' ? e.type : "".concat(e.type, ".").concat(e.namespace); | ||
const emitter = EventEmitter.getEventEmitter(e.currentTarget); | ||
if (e.detail) { | ||
emitter.emit(eventName, e, e.detail); | ||
} else { | ||
emitter.emit(eventName, e); | ||
} | ||
}; | ||
const bind = (event, selector, callback, element, once) => { | ||
const emitter = EventEmitter.getEventEmitter(element); | ||
const _EventEmitter$parseEv2 = EventEmitter.parseEvent(event), | ||
eventName = _EventEmitter$parseEv2.eventName; | ||
if (!emitter.hasListeners(event)) { | ||
element.addEventListener(eventName, dispatch, false); | ||
} | ||
const delegator = getDelegator(event, selector, callback, element); | ||
callback._delegator = delegator; | ||
if (once) { | ||
emitter.once(event, delegator); | ||
} else { | ||
emitter.on(event, delegator); | ||
} | ||
}; | ||
const removeEvent = curryWith((events, selector, callback, element) => { | ||
const eventArr = events.split(' '); | ||
if (eventArr.length > 1) { | ||
eventArr.forEach(e => { | ||
removeEvent(e, selector, callback, element); | ||
}); | ||
} else { | ||
if (!isString(selector) && !isFunction(callback)) { | ||
element = callback; | ||
callback = selector; | ||
selector = undefined; | ||
} | ||
if (!isFunction(callback)) { | ||
element = callback; | ||
callback = undefined; | ||
} | ||
const event = events; | ||
const emitter = EventEmitter.getEventEmitter(element); | ||
const _EventEmitter$parseEv3 = EventEmitter.parseEvent(event), | ||
eventName = _EventEmitter$parseEv3.eventName; | ||
if (emitter.hasListeners(event)) { | ||
if (emitter.getListeners(event).length === 0) { | ||
element.removeEventListener(eventName, dispatch); | ||
} | ||
if (typeof callback === 'undefined') { | ||
emitter.off(event); | ||
} else { | ||
emitter.off(event, callback._delegator); | ||
} | ||
} | ||
} | ||
return element; | ||
}, supportEventListener); | ||
const bindEvent = curryWith((events, selector, callback, element) => { | ||
const eventArr = events.split(' '); | ||
const selectorArr = isString(selector) ? selector.split(',') : null; | ||
switch (true) { | ||
case Boolean(eventArr.length > 1): | ||
{ | ||
eventArr.forEach(e => { | ||
bindEvent(e, selector, callback, element); | ||
}); | ||
break; | ||
} | ||
case Boolean(selectorArr && selectorArr.length > 1): | ||
{ | ||
selectorArr.forEach(s => { | ||
bindEvent(events, s.trim(), callback, element); | ||
}); | ||
break; | ||
} | ||
default: | ||
{ | ||
if (!isString(selector) && !isFunction(callback)) { | ||
element = callback; | ||
callback = selector; | ||
selector = undefined; | ||
} | ||
bind(events, selector, callback, element); | ||
break; | ||
} | ||
} | ||
return element; | ||
}, supportEventListener); | ||
const bindEventOnce = curryWith((events, selector, callback, element) => { | ||
const eventArr = events.split(' '); | ||
const selectorArr = isString(selector) ? selector.split(',') : null; | ||
switch (true) { | ||
case Boolean(eventArr.length > 1): | ||
{ | ||
eventArr.forEach(e => { | ||
bindEventOnce(e, selector, callback, element); | ||
}); | ||
break; | ||
} | ||
case Boolean(selectorArr && selectorArr.length > 1): | ||
{ | ||
selectorArr.forEach(s => { | ||
bindEventOnce(events, s.trim(), callback, element); | ||
}); | ||
break; | ||
} | ||
default: | ||
{ | ||
if (!isString(selector) && !isFunction(callback)) { | ||
element = callback; | ||
callback = selector; | ||
selector = undefined; | ||
} | ||
const recursiveFunction = e => { | ||
removeEvent(eventArr[0], selector, recursiveFunction, element); | ||
return callback(e); | ||
}; | ||
bind(eventArr[0], selector, recursiveFunction, element, true); | ||
break; | ||
} | ||
} | ||
return element; | ||
}, supportEventListener); | ||
const on = bindEvent; | ||
const off = removeEvent; | ||
const once = bindEventOnce; | ||
const getEventEmitter = element => EventEmitter.getEventEmitter(element); | ||
export { bindEvent, bindEventOnce, getEventEmitter, off, on, once, removeEvent, trigger }; |
/*! | ||
* @pluginjs/events v0.7.9 (https://pluginjs.com) | ||
* @pluginjs/events v0.7.10 (https://pluginjs.com) | ||
* Copyright 2019 Creation Studio Limited | ||
* Released under the GPL-3.0 License. | ||
*/ | ||
undefined | ||
import{isString as e,isFunction as t}from"@pluginjs/is";import{curryWith as n}from"@pluginjs/utils";import r from"@pluginjs/emitter";class s extends r{constructor(e){super(),this.element=e,this.element._eventEmitter=this}static getEventEmitter(e){return e._eventEmitter||(e._eventEmitter=new this(e)),e._eventEmitter}}const a=e=>"object"==typeof e&&"addEventListener"in e,o=function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];const o=n[n.length-1];if(!a(o))return;if(e instanceof window.Event)return void o.dispatchEvent(e);const i=n.length>1?n.slice(0,n.length-1):null,l=s.parseEvent(e),c=l.eventName,p=l.namespace,m=new CustomEvent(c,{cancelable:!0,bubbles:!0,detail:i});p&&(m.namespace=p),o.dispatchEvent(m)},i=e=>{const t=void 0===e.namespace?e.type:"".concat(e.type,".").concat(e.namespace),n=s.getEventEmitter(e.currentTarget);e.detail?n.emit(t,e,e.detail):n.emit(t,e)},l=(t,n,r,a,o)=>{const l=s.getEventEmitter(a),c=s.parseEvent(t).eventName;l.hasListeners(t)||a.addEventListener(c,i,!1);const p=((t,n,r,s)=>(t,a)=>{let o=t.target;const i=t.currentTarget||s,l=a?[t].concat(a):[t];let c;if(e(n))for(;o&&o!==i;)o.matches(n)&&(c=r.apply(o,l)),o=o.parentNode;else c=r.apply(i,l);!1===c&&(t.preventDefault(),t.stopPropagation())})(0,n,r,a);r._delegator=p,o?l.once(t,p):l.on(t,p)},c=n((n,r,a,o)=>{const l=n.split(" ");if(l.length>1)l.forEach(e=>{c(e,r,a,o)});else{e(r)||t(a)||(o=a,a=r,r=void 0),t(a)||(o=a,a=void 0);const l=n,c=s.getEventEmitter(o),p=s.parseEvent(l).eventName;c.hasListeners(l)&&(0===c.getListeners(l).length&&o.removeEventListener(p,i),void 0===a?c.off(l):c.off(l,a._delegator))}return o},a),p=n((n,r,s,a)=>{const o=n.split(" "),i=e(r)?r.split(","):null;switch(!0){case Boolean(o.length>1):o.forEach(e=>{p(e,r,s,a)});break;case Boolean(i&&i.length>1):i.forEach(e=>{p(n,e.trim(),s,a)});break;default:e(r)||t(s)||(a=s,s=r,r=void 0),l(n,r,s,a)}return a},a),m=n((n,r,s,a)=>{const o=n.split(" "),i=e(r)?r.split(","):null;switch(!0){case Boolean(o.length>1):o.forEach(e=>{m(e,r,s,a)});break;case Boolean(i&&i.length>1):i.forEach(e=>{m(n,e.trim(),s,a)});break;default:{e(r)||t(s)||(a=s,s=r,r=void 0);const n=e=>(c(o[0],r,n,a),s(e));l(o[0],r,n,a,!0);break}}return a},a),v=p,E=c,h=m,g=e=>s.getEventEmitter(e);export{p as bindEvent,m as bindEventOnce,g as getEventEmitter,E as off,v as on,h as once,c as removeEvent,o as trigger}; |
/*! | ||
* @pluginjs/events v0.7.9 (https://pluginjs.com) | ||
* @pluginjs/events v0.7.10 (https://pluginjs.com) | ||
* Copyright 2019 Creation Studio Limited | ||
* Released under the GPL-3.0 License. | ||
*/ | ||
undefined | ||
(function (global, factory) { | ||
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@pluginjs/is'), require('@pluginjs/utils'), require('@pluginjs/emitter')) : | ||
typeof define === 'function' && define.amd ? define(['exports', '@pluginjs/is', '@pluginjs/utils', '@pluginjs/emitter'], factory) : | ||
(global = global || self, factory(global['@pluginjs/events'] = {}, global['@pluginjs/is'], global['@pluginjs/utils'], global['@pluginjs/emitter'])); | ||
}(this, function (exports, is, utils, Emitter) { 'use strict'; | ||
Emitter = Emitter && Emitter.hasOwnProperty('default') ? Emitter['default'] : Emitter; | ||
function _typeof(obj) { | ||
if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { | ||
_typeof = function (obj) { | ||
return typeof obj; | ||
}; | ||
} else { | ||
_typeof = function (obj) { | ||
return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; | ||
}; | ||
} | ||
return _typeof(obj); | ||
} | ||
function _classCallCheck(instance, Constructor) { | ||
if (!(instance instanceof Constructor)) { | ||
throw new TypeError("Cannot call a class as a function"); | ||
} | ||
} | ||
function _defineProperties(target, props) { | ||
for (var i = 0; i < props.length; i++) { | ||
var descriptor = props[i]; | ||
descriptor.enumerable = descriptor.enumerable || false; | ||
descriptor.configurable = true; | ||
if ("value" in descriptor) descriptor.writable = true; | ||
Object.defineProperty(target, descriptor.key, descriptor); | ||
} | ||
} | ||
function _createClass(Constructor, protoProps, staticProps) { | ||
if (protoProps) _defineProperties(Constructor.prototype, protoProps); | ||
if (staticProps) _defineProperties(Constructor, staticProps); | ||
return Constructor; | ||
} | ||
function _inherits(subClass, superClass) { | ||
if (typeof superClass !== "function" && superClass !== null) { | ||
throw new TypeError("Super expression must either be null or a function"); | ||
} | ||
subClass.prototype = Object.create(superClass && superClass.prototype, { | ||
constructor: { | ||
value: subClass, | ||
writable: true, | ||
configurable: true | ||
} | ||
}); | ||
if (superClass) _setPrototypeOf(subClass, superClass); | ||
} | ||
function _getPrototypeOf(o) { | ||
_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { | ||
return o.__proto__ || Object.getPrototypeOf(o); | ||
}; | ||
return _getPrototypeOf(o); | ||
} | ||
function _setPrototypeOf(o, p) { | ||
_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { | ||
o.__proto__ = p; | ||
return o; | ||
}; | ||
return _setPrototypeOf(o, p); | ||
} | ||
function _assertThisInitialized(self) { | ||
if (self === void 0) { | ||
throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); | ||
} | ||
return self; | ||
} | ||
function _possibleConstructorReturn(self, call) { | ||
if (call && (typeof call === "object" || typeof call === "function")) { | ||
return call; | ||
} | ||
return _assertThisInitialized(self); | ||
} | ||
var EventEmitter = | ||
/*#__PURE__*/ | ||
function (_Emitter) { | ||
_inherits(EventEmitter, _Emitter); | ||
function EventEmitter(element) { | ||
var _this; | ||
_classCallCheck(this, EventEmitter); | ||
_this = _possibleConstructorReturn(this, _getPrototypeOf(EventEmitter).call(this)); | ||
_this.element = element; | ||
_this.element._eventEmitter = _assertThisInitialized(_this); | ||
return _this; | ||
} | ||
_createClass(EventEmitter, null, [{ | ||
key: "getEventEmitter", | ||
value: function getEventEmitter(element) { | ||
if (!element._eventEmitter) { | ||
element._eventEmitter = new this(element); | ||
} | ||
return element._eventEmitter; | ||
} | ||
}]); | ||
return EventEmitter; | ||
}(Emitter); | ||
var supportEventListener = function supportEventListener(element) { | ||
return _typeof(element) === 'object' && 'addEventListener' in element; | ||
}; | ||
var trigger = function trigger(event) { | ||
for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { | ||
args[_key - 1] = arguments[_key]; | ||
} | ||
var element = args[args.length - 1]; | ||
if (!supportEventListener(element)) { | ||
return; | ||
} | ||
if (event instanceof window.Event) { | ||
element.dispatchEvent(event); | ||
return; | ||
} | ||
var data = args.length > 1 ? args.slice(0, args.length - 1) : null; | ||
var _EventEmitter$parseEv = EventEmitter.parseEvent(event), | ||
eventName = _EventEmitter$parseEv.eventName, | ||
namespace = _EventEmitter$parseEv.namespace; | ||
var cusEvent = new CustomEvent(eventName, { | ||
cancelable: true, | ||
bubbles: true, | ||
detail: data | ||
}); | ||
if (namespace) { | ||
cusEvent.namespace = namespace; | ||
} | ||
element.dispatchEvent(cusEvent); | ||
}; | ||
var getDelegator = function getDelegator(event, selector, callback, element) { | ||
return function (e, args) { | ||
var target = e.target; | ||
var currentTarget = e.currentTarget || element; | ||
var applyArgs = args ? [e].concat(args) : [e]; | ||
var result; | ||
if (is.isString(selector)) { | ||
while (target && target !== currentTarget) { | ||
if (target.matches(selector)) { | ||
result = callback.apply(target, applyArgs); | ||
} | ||
target = target.parentNode; | ||
} | ||
} else { | ||
result = callback.apply(currentTarget, applyArgs); | ||
} | ||
if (result === false) { | ||
e.preventDefault(); | ||
e.stopPropagation(); | ||
} | ||
}; | ||
}; | ||
var dispatch = function dispatch(e) { | ||
var eventName = typeof e.namespace === 'undefined' ? e.type : "".concat(e.type, ".").concat(e.namespace); | ||
var emitter = EventEmitter.getEventEmitter(e.currentTarget); | ||
if (e.detail) { | ||
emitter.emit(eventName, e, e.detail); | ||
} else { | ||
emitter.emit(eventName, e); | ||
} | ||
}; | ||
var bind = function bind(event, selector, callback, element, once) { | ||
var emitter = EventEmitter.getEventEmitter(element); | ||
var _EventEmitter$parseEv2 = EventEmitter.parseEvent(event), | ||
eventName = _EventEmitter$parseEv2.eventName; | ||
if (!emitter.hasListeners(event)) { | ||
element.addEventListener(eventName, dispatch, false); | ||
} | ||
var delegator = getDelegator(event, selector, callback, element); | ||
callback._delegator = delegator; | ||
if (once) { | ||
emitter.once(event, delegator); | ||
} else { | ||
emitter.on(event, delegator); | ||
} | ||
}; | ||
var removeEvent = utils.curryWith(function (events, selector, callback, element) { | ||
var eventArr = events.split(' '); | ||
if (eventArr.length > 1) { | ||
eventArr.forEach(function (e) { | ||
removeEvent(e, selector, callback, element); | ||
}); | ||
} else { | ||
if (!is.isString(selector) && !is.isFunction(callback)) { | ||
element = callback; | ||
callback = selector; | ||
selector = undefined; | ||
} | ||
if (!is.isFunction(callback)) { | ||
element = callback; | ||
callback = undefined; | ||
} | ||
var event = events; | ||
var emitter = EventEmitter.getEventEmitter(element); | ||
var _EventEmitter$parseEv3 = EventEmitter.parseEvent(event), | ||
eventName = _EventEmitter$parseEv3.eventName; | ||
if (emitter.hasListeners(event)) { | ||
if (emitter.getListeners(event).length === 0) { | ||
element.removeEventListener(eventName, dispatch); | ||
} | ||
if (typeof callback === 'undefined') { | ||
emitter.off(event); | ||
} else { | ||
emitter.off(event, callback._delegator); | ||
} | ||
} | ||
} | ||
return element; | ||
}, supportEventListener); | ||
var bindEvent = utils.curryWith(function (events, selector, callback, element) { | ||
var eventArr = events.split(' '); | ||
var selectorArr = is.isString(selector) ? selector.split(',') : null; | ||
switch (true) { | ||
case Boolean(eventArr.length > 1): | ||
{ | ||
eventArr.forEach(function (e) { | ||
bindEvent(e, selector, callback, element); | ||
}); | ||
break; | ||
} | ||
case Boolean(selectorArr && selectorArr.length > 1): | ||
{ | ||
selectorArr.forEach(function (s) { | ||
bindEvent(events, s.trim(), callback, element); | ||
}); | ||
break; | ||
} | ||
default: | ||
{ | ||
if (!is.isString(selector) && !is.isFunction(callback)) { | ||
element = callback; | ||
callback = selector; | ||
selector = undefined; | ||
} | ||
bind(events, selector, callback, element); | ||
break; | ||
} | ||
} | ||
return element; | ||
}, supportEventListener); | ||
var bindEventOnce = utils.curryWith(function (events, selector, callback, element) { | ||
var eventArr = events.split(' '); | ||
var selectorArr = is.isString(selector) ? selector.split(',') : null; | ||
switch (true) { | ||
case Boolean(eventArr.length > 1): | ||
{ | ||
eventArr.forEach(function (e) { | ||
bindEventOnce(e, selector, callback, element); | ||
}); | ||
break; | ||
} | ||
case Boolean(selectorArr && selectorArr.length > 1): | ||
{ | ||
selectorArr.forEach(function (s) { | ||
bindEventOnce(events, s.trim(), callback, element); | ||
}); | ||
break; | ||
} | ||
default: | ||
{ | ||
if (!is.isString(selector) && !is.isFunction(callback)) { | ||
element = callback; | ||
callback = selector; | ||
selector = undefined; | ||
} | ||
var recursiveFunction = function recursiveFunction(e) { | ||
removeEvent(eventArr[0], selector, recursiveFunction, element); | ||
return callback(e); | ||
}; | ||
bind(eventArr[0], selector, recursiveFunction, element, true); | ||
break; | ||
} | ||
} | ||
return element; | ||
}, supportEventListener); | ||
var on = bindEvent; | ||
var off = removeEvent; | ||
var once = bindEventOnce; | ||
var getEventEmitter = function getEventEmitter(element) { | ||
return EventEmitter.getEventEmitter(element); | ||
}; | ||
exports.bindEvent = bindEvent; | ||
exports.bindEventOnce = bindEventOnce; | ||
exports.getEventEmitter = getEventEmitter; | ||
exports.off = off; | ||
exports.on = on; | ||
exports.once = once; | ||
exports.removeEvent = removeEvent; | ||
exports.trigger = trigger; | ||
Object.defineProperty(exports, '__esModule', { value: true }); | ||
})); |
/*! | ||
* @pluginjs/events v0.7.9 (https://pluginjs.com) | ||
* @pluginjs/events v0.7.10 (https://pluginjs.com) | ||
* Copyright 2019 Creation Studio Limited | ||
* Released under the GPL-3.0 License. | ||
*/ | ||
undefined | ||
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@pluginjs/is"),require("@pluginjs/utils"),require("@pluginjs/emitter")):"function"==typeof define&&define.amd?define(["exports","@pluginjs/is","@pluginjs/utils","@pluginjs/emitter"],t):t((e=e||self)["@pluginjs/events"]={},e["@pluginjs/is"],e["@pluginjs/utils"],e["@pluginjs/emitter"])}(this,function(e,t,n,r){"use strict";function i(e){return(i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function o(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function u(e){return(u=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function a(e,t){return(a=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function c(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}r=r&&r.hasOwnProperty("default")?r.default:r;var s=function(e){function t(e){var n,r,i;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),r=this,(n=!(i=u(t).call(this))||"object"!=typeof i&&"function"!=typeof i?c(r):i).element=e,n.element._eventEmitter=c(n),n}var n,i,s;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&a(e,t)}(t,r),n=t,s=[{key:"getEventEmitter",value:function(e){return e._eventEmitter||(e._eventEmitter=new this(e)),e._eventEmitter}}],(i=null)&&o(n.prototype,i),s&&o(n,s),t}(),l=function(e){return"object"===i(e)&&"addEventListener"in e},f=function(e){var t=void 0===e.namespace?e.type:"".concat(e.type,".").concat(e.namespace),n=s.getEventEmitter(e.currentTarget);e.detail?n.emit(t,e,e.detail):n.emit(t,e)},p=function(e,n,r,i,o){var u=s.getEventEmitter(i),a=s.parseEvent(e).eventName;u.hasListeners(e)||i.addEventListener(a,f,!1);var c=function(e,n,r,i){return function(e,o){var u,a=e.target,c=e.currentTarget||i,s=o?[e].concat(o):[e];if(t.isString(n))for(;a&&a!==c;)a.matches(n)&&(u=r.apply(a,s)),a=a.parentNode;else u=r.apply(c,s);!1===u&&(e.preventDefault(),e.stopPropagation())}}(0,n,r,i);r._delegator=c,o?u.once(e,c):u.on(e,c)},v=n.curryWith(function(e,n,r,i){var o=e.split(" ");if(o.length>1)o.forEach(function(e){v(e,n,r,i)});else{t.isString(n)||t.isFunction(r)||(i=r,r=n,n=void 0),t.isFunction(r)||(i=r,r=void 0);var u=e,a=s.getEventEmitter(i),c=s.parseEvent(u).eventName;a.hasListeners(u)&&(0===a.getListeners(u).length&&i.removeEventListener(c,f),void 0===r?a.off(u):a.off(u,r._delegator))}return i},l),g=n.curryWith(function(e,n,r,i){var o=e.split(" "),u=t.isString(n)?n.split(","):null;switch(!0){case Boolean(o.length>1):o.forEach(function(e){g(e,n,r,i)});break;case Boolean(u&&u.length>1):u.forEach(function(t){g(e,t.trim(),r,i)});break;default:t.isString(n)||t.isFunction(r)||(i=r,r=n,n=void 0),p(e,n,r,i)}return i},l),m=n.curryWith(function(e,n,r,i){var o=e.split(" "),u=t.isString(n)?n.split(","):null;switch(!0){case Boolean(o.length>1):o.forEach(function(e){m(e,n,r,i)});break;case Boolean(u&&u.length>1):u.forEach(function(t){m(e,t.trim(),r,i)});break;default:t.isString(n)||t.isFunction(r)||(i=r,r=n,n=void 0);p(o[0],n,function e(t){return v(o[0],n,e,i),r(t)},i,!0)}return i},l),y=g,h=v,d=m;e.bindEvent=g,e.bindEventOnce=m,e.getEventEmitter=function(e){return s.getEventEmitter(e)},e.off=h,e.on=y,e.once=d,e.removeEvent=v,e.trigger=function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];var i=n[n.length-1];if(l(i))if(e instanceof window.Event)i.dispatchEvent(e);else{var o=n.length>1?n.slice(0,n.length-1):null,u=s.parseEvent(e),a=u.eventName,c=u.namespace,f=new CustomEvent(a,{cancelable:!0,bubbles:!0,detail:o});c&&(f.namespace=c),i.dispatchEvent(f)}},Object.defineProperty(e,"__esModule",{value:!0})}); |
@@ -14,3 +14,3 @@ { | ||
}, | ||
"version": "0.7.9", | ||
"version": "0.7.10", | ||
"category": "utils", | ||
@@ -37,10 +37,10 @@ "main": "dist/events.common.js", | ||
"dependencies": { | ||
"@pluginjs/emitter": "^0.7.9", | ||
"@pluginjs/is": "^0.7.8", | ||
"@pluginjs/utils": "^0.7.9" | ||
"@pluginjs/emitter": "^0.7.10", | ||
"@pluginjs/is": "^0.7.9", | ||
"@pluginjs/utils": "^0.7.10" | ||
}, | ||
"devDependencies": { | ||
"@babel/core": "^7.4.4", | ||
"@pluginjs/browserslist-config": "^1.2.5", | ||
"@pluginjs/cli": "^0.7.8", | ||
"@pluginjs/browserslist-config": "^1.2.6", | ||
"@pluginjs/cli": "^0.7.9", | ||
"babel-jest": "*", | ||
@@ -70,3 +70,4 @@ "jest": "*", | ||
"extends @pluginjs/browserslist-config" | ||
] | ||
], | ||
"gitHead": "9ae759d6378f7bd8b952e5c1951dec91a101966e" | ||
} |
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
Minified code
QualityThis package contains minified code. This may be harmless in some cases where minified code is included in packaged libraries, however packages on npm should not minify code.
Found 1 instance in 1 package
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
44569
947
4
Updated@pluginjs/emitter@^0.7.10
Updated@pluginjs/is@^0.7.9
Updated@pluginjs/utils@^0.7.10