bonze 1.6.2 → 1.7.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +19 -0
- package/dist/bonze.esm.js +36 -62
- package/dist/bonze.esm.min.js +2 -2
- package/dist/bonze.js +37 -63
- package/dist/bonze.min.js +2 -2
- package/package.json +13 -17
package/README.md
CHANGED
|
@@ -9,6 +9,10 @@ Super tiny chainable and extendable tool wrapping native `querySelectorAll` for
|
|
|
9
9
|
|
|
10
10
|

|
|
11
11
|
|
|
12
|
+
## Demos
|
|
13
|
+
|
|
14
|
+
See [demos here.](https://jaysalvat.github.io/bonze/demo/)
|
|
15
|
+
|
|
12
16
|
## Concept
|
|
13
17
|
|
|
14
18
|
### Example 1
|
|
@@ -138,6 +142,10 @@ $('div').filter(div => div.textContent.includes('error'), div => {
|
|
|
138
142
|
div.classList.add('red');
|
|
139
143
|
});
|
|
140
144
|
|
|
145
|
+
$('div.focus').siblings(div => {
|
|
146
|
+
div.classList.add('warning');
|
|
147
|
+
});
|
|
148
|
+
|
|
141
149
|
```
|
|
142
150
|
|
|
143
151
|
### Create element
|
|
@@ -148,6 +156,17 @@ $('<h1>My New Title</h1>')((h1) => {
|
|
|
148
156
|
});
|
|
149
157
|
```
|
|
150
158
|
|
|
159
|
+
### Navigate back
|
|
160
|
+
|
|
161
|
+
`.back()` returns the previous selection in the chain, allowing you to branch from the same root.
|
|
162
|
+
|
|
163
|
+
```javascript
|
|
164
|
+
$('div')
|
|
165
|
+
.even(div => div.classList.add('even'))
|
|
166
|
+
.back()
|
|
167
|
+
.odd(div => div.classList.add('odd'));
|
|
168
|
+
```
|
|
169
|
+
|
|
151
170
|
### Chainable
|
|
152
171
|
|
|
153
172
|
```javascript
|
package/dist/bonze.esm.js
CHANGED
|
@@ -2,15 +2,12 @@
|
|
|
2
2
|
* bonze
|
|
3
3
|
* Super tiny chainable and extendable tool wrapping native `querySelectorAll` for selecting, creating and filtering DOM Elements with ease.
|
|
4
4
|
* https://github.com/jaysalvat/bonze
|
|
5
|
-
* @version 1.
|
|
5
|
+
* @version 1.7.2 built 2026-02-20 17:00:00.488
|
|
6
6
|
* @license MIT
|
|
7
7
|
* @author Jay Salvat http://jaysalvat.com
|
|
8
8
|
*/
|
|
9
|
-
function $(selector, context) {
|
|
10
|
-
|
|
11
|
-
context = null;
|
|
12
|
-
}
|
|
13
|
-
var elements = [];
|
|
9
|
+
function $(selector, context = null) {
|
|
10
|
+
let elements = [];
|
|
14
11
|
if (!selector) {
|
|
15
12
|
return $(elements);
|
|
16
13
|
} else if (selector._bonze) {
|
|
@@ -18,27 +15,25 @@ function $(selector, context) {
|
|
|
18
15
|
} else if (typeof selector === "function") {
|
|
19
16
|
return document.addEventListener("DOMContentLoaded", selector);
|
|
20
17
|
} else if (selector instanceof Array) {
|
|
21
|
-
selector.forEach(
|
|
22
|
-
$(item)((
|
|
23
|
-
|
|
24
|
-
}));
|
|
25
|
-
}));
|
|
18
|
+
selector.forEach(item => {
|
|
19
|
+
$(item)($elm => elements.push($elm));
|
|
20
|
+
});
|
|
26
21
|
} else if (selector.nodeType) {
|
|
27
22
|
elements = [ selector ];
|
|
28
23
|
} else if (selector.match(/^\s*<(\w+|!)[^>]*>/)) {
|
|
29
|
-
|
|
24
|
+
const $container = document.createElement("div");
|
|
30
25
|
$container.innerHTML = selector.trim();
|
|
31
26
|
elements = [].slice.call($container.childNodes);
|
|
32
27
|
} else {
|
|
33
|
-
|
|
34
|
-
contexts.forEach(
|
|
28
|
+
const contexts = context ? $(context)() : [ document ];
|
|
29
|
+
contexts.forEach(context => {
|
|
35
30
|
context = $(context)(0);
|
|
36
|
-
|
|
31
|
+
const found = [].slice.call(context.querySelectorAll(selector));
|
|
37
32
|
elements = elements.concat(found);
|
|
38
|
-
})
|
|
33
|
+
});
|
|
39
34
|
}
|
|
40
35
|
elements = elements.slice();
|
|
41
|
-
|
|
36
|
+
const fn = value => {
|
|
42
37
|
if (typeof value === "undefined") {
|
|
43
38
|
return elements;
|
|
44
39
|
}
|
|
@@ -46,58 +41,37 @@ function $(selector, context) {
|
|
|
46
41
|
return elements[value];
|
|
47
42
|
}
|
|
48
43
|
if (typeof value === "function") {
|
|
49
|
-
elements.forEach((
|
|
50
|
-
return value.call(element, element, i, elements);
|
|
51
|
-
}));
|
|
44
|
+
elements.forEach((element, i) => value.call(element, element, i, elements));
|
|
52
45
|
}
|
|
53
46
|
return fn;
|
|
54
47
|
};
|
|
55
|
-
|
|
56
|
-
|
|
48
|
+
const proxy = (func, element) => {
|
|
49
|
+
const next = $(element);
|
|
50
|
+
next._prev = fn;
|
|
51
|
+
return func ? next(func) : next;
|
|
57
52
|
};
|
|
58
53
|
fn._bonze = true;
|
|
59
|
-
fn.first =
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
fn.
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
fn.
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
fn.even = function(f) {
|
|
71
|
-
return proxy(f, elements.filter((function(elmt, i) {
|
|
72
|
-
return i % 2;
|
|
73
|
-
})));
|
|
74
|
-
};
|
|
75
|
-
fn.nth = function(value, f) {
|
|
76
|
-
return proxy(f, elements[value]);
|
|
77
|
-
};
|
|
78
|
-
fn.filter = function(filter, f) {
|
|
79
|
-
return proxy(f, elements.filter((function(elmt, i) {
|
|
80
|
-
return filter(elmt, i, elements);
|
|
81
|
-
})));
|
|
82
|
-
};
|
|
83
|
-
fn.set = function(f) {
|
|
84
|
-
return $(f(elements));
|
|
54
|
+
fn.first = f => proxy(f, elements[0]);
|
|
55
|
+
fn.last = f => proxy(f, elements[elements.length - 1]);
|
|
56
|
+
fn.odd = f => proxy(f, elements.filter((elmt, i) => !(i % 2)));
|
|
57
|
+
fn.even = f => proxy(f, elements.filter((elmt, i) => i % 2));
|
|
58
|
+
fn.nth = (value, f) => proxy(f, elements[value]);
|
|
59
|
+
fn.filter = (filter, f) => proxy(f, elements.filter((elmt, i) => filter(elmt, i, elements)));
|
|
60
|
+
fn.siblings = f => proxy(f, [ ...new Set(elements.flatMap(elmt => elmt.parentNode ? [].slice.call(elmt.parentNode.children).filter(child => child !== elmt) : [])) ]);
|
|
61
|
+
fn.set = f => {
|
|
62
|
+
const next = $(f(elements));
|
|
63
|
+
next._prev = fn;
|
|
64
|
+
return next;
|
|
85
65
|
};
|
|
66
|
+
fn.back = () => fn._prev || fn;
|
|
86
67
|
fn.each = fn;
|
|
87
|
-
Object.entries($.plugins).forEach((
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
}
|
|
93
|
-
$(elements)((function() {
|
|
94
|
-
for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
|
|
95
|
-
args[_key2] = arguments[_key2];
|
|
96
|
-
}
|
|
97
|
-
plugin.apply(args[0], [].concat(args, argsFn));
|
|
98
|
-
}));
|
|
68
|
+
Object.entries($.plugins).forEach(([name, plugin]) => {
|
|
69
|
+
fn[name] = (...argsFn) => {
|
|
70
|
+
$(elements)((...args) => {
|
|
71
|
+
plugin.apply(args[0], [ ...args, ...argsFn ]);
|
|
72
|
+
});
|
|
99
73
|
};
|
|
100
|
-
})
|
|
74
|
+
});
|
|
101
75
|
return fn;
|
|
102
76
|
}
|
|
103
77
|
|
|
@@ -107,4 +81,4 @@ $.plugin = function(name, fn) {
|
|
|
107
81
|
$.plugins[name] = fn;
|
|
108
82
|
};
|
|
109
83
|
|
|
110
|
-
export default
|
|
84
|
+
export { $ as default };
|
package/dist/bonze.esm.min.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/*! bonze v1.
|
|
2
|
-
function
|
|
1
|
+
/*! bonze v1.7.2 - github.com/jaysalvat/bonze */
|
|
2
|
+
function e(t,n=null){let l=[];if(!t)return e(l);if(t._bonze)return t;if("function"==typeof t)return document.addEventListener("DOMContentLoaded",t);if(t instanceof Array)t.forEach(t=>{e(t)(e=>l.push(e))});else if(t.nodeType)l=[t];else if(t.match(/^\s*<(\w+|!)[^>]*>/)){const e=document.createElement("div");e.innerHTML=t.trim(),l=[].slice.call(e.childNodes)}else(n?e(n)():[document]).forEach(n=>{n=e(n)(0);const r=[].slice.call(n.querySelectorAll(t));l=l.concat(r)});l=l.slice();const r=e=>void 0===e?l:"number"==typeof e?l[e]:("function"==typeof e&&l.forEach((t,n)=>e.call(t,t,n,l)),r),c=(t,n)=>{const l=e(n);return l._prev=r,t?l(t):l};return r._bonze=!0,r.first=e=>c(e,l[0]),r.last=e=>c(e,l[l.length-1]),r.odd=e=>c(e,l.filter((e,t)=>!(t%2))),r.even=e=>c(e,l.filter((e,t)=>t%2)),r.nth=(e,t)=>c(t,l[e]),r.filter=(e,t)=>c(t,l.filter((t,n)=>e(t,n,l))),r.siblings=e=>c(e,[...new Set(l.flatMap(e=>e.parentNode?[].slice.call(e.parentNode.children).filter(t=>t!==e):[]))]),r.set=t=>{const n=e(t(l));return n._prev=r,n},r.back=()=>r._prev||r,r.each=r,Object.entries(e.plugins).forEach(([t,n])=>{r[t]=(...t)=>{e(l)((...e)=>{n.apply(e[0],[...e,...t])})}}),r}e.plugins={},e.plugin=function(t,n){e.plugins[t]=n};export{e as default};
|
package/dist/bonze.js
CHANGED
|
@@ -2,20 +2,17 @@
|
|
|
2
2
|
* bonze
|
|
3
3
|
* Super tiny chainable and extendable tool wrapping native `querySelectorAll` for selecting, creating and filtering DOM Elements with ease.
|
|
4
4
|
* https://github.com/jaysalvat/bonze
|
|
5
|
-
* @version 1.
|
|
5
|
+
* @version 1.7.2 built 2026-02-20 17:00:00.488
|
|
6
6
|
* @license MIT
|
|
7
7
|
* @author Jay Salvat http://jaysalvat.com
|
|
8
8
|
*/
|
|
9
9
|
(function(global, factory) {
|
|
10
10
|
typeof exports === "object" && typeof module !== "undefined" ? module.exports = factory() : typeof define === "function" && define.amd ? define(factory) : (global = typeof globalThis !== "undefined" ? globalThis : global || self,
|
|
11
11
|
global.bonze = factory());
|
|
12
|
-
})(this,
|
|
12
|
+
})(this, function() {
|
|
13
13
|
"use strict";
|
|
14
|
-
function $(selector, context) {
|
|
15
|
-
|
|
16
|
-
context = null;
|
|
17
|
-
}
|
|
18
|
-
var elements = [];
|
|
14
|
+
function $(selector, context = null) {
|
|
15
|
+
let elements = [];
|
|
19
16
|
if (!selector) {
|
|
20
17
|
return $(elements);
|
|
21
18
|
} else if (selector._bonze) {
|
|
@@ -23,27 +20,25 @@
|
|
|
23
20
|
} else if (typeof selector === "function") {
|
|
24
21
|
return document.addEventListener("DOMContentLoaded", selector);
|
|
25
22
|
} else if (selector instanceof Array) {
|
|
26
|
-
selector.forEach(
|
|
27
|
-
$(item)((
|
|
28
|
-
|
|
29
|
-
}));
|
|
30
|
-
}));
|
|
23
|
+
selector.forEach(item => {
|
|
24
|
+
$(item)($elm => elements.push($elm));
|
|
25
|
+
});
|
|
31
26
|
} else if (selector.nodeType) {
|
|
32
27
|
elements = [ selector ];
|
|
33
28
|
} else if (selector.match(/^\s*<(\w+|!)[^>]*>/)) {
|
|
34
|
-
|
|
29
|
+
const $container = document.createElement("div");
|
|
35
30
|
$container.innerHTML = selector.trim();
|
|
36
31
|
elements = [].slice.call($container.childNodes);
|
|
37
32
|
} else {
|
|
38
|
-
|
|
39
|
-
contexts.forEach(
|
|
33
|
+
const contexts = context ? $(context)() : [ document ];
|
|
34
|
+
contexts.forEach(context => {
|
|
40
35
|
context = $(context)(0);
|
|
41
|
-
|
|
36
|
+
const found = [].slice.call(context.querySelectorAll(selector));
|
|
42
37
|
elements = elements.concat(found);
|
|
43
|
-
})
|
|
38
|
+
});
|
|
44
39
|
}
|
|
45
40
|
elements = elements.slice();
|
|
46
|
-
|
|
41
|
+
const fn = value => {
|
|
47
42
|
if (typeof value === "undefined") {
|
|
48
43
|
return elements;
|
|
49
44
|
}
|
|
@@ -51,58 +46,37 @@
|
|
|
51
46
|
return elements[value];
|
|
52
47
|
}
|
|
53
48
|
if (typeof value === "function") {
|
|
54
|
-
elements.forEach((
|
|
55
|
-
return value.call(element, element, i, elements);
|
|
56
|
-
}));
|
|
49
|
+
elements.forEach((element, i) => value.call(element, element, i, elements));
|
|
57
50
|
}
|
|
58
51
|
return fn;
|
|
59
52
|
};
|
|
60
|
-
|
|
61
|
-
|
|
53
|
+
const proxy = (func, element) => {
|
|
54
|
+
const next = $(element);
|
|
55
|
+
next._prev = fn;
|
|
56
|
+
return func ? next(func) : next;
|
|
62
57
|
};
|
|
63
58
|
fn._bonze = true;
|
|
64
|
-
fn.first =
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
fn.
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
fn.
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
fn.even = function(f) {
|
|
76
|
-
return proxy(f, elements.filter((function(elmt, i) {
|
|
77
|
-
return i % 2;
|
|
78
|
-
})));
|
|
79
|
-
};
|
|
80
|
-
fn.nth = function(value, f) {
|
|
81
|
-
return proxy(f, elements[value]);
|
|
82
|
-
};
|
|
83
|
-
fn.filter = function(filter, f) {
|
|
84
|
-
return proxy(f, elements.filter((function(elmt, i) {
|
|
85
|
-
return filter(elmt, i, elements);
|
|
86
|
-
})));
|
|
87
|
-
};
|
|
88
|
-
fn.set = function(f) {
|
|
89
|
-
return $(f(elements));
|
|
59
|
+
fn.first = f => proxy(f, elements[0]);
|
|
60
|
+
fn.last = f => proxy(f, elements[elements.length - 1]);
|
|
61
|
+
fn.odd = f => proxy(f, elements.filter((elmt, i) => !(i % 2)));
|
|
62
|
+
fn.even = f => proxy(f, elements.filter((elmt, i) => i % 2));
|
|
63
|
+
fn.nth = (value, f) => proxy(f, elements[value]);
|
|
64
|
+
fn.filter = (filter, f) => proxy(f, elements.filter((elmt, i) => filter(elmt, i, elements)));
|
|
65
|
+
fn.siblings = f => proxy(f, [ ...new Set(elements.flatMap(elmt => elmt.parentNode ? [].slice.call(elmt.parentNode.children).filter(child => child !== elmt) : [])) ]);
|
|
66
|
+
fn.set = f => {
|
|
67
|
+
const next = $(f(elements));
|
|
68
|
+
next._prev = fn;
|
|
69
|
+
return next;
|
|
90
70
|
};
|
|
71
|
+
fn.back = () => fn._prev || fn;
|
|
91
72
|
fn.each = fn;
|
|
92
|
-
Object.entries($.plugins).forEach((
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
}
|
|
98
|
-
$(elements)((function() {
|
|
99
|
-
for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
|
|
100
|
-
args[_key2] = arguments[_key2];
|
|
101
|
-
}
|
|
102
|
-
plugin.apply(args[0], [].concat(args, argsFn));
|
|
103
|
-
}));
|
|
73
|
+
Object.entries($.plugins).forEach(([name, plugin]) => {
|
|
74
|
+
fn[name] = (...argsFn) => {
|
|
75
|
+
$(elements)((...args) => {
|
|
76
|
+
plugin.apply(args[0], [ ...args, ...argsFn ]);
|
|
77
|
+
});
|
|
104
78
|
};
|
|
105
|
-
})
|
|
79
|
+
});
|
|
106
80
|
return fn;
|
|
107
81
|
}
|
|
108
82
|
$.plugins = {};
|
|
@@ -110,4 +84,4 @@
|
|
|
110
84
|
$.plugins[name] = fn;
|
|
111
85
|
};
|
|
112
86
|
return $;
|
|
113
|
-
})
|
|
87
|
+
});
|
package/dist/bonze.min.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/*! bonze v1.
|
|
2
|
-
var n
|
|
1
|
+
/*! bonze v1.7.2 - github.com/jaysalvat/bonze */
|
|
2
|
+
var e,n;e=this,n=function(){"use strict";function e(n,t=null){let i=[];if(!n)return e(i);if(n._bonze)return n;if("function"==typeof n)return document.addEventListener("DOMContentLoaded",n);if(n instanceof Array)n.forEach(n=>{e(n)(e=>i.push(e))});else if(n.nodeType)i=[n];else if(n.match(/^\s*<(\w+|!)[^>]*>/)){const e=document.createElement("div");e.innerHTML=n.trim(),i=[].slice.call(e.childNodes)}else(t?e(t)():[document]).forEach(t=>{t=e(t)(0);const o=[].slice.call(t.querySelectorAll(n));i=i.concat(o)});i=i.slice();const o=e=>void 0===e?i:"number"==typeof e?i[e]:("function"==typeof e&&i.forEach((n,t)=>e.call(n,n,t,i)),o),l=(n,t)=>{const i=e(t);return i._prev=o,n?i(n):i};return o._bonze=!0,o.first=e=>l(e,i[0]),o.last=e=>l(e,i[i.length-1]),o.odd=e=>l(e,i.filter((e,n)=>!(n%2))),o.even=e=>l(e,i.filter((e,n)=>n%2)),o.nth=(e,n)=>l(n,i[e]),o.filter=(e,n)=>l(n,i.filter((n,t)=>e(n,t,i))),o.siblings=e=>l(e,[...new Set(i.flatMap(e=>e.parentNode?[].slice.call(e.parentNode.children).filter(n=>n!==e):[]))]),o.set=n=>{const t=e(n(i));return t._prev=o,t},o.back=()=>o._prev||o,o.each=o,Object.entries(e.plugins).forEach(([n,t])=>{o[n]=(...n)=>{e(i)((...e)=>{t.apply(e[0],[...e,...n])})}}),o}return e.plugins={},e.plugin=function(n,t){e.plugins[n]=t},e},"object"==typeof exports&&"undefined"!=typeof module?module.exports=n():"function"==typeof define&&define.amd?define(n):(e="undefined"!=typeof globalThis?globalThis:e||self).bonze=n();
|
package/package.json
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "bonze",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.7.2",
|
|
4
4
|
"description": "Super tiny chainable and extendable tool wrapping native `querySelectorAll` for selecting, creating and filtering DOM Elements with ease.",
|
|
5
5
|
"homepage": "http://jaysalvat.com",
|
|
6
|
+
"type": "module",
|
|
6
7
|
"author": "Jay Salvat",
|
|
7
8
|
"license": "MIT",
|
|
8
9
|
"main": "dist/bonze.js",
|
|
@@ -17,12 +18,10 @@
|
|
|
17
18
|
"prewatch": "rm -rf ./dist",
|
|
18
19
|
"watch": "rollup -c --watch",
|
|
19
20
|
"build": "rollup -c",
|
|
20
|
-
"version
|
|
21
|
-
"
|
|
22
|
-
"
|
|
23
|
-
"release:
|
|
24
|
-
"release:minor": "npm version minor -m 'Release minor v%s' && git push --tags",
|
|
25
|
-
"release:major": "npm version major -m 'Release major v%s' && git push --tags",
|
|
21
|
+
"version": "npm run build",
|
|
22
|
+
"release:patch": "npm version patch -m 'Release patch v%s' && npm publish",
|
|
23
|
+
"release:minor": "npm version minor -m 'Release minor v%s' && npm publish",
|
|
24
|
+
"release:major": "npm version major -m 'Release major v%s' && npm publish",
|
|
26
25
|
"install-hooks": "chmod +x .githooks/*; for file in `ls .githooks`; do ln -sf ../../.githooks/${file} .git/hooks/${file}; done",
|
|
27
26
|
"postinstall": "npm run install-hooks"
|
|
28
27
|
},
|
|
@@ -38,16 +37,13 @@
|
|
|
38
37
|
"dom"
|
|
39
38
|
],
|
|
40
39
|
"devDependencies": {
|
|
41
|
-
"
|
|
42
|
-
"
|
|
43
|
-
"
|
|
44
|
-
"
|
|
45
|
-
"
|
|
46
|
-
"
|
|
47
|
-
"mocha": "^8.3.0",
|
|
48
|
-
"rollup": "^2.40.0",
|
|
40
|
+
"chai": "^6.2.2",
|
|
41
|
+
"eslint": "^10.0.0",
|
|
42
|
+
"jsdom": "^28.1.0",
|
|
43
|
+
"mocha": "^11.7.5",
|
|
44
|
+
"rollup": "^4.58.0",
|
|
45
|
+
"@rollup/plugin-terser": "^0.4.4",
|
|
49
46
|
"rollup-plugin-bundle-size": "^1.0.3",
|
|
50
|
-
"rollup-plugin-sizes": "^1.0
|
|
51
|
-
"rollup-plugin-terser": "^7.0.2"
|
|
47
|
+
"rollup-plugin-sizes": "^1.1.0"
|
|
52
48
|
}
|
|
53
49
|
}
|