build: gitignore generated client scripts, rebuild on npm install
Move src/scripts/generated/ to .gitignore — files are deterministic build artefacts and don't belong in version control. Wire build:client into prepare so they're regenerated automatically after npm install. Co-Authored-By: Claude Sonnet 4.5 <[email protected]>
This commit is contained in:
1 parent
0f6670d0e9
commit
0e1592f8c6
2 files changed
-12
No files matched your search
@@ -1,6 +0,0 @@
|
|||||||
// AUTO-GENERATED by scripts/build-client.mjs — do not edit directly.
|
|
||||||
// Source: src/scripts/client/dashboard.ts
|
|
||||||
// Run `npm run build:client` to regenerate.
|
|
||||||
|
|
||||||
export const dashboardScript =
|
|
||||||
'"use strict";(()=>{var y=[],h=[],H=null,D=null,A=null,F=null,b=null,I=null,M=!1,v="title",L="asc",N=new Intl.Collator(void 0,{numeric:!0,sensitivity:"base"});function P(){y=Array.from(document.querySelectorAll(".feed-row")),h=Array.from(document.querySelectorAll(".feed-select")),H=document.getElementById("selected-feed-count"),D=document.getElementById("feed-match-count"),A=document.getElementById("feed-total-count"),F=document.getElementById("bulk-delete-feeds-button"),b=document.getElementById("select-all-feeds"),J(),j(),Z(),R(),E()}function R(){if(!D)return;let e=y.length,t=y.filter(s=>!s.hidden).length,n=(document.getElementById("feed-search")?.value||"").trim();D.textContent=n?"Showing "+t+" of "+e:"Showing "+e}function U(){I&&clearTimeout(I),I=setTimeout(se,120)}function C(e,t){let n="sort"+t.charAt(0).toUpperCase()+t.slice(1);return e.dataset&&e.dataset[n]?e.dataset[n]:""}function _(e){Array.from(e.querySelectorAll("th[data-sort-key]")).forEach(n=>{let s=n.getAttribute("data-sort-key")||"",l=n.querySelector(".sort-indicator"),i=s===v;l&&(l.textContent=i?L==="asc"?"^":"v":""),n.setAttribute("aria-sort",i?L==="asc"?"ascending":"descending":"none")})}function W(e){let t=document.querySelector("table.table-feeds"),n=document.getElementById("feed-table-body");if(!t||!n)return;v===e?L=L==="asc"?"desc":"asc":(v=e,L="asc");let s=L==="asc"?1:-1,l=Array.from(n.querySelectorAll(".feed-row"));l.sort((m,c)=>{let f=C(m,v),u=C(c,v);return s*N.compare(f,u)});let i=document.createDocumentFragment();l.forEach(m=>i.appendChild(m)),n.appendChild(i),_(t)}function j(){let e=document.querySelector("table.table-feeds");e&&(e.querySelectorAll("button.th-button[data-sort-key]").forEach(t=>{t.addEventListener("click",()=>{let n=t.getAttribute("data-sort-key")||"";n&&W(n)})}),_(e))}function J(){let e=document.querySelector("table.table-feeds");if(!e)return;let t="email-to-rss.admin.feedsTable.colWidths",n={title:220,feedId:120,email:160,rss:160,actions:160},s={title:340,feedId:160,email:220,rss:220,actions:200},l=Array.from(e.querySelectorAll("colgroup col")),i={};l.forEach(a=>{let d=a.getAttribute("data-col");d&&(i[d]=a)});try{let a=JSON.parse(localStorage.getItem(t)||"{}");Object.keys(a||{}).forEach(d=>{let o=Number(a[d]);!i[d]||!Number.isFinite(o)||(i[d].style.width=o+"px")})}catch{}let m=()=>{try{let a={};Object.keys(i).forEach(d=>{if(d==="select")return;let o=parseInt(i[d].style.width||"0",10);Number.isFinite(o)&&o>0&&(a[d]=o)}),localStorage.setItem(t,JSON.stringify(a))}catch{}},c=null,f=0,u=0;e.querySelectorAll(".col-resizer").forEach(a=>{a.addEventListener("pointerdown",o=>{o.preventDefault(),o.stopPropagation();let r=a.getAttribute("data-col"),g=r?i[r]:null;if(!r||!g)return;let w=a.closest("th"),T=w?w.getBoundingClientRect().width:parseInt(g.style.width||"0",10)||120;c={key:r,col:g,startX:o.clientX,startWidth:T},document.body.classList.add("is-resizing"),a.setPointerCapture(o.pointerId)}),a.addEventListener("pointermove",o=>{if(!c)return;let r=n[c.key]||120;u=Math.max(r,Math.round(c.startWidth+(o.clientX-c.startX))),!f&&(f=requestAnimationFrame(()=>{c.col.style.width=u+"px",f=0}))});let d=()=>{c&&(c=null,document.body.classList.remove("is-resizing"),m())};a.addEventListener("pointerup",d),a.addEventListener("pointercancel",d),a.addEventListener("dblclick",o=>{o.preventDefault(),o.stopPropagation();let r=a.getAttribute("data-col"),g=r?i[r]:null,w=r?s[r]:null;!r||!g||!w||(g.style.width=w+"px",m())})})}var z="Confirm delete",K="Deleting...",X=4e3;function V(){return new URL(window.location.href).searchParams.get("view")||"list"}function k(e){if(!e)return;e.classList.remove("is-confirming"),e.removeAttribute("data-confirming"),e.disabled=!1;let t=e.dataset.originalLabel||(e.textContent||"").trim()||"Delete";e.innerHTML=t}function G(e,t){if(!e){t&&t();return}let n=e.tagName.toLowerCase()==="li";n&&(e.style.maxHeight=e.getBoundingClientRect().height+"px",e.style.overflow="hidden"),e.classList.add("is-removing"),requestAnimationFrame(()=>{n&&(e.style.maxHeight="0px",e.style.marginTop="0px",e.style.marginBottom="0px",e.style.paddingTop="0px",e.style.paddingBottom="0px")}),window.setTimeout(()=>{e.remove(),t&&t()},240)}async function Y(e,t){let n=await fetch("/admin/feeds/"+encodeURIComponent(e)+"/delete?view="+encodeURIComponent(t),{method:"POST",headers:{Accept:"application/json"},credentials:"same-origin"}),s=await n.json().catch(()=>({}));if(!n.ok){let l=s&&s.error?String(s.error):"Request failed ("+n.status+")";throw new Error(l)}return s}function Q(){y=Array.from(document.querySelectorAll(".feed-row")),h=Array.from(document.querySelectorAll(".feed-select")),A&&(A.textContent=String(y.length)),R(),E()}function Z(){Array.from(document.querySelectorAll(\'button[data-delete-kind="feed"]\')).forEach(t=>{if(t.dataset.deleteReady==="true")return;t.dataset.deleteReady="true";let n=(t.textContent||"").trim()||"Delete";t.dataset.originalLabel=n;let s=!1,l=0,i=!1,m=()=>{s=!0,t.classList.add("is-confirming"),t.setAttribute("data-cLine truncated
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
// AUTO-GENERATED by scripts/build-client.mjs — do not edit directly.
|
|
||||||
// Source: src/scripts/client/emails-page.ts
|
|
||||||
// Run `npm run build:client` to regenerate.
|
|
||||||
|
|
||||||
export const emailsPageScript =
|
|
||||||
'"use strict";(()=>{var b=window.__APP_CONFIG__?.feedId??"",g=[],f=[],R=null,_=null,A=null,v=null,C=null,k=null,S=!1,T="receivedAt",p="desc",O=new Intl.Collator(void 0,{numeric:!0,sensitivity:"base"});function q(){g=Array.from(document.querySelectorAll(".email-row")),f=Array.from(document.querySelectorAll(".email-select")),R=document.getElementById("selected-email-count"),_=document.getElementById("email-match-count"),A=document.getElementById("email-total-count"),v=document.getElementById("bulk-delete-emails-button"),C=document.getElementById("select-all-emails"),K(),P(),J(),I(),w()}function I(){if(!_)return;let e=g.length,t=g.filter(i=>!i.hidden).length,n=(document.getElementById("email-search")?.value||"").trim();_.textContent=n?"Showing "+t+" of "+e:"Showing "+e}function x(){k&&clearTimeout(k),k=setTimeout(Y,120)}function H(e,t){let n="sort"+t.charAt(0).toUpperCase()+t.slice(1);return e.dataset&&e.dataset[n]?e.dataset[n]:""}function B(e){Array.from(e.querySelectorAll("th[data-sort-key]")).forEach(t=>{let n=t.getAttribute("data-sort-key")||"",i=t.querySelector(".sort-indicator"),u=n===T;i&&(i.textContent=u?p==="asc"?"^":"v":""),t.setAttribute("aria-sort",u?p==="asc"?"ascending":"descending":"none")})}function N(e){let t=document.querySelector("table.table-emails"),n=t?t.querySelector("tbody"):null;if(!t||!n)return;T===e?p=p==="asc"?"desc":"asc":(T=e,p=e==="receivedAt"?"desc":"asc");let i=p==="asc"?1:-1,u=Array.from(n.querySelectorAll(".email-row"));u.sort((l,r)=>i*O.compare(H(l,T),H(r,T)));let s=document.createDocumentFragment();u.forEach(l=>s.appendChild(l)),n.appendChild(s),B(t)}function P(){let e=document.querySelector("table.table-emails");e&&(e.querySelectorAll("button.th-button[data-sort-key]").forEach(t=>{t.addEventListener("click",()=>{let n=t.getAttribute("data-sort-key");n&&N(n)})}),B(e))}function K(){let e=document.querySelector("table.table-emails");if(!e)return;let t="email-to-rss.admin.emailsTable.colWidths",n={subject:240,receivedAt:180,actions:160},i={subject:520,receivedAt:220,actions:200},u=Array.from(e.querySelectorAll("colgroup col")),s={};u.forEach(o=>{let a=o.getAttribute("data-col");a&&(s[a]=o)});try{let o=JSON.parse(localStorage.getItem(t)||"{}");Object.keys(o||{}).forEach(a=>{let c=Number(o[a]);s[a]&&Number.isFinite(c)&&(s[a].style.width=c+"px")})}catch{}let l=()=>{try{let o={};Object.keys(s).forEach(a=>{if(a==="select")return;let c=parseInt(s[a].style.width||"0",10);Number.isFinite(c)&&c>0&&(o[a]=c)}),localStorage.setItem(t,JSON.stringify(o))}catch{}},r=null,E=0,d=0;e.querySelectorAll(".col-resizer").forEach(o=>{o.addEventListener("pointerdown",c=>{c.preventDefault(),c.stopPropagation();let m=o.getAttribute("data-col"),h=m?s[m]:null;if(!m||!h)return;let y=o.closest("th"),D=y?y.getBoundingClientRect().width:parseInt(h.style.width||"0",10)||200;r={key:m,col:h,startX:c.clientX,startWidth:D},document.body.classList.add("is-resizing"),o.setPointerCapture(c.pointerId)}),o.addEventListener("pointermove",c=>{if(!r)return;let m=n[r.key]||180;d=Math.max(m,Math.round(r.startWidth+(c.clientX-r.startX))),!E&&(E=requestAnimationFrame(()=>{r.col.style.width=d+"px",E=0}))});let a=()=>{r&&(r=null,document.body.classList.remove("is-resizing"),l())};o.addEventListener("pointerup",a),o.addEventListener("pointercancel",a),o.addEventListener("dblclick",c=>{c.preventDefault(),c.stopPropagation();let m=o.getAttribute("data-col"),h=m?s[m]:null,y=m?i[m]:null;!m||!h||!y||(h.style.width=y+"px",l())})})}var F="Confirm delete",U=4e3;function M(e){e&&(e.classList.remove("is-confirming"),e.removeAttribute("data-confirming"),e.disabled=!1,e.textContent=e.dataset.originalLabel||"Delete")}function L(e,t,n){if(e){if(t){e.dataset.originalLabel||(e.dataset.originalLabel=(e.textContent||"").trim()),e.classList.add("is-loading"),e.disabled=!0,e.textContent="";let i=document.createElement("span");i.className="spinner",i.setAttribute("aria-hidden","true"),e.appendChild(i),e.appendChild(document.createTextNode(" "+(n||"Working...")));return}e.classList.remove("is-loading"),e.textContent=e.dataset.originalLabel||(e.textContent||"").trim()}}function W(e,t){if(!e){t&&t();return}e.classList.add("is-removing"),window.setTimeout(()=>{e.remove(),t&&t()},240)}async function j(e,t){let n=await fetch("/admin/emails/"+encodeURIComponent(e)+"/delete?feedId="+encodeURIComponent(t),{method:"POST",headers:{Accept:"application/json"},credentials:"same-origin"}),i=await n.json().catch(()=>({}));if(!n.ok)throw new Error(i&&i.error?String(i.error):"Request failed ("+n.status+")");return i}function z(){g=Array.from(document.querySelectorAll(".email-row")),f=Array.from(document.querySelectorAll(".email-select")),A&&(A.textContent=String(g.length)),I(),w()}function J(){Array.from(document.querySelectorAll(\'button[data-delete-kind="email"]\')).forEach(e=>{if(e.dataset.deleteReady==="true")return;e.dataset.deleteReady="true",e.dataset.originalLabel=(e.textContent||"").trim()||"Delete";let t=!1,n=0,i=!1,u=()=>{t=!0,e.classList.add("is-confirLine truncated
|
|
||||||
Reference in new issue
Block a user