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 CHANGED
@@ -9,6 +9,10 @@ Super tiny chainable and extendable tool wrapping native `querySelectorAll` for
9
9
 
10
10
  ![Bonze](https://jaysalvat.github.io/bonze/screen.png)
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.6.1 built 2021-04-13 06:52:10.318
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
- if (context === void 0) {
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((function(item) {
22
- $(item)((function($elm) {
23
- return elements.push($elm);
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
- var $container = document.createElement("div");
24
+ const $container = document.createElement("div");
30
25
  $container.innerHTML = selector.trim();
31
26
  elements = [].slice.call($container.childNodes);
32
27
  } else {
33
- var contexts = context ? $(context)() : [ document ];
34
- contexts.forEach((function(context) {
28
+ const contexts = context ? $(context)() : [ document ];
29
+ contexts.forEach(context => {
35
30
  context = $(context)(0);
36
- var found = [].slice.call(context.querySelectorAll(selector));
31
+ const found = [].slice.call(context.querySelectorAll(selector));
37
32
  elements = elements.concat(found);
38
- }));
33
+ });
39
34
  }
40
35
  elements = elements.slice();
41
- var fn = function fn(value) {
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((function(element, i) {
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
- var proxy = function proxy(func, element) {
56
- return func ? $(element)(func) : $(element);
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 = function(f) {
60
- return proxy(f, elements[0]);
61
- };
62
- fn.last = function(f) {
63
- return proxy(f, elements[elements.length - 1]);
64
- };
65
- fn.odd = function(f) {
66
- return proxy(f, elements.filter((function(elmt, i) {
67
- return !(i % 2);
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((function(_ref) {
88
- var name = _ref[0], plugin = _ref[1];
89
- fn[name] = function() {
90
- for (var _len = arguments.length, argsFn = new Array(_len), _key = 0; _key < _len; _key++) {
91
- argsFn[_key] = arguments[_key];
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 };
@@ -1,2 +1,2 @@
1
- /*! bonze v1.6.1 - github.com/jaysalvat/bonze */
2
- function n(t,e){void 0===e&&(e=null);var r=[];if(!t)return n(r);if(t._bonze)return t;if("function"==typeof t)return document.addEventListener("DOMContentLoaded",t);if(t instanceof Array)t.forEach((function(t){n(t)((function(n){return r.push(n)}))}));else if(t.nodeType)r=[t];else if(t.match(/^\s*<(\w+|!)[^>]*>/)){var u=document.createElement("div");u.innerHTML=t.trim(),r=[].slice.call(u.childNodes)}else(e?n(e)():[document]).forEach((function(e){e=n(e)(0);var u=[].slice.call(e.querySelectorAll(t));r=r.concat(u)}));r=r.slice();var i=function n(t){return void 0===t?r:"number"==typeof t?r[t]:("function"==typeof t&&r.forEach((function(n,e){return t.call(n,n,e,r)})),n)},o=function(t,e){return t?n(e)(t):n(e)};return i._bonze=!0,i.first=function(n){return o(n,r[0])},i.last=function(n){return o(n,r[r.length-1])},i.odd=function(n){return o(n,r.filter((function(n,t){return!(t%2)})))},i.even=function(n){return o(n,r.filter((function(n,t){return t%2})))},i.nth=function(n,t){return o(t,r[n])},i.filter=function(n,t){return o(t,r.filter((function(t,e){return n(t,e,r)})))},i.set=function(t){return n(t(r))},i.each=i,Object.entries(n.plugins).forEach((function(t){var e=t[1];i[t[0]]=function(){for(var t=arguments.length,u=new Array(t),i=0;i<t;i++)u[i]=arguments[i];n(r)((function(){for(var n=arguments.length,t=new Array(n),r=0;r<n;r++)t[r]=arguments[r];e.apply(t[0],[].concat(t,u))}))}})),i}n.plugins={},n.plugin=function(t,e){n.plugins[t]=e};export default n;
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.6.1 built 2021-04-13 06:52:10.318
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, (function() {
12
+ })(this, function() {
13
13
  "use strict";
14
- function $(selector, context) {
15
- if (context === void 0) {
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((function(item) {
27
- $(item)((function($elm) {
28
- return elements.push($elm);
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
- var $container = document.createElement("div");
29
+ const $container = document.createElement("div");
35
30
  $container.innerHTML = selector.trim();
36
31
  elements = [].slice.call($container.childNodes);
37
32
  } else {
38
- var contexts = context ? $(context)() : [ document ];
39
- contexts.forEach((function(context) {
33
+ const contexts = context ? $(context)() : [ document ];
34
+ contexts.forEach(context => {
40
35
  context = $(context)(0);
41
- var found = [].slice.call(context.querySelectorAll(selector));
36
+ const found = [].slice.call(context.querySelectorAll(selector));
42
37
  elements = elements.concat(found);
43
- }));
38
+ });
44
39
  }
45
40
  elements = elements.slice();
46
- var fn = function fn(value) {
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((function(element, i) {
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
- var proxy = function proxy(func, element) {
61
- return func ? $(element)(func) : $(element);
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 = function(f) {
65
- return proxy(f, elements[0]);
66
- };
67
- fn.last = function(f) {
68
- return proxy(f, elements[elements.length - 1]);
69
- };
70
- fn.odd = function(f) {
71
- return proxy(f, elements.filter((function(elmt, i) {
72
- return !(i % 2);
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((function(_ref) {
93
- var name = _ref[0], plugin = _ref[1];
94
- fn[name] = function() {
95
- for (var _len = arguments.length, argsFn = new Array(_len), _key = 0; _key < _len; _key++) {
96
- argsFn[_key] = arguments[_key];
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.6.1 - github.com/jaysalvat/bonze */
2
- var n,e;n=this,e=function(){"use strict";function n(e,t){void 0===t&&(t=null);var r=[];if(!e)return n(r);if(e._bonze)return e;if("function"==typeof e)return document.addEventListener("DOMContentLoaded",e);if(e instanceof Array)e.forEach((function(e){n(e)((function(n){return r.push(n)}))}));else if(e.nodeType)r=[e];else if(e.match(/^\s*<(\w+|!)[^>]*>/)){var o=document.createElement("div");o.innerHTML=e.trim(),r=[].slice.call(o.childNodes)}else(t?n(t)():[document]).forEach((function(t){t=n(t)(0);var o=[].slice.call(t.querySelectorAll(e));r=r.concat(o)}));r=r.slice();var i=function n(e){return void 0===e?r:"number"==typeof e?r[e]:("function"==typeof e&&r.forEach((function(n,t){return e.call(n,n,t,r)})),n)},u=function(e,t){return e?n(t)(e):n(t)};return i._bonze=!0,i.first=function(n){return u(n,r[0])},i.last=function(n){return u(n,r[r.length-1])},i.odd=function(n){return u(n,r.filter((function(n,e){return!(e%2)})))},i.even=function(n){return u(n,r.filter((function(n,e){return e%2})))},i.nth=function(n,e){return u(e,r[n])},i.filter=function(n,e){return u(e,r.filter((function(e,t){return n(e,t,r)})))},i.set=function(e){return n(e(r))},i.each=i,Object.entries(n.plugins).forEach((function(e){var t=e[1];i[e[0]]=function(){for(var e=arguments.length,o=new Array(e),i=0;i<e;i++)o[i]=arguments[i];n(r)((function(){for(var n=arguments.length,e=new Array(n),r=0;r<n;r++)e[r]=arguments[r];t.apply(e[0],[].concat(e,o))}))}})),i}return n.plugins={},n.plugin=function(e,t){n.plugins[e]=t},n},"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(n="undefined"!=typeof globalThis?globalThis:n||self).bonze=e();
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.6.2",
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:patch": "npm version patch -m 'Bump to patch v%s'",
21
- "version:minor": "npm version minor -m 'Bump to minor v%s'",
22
- "version:major": "npm version major -m 'Bump to major v%s'",
23
- "release:patch": "npm version patch -m 'Release patch v%s' && git push --tags",
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
- "@babel/core": "^7.13.8",
42
- "@babel/preset-env": "^7.13.9",
43
- "@rollup/plugin-babel": "^5.3.0",
44
- "chai": "^4.3.1",
45
- "eslint": "^7.21.0",
46
- "jsdom": "^16.4.0",
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.4",
51
- "rollup-plugin-terser": "^7.0.2"
47
+ "rollup-plugin-sizes": "^1.1.0"
52
48
  }
53
49
  }