New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

jbone

Package Overview
Dependencies
Maintainers
1
Versions
24
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

jbone - npm Package Compare versions

Comparing version 1.0.22 to 1.0.23

2

component.json

@@ -5,3 +5,3 @@ {

"description": "JavaScript Library for DOM manipulation. Replacement jQuery for Backbone in browsers (2.5kb gzipped)",
"version": "1.0.22",
"version": "1.0.23",
"keywords": [

@@ -8,0 +8,0 @@ "jquery",

/*!
* jBone v1.0.22 - 2015-02-12 - Library for DOM manipulation
* jBone v1.0.23 - 2015-03-09 - Library for DOM manipulation
*

@@ -319,12 +319,74 @@ * https://github.com/kupriyanenko/jbone

fn.on = function(event) {
jBone.event = {
add: function(el, types, handler, data, selector) {
var eventHandler = function() {
jBone.event.dispatch.apply(el, arguments);
},
events, eventType, t, event;
jBone.setId(el);
events = jBone.getData(el).events;
types = types.split(" ");
t = types.length;
while (t--) {
event = types[t];
eventType = event.split(".")[0];
events[eventType] = events[eventType] || [];
if (!events[eventType].length) {
el.addEventListener && el.addEventListener(eventType, eventHandler, false);
}
events[eventType].push({
namespace: event.split(".").splice(1).join("."),
fn: eventHandler,
selector: selector,
data: data,
originfn: handler
});
}
},
dispatch: function(e) {
var i = 0,
el = this,
handlerQueue = jBone.getData(el).events[e.type],
length = handlerQueue.length,
expectedTarget,
handler,
eventOptions;
for (; i < length; i++) {
eventOptions = {};
handler = handlerQueue[i];
handler.data && (eventOptions.data = handler.data);
if (!handler.selector) {
if (!(e.namespace && e.namespace !== handler.namespace)) {
handler.originfn.call(el, new BoneEvent(e, eventOptions));
}
} else if (~jBone(el).find(handler.selector).indexOf(e.target) || (expectedTarget = jBone.contains(jBone(el).find(handler.selector), e.target))) {
expectedTarget = expectedTarget || e.target;
eventOptions.currentTarget = expectedTarget;
if (!(e.namespace && e.namespace !== handler.namespace)) {
handler.originfn.call(expectedTarget, new BoneEvent(e, eventOptions));
}
}
}
}
};
fn.on = function(types) {
var args = arguments,
length = this.length,
i = 0,
callback = slice.call(args, -1)[0],
target, data, namespace, fn, events, eventType, expectedTarget, addListener;
handler = slice.call(args, -1)[0],
selector, data;
// .on('click', '.selector', function() {})
if (args.length === 3 && isString(args[1])) {
target = args[1];
selector = args[1];
}

@@ -337,49 +399,8 @@ // .on('click', { key: value }, function() {})

else if (args.length === 4) {
target = args[1];
selector = args[1];
data = args[2];
}
addListener = function(el) {
jBone.setId(el);
events = jBone.getData(el).events;
event.split(" ").forEach(function(event) {
var eventOptions = {};
if (data) {
eventOptions.data = data;
}
eventType = event.split(".")[0];
namespace = event.split(".").splice(1).join(".");
events[eventType] = events[eventType] || [];
fn = function(e) {
if (e.namespace && e.namespace !== namespace) {
return;
}
expectedTarget = null;
if (!target) {
callback.call(el, new BoneEvent(e, eventOptions));
} else if (~jBone(el).find(target).indexOf(e.target) || (expectedTarget = jBone.contains(jBone(el).find(target), e.target))) {
expectedTarget = expectedTarget || e.target;
eventOptions.currentTarget = expectedTarget;
callback.call(expectedTarget, new BoneEvent(e, eventOptions));
}
};
events[eventType].push({
namespace: namespace,
fn: fn,
originfn: callback
});
el.addEventListener && el.addEventListener(eventType, fn, false);
});
};
for (; i < length; i++) {
addListener(this[i]);
jBone.event.add(this[i], types, handler, data, selector);
}

@@ -779,2 +800,58 @@

fn.addClass = function(className) {
var i = 0,
j = 0,
length = this.length,
classes = className.trim().split(/\s+/);
for (; i < length; i++) {
j = 0;
for (j = 0; j < classes.length; j++) {
this[i].classList.add(classes[j]);
}
}
return this;
};
fn.removeClass = function(className) {
var i = 0,
j = 0,
length = this.length,
classes = className.trim().split(/\s+/);
for (; i < length; i++) {
j = 0;
for (j = 0; j < classes.length; j++) {
this[i].classList.remove(classes[j]);
}
}
return this;
};
fn.toggleClass = function(className) {
var i = 0, length = this.length;
for (; i < length; i++) {
this[i].classList.toggle(className);
}
return this;
};
fn.hasClass = function(className) {
var i = 0, length = this.length;
for (; i < length; i++) {
if (this[i].classList.contains(className)) {
return true;
}
}
return false;
};
fn.html = function(value) {

@@ -781,0 +858,0 @@ var args = arguments,

/*!
* jBone v1.0.22 - 2015-02-12 - Library for DOM manipulation
* jBone v1.0.23 - 2015-03-09 - Library for DOM manipulation
*

@@ -10,2 +10,2 @@ * https://github.com/kupriyanenko/jbone

!function(a){function b(b){var c=b.length,d=typeof b;return o(d)||b===a?!1:1===b.nodeType&&c?!0:p(d)||0===c||"number"==typeof c&&c>0&&c-1 in b}function c(a,b){var c,d;this.originalEvent=a,d=function(a,b){this[a]="preventDefault"===a?function(){return this.defaultPrevented=!0,b[a]()}:o(b[a])?function(){return b[a]()}:b[a]};for(c in a)(a[c]||"function"==typeof a[c])&&d.call(this,c,a);q.extend(this,b)}var d,e=a.$,f=a.jBone,g=/^<(\w+)\s*\/?>$/,h=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,i=[].slice,j=[].splice,k=Object.keys,l=document,m=function(a){return"string"==typeof a},n=function(a){return a instanceof Object},o=function(a){return"[object Function]"==={}.toString.call(a)},p=function(a){return Array.isArray(a)},q=function(a,b){return new d.init(a,b)};q.noConflict=function(){return a.$=e,a.jBone=f,q},d=q.fn=q.prototype={init:function(a,b){var c,d,e,f;if(!a)return this;if(m(a)){if(d=g.exec(a))return this[0]=l.createElement(d[1]),this.length=1,n(b)&&this.attr(b),this;if((d=h.exec(a))&&d[1]){for(f=l.createDocumentFragment(),e=l.createElement("div"),e.innerHTML=a;e.lastChild;)f.appendChild(e.firstChild);return c=i.call(f.childNodes),q.merge(this,c)}if(q.isElement(b))return q(b).find(a);try{return c=l.querySelectorAll(a),q.merge(this,c)}catch(j){return this}}return a.nodeType?(this[0]=a,this.length=1,this):o(a)?a():a instanceof q?a:q.makeArray(a,this)},pop:[].pop,push:[].push,reverse:[].reverse,shift:[].shift,sort:[].sort,splice:[].splice,slice:[].slice,indexOf:[].indexOf,forEach:[].forEach,unshift:[].unshift,concat:[].concat,join:[].join,every:[].every,some:[].some,filter:[].filter,map:[].map,reduce:[].reduce,reduceRight:[].reduceRight,length:0},d.constructor=q,d.init.prototype=d,q.setId=function(b){var c=b.jid;b===a?c="window":void 0===b.jid&&(b.jid=c=++q._cache.jid),q._cache.events[c]||(q._cache.events[c]={})},q.getData=function(b){b=b instanceof q?b[0]:b;var c=b===a?"window":b.jid;return{jid:c,events:q._cache.events[c]}},q.isElement=function(a){return a&&a instanceof q||a instanceof HTMLElement||m(a)},q._cache={events:{},jid:0},q.merge=function(a,b){for(var c=b.length,d=a.length,e=0;c>e;)a[d++]=b[e++];return a.length=d,a},q.contains=function(a,b){var c;return a.reverse().some(function(a){return a.contains(b)?c=a:void 0}),c},q.extend=function(a){var b;return j.call(arguments,1).forEach(function(c){if(b=a,c)for(var d in c)b[d]=c[d]}),a},q.makeArray=function(a,c){var d=c||[];return null!==a&&(b(a)?q.merge(d,m(a)?[a]:a):d.push(a)),d},q.unique=function(a){if(null==a)return[];for(var b=[],c=0,d=a.length;d>c;c++){var e=a[c];b.indexOf(e)<0&&b.push(e)}return b},q.Event=function(a,b){var c,d;return a.type&&!b&&(b=a,a=a.type),c=a.split(".").splice(1).join("."),d=a.split(".")[0],a=l.createEvent("Event"),a.initEvent(d,!0,!0),q.extend(a,{namespace:c,isDefaultPrevented:function(){return a.defaultPrevented}},b)},d.on=function(a){var b,d,e,f,g,h,j,k,l=arguments,o=this.length,p=0,r=i.call(l,-1)[0];for(3===l.length&&m(l[1])?b=l[1]:3===l.length&&n(l[1])?d=l[1]:4===l.length&&(b=l[1],d=l[2]),k=function(i){q.setId(i),g=q.getData(i).events,a.split(" ").forEach(function(a){var k={};d&&(k.data=d),h=a.split(".")[0],e=a.split(".").splice(1).join("."),g[h]=g[h]||[],f=function(a){a.namespace&&a.namespace!==e||(j=null,b?(~q(i).find(b).indexOf(a.target)||(j=q.contains(q(i).find(b),a.target)))&&(j=j||a.target,k.currentTarget=j,r.call(j,new c(a,k))):r.call(i,new c(a,k)))},g[h].push({namespace:e,fn:f,originfn:r}),i.addEventListener&&i.addEventListener(h,f,!1)})};o>p;p++)k(this[p]);return this},d.one=function(a){var b,c=arguments,d=0,e=this.length,f=i.call(c,1,c.length-1),g=i.call(c,-1)[0];for(b=function(b){var c=q(b);a.split(" ").forEach(function(a){var d=function(e){c.off(a,d),g.call(b,e)};c.on.apply(c,[a].concat(f,d))})};e>d;d++)b(this[d]);return this},d.trigger=function(a){var b,c=[],d=0,e=this.length;if(!a)return this;for(m(a)?c=a.split(" ").map(function(a){return q.Event(a)}):(a=a instanceof Event?a:q.Event(a),c=[a]),b=function(a){c.forEach(function(b){b.type&&a.dispatchEvent&&a.dispatchEvent(b)})};e>d;d++)b(this[d]);return this},d.off=function(a,b){var c,d,e,f,g=0,h=this.length,i=function(a,c,d,e,f){var g;(b&&f.originfn===b||!b)&&(g=f.fn),a[c][d].fn===g&&(e.removeEventListener(c,g),q._cache.events[q.getData(e).jid][c].splice(d,1))};for(e=function(b){var e,g,h;return(c=q.getData(b).events)?!a&&c?k(c).forEach(function(a){for(g=c[a],e=g.length;e--;)i(c,a,e,b,g[e])}):void a.split(" ").forEach(function(a){if(f=a.split(".")[0],d=a.split(".").splice(1).join("."),c[f])for(g=c[f],e=g.length;e--;)h=g[e],(!d||d&&h.namespace===d)&&i(c,f,e,b,h);else d&&k(c).forEach(function(a){for(g=c[a],e=g.length;e--;)h=g[e],h.namespace.split(".")[0]===d.split(".")[0]&&i(c,a,e,b,h)})}):void 0};h>g;g++)e(this[g]);return this},d.find=function(a){for(var b=[],c=0,d=this.length,e=function(c){o(c.querySelectorAll)&&[].forEach.call(c.querySelectorAll(a),function(a){b.push(a)})};d>c;c++)e(this[c]);return q(b)},d.get=function(a){return null!=a?0>a?this[a+this.length]:this[a]:i.call(this)},d.eq=function(a){return q(this[a])},d.parent=function(){for(var a,b=[],c=0,d=this.length;d>c;c++)!~b.indexOf(a=this[c].parentElement)&&a&&b.push(a);return q(b)},d.toArray=function(){return i.call(this)},d.is=function(){var a=arguments;return this.some(function(b){return b.tagName.toLowerCase()===a[0]})},d.has=function(){var a=arguments;return this.some(function(b){return b.querySelectorAll(a[0]).length})},d.add=function(a,b){return q.unique(q.merge(this.get(),q(a,b)))},d.attr=function(a,b){var c,d=arguments,e=0,f=this.length;if(m(a)&&1===d.length)return this[0]&&this[0].getAttribute(a);for(2===d.length?c=function(c){c.setAttribute(a,b)}:n(a)&&(c=function(b){k(a).forEach(function(c){b.setAttribute(c,a[c])})});f>e;e++)c(this[e]);return this},d.removeAttr=function(a){for(var b=0,c=this.length;c>b;b++)this[b].removeAttribute(a);return this},d.val=function(a){var b=0,c=this.length;if(0===arguments.length)return this[0]&&this[0].value;for(;c>b;b++)this[b].value=a;return this},d.css=function(b,c){var d,e=arguments,f=0,g=this.length;if(m(b)&&1===e.length)return this[0]&&a.getComputedStyle(this[0])[b];for(2===e.length?d=function(a){a.style[b]=c}:n(b)&&(d=function(a){k(b).forEach(function(c){a.style[c]=b[c]})});g>f;f++)d(this[f]);return this},d.data=function(a,b){var c,d=arguments,e={},f=0,g=this.length,h=function(a,b,c){n(c)?(a.jdata=a.jdata||{},a.jdata[b]=c):a.dataset[b]=c},i=function(a){return"true"===a?!0:"false"===a?!1:a};if(0===d.length)return this[0].jdata&&(e=this[0].jdata),k(this[0].dataset).forEach(function(a){e[a]=i(this[0].dataset[a])},this),e;if(1===d.length&&m(a))return this[0]&&i(this[0].dataset[a]||this[0].jdata&&this[0].jdata[a]);for(1===d.length&&n(a)?c=function(b){k(a).forEach(function(c){h(b,c,a[c])})}:2===d.length&&(c=function(c){h(c,a,b)});g>f;f++)c(this[f]);return this},d.removeData=function(a){for(var b,c,d=0,e=this.length;e>d;d++)if(b=this[d].jdata,c=this[d].dataset,a)b&&b[a]&&delete b[a],delete c[a];else{for(a in b)delete b[a];for(a in c)delete c[a]}return this},d.html=function(a){var b,c=arguments;return 1===c.length&&void 0!==a?this.empty().append(a):0===c.length&&(b=this[0])?b.innerHTML:this},d.append=function(a){var b,c=0,d=this.length;for(m(a)&&h.exec(a)?a=q(a):n(a)||(a=document.createTextNode(a)),a=a instanceof q?a:q(a),b=function(b,c){a.forEach(function(a){b.appendChild(c?a.cloneNode(!0):a)})};d>c;c++)b(this[c],c);return this},d.appendTo=function(a){return q(a).append(this),this},d.empty=function(){for(var a,b=0,c=this.length;c>b;b++)for(a=this[b];a.lastChild;)a.removeChild(a.lastChild);return this},d.remove=function(){var a,b=0,c=this.length;for(this.off();c>b;b++)a=this[b],delete a.jdata,a.parentNode&&a.parentNode.removeChild(a);return this},"object"==typeof module&&module&&"object"==typeof module.exports?module.exports=q:"function"==typeof define&&define.amd?(define(function(){return q}),a.jBone=a.$=q):"object"==typeof a&&"object"==typeof a.document&&(a.jBone=a.$=q)}(window);
!function(a){function b(b){var c=b.length,d=typeof b;return o(d)||b===a?!1:1===b.nodeType&&c?!0:p(d)||0===c||"number"==typeof c&&c>0&&c-1 in b}function c(a,b){var c,d;this.originalEvent=a,d=function(a,b){this[a]="preventDefault"===a?function(){return this.defaultPrevented=!0,b[a]()}:o(b[a])?function(){return b[a]()}:b[a]};for(c in a)(a[c]||"function"==typeof a[c])&&d.call(this,c,a);q.extend(this,b)}var d,e=a.$,f=a.jBone,g=/^<(\w+)\s*\/?>$/,h=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,i=[].slice,j=[].splice,k=Object.keys,l=document,m=function(a){return"string"==typeof a},n=function(a){return a instanceof Object},o=function(a){return"[object Function]"==={}.toString.call(a)},p=function(a){return Array.isArray(a)},q=function(a,b){return new d.init(a,b)};q.noConflict=function(){return a.$=e,a.jBone=f,q},d=q.fn=q.prototype={init:function(a,b){var c,d,e,f;if(!a)return this;if(m(a)){if(d=g.exec(a))return this[0]=l.createElement(d[1]),this.length=1,n(b)&&this.attr(b),this;if((d=h.exec(a))&&d[1]){for(f=l.createDocumentFragment(),e=l.createElement("div"),e.innerHTML=a;e.lastChild;)f.appendChild(e.firstChild);return c=i.call(f.childNodes),q.merge(this,c)}if(q.isElement(b))return q(b).find(a);try{return c=l.querySelectorAll(a),q.merge(this,c)}catch(j){return this}}return a.nodeType?(this[0]=a,this.length=1,this):o(a)?a():a instanceof q?a:q.makeArray(a,this)},pop:[].pop,push:[].push,reverse:[].reverse,shift:[].shift,sort:[].sort,splice:[].splice,slice:[].slice,indexOf:[].indexOf,forEach:[].forEach,unshift:[].unshift,concat:[].concat,join:[].join,every:[].every,some:[].some,filter:[].filter,map:[].map,reduce:[].reduce,reduceRight:[].reduceRight,length:0},d.constructor=q,d.init.prototype=d,q.setId=function(b){var c=b.jid;b===a?c="window":void 0===b.jid&&(b.jid=c=++q._cache.jid),q._cache.events[c]||(q._cache.events[c]={})},q.getData=function(b){b=b instanceof q?b[0]:b;var c=b===a?"window":b.jid;return{jid:c,events:q._cache.events[c]}},q.isElement=function(a){return a&&a instanceof q||a instanceof HTMLElement||m(a)},q._cache={events:{},jid:0},q.merge=function(a,b){for(var c=b.length,d=a.length,e=0;c>e;)a[d++]=b[e++];return a.length=d,a},q.contains=function(a,b){var c;return a.reverse().some(function(a){return a.contains(b)?c=a:void 0}),c},q.extend=function(a){var b;return j.call(arguments,1).forEach(function(c){if(b=a,c)for(var d in c)b[d]=c[d]}),a},q.makeArray=function(a,c){var d=c||[];return null!==a&&(b(a)?q.merge(d,m(a)?[a]:a):d.push(a)),d},q.unique=function(a){if(null==a)return[];for(var b=[],c=0,d=a.length;d>c;c++){var e=a[c];b.indexOf(e)<0&&b.push(e)}return b},q.Event=function(a,b){var c,d;return a.type&&!b&&(b=a,a=a.type),c=a.split(".").splice(1).join("."),d=a.split(".")[0],a=l.createEvent("Event"),a.initEvent(d,!0,!0),q.extend(a,{namespace:c,isDefaultPrevented:function(){return a.defaultPrevented}},b)},q.event={add:function(a,b,c,d,e){var f,g,h,i,j=function(){q.event.dispatch.apply(a,arguments)};for(q.setId(a),f=q.getData(a).events,b=b.split(" "),h=b.length;h--;)i=b[h],g=i.split(".")[0],f[g]=f[g]||[],f[g].length||a.addEventListener&&a.addEventListener(g,j,!1),f[g].push({namespace:i.split(".").splice(1).join("."),fn:j,selector:e,data:d,originfn:c})},dispatch:function(a){for(var b,d,e,f=0,g=this,h=q.getData(g).events[a.type],i=h.length;i>f;f++)e={},d=h[f],d.data&&(e.data=d.data),d.selector?(~q(g).find(d.selector).indexOf(a.target)||(b=q.contains(q(g).find(d.selector),a.target)))&&(b=b||a.target,e.currentTarget=b,a.namespace&&a.namespace!==d.namespace||d.originfn.call(b,new c(a,e))):a.namespace&&a.namespace!==d.namespace||d.originfn.call(g,new c(a,e))}},d.on=function(a){var b,c,d=arguments,e=this.length,f=0,g=i.call(d,-1)[0];for(3===d.length&&m(d[1])?b=d[1]:3===d.length&&n(d[1])?c=d[1]:4===d.length&&(b=d[1],c=d[2]);e>f;f++)q.event.add(this[f],a,g,c,b);return this},d.one=function(a){var b,c=arguments,d=0,e=this.length,f=i.call(c,1,c.length-1),g=i.call(c,-1)[0];for(b=function(b){var c=q(b);a.split(" ").forEach(function(a){var d=function(e){c.off(a,d),g.call(b,e)};c.on.apply(c,[a].concat(f,d))})};e>d;d++)b(this[d]);return this},d.trigger=function(a){var b,c=[],d=0,e=this.length;if(!a)return this;for(m(a)?c=a.split(" ").map(function(a){return q.Event(a)}):(a=a instanceof Event?a:q.Event(a),c=[a]),b=function(a){c.forEach(function(b){b.type&&a.dispatchEvent&&a.dispatchEvent(b)})};e>d;d++)b(this[d]);return this},d.off=function(a,b){var c,d,e,f,g=0,h=this.length,i=function(a,c,d,e,f){var g;(b&&f.originfn===b||!b)&&(g=f.fn),a[c][d].fn===g&&(e.removeEventListener(c,g),q._cache.events[q.getData(e).jid][c].splice(d,1))};for(e=function(b){var e,g,h;return(c=q.getData(b).events)?!a&&c?k(c).forEach(function(a){for(g=c[a],e=g.length;e--;)i(c,a,e,b,g[e])}):void a.split(" ").forEach(function(a){if(f=a.split(".")[0],d=a.split(".").splice(1).join("."),c[f])for(g=c[f],e=g.length;e--;)h=g[e],(!d||d&&h.namespace===d)&&i(c,f,e,b,h);else d&&k(c).forEach(function(a){for(g=c[a],e=g.length;e--;)h=g[e],h.namespace.split(".")[0]===d.split(".")[0]&&i(c,a,e,b,h)})}):void 0};h>g;g++)e(this[g]);return this},d.find=function(a){for(var b=[],c=0,d=this.length,e=function(c){o(c.querySelectorAll)&&[].forEach.call(c.querySelectorAll(a),function(a){b.push(a)})};d>c;c++)e(this[c]);return q(b)},d.get=function(a){return null!=a?0>a?this[a+this.length]:this[a]:i.call(this)},d.eq=function(a){return q(this[a])},d.parent=function(){for(var a,b=[],c=0,d=this.length;d>c;c++)!~b.indexOf(a=this[c].parentElement)&&a&&b.push(a);return q(b)},d.toArray=function(){return i.call(this)},d.is=function(){var a=arguments;return this.some(function(b){return b.tagName.toLowerCase()===a[0]})},d.has=function(){var a=arguments;return this.some(function(b){return b.querySelectorAll(a[0]).length})},d.add=function(a,b){return q.unique(q.merge(this.get(),q(a,b)))},d.attr=function(a,b){var c,d=arguments,e=0,f=this.length;if(m(a)&&1===d.length)return this[0]&&this[0].getAttribute(a);for(2===d.length?c=function(c){c.setAttribute(a,b)}:n(a)&&(c=function(b){k(a).forEach(function(c){b.setAttribute(c,a[c])})});f>e;e++)c(this[e]);return this},d.removeAttr=function(a){for(var b=0,c=this.length;c>b;b++)this[b].removeAttribute(a);return this},d.val=function(a){var b=0,c=this.length;if(0===arguments.length)return this[0]&&this[0].value;for(;c>b;b++)this[b].value=a;return this},d.css=function(b,c){var d,e=arguments,f=0,g=this.length;if(m(b)&&1===e.length)return this[0]&&a.getComputedStyle(this[0])[b];for(2===e.length?d=function(a){a.style[b]=c}:n(b)&&(d=function(a){k(b).forEach(function(c){a.style[c]=b[c]})});g>f;f++)d(this[f]);return this},d.data=function(a,b){var c,d=arguments,e={},f=0,g=this.length,h=function(a,b,c){n(c)?(a.jdata=a.jdata||{},a.jdata[b]=c):a.dataset[b]=c},i=function(a){return"true"===a?!0:"false"===a?!1:a};if(0===d.length)return this[0].jdata&&(e=this[0].jdata),k(this[0].dataset).forEach(function(a){e[a]=i(this[0].dataset[a])},this),e;if(1===d.length&&m(a))return this[0]&&i(this[0].dataset[a]||this[0].jdata&&this[0].jdata[a]);for(1===d.length&&n(a)?c=function(b){k(a).forEach(function(c){h(b,c,a[c])})}:2===d.length&&(c=function(c){h(c,a,b)});g>f;f++)c(this[f]);return this},d.removeData=function(a){for(var b,c,d=0,e=this.length;e>d;d++)if(b=this[d].jdata,c=this[d].dataset,a)b&&b[a]&&delete b[a],delete c[a];else{for(a in b)delete b[a];for(a in c)delete c[a]}return this},d.addClass=function(a){for(var b=0,c=0,d=this.length,e=a.trim().split(/\s+/);d>b;b++)for(c=0,c=0;c<e.length;c++)this[b].classList.add(e[c]);return this},d.removeClass=function(a){for(var b=0,c=0,d=this.length,e=a.trim().split(/\s+/);d>b;b++)for(c=0,c=0;c<e.length;c++)this[b].classList.remove(e[c]);return this},d.toggleClass=function(a){for(var b=0,c=this.length;c>b;b++)this[b].classList.toggle(a);return this},d.hasClass=function(a){for(var b=0,c=this.length;c>b;b++)if(this[b].classList.contains(a))return!0;return!1},d.html=function(a){var b,c=arguments;return 1===c.length&&void 0!==a?this.empty().append(a):0===c.length&&(b=this[0])?b.innerHTML:this},d.append=function(a){var b,c=0,d=this.length;for(m(a)&&h.exec(a)?a=q(a):n(a)||(a=document.createTextNode(a)),a=a instanceof q?a:q(a),b=function(b,c){a.forEach(function(a){b.appendChild(c?a.cloneNode(!0):a)})};d>c;c++)b(this[c],c);return this},d.appendTo=function(a){return q(a).append(this),this},d.empty=function(){for(var a,b=0,c=this.length;c>b;b++)for(a=this[b];a.lastChild;)a.removeChild(a.lastChild);return this},d.remove=function(){var a,b=0,c=this.length;for(this.off();c>b;b++)a=this[b],delete a.jdata,a.parentNode&&a.parentNode.removeChild(a);return this},"object"==typeof module&&module&&"object"==typeof module.exports?module.exports=q:"function"==typeof define&&define.amd?(define(function(){return q}),a.jBone=a.$=q):"object"==typeof a&&"object"==typeof a.document&&(a.jBone=a.$=q)}(window);

@@ -67,5 +67,2 @@ module.exports = function(grunt) {

min: {
options: {
report: "gzip"
},
files: {

@@ -72,0 +69,0 @@ "dist/jbone.min.js": ["dist/jbone.js"]

{
"name": "jbone",
"title": "jBone",
"version": "1.0.22",
"version": "1.0.23",
"description": "Library for DOM manipulation",

@@ -6,0 +6,0 @@ "main": "dist/jbone.js",

@@ -0,1 +1,31 @@

suite("on event", function(suite) {
setup(function() {
suite.jbEl = jBone('<span>');
suite.jqEl = jQuery('<span>');
});
bench("jBone", function() {
suite.jbEl.on('click', function() {});
});
bench("jQuery", function() {
suite.jqEl.on('click', function() {});
});
});
suite("on event with namespace", function(suite) {
setup(function() {
suite.jbEl = jBone('<span>');
suite.jqEl = jQuery('<span>');
});
bench("jBone", function() {
suite.jbEl.on('click.space', function() {});
});
bench("jQuery", function() {
suite.jqEl.on('click.space', function() {});
});
});
suite("on/off events", function(suite) {

@@ -2,0 +32,0 @@ setup(function() {

@@ -170,1 +170,57 @@ fn.attr = function(key, value) {

};
fn.addClass = function(className) {
var i = 0,
j = 0,
length = this.length,
classes = className.trim().split(/\s+/);
for (; i < length; i++) {
j = 0;
for (j = 0; j < classes.length; j++) {
this[i].classList.add(classes[j]);
}
}
return this;
};
fn.removeClass = function(className) {
var i = 0,
j = 0,
length = this.length,
classes = className.trim().split(/\s+/);
for (; i < length; i++) {
j = 0;
for (j = 0; j < classes.length; j++) {
this[i].classList.remove(classes[j]);
}
}
return this;
};
fn.toggleClass = function(className) {
var i = 0, length = this.length;
for (; i < length; i++) {
this[i].classList.toggle(className);
}
return this;
};
fn.hasClass = function(className) {
var i = 0, length = this.length;
for (; i < length; i++) {
if (this[i].classList.contains(className)) {
return true;
}
}
return false;
};

@@ -52,12 +52,74 @@ function BoneEvent(e, data) {

fn.on = function(event) {
jBone.event = {
add: function(el, types, handler, data, selector) {
var eventHandler = function() {
jBone.event.dispatch.apply(el, arguments);
},
events, eventType, t, event;
jBone.setId(el);
events = jBone.getData(el).events;
types = types.split(" ");
t = types.length;
while (t--) {
event = types[t];
eventType = event.split(".")[0];
events[eventType] = events[eventType] || [];
if (!events[eventType].length) {
el.addEventListener && el.addEventListener(eventType, eventHandler, false);
}
events[eventType].push({
namespace: event.split(".").splice(1).join("."),
fn: eventHandler,
selector: selector,
data: data,
originfn: handler
});
}
},
dispatch: function(e) {
var i = 0,
el = this,
handlerQueue = jBone.getData(el).events[e.type],
length = handlerQueue.length,
expectedTarget,
handler,
eventOptions;
for (; i < length; i++) {
eventOptions = {};
handler = handlerQueue[i];
handler.data && (eventOptions.data = handler.data);
if (!handler.selector) {
if (!(e.namespace && e.namespace !== handler.namespace)) {
handler.originfn.call(el, new BoneEvent(e, eventOptions));
}
} else if (~jBone(el).find(handler.selector).indexOf(e.target) || (expectedTarget = jBone.contains(jBone(el).find(handler.selector), e.target))) {
expectedTarget = expectedTarget || e.target;
eventOptions.currentTarget = expectedTarget;
if (!(e.namespace && e.namespace !== handler.namespace)) {
handler.originfn.call(expectedTarget, new BoneEvent(e, eventOptions));
}
}
}
}
};
fn.on = function(types) {
var args = arguments,
length = this.length,
i = 0,
callback = slice.call(args, -1)[0],
target, data, namespace, fn, events, eventType, expectedTarget, addListener;
handler = slice.call(args, -1)[0],
selector, data;
// .on('click', '.selector', function() {})
if (args.length === 3 && isString(args[1])) {
target = args[1];
selector = args[1];
}

@@ -70,49 +132,8 @@ // .on('click', { key: value }, function() {})

else if (args.length === 4) {
target = args[1];
selector = args[1];
data = args[2];
}
addListener = function(el) {
jBone.setId(el);
events = jBone.getData(el).events;
event.split(" ").forEach(function(event) {
var eventOptions = {};
if (data) {
eventOptions.data = data;
}
eventType = event.split(".")[0];
namespace = event.split(".").splice(1).join(".");
events[eventType] = events[eventType] || [];
fn = function(e) {
if (e.namespace && e.namespace !== namespace) {
return;
}
expectedTarget = null;
if (!target) {
callback.call(el, new BoneEvent(e, eventOptions));
} else if (~jBone(el).find(target).indexOf(e.target) || (expectedTarget = jBone.contains(jBone(el).find(target), e.target))) {
expectedTarget = expectedTarget || e.target;
eventOptions.currentTarget = expectedTarget;
callback.call(expectedTarget, new BoneEvent(e, eventOptions));
}
};
events[eventType].push({
namespace: namespace,
fn: fn,
originfn: callback
});
el.addEventListener && el.addEventListener(eventType, fn, false);
});
};
for (; i < length; i++) {
addListener(this[i]);
jBone.event.add(this[i], types, handler, data, selector);
}

@@ -119,0 +140,0 @@

@@ -163,2 +163,71 @@ describe('jBone Attributes', function() {

it('hasClass(name) should check if class exist', function() {
var a = jBone('<div class="name">');
var b = jBone('<div>');
expect(a.hasClass('name')).be.eql(true);
expect(a.hasClass('not-name')).be.eql(false);
expect(b.hasClass('name')).be.eql(false);
});
it('addClass(name) should add new class', function() {
var a = jBone('<div>');
a.addClass('name');
expect(a[0].getAttribute('class')).be.eql('name');
});
it('addClass(name) shouldn\'t add new class if class already exist', function() {
var a = jBone('<div class="name">');
a.addClass('name');
expect(a[0].getAttribute('class')).be.eql('name');
});
it('addClass(first second) should add multiple classes', function() {
var a = jBone('<div>');
a.addClass('first second');
expect(a[0].getAttribute('class')).be.eql('first second');
});
it('removeClass(name) should remove existing class', function() {
var a = jBone('<div class="name">');
a.removeClass('name');
expect(a[0].getAttribute('class')).be.eql('');
});
it('removeClass(first second) should remove multiple classes', function() {
var a = jBone('<div class="first second">');
a.removeClass('first second');
expect(a[0].getAttribute('class')).be.eql('');
});
it('removeClass(name) should work correct with not existing class', function() {
var a = jBone('<div class="name">');
a.removeClass('not-name');
expect(a[0].getAttribute('class')).be.eql('name');
var b = jBone('<div>');
b.removeClass('not-name');
expect(b[0].getAttribute('class')).be.eql(null);
});
it('toggleClass(name) should add new class if class not exist', function() {
var a = jBone('<div>');
a.toggleClass('name');
expect(a[0].getAttribute('class')).be.eql('name');
});
it('toggleClass(name) should remove class if class is exist', function() {
var a = jBone('<div class="name">');
a.toggleClass('name');
expect(a[0].getAttribute('class')).be.eql('');
});
});
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc