@erickxavier/no-js 1.4.3 → 1.5.0
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 +12 -1
- package/dist/cjs/no.js +2 -2
- package/dist/cjs/no.js.map +1 -1
- package/dist/esm/no.js +2 -2
- package/dist/esm/no.js.map +1 -1
- package/dist/iife/no.js +2 -2
- package/dist/iife/no.js.map +1 -1
- package/package.json +1 -1
- package/src/index.js +1 -1
package/README.md
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
|
|
1
|
+
<h1>
|
|
2
|
+
<img src="docs/logo-dark-round.png" alt="No.JS" width="26" style="vertical-align: middle; margin-top: -6px;"> No.JS
|
|
3
|
+
</h1>
|
|
2
4
|
|
|
3
5
|
**The HTML-First Reactive Framework**
|
|
4
6
|
|
|
@@ -136,10 +138,19 @@ Full documentation is available in the [docs/](docs/) folder:
|
|
|
136
138
|
|
|
137
139
|
---
|
|
138
140
|
|
|
141
|
+
## Community
|
|
142
|
+
|
|
143
|
+
Join the conversation and get help:
|
|
144
|
+
|
|
145
|
+
- [Discord](https://discord.gg/CaSbGYg3xY)
|
|
146
|
+
- [GitHub Discussions](https://github.com/ErickXavier/no-js/discussions)
|
|
147
|
+
|
|
139
148
|
## Contributing
|
|
140
149
|
|
|
141
150
|
Contributions are welcome! Please open an issue or submit a pull request.
|
|
142
151
|
|
|
152
|
+
- [Changelog](CHANGELOG.md)
|
|
153
|
+
|
|
143
154
|
## License
|
|
144
155
|
|
|
145
156
|
[MIT](LICENSE)
|
package/dist/cjs/no.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* No.JS v1.
|
|
2
|
+
* No.JS v1.5.0 — The HTML-First Reactive Framework
|
|
3
3
|
* No more JavaScript. Just HTML attributes with superpowers.
|
|
4
4
|
* @license MIT
|
|
5
5
|
* @see https://github.com/ErickXavier/no-js
|
|
@@ -60,5 +60,5 @@ ${f}`)(e,d,...a),typeof t=="string"&&t.includes("$store")&&wt()}catch(n){st("Exp
|
|
|
60
60
|
.nojs-drag-list-empty {
|
|
61
61
|
min-height: 3rem;
|
|
62
62
|
}
|
|
63
|
-
`.trim(),e=document.createElement("style");e.setAttribute("data-nojs-dnd",""),e.textContent=t,document.head.appendChild(e)}function Mt(t,e,r,n){let o=[...t.children].filter(i=>!i.classList.contains("nojs-drop-placeholder"));if(o.length===0)return 0;for(let i=0;i<o.length;i++){let a=(o[i].style&&o[i].style.display==="contents"&&o[i].firstElementChild||o[i]).getBoundingClientRect();if(n==="horizontal"){let c=a.left+a.width/2;if(e<c)return i}else if(n==="grid"){let c=a.left+a.width/2,l=a.top+a.height/2;if(r<l&&e<c||r<a.top+a.height&&e<c)return i}else{let c=a.top+a.height/2;if(r<c)return i}}return o.length}function he(t,e,r,n){at();let o;if(r==="auto"){if(o=document.createElement("div"),o.className=n||"nojs-drop-placeholder",g.dragging&&g.dragging.sourceEl){let a=(g.dragging.sourceEl.firstElementChild||g.dragging.sourceEl).getBoundingClientRect();a.height>0&&(o.style.height=a.height+"px"),a.width>0&&(o.style.width=a.width+"px")}}else{let s=document.getElementById(r.startsWith("#")?r.slice(1):r);s&&s.content?(o=document.createElement("div"),o.style.display="contents",o.className=n||"nojs-drop-placeholder",o.appendChild(s.content.cloneNode(!0))):(o=document.createElement("div"),o.className=n||"nojs-drop-placeholder")}o.classList.add("nojs-drop-placeholder");let i=[...t.children].filter(s=>!s.classList.contains("nojs-drop-placeholder"));e>=i.length?t.appendChild(o):t.insertBefore(o,i[e]),g.placeholder=o}function at(){g.placeholder&&(g.placeholder.remove(),g.placeholder=null)}function Et(t,e){return!e||e==="*"?!0:e.split(",").map(n=>n.trim()).includes(t)}function Ie(t,e){let r=document.createElement("div");r.style.cssText="position:fixed;top:-9999px;left:-9999px;pointer-events:none;z-index:99999;";let n=t.style&&t.style.display==="contents"&&t.firstElementChild||t,o=n.getBoundingClientRect(),i=o.width,s=o.height,a=getComputedStyle(n),c=Math.min(e,3);for(let d=c-1;d>=0;d--){let f=document.createElement("div"),p=d*4;f.style.cssText="position:absolute;top:"+p+"px;left:"+p+"px;width:"+i+"px;height:"+s+"px;border-radius:"+a.borderRadius+";box-shadow:0 1px 4px rgba(0,0,0,0.12);overflow:hidden;box-sizing:border-box;",d===0?(f.innerHTML=n.innerHTML,f.style.background=a.backgroundColor||"#fff",f.style.border=a.border,f.style.padding=a.padding,f.style.fontSize=a.fontSize,f.style.color=a.color,f.style.fontFamily=a.fontFamily):(f.style.background=a.backgroundColor||"#fff",f.style.border=a.border||"1px solid #ddd"),r.appendChild(f)}let l=document.createElement("div");return l.textContent=e,l.style.cssText="position:absolute;top:-6px;right:-6px;min-width:22px;height:22px;padding:0 5px;background:#3b82f6;color:#fff;border-radius:11px;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;border:2px solid #fff;box-shadow:0 1px 3px rgba(0,0,0,0.2);",r.appendChild(l),r.style.width=i+(c-1)*4+"px",r.style.height=s+(c-1)*4+"px",r}$("drag",{priority:15,init(t,e,r){Vt();let n=I(t),o=t.getAttribute("drag-type")||"default",i=t.getAttribute("drag-effect")||"move",s=t.getAttribute("drag-handle"),a=t.getAttribute("drag-image"),c=t.getAttribute("drag-image-offset")||"0,0",l=t.getAttribute("drag-disabled"),d=t.getAttribute("drag-class")||"nojs-dragging",f=t.getAttribute("drag-ghost-class");t.draggable=!0,t.setAttribute("aria-grabbed","false"),t.getAttribute("tabindex")||t.setAttribute("tabindex","0");let p=!0;if(s){let x=w=>{p=!!w.target.closest(s)};t.addEventListener("mousedown",x),Q(()=>t.removeEventListener("mousedown",x))}let u=x=>{if(s&&!p){x.preventDefault();return}if(l&&L(l,n)){x.preventDefault();return}let w=L(r,n),y=t.getAttribute("drag-group"),E=w;if(y&&g.selected.has(y)){let _=g.selected.get(y);_.size>0&&[..._].some(A=>A.el===t)&&(E=[..._].map(A=>A.item))}if(g.dragging={item:E,type:o,effect:i,sourceEl:t,sourceCtx:n,sourceList:null,sourceIndex:null,listDirective:null},x.dataTransfer){if(x.dataTransfer.effectAllowed=i,x.dataTransfer.setData("text/plain",""),Array.isArray(E)&&E.length>1&&x.dataTransfer.setDragImage){let _=Ie(t,E.length);document.body.appendChild(_);let C=t.getBoundingClientRect();x.dataTransfer.setDragImage(_,C.width/2,C.height/2),requestAnimationFrame(()=>_.remove())}else if(a&&x.dataTransfer.setDragImage)if(a==="none"){let _=document.createElement("div");_.style.cssText="width:1px;height:1px;opacity:0;position:fixed;top:-999px",document.body.appendChild(_);let[C,A]=c.split(",").map(Number);x.dataTransfer.setDragImage(_,C||0,A||0),requestAnimationFrame(()=>_.remove())}else{let _=t.querySelector(a);if(_){let[C,A]=c.split(",").map(Number);f&&_.classList.add(f),x.dataTransfer.setDragImage(_,C||0,A||0)}}}if(d.split(/\s+/).filter(Boolean).forEach(_=>t.classList.add(_)),Array.isArray(E)&&y&&g.selected.has(y))for(let _ of g.selected.get(y))_.el!==t&&d.split(/\s+/).filter(Boolean).forEach(C=>_.el.classList.add(C));t.setAttribute("aria-grabbed","true"),t.dispatchEvent(new CustomEvent("drag-start",{bubbles:!0,detail:{item:E,index:g.dragging.sourceIndex,el:t}}))},m=()=>{d.split(/\s+/).filter(Boolean).forEach(w=>t.classList.remove(w));let x=t.getAttribute("drag-group");if(x&&g.selected.has(x))for(let w of g.selected.get(x))d.split(/\s+/).filter(Boolean).forEach(y=>w.el.classList.remove(y));if(t.setAttribute("aria-grabbed","false"),f&&a&&a!=="none"){let w=t.querySelector(a);w&&w.classList.remove(f)}t.dispatchEvent(new CustomEvent("drag-end",{bubbles:!0,detail:{item:g.dragging?.item,index:g.dragging?.sourceIndex,dropped:g.dragging===null}})),g.dragging=null,at()};if(t.addEventListener("dragstart",u),t.addEventListener("dragend",m),Q(()=>{t.removeEventListener("dragstart",u),t.removeEventListener("dragend",m)}),l){let x=function(){let w=!!L(l,n);t.draggable=!w,w?t.removeAttribute("aria-grabbed"):t.setAttribute("aria-grabbed","false")};n.$watch(x)}let b=x=>{if(g.dragging&&!g.dragging.sourceEl.isConnected&&(g.dragging=null),x.key===" "&&!g.dragging){x.preventDefault();let w=L(r,n);g.dragging={item:w,type:o,effect:i,sourceEl:t,sourceCtx:n,sourceList:null,sourceIndex:null,listDirective:null},d.split(/\s+/).filter(Boolean).forEach(y=>t.classList.add(y)),t.setAttribute("aria-grabbed","true"),t.dispatchEvent(new CustomEvent("drag-start",{bubbles:!0,detail:{item:w,index:null,el:t}}))}else x.key==="Escape"&&g.dragging&&g.dragging.sourceEl===t&&(x.preventDefault(),d.split(/\s+/).filter(Boolean).forEach(w=>t.classList.remove(w)),t.setAttribute("aria-grabbed","false"),g.dragging=null,at())};t.addEventListener("keydown",b),Q(()=>t.removeEventListener("keydown",b))}});$("drop",{priority:15,init(t,e,r){Vt();let n=I(t),o=t.getAttribute("drop-accept")||"default",i=t.getAttribute("drop-effect")||"move",s=t.getAttribute("drop-class")||"nojs-drag-over",a=t.getAttribute("drop-reject-class")||"nojs-drop-reject",c=t.getAttribute("drop-disabled"),l=t.getAttribute("drop-max"),d=t.getAttribute("drop-sort"),f=t.getAttribute("drop-placeholder"),p=t.getAttribute("drop-placeholder-class");t.setAttribute("aria-dropeffect",i);let u=0,m=E=>{if(!g.dragging||c&&L(c,n))return;let _=Et(g.dragging.type,o),C=!0;if(l){let A=L(l,n),v=jt(t);typeof A=="number"&&v>=A&&(C=!1)}if(!_||!C){a.split(/\s+/).filter(Boolean).forEach(A=>t.classList.add(A)),s.split(/\s+/).filter(Boolean).forEach(A=>t.classList.remove(A)),at();return}if(a.split(/\s+/).filter(Boolean).forEach(A=>t.classList.remove(A)),E.preventDefault(),E.dataTransfer&&(E.dataTransfer.dropEffect=i),d){let A=Mt(t,E.clientX,E.clientY,d);f&&he(t,A,f,p),t.dispatchEvent(new CustomEvent("drag-over",{bubbles:!1,detail:{item:g.dragging.item,index:A}}))}},b=E=>{if(g.dragging&&!(c&&L(c,n))&&(u++,u===1)){let _=Et(g.dragging.type,o),C=!0;if(l){let A=L(l,n),v=jt(t);typeof A=="number"&&v>=A&&(C=!1)}_&&C?(s.split(/\s+/).filter(Boolean).forEach(A=>t.classList.add(A)),t.dispatchEvent(new CustomEvent("drag-enter",{bubbles:!1,detail:{item:g.dragging.item,type:g.dragging.type}}))):a.split(/\s+/).filter(Boolean).forEach(A=>t.classList.add(A))}},x=E=>{g.dragging&&(u--,u<=0&&(u=0,s.split(/\s+/).filter(Boolean).forEach(_=>t.classList.remove(_)),a.split(/\s+/).filter(Boolean).forEach(_=>t.classList.remove(_)),at(),t.dispatchEvent(new CustomEvent("drag-leave",{bubbles:!1,detail:{item:g.dragging.item}}))))},w=E=>{if(E.preventDefault(),E.stopPropagation(),u=0,!g.dragging||c&&L(c,n)||!Et(g.dragging.type,o))return;if(l){let S=L(l,n),D=jt(t);if(typeof S=="number"&&D>=S)return}let _=g.dragging.item,C=g.dragging.type,A=g.dragging.effect,v=0;d&&(v=Mt(t,E.clientX,E.clientY,d)),s.split(/\s+/).filter(Boolean).forEach(S=>t.classList.remove(S)),a.split(/\s+/).filter(Boolean).forEach(S=>t.classList.remove(S)),at();let j={$drag:_,$dragType:C,$dragEffect:A,$dropIndex:v,$source:{list:g.dragging.sourceList,index:g.dragging.sourceIndex,el:g.dragging.sourceEl},$target:{list:null,index:v,el:t},$el:t};Z(r,n,j),g.dragging=null,t.dispatchEvent(new CustomEvent("drop",{bubbles:!1,detail:{item:_,index:v,source:j.$source,target:j.$target,effect:A}}))},y=E=>{g.dragging&&(E.key==="Enter"||E.key===" ")&&(E.preventDefault(),w(E))};t.addEventListener("dragover",m),t.addEventListener("dragenter",b),t.addEventListener("dragleave",x),t.addEventListener("drop",w),t.addEventListener("keydown",y),Q(()=>{t.removeEventListener("dragover",m),t.removeEventListener("dragenter",b),t.removeEventListener("dragleave",x),t.removeEventListener("drop",w),t.removeEventListener("keydown",y)})}});var ge=new Map;$("drag-list",{priority:10,init(t,e,r){Vt();let n=I(t),o=t.getAttribute("template"),i=t.getAttribute("drag-list-key"),s=t.getAttribute("drag-list-item")||"item",a=t.getAttribute("drop-sort")||"vertical",c=t.getAttribute("drag-type")||"__draglist_"+r,l=t.getAttribute("drop-accept")||c,d=t.hasAttribute("drag-list-copy"),f=t.hasAttribute("drag-list-remove"),p=t.getAttribute("drag-disabled"),u=t.getAttribute("drop-disabled"),m=t.getAttribute("drop-max"),b=t.getAttribute("drop-placeholder"),x=t.getAttribute("drop-placeholder-class"),w=t.getAttribute("drag-class")||"nojs-dragging",y=t.getAttribute("drop-class")||"nojs-drag-over",E=t.getAttribute("drop-reject-class")||"nojs-drop-reject",_=t.getAttribute("drop-settle-class")||"nojs-drop-settle",C=t.getAttribute("drop-empty-class")||"nojs-drag-list-empty";t.setAttribute("role","listbox"),t.setAttribute("aria-dropeffect",d?"copy":"move");let A={listPath:r,ctx:n,el:t};ge.set(t,A),Q(()=>ge.delete(t));let v=0,j=null;function S(){let B=nt(r,n);if(!Array.isArray(B))return;if(B===j&&B.length>0&&t.children.length>0){for(let T of t.children)T.__ctx&&T.__ctx.$notify&&T.__ctx.$notify();return}j=B;let O=o?document.getElementById(o):null;if(!O)return;t.innerHTML="";let F=B.length;B.forEach((T,rt)=>{let ut={[s]:T,$index:rt,$count:F,$first:rt===0,$last:rt===F-1,$even:rt%2===0,$odd:rt%2!==0},ot=P(ut,n),G=O.content.cloneNode(!0),H=document.createElement("div");H.style.display="contents",H.__ctx=ot,H.setAttribute("role","option"),H.appendChild(G),t.appendChild(H);let Y=H.firstElementChild||H;Y.draggable=!0,Y.setAttribute("aria-grabbed","false"),Y.getAttribute("tabindex")||Y.setAttribute("tabindex","0");let xt=tt=>{if(p&&L(p,n)){tt.preventDefault();return}g.dragging={item:T,type:c,effect:d?"copy":"move",sourceEl:H,sourceCtx:ot,sourceList:B,sourceIndex:rt,listDirective:{el:t,listPath:r,ctx:n,keyProp:i,copyMode:d,removeMode:f}},tt.dataTransfer&&(tt.dataTransfer.effectAllowed=d?"copy":"move",tt.dataTransfer.setData("text/plain","")),w.split(/\s+/).filter(Boolean).forEach(it=>Y.classList.add(it)),Y.setAttribute("aria-grabbed","true"),t.dispatchEvent(new CustomEvent("drag-start",{bubbles:!0,detail:{item:T,index:rt,el:Y}}))},Ht=()=>{w.split(/\s+/).filter(Boolean).forEach(tt=>Y.classList.remove(tt)),Y.setAttribute("aria-grabbed","false"),g.dragging&&g.dragging.sourceEl===H&&(g.dragging=null),at()};H.addEventListener("dragstart",xt),H.addEventListener("dragend",Ht),H.addEventListener("keydown",tt=>{if(tt.key===" "&&!g.dragging)tt.preventDefault(),g.dragging={item:T,type:c,effect:d?"copy":"move",sourceEl:H,sourceCtx:ot,sourceList:B,sourceIndex:rt,listDirective:{el:t,listPath:r,ctx:n,keyProp:i,copyMode:d,removeMode:f}},w.split(/\s+/).filter(Boolean).forEach(it=>Y.classList.add(it)),Y.setAttribute("aria-grabbed","true");else if(tt.key==="Escape"&&g.dragging&&g.dragging.sourceEl===H)tt.preventDefault(),w.split(/\s+/).filter(Boolean).forEach(it=>Y.classList.remove(it)),Y.setAttribute("aria-grabbed","false"),g.dragging=null,at();else if((tt.key==="ArrowDown"||tt.key==="ArrowRight")&&g.dragging&&g.dragging.sourceEl===H){tt.preventDefault();let it=H.nextElementSibling;it&&(it.firstElementChild||it).focus()}else if((tt.key==="ArrowUp"||tt.key==="ArrowLeft")&&g.dragging&&g.dragging.sourceEl===H){tt.preventDefault();let it=H.previousElementSibling;it&&(it.firstElementChild||it).focus()}}),M(H)});let N=B.length===0;C.split(/\s+/).filter(Boolean).forEach(T=>t.classList.toggle(T,N))}let D=B=>{if(!g.dragging||u&&L(u,n))return;let O=Et(g.dragging.type,l),F=!0;if(m){let T=L(m,n),rt=nt(r,n);typeof T=="number"&&Array.isArray(rt)&&rt.length>=T&&(F=!1)}if(!O||!F){E.split(/\s+/).filter(Boolean).forEach(T=>t.classList.add(T)),y.split(/\s+/).filter(Boolean).forEach(T=>t.classList.remove(T)),at();return}E.split(/\s+/).filter(Boolean).forEach(T=>t.classList.remove(T)),B.preventDefault(),B.dataTransfer&&(B.dataTransfer.dropEffect=d?"copy":"move");let N=Mt(t,B.clientX,B.clientY,a);b&&he(t,N,b,x)},J=B=>{if(g.dragging&&!(u&&L(u,n))&&(v++,v===1)){let O=Et(g.dragging.type,l),F=!0;if(m){let N=L(m,n),T=nt(r,n);typeof N=="number"&&Array.isArray(T)&&T.length>=N&&(F=!1)}O&&F?(y.split(/\s+/).filter(Boolean).forEach(N=>t.classList.add(N)),t.dispatchEvent(new CustomEvent("drag-enter",{bubbles:!1,detail:{item:g.dragging.item,type:g.dragging.type}}))):E.split(/\s+/).filter(Boolean).forEach(N=>t.classList.add(N))}},R=()=>{g.dragging&&(v--,v<=0&&(v=0,y.split(/\s+/).filter(Boolean).forEach(B=>t.classList.remove(B)),E.split(/\s+/).filter(Boolean).forEach(B=>t.classList.remove(B)),at(),t.dispatchEvent(new CustomEvent("drag-leave",{bubbles:!1,detail:{item:g.dragging?.item}}))))},lt=B=>{if(B.preventDefault(),B.stopPropagation(),v=0,!g.dragging||u&&L(u,n)||!Et(g.dragging.type,l))return;if(m){let G=L(m,n),H=nt(r,n);if(typeof G=="number"&&Array.isArray(H)&&H.length>=G)return}let O=g.dragging.item,F=g.dragging.listDirective,N=g.dragging.sourceIndex,T=Mt(t,B.clientX,B.clientY,a);y.split(/\s+/).filter(Boolean).forEach(G=>t.classList.remove(G)),E.split(/\s+/).filter(Boolean).forEach(G=>t.classList.remove(G)),at();let rt=nt(r,n);if(!Array.isArray(rt))return;let ut=F&&F.el===t;if(ut&&N===T){g.dragging=null;return}if(ut&&N+1===T){g.dragging=null;return}let ot=[...rt];if(ut){let[G]=ot.splice(N,1),H=N<T?T-1:T;ot.splice(H,0,G),n.$set(r,ot),t.dispatchEvent(new CustomEvent("reorder",{bubbles:!0,detail:{list:ot,item:O,from:N,to:H}}))}else{let G=d&&typeof O=="object"?{...O}:O;if(ot.splice(T,0,G),n.$set(r,ot),F&&!F.copyMode&&(f||F.removeMode)){let H=nt(F.listPath,F.ctx);if(Array.isArray(H)&&N!=null){let Y=H.filter((xt,Ht)=>Ht!==N);F.ctx.$set(F.listPath,Y),F.el.dispatchEvent(new CustomEvent("remove",{bubbles:!0,detail:{list:Y,item:O,index:N}}))}}t.dispatchEvent(new CustomEvent("receive",{bubbles:!0,detail:{list:ot,item:O,from:N,fromList:F?nt(F.listPath,F.ctx):null}}))}requestAnimationFrame(()=>{let H=[...t.children][ut&&N<T?T-1:T];if(H){let Y=H.firstElementChild||H;_.split(/\s+/).filter(Boolean).forEach(xt=>Y.classList.add(xt)),Y.addEventListener("animationend",()=>{_.split(/\s+/).filter(Boolean).forEach(xt=>Y.classList.remove(xt))},{once:!0})}}),g.dragging=null},U=B=>{if(g.dragging&&Et(g.dragging.type,l)&&(B.key==="Enter"||B.key===" ")){B.preventDefault();let O=t.querySelector(":focus");if(O){let N=(O.style?.display==="contents"&&O.firstElementChild||O).getBoundingClientRect(),T={preventDefault(){},stopPropagation(){},clientX:N.left+N.width/2,clientY:N.top+N.height+1,dataTransfer:null};lt(T)}}};t.addEventListener("dragover",D),t.addEventListener("dragenter",J),t.addEventListener("dragleave",R),t.addEventListener("drop",lt),t.addEventListener("keydown",U),Q(()=>{t.removeEventListener("dragover",D),t.removeEventListener("dragenter",J),t.removeEventListener("dragleave",R),t.removeEventListener("drop",lt),t.removeEventListener("keydown",U)}),n.$watch(S),S()}});$("drag-multiple",{priority:16,init(t,e){let r=I(t),n=t.getAttribute("drag-group"),o=t.getAttribute("drag-multiple-class")||"nojs-selected";if(!n){st("drag-multiple requires drag-group attribute");return}g.selected.has(n)||g.selected.set(n,new Set);let i=g.selected.get(n),s=c=>{let l=t.getAttribute("drag"),f={item:l?L(l,r):null,el:t,ctx:r};if(c.ctrlKey||c.metaKey){let p=[...i].find(u=>u.el===t);p?(i.delete(p),o.split(/\s+/).filter(Boolean).forEach(u=>t.classList.remove(u))):(i.add(f),o.split(/\s+/).filter(Boolean).forEach(u=>t.classList.add(u)))}else{for(let p of i)o.split(/\s+/).filter(Boolean).forEach(u=>p.el.classList.remove(u));i.clear(),i.add(f),o.split(/\s+/).filter(Boolean).forEach(p=>t.classList.add(p))}};t.addEventListener("click",s),Q(()=>{t.removeEventListener("click",s);let c=[...i].find(l=>l.el===t);c&&i.delete(c)});let a=c=>{if(c.key==="Escape"){for(let l of i)o.split(/\s+/).filter(Boolean).forEach(d=>l.el.classList.remove(d));i.clear()}};window.addEventListener("keydown",a),Q(()=>window.removeEventListener("keydown",a))}});function De(){if(typeof window>"u")return null;let t=h.router||{};if(t.mode==="hash")return window.location.hash.slice(1)||"/";let e=(t.base||"/").replace(/\/$/,"");return window.location.pathname.replace(e,"")||"/"}var Ot={get baseApiUrl(){return h.baseApiUrl},set baseApiUrl(t){h.baseApiUrl=t},get locale(){return W.locale},set locale(t){W.locale=t},config(t={}){let e={...h.headers},r={...h.cache},n={...h.templates},o={...h.router},i={...h.i18n};Object.assign(h,t),t.headers&&(h.headers={...e,...t.headers}),t.csrf&&(h.csrf=t.csrf),t.cache&&(h.cache={...r,...t.cache}),t.templates&&(h.templates={...n,...t.templates}),t.router&&(h.router={...o,...t.router}),t.i18n&&(h.i18n={...i,...t.i18n},W.locale=t.i18n.defaultLocale||W.locale)},async init(t){if(typeof document>"u"||Ot._initialized)return;if(Ot._initialized=!0,t=t||document.body,z("Initializing..."),h.i18n.loadPath){let r=new Set([W.locale,h.i18n.fallbackLocale]);await Promise.all([...r].map(n=>zt(n)))}kt(t);let e=De();await se(e),document.querySelector("[route-view]")&&Zt(pe()),M(t),et&&await et.init(),z("Initialized."),ae(),h.devtools&&typeof window<"u"&&(window.__NOJS_DEVTOOLS__={stores:V,config:h,refs:ft,router:et,filters:Object.keys(k),validators:Object.keys(_t),version:Ot.version},z("DevTools enabled \u2014 access via window.__NOJS_DEVTOOLS__"))},directive(t,e){$(t,e)},filter(t,e){k[t]=e},validator(t,e){_t[t]=e},i18n(t){if(t.loadPath!=null&&(h.i18n.loadPath=t.loadPath),t.ns&&(h.i18n.ns=t.ns),t.cache!=null&&(h.i18n.cache=t.cache),t.persist!=null&&(h.i18n.persist=t.persist),t.locales&&(W.locales=t.locales),t.fallbackLocale&&(h.i18n.fallbackLocale=t.fallbackLocale),t.defaultLocale&&(W._locale=t.defaultLocale),h.i18n.persist&&typeof localStorage<"u")try{let e=localStorage.getItem("nojs-locale");if(e){W._locale=e;return}}catch{}if(t.detectBrowser){let e=typeof navigator<"u"?navigator.language:"en",r=e.split("-")[0];W.locales[e]?W._locale=e:W.locales[r]&&(W._locale=r)}},on(t,e){return yt[t]||(yt[t]=[]),yt[t].push(e),()=>{yt[t]=yt[t].filter(r=>r!==e)}},interceptor(t,e){At[t]&&At[t].push(e)},get store(){return V},get router(){return et},createContext:P,evaluate:L,findContext:I,processTree:M,resolve:nt,version:"1.4.3"},Ne=Ot;
|
|
63
|
+
`.trim(),e=document.createElement("style");e.setAttribute("data-nojs-dnd",""),e.textContent=t,document.head.appendChild(e)}function Mt(t,e,r,n){let o=[...t.children].filter(i=>!i.classList.contains("nojs-drop-placeholder"));if(o.length===0)return 0;for(let i=0;i<o.length;i++){let a=(o[i].style&&o[i].style.display==="contents"&&o[i].firstElementChild||o[i]).getBoundingClientRect();if(n==="horizontal"){let c=a.left+a.width/2;if(e<c)return i}else if(n==="grid"){let c=a.left+a.width/2,l=a.top+a.height/2;if(r<l&&e<c||r<a.top+a.height&&e<c)return i}else{let c=a.top+a.height/2;if(r<c)return i}}return o.length}function he(t,e,r,n){at();let o;if(r==="auto"){if(o=document.createElement("div"),o.className=n||"nojs-drop-placeholder",g.dragging&&g.dragging.sourceEl){let a=(g.dragging.sourceEl.firstElementChild||g.dragging.sourceEl).getBoundingClientRect();a.height>0&&(o.style.height=a.height+"px"),a.width>0&&(o.style.width=a.width+"px")}}else{let s=document.getElementById(r.startsWith("#")?r.slice(1):r);s&&s.content?(o=document.createElement("div"),o.style.display="contents",o.className=n||"nojs-drop-placeholder",o.appendChild(s.content.cloneNode(!0))):(o=document.createElement("div"),o.className=n||"nojs-drop-placeholder")}o.classList.add("nojs-drop-placeholder");let i=[...t.children].filter(s=>!s.classList.contains("nojs-drop-placeholder"));e>=i.length?t.appendChild(o):t.insertBefore(o,i[e]),g.placeholder=o}function at(){g.placeholder&&(g.placeholder.remove(),g.placeholder=null)}function Et(t,e){return!e||e==="*"?!0:e.split(",").map(n=>n.trim()).includes(t)}function Ie(t,e){let r=document.createElement("div");r.style.cssText="position:fixed;top:-9999px;left:-9999px;pointer-events:none;z-index:99999;";let n=t.style&&t.style.display==="contents"&&t.firstElementChild||t,o=n.getBoundingClientRect(),i=o.width,s=o.height,a=getComputedStyle(n),c=Math.min(e,3);for(let d=c-1;d>=0;d--){let f=document.createElement("div"),p=d*4;f.style.cssText="position:absolute;top:"+p+"px;left:"+p+"px;width:"+i+"px;height:"+s+"px;border-radius:"+a.borderRadius+";box-shadow:0 1px 4px rgba(0,0,0,0.12);overflow:hidden;box-sizing:border-box;",d===0?(f.innerHTML=n.innerHTML,f.style.background=a.backgroundColor||"#fff",f.style.border=a.border,f.style.padding=a.padding,f.style.fontSize=a.fontSize,f.style.color=a.color,f.style.fontFamily=a.fontFamily):(f.style.background=a.backgroundColor||"#fff",f.style.border=a.border||"1px solid #ddd"),r.appendChild(f)}let l=document.createElement("div");return l.textContent=e,l.style.cssText="position:absolute;top:-6px;right:-6px;min-width:22px;height:22px;padding:0 5px;background:#3b82f6;color:#fff;border-radius:11px;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;border:2px solid #fff;box-shadow:0 1px 3px rgba(0,0,0,0.2);",r.appendChild(l),r.style.width=i+(c-1)*4+"px",r.style.height=s+(c-1)*4+"px",r}$("drag",{priority:15,init(t,e,r){Vt();let n=I(t),o=t.getAttribute("drag-type")||"default",i=t.getAttribute("drag-effect")||"move",s=t.getAttribute("drag-handle"),a=t.getAttribute("drag-image"),c=t.getAttribute("drag-image-offset")||"0,0",l=t.getAttribute("drag-disabled"),d=t.getAttribute("drag-class")||"nojs-dragging",f=t.getAttribute("drag-ghost-class");t.draggable=!0,t.setAttribute("aria-grabbed","false"),t.getAttribute("tabindex")||t.setAttribute("tabindex","0");let p=!0;if(s){let x=w=>{p=!!w.target.closest(s)};t.addEventListener("mousedown",x),Q(()=>t.removeEventListener("mousedown",x))}let u=x=>{if(s&&!p){x.preventDefault();return}if(l&&L(l,n)){x.preventDefault();return}let w=L(r,n),y=t.getAttribute("drag-group"),E=w;if(y&&g.selected.has(y)){let _=g.selected.get(y);_.size>0&&[..._].some(A=>A.el===t)&&(E=[..._].map(A=>A.item))}if(g.dragging={item:E,type:o,effect:i,sourceEl:t,sourceCtx:n,sourceList:null,sourceIndex:null,listDirective:null},x.dataTransfer){if(x.dataTransfer.effectAllowed=i,x.dataTransfer.setData("text/plain",""),Array.isArray(E)&&E.length>1&&x.dataTransfer.setDragImage){let _=Ie(t,E.length);document.body.appendChild(_);let C=t.getBoundingClientRect();x.dataTransfer.setDragImage(_,C.width/2,C.height/2),requestAnimationFrame(()=>_.remove())}else if(a&&x.dataTransfer.setDragImage)if(a==="none"){let _=document.createElement("div");_.style.cssText="width:1px;height:1px;opacity:0;position:fixed;top:-999px",document.body.appendChild(_);let[C,A]=c.split(",").map(Number);x.dataTransfer.setDragImage(_,C||0,A||0),requestAnimationFrame(()=>_.remove())}else{let _=t.querySelector(a);if(_){let[C,A]=c.split(",").map(Number);f&&_.classList.add(f),x.dataTransfer.setDragImage(_,C||0,A||0)}}}if(d.split(/\s+/).filter(Boolean).forEach(_=>t.classList.add(_)),Array.isArray(E)&&y&&g.selected.has(y))for(let _ of g.selected.get(y))_.el!==t&&d.split(/\s+/).filter(Boolean).forEach(C=>_.el.classList.add(C));t.setAttribute("aria-grabbed","true"),t.dispatchEvent(new CustomEvent("drag-start",{bubbles:!0,detail:{item:E,index:g.dragging.sourceIndex,el:t}}))},m=()=>{d.split(/\s+/).filter(Boolean).forEach(w=>t.classList.remove(w));let x=t.getAttribute("drag-group");if(x&&g.selected.has(x))for(let w of g.selected.get(x))d.split(/\s+/).filter(Boolean).forEach(y=>w.el.classList.remove(y));if(t.setAttribute("aria-grabbed","false"),f&&a&&a!=="none"){let w=t.querySelector(a);w&&w.classList.remove(f)}t.dispatchEvent(new CustomEvent("drag-end",{bubbles:!0,detail:{item:g.dragging?.item,index:g.dragging?.sourceIndex,dropped:g.dragging===null}})),g.dragging=null,at()};if(t.addEventListener("dragstart",u),t.addEventListener("dragend",m),Q(()=>{t.removeEventListener("dragstart",u),t.removeEventListener("dragend",m)}),l){let x=function(){let w=!!L(l,n);t.draggable=!w,w?t.removeAttribute("aria-grabbed"):t.setAttribute("aria-grabbed","false")};n.$watch(x)}let b=x=>{if(g.dragging&&!g.dragging.sourceEl.isConnected&&(g.dragging=null),x.key===" "&&!g.dragging){x.preventDefault();let w=L(r,n);g.dragging={item:w,type:o,effect:i,sourceEl:t,sourceCtx:n,sourceList:null,sourceIndex:null,listDirective:null},d.split(/\s+/).filter(Boolean).forEach(y=>t.classList.add(y)),t.setAttribute("aria-grabbed","true"),t.dispatchEvent(new CustomEvent("drag-start",{bubbles:!0,detail:{item:w,index:null,el:t}}))}else x.key==="Escape"&&g.dragging&&g.dragging.sourceEl===t&&(x.preventDefault(),d.split(/\s+/).filter(Boolean).forEach(w=>t.classList.remove(w)),t.setAttribute("aria-grabbed","false"),g.dragging=null,at())};t.addEventListener("keydown",b),Q(()=>t.removeEventListener("keydown",b))}});$("drop",{priority:15,init(t,e,r){Vt();let n=I(t),o=t.getAttribute("drop-accept")||"default",i=t.getAttribute("drop-effect")||"move",s=t.getAttribute("drop-class")||"nojs-drag-over",a=t.getAttribute("drop-reject-class")||"nojs-drop-reject",c=t.getAttribute("drop-disabled"),l=t.getAttribute("drop-max"),d=t.getAttribute("drop-sort"),f=t.getAttribute("drop-placeholder"),p=t.getAttribute("drop-placeholder-class");t.setAttribute("aria-dropeffect",i);let u=0,m=E=>{if(!g.dragging||c&&L(c,n))return;let _=Et(g.dragging.type,o),C=!0;if(l){let A=L(l,n),v=jt(t);typeof A=="number"&&v>=A&&(C=!1)}if(!_||!C){a.split(/\s+/).filter(Boolean).forEach(A=>t.classList.add(A)),s.split(/\s+/).filter(Boolean).forEach(A=>t.classList.remove(A)),at();return}if(a.split(/\s+/).filter(Boolean).forEach(A=>t.classList.remove(A)),E.preventDefault(),E.dataTransfer&&(E.dataTransfer.dropEffect=i),d){let A=Mt(t,E.clientX,E.clientY,d);f&&he(t,A,f,p),t.dispatchEvent(new CustomEvent("drag-over",{bubbles:!1,detail:{item:g.dragging.item,index:A}}))}},b=E=>{if(g.dragging&&!(c&&L(c,n))&&(u++,u===1)){let _=Et(g.dragging.type,o),C=!0;if(l){let A=L(l,n),v=jt(t);typeof A=="number"&&v>=A&&(C=!1)}_&&C?(s.split(/\s+/).filter(Boolean).forEach(A=>t.classList.add(A)),t.dispatchEvent(new CustomEvent("drag-enter",{bubbles:!1,detail:{item:g.dragging.item,type:g.dragging.type}}))):a.split(/\s+/).filter(Boolean).forEach(A=>t.classList.add(A))}},x=E=>{g.dragging&&(u--,u<=0&&(u=0,s.split(/\s+/).filter(Boolean).forEach(_=>t.classList.remove(_)),a.split(/\s+/).filter(Boolean).forEach(_=>t.classList.remove(_)),at(),t.dispatchEvent(new CustomEvent("drag-leave",{bubbles:!1,detail:{item:g.dragging.item}}))))},w=E=>{if(E.preventDefault(),E.stopPropagation(),u=0,!g.dragging||c&&L(c,n)||!Et(g.dragging.type,o))return;if(l){let S=L(l,n),D=jt(t);if(typeof S=="number"&&D>=S)return}let _=g.dragging.item,C=g.dragging.type,A=g.dragging.effect,v=0;d&&(v=Mt(t,E.clientX,E.clientY,d)),s.split(/\s+/).filter(Boolean).forEach(S=>t.classList.remove(S)),a.split(/\s+/).filter(Boolean).forEach(S=>t.classList.remove(S)),at();let j={$drag:_,$dragType:C,$dragEffect:A,$dropIndex:v,$source:{list:g.dragging.sourceList,index:g.dragging.sourceIndex,el:g.dragging.sourceEl},$target:{list:null,index:v,el:t},$el:t};Z(r,n,j),g.dragging=null,t.dispatchEvent(new CustomEvent("drop",{bubbles:!1,detail:{item:_,index:v,source:j.$source,target:j.$target,effect:A}}))},y=E=>{g.dragging&&(E.key==="Enter"||E.key===" ")&&(E.preventDefault(),w(E))};t.addEventListener("dragover",m),t.addEventListener("dragenter",b),t.addEventListener("dragleave",x),t.addEventListener("drop",w),t.addEventListener("keydown",y),Q(()=>{t.removeEventListener("dragover",m),t.removeEventListener("dragenter",b),t.removeEventListener("dragleave",x),t.removeEventListener("drop",w),t.removeEventListener("keydown",y)})}});var ge=new Map;$("drag-list",{priority:10,init(t,e,r){Vt();let n=I(t),o=t.getAttribute("template"),i=t.getAttribute("drag-list-key"),s=t.getAttribute("drag-list-item")||"item",a=t.getAttribute("drop-sort")||"vertical",c=t.getAttribute("drag-type")||"__draglist_"+r,l=t.getAttribute("drop-accept")||c,d=t.hasAttribute("drag-list-copy"),f=t.hasAttribute("drag-list-remove"),p=t.getAttribute("drag-disabled"),u=t.getAttribute("drop-disabled"),m=t.getAttribute("drop-max"),b=t.getAttribute("drop-placeholder"),x=t.getAttribute("drop-placeholder-class"),w=t.getAttribute("drag-class")||"nojs-dragging",y=t.getAttribute("drop-class")||"nojs-drag-over",E=t.getAttribute("drop-reject-class")||"nojs-drop-reject",_=t.getAttribute("drop-settle-class")||"nojs-drop-settle",C=t.getAttribute("drop-empty-class")||"nojs-drag-list-empty";t.setAttribute("role","listbox"),t.setAttribute("aria-dropeffect",d?"copy":"move");let A={listPath:r,ctx:n,el:t};ge.set(t,A),Q(()=>ge.delete(t));let v=0,j=null;function S(){let B=nt(r,n);if(!Array.isArray(B))return;if(B===j&&B.length>0&&t.children.length>0){for(let T of t.children)T.__ctx&&T.__ctx.$notify&&T.__ctx.$notify();return}j=B;let O=o?document.getElementById(o):null;if(!O)return;t.innerHTML="";let F=B.length;B.forEach((T,rt)=>{let ut={[s]:T,$index:rt,$count:F,$first:rt===0,$last:rt===F-1,$even:rt%2===0,$odd:rt%2!==0},ot=P(ut,n),G=O.content.cloneNode(!0),H=document.createElement("div");H.style.display="contents",H.__ctx=ot,H.setAttribute("role","option"),H.appendChild(G),t.appendChild(H);let Y=H.firstElementChild||H;Y.draggable=!0,Y.setAttribute("aria-grabbed","false"),Y.getAttribute("tabindex")||Y.setAttribute("tabindex","0");let xt=tt=>{if(p&&L(p,n)){tt.preventDefault();return}g.dragging={item:T,type:c,effect:d?"copy":"move",sourceEl:H,sourceCtx:ot,sourceList:B,sourceIndex:rt,listDirective:{el:t,listPath:r,ctx:n,keyProp:i,copyMode:d,removeMode:f}},tt.dataTransfer&&(tt.dataTransfer.effectAllowed=d?"copy":"move",tt.dataTransfer.setData("text/plain","")),w.split(/\s+/).filter(Boolean).forEach(it=>Y.classList.add(it)),Y.setAttribute("aria-grabbed","true"),t.dispatchEvent(new CustomEvent("drag-start",{bubbles:!0,detail:{item:T,index:rt,el:Y}}))},Ht=()=>{w.split(/\s+/).filter(Boolean).forEach(tt=>Y.classList.remove(tt)),Y.setAttribute("aria-grabbed","false"),g.dragging&&g.dragging.sourceEl===H&&(g.dragging=null),at()};H.addEventListener("dragstart",xt),H.addEventListener("dragend",Ht),H.addEventListener("keydown",tt=>{if(tt.key===" "&&!g.dragging)tt.preventDefault(),g.dragging={item:T,type:c,effect:d?"copy":"move",sourceEl:H,sourceCtx:ot,sourceList:B,sourceIndex:rt,listDirective:{el:t,listPath:r,ctx:n,keyProp:i,copyMode:d,removeMode:f}},w.split(/\s+/).filter(Boolean).forEach(it=>Y.classList.add(it)),Y.setAttribute("aria-grabbed","true");else if(tt.key==="Escape"&&g.dragging&&g.dragging.sourceEl===H)tt.preventDefault(),w.split(/\s+/).filter(Boolean).forEach(it=>Y.classList.remove(it)),Y.setAttribute("aria-grabbed","false"),g.dragging=null,at();else if((tt.key==="ArrowDown"||tt.key==="ArrowRight")&&g.dragging&&g.dragging.sourceEl===H){tt.preventDefault();let it=H.nextElementSibling;it&&(it.firstElementChild||it).focus()}else if((tt.key==="ArrowUp"||tt.key==="ArrowLeft")&&g.dragging&&g.dragging.sourceEl===H){tt.preventDefault();let it=H.previousElementSibling;it&&(it.firstElementChild||it).focus()}}),M(H)});let N=B.length===0;C.split(/\s+/).filter(Boolean).forEach(T=>t.classList.toggle(T,N))}let D=B=>{if(!g.dragging||u&&L(u,n))return;let O=Et(g.dragging.type,l),F=!0;if(m){let T=L(m,n),rt=nt(r,n);typeof T=="number"&&Array.isArray(rt)&&rt.length>=T&&(F=!1)}if(!O||!F){E.split(/\s+/).filter(Boolean).forEach(T=>t.classList.add(T)),y.split(/\s+/).filter(Boolean).forEach(T=>t.classList.remove(T)),at();return}E.split(/\s+/).filter(Boolean).forEach(T=>t.classList.remove(T)),B.preventDefault(),B.dataTransfer&&(B.dataTransfer.dropEffect=d?"copy":"move");let N=Mt(t,B.clientX,B.clientY,a);b&&he(t,N,b,x)},J=B=>{if(g.dragging&&!(u&&L(u,n))&&(v++,v===1)){let O=Et(g.dragging.type,l),F=!0;if(m){let N=L(m,n),T=nt(r,n);typeof N=="number"&&Array.isArray(T)&&T.length>=N&&(F=!1)}O&&F?(y.split(/\s+/).filter(Boolean).forEach(N=>t.classList.add(N)),t.dispatchEvent(new CustomEvent("drag-enter",{bubbles:!1,detail:{item:g.dragging.item,type:g.dragging.type}}))):E.split(/\s+/).filter(Boolean).forEach(N=>t.classList.add(N))}},R=()=>{g.dragging&&(v--,v<=0&&(v=0,y.split(/\s+/).filter(Boolean).forEach(B=>t.classList.remove(B)),E.split(/\s+/).filter(Boolean).forEach(B=>t.classList.remove(B)),at(),t.dispatchEvent(new CustomEvent("drag-leave",{bubbles:!1,detail:{item:g.dragging?.item}}))))},lt=B=>{if(B.preventDefault(),B.stopPropagation(),v=0,!g.dragging||u&&L(u,n)||!Et(g.dragging.type,l))return;if(m){let G=L(m,n),H=nt(r,n);if(typeof G=="number"&&Array.isArray(H)&&H.length>=G)return}let O=g.dragging.item,F=g.dragging.listDirective,N=g.dragging.sourceIndex,T=Mt(t,B.clientX,B.clientY,a);y.split(/\s+/).filter(Boolean).forEach(G=>t.classList.remove(G)),E.split(/\s+/).filter(Boolean).forEach(G=>t.classList.remove(G)),at();let rt=nt(r,n);if(!Array.isArray(rt))return;let ut=F&&F.el===t;if(ut&&N===T){g.dragging=null;return}if(ut&&N+1===T){g.dragging=null;return}let ot=[...rt];if(ut){let[G]=ot.splice(N,1),H=N<T?T-1:T;ot.splice(H,0,G),n.$set(r,ot),t.dispatchEvent(new CustomEvent("reorder",{bubbles:!0,detail:{list:ot,item:O,from:N,to:H}}))}else{let G=d&&typeof O=="object"?{...O}:O;if(ot.splice(T,0,G),n.$set(r,ot),F&&!F.copyMode&&(f||F.removeMode)){let H=nt(F.listPath,F.ctx);if(Array.isArray(H)&&N!=null){let Y=H.filter((xt,Ht)=>Ht!==N);F.ctx.$set(F.listPath,Y),F.el.dispatchEvent(new CustomEvent("remove",{bubbles:!0,detail:{list:Y,item:O,index:N}}))}}t.dispatchEvent(new CustomEvent("receive",{bubbles:!0,detail:{list:ot,item:O,from:N,fromList:F?nt(F.listPath,F.ctx):null}}))}requestAnimationFrame(()=>{let H=[...t.children][ut&&N<T?T-1:T];if(H){let Y=H.firstElementChild||H;_.split(/\s+/).filter(Boolean).forEach(xt=>Y.classList.add(xt)),Y.addEventListener("animationend",()=>{_.split(/\s+/).filter(Boolean).forEach(xt=>Y.classList.remove(xt))},{once:!0})}}),g.dragging=null},U=B=>{if(g.dragging&&Et(g.dragging.type,l)&&(B.key==="Enter"||B.key===" ")){B.preventDefault();let O=t.querySelector(":focus");if(O){let N=(O.style?.display==="contents"&&O.firstElementChild||O).getBoundingClientRect(),T={preventDefault(){},stopPropagation(){},clientX:N.left+N.width/2,clientY:N.top+N.height+1,dataTransfer:null};lt(T)}}};t.addEventListener("dragover",D),t.addEventListener("dragenter",J),t.addEventListener("dragleave",R),t.addEventListener("drop",lt),t.addEventListener("keydown",U),Q(()=>{t.removeEventListener("dragover",D),t.removeEventListener("dragenter",J),t.removeEventListener("dragleave",R),t.removeEventListener("drop",lt),t.removeEventListener("keydown",U)}),n.$watch(S),S()}});$("drag-multiple",{priority:16,init(t,e){let r=I(t),n=t.getAttribute("drag-group"),o=t.getAttribute("drag-multiple-class")||"nojs-selected";if(!n){st("drag-multiple requires drag-group attribute");return}g.selected.has(n)||g.selected.set(n,new Set);let i=g.selected.get(n),s=c=>{let l=t.getAttribute("drag"),f={item:l?L(l,r):null,el:t,ctx:r};if(c.ctrlKey||c.metaKey){let p=[...i].find(u=>u.el===t);p?(i.delete(p),o.split(/\s+/).filter(Boolean).forEach(u=>t.classList.remove(u))):(i.add(f),o.split(/\s+/).filter(Boolean).forEach(u=>t.classList.add(u)))}else{for(let p of i)o.split(/\s+/).filter(Boolean).forEach(u=>p.el.classList.remove(u));i.clear(),i.add(f),o.split(/\s+/).filter(Boolean).forEach(p=>t.classList.add(p))}};t.addEventListener("click",s),Q(()=>{t.removeEventListener("click",s);let c=[...i].find(l=>l.el===t);c&&i.delete(c)});let a=c=>{if(c.key==="Escape"){for(let l of i)o.split(/\s+/).filter(Boolean).forEach(d=>l.el.classList.remove(d));i.clear()}};window.addEventListener("keydown",a),Q(()=>window.removeEventListener("keydown",a))}});function De(){if(typeof window>"u")return null;let t=h.router||{};if(t.mode==="hash")return window.location.hash.slice(1)||"/";let e=(t.base||"/").replace(/\/$/,"");return window.location.pathname.replace(e,"")||"/"}var Ot={get baseApiUrl(){return h.baseApiUrl},set baseApiUrl(t){h.baseApiUrl=t},get locale(){return W.locale},set locale(t){W.locale=t},config(t={}){let e={...h.headers},r={...h.cache},n={...h.templates},o={...h.router},i={...h.i18n};Object.assign(h,t),t.headers&&(h.headers={...e,...t.headers}),t.csrf&&(h.csrf=t.csrf),t.cache&&(h.cache={...r,...t.cache}),t.templates&&(h.templates={...n,...t.templates}),t.router&&(h.router={...o,...t.router}),t.i18n&&(h.i18n={...i,...t.i18n},W.locale=t.i18n.defaultLocale||W.locale)},async init(t){if(typeof document>"u"||Ot._initialized)return;if(Ot._initialized=!0,t=t||document.body,z("Initializing..."),h.i18n.loadPath){let r=new Set([W.locale,h.i18n.fallbackLocale]);await Promise.all([...r].map(n=>zt(n)))}kt(t);let e=De();await se(e),document.querySelector("[route-view]")&&Zt(pe()),M(t),et&&await et.init(),z("Initialized."),ae(),h.devtools&&typeof window<"u"&&(window.__NOJS_DEVTOOLS__={stores:V,config:h,refs:ft,router:et,filters:Object.keys(k),validators:Object.keys(_t),version:Ot.version},z("DevTools enabled \u2014 access via window.__NOJS_DEVTOOLS__"))},directive(t,e){$(t,e)},filter(t,e){k[t]=e},validator(t,e){_t[t]=e},i18n(t){if(t.loadPath!=null&&(h.i18n.loadPath=t.loadPath),t.ns&&(h.i18n.ns=t.ns),t.cache!=null&&(h.i18n.cache=t.cache),t.persist!=null&&(h.i18n.persist=t.persist),t.locales&&(W.locales=t.locales),t.fallbackLocale&&(h.i18n.fallbackLocale=t.fallbackLocale),t.defaultLocale&&(W._locale=t.defaultLocale),h.i18n.persist&&typeof localStorage<"u")try{let e=localStorage.getItem("nojs-locale");if(e){W._locale=e;return}}catch{}if(t.detectBrowser){let e=typeof navigator<"u"?navigator.language:"en",r=e.split("-")[0];W.locales[e]?W._locale=e:W.locales[r]&&(W._locale=r)}},on(t,e){return yt[t]||(yt[t]=[]),yt[t].push(e),()=>{yt[t]=yt[t].filter(r=>r!==e)}},interceptor(t,e){At[t]&&At[t].push(e)},get store(){return V},get router(){return et},createContext:P,evaluate:L,findContext:I,processTree:M,resolve:nt,version:"1.5.0"},Ne=Ot;
|
|
64
64
|
//# sourceMappingURL=no.js.map
|