PageSourceSearch

https://www.towerphs.com/_next/static/chunks/pages/upload-825468887f312d42.js

js towerphs.com collected 2026-10-02 19:08:56 UTC 59,246 bytes, 1 lines download raw bytes

1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1863],{8101:function(e,t,a){(window.__NEXT_P=window.__NEXT_P||[]).push(["/upload",function(){return a(4525)}])},3852:function(e,t,a){"use strict";a.d(t,{Z:function(){return c}});var r=a(5893),l=a(645),n=a.n(l),o=a(1664),i=a.n(o),s=a(8997),d=a(1827);function c(e){let{spreadSrc:t,pagePreviewUrls:a,showDownload:l=!0}=e,{pdfUrl:o,pageCount:c}=(0,s.Xl)(t),u=a&&a.length>0?a:Array.from({length:c},(e,a)=>(0,s.N3)(t,a+1)),p=u.length>0;return(0,r.jsxs)("div",{className:"jsx-2266a1313b9d4e7a spread-gallery",children:[(0,r.jsx)(n(),{id:"2266a1313b9d4e7a",children:".spread-gallery.jsx-2266a1313b9d4e7a{width:100%}.spread-gallery-header.jsx-2266a1313b9d4e7a{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-moz-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;-moz-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;gap:1rem;margin-bottom:1rem;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}.download-link.jsx-2266a1313b9d4e7a{border:1px solid var(--accent-dark);padding:.45rem .8rem;text-transform:uppercase;letter-spacing:.06em;font-size:.9rem}.page-list.jsx-2266a1313b9d4e7a{display:grid;gap:1.5rem}.page-card.jsx-2266a1313b9d4e7a{background:#f7f7f7;border:1px solid#ddd;padding:1rem}.page-label.jsx-2266a1313b9d4e7a{display:inline-block;margin-bottom:.75rem;font-size:.8rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#43516d}.page-card.jsx-2266a1313b9d4e7a img.jsx-2266a1313b9d4e7a{display:block;width:100%;height:auto;-webkit-box-shadow:0 12px 24px rgba(0,0,0,.12);-moz-box-shadow:0 12px 24px rgba(0,0,0,.12);box-shadow:0 12px 24px rgba(0,0,0,.12);background:white}.empty-state.jsx-2266a1313b9d4e7a{border:1px solid#ddd;background:#fafafa;padding:1rem;color:#555}"}),(0,r.jsx)("div",{className:"jsx-2266a1313b9d4e7a spread-gallery-header",children:l&&o?(0,r.jsx)(i(),{href:o,target:"_blank",rel:"noreferrer",className:"download-l
1ink",children:"Open PDF"}):(0,r.jsx)("span",{className:"jsx-2266a1313b9d4e7a"})}),p?(0,r.jsx)("div",{className:"jsx-2266a1313b9d4e7a page-list",children:u.map((e,t)=>(0,r.jsxs)("div",{className:"jsx-2266a1313b9d4e7a page-card",children:[(0,r.jsxs)("span",{className:"jsx-2266a1313b9d4e7a page-label",children:["Page ",t+1]}),(0,r.jsx)("img",{src:e,alt:"Spread page ".concat(t+1),className:"jsx-2266a1313b9d4e7a"})]},"".concat(e,"-").concat(t)))}):o?(0,r.jsx)(d.Z,{pdfUrl:o}):(0,r.jsx)("div",{className:"jsx-2266a1313b9d4e7a empty-state",children:"Page previews are not available for this spread yet. Use the PDF link above."})]})}},4525:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return ea}});var r=a(5893),l=a(9008),n=a.n(l),o=a(7294),i=a(1664),s=a.n(i),d=a(879),c=a(8842),u=a(9883),p=a(1894),g=a.n(p),m=a(6307),h=a(5152),f=a.n(h),x=a(3852),b=a(645),v=a.n(b);function w(e,t,a){return Math.max(t,Math.min(a,e))}function y(e,t,a){return Array.from({length:e},(e,r)=>Array.from({length:t},(e,t)=>{var l,n,o;let i=null==a?void 0:null===(l=a[r])||void 0===l?void 0:l[t];return{blocked:null!==(n=null==i?void 0:i.blocked)&&void 0!==n&&n,letter:(null==i?void 0:i.blocked)?"":null!==(o=null==i?void 0:i.letter)&&void 0!==o?o:""}}))}function j(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:15,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:15;return{title:"",author:"",date:new Date().toISOString().slice(0,10),rows:e,cols:t,grid:y(e,t),clueTexts:{},selectedCell:{row:0,col:0}}}function k(e){return!e||e.blocked}function N(e){let t=new Map,a=1;for(let n=0;n<e.length;n++)for(let o=0;o<e[n].length;o++){var r,l;if(e[n][o].blocked)continue;let i=k(e[n][o-1])&&!k(e[n][o+1]),s=k(null===(r=e[n-1])||void 0===r?void 0:r[o])&&!k(null===(l=e[n+1])||void 0===l?void 0:l[o]);(i||s)&&(t.set("".concat(n,":").concat(o),String(a)),a++)}return t}function C(e,t){var a,r,l,n,o,i;let s=[],d=N(e),c=e.length,u=null!==(r=null===(a=e[0])||void 0===a?void 0:a.length)&&void 0!==r?r:0;for(let a=0;a<c;a++)for(let r=0;r<u;r++){if(e[a][r].blocked)continue;let p=d.get("".concat(a,":").concat(r));if(p){if(k(e[a][r-1])&&!k(e[a][r+1])){let l="",n=r;for(;n<u&&!e[a][n].blocked;)l+=e[a][n].letter,n++;s.push({key:"across-".concat(a,"-").concat(r),num:p,direction:"across",row:a,col:r,answer:l,clue:null!==(o=t["across-".concat(a,"-").concat(r)])&&void 0!==o?o:""})}if(k(null===(l=e[a-1])||void 0===l?void 0:l[r])&&!k(null===(n=e[a+1])||void 0===n?void 0:n[r])){let l="",n=a;for(;n<c&&!e[n][r].blocked;)l+=e[n][r].letter,n++;s.push({key:"down-".concat(a,"-").concat(r),num:p,direction:"down",row:a,col:r,answer:l,clue:null!==(i=t["down-".concat(a,"-").concat(r)])&&void 0!==i?i:""})}}}return s}function D(e){let t=e.title.trim(),a=e.author.trim();if(!t)return{ok:!1,error:"Upload failed: Crossword title is required."};if(!a)return{ok:!1,error:"Upload failed: Crossword author is required."};if(!e.date)return{ok:!1,error:"Upload failed: Crossword date is required."};let r=C(e.grid,e.clueTexts);if(0===r.length)return{ok:!1,error:"Upload failed: Build at least one crossword entry first."};let l={across:{},down:{}};for(let e of r){if(!e.answer)return{ok:!1,error:"Upload failed: Fill every letter for ".concat(e.num," ").concat(e.direction,".")};if(!/^[A-Z]+$/.test(e.answer))return{ok:!1,error:"Upload failed: ".concat(e.num," ").concat(e.direction," contains invalid letters.")};if(!e.clue.trim())return{ok:!1,error:"Upload failed: Add clue text for ".concat(e.num," ").concat(e.direction,".")};l[e.direction][e.num]={clue:e.clue.trim(),answer:e.answer,row:e.row,col:e.col}}return{ok:!0,value:{title:t,author:a,date:e.date,clues:l}}}function _(e){let{value:t,onChange:a}=e,l=(0,o.useMemo)(()=>C(t.grid,t.clueTexts),[t.grid,t.clueTexts]),n=(0,o.useMemo)(()=>N(t.grid),[t.grid]),i=(0,o.useMemo)(()=>(function(e,t){let a=Math.max(e,t);return a<=5?5.2:a<=7?4.8:a<=9?4.3:a<=11?3.8:a<=13?3.4:a<=15?3:a<=17?2.7:a<=19?2.35:2.05})(t.rows,t.cols),[t.cols,t.rows]),s=(0,o.useMemo)(()=>Math.max(1.9,.74*i),[i]),d=(0,o.useRef)(null),c=(0,o.useCallback)(e=>{a(e)},[a]),u=(0,o.useCallback)(()=>{var e;null===(e=d.current)||void 0===e||e.focus()},[]);function p(e,t){c(a=>{let r=w(e,3,25),l=w(t,3,25),n=a.selectedCell?{row:w(a.selectedCell.row,0,r-1),col:w(a.selectedCell.col,0,l-1)}:{row:0,col:0};return{...a,rows:r,cols:l,grid:y(r,l,a.grid),selectedCell:n}})}(0,o.useEffect)(()=>{u()},[u]);let g=(0,o.useCallback)((e,t)=>{c(a=>({...a,selectedCell:{row:e,col:t}})),u()},[u,c]),m=(0,o.useCallback)(e=>{if(!t.selectedCell)return;let{row:a,col:r}=t.selectedCell;c(t=>{let l=t.grid.map((t,l)=>t.map((t,n)=>l!==a||n!==r?t:e(t)));return{...t,grid:l}})},[c,t.selectedCell]),h=(0,o.useCallback)((e,t)=>{c(a=>({...a,selectedCell:{row:e,col:t},grid:a.grid.map((a,r)=>
1a.map((a,l)=>r!==e||l!==t?a:{blocked:!a.blocked,letter:a.blocked?a.letter:""}))})),u()},[u,c]),f=(0,o.useCallback)(()=>{m(e=>({blocked:!e.blocked,letter:e.blocked?e.letter:""}))},[m]),x=(0,o.useCallback)(()=>{m(e=>({...e,blocked:!1,letter:""}))},[m]),b=(0,o.useCallback)((e,a)=>{t.selectedCell&&g(w(t.selectedCell.row+e,0,t.rows-1),w(t.selectedCell.col+a,0,t.cols-1))},[g,t.cols,t.rows,t.selectedCell]),j=(0,o.useMemo)(()=>({"--cell-size":"".concat(i,"rem"),"--cell-size-mobile":"".concat(s,"rem"),gridTemplateColumns:"repeat(".concat(t.cols,", var(--cell-size, ").concat(i,"rem))")}),[i,s,t.cols]);return(0,o.useEffect)(()=>{function e(e){if(t.selectedCell&&!function(e){if(!(e instanceof HTMLElement))return!1;let t=e.tagName.toLowerCase();return"input"===t||"textarea"===t||e.isContentEditable}(e.target)){if("ArrowUp"===e.key){e.preventDefault(),b(-1,0);return}if("ArrowDown"===e.key){e.preventDefault(),b(1,0);return}if("ArrowLeft"===e.key){e.preventDefault(),b(0,-1);return}if("ArrowRight"===e.key){e.preventDefault(),b(0,1);return}if("Backspace"===e.key||"Delete"===e.key){e.preventDefault(),x();return}if("#"===e.key){e.preventDefault(),f();return}if(/^[a-z]$/i.test(e.key)){e.preventDefault();let t=e.key.toUpperCase();m(e=>({blocked:!1,letter:t})),b(0,1)}}}return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[x,b,f,m,t.selectedCell]),(0,r.jsxs)("div",{className:"jsx-c129d7def96960e9 crossword-builder",children:[(0,r.jsx)(v(),{id:"c129d7def96960e9",children:".crossword-builder.jsx-c129d7def96960e9{display:grid;gap:1.25rem}.editor-layout.jsx-c129d7def96960e9{display:grid;gap:1.35rem;-webkit-box-align:start;-webkit-align-items:start;-moz-box-align:start;-ms-flex-align:start;align-items:start}.top-controls.jsx-c129d7def96960e9{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;gap:1rem;-webkit-box-align:end;-webkit-align-items:end;-moz-box-align:end;-ms-flex-align:end;align-items:end}.field.jsx-c129d7def96960e9{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-moz-box-orient:vertical;-moz-box-direction:normal;-ms-flex-direction:column;flex-direction:column;gap:.35rem}.field.jsx-c129d7def96960e9 input.jsx-c129d7def96960e9{min-width:11rem}.grid-controls.jsx-c129d7def96960e9{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;gap:.75rem;-webkit-box-align:center;-webkit-align-items:center;-moz-box-align:center;-ms-flex-align:center;align-items:center}.grid-controls.jsx-c129d7def96960e9 button.jsx-c129d7def96960e9{top:0}.board-shell.jsx-c129d7def96960e9{border:1px solid#d8d8d8;padding:1.15rem;background:#fcfcfc;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;max-width:100%}.board-toolbar.jsx-c129d7def96960e9{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;gap:.6rem;-webkit-box-align:center;-webkit-align-items:center;-moz-box-align:center;-ms-flex-align:center;align-items:center;margin-bottom:.85rem}.board-toolbar.jsx-c129d7def96960e9 p.jsx-c129d7def96960e9{margin:0;color:#5f5f5f}.board-wrap.jsx-c129d7def96960e9{overflow:auto;padding-bottom:.25rem}.board.jsx-c129d7def96960e9{display:grid;gap:2px;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;outline:none}.cell.jsx-c129d7def96960e9{position:relative;width:var(--cell-size);height:var(--cell-size);border:1px solid#9b9b9b;background:white;padding:0;top:0;color:black;font-family:monospace;font-size:1.95rem;font-weight:700}.cell.blocked.jsx-c129d7def96960e9{background:#111;border-color:#111}.cell.selected.jsx-c129d7def96960e9{outline:2px solid#5e96e5;outline-offset:1px}.cell-number.jsx-c129d7def96960e9{position:absolute;top:3px;left:4px;font-size:.76rem;font-weight:500}.cell-letter.jsx-c129d7def96960e9{display:-webkit-inline-box;display:-webkit-inline-flex;display:-moz-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-webkit-align-items:center;-moz-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;
1-webkit-justify-content:center;-moz-box-pack:center;-ms-flex-pack:center;justify-content:center;width:100%;height:100%;color:#111;opacity:1}.clues-grid.jsx-c129d7def96960e9{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;width:100%}.clue-group.jsx-c129d7def96960e9{border:1px solid#d8d8d8;padding:.9rem;background:white}.clue-list.jsx-c129d7def96960e9{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-moz-box-orient:vertical;-moz-box-direction:normal;-ms-flex-direction:column;flex-direction:column;gap:.7rem}.clue-row.jsx-c129d7def96960e9{display:grid;grid-template-columns:4rem 1fr;gap:.7rem;-webkit-box-align:start;-webkit-align-items:start;-moz-box-align:start;-ms-flex-align:start;align-items:start}.clue-row.jsx-c129d7def96960e9 label.jsx-c129d7def96960e9{color:#555;font-size:.9rem;padding-top:.45rem}.meta-line.jsx-c129d7def96960e9{font-size:.82rem;color:#6d6d6d}@media(max-width:900px){.clues-grid.jsx-c129d7def96960e9{grid-template-columns:1fr}.board.jsx-c129d7def96960e9{--cell-size:var(--cell-size-mobile, 2.95rem)}.cell.jsx-c129d7def96960e9{font-size:1.3rem}}"}),(0,r.jsxs)("div",{className:"jsx-c129d7def96960e9 top-controls",children:[(0,r.jsxs)("label",{className:"jsx-c129d7def96960e9 field",children:[(0,r.jsx)("strong",{className:"jsx-c129d7def96960e9",children:"Crossword Title"}),(0,r.jsx)("input",{value:t.title,onChange:e=>c(t=>({...t,title:e.target.value})),className:"jsx-c129d7def96960e9"})]}),(0,r.jsxs)("label",{className:"jsx-c129d7def96960e9 field",children:[(0,r.jsx)("strong",{className:"jsx-c129d7def96960e9",children:"Crossword Author"}),(0,r.jsx)("input",{value:t.author,onChange:e=>c(t=>({...t,author:e.target.value})),className:"jsx-c129d7def96960e9"})]}),(0,r.jsxs)("label",{className:"jsx-c129d7def96960e9 field",children:[(0,r.jsx)("strong",{className:"jsx-c129d7def96960e9",children:"Crossword Date"}),(0,r.jsx)("input",{type:"date",value:t.date,onChange:e=>c(t=>({...t,date:e.target.value})),className:"jsx-c129d7def96960e9"})]}),(0,r.jsxs)("div",{className:"jsx-c129d7def96960e9 grid-controls",children:[(0,r.jsxs)("label",{className:"jsx-c129d7def96960e9 field",children:[(0,r.jsx)("strong",{className:"jsx-c129d7def96960e9",children:"Rows"}),(0,r.jsx)("input",{type:"number",min:3,max:25,value:t.rows,onChange:e=>p(Number(e.target.value),t.cols),className:"jsx-c129d7def96960e9"})]}),(0,r.jsxs)("label",{className:"jsx-c129d7def96960e9 field",children:[(0,r.jsx)("strong",{className:"jsx-c129d7def96960e9",children:"Cols"}),(0,r.jsx)("input",{type:"number",min:3,max:25,value:t.cols,onChange:e=>p(t.rows,Number(e.target.value)),className:"jsx-c129d7def96960e9"})]})]})]}),(0,r.jsxs)("div",{className:"jsx-c129d7def96960e9 editor-layout",children:[(0,r.jsxs)("div",{className:"jsx-c129d7def96960e9 board-shell",children:[(0,r.jsxs)("div",{className:"jsx-c129d7def96960e9 board-toolbar",children:[(0,r.jsx)("button",{type:"button",onClick:f,className:"jsx-c129d7def96960e9",children:"Toggle Black Square"}),(0,r.jsx)("button",{type:"button",onClick:x,className:"jsx-c129d7def96960e9",children:"Clear Cell"}),(0,r.jsx)("p",{className:"jsx-c129d7def96960e9",children:"Click any square and start typing. Use arrow keys to move, or `#` to make a black square."})]}),(0,r.jsx)("div",{className:"jsx-c129d7def96960e9 board-wrap",children:(0,r.jsx)("div",{ref:d,tabIndex:0,onKeyDown:function(e){if(t.selectedCell){if("ArrowUp"===e.key){e.preventDefault(),b(-1,0);return}if("ArrowDown"===e.key){e.preventDefault(),b(1,0);return}if("ArrowLeft"===e.key){e.preventDefault(),b(0,-1);return}if("ArrowRight"===e.key){e.preventDefault(),b(0,1);return}if("Backspace"===e.key||"Delete"===e.key){e.preventDefault(),x();return}if("#"===e.key){e.preventDefault(),f();return}if(/^[a-z]$/i.test(e.key)){e.preventDefault();let t=e.key.toUpperCase();m(e=>({blocked:!1,letter:t})),b(0,1)}}},style:j,className:"jsx-c129d7def96960e9 board",children:t.grid.map((e,a)=>e.map((e,l)=>{var o,i;let s=n.get("".concat(a,":").concat(l)),d=(null===(o=t.selectedCell)||void 0===o?void 0:o.row)===a&&(null===(i=t.selectedCell)||void 0===i?void 0:i.col)===l;return(0,r.jsxs)("button",{type:"button",onPointerDown:e=>{e.preventDefault(),g(a,l)},onDoubleClick:()=>{h(a,l)},className:"jsx-c129d7def96960e9 "+"cell ".concat(e.blocked?"blocked":""," ").concat(d?"selected":""),children:[s&&!e.blocked?(0,r.jsx)("span",{className:"jsx-c129d7def96960e9 cell-number",children:s}):null,e.blocked?null:(0,r.jsx)("span",{className:"jsx-c129d7def96960e9 cell-letter",children:e.letter})]},"".concat(a,"-").concat(l))}))})})]}),(0,r.jsx)("div",{className:"jsx-c129d7def96960e9 clues-grid",children:["across","down"].map(e=>(0,r.jsxs)("div",{className:"jsx-c129d7def96960e9 clue-group",children:[(0,r.jsx)("h3",{className:"jsx-c129d7def96960e9",children:"across"===e?"Across":"Down"}),(0,r.jsx)("div",{className:"jsx-c129d7def96960e9 clue-list",children:l.filter(t=>t.direction===e).map(e=>(0,r.jsxs)("div",{className:"jsx-c129d7def96960e9 clue-row",children:[(0,r.jsxs)("label",{htmlFor:e.key,className:"jsx-c129d7def96960e9",children:[(0,r.jsx)("strong",{className:"jsx-c129d7def96960e9",children:e.num}),(0,r.jsxs)("div",{className:"jsx-c129d7def96960e9 meta-line",children:[e.answer.length," letters"]})]}),(0,r.jsxs)("div",{className:"jsx-c129d7def96960e9",children:[(0,r.jsx)("input",{id:e.key,value:e.clue,onChange:t=>(function(e,t){let a=t.target.value;c(t=>({...t,clueTexts:{...t.clueTexts,[e]:a}}))})(e.key,t),placeholder:"".concat(e.answer||"(fill answer)"," clue"),className:"jsx-c129d7def96960e9"}),(0,r.jsx)("div",{className:"jsx-c129d7def96960e9 meta-line",children:e.answer||"Fill the answer in the grid first."})]})]},e.key))})]},e))})]})]})}var S=a(8997),P=a(2155);function E(e,t,a){return new Promise((r,l)=>{e.toBlob(e=>{e?r(e):l(Error("Could not convert this Vanguard spread page into an image."))},t,a)})}function U(e,t){let a=Math.max(e.width,e.height);if(a<=t)return e;let r=t/a,l=document.createElement("canvas");l.width=Math.max(1,Math.round(e.width*r)),l.height=Math.max(1,Math.round(e.height*r));let n=l.getContext("2d");if(!n)throw Error("Could not resize this Vanguard spread page.");return n.drawImage(e,0,0,l.width,l.height),l}async function F(e,t){let a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:3e6,r=U(e,2200),l=await E(r,"image/webp",.94),n=[.94,.9,.86,.82,.76];for(let e=0;e<5;e++){for(let e of n){let n=await E(r,"image/webp",e);if(l=n,n.size<=a)return{previewUrl:URL.createObjectURL(n),file:new File([n],"".concat(t,".webp"),{type:"image/webp",lastModified:Date.now()})}}r=U(r,Math.max(1200,Math.round(.9*Math.max(r.width,r.height))))}return{previewUrl:URL.createObjectURL(l),file:new File([l],"".concat(t,".webp"),{type:"image/webp",lastModified:Date.now()})}}async function T(e){let t=URL.createObjectURL(e),a=new Image;return a.decoding="async",await new Promise((e,r)=>{a.onload=()=>e(),a.onerror=()=>r(Error("Could not decode this image in the browser.")),a.src=t}),{image:a,release:()=>URL.revokeObjectURL(t)}}async function I(e,t){var a,r;if(e.name.toLowerCase().endsWith(".gif"))return{file:e,compressed:!1};let l=null!==(a=null==t?void 0:t.maxDimension)&&void 0!==a?a:2400,n=null!==(r=null==t?void 0:t.targetBytes)&&void 0!==r?r:14e5,{image:o,release:i}=await T(e);
1try{let t=Math.max(o.naturalWidth||o.width,o.naturalHeight||o.height),a=t>l?l/t:1,r=document.createElement("canvas");r.width=Math.max(1,Math.round((o.naturalWidth||o.width)*a)),r.height=Math.max(1,Math.round((o.naturalHeight||o.height)*a));let i=r.getContext("2d");if(!i)throw Error("Could not create a canvas for image upload preparation.");i.drawImage(o,0,0,r.width,r.height);let s=await F(r,(e.name.replace(/\.[^.]+$/,"")||"upload").replace(/[^a-z0-9-_]+/gi,"-"),n);if(s.file.size>=.98*e.size&&e.size<=n)return URL.revokeObjectURL(s.previewUrl),{file:e,compressed:!1};return URL.revokeObjectURL(s.previewUrl),{file:s.file,compressed:!0}}finally{i()}}function M(e,t){var a,r,l;let n=e.parentElement,o=null!==(l=null===(r=e.files)||void 0===r?void 0:null===(a=r[0])||void 0===a?void 0:a.name)&&void 0!==l?l:"",i=null==n?void 0:n.querySelector("span.img-name");i&&(i.textContent=o),n&&(o?n.classList.add(t):n.classList.remove(t))}async function z(e){let t=(await (0,P.A)()).getDocument({data:await e.arrayBuffer(),disableWorker:!0}),a=await t.promise,r=[];try{for(let t=1;t<=a.numPages;t++){let l=await a.getPage(t),n=l.getViewport({scale:1.2}),o=document.createElement("canvas"),i=o.getContext("2d");if(!i)throw Error("Could not create a canvas context for this PDF preview.");o.width=Math.ceil(n.width),o.height=Math.ceil(n.height),await l.render({canvasContext:i,viewport:n}).promise,l.cleanup();let s=await F(o,"".concat(e.name.replace(/\.pdf$/i,""),"-preview-").concat(t),8e5);r.push(s.previewUrl)}return{previewUrls:r,pageCount:a.numPages}}finally{await t.destroy()}}async function L(e){let t=new FormData;t.append("img",e);let a=await fetch("/api/upload/convert-image",{method:"POST",body:t});if(!a.ok){let e="Could not convert HEIC image.";try{let t=await a.json();e=(null==t?void 0:t.message)||e}catch(e){}throw Error(e)}return new File([await a.blob()],e.name.replace(/\.(heic|heif)$/i,".png"),{type:"image/png",lastModified:Date.now()})}async function A(e,t,a){let{pdfUrl:r}=(0,S.Xl)(e),l=await fetch(r||e);if(!l.ok)throw Error("Could not load this Vanguard spread PDF.");let n=(await (0,P.A)()).getDocument({data:await l.arrayBuffer(),disableWorker:!0}),o=await n.promise;try{if(t>o.numPages)throw Error("Page ".concat(t," is not available in this PDF."));let e=await o.getPage(t),r=e.getViewport({scale:1.25}),l=document.createElement("canvas"),n=l.getContext("2d");if(!n)throw Error("Could not create a canvas context for this Vanguard page preview.");return l.width=Math.ceil(r.width),l.height=Math.ceil(r.height),await e.render({canvasContext:n,viewport:r}).promise,e.cleanup(),await F(l,a)}finally{await n.destroy()}}async function O(e){try{return await e.json()}catch(e){return{}}}async function R(e,t){let a=await fetch("/api/load/articles-by-issue",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({month:e,year:t})}),r=await O(a);if(!a.ok)throw Error(!Array.isArray(r)&&(null==r?void 0:r.message)?r.message:"Could not load uploaded articles.");return Array.isArray(r)?r:[]}async function B(e){let t=await fetch("/api/load/article-by-id",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:e})}),a=await O(t);if(!t.ok)throw Error((null==a?void 0:a.message)||"Could not load this article.");return a}async function J(e,t){let a=await fetch("/api/load/spread-by-issue",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({category:"vanguard",month:e,year:t})}),r=await O(a);if(!a.ok)throw Error(r&&"object"==typeof r&&"message"in r?r.message:"Could not load the Vanguard spread for this issue.");return r&&"object"==typeof r&&"id"in r?r:null}async function V(e){let t=await fetch("/api/upload/delete-draft",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:e})}),a=await O(t);if(!t.ok)throw Error((null==a?void 0:a.message)||"Failed to delete draft.");return(null==a?void 0:a.message)||"Draft deleted."}async function H(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;try{let a;let r=await fetch("/api/upload",{method:"POST",body:e});if((r.headers.get("content-type")||"").includes("application/json"))a=await O(r);else{let e=await r.text();if(e.toLowerCase().includes("entity too large"))throw Error("Image is too large to upload. Try compressing or using a smaller image.");throw console.error("Unexpected text response:",e),Error(e)}if(!r.ok&&t>0)return await H(e,t-1);return{response:r,data:a}}catch(a){if(t>0)return await H(e,t-1);throw a}}async function G(e,t,a){let r=await fetch(t,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({filename:e.name})}),l=await O(r);if(!r.ok)throw Error((null==l?void 0:l.message)||a);let n=new FormData;n.append("cacheControl","3600"),n.append("",e);let o=await fetch(String(l.signedUrl||""),{method:"PUT",headers:{"x-upsert":"true"},body:n});if(!o.ok)throw Error(await o.text().catch(()=>"")||a);return{path:String(l.path||""),publicUrl:String(l.publicUrl||""),sizeBytes:e.size}}async function W(e){return await G(e,"/api/upload/spread-signed-url","Could not upload the Vanguard PDF to storage.")}async function Y(e){return await G(e,"/api/upload/image-signed-url","Could not upload the article image to storage.")}let q=["","January","February","March","April","May","June","July","August","September","October","November","December"],Z=[".jpg",".jpeg",".png",".gif",".webp",".heic",".heif"],X=[".heic",".heif"];function K(e){return"random-musings"===e?"articles":e}function $(e){if(null==e)return"";let t=["B","KB","MB","GB"],a=e,r=0;for(;a>=1024&&r<t.length-1;)a/=1024,r++;return"".concat(Math.round(10*a)/10," ").concat(t[r])}let Q=f()(()=>a.e(7649).then(a.bind(a,7649)),{loadableGenerated:{webpack:()=>[7649]},ssr:!1}),ee=f()(()=>a.e(3420).then(a.bind(a,3420)),{loadableGenerated:{webpack:()=>[3420]},ssr:!1});function et(e){let{uploadStatus:t,isSaving:a}=e;return(0,r.jsxs)("div",{className:g()["save-indicator"],children:[(0,r.jsx)("span",{className:"".concat(g()["upload-status"]," ").concat(g()[t]),children:a?(0,r.jsxs)(r.Fragment,{children:["Saving...",(0,r.jsx)("span",{className:g().spinner})]}):"Saved!"}),(0,r.jsx)("br",{}),(0,r.jsx)("span",{className:g()["save-info"],children:"(Saves are stored for a maximum of 3 days)"})]})}function ea(){var e,t,a,l,i,p,h,f,b,v,k,N,C,P,E,U,F,T,O,G,ea,er,el,en;let[eo,ei]=(0,o.useState)(!1),[es,ed]=(0,o.useState)({}),[ec,eu]=(0,o.useState)(""),[ep,eg]=(0,o.useState)(""),[em,eh]=(0,o.useState)(""),[ef,ex]=(0,o.useState)(0),[eb,ev]=(0,o.useState)([]),[ew,ey]=(0,o.useState)(null),[ej,ek]=(0,o.useState)(null),[eN,eC]=(0,o.useState)([]),[eD,e_]=(0,o.useState)(!1),[eS,eP]=(0,o.useState)(null),[eE,eU]=(0,o.useState)(!1),[eF,eT]=(0,o.useState)(null),[eI,eM]=(0,o.useState)(void 0),[ez,eL]=(0,o.useState)(!1),[eA,eO]=(0,o.useState)(""),[eR,eB]=(0,o.useState)(""),[eJ,eV]=(0,o.useState)(()=>j()),eH=null!==(k=es.month)&&void 0!==k?k:new Date().getMonth()+1,eG=null!==(N=es.year)&&void 0!==N?N:new Date().getFullYear(),eW=ec?eN.filter(e=>e.category===ec&&("vanguard"!==ec||!es.subcategory||"spreads"===es.subcategory||("articles"===es.subcategory?"articles"===e.subcategory||"random-musings"===e.subcategory:e.subcategory===es.subcategory))):eN,eY=(0,o.useRef)(null),eq=(0,o.useRef)([]),eZ=(0,o.useRef)(null),[eX,eK]=(0,o.useState)(!1),[e$,eQ]=(0,o.useState)(null),e0="vanguard"===ec&&"spreads"===(es.subcategory||"spreads"),e9="vanguard"===ec&&"articles"===es.subcategory,e1="crossword"===ec,e6=!!(ec&&"multimedia"!==ec&&"crossword"!==ec&&!e0),e2=e9&&!es.img&&null!==(0,S.YA)(null!==(C=es.imgData)&&void 0!==C?C:void 0),e7=!!(es.img||es.imgData&&!e2),e3=e9&&es.vanguardPageNumber&&es.vanguardPageNumber>0?es.vanguardPageNumber:null,e5=eI?(0,S.Xl)(eI.src).pageCount:0,e4=e3&&!e7&&eI&&(!e5||e3<=e5)?e5>0?(0,S.N3)(eI.src,e3):eA:"",e8=e9&&!e7&&!!e3&&!ez&&null===eI,te=e9&&!e7?e4||(e3?(ez||void 0===eI)&&es.imgData||"":es.imgData||""):es.imgData||"",tt=!!((null===(e=es.title)||void 0===e?void 0:e.trim())||(null===(t=es.authors)||void 0===t?void 0:t.trim())||(null===(a=es.content)||void 0===a?void 0:a.trim())||(null===(l=es.contentInfo)||void 0===l?void 0:l.trim())||es.imgData||es.vanguardPageNumber),ta=!!((null===(i=es.title)||void 0===i?void 0:i.trim())||(null===(p=es.authors)||void 0===p?void 0:p.trim())||(null===(h=es.content)||void 0===h?void 0:h.trim())||(null===(f=es.contentInfo)||void 0===f?void 0:f.trim())||(null===(b=es.multi)||void 0===b?void 0:b.trim())||es.imgData||es.spread||es.vanguardPageNumber||"crossword"===ec&&(eJ.title.trim()||eJ.author.trim()||Object.values(eJ.clueTexts).some(e=>e.trim())||eJ.grid.some(e=>e.some(e=>e.blocked||!!e.letter))));(0,o.useEffect)(()=>()=>
1{eq.current.forEach(e=>URL.revokeObjectURL(e))},[]);let tr=(0,o.useCallback)(async(e,t)=>await A(e,t,"vanguard-".concat(eG,"-").concat(eH,"-page-").concat(t)),[eH,eG]);(0,o.useEffect)(()=>{if(!eo)return;let e=localStorage.getItem("uploadPreviewWidthPx"),t=null;if(e&&!Number.isNaN(Number(e))&&(t=Math.max(0,parseInt(e,10))),null===t||Number.isNaN(t)){let e=eZ.current;if(!e)return;t=Math.round(Math.min(Math.max(.4*e.getBoundingClientRect().width,320),720))}"number"!=typeof t||Number.isNaN(t)||eQ(t)},[eo]),(0,o.useEffect)(()=>{if(eX)return window.addEventListener("mousemove",e),window.addEventListener("mouseup",t),()=>{window.removeEventListener("mousemove",e),window.removeEventListener("mouseup",t)};function e(e){let t=eZ.current;if(!t)return;let a=t.getBoundingClientRect(),r=Math.round(a.right-e.clientX);eQ(r=Math.max(0,Math.min(r,Math.max(240,a.width-260))))}function t(){eK(!1),null!==e$&&localStorage.setItem("uploadPreviewWidthPx",String(e$))}},[eX,e$]);let[tl,tn]=(0,o.useState)(!1),[to,ti]=(0,o.useState)("normal");function ts(){eY.current&&(eY.current.classList.remove("error-message"),eY.current.offsetWidth,eY.current.classList.add("error-message"))}function td(){eB("")}function tc(e){eq.current.forEach(e=>URL.revokeObjectURL(e)),eq.current=e,ev(e)}async function tu(e,t){e_(!0);try{eC(await R(e,t))}catch(e){console.error(e),eC([])}finally{e_(!1)}}async function tp(e){td(),eP(e);try{var t;let a=await B(e);if(a.published)throw Error("Published articles are locked and cannot be edited here.");let r="vanguard"===a.category?K(a.subcategory):a.subcategory;eT(a.id),eu(a.category),ed({category:a.category,subcategory:r,title:a.title,authors:a.authors.join(", "),content:a.content,contentInfo:null!==(t=a.contentInfo)&&void 0!==t?t:"",img:null,spread:null,imgData:a.img||null,imgName:a.img?"existing image":null,multi:null,month:a.month,year:a.year,vanguardPageNumber:"vanguard"===a.category&&"articles"===r?(0,S.YA)(a.img):null}),ey(null),ek(null),tc([]),ex(0),eg('Loaded "'.concat(a.title,'" for editing.'))}catch(e){console.error(e),eg("Failed to load article: ".concat((null==e?void 0:e.message)||"Unknown error")),ti("error"),ts()}finally{eP(null)}}async function tg(){if(null!==eF&&window.confirm("Delete this draft permanently? This cannot be undone.")){eU(!0);try{var e,t;let a=null!==(e=es.month)&&void 0!==e?e:new Date().getMonth()+1,r=null!==(t=es.year)&&void 0!==t?t:new Date().getFullYear();tm(),eg(await V(eF)),ti("success"),tu(a,r)}catch(e){console.error(e),eg("Failed to delete draft: ".concat((null==e?void 0:e.message)||"Unknown error")),ti("error"),ts()}finally{eU(!1)}}}function tm(){eT(null),eu(""),eM(void 0),eL(!1),eO(""),ed({month:eH,year:eG}),eh(""),tc([]),ex(0),ey(null),ek(null)}function th(e){td();let t=e.target.value;ed({...es,subcategory:t,spread:"spreads"===t?es.spread:null,vanguardPageNumber:"articles"===t?es.vanguardPageNumber:null}),"vanguard"===ec&&"spreads"!==t&&(tc([]),ex(0))}function tf(e){td(),ed({...es,title:e.target.value})}async function tx(e){td(),ed({...es,content:e.target.value}),eh((await (0,d.j)().use(c.Z).process(e.target.value)).toString())}async function tb(e){if(td(),!e.files||!e.files[0])return;let t=e.files[0];if(!function(e){let t=e.toLowerCase();return Z.some(e=>t.endsWith(e))}(t.name)){alert("Invalid file format. Please select a JPG, JPEG, PNG, WEBP, GIF, HEIC, or HEIF file."),e.value="",ed({...es,img:null,imgData:null,imgName:null}),M(e,g()["has-file"]);return}if(ey(t.size),function(e){let t=e.toLowerCase();return X.some(e=>t.endsWith(e))}(t.name))try{eg("Converting HEIC/HEIF to PNG for preview..."),t=await L(t)}catch(t){eg("Image conversion failed: ".concat((null==t?void 0:t.message)||"Could not convert HEIC/HEIF.")),ti("error"),ts(),e.value="",ed({...es,img:null,imgData:null,imgName:null}),M(e,g()["has-file"]);return}let a=new FileReader;a.onload=()=>{ed(e=>({...e,img:t,imgData:a.result,imgName:t.name}))},a.readAsDataURL(t),M(e,g()["has-file"])}async function tv(e){if(td(),!e.files||!e.files[0])return;let t=e.files[0];if("application/pdf"!==t.type){alert("Invalid file format. Please upload a PDF file."),eg("Upload failed: Please upload a PDF file for Vanguard."),ti("error"),ts(),e.value="",ed({...es,spread:null}),M(e,g()["has-file"]);return}if(t.size>52428800){alert("Error processing PDF: file is too large (max 50 MB)."),eg("Upload failed: PDF is too large (max 50 MB). Try compressing using an online tool like Smallpdf, iLovePDF, Adobe Acrobat, or PDF24, then re-upload."),ti("error"),ts(),e.value="",ed({...es,spread:null}),M(e,g()["has-file"]);return}try{eg("Preparing Vanguard spread preview...");let{previewUrls:a,pageCount:r}=await z(t);ed(e=>({...e,spread:t})),ex(r),tc(a),M(e,g()["has-file"]),eg("Prepared ".concat(r," Vanguard spread page").concat(1===r?"":"s"," for preview."))}catch(t){console.error(t),e.value="",ed(e=>({...e,spread:null})),ex(0),tc([]),M(e,g()["has-file"]),eg("Upload failed: ".concat((null==t?void 0:t.message)||"Could not process the Vanguard PDF.")),ti("error"),ts()}}async function tw(e){var t,a,r;if(e.preventDefault(),eg("Checking..."),ek(null),!es.category){eg("Upload failed: You need to select a category."),ti("error"),ts();return}if("crossword"!==es.category&&!es.title){eg("Upload failed: You need a title."),ti("error"),ts();return}if("crossword"===es.category){let e=D(eJ);if(!e.ok){eg(e.error),ti("error"),ts();return}}let l=!!(es.imgData&&""!==es.imgData.trim()),n=!!(es.img||l||es.vanguardPageNumber&&es.vanguardPageNumber>0),o=e9?n:!!(es.img||l);if(e9&&!n){eg("Upload failed: choose a Vanguard spread page or upload a custom image for this article."),ti("error"),ts();return}if(e0&&(!es.spread||0===ef)){eg("Upload failed: upload the Vanguard spread PDF so the page preview can be generated."),ti("error"),ts();return}if(e6&&(!o&&!window.confirm("No image uploaded. Proceed without an image?")||!es.authors&&!window.confirm("No author(s) provided. Proceed without author(s)?")||!es.content&&!window.confirm("No content provided. Proceed without article content?"))){eg("Upload cancelled by user."),ti("error"),ts();return}let i=new FormData;i.append("category",es.category);let s=es.authors?es.authors.split(", "):[""],d=new Date,c=String(null!==(t=es.month)&&void 0!==t?t:d.getMonth()+1),p=String(null!==(a=es.year)&&void 0!==a?a:d.getFullYear());i.append("month",c),i.append("year",p),null!==eF&&i.append("article-id",String(eF));let g=null!==(r=es.img)&&void 0!==r?r:null,m=!1,h="",f=null;if(e9&&!es.img&&e3&&eI&&0===e5)try{let e=await tr(eI.src,e3);g=e.file,m=!0,URL.revokeObjectURL(e.previewUrl)}catch(e){eg("Upload failed: ".concat((null==e?void 0:e.message)||"Could not render the selected Vanguard spread page.")),ti("error"),ts();return}if(e6&&g){let e=g;if(!m){eg("Preparing header image...");try{let t=await I(g);e=t.file,m=t.compressed}catch(t){console.warn("Client image preparation failed, uploading original file instead.",t),e=g}}eg("Uploading header image...");try{let t=await Y(e);
1if(!t.path)throw Error("The image upload finished without a valid storage path.");h=t.path,f=t.sizeBytes}catch(e){eg("Upload failed: ".concat((null==e?void 0:e.message)||"Could not upload the article image.")),ti("error"),ts();return}}if(e0){let e;if(!es.spread){eg("Upload failed: You need to upload a spread PDF for Vanguard."),ti("error"),ts();return}eg("Uploading Vanguard PDF...");try{e=await W(es.spread)}catch(e){eg("Upload failed: ".concat((null==e?void 0:e.message)||"Could not upload the Vanguard PDF.")),ti("error"),ts();return}if(!e.path){eg("Upload failed: the Vanguard PDF upload finished without a valid storage path."),ti("error"),ts();return}i.append("subcategory","spreads"),i.append("spread-storage-path",e.path),i.append("title",es.title||"")}else if("multimedia"===es.category){if(!es.multi){eg("Upload failed: You need to submit a link."),ti("error"),ts();return}if(i.append("multi",es.multi),!es.subcategory||""===es.subcategory){eg("Upload failed: You need to select a subcategory."),ti("error"),ts();return}i.append("subcategory",es.subcategory),i.append("title",es.title||"")}else if("crossword"===es.category){let e=D(eJ);if(!e.ok){eg(e.error),ti("error"),ts();return}i.append("crossword-title",e.value.title),i.append("crossword-author",e.value.author),i.append("crossword-date",e.value.date),i.append("crossword-clues",JSON.stringify(e.value.clues))}else i.append("subcategory",es.subcategory||es.category),i.append("title",es.title||""),i.append("authors",JSON.stringify(s)),es.content&&i.append("content",es.content),h?(i.append("image-storage-path",h),null!==f&&i.append("image-upload-size-bytes",String(f))):g&&(i.append("img",g),m&&i.append("img-client-compressed","1")),g||null===eF||i.append("existing-img",es.imgData?String(es.imgData):""),es.contentInfo&&i.append("content-info",es.contentInfo),e9&&es.vanguardPageNumber&&i.append("vanguard-page-number",String(es.vanguardPageNumber));eg("Uploading; please stay on this page...");try{let{response:e,data:t}=await H(i,1);e.ok?(t&&"number"==typeof t.serverImgSizeBytes&&t.serverImgSizeBytes>0?(eg("".concat(t.message||"Upload successful!"," (Server final size: ").concat((e=>{let t=["B","KB","MB","GB"],a=e,r=0;for(;a>=1024&&r<t.length-1;)a/=1024,r++;return"".concat(Math.round(10*a)/10," ").concat(t[r])})(t.serverImgSizeBytes),")")),ek(Number(t.serverImgSizeBytes))):(eg(t.message||"Upload successful!"),null!==f&&ek(f)),eB(t.message||"Uploaded!"),ti("success"),eY.current&&eY.current.classList.remove("error-message"),(0,u.Z)(),"crossword"===es.category?eV(j()):tm(),eg(""),localStorage.removeItem("uploadFormData"),localStorage.removeItem("uploadFormTimestamp"),"crossword"!==es.category&&tu(Number(c),Number(p))):(eg("Upload failed: ".concat((null==t?void 0:t.message)||"Unknown error")),ti("error"),ts())}catch(e){console.error(e),eg("Upload failed: ".concat(e.message||"Failed to upload")),ti("error"),ts()}}(0,o.useEffect)(()=>{if("normal"!==to){let e=setTimeout(()=>ti("normal"),3e3);return()=>clearTimeout(e)}},[to]),(0,o.useEffect)(()=>{ei(!0);let e=localStorage.getItem("uploadFormData"),t=localStorage.getItem("uploadFormTimestamp");if(!(e&&t))return;let a=parseInt(t,10);if(Date.now()-a<2592e5){let{month:t,year:a,...r}=JSON.parse(e)||{},l=(null==r?void 0:r.category)==="vanguard"?{...r,subcategory:K(r.subcategory)}:r;ed(l),(null==l?void 0:l.category)&&eu(l.category),(null==l?void 0:l.crosswordDraft)&&eV(function(e){let t=j();if(!e||"object"!=typeof e)return t;let a=w(Number(e.rows)||t.rows,3,25),r=w(Number(e.cols)||t.cols,3,25),l=y(a,r,Array.isArray(e.grid)?e.grid:void 0).map(e=>e.map(e=>({blocked:!!e.blocked,letter:e.blocked?"":function(e){let t=e.trim().toUpperCase();return/^[A-Z]$/.test(t)?t:""}(e.letter)}))),n=e.selectedCell&&"number"==typeof e.selectedCell.row&&"number"==typeof e.selectedCell.col&&e.selectedCell.row>=0&&e.selectedCell.row<a&&e.selectedCell.col>=0&&e.selectedCell.col<r?e.selectedCell:{row:0,col:0};return{title:"string"==typeof e.title?e.title:"",author:"string"==typeof e.author?e.author:"",date:"string"==typeof e.date&&e.date?e.date:t.date,rows:a,cols:r,grid:l,clueTexts:e.clueTexts&&"object"==typeof e.clueTexts?e.clueTexts:{},selectedCell:n}}(l.crosswordDraft))}else localStorage.removeItem("uploadFormData"),localStorage.removeItem("uploadFormTimestamp")},[]),(0,o.useEffect)(()=>
1{if(!eo)return;let{category:e,subcategory:t,title:a,authors:r,content:l,multi:n,contentInfo:o,vanguardPageNumber:i}=es;if(!ta){localStorage.removeItem("uploadFormData"),localStorage.removeItem("uploadFormTimestamp"),tn(!1);return}tn(!0);try{localStorage.setItem("uploadFormData",JSON.stringify({category:e,subcategory:t,title:a,authors:r,content:l,multi:n,contentInfo:o,vanguardPageNumber:i,crosswordDraft:"crossword"===e?eJ:void 0})),localStorage.setItem("uploadFormTimestamp",Date.now().toString())}catch(e){console.warn("Storing to localStorage failed:",e)}let s=setTimeout(()=>{tn(!1)},1500);return()=>clearTimeout(s)},[eJ,es,ta,eo]),(0,o.useEffect)(()=>{eo&&es.content&&(0,d.j)().use(c.Z).process(es.content).then(e=>eh(e.toString())).catch(e=>console.error("Markdown processing error:",e))},[eo,es.content]),(0,o.useEffect)(()=>{eo&&tu(eH,eG)},[eo,eH,eG]),(0,o.useEffect)(()=>{if(!eo||!e9){eM(void 0),eL(!1);return}let e=!1;return async function(){eM(void 0),eL(!0);try{let t=await J(eH,eG);e||eM(t)}catch(t){console.error(t),e||eM(null)}finally{e||eL(!1)}}(),()=>{e=!0}},[eo,e9,eH,eG]),(0,o.useEffect)(()=>{if(!e9||e7||!e3||!eI||e5>0){eO("");return}let e=!1,t="";return(async()=>{try{let{previewUrl:a}=await tr(eI.src,e3);if(t=a,e){URL.revokeObjectURL(a);return}eO(a)}catch(t){console.error(t),e||eO("")}})(),()=>{e=!0,t&&URL.revokeObjectURL(t)}},[tr,e9,e7,e3,eI,e5]);let ty=(e,t)=>{if(t.preventDefault(),t.currentTarget.classList.remove(g().dragover),!t.currentTarget.parentNode)return;let a=t.currentTarget.parentNode,r=a.querySelector("input"),l=a.querySelector("span.img-name");if(r&&l){if(r.files=t.dataTransfer.files,e(r),!r.files.length){t.currentTarget.classList.remove(g()["has-file"]);return}t.dataTransfer.files[0].name,t.currentTarget.classList.add(g()["has-file"]),l.innerHTML=t.dataTransfer.files[0].name}};return(0,r.jsxs)("div",{children:[(0,r.jsxs)(n(),{children:[(0,r.jsx)("title",{children:"Upload Articles | The Tower"}),(0,r.jsx)("meta",{property:"og:title",content:"Upload Articles | The Tower"}),(0,r.jsx)("meta",{property:"og:description",content:"Section editors upload content here."})]}),(0,r.jsxs)("div",{id:g().formWrapper,children:[(0,r.jsx)("h2",{children:"PHS Tower Submission Platform"}),(0,r.jsxs)("p",{children:["Upload articles for the next issue here. ",(0,r.jsx)("strong",{children:"For editor use only."})]}),(0,r.jsx)("p",{className:g()["editor-note"],children:"★Editors should upload their best article first!"}),(0,r.jsx)("br",{}),(0,r.jsxs)("form",{onSubmit:tw,children:[(0,r.jsx)("h3",{children:"Section"}),(0,r.jsx)("p",{children:"Please select your section/category."}),(0,r.jsxs)("div",{id:g().selectHolder,children:[(0,r.jsxs)("select",{id:"cat",value:es.category||"",onChange:function(e){td();let t=e.target.value,a="vanguard"===t?"vanguard"===es.category&&es.subcategory?K(es.subcategory):"spreads":"multimedia"===t?"youtube"===es.subcategory||"podcast"===es.subcategory?es.subcategory:"":"crossword"===t?"":es.subcategory;eu(t),ed({...es,category:t,subcategory:a,vanguardPageNumber:"vanguard"===t&&"articles"===a?es.vanguardPageNumber:null}),("vanguard"!==t||"spreads"!==a)&&(tc([]),ex(0))},children:[(0,r.jsx)("option",{value:"",children:"Select category"}),(0,r.jsx)("option",{value:"news-features",children:"News & Features"}),(0,r.jsx)("option",{value:"opinions",children:"Opinions"}),(0,r.jsx)("option",{value:"vanguard",children:"Vanguard"}),(0,r.jsx)("option",{value:"arts-entertainment",children:"Arts & Entertainment"}),(0,r.jsx)("option",{value:"sports",children:"Sports"}),(0,r.jsx)("option",{value:"multimedia",children:"Multimedia"}),(0,r.jsx)("option",{value:"crossword",children:"Crossword"})]}),(0,r.jsxs)("div",{id:g().subcats,children:[(0,r.jsx)("select",{style:{display:ec?"none":"inline"},disabled:!0,onChange:th,children:(0,r.jsx)("option",{children:"Select subcategory"})}),(0,r.jsxs)("select",{id:"newfe-subcat",style:{display:"news-features"===ec?"inline":"none"},value:es.subcategory||"",onChange:th,children:[(0,r.jsx)("option",{value:"",children:"None"}),(0,r.jsx)("option",{value:"phs-profiles",children:"PHS Profiles"})]}),(0,r.jsxs)("select",{id:"ops-subcat",style:{display:"opinions"===ec?"inline":"none"},value:es.subcategory||"",onChange:th,children:[(0,r.jsx)("option",{value:"",children:"None"}),(0,r.jsx)("option",{value:"editorials",children:"Editorials"}),(0,r.jsx)("option",{value:"cheers-jeers",children:"Cheers & Jeers"})]}),(0,r.jsxs)("select",{id:"vanguard-subcat",style:{display:"vanguard"===ec?"inline":"none"},value:es.subcategory||"spreads",onChange:th,children:[(0,r.jsx)("option",{value:"spreads",children:"Spread PDF"}),(0,r.jsx)("option",{value:"articles",children:"Articles"})]}),(0,r.jsxs)("select",{id:"ae-subcat",style:{display:"arts-entertainment"===ec?"
1inline":"none"},value:es.subcategory||"",onChange:th,children:[(0,r.jsx)("option",{value:"",children:"None"}),(0,r.jsx)("option",{value:"student-artists",children:"Student Artists"})]}),(0,r.jsxs)("select",{id:"sports-subcat",style:{display:"sports"===ec?"inline":"none"},value:es.subcategory||"",onChange:th,children:[(0,r.jsx)("option",{value:"",children:"None"}),(0,r.jsx)("option",{value:"student-athletes",children:"Student Athletes"})]}),(0,r.jsxs)("select",{id:"multi-subcat",style:{display:"multimedia"===ec?"inline":"none"},value:es.subcategory||"",onChange:th,children:[(0,r.jsx)("option",{value:"",children:"Select subcategory"}),(0,r.jsx)("option",{value:"youtube",children:"YouTube Video"}),(0,r.jsx)("option",{value:"podcast",children:"Podcast"})]})]})]}),(0,r.jsx)("br",{}),(0,r.jsx)("h3",{children:"Issue Date"}),(0,r.jsxs)("div",{className:g()["issue-date"],children:[(0,r.jsxs)("label",{children:["Month",(0,r.jsxs)("select",{value:(null!==(P=es.month)&&void 0!==P?P:new Date().getMonth()+1).toString(),onChange:function(e){td();let t=parseInt(e.target.value,10);isNaN(t)||ed({...es,month:t})},children:[(0,r.jsx)("option",{value:"1",children:"January"}),(0,r.jsx)("option",{value:"2",children:"February"}),(0,r.jsx)("option",{value:"3",children:"March"}),(0,r.jsx)("option",{value:"4",children:"April"}),(0,r.jsx)("option",{value:"5",children:"May"}),(0,r.jsx)("option",{value:"6",children:"June"}),(0,r.jsx)("option",{value:"7",children:"July"}),(0,r.jsx)("option",{value:"8",children:"August"}),(0,r.jsx)("option",{value:"9",children:"September"}),(0,r.jsx)("option",{value:"10",children:"October"}),(0,r.jsx)("option",{value:"11",children:"November"}),(0,r.jsx)("option",{value:"12",children:"December"})]})]}),(0,r.jsxs)("label",{children:["Year",(0,r.jsx)("input",{type:"number",min:2010,max:new Date().getFullYear()+1,value:String(null!==(E=es.year)&&void 0!==E?E:new Date().getFullYear()),onChange:function(e){td();let t=parseInt(e.target.value,10);ed({...es,year:isNaN(t)?null:t})}})]})]}),(0,r.jsx)("hr",{}),(0,r.jsx)("br",{}),eR&&(0,r.jsx)("p",{className:g()["completed-upload-message"],children:eR}),(0,r.jsxs)("div",{className:g()["section-info"],ref:eZ,children:[(0,r.jsxs)("section",{className:g()["section-input"],children:[(0,r.jsxs)("div",{id:g()["std-sections"],style:{display:e6?"block":"none"},children:[(0,r.jsx)("h3",{children:"vanguard"===ec?"Vanguard Article":"Article"}),tt&&(0,r.jsx)("button",{type:"button",onClick:function(){td(),eT(null),eg(""),ti("normal"),eh(""),eO(""),tc([]),ex(0),ey(null),ek(null),localStorage.removeItem("uploadFormData"),localStorage.removeItem("uploadFormTimestamp"),ed(e=>({...e,title:"",authors:"",content:"",contentInfo:"",img:null,imgData:null,imgName:null,vanguardPageNumber:null}));let e=document.getElementById("article-img-upload");e&&(e.value="",M(e,g()["has-file"]));let t=document.getElementById("spread-upload");t&&(t.value="",M(t,g()["has-file"]))},className:g()["reset-query-button"],children:"Clear draft"}),e9&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("p",{className:g()["vanguard-note"],children:"Upload the issue spread PDF first if this article should use one of the spread pages as its image. You can also upload a custom header image here instead. If both are provided, the custom image wins."}),(0,r.jsxs)("label",{className:g()["vanguard-page-field"],children:[(0,r.jsx)("strong",{children:"Spread page number"}),(0,r.jsx)("input",{type:"number",min:1,step:1,value:es.vanguardPageNumber?String(es.vanguardPageNumber):"",onChange:function(e){td();let t=parseInt(e.target.value,10);ed({...es,vanguardPageNumber:isNaN(t)?null:t})}})]}),e8&&(0,r.jsxs)("p",{className:g()["vanguard-warning"],children:["Spread does not exist for ",q[eH]," ",eG]}),(0,r.jsx)("br",{}),(0,r.jsx)("br",{})]}),e6&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("p",{children:[(0,r.jsx)("strong",{children:e9?"Custom header image":"Header image"})," ",e9?"(optional; JPG, JPEG, PNG, WEBP, GIF, HEIC, or HEIF):":"(JPG, JPEG, PNG, WEBP, GIF, HEIC, or HEIF):"]}),(0,r.jsx)("div",{className:g()["file-input"],children:(0,r.jsxs)("label",{onDragEnter:e=>e.currentTarget.classList.add(g().dragover),onDragLeave:e=>e.currentTarget.classList.remove(g().dragover),onDragEnd:e=>e.currentTarget.classList.remove(g().dragover),onDragOver:e=>e.preventDefault(),onDrop:ty.bind(globalThis,tb),children:[(0,r.jsx)("span",{className:g()["drop-img-prompt"],children:e9?"Drop Custom Header Image Here (or click to upload)":"Drop Header Image Here (or click to upload)"}),(0,r.jsxs)("span",{className:g()["uploaded-prompt"],children:[(0,r.jsx)("i",{className:"fa-solid fa-check"})," ",(0,r.jsx)("span",{className:"img-name"})," uploaded!"]}),(0,r.jsx)("input",{id:"article-img-upload",type:"file",accept:".jpg,.jpeg,.png,.gif,.webp,.heic,.heif",onChange:e=>tb(e.target)})]})}),null!==ew&&(0,r.jsxs)("p",{className:g()["compression-summary"],children:[(0,r.jsx)("button",{type:"button",onClick:function(){td(),ed({...es,img:null,imgData:null,imgName:null}),ey(null),ek(null);let e=document.getElementById("article-img-upload");e&&(e.value="",M(e,g()["has-file"]))},children:"Clear"}),(0,r.jsxs)("span",{children:["Original size: ",$(ew),null!==ej?" → Compressed: ".concat($(ej)):" (will be compressed on upload)"]})]}),(0,r.jsx)("br",{}),(0,r.jsx)("br",{})]}),e6&&e7&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("strong",{children:"Header Info"}),(0,r.jsxs)("p",{children:["Start with a label like ",(0,r.jsx)("strong",{children:"Photo"}),", ",(0,r.jsx)("strong",{children:"Image"}),", or ",(0,r.jsx)("strong",{children:"Graphic"}),", followed by a colon (",(0,r.jsx)("strong",{children:":"}),") and the name of the photographer or designer."]}),(0,r.jsxs)("p",{children:["To credit more than one person, include both names with ",(0,r.jsx)("strong",{children:"and"})," between them — for example:"," ",(0,r.jsx)("strong",{children:"photo:"})," John Doe and Jane Doe."]}),(0,r.jsxs)("p",{children:["Press ",(0,r.jsx)("strong",{children:"Enter"})," twice after the credit line to begin the context or description."]}),(0,r.jsx)("textarea",{onChange:function(e){td(),ed({...es,contentInfo:e.target.value})},value:es.contentInfo||"",style:{width:"100%",minHeight:"80px",resize:"block"}}),(0,r.jsx)("br",{}),(0,r.jsx)("br",{})]}),(0,r.jsx)("strong",{children:"Title"}),(0,r.jsx)("br",{}
1),(0,r.jsx)("input",{type:"text",onChange:tf,value:es.title||""}),(0,r.jsx)("br",{}),(0,r.jsx)("br",{}),!("opinions"===ec&&"editorials"===es.subcategory)&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("strong",{children:"Author(s)"}),(0,r.jsx)("p",{children:"Separate each author with a comma, and do not include titles. Leave this blank for the editorial."}),(0,r.jsx)("p",{children:'Example: "John Doe, NEWS AND FEATURES CO-EDITOR and Jane Doe, OPINIONS CO-EDITOR" is entered as "John Doe, Jane Doe".'}),(0,r.jsx)("input",{type:"text",onChange:function(e){td(),ed({...es,authors:e.target.value})},value:es.authors||""}),(0,r.jsx)("br",{}),(0,r.jsx)("br",{})]}),(0,r.jsxs)("p",{children:[(0,r.jsx)("strong",{children:"Article Content"})," (Markdown supported).",(0,r.jsx)("br",{}),"Use empty lines to separate paragraphs. See"," ",(0,r.jsx)(s(),{target:"_blank",href:"/articles/1970/1/news-features/Writing-in-Markdown-568",children:"this guide"})," ","for details."]}),(0,r.jsx)("textarea",{id:g().contentInput,onChange:tx,value:es.content||""}),(0,r.jsx)("br",{})]}),(0,r.jsxs)("div",{id:g().vanguard,style:{display:e0?"block":"none"},children:[(0,r.jsx)("h3",{children:"Vanguard Spread"}),(0,r.jsxs)("p",{children:[(0,r.jsx)("strong",{children:"Title"}),(0,r.jsx)("br",{}),(0,r.jsx)("input",{type:"text",onChange:tf,value:es.title||""})]}),(0,r.jsx)("br",{}),(0,r.jsx)("strong",{children:"Spread (PDF)"}),(0,r.jsx)("p",{children:"Upload the issue PDF once here. The uploader will generate stable page images from it so Vanguard articles can reuse page 1 or page 2 directly."}),(0,r.jsx)("div",{className:g()["file-input"],children:(0,r.jsxs)("label",{onDragEnter:e=>e.currentTarget.classList.add(g().dragover),onDragLeave:e=>e.currentTarget.classList.remove(g().dragover),onDragEnd:e=>e.currentTarget.classList.remove(g().dragover),onDragOver:e=>e.preventDefault(),onDrop:ty.bind(globalThis,tv),children:[(0,r.jsx)("span",{className:g()["drop-img-prompt"],children:"Drop Spread PDF Here (or click to upload)"}),(0,r.jsxs)("span",{className:g()["uploaded-prompt"],children:[(0,r.jsx)("i",{className:"fa-solid fa-check"}),(0,r.jsx)("span",{className:"img-name"})," uploaded!"]}),(0,r.jsx)("input",{id:"spread-upload",type:"file",accept:".pdf",onChange:e=>void tv(e.target)})]})}),ef>0&&(0,r.jsxs)("p",{className:g()["spread-summary"],children:["Prepared ",ef," page preview",1===ef?"":"s"," for this spread."]})]}),(0,r.jsxs)("div",{id:g().multimedia,style:{display:"multimedia"===ec?"block":"none"},children:["youtube"===es.subcategory?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("h3",{children:"YouTube Video"}),(0,r.jsx)("strong",{children:"Title"}),(0,r.jsx)("br",{}),(0,r.jsx)("input",{type:"text",onChange:tf,value:es.title||""}),(0,r.jsx)("br",{}),(0,r.jsx)("br",{}),(0,r.jsxs)("p",{children:["Submit only the video ID (e.g. for https://www.youtube.com/watch?v=",(0,r.jsx)("b",{children:"TKfS5zVfGBc"}),")."]})]}):"podcast"===es.subcategory?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("h3",{children:"Podcast"}),(0,r.jsxs)("p",{children:["Submit only the part after e.g. https://rss.com/podcasts/",(0,r.jsx)("b",{children:"towershorts/1484378/"})]})]}):!es.subcategory&&(0,r.jsx)("p",{children:"Please select “YouTube Video” or “Podcast”."}),(0,r.jsx)("input",{type:"text",onChange:function(e){td(),ed({...es,multi:e.target.value})},value:es.multi||""})]}),(0,r.jsxs)("div",{style:{display:e1?"block":"none"},children:[(0,r.jsx)("h3",{children:"Crossword Builder"}),(0,r.jsx)("p",{children:"Build the grid directly here, black out squares, fill letters, and write clues for each across/down entry."}),(0,r.jsx)(_,{value:eJ,onChange:eV})]}),es.category&&(0,r.jsxs)("div",{className:g()["submit-row"],children:[(0,r.jsx)("button",{type:"submit",children:null!==eF&&e6?"Update Article":e0?"Submit Spread":"multimedia"===es.category?"Submit Multimedia":"crossword"===es.category?"Submit Crossword":"Submit Article"}),(0,r.jsx)("p",{id:"bruh",ref:eY,className:g()["submit-response"],children:ep})]}),e6&&(0,r.jsxs)("div",{className:g()["existing-articles"],children:[(0,r.jsxs)("div",{className:g()["existing-articles-header"],children:[(0,r.jsx)("strong",{children:"Uploaded Articles (".concat(q[eH]," ").concat(eG,")")}),null!==eF&&(0,r.jsxs)("div",{className:g()["existing-articles-actions"],children:[(0,r.jsx)("button",{type:"button",onClick:()=>{td(),tm()},children:"New article"}),(0,r.jsx)("button",{type:"button",onClick:tg,disabled:eE,className:g()["delete-draft-button"],children:eE?"Deleting...":"Delete Draft"})]})]}),eD&&(0,r.jsx)("p",{children:"Loading uploaded articles..."}),!eD&&0===eW.length&&(0,r.jsx)("p",{children:ec?"No uploaded articles for this category this month yet.":"No uploaded articles for this month yet."}),!eD&&eW.length>0&&(0,r.jsx)("div",{className:g()["existing-articles-list"],children:eW.map(e=>(0,r.jsxs)("button",{type:"button",onClick:()=>tp(e.id),className:eF===e.id?g()["existing-article-active"]:"",disabled:eS===e.id||e.published,children:[(0,r.jsxs)("span",{children:[e.title," ",(0,r.jsxs)("small",{children:["#",e.id]})]}),(0,r.jsxs)("span",{children:[e.category," /"," ","vanguard"===e.category?K(e.subcategory):e.subcategory," ","• ",e.published?"published (locked)":"draft"]}),eS===e.id&&(0,r.jsx)("span",{children:"Loading..."})]},e.id))})]})]}),(0,r.jsx)("div",{className:g().splitter,onMouseDown:function(e){e.preventDefault(),eK(!0)},role:"separator","aria-orientation":"vertical","aria-label":"Resize preview"}),(0,r.jsx)("section",{className:g()["section-preview"],style:{flex:null!==e$?"0 0 ".concat(Math.max(e$,0),"px"):void 0,display:0===e$?"none":void 0},children:(0,r.jsxs)("div",{style:{textAlign:"left"},children:[e6&&(0,r.jsx)(m.ArticleContent,{article:{id:-1,title:es.title?es.title:"Enter title to update preview",content:em||(es.title?'<span style="color:gray">Enter content to update preview</i>':""),published:!1,category:null!==(U=es.category)&&void 0!==U?U:"",subcategory:null!==(F=es.subcategory)&&void 0!==F?F:"",authors:(null!==(T=es.authors)&&void 0!==T?T:"").split(", "),month:null!==(O=es.month)&&void 0!==O?O:new Date().getMonth()+1,year:null!==(G=es.year)&&void 0!==G?G:new Date().getFullYear(),img:te,markdown:!0,contentInfo:null!==(ea=es.contentInfo)&&void 0!==ea?ea:null,featured:null,spotifyUrl:null,Index:!1}}),e0&&(0,r.jsxs)("div",{style:{padding:"1rem"},children:[(0,r.jsx)("h3",{children:es.title||"Vanguard spread preview"}),(0,r.jsx)(x.Z,{spreadSrc:"",pagePreviewUrls:eb,showDownload:!1})]}),"multimedia"===es.category&&"youtube"===es.subcategory&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("h3",{style:{margin:"1rem"},children:"Preview"}),(0,r.jsxs)("div",{className:"video-wrapper",children:[(0,r.jsx)(Q,{link:null!==(er=es.multi)&&void 0!==er?er:"",title:null!==(el=es.title)&&void 0!==el?el:""}),(0,r.jsx)("br",{})]})]}),"multimedia"===es.category&&"podcast"===es.subcategory&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("h3",{style:{margin:"1rem"},children:"Preview"}),(0,r.jsx)(ee,{link:null!==(en=es.multi)&&void 0!==en?en:""})]}),!es.category&&(0,r.jsx)(r.Fragment,{children:(0,r.jsx)("h3",{style:{margin:"1rem"},children:"Select a Category!"})}),e1&&(0,r.jsxs)("div",{style:{padding:"1rem"},children:[(0,r.jsx)("h3",{children:(null===(v=eJ.title)||void 0===v?void 0:v.trim())||"Crossword Preview"}),(0,r.jsx)("p",{children:"The builder on the left is the source of truth. Use it to set the title, grid, black squares, answers, and clue text."}),(0,r.jsx)("p",{children:"Published crosswords will use this title on the live page, in the archive, and in search."})]})]})})]}),(0,r.jsx)("br",{})]})]}),(0,r.jsx)(et,{uploadStatus:to,isSaving:tl})]})}},1894:function(e){e.exports={formWrapper:"upload_formWrapper__DFTls","file-input"
1:"upload_file-input__0xomz",dragover:"upload_dragover__Ihxvn","has-file":"upload_has-file__EQFJK","drop-img-prompt":"upload_drop-img-prompt____uRb","uploaded-prompt":"upload_uploaded-prompt__eLPRK","issue-date":"upload_issue-date__RWiVJ","editor-note":"upload_editor-note__3FYuJ","vanguard-note":"upload_vanguard-note__Sjs6H","vanguard-page-field":"upload_vanguard-page-field__4oDJZ","vanguard-warning":"upload_vanguard-warning__X6VET",selectHolder:"upload_selectHolder__HIRFo",contentInput:"upload_contentInput__GFqXT",preview:"upload_preview__jD_Ov","error-message":"upload_error-message__KvMX3",shake:"upload_shake__hVS4p","save-indicator":"upload_save-indicator__mNwKQ","upload-status":"upload_upload-status__rNmEP",normal:"upload_normal__2Xvkh",success:"upload_success__GeExD",error:"upload_error__OJIbN",spinner:"upload_spinner__7Auqf",spin:"upload_spin__zPJ0Z","save-info":"upload_save-info__PGhnM","section-info":"upload_section-info__NpIYr","section-input":"upload_section-input__JXron","section-preview":"upload_section-preview__lIPiJ",splitter:"upload_splitter__WOTDC","compression-summary":"upload_compression-summary__y7z1l","spread-summary":"upload_spread-summary__pBROa","submit-row":"upload_submit-row__GvDcs","submit-response":"upload_submit-response__Mw5FZ","reset-query-button":"upload_reset-query-button__1i8Zn","completed-upload-message":"upload_completed-upload-message___A86A","existing-articles":"upload_existing-articles__HwEvu","existing-articles-header":"upload_existing-articles-header__iUM1G","existing-articles-actions":"upload_existing-articles-actions__QZ27t","delete-draft-button":"upload_delete-draft-button__qlAkV","existing-articles-list":"upload_existing-articles-list__D1EE5","existing-article-active":"upload_existing-article-active__ovlAt"}}},function(e){e.O(0,[8603,4457,6307,2888,9774,179],function(){return e(e.s=8101)}),_N_E=e.O()}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.