PageSourceSearch

https://beezbites.de/_next/static/chunks/6647-a0a1f028a0787642.js

js beezbites.de collected 2026-10-10 00:26:49 UTC 27,027 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[6647],{76647:(e,t,l)=>{l.d(t,{KitchenKdsBoard:()=>F});var r=l(95155),n=l(12115),a=l(59305),s=l(20620),i=l(60807),d=l(29132),o=l(72789),c=l(65446),u=l(55787),x=l(39218);let m=["All","Grill","Fryer","Salad","Dessert","Kitchen"],b=["All","Bar"],p=["starter","main","dessert"],h={starter:"Vorspeise",main:"Hauptgang",dessert:"Nachspeise"},f=["dine_in","delivery","pickup","pantry"],g={dine_in:{label:"Vor Ort",refLabel:"Tisch"},delivery:{label:"Lieferung",refLabel:"Tour / Kunde"},pickup:{label:"Abholung",refLabel:"Abholcode"},pantry:{label:"Speisekammer",refLabel:"Abholcode"}},w={dine_in:!0,delivery:!1,pickup:!1,pantry:!1};function k(e){let t=Math.max(0,Math.floor(e/6e4));return"".concat(t," Min")}function v(e,t){return null==e||"number"!=typeof e?null:(e-t)/6e4}function j(e){return"delivery"===e||"pickup"===e||"pantry"===e}function y(e,t){return 0!==e.items.length&&("All"===t||e.items.some(e=>e.station===t))}function N(e,t){return"All"===t?e:e.filter(e=>e.station===t)}function _(e){let{title:t,now:l,orders:n,completedToday:a,restaurantId:s}=e,d=n.filter(e=>e.items.length>0),o=d.filter(e=>"new"===e.status).length,c=d.filter(e=>"in_progress"===e.status).length,u=d.filter(e=>{let t=null!=l?l:e.receivedAt,r=(t-e.receivedAt)/6e4;if("rush"===e.priority||r>=12)return!0;if(j(e.fulfillment)&&null!=e.promisedAt){let l=v(e.promisedAt,t);if(null!=l&&l<=10)return!0}return!1}).length,x={neutral:"border-neutral-700 bg-neutral-900 text-neutral-200",amber:"border-amber-700/60 bg-amber-950/60 text-amber-100",red:"border-red-700/70 bg-red-950/50 text-red-100",green:"border-emerald-800/60 bg-emerald-950/40 text-emerald-100"};function m(e){let{label:t,value:l,tone:n}=e;return(0,r.jsxs)("div",{className:"flex min-w-[4.5rem] flex-col rounded-lg border px-2 py-1.5 sm:min-w-[5rem] ".concat(x[n]),children:[(0,r.jsx)("span",{className:"text-[10px] font-semibold uppercase tracking-wide text-neutral-400 sm:text-xs",children:t}),(0,r.jsx)("span",{className:"text-lg font-bold tabular-nums leading-none sm:text-xl",children:l})]})}return(0,r.jsxs)("header",{className:"flex flex-shrink-0 flex-col gap-3 border-b border-neutral-800 bg-neutral-950 px-3 py-3 sm:flex-row sm:items-center sm:justify-between sm:px-4",children:[(0,r.jsxs)("div",{className:"flex flex-wrap items-end gap-3 sm:items-center",children:[(0,r.jsx)("h1",{className:"text-2xl font-black tracking-tight text-white sm:text-3xl",children:t}),null!=l?(0,r.jsx)("time",{className:"rounded-md border border-neutral-800 bg-neutral-900 px-2 py-1 font-mono text-lg font-semibold tabular-nums text-neutral-100 sm:text-xl",dateTime:new Date(l).toISOString(),children:new Date(l).toLocaleTimeString("de-DE",{hour:"2-digit",minute:"2-digit",second:"2-digit"})}):(0,r.jsx)("span",{className:"rounded-md border border-neutral-800 bg-neutral-900 px-2 py-1 font-mono text-lg font-semibold tabular-nums text-neutral-500 sm:text-xl","aria-hidden":!0,children:"—:——:——"})]}),(0,r.jsxs)("div",{className:"grid grid-cols-2 gap-2 sm:flex sm:flex-wrap sm:justify-end",children:[(0,r.jsx)(i.j,{restaurantId:s,compact:!0}),(0,r.jsx)(m,{label:"Neu",value:o,tone:"neutral"}),(0,r.jsx)(m,{label:"Laufend",value:c,tone:"amber"}),(0,r.jsx)(m,{label:"Dringend",value:u,tone:"red"}),(0,r.jsx)(m,{label:"Fertig heute",value:a,tone:"green"})]})]})}function A(e){let{stations:t,station:l,onStationChange:n,paneFocus:a,onPaneFocus:s,fullscreenOn:i,onToggleFullscreen:d,fulfillmentVisible:o,onToggleFulfillment:c,showChannelFilters:u=!0}=e,x="shrink-0 whitespace-nowrap text-[10px] font-bold uppercase tracking-wide text-neutral-500 sm:text-xs",m="shrink-0 whitespace-nowrap rounded-md border px-2 py-1.5 text-xs font-bold transition-colors sm:px-2.5 sm:text-sm",b=(0,r.jsx)("span",{className:"mx-0.5 h-6 w-px shrink-0 bg-neutral-700","aria-hidden":!0});return(0,r.jsxs)("div",{className:"flex min-h-[42px] flex-nowrap items-center gap-x-2 overflow-x-auto border-b border-neutral-800 bg-neutral-950 px-2 py-1.5 sm:gap-x-3 sm:px-3",children:[(0,r.jsxs)("div",{className:"flex shrink-0 flex-nowrap items-center gap-1 sm:gap-1.5",children:[(0,r.jsx)("span",{className:x,children:"Station"}),(0,r.jsx)("div",{className:"flex shrink-0 flex-nowrap gap-1",role:"group","aria-label":"K\xfcchenstation",children:t.map(e=>{let t=l===e;return(0,r.jsx)("button",{type:"button",onClick:()=>n(e),className:"".concat(m," ").concat(t?"border-white bg-white text-neutral-950 ring-1 ring-white":"border-neutral-700 bg-neutral-900 text-neutral-200 hover:bg-neutral-800"),children:"All"===e?"Alle":e},e)})})]}),b,(0,r.jsxs)("div",{className:"flex shrink-0 flex-nowrap items-center gap-1 sm:gap-1.5",children:[(0,r.jsx)("span",{className:x,children:"Ansicht"}),(0,r.jsx)("div",{role:"tablist","aria-label":"Bestellansichten",className:"flex shrink-0 flex-nowrap gap-0.5 rounded-md border border-neutral-800 bg-neutral-900/70 p-0.5",children:[{key:"split",label:"Gesamt"},{key:"orders",label:"Auftr\xe4ge"},{key:"batch",label:"Zusammengefasst"}].map(e=>{let t=a===e.key;return(0,r.jsx)("button",{type:"button",role:"tab","aria-selected":t,onClick:()=>s(e.key),className:"".concat(m," ").concat(t?"border-transparent bg-white text-neutral-950 ring-1 ring-white":"border-transparent text-neutral-300 hover:bg-neutral-800"),children:e.label},e.key)})})]}),u?(0,r.jsxs)(r.Fragment,{children:[b,(0,r.jsxs)("div",{className:"flex shrink-0 flex-nowrap items-center gap-1 sm:gap-1.5",children:[(0,r.jsx)("span",{className:x,children:"Bestellart"}),(0,r.jsx)("div",{className:"flex shrink-0 flex-nowrap gap-1",role:"group","aria-label":"Bestellarten",children:f.map(e=>{let t=g[e],l=o[e];return(0,r.jsx)("button",{type:"button","aria-pressed":l,onClick:()=>c(e),className:"".concat(m," ").concat(l?"border-sky-500/70 bg-sky-950/50 text-sky-100 hover:bg-sky-900/50":"border-neutral-700 bg-neutral-900/70 text-neutral-500 opacity-70 hover:bg-neutral-800"),children:t.label},e)})})]})]}):null,(0,r.jsx)("button",{type:"button",onClick:d,"aria-pressed":i,className:"ml-auto shrink-0 ".concat(m," font-black uppercase tracking-wide ").concat(i?"border-neutral-600 bg-neutral-800 text-neutral-100 hover:bg-neutral-700":"border-violet-500/70 bg-vi
1olet-950/50 text-violet-100 hover:bg-violet-900/55"),children:i?"Vollbild aus":"Vollbild"})]})}function S(e){let{orders:t,station:l,now:a,isolate:s=!1}=e,i=(0,n.useMemo)(()=>{let e=new Map;for(let r of t){if(!y(r,l))continue;let t=N(r.items,l),n=Math.max(0,Math.floor(((null!=a?a:r.receivedAt)-r.receivedAt)/6e4)),s=null!=r.tableNumber&&String(r.tableNumber).trim()?String(r.tableNumber):"—";for(let l of t){let t="".concat(l.name,"|").concat(l.station);e.has(t)||e.set(t,{name:l.name,station:l.station,lines:[]});let a=Array.isArray(l.notes)?l.notes.filter(Boolean):[];e.get(t).lines.push({orderId:r.id,itemId:l.id,ref:s,qty:l.qty,queueMinutes:n,notes:a,status:r.status})}}let r=[...e.values()].map(e=>({...e,totalQty:e.lines.reduce((e,t)=>e+t.qty,0)})).filter(e=>e.totalQty>=2).sort((e,t)=>{let l=e.lines.length>0?Math.max(...e.lines.map(e=>e.queueMinutes)):0,r=t.lines.length>0?Math.max(...t.lines.map(e=>e.queueMinutes)):0;return r!==l?r-l:t.totalQty-e.totalQty});for(let e of r)e.lines.sort((e,t)=>t.queueMinutes!==e.queueMinutes?t.queueMinutes-e.queueMinutes:t.qty-e.qty);return r},[t,l,a]);return(0,r.jsxs)("section",{className:s?"flex min-h-0 min-w-0 w-full flex-1 flex-col bg-neutral-950/90":"flex min-h-0 w-[min(100%,44rem)] flex-shrink-0 flex-col border-l border-neutral-800 bg-neutral-950/90 sm:w-[min(100%,48rem)] lg:w-0 lg:min-w-[20rem] lg:max-w-[40rem] lg:flex-[1]",children:[(0,r.jsxs)("div",{className:"flex flex-shrink-0 flex-col gap-1 border-b border-neutral-800 bg-neutral-900/90 px-3 py-3 sm:px-4 sm:py-4",children:[(0,r.jsx)("h2",{className:"text-xl font-black uppercase leading-tight tracking-wide text-white sm:text-2xl",children:"Gleiche Gerichte"}),(0,r.jsx)("p",{className:"text-base text-neutral-500 sm:text-lg",children:"Aus den sichtbaren Karten geb\xfcndelt — mind. 2\xd7 gleiche Position (Name + Station)."}),(0,r.jsxs)("span",{className:"font-mono text-lg font-bold tabular-nums text-neutral-400 sm:text-xl",children:[i.length," B\xfcndel"]})]}),(0,r.jsx)("div",{className:"flex min-h-0 flex-1 flex-col gap-4 overflow-y-auto p-3 sm:p-4",children:0===i.length?(0,r.jsx)("p",{className:"px-1 py-6 text-center text-xl leading-snug text-neutral-600 sm:text-2xl",children:"Keine B\xfcndel: keine doppelte Mengen desselben Ger\xe4ts auf den sichtbaren Karten."}):i.map(e=>(0,r.jsxs)("div",{className:"rounded-xl border border-neutral-800 bg-neutral-900/80 p-3 sm:p-4",children:[(0,r.jsxs)("div",{className:"mb-3 border-b border-neutral-800 pb-2",children:[(0,r.jsxs)("div",{className:"font-black tabular-nums text-2xl text-white sm:text-3xl",children:[e.totalQty,"\xd7 ",e.name]}),(0,r.jsx)("div",{className:"text-lg font-bold uppercase tracking-wide text-neutral-500 sm:text-xl",children:e.station})]}),(0,r.jsx)("ul",{className:"flex flex-col gap-3",children:e.lines.map(e=>(0,r.jsxs)("li",{className:"rounded-lg border border-neutral-800/90 bg-neutral-950/50 p-3 sm:p-4",children:[(0,r.jsxs)("div",{className:"grid grid-cols-[minmax(0,auto)_1fr_minmax(0,auto)] items-center gap-x-3 text-xl leading-snug sm:text-2xl",children:[(0,r.jsxs)("span",{className:"font-mono font-bold tabular-nums text-amber-200/90",children:[e.queueMinutes," Min"]}),(0,r.jsxs)("span",{className:"min-w-0 truncate text-center font-mono font-bold text-neutral-200",title:"Bestellnr. / Ref.",children:["#",e.ref]}),(0,r.jsxs)("span",{className:"text-right font-black tabular-nums text-neutral-400",children:[e.qty,"\xd7"]})]}),e.notes.length?(0,r.jsx)("div",{className:"mt-3 flex flex-wrap gap-2 border-t border-neutral-800/80 pt-3",children:e.notes.map(t=>(0,r.jsx)("span",{className:"rounded-md border border-amber-600/55 bg-amber-950/75 px-2.5 py-1 text-base font-bold uppercase leading-snug tracking-wide text-amber-100 sm:text-lg",children:t},"".concat(e.orderId,"-").concat(e.itemId,"-").concat(t)))}):null]},"".concat(e.orderId,"-").concat(e.itemId)))})]},"".concat(e.name,"|").concat(e.station)))})]})}function I(e){var t;let{item:l,stationFilter:n,busy:a,lineError:s,onLineReady:i}=e;if(a||"All"!==n&&l.station!==n)return null;let d=(null==(t=l.notes)?void 0:t.length)>0,o=(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{className:"relative",children:(0,r.jsxs)("div",{className:"relative z-[1] flex flex-wrap items-baseline gap-x-2 gap-y-0.5",children:[(0,r.jsxs)("span",{className:"min-w-[2rem] font-black tabular-nums text-lg text-white",children:[l.qty,"\xd7"]}),(0,r.jsx)("span",{className:"text-lg font-bold leading-snug text-neutral-100",children:l.name}),(0,r.jsx)("span",{className:"rounded bg-neutral-800 px-1.5 py-0.5 text-xs font-bold text-neutral-300",children:l.station})]})}),d&&(0,r.jsx)("div",{className:"relative mt-1",children:(0,r.jsx)("div",{className:"relative z-[1] flex flex-wrap gap-1",children:l.notes.map(e=>(0,r.jsx)("span",{className:"rounded border border-amber-600/60 bg-amber-950/80 px-1.5 py-0.5 text-xs font-bold uppercase tracking-wide text-amber-200",children:e},e))})})]});return(0,r.jsxs)("li",{className:"border-l border-neutral-700 pl-1",children:[(0,r.jsx)("button",{type:"button",onClick:()=>{i(l.orderItemDbId)},className:"w-full min-h-[44px] rounded-md py-1 pr-1 text-left transition-colors hover:bg-neutral-800/60 active:bg-neutral-800/90 disabled:cursor-not-allowed disabled:opacity-40",children:o}),s?(0,r.jsx)("p",{className:"mt-1 text-xs font-semibold text-red-200",children:s}):null]})}function M(e){var t,l,n;let a,{order:s,stationFilter:i,now:d,isLinePending:o,lineError:c,onStart:u,onMarkLineReady:x,onFinishAllPendingLines:m}=e,b=null!=(t=s.fulfillment)?t:"dine_in",f=null!=(l=g[b])?l:g.dine_in,w=null!=d?d:s.receivedAt,y=w-s.receivedAt,_=(n=y/6e4)<5?"ok":n<12?"warn":"urgent",A=j(b)&&null!=s.promisedAt,S=A?v(s.promisedAt,w):null,M="",C="ok";
1null!=S&&(S<0?(M="\xdcberf\xe4llig \xb7 ".concat(k(-(6e4*S))),C="urgent"):(M="Noch ".concat(k(6e4*S)),S<15&&(C="warn"),S<=5&&(C="urgent")));let B="ok"===C?"text-neutral-300":"warn"===C?"text-amber-300":"text-red-300",F="new"===s.status?"Neu":"in_progress"===s.status?"Laufend":"Fertig";a="rush"===s.priority?(0,r.jsx)("span",{className:"rounded bg-red-600 px-2 py-0.5 text-xs font-black uppercase tracking-wide text-white",children:"Eilt"}):"vip"===s.priority?(0,r.jsx)("span",{className:"rounded bg-violet-600 px-2 py-0.5 text-xs font-black uppercase tracking-wide text-white",children:"VIP"}):(0,r.jsx)("span",{className:"rounded border border-neutral-600 bg-neutral-900 px-2 py-0.5 text-xs font-bold text-neutral-400",children:"Normal"});let L=N(s.items,i).filter(e=>!o(e.orderItemDbId));if(!L.length)return null;let q="min-h-[48px] flex-1 rounded-xl border-2 text-base font-black uppercase tracking-wide active:scale-[0.99] disabled:cursor-not-allowed disabled:opacity-40 sm:text-lg",K=function(e){let t={starter:[],main:[],dessert:[]};for(let l of e)t[function(e){let t=e.course;return t&&h[t]?t:"main"}(l)].push(l);return p.filter(e=>t[e].length>0).map(e=>({course:e,label:h[e],items:t[e]}))}(L),T="in_progress"===s.status?"bg-neutral-800/95":"bg-neutral-900/90",D="in_progress"===s.status?"border-2 border-white":"border border-neutral-800";return(0,r.jsxs)("article",{className:"flex min-w-0 w-full flex-col rounded-2xl p-3 sm:p-4 ".concat(D," ").concat(T),children:[(0,r.jsxs)("div",{className:"mb-3 flex flex-wrap items-start justify-between gap-3",children:[(0,r.jsxs)("div",{className:"flex min-w-0 flex-1 flex-col gap-1",children:[(0,r.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,r.jsx)("span",{className:"text-[11px] font-bold uppercase tracking-wider text-neutral-500",children:f.refLabel}),a,(0,r.jsx)("span",{className:"rounded px-2 py-0.5 text-xs font-black uppercase tracking-wide ".concat("new"===s.status?"bg-blue-600 text-white":"in_progress"===s.status?"bg-amber-600 text-neutral-950":"bg-emerald-800 text-emerald-100"),children:F})]}),(0,r.jsx)("div",{className:"truncate text-5xl font-black leading-none tracking-tight text-white sm:text-6xl",children:s.tableNumber})]}),(0,r.jsxs)("div",{className:"flex shrink-0 flex-col items-end gap-3 text-right",children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("div",{className:"text-[11px] font-bold uppercase text-neutral-500",children:"Alter"}),(0,r.jsx)("div",{className:"font-mono text-2xl font-black tabular-nums sm:text-3xl ".concat("ok"===_?"text-neutral-300":"warn"===_?"text-amber-300":"text-red-300"),children:k(y)})]}),A?(0,r.jsxs)("div",{className:"rounded-lg border border-neutral-700 bg-neutral-900/80 px-2 py-1.5 sm:px-3",children:[(0,r.jsx)("div",{className:"text-[10px] font-bold uppercase tracking-wide text-neutral-500",children:"delivery"===b?"Lieferzeit":"Abholzeit"}),(0,r.jsxs)("div",{className:"flex flex-col items-end gap-0.5 sm:items-end",children:[(0,r.jsx)("span",{className:"font-mono text-xl font-black tabular-nums text-white sm:text-2xl",children:null!=s.promisedAt?new Date(s.promisedAt).toLocaleTimeString("de-DE",{hour:"2-digit",minute:"2-digit"}):""}),(0,r.jsx)("span",{className:"max-w-[12rem] text-sm font-bold leading-tight sm:text-base ".concat(B),children:M})]})]}):null]})]}),s.specialRequest?(0,r.jsx)("div",{className:"mb-3 rounded-xl border-2 border-red-500 bg-red-950/70 px-3 py-2 text-base font-black leading-snug text-red-50",children:s.specialRequest}):null,(0,r.jsx)("div",{className:"mb-3 flex w-full min-w-0 flex-col border-t border-neutral-800 pt-2",children:K.map((e,t)=>(0,r.jsxs)("div",{className:t>0?"mt-4 border-t border-dashed border-neutral-600 pt-4":"",children:[(0,r.jsxs)("div",{className:"mb-2 flex items-center gap-2",children:[(0,r.jsx)("span",{className:"shrink-0 rounded-md bg-neutral-800 px-2 py-1 text-[10px] font-black uppercase tracking-widest text-neutral-300",children:e.label}),(0,r.jsx)("div",{className:"h-px min-w-[2rem] flex-1 bg-gradient-to-r from-neutral-600 to-transparent"})]}),(0,r.jsx)("ul",{className:"flex flex-col gap-1.5",children:e.items.map(e=>(0,r.jsx)(I,{item:e,stationFilter:i,busy:o(e.orderItemDbId),lineError:c(e.orderItemDbId),onLineReady:e=>x(s,e)},e.id))})]},e.course))}),(0,r.jsx)("footer",{className:"mt-auto flex shrink-0 flex-col gap-2 border-t border-neutral-800 pt-2",children:(0,r.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,r.jsx)("button",{type:"button",className:"".concat(q," border-blue-500 bg-blue-600 text-white hover:bg-blue-500"),onClick:()=>{u(s.dbId)},disabled:"new"!==s.status,children:"Start"}),(0,r.jsx)("button",{type:"button",className:"".concat(q," border-emerald-600 bg-emerald-700 text-white hover:bg-emerald-600"),onClick:()=>{m(s)},disabled:0===L.length,children:"Alle Zeilen fertig"})]})})]})}function C(e){let t,{label:l,fulfillmentKey:a,orders:s,station:i,now:d,stretchWide:o,variant:c,isLinePending:u,lineError:x,isTableBusy:m,onStart:b,onMarkLineReady:p,onFinishAllPendingLines:h,onKitchenTableBatchAll:f}=e,g=(0,n.useMemo)(()=>[...s.filter(e=>y(e,i))].sort((e,t)=>
1e.receivedAt!==t.receivedAt?e.receivedAt-t.receivedAt:e.dbId-t.dbId),[s,a,i]),w=o?"grid min-w-0 content-start gap-3 [grid-auto-rows:auto] [grid-template-columns:repeat(auto-fill,minmax(14.5rem,1fr))]":"flex min-w-0 flex-col gap-3",k=e=>(0,r.jsx)(M,{order:e,stationFilter:i,now:d,isLinePending:u,lineError:x,onStart:b,onMarkLineReady:p,onFinishAllPendingLines:h},e.id);return t=g.length?"kitchen"===c?(0,r.jsx)("div",{className:"flex flex-col gap-5",children:(function(e){let t=new Map;for(let l of e){let e=l.tableGroupKey;t.has(e)||t.set(e,[]),t.get(e).push(l)}return Array.from(t.entries()).map(e=>{let[t,l]=e;return{key:t,label:t.startsWith("__no_table__")?"Ohne Tisch":"Tisch ".concat(t),orders:l}}).sort((e,t)=>{let l=+!!e.key.startsWith("__no_table__"),r=+!!t.key.startsWith("__no_table__");if(l!==r)return l-r;let n=e.orders.length>0?Math.min(...e.orders.map(e=>e.receivedAt)):0,a=t.orders.length>0?Math.min(...t.orders.map(e=>e.receivedAt)):0;return n!==a?n-a:e.label.localeCompare(t.label,"de")})})(g).map(e=>(0,r.jsxs)(n.Fragment,{children:[(0,r.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-2 px-0.5",children:[(0,r.jsx)("span",{className:"text-[11px] font-black uppercase tracking-widest text-amber-300/95 sm:text-xs",children:e.label}),!e.key.startsWith("__no_table__")&&f?(0,r.jsx)("button",{type:"button",disabled:m(e.key),onClick:()=>{f(e.key)},className:"rounded-md border border-amber-600 bg-amber-950/75 px-2 py-1 text-[10px] font-black uppercase tracking-wide text-amber-100 hover:bg-amber-900 disabled:opacity-40 sm:text-xs",children:"Tisch komplett"}):null]}),(0,r.jsx)("div",{className:w,children:e.orders.map(k)})]},e.key))}):(0,r.jsx)("div",{className:w,children:g.map(k)}):(0,r.jsx)("p",{className:"py-6 text-center text-sm text-neutral-600",children:"—"}),(0,r.jsxs)("section",{className:o?"flex min-h-0 min-w-0 w-full flex-1 flex-col rounded-xl border border-neutral-800 bg-neutral-950/80":"flex h-full min-h-0 w-[min(90vw,21rem)] max-w-[22rem] shrink-0 flex-col rounded-xl border border-neutral-800 bg-neutral-950/80 sm:max-w-[23rem] lg:min-w-0 lg:max-w-none lg:w-auto lg:shrink lg:basis-0 lg:flex-1",children:[(0,r.jsxs)("div",{className:"flex flex-shrink-0 items-center justify-between gap-2 border-b border-neutral-800 bg-neutral-900/90 px-2 py-2 sm:px-3",children:[(0,r.jsx)("h2",{className:"text-sm font-black uppercase tracking-wide text-white sm:text-base",children:l}),(0,r.jsx)("span",{className:"rounded-md bg-neutral-800 px-2 py-0.5 font-mono text-xs font-bold tabular-nums text-neutral-300 sm:text-sm",children:g.length})]}),(0,r.jsx)("div",{className:o?"grid min-h-0 min-w-0 flex-1 content-start gap-3 overflow-y-auto overflow-x-hidden p-2 sm:p-3":"flex min-h-0 min-w-0 flex-1 flex-col gap-3 overflow-x-hidden overflow-y-auto p-2 sm:p-3",children:t})]})}function B(e){let{orders:t,station:l,now:n,variant:a,isLinePending:s,lineError:i,isTableBusy:d,visibleFulfillments:o,onStart:c,onMarkLineReady:u,onFinishAllPendingLines:x,onKitchenTableBatchAll:m}=e,b=o.length>0?[...o]:[...f],p=1===b.length;return(0,r.jsx)("div",{className:"flex h-full min-h-0 flex-1 flex-row items-stretch gap-2 overflow-x-auto overflow-y-hidden p-2 sm:gap-3 sm:p-4 lg:gap-3 lg:[scrollbar-gutter:stable]",children:b.map(e=>{let o=g[e],b=t.filter(t=>{var l;return(null!=(l=t.fulfillment)?l:"dine_in")===e});return(0,r.jsx)(C,{stretchWide:p,label:o.label,fulfillmentKey:e,orders:b,station:l,now:n,variant:a,isLinePending:s,lineError:i,isTableBusy:d,onStart:c,onMarkLineReady:u,onFinishAllPendingLines:x,onKitchenTableBatchAll:m},e)})})}function F(e){var t;let{restaurantId:l,variant:i,layout:p="standalone"}=e,h="bar"===i?b:m,g="bar"===i?"Bar \xb7 K\xfcchen-Anzeige (Getr\xe4nke)":"K\xfcche \xb7 Kitchen Display",[k,v]=(0,n.use
1State)("All"),[j,y]=(0,n.useState)(null),[I,M]=(0,n.useState)([]),[C,F]=(0,n.useState)(0),[L,q]=(0,n.useState)(""),[K,T]=(0,n.useState)(null),[D,E]=(0,n.useState)(()=>new Set),[R,G]=(0,n.useState)(null),P=(0,n.useRef)(null),z=(0,n.useMemo)(()=>(0,o.BC)(I,i),[I,i]),V=(0,n.useRef)(null);(0,n.useEffect)(()=>{let e=I.filter(e=>"paid"===e.status||"preparing"===e.status||"ready"===e.status).map(e=>e.id);(0,u.W9)(V,e).length>0&&(0,u.Ri)()},[I]);let W=(0,n.useRef)(null),O=(0,n.useCallback)(async()=>{var e;await (null==(e=W.current)?void 0:e.load())},[]);(0,n.useEffect)(()=>{if(!l)return;let e=(0,c.yt)({restaurantId:l,transport:{lineKdsReady:a.JN,markFoodLineServed:a.v1,markOrderDrinkBundleServed:a.RA,markTableDrinksBundleServed:a.wB,ackGuestServiceRequest:a.od},onChange:G,onBatchSettled:()=>{var e;null==(e=W.current)||e.load()}});return P.current=e,G(e.getView()),()=>{e.dispose(),P.current===e&&(P.current=null)}},[l]),(0,n.useEffect)(()=>{if(!l)return;let e=(0,d.eB)(e=>(0,a.W1)("/restaurants/".concat(l,"/kds/orders"),e)),t=(0,d.$d)({fetchSnapshot:async t=>{var l,r;let n=null!=(r=null==(l=P.current)?void 0:l.nextSnapshotTicket())?r:0,a=await e(t);return a===d.Fd?d.Fd:{snapshot:a,ticket:n}},onSnapshot:e=>{var t;let{snapshot:l,ticket:r}=e;M(Array.isArray(l.orders)?l.orders:[]),F(Number.isFinite(l.completed_today)?Math.max(0,l.completed_today):0),q(""),null==(t=P.current)||t.applySnapshot(r,e=>"kds_line_ready"===e.kind&&l.orders.some(t=>t.items.some(t=>t.id===e.orderItemId&&(0,o.rP)(t))))},onError:e=>{let t=e instanceof a.ge?e.message:"Bestellungen konnten nicht geladen werden (Berechtigung / Netz?).";q("Verbindung unterbrochen – letzter Stand bleibt sichtbar. ".concat(t))}});W.current=t;let r=(0,x.h)({load:t.load,intervalMs:8e3});return r.start(),()=>{r.stop(),t.stop(),W.current===t&&(W.current=null)}},[l]),(0,n.useEffect)(()=>{y(Date.now());let e=window.setInterval(()=>y(Date.now()),1e3);return()=>window.clearInterval(e)},[]);let Q=async(e,t)=>{T(e),q("");try{await (0,a.JM)(e,t),await O()}catch(e){q(e instanceof a.ge?e.message:"Status-Update fehlgeschlagen.")}finally{T(null)}},U="bar"===i?"bar":"kitchen",Z=(0,n.useCallback)(e=>{var t;return null!=(t=null==R?void 0:R.isPending((0,c.SN)({kind:"kds_line_ready",orderId:e,orderItemId:e,station:U})))&&t},[R,U]),J=(0,n.useCallback)(e=>D.has(e),[D]),H=(0,n.useCallback)(e=>{let t=null==R?void 0:R.errorFor((0,c.SN)({kind:"kds_line_ready",orderId:e,orderItemId:e,station:U}));return t?(0,c.CU)(t):void 0},[R,U]),$=(0,n.useCallback)((e,t)=>{var l;null==(l=P.current)||l.enqueue({kind:"kds_line_ready",orderId:e.dbId,orderItemId:t,station:U})},[U]),X=(0,n.useCallback)(e=>{let t=P.current;if(t)for(let l of N(e.items,k))t.enqueue({kind:"kds_line_ready",orderId:e.dbId,orderItemId:l.orderItemDbId,station:U})},[k,U]),Y=(0,n.useCallback)(async e=>{if(l&&"kitchen"===i&&!e.startsWith("__no_table__")){E(t=>{let l=new Set(t);return l.add(e),l}),q("");try{await (0,a.qE)(l,e),await O()}catch(e){q(e instanceof a.ge?e.message:"Tisch-Batch konnte nicht ausgef\xfchrt werden.")}finally{E(t=>{if(!t.has(e))return t;let l=new Set(t);return l.delete(e),l})}}},[l,i,O]),ee=null!=(t=null==R?void 0:R.entries.filter(e=>"zurueckgeholt"===e.state))?t:[],{shellRef:et,immersiveOn:el,toggleImmersive:er}=(0,s.O)(),[en,ea]=(0,n.useState)("split"),[es,ei]=(0,n.useState)(()=>({...w})),ed=(0,n.useMemo)(()=>f.filter(e=>es[e]),[es]),eo=(0,n.useCallback)(e=>{ei(t=>{let l=f.reduce((e,l)=>e+ +!!t[l],0);return t[e]&&l<=1?t:{...t,[e]:!t[e]}})},[]),ec="split"===en||"orders"===en,eu="split"===en||"batch"===en;return(0,r.jsxs)("div",{ref:et,className:"flex ".concat("embedded"===p?"h-[calc(100dvh-128px)] min-h-[360px] max-h-[100dvh]":"h-[100dvh] max-h-[100dvh]"," min-h-0 w-full flex-col overflow-hidden bg-neutral-950 text-neutral-100 [&:fullscreen]:fixed [&:fullscreen]:inset-0 [&:fullscreen]:h-auto [&:fullscreen]:max-h-none dark"),children:[L?(0,r.jsx)("div",{role:"alert",className:"flex-shrink-0 border-b border-red-800 bg-red-950 px-4 py-2 text-sm font-semibold text-red-100",children:L}):null,ee.length>0?(0,r.jsxs)("div",{role:"alert",className:"flex-shrink-0 border-b border-red-800 bg-red-950 px-4 py-2 text-sm text-red-100",children:[(0,r.jsxs)("p",{className:"font-semibold",children:[ee.length," nicht gemeldet"]}),(0,r.jsx)("ul",{className:"mt-1 flex flex-col gap-1",children:ee.map(e=>{var t;return(0,r.jsxs)("li",{className:"flex flex-wrap items-center justify-between gap-2",children:[(0,r.jsxs)("span",{children:[(0,c.KK)(e.intent),": ",(0,c.CU)(null!=(t=e.errorCode)?t:"network")]}),(0,r.jsx)("button",{type:"button",className:"rounded border border-red-300 px-2 py-1 text-xs font-bold uppercase",onClick:()=>{var t;return null==(t=P.current)?void 0:t.dismiss(e.key)},children:"Verstanden"})]},e.key)})})]}):null,"bar"===i&&!L&&0===z.length&&I.length>0?(0,r.jsxs)("div",{role:"status",className:"flex-shrink-0 border-b border-amber-900/80 bg-amber-950 px-4 py-2 text-sm text-amber-100",children:["Auftr\xe4ge enthalten keine Bar-Zeilen: Getr\xe4nke in der Speisekarte unter"," ",(0,r.jsx)("strong",{children:"Getr\xe4nke"})," (",(0,r.jsx)("code",{children:"getraenke/…"}),") einordnen oder"," ",(0,r.jsx)("strong",{children:"Kurs-Typ „Getr\xe4nk“"})," setzen."]}):null,null!=K?(0,r.jsxs)("output",{className:"sr-only","aria-live":"polite",children:["Aktualisiere Bestellung ",K]}):null,(0,r.jsx)(_,{title:g,now:j,orders:z,completedToday:C,restaurantId:l}),(0,r.jsx)(A,{stations:[...h],station:k,onStationChange:v,paneFocus:en,onPaneFocus:ea,fullscreenOn:el,onToggleFullscreen:()=>void er(),fulfillmentVisible:es,onToggleFulfillment:eo,showChannelFilters:ec}),(0,r.jsxs)("main",{className:"flex min-h-0 flex-1 flex-row overflow-hidden",children:[ec?(0,r.jsx)("div",{className:"flex min-h-0 min-w-0 flex-col overflow-hidden ".concat("orders"===en?"w-full flex-1":"flex-[4] min-w-0"),children:(0,r.jsx)(B,{orders:z,station:k,now:j,variant:i,isLinePending:Z,lineError:H,isTableBusy:J,visibleFulfillments:ed,onStart:e=>{Q(e,"preparing")},onMarkLineReady:$,onFinishAllPendingLines:X,onKitchenTableBatchAll:"kitchen"===i?Y:void 0})}):null,eu?(0,r.jsx)(S,{isolate:"batch"===en,orders:z.filter(e=>ed.includes(e.fulfillment)),station:k,now:j}):null]})]})}}}]);

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.