@ramstack/alpinegear-bound 1.1.0 → 1.1.1
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/alpinegear-bound.esm.js
CHANGED
|
@@ -38,10 +38,10 @@ function has_setter(value) {
|
|
|
38
38
|
}
|
|
39
39
|
|
|
40
40
|
const key = Symbol();
|
|
41
|
-
let
|
|
41
|
+
let observer;
|
|
42
42
|
|
|
43
43
|
function observe_resize(el, listener) {
|
|
44
|
-
|
|
44
|
+
observer ??= new ResizeObserver(entries => {
|
|
45
45
|
for (const e of entries) {
|
|
46
46
|
for (const callback of e.target[key]?.values() ?? []) {
|
|
47
47
|
callback(e);
|
|
@@ -52,19 +52,19 @@ function observe_resize(el, listener) {
|
|
|
52
52
|
el[key] ??= new Set();
|
|
53
53
|
el[key].add(listener);
|
|
54
54
|
|
|
55
|
-
|
|
55
|
+
observer.observe(el);
|
|
56
56
|
|
|
57
57
|
return () => {
|
|
58
58
|
el[key].delete(listener);
|
|
59
59
|
|
|
60
60
|
if (!el[key].size) {
|
|
61
|
-
|
|
61
|
+
observer.unobserve(el);
|
|
62
62
|
el[key] = null;
|
|
63
63
|
}
|
|
64
64
|
};
|
|
65
65
|
}
|
|
66
66
|
|
|
67
|
-
const warn = (...args) => console.warn("
|
|
67
|
+
const warn = (...args) => console.warn("alpinegear.js:", ...args);
|
|
68
68
|
const is_array = Array.isArray;
|
|
69
69
|
const is_nullish = value => value === null || value === undefined;
|
|
70
70
|
const is_checkable_input = el => el.type === "checkbox" || el.type === "radio";
|
|
@@ -247,12 +247,12 @@ function plugin({ directive, entangle, evaluateLater, mapAttributes, mutateDom,
|
|
|
247
247
|
|
|
248
248
|
const source = {
|
|
249
249
|
get: create_getter(evaluateLater, source_el, expression),
|
|
250
|
-
set: create_setter(evaluateLater, source_el, expression)
|
|
250
|
+
set: create_setter(evaluateLater, source_el, expression)
|
|
251
251
|
};
|
|
252
252
|
|
|
253
253
|
const target = {
|
|
254
254
|
get: create_getter(evaluateLater, el, value),
|
|
255
|
-
set: create_setter(evaluateLater, el, value)
|
|
255
|
+
set: create_setter(evaluateLater, el, value)
|
|
256
256
|
};
|
|
257
257
|
|
|
258
258
|
switch (modifier) {
|
|
@@ -290,14 +290,14 @@ function plugin({ directive, entangle, evaluateLater, mapAttributes, mutateDom,
|
|
|
290
290
|
|
|
291
291
|
|
|
292
292
|
|
|
293
|
-
|
|
293
|
+
setTimeout(() => {
|
|
294
294
|
|
|
295
295
|
|
|
296
296
|
is_nullish(get_value()) && update_variable();
|
|
297
297
|
|
|
298
298
|
effect(() => apply_select_values(el, as_array(get_value() ?? [])));
|
|
299
299
|
cleanup(listen(el, "change", () => set_value(collect_selected_values(el))));
|
|
300
|
-
});
|
|
300
|
+
}, 0);
|
|
301
301
|
|
|
302
302
|
processed = true;
|
|
303
303
|
break;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function e(e,...t){const n=e(...t);return()=>{let e;return n(
|
|
1
|
+
function e(e,...t){const n=e(...t);return()=>{let e;return n(t=>e=t),t=e,"function"==typeof t?.get?e.get():e;var t}}function t(e,...t){const n=e(...t);t[t.length-1]=`${t.at(-1)} = __val`;const i=e(...t);return e=>{let t;n(e=>t=e),function(e){return"function"==typeof e?.set}(t)?t.set(e):i(()=>{},{scope:{__val:e}})}}const n=Symbol();let i;const a=(...e)=>console.warn("alpinegear.js:",...e),r=Array.isArray,o=e=>null==e,c=e=>"checkbox"===e.type||"radio"===e.type,s=e=>r(e)?e:[e],u=(e,t)=>e==t,l=(e,t)=>e.findIndex(e=>e==t),d=(e,t)=>e.includes(t),f=(e,t,n,i)=>(e.addEventListener(t,n,i),()=>e.removeEventListener(t,n,i)),p=e=>"object"==typeof e?JSON.parse(JSON.stringify(e)):e;function v(e,t,n=null){const{effect:i,release:a}=Alpine;let r,o,c=!1;const s=i(()=>{r=e(),c||(n?.deep&&JSON.stringify(r),o=r),(c||(n?.immediate??1))&&setTimeout(()=>{t(r,o),o=r},0),c=!0});return()=>a(s)}const h=new Map("value,checked,files,innerHTML,innerText,textContent,videoHeight,videoWidth,naturalHeight,naturalWidth,clientHeight,clientWidth,offsetHeight,offsetWidth,open,group".split(",").map(e=>[e.trim().toLowerCase(),e.trim()]));function g({directive:g,entangle:b,evaluateLater:m,mapAttributes:k,mutateDom:x,prefixed:y}){k(e=>({name:e.name.replace(/^&/,y("bound:")),value:e.value})),g("bound",(g,{expression:k,value:y,modifiers:T},{effect:w,cleanup:E})=>{if(!y)return void a("x-bound directive expects the presence of a bound property name");const H=g.tagName.toUpperCase();k=k?.trim();const _=h.get(y.trim().replace("-","").toLowerCase());k||=_;const L=e(m,g,k),S=t(m,g,k),W=()=>u(g[_],L())||x(()=>g[_]=L()),A=()=>S((e=>"number"===e.type||"range"===e.type)(g)?function(e){return""===e?null:+e}(g[_]):g[_]);let C;switch(_){case"value":!function(){switch(H){case"INPUT":case"TEXTAREA":o(L())&&A(),w(W),E(f(g,"input",A)),C=!0;break;case"SELECT":setTimeout(()=>{o(L())&&A(),w(()=>function(e,t){for(const n of e.options)n.selected=l(t,n.value)>=0}(g,s(L()??[]))),E(f(g,"change",()=>S(function(e){return e.multiple?[...e.selectedOptions].map(e=>e.value):e.value}(g))))},0),C=!0}}();break;case"checked":c(g)&&(w(W),E(f(g,"change",A)),C=!0);break;case"files":"file"===g.type&&(E(f(g,"input",A)),C=!0);break;case"innerHTML":case"innerText":case"textContent":"true"===g.contentEditable&&(o(L())&&A(),w(W),E(f(g,"input",A)),C=!0);break;case"videoHeight":case"videoWidth":N("VIDEO","resize");break;case"naturalHeight":case"naturalWidth":N("IMG","load");break;case"clientHeight":case"clientWidth":case"offsetHeight":case"offsetWidth":E(function(e,t){return i??=new ResizeObserver(e=>{for(const t of e)for(const e of t.target[n]?.values()??[])e(t)}),e[n]??=new Set,e[n].add(t),i.observe(e),()=>{e[n].delete(t),e[n].size||(i.unobserve(e),e[n]=null)}}(g,A)),C=!0;break;case"open":"DETAILS"===H&&(o(L())&&A(),w(W),E(f(g,"toggle",A)),C=!0);break;case"group":c(g)&&(g.name||x(()=>g.name=k),w(()=>x(()=>function(e,t){e.checked=r(t)?l(t,e.value)>=0:u(e.value,t)}(g,L()??[]))),E(f(g,"input",()=>S(function(e,t){if("radio"===e.type)return e.value;t=s(t);const n=l(t,e.value);return e.checked?n>=0||t.push(e.value):n>=0&&t.splice(n,1),t}(g,L())))),C=!0)}if(!C){const n=d(T,"in")?"in":d(T,"out")?"out":"inout",i=k===y?((e,t)=>{for(;e&&!t(e);)e=(e._x_teleportBack??e).parentElement;return e})(g.parentNode,e=>e._x_dataStack):g;if(!g._x_dataStack)return void a("x-bound directive requires the presence of the x-data directive to bind component properties");if(!i)return void a(`x-bound directive cannot find the parent scope where the '${y}' property is defined`);const r={get:e(m,i,k),set:t(m,i,k)},o={get:e(m,g,y),set:t(m,g,y)};switch(n){case"in":E(v(()=>r.get(),e=>o.set(p(e))));break;case"out":E(v(()=>o.get(),e=>r.set(p(e))));break;default:E(b(r,o))}}function N(e,t){H===e&&(A(),E(f(g,t,A)),C=!0)}})}export{g as bound};
|
package/alpinegear-bound.js
CHANGED
|
@@ -41,10 +41,10 @@
|
|
|
41
41
|
}
|
|
42
42
|
|
|
43
43
|
const key = Symbol();
|
|
44
|
-
let
|
|
44
|
+
let observer;
|
|
45
45
|
|
|
46
46
|
function observe_resize(el, listener) {
|
|
47
|
-
|
|
47
|
+
observer ??= new ResizeObserver(entries => {
|
|
48
48
|
for (const e of entries) {
|
|
49
49
|
for (const callback of e.target[key]?.values() ?? []) {
|
|
50
50
|
callback(e);
|
|
@@ -55,19 +55,19 @@
|
|
|
55
55
|
el[key] ??= new Set();
|
|
56
56
|
el[key].add(listener);
|
|
57
57
|
|
|
58
|
-
|
|
58
|
+
observer.observe(el);
|
|
59
59
|
|
|
60
60
|
return () => {
|
|
61
61
|
el[key].delete(listener);
|
|
62
62
|
|
|
63
63
|
if (!el[key].size) {
|
|
64
|
-
|
|
64
|
+
observer.unobserve(el);
|
|
65
65
|
el[key] = null;
|
|
66
66
|
}
|
|
67
67
|
};
|
|
68
68
|
}
|
|
69
69
|
|
|
70
|
-
const warn = (...args) => console.warn("
|
|
70
|
+
const warn = (...args) => console.warn("alpinegear.js:", ...args);
|
|
71
71
|
const is_array = Array.isArray;
|
|
72
72
|
const is_nullish = value => value === null || value === undefined;
|
|
73
73
|
const is_checkable_input = el => el.type === "checkbox" || el.type === "radio";
|
|
@@ -250,12 +250,12 @@
|
|
|
250
250
|
|
|
251
251
|
const source = {
|
|
252
252
|
get: create_getter(evaluateLater, source_el, expression),
|
|
253
|
-
set: create_setter(evaluateLater, source_el, expression)
|
|
253
|
+
set: create_setter(evaluateLater, source_el, expression)
|
|
254
254
|
};
|
|
255
255
|
|
|
256
256
|
const target = {
|
|
257
257
|
get: create_getter(evaluateLater, el, value),
|
|
258
|
-
set: create_setter(evaluateLater, el, value)
|
|
258
|
+
set: create_setter(evaluateLater, el, value)
|
|
259
259
|
};
|
|
260
260
|
|
|
261
261
|
switch (modifier) {
|
|
@@ -293,14 +293,14 @@
|
|
|
293
293
|
|
|
294
294
|
|
|
295
295
|
|
|
296
|
-
|
|
296
|
+
setTimeout(() => {
|
|
297
297
|
|
|
298
298
|
|
|
299
299
|
is_nullish(get_value()) && update_variable();
|
|
300
300
|
|
|
301
301
|
effect(() => apply_select_values(el, as_array(get_value() ?? [])));
|
|
302
302
|
cleanup(listen(el, "change", () => set_value(collect_selected_values(el))));
|
|
303
|
-
});
|
|
303
|
+
}, 0);
|
|
304
304
|
|
|
305
305
|
processed = true;
|
|
306
306
|
break;
|
package/alpinegear-bound.min.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
!function(){"use strict";function e(e,...t){const n=e(...t);return()=>{let e;return n(
|
|
1
|
+
!function(){"use strict";function e(e,...t){const n=e(...t);return()=>{let e;return n(t=>e=t),t=e,"function"==typeof t?.get?e.get():e;var t}}function t(e,...t){const n=e(...t);t[t.length-1]=`${t.at(-1)} = __val`;const i=e(...t);return e=>{let t;n(e=>t=e),function(e){return"function"==typeof e?.set}(t)?t.set(e):i(()=>{},{scope:{__val:e}})}}const n=Symbol();let i;const a=(...e)=>console.warn("alpinegear.js:",...e),r=Array.isArray,o=e=>null==e,c=e=>"checkbox"===e.type||"radio"===e.type,s=e=>r(e)?e:[e],u=(e,t)=>e==t,l=(e,t)=>e.findIndex(e=>e==t),d=(e,t)=>e.includes(t),p=(e,t,n,i)=>(e.addEventListener(t,n,i),()=>e.removeEventListener(t,n,i)),f=e=>"object"==typeof e?JSON.parse(JSON.stringify(e)):e;function v(e,t,n=null){const{effect:i,release:a}=Alpine;let r,o,c=!1;const s=i(()=>{r=e(),c||(n?.deep&&JSON.stringify(r),o=r),(c||(n?.immediate??1))&&setTimeout(()=>{t(r,o),o=r},0),c=!0});return()=>a(s)}const h=new Map("value,checked,files,innerHTML,innerText,textContent,videoHeight,videoWidth,naturalHeight,naturalWidth,clientHeight,clientWidth,offsetHeight,offsetWidth,open,group".split(",").map(e=>[e.trim().toLowerCase(),e.trim()]));function g({directive:g,entangle:b,evaluateLater:m,mapAttributes:k,mutateDom:x,prefixed:y}){k(e=>({name:e.name.replace(/^&/,y("bound:")),value:e.value})),g("bound",(g,{expression:k,value:y,modifiers:E},{effect:T,cleanup:w})=>{if(!y)return void a("x-bound directive expects the presence of a bound property name");const H=g.tagName.toUpperCase();k=k?.trim();const L=h.get(y.trim().replace("-","").toLowerCase());k||=L;const _=e(m,g,k),S=t(m,g,k),A=()=>u(g[L],_())||x(()=>g[L]=_()),W=()=>S((e=>"number"===e.type||"range"===e.type)(g)?function(e){return""===e?null:+e}(g[L]):g[L]);let C;switch(L){case"value":!function(){switch(H){case"INPUT":case"TEXTAREA":o(_())&&W(),T(A),w(p(g,"input",W)),C=!0;break;case"SELECT":setTimeout(()=>{o(_())&&W(),T(()=>function(e,t){for(const n of e.options)n.selected=l(t,n.value)>=0}(g,s(_()??[]))),w(p(g,"change",()=>S(function(e){return e.multiple?[...e.selectedOptions].map(e=>e.value):e.value}(g))))},0),C=!0}}();break;case"checked":c(g)&&(T(A),w(p(g,"change",W)),C=!0);break;case"files":"file"===g.type&&(w(p(g,"input",W)),C=!0);break;case"innerHTML":case"innerText":case"textContent":"true"===g.contentEditable&&(o(_())&&W(),T(A),w(p(g,"input",W)),C=!0);break;case"videoHeight":case"videoWidth":N("VIDEO","resize");break;case"naturalHeight":case"naturalWidth":N("IMG","load");break;case"clientHeight":case"clientWidth":case"offsetHeight":case"offsetWidth":w(function(e,t){return i??=new ResizeObserver(e=>{for(const t of e)for(const e of t.target[n]?.values()??[])e(t)}),e[n]??=new Set,e[n].add(t),i.observe(e),()=>{e[n].delete(t),e[n].size||(i.unobserve(e),e[n]=null)}}(g,W)),C=!0;break;case"open":"DETAILS"===H&&(o(_())&&W(),T(A),w(p(g,"toggle",W)),C=!0);break;case"group":c(g)&&(g.name||x(()=>g.name=k),T(()=>x(()=>function(e,t){e.checked=r(t)?l(t,e.value)>=0:u(e.value,t)}(g,_()??[]))),w(p(g,"input",()=>S(function(e,t){if("radio"===e.type)return e.value;t=s(t);const n=l(t,e.value);return e.checked?n>=0||t.push(e.value):n>=0&&t.splice(n,1),t}(g,_())))),C=!0)}if(!C){const n=d(E,"in")?"in":d(E,"out")?"out":"inout",i=k===y?((e,t)=>{for(;e&&!t(e);)e=(e._x_teleportBack??e).parentElement;return e})(g.parentNode,e=>e._x_dataStack):g;if(!g._x_dataStack)return void a("x-bound directive requires the presence of the x-data directive to bind component properties");if(!i)return void a(`x-bound directive cannot find the parent scope where the '${y}' property is defined`);const r={get:e(m,i,k),set:t(m,i,k)},o={get:e(m,g,y),set:t(m,g,y)};switch(n){case"in":w(v(()=>r.get(),e=>o.set(f(e))));break;case"out":w(v(()=>o.get(),e=>r.set(f(e))));break;default:w(b(r,o))}}function N(e,t){H===e&&(W(),w(p(g,t,W)),C=!0)}})}document.addEventListener("alpine:init",()=>{Alpine.plugin(g)})}();
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ramstack/alpinegear-bound",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.1",
|
|
4
4
|
"description": "@ramstack/alpinegear-bound provides the 'x-bound' Alpine.js directive, which allows for two-way binding of input elements and their associated data properties.",
|
|
5
5
|
"author": "Rameel Burhan",
|
|
6
6
|
"license": "MIT",
|