@erickxavier/no-js 1.2.0 → 1.2.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/dist/cjs/no.js +3 -3
- package/dist/cjs/no.js.map +1 -1
- package/dist/esm/no.js +3 -3
- package/dist/esm/no.js.map +1 -1
- package/dist/iife/no.js +3 -3
- package/dist/iife/no.js.map +1 -1
- package/package.json +1 -1
- package/src/index.js +1 -1
package/dist/iife/no.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* No.JS v1.2.
|
|
2
|
+
* No.JS v1.2.1 — The HTML-First Reactive Framework
|
|
3
3
|
* No more JavaScript. Just HTML attributes with superpowers.
|
|
4
4
|
* @license MIT
|
|
5
|
-
* @see https://github.com/
|
|
5
|
+
* @see https://github.com/ErickXavier/no-js
|
|
6
6
|
*/
|
|
7
7
|
(()=>{var be=Object.defineProperty;var Yt=(t,r)=>()=>(t&&(r=t(t=0)),r);var ye=(t,r)=>{for(var e in r)be(t,e,{get:r[e],enumerable:!0})};function Rt(t){ct=t}function Vt(t){tt=t}function J(...t){h.debug&&console.log("[No.JS]",...t)}function st(...t){console.warn("[No.JS]",...t)}function xt(){for(let t of Ct){if(t._el&&!t._el.isConnected){Ct.delete(t);continue}t()}}function W(t,r,e){r.$watch(e),typeof t=="string"&&t.includes("$store")&&Ct.add(e)}function G(t){ct&&(ct.__disposers=ct.__disposers||[],ct.__disposers.push(t))}function Dt(t,r){(ht[t]||[]).forEach(e=>e(r))}var h,Et,ht,Y,Ct,N,bt,Pt,ut,tt,ct,K=Yt(()=>{h={baseApiUrl:"",headers:{},timeout:1e4,retries:0,retryDelay:1e3,credentials:"same-origin",csrf:null,cache:{strategy:"none",ttl:3e5},templates:{cache:!0},router:{mode:"history",base:"/",scrollBehavior:"top",templates:"pages",ext:".tpl"},i18n:{defaultLocale:"en",fallbackLocale:"en",detectBrowser:!1,loadPath:null,ns:[],cache:!0,persist:!1},debug:!1,devtools:!1,csp:null,sanitize:!0},Et={request:[],response:[]},ht={},Y={},Ct=new Set,N={},bt={},Pt=new Map,ut={},tt=null,ct=null});var Gt={};ye(Gt,{_deepMerge:()=>Ut,_i18n:()=>q,_i18nCache:()=>Ft,_i18nListeners:()=>yt,_loadI18nForLocale:()=>Wt,_loadI18nNamespace:()=>zt,_loadLocale:()=>St,_loadedNs:()=>qt,_notifyI18n:()=>Tt,_watchI18n:()=>$t});function $t(t){return yt.add(t),()=>yt.delete(t)}function Tt(){for(let t of yt){if(t._el&&!t._el.isConnected){yt.delete(t);continue}t()}}function Ut(t,r){let e={...t};for(let n of Object.keys(r))r[n]&&typeof r[n]=="object"&&!Array.isArray(r[n])&&t[n]&&typeof t[n]=="object"&&!Array.isArray(t[n])?e[n]=Ut(t[n],r[n]):e[n]=r[n];return e}async function St(t,r){let e=r?`${t}:${r}`:t;if(h.i18n.cache&&Ft.has(e))return;let n=h.i18n.loadPath.replace("{locale}",t);if(r)n=n.replace("{ns}",r);else if(n.includes("{ns}"))return;try{let o=await fetch(n);if(!o.ok){st(`i18n: failed to load ${n} (${o.status})`);return}let i=await o.json();q.locales[t]=Ut(q.locales[t]||{},i),h.i18n.cache&&Ft.set(e,i)}catch(o){st(`i18n: error loading ${n}`,o)}}async function Wt(t){if(!h.i18n.loadPath)return;let r=h.i18n.ns;!r.length||!h.i18n.loadPath.includes("{ns}")?await St(t,null):await Promise.all(r.map(e=>St(t,e)))}async function zt(t){if(!h.i18n.loadPath)return;qt.add(t);let r=new Set([q.locale,h.i18n.fallbackLocale]);await Promise.all([...r].map(e=>St(e,t)))}var yt,Ft,qt,q,pt=Yt(()=>{K();yt=new Set;Ft=new Map,qt=new Set;q={_locale:"en",locales:{},get locale(){return this._locale},set locale(t){if(this._locale!==t){if(this._locale=t,h.i18n.persist&&typeof localStorage<"u")try{localStorage.setItem("nojs-locale",t)}catch{}if(h.i18n.loadPath){let r=new Set([...h.i18n.ns,...qt]);Promise.all([...r].map(e=>St(t,e))).then(()=>Tt())}else Tt()}},t(t,r={}){let e=q.locales[q.locale]||q.locales[h.i18n.fallbackLocale]||{},n=t.split(".").reduce((o,i)=>o?.[i],e);if(n==null)return t;if(typeof n=="string"&&n.includes("|")&&r.count!=null){let o=n.split("|").map(i=>i.trim());n=Number(r.count)===1?o[0]:o[1]||o[0]}return typeof n=="string"&&(n=n.replace(/\{(\w+)\}/g,(o,i)=>r[i]!=null?r[i]:"")),n}}});K();pt();K();pt();var _e=0,ve=new Set;function O(t={},r=null){let e=new Set,n={};Object.assign(n,t);let o=!1;function i(){if(!o){o=!0;try{if(_e>0)for(let c of e){if(c._el&&!c._el.isConnected){e.delete(c);continue}ve.add(c)}else for(let c of e){if(c._el&&!c._el.isConnected){e.delete(c);continue}c()}}finally{o=!1}}}let s={get(c,d){if(d==="__isProxy")return!0;if(d==="__raw")return c;if(d==="__listeners")return e;if(d==="$watch")return f=>(ct&&(f._el=ct),e.add(f),()=>e.delete(f));if(d==="$notify")return i;if(d==="$set")return(f,l)=>{let p=f.split(".");if(p.length===1)a[f]=l;else{let u=a;for(let v=0;v<p.length-1;v++)if(u=u[p[v]],u==null)return;let m=p[p.length-1],L=u[m];u[m]=l,L!==l&&i()}};if(d==="$parent")return r;if(d==="$refs")return ut;if(d==="$store")return Y;if(d==="$route")return tt?tt.current:{};if(d==="$router")return tt;if(d==="$i18n")return q;if(d==="$form")return c.$form||null;if(d in c)return c[d];if(r&&r.__isProxy)return r[d]},set(c,d,f){let l=c[d];return c[d]=f,l!==f&&i(),!0},has(c,d){return d in c?!0:r&&r.__isProxy?d in r:!1}},a=new Proxy(n,s);return a}function Jt(t){let r=new Set,e={},n=t;for(;n&&n.__isProxy;){let o=n.__raw;for(let i of Object.keys(o))r.has(i)||(r.add(i),e[i]=o[i]);n=n.$parent}return{keys:[...r],vals:e}}K();pt();var Qt=new Map;function mt(t,r,e){let n={};for(let d=0;d<r.length;d++)n[r[d]]=e[d];function o(d,f){return d.split(".").reduce((l,p)=>l?.[p],f)}function i(d){let f=d.trim();if(f==="true")return!0;if(f==="false")return!1;if(f==="null")return null;if(f!=="undefined")return/^-?\d+(\.\d+)?$/.test(f)?Number(f):/^(['"`]).*\1$/.test(f)?f.slice(1,-1):o(f,n)}let s=t.trim(),a=s.match(/^(.+?)\s*\?\s*(.+?)\s*:\s*(.+)$/);if(a){let d=mt(a[1].trim(),r,e);return mt(d?a[2].trim():a[3].trim(),r,e)}if(s.includes("||")){let d=s.split("||");for(let f of d){let l=mt(f.trim(),r,e);if(l)return l}return mt(d[d.length-1].trim(),r,e)}if(s.includes("&&")){let d=s.split("&&"),f;for(let l of d)if(f=mt(l.trim(),r,e),!f)return f;return f}let c=s.match(/^(.+?)\s*(===|!==|==|!=|>=|<=|>|<)\s*(.+)$/);if(c){let d=i(c[1]),f=i(c[3]);switch(c[2]){case"===":return d===f;case"!==":return d!==f;case"==":return d==f;case"!=":return d!=f;case">=":return d>=f;case"<=":return d<=f;case">":return d>f;case"<":return d<f}}return s.startsWith("!")?!mt(s.slice(1).trim(),r,e):i(s)}function Ee(t){let r=[],e="",n=0,o=!1,i="";for(let s=0;s<t.length;s++){let a=t[s];if(o){e+=a,a===i&&t[s-1]!=="\\"&&(o=!1);continue}if(a==="'"||a==='"'||a==="`"){o=!0,i=a,e+=a;continue}if(a==="("||a==="["||a==="{"){n++,e+=a;continue}if(a===")"||a==="]"||a==="}"){n--,e+=a;continue}if(a==="|"&&n===0&&t[s+1]!=="|"&&t[s-1]!=="|"){r.push(e.trim()),e="";continue}e+=a}return r.push(e.trim()),r}function xe(t,r){let e=r.indexOf(":"),n,o;e===-1?(n=r.trim(),o=null):(n=r.substring(0,e).trim(),o=r.substring(e+1).trim());let i=N[n];if(!i)return st(`Unknown filter: ${n}`),t;let s=o?Ae(o):[];return i(t,...s)}function Ae(t){let r=[],e="",n=!1,o="";for(let i of t){if(n){if(i===o){n=!1;continue}e+=i;continue}if(i==="'"||i==='"'){n=!0,o=i;continue}if(i===","){r.push(e.trim()),e="";continue}e+=i}return e.trim()&&r.push(e.trim()),r.map(i=>{let s=Number(i);return isNaN(s)?i:s})}function x(t,r){if(!(t==null||t===""))try{let e=Ee(t),n=e[0],{keys:o,vals:i}=Jt(r),s=["$store","$route","$router","$i18n","$refs","$form"];for(let f of s)o.includes(f)||(o.push(f),i[f]=r[f]);let a=o,c=a.map(f=>i[f]),d;if(h.csp==="strict")d=mt(n,a,c);else{let f=n+"|"+a.join(","),l=Qt.get(f);l||(l=new Function(...a,`return (${n})`),Qt.set(f,l)),d=l(...c)}for(let f=1;f<e.length;f++)d=xe(d,e[f]);return d}catch{return}}function Q(t,r,e={}){try{let{keys:n,vals:o}=Jt(r),i={$store:Y,$route:tt?.current,$router:tt,$i18n:q,$refs:r.$refs};Object.assign(i,e);for(let[u,m]of Object.entries(i))n.includes(u)||(n.push(u),o[u]=m);let s=[...n],a=s.map(u=>o[u]),c=new Set,d=r;for(;d&&d.__isProxy;){for(let u of Object.keys(d.__raw))c.add(u);d=d.$parent}let f={};for(let u of c)!u.startsWith("$")&&u in o&&(f[u]=o[u]);let l=[...c].filter(u=>!u.startsWith("$")).map(u=>`{let _c=__ctx;while(_c&&_c.__isProxy){if('${u}'in _c.__raw){if(typeof ${u}!=='undefined'){if(${u}!==__orig['${u}'])_c.$set('${u}',${u});else if(typeof ${u}==='object'&&${u}!==null)_c.$notify();}break;}_c=_c.$parent;}}`).join(`
|
|
8
8
|
`);new Function("__ctx","__orig",...s,`${t};
|
|
@@ -60,5 +60,5 @@ ${l}`)(r,f,...a),typeof t=="string"&&t.includes("$store")&&xt()}catch(n){st("Exp
|
|
|
60
60
|
.nojs-drag-list-empty {
|
|
61
61
|
min-height: 3rem;
|
|
62
62
|
}
|
|
63
|
-
`.trim(),r=document.createElement("style");r.setAttribute("data-nojs-dnd",""),r.textContent=t,document.head.appendChild(r)}function Mt(t,r,e,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(r<c)return i}else if(n==="grid"){let c=a.left+a.width/2,d=a.top+a.height/2;if(e<d&&r<c||e<a.top+a.height&&r<c)return i}else{let c=a.top+a.height/2;if(e<c)return i}}return o.length}function me(t,r,e,n){at();let o;if(e==="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(e.startsWith("#")?e.slice(1):e);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"));r>=i.length?t.appendChild(o):t.insertBefore(o,i[r]),g.placeholder=o}function at(){g.placeholder&&(g.placeholder.remove(),g.placeholder=null)}function _t(t,r){return!r||r==="*"?!0:r.split(",").map(n=>n.trim()).includes(t)}function Ce(t,r){let e=document.createElement("div");e.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(r,3);for(let f=c-1;f>=0;f--){let l=document.createElement("div"),p=f*4;l.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;",f===0?(l.innerHTML=n.innerHTML,l.style.background=a.backgroundColor||"#fff",l.style.border=a.border,l.style.padding=a.padding,l.style.fontSize=a.fontSize,l.style.color=a.color,l.style.fontFamily=a.fontFamily):(l.style.background=a.backgroundColor||"#fff",l.style.border=a.border||"1px solid #ddd"),e.appendChild(l)}let d=document.createElement("div");return d.textContent=r,d.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);",e.appendChild(d),e.style.width=i+(c-1)*4+"px",e.style.height=s+(c-1)*4+"px",e}S("drag",{priority:15,init(t,r,e){Xt();let n=$(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",d=t.getAttribute("drag-disabled"),f=t.getAttribute("drag-class")||"nojs-dragging",l=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 v=b=>{p=!!b.target.closest(s)};t.addEventListener("mousedown",v),G(()=>t.removeEventListener("mousedown",v))}let u=v=>{if(s&&!p){v.preventDefault();return}if(d&&x(d,n)){v.preventDefault();return}let b=x(e,n),A=t.getAttribute("drag-group"),y=b;if(A&&g.selected.has(A)){let E=g.selected.get(A);E.size>0&&[...E].some(_=>_.el===t)&&(y=[...E].map(_=>_.item))}if(g.dragging={item:y,type:o,effect:i,sourceEl:t,sourceCtx:n,sourceList:null,sourceIndex:null,listDirective:null},v.dataTransfer){if(v.dataTransfer.effectAllowed=i,v.dataTransfer.setData("text/plain",""),Array.isArray(y)&&y.length>1&&v.dataTransfer.setDragImage){let E=Ce(t,y.length);document.body.appendChild(E);let T=t.getBoundingClientRect();v.dataTransfer.setDragImage(E,T.width/2,T.height/2),requestAnimationFrame(()=>E.remove())}else if(a&&v.dataTransfer.setDragImage)if(a==="none"){let E=document.createElement("div");E.style.cssText="width:1px;height:1px;opacity:0;position:fixed;top:-999px",document.body.appendChild(E);let[T,_]=c.split(",").map(Number);v.dataTransfer.setDragImage(E,T||0,_||0),requestAnimationFrame(()=>E.remove())}else{let E=t.querySelector(a);if(E){let[T,_]=c.split(",").map(Number);l&&E.classList.add(l),v.dataTransfer.setDragImage(E,T||0,_||0)}}}if(f.split(/\s+/).filter(Boolean).forEach(E=>t.classList.add(E)),Array.isArray(y)&&A&&g.selected.has(A))for(let E of g.selected.get(A))E.el!==t&&f.split(/\s+/).filter(Boolean).forEach(T=>E.el.classList.add(T));t.setAttribute("aria-grabbed","true"),t.dispatchEvent(new CustomEvent("drag-start",{bubbles:!0,detail:{item:y,index:g.dragging.sourceIndex,el:t}}))},m=()=>{f.split(/\s+/).filter(Boolean).forEach(b=>t.classList.remove(b));let v=t.getAttribute("drag-group");if(v&&g.selected.has(v))for(let b of g.selected.get(v))f.split(/\s+/).filter(Boolean).forEach(A=>b.el.classList.remove(A));if(t.setAttribute("aria-grabbed","false"),l&&a&&a!=="none"){let b=t.querySelector(a);b&&b.classList.remove(l)}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),G(()=>{t.removeEventListener("dragstart",u),t.removeEventListener("dragend",m)}),d){let v=function(){let b=!!x(d,n);t.draggable=!b,b?t.removeAttribute("aria-grabbed"):t.setAttribute("aria-grabbed","false")};n.$watch(v)}let L=v=>{if(g.dragging&&!g.dragging.sourceEl.isConnected&&(g.dragging=null),v.key===" "&&!g.dragging){v.preventDefault();let b=x(e,n);g.dragging={item:b,type:o,effect:i,sourceEl:t,sourceCtx:n,sourceList:null,sourceIndex:null,listDirective:null},f.split(/\s+/).filter(Boolean).forEach(A=>t.classList.add(A)),t.setAttribute("aria-grabbed","true"),t.dispatchEvent(new CustomEvent("drag-start",{bubbles:!0,detail:{item:b,index:null,el:t}}))}else v.key==="Escape"&&g.dragging&&g.dragging.sourceEl===t&&(v.preventDefault(),f.split(/\s+/).filter(Boolean).forEach(b=>t.classList.remove(b)),t.setAttribute("aria-grabbed","false"),g.dragging=null,at())};t.addEventListener("keydown",L),G(()=>t.removeEventListener("keydown",L))}});S("drop",{priority:15,init(t,r,e){Xt();let n=$(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"),d=t.getAttribute("drop-max"),f=t.getAttribute("drop-sort"),l=t.getAttribute("drop-placeholder"),p=t.getAttribute("drop-placeholder-class");t.setAttribute("aria-dropeffect",i);let u=0,m=y=>{if(!g.dragging||c&&x(c,n))return;let E=_t(g.dragging.type,o),T=!0;if(d){let _=x(d,n),w=jt(t);typeof _=="number"&&w>=_&&(T=!1)}if(!E||!T){a.split(/\s+/).filter(Boolean).forEach(_=>t.classList.add(_)),s.split(/\s+/).filter(Boolean).forEach(_=>t.classList.remove(_)),at();return}if(a.split(/\s+/).filter(Boolean).forEach(_=>t.classList.remove(_)),y.preventDefault(),y.dataTransfer&&(y.dataTransfer.dropEffect=i),f){let _=Mt(t,y.clientX,y.clientY,f);l&&me(t,_,l,p),t.dispatchEvent(new CustomEvent("drag-over",{bubbles:!1,detail:{item:g.dragging.item,index:_}}))}},L=y=>{if(g.dragging&&!(c&&x(c,n))&&(u++,u===1)){let E=_t(g.dragging.type,o),T=!0;if(d){let _=x(d,n),w=jt(t);typeof _=="number"&&w>=_&&(T=!1)}E&&T?(s.split(/\s+/).filter(Boolean).forEach(_=>t.classList.add(_)),t.dispatchEvent(new CustomEvent("drag-enter",{bubbles:!1,detail:{item:g.dragging.item,type:g.dragging.type}}))):a.split(/\s+/).filter(Boolean).forEach(_=>t.classList.add(_))}},v=y=>{g.dragging&&(u--,u<=0&&(u=0,s.split(/\s+/).filter(Boolean).forEach(E=>t.classList.remove(E)),a.split(/\s+/).filter(Boolean).forEach(E=>t.classList.remove(E)),at(),t.dispatchEvent(new CustomEvent("drag-leave",{bubbles:!1,detail:{item:g.dragging.item}}))))},b=y=>{if(y.preventDefault(),y.stopPropagation(),u=0,!g.dragging||c&&x(c,n)||!_t(g.dragging.type,o))return;if(d){let I=x(d,n),U=jt(t);if(typeof I=="number"&&U>=I)return}let E=g.dragging.item,T=g.dragging.type,_=g.dragging.effect,w=0;f&&(w=Mt(t,y.clientX,y.clientY,f)),s.split(/\s+/).filter(Boolean).forEach(I=>t.classList.remove(I)),a.split(/\s+/).filter(Boolean).forEach(I=>t.classList.remove(I)),at();let F={$drag:E,$dragType:T,$dragEffect:_,$dropIndex:w,$source:{list:g.dragging.sourceList,index:g.dragging.sourceIndex,el:g.dragging.sourceEl},$target:{list:null,index:w,el:t},$el:t};Q(e,n,F),g.dragging=null,t.dispatchEvent(new CustomEvent("drop",{bubbles:!1,detail:{item:E,index:w,source:F.$source,target:F.$target,effect:_}}))},A=y=>{g.dragging&&(y.key==="Enter"||y.key===" ")&&(y.preventDefault(),b(y))};t.addEventListener("dragover",m),t.addEventListener("dragenter",L),t.addEventListener("dragleave",v),t.addEventListener("drop",b),t.addEventListener("keydown",A),G(()=>{t.removeEventListener("dragover",m),t.removeEventListener("dragenter",L),t.removeEventListener("dragleave",v),t.removeEventListener("drop",b),t.removeEventListener("keydown",A)})}});var pe=new Map;S("drag-list",{priority:10,init(t,r,e){Xt();let n=$(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_"+e,d=t.getAttribute("drop-accept")||c,f=t.hasAttribute("drag-list-copy"),l=t.hasAttribute("drag-list-remove"),p=t.getAttribute("drag-disabled"),u=t.getAttribute("drop-disabled"),m=t.getAttribute("drop-max"),L=t.getAttribute("drop-placeholder"),v=t.getAttribute("drop-placeholder-class"),b=t.getAttribute("drag-class")||"nojs-dragging",A=t.getAttribute("drop-class")||"nojs-drag-over",y=t.getAttribute("drop-reject-class")||"nojs-drop-reject",E=t.getAttribute("drop-settle-class")||"nojs-drop-settle",T=t.getAttribute("drop-empty-class")||"nojs-drag-list-empty";t.setAttribute("role","listbox"),t.setAttribute("aria-dropeffect",f?"copy":"move");let _={listPath:e,ctx:n,el:t};pe.set(t,_),G(()=>pe.delete(t));let w=0,F=null;function I(){let k=rt(e,n);if(!Array.isArray(k))return;if(k===F&&k.length>0&&t.children.length>0){for(let C of t.children)C.__ctx&&C.__ctx.$notify&&C.__ctx.$notify();return}F=k;let j=o?document.getElementById(o):null;if(!j)return;t.innerHTML="";let P=k.length;k.forEach((C,et)=>{let ft={[s]:C,$index:et,$count:P,$first:et===0,$last:et===P-1,$even:et%2===0,$odd:et%2!==0},ot=O(ft,n),V=j.content.cloneNode(!0),M=document.createElement("div");M.style.display="contents",M.__ctx=ot,M.setAttribute("role","option"),M.appendChild(V),t.appendChild(M);let X=M.firstElementChild||M;X.draggable=!0,X.setAttribute("aria-grabbed","false"),X.getAttribute("tabindex")||X.setAttribute("tabindex","0");let vt=Z=>{if(p&&x(p,n)){Z.preventDefault();return}g.dragging={item:C,type:c,effect:f?"copy":"move",sourceEl:M,sourceCtx:ot,sourceList:k,sourceIndex:et,listDirective:{el:t,listPath:e,ctx:n,keyProp:i,copyMode:f,removeMode:l}},Z.dataTransfer&&(Z.dataTransfer.effectAllowed=f?"copy":"move",Z.dataTransfer.setData("text/plain","")),b.split(/\s+/).filter(Boolean).forEach(it=>X.classList.add(it)),X.setAttribute("aria-grabbed","true"),t.dispatchEvent(new CustomEvent("drag-start",{bubbles:!0,detail:{item:C,index:et,el:X}}))},Ht=()=>{b.split(/\s+/).filter(Boolean).forEach(Z=>X.classList.remove(Z)),X.setAttribute("aria-grabbed","false"),g.dragging&&g.dragging.sourceEl===M&&(g.dragging=null),at()};M.addEventListener("dragstart",vt),M.addEventListener("dragend",Ht),M.addEventListener("keydown",Z=>{if(Z.key===" "&&!g.dragging)Z.preventDefault(),g.dragging={item:C,type:c,effect:f?"copy":"move",sourceEl:M,sourceCtx:ot,sourceList:k,sourceIndex:et,listDirective:{el:t,listPath:e,ctx:n,keyProp:i,copyMode:f,removeMode:l}},b.split(/\s+/).filter(Boolean).forEach(it=>X.classList.add(it)),X.setAttribute("aria-grabbed","true");else if(Z.key==="Escape"&&g.dragging&&g.dragging.sourceEl===M)Z.preventDefault(),b.split(/\s+/).filter(Boolean).forEach(it=>X.classList.remove(it)),X.setAttribute("aria-grabbed","false"),g.dragging=null,at();else if((Z.key==="ArrowDown"||Z.key==="ArrowRight")&&g.dragging&&g.dragging.sourceEl===M){Z.preventDefault();let it=M.nextElementSibling;it&&(it.firstElementChild||it).focus()}else if((Z.key==="ArrowUp"||Z.key==="ArrowLeft")&&g.dragging&&g.dragging.sourceEl===M){Z.preventDefault();let it=M.previousElementSibling;it&&(it.firstElementChild||it).focus()}}),B(M)});let D=k.length===0;T.split(/\s+/).filter(Boolean).forEach(C=>t.classList.toggle(C,D))}let U=k=>{if(!g.dragging||u&&x(u,n))return;let j=_t(g.dragging.type,d),P=!0;if(m){let C=x(m,n),et=rt(e,n);typeof C=="number"&&Array.isArray(et)&&et.length>=C&&(P=!1)}if(!j||!P){y.split(/\s+/).filter(Boolean).forEach(C=>t.classList.add(C)),A.split(/\s+/).filter(Boolean).forEach(C=>t.classList.remove(C)),at();return}y.split(/\s+/).filter(Boolean).forEach(C=>t.classList.remove(C)),k.preventDefault(),k.dataTransfer&&(k.dataTransfer.dropEffect=f?"copy":"move");let D=Mt(t,k.clientX,k.clientY,a);L&&me(t,D,L,v)},nt=k=>{if(g.dragging&&!(u&&x(u,n))&&(w++,w===1)){let j=_t(g.dragging.type,d),P=!0;if(m){let D=x(m,n),C=rt(e,n);typeof D=="number"&&Array.isArray(C)&&C.length>=D&&(P=!1)}j&&P?(A.split(/\s+/).filter(Boolean).forEach(D=>t.classList.add(D)),t.dispatchEvent(new CustomEvent("drag-enter",{bubbles:!1,detail:{item:g.dragging.item,type:g.dragging.type}}))):y.split(/\s+/).filter(Boolean).forEach(D=>t.classList.add(D))}},H=()=>{g.dragging&&(w--,w<=0&&(w=0,A.split(/\s+/).filter(Boolean).forEach(k=>t.classList.remove(k)),y.split(/\s+/).filter(Boolean).forEach(k=>t.classList.remove(k)),at(),t.dispatchEvent(new CustomEvent("drag-leave",{bubbles:!1,detail:{item:g.dragging?.item}}))))},lt=k=>{if(k.preventDefault(),k.stopPropagation(),w=0,!g.dragging||u&&x(u,n)||!_t(g.dragging.type,d))return;if(m){let V=x(m,n),M=rt(e,n);if(typeof V=="number"&&Array.isArray(M)&&M.length>=V)return}let j=g.dragging.item,P=g.dragging.listDirective,D=g.dragging.sourceIndex,C=Mt(t,k.clientX,k.clientY,a);A.split(/\s+/).filter(Boolean).forEach(V=>t.classList.remove(V)),y.split(/\s+/).filter(Boolean).forEach(V=>t.classList.remove(V)),at();let et=rt(e,n);if(!Array.isArray(et))return;let ft=P&&P.el===t;if(ft&&D===C){g.dragging=null;return}if(ft&&D+1===C){g.dragging=null;return}let ot=[...et];if(ft){let[V]=ot.splice(D,1),M=D<C?C-1:C;ot.splice(M,0,V),n.$set(e,ot),t.dispatchEvent(new CustomEvent("reorder",{bubbles:!0,detail:{list:ot,item:j,from:D,to:M}}))}else{let V=f&&typeof j=="object"?{...j}:j;if(ot.splice(C,0,V),n.$set(e,ot),P&&!P.copyMode&&(l||P.removeMode)){let M=rt(P.listPath,P.ctx);if(Array.isArray(M)&&D!=null){let X=M.filter((vt,Ht)=>Ht!==D);P.ctx.$set(P.listPath,X),P.el.dispatchEvent(new CustomEvent("remove",{bubbles:!0,detail:{list:X,item:j,index:D}}))}}t.dispatchEvent(new CustomEvent("receive",{bubbles:!0,detail:{list:ot,item:j,from:D,fromList:P?rt(P.listPath,P.ctx):null}}))}requestAnimationFrame(()=>{let M=[...t.children][ft&&D<C?C-1:C];if(M){let X=M.firstElementChild||M;E.split(/\s+/).filter(Boolean).forEach(vt=>X.classList.add(vt)),X.addEventListener("animationend",()=>{E.split(/\s+/).filter(Boolean).forEach(vt=>X.classList.remove(vt))},{once:!0})}}),g.dragging=null},R=k=>{if(g.dragging&&_t(g.dragging.type,d)&&(k.key==="Enter"||k.key===" ")){k.preventDefault();let j=t.querySelector(":focus");if(j){let D=(j.style?.display==="contents"&&j.firstElementChild||j).getBoundingClientRect(),C={preventDefault(){},stopPropagation(){},clientX:D.left+D.width/2,clientY:D.top+D.height+1,dataTransfer:null};lt(C)}}};t.addEventListener("dragover",U),t.addEventListener("dragenter",nt),t.addEventListener("dragleave",H),t.addEventListener("drop",lt),t.addEventListener("keydown",R),G(()=>{t.removeEventListener("dragover",U),t.removeEventListener("dragenter",nt),t.removeEventListener("dragleave",H),t.removeEventListener("drop",lt),t.removeEventListener("keydown",R)}),n.$watch(I),I()}});S("drag-multiple",{priority:16,init(t,r){let e=$(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 d=t.getAttribute("drag"),l={item:d?x(d,e):null,el:t,ctx:e};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(l),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(l),o.split(/\s+/).filter(Boolean).forEach(p=>t.classList.add(p))}};t.addEventListener("click",s),G(()=>{t.removeEventListener("click",s);let c=[...i].find(d=>d.el===t);c&&i.delete(c)});let a=c=>{if(c.key==="Escape"){for(let d of i)o.split(/\s+/).filter(Boolean).forEach(f=>d.el.classList.remove(f));i.clear()}};window.addEventListener("keydown",a),G(()=>window.removeEventListener("keydown",a))}});function Te(){if(typeof window>"u")return null;let t=h.router||{};if(t.mode==="hash")return window.location.hash.slice(1)||"/";let r=(t.base||"/").replace(/\/$/,"");return window.location.pathname.replace(r,"")||"/"}var ge={get baseApiUrl(){return h.baseApiUrl},set baseApiUrl(t){h.baseApiUrl=t},get locale(){return q.locale},set locale(t){q.locale=t},config(t={}){let r={...h.headers},e={...h.cache},n={...h.templates},o={...h.router},i={...h.i18n};Object.assign(h,t),t.headers&&(h.headers={...r,...t.headers}),t.csrf&&(h.csrf=t.csrf),t.cache&&(h.cache={...e,...t.cache}),t.templates&&(h.templates={...n,...t.templates}),t.router&&(h.router={...o,...t.router}),t.i18n&&(h.i18n={...i,...t.i18n},q.locale=t.i18n.defaultLocale||q.locale)},async init(t){if(typeof document>"u")return;if(t=t||document.body,J("Initializing..."),h.i18n.loadPath){let e=new Set([q.locale,h.i18n.fallbackLocale]);await Promise.all([...e].map(n=>Wt(n)))}kt(t);let r=Te();await oe(r),document.querySelector("[route-view]")&&Vt(fe()),B(t),tt&&await tt.init(),J("Initialized."),ie(),h.devtools&&typeof window<"u"&&(window.__NOJS_DEVTOOLS__={stores:Y,config:h,refs:ut,router:tt,filters:Object.keys(N),validators:Object.keys(bt),version:ge.version},J("DevTools enabled \u2014 access via window.__NOJS_DEVTOOLS__"))},directive(t,r){S(t,r)},filter(t,r){N[t]=r},validator(t,r){bt[t]=r},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&&(q.locales=t.locales),t.fallbackLocale&&(h.i18n.fallbackLocale=t.fallbackLocale),t.defaultLocale&&(q._locale=t.defaultLocale),h.i18n.persist&&typeof localStorage<"u")try{let r=localStorage.getItem("nojs-locale");if(r&&q.locales[r]){q._locale=r;return}}catch{}if(t.detectBrowser){let r=typeof navigator<"u"?navigator.language:"en",e=r.split("-")[0];q.locales[r]?q._locale=r:q.locales[e]&&(q._locale=e)}},on(t,r){return ht[t]||(ht[t]=[]),ht[t].push(r),()=>{ht[t]=ht[t].filter(e=>e!==r)}},interceptor(t,r){Et[t]&&Et[t].push(r)},get store(){return Y},get router(){return tt},createContext:O,evaluate:x,findContext:$,processTree:B,resolve:rt,version:"1.2.0"},Ot=ge;window.NoJS=Ot;document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>Ot.init()):Ot.init();})();
|
|
63
|
+
`.trim(),r=document.createElement("style");r.setAttribute("data-nojs-dnd",""),r.textContent=t,document.head.appendChild(r)}function Mt(t,r,e,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(r<c)return i}else if(n==="grid"){let c=a.left+a.width/2,d=a.top+a.height/2;if(e<d&&r<c||e<a.top+a.height&&r<c)return i}else{let c=a.top+a.height/2;if(e<c)return i}}return o.length}function me(t,r,e,n){at();let o;if(e==="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(e.startsWith("#")?e.slice(1):e);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"));r>=i.length?t.appendChild(o):t.insertBefore(o,i[r]),g.placeholder=o}function at(){g.placeholder&&(g.placeholder.remove(),g.placeholder=null)}function _t(t,r){return!r||r==="*"?!0:r.split(",").map(n=>n.trim()).includes(t)}function Ce(t,r){let e=document.createElement("div");e.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(r,3);for(let f=c-1;f>=0;f--){let l=document.createElement("div"),p=f*4;l.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;",f===0?(l.innerHTML=n.innerHTML,l.style.background=a.backgroundColor||"#fff",l.style.border=a.border,l.style.padding=a.padding,l.style.fontSize=a.fontSize,l.style.color=a.color,l.style.fontFamily=a.fontFamily):(l.style.background=a.backgroundColor||"#fff",l.style.border=a.border||"1px solid #ddd"),e.appendChild(l)}let d=document.createElement("div");return d.textContent=r,d.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);",e.appendChild(d),e.style.width=i+(c-1)*4+"px",e.style.height=s+(c-1)*4+"px",e}S("drag",{priority:15,init(t,r,e){Xt();let n=$(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",d=t.getAttribute("drag-disabled"),f=t.getAttribute("drag-class")||"nojs-dragging",l=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 v=b=>{p=!!b.target.closest(s)};t.addEventListener("mousedown",v),G(()=>t.removeEventListener("mousedown",v))}let u=v=>{if(s&&!p){v.preventDefault();return}if(d&&x(d,n)){v.preventDefault();return}let b=x(e,n),A=t.getAttribute("drag-group"),y=b;if(A&&g.selected.has(A)){let E=g.selected.get(A);E.size>0&&[...E].some(_=>_.el===t)&&(y=[...E].map(_=>_.item))}if(g.dragging={item:y,type:o,effect:i,sourceEl:t,sourceCtx:n,sourceList:null,sourceIndex:null,listDirective:null},v.dataTransfer){if(v.dataTransfer.effectAllowed=i,v.dataTransfer.setData("text/plain",""),Array.isArray(y)&&y.length>1&&v.dataTransfer.setDragImage){let E=Ce(t,y.length);document.body.appendChild(E);let T=t.getBoundingClientRect();v.dataTransfer.setDragImage(E,T.width/2,T.height/2),requestAnimationFrame(()=>E.remove())}else if(a&&v.dataTransfer.setDragImage)if(a==="none"){let E=document.createElement("div");E.style.cssText="width:1px;height:1px;opacity:0;position:fixed;top:-999px",document.body.appendChild(E);let[T,_]=c.split(",").map(Number);v.dataTransfer.setDragImage(E,T||0,_||0),requestAnimationFrame(()=>E.remove())}else{let E=t.querySelector(a);if(E){let[T,_]=c.split(",").map(Number);l&&E.classList.add(l),v.dataTransfer.setDragImage(E,T||0,_||0)}}}if(f.split(/\s+/).filter(Boolean).forEach(E=>t.classList.add(E)),Array.isArray(y)&&A&&g.selected.has(A))for(let E of g.selected.get(A))E.el!==t&&f.split(/\s+/).filter(Boolean).forEach(T=>E.el.classList.add(T));t.setAttribute("aria-grabbed","true"),t.dispatchEvent(new CustomEvent("drag-start",{bubbles:!0,detail:{item:y,index:g.dragging.sourceIndex,el:t}}))},m=()=>{f.split(/\s+/).filter(Boolean).forEach(b=>t.classList.remove(b));let v=t.getAttribute("drag-group");if(v&&g.selected.has(v))for(let b of g.selected.get(v))f.split(/\s+/).filter(Boolean).forEach(A=>b.el.classList.remove(A));if(t.setAttribute("aria-grabbed","false"),l&&a&&a!=="none"){let b=t.querySelector(a);b&&b.classList.remove(l)}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),G(()=>{t.removeEventListener("dragstart",u),t.removeEventListener("dragend",m)}),d){let v=function(){let b=!!x(d,n);t.draggable=!b,b?t.removeAttribute("aria-grabbed"):t.setAttribute("aria-grabbed","false")};n.$watch(v)}let L=v=>{if(g.dragging&&!g.dragging.sourceEl.isConnected&&(g.dragging=null),v.key===" "&&!g.dragging){v.preventDefault();let b=x(e,n);g.dragging={item:b,type:o,effect:i,sourceEl:t,sourceCtx:n,sourceList:null,sourceIndex:null,listDirective:null},f.split(/\s+/).filter(Boolean).forEach(A=>t.classList.add(A)),t.setAttribute("aria-grabbed","true"),t.dispatchEvent(new CustomEvent("drag-start",{bubbles:!0,detail:{item:b,index:null,el:t}}))}else v.key==="Escape"&&g.dragging&&g.dragging.sourceEl===t&&(v.preventDefault(),f.split(/\s+/).filter(Boolean).forEach(b=>t.classList.remove(b)),t.setAttribute("aria-grabbed","false"),g.dragging=null,at())};t.addEventListener("keydown",L),G(()=>t.removeEventListener("keydown",L))}});S("drop",{priority:15,init(t,r,e){Xt();let n=$(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"),d=t.getAttribute("drop-max"),f=t.getAttribute("drop-sort"),l=t.getAttribute("drop-placeholder"),p=t.getAttribute("drop-placeholder-class");t.setAttribute("aria-dropeffect",i);let u=0,m=y=>{if(!g.dragging||c&&x(c,n))return;let E=_t(g.dragging.type,o),T=!0;if(d){let _=x(d,n),w=jt(t);typeof _=="number"&&w>=_&&(T=!1)}if(!E||!T){a.split(/\s+/).filter(Boolean).forEach(_=>t.classList.add(_)),s.split(/\s+/).filter(Boolean).forEach(_=>t.classList.remove(_)),at();return}if(a.split(/\s+/).filter(Boolean).forEach(_=>t.classList.remove(_)),y.preventDefault(),y.dataTransfer&&(y.dataTransfer.dropEffect=i),f){let _=Mt(t,y.clientX,y.clientY,f);l&&me(t,_,l,p),t.dispatchEvent(new CustomEvent("drag-over",{bubbles:!1,detail:{item:g.dragging.item,index:_}}))}},L=y=>{if(g.dragging&&!(c&&x(c,n))&&(u++,u===1)){let E=_t(g.dragging.type,o),T=!0;if(d){let _=x(d,n),w=jt(t);typeof _=="number"&&w>=_&&(T=!1)}E&&T?(s.split(/\s+/).filter(Boolean).forEach(_=>t.classList.add(_)),t.dispatchEvent(new CustomEvent("drag-enter",{bubbles:!1,detail:{item:g.dragging.item,type:g.dragging.type}}))):a.split(/\s+/).filter(Boolean).forEach(_=>t.classList.add(_))}},v=y=>{g.dragging&&(u--,u<=0&&(u=0,s.split(/\s+/).filter(Boolean).forEach(E=>t.classList.remove(E)),a.split(/\s+/).filter(Boolean).forEach(E=>t.classList.remove(E)),at(),t.dispatchEvent(new CustomEvent("drag-leave",{bubbles:!1,detail:{item:g.dragging.item}}))))},b=y=>{if(y.preventDefault(),y.stopPropagation(),u=0,!g.dragging||c&&x(c,n)||!_t(g.dragging.type,o))return;if(d){let I=x(d,n),U=jt(t);if(typeof I=="number"&&U>=I)return}let E=g.dragging.item,T=g.dragging.type,_=g.dragging.effect,w=0;f&&(w=Mt(t,y.clientX,y.clientY,f)),s.split(/\s+/).filter(Boolean).forEach(I=>t.classList.remove(I)),a.split(/\s+/).filter(Boolean).forEach(I=>t.classList.remove(I)),at();let F={$drag:E,$dragType:T,$dragEffect:_,$dropIndex:w,$source:{list:g.dragging.sourceList,index:g.dragging.sourceIndex,el:g.dragging.sourceEl},$target:{list:null,index:w,el:t},$el:t};Q(e,n,F),g.dragging=null,t.dispatchEvent(new CustomEvent("drop",{bubbles:!1,detail:{item:E,index:w,source:F.$source,target:F.$target,effect:_}}))},A=y=>{g.dragging&&(y.key==="Enter"||y.key===" ")&&(y.preventDefault(),b(y))};t.addEventListener("dragover",m),t.addEventListener("dragenter",L),t.addEventListener("dragleave",v),t.addEventListener("drop",b),t.addEventListener("keydown",A),G(()=>{t.removeEventListener("dragover",m),t.removeEventListener("dragenter",L),t.removeEventListener("dragleave",v),t.removeEventListener("drop",b),t.removeEventListener("keydown",A)})}});var pe=new Map;S("drag-list",{priority:10,init(t,r,e){Xt();let n=$(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_"+e,d=t.getAttribute("drop-accept")||c,f=t.hasAttribute("drag-list-copy"),l=t.hasAttribute("drag-list-remove"),p=t.getAttribute("drag-disabled"),u=t.getAttribute("drop-disabled"),m=t.getAttribute("drop-max"),L=t.getAttribute("drop-placeholder"),v=t.getAttribute("drop-placeholder-class"),b=t.getAttribute("drag-class")||"nojs-dragging",A=t.getAttribute("drop-class")||"nojs-drag-over",y=t.getAttribute("drop-reject-class")||"nojs-drop-reject",E=t.getAttribute("drop-settle-class")||"nojs-drop-settle",T=t.getAttribute("drop-empty-class")||"nojs-drag-list-empty";t.setAttribute("role","listbox"),t.setAttribute("aria-dropeffect",f?"copy":"move");let _={listPath:e,ctx:n,el:t};pe.set(t,_),G(()=>pe.delete(t));let w=0,F=null;function I(){let k=rt(e,n);if(!Array.isArray(k))return;if(k===F&&k.length>0&&t.children.length>0){for(let C of t.children)C.__ctx&&C.__ctx.$notify&&C.__ctx.$notify();return}F=k;let j=o?document.getElementById(o):null;if(!j)return;t.innerHTML="";let P=k.length;k.forEach((C,et)=>{let ft={[s]:C,$index:et,$count:P,$first:et===0,$last:et===P-1,$even:et%2===0,$odd:et%2!==0},ot=O(ft,n),V=j.content.cloneNode(!0),M=document.createElement("div");M.style.display="contents",M.__ctx=ot,M.setAttribute("role","option"),M.appendChild(V),t.appendChild(M);let X=M.firstElementChild||M;X.draggable=!0,X.setAttribute("aria-grabbed","false"),X.getAttribute("tabindex")||X.setAttribute("tabindex","0");let vt=Z=>{if(p&&x(p,n)){Z.preventDefault();return}g.dragging={item:C,type:c,effect:f?"copy":"move",sourceEl:M,sourceCtx:ot,sourceList:k,sourceIndex:et,listDirective:{el:t,listPath:e,ctx:n,keyProp:i,copyMode:f,removeMode:l}},Z.dataTransfer&&(Z.dataTransfer.effectAllowed=f?"copy":"move",Z.dataTransfer.setData("text/plain","")),b.split(/\s+/).filter(Boolean).forEach(it=>X.classList.add(it)),X.setAttribute("aria-grabbed","true"),t.dispatchEvent(new CustomEvent("drag-start",{bubbles:!0,detail:{item:C,index:et,el:X}}))},Ht=()=>{b.split(/\s+/).filter(Boolean).forEach(Z=>X.classList.remove(Z)),X.setAttribute("aria-grabbed","false"),g.dragging&&g.dragging.sourceEl===M&&(g.dragging=null),at()};M.addEventListener("dragstart",vt),M.addEventListener("dragend",Ht),M.addEventListener("keydown",Z=>{if(Z.key===" "&&!g.dragging)Z.preventDefault(),g.dragging={item:C,type:c,effect:f?"copy":"move",sourceEl:M,sourceCtx:ot,sourceList:k,sourceIndex:et,listDirective:{el:t,listPath:e,ctx:n,keyProp:i,copyMode:f,removeMode:l}},b.split(/\s+/).filter(Boolean).forEach(it=>X.classList.add(it)),X.setAttribute("aria-grabbed","true");else if(Z.key==="Escape"&&g.dragging&&g.dragging.sourceEl===M)Z.preventDefault(),b.split(/\s+/).filter(Boolean).forEach(it=>X.classList.remove(it)),X.setAttribute("aria-grabbed","false"),g.dragging=null,at();else if((Z.key==="ArrowDown"||Z.key==="ArrowRight")&&g.dragging&&g.dragging.sourceEl===M){Z.preventDefault();let it=M.nextElementSibling;it&&(it.firstElementChild||it).focus()}else if((Z.key==="ArrowUp"||Z.key==="ArrowLeft")&&g.dragging&&g.dragging.sourceEl===M){Z.preventDefault();let it=M.previousElementSibling;it&&(it.firstElementChild||it).focus()}}),B(M)});let D=k.length===0;T.split(/\s+/).filter(Boolean).forEach(C=>t.classList.toggle(C,D))}let U=k=>{if(!g.dragging||u&&x(u,n))return;let j=_t(g.dragging.type,d),P=!0;if(m){let C=x(m,n),et=rt(e,n);typeof C=="number"&&Array.isArray(et)&&et.length>=C&&(P=!1)}if(!j||!P){y.split(/\s+/).filter(Boolean).forEach(C=>t.classList.add(C)),A.split(/\s+/).filter(Boolean).forEach(C=>t.classList.remove(C)),at();return}y.split(/\s+/).filter(Boolean).forEach(C=>t.classList.remove(C)),k.preventDefault(),k.dataTransfer&&(k.dataTransfer.dropEffect=f?"copy":"move");let D=Mt(t,k.clientX,k.clientY,a);L&&me(t,D,L,v)},nt=k=>{if(g.dragging&&!(u&&x(u,n))&&(w++,w===1)){let j=_t(g.dragging.type,d),P=!0;if(m){let D=x(m,n),C=rt(e,n);typeof D=="number"&&Array.isArray(C)&&C.length>=D&&(P=!1)}j&&P?(A.split(/\s+/).filter(Boolean).forEach(D=>t.classList.add(D)),t.dispatchEvent(new CustomEvent("drag-enter",{bubbles:!1,detail:{item:g.dragging.item,type:g.dragging.type}}))):y.split(/\s+/).filter(Boolean).forEach(D=>t.classList.add(D))}},H=()=>{g.dragging&&(w--,w<=0&&(w=0,A.split(/\s+/).filter(Boolean).forEach(k=>t.classList.remove(k)),y.split(/\s+/).filter(Boolean).forEach(k=>t.classList.remove(k)),at(),t.dispatchEvent(new CustomEvent("drag-leave",{bubbles:!1,detail:{item:g.dragging?.item}}))))},lt=k=>{if(k.preventDefault(),k.stopPropagation(),w=0,!g.dragging||u&&x(u,n)||!_t(g.dragging.type,d))return;if(m){let V=x(m,n),M=rt(e,n);if(typeof V=="number"&&Array.isArray(M)&&M.length>=V)return}let j=g.dragging.item,P=g.dragging.listDirective,D=g.dragging.sourceIndex,C=Mt(t,k.clientX,k.clientY,a);A.split(/\s+/).filter(Boolean).forEach(V=>t.classList.remove(V)),y.split(/\s+/).filter(Boolean).forEach(V=>t.classList.remove(V)),at();let et=rt(e,n);if(!Array.isArray(et))return;let ft=P&&P.el===t;if(ft&&D===C){g.dragging=null;return}if(ft&&D+1===C){g.dragging=null;return}let ot=[...et];if(ft){let[V]=ot.splice(D,1),M=D<C?C-1:C;ot.splice(M,0,V),n.$set(e,ot),t.dispatchEvent(new CustomEvent("reorder",{bubbles:!0,detail:{list:ot,item:j,from:D,to:M}}))}else{let V=f&&typeof j=="object"?{...j}:j;if(ot.splice(C,0,V),n.$set(e,ot),P&&!P.copyMode&&(l||P.removeMode)){let M=rt(P.listPath,P.ctx);if(Array.isArray(M)&&D!=null){let X=M.filter((vt,Ht)=>Ht!==D);P.ctx.$set(P.listPath,X),P.el.dispatchEvent(new CustomEvent("remove",{bubbles:!0,detail:{list:X,item:j,index:D}}))}}t.dispatchEvent(new CustomEvent("receive",{bubbles:!0,detail:{list:ot,item:j,from:D,fromList:P?rt(P.listPath,P.ctx):null}}))}requestAnimationFrame(()=>{let M=[...t.children][ft&&D<C?C-1:C];if(M){let X=M.firstElementChild||M;E.split(/\s+/).filter(Boolean).forEach(vt=>X.classList.add(vt)),X.addEventListener("animationend",()=>{E.split(/\s+/).filter(Boolean).forEach(vt=>X.classList.remove(vt))},{once:!0})}}),g.dragging=null},R=k=>{if(g.dragging&&_t(g.dragging.type,d)&&(k.key==="Enter"||k.key===" ")){k.preventDefault();let j=t.querySelector(":focus");if(j){let D=(j.style?.display==="contents"&&j.firstElementChild||j).getBoundingClientRect(),C={preventDefault(){},stopPropagation(){},clientX:D.left+D.width/2,clientY:D.top+D.height+1,dataTransfer:null};lt(C)}}};t.addEventListener("dragover",U),t.addEventListener("dragenter",nt),t.addEventListener("dragleave",H),t.addEventListener("drop",lt),t.addEventListener("keydown",R),G(()=>{t.removeEventListener("dragover",U),t.removeEventListener("dragenter",nt),t.removeEventListener("dragleave",H),t.removeEventListener("drop",lt),t.removeEventListener("keydown",R)}),n.$watch(I),I()}});S("drag-multiple",{priority:16,init(t,r){let e=$(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 d=t.getAttribute("drag"),l={item:d?x(d,e):null,el:t,ctx:e};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(l),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(l),o.split(/\s+/).filter(Boolean).forEach(p=>t.classList.add(p))}};t.addEventListener("click",s),G(()=>{t.removeEventListener("click",s);let c=[...i].find(d=>d.el===t);c&&i.delete(c)});let a=c=>{if(c.key==="Escape"){for(let d of i)o.split(/\s+/).filter(Boolean).forEach(f=>d.el.classList.remove(f));i.clear()}};window.addEventListener("keydown",a),G(()=>window.removeEventListener("keydown",a))}});function Te(){if(typeof window>"u")return null;let t=h.router||{};if(t.mode==="hash")return window.location.hash.slice(1)||"/";let r=(t.base||"/").replace(/\/$/,"");return window.location.pathname.replace(r,"")||"/"}var ge={get baseApiUrl(){return h.baseApiUrl},set baseApiUrl(t){h.baseApiUrl=t},get locale(){return q.locale},set locale(t){q.locale=t},config(t={}){let r={...h.headers},e={...h.cache},n={...h.templates},o={...h.router},i={...h.i18n};Object.assign(h,t),t.headers&&(h.headers={...r,...t.headers}),t.csrf&&(h.csrf=t.csrf),t.cache&&(h.cache={...e,...t.cache}),t.templates&&(h.templates={...n,...t.templates}),t.router&&(h.router={...o,...t.router}),t.i18n&&(h.i18n={...i,...t.i18n},q.locale=t.i18n.defaultLocale||q.locale)},async init(t){if(typeof document>"u")return;if(t=t||document.body,J("Initializing..."),h.i18n.loadPath){let e=new Set([q.locale,h.i18n.fallbackLocale]);await Promise.all([...e].map(n=>Wt(n)))}kt(t);let r=Te();await oe(r),document.querySelector("[route-view]")&&Vt(fe()),B(t),tt&&await tt.init(),J("Initialized."),ie(),h.devtools&&typeof window<"u"&&(window.__NOJS_DEVTOOLS__={stores:Y,config:h,refs:ut,router:tt,filters:Object.keys(N),validators:Object.keys(bt),version:ge.version},J("DevTools enabled \u2014 access via window.__NOJS_DEVTOOLS__"))},directive(t,r){S(t,r)},filter(t,r){N[t]=r},validator(t,r){bt[t]=r},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&&(q.locales=t.locales),t.fallbackLocale&&(h.i18n.fallbackLocale=t.fallbackLocale),t.defaultLocale&&(q._locale=t.defaultLocale),h.i18n.persist&&typeof localStorage<"u")try{let r=localStorage.getItem("nojs-locale");if(r&&q.locales[r]){q._locale=r;return}}catch{}if(t.detectBrowser){let r=typeof navigator<"u"?navigator.language:"en",e=r.split("-")[0];q.locales[r]?q._locale=r:q.locales[e]&&(q._locale=e)}},on(t,r){return ht[t]||(ht[t]=[]),ht[t].push(r),()=>{ht[t]=ht[t].filter(e=>e!==r)}},interceptor(t,r){Et[t]&&Et[t].push(r)},get store(){return Y},get router(){return tt},createContext:O,evaluate:x,findContext:$,processTree:B,resolve:rt,version:"1.2.1"},Ot=ge;window.NoJS=Ot;document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>Ot.init()):Ot.init();})();
|
|
64
64
|
//# sourceMappingURL=no.js.map
|