PageSourceSearch

https://eagleeyeapp.ai/chunk-XHGLFAEN.js

js eagleeyeapp.ai collected 2026-10-05 13:47:16 UTC 332,075 bytes, 1 lines download raw bytes

1import{a as $t}from"./chunk-32FMDXHK.js";import{A as rn,B as an,C as cn,D as dn,E as sn,G as ln,H as pn,N as hn,a as Qe,b as Ht,c as Gt,d as L,e as Ut,f as Ye,g as Wt,h as dt,i as Pe,j as Je,k as Kt,ka as gn,l as Zt,m as st,n as lt,o as Qt,p as Yt,q as pt,r as ht,s as Xe,t as Jt,u as Xt,v as en,w as tn,x as gt,y as nn,z as on}from"./chunk-4Q76AMVQ.js";import"./chunk-DGZDYJTX.js";import{a as qt}from"./chunk-2DAGKGB5.js";import"./chunk-E2DPX4CR.js";import"./chunk-JSWH3YG4.js";import"./chunk-LVAQXAS6.js";import"./chunk-HSEKANVD.js";import"./chunk-RVYQDZW3.js";import"./chunk-OVU4HL6V.js";import{c as Bt}from"./chunk-TKZ7ZTO4.js";import"./chunk-T7RZJR7M.js";import"./chunk-RNWGCKWR.js";import{a as Ze}from"./chunk-2GUDAEO7.js";import"./chunk-2FMFWWCJ.js";import"./chunk-AQI4DMGY.js";import"./chunk-MWKY4MWT.js";import"./chunk-3SSIIOOV.js";import"./chunk-IJL2HJWZ.js";import"./chunk-YZTE3GSY.js";import"./chunk-CQPZ4REP.js";import"./chunk-LWWAUQ62.js";import"./chunk-7WJLTUZ3.js";import"./chunk-FA6P7MH3.js";import"./chunk-5XN43XLQ.js";import"./chunk-STGNWGYI.js";import"./chunk-H5L5VBOI.js";import"./chunk-473Q5D2R.js";import"./chunk-ZX4U446N.js";import"./chunk-7VG44BAE.js";import"./chunk-7FU5W7UU.js";import{a as Vt}from"./chunk-LZSEQOJV.js";import"./chunk-5NUQRRUQ.js";import"./chunk-WH3OHBTV.js";import{b as ue,e as Ke}from"./chunk-76WETGRK.js";import"./chunk-BDMRZAGL.js";import"./chunk-2VIOOGAD.js";import"./chunk-LP3TLPMX.js";import{a as ct}from"./chunk-K4NOT5NL.js";import{f as Ce,g as U}from"./chunk-OBV7MABU.js";import"./chunk-NW3ON3R6.js";import"./chunk-PFAJ34J6.js";import"./chunk-PTFN24RP.js";import"./chunk-OOIE5RCV.js";import{a as Nt}from"./chunk-W36472T4.js";import"./chunk-26BABCEW.js";import"./chunk-X5Y4OIVS.js";import"./chunk-WNEDWNW3.js";import"./chunk-NKKUKY2K.js";import"./chunk-245V3OLE.js";import"./chunk-MYQQDYYR.js";import"./chunk-DE3JCI7Z.js";import"./chunk-PCGSVULU.js";import"./chunk-7F465WQU.js";import"./chunk-Q4XHNWJC.js";import"./chunk-NJSE76DD.js";import{b as Y}from"./chunk-A76SSFJT.js";import"./chunk-VBGK7T57.js";import{b as Q,d as $e,e as At,g as He,l as Ge,n as qe,p as J,y as me,z as Ue}from"./chunk-E5EF5C4Q.js";import"./chunk-FXN3YAKF.js";import"./chunk-TVLARQ36.js";import{a as ne,e as Ft,f as Lt,j as Rt}from"./chunk-YSUNEN4S.js";import{a as Ne}from"./chunk-WYAGTUFV.js";import{j as zt}from"./chunk-H5JISZXB.js";import"./chunk-NWPL5LXB.js";import{a as It}from"./chunk-QSMZDWGU.js";import"./chunk-WNADUWCM.js";import"./chunk-TQWZ6HRO.js";import"./chunk-YEBGJGBA.js";import{a as We}from"./chunk-HGYYRMCC.js";import"./chunk-VXKRA5AZ.js";import{A as Dt,D as fe}from"./chunk-YWY5HVFX.js";import{f as jt}from"./chunk-F6LH7SJ2.js";import{a as Ve,b as Be}from"./chunk-N2UJKDQV.js";import"./chunk-NCGZ3KWL.js";import"./chunk-OQT7G5N5.js";import"./chunk-KBQSQDCT.js";import{c as _e}from"./chunk-U4NM2DDX.js";import"./chunk-FSAPRAGD.js";import"./chunk-UO7DRE4I.js";import{d as ge}from"./chunk-UTIJQP7I.js";import"./chunk-NV5M52DR.js";import{b as Re}from"./chunk-4ZUA3RJI.js";import{H as te,L as q,M as kt}from"./chunk-5MIMQYA6.js";import"./chunk-FXO533NF.js";import"./chunk-RYFA5OWY.js";import{e as Et,f as F}from"./chunk-VL4ZMTLK.js";import"./chunk-U6MKL6MI.js";import{j as Tt}from"./chunk-FRCXST7L.js";import"./chunk-AUPDNQCG.js";import"./chunk-NTBWCCRK.js";import"./chunk-5JTRXRCO.js";import{J as wt,d as Fe,h as Le,m as Ae}from"./chunk-LQPBUYHC.js";import{$ as P,$a as c,$c as Ot,Ab as be,Ea as _,Eb as Ie,Fb as Se,Gb as ze,Ha as k,Ia as ve,Jc as De,Ma as m,N as we,U as se,V as ke,Wa as Pt,Wb as Te,X as N,Xb as Ee,Y as le,Za as l,_a as a,_c as yt,a as ft,aa as y,ab as I,b as mt,ba as B,ca as ee,d as ut,eb as $,fb as H,fd as he,gd as Mt,ha as bt,hb as O,id as D,jb as x,lb as s,ld as at,pb as nt,qb as ot,rb as it,rc as pe,sc as G,tb as rt,tc as j,ub as v,va as Ct,w as xt,xa as r,xb as d,yb as b,zb as C,zc as je}from"./chunk-FTL7NWI5.js";import{b as St}from"./chunk-UXX4WGHJ.js";import"./chunk-HE446HX7.js";import{c as vt}from"./chunk-HK6HU2YH.js";import"./chunk-WGTR43YW.js";import"./chunk-WPKI5YLZ.js";import"./chunk-YA7UXYJH.js";import"./chunk-WUF65SBX.js";import"./chunk-5BCGSG4H.js";import"./chunk-QSM7OU6V.js";import"./chunk-T45NJOC7.js";import"./chunk-U7G2Y4LT.js";import"./chunk-5II6SICW.js";import"./chunk-IUYMMNAB.js";import"./chunk-UWQDWZIJ.js";import"./chunk-XCHSS7CA.js";import"./chunk-DM64YLSJ.js";import"./chunk-6K2VK537.js";import"./chunk-L4ODNRAQ.js";import"./chunk-EFTPM3DM.js";import"./chunk-JBER272I.js";import"./chunk-URQIH5SL.js";import"./chunk-L2U5UFLC.js";import"./chunk-PSUEFICM.js";import{a as de,b as Me,m as g}from"./chunk-XJ4PXL2L.js";var oe=(()=>{class o{constructor(){this.title=bt(null)}set(e){this.title()!==e&&this.title.set(e)}static{this.\u0275fac=function(t){return new(t||o)}}static{this.\u0275prov=se({token:o,factory:o.\u0275fac,providedIn:"root"})}}return o}
1)();function Dn(o,h){if(o&1&&(a(0,"span",5),d(1),c()),o&2){let e=s(2).ngIf;r(),C(" ",e.batteryLevel,"% ")}}function Fn(o,h){if(o&1&&(a(0,"div",2),I(1,"span",3),a(2,"span"),d(3),c(),m(4,Dn,2,1,"span",4),c()),o&2){let e=s().ngIf,t=s();l("ngClass",t.chipClasses(e))("title",t.chipTitle(e)),r(),l("ngClass",t.dotClasses(e)),r(2),b(t.chipLabel(e)),r(),l("ngIf",e.state==="connected"&&e.batteryLevel!=null)}}function Ln(o,h){if(o&1&&($(0),m(1,Fn,5,5,"div",1),H()),o&2){let e=h.ngIf;r(),l("ngIf",e.state!=="unavailable")}}var et=(()=>{class o{constructor(e){this.status$=e.status$}chipLabel(e){switch(e.state){case"connected":return"Reader";case"connecting":return"Reader\u2026";default:return"Reader off"}}chipTitle(e){let t=e.serial?` ${e.serial}`:"";switch(e.state){case"connected":return`NYC1 reader${t} connected`;case"connecting":return`Connecting to NYC1 reader${t}\u2026`;default:return`NYC1 reader${t} not connected \u2014 wake it (press its power button)`}}chipClasses(e){switch(e.state){case"connected":return"bg-emerald-500/10 border-emerald-500/40 text-emerald-300";case"connecting":return"bg-amber-500/10 border-amber-500/40 text-amber-300";default:return"bg-rose-500/10 border-rose-500/40 text-rose-300"}}dotClasses(e){switch(e.state){case"connected":return"bg-emerald-400";case"connecting":return"bg-amber-400 animate-pulse";default:return"bg-rose-400"}}static{this.\u0275fac=function(t){return new(t||o)(_(Lt))}}static{this.\u0275cmp=k({type:o,selectors:[["app-nyc1-reader-status-chip"]],decls:2,vars:3,consts:[[4,"ngIf"],["class","flex items-center gap-1.5 rounded-full px-2.5 py-1 text-xs font-medium border select-none",3,"ngClass","title",4,"ngIf"],[1,"flex","items-center","gap-1.5","rounded-full","px-2.5","py-1","text-xs","font-medium","border","select-none",3,"ngClass","title"],[1,"w-2","h-2","rounded-full",3,"ngClass"],["class","text-[10px] opacity-75",4,"ngIf"],[1,"text-[10px]","opacity-75"]],template:function(t,n){t&1&&(m(0,Ln,2,1,"ng-container",0),Te(1,"async")),t&2&&l("ngIf",Ee(1,1,n.status$))},dependencies:[De,pe,j,je],encapsulation:2})}}return o})();var fn=(()=>{class o{constructor(e,t,n,i,p,f,u){this.router=e,this.nativeDeviceConfig=t,this.kdsSettingsService=n,this.impactPrintRelayService=i,this.impactPrintBroadcastService=p,this.impactPrintLeaseRelayService=f,this.titleService=u,this.deviceName=null,this.routeTitle=null}ngOnInit(){let e=this.nativeDeviceConfig.getConfig();this.deviceName=e?.deviceName??null,this.routeTitle=this.readRouteTitle(),this.routerEvents=this.router.events.subscribe(t=>{t instanceof yt?this.titleService.set(null):t instanceof Ot&&(this.routeTitle=this.readRouteTitle())}),this.kdsSettingsService.loadForCurrentCorporation(),this.impactPrintRelayService.start(),this.impactPrintBroadcastService.start(),this.impactPrintLeaseRelayService.start(),vt.isNativePlatform()&&It.lock({orientation:"portrait"}).catch(t=>{console.warn("[PosHandheldLayout] portrait orientation lock failed",t)})}ngOnDestroy(){this.routerEvents?.unsubscribe(),this.titleService.set(null)}readRouteTitle(){let e=this.router.routerState.snapshot.root,t=null;for(;e;)t=e.data?.title??t,e=e.firstChild;return t}back(){window.history.length>1?window.history.back():this.router.navigateByUrl("/pos-handheld")}static{this.\u0275fac=function(t){return new(t||o)(_(D),_(_e),_(Qe),_($t),_(Ht),_(Gt),_(oe))}}static{this.\u0275cmp=k({type:o,selectors:[["app-pos-handheld-layout"]],standalone:!1,decls:12,vars:1,consts:[[1,"handheld-shell"],[1,"handheld-shell__topbar"],["aria-label","Back",1,"handheld-shell__back",3,"click"],["width","24","height","24","viewBox","0 0 24 24","fill","none","stroke","currentColor","stroke-width","2","stroke-linecap","round","stroke-linejoin","round"],["points","15 18 9 12 15 6"],[1,"handheld-shell__title"],[1,"handheld-shell__topbar-slot"],[1,"handheld-shell__body"],[1,"handheld-shell__actionbar"]],template:function(t,n){t&1&&(a(0,"div",0)(1,"header",1)(2,"button",2),x("click",function(){return n.back()}),B(),a(3,"svg",3),I(4,"polyline",4),c()(),ee(),a(5,"div",5),d(6),c(),a(7,"div",6),I(8,"app-nyc1-reader-status-chip"),c()(),a(9,"main",7),I(10,"router-outlet"),c(),I(11,"footer",8),c()),t&2&&(r(6),C(" ",n.titleService.title()??n.routeTitle??n.deviceName??"POS"," "))},dependencies:[Mt,et],styles:["[_nghost-%COMP%]{display:block;position:absolute;inset:0}.handheld-shell[_ngcontent-%COMP%]{position:absolute;inset:0;display:flex;flex-direction:column;background:#0f172a;color:#f1f5f9}.handheld-shell__topbar[_ngcontent-%COMP%]{display:flex;align-items:center;gap:12px;padding:4px 12px 4px 4px;background:#1e293b;border-bottom:1px solid #334155;min-height:52px;flex-shrink:0}.handheld-shell__back[_ngcontent-%COMP%]{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border:none;border-radius:10px;background:transparent;color:#cbd5e1;cursor:pointer;transition:background .15s ease}.handheld-shell__back[_ngcontent-%COMP%]:hover{background:#334155}.handheld-shell__back[_ngcontent-%COMP%]:active{background:#475569}.handheld-shell__title[_ngcontent-%COMP%]{flex:1;font-size:1rem;font-weight:600;color:#f8fafc;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.handheld-shell__topbar-slot[_ngcontent-%COMP%]{display:flex;align-items:center;min-width:44px}.handheld-shell__body[_ngcontent-%COMP%]{flex:1;overflow-y:auto;padding-bottom:env(safe-area-inset-bottom)}
1.handheld-shell__actionbar[_ngcontent-%COMP%]{min-height:0;flex-shrink:0;background:#1e293b;border-top:1px solid #334155}.handheld-shell__actionbar[_ngcontent-%COMP%]:not(:empty){padding:12px 16px env(safe-area-inset-bottom)}"]})}}return o})();var mn=(()=>{class o{constructor(e,t,n,i){this.deviceConfigWriter=e,this.nativeDeviceConfig=t,this.authService=n,this.terminalServerService=i}resetDevice(){return g(this,arguments,function*(e={}){let t=e.reload!==!1,n=!1;try{n=yield this.deviceConfigWriter.deleteDeviceConfig()}catch(p){console.error("[DeviceReset] deleteDeviceConfig failed",p)}try{this.nativeDeviceConfig.clearInMemory()}catch(p){console.error("[DeviceReset] clearInMemory failed",p)}try{yield this.authService.logout("device-reset")}catch(p){console.error("[DeviceReset] logout failed",p)}try{zt()}catch(p){console.error("[DeviceReset] clearCorporationContext failed",p)}try{yield this.terminalServerService.clearAllAssignedReaders()}catch(p){console.error("[DeviceReset] clearAllAssignedReaders failed",p)}let i=!1;try{i=yield this.deviceConfigWriter.configFileExists()}catch(p){console.error("[DeviceReset] configFileExists check failed",p)}return t&&!i&&typeof window<"u"&&window.location.reload(),{configDeleted:n,configStillPresent:i}})}static{this.\u0275fac=function(t){return new(t||o)(N(Nt),N(_e),N(Tt),N(ne))}}static{this.\u0275prov=se({token:o,factory:o.\u0275fac,providedIn:"root"})}}return o})();function Vn(o,h){if(o&1){let e=O();a(0,"button",2),x("click",function(){P(e);let n=s();return y(n.goToMyTips())}),a(1,"span",3),B(),a(2,"svg",12),I(3,"path",17),c()(),ee(),a(4,"span",7),d(5,"My Tips"),c()()}}var un=(()=>{class o{constructor(e,t,n,i,p,f,u){this.router=e,this.orderService=t,this.accountService=n,this.toastController=i,this.alertController=p,this.deviceResetService=f,this.convergenceFlag=u,this.corporationDetailId=null,this.myEmployeeId=null,this.placingOrder=!1,this.canSeeMyTips=!1}ngOnInit(){return g(this,null,function*(){try{this.corporationDetailId=yield this.accountService.getCorporationDetailId(),this.myEmployeeId=yield this.accountService.getCorporationEmployeeId();let e=yield this.accountService.getEmployeePointOfSalePermissions();this.canSeeMyTips=!!(e?.canCompleteShiftReview||e?.canApproveShiftReviews||e?.canManagePos)}catch(e){console.error("[Handheld/Menu] failed to resolve account context",e)}})}goToTableService(){this.router.navigate(["/pos-handheld/tables"])}goToOrders(){this.router.navigate(["/pos-handheld/orders"])}goToGiftCards(){this.router.navigate(["/pos-handheld/gift-cards"])}goToMyTips(){this.router.navigate(["/pos-handheld/my-tips"])}placeOrder(){return g(this,null,function*(){if(!this.placingOrder){if(this.convergenceFlag.useConvergedPosStack()){yield this.router.navigate(["/pos/place-order"]);return}this.placingOrder=!0;try{if(!this.corporationDetailId){yield this.toast("Unable to determine the venue for this device.");return}let e=yield this.orderService.createOrder(this.corporationDetailId,{createdByEmployeeId:this.myEmployeeId,deferCheck:!0});e?.orderId?this.router.navigate(["/pos-handheld/order",e.orderId]):yield this.toast("Could not start an order. Please try again.")}catch(e){console.error("[Handheld/Menu] placeOrder failed",e),yield this.toast("Could not start an order. Check the connection and try again.")}finally{this.placingOrder=!1}}})}confirmResetDevice(){return g(this,null,function*(){yield(yield this.alertController.create({header:"Reset this device?",message:"Unpairs the device and logs out. You'll need a new pairing code and a login to use it again.",buttons:[{text:"Cancel",role:"cancel"},{text:"Reset device",role:"destructive",handler:()=>{this.performReset()}}]})).present()})}performReset(){return g(this,null,function*(){(yield this.deviceResetService.resetDevice()).configStillPresent&&(yield this.toast("Logged out, but the pairing file is on locked storage and couldn\u2019t be removed. A tech must delete /sdcard/EagleEye/device-config.json via USB."))})}toast(e){return g(this,null,function*(){yield(yield this.toastController.create({message:e,duration:1600,position:"bottom"})).present()})}static{this.\u0275fac=function(t){return new(t||o)(_(D),_(U),_(F),_(q),_(te),_(mn),_(Y))}}static{this.\u0275cmp=k({type:o,selectors:[["app-pos-handheld-menu"]],standalone:!1,decls:33,vars:3,consts:[[1,"hh-page","hh-menu"],[1,"hh-menu__grid"],["type","button",1,"hh-menu__tile",3,"click"],[1,"hh-menu__icon"],["xmlns","http://www.w3.org/2000/svg","viewBox","0 0 24 24","fill","none","stroke","currentColor","stroke-width","2","stroke-linecap","round","stroke-linejoin","round"],["stroke","none","d","M0 0h24v24H0z","fill","none"],["d","M16 7l2 9m-10 -9l-2 9m-1 -9h14m2 5h-18"],[1,"hh-menu__label"],["type","button",1,"hh-menu__tile",3,"click","disabled"],["d","M5 21v-16a2 2 0 0 1 2 -2h10a2 2 0 0 1 2 2v16l-3 -2l-2 2l-2 -2l-2 2l-2 -2l-3 2"],["d","M14.8 8a2 2 0 0 0 -1.8 -1h-2a2 2 0 1 0 0 4h2a2 2 0 1 1 0 4h-2a2 2 0 0 1 -1.8 -1"],["d","M12 6v10"],["xmlns","http://www.w3.org/2000/svg","fill","none","viewBox","0 0 24 24","stroke-width","1.5","stroke","currentColor"],["stroke-linecap","round","stroke-linejoin","round","d","M19.5 12c0-1.232-.046-2.453-.138-3.662a4.006 4.006 0 0 0-3.7-3.7 48.678 48.678 0 0 0-7.324 0 4.006 4.006 0 0 0-3.7 3.7c-.017.22-.032.441-.046.662M19.5 12l3-3m-3 3-3-3m-12 3c0 1.232.046 2.453.138 3.662a4.006 4.006 0 0 0 3.7 3.7 48.656 48.656 0 0 0 7.324 0 4.006 4.006 0 0 0 3.7-3.7c.017-.22.032-.441.046-.662M4.5 12l3 3m-3-3-3 3"],["stroke-linecap","round","stroke-linejoin","round","d","M21 11.25v8.25a1.5 1.5 0 0 1-1.5 1.5H5.25a1.5 1.5 0 0 1-1.5-1.5v-8.25M12 4.875A2.625 2.625 0 1 0 9.375 7.5H12m0-2.625V7.5m0-2.625A2.625 2.625 0 1 1 14.625 7.5H12m0 0V21m-8.625-9.75h18c.621 0 1.125-.504 1.125-1.125v-1.5c0-.621-.504-1.125-1.125-1.125h-18c-.621 0-1.125.504-1.125 1.125v1.5c0 .621.504 1.125 1.125 1.125Z"],["type","button","class","hh-menu__tile",3,"click",4,"ngIf"],["type","button",1,"hh-menu__reset",3,"click"],["stroke-linecap","round","stroke-linejoin","round","d","M12 6v12m-3-2.818.879.659c1.171.879 3.07.879 4.242 0 1.172-.879 1.172-2.303 0-3.182C13.536 12.219 12.768 12 12 12c-.725 0-1.45-.22-2.003-.659-1.106-.879-1.106-2.303 0-3.182s2.9-.879 4.006 0l.415.33M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"]],template:function(t,n){t&1&&(a(0,"div",0)(1,"div",1)(2,"button",2),x("click",function(){return n.goToTableService()}),a(3,"span",3),B(),a(4,"svg",4),I(5,"path",5)(6,"path",6),c()(),ee(),a(7,"span",7),d(8,"Table Service"),c()(),a(9,"button",8),x("click",function(){return n.placeOrder()}),a(10,"span",3),B(),a(11,"svg",4),I(12,"path",5)(13,"path",9)(14,"path",10)(15,"path",11),c()(),ee(),a(16,"span",7),d(17),c()(),a(18,"button",2),x("click",function(){return n.goToOrders()}),a(19,"span",3),B(),a(20,"svg",12),I(21,"path",13),c()(),ee(),a(22,"span",7),d(23,"Orders"),c()(),a(24,"button",2),x("click",function(){return n.goToGiftCards()}),a(25,"span",3),B(),a(26,"svg",12),I(27,"path",14),c()(),ee(),a(28,"span",7),d(29,"Gift Cards"),c()(),m(30,Vn,6,0,"button",15),c(),a(31,"button",16),x("click",function(){return n.confirmResetDevice()}),d(32," Reset / unpair this device "),c()()),t&2&&(r(9),l("disabled",n.placingOrder),r(8),b(n.placingOrder?"Starting\u2026":"Place Order"),r(13),l("ngIf",n.canSeeMyTips))},dependencies:[j],styles:['@charset "UTF-8";.handheld-stub[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:32px 24px;min-height:100%;color:#f1f5f9}.handheld-stub[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%]{font-size:1.5rem;font-weight:600;margin:0 0 12px}.handheld-stub__hint[_ngcontent-%COMP%]{font-size:1rem;color:#cbd5e1;margin:0 0 8px}.handheld-stub__note[_ngcontent-%COMP%]{font-size:.8rem;color:#64748b;margin:0;font-family:ui-monospace,Cascadia Code,Fira Code,monospace}.hh-menu__grid[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
1.hh-menu__tile[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;min-height:124px;padding:20px 12px;border:1px solid #334155;border-radius:16px;background:#1e293b;color:#f1f5f9;cursor:pointer;-webkit-tap-highlight-color:transparent}.hh-menu__tile[_ngcontent-%COMP%]:active{background:#334155}.hh-menu__tile[_ngcontent-%COMP%]:disabled{opacity:.6}.hh-menu__icon[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;width:54px;height:54px;border-radius:14px;background:#60a5fa24;color:#60a5fa}.hh-menu__icon[_ngcontent-%COMP%]   svg[_ngcontent-%COMP%]{width:30px;height:30px}.hh-menu__label[_ngcontent-%COMP%]{font-size:1.05rem;font-weight:700;text-align:center}.hh-menu__reset[_ngcontent-%COMP%]{display:block;margin:18px auto 4px;padding:10px 16px;border:1px solid #475569;border-radius:12px;background:transparent;color:#94a3b8;font-size:.9rem;font-weight:600;-webkit-tap-highlight-color:transparent}.hh-menu__reset[_ngcontent-%COMP%]:active{background:#1e293b;color:#fca5a5;border-color:#b91c1c}.hh-page[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:10px;padding:16px;min-height:100%;color:#f1f5f9}.hh-page__heading[_ngcontent-%COMP%]{font-size:1.25rem;font-weight:700;margin:4px 2px 8px}.hh-page__muted[_ngcontent-%COMP%]{color:#94a3b8;font-size:.95rem;margin:8px 2px}.hh-page__error[_ngcontent-%COMP%]{color:#fca5a5;font-size:.95rem;margin:8px 2px}.hh-tile[_ngcontent-%COMP%]{display:flex;align-items:center;gap:12px;width:100%;padding:18px 16px;border:1px solid #334155;border-radius:14px;background:#1e293b;color:#f1f5f9;font-size:1.1rem;font-weight:600;text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent}.hh-tile[_ngcontent-%COMP%]:active{background:#334155}.hh-tile__label[_ngcontent-%COMP%]{flex:1 1 auto}.hh-tile__meta[_ngcontent-%COMP%]{flex:0 0 auto;font-size:.85rem;font-weight:500;color:#94a3b8}.hh-tile__chevron[_ngcontent-%COMP%]{flex:0 0 auto;color:#64748b}.hh-table[_ngcontent-%COMP%]{padding:12px 14px;border-left-width:4px}.hh-table[_ngcontent-%COMP%]:disabled{cursor:default;opacity:.55}.hh-table__seats[_ngcontent-%COMP%]{display:block;font-size:.8rem;font-weight:500;color:#94a3b8}.hh-table__state[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:flex-end;flex:0 0 auto;gap:2px}.hh-table__status[_ngcontent-%COMP%]{font-size:.85rem;font-weight:700;color:#94a3b8}.hh-table__detail[_ngcontent-%COMP%]{font-size:.8rem;font-weight:500;color:#cbd5e1}.hh-table--occupied[_ngcontent-%COMP%]{border-left-color:#38bdf8;background:#172b45}.hh-table--occupied[_ngcontent-%COMP%]   .hh-table__status[_ngcontent-%COMP%]{color:#7dd3fc}.hh-table--paid[_ngcontent-%COMP%]{border-left-color:#22c55e}.hh-table--paid[_ngcontent-%COMP%]   .hh-table__status[_ngcontent-%COMP%]{color:#86efac}.hh-table--bussing[_ngcontent-%COMP%]{border-left-color:#f59e0b}.hh-table--bussing[_ngcontent-%COMP%]   .hh-table__status[_ngcontent-%COMP%]{color:#fcd34d}.hh-cta[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:18px 16px;border:none;border-radius:14px;background:#22c55e;color:#052e16;font-size:1.1rem;font-weight:700;cursor:pointer;-webkit-tap-highlight-color:transparent}.hh-cta[_ngcontent-%COMP%]:active{background:#16a34a}.hh-cta[_ngcontent-%COMP%]:disabled{background:#334155;color:#64748b}.hh-divider[_ngcontent-%COMP%]{display:flex;align-items:center;gap:10px;margin:8px 2px 2px;color:#64748b;font-size:.8rem;text-transform:uppercase;letter-spacing:.04em}.hh-divider[_ngcontent-%COMP%]:before, .hh-divider[_ngcontent-%COMP%]:after{content:"";flex:1 1 auto;height:1px;background:#334155}.hh-order[_ngcontent-%COMP%]{padding-bottom:0}.hh-seg[_ngcontent-%COMP%]{display:flex;gap:6px;margin:4px 0 12px;padding:5px;background:#1e293b;border-radius:12px}.hh-seg__btn[_ngcontent-%COMP%]{flex:1 1 0;min-height:44px;padding:10px 8px;border:none;border-radius:9px;background:transparent;color:#94a3b8;font-size:1rem;font-weight:700;-webkit-tap-highlight-color:transparent}.hh-seg__btn--active[_ngcontent-%COMP%]{background:#0f172a;color:#f1f5f9}.hh-seats[_ngcontent-%COMP%]{display:flex;align-items:center;gap:6px;margin:0 0 12px;padding-bottom:2px;overflow-x:auto;-webkit-overflow-scrolling:touch}.hh-seats[_ngcontent-%COMP%]::-webkit-scrollbar{display:none}.hh-seats__chip[_ngcontent-%COMP%]{flex:0 0 auto;min-width:44px;padding:10px 14px;border:1px solid #334155;border-radius:999px;background:#1e293b;color:#cbd5e1;font-size:.95rem;font-weight:700;-webkit-tap-highlight-color:transparent}.hh-seats__chip--active[_ngcontent-%COMP%]{border-color:#60a5fa;background:#60a5fa2e;color:#f1f5f9}.hh-seats__add[_ngcontent-%COMP%]{flex:0 0 auto;padding:10px 14px;border:1px dashed #475569;border-radius:999px;background:transparent;color:#94a3b8;font-size:.95rem;font-weight:700;white-space:nowrap;-webkit-tap-highlight-color:transparent}.hh-seats__add[_ngcontent-%COMP%]:active{background:#1e293b}.hh-seats__add[_ngcontent-%COMP%]:disabled{opacity:.5}
1.hh-order__search[_ngcontent-%COMP%]{width:100%;padding:12px 14px;margin-bottom:10px;border-radius:12px;border:1px solid #334155;background:#0f172a;color:#f1f5f9;font-size:1rem;outline:none}.hh-order__search[_ngcontent-%COMP%]::placeholder{color:#64748b}.hh-order__group[_ngcontent-%COMP%]{font-size:.8rem;text-transform:uppercase;letter-spacing:.04em;color:#94a3b8;margin:14px 2px 6px}.hh-menu__groups[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:12px}.hh-menu__group[_ngcontent-%COMP%]{min-height:60px;padding:10px 8px;border:1px solid #334155;border-radius:12px;font-size:.95rem;font-weight:700;line-height:1.15;text-align:center;display:flex;align-items:center;justify-content:center;-webkit-tap-highlight-color:transparent}.hh-menu__group[_ngcontent-%COMP%]:active{filter:brightness(1.15)}.hh-menu__group--active[_ngcontent-%COMP%]{box-shadow:inset 0 0 0 3px #ffffffd9;font-weight:800}.hh-menu__items[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.hh-menu__item[_ngcontent-%COMP%]{flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:84px;padding:12px 10px;text-align:center}.hh-menu__item[_ngcontent-%COMP%]   .hh-tile__label[_ngcontent-%COMP%]{flex:0 0 auto;width:100%;line-height:1.15}.hh-menu__item[_ngcontent-%COMP%]   .hh-tile__meta[_ngcontent-%COMP%]{color:inherit;opacity:.8}.hh-order__table[_ngcontent-%COMP%]{margin-left:8px;font-size:.95rem;font-weight:600;color:#60a5fa}.hh-order__item[_ngcontent-%COMP%]{font-size:1rem;padding:14px 16px;margin-bottom:8px}.hh-order__line[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:10px;padding:12px 14px;border:1px solid #334155;border-radius:12px;background:#1e293b;margin-bottom:8px}.hh-order__line--selectable[_ngcontent-%COMP%]{cursor:pointer}.hh-order__line--selected[_ngcontent-%COMP%]{border-color:#60a5fa;background:#60a5fa24}.hh-order__line--held[_ngcontent-%COMP%]{border-color:#d97706;background:#d9770629}
1.hh-order__line--sent[_ngcontent-%COMP%]{opacity:.62}.hh-order__line--ready[_ngcontent-%COMP%]{border-color:#16a34a;background:#16a34a29}.hh-order__line-info[_ngcontent-%COMP%]{display:flex;justify-content:space-between;font-weight:600}.hh-order__line-name[_ngcontent-%COMP%]{flex:1 1 auto;padding-right:8px}.hh-order__line-check[_ngcontent-%COMP%]{margin-right:6px;color:#60a5fa;font-size:1.05rem}.hh-order__line-badge[_ngcontent-%COMP%]{margin-left:8px;padding:1px 7px;border-radius:999px;font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;vertical-align:middle}.hh-order__line-badge--held[_ngcontent-%COMP%]{background:#d9770640;color:#fcd34d}.hh-order__line-badge--sent[_ngcontent-%COMP%]{background:#94a3b838;color:#cbd5e1}.hh-order__line-badge--ready[_ngcontent-%COMP%]{background:#16a34a40;color:#86efac}.hh-order__kds-hint[_ngcontent-%COMP%]{margin:0 0 6px;font-size:.78rem;color:#94a3b8;text-align:center}.hh-order__stepper[_ngcontent-%COMP%]{display:flex;align-items:center;gap:10px}.hh-step[_ngcontent-%COMP%]{width:42px;height:42px;border-radius:10px;border:1px solid #475569;background:#0f172a;color:#f1f5f9;font-size:1.5rem;line-height:1}.hh-step[_ngcontent-%COMP%]:active{background:#334155}.hh-step__qty[_ngcontent-%COMP%]{min-width:26px;text-align:center;font-weight:700}.hh-order__line-actions[_ngcontent-%COMP%]{margin-left:auto;display:flex;align-items:center;gap:14px}.hh-order__mod-btn[_ngcontent-%COMP%]{background:transparent;border:none;color:#60a5fa;font-size:.9rem;font-weight:600}.hh-order__remove[_ngcontent-%COMP%]{background:transparent;border:none;color:#fca5a5;font-size:.9rem}.hh-order__item[_ngcontent-%COMP%]   .hh-tile__meta[_ngcontent-%COMP%]{color:inherit;opacity:.8}.hh-order__footer[_ngcontent-%COMP%]{position:sticky;bottom:0;margin-top:auto;padding:12px 0 6px;background:linear-gradient(180deg,#0f172a66,#0f172a 28%)}.hh-order__totals[_ngcontent-%COMP%]{font-size:.95rem;color:#cbd5e1;margin-bottom:8px}.hh-order__totals[_ngcontent-%COMP%] > div[_ngcontent-%COMP%]{display:flex;justify-content:space-between;padding:2px}.hh-order__grand[_ngcontent-%COMP%]{font-size:1.1rem;font-weight:700;color:#f1f5f9;border-top:1px solid #334155;margin-top:4px;padding-top:6px}.hh-order__paid-line[_ngcontent-%COMP%]{color:#34d399;font-weight:600}.hh-order__balance[_ngcontent-%COMP%]{font-size:1.1rem;font-weight:700;color:#f1f5f9;border-top:1px solid #334155;margin-top:4px;padding-top:6px}.hh-order__kds[_ngcontent-%COMP%]{display:block;margin-bottom:8px}.hh-order__actions[_ngcontent-%COMP%]{display:flex;gap:10px;align-items:stretch}.hh-order__print[_ngcontent-%COMP%]{flex:0 0 auto;padding:14px 12px;border:1px solid #475569;border-radius:14px;background:#1e293b;color:#e2e8f0;font-size:1.05rem;font-weight:700;white-space:nowrap;-webkit-tap-highlight-color:transparent}.hh-order__print[_ngcontent-%COMP%]:active{background:#334155}.hh-order__print[_ngcontent-%COMP%]:disabled{opacity:.6}.hh-order__discount[_ngcontent-%COMP%]{flex:0 0 auto;padding:14px 12px;border:1px solid #475569;border-radius:14px;background:#1e293b;color:#e2e8f0;font-size:1.05rem;font-weight:700;white-space:nowrap;-webkit-tap-highlight-color:transparent}.hh-order__discount[_ngcontent-%COMP%]:active{background:#334155}.hh-order__discount[_ngcontent-%COMP%]:disabled{opacity:.6}.hh-order__pay[_ngcontent-%COMP%]{flex:1 1 auto;width:100%;padding:14px 10px;white-space:nowrap;border:none;border-radius:14px;background:#22c55e;color:#052e16;font-size:1.15rem;font-weight:700}.hh-order__pay[_ngcontent-%COMP%]:active{background:#16a34a}.hh-order__pay[_ngcontent-%COMP%]:disabled{background:#334155;color:#64748b}.hh-order__pay--secondary[_ngcontent-%COMP%]:not(:disabled){border:1px solid #22c55e;background:#1e293b;color:#86efac}.hh-order__pay--secondary[_ngcontent-%COMP%]:not(:disabled):active{background:#0f172a}.hh-list__top[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:10px;margin-bottom:6px}.hh-list__tabs.hh-seg[_ngcontent-%COMP%]{margin:0}.hh-list__tabs[_ngcontent-%COMP%]   .hh-seg__btn[_ngcontent-%COMP%]{padding:10px 4px;font-size:.95rem}.hh-list__actions[_ngcontent-%COMP%]{display:flex;gap:8px}.hh-list__tables[_ngcontent-%COMP%]{flex:1 1 auto;display:flex;align-items:center;justify-content:center;padding:18px 16px;border:none;border-radius:14px;background:#22c55e;color:#052e16;font-size:1.1rem;font-weight:700;-webkit-tap-highlight-color:transparent}.hh-list__tables[_ngcontent-%COMP%]:active{background:#16a34a}.hh-list__new[_ngcontent-%COMP%]{flex:0 0 auto;padding:14px 18px;border:1px solid #475569;border-radius:14px;background:#1e293b;color:#f1f5f9;font-size:1rem;font-weight:600;-webkit-tap-highlight-color:transparent}.hh-list__new[_ngcontent-%COMP%]:active{background:#334155}.hh-list__new[_ngcontent-%COMP%]:disabled{background:#0f172a;color:#64748b}.hh-order-card[_ngcontent-%COMP%]{display:flex;align-items:stretch;gap:12px;width:100%;padding:14px;margin-bottom:8px;border:1px solid #334155;border-radius:14px;background:#1e293b;color:#f1f5f9;text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent}.hh-order-card[_ngcontent-%COMP%]:active{background:#334155}.hh-order-card--voided[_ngcontent-%COMP%]{border-left:3px solid #64748b}.hh-order-card__id[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:flex-start;gap:6px;flex:0 0 auto;min-width:64px}.hh-order-card__num[_ngcontent-%COMP%]{font-size:1.35rem;font-weight:800;line-height:1}.hh-order-card__body[_ngcontent-%COMP%]{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;justify-content:center;gap:4px}.hh-order-card__title[_ngcontent-%COMP%]{font-size:1rem;font-weight:600;line-height:1.2;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.hh-order-card__meta[_ngcontent-%COMP%]{font-size:.8rem;color:#94a3b8}.hh-order-card__approval[_ngcontent-%COMP%]{display:flex;gap:8px;margin-top:8px}.hh-approve-btn[_ngcontent-%COMP%], .hh-reject-btn[_ngcontent-%COMP%]{padding:6px 14px;border-radius:8px;font-size:.8rem;font-weight:700;border:none;cursor:pointer}.hh-approve-btn[_ngcontent-%COMP%]:disabled, .hh-reject-btn[_ngcontent-%COMP%]:disabled{opacity:.5}
1.hh-approve-btn[_ngcontent-%COMP%]{background:#059669;color:#fff}.hh-reject-btn[_ngcontent-%COMP%]{background:#ef444426;color:#f87171;border:1px solid rgba(239,68,68,.4)}.hh-order-card__amounts[_ngcontent-%COMP%]{flex:0 0 auto;align-self:center;display:flex;flex-direction:column;align-items:flex-end;gap:2px}.hh-order-card__total[_ngcontent-%COMP%]{font-size:1.05rem;font-weight:700}.hh-order-card__total--struck[_ngcontent-%COMP%]{text-decoration:line-through;color:#94a3b8}.hh-order-card__tip[_ngcontent-%COMP%]{font-size:.75rem;font-weight:600;color:#34d399;white-space:nowrap}.hh-badge[_ngcontent-%COMP%]{font-size:.62rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;padding:2px 7px;border-radius:9px;color:#fff}.hh-badge--void[_ngcontent-%COMP%]{background:#475569;color:#cbd5e1}.hh-badge--cash[_ngcontent-%COMP%]{background:#059669}.hh-badge--split[_ngcontent-%COMP%]{background:#4f46e5}.hh-mod[_ngcontent-%COMP%]{position:fixed;inset:0;z-index:1000;background:#020617b3;display:flex;flex-direction:column;justify-content:flex-end}.hh-mod__sheet[_ngcontent-%COMP%]{display:flex;flex-direction:column;max-height:92%;background:#0f172a;border-top:1px solid #334155;border-top-left-radius:18px;border-top-right-radius:18px;color:#f1f5f9}.hh-mod__header[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px;border-bottom:1px solid #1e293b}.hh-mod__title[_ngcontent-%COMP%]{font-size:1.15rem;font-weight:700}.hh-mod__close[_ngcontent-%COMP%]{flex:0 0 auto;width:40px;height:40px;border:none;background:transparent;color:#94a3b8;font-size:1.3rem}.hh-mod__body[_ngcontent-%COMP%]{padding:12px 16px;overflow-y:auto}.hh-mod__special[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%;margin-bottom:16px;padding:10px 14px;border:1px dashed #475569;border-radius:10px;background:#94a3b814;color:#e2e8f0;text-align:left}.hh-mod__special[_ngcontent-%COMP%]:disabled{opacity:.5}.hh-mod__special--set[_ngcontent-%COMP%]{border-style:solid;border-color:#f59e0b;background:#f59e0b1f}.hh-mod__special-label[_ngcontent-%COMP%]{font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:#94a3b8}.hh-mod__special-value[_ngcontent-%COMP%]{font-size:.95rem;line-height:1.3;word-break:break-word}.hh-mod__group[_ngcontent-%COMP%]{margin-bottom:16px}.hh-mod__group-name[_ngcontent-%COMP%]{display:flex;align-items:baseline;justify-content:space-between;gap:8px;font-size:1rem;font-weight:700;margin-bottom:8px}.hh-mod__group-hint[_ngcontent-%COMP%]{flex:0 0 auto;font-size:.72rem;font-weight:500;color:#94a3b8;text-transform:uppercase;letter-spacing:.03em}.hh-mod__options[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-bottom:4px}.hh-mod__opt[_ngcontent-%COMP%]{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:64px;padding:12px 10px;border:1px solid #334155;border-radius:12px;background:#1e293b;color:#f1f5f9;font-size:1rem;font-weight:600;text-align:center;line-height:1.15}.hh-mod__opt--selected[_ngcontent-%COMP%]{border-color:#22c55e;background:#14321f}.hh-mod__opt-check[_ngcontent-%COMP%]{position:absolute;top:6px;right:8px;color:#22c55e;font-weight:800;font-size:.85rem}.hh-mod__opt-name[_ngcontent-%COMP%]{width:100%}.hh-mod__opt-price[_ngcontent-%COMP%]{color:#94a3b8;font-size:.82rem;font-weight:500}.hh-mod__footer[_ngcontent-%COMP%]{display:flex;flex-direction:row;gap:12px;padding:12px 16px;border-top:1px solid #1e293b}.hh-mod__btn[_ngcontent-%COMP%]{flex:1 1 0;display:inline-flex;align-items:center;justify-content:center;padding:16px;border-radius:12px;font-size:1.05rem;font-weight:700;line-height:1;cursor:pointer;-webkit-tap-highlight-color:transparent}.hh-mod__btn--cancel[_ngcontent-%COMP%]{border:1px solid #475569;background:#1e293b;color:#e2e8f0}.hh-mod__btn--save[_ngcontent-%COMP%]{border:1px solid #22c55e;background:#22c55e;color:#052e16}.hh-mod__btn[_ngcontent-%COMP%]:disabled{opacity:.6}.hh-mod__premods[_ngcontent-%COMP%]{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:6px;margin:0 0 6px}.hh-mod__premod[_ngcontent-%COMP%]{padding:7px 13px;border:1px solid #475569;border-radius:999px;background:#0f172a;color:#cbd5e1;font-size:.85rem;font-weight:600}.hh-mod__premod--active[_ngcontent-%COMP%]{border-color:#22c55e;background:#14321f;color:#f1f5f9}.hh-mod__premod[_ngcontent-%COMP%]:disabled{opacity:.6}.hh-order__line-mods[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:2px 14px;padding-left:2px}.hh-order__line-mod[_ngcontent-%COMP%]{font-size:.82rem;line-height:1.35;color:#94a3b8}.hh-order__line-mod[_ngcontent-%COMP%]:before{content:"\\b7  ";color:#64748b}.hh-order__line-note[_ngcontent-%COMP%]{margin-top:2px;padding-left:2px;font-size:.82rem;font-style:italic;line-height:1.35;color:#fbbf24;word-break:break-word}.hh-pay-confirm[_ngcontent-%COMP%]{position:fixed;inset:0;z-index:1100;background:#020617eb;display:flex;align-items:center;justify-content:center;padding:24px}.hh-pay-confirm__card[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;width:100%;max-width:420px}.hh-pay-confirm__check[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;width:84px;height:84px;margin-bottom:6px;border-radius:999px;background:#14321f;border:2px solid #22c55e;color:#22c55e;font-size:2.6rem;font-weight:700;line-height:1}.hh-pay-confirm__title[_ngcontent-%COMP%]{font-size:1.4rem;font-weight:700;color:#f1f5f9}
1.hh-pay-confirm__amount[_ngcontent-%COMP%]{font-size:2.2rem;font-weight:800;color:#22c55e}.hh-pay-confirm__tip[_ngcontent-%COMP%]{font-size:1rem;font-weight:600;color:#86efac}.hh-pay-confirm__sub[_ngcontent-%COMP%]{font-size:.95rem;color:#94a3b8}.hh-pay-confirm__print[_ngcontent-%COMP%]{width:100%;margin-top:18px;padding:16px;border:1px solid #475569;border-radius:14px;background:#1e293b;color:#e2e8f0;font-size:1.1rem;font-weight:700}.hh-pay-confirm__print[_ngcontent-%COMP%]:active{background:#334155}.hh-pay-confirm__print[_ngcontent-%COMP%]:disabled{opacity:.6}.hh-pay-confirm__done[_ngcontent-%COMP%]{width:100%;margin-top:10px;padding:16px;border:none;border-radius:14px;background:#22c55e;color:#052e16;font-size:1.15rem;font-weight:700}.hh-pay-confirm__done[_ngcontent-%COMP%]:active{background:#16a34a}.hh-tips__top[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:flex-end;gap:10px}.hh-tips__top[_ngcontent-%COMP%]   .hh-page__heading[_ngcontent-%COMP%]{margin:0}.hh-tips__refresh[_ngcontent-%COMP%]{padding:8px 14px;border:1px solid #334155;border-radius:10px;background:#1e293b;color:#e2e8f0;font-size:.9rem;font-weight:600}.hh-tips__refresh[_ngcontent-%COMP%]:disabled{opacity:.6}.hh-tips__cards[_ngcontent-%COMP%]{display:grid;grid-template-columns:1fr 1fr;gap:8px}.hh-tips__card[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:4px;padding:12px;border:1px solid #334155;border-radius:12px;background:#0f172a}.hh-tips__card-label[_ngcontent-%COMP%]{color:#94a3b8;font-size:.78rem}.hh-tips__card-value[_ngcontent-%COMP%]{font-size:1.2rem;font-weight:700}.hh-tips__card-value--good[_ngcontent-%COMP%]{color:#34d399}.hh-tips__card-value--warn[_ngcontent-%COMP%]{color:#fcd34d}.hh-tips__pool[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:4px;padding:10px 12px;border:1px solid #334155;border-radius:12px;background:#0f172a}.hh-tips__pool-line[_ngcontent-%COMP%]{display:flex;justify-content:space-between;font-size:.9rem;color:#cbd5e1}.hh-tips__pool-out[_ngcontent-%COMP%]{color:#fcd34d;font-weight:600}.hh-tips__pool-in[_ngcontent-%COMP%]{color:#34d399;font-weight:600}.hh-tips__table[_ngcontent-%COMP%]{color:#94a3b8;font-size:.85rem}.hh-tips__check-money[_ngcontent-%COMP%]{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.hh-tips__check-tip[_ngcontent-%COMP%]{font-weight:700;color:#34d399}.hh-tips__check-grat[_ngcontent-%COMP%]{color:#a5b4fc;font-size:.85rem}.hh-tips__check-total[_ngcontent-%COMP%]{color:#64748b;font-size:.85rem}.hh-tips__pay[_ngcontent-%COMP%]{margin-left:auto;padding:6px 14px;border:none;border-radius:10px;background:#22c55e;color:#052e16;font-weight:700}.hh-tips__pay[_ngcontent-%COMP%]:active{background:#16a34a}']})}}return o})();function Bn(o,h){o&1&&(a(0,"p",6),d(1,"Loading your tips\u2026"),c())}function $n(o,h){if(o&1&&(a(0,"p",7),d(1),c()),o&2){let e=s();r(),b(e.errorMessage)}}function Hn(o,h){if(o&1&&(a(0,"div",9)(1,"span",10),d(2),c(),a(3,"span",14),d(4),c()()),o&2){let e=s(2);r(2),C("Pool net (day) \xB7 ",e.poolBadge),r(),v("hh-tips__card-value--good",e.detail.pool.poolNetInCents>=0)("hh-tips__card-value--warn",e.detail.pool.poolNetInCents<0),r(),C(" ",e.formatMoney(e.detail.pool.poolNetInCents)," ")}}function Gn(o,h){if(o&1&&(a(0,"div",19)(1,"span"),d(2),c(),a(3,"span",20),d(4),c()()),o&2){let e=h.$implicit,t=s(3);r(2),b(e.ruleName),r(2),C("\u2212",t.formatMoney(e.grossInCents))}}function qn(o,h){if(o&1&&(a(0,"div",19)(1,"span"),d(2),c(),a(3,"span",21),d(4),c()()),o&2){let e=h.$implicit,t=s(3);r(2),b(e.ruleName),r(2),C("+",t.formatMoney(e.netInCents))}}function Un(o,h){if(o&1&&(a(0,"div",17),m(1,Gn,5,2,"div",18)(2,qn,5,2,"div",18),c()),o&2){let e=s(2);r(),l("ngForOf",e.detail.pool.contributions),r(),l("ngForOf",e.detail.pool.receipts)}}function Wn(o,h){o&1&&(a(0,"p",6),d(1,"No checks attributed to you yet."),c())}function Kn(o,h){if(o&1&&(a(0,"span",32),d(1),c()),o&2){let e=s().$implicit;r(),b(e.tableName)}}function Zn(o,h){if(o&1&&(a(0,"span",33),d(1),c()),o&2){let e=s().$implicit,t=s(2);r(),C(" +",t.formatMoney(e.gratuityInCents)," gratuity ")}}function Qn(o,h){if(o&1){let e=O();a(0,"button",34),x("click",function(n){P(e);let i=s().$implicit,p=s(2);return y(p.payCheck(i,n))}),d(1," Pay "),c()}}function Yn(o,h){if(o&1){let e=O();a(0,"button",22),x("click",function(){let n=P(e).$implicit,i=s(2);return y(i.openCheck(n))}),a(1,"div",23)(2,"span",24),d(3),c(),a(4,"span",25),d(5),c(),m(6,Kn,2,1,"span",26),c(),a(7,"div",27)(8,"span",28),d(9),c(),m(10,Zn,2,1,"span",29),a(11,"span",30),d(12),c(),m(13,Qn,2,0,"button",31),c()()}if(o&2){let e=h.$implicit,t=s(2);r(3),b(t.checkLabel(e)),r(),v("hh-badge--cash",!e.isOpen)("hh-badge--split",e.isOpen),r(),C(" ",e.isOpen?e.status:"Closed"," "),r(),l("ngIf",e.tableName),r(2),v("hh-tips__card-value--warn",e.isOpen),r(),C(" ",t.formatMoney(e.tipInCents)," tip "),r(),l("ngIf",e.gratuityInCents>0),r(2),C("of ",t.formatMoney(e.checkTotalInCents)),r(),l("ngIf",e.isOpen)}}function Jn(o,h){if(o&1&&($(0),a(1,"div",8)(2,"div",9)(3,"span",10),d(4,"Earned (closed)"),c(),a(5,"span",11),d(6),c()(),a(7,"div",9)(8,"span",10),d(9,"Pending (open)"),c(),a(10,"span",12),d(11),c()(),m(12,Hn,5,6,"div",13),a(13,"div",9)(14,"span",10),d(15,"Projected take-home"),c(),a(16,"span",14),d(17
1),c()()(),m(18,Un,3,2,"div",15)(19,Wn,2,0,"p",3)(20,Yn,14,13,"button",16),H()),o&2){let e=s();r(6),b(e.formatMoney(e.earnedClosed)),r(5),b(e.formatMoney(e.pendingOpen)),r(),l("ngIf",e.poolBadge),r(5),b(e.formatMoney(e.detail.projectedTakeHomeTipsInCents)),r(),l("ngIf",e.detail.pool.state!=="NoPolicy"&&(e.detail.pool.contributions.length>0||e.detail.pool.receipts.length>0)),r(),l("ngIf",e.detail.checks.length===0),r(),l("ngForOf",e.detail.checks)}}var xn="Your account does not have access to shift review tips. Ask a manager to enable it.",bn=(()=>{class o{constructor(e,t,n,i){this.router=e,this.accountService=t,this.closeoutService=n,this.convergenceFlag=i,this.corporationDetailId=null,this.isLoading=!0,this.errorMessage=null,this.detail=null}ngOnInit(){return g(this,null,function*(){try{this.corporationDetailId=yield this.accountService.getCorporationDetailId()}catch(e){console.error("[Handheld/MyTips] failed to resolve account context",e)}yield this.load()})}load(){return g(this,null,function*(){if(!this.corporationDetailId){this.errorMessage="Unable to determine the venue for this device.",this.isLoading=!1;return}this.isLoading=!0,this.errorMessage=null;try{this.detail=yield this.closeoutService.getShiftTipDetail(this.corporationDetailId),this.detail||(this.errorMessage=xn)}catch(e){console.error("[Handheld/MyTips] load failed",e),this.errorMessage=e?.status===401||e?.status===403?xn:"Could not load your tips. Check the connection and try again."}finally{this.isLoading=!1}})}openCheck(e){this.convergenceFlag.useConvergedPosStack()?this.router.navigate(["/pos/place-order"],{queryParams:{posCheckId:e.posCheckId}}):this.router.navigate(["/pos-handheld/pay",e.posCheckId])}payCheck(e,t){t.stopPropagation(),this.router.navigate(["/pos-handheld/pay",e.posCheckId])}checkLabel(e){return`#${e.splitLabel??e.checkNumber}`}formatMoney(e){return((e??0)/100).toLocaleString(void 0,{style:"currency",currency:"USD"})}get earnedClosed(){return(this.detail?.tipsClosedInCents??0)+(this.detail?.gratuityClosedInCents??0)}get pendingOpen(){return(this.detail?.tipsOpenInCents??0)+(this.detail?.gratuityOpenInCents??0)}get poolBadge(){return!this.detail||this.detail.pool.state==="NoPolicy"?null:this.detail.pool.state==="Approved"?"Approved":"Live estimate"}static{this.\u0275fac=function(t){return new(t||o)(_(D),_(F),_(qt),_(Y))}}static{this.\u0275cmp=k({type:o,selectors:[["app-pos-handheld-my-tips"]],standalone:!1,decls:7,vars:5,consts:[[1,"hh-page","hh-tips"],[1,"hh-tips__top"],["type","button",1,"hh-tips__refresh",3,"click","disabled"],["class","hh-page__muted",4,"ngIf"],["class","hh-page__error",4,"ngIf"],[4,"ngIf"],[1,"hh-page__muted"],[1,"hh-page__error"],[1,"hh-tips__cards"],[1,"hh-tips__card"],[1,"hh-tips__card-label"],[1,"hh-tips__card-value","hh-tips__card-value--good"],[1,"hh-tips__card-value","hh-tips__card-value--warn"],["class","hh-tips__card",4,"ngIf"],[1,"hh-tips__card-value"],["class","hh-tips__pool",4,"ngIf"],["type","button","class","hh-order-card",3,"click",4,"ngFor","ngForOf"],[1,"hh-tips__pool"],["class","hh-tips__pool-line",4,"ngFor","ngForOf"],[1,"hh-tips__pool-line"],[1,"hh-tips__pool-out"],[1,"hh-tips__pool-in"],["type","button",1,"hh-order-card",3,"click"],[1,"hh-order-card__id"],[1,"hh-order-card__num"],[1,"hh-badge"],["class","hh-tips__table",4,"ngIf"],[1,"hh-tips__check-money"],[1,"hh-tips__check-tip"],["class","hh-tips__check-grat",4,"ngIf"],[1,"hh-tips__check-total"],["type","button","class","hh-tips__pay",3,"click",4,"ngIf"],[1,"hh-tips__table"],[1,"hh-tips__check-grat"],["type","button",1,"hh-tips__pay",3,"click"]],template:function(t,n){t&1&&(a(0,"div",0)(1,"div",1)(2,"button",2),x("click",function(){return n.load()}),d(3),c()(),m(4,Bn,2,0,"p",3)(5,$n,2,1,"p",4)(6,Jn,21,7,"ng-container",5),c()),t&2&&(r(2),l("disabled",n.isLoading),r(),C(" ",n.isLoading?"\u2026":"Refresh"," "),r(),l("ngIf",n.isLoading&&!n.detail),r(),l("ngIf",n.errorMessage),r(),l("ngIf",n.detail))},dependencies:[G,j],styles:['@charset "UTF-8";.handheld-stub[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:32px 24px;min-height:100%;color:#f1f5f9}.handheld-stub[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%]{font-size:1.5rem;font-weight:600;margin:0 0 12px}.handheld-stub__hint[_ngcontent-%COMP%]{font-size:1rem;color:#cbd5e1;margin:0 0 8px}.handheld-stub__note[_ngcontent-%COMP%]{font-size:.8rem;color:#64748b;margin:0;font-family:ui-monospace,Cascadia Code,Fira Code,monospace}.hh-menu__grid[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
1.hh-menu__tile[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;min-height:124px;padding:20px 12px;border:1px solid #334155;border-radius:16px;background:#1e293b;color:#f1f5f9;cursor:pointer;-webkit-tap-highlight-color:transparent}.hh-menu__tile[_ngcontent-%COMP%]:active{background:#334155}.hh-menu__tile[_ngcontent-%COMP%]:disabled{opacity:.6}.hh-menu__icon[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;width:54px;height:54px;border-radius:14px;background:#60a5fa24;color:#60a5fa}.hh-menu__icon[_ngcontent-%COMP%]   svg[_ngcontent-%COMP%]{width:30px;height:30px}.hh-menu__label[_ngcontent-%COMP%]{font-size:1.05rem;font-weight:700;text-align:center}.hh-menu__reset[_ngcontent-%COMP%]{display:block;margin:18px auto 4px;padding:10px 16px;border:1px solid #475569;border-radius:12px;background:transparent;color:#94a3b8;font-size:.9rem;font-weight:600;-webkit-tap-highlight-color:transparent}.hh-menu__reset[_ngcontent-%COMP%]:active{background:#1e293b;color:#fca5a5;border-color:#b91c1c}.hh-page[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:10px;padding:16px;min-height:100%;color:#f1f5f9}.hh-page__heading[_ngcontent-%COMP%]{font-size:1.25rem;font-weight:700;margin:4px 2px 8px}.hh-page__muted[_ngcontent-%COMP%]{color:#94a3b8;font-size:.95rem;margin:8px 2px}.hh-page__error[_ngcontent-%COMP%]{color:#fca5a5;font-size:.95rem;margin:8px 2px}.hh-tile[_ngcontent-%COMP%]{display:flex;align-items:center;gap:12px;width:100%;padding:18px 16px;border:1px solid #334155;border-radius:14px;background:#1e293b;color:#f1f5f9;font-size:1.1rem;font-weight:600;text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent}.hh-tile[_ngcontent-%COMP%]:active{background:#334155}.hh-tile__label[_ngcontent-%COMP%]{flex:1 1 auto}.hh-tile__meta[_ngcontent-%COMP%]{flex:0 0 auto;font-size:.85rem;font-weight:500;color:#94a3b8}.hh-tile__chevron[_ngcontent-%COMP%]{flex:0 0 auto;color:#64748b}.hh-table[_ngcontent-%COMP%]{padding:12px 14px;border-left-width:4px}.hh-table[_ngcontent-%COMP%]:disabled{cursor:default;opacity:.55}.hh-table__seats[_ngcontent-%COMP%]{display:block;font-size:.8rem;font-weight:500;color:#94a3b8}.hh-table__state[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:flex-end;flex:0 0 auto;gap:2px}.hh-table__status[_ngcontent-%COMP%]{font-size:.85rem;font-weight:700;color:#94a3b8}.hh-table__detail[_ngcontent-%COMP%]{font-size:.8rem;font-weight:500;color:#cbd5e1}.hh-table--occupied[_ngcontent-%COMP%]{border-left-color:#38bdf8;background:#172b45}.hh-table--occupied[_ngcontent-%COMP%]   .hh-table__status[_ngcontent-%COMP%]{color:#7dd3fc}.hh-table--paid[_ngcontent-%COMP%]{border-left-color:#22c55e}.hh-table--paid[_ngcontent-%COMP%]   .hh-table__status[_ngcontent-%COMP%]{color:#86efac}.hh-table--bussing[_ngcontent-%COMP%]{border-left-color:#f59e0b}.hh-table--bussing[_ngcontent-%COMP%]   .hh-table__status[_ngcontent-%COMP%]{color:#fcd34d}.hh-cta[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:18px 16px;border:none;border-radius:14px;background:#22c55e;color:#052e16;font-size:1.1rem;font-weight:700;cursor:pointer;-webkit-tap-highlight-color:transparent}.hh-cta[_ngcontent-%COMP%]:active{background:#16a34a}.hh-cta[_ngcontent-%COMP%]:disabled{background:#334155;color:#64748b}.hh-divider[_ngcontent-%COMP%]{display:flex;align-items:center;gap:10px;margin:8px 2px 2px;color:#64748b;font-size:.8rem;text-transform:uppercase;letter-spacing:.04em}.hh-divider[_ngcontent-%COMP%]:before, .hh-divider[_ngcontent-%COMP%]:after{content:"";flex:1 1 auto;height:1px;background:#334155}.hh-order[_ngcontent-%COMP%]{padding-bottom:0}.hh-seg[_ngcontent-%COMP%]{display:flex;gap:6px;margin:4px 0 12px;padding:5px;background:#1e293b;border-radius:12px}.hh-seg__btn[_ngcontent-%COMP%]{flex:1 1 0;min-height:44px;padding:10px 8px;border:none;border-radius:9px;background:transparent;color:#94a3b8;font-size:1rem;font-weight:700;-webkit-tap-highlight-color:transparent}.hh-seg__btn--active[_ngcontent-%COMP%]{background:#0f172a;color:#f1f5f9}.hh-seats[_ngcontent-%COMP%]{display:flex;align-items:center;gap:6px;margin:0 0 12px;padding-bottom:2px;overflow-x:auto;-webkit-overflow-scrolling:touch}.hh-seats[_ngcontent-%COMP%]::-webkit-scrollbar{display:none}.hh-seats__chip[_ngcontent-%COMP%]{flex:0 0 auto;min-width:44px;padding:10px 14px;border:1px solid #334155;border-radius:999px;background:#1e293b;color:#cbd5e1;font-size:.95rem;font-weight:700;-webkit-tap-highlight-color:transparent}.hh-seats__chip--active[_ngcontent-%COMP%]{border-color:#60a5fa;background:#60a5fa2e;color:#f1f5f9}.hh-seats__add[_ngcontent-%COMP%]{flex:0 0 auto;padding:10px 14px;border:1px dashed #475569;border-radius:999px;background:transparent;color:#94a3b8;font-size:.95rem;font-weight:700;white-space:nowrap;-webkit-tap-highlight-color:transparent}.hh-seats__add[_ngcontent-%COMP%]:active{background:#1e293b}.hh-seats__add[_ngcontent-%COMP%]:disabled{opacity:.5}
1.hh-order__search[_ngcontent-%COMP%]{width:100%;padding:12px 14px;margin-bottom:10px;border-radius:12px;border:1px solid #334155;background:#0f172a;color:#f1f5f9;font-size:1rem;outline:none}.hh-order__search[_ngcontent-%COMP%]::placeholder{color:#64748b}.hh-order__group[_ngcontent-%COMP%]{font-size:.8rem;text-transform:uppercase;letter-spacing:.04em;color:#94a3b8;margin:14px 2px 6px}.hh-menu__groups[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:12px}.hh-menu__group[_ngcontent-%COMP%]{min-height:60px;padding:10px 8px;border:1px solid #334155;border-radius:12px;font-size:.95rem;font-weight:700;line-height:1.15;text-align:center;display:flex;align-items:center;justify-content:center;-webkit-tap-highlight-color:transparent}.hh-menu__group[_ngcontent-%COMP%]:active{filter:brightness(1.15)}.hh-menu__group--active[_ngcontent-%COMP%]{box-shadow:inset 0 0 0 3px #ffffffd9;font-weight:800}.hh-menu__items[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.hh-menu__item[_ngcontent-%COMP%]{flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:84px;padding:12px 10px;text-align:center}.hh-menu__item[_ngcontent-%COMP%]   .hh-tile__label[_ngcontent-%COMP%]{flex:0 0 auto;width:100%;line-height:1.15}.hh-menu__item[_ngcontent-%COMP%]   .hh-tile__meta[_ngcontent-%COMP%]{color:inherit;opacity:.8}.hh-order__table[_ngcontent-%COMP%]{margin-left:8px;font-size:.95rem;font-weight:600;color:#60a5fa}.hh-order__item[_ngcontent-%COMP%]{font-size:1rem;padding:14px 16px;margin-bottom:8px}.hh-order__line[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:10px;padding:12px 14px;border:1px solid #334155;border-radius:12px;background:#1e293b;margin-bottom:8px}.hh-order__line--selectable[_ngcontent-%COMP%]{cursor:pointer}.hh-order__line--selected[_ngcontent-%COMP%]{border-color:#60a5fa;background:#60a5fa24}.hh-order__line--held[_ngcontent-%COMP%]{border-color:#d97706;background:#d9770629}
1.hh-order__line--sent[_ngcontent-%COMP%]{opacity:.62}.hh-order__line--ready[_ngcontent-%COMP%]{border-color:#16a34a;background:#16a34a29}.hh-order__line-info[_ngcontent-%COMP%]{display:flex;justify-content:space-between;font-weight:600}.hh-order__line-name[_ngcontent-%COMP%]{flex:1 1 auto;padding-right:8px}.hh-order__line-check[_ngcontent-%COMP%]{margin-right:6px;color:#60a5fa;font-size:1.05rem}.hh-order__line-badge[_ngcontent-%COMP%]{margin-left:8px;padding:1px 7px;border-radius:999px;font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;vertical-align:middle}.hh-order__line-badge--held[_ngcontent-%COMP%]{background:#d9770640;color:#fcd34d}.hh-order__line-badge--sent[_ngcontent-%COMP%]{background:#94a3b838;color:#cbd5e1}.hh-order__line-badge--ready[_ngcontent-%COMP%]{background:#16a34a40;color:#86efac}.hh-order__kds-hint[_ngcontent-%COMP%]{margin:0 0 6px;font-size:.78rem;color:#94a3b8;text-align:center}.hh-order__stepper[_ngcontent-%COMP%]{display:flex;align-items:center;gap:10px}.hh-step[_ngcontent-%COMP%]{width:42px;height:42px;border-radius:10px;border:1px solid #475569;background:#0f172a;color:#f1f5f9;font-size:1.5rem;line-height:1}.hh-step[_ngcontent-%COMP%]:active{background:#334155}.hh-step__qty[_ngcontent-%COMP%]{min-width:26px;text-align:center;font-weight:700}.hh-order__line-actions[_ngcontent-%COMP%]{margin-left:auto;display:flex;align-items:center;gap:14px}.hh-order__mod-btn[_ngcontent-%COMP%]{background:transparent;border:none;color:#60a5fa;font-size:.9rem;font-weight:600}.hh-order__remove[_ngcontent-%COMP%]{background:transparent;border:none;color:#fca5a5;font-size:.9rem}.hh-order__item[_ngcontent-%COMP%]   .hh-tile__meta[_ngcontent-%COMP%]{color:inherit;opacity:.8}.hh-order__footer[_ngcontent-%COMP%]{position:sticky;bottom:0;margin-top:auto;padding:12px 0 6px;background:linear-gradient(180deg,#0f172a66,#0f172a 28%)}.hh-order__totals[_ngcontent-%COMP%]{font-size:.95rem;color:#cbd5e1;margin-bottom:8px}.hh-order__totals[_ngcontent-%COMP%] > div[_ngcontent-%COMP%]{display:flex;justify-content:space-between;padding:2px}.hh-order__grand[_ngcontent-%COMP%]{font-size:1.1rem;font-weight:700;color:#f1f5f9;border-top:1px solid #334155;margin-top:4px;padding-top:6px}.hh-order__paid-line[_ngcontent-%COMP%]{color:#34d399;font-weight:600}.hh-order__balance[_ngcontent-%COMP%]{font-size:1.1rem;font-weight:700;color:#f1f5f9;border-top:1px solid #334155;margin-top:4px;padding-top:6px}.hh-order__kds[_ngcontent-%COMP%]{display:block;margin-bottom:8px}.hh-order__actions[_ngcontent-%COMP%]{display:flex;gap:10px;align-items:stretch}.hh-order__print[_ngcontent-%COMP%]{flex:0 0 auto;padding:14px 12px;border:1px solid #475569;border-radius:14px;background:#1e293b;color:#e2e8f0;font-size:1.05rem;font-weight:700;white-space:nowrap;-webkit-tap-highlight-color:transparent}.hh-order__print[_ngcontent-%COMP%]:active{background:#334155}.hh-order__print[_ngcontent-%COMP%]:disabled{opacity:.6}.hh-order__discount[_ngcontent-%COMP%]{flex:0 0 auto;padding:14px 12px;border:1px solid #475569;border-radius:14px;background:#1e293b;color:#e2e8f0;font-size:1.05rem;font-weight:700;white-space:nowrap;-webkit-tap-highlight-color:transparent}.hh-order__discount[_ngcontent-%COMP%]:active{background:#334155}.hh-order__discount[_ngcontent-%COMP%]:disabled{opacity:.6}.hh-order__pay[_ngcontent-%COMP%]{flex:1 1 auto;width:100%;padding:14px 10px;white-space:nowrap;border:none;border-radius:14px;background:#22c55e;color:#052e16;font-size:1.15rem;font-weight:700}.hh-order__pay[_ngcontent-%COMP%]:active{background:#16a34a}.hh-order__pay[_ngcontent-%COMP%]:disabled{background:#334155;color:#64748b}.hh-order__pay--secondary[_ngcontent-%COMP%]:not(:disabled){border:1px solid #22c55e;background:#1e293b;color:#86efac}.hh-order__pay--secondary[_ngcontent-%COMP%]:not(:disabled):active{background:#0f172a}.hh-list__top[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:10px;margin-bottom:6px}.hh-list__tabs.hh-seg[_ngcontent-%COMP%]{margin:0}.hh-list__tabs[_ngcontent-%COMP%]   .hh-seg__btn[_ngcontent-%COMP%]{padding:10px 4px;font-size:.95rem}.hh-list__actions[_ngcontent-%COMP%]{display:flex;gap:8px}.hh-list__tables[_ngcontent-%COMP%]{flex:1 1 auto;display:flex;align-items:center;justify-content:center;padding:18px 16px;border:none;border-radius:14px;background:#22c55e;color:#052e16;font-size:1.1rem;font-weight:700;-webkit-tap-highlight-color:transparent}.hh-list__tables[_ngcontent-%COMP%]:active{background:#16a34a}.hh-list__new[_ngcontent-%COMP%]{flex:0 0 auto;padding:14px 18px;border:1px solid #475569;border-radius:14px;background:#1e293b;color:#f1f5f9;font-size:1rem;font-weight:600;-webkit-tap-highlight-color:transparent}.hh-list__new[_ngcontent-%COMP%]:active{background:#334155}.hh-list__new[_ngcontent-%COMP%]:disabled{background:#0f172a;color:#64748b}.hh-order-card[_ngcontent-%COMP%]{display:flex;align-items:stretch;gap:12px;width:100%;padding:14px;margin-bottom:8px;border:1px solid #334155;border-radius:14px;background:#1e293b;color:#f1f5f9;text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent}.hh-order-card[_ngcontent-%COMP%]:active{background:#334155}.hh-order-card--voided[_ngcontent-%COMP%]{border-left:3px solid #64748b}.hh-order-card__id[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:flex-start;gap:6px;flex:0 0 auto;min-width:64px}.hh-order-card__num[_ngcontent-%COMP%]{font-size:1.35rem;font-weight:800;line-height:1}.hh-order-card__body[_ngcontent-%COMP%]{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;justify-content:center;gap:4px}.hh-order-card__title[_ngcontent-%COMP%]{font-size:1rem;font-weight:600;line-height:1.2;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.hh-order-card__meta[_ngcontent-%COMP%]{font-size:.8rem;color:#94a3b8}.hh-order-card__approval[_ngcontent-%COMP%]{display:flex;gap:8px;margin-top:8px}.hh-approve-btn[_ngcontent-%COMP%], .hh-reject-btn[_ngcontent-%COMP%]{padding:6px 14px;border-radius:8px;font-size:.8rem;font-weight:700;border:none;cursor:pointer}.hh-approve-btn[_ngcontent-%COMP%]:disabled, .hh-reject-btn[_ngcontent-%COMP%]:disabled{opacity:.5}
1.hh-approve-btn[_ngcontent-%COMP%]{background:#059669;color:#fff}.hh-reject-btn[_ngcontent-%COMP%]{background:#ef444426;color:#f87171;border:1px solid rgba(239,68,68,.4)}.hh-order-card__amounts[_ngcontent-%COMP%]{flex:0 0 auto;align-self:center;display:flex;flex-direction:column;align-items:flex-end;gap:2px}.hh-order-card__total[_ngcontent-%COMP%]{font-size:1.05rem;font-weight:700}.hh-order-card__total--struck[_ngcontent-%COMP%]{text-decoration:line-through;color:#94a3b8}.hh-order-card__tip[_ngcontent-%COMP%]{font-size:.75rem;font-weight:600;color:#34d399;white-space:nowrap}.hh-badge[_ngcontent-%COMP%]{font-size:.62rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;padding:2px 7px;border-radius:9px;color:#fff}.hh-badge--void[_ngcontent-%COMP%]{background:#475569;color:#cbd5e1}.hh-badge--cash[_ngcontent-%COMP%]{background:#059669}.hh-badge--split[_ngcontent-%COMP%]{background:#4f46e5}.hh-mod[_ngcontent-%COMP%]{position:fixed;inset:0;z-index:1000;background:#020617b3;display:flex;flex-direction:column;justify-content:flex-end}.hh-mod__sheet[_ngcontent-%COMP%]{display:flex;flex-direction:column;max-height:92%;background:#0f172a;border-top:1px solid #334155;border-top-left-radius:18px;border-top-right-radius:18px;color:#f1f5f9}.hh-mod__header[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px;border-bottom:1px solid #1e293b}.hh-mod__title[_ngcontent-%COMP%]{font-size:1.15rem;font-weight:700}.hh-mod__close[_ngcontent-%COMP%]{flex:0 0 auto;width:40px;height:40px;border:none;background:transparent;color:#94a3b8;font-size:1.3rem}.hh-mod__body[_ngcontent-%COMP%]{padding:12px 16px;overflow-y:auto}.hh-mod__special[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%;margin-bottom:16px;padding:10px 14px;border:1px dashed #475569;border-radius:10px;background:#94a3b814;color:#e2e8f0;text-align:left}.hh-mod__special[_ngcontent-%COMP%]:disabled{opacity:.5}.hh-mod__special--set[_ngcontent-%COMP%]{border-style:solid;border-color:#f59e0b;background:#f59e0b1f}.hh-mod__special-label[_ngcontent-%COMP%]{font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:#94a3b8}.hh-mod__special-value[_ngcontent-%COMP%]{font-size:.95rem;line-height:1.3;word-break:break-word}.hh-mod__group[_ngcontent-%COMP%]{margin-bottom:16px}.hh-mod__group-name[_ngcontent-%COMP%]{display:flex;align-items:baseline;justify-content:space-between;gap:8px;font-size:1rem;font-weight:700;margin-bottom:8px}.hh-mod__group-hint[_ngcontent-%COMP%]{flex:0 0 auto;font-size:.72rem;font-weight:500;color:#94a3b8;text-transform:uppercase;letter-spacing:.03em}.hh-mod__options[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-bottom:4px}.hh-mod__opt[_ngcontent-%COMP%]{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:64px;padding:12px 10px;border:1px solid #334155;border-radius:12px;background:#1e293b;color:#f1f5f9;font-size:1rem;font-weight:600;text-align:center;line-height:1.15}.hh-mod__opt--selected[_ngcontent-%COMP%]{border-color:#22c55e;background:#14321f}.hh-mod__opt-check[_ngcontent-%COMP%]{position:absolute;top:6px;right:8px;color:#22c55e;font-weight:800;font-size:.85rem}.hh-mod__opt-name[_ngcontent-%COMP%]{width:100%}.hh-mod__opt-price[_ngcontent-%COMP%]{color:#94a3b8;font-size:.82rem;font-weight:500}.hh-mod__footer[_ngcontent-%COMP%]{display:flex;flex-direction:row;gap:12px;padding:12px 16px;border-top:1px solid #1e293b}.hh-mod__btn[_ngcontent-%COMP%]{flex:1 1 0;display:inline-flex;align-items:center;justify-content:center;padding:16px;border-radius:12px;font-size:1.05rem;font-weight:700;line-height:1;cursor:pointer;-webkit-tap-highlight-color:transparent}.hh-mod__btn--cancel[_ngcontent-%COMP%]{border:1px solid #475569;background:#1e293b;color:#e2e8f0}.hh-mod__btn--save[_ngcontent-%COMP%]{border:1px solid #22c55e;background:#22c55e;color:#052e16}.hh-mod__btn[_ngcontent-%COMP%]:disabled{opacity:.6}.hh-mod__premods[_ngcontent-%COMP%]{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:6px;margin:0 0 6px}.hh-mod__premod[_ngcontent-%COMP%]{padding:7px 13px;border:1px solid #475569;border-radius:999px;background:#0f172a;color:#cbd5e1;font-size:.85rem;font-weight:600}.hh-mod__premod--active[_ngcontent-%COMP%]{border-color:#22c55e;background:#14321f;color:#f1f5f9}.hh-mod__premod[_ngcontent-%COMP%]:disabled{opacity:.6}.hh-order__line-mods[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:2px 14px;padding-left:2px}.hh-order__line-mod[_ngcontent-%COMP%]{font-size:.82rem;line-height:1.35;color:#94a3b8}.hh-order__line-mod[_ngcontent-%COMP%]:before{content:"\\b7  ";color:#64748b}.hh-order__line-note[_ngcontent-%COMP%]{margin-top:2px;padding-left:2px;font-size:.82rem;font-style:italic;line-height:1.35;color:#fbbf24;word-break:break-word}.hh-pay-confirm[_ngcontent-%COMP%]{position:fixed;inset:0;z-index:1100;background:#020617eb;display:flex;align-items:center;justify-content:center;padding:24px}.hh-pay-confirm__card[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;width:100%;max-width:420px}.hh-pay-confirm__check[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;width:84px;height:84px;margin-bottom:6px;border-radius:999px;background:#14321f;border:2px solid #22c55e;color:#22c55e;font-size:2.6rem;font-weight:700;line-height:1}.hh-pay-confirm__title[_ngcontent-%COMP%]{font-size:1.4rem;font-weight:700;color:#f1f5f9}
1.hh-pay-confirm__amount[_ngcontent-%COMP%]{font-size:2.2rem;font-weight:800;color:#22c55e}.hh-pay-confirm__tip[_ngcontent-%COMP%]{font-size:1rem;font-weight:600;color:#86efac}.hh-pay-confirm__sub[_ngcontent-%COMP%]{font-size:.95rem;color:#94a3b8}.hh-pay-confirm__print[_ngcontent-%COMP%]{width:100%;margin-top:18px;padding:16px;border:1px solid #475569;border-radius:14px;background:#1e293b;color:#e2e8f0;font-size:1.1rem;font-weight:700}.hh-pay-confirm__print[_ngcontent-%COMP%]:active{background:#334155}.hh-pay-confirm__print[_ngcontent-%COMP%]:disabled{opacity:.6}.hh-pay-confirm__done[_ngcontent-%COMP%]{width:100%;margin-top:10px;padding:16px;border:none;border-radius:14px;background:#22c55e;color:#052e16;font-size:1.15rem;font-weight:700}.hh-pay-confirm__done[_ngcontent-%COMP%]:active{background:#16a34a}.hh-tips__top[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:flex-end;gap:10px}.hh-tips__top[_ngcontent-%COMP%]   .hh-page__heading[_ngcontent-%COMP%]{margin:0}.hh-tips__refresh[_ngcontent-%COMP%]{padding:8px 14px;border:1px solid #334155;border-radius:10px;background:#1e293b;color:#e2e8f0;font-size:.9rem;font-weight:600}.hh-tips__refresh[_ngcontent-%COMP%]:disabled{opacity:.6}.hh-tips__cards[_ngcontent-%COMP%]{display:grid;grid-template-columns:1fr 1fr;gap:8px}.hh-tips__card[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:4px;padding:12px;border:1px solid #334155;border-radius:12px;background:#0f172a}.hh-tips__card-label[_ngcontent-%COMP%]{color:#94a3b8;font-size:.78rem}.hh-tips__card-value[_ngcontent-%COMP%]{font-size:1.2rem;font-weight:700}.hh-tips__card-value--good[_ngcontent-%COMP%]{color:#34d399}.hh-tips__card-value--warn[_ngcontent-%COMP%]{color:#fcd34d}.hh-tips__pool[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:4px;padding:10px 12px;border:1px solid #334155;border-radius:12px;background:#0f172a}.hh-tips__pool-line[_ngcontent-%COMP%]{display:flex;justify-content:space-between;font-size:.9rem;color:#cbd5e1}.hh-tips__pool-out[_ngcontent-%COMP%]{color:#fcd34d;font-weight:600}.hh-tips__pool-in[_ngcontent-%COMP%]{color:#34d399;font-weight:600}.hh-tips__table[_ngcontent-%COMP%]{color:#94a3b8;font-size:.85rem}.hh-tips__check-money[_ngcontent-%COMP%]{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.hh-tips__check-tip[_ngcontent-%COMP%]{font-weight:700;color:#34d399}.hh-tips__check-grat[_ngcontent-%COMP%]{color:#a5b4fc;font-size:.85rem}.hh-tips__check-total[_ngcontent-%COMP%]{color:#64748b;font-size:.85rem}.hh-tips__pay[_ngcontent-%COMP%]{margin-left:auto;padding:6px 14px;border:none;border-radius:10px;background:#22c55e;color:#052e16;font-weight:700}.hh-tips__pay[_ngcontent-%COMP%]:active{background:#16a34a}']})}}return o})();function to(o,h){if(o&1&&(a(0,"span"),d(1),c()),o&2){let e=s().$implicit,t=s();r(),C(" ",t.tabCount(e.value))}}function no(o,h){if(o&1){let e=O();a(0,"button",11),x("click",function(){let n=P(e).$implicit,i=s();return y(i.selectedTab=n.value)}),d(1),m(2,to,2,1,"span",12),c()}if(o&2){let e=h.$implicit,t=s();v("hh-seg__btn--active",t.selectedTab===e.value),r(),C(" ",e.label),r(),l("ngIf",t.tabCount(e.value)>0)}}function oo(o,h){o&1&&(a(0,"p",13),d(1,"Loading orders\u2026"),c())}function io(o,h){if(o&1&&(a(0,"p",14),d(1),c()),o&2){let e=s();r(),b(e.errorMessage)}}function ro(o,h){o&1&&(a(0,"p",13),d(1," No orders found. "),c())}function ao(o,h){o&1&&(a(0,"span",29),d(1,"VOIDED"),c())}function co(o,h){o&1&&(a(0,"span",30),d(1,"CASH"),c())}function so(o,h){o&1&&(a(0,"span",31),d(1,"SPLIT"),c())}function lo(o,h){o&1&&(a(0,"span",31),d(1,"MOBILE"),c())}function po(o,h){o&1&&(a(0,"span",29),d(1,"NEEDS APPROVAL"),c())}function ho(o,h){if(o&1&&(a(0,"span",29),d(1),c()),o&2){let e=s().$implicit,t=s();r(),C(" ",t.isIdCheckDenied(e)?"ID DENIED":"ID CHECK"," ")}}function go(o,h){if(o&1&&($(0),d(1),H()),o&2){let e=s().$implicit;r(),C(" \xB7 ",e.guestName)}}function _o(o,h){o&1&&(a(0,"div",23),d(1," Order has alcohol \u2014 verify 21+ before approving. "),c())}function fo(o,h){o&1&&(a(0,"div",23),d(1," Guest is removing the alcohol items. "),c())}function mo(o,h){if(o&1){let e=O();a(0,"button",35),x("click",function(n){P(e);let i=s(2).$implicit,p=s();return y(p.denyIdCheck(i,n))}),d(1," Deny ID "),c()}if(o&2){let e=s(3);l("disabled",e.approvalBusy)}}
1function uo(o,h){if(o&1){let e=O();a(0,"div",32)(1,"button",33),x("click",function(n){P(e);let i=s().$implicit,p=s();return y(p.approveMobileOrder(i,n))}),d(2),c(),m(3,mo,2,1,"button",34),a(4,"button",35),x("click",function(n){P(e);let i=s().$implicit,p=s();return y(p.rejectMobileOrder(i,n))}),d(5," Reject "),c()()}if(o&2){let e=s().$implicit,t=s();r(),l("disabled",t.approvalBusy),r(),C(" ",t.isAlcoholHold(e)?"IDs OK \u2014 Approve":"Approve"," "),r(),l("ngIf",t.isAlcoholHold(e)),r(),l("disabled",t.approvalBusy)}}function xo(o,h){if(o&1&&(a(0,"div",36),d(1),c()),o&2){let e=s().$implicit,t=s();r(),C(" incl. ",t.formatCents(t.getTip(e))," tip ")}}function bo(o,h){if(o&1){let e=O();a(0,"button",15),x("click",function(){let n=P(e).$implicit,i=s();return y(i.openOrder(n))}),a(1,"div",16)(2,"span",17),d(3),c(),m(4,ao,2,0,"span",18)(5,co,2,0,"span",19)(6,so,2,0,"span",20)(7,lo,2,0,"span",20)(8,po,2,0,"span",18)(9,ho,2,1,"span",18),c(),a(10,"div",21)(11,"div",22),d(12),c(),a(13,"div",23),d(14),m(15,go,2,1,"ng-container",12),c(),m(16,_o,2,0,"div",24)(17,fo,2,0,"div",24)(18,uo,6,4,"div",25),c(),a(19,"div",26)(20,"div",27),d(21),c(),m(22,xo,2,1,"div",28),c()()}if(o&2){let e=h.$implicit,t=s();v("hh-order-card--voided",e.voidedAtUtc),r(3),C("#",e.splitLabel??e.checkNumber??e.orderNumber),r(),l("ngIf",e.voidedAtUtc),r(),l("ngIf",!e.voidedAtUtc&&e.paidWithCash),r(),l("ngIf",e.splitLabel),r(),l("ngIf",t.isMobileOrder(e)),r(),l("ngIf",t.isAwaitingGuestApproval(e)&&!t.isAlcoholHold(e)),r(),l("ngIf",t.isAlcoholHold(e)),r(3),b(t.getOrderTitle(e)),r(2),C(" ",t.getStartTime(e)),r(),l("ngIf",e.guestName),r(),l("ngIf",t.isAlcoholHold(e)&&!t.isIdCheckDenied(e)),r(),l("ngIf",t.isIdCheckDenied(e)),r(),l("ngIf",t.isAwaitingGuestApproval(e)&&!t.isIdCheckDenied(e)),r(2),v("hh-order-card__total--struck",e.voidedAtUtc||e.refundedFully),r(),C(" ",t.formatCents(t.getTotalWithTip(e))," "),r(),l("ngIf",t.getTip(e)>0)}}var Pn=(()=>{class o{constructor(e,t,n,i,p,f,u,M){this.router=e,this.orderService=t,this.accountService=n,this.timezoneService=i,this.toastController=p,this.alertController=f,this.signalrService=u,this.convergenceFlag=M,this.orders=[],this.corporationDetailId=null,this.myEmployeeId=null,this.searchQuery="",this.selectedTab="mine",this.isLoading=!0,this.errorMessage="",this.creatingOrder=!1,this.approvalBusy=!1,this.tabs=[{label:"Mine",value:"mine"},{label:"All",value:"all"},{label:"Paid",value:"paid"},{label:"Voided",value:"voided"}],this.subscriptions=new ft}ngOnInit(){return g(this,null,function*(){try{this.corporationDetailId=yield this.accountService.getCorporationDetailId(),this.myEmployeeId=yield this.accountService.getCorporationEmployeeId(),yield this.timezoneService.initializeVenueTimeZone(),this.subscriptions.add(this.signalrService.onMobileOrderSubmitted().subscribe(e=>{e&&this.refreshOrders()})),yield this.refreshOrders()}catch(e){console.error("[Handheld/OrderList] failed to load orders",e),this.errorMessage="Could not load orders. Check the connection and try again."}finally{this.isLoading=!1}})}ngOnDestroy(){this.subscriptions.unsubscribe()}refreshOrders(){return g(this,null,function*(){this.corporationDetailId&&(this.orders=(yield this.orderService.getTodaysOrders(this.corporationDetailId,{includeAllStatuses:!0}))??[])})}isOpen(e){return!e.voidedAtUtc&&(e.status===L.NeedsApproval||e.status===L.Scheduled||e.status===L.Active||e.status===L.OrderReady||e.status===L.AwaitingGuestApproval)}isAwaitingGuestApproval(e){return!e.voidedAtUtc&&e.status===L.AwaitingGuestApproval}isMobileOrder(e){return e.sourceChannel==="MobileOrdering"}isAlcoholHold(e){return this.isAwaitingGuestApproval(e)&&e.approvalHoldReason==="AlcoholIdCheck"}isIdCheckDenied(e){return this.isAlcoholHold(e)&&e.idCheckStatus==="Denied"}approveMobileOrder(e,t){return g(this,null,function*(){if(t.stopPropagation(),!this.approvalBusy){this.approvalBusy=!0;try{yield this.orderService.approveMobileOrder(e.orderId),yield this.toast(`Order #${e.orderNumber} approved.`),yield this.refreshOrders()}catch(n){console.error("[Handheld/OrderList] approve failed",n),yield this.toast("Could not approve the order. Try again.")}finally{this.approvalBusy=!1}}})}rejectMobileOrder(e,t){return g(this,null,function*(){if(t.stopPropagation(),this.approvalBusy)return;let n=yield this.promptForReason("Reject order","Reject");
1if(n!==void 0){this.approvalBusy=!0;try{yield this.orderService.rejectMobileOrder(e.orderId,n),yield this.toast(`Order #${e.orderNumber} rejected.`),yield this.refreshOrders()}catch(i){console.error("[Handheld/OrderList] reject failed",i),yield this.toast("Could not reject the order. Try again.")}finally{this.approvalBusy=!1}}})}denyIdCheck(e,t){return g(this,null,function*(){if(t.stopPropagation(),this.approvalBusy)return;let n=yield this.promptForReason("Deny ID check","Deny");if(n!==void 0){this.approvalBusy=!0;try{yield this.orderService.denyIdCheck(e.orderId,n),yield this.toast("ID check denied \u2014 the guest can remove the alcohol items."),yield this.refreshOrders()}catch(i){console.error("[Handheld/OrderList] ID-check deny failed",i),yield this.toast("Could not deny the ID check. Try again.")}finally{this.approvalBusy=!1}}})}promptForReason(e,t){return g(this,null,function*(){let n=yield this.alertController.create({header:e,inputs:[{name:"reason",type:"text",placeholder:"Reason shown to the guest (optional)",attributes:{maxlength:250}}],buttons:[{text:"Cancel",role:"cancel"},{text:t,role:"confirm"}]});yield n.present();let{role:i,data:p}=yield n.onDidDismiss();if(i!=="confirm")return;let f=(p?.values?.reason??"").trim();return f.length>0?f:null})}isPaid(e){return!e.voidedAtUtc&&(e.status===L.Paid||e.status===L.Completed)}isMine(e){return!!this.myEmployeeId&&Ut(e)===this.myEmployeeId}get filteredOrders(){let e=this.orders;switch(this.selectedTab){case"mine":e=e.filter(n=>this.isOpen(n)&&this.isMine(n));break;case"all":e=e.filter(n=>this.isOpen(n));break;case"paid":e=e.filter(n=>this.isPaid(n));break;case"voided":e=e.filter(n=>!!n.voidedAtUtc&&!dt(n));break}let t=this.searchQuery?.trim().toLowerCase();return t&&(e=e.filter(n=>n.orderNumber.toString().includes(t)||(n.splitLabel?.toLowerCase().includes(t)??!1)||n.items.some(i=>i.name?.toLowerCase().includes(t)))),e=e.filter(n=>!!n.voidedAtUtc||n.items.length>0||n.openItems.length>0),[...e].sort((n,i)=>new Date(i.createdAtUtc).getTime()-new Date(n.createdAtUtc).getTime())}tabCount(e){let t=this.orders.filter(n=>!!n.voidedAtUtc||n.items.length>0||n.openItems.length>0);switch(e){case"mine":return t.filter(n=>this.isOpen(n)&&this.isMine(n)).length;case"all":return t.filter(n=>this.isOpen(n)).length;case"paid":return t.filter(n=>this.isPaid(n)).length;case"voided":return this.orders.filter(n=>!!n.voidedAtUtc&&!dt(n)).length}}openOrder(e){if(this.convergenceFlag.useConvergedPosStack()&&e.posCheckId){this.router.navigate(["/pos/place-order"],{queryParams:{posCheckId:e.posCheckId}});return}this.router.navigate(["/pos-handheld/order",e.orderId])}goToTables(){this.router.navigate(["/pos-handheld/tables"])}createNewOrder(){return g(this,null,function*(){if(!this.creatingOrder){if(this.convergenceFlag.useConvergedPosStack()){yield this.router.navigate(["/pos/place-order"]);return}this.creatingOrder=!0;try{if(!this.corporationDetailId){yield this.toast("Unable to determine the venue for this device.");return}let e=yield this.orderService.createOrder(this.corporationDetailId,{createdByEmployeeId:this.myEmployeeId,deferCheck:!0});e?.orderId?this.router.navigate(["/pos-handheld/order",e.orderId]):yield this.toast("Could not start an order. Please try again.")}catch(e){console.error("[Handheld/OrderList] createNewOrder failed",e),yield this.toast("Could not start an order. Check the connection and try again.")}finally{this.creatingOrder=!1}}})}getOrderTitle(e){let t=e.items.map(n=>n.name).join(", ");return t?t.length>50?`${t.slice(0,47)}...`:t:"No items yet"}getStartTime(e){return this.timezoneService.isInitialized()?this.timezoneService.getOrderStartTime(e.createdAtUtc):`Started ${new Date(e.createdAtUtc).toLocaleTimeString([],{hour:"numeric",minute:"2-digit"})}`}getTip(e){return Math.max(0,e.gratuityInCents??0)}getTotalWithTip(e){let n=ue(e)+(e.offDrawerTipsInCents??0),i=(e.effectiveTotalInCents??0)>0?e.effectiveTotalInCents:(e.total??0)+this.getTip(e);return Math.max(i,n)}formatCents(e){return`$${((e??0)/100).toFixed(2)}`}toast(e){return g(this,null,function*(){yield(yield this.toastController.create({message:e,duration:1600,position:"bottom"})).present()})}static{this.\u0275fac=function(t){return new(t||o)(_(D),_(U),_(F),_(We),_(q),_(te),_(ge),_(Y))}}static{this.\u0275cmp=k({type:o,selectors:[["app-pos-handheld-order-list"]],standalone:!1,decls:14,vars:8,consts:[[1,"hh-page","hh-list"],[1,"hh-list__top"],[1,"hh-seg","hh-list__tabs"],["type","button","class","hh-seg__btn",3,"hh-seg__btn--active","click",4,"ngFor","ngForOf"],[1,"hh-list__actions"],["type","button",1,"hh-list__tables",3,"click"],["type","button",1,"hh-list__new",3,"click","disabled"],["type","text","inputmode","search","placeholder","Search orders\u2026",1,"hh-order__search",3,"ngModelChange","ngModel"],["class","hh-page__muted",4,"ngIf"],["class","hh-page__error",4,"ngIf"],["type","button","class","hh-order-card",3,"hh-order-card--voided","click",4,"ngFor","ngForOf"],["type","button",1,"hh-seg__btn",3,"click"],[4,"ngIf"],[1,"hh-page__muted"],[1,"hh-page__error"],["type","button",1,"hh-order-card",3,"click"],[1,"hh-order-card__id"],[1,"hh-order-card__num"],["class","hh-badge hh-badge--void",4,"ngIf"],["class","hh-badge hh-badge--cash",4,"ngIf"],["class","hh-badge hh-badge--split",4,"ngIf"],[1,"hh-order-card__body"],[1,"hh-order-card__title"],[1,"hh-order-card__meta"],["class","hh-order-card__meta",4,"ngIf"],["class","hh-order-card__approval",4,"ngIf"],[1,"hh-order-card__amounts"],[1,"hh-order-card__total"],["class","hh-order-card__tip",4,"ngIf"],[1,"hh-badge","hh-badge--void"],[1,"hh-badge","hh-badge--cash"],[1,"hh-badge","hh-badge--split"],[1,"hh-order-card__approval"],["type","button",1,"hh-approve-btn",3,"click","disabled"],["type","button","class","hh-reject-btn",3,"disabled","click",4,"ngIf"],["type","button",1,"hh-reject-btn",3,"click","disabled"],[1,"hh-order-card__tip"]],template:function(t,n){t&1&&(a(0,"div",0)(1,"div",1)(2,"div",2),m(3,no,3,4,"button",3),c(),a(4,"div",4)(5,"button",5),x("click",function(){return n.goToTables()}),d(6," Tables "),c(),a(7,"button",6),x("click",function(){return n.createNewOrder()}),d(8),c()(),a(9,"input",7),ze("ngModelChange",function(p){return Se(n.searchQuery,p)||(n.searchQuery=p),p}),c()(),m(10,oo,2,0,"p",8)(11,io,2,1,"p",9)(12,ro,2,0,"p",8)(13,bo,23,19,"button",10),c()),t&2&&(r(3),l("ngForOf",n.tabs),r(4),l("disabled",n.creatingOrder),r(),C(" ",n.creatingOrder?"Starting\u2026":"+ New order"," "),r(),Ie("ngModel",n.searchQuery),r(),l("ngIf",n.isLoading),r(),l("ngIf",!n.isLoading&&n.errorMessage),r(),l("ngIf",!n.isLoading&&!n.errorMessage&&n.filteredOrders.length===0),r(),l("ngForOf",n.filteredOrders))},dependencies:[G,j,Fe,Le,Ae],styles:['@charset "UTF-8";.handheld-stub[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:32px 24px;min-height:100%;color:#f1f5f9}.handheld-stub[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%]{font-size:1.5rem;font-weight:600;margin:0 0 12px}.handheld-stub__hint[_ngcontent-%COMP%]{font-size:1rem;color:#cbd5e1;margin:0 0 8px}.handheld-stub__note[_ngcontent-%COMP%]{font-size:.8rem;color:#64748b;margin:0;font-family:ui-monospace,Cascadia Code,Fira Code,monospace}.hh-menu__grid[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
1.hh-menu__tile[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;min-height:124px;padding:20px 12px;border:1px solid #334155;border-radius:16px;background:#1e293b;color:#f1f5f9;cursor:pointer;-webkit-tap-highlight-color:transparent}.hh-menu__tile[_ngcontent-%COMP%]:active{background:#334155}.hh-menu__tile[_ngcontent-%COMP%]:disabled{opacity:.6}.hh-menu__icon[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;width:54px;height:54px;border-radius:14px;background:#60a5fa24;color:#60a5fa}.hh-menu__icon[_ngcontent-%COMP%]   svg[_ngcontent-%COMP%]{width:30px;height:30px}.hh-menu__label[_ngcontent-%COMP%]{font-size:1.05rem;font-weight:700;text-align:center}.hh-menu__reset[_ngcontent-%COMP%]{display:block;margin:18px auto 4px;padding:10px 16px;border:1px solid #475569;border-radius:12px;background:transparent;color:#94a3b8;font-size:.9rem;font-weight:600;-webkit-tap-highlight-color:transparent}.hh-menu__reset[_ngcontent-%COMP%]:active{background:#1e293b;color:#fca5a5;border-color:#b91c1c}.hh-page[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:10px;padding:16px;min-height:100%;color:#f1f5f9}.hh-page__heading[_ngcontent-%COMP%]{font-size:1.25rem;font-weight:700;margin:4px 2px 8px}.hh-page__muted[_ngcontent-%COMP%]{color:#94a3b8;font-size:.95rem;margin:8px 2px}.hh-page__error[_ngcontent-%COMP%]{color:#fca5a5;font-size:.95rem;margin:8px 2px}.hh-tile[_ngcontent-%COMP%]{display:flex;align-items:center;gap:12px;width:100%;padding:18px 16px;border:1px solid #334155;border-radius:14px;background:#1e293b;color:#f1f5f9;font-size:1.1rem;font-weight:600;text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent}.hh-tile[_ngcontent-%COMP%]:active{background:#334155}.hh-tile__label[_ngcontent-%COMP%]{flex:1 1 auto}.hh-tile__meta[_ngcontent-%COMP%]{flex:0 0 auto;font-size:.85rem;font-weight:500;color:#94a3b8}.hh-tile__chevron[_ngcontent-%COMP%]{flex:0 0 auto;color:#64748b}.hh-table[_ngcontent-%COMP%]{padding:12px 14px;border-left-width:4px}.hh-table[_ngcontent-%COMP%]:disabled{cursor:default;opacity:.55}.hh-table__seats[_ngcontent-%COMP%]{display:block;font-size:.8rem;font-weight:500;color:#94a3b8}.hh-table__state[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:flex-end;flex:0 0 auto;gap:2px}.hh-table__status[_ngcontent-%COMP%]{font-size:.85rem;font-weight:700;color:#94a3b8}.hh-table__detail[_ngcontent-%COMP%]{font-size:.8rem;font-weight:500;color:#cbd5e1}.hh-table--occupied[_ngcontent-%COMP%]{border-left-color:#38bdf8;background:#172b45}.hh-table--occupied[_ngcontent-%COMP%]   .hh-table__status[_ngcontent-%COMP%]{color:#7dd3fc}.hh-table--paid[_ngcontent-%COMP%]{border-left-color:#22c55e}.hh-table--paid[_ngcontent-%COMP%]   .hh-table__status[_ngcontent-%COMP%]{color:#86efac}.hh-table--bussing[_ngcontent-%COMP%]{border-left-color:#f59e0b}.hh-table--bussing[_ngcontent-%COMP%]   .hh-table__status[_ngcontent-%COMP%]{color:#fcd34d}.hh-cta[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:18px 16px;border:none;border-radius:14px;background:#22c55e;color:#052e16;font-size:1.1rem;font-weight:700;cursor:pointer;-webkit-tap-highlight-color:transparent}.hh-cta[_ngcontent-%COMP%]:active{background:#16a34a}.hh-cta[_ngcontent-%COMP%]:disabled{background:#334155;color:#64748b}.hh-divider[_ngcontent-%COMP%]{display:flex;align-items:center;gap:10px;margin:8px 2px 2px;color:#64748b;font-size:.8rem;text-transform:uppercase;letter-spacing:.04em}.hh-divider[_ngcontent-%COMP%]:before, .hh-divider[_ngcontent-%COMP%]:after{content:"";flex:1 1 auto;height:1px;background:#334155}.hh-order[_ngcontent-%COMP%]{padding-bottom:0}.hh-seg[_ngcontent-%COMP%]{display:flex;gap:6px;margin:4px 0 12px;padding:5px;background:#1e293b;border-radius:12px}.hh-seg__btn[_ngcontent-%COMP%]{flex:1 1 0;min-height:44px;padding:10px 8px;border:none;border-radius:9px;background:transparent;color:#94a3b8;font-size:1rem;font-weight:700;-webkit-tap-highlight-color:transparent}.hh-seg__btn--active[_ngcontent-%COMP%]{background:#0f172a;color:#f1f5f9}.hh-seats[_ngcontent-%COMP%]{display:flex;align-items:center;gap:6px;margin:0 0 12px;padding-bottom:2px;overflow-x:auto;-webkit-overflow-scrolling:touch}.hh-seats[_ngcontent-%COMP%]::-webkit-scrollbar{display:none}.hh-seats__chip[_ngcontent-%COMP%]{flex:0 0 auto;min-width:44px;padding:10px 14px;border:1px solid #334155;border-radius:999px;background:#1e293b;color:#cbd5e1;font-size:.95rem;font-weight:700;-webkit-tap-highlight-color:transparent}.hh-seats__chip--active[_ngcontent-%COMP%]{border-color:#60a5fa;background:#60a5fa2e;color:#f1f5f9}.hh-seats__add[_ngcontent-%COMP%]{flex:0 0 auto;padding:10px 14px;border:1px dashed #475569;border-radius:999px;background:transparent;color:#94a3b8;font-size:.95rem;font-weight:700;white-space:nowrap;-webkit-tap-highlight-color:transparent}.hh-seats__add[_ngcontent-%COMP%]:active{background:#1e293b}.hh-seats__add[_ngcontent-%COMP%]:disabled{opacity:.5}
1.hh-order__search[_ngcontent-%COMP%]{width:100%;padding:12px 14px;margin-bottom:10px;border-radius:12px;border:1px solid #334155;background:#0f172a;color:#f1f5f9;font-size:1rem;outline:none}.hh-order__search[_ngcontent-%COMP%]::placeholder{color:#64748b}.hh-order__group[_ngcontent-%COMP%]{font-size:.8rem;text-transform:uppercase;letter-spacing:.04em;color:#94a3b8;margin:14px 2px 6px}.hh-menu__groups[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:12px}.hh-menu__group[_ngcontent-%COMP%]{min-height:60px;padding:10px 8px;border:1px solid #334155;border-radius:12px;font-size:.95rem;font-weight:700;line-height:1.15;text-align:center;display:flex;align-items:center;justify-content:center;-webkit-tap-highlight-color:transparent}.hh-menu__group[_ngcontent-%COMP%]:active{filter:brightness(1.15)}.hh-menu__group--active[_ngcontent-%COMP%]{box-shadow:inset 0 0 0 3px #ffffffd9;font-weight:800}.hh-menu__items[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.hh-menu__item[_ngcontent-%COMP%]{flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:84px;padding:12px 10px;text-align:center}.hh-menu__item[_ngcontent-%COMP%]   .hh-tile__label[_ngcontent-%COMP%]{flex:0 0 auto;width:100%;line-height:1.15}.hh-menu__item[_ngcontent-%COMP%]   .hh-tile__meta[_ngcontent-%COMP%]{color:inherit;opacity:.8}.hh-order__table[_ngcontent-%COMP%]{margin-left:8px;font-size:.95rem;font-weight:600;color:#60a5fa}.hh-order__item[_ngcontent-%COMP%]{font-size:1rem;padding:14px 16px;margin-bottom:8px}.hh-order__line[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:10px;padding:12px 14px;border:1px solid #334155;border-radius:12px;background:#1e293b;margin-bottom:8px}.hh-order__line--selectable[_ngcontent-%COMP%]{cursor:pointer}.hh-order__line--selected[_ngcontent-%COMP%]{border-color:#60a5fa;background:#60a5fa24}.hh-order__line--held[_ngcontent-%COMP%]{border-color:#d97706;background:#d9770629}
1.hh-order__line--sent[_ngcontent-%COMP%]{opacity:.62}.hh-order__line--ready[_ngcontent-%COMP%]{border-color:#16a34a;background:#16a34a29}.hh-order__line-info[_ngcontent-%COMP%]{display:flex;justify-content:space-between;font-weight:600}.hh-order__line-name[_ngcontent-%COMP%]{flex:1 1 auto;padding-right:8px}.hh-order__line-check[_ngcontent-%COMP%]{margin-right:6px;color:#60a5fa;font-size:1.05rem}.hh-order__line-badge[_ngcontent-%COMP%]{margin-left:8px;padding:1px 7px;border-radius:999px;font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;vertical-align:middle}.hh-order__line-badge--held[_ngcontent-%COMP%]{background:#d9770640;color:#fcd34d}.hh-order__line-badge--sent[_ngcontent-%COMP%]{background:#94a3b838;color:#cbd5e1}.hh-order__line-badge--ready[_ngcontent-%COMP%]{background:#16a34a40;color:#86efac}.hh-order__kds-hint[_ngcontent-%COMP%]{margin:0 0 6px;font-size:.78rem;color:#94a3b8;text-align:center}.hh-order__stepper[_ngcontent-%COMP%]{display:flex;align-items:center;gap:10px}.hh-step[_ngcontent-%COMP%]{width:42px;height:42px;border-radius:10px;border:1px solid #475569;background:#0f172a;color:#f1f5f9;font-size:1.5rem;line-height:1}.hh-step[_ngcontent-%COMP%]:active{background:#334155}.hh-step__qty[_ngcontent-%COMP%]{min-width:26px;text-align:center;font-weight:700}.hh-order__line-actions[_ngcontent-%COMP%]{margin-left:auto;display:flex;align-items:center;gap:14px}.hh-order__mod-btn[_ngcontent-%COMP%]{background:transparent;border:none;color:#60a5fa;font-size:.9rem;font-weight:600}.hh-order__remove[_ngcontent-%COMP%]{background:transparent;border:none;color:#fca5a5;font-size:.9rem}.hh-order__item[_ngcontent-%COMP%]   .hh-tile__meta[_ngcontent-%COMP%]{color:inherit;opacity:.8}.hh-order__footer[_ngcontent-%COMP%]{position:sticky;bottom:0;margin-top:auto;padding:12px 0 6px;background:linear-gradient(180deg,#0f172a66,#0f172a 28%)}.hh-order__totals[_ngcontent-%COMP%]{font-size:.95rem;color:#cbd5e1;margin-bottom:8px}.hh-order__totals[_ngcontent-%COMP%] > div[_ngcontent-%COMP%]{display:flex;justify-content:space-between;padding:2px}.hh-order__grand[_ngcontent-%COMP%]{font-size:1.1rem;font-weight:700;color:#f1f5f9;border-top:1px solid #334155;margin-top:4px;padding-top:6px}.hh-order__paid-line[_ngcontent-%COMP%]{color:#34d399;font-weight:600}.hh-order__balance[_ngcontent-%COMP%]{font-size:1.1rem;font-weight:700;color:#f1f5f9;border-top:1px solid #334155;margin-top:4px;padding-top:6px}.hh-order__kds[_ngcontent-%COMP%]{display:block;margin-bottom:8px}.hh-order__actions[_ngcontent-%COMP%]{display:flex;gap:10px;align-items:stretch}.hh-order__print[_ngcontent-%COMP%]{flex:0 0 auto;padding:14px 12px;border:1px solid #475569;border-radius:14px;background:#1e293b;color:#e2e8f0;font-size:1.05rem;font-weight:700;white-space:nowrap;-webkit-tap-highlight-color:transparent}.hh-order__print[_ngcontent-%COMP%]:active{background:#334155}.hh-order__print[_ngcontent-%COMP%]:disabled{opacity:.6}.hh-order__discount[_ngcontent-%COMP%]{flex:0 0 auto;padding:14px 12px;border:1px solid #475569;border-radius:14px;background:#1e293b;color:#e2e8f0;font-size:1.05rem;font-weight:700;white-space:nowrap;-webkit-tap-highlight-color:transparent}.hh-order__discount[_ngcontent-%COMP%]:active{background:#334155}.hh-order__discount[_ngcontent-%COMP%]:disabled{opacity:.6}.hh-order__pay[_ngcontent-%COMP%]{flex:1 1 auto;width:100%;padding:14px 10px;white-space:nowrap;border:none;border-radius:14px;background:#22c55e;color:#052e16;font-size:1.15rem;font-weight:700}.hh-order__pay[_ngcontent-%COMP%]:active{background:#16a34a}.hh-order__pay[_ngcontent-%COMP%]:disabled{background:#334155;color:#64748b}.hh-order__pay--secondary[_ngcontent-%COMP%]:not(:disabled){border:1px solid #22c55e;background:#1e293b;color:#86efac}.hh-order__pay--secondary[_ngcontent-%COMP%]:not(:disabled):active{background:#0f172a}.hh-list__top[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:10px;margin-bottom:6px}.hh-list__tabs.hh-seg[_ngcontent-%COMP%]{margin:0}.hh-list__tabs[_ngcontent-%COMP%]   .hh-seg__btn[_ngcontent-%COMP%]{padding:10px 4px;font-size:.95rem}.hh-list__actions[_ngcontent-%COMP%]{display:flex;gap:8px}.hh-list__tables[_ngcontent-%COMP%]{flex:1 1 auto;display:flex;align-items:center;justify-content:center;padding:18px 16px;border:none;border-radius:14px;background:#22c55e;color:#052e16;font-size:1.1rem;font-weight:700;-webkit-tap-highlight-color:transparent}.hh-list__tables[_ngcontent-%COMP%]:active{background:#16a34a}.hh-list__new[_ngcontent-%COMP%]{flex:0 0 auto;padding:14px 18px;border:1px solid #475569;border-radius:14px;background:#1e293b;color:#f1f5f9;font-size:1rem;font-weight:600;-webkit-tap-highlight-color:transparent}.hh-list__new[_ngcontent-%COMP%]:active{background:#334155}.hh-list__new[_ngcontent-%COMP%]:disabled{background:#0f172a;color:#64748b}.hh-order-card[_ngcontent-%COMP%]{display:flex;align-items:stretch;gap:12px;width:100%;padding:14px;margin-bottom:8px;border:1px solid #334155;border-radius:14px;background:#1e293b;color:#f1f5f9;text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent}.hh-order-card[_ngcontent-%COMP%]:active{background:#334155}.hh-order-card--voided[_ngcontent-%COMP%]{border-left:3px solid #64748b}.hh-order-card__id[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:flex-start;gap:6px;flex:0 0 auto;min-width:64px}.hh-order-card__num[_ngcontent-%COMP%]{font-size:1.35rem;font-weight:800;line-height:1}.hh-order-card__body[_ngcontent-%COMP%]{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;justify-content:center;gap:4px}.hh-order-card__title[_ngcontent-%COMP%]{font-size:1rem;font-weight:600;line-height:1.2;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.hh-order-card__meta[_ngcontent-%COMP%]{font-size:.8rem;color:#94a3b8}.hh-order-card__approval[_ngcontent-%COMP%]{display:flex;gap:8px;margin-top:8px}.hh-approve-btn[_ngcontent-%COMP%], .hh-reject-btn[_ngcontent-%COMP%]{padding:6px 14px;border-radius:8px;font-size:.8rem;font-weight:700;border:none;cursor:pointer}.hh-approve-btn[_ngcontent-%COMP%]:disabled, .hh-reject-btn[_ngcontent-%COMP%]:disabled{opacity:.5}
1.hh-approve-btn[_ngcontent-%COMP%]{background:#059669;color:#fff}.hh-reject-btn[_ngcontent-%COMP%]{background:#ef444426;color:#f87171;border:1px solid rgba(239,68,68,.4)}.hh-order-card__amounts[_ngcontent-%COMP%]{flex:0 0 auto;align-self:center;display:flex;flex-direction:column;align-items:flex-end;gap:2px}.hh-order-card__total[_ngcontent-%COMP%]{font-size:1.05rem;font-weight:700}.hh-order-card__total--struck[_ngcontent-%COMP%]{text-decoration:line-through;color:#94a3b8}.hh-order-card__tip[_ngcontent-%COMP%]{font-size:.75rem;font-weight:600;color:#34d399;white-space:nowrap}.hh-badge[_ngcontent-%COMP%]{font-size:.62rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;padding:2px 7px;border-radius:9px;color:#fff}.hh-badge--void[_ngcontent-%COMP%]{background:#475569;color:#cbd5e1}.hh-badge--cash[_ngcontent-%COMP%]{background:#059669}.hh-badge--split[_ngcontent-%COMP%]{background:#4f46e5}.hh-mod[_ngcontent-%COMP%]{position:fixed;inset:0;z-index:1000;background:#020617b3;display:flex;flex-direction:column;justify-content:flex-end}.hh-mod__sheet[_ngcontent-%COMP%]{display:flex;flex-direction:column;max-height:92%;background:#0f172a;border-top:1px solid #334155;border-top-left-radius:18px;border-top-right-radius:18px;color:#f1f5f9}.hh-mod__header[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px;border-bottom:1px solid #1e293b}.hh-mod__title[_ngcontent-%COMP%]{font-size:1.15rem;font-weight:700}.hh-mod__close[_ngcontent-%COMP%]{flex:0 0 auto;width:40px;height:40px;border:none;background:transparent;color:#94a3b8;font-size:1.3rem}.hh-mod__body[_ngcontent-%COMP%]{padding:12px 16px;overflow-y:auto}.hh-mod__special[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%;margin-bottom:16px;padding:10px 14px;border:1px dashed #475569;border-radius:10px;background:#94a3b814;color:#e2e8f0;text-align:left}.hh-mod__special[_ngcontent-%COMP%]:disabled{opacity:.5}.hh-mod__special--set[_ngcontent-%COMP%]{border-style:solid;border-color:#f59e0b;background:#f59e0b1f}.hh-mod__special-label[_ngcontent-%COMP%]{font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:#94a3b8}.hh-mod__special-value[_ngcontent-%COMP%]{font-size:.95rem;line-height:1.3;word-break:break-word}.hh-mod__group[_ngcontent-%COMP%]{margin-bottom:16px}.hh-mod__group-name[_ngcontent-%COMP%]{display:flex;align-items:baseline;justify-content:space-between;gap:8px;font-size:1rem;font-weight:700;margin-bottom:8px}.hh-mod__group-hint[_ngcontent-%COMP%]{flex:0 0 auto;font-size:.72rem;font-weight:500;color:#94a3b8;text-transform:uppercase;letter-spacing:.03em}.hh-mod__options[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-bottom:4px}.hh-mod__opt[_ngcontent-%COMP%]{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:64px;padding:12px 10px;border:1px solid #334155;border-radius:12px;background:#1e293b;color:#f1f5f9;font-size:1rem;font-weight:600;text-align:center;line-height:1.15}.hh-mod__opt--selected[_ngcontent-%COMP%]{border-color:#22c55e;background:#14321f}.hh-mod__opt-check[_ngcontent-%COMP%]{position:absolute;top:6px;right:8px;color:#22c55e;font-weight:800;font-size:.85rem}.hh-mod__opt-name[_ngcontent-%COMP%]{width:100%}.hh-mod__opt-price[_ngcontent-%COMP%]{color:#94a3b8;font-size:.82rem;font-weight:500}.hh-mod__footer[_ngcontent-%COMP%]{display:flex;flex-direction:row;gap:12px;padding:12px 16px;border-top:1px solid #1e293b}.hh-mod__btn[_ngcontent-%COMP%]{flex:1 1 0;display:inline-flex;align-items:center;justify-content:center;padding:16px;border-radius:12px;font-size:1.05rem;font-weight:700;line-height:1;cursor:pointer;-webkit-tap-highlight-color:transparent}.hh-mod__btn--cancel[_ngcontent-%COMP%]{border:1px solid #475569;background:#1e293b;color:#e2e8f0}.hh-mod__btn--save[_ngcontent-%COMP%]{border:1px solid #22c55e;background:#22c55e;color:#052e16}.hh-mod__btn[_ngcontent-%COMP%]:disabled{opacity:.6}.hh-mod__premods[_ngcontent-%COMP%]{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:6px;margin:0 0 6px}.hh-mod__premod[_ngcontent-%COMP%]{padding:7px 13px;border:1px solid #475569;border-radius:999px;background:#0f172a;color:#cbd5e1;font-size:.85rem;font-weight:600}.hh-mod__premod--active[_ngcontent-%COMP%]{border-color:#22c55e;background:#14321f;color:#f1f5f9}.hh-mod__premod[_ngcontent-%COMP%]:disabled{opacity:.6}.hh-order__line-mods[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:2px 14px;padding-left:2px}.hh-order__line-mod[_ngcontent-%COMP%]{font-size:.82rem;line-height:1.35;color:#94a3b8}.hh-order__line-mod[_ngcontent-%COMP%]:before{content:"\\b7  ";color:#64748b}.hh-order__line-note[_ngcontent-%COMP%]{margin-top:2px;padding-left:2px;font-size:.82rem;font-style:italic;line-height:1.35;color:#fbbf24;word-break:break-word}.hh-pay-confirm[_ngcontent-%COMP%]{position:fixed;inset:0;z-index:1100;background:#020617eb;display:flex;align-items:center;justify-content:center;padding:24px}.hh-pay-confirm__card[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;width:100%;max-width:420px}.hh-pay-confirm__check[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;width:84px;height:84px;margin-bottom:6px;border-radius:999px;background:#14321f;border:2px solid #22c55e;color:#22c55e;font-size:2.6rem;font-weight:700;line-height:1}.hh-pay-confirm__title[_ngcontent-%COMP%]{font-size:1.4rem;font-weight:700;color:#f1f5f9}
1.hh-pay-confirm__amount[_ngcontent-%COMP%]{font-size:2.2rem;font-weight:800;color:#22c55e}.hh-pay-confirm__tip[_ngcontent-%COMP%]{font-size:1rem;font-weight:600;color:#86efac}.hh-pay-confirm__sub[_ngcontent-%COMP%]{font-size:.95rem;color:#94a3b8}.hh-pay-confirm__print[_ngcontent-%COMP%]{width:100%;margin-top:18px;padding:16px;border:1px solid #475569;border-radius:14px;background:#1e293b;color:#e2e8f0;font-size:1.1rem;font-weight:700}.hh-pay-confirm__print[_ngcontent-%COMP%]:active{background:#334155}.hh-pay-confirm__print[_ngcontent-%COMP%]:disabled{opacity:.6}.hh-pay-confirm__done[_ngcontent-%COMP%]{width:100%;margin-top:10px;padding:16px;border:none;border-radius:14px;background:#22c55e;color:#052e16;font-size:1.15rem;font-weight:700}.hh-pay-confirm__done[_ngcontent-%COMP%]:active{background:#16a34a}.hh-tips__top[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:flex-end;gap:10px}.hh-tips__top[_ngcontent-%COMP%]   .hh-page__heading[_ngcontent-%COMP%]{margin:0}.hh-tips__refresh[_ngcontent-%COMP%]{padding:8px 14px;border:1px solid #334155;border-radius:10px;background:#1e293b;color:#e2e8f0;font-size:.9rem;font-weight:600}.hh-tips__refresh[_ngcontent-%COMP%]:disabled{opacity:.6}.hh-tips__cards[_ngcontent-%COMP%]{display:grid;grid-template-columns:1fr 1fr;gap:8px}.hh-tips__card[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:4px;padding:12px;border:1px solid #334155;border-radius:12px;background:#0f172a}.hh-tips__card-label[_ngcontent-%COMP%]{color:#94a3b8;font-size:.78rem}.hh-tips__card-value[_ngcontent-%COMP%]{font-size:1.2rem;font-weight:700}.hh-tips__card-value--good[_ngcontent-%COMP%]{color:#34d399}.hh-tips__card-value--warn[_ngcontent-%COMP%]{color:#fcd34d}.hh-tips__pool[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:4px;padding:10px 12px;border:1px solid #334155;border-radius:12px;background:#0f172a}.hh-tips__pool-line[_ngcontent-%COMP%]{display:flex;justify-content:space-between;font-size:.9rem;color:#cbd5e1}.hh-tips__pool-out[_ngcontent-%COMP%]{color:#fcd34d;font-weight:600}.hh-tips__pool-in[_ngcontent-%COMP%]{color:#34d399;font-weight:600}.hh-tips__table[_ngcontent-%COMP%]{color:#94a3b8;font-size:.85rem}.hh-tips__check-money[_ngcontent-%COMP%]{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.hh-tips__check-tip[_ngcontent-%COMP%]{font-weight:700;color:#34d399}.hh-tips__check-grat[_ngcontent-%COMP%]{color:#a5b4fc;font-size:.85rem}.hh-tips__check-total[_ngcontent-%COMP%]{color:#64748b;font-size:.85rem}.hh-tips__pay[_ngcontent-%COMP%]{margin-left:auto;padding:6px 14px;border:none;border-radius:10px;background:#22c55e;color:#052e16;font-weight:700}.hh-tips__pay[_ngcontent-%COMP%]:active{background:#16a34a}']})}}return o})();function Po(o,h){o&1&&(a(0,"p",6),d(1,"Loading sections\u2026"),c())}function yo(o,h){if(o&1&&(a(0,"p",7),d(1),c()),o&2){let e=s();r(),b(e.errorMessage)}}function Oo(o,h){o&1&&(a(0,"p",6),d(1," No sections found for this venue. Use a quick order above, or set up a floor plan in the web POS. "),c())}function Mo(o,h){if(o&1){let e=O();a(0,"button",8),x("click",function(){let n=P(e).$implicit,i=s();return y(i.openSection(n))}),a(1,"span",9),d(2),c(),B(),a(3,"svg",10),I(4,"polyline",11),c()()}if(o&2){let e=h.$implicit;r(2),b(e.name)}}var yn=(()=>{class o{constructor(e,t,n,i,p,f){this.router=e,this.accountService=t,this.posFloorService=n,this.posOrderService=i,this.toastController=p,this.convergenceFlag=f,this.sections=[],this.isLoading=!0,this.errorMessage="",this.creatingOrder=!1}ngOnInit(){return g(this,null,function*(){try{let e=yield this.accountService.getCorporationDetailId();if(!e){this.errorMessage="Unable to determine the venue for this device.";return}let t=yield this.posFloorService.getFloorAreas(e,!1);this.sections=(t??[]).filter(n=>n.isActive).sort((n,i)=>(n.displayOrder??0)-(i.displayOrder??0)||(n.name??"").localeCompare(i.name??""))}catch(e){console.error("[Handheld/SectionPicker] failed to load sections",e),this.errorMessage="Could not load sections. Check the connection and try again."}finally{this.isLoading=!1}})}openSection(e){this.router.navigate(["/pos-handheld/sections",e.posFloorAreaId,"tables"])}createQuickOrder(){return g(this,null,function*(){if(!this.creatingOrder){if(this.convergenceFlag.useConvergedPosStack()){yield this.router.navigate(["/pos/place-order"]);return}this.creatingOrder=!0;try{let e=yield this.accountService.getCorporationDetailId();if(!e){yield this.toast("Unable to determine the venue for this device.");return}let t=yield this.accountService.getCorporationEmployeeId(),n=yield this.posOrderService.createOrder(e,{createdByEmployeeId:t,deferCheck:!0});n?.orderId?this.router.navigate(["/pos-handheld/order",n.orderId]):yield this.toast("Could not start an order. Please try again.")}catch(e){console.error("[Handheld/SectionPicker] createQuickOrder failed",e),yield this.toast("Could not start an order. Check the connection and try again.")}finally{this.creatingOrder=!1}}})}toast(e){return g(this,null,function*(){yield(yield this.toastController.create({message:e,duration:1600,position:"bottom"})).present()})}static{this.\u0275fac=function(t){return new(t||o)(_(D),_(F),_(Ze),_(U),_(q),_(Y))}}static{this.\u0275cmp=k({type:o,selectors:[["app-pos-handheld-section-picker"]],standalone:!1,decls:9,vars:6,consts:[[1,"hh-page"],["type","button",1,"hh-cta",3,"click","disabled"],[1,"hh-divider"],["class","hh-page__muted",4,"ngIf"],["class","hh-page__error",4,"ngIf"],["type","button","class","hh-tile",3,"click",4,"ngFor","ngForOf"],[1,"hh-page__muted"],[1,"hh-page__error"],["type","button",1,"hh-tile",3,"click"],[1,"hh-tile__label"],["width","22","height","22","viewBox","0 0 24 24","fill","none","stroke","currentColor","stroke-width","2","stroke-linecap","round","stroke-linejoin","round",1,"hh-tile__chevron"],["points","9 18 15 12 9 6"]],template:function(t,n){t&1&&(a(0,"div",0)(1,"button",1),x("click",function(){return n.createQuickOrder()}),d(2),c(),a(3,"div",2),d(4,"or pick a table"),c(),m(5,Po,2,0,"p",3)(6,yo,2,1,"p",4)(7,Oo,2,0,"p",3)(8,Mo,5,1,"button",5),c()),t&2&&(r(),l("disabled",n.creatingOrder),r(),C(" ",n.creatingOrder?"Starting\u2026":"+ New quick order"," "),r(3),l("ngIf",n.isLoading),r(),l("ngIf",!n.isLoading&&n.errorMessage),r(),l("ngIf",!n.isLoading&&!n.errorMessage&&n.sections.length===0),r(),l("ngForOf",n.sections))},dependencies:[G,j],styles:['@charset "UTF-8";.handheld-stub[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:32px 24px;min-height:100%;color:#f1f5f9}.handheld-stub[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%]{font-size:1.5rem;font-weight:600;margin:0 0 12px}.handheld-stub__hint[_ngcontent-%COMP%]{font-size:1rem;color:#cbd5e1;margin:0 0 8px}.handheld-stub__note[_ngcontent-%COMP%]{font-size:.8rem;color:#64748b;margin:0;font-family:ui-monospace,Cascadia Code,Fira Code,monospace}.hh-menu__grid[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
1.hh-menu__tile[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;min-height:124px;padding:20px 12px;border:1px solid #334155;border-radius:16px;background:#1e293b;color:#f1f5f9;cursor:pointer;-webkit-tap-highlight-color:transparent}.hh-menu__tile[_ngcontent-%COMP%]:active{background:#334155}.hh-menu__tile[_ngcontent-%COMP%]:disabled{opacity:.6}.hh-menu__icon[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;width:54px;height:54px;border-radius:14px;background:#60a5fa24;color:#60a5fa}.hh-menu__icon[_ngcontent-%COMP%]   svg[_ngcontent-%COMP%]{width:30px;height:30px}.hh-menu__label[_ngcontent-%COMP%]{font-size:1.05rem;font-weight:700;text-align:center}.hh-menu__reset[_ngcontent-%COMP%]{display:block;margin:18px auto 4px;padding:10px 16px;border:1px solid #475569;border-radius:12px;background:transparent;color:#94a3b8;font-size:.9rem;font-weight:600;-webkit-tap-highlight-color:transparent}.hh-menu__reset[_ngcontent-%COMP%]:active{background:#1e293b;color:#fca5a5;border-color:#b91c1c}.hh-page[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:10px;padding:16px;min-height:100%;color:#f1f5f9}.hh-page__heading[_ngcontent-%COMP%]{font-size:1.25rem;font-weight:700;margin:4px 2px 8px}.hh-page__muted[_ngcontent-%COMP%]{color:#94a3b8;font-size:.95rem;margin:8px 2px}.hh-page__error[_ngcontent-%COMP%]{color:#fca5a5;font-size:.95rem;margin:8px 2px}.hh-tile[_ngcontent-%COMP%]{display:flex;align-items:center;gap:12px;width:100%;padding:18px 16px;border:1px solid #334155;border-radius:14px;background:#1e293b;color:#f1f5f9;font-size:1.1rem;font-weight:600;text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent}.hh-tile[_ngcontent-%COMP%]:active{background:#334155}.hh-tile__label[_ngcontent-%COMP%]{flex:1 1 auto}.hh-tile__meta[_ngcontent-%COMP%]{flex:0 0 auto;font-size:.85rem;font-weight:500;color:#94a3b8}.hh-tile__chevron[_ngcontent-%COMP%]{flex:0 0 auto;color:#64748b}.hh-table[_ngcontent-%COMP%]{padding:12px 14px;border-left-width:4px}.hh-table[_ngcontent-%COMP%]:disabled{cursor:default;opacity:.55}.hh-table__seats[_ngcontent-%COMP%]{display:block;font-size:.8rem;font-weight:500;color:#94a3b8}.hh-table__state[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:flex-end;flex:0 0 auto;gap:2px}.hh-table__status[_ngcontent-%COMP%]{font-size:.85rem;font-weight:700;color:#94a3b8}.hh-table__detail[_ngcontent-%COMP%]{font-size:.8rem;font-weight:500;color:#cbd5e1}.hh-table--occupied[_ngcontent-%COMP%]{border-left-color:#38bdf8;background:#172b45}.hh-table--occupied[_ngcontent-%COMP%]   .hh-table__status[_ngcontent-%COMP%]{color:#7dd3fc}.hh-table--paid[_ngcontent-%COMP%]{border-left-color:#22c55e}.hh-table--paid[_ngcontent-%COMP%]   .hh-table__status[_ngcontent-%COMP%]{color:#86efac}.hh-table--bussing[_ngcontent-%COMP%]{border-left-color:#f59e0b}.hh-table--bussing[_ngcontent-%COMP%]   .hh-table__status[_ngcontent-%COMP%]{color:#fcd34d}.hh-cta[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:18px 16px;border:none;border-radius:14px;background:#22c55e;color:#052e16;font-size:1.1rem;font-weight:700;cursor:pointer;-webkit-tap-highlight-color:transparent}.hh-cta[_ngcontent-%COMP%]:active{background:#16a34a}.hh-cta[_ngcontent-%COMP%]:disabled{background:#334155;color:#64748b}.hh-divider[_ngcontent-%COMP%]{display:flex;align-items:center;gap:10px;margin:8px 2px 2px;color:#64748b;font-size:.8rem;text-transform:uppercase;letter-spacing:.04em}.hh-divider[_ngcontent-%COMP%]:before, .hh-divider[_ngcontent-%COMP%]:after{content:"";flex:1 1 auto;height:1px;background:#334155}.hh-order[_ngcontent-%COMP%]{padding-bottom:0}.hh-seg[_ngcontent-%COMP%]{display:flex;gap:6px;margin:4px 0 12px;padding:5px;background:#1e293b;border-radius:12px}.hh-seg__btn[_ngcontent-%COMP%]{flex:1 1 0;min-height:44px;padding:10px 8px;border:none;border-radius:9px;background:transparent;color:#94a3b8;font-size:1rem;font-weight:700;-webkit-tap-highlight-color:transparent}.hh-seg__btn--active[_ngcontent-%COMP%]{background:#0f172a;color:#f1f5f9}.hh-seats[_ngcontent-%COMP%]{display:flex;align-items:center;gap:6px;margin:0 0 12px;padding-bottom:2px;overflow-x:auto;-webkit-overflow-scrolling:touch}.hh-seats[_ngcontent-%COMP%]::-webkit-scrollbar{display:none}.hh-seats__chip[_ngcontent-%COMP%]{flex:0 0 auto;min-width:44px;padding:10px 14px;border:1px solid #334155;border-radius:999px;background:#1e293b;color:#cbd5e1;font-size:.95rem;font-weight:700;-webkit-tap-highlight-color:transparent}.hh-seats__chip--active[_ngcontent-%COMP%]{border-color:#60a5fa;background:#60a5fa2e;color:#f1f5f9}.hh-seats__add[_ngcontent-%COMP%]{flex:0 0 auto;padding:10px 14px;border:1px dashed #475569;border-radius:999px;background:transparent;color:#94a3b8;font-size:.95rem;font-weight:700;white-space:nowrap;-webkit-tap-highlight-color:transparent}.hh-seats__add[_ngcontent-%COMP%]:active{background:#1e293b}.hh-seats__add[_ngcontent-%COMP%]:disabled{opacity:.5}
1.hh-order__search[_ngcontent-%COMP%]{width:100%;padding:12px 14px;margin-bottom:10px;border-radius:12px;border:1px solid #334155;background:#0f172a;color:#f1f5f9;font-size:1rem;outline:none}.hh-order__search[_ngcontent-%COMP%]::placeholder{color:#64748b}.hh-order__group[_ngcontent-%COMP%]{font-size:.8rem;text-transform:uppercase;letter-spacing:.04em;color:#94a3b8;margin:14px 2px 6px}.hh-menu__groups[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:12px}.hh-menu__group[_ngcontent-%COMP%]{min-height:60px;padding:10px 8px;border:1px solid #334155;border-radius:12px;font-size:.95rem;font-weight:700;line-height:1.15;text-align:center;display:flex;align-items:center;justify-content:center;-webkit-tap-highlight-color:transparent}.hh-menu__group[_ngcontent-%COMP%]:active{filter:brightness(1.15)}.hh-menu__group--active[_ngcontent-%COMP%]{box-shadow:inset 0 0 0 3px #ffffffd9;font-weight:800}.hh-menu__items[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.hh-menu__item[_ngcontent-%COMP%]{flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:84px;padding:12px 10px;text-align:center}.hh-menu__item[_ngcontent-%COMP%]   .hh-tile__label[_ngcontent-%COMP%]{flex:0 0 auto;width:100%;line-height:1.15}.hh-menu__item[_ngcontent-%COMP%]   .hh-tile__meta[_ngcontent-%COMP%]{color:inherit;opacity:.8}.hh-order__table[_ngcontent-%COMP%]{margin-left:8px;font-size:.95rem;font-weight:600;color:#60a5fa}.hh-order__item[_ngcontent-%COMP%]{font-size:1rem;padding:14px 16px;margin-bottom:8px}.hh-order__line[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:10px;padding:12px 14px;border:1px solid #334155;border-radius:12px;background:#1e293b;margin-bottom:8px}.hh-order__line--selectable[_ngcontent-%COMP%]{cursor:pointer}.hh-order__line--selected[_ngcontent-%COMP%]{border-color:#60a5fa;background:#60a5fa24}.hh-order__line--held[_ngcontent-%COMP%]{border-color:#d97706;background:#d9770629}
1.hh-order__line--sent[_ngcontent-%COMP%]{opacity:.62}.hh-order__line--ready[_ngcontent-%COMP%]{border-color:#16a34a;background:#16a34a29}.hh-order__line-info[_ngcontent-%COMP%]{display:flex;justify-content:space-between;font-weight:600}.hh-order__line-name[_ngcontent-%COMP%]{flex:1 1 auto;padding-right:8px}.hh-order__line-check[_ngcontent-%COMP%]{margin-right:6px;color:#60a5fa;font-size:1.05rem}.hh-order__line-badge[_ngcontent-%COMP%]{margin-left:8px;padding:1px 7px;border-radius:999px;font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;vertical-align:middle}.hh-order__line-badge--held[_ngcontent-%COMP%]{background:#d9770640;color:#fcd34d}.hh-order__line-badge--sent[_ngcontent-%COMP%]{background:#94a3b838;color:#cbd5e1}.hh-order__line-badge--ready[_ngcontent-%COMP%]{background:#16a34a40;color:#86efac}.hh-order__kds-hint[_ngcontent-%COMP%]{margin:0 0 6px;font-size:.78rem;color:#94a3b8;text-align:center}.hh-order__stepper[_ngcontent-%COMP%]{display:flex;align-items:center;gap:10px}.hh-step[_ngcontent-%COMP%]{width:42px;height:42px;border-radius:10px;border:1px solid #475569;background:#0f172a;color:#f1f5f9;font-size:1.5rem;line-height:1}.hh-step[_ngcontent-%COMP%]:active{background:#334155}.hh-step__qty[_ngcontent-%COMP%]{min-width:26px;text-align:center;font-weight:700}.hh-order__line-actions[_ngcontent-%COMP%]{margin-left:auto;display:flex;align-items:center;gap:14px}.hh-order__mod-btn[_ngcontent-%COMP%]{background:transparent;border:none;color:#60a5fa;font-size:.9rem;font-weight:600}.hh-order__remove[_ngcontent-%COMP%]{background:transparent;border:none;color:#fca5a5;font-size:.9rem}.hh-order__item[_ngcontent-%COMP%]   .hh-tile__meta[_ngcontent-%COMP%]{color:inherit;opacity:.8}.hh-order__footer[_ngcontent-%COMP%]{position:sticky;bottom:0;margin-top:auto;padding:12px 0 6px;background:linear-gradient(180deg,#0f172a66,#0f172a 28%)}.hh-order__totals[_ngcontent-%COMP%]{font-size:.95rem;color:#cbd5e1;margin-bottom:8px}.hh-order__totals[_ngcontent-%COMP%] > div[_ngcontent-%COMP%]{display:flex;justify-content:space-between;padding:2px}.hh-order__grand[_ngcontent-%COMP%]{font-size:1.1rem;font-weight:700;color:#f1f5f9;border-top:1px solid #334155;margin-top:4px;padding-top:6px}.hh-order__paid-line[_ngcontent-%COMP%]{color:#34d399;font-weight:600}.hh-order__balance[_ngcontent-%COMP%]{font-size:1.1rem;font-weight:700;color:#f1f5f9;border-top:1px solid #334155;margin-top:4px;padding-top:6px}.hh-order__kds[_ngcontent-%COMP%]{display:block;margin-bottom:8px}.hh-order__actions[_ngcontent-%COMP%]{display:flex;gap:10px;align-items:stretch}.hh-order__print[_ngcontent-%COMP%]{flex:0 0 auto;padding:14px 12px;border:1px solid #475569;border-radius:14px;background:#1e293b;color:#e2e8f0;font-size:1.05rem;font-weight:700;white-space:nowrap;-webkit-tap-highlight-color:transparent}.hh-order__print[_ngcontent-%COMP%]:active{background:#334155}.hh-order__print[_ngcontent-%COMP%]:disabled{opacity:.6}.hh-order__discount[_ngcontent-%COMP%]{flex:0 0 auto;padding:14px 12px;border:1px solid #475569;border-radius:14px;background:#1e293b;color:#e2e8f0;font-size:1.05rem;font-weight:700;white-space:nowrap;-webkit-tap-highlight-color:transparent}.hh-order__discount[_ngcontent-%COMP%]:active{background:#334155}.hh-order__discount[_ngcontent-%COMP%]:disabled{opacity:.6}.hh-order__pay[_ngcontent-%COMP%]{flex:1 1 auto;width:100%;padding:14px 10px;white-space:nowrap;border:none;border-radius:14px;background:#22c55e;color:#052e16;font-size:1.15rem;font-weight:700}.hh-order__pay[_ngcontent-%COMP%]:active{background:#16a34a}.hh-order__pay[_ngcontent-%COMP%]:disabled{background:#334155;color:#64748b}.hh-order__pay--secondary[_ngcontent-%COMP%]:not(:disabled){border:1px solid #22c55e;background:#1e293b;color:#86efac}.hh-order__pay--secondary[_ngcontent-%COMP%]:not(:disabled):active{background:#0f172a}.hh-list__top[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:10px;margin-bottom:6px}.hh-list__tabs.hh-seg[_ngcontent-%COMP%]{margin:0}.hh-list__tabs[_ngcontent-%COMP%]   .hh-seg__btn[_ngcontent-%COMP%]{padding:10px 4px;font-size:.95rem}.hh-list__actions[_ngcontent-%COMP%]{display:flex;gap:8px}.hh-list__tables[_ngcontent-%COMP%]{flex:1 1 auto;display:flex;align-items:center;justify-content:center;padding:18px 16px;border:none;border-radius:14px;background:#22c55e;color:#052e16;font-size:1.1rem;font-weight:700;-webkit-tap-highlight-color:transparent}.hh-list__tables[_ngcontent-%COMP%]:active{background:#16a34a}.hh-list__new[_ngcontent-%COMP%]{flex:0 0 auto;padding:14px 18px;border:1px solid #475569;border-radius:14px;background:#1e293b;color:#f1f5f9;font-size:1rem;font-weight:600;-webkit-tap-highlight-color:transparent}.hh-list__new[_ngcontent-%COMP%]:active{background:#334155}.hh-list__new[_ngcontent-%COMP%]:disabled{background:#0f172a;color:#64748b}.hh-order-card[_ngcontent-%COMP%]{display:flex;align-items:stretch;gap:12px;width:100%;padding:14px;margin-bottom:8px;border:1px solid #334155;border-radius:14px;background:#1e293b;color:#f1f5f9;text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent}.hh-order-card[_ngcontent-%COMP%]:active{background:#334155}.hh-order-card--voided[_ngcontent-%COMP%]{border-left:3px solid #64748b}.hh-order-card__id[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:flex-start;gap:6px;flex:0 0 auto;min-width:64px}.hh-order-card__num[_ngcontent-%COMP%]{font-size:1.35rem;font-weight:800;line-height:1}.hh-order-card__body[_ngcontent-%COMP%]{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;justify-content:center;gap:4px}.hh-order-card__title[_ngcontent-%COMP%]{font-size:1rem;font-weight:600;line-height:1.2;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.hh-order-card__meta[_ngcontent-%COMP%]{font-size:.8rem;color:#94a3b8}.hh-order-card__approval[_ngcontent-%COMP%]{display:flex;gap:8px;margin-top:8px}.hh-approve-btn[_ngcontent-%COMP%], .hh-reject-btn[_ngcontent-%COMP%]{padding:6px 14px;border-radius:8px;font-size:.8rem;font-weight:700;border:none;cursor:pointer}.hh-approve-btn[_ngcontent-%COMP%]:disabled, .hh-reject-btn[_ngcontent-%COMP%]:disabled{opacity:.5}
1.hh-approve-btn[_ngcontent-%COMP%]{background:#059669;color:#fff}.hh-reject-btn[_ngcontent-%COMP%]{background:#ef444426;color:#f87171;border:1px solid rgba(239,68,68,.4)}.hh-order-card__amounts[_ngcontent-%COMP%]{flex:0 0 auto;align-self:center;display:flex;flex-direction:column;align-items:flex-end;gap:2px}.hh-order-card__total[_ngcontent-%COMP%]{font-size:1.05rem;font-weight:700}.hh-order-card__total--struck[_ngcontent-%COMP%]{text-decoration:line-through;color:#94a3b8}.hh-order-card__tip[_ngcontent-%COMP%]{font-size:.75rem;font-weight:600;color:#34d399;white-space:nowrap}.hh-badge[_ngcontent-%COMP%]{font-size:.62rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;padding:2px 7px;border-radius:9px;color:#fff}.hh-badge--void[_ngcontent-%COMP%]{background:#475569;color:#cbd5e1}.hh-badge--cash[_ngcontent-%COMP%]{background:#059669}.hh-badge--split[_ngcontent-%COMP%]{background:#4f46e5}.hh-mod[_ngcontent-%COMP%]{position:fixed;inset:0;z-index:1000;background:#020617b3;display:flex;flex-direction:column;justify-content:flex-end}.hh-mod__sheet[_ngcontent-%COMP%]{display:flex;flex-direction:column;max-height:92%;background:#0f172a;border-top:1px solid #334155;border-top-left-radius:18px;border-top-right-radius:18px;color:#f1f5f9}.hh-mod__header[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px;border-bottom:1px solid #1e293b}.hh-mod__title[_ngcontent-%COMP%]{font-size:1.15rem;font-weight:700}.hh-mod__close[_ngcontent-%COMP%]{flex:0 0 auto;width:40px;height:40px;border:none;background:transparent;color:#94a3b8;font-size:1.3rem}.hh-mod__body[_ngcontent-%COMP%]{padding:12px 16px;overflow-y:auto}.hh-mod__special[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%;margin-bottom:16px;padding:10px 14px;border:1px dashed #475569;border-radius:10px;background:#94a3b814;color:#e2e8f0;text-align:left}.hh-mod__special[_ngcontent-%COMP%]:disabled{opacity:.5}.hh-mod__special--set[_ngcontent-%COMP%]{border-style:solid;border-color:#f59e0b;background:#f59e0b1f}.hh-mod__special-label[_ngcontent-%COMP%]{font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:#94a3b8}.hh-mod__special-value[_ngcontent-%COMP%]{font-size:.95rem;line-height:1.3;word-break:break-word}.hh-mod__group[_ngcontent-%COMP%]{margin-bottom:16px}.hh-mod__group-name[_ngcontent-%COMP%]{display:flex;align-items:baseline;justify-content:space-between;gap:8px;font-size:1rem;font-weight:700;margin-bottom:8px}.hh-mod__group-hint[_ngcontent-%COMP%]{flex:0 0 auto;font-size:.72rem;font-weight:500;color:#94a3b8;text-transform:uppercase;letter-spacing:.03em}.hh-mod__options[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-bottom:4px}.hh-mod__opt[_ngcontent-%COMP%]{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:64px;padding:12px 10px;border:1px solid #334155;border-radius:12px;background:#1e293b;color:#f1f5f9;font-size:1rem;font-weight:600;text-align:center;line-height:1.15}.hh-mod__opt--selected[_ngcontent-%COMP%]{border-color:#22c55e;background:#14321f}.hh-mod__opt-check[_ngcontent-%COMP%]{position:absolute;top:6px;right:8px;color:#22c55e;font-weight:800;font-size:.85rem}.hh-mod__opt-name[_ngcontent-%COMP%]{width:100%}.hh-mod__opt-price[_ngcontent-%COMP%]{color:#94a3b8;font-size:.82rem;font-weight:500}.hh-mod__footer[_ngcontent-%COMP%]{display:flex;flex-direction:row;gap:12px;padding:12px 16px;border-top:1px solid #1e293b}.hh-mod__btn[_ngcontent-%COMP%]{flex:1 1 0;display:inline-flex;align-items:center;justify-content:center;padding:16px;border-radius:12px;font-size:1.05rem;font-weight:700;line-height:1;cursor:pointer;-webkit-tap-highlight-color:transparent}.hh-mod__btn--cancel[_ngcontent-%COMP%]{border:1px solid #475569;background:#1e293b;color:#e2e8f0}.hh-mod__btn--save[_ngcontent-%COMP%]{border:1px solid #22c55e;background:#22c55e;color:#052e16}.hh-mod__btn[_ngcontent-%COMP%]:disabled{opacity:.6}.hh-mod__premods[_ngcontent-%COMP%]{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:6px;margin:0 0 6px}.hh-mod__premod[_ngcontent-%COMP%]{padding:7px 13px;border:1px solid #475569;border-radius:999px;background:#0f172a;color:#cbd5e1;font-size:.85rem;font-weight:600}.hh-mod__premod--active[_ngcontent-%COMP%]{border-color:#22c55e;background:#14321f;color:#f1f5f9}.hh-mod__premod[_ngcontent-%COMP%]:disabled{opacity:.6}.hh-order__line-mods[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:2px 14px;padding-left:2px}.hh-order__line-mod[_ngcontent-%COMP%]{font-size:.82rem;line-height:1.35;color:#94a3b8}.hh-order__line-mod[_ngcontent-%COMP%]:before{content:"\\b7  ";color:#64748b}.hh-order__line-note[_ngcontent-%COMP%]{margin-top:2px;padding-left:2px;font-size:.82rem;font-style:italic;line-height:1.35;color:#fbbf24;word-break:break-word}.hh-pay-confirm[_ngcontent-%COMP%]{position:fixed;inset:0;z-index:1100;background:#020617eb;display:flex;align-items:center;justify-content:center;padding:24px}.hh-pay-confirm__card[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;width:100%;max-width:420px}.hh-pay-confirm__check[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;width:84px;height:84px;margin-bottom:6px;border-radius:999px;background:#14321f;border:2px solid #22c55e;color:#22c55e;font-size:2.6rem;font-weight:700;line-height:1}.hh-pay-confirm__title[_ngcontent-%COMP%]{font-size:1.4rem;font-weight:700;color:#f1f5f9}
1.hh-pay-confirm__amount[_ngcontent-%COMP%]{font-size:2.2rem;font-weight:800;color:#22c55e}.hh-pay-confirm__tip[_ngcontent-%COMP%]{font-size:1rem;font-weight:600;color:#86efac}.hh-pay-confirm__sub[_ngcontent-%COMP%]{font-size:.95rem;color:#94a3b8}.hh-pay-confirm__print[_ngcontent-%COMP%]{width:100%;margin-top:18px;padding:16px;border:1px solid #475569;border-radius:14px;background:#1e293b;color:#e2e8f0;font-size:1.1rem;font-weight:700}.hh-pay-confirm__print[_ngcontent-%COMP%]:active{background:#334155}.hh-pay-confirm__print[_ngcontent-%COMP%]:disabled{opacity:.6}.hh-pay-confirm__done[_ngcontent-%COMP%]{width:100%;margin-top:10px;padding:16px;border:none;border-radius:14px;background:#22c55e;color:#052e16;font-size:1.15rem;font-weight:700}.hh-pay-confirm__done[_ngcontent-%COMP%]:active{background:#16a34a}.hh-tips__top[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:flex-end;gap:10px}.hh-tips__top[_ngcontent-%COMP%]   .hh-page__heading[_ngcontent-%COMP%]{margin:0}.hh-tips__refresh[_ngcontent-%COMP%]{padding:8px 14px;border:1px solid #334155;border-radius:10px;background:#1e293b;color:#e2e8f0;font-size:.9rem;font-weight:600}.hh-tips__refresh[_ngcontent-%COMP%]:disabled{opacity:.6}.hh-tips__cards[_ngcontent-%COMP%]{display:grid;grid-template-columns:1fr 1fr;gap:8px}.hh-tips__card[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:4px;padding:12px;border:1px solid #334155;border-radius:12px;background:#0f172a}.hh-tips__card-label[_ngcontent-%COMP%]{color:#94a3b8;font-size:.78rem}.hh-tips__card-value[_ngcontent-%COMP%]{font-size:1.2rem;font-weight:700}.hh-tips__card-value--good[_ngcontent-%COMP%]{color:#34d399}.hh-tips__card-value--warn[_ngcontent-%COMP%]{color:#fcd34d}.hh-tips__pool[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:4px;padding:10px 12px;border:1px solid #334155;border-radius:12px;background:#0f172a}.hh-tips__pool-line[_ngcontent-%COMP%]{display:flex;justify-content:space-between;font-size:.9rem;color:#cbd5e1}.hh-tips__pool-out[_ngcontent-%COMP%]{color:#fcd34d;font-weight:600}.hh-tips__pool-in[_ngcontent-%COMP%]{color:#34d399;font-weight:600}.hh-tips__table[_ngcontent-%COMP%]{color:#94a3b8;font-size:.85rem}.hh-tips__check-money[_ngcontent-%COMP%]{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.hh-tips__check-tip[_ngcontent-%COMP%]{font-weight:700;color:#34d399}.hh-tips__check-grat[_ngcontent-%COMP%]{color:#a5b4fc;font-size:.85rem}.hh-tips__check-total[_ngcontent-%COMP%]{color:#64748b;font-size:.85rem}.hh-tips__pay[_ngcontent-%COMP%]{margin-left:auto;padding:6px 14px;border:none;border-radius:10px;background:#22c55e;color:#052e16;font-weight:700}.hh-tips__pay[_ngcontent-%COMP%]:active{background:#16a34a}']})}}return o})();function wo(o,h){o&1&&(a(0,"p",4),d(1,"Loading tables\u2026"),c())}function ko(o,h){if(o&1&&(a(0,"p",5),d(1),c()),o&2){let e=s();r(),b(e.errorMessage)}}function vo(o,h){o&1&&(a(0,"p",4),d(1," No tables in this section. "),c())}function Io(o,h){if(o&1&&(a(0,"span",14),d(1),c()),o&2){let e=s().$implicit;r(),C("",e.capacity," seats")}}function So(o,h){if(o&1&&(a(0,"span",15),d(1),c()),o&2){let e=s().$implicit,t=s();r(),b(t.tileState(e).detail)}}function zo(o,h){if(o&1){let e=O();a(0,"button",6),x("click",function(){let n=P(e).$implicit,i=s();return y(i.openTable(n))}),a(1,"span",7),d(2),m(3,Io,2,1,"span",8),c(),a(4,"span",9)(5,"span",10),d(6),c(),m(7,So,2,1,"span",11),c(),B(),a(8,"svg",12),I(9,"polyline",13),c()()}if(o&2){let e=h.$implicit,t=s();l("ngClass","hh-table--"+t.tileState(e).kind)("disabled",t.tileState(e).disabled||t.openingTable),r(2),C(" ",t.tableLabel(e)," "),r(),l("ngIf",e.capacity),r(3),b(t.tileState(e).status),r(),l("ngIf",t.tileState(e).detail)}}var Mn=(()=>{class o{constructor(e,t,n,i,p,f,u,M,w){this.route=e,this.router=t,this.accountService=n,this.posFloorService=i,this.posOrderService=p,this.posCheckService=f,this.timezoneService=u,this.toastController=M,this.convergenceFlag=w,this.handheldTitle=le(oe),this.sectionName="Tables",this.tables=[],this.isLoading=!0,this.errorMessage="",this.openingTable=!1,this.sectionId="",this.dailyByTableId=new Map,this.tileStates=new Map}ngOnInit(){return g(this,null,function*(){this.sectionId=this.route.
1snapshot.paramMap.get("sectionId")??"";try{let e=yield this.accountService.getCorporationDetailId();if(!e){this.errorMessage="Unable to determine the venue for this device.";return}let[t,n]=yield Promise.all([this.posFloorService.getFloorAreas(e,!0),this.computeServiceDate().then(p=>this.posFloorService.getDailyTables(e,p)).catch(p=>(console.warn("[Handheld/TableList] failed to load table status",p),null))]);this.dailyByTableId=new Map((n??[]).map(p=>[p.posTableId,p]));let i=(t??[]).find(p=>p.posFloorAreaId===this.sectionId);this.sectionName=i?.name??"Tables",this.handheldTitle.set(this.sectionName),this.tables=(i?.tables??[]).filter(p=>p.isActive&&p.isVisible).sort((p,f)=>this.tableSortKey(p).localeCompare(this.tableSortKey(f),void 0,{numeric:!0})),this.tileStates=new Map(this.tables.map(p=>[p.posTableId,this.buildTileState(this.dailyByTableId.get(p.posTableId))]))}catch(e){console.error("[Handheld/TableList] failed to load tables",e),this.errorMessage="Could not load tables. Check the connection and try again."}finally{this.isLoading=!1}})}openTable(e){return g(this,null,function*(){if(!this.openingTable){this.openingTable=!0;try{let t=yield this.accountService.getCorporationDetailId();if(!t){yield this.toast("Unable to determine the venue for this device.");return}let n=yield this.accountService.getCorporationEmployeeId();if(!n){yield this.toast("Unable to identify the current user.");return}let i={corporationDetailId:t,posTableId:e.posTableId,serviceDate:yield this.computeServiceDate(),guestCount:1,serverEmployeeId:n,hostEmployeeId:n,onExistingCheck:"AdoptExisting"},p=yield this.posCheckService.seatPartyAtTable(i);if(!p?.posCheckId){yield this.toast("Could not seat a party at this table. Please try again.");return}if(this.convergenceFlag.useConvergedPosStack()){yield this.router.navigate(["/pos/place-order"],{queryParams:{posCheckId:p.posCheckId}});return}let f=yield this.posOrderService.getOrCreateOrderForCheck(p.posCheckId);f?.orderId?this.router.navigate(["/pos-handheld/order",f.orderId],{queryParams:{table:this.tableLabel(e),returnTo:this.router.url}}):yield this.toast("Seated the party, but could not open the order. Please try again.")}catch(t){console.error("[Handheld/TableList] openTable failed",t),yield this.toast("Could not open the table order. Check the connection and try again.")}finally{this.openingTable=!1}}})}computeServiceDate(){return g(this,null,function*(){try{let t=this.timezoneService.getVenueTimeZone();if(t||(yield this.timezoneService.initializeVenueTimeZone(),t=this.timezoneService.getVenueTimeZone()),t)return Re.now().setZone(t).toFormat("yyyy-MM-dd")}catch{}let e=new Date;return`${e.getFullYear()}-${`${e.getMonth()+1}`.padStart(2,"0")}-${`${e.getDate()}`.padStart(2,"0")}`})}tileState(e){return this.tileStates.get(e.posTableId)??this.buildTileState(void 0)}buildTileState(e){return e?.currentStatus===Pe.OutOfService?{kind:"blocked",status:"Out of service",detail:null,disabled:!0}:e?.doNotSeat||e?.currentStatus===Pe.DoNotSeat?{kind:"blocked",status:"Do not seat",detail:null,disabled:!0}:e?.requiresBussing||e?.currentStatus===Pe.Clearing||e?.currentStatus===Pe.Bussing?{kind:"bussing",status:"Needs bussing",detail:null,disabled:!1}:e?.currentCheckId?e.isCurrentCheckRestricted?{kind:"occupied",status:"Seated",detail:"Another server",disabled:!1}:{kind:"occupied",status:"Seated",detail:[`$${((e.currentCheckTotalInCents??0)/100).toFixed(2)}`,e.currentServerInitials||null,this.elapsed(e.currentCheckOpenedAtUtc)].filter(n=>!!n).join(" \xB7 "),disabled:!1}:e?.paidOccupiedSinceUtc?{kind:"paid",status:"Paid",detail:this.elapsed(e.paidOccupiedSinceUtc),disabled:!1}:{kind:"available",status:"Open",detail:null,disabled:!1}}elapsed(e){if(!e)return null;let t=Math.max(0,Math.floor(Re.now().diff(Re.fromISO(e),"minutes").minutes));return t<60?`${t}m`:`${Math.floor(t/60)}h ${t%60}m`}tableLabel(e){return(e.displayName||"").trim()||`Table ${e.tableNumber}`}tableSortKey(e){return(e.tableNumber||e.displayName||"").toString()}toast(e){return g(this,null,function*(){yield(yield this.toastController.create({message:e,duration:1600,position:"bottom"})).present()})}static{this.\u0275fac=function(t){return new(t||o)(_(he),_(D),_(F),_(Ze),_(U),_(me),_(We),_(q),_(Y))}}static{this.\u0275cmp=k({type:o,selectors:[["app-pos-handheld-table-list"]],standalone:!1,decls:5,vars:4,consts:[[1,"hh-page"],["class","hh-page__muted",4,"ngIf"],["class","hh-page__error",4,"ngIf"],["type","button","class","hh-tile hh-table",3,"ngClass","disabled","click",4,"ngFor","ngForOf"],[1,"hh-page__muted"],[1,"hh-page__error"],["type","button",1,"hh-tile","hh-table",3,"click","ngClass","disabled"],[1,"hh-tile__label"],["class","hh-table__seats",4,"ngIf"],[1,"hh-table__state"],[1,"hh-table__status"],["class","hh-table__detail",4,"ngIf"],["width","22","height","22","viewBox","0 0 24 24","fill","none","stroke","currentColor","stroke-width","2","stroke-linecap","round","stroke-linejoin","round",1,"hh-tile__chevron"],["points","9 18 15 12 9 6"],[1,"hh-table__seats"],[1,"hh-table__detail"]],template:function(t,n){t&1&&(a(0,"div",0),m(1,wo,2,0,"p",1)(2,ko,2,1,"p",2)(3,vo,2,0,"p",1)(4,zo,10,6,"button",3),c()),t&2&&(r(),l("ngIf",n.isLoading),r(),l("ngIf",!n.isLoading&&n.errorMessage),r(),l("ngIf",!n.isLoading&&!n.errorMessage&&n.tables.length===0),r(),l("ngForOf",n.tables))},dependencies:[pe,G,j],styles:['@charset "UTF-8";.handheld-stub[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:32px 24px;min-height:100%;color:#f1f5f9}.handheld-stub[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%]{font-size:1.5rem;font-weight:600;margin:0 0 12px}.handheld-stub__hint[_ngcontent-%COMP%]{font-size:1rem;color:#cbd5e1;margin:0 0 8px}.handheld-stub__note[_ngcontent-%COMP%]{font-size:.8rem;color:#64748b;margin:0;font-family:ui-monospace,Cascadia Code,Fira Code,monospace}.hh-menu__grid[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
1.hh-menu__tile[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;min-height:124px;padding:20px 12px;border:1px solid #334155;border-radius:16px;background:#1e293b;color:#f1f5f9;cursor:pointer;-webkit-tap-highlight-color:transparent}.hh-menu__tile[_ngcontent-%COMP%]:active{background:#334155}.hh-menu__tile[_ngcontent-%COMP%]:disabled{opacity:.6}.hh-menu__icon[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;width:54px;height:54px;border-radius:14px;background:#60a5fa24;color:#60a5fa}.hh-menu__icon[_ngcontent-%COMP%]   svg[_ngcontent-%COMP%]{width:30px;height:30px}.hh-menu__label[_ngcontent-%COMP%]{font-size:1.05rem;font-weight:700;text-align:center}.hh-menu__reset[_ngcontent-%COMP%]{display:block;margin:18px auto 4px;padding:10px 16px;border:1px solid #475569;border-radius:12px;background:transparent;color:#94a3b8;font-size:.9rem;font-weight:600;-webkit-tap-highlight-color:transparent}.hh-menu__reset[_ngcontent-%COMP%]:active{background:#1e293b;color:#fca5a5;border-color:#b91c1c}.hh-page[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:10px;padding:16px;min-height:100%;color:#f1f5f9}.hh-page__heading[_ngcontent-%COMP%]{font-size:1.25rem;font-weight:700;margin:4px 2px 8px}.hh-page__muted[_ngcontent-%COMP%]{color:#94a3b8;font-size:.95rem;margin:8px 2px}.hh-page__error[_ngcontent-%COMP%]{color:#fca5a5;font-size:.95rem;margin:8px 2px}.hh-tile[_ngcontent-%COMP%]{display:flex;align-items:center;gap:12px;width:100%;padding:18px 16px;border:1px solid #334155;border-radius:14px;background:#1e293b;color:#f1f5f9;font-size:1.1rem;font-weight:600;text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent}.hh-tile[_ngcontent-%COMP%]:active{background:#334155}.hh-tile__label[_ngcontent-%COMP%]{flex:1 1 auto}.hh-tile__meta[_ngcontent-%COMP%]{flex:0 0 auto;font-size:.85rem;font-weight:500;color:#94a3b8}.hh-tile__chevron[_ngcontent-%COMP%]{flex:0 0 auto;color:#64748b}.hh-table[_ngcontent-%COMP%]{padding:12px 14px;border-left-width:4px}.hh-table[_ngcontent-%COMP%]:disabled{cursor:default;opacity:.55}.hh-table__seats[_ngcontent-%COMP%]{display:block;font-size:.8rem;font-weight:500;color:#94a3b8}.hh-table__state[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:flex-end;flex:0 0 auto;gap:2px}.hh-table__status[_ngcontent-%COMP%]{font-size:.85rem;font-weight:700;color:#94a3b8}.hh-table__detail[_ngcontent-%COMP%]{font-size:.8rem;font-weight:500;color:#cbd5e1}.hh-table--occupied[_ngcontent-%COMP%]{border-left-color:#38bdf8;background:#172b45}.hh-table--occupied[_ngcontent-%COMP%]   .hh-table__status[_ngcontent-%COMP%]{color:#7dd3fc}.hh-table--paid[_ngcontent-%COMP%]{border-left-color:#22c55e}.hh-table--paid[_ngcontent-%COMP%]   .hh-table__status[_ngcontent-%COMP%]{color:#86efac}.hh-table--bussing[_ngcontent-%COMP%]{border-left-color:#f59e0b}.hh-table--bussing[_ngcontent-%COMP%]   .hh-table__status[_ngcontent-%COMP%]{color:#fcd34d}.hh-cta[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:18px 16px;border:none;border-radius:14px;background:#22c55e;color:#052e16;font-size:1.1rem;font-weight:700;cursor:pointer;-webkit-tap-highlight-color:transparent}.hh-cta[_ngcontent-%COMP%]:active{background:#16a34a}.hh-cta[_ngcontent-%COMP%]:disabled{background:#334155;color:#64748b}.hh-divider[_ngcontent-%COMP%]{display:flex;align-items:center;gap:10px;margin:8px 2px 2px;color:#64748b;font-size:.8rem;text-transform:uppercase;letter-spacing:.04em}.hh-divider[_ngcontent-%COMP%]:before, .hh-divider[_ngcontent-%COMP%]:after{content:"";flex:1 1 auto;height:1px;background:#334155}.hh-order[_ngcontent-%COMP%]{padding-bottom:0}.hh-seg[_ngcontent-%COMP%]{display:flex;gap:6px;margin:4px 0 12px;padding:5px;background:#1e293b;border-radius:12px}.hh-seg__btn[_ngcontent-%COMP%]{flex:1 1 0;min-height:44px;padding:10px 8px;border:none;border-radius:9px;background:transparent;color:#94a3b8;font-size:1rem;font-weight:700;-webkit-tap-highlight-color:transparent}.hh-seg__btn--active[_ngcontent-%COMP%]{background:#0f172a;color:#f1f5f9}.hh-seats[_ngcontent-%COMP%]{display:flex;align-items:center;gap:6px;margin:0 0 12px;padding-bottom:2px;overflow-x:auto;-webkit-overflow-scrolling:touch}.hh-seats[_ngcontent-%COMP%]::-webkit-scrollbar{display:none}.hh-seats__chip[_ngcontent-%COMP%]{flex:0 0 auto;min-width:44px;padding:10px 14px;border:1px solid #334155;border-radius:999px;background:#1e293b;color:#cbd5e1;font-size:.95rem;font-weight:700;-webkit-tap-highlight-color:transparent}.hh-seats__chip--active[_ngcontent-%COMP%]{border-color:#60a5fa;background:#60a5fa2e;color:#f1f5f9}.hh-seats__add[_ngcontent-%COMP%]{flex:0 0 auto;padding:10px 14px;border:1px dashed #475569;border-radius:999px;background:transparent;color:#94a3b8;font-size:.95rem;font-weight:700;white-space:nowrap;-webkit-tap-highlight-color:transparent}.hh-seats__add[_ngcontent-%COMP%]:active{background:#1e293b}.hh-seats__add[_ngcontent-%COMP%]:disabled{opacity:.5}
1.hh-order__search[_ngcontent-%COMP%]{width:100%;padding:12px 14px;margin-bottom:10px;border-radius:12px;border:1px solid #334155;background:#0f172a;color:#f1f5f9;font-size:1rem;outline:none}.hh-order__search[_ngcontent-%COMP%]::placeholder{color:#64748b}.hh-order__group[_ngcontent-%COMP%]{font-size:.8rem;text-transform:uppercase;letter-spacing:.04em;color:#94a3b8;margin:14px 2px 6px}.hh-menu__groups[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:12px}.hh-menu__group[_ngcontent-%COMP%]{min-height:60px;padding:10px 8px;border:1px solid #334155;border-radius:12px;font-size:.95rem;font-weight:700;line-height:1.15;text-align:center;display:flex;align-items:center;justify-content:center;-webkit-tap-highlight-color:transparent}.hh-menu__group[_ngcontent-%COMP%]:active{filter:brightness(1.15)}.hh-menu__group--active[_ngcontent-%COMP%]{box-shadow:inset 0 0 0 3px #ffffffd9;font-weight:800}.hh-menu__items[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.hh-menu__item[_ngcontent-%COMP%]{flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:84px;padding:12px 10px;text-align:center}.hh-menu__item[_ngcontent-%COMP%]   .hh-tile__label[_ngcontent-%COMP%]{flex:0 0 auto;width:100%;line-height:1.15}.hh-menu__item[_ngcontent-%COMP%]   .hh-tile__meta[_ngcontent-%COMP%]{color:inherit;opacity:.8}.hh-order__table[_ngcontent-%COMP%]{margin-left:8px;font-size:.95rem;font-weight:600;color:#60a5fa}.hh-order__item[_ngcontent-%COMP%]{font-size:1rem;padding:14px 16px;margin-bottom:8px}.hh-order__line[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:10px;padding:12px 14px;border:1px solid #334155;border-radius:12px;background:#1e293b;margin-bottom:8px}.hh-order__line--selectable[_ngcontent-%COMP%]{cursor:pointer}.hh-order__line--selected[_ngcontent-%COMP%]{border-color:#60a5fa;background:#60a5fa24}.hh-order__line--held[_ngcontent-%COMP%]{border-color:#d97706;background:#d9770629}
1.hh-order__line--sent[_ngcontent-%COMP%]{opacity:.62}.hh-order__line--ready[_ngcontent-%COMP%]{border-color:#16a34a;background:#16a34a29}.hh-order__line-info[_ngcontent-%COMP%]{display:flex;justify-content:space-between;font-weight:600}.hh-order__line-name[_ngcontent-%COMP%]{flex:1 1 auto;padding-right:8px}.hh-order__line-check[_ngcontent-%COMP%]{margin-right:6px;color:#60a5fa;font-size:1.05rem}.hh-order__line-badge[_ngcontent-%COMP%]{margin-left:8px;padding:1px 7px;border-radius:999px;font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;vertical-align:middle}.hh-order__line-badge--held[_ngcontent-%COMP%]{background:#d9770640;color:#fcd34d}.hh-order__line-badge--sent[_ngcontent-%COMP%]{background:#94a3b838;color:#cbd5e1}.hh-order__line-badge--ready[_ngcontent-%COMP%]{background:#16a34a40;color:#86efac}.hh-order__kds-hint[_ngcontent-%COMP%]{margin:0 0 6px;font-size:.78rem;color:#94a3b8;text-align:center}.hh-order__stepper[_ngcontent-%COMP%]{display:flex;align-items:center;gap:10px}.hh-step[_ngcontent-%COMP%]{width:42px;height:42px;border-radius:10px;border:1px solid #475569;background:#0f172a;color:#f1f5f9;font-size:1.5rem;line-height:1}.hh-step[_ngcontent-%COMP%]:active{background:#334155}.hh-step__qty[_ngcontent-%COMP%]{min-width:26px;text-align:center;font-weight:700}.hh-order__line-actions[_ngcontent-%COMP%]{margin-left:auto;display:flex;align-items:center;gap:14px}.hh-order__mod-btn[_ngcontent-%COMP%]{background:transparent;border:none;color:#60a5fa;font-size:.9rem;font-weight:600}.hh-order__remove[_ngcontent-%COMP%]{background:transparent;border:none;color:#fca5a5;font-size:.9rem}.hh-order__item[_ngcontent-%COMP%]   .hh-tile__meta[_ngcontent-%COMP%]{color:inherit;opacity:.8}.hh-order__footer[_ngcontent-%COMP%]{position:sticky;bottom:0;margin-top:auto;padding:12px 0 6px;background:linear-gradient(180deg,#0f172a66,#0f172a 28%)}.hh-order__totals[_ngcontent-%COMP%]{font-size:.95rem;color:#cbd5e1;margin-bottom:8px}.hh-order__totals[_ngcontent-%COMP%] > div[_ngcontent-%COMP%]{display:flex;justify-content:space-between;padding:2px}.hh-order__grand[_ngcontent-%COMP%]{font-size:1.1rem;font-weight:700;color:#f1f5f9;border-top:1px solid #334155;margin-top:4px;padding-top:6px}.hh-order__paid-line[_ngcontent-%COMP%]{color:#34d399;font-weight:600}.hh-order__balance[_ngcontent-%COMP%]{font-size:1.1rem;font-weight:700;color:#f1f5f9;border-top:1px solid #334155;margin-top:4px;padding-top:6px}.hh-order__kds[_ngcontent-%COMP%]{display:block;margin-bottom:8px}.hh-order__actions[_ngcontent-%COMP%]{display:flex;gap:10px;align-items:stretch}.hh-order__print[_ngcontent-%COMP%]{flex:0 0 auto;padding:14px 12px;border:1px solid #475569;border-radius:14px;background:#1e293b;color:#e2e8f0;font-size:1.05rem;font-weight:700;white-space:nowrap;-webkit-tap-highlight-color:transparent}.hh-order__print[_ngcontent-%COMP%]:active{background:#334155}.hh-order__print[_ngcontent-%COMP%]:disabled{opacity:.6}.hh-order__discount[_ngcontent-%COMP%]{flex:0 0 auto;padding:14px 12px;border:1px solid #475569;border-radius:14px;background:#1e293b;color:#e2e8f0;font-size:1.05rem;font-weight:700;white-space:nowrap;-webkit-tap-highlight-color:transparent}.hh-order__discount[_ngcontent-%COMP%]:active{background:#334155}.hh-order__discount[_ngcontent-%COMP%]:disabled{opacity:.6}.hh-order__pay[_ngcontent-%COMP%]{flex:1 1 auto;width:100%;padding:14px 10px;white-space:nowrap;border:none;border-radius:14px;background:#22c55e;color:#052e16;font-size:1.15rem;font-weight:700}.hh-order__pay[_ngcontent-%COMP%]:active{background:#16a34a}.hh-order__pay[_ngcontent-%COMP%]:disabled{background:#334155;color:#64748b}.hh-order__pay--secondary[_ngcontent-%COMP%]:not(:disabled){border:1px solid #22c55e;background:#1e293b;color:#86efac}.hh-order__pay--secondary[_ngcontent-%COMP%]:not(:disabled):active{background:#0f172a}.hh-list__top[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:10px;margin-bottom:6px}.hh-list__tabs.hh-seg[_ngcontent-%COMP%]{margin:0}.hh-list__tabs[_ngcontent-%COMP%]   .hh-seg__btn[_ngcontent-%COMP%]{padding:10px 4px;font-size:.95rem}.hh-list__actions[_ngcontent-%COMP%]{display:flex;gap:8px}.hh-list__tables[_ngcontent-%COMP%]{flex:1 1 auto;display:flex;align-items:center;justify-content:center;padding:18px 16px;border:none;border-radius:14px;background:#22c55e;color:#052e16;font-size:1.1rem;font-weight:700;-webkit-tap-highlight-color:transparent}.hh-list__tables[_ngcontent-%COMP%]:active{background:#16a34a}.hh-list__new[_ngcontent-%COMP%]{flex:0 0 auto;padding:14px 18px;border:1px solid #475569;border-radius:14px;background:#1e293b;color:#f1f5f9;font-size:1rem;font-weight:600;-webkit-tap-highlight-color:transparent}.hh-list__new[_ngcontent-%COMP%]:active{background:#334155}.hh-list__new[_ngcontent-%COMP%]:disabled{background:#0f172a;color:#64748b}.hh-order-card[_ngcontent-%COMP%]{display:flex;align-items:stretch;gap:12px;width:100%;padding:14px;margin-bottom:8px;border:1px solid #334155;border-radius:14px;background:#1e293b;color:#f1f5f9;text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent}.hh-order-card[_ngcontent-%COMP%]:active{background:#334155}.hh-order-card--voided[_ngcontent-%COMP%]{border-left:3px solid #64748b}.hh-order-card__id[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:flex-start;gap:6px;flex:0 0 auto;min-width:64px}.hh-order-card__num[_ngcontent-%COMP%]{font-size:1.35rem;font-weight:800;line-height:1}.hh-order-card__body[_ngcontent-%COMP%]{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;justify-content:center;gap:4px}.hh-order-card__title[_ngcontent-%COMP%]{font-size:1rem;font-weight:600;line-height:1.2;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.hh-order-card__meta[_ngcontent-%COMP%]{font-size:.8rem;color:#94a3b8}.hh-order-card__approval[_ngcontent-%COMP%]{display:flex;gap:8px;margin-top:8px}.hh-approve-btn[_ngcontent-%COMP%], .hh-reject-btn[_ngcontent-%COMP%]{padding:6px 14px;border-radius:8px;font-size:.8rem;font-weight:700;border:none;cursor:pointer}.hh-approve-btn[_ngcontent-%COMP%]:disabled, .hh-reject-btn[_ngcontent-%COMP%]:disabled{opacity:.5}
1.hh-approve-btn[_ngcontent-%COMP%]{background:#059669;color:#fff}.hh-reject-btn[_ngcontent-%COMP%]{background:#ef444426;color:#f87171;border:1px solid rgba(239,68,68,.4)}.hh-order-card__amounts[_ngcontent-%COMP%]{flex:0 0 auto;align-self:center;display:flex;flex-direction:column;align-items:flex-end;gap:2px}.hh-order-card__total[_ngcontent-%COMP%]{font-size:1.05rem;font-weight:700}.hh-order-card__total--struck[_ngcontent-%COMP%]{text-decoration:line-through;color:#94a3b8}.hh-order-card__tip[_ngcontent-%COMP%]{font-size:.75rem;font-weight:600;color:#34d399;white-space:nowrap}.hh-badge[_ngcontent-%COMP%]{font-size:.62rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;padding:2px 7px;border-radius:9px;color:#fff}.hh-badge--void[_ngcontent-%COMP%]{background:#475569;color:#cbd5e1}.hh-badge--cash[_ngcontent-%COMP%]{background:#059669}.hh-badge--split[_ngcontent-%COMP%]{background:#4f46e5}.hh-mod[_ngcontent-%COMP%]{position:fixed;inset:0;z-index:1000;background:#020617b3;display:flex;flex-direction:column;justify-content:flex-end}.hh-mod__sheet[_ngcontent-%COMP%]{display:flex;flex-direction:column;max-height:92%;background:#0f172a;border-top:1px solid #334155;border-top-left-radius:18px;border-top-right-radius:18px;color:#f1f5f9}.hh-mod__header[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px;border-bottom:1px solid #1e293b}.hh-mod__title[_ngcontent-%COMP%]{font-size:1.15rem;font-weight:700}.hh-mod__close[_ngcontent-%COMP%]{flex:0 0 auto;width:40px;height:40px;border:none;background:transparent;color:#94a3b8;font-size:1.3rem}.hh-mod__body[_ngcontent-%COMP%]{padding:12px 16px;overflow-y:auto}.hh-mod__special[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%;margin-bottom:16px;padding:10px 14px;border:1px dashed #475569;border-radius:10px;background:#94a3b814;color:#e2e8f0;text-align:left}.hh-mod__special[_ngcontent-%COMP%]:disabled{opacity:.5}.hh-mod__special--set[_ngcontent-%COMP%]{border-style:solid;border-color:#f59e0b;background:#f59e0b1f}.hh-mod__special-label[_ngcontent-%COMP%]{font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:#94a3b8}.hh-mod__special-value[_ngcontent-%COMP%]{font-size:.95rem;line-height:1.3;word-break:break-word}.hh-mod__group[_ngcontent-%COMP%]{margin-bottom:16px}.hh-mod__group-name[_ngcontent-%COMP%]{display:flex;align-items:baseline;justify-content:space-between;gap:8px;font-size:1rem;font-weight:700;margin-bottom:8px}.hh-mod__group-hint[_ngcontent-%COMP%]{flex:0 0 auto;font-size:.72rem;font-weight:500;color:#94a3b8;text-transform:uppercase;letter-spacing:.03em}.hh-mod__options[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-bottom:4px}.hh-mod__opt[_ngcontent-%COMP%]{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:64px;padding:12px 10px;border:1px solid #334155;border-radius:12px;background:#1e293b;color:#f1f5f9;font-size:1rem;font-weight:600;text-align:center;line-height:1.15}.hh-mod__opt--selected[_ngcontent-%COMP%]{border-color:#22c55e;background:#14321f}.hh-mod__opt-check[_ngcontent-%COMP%]{position:absolute;top:6px;right:8px;color:#22c55e;font-weight:800;font-size:.85rem}.hh-mod__opt-name[_ngcontent-%COMP%]{width:100%}.hh-mod__opt-price[_ngcontent-%COMP%]{color:#94a3b8;font-size:.82rem;font-weight:500}.hh-mod__footer[_ngcontent-%COMP%]{display:flex;flex-direction:row;gap:12px;padding:12px 16px;border-top:1px solid #1e293b}.hh-mod__btn[_ngcontent-%COMP%]{flex:1 1 0;display:inline-flex;align-items:center;justify-content:center;padding:16px;border-radius:12px;font-size:1.05rem;font-weight:700;line-height:1;cursor:pointer;-webkit-tap-highlight-color:transparent}.hh-mod__btn--cancel[_ngcontent-%COMP%]{border:1px solid #475569;background:#1e293b;color:#e2e8f0}.hh-mod__btn--save[_ngcontent-%COMP%]{border:1px solid #22c55e;background:#22c55e;color:#052e16}.hh-mod__btn[_ngcontent-%COMP%]:disabled{opacity:.6}.hh-mod__premods[_ngcontent-%COMP%]{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:6px;margin:0 0 6px}.hh-mod__premod[_ngcontent-%COMP%]{padding:7px 13px;border:1px solid #475569;border-radius:999px;background:#0f172a;color:#cbd5e1;font-size:.85rem;font-weight:600}.hh-mod__premod--active[_ngcontent-%COMP%]{border-color:#22c55e;background:#14321f;color:#f1f5f9}.hh-mod__premod[_ngcontent-%COMP%]:disabled{opacity:.6}.hh-order__line-mods[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:2px 14px;padding-left:2px}.hh-order__line-mod[_ngcontent-%COMP%]{font-size:.82rem;line-height:1.35;color:#94a3b8}.hh-order__line-mod[_ngcontent-%COMP%]:before{content:"\\b7  ";color:#64748b}.hh-order__line-note[_ngcontent-%COMP%]{margin-top:2px;padding-left:2px;font-size:.82rem;font-style:italic;line-height:1.35;color:#fbbf24;word-break:break-word}.hh-pay-confirm[_ngcontent-%COMP%]{position:fixed;inset:0;z-index:1100;background:#020617eb;display:flex;align-items:center;justify-content:center;padding:24px}.hh-pay-confirm__card[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;width:100%;max-width:420px}.hh-pay-confirm__check[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;width:84px;height:84px;margin-bottom:6px;border-radius:999px;background:#14321f;border:2px solid #22c55e;color:#22c55e;font-size:2.6rem;font-weight:700;line-height:1}.hh-pay-confirm__title[_ngcontent-%COMP%]{font-size:1.4rem;font-weight:700;color:#f1f5f9}
1.hh-pay-confirm__amount[_ngcontent-%COMP%]{font-size:2.2rem;font-weight:800;color:#22c55e}.hh-pay-confirm__tip[_ngcontent-%COMP%]{font-size:1rem;font-weight:600;color:#86efac}.hh-pay-confirm__sub[_ngcontent-%COMP%]{font-size:.95rem;color:#94a3b8}.hh-pay-confirm__print[_ngcontent-%COMP%]{width:100%;margin-top:18px;padding:16px;border:1px solid #475569;border-radius:14px;background:#1e293b;color:#e2e8f0;font-size:1.1rem;font-weight:700}.hh-pay-confirm__print[_ngcontent-%COMP%]:active{background:#334155}.hh-pay-confirm__print[_ngcontent-%COMP%]:disabled{opacity:.6}.hh-pay-confirm__done[_ngcontent-%COMP%]{width:100%;margin-top:10px;padding:16px;border:none;border-radius:14px;background:#22c55e;color:#052e16;font-size:1.15rem;font-weight:700}.hh-pay-confirm__done[_ngcontent-%COMP%]:active{background:#16a34a}.hh-tips__top[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:flex-end;gap:10px}.hh-tips__top[_ngcontent-%COMP%]   .hh-page__heading[_ngcontent-%COMP%]{margin:0}.hh-tips__refresh[_ngcontent-%COMP%]{padding:8px 14px;border:1px solid #334155;border-radius:10px;background:#1e293b;color:#e2e8f0;font-size:.9rem;font-weight:600}.hh-tips__refresh[_ngcontent-%COMP%]:disabled{opacity:.6}.hh-tips__cards[_ngcontent-%COMP%]{display:grid;grid-template-columns:1fr 1fr;gap:8px}.hh-tips__card[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:4px;padding:12px;border:1px solid #334155;border-radius:12px;background:#0f172a}.hh-tips__card-label[_ngcontent-%COMP%]{color:#94a3b8;font-size:.78rem}.hh-tips__card-value[_ngcontent-%COMP%]{font-size:1.2rem;font-weight:700}.hh-tips__card-value--good[_ngcontent-%COMP%]{color:#34d399}.hh-tips__card-value--warn[_ngcontent-%COMP%]{color:#fcd34d}.hh-tips__pool[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:4px;padding:10px 12px;border:1px solid #334155;border-radius:12px;background:#0f172a}.hh-tips__pool-line[_ngcontent-%COMP%]{display:flex;justify-content:space-between;font-size:.9rem;color:#cbd5e1}.hh-tips__pool-out[_ngcontent-%COMP%]{color:#fcd34d;font-weight:600}.hh-tips__pool-in[_ngcontent-%COMP%]{color:#34d399;font-weight:600}.hh-tips__table[_ngcontent-%COMP%]{color:#94a3b8;font-size:.85rem}.hh-tips__check-money[_ngcontent-%COMP%]{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.hh-tips__check-tip[_ngcontent-%COMP%]{font-weight:700;color:#34d399}.hh-tips__check-grat[_ngcontent-%COMP%]{color:#a5b4fc;font-size:.85rem}.hh-tips__check-total[_ngcontent-%COMP%]{color:#64748b;font-size:.85rem}.hh-tips__pay[_ngcontent-%COMP%]{margin-left:auto;padding:6px 14px;border:none;border-radius:10px;background:#22c55e;color:#052e16;font-weight:700}.hh-tips__pay[_ngcontent-%COMP%]:active{background:#16a34a}']})}}return o})();var Lo=["itemsSection"];function Ao(o,h){o&1&&(a(0,"p",9),d(1,"Loading order\u2026"),c())}function Ro(o,h){if(o&1&&(a(0,"p",10),d(1),c()),o&2){let e=s();r(),b(e.errorMessage)}}function No(o,h){if(o&1){let e=O();a(0,"button",17),x("click",function(){let n=P(e).$implicit,i=s(3);return y(i.setActiveSeat(n.posCheckSeatId))}),d(1),c()}if(o&2){let e=h.$implicit,t=s(3);v("hh-seats__chip--active",t.activeSeatId===e.posCheckSeatId),Pt("data-fb","Seat "+e.seatNumber),r(),b(e.seatNumber)}}function Vo(o,h){if(o&1){let e=O();a(0,"div",16)(1,"button",17),x("click",function(){P(e);let n=s(2);return y(n.setActiveSeat(null))}),d(2,"Shared"),c(),m(3,No,2,4,"button",18),a(4,"button",19),x("click",function(){P(e);let n=s(2);return y(n.addSeatToOrder())}),d(5,"+ Seat"),c()()}if(o&2){let e=s(2);r(),v("hh-seats__chip--active",!e.activeSeatId),r(2),l("ngForOf",e.seats),r(),l("disabled",e.busy||e.addingSeat||e.isFullyPaid)}}function Bo(o,h){o&1&&(a(0,"p",9),d(1," No menu items are configured for this venue. "),c())}function $o(o,h){if(o&1){let e=O();a(0,"button",27),x("click",function(){let n=P(e).$implicit,i=s(4);return y(i.selectGroup(n))}),d(1),c()}if(o&2){let e=h.$implicit,t=s(4);rt("background-color",t.menuGroupTileColor(e))("color",t.menuGroupTextColor(e)),v("hh-menu__group--active",e.id===t.selectedGroupId),r(),C(" ",t.menuGroupDisplayName(e)," ")}}function Ho(o,h){if(o&1&&(a(0,"div",25),m(1,$o,2,7,"button",26),c()),o&2){let e=s(3);r(),l("ngForOf",e.menuGroups)("ngForTrackBy",e.trackByMenuGroup)}}function Go(o,h){if(o&1&&(a(0,"p",9),d(1),c()),o&2){let e=s(3);r(),C(" No items match \u201C",e.search,"\u201D. ")}}
1function qo(o,h){if(o&1){let e=O();a(0,"button",28),x("click",function(){let n=P(e).$implicit,i=s(3);return y(i.addMenuItem(n))}),a(1,"span",29),d(2),c(),a(3,"span",30),d(4),c()()}if(o&2){let e=h.$implicit,t=s(3);rt("background-color",t.menuItemTileColor(e))("color",t.menuItemTextColor(e))("border-color",t.menuItemTileBorderColor(e)),l("disabled",t.busy||t.isFullyPaid),r(2),b(t.menuItemDisplayName(e)),r(2),b(t.formatCents(t.displayPrice(e)))}}function Uo(o,h){if(o&1){let e=O();a(0,"div",20)(1,"input",21),ze("ngModelChange",function(n){P(e);let i=s(2);return Se(i.search,n)||(i.search=n),y(n)}),c(),m(2,Bo,2,0,"p",2)(3,Ho,2,2,"div",22)(4,Go,2,1,"p",2),a(5,"div",23,0),m(7,qo,5,9,"button",24),c()()}if(o&2){let e=s(2);r(),Ie("ngModel",e.search),r(),l("ngIf",e.menuGroups.length===0),r(),l("ngIf",!e.search&&e.menuGroups.length>0),r(),l("ngIf",e.search&&e.visibleItems.length===0),r(3),l("ngForOf",e.visibleItems)("ngForTrackBy",e.trackByMenuItemId)}}function Wo(o,h){o&1&&(a(0,"p",9),d(1," No items yet. Add some from the Menu tab. "),c())}function Ko(o,h){if(o&1&&(a(0,"span",47),d(1),c()),o&2){let e=s().$implicit,t=s(3);r(),b(t.isLineSelected(e)?"\u2611":"\u2610")}}function Zo(o,h){if(o&1&&(a(0,"span",48),d(1),c()),o&2){let e=s().$implicit,t=s(3);l("ngClass","hh-order__line-badge--"+e.status),r(),b(t.lineStatusLabel(e.status))}}function Qo(o,h){if(o&1&&(a(0,"span",51),d(1),c()),o&2){let e=h.$implicit;r(),b(e)}}function Yo(o,h){if(o&1&&(a(0,"div",49),m(1,Qo,2,1,"span",50),c()),o&2){let e=s().$implicit,t=s(3);r(),l("ngForOf",t.lineMods(e))}}function Jo(o,h){if(o&1&&(a(0,"div",52),d(1),c()),o&2){let e=h.ngIf;r(),C("\u2605 ",e)}}function Xo(o,h){if(o&1){let e=O();a(0,"div",33),x("click",function(){let n=P(e).$implicit,i=s(3);return y(i.toggleLineSelection(n))}),a(1,"div",34)(2,"span",35),m(3,Ko,2,1,"span",36),d(4),m(5,Zo,2,2,"span",37),c(),a(6,"span",38),d(7),c()(),m(8,Yo,2,1,"div",39)(9,Jo,2,1,"div",40),a(10,"div",41),x("click",function(n){return P(e),y(n.stopPropagation())}),a(11,"button",42),x("click",function(){let n=P(e).$implicit,i=s(3);return y(i.decrement(n))}),d(12,"\u2212"),c(),a(13,"span",43),d(14),c(),a(15,"button",42),x("click",function(){let n=P(e).$implicit,i=s(3);return y(i.increment(n))}),d(16,"+"),c(),a(17,"span",44)(18,"button",45),x("click",function(){let n=P(e).$implicit,i=s(3);return y(i.editLineModifiers(n))}),d(19,"Modifiers"),c(),a(20,"button",46),x("click",function(){let n=P(e).$implicit,i=s(3);return y(i.removeLine(n))}),d(21,"Remove"),c()()()()}if(o&2){let e=h.$implicit,t=s(3);v("hh-order__line--selectable",t.isLineSelectable(e))("hh-order__line--selected",t.isLineSelected(e))("hh-order__line--held",t.kdsEnabled&&e.status==="held")("hh-order__line--sent",t.kdsEnabled&&e.status==="sent")("hh-order__line--ready",t.kdsEnabled&&e.status==="ready"),r(3),l("ngIf",t.isLineSelectable(e)),r(),C(" ",e.name," "),r(),l("ngIf",t.kdsEnabled&&e.status!=="pending"),r(2),b(t.formatCents(e.price*e.quantity)),r(),l("ngIf",t.lineMods(e).length),r(),l("ngIf",t.lineSpecialRequest(e)),r(2),l("disabled",t.busy||!t.isLineEditable(e)),r(3),b(e.quantity),r(),l("disabled",t.busy||!t.isLineEditable(e)),r(3),l("disabled",t.busy||!t.isLineEditable(e)),r(2),l("disabled",t.busy||!t.isLineEditable(e))}}function ei(o,h){if(o&1&&(a(0,"div",31),m(1,Wo,2,0,"p",2)(2,Xo,22,21,"div",32),c()),o&2){let e=s(2);r(),l("ngIf",e.lines.length===0),r(),l("ngForOf",e.lines)("ngForTrackBy",e.trackByLine)}}function ti(o,h){if(o&1){let e=O();$(0),a(1,"div",11)(2,"button",12),x("click",function(){P(e);let n=s();return y(n.view="menu")}),d(3,"Menu"),c(),a(4,"button",12),x("click",function(){P(e);let n=s();return y(n.view="order")}),d(5),c()(),m(6,Vo,6,4,"div",13)(7,Uo,8,6,"div",14)(8,ei,3,3,"div",15),H()}if(o&2){let e=s();r(2),v("hh-seg__btn--active",e.view==="menu"),r(2),v("hh-seg__btn--active",e.view==="order"),r(),C("Order (",e.itemCount,")"),r(),l("ngIf",(e.order==null?null:e.order.posCheckId)||e.awaitsCheck),r(),l("ngIf",e.view==="menu"),r(),l("ngIf",e.view==="order")}}function ni(o,h){if(o&1&&(a(0,"div")(1,"span"),d(2,"Discount"),c(),a(3,"span"),d(4),c()()),o&2){let e=s(2);r(4),C("\u2212",e.formatCents(e.order.discount))}}function oi(o,h){if(o&1&&(a(0,"div")(1,"span"),d(2,"Reservation Balance discount"),c(),a(3,"span"),d(4),c()()),o&2){let e=s(2);r(4),C("\u2212",e.formatCents(e.bayDiscountInCents))}}
1function ii(o,h){if(o&1&&(a(0,"div")(1,"span"),d(2,"Processing Fees"),c(),a(3,"span"),d(4),c()()),o&2){let e=s(2);r(4),b(e.formatCents(e.processingFeesCents))}}function ri(o,h){if(o&1&&(a(0,"div")(1,"span"),d(2),c(),a(3,"span"),d(4),c()()),o&2){let e=s(2);r(2),b(e.autoGratuityLabel),r(2),b(e.formatCents(e.autoGratuityCents))}}function ai(o,h){if(o&1&&(a(0,"div")(1,"span"),d(2,"Tip"),c(),a(3,"span"),d(4),c()()),o&2){let e=s(2);r(4),b(e.formatCents(e.tipCents))}}function ci(o,h){if(o&1&&(a(0,"div",64)(1,"span"),d(2),c(),a(3,"span"),d(4),c()()),o&2){let e=h.$implicit,t=s(3);r(2),b(e.label),r(2),C("\u2212",t.formatCents(e.amountCents))}}function di(o,h){if(o&1&&($(0),m(1,ci,5,2,"div",62),a(2,"div",63)(3,"span"),d(4,"Balance Due"),c(),a(5,"span"),d(6),c()(),H()),o&2){let e=s(2);r(),l("ngForOf",e.appliedPayments),r(5),b(e.formatCents(e.outstandingCents))}}function si(o,h){if(o&1&&(a(0,"p",65),d(1),c()),o&2){let e=s(2);r(),C(" ",e.selectedStayItemIdList.length?e.selectedStayItemIdList.length+" selected \xB7 Stay fires these, holds the rest":"Tap items to fire only those, or act on all"," ")}}function li(o,h){if(o&1){let e=O();a(0,"app-check-kds-actions",66),x("acted",function(n){P(e);let i=s(2);return y(i.onKdsActed(n))}),c()}if(o&2){let e=s(2);l("posCheckId",e.order.posCheckId??null)("selectedPosCheckItemIds",e.selectedStayItemIdList)("actionItemCount",e.actionItemCount)("hasPendingItems",e.hasPendingItems)("allItemsReady",e.allItemsReady)("disabled",e.busy)}}function pi(o,h){if(o&1){let e=O();a(0,"button",67),x("click",function(){P(e);let n=s(2);return y(n.openDiscountModal())}),d(1," Discount "),c()}if(o&2){let e=s(2);l("disabled",e.busy)}}function hi(o,h){if(o&1){let e=O();a(0,"button",68),x("click",function(){P(e);let n=s(2);return y(n.printReceipt())}),d(1),c()}if(o&2){let e=s(2);l("disabled",e.busy||e.printingReceipt),r(),C(" ",e.printingReceipt?"Printing\u2026":"Print"," ")}}function gi(o,h){if(o&1){let e=O();a(0,"div",53)(1,"div",54)(2,"div")(3,"span"),d(4,"Subtotal"),c(),a(5,"span"),d(6),c()(),m(7,ni,5,1,"div",4)(8,oi,5,1,"div",4),a(9,"div")(10,"span"),d(11,"Tax"),c(),a(12,"span"),d(13),c()(),m(14,ii,5,1,"div",4)(15,ri,5,2,"div",4)(16,ai,5,1,"div",4),a(17,"div",55)(18,"span"),d(19,"Total"),c(),a(20,"span"),d(21),c()(),m(22,di,7,2,"ng-container",4),c(),m(23,si,2,1,"p",56)(24,li,1,6,"app-check-kds-actions",57),Te(25,"async"),a(26,"div",58),m(27,pi,2,1,"button",59)(28,hi,2,2,"button",60),a(29,"button",61),x("click",function(){P(e);let n=s();return y(n.pay())}),d(30),c()()()}if(o&2){let e=s();r(6),b(e.formatCents(e.order.subtotal)),r(),l("ngIf",e.order.discount>0),r(),l("ngIf",e.bayDiscountInCents>0),r(5),b(e.formatCents(e.taxCents)),r(),l("ngIf",e.processingFeesCents>0),r(),l("ngIf",e.autoGratuityCents>0),r(),l("ngIf",e.tipCents>0),r(5),b(e.formatCents(e.totalCents+e.autoGratuityCents+e.checkLevelTaxCents+e.tipCents)),r(),l("ngIf",e.appliedPayments.length),r(),l("ngIf",e.kdsEnabled&&e.hasPendingItems),r(),l("ngIf",Ee(25,17,e.kdsSettingsService.hasKds$)),r(3),l("ngIf",e.shouldShowDiscountButton),r(),l("ngIf",e.canPrintReceipt),r(),v("hh-order__pay--secondary",e.kdsEnabled&&e.hasPendingItems),l("disabled",e.busy||e.itemCount===0||e.isFullyPaid),r(),C(" ",e.isFullyPaid?"Paid":"Pay "+e.formatCents(e.outstandingCents)," ")}}function _i(o,h){if(o&1){let e=O();a(0,"app-pos-discount-modal",69),x("onClose",function(){P(e);let n=s();return y(n.showDiscountModal=!1)})("onApplyDiscount",function(n){P(e);let i=s();return y(i.handleDiscountApply(n))})("onRemoveDiscount",function(n){P(e);let i=s();return y(i.handleDiscountRemove(n))}),c()}if(o&2){let e=s();l("isOpen",e.showDiscountModal)("order",e.order)("canViewCostPrice",!1)("corporationDetailId",e.corporationDetailId)("allowRemove",!0)("discountableTotalCents",e.discountableTotalCents)("bayDiscountableCents",e.bayDiscountableCents)("canApplyCustomAmount",e.pointOfSalePermissions.canManagePos)}}function fi(o,h){o&1&&(a(0,"span",93),d(1,"\u2713"),c())}function mi(o,h){if(o&1&&(a(0,"span",94),d(1),c()),o&2){let e=s().$implicit,t=s(3);r(),C("+",t.formatCents(e.price))}}function ui(o,h){if(o&1){let e=O();a(0,"button",96),x("click",function(){let n=P(e).$implicit,i=s(2).$implicit,p=s().$implicit,f=s(2);return y(f.setPreMod(p,i,n))}),d(1),c()}if(o&2){let e=h.$implicit,t=s(2).$implicit,n=s().$implicit,i=s(2);v("hh-mod__premod--active",i.isPreModActive(n,t,e)),l("disabled",i.modifierBusy),r(),b(e.n
1ame)}}function xi(o,h){if(o&1){let e=O();a(0,"div",95)(1,"button",96),x("click",function(){P(e);let n=s().$implicit,i=s().$implicit,p=s(2);return y(p.setPreMod(i,n,null))}),d(2,"Regular"),c(),m(3,ui,2,4,"button",97),c()}if(o&2){let e=s().$implicit,t=s().$implicit,n=s(2);r(),v("hh-mod__premod--active",n.isRegularActive(t,e)),l("disabled",n.modifierBusy),r(2),l("ngForOf",n.preModOptionsFor(t))("ngForTrackBy",n.trackByPreMod)}}function bi(o,h){if(o&1){let e=O();$(0),a(1,"button",88),x("click",function(){let n=P(e).$implicit,i=s().$implicit,p=s(2);return y(p.toggleOption(i,n))}),m(2,fi,2,0,"span",89),a(3,"span",90),d(4),c(),m(5,mi,2,1,"span",91),c(),m(6,xi,4,5,"div",92),H()}if(o&2){let e=h.$implicit,t=s().$implicit,n=s(2);r(),v("hh-mod__opt--selected",n.isOptionSelected(t,e)),l("disabled",n.modifierBusy),r(),l("ngIf",n.isOptionSelected(t,e)),r(2),b(e.posNickname||e.name),r(),l("ngIf",e.price),r(),l("ngIf",n.isOptionSelected(t,e)&&n.preModOptionsFor(t).length)}}function Ci(o,h){if(o&1&&(a(0,"div",83)(1,"div",84)(2,"span"),d(3),c(),a(4,"span",85),d(5),c()(),a(6,"div",86),m(7,bi,7,7,"ng-container",87),c()()),o&2){let e=h.$implicit,t=s(2);r(3),b(e.posNickname||e.name),r(2),b(t.groupHint(e)),r(2),l("ngForOf",e.options)("ngForTrackBy",t.trackByModOption)}}function Pi(o,h){if(o&1){let e=O();a(0,"div",70)(1,"div",71)(2,"div",72)(3,"span",73),d(4),c(),a(5,"button",74),x("click",function(){P(e);let n=s();return y(n.cancelModifiers())}),d(6,"\u2715"),c()(),a(7,"div",75)(8,"button",76),x("click",function(){P(e);let n=s();return y(n.editSpecialRequestFromPicker())}),a(9,"span",77),d(10,"Special Request"),c(),a(11,"span",78),d(12),c()(),m(13,Ci,8,4,"div",79),c(),a(14,"div",80)(15,"button",81),x("click",function(){P(e);let n=s();return y(n.cancelModifiers())}),d(16,"Cancel"),c(),a(17,"button",82),x("click",function(){P(e);let n=s();return y(n.saveModifiers())}),d(18,"Save"),c()()()()}if(o&2){let e=s();r(4),b(e.modifierContext.itemName),r(),l("disabled",e.modifierBusy),r(3),v("hh-mod__special--set",!!e.pickerSpecialRequest),l("disabled",e.modifierBusy||!e.modifierContext.posOrderItemId),r(4),b(e.pickerSpecialRequest||"Add a note\u2026"),r(),l("ngForOf",e.modifierGroups)("ngForTrackBy",e.trackByModGroup),r(2),l("disabled",e.modifierBusy),r(2),l("disabled",e.modifierBusy)}}function yi(o,h){if(o&1&&(a(0,"div",107),d(1),c()),o&2){let e=s(2);r(),be(" + ",e.formatCents(e.paymentConfirmation.tipCents)," tip \xB7 ",e.formatCents(e.paymentConfirmation.amountCents+e.paymentConfirmation.tipCents)," total ")}}function Oi(o,h){if(o&1&&(a(0,"div",108),d(1),c()),o&2){let e=s(2);r(),C("",e.checkHeading," paid")}}function Mi(o,h){if(o&1){let e=O();a(0,"button",109),x("click",function(){P(e);let n=s(2);return y(n.printReceipt())}),d(1),c()}if(o&2){let e=s(2);l("disabled",e.printingReceipt),r(),C(" ",e.printingReceipt?"Printing\u2026":e.paymentConfirmation.printed?"Reprint receipt":"Print receipt"," ")}}function wi(o,h){if(o&1){let e=O();a(0,"div",98)(1,"div",99)(2,"div",100),d(3,"\u2713"),c(),a(4,"div",101),d(5,"Payment approved"),c(),a(6,"div",102),d(7),c(),m(8,yi,2,2,"div",103)(9,Oi,2,1,"div",104)(10,Mi,2,2,"button",105),a(11,"button",106),x("click",function(){P(e);let n=s();return y(n.done())}),d(12,"Done"),c()()()}if(o&2){let e=s();r(7),b(e.formatCents(e.paymentConfirmation.amountCents)),r(),l("ngIf",e.paymentConfirmation.tipCents>0),r(),l("ngIf",e.order),r(),l("ngIf",e.paymentConfirmation.canPrint)}}var kn=(()=>{class o{get search(){return this._search}set search(e){this._search=e,this.recomputeVisibleItems()}constructor(e,t,n,i,p,f,u,M,w,K,W,R,Z,S,z,V,X,ce){this.route=e,this.router=t,this.accountService=n,this.terminalServerService=i,this.computerIdentityService=p,this.signalrService=f,this.posCheckPaymentService=u,this.posCheckService=M,this.posTerminalService=w,this.accountProvider=K,this.receiptOrchestrator=W,this.receiptFormatter=R,this.posOrderService=Z,this.posMenuService=S,this.menuBuilderService=z,this.alertController=V,this.toastController=X,this.kdsSettingsService=ce,this.handheldTitle=le(oe),this.destroy$=new ut,this.destroyed=!1,this.awaitingPaymentId=null,this.paymentTimeoutId=null,this.paidPoiid=null,this.deviceTerminalPoiid=null,this.check=null,this.activeSeatId=null,this.addingSeat=!1,this.paymentConfirmation=null,this.printingReceipt=!1,this.orderId="",this.tableLabel=null,this.order=null,this.amountDetails=null,this.checkItems=[],this.kdsEnabled=!1,this.selectedCheckItemIds=new Set,this.menuGroups=[],this.effectivePriceById=new Map,this.effectiveSizePriceById=new Map,this.effectivePrice
1sInFlight=!1,this.lines=[],this.itemCount=0,this.selectedGroupId=null,this.visibleItems=[],this.view="order",this._search="",this.isLoading=!0,this.busy=!1,this.errorMessage="",this.showDiscountModal=!1,this.corporationDetailId="",this.pointOfSalePermissions=new Et,this.modifierContext=null,this.modifierGroups=[],this.modifierSelections=new Map,this.modifierBusy=!1,this.preModGroupsById=new Map,this.preModOptionsById=new Map,this.lineModifierText=new Map,this.effectiveModifiersCache=new Map,this.trackByLine=(E,T)=>(T.menuItemId??"name:"+T.name)+"|"+T.status,this.trackByMenuGroup=(E,T)=>T.id,this.trackByMenuItemId=(E,T)=>T.id,this.trackByModGroup=(E,T)=>T.modifierGroupId,this.trackByModOption=(E,T)=>T.modifierOptionId,this.trackByPreMod=(E,T)=>T.posPreModifierOptionId,this.returnTo=null}ngOnInit(){return g(this,null,function*(){this.orderId=this.route.snapshot.paramMap.get("orderId")??"",this.tableLabel=this.route.snapshot.queryParamMap.get("table"),this.activeSeatId=this.route.snapshot.queryParamMap.get("seat"),this.rememberWorkSurface(this.tableLabel?"tables":"orders");let e=this.route.snapshot.queryParamMap.get("returnTo");if(this.returnTo=e?.startsWith("/pos-handheld/")?e:null,!this.orderId){this.errorMessage="No order specified.",this.isLoading=!1;return}try{let t=yield this.accountService.getCorporationDetailId(),[n,i,p]=yield Promise.all([this.posOrderService.getOrder(this.orderId),t?this.posMenuService.getMenu(t):Promise.resolve([]),this.posOrderService.getOrderAmount(this.orderId).catch(()=>null)]);this.order=n,this.amountDetails=p,this.corporationDetailId=t??n?.corporationDetailId??"";try{this.pointOfSalePermissions=yield this.accountService.getEmployeePointOfSalePermissions()}catch{}if(this.menuGroups=this.buildMenuGroups(i??[]),this.destroyed)return;if(this.refreshEffectivePricesAsync(),xt(3e4).pipe(we(this.destroy$)).subscribe(()=>{this.refreshEffectivePricesAsync()}),this.selectedGroupId=this.menuGroups[0]?.id??null,this.recomputeLines(),this.recomputeVisibleItems(),(n?.items?.length??0)===0&&(this.view="menu"),t)try{let f=(yield this.menuBuilderService.getPreModifierGroups(t))??[];for(let u of f){this.preModGroupsById.set(u.posPreModifierGroupId,u);for(let M of u.options??[])this.preModOptionsById.set(M.posPreModifierOptionId,M)}}catch(f){console.error("[Handheld/OrderEntry] getPreModifierGroups failed",f)}this.refreshLineModifiers(),this.refreshCheckItems(),this.listenForPaymentResult(),this.kdsSettingsService.hasKds$.pipe(we(this.destroy$)).subscribe(f=>{let u=this.kdsEnabled;this.kdsEnabled=f,f&&!u?this.refreshCheckItems():this.recomputeLines()})}catch(t){console.error("[Handheld/OrderEntry] failed to load order",t),this.errorMessage="Could not load the order. Check the connection and try again."}finally{this.isLoading=!1}})}ngDoCheck(){this.order&&this.handheldTitle.set(this.tableLabel?`${this.checkHeading} \xB7 ${this.tableLabel}`:this.checkHeading)}onPageHide(){this.orderId&&Ye(this.order)&&this.posOrderService.discardIfEmptyOnPageHide(this.orderId)}ngOnDestroy(){this.destroyed=!0,this.orderId&&Ye(this.order)&&this.posOrderService.discardIfEmpty(this.orderId).catch(()=>{}),this.clearPaymentResultTimeout(),this.destroy$.next(),this.destroy$.complete()}listenForPaymentResult(){this.signalrService.ensureConnection().catch(e=>console.warn("[Handheld/OrderEntry] SignalR ensureConnection failed",e)),this.signalrService.onPosCheckUpdated().pipe(we(this.destroy$)).subscribe(e=>{!this.awaitingPaymentId||!e?.posCheckId||e.posCheckId===this.order?.posCheckId&&this.resolvePaymentResult()})}resolvePaymentResult(){return g(this,null,function*(){let e=this.order?.posCheckId,t=this.awaitingPaymentId;if(!e||!t)return;let i=(yield this.posCheckPaymentService.getPaymentsForCheckAwaitingTerminal(e))?.find(p=>p.posCheckPaymentId===t);if(i)if(i.status===Q.Captured||i.status===Q.Authorized){this.finishAwaitingPayment(),yield this.reload();let f=(yield this.receiptOrchestrator.getSettings())?.printBehavior??"PromptUser";this.paymentConfirmation={amountCents:i.amountInCents,tipCents:i.tipAmountInCents??0,canPrint:!0,printed:!1},f==="AlwaysPrint"&&this.printReceipt()}else($e(i.status)||i.status===Q.Voided)&&(this.finishAwaitingPayment(),yield(yield this.alertController.create({header:i.status===Q.Cancelled?"Payment cancelled":"Payment declined",message:i.status===Q.Cancelled?"The card payment was cancelled on the terminal. You can try again.":"The card payment was declined on the terminal. You can try again.",buttons:["OK"]})).present())})}finishAwaitingPayment(){this.awaitingPaymentId=null,this.clearPaymentResultTimeout(),this.busy=!1}done(){return g(this,null,function*(){this.paymentConfirmation=null,yield this.router.navigate(["/pos-handheld/orders"])})}printReceipt(){return g(this,null,function*(){let e=this.order,t
1=e?.posCheckId;if(!(!e||!t||this.printingReceipt)){this.printingReceipt=!0;try{let n=yield this.resolvePrintPoiid();if(!n){yield this.toast("This device is not assigned to a terminal with a printer.");return}let i=yield this.receiptOrchestrator.getSettings();if(!i){yield this.toast("No receipt settings configured for this venue.");return}let p=Me(de({},i),{paperWidth:"Mm58"}),f=yield this.posCheckService.getCheck(t);if(!f){yield this.toast("Could not load the check for the receipt.");return}let u=yield this.accountService.getCorporationDetailId(),M=(yield this.accountProvider.getSelectedCorporationName())??"EagleEye POS",w=yield this.receiptOrchestrator.getReceiptVenueContext(f.serverEmployeeId),K=yield this.receiptOrchestrator.getSuggestedGratuityContext(f).catch(()=>({suggestedGratuities:[]})),W=(yield this.posCheckPaymentService.getPaymentsForCheck(t))??[],R=yield this.receiptOrchestrator.withTaxAndRefunds(Ge(f,p,M,{venueAddress:w.venueAddress,venuePhone:w.venuePhone,serverName:w.serverName,terminalName:w.terminalName,suggestedGratuities:K.suggestedGratuities,payments:W,processingFeeCents:this.processingFeesCents,effectiveTotalCents:this.totalCents,discountCents:e.discount??0,discounts:He(e)})),Z=this.receiptFormatter.buildPreviewLines(R).map(z=>({text:z.text,bold:!!z.emphasized,doubleHeight:!1,alignment:z.align==="center"?"Centred":"Left"}));(yield this.terminalServerService.printReceiptOnAdyenTerminal({corporationDetailId:u??"",poiid:n,lines:Z}))?.success?(this.paymentConfirmation&&(this.paymentConfirmation.printed=!0),yield this.toast("Receipt sent to the printer.")):yield this.toast("Could not print the receipt.")}catch(n){console.error("[Handheld/OrderEntry] printReceipt failed",n),yield this.toast("Could not print the receipt.")}finally{this.printingReceipt=!1}}})}resolvePrintPoiid(){return g(this,null,function*(){if(this.paidPoiid)return this.paidPoiid;if(this.deviceTerminalPoiid)return this.deviceTerminalPoiid;let e=yield this.accountService.getCorporationDetailId();if(!e)return null;let t=yield this.computerIdentityService.getComputerIdentifier(),n=yield this.posTerminalService.getTerminalByComputerIdentifier(e,t);return this.deviceTerminalPoiid=n?.adyenTerminalReference??null,this.deviceTerminalPoiid})}clearPaymentResultTimeout(){this.paymentTimeoutId&&(clearTimeout(this.paymentTimeoutId),this.paymentTimeoutId=null)}startPaymentResultTimeout(){this.clearPaymentResultTimeout(),this.paymentTimeoutId=setTimeout(()=>{this.awaitingPaymentId&&(this.finishAwaitingPayment(),this.toast("Still waiting on the terminal \u2014 check the device, then refresh."))},15e4)}recomputeLines(){let e=new Map;if(this.kdsEnabled)for(let n of this.checkItems)n.posOrderItemId&&e.set(n.posOrderItemId,n);let t=new Map;for(let n of this.order?.items??[]){let i=n.posOrderItemId?e.get(n.posOrderItemId):void 0,p=this.statusBucketOf(i),u=`${n.menuItemId?`${n.menuItemId}|${n.posItemSizePriceId??""}`:"name:"+n.name}|${p}`,M=t.get(u)??{menuItemId:n.menuItemId??null,posItemSizePriceId:n.posItemSizePriceId??null,name:n.name,price:n.price,quantity:0,unitIds:[],status:p,checkItemIds:[]};M.quantity+=n.quantity??1,n.posOrderItemId&&M.unitIds.push(n.posOrderItemId),i?.posCheckItemId&&M.checkItemIds.push(i.posCheckItemId),t.set(u,M)}if(this.lines=[...t.values()],this.itemCount=this.lines.reduce((n,i)=>n+i.quantity,0),this.selectedCheckItemIds.size>0){let n=new Set(this.lines.flatMap(i=>i.checkItemIds));for(let i of[...this.selectedCheckItemIds])n.has(i)||this.selectedCheckItemIds.delete(i)}if(this.lineModifierText.size>0){let n=new Map;for(let i of this.lines){let p=i.menuItemId?this.lineModifierText.get(i.menuItemId):void 0;i.menuItemId&&p&&n.set(i.menuItemId,p)}this.lineModifierText=n}}selectGroup(e){this.selectedGroupId=e.id,this.recomputeVisibleItems(),setTimeout(()=>{this.itemsSection?.nativeElement?.scrollIntoView({behavior:"smooth",block:"start"})},60)}recomputeVisibleItems(){let e=this._search.trim().toLowerCase();if(e){this.visibleItems=this.menuGroups.flatMap(n=>n.items).filter(n=>(n.name||"").toLowerCase().includes(e)||this.menuItemDisplayName(n).toLowerCase().includes(e));return}let t=this.menuGroups.find(n=>n.id===this.selectedGroupId)??this.menuGroups[0];this.visibleItems=t?.items??[]}lineMods(e){return e.menuItemId?this.lineModifierText.get(e.menuItemId)??[]:[]}static{this.GROUP_FILL_DARK="#334155"}static{this.ITEM_FILL_DARK="#1E293B"}static{this.ITEM_BORDER_DARK="#334155"}static{this.ITEM_BORDER_LIGHT="#CBD5E1"}menuGroupTileColor(e){return e.color||lt(e.textColor,o.GROUP_FILL_DARK)}menuGroupTextColor(e){return st(e.textColor,this.menuGroupTileColor(e))}menuItemTileColor(e){return e.color||lt(e.textColor,o.ITEM_FILL_DARK)}menuItemTextColor(e){return st(e.textColor,this.menuItemTileColor(e))}menuGroupDisplayName(e){return o.displayLabel(e.posNickname,e.name)}menuItemDisplayName(e){return o.displayLabel(e.posNickname,e.name)}static displayLabel(e,t){return e&&e.trim().length>0?e.trim():t}menuItemTileBorderColor(e){return e.color?e.color:this.menuItemTileColor(e)===o.ITEM_FILL_DARK?o.ITEM_BORDER_DARK:o.ITEM_BORDER_LIGHT}addMenuItem(e){return g(this,null,function*(){if(this.busy||this.isFullyPaid)return;let t=this.effectiveSizePriceById,n=yield this.sizePicker?.pick(e,t);if(n===null||this.busy||this.isFullyPaid)return;let i=n?Zt(e.name,n.name):e.name;this.busy=!0;try{let p={menuItemId:e.id,name:i,price:n?Kt(n,t):this.displayPrice(e),quantity:1,posCheckSeatId:this.activeSeatId,posItemSizePriceId:n?.posItemSizePriceId??null},f=yield this.posOrderService.addItem(this.orderId,p),u=(yield this.loadEffectiveModifiers(e.id)).filter(M=>(M.options?.length??0)>0);if(u.length>0){let M=f?.find(w=>w.menuItemId===e.id)??f?.[f.length-1]??null;this.openModifierPicker(e.id,i,M?.posOrderItemId??null,u,!0)}else yield this.reload(),yield this.toast(`Added ${i}`)}catch(p){console.error("[Handheld/OrderEntry] addItem failed",p),yield this.reportEditFailure(p,"Could not add item.")}finally{this.busy=!1}})}editLineModifiers(e){return g(this,null,function*(){if(this.busy||this.modifierBusy||!e.menuItemId||this.isFullyPaid)return;let t=e.menuItemId,n=e.unitIds[0]??null;if(!n){yield this.toast("This item is still saving \u2014 try again in a moment.");return}this.busy=!0;try{let i=(yield this.loadEffectiveModifiers(t)).filter(f=>(f.options?.length??0)>0);
1if(i.length===0){yield this.openSpecialRequest(n,e.name);return}let p=(yield this.posOrderService.getItemModifiers(this.orderId,t,null,n))??[];this.openModifierPicker(t,e.name,n,i,!1,p)}catch(i){console.error("[Handheld/OrderEntry] editLineModifiers failed",i),yield this.toast("Could not load modifiers.")}finally{this.busy=!1}})}openModifierPicker(e,t,n,i,p,f){if(this.modifierGroups=[...i].sort((u,M)=>(u.displayOrder??0)-(M.displayOrder??0)),this.modifierSelections.clear(),f&&f.length>0)for(let u of f)!u?.modifierGroupId||!u?.modifierOptionId||this.selectionMapFor(u.modifierGroupId).set(u.modifierOptionId,u.preModifierOptionId??null);else if(p)for(let u of this.modifierGroups)for(let M of(u.options??[]).filter(w=>w.isDefault))this.selectionMapFor(u.modifierGroupId).set(M.modifierOptionId,null);this.modifierContext={menuItemId:e,posOrderItemId:n,itemName:t}}selectionMapFor(e){let t=this.modifierSelections.get(e);return t||(t=new Map,this.modifierSelections.set(e,t)),t}isOptionSelected(e,t){return this.modifierSelections.get(e.modifierGroupId)?.has(t.modifierOptionId)??!1}toggleOption(e,t){if(this.modifierBusy)return;let n=!e.allowMultipleSelections||e.maximumSelections===1,i=this.selectionMapFor(e.modifierGroupId);if(i.has(t.modifierOptionId)){i.delete(t.modifierOptionId);return}if(n){i.clear(),i.set(t.modifierOptionId,null);return}let p=e.maximumSelections??0;p>0&&i.size>=p||i.set(t.modifierOptionId,null)}groupHint(e){let t=e.minimumSelections??0,n=e.maximumSelections??0;return!e.allowMultipleSelections||n===1?t>=1?"Choose one \xB7 required":"Choose one":n>0?t>=1?`Choose ${t}\u2013${n}`:`Up to ${n}`:t>=1?`At least ${t}`:"Choose any"}preModOptionsFor(e){let t=e.posPreModifierGroupId;if(!t)return[];let n=this.preModGroupsById.get(t);return n?[...n.options].sort((i,p)=>(i.displayOrder??0)-(p.displayOrder??0)):[]}selectedPreModFor(e,t){return this.modifierSelections.get(e.modifierGroupId)?.get(t.modifierOptionId)??null}isRegularActive(e,t){return this.isOptionSelected(e,t)&&this.selectedPreModFor(e,t)===null}isPreModActive(e,t,n){return this.selectedPreModFor(e,t)===n.posPreModifierOptionId}setPreMod(e,t,n){if(this.modifierBusy)return;let i=this.modifierSelections.get(e.modifierGroupId);!i||!i.has(t.modifierOptionId)||i.set(t.modifierOptionId,n?n.posPreModifierOptionId:null)}saveModifiers(){return g(this,null,function*(){if(this.modifierBusy||!this.modifierContext||this.isFullyPaid)return;this.modifierBusy=!0;let{menuItemId:e,posOrderItemId:t}=this.modifierContext;try{let n=[];for(let i of this.modifierGroups){let p=this.modifierSelections.get(i.modifierGroupId);if(p)for(let[f,u]of p)n.push({modifierGroupId:i.modifierGroupId,modifierOptionId:f,preModifierOptionId:u,quantity:1})}yield this.posOrderService.updateItemModifiers(this.orderId,e,{posOrderItemId:t,posCheckSeatId:null,selections:n}),yield this.reload(),yield this.refreshLineModifiersForItem(e,t),this.closeModifiers()}catch(n){console.error("[Handheld/OrderEntry] saveModifiers failed",n),yield this.reportEditFailure(n,"Could not save modifiers.")}finally{this.modifierBusy=!1}})}cancelModifiers(){return g(this,null,function*(){this.modifierBusy||(yield this.reload(),this.closeModifiers())})}closeModifiers(){this.modifierContext=null,this.modifierGroups=[],this.modifierSelections.clear()}lineSpecialRequest(e){return this.currentSpecialInstructionsFor(e.unitIds[0]??null)}currentSpecialInstructionsFor(e){if(!e)return null;let n=((this.order?.items??[]).find(i=>i.posOrderItemId===e)?.specialInstructions??"").toString().trim();return n.length?n:null}get pickerSpecialRequest(){return this.modifierContext?this.currentSpecialInstructionsFor(this.modifierContext.posOrderItemId):null}editSpecialRequestFromPicker(){return g(this,null,function*(){this.modifierContext&&(yield this.openSpecialRequest(this.modifierContext.posOrderItemId,this.modifierContext.itemName))})}openSpecialRequest(e,t){return g(this,null,function*(){if(this.isFullyPaid)return;if(!e){yield this.toast("Add the item to the order first.");return}let n=this.currentSpecialInstructionsFor(e)??"";yield(yield this.alertController.create({header:"Special Request",subHeader:t,cssClass:"hh-special-request-alert",input
1s:[{name:"text",type:"textarea",value:n,placeholder:"e.g. no peanuts, allergy, on the side",attributes:{maxlength:500,rows:4}}],buttons:[{text:"Cancel",role:"cancel"},{text:"Save",handler:p=>{let f=(p?.text??"").toString().trim();return this.saveSpecialRequest(e,f.length?f:null,n),!0}}]})).present()})}saveSpecialRequest(e,t,n){return g(this,null,function*(){if((t??"")!==(n??"").trim())try{yield this.posOrderService.updateItemSpecialInstructions(this.orderId,e,t),yield this.reload(),yield this.toast(t?"Special request saved.":"Special request cleared.")}catch(i){console.error("[Handheld/OrderEntry] saveSpecialRequest failed",i),yield this.reportEditFailure(i,"Could not save the special request.")}})}increment(e){return g(this,null,function*(){if(!(this.busy||!e.menuItemId||this.isFullyPaid)){this.busy=!0;try{yield this.posOrderService.addItem(this.orderId,{menuItemId:e.menuItemId,name:e.name,price:e.price,quantity:1,posItemSizePriceId:e.posItemSizePriceId}),yield this.reload()}catch(t){console.error("[Handheld/OrderEntry] increment failed",t),yield this.reportEditFailure(t,"Could not update item.")}finally{this.busy=!1}}})}
1decrement(e){return g(this,null,function*(){if(!(this.busy||this.isFullyPaid)){this.busy=!0;try{let t=e.unitIds[e.unitIds.length-1];t?yield this.posOrderService.removeOrderItemUnit(this.orderId,t):e.menuItemId&&(e.quantity>1?yield this.posOrderService.updateItemQuantity(this.orderId,e.menuItemId,e.quantity-1):yield this.posOrderService.removeItem(this.orderId,e.menuItemId)),yield this.reload()}catch(t){console.error("[Handheld/OrderEntry] decrement failed",t),yield this.reportEditFailure(t,"Could not update item.")}finally{this.busy=!1}}})}removeLine(e){return g(this,null,function*(){if(this.busy||!e.menuItemId||this.isFullyPaid)return;this.busy=!0;let t=0;try{if(e.unitIds.length>0)for(let n of e.unitIds)yield this.posOrderService.removeOrderItemUnit(this.orderId,n),t++;else yield this.posOrderService.removeItem(this.orderId,e.menuItemId);yield this.reload()}catch(n){console.error("[Handheld/OrderEntry] removeLine failed",n),yield this.reportEditFailure(n,"Could not remove item.",t>0&&Xe(n)?pt:void 0)}finally{this.busy=!1}})}get awaitsCheck(){return Ye(this.order)}get checkHeading(){let e=Wt(this.order);return e!=null&&e!==""?`Check #${e}`:"New check"}pay(){return g(this,null,function*(){if(this.busy||this.awaitingPaymentId)return;if(this.outstandingCents<=0){yield this.toast("Nothing to charge.");return}let e=this.order?.posCheckId;if(!e){yield this.toast("This order has no check to charge.");return}this.busy=!0;let t=!1;try{t=yield this.router.navigate(["/pos-handheld/pay",e],{queryParams:{orderId:this.orderId,returnUrl:`/pos-handheld/order/${this.orderId}`}})}catch{t=!1}t||(this.busy=!1)})}get taxCents(){return(this.amountDetails?.tax??this.order?.tax??0)+this.checkLevelTaxCents}get checkLevelTaxCents(){return Math.max(0,this.check?.autoGratuityTaxInCents??0)}get processingFeesCents(){return(this.amountDetails?.venueAdditionalFee??0)+(this.amountDetails?.passedOnEagleEyeFees??0)+(this.amountDetails?.passedOnStripeFee??0)}get totalCents(){return this.amountDetails?.finalAmountChargedToCustomer??this.order?.total??0}get autoGratuityCents(){return Math.max(0,this.check?.autoGratuityInCents??0)}get autoGratuityLabel(){let e=this.check?.autoGratuityRate;return e==null||!(e>0)?"Auto-gratuity":`Auto-gratuity (${Math.round(e*1e4)/100}%)`}get tipCents(){return Math.max(0,(this.check?.gratuityInCents??0)-this.autoGratuityCents)}get amountPaidCents(){return ue(this.check)}get appliedPayments(){return Ke(this.check)}get outstandingCents(){let e=this.check?.effectiveTotalInCents??this.totalCents??this.check?.totalInCents??0;return Math.max(0,e-this.amountPaidCents)}get isFullyPaid(){return!!this.order?.posCheckId&&this.totalCents>0&&this.amountPaidCents>0&&this.outstandingCents<=0}get canPrintReceipt(){return!!this.order?.posCheckId}formatCents(e){return`$${((e??0)/100).toFixed(2)}`}get seats(){return[...this.check?.seats??[]].sort((e,t)=>e.seatNumber-t.seatNumber)}seatLabel(e){if(!e)return"Shared";let t=this.seats.find(n=>n.posCheckSeatId===e);return t?`Seat ${t.seatNumber}`:"Seat"}setActiveSeat(e){this.activeSeatId=e}addSeatToOrder(){return g(this,null,function*(){if(!(this.busy||this.addingSeat||this.isFullyPaid)){this.addingSeat=!0;try{let e=!!this.order?.posCheckId;yield this.posOrderService.addSeat(this.orderId),e?yield this.refreshCheckItems():yield this.reload();let t=this.seats[this.seats.length-1];this.activeSeatId=t?.posCheckSeatId??this.activeSeatId}catch(e){console.error("[Handheld/OrderEntry] addSeat failed",e),yield this.toast("Could not add a seat.")}finally{this.addingSeat=!1}}})}reload(){return g(this,null,function*(){this.order=yield this.posOrderService.getOrder(this.orderId),this.recomputeLines(),yield Promise.all([this.refreshAmount(),this.refreshCheckItems()])})}refreshAmount(){return g(this,null,function*(){try{this.amountDetails=yield this.posOrderService.getOrderAmount(this.orderId)}catch(e){console.error("[Handheld/OrderEntry] getOrderAmount failed",e),this.amountDetails=null}})}get shouldShowDiscountButton(){return!this.order||this.awaitsCheck?!1:this.order.status===L.NeedsApproval||this.order.status===L.Scheduled||this.order.status===L.Active||this.order.status===L.OrderReady||this.order.status===L.AwaitingGuestApproval}openDiscountModal(){this.showDiscountModal=!0}get bayDiscountableCents(){return this.check?this.check.reservationId?(this.check.items??[]).reduce((e,t)=>
1!t.posOrderItemId&&!t.posOrderOpenItemId&&t.status!==J.Voided?e+(t.unitPriceInCents??0)*(t.quantity??0):e,0):0:null}get discountableTotalCents(){let e=this.bayDiscountableCents;return!this.order&&e===null?null:(this.order?.subtotal??0)+(e??0)}get bayDiscountInCents(){return this.order?.appliedBayDiscountCents??0}handleDiscountApply(e){return g(this,null,function*(){if(this.orderId){this.busy=!0;try{let t=null;e.discountCodeId?t=yield this.posOrderService.addDiscountCode(this.orderId,e.discountCodeId):e.customAmount!==void 0&&(t=yield this.posOrderService.addManualDiscount(this.orderId,e.customLabel?.trim()||"Discount",e.customAmount,e.target??Ce.Whole)),yield this.reload(),t?t.appliedTotalCents<=0&&t.requestedCents>0?yield this.toast("Nothing on this check can be discounted."):t.wasCapped?yield this.toast(`Applied ${this.formatCents(t.appliedTotalCents)} of the requested ${this.formatCents(t.requestedCents)}.`):yield this.toast("Discount applied"):yield this.toast("Discount was not applied.")}catch(t){yield this.reportEditFailure(t,"Could not apply discount.")}finally{this.busy=!1}}})}handleDiscountRemove(e){return g(this,null,function*(){let t=this.order;if(!this.orderId||!t)return;this.busy=!0;let n=!1;try{if(e.orderDiscountCodeId)yield this.posOrderService.removeDiscountCode(e.orderDiscountCodeId);else if(e.manualDiscountId)yield this.posOrderService.removeManualDiscount(e.manualDiscountId);else if(e.clearBayOnly)yield this.posOrderService.updateDiscount(this.orderId,0,Ce.BayOnly);else if(e.clearCustomAmount){let i=(t.discountCodes??[]).reduce((p,f)=>p+(f.amount??0),0)+(t.manualDiscounts??[]).reduce((p,f)=>p+(f.amount??0),0);yield this.posOrderService.updateDiscount(this.orderId,i,Ce.PosOnly),n=!0,yield this.posOrderService.updateDiscount(this.orderId,0,Ce.BayOnly)}yield this.reload(),yield this.toast("Discount removed")}catch(i){try{yield this.reload()}catch{}let p=ht(i);p===null?yield this.toast("Could not remove discount."):yield this.presentConflict(i,n&&Xe(i)?pt:p)}finally{this.busy=!1}})}refreshCheckItems(){return g(this,null,function*(){let e=this.order?.posCheckId;if(!e){this.check=null,this.checkItems=[],this.recomputeLines();return}try{this.check=yield this.posCheckService.getCheck(e),this.checkItems=this.kdsEnabled?this.check?.items??[]:[]}catch(t){console.error("[Handheld/OrderEntry] refreshCheckItems failed",t),this.check=null,this.checkItems=[]}this.recomputeLines()})}statusBucketOf(e){return e?e.isHeld?"held":e.status===J.Completed?"ready":e.status===J.Pending?"pending":"sent":"pending"}isLineSelectable(e){return this.kdsEnabled&&e.checkItemIds.length>0&&(e.status==="pending"||e.status==="held")}isLineEditable(e){return this.isFullyPaid?!1:!this.kdsEnabled||e.status==="pending"||e.status==="held"}isLineSelected(e){return e.checkItemIds.length>0&&e.checkItemIds.every(t=>this.selectedCheckItemIds.has(t))}toggleLineSelection(e){this.isLineSelectable(e)&&(this.isLineSelected(e)?e.checkItemIds.forEach(t=>this.selectedCheckItemIds.delete(t)):e.checkItemIds.forEach(t=>this.selectedCheckItemIds.add(t)))}get selectedStayItemIdList(){return Array.from(this.selectedCheckItemIds)}lineStatusLabel(e){switch(e){case"held":return"Held";case"sent":return"Sent";case"ready":return"Ready";default:return""}}get hasPendingItems(){return this.checkItems.some(e=>e.status===J.Pending)}get actionItemCount(){return Yt(this.checkItems,this.selectedCheckItemIds.size)}get allItemsReady(){return this.checkItems.filter(t=>t.status!==J.Voided).every(t=>t.status===J.Completed)}onKdsActed(e){return g(this,null,function*(){if(this.selectedCheckItemIds.clear(),yield this.reload(),e==="send"||e==="hold"){if(this.returnTo){yield this.router.navigateByUrl(this.returnTo);return}let t=this.lastWorkSurface();yield this.router.navigate([t==="tables"?"/pos-handheld/tables":"/pos-handheld/orders"])}})}rememberWorkSurface(e){try{localStorage.setItem("ee.handheld.lastSurface",e)}catch{}}lastWorkSurface(){try{return localStorage.getItem("ee.handheld.lastSurface")==="tables"?"tables":"orders"}catch{return"orders"}}loadEffectiveModifiers(e){return g(this,null,function*(){let t=this.effectiveModifiersCache.get(e);if(t)return t;let n=[];try{n=(yield this.menuBuilderService.getEffectiveModifiers(e))??[]}catch(i){console.error("[Handheld/OrderEntry] getEffectiveModifiers failed",i)}return this.effectiveModifiersCache.set(e,n),n})}refreshLineModifiers(){return g(this,null,function*(){let e=new Map;yield Promise.all(this.lines.map(t=>g(this,null,function*(){if(!t.menuItemId)return;let n=yield this.loadEffectiveModifiers(t.menuItemId);if(n.length===0)return;let i=[];try{i=(yield this.posOrderService.getItemModifiers(this.orderId,t.menuItemId,null,t.unitIds[0]??null))??[]}catch(u){console.error("[Handheld/OrderEntry] getItemModifiers failed",u);return}if(i.length===0)return;let p=new Map;for(let u of n)for(let M of u.options??[])p.set(M.modifierOptionId,M.posNickname||M.name);let f=i.map(u=>this.composeModifierLabel(p.get(u.modifierOptionId)??"Modifier",u.preModifierOptionId??null,u.quantity));e.set(t.menuItemId,f)}))),this.lineModifierText=e})}refreshLineModifiersForItem(e,t){return g(this,null,function*(){let n=new Map(this.lineModifierText),i=yield this.loadEffectiveModifiers(e);if(i.length===0){n.delete(e),this.lineModifierText=n;return}let p=[];try{p=(yield this.posOrderService.getItemModifiers(this.orderId,e,null,t))??[]}catch(u){console.error("[Handheld/OrderEntry] getItemModifiers failed",u);return}if(p.length===0){n.delete(e),this.lineModifierText=n;return}let f=new Map;for(let u of i)for(let M of u.options??[])f.set(M.modifierOptionId,M.posNickname||M.name);n.set(e,p.map(u=>this.composeModifierLabel(f.get(u.modifierOptionId)??"Modifier",u.preModifierOptionId??null,u.quantity))),this.lineModifierText=n})}composeModifierLabel(e,t,n){let i=n>1?`${n}\xD7 `:"";if(t){let p=this.preModOptionsById.get(t);if(p){let f=p.name;return p.displayMode===Qt.Suffix?`${i}${e} ${f}`:`${i}${f} ${e}`}}return`${i}${e}`}displayPrice(e){return this.effectivePriceById.get(e.id)??e.price}
1refreshEffectivePricesAsync(){return g(this,null,function*(){let e=Array.from(new Set(this.menuGroups.flatMap(t=>(t.items??[]).map(n=>n.id)).filter(Boolean)));if(!(e.length===0||!this.corporationDetailId||this.effectivePricesInFlight)){this.effectivePricesInFlight=!0;try{let t=yield this.menuBuilderService.getEffectivePrices(this.corporationDetailId,e),n=new Map,i=new Map;for(let p of t??[]){n.set(p.menuItemId,p.effectivePrice);for(let f of p.sizePrices??[])i.set(f.posItemSizePriceId,f.effectivePrice)}this.effectivePriceById=n,this.effectiveSizePriceById=i}catch{}finally{this.effectivePricesInFlight=!1}}})}buildMenuGroups(e){let t=[],n=i=>{i?.items?.length&&t.push({id:i.id,name:i.name,posNickname:i.posNickname,color:i.color,textColor:i.textColor,items:i.items}),(i?.subCategories??[]).forEach(n),(i?.childCategories??[]).forEach(n)};return(e??[]).forEach(n),t}toast(e,t=1200){return g(this,null,function*(){yield(yield this.toastController.create({message:e,duration:t,position:"bottom"})).present()})}reportEditFailure(e,t,n){return g(this,null,function*(){let i=ht(e);if(i===null){yield this.toast(t);return}yield this.presentConflict(e,n??i);try{yield this.reload()}catch{}})}presentConflict(e,t){return g(this,null,function*(){Xe(e)?yield Jt(this.toastController,t):yield this.toast(t,4e3)})}static{this.\u0275fac=function(t){return new(t||o)(_(he),_(D),_(F),_(ne),_(Ve),_(ge),_(fe),_(me),_(Be),_(Ne),_(Ue),_(qe),_(U),_(Xt),_(Rt),_(te),_(q),_(Qe))}}static{this.\u0275cmp=k({type:o,selectors:[["app-pos-handheld-order-entry"]],viewQuery:function(t,n){if(t&1&&(nt(Lo,5),nt(Je,5)),t&2){let i;
vendor: 6,437 bytes, line 1
1ot(i=it())&&(n.itemsSection=i.first),ot(i=it())&&(n.sizePicker=i.first)}},hostBindings:function(t,n){t&1&&x("pagehide",function(){return n.onPageHide()},Ct)},standalone:!1,decls:9,vars:7,consts:[["itemsSection",""],[1,"hh-page","hh-order"],["class","hh-page__muted",4,"ngIf"],["class","hh-page__error",4,"ngIf"],[4,"ngIf"],["class","hh-order__footer",4,"ngIf"],[3,"isOpen","order","canViewCostPrice","corporationDetailId","allowRemove","discountableTotalCents","bayDiscountableCents","canApplyCustomAmount","onClose","onApplyDiscount","onRemoveDiscount",4,"ngIf"],["class","hh-mod",4,"ngIf"],["class","hh-pay-confirm",4,"ngIf"],[1,"hh-page__muted"],[1,"hh-page__error"],[1,"hh-seg"],["type","button",1,"hh-seg__btn",3,"click"],["class","hh-seats",4,"ngIf"],["class","hh-order__menu",4,"ngIf"],["class","hh-order__cart",4,"ngIf"],[1,"hh-seats"],["type","button",1,"hh-seats__chip",3,"click"],["type","button","class","hh-seats__chip",3,"hh-seats__chip--active","click",4,"ngFor","ngForOf"],["type","button",1,"hh-seats__add",3,"click","disabled"],[1,"hh-order__menu"],["type","text","inputmode","search","placeholder","Search items\u2026",1,"hh-order__search",3,"ngModelChange","ngModel"],["class","hh-menu__groups",4,"ngIf"],[1,"hh-menu__items"],["type","button","class","hh-tile hh-menu__item",3,"background-color","color","border-color","disabled","click",4,"ngFor","ngForOf","ngForTrackBy"],[1,"hh-menu__groups"],["type","button","class","hh-menu__group",3,"hh-menu__group--active","background-color","color","click",4,"ngFor","ngForOf","ngForTrackBy"],["type","button",1,"hh-menu__group",3,"click"],["type","button",1,"hh-tile","hh-menu__item",3,"click","disabled"],[1,"hh-tile__label"],[1,"hh-tile__meta"],[1,"hh-order__cart"],["class","hh-order__line",3,"hh-order__line--selectable","hh-order__line--selected","hh-order__line--held","hh-order__line--sent","hh-order__line--ready","click",4,"ngFor","ngForOf","ngForTrackBy"],[1,"hh-order__line",3,"click"],[1,"hh-order__line-info"],[1,"hh-order__line-name"],["class","hh-order__line-check",4,"ngIf"],["class","hh-order__line-badge",3,"ngClass",4,"ngIf"],[1,"hh-order__line-price"],["class","hh-order__line-mods",4,"ngIf"],["class","hh-order__line-note",4,"ngIf"],[1,"hh-order__stepper",3,"click"],["type","button",1,"hh-step",3,"click","disabled"],[1,"hh-step__qty"],[1,"hh-order__line-actions"],["type","button",1,"hh-order__mod-btn",3,"click","disabled"],["type","button",1,"hh-order__remove",3,"click","disabled"],[1,"hh-order__line-check"],[1,"hh-order__line-badge",3,"ngClass"],[1,"hh-order__line-mods"],["class","hh-order__line-mod",4,"ngFor","ngForOf"],[1,"hh-order__line-mod"],[1,"hh-order__line-note"],[1,"hh-order__footer"],[1,"hh-order__totals"],[1,"hh-order__grand"],["class","hh-order__kds-hint",4,"ngIf"],["class","hh-order__kds",3,"posCheckId","selectedPosCheckItemIds","actionItemCount","hasPendingItems","allItemsReady","disabled","acted",4,"ngIf"],[1,"hh-order__actions"],["type","button","class","hh-order__discount",3,"disabled","click",4,"ngIf"],["type","button","class","hh-order__print",3,"disabled","click",4,"ngIf"],["type","button",1,"hh-order__pay",3,"click","disabled"],["class","hh-order__paid-line",4,"ngFor","ngForOf"],[1,"hh-order__balance"],[1,"hh-order__paid-line"],[1,"hh-order__kds-hint"],[1,"hh-order__kds",3,"acted","posCheckId","selectedPosCheckItemIds","actionItemCount","hasPendingItems","allItemsReady","disabled"],["type","button",1,"hh-order__discount",3,"click","disabled"],["type","button",1,"hh-order__print",3,"click","disabled"],[3,"onClose","onApplyDiscount","onRemoveDiscount","isOpen","order","canViewCostPrice","corporationDetailId","allowRemove","discountableTotalCents","bayDiscountableCents","canApplyCustomAmount"],[1,"hh-mod"],[1,"hh-mod__sheet"],[1,"hh-mod__header"],[1,"hh-mod__title"],["type","button",1,"hh-mod__close",3,"click","disabled"],[1,"hh-mod__body"],["type","button",1,"hh-mod__special",3,"click","disabled"],[1,"hh-mod__special-label"],[1,"hh-mod__special-value"],["class","hh-mod__group",4,"ngFor","ngForOf","ngForTrackBy"],[1,"hh-mod__footer"],["type","button",1,"hh-mod__btn","hh-mod__btn--cancel",3,"click","disabled"],["type","button",1,"hh-mod__btn","hh-mod__btn--save",3,"click","disabled"],[1,"hh-mod__group"],[1,"hh-mod__group-name"],[1,"hh-mod__group-hint"],[1,"hh-mod__options"],[4,"ngFor","ngForOf","ngForTrackBy"],["type","button",1,"hh-mod__opt",3,"click","disabled"],["class","hh-mod__opt-check",4,"ngIf"],[1,"hh-mod__opt-name"],["class","hh-mod__opt-price",4,"ngIf"],["class","hh-mod__premods",4,"ngIf"],[1,"hh-mod__opt-check"],[1,"hh-mod__opt-price"],[1,"hh-mod__premods"],["type","button",1,"hh-mod__premod",3,"click","disabled"],["type","button","class","hh-mod__premod",3,"hh-mod__premod--active","disabled","click",4,"ngFor","ngForOf","ngForTrackBy"],[1,"hh-pay-confirm"],[1,"hh-pay-confirm__card"],[1,"hh-pay-confirm__check"],[1,"hh-pay-confirm__title"],[1,"hh-pay-confirm__amount"],["class","hh-pay-confirm__tip",4,"ngIf"],["class","hh-pay-confirm__sub",4,"ngIf"],["type","button","class","hh-pay-confirm__print",3,"disabled","click",4,"ngIf"],["type","button",1,"hh-pay-confirm__done",3,"click"],[1,"hh-pay-confirm__tip"],[1,"hh-pay-confirm__sub"],["type","button",1,"hh-pay-confirm__print",3,"click","disabled"]],template:function(t,n){t&1&&(a(0,"div",1),m(1,Ao,2,0,"p",2)(2,Ro,2,1,"p",3)(3,ti,9,8,"ng-container",4)(4,gi,31,19,"div",5)(5,_i,1,8,"app-pos-discount-modal",6)(6,Pi,19,10,"div",7)(7,wi,13,4,"div",8),c(),I(8,"app-pos-size-picker")),t&2&&(r(),l("ngIf",n.isLoading),r(),l("ngIf",!n.isLoading&&n.errorMessage),r(),l("ngIf",!n.isLoading&&!n.errorMessage&&n.order),r(),l("ngIf",!n.isLoading&&!n.errorMessage&&n.order),r(),l("ngIf",n.order),r(),l("ngIf",n.modifierContext),r(),l("ngIf",n.paymentConfirmation))},dependencies:[pe,G,j,Fe,Le,Ae,Je,en,tn,je],styles:['@charset "UTF-8";.handheld-stub[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:32px 24px;min-height:100%;color:#f1f5f9}.handheld-stub[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%]{font-size:1.5rem;font-weight:600;margin:0 0 12px}.handheld-stub__hint[_ngcontent-%COMP%]{font-size:1rem;color:#cbd5e1;margin:0 0 8px}.handheld-stub__note[_ngcontent-%COMP%]{font-size:.8rem;color:#64748b;margin:0;font-family:ui-monospace,Cascadia Code,Fira Code,monospace}.hh-menu__grid[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
1.hh-menu__tile[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;min-height:124px;padding:20px 12px;border:1px solid #334155;border-radius:16px;background:#1e293b;color:#f1f5f9;cursor:pointer;-webkit-tap-highlight-color:transparent}.hh-menu__tile[_ngcontent-%COMP%]:active{background:#334155}.hh-menu__tile[_ngcontent-%COMP%]:disabled{opacity:.6}.hh-menu__icon[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;width:54px;height:54px;border-radius:14px;background:#60a5fa24;color:#60a5fa}.hh-menu__icon[_ngcontent-%COMP%]   svg[_ngcontent-%COMP%]{width:30px;height:30px}.hh-menu__label[_ngcontent-%COMP%]{font-size:1.05rem;font-weight:700;text-align:center}.hh-menu__reset[_ngcontent-%COMP%]{display:block;margin:18px auto 4px;padding:10px 16px;border:1px solid #475569;border-radius:12px;background:transparent;color:#94a3b8;font-size:.9rem;font-weight:600;-webkit-tap-highlight-color:transparent}.hh-menu__reset[_ngcontent-%COMP%]:active{background:#1e293b;color:#fca5a5;border-color:#b91c1c}.hh-page[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:10px;padding:16px;min-height:100%;color:#f1f5f9}.hh-page__heading[_ngcontent-%COMP%]{font-size:1.25rem;font-weight:700;margin:4px 2px 8px}.hh-page__muted[_ngcontent-%COMP%]{color:#94a3b8;font-size:.95rem;margin:8px 2px}.hh-page__error[_ngcontent-%COMP%]{color:#fca5a5;font-size:.95rem;margin:8px 2px}.hh-tile[_ngcontent-%COMP%]{display:flex;align-items:center;gap:12px;width:100%;padding:18px 16px;border:1px solid #334155;border-radius:14px;background:#1e293b;color:#f1f5f9;font-size:1.1rem;font-weight:600;text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent}.hh-tile[_ngcontent-%COMP%]:active{background:#334155}.hh-tile__label[_ngcontent-%COMP%]{flex:1 1 auto}.hh-tile__meta[_ngcontent-%COMP%]{flex:0 0 auto;font-size:.85rem;font-weight:500;color:#94a3b8}.hh-tile__chevron[_ngcontent-%COMP%]{flex:0 0 auto;color:#64748b}.hh-table[_ngcontent-%COMP%]{padding:12px 14px;border-left-width:4px}.hh-table[_ngcontent-%COMP%]:disabled{cursor:default;opacity:.55}.hh-table__seats[_ngcontent-%COMP%]{display:block;font-size:.8rem;font-weight:500;color:#94a3b8}.hh-table__state[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:flex-end;flex:0 0 auto;gap:2px}.hh-table__status[_ngcontent-%COMP%]{font-size:.85rem;font-weight:700;color:#94a3b8}.hh-table__detail[_ngcontent-%COMP%]{font-size:.8rem;font-weight:500;color:#cbd5e1}.hh-table--occupied[_ngcontent-%COMP%]{border-left-color:#38bdf8;background:#172b45}.hh-table--occupied[_ngcontent-%COMP%]   .hh-table__status[_ngcontent-%COMP%]{color:#7dd3fc}.hh-table--paid[_ngcontent-%COMP%]{border-left-color:#22c55e}.hh-table--paid[_ngcontent-%COMP%]   .hh-table__status[_ngcontent-%COMP%]{color:#86efac}.hh-table--bussing[_ngcontent-%COMP%]{border-left-color:#f59e0b}.hh-table--bussing[_ngcontent-%COMP%]   .hh-table__status[_ngcontent-%COMP%]{color:#fcd34d}.hh-cta[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:18px 16px;border:none;border-radius:14px;background:#22c55e;color:#052e16;font-size:1.1rem;font-weight:700;cursor:pointer;-webkit-tap-highlight-color:transparent}.hh-cta[_ngcontent-%COMP%]:active{background:#16a34a}.hh-cta[_ngcontent-%COMP%]:disabled{background:#334155;color:#64748b}.hh-divider[_ngcontent-%COMP%]{display:flex;align-items:center;gap:10px;margin:8px 2px 2px;color:#64748b;font-size:.8rem;text-transform:uppercase;letter-spacing:.04em}.hh-divider[_ngcontent-%COMP%]:before, .hh-divider[_ngcontent-%COMP%]:after{content:"";flex:1 1 auto;height:1px;background:#334155}.hh-order[_ngcontent-%COMP%]{padding-bottom:0}.hh-seg[_ngcontent-%COMP%]{display:flex;gap:6px;margin:4px 0 12px;padding:5px;background:#1e293b;border-radius:12px}.hh-seg__btn[_ngcontent-%COMP%]{flex:1 1 0;min-height:44px;padding:10px 8px;border:none;border-radius:9px;background:transparent;color:#94a3b8;font-size:1rem;font-weight:700;-webkit-tap-highlight-color:transparent}.hh-seg__btn--active[_ngcontent-%COMP%]{background:#0f172a;color:#f1f5f9}.hh-seats[_ngcontent-%COMP%]{display:flex;align-items:center;gap:6px;margin:0 0 12px;padding-bottom:2px;overflow-x:auto;-webkit-overflow-scrolling:touch}.hh-seats[_ngcontent-%COMP%]::-webkit-scrollbar{display:none}.hh-seats__chip[_ngcontent-%COMP%]{flex:0 0 auto;min-width:44px;padding:10px 14px;border:1px solid #334155;border-radius:999px;background:#1e293b;color:#cbd5e1;font-size:.95rem;font-weight:700;-webkit-tap-highlight-color:transparent}.hh-seats__chip--active[_ngcontent-%COMP%]{border-color:#60a5fa;background:#60a5fa2e;color:#f1f5f9}.hh-seats__add[_ngcontent-%COMP%]{flex:0 0 auto;padding:10px 14px;border:1px dashed #475569;border-radius:999px;background:transparent;color:#94a3b8;font-size:.95rem;font-weight:700;white-space:nowrap;-webkit-tap-highlight-color:transparent}.hh-seats__add[_ngcontent-%COMP%]:active{background:#1e293b}.hh-seats__add[_ngcontent-%COMP%]:disabled{opacity:.5}
1.hh-order__search[_ngcontent-%COMP%]{width:100%;padding:12px 14px;margin-bottom:10px;border-radius:12px;border:1px solid #334155;background:#0f172a;color:#f1f5f9;font-size:1rem;outline:none}.hh-order__search[_ngcontent-%COMP%]::placeholder{color:#64748b}.hh-order__group[_ngcontent-%COMP%]{font-size:.8rem;text-transform:uppercase;letter-spacing:.04em;color:#94a3b8;margin:14px 2px 6px}.hh-menu__groups[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:12px}.hh-menu__group[_ngcontent-%COMP%]{min-height:60px;padding:10px 8px;border:1px solid #334155;border-radius:12px;font-size:.95rem;font-weight:700;line-height:1.15;text-align:center;display:flex;align-items:center;justify-content:center;-webkit-tap-highlight-color:transparent}.hh-menu__group[_ngcontent-%COMP%]:active{filter:brightness(1.15)}.hh-menu__group--active[_ngcontent-%COMP%]{box-shadow:inset 0 0 0 3px #ffffffd9;font-weight:800}.hh-menu__items[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.hh-menu__item[_ngcontent-%COMP%]{flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:84px;padding:12px 10px;text-align:center}.hh-menu__item[_ngcontent-%COMP%]   .hh-tile__label[_ngcontent-%COMP%]{flex:0 0 auto;width:100%;line-height:1.15}.hh-menu__item[_ngcontent-%COMP%]   .hh-tile__meta[_ngcontent-%COMP%]{color:inherit;opacity:.8}.hh-order__table[_ngcontent-%COMP%]{margin-left:8px;font-size:.95rem;font-weight:600;color:#60a5fa}.hh-order__item[_ngcontent-%COMP%]{font-size:1rem;padding:14px 16px;margin-bottom:8px}.hh-order__line[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:10px;padding:12px 14px;border:1px solid #334155;border-radius:12px;background:#1e293b;margin-bottom:8px}.hh-order__line--selectable[_ngcontent-%COMP%]{cursor:pointer}.hh-order__line--selected[_ngcontent-%COMP%]{border-color:#60a5fa;background:#60a5fa24}.hh-order__line--held[_ngcontent-%COMP%]{border-color:#d97706;background:#d9770629}
1.hh-order__line--sent[_ngcontent-%COMP%]{opacity:.62}.hh-order__line--ready[_ngcontent-%COMP%]{border-color:#16a34a;background:#16a34a29}.hh-order__line-info[_ngcontent-%COMP%]{display:flex;justify-content:space-between;font-weight:600}.hh-order__line-name[_ngcontent-%COMP%]{flex:1 1 auto;padding-right:8px}.hh-order__line-check[_ngcontent-%COMP%]{margin-right:6px;color:#60a5fa;font-size:1.05rem}.hh-order__line-badge[_ngcontent-%COMP%]{margin-left:8px;padding:1px 7px;border-radius:999px;font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;vertical-align:middle}.hh-order__line-badge--held[_ngcontent-%COMP%]{background:#d9770640;color:#fcd34d}.hh-order__line-badge--sent[_ngcontent-%COMP%]{background:#94a3b838;color:#cbd5e1}.hh-order__line-badge--ready[_ngcontent-%COMP%]{background:#16a34a40;color:#86efac}.hh-order__kds-hint[_ngcontent-%COMP%]{margin:0 0 6px;font-size:.78rem;color:#94a3b8;text-align:center}.hh-order__stepper[_ngcontent-%COMP%]{display:flex;align-items:center;gap:10px}.hh-step[_ngcontent-%COMP%]{width:42px;height:42px;border-radius:10px;border:1px solid #475569;background:#0f172a;color:#f1f5f9;font-size:1.5rem;line-height:1}.hh-step[_ngcontent-%COMP%]:active{background:#334155}.hh-step__qty[_ngcontent-%COMP%]{min-width:26px;text-align:center;font-weight:700}.hh-order__line-actions[_ngcontent-%COMP%]{margin-left:auto;display:flex;align-items:center;gap:14px}.hh-order__mod-btn[_ngcontent-%COMP%]{background:transparent;border:none;color:#60a5fa;font-size:.9rem;font-weight:600}.hh-order__remove[_ngcontent-%COMP%]{background:transparent;border:none;color:#fca5a5;font-size:.9rem}.hh-order__item[_ngcontent-%COMP%]   .hh-tile__meta[_ngcontent-%COMP%]{color:inherit;opacity:.8}.hh-order__footer[_ngcontent-%COMP%]{position:sticky;bottom:0;margin-top:auto;padding:12px 0 6px;background:linear-gradient(180deg,#0f172a66,#0f172a 28%)}.hh-order__totals[_ngcontent-%COMP%]{font-size:.95rem;color:#cbd5e1;margin-bottom:8px}.hh-order__totals[_ngcontent-%COMP%] > div[_ngcontent-%COMP%]{display:flex;justify-content:space-between;padding:2px}.hh-order__grand[_ngcontent-%COMP%]{font-size:1.1rem;font-weight:700;color:#f1f5f9;border-top:1px solid #334155;margin-top:4px;padding-top:6px}.hh-order__paid-line[_ngcontent-%COMP%]{color:#34d399;font-weight:600}.hh-order__balance[_ngcontent-%COMP%]{font-size:1.1rem;font-weight:700;color:#f1f5f9;border-top:1px solid #334155;margin-top:4px;padding-top:6px}.hh-order__kds[_ngcontent-%COMP%]{display:block;margin-bottom:8px}.hh-order__actions[_ngcontent-%COMP%]{display:flex;gap:10px;align-items:stretch}.hh-order__print[_ngcontent-%COMP%]{flex:0 0 auto;padding:14px 12px;border:1px solid #475569;border-radius:14px;background:#1e293b;color:#e2e8f0;font-size:1.05rem;font-weight:700;white-space:nowrap;-webkit-tap-highlight-color:transparent}.hh-order__print[_ngcontent-%COMP%]:active{background:#334155}.hh-order__print[_ngcontent-%COMP%]:disabled{opacity:.6}.hh-order__discount[_ngcontent-%COMP%]{flex:0 0 auto;padding:14px 12px;border:1px solid #475569;border-radius:14px;background:#1e293b;color:#e2e8f0;font-size:1.05rem;font-weight:700;white-space:nowrap;-webkit-tap-highlight-color:transparent}.hh-order__discount[_ngcontent-%COMP%]:active{background:#334155}.hh-order__discount[_ngcontent-%COMP%]:disabled{opacity:.6}.hh-order__pay[_ngcontent-%COMP%]{flex:1 1 auto;width:100%;padding:14px 10px;white-space:nowrap;border:none;border-radius:14px;background:#22c55e;color:#052e16;font-size:1.15rem;font-weight:700}.hh-order__pay[_ngcontent-%COMP%]:active{background:#16a34a}.hh-order__pay[_ngcontent-%COMP%]:disabled{background:#334155;color:#64748b}.hh-order__pay--secondary[_ngcontent-%COMP%]:not(:disabled){border:1px solid #22c55e;background:#1e293b;color:#86efac}.hh-order__pay--secondary[_ngcontent-%COMP%]:not(:disabled):active{background:#0f172a}.hh-list__top[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:10px;margin-bottom:6px}.hh-list__tabs.hh-seg[_ngcontent-%COMP%]{margin:0}.hh-list__tabs[_ngcontent-%COMP%]   .hh-seg__btn[_ngcontent-%COMP%]{padding:10px 4px;font-size:.95rem}.hh-list__actions[_ngcontent-%COMP%]{display:flex;gap:8px}.hh-list__tables[_ngcontent-%COMP%]{flex:1 1 auto;display:flex;align-items:center;justify-content:center;padding:18px 16px;border:none;border-radius:14px;background:#22c55e;color:#052e16;font-size:1.1rem;font-weight:700;-webkit-tap-highlight-color:transparent}.hh-list__tables[_ngcontent-%COMP%]:active{background:#16a34a}.hh-list__new[_ngcontent-%COMP%]{flex:0 0 auto;padding:14px 18px;border:1px solid #475569;border-radius:14px;background:#1e293b;color:#f1f5f9;font-size:1rem;font-weight:600;-webkit-tap-highlight-color:transparent}.hh-list__new[_ngcontent-%COMP%]:active{background:#334155}.hh-list__new[_ngcontent-%COMP%]:disabled{background:#0f172a;color:#64748b}.hh-order-card[_ngcontent-%COMP%]{display:flex;align-items:stretch;gap:12px;width:100%;padding:14px;margin-bottom:8px;border:1px solid #334155;border-radius:14px;background:#1e293b;color:#f1f5f9;text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent}.hh-order-card[_ngcontent-%COMP%]:active{background:#334155}.hh-order-card--voided[_ngcontent-%COMP%]{border-left:3px solid #64748b}.hh-order-card__id[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:flex-start;gap:6px;flex:0 0 auto;min-width:64px}.hh-order-card__num[_ngcontent-%COMP%]{font-size:1.35rem;font-weight:800;line-height:1}.hh-order-card__body[_ngcontent-%COMP%]{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;justify-content:center;gap:4px}.hh-order-card__title[_ngcontent-%COMP%]{font-size:1rem;font-weight:600;line-height:1.2;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.hh-order-card__meta[_ngcontent-%COMP%]{font-size:.8rem;color:#94a3b8}.hh-order-card__approval[_ngcontent-%COMP%]{display:flex;gap:8px;margin-top:8px}.hh-approve-btn[_ngcontent-%COMP%], .hh-reject-btn[_ngcontent-%COMP%]{padding:6px 14px;border-radius:8px;font-size:.8rem;font-weight:700;border:none;cursor:pointer}.hh-approve-btn[_ngcontent-%COMP%]:disabled, .hh-reject-btn[_ngcontent-%COMP%]:disabled{opacity:.5}
1.hh-approve-btn[_ngcontent-%COMP%]{background:#059669;color:#fff}.hh-reject-btn[_ngcontent-%COMP%]{background:#ef444426;color:#f87171;border:1px solid rgba(239,68,68,.4)}.hh-order-card__amounts[_ngcontent-%COMP%]{flex:0 0 auto;align-self:center;display:flex;flex-direction:column;align-items:flex-end;gap:2px}.hh-order-card__total[_ngcontent-%COMP%]{font-size:1.05rem;font-weight:700}.hh-order-card__total--struck[_ngcontent-%COMP%]{text-decoration:line-through;color:#94a3b8}.hh-order-card__tip[_ngcontent-%COMP%]{font-size:.75rem;font-weight:600;color:#34d399;white-space:nowrap}.hh-badge[_ngcontent-%COMP%]{font-size:.62rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;padding:2px 7px;border-radius:9px;color:#fff}.hh-badge--void[_ngcontent-%COMP%]{background:#475569;color:#cbd5e1}.hh-badge--cash[_ngcontent-%COMP%]{background:#059669}.hh-badge--split[_ngcontent-%COMP%]{background:#4f46e5}.hh-mod[_ngcontent-%COMP%]{position:fixed;inset:0;z-index:1000;background:#020617b3;display:flex;flex-direction:column;justify-content:flex-end}.hh-mod__sheet[_ngcontent-%COMP%]{display:flex;flex-direction:column;max-height:92%;background:#0f172a;border-top:1px solid #334155;border-top-left-radius:18px;border-top-right-radius:18px;color:#f1f5f9}.hh-mod__header[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px;border-bottom:1px solid #1e293b}.hh-mod__title[_ngcontent-%COMP%]{font-size:1.15rem;font-weight:700}.hh-mod__close[_ngcontent-%COMP%]{flex:0 0 auto;width:40px;height:40px;border:none;background:transparent;color:#94a3b8;font-size:1.3rem}.hh-mod__body[_ngcontent-%COMP%]{padding:12px 16px;overflow-y:auto}.hh-mod__special[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%;margin-bottom:16px;padding:10px 14px;border:1px dashed #475569;border-radius:10px;background:#94a3b814;color:#e2e8f0;text-align:left}.hh-mod__special[_ngcontent-%COMP%]:disabled{opacity:.5}.hh-mod__special--set[_ngcontent-%COMP%]{border-style:solid;border-color:#f59e0b;background:#f59e0b1f}.hh-mod__special-label[_ngcontent-%COMP%]{font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:#94a3b8}.hh-mod__special-value[_ngcontent-%COMP%]{font-size:.95rem;line-height:1.3;word-break:break-word}.hh-mod__group[_ngcontent-%COMP%]{margin-bottom:16px}.hh-mod__group-name[_ngcontent-%COMP%]{display:flex;align-items:baseline;justify-content:space-between;gap:8px;font-size:1rem;font-weight:700;margin-bottom:8px}.hh-mod__group-hint[_ngcontent-%COMP%]{flex:0 0 auto;font-size:.72rem;font-weight:500;color:#94a3b8;text-transform:uppercase;letter-spacing:.03em}.hh-mod__options[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-bottom:4px}.hh-mod__opt[_ngcontent-%COMP%]{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:64px;padding:12px 10px;border:1px solid #334155;border-radius:12px;background:#1e293b;color:#f1f5f9;font-size:1rem;font-weight:600;text-align:center;line-height:1.15}.hh-mod__opt--selected[_ngcontent-%COMP%]{border-color:#22c55e;background:#14321f}.hh-mod__opt-check[_ngcontent-%COMP%]{position:absolute;top:6px;right:8px;color:#22c55e;font-weight:800;font-size:.85rem}.hh-mod__opt-name[_ngcontent-%COMP%]{width:100%}.hh-mod__opt-price[_ngcontent-%COMP%]{color:#94a3b8;font-size:.82rem;font-weight:500}.hh-mod__footer[_ngcontent-%COMP%]{display:flex;flex-direction:row;gap:12px;padding:12px 16px;border-top:1px solid #1e293b}.hh-mod__btn[_ngcontent-%COMP%]{flex:1 1 0;display:inline-flex;align-items:center;justify-content:center;padding:16px;border-radius:12px;font-size:1.05rem;font-weight:700;line-height:1;cursor:pointer;-webkit-tap-highlight-color:transparent}.hh-mod__btn--cancel[_ngcontent-%COMP%]{border:1px solid #475569;background:#1e293b;color:#e2e8f0}.hh-mod__btn--save[_ngcontent-%COMP%]{border:1px solid #22c55e;background:#22c55e;color:#052e16}.hh-mod__btn[_ngcontent-%COMP%]:disabled{opacity:.6}.hh-mod__premods[_ngcontent-%COMP%]{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:6px;margin:0 0 6px}.hh-mod__premod[_ngcontent-%COMP%]{padding:7px 13px;border:1px solid #475569;border-radius:999px;background:#0f172a;color:#cbd5e1;font-size:.85rem;font-weight:600}.hh-mod__premod--active[_ngcontent-%COMP%]{border-color:#22c55e;background:#14321f;color:#f1f5f9}.hh-mod__premod[_ngcontent-%COMP%]:disabled{opacity:.6}.hh-order__line-mods[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:2px 14px;padding-left:2px}.hh-order__line-mod[_ngcontent-%COMP%]{font-size:.82rem;line-height:1.35;color:#94a3b8}.hh-order__line-mod[_ngcontent-%COMP%]:before{content:"\\b7  ";color:#64748b}.hh-order__line-note[_ngcontent-%COMP%]{margin-top:2px;padding-left:2px;font-size:.82rem;font-style:italic;line-height:1.35;color:#fbbf24;word-break:break-word}.hh-pay-confirm[_ngcontent-%COMP%]{position:fixed;inset:0;z-index:1100;background:#020617eb;display:flex;align-items:center;justify-content:center;padding:24px}.hh-pay-confirm__card[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;width:100%;max-width:420px}.hh-pay-confirm__check[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;width:84px;height:84px;margin-bottom:6px;border-radius:999px;background:#14321f;border:2px solid #22c55e;color:#22c55e;font-size:2.6rem;font-weight:700;line-height:1}.hh-pay-confirm__title[_ngcontent-%COMP%]{font-size:1.4rem;font-weight:700;color:#f1f5f9}
1.hh-pay-confirm__amount[_ngcontent-%COMP%]{font-size:2.2rem;font-weight:800;color:#22c55e}.hh-pay-confirm__tip[_ngcontent-%COMP%]{font-size:1rem;font-weight:600;color:#86efac}.hh-pay-confirm__sub[_ngcontent-%COMP%]{font-size:.95rem;color:#94a3b8}.hh-pay-confirm__print[_ngcontent-%COMP%]{width:100%;margin-top:18px;padding:16px;border:1px solid #475569;border-radius:14px;background:#1e293b;color:#e2e8f0;font-size:1.1rem;font-weight:700}.hh-pay-confirm__print[_ngcontent-%COMP%]:active{background:#334155}.hh-pay-confirm__print[_ngcontent-%COMP%]:disabled{opacity:.6}.hh-pay-confirm__done[_ngcontent-%COMP%]{width:100%;margin-top:10px;padding:16px;border:none;border-radius:14px;background:#22c55e;color:#052e16;font-size:1.15rem;font-weight:700}.hh-pay-confirm__done[_ngcontent-%COMP%]:active{background:#16a34a}.hh-tips__top[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:flex-end;gap:10px}.hh-tips__top[_ngcontent-%COMP%]   .hh-page__heading[_ngcontent-%COMP%]{margin:0}.hh-tips__refresh[_ngcontent-%COMP%]{padding:8px 14px;border:1px solid #334155;border-radius:10px;background:#1e293b;color:#e2e8f0;font-size:.9rem;font-weight:600}.hh-tips__refresh[_ngcontent-%COMP%]:disabled{opacity:.6}.hh-tips__cards[_ngcontent-%COMP%]{display:grid;grid-template-columns:1fr 1fr;gap:8px}.hh-tips__card[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:4px;padding:12px;border:1px solid #334155;border-radius:12px;background:#0f172a}.hh-tips__card-label[_ngcontent-%COMP%]{color:#94a3b8;font-size:.78rem}.hh-tips__card-value[_ngcontent-%COMP%]{font-size:1.2rem;font-weight:700}.hh-tips__card-value--good[_ngcontent-%COMP%]{color:#34d399}.hh-tips__card-value--warn[_ngcontent-%COMP%]{color:#fcd34d}.hh-tips__pool[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:4px;padding:10px 12px;border:1px solid #334155;border-radius:12px;background:#0f172a}.hh-tips__pool-line[_ngcontent-%COMP%]{display:flex;justify-content:space-between;font-size:.9rem;color:#cbd5e1}.hh-tips__pool-out[_ngcontent-%COMP%]{color:#fcd34d;font-weight:600}.hh-tips__pool-in[_ngcontent-%COMP%]{color:#34d399;font-weight:600}.hh-tips__table[_ngcontent-%COMP%]{color:#94a3b8;font-size:.85rem}.hh-tips__check-money[_ngcontent-%COMP%]{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.hh-tips__check-tip[_ngcontent-%COMP%]{font-weight:700;color:#34d399}.hh-tips__check-grat[_ngcontent-%COMP%]{color:#a5b4fc;font-size:.85rem}.hh-tips__check-total[_ngcontent-%COMP%]{color:#64748b;font-size:.85rem}.hh-tips__pay[_ngcontent-%COMP%]{margin-left:auto;padding:6px 14px;border:none;border-radius:10px;background:#22c55e;color:#052e16;font-weight:700}.hh-tips__pay[_ngcontent-%COMP%]:active{background:#16a34a}']})}}return o})();var vn=(()=>{class o{static{this.TERMINAL_TIMEOUT_MS=15e4}static{this.POLL_INTERVAL_MS=2500}constructor(e,t,n,i,p,f,u){this.accountService=e,this.computerIdentityService=t,this.terminalServerService=n,this.posCheckPaymentService=i,this.signalrService=p,this.posTerminalService=f,this.cardPresentFactory=u}startCardPresentPayment(e,t,n=0){return new mt(i=>{let p=null,f=null,u=null,M=null,w=!1,K=new AbortController,W=!1,R=()=>{f&&(clearTimeout(f),f=null),u&&(clearInterval(u),u=null),M&&(M.unsubscribe(),M=null)},Z=()=>g(this,null,function*(){if(!(w||!p||W)){W=!0;try{let S;try{S=yield this.posCheckPaymentService.getPaymentsForCheckAwaitingTerminal(e)}catch{return}let z=S?.find(V=>V.posCheckPaymentId===p);if(!z)return;z.status===Q.Captured||z.status===Q.Authorized?(w=!0,R(),i.next({kind:"captured",payment:z}),i.complete()):($e(z.status)||z.status===Q.Voided)&&(w=!0,R(),i.next({kind:"declined"}),i.complete())}finally{W=!1}}});return g(this,null,function*(){try{let S=yield this.accountService.getCorporationDetailId();if(!S){i.next({kind:"error",message:"No venue is selected for this session. Sign in again and retry."}),i.complete();return}let z=yield this.accountService.getCorporationEmployeeId(),V=yield this.computerIdentityService.getAssignedPosTerminalId(S);if(!V){i.next({kind:"error",message:"This device is not assigned to a payment terminal."}),i.complete();return}let X=null;try{X=yield this.posTerminalService.getTerminal(V)}catch{}if(X?.cardPresentProvider===jt.AdyenNyc1){try{console.log(`[HandheldTerminalPayment] NYC1 on-device path: check=${e} terminal=${V} amount=${t} tip=${n}`);let E=this.cardPresentFactory.resolve(Ft.AdyenNyc1);yield E.initialize(!St.production);let T=X.adyenReaderSerialNumber?.trim()||null;if((yield E.ensureReaderReady({posTerminalId:V,readerSerialNumber:T,onPhase:En=>{En==="waking-reader"&&i.next({kind:"waking",serial:T})},signal:K.signal}))==="cancelled"){i.next({kind:"cancelled"}),i.complete();return}i.next({kind:"dispatched",posCheckPaymentId:null,poiid:X.adyenTerminalReference??null});let xe=yield E.collectPayment({corporationDetailId:S,posCheckId:e,posTerminalId:V,readerSerialNumber:T,employeeId:z,amountCents:t,tipCents:n,sourceType:"PosCheck",sourceId:e});console.log(`[HandheldTerminalPayment] NYC1 outcome status=${xe.status}${xe.failureReason?` failure=${xe.failureReason}`:""}`),xe.status==="Captured"?i.next({kind:"captured",payment:{amountInCents:t,tipAmountInCents:n}}):i.next({kind:"declined",message:xe.failureReason}),i.complete()}catch(E){console.error("[HandheldTerminalPayment] NYC1 payment threw",E),i.next({kind:"error",message:E?.message??"NYC1 reader payment could not be started."}),i.complete()}return}yield this.signalrService.ensureConnection().catch(E=>console.warn("[HandheldTerminalPayment] SignalR connect before dispatch failed; relying on poll/timeout",E)),M=this.signalrService.onPosCheckUpdated().subscribe(E=>{!p||E?.posCheckId!==e||Z()});let ce=yield this.terminalServerService.pushPosCheckPaymentToAdyenTerminal({posCheckId:e,corporationDetailId:S,employeeId:z,posTerminalId:V,amountInCents:t,tipAmountInCents:n}
1);if(!ce?.posCheckPaymentId){R(),i.next({kind:"error",message:"Terminal rejected the payment. Check the terminal assignment."}),i.complete();return}p=ce.posCheckPaymentId,i.next({kind:"dispatched",posCheckPaymentId:ce.posCheckPaymentId,poiid:ce.poiid??null}),f=setTimeout(()=>{w||(w=!0,R(),i.next({kind:"timedout"}),i.complete())},o.TERMINAL_TIMEOUT_MS),u=setInterval(()=>{Z()},o.POLL_INTERVAL_MS),Z()}catch(S){R(),i.next({kind:"error",message:S?.message??"Could not start the terminal payment."}),i.complete()}}),()=>{K.abort(),R()}})}static{this.\u0275fac=function(t){return new(t||o)(N(F),N(Ve),N(ne),N(fe),N(ge),N(Be),N(Vt))}}static{this.\u0275prov=se({token:o,factory:o.\u0275fac,providedIn:"root"})}}return o})();function vi(o,h){o&1&&(a(0,"p",6),d(1,"Loading order\u2026"),c())}function Ii(o,h){if(o&1&&(a(0,"p",7),d(1),c()),o&2){let e=s();r(),b(e.errorMessage)}}function Si(o,h){if(o&1&&(a(0,"p",21),d(1),c()),o&2){let e=s(2);r(),C("Server: ",e.serverName)}}function zi(o,h){if(o&1&&(a(0,"span"),d(1),c()),o&2){let e=s(3);r(),C(" \xB7 #",e.check==null?null:e.check.splitLabel)}}function Ti(o,h){if(o&1&&(a(0,"p",22),d(1),m(2,zi,2,1,"span",3),c()),o&2){let e=s(2);r(),be(" Split ",e.activeSplitIndex+1," of ",e.splitCheckIds.length),r(),l("ngIf",e.check==null?null:e.check.splitLabel)}}function Ei(o,h){o&1&&(a(0,"p",6),d(1,"No items on this order."),c())}function ji(o,h){if(o&1&&(a(0,"span",29),d(1),c()),o&2){let e=s().$implicit;r(),C("",e.quantity,"\xD7 ")}}function Di(o,h){if(o&1&&(a(0,"div",23)(1,"div",24)(2,"span",25),m(3,ji,2,1,"span",26),d(4),c(),a(5,"span",27),d(6),c()(),a(7,"div",28),d(8),c()()),o&2){let e=h.$implicit,t=s(2);r(3),l("ngIf",e.quantity>1),r(),C("",e.itemName," "),r(2),b(t.formatCents(e.priceInCents*e.quantity)),r(2),b(e.seatLabel)}}function Fi(o,h){if(o&1&&(a(0,"div",30)(1,"span"),d(2),c(),a(3,"span"),d(4),c()()),o&2){let e=s(2);r(2),b(e.autoGratuityLabel),r(2),b(e.formatCents(e.autoGratuityCents))}}function Li(o,h){if(o&1&&(a(0,"div")(1,"span"),d(2,"Total"),c(),a(3,"span"),d(4),c()()),o&2){let e=s(2);r(4),b(e.formatCents(e.preTipTotalCents))}}function Ai(o,h){if(o&1&&(a(0,"div",30)(1,"span"),d(2,"Tip"),c(),a(3,"span"),d(4),c()()),o&2){let e=s(2);r(4),b(e.formatCents(e.tipCents))}}function Ri(o,h){if(o&1&&(a(0,"div",31)(1,"span"),d(2),c(),a(3,"span"),d(4),c()()),o&2){let e=h.$implicit,t=s(2);r(2),C("",e.label," paid"),r(2),C("\u2212 ",t.formatCents(e.amountCents))}}function Ni(o,h){if(o&1){let e=O();
1a(0,"div",32)(1,"h3",11),d(2,"Add a tip"),c(),a(3,"app-pos-tip-selector",33),x("tipCentsChange",function(n){P(e);let i=s(2);return y(i.onTipSelected(n))}),c()()}if(o&2){let e=s(2);r(3),l("check",e.check)("tipCents",e.tipCents)("disabled",e.busy||e.applyingTip)("locked",e.tipLocked)}}function Vi(o,h){if(o&1){let e=O();a(0,"button",40),x("click",function(){P(e);let n=s(3);return y(n.openSplit())}),d(1," Split "),c()}if(o&2){let e=s(3);l("disabled",e.busy||e.applyingTip||e.outstandingCents<=0||e.lines.length===0)}}function Bi(o,h){if(o&1){let e=O();a(0,"button",41),x("click",function(){P(e);let n=s(3);return y(n.openZeroDollarCheckPrompt())}),d(1),c()}if(o&2){let e=s(3);l("disabled",e.busy||e.applyingTip||e.finishingZeroDollarCheck),r(),C(" ",e.finishingZeroDollarCheck?"Working\u2026":"Void or close this $0.00 check"," ")}}function $i(o,h){if(o&1){let e=O();a(0,"div",34)(1,"h3",11),d(2,"Payment"),c(),m(3,Vi,2,1,"button",35),a(4,"button",36),x("click",function(){P(e);let n=s(2);return y(n.openGiftCard())}),d(5),c(),a(6,"button",37),x("click",function(){P(e);let n=s(2);return y(n.payByCard())}),d(7),c(),m(8,Bi,2,2,"button",38),a(9,"p",39),d(10," Cash payments must be taken at a full POS terminal with a cash drawer. "),c()()}if(o&2){let e=s(2);r(3),l("ngIf",e.canSplitChecks),r(),l("disabled",e.busy||e.applyingTip||e.outstandingCents<=0),r(),C(" ",e.applyingTip?"Applying\u2026":"Redeem Gift Card"," "),r(),l("disabled",e.busy||e.applyingTip||e.isFullyPaid||e.outstandingCents<=0),r(),C(" ",e.busy?"Waiting for terminal\u2026":"Pay with Credit Card \xB7 "+e.formatCents(e.grossDueCents)," "),r(),l("ngIf",e.isZeroDollarCheck)}}function Hi(o,h){o&1&&(a(0,"div",10)(1,"p",42),d(2,"This check is fully paid."),c()())}function Gi(o,h){if(o&1){let e=O();$(0),m(1,Si,2,1,"p",8)(2,Ti,3,3,"p",9),a(3,"div",10)(4,"h3",11),d(5,"Items"),c(),m(6,Ei,2,0,"p",1)(7,Di,9,4,"div",12),c(),a(8,"div",13),m(9,Fi,5,2,"div",14)(10,Li,5,1,"div",3)(11,Ai,5,1,"div",14)(12,Ri,5,2,"div",15),a(13,"div",16)(14,"span"),d(15),c(),a(16,"span"),d(17),c()()(),m(18,Ni,4,4,"div",17)(19,$i,11,6,"div",18)(20,Hi,3,0,"div",19),a(21,"button",20),x("click",function(){P(e);let n=s();return y(n.back())}),d(22,"Back"),c(),H()}if(o&2){let e=s();r(),l("ngIf",e.serverName),r(),l("ngIf",e.isSplitFlow),r(4),l("ngIf",e.lines.length===0),r(),l("ngForOf",e.lines),r(2),l("ngIf",e.autoGratuityCents>0),r(),l("ngIf",e.tipCents>0),r(),l("ngIf",e.tipCents>0),r(),l("ngForOf",e.appliedPayments),r(3),b(e.isFullyPaid?"Paid in full":"Balance due"),r(2),b(e.formatCents(e.grossDueCents)),r(),l("ngIf",!e.isFullyPaid),r(),l("ngIf",!e.isFullyPaid),r(),l("ngIf",e.isFullyPaid),r(),l("disabled",e.busy)}}function qi(o,h){if(o&1&&(a(0,"div",52),d(1),c()),o&2){let e=s(2);r(),be(" + ",e.formatCents(e.paymentConfirmation.tipCents)," tip \xB7 ",e.formatCents(e.paymentConfirmation.amountCents+e.paymentConfirmation.tipCents)," total ")}}function Ui(o,h){if(o&1&&(a(0,"div",53),d(1),c()),o&2){let e=s(2);r(),C("Balance remaining: ",e.formatCents(e.outstandingCents))}}function Wi(o,h){if(o&1){let e=O();a(0,"button",54),x("click",function(){P(e);let n=s(2);return y(n.printReceipt())}),d(1),c()}if(o&2){let e=s(2);l("disabled",e.printingReceipt),r(),C(" ",e.printingReceipt?"Printing\u2026":e.paymentConfirmation.printed?"Reprint receipt":"Print receipt"," ")}}function Ki(o,h){if(o&1){let e=O();a(0,"div",43)(1,"div",44)(2,"div",45),d(3,"\u2713"),c(),a(4,"div",46),d(5,"Payment approved"),c(),a(6,"div",47),d(7),c(),m(8,qi,2,2,"div",48)(9,Ui,2,1,"div",49)(10,Wi,2,2,"button",50),a(11,"button",51),x("click",function(){P(e);let n=s();return y(n.done())}),d(12,"Done"),c()()()}if(o&2){let e=s();r(7),b(e.formatCents(e.paymentConfirmation.amountCents)),r(),l("ngIf",e.paymentConfirmation.tipCents>0),r(),l("ngIf",e.outstandingCents>0),r(),l("ngIf",e.paymentConfirmation.canPrint&&e.canPrintReceipt)}}var In=(()=>{class o{constructor(e,t,n,i,p,f,u,M,w,K,W,R,Z,S,z,V,X){this.route=e,this.router=t,this.toastController=n,this.alertController=i,this.accountService=p,this.accountProvider=f,this.posCheckService=u,this.posCheckPaymentService=M,this.posOrderService=w,this.receiptOrchestrator=K,this.receiptFormatter=W,this.terminalServerService=R,this.nativeDeviceConfig=Z,this.terminalPayment=S,this.splitCheckModalService=z,this.posGuestRecognitionService=V,this.kitchenPrintDispatcher=X,this.handheldTitle=le(oe),this.posCheckId="",this.orderId=null,this.tableLabel=null,this.returnUrl=null,this.isLoading=!0,this.errorMessage=null,this.busy=!1,this.order=null,this.check=null,this.orderNumber=null,this.serverName=null,this.lines=[],this.giftCardModalOpen=!1,this.corporationDetailId="",this.corporationUserId="",this.employeeId="",this.paymentConfirmation=null,this.printingReceipt=!1,this.deviceTerminalPoiid=null,this.paymentSub=null,this.nyc1WakeAlertPromise=null,this.nyc1WakeAlertVisible=!1,this.lastDispatchedPaymentId=null,this.paymentCompleted=!1,this.splitCheckIds=[],this.activeSplitIndex=0,this.paidCheckIds=new Set,this.checkOrderMap={},this.selectedTipCents=0,this.applyingTip=!1,this.finishingZeroDollarCheck=!1,this.canSplitChecks=!1}
1ngDoCheck(){let e=this.check?.splitLabel??this.orderNumber;e!=null&&this.handheldTitle.set(this.tableLabel?`Check #${e} \xB7 ${this.tableLabel}`:`Check #${e}`)}ngOnInit(){return g(this,null,function*(){this.posCheckId=this.route.snapshot.paramMap.get("posCheckId")??"",this.orderId=this.route.snapshot.queryParamMap.get("orderId"),this.tableLabel=this.route.snapshot.queryParamMap.get("table"),this.returnUrl=this.route.snapshot.queryParamMap.get("returnUrl");let e=this.route.snapshot.queryParamMap.get("splitCheckIds");this.splitCheckIds=e?e.split(",").map(t=>t.trim()).filter(Boolean):[],this.activeSplitIndex=Math.max(0,this.splitCheckIds.indexOf(this.posCheckId));try{let t=yield this.accountService.getEmployeePointOfSalePermissions();this.canSplitChecks=!!(t?.canSplitChecks||t?.canManagePos)}catch{this.canSplitChecks=!1}yield this.load()})}ngOnDestroy(){this.paymentSub?.unsubscribe()}load(){return g(this,null,function*(){this.isLoading=!0,this.errorMessage=null;try{if(!this.posCheckId){this.errorMessage="No check to pay.";return}this.corporationDetailId=(yield this.accountService.getCorporationDetailId())??"",this.corporationUserId=(yield this.accountService.getCorporationUserId())??"",this.employeeId=(yield this.accountService.getCorporationEmployeeId())??"",this.orderId&&(this.order=yield this.posOrderService.getOrder(this.orderId)),this.check=yield this.posCheckService.getCheck(this.posCheckId),this.orderNumber=this.check?.checkNumber??this.order?.checkNumber??this.order?.orderNumber??null;let e=yield this.receiptOrchestrator.getReceiptVenueContext(this.check?.serverEmployeeId).catch(()=>({serverName:void 0}));this.serverName=e?.serverName??null,this.tableLabel||(this.tableLabel=this.check?.tableName??null),this.recomputeLines()}catch(e){console.error("[Handheld/PaySummary] load failed",e),this.errorMessage="Could not load this order. Check the connection and try again."}finally{this.isLoading=!1}})}recomputeLines(){let e=this.check?.seats??[],t=i=>{if(!i)return"Shared";let f=e.find(u=>u.posCheckSeatId===i)?.seatNumber;return f!=null?`Seat ${f}`:"Shared"},n=this.check?.items??[];if(n.length>0){this.lines=n.filter(i=>i.status!==J.Voided&&(i.quantity??0)>0).map(i=>({itemName:i.itemName,quantity:i.quantity??1,priceInCents:i.unitPriceInCents??0,seatLabel:t(i.posCheckSeatId)}));return}this.lines=(this.order?.items??[]).filter(i=>(i.quantity??0)>0).map(i=>({itemName:i.name,quantity:i.quantity??1,priceInCents:i.price??0,seatLabel:t(i.posCheckSeatId)}))}formatCents(e){return`$${((e??0)/100).toFixed(2)}`}get amountPaidCents(){return ue(this.check)}get appliedPayments(){return Ke(this.check)}get outstandingCents(){let e=this.check?.effectiveTotalInCents??this.check?.totalInCents??this.order?.total??0;return Math.max(0,e-this.amountPaidCents)}get isFullyPaid(){return this.outstandingCents<=0&&this.amountPaidCents>0}get preTipTotalCents(){let e=this.check?.effectiveTotalInCents??this.check?.totalInCents??this.order?.total??0;return Math.max(0,e-this.committedTipCents)}get autoGratuityCents(){return Math.max(0,this.check?.autoGratuityInCents??0)}get autoGratuityLabel(){let e=this.check?.autoGratuityRate;return e==null||!(e>0)?"Auto-gratuity":`Auto-gratuity (${Math.round(e*1e4)/100}%)`}get committedTipCents(){return Math.max(0,(this.check?.gratuityInCents??0)-this.autoGratuityCents)}get tipCents(){return this.selectedTipCents>0?this.selectedTipCents:this.committedTipCents}get tipLocked(){return this.committedTipCents>0}get grossDueCents(){return this.outstandingCents+(this.tipLocked?0:this.selectedTipCents)}onTipSelected(e){this.busy||this.applyingTip||this.tipLocked||(this.selectedTipCents=Math.max(0,Math.round(e)))}openSplit(){return g(this,null,function*(){if(this.busy||this.applyingTip||this.isFullyPaid||!this.check||this.lines.length===0||!this.canSplitChecks)return;let e=yield this.splitCheckModalService.openUnifiedSplit(this.check,this.employeeId);if(!e)return;let t=Array.from(new Set([e.originalCheckId,...e.newCheckIds??[],...e.modifiedCheckIds??[]].filter(Boolean)));this.checkOrderMap=de(de({},this.checkOrderMap),e.checkOrderMap??{}),t.length>1?(this.splitCheckIds=t,this.paidCheckIds.clear(),this.activeSplitIndex=t.length-1,yield this.goToNextPayableSplit()):yield this.load()})}get isSplitFlow(){return this.splitCheckIds.length>1}navigateToSplit(e){return g(this,null,function*(){let t=this.splitCheckIds.length;if(!t)return;let n=(e%t+t)%t;this.activeSplitIndex=n,this.posCheckId=this.splitCheckIds[n],this.orderId=this.checkOrderMap[this.posCheckId]??null,this.selectedTipCents=0,this.paymentConfirmation=null,yield this.load()})}goToNextPayableSplit(){return g(this,null,function*(){let e=this.splitCheckIds.length;for(let t=1;t<=e;t++){let n=(this.activeSplitIndex+t)%e,i=this.splitCheckIds[n];if(!this.paidCheckIds.has(i)){if(yield this.navigateToSplit(n),this.outstandingCents>0)return;this.paidCheckIds.add(i)}}this.paymentCompleted=!0,yield this.presentSettledAndLeave()})}settleCurrentAndContinue(){return g(this,null,function*(){this.paidCheckIds.add(this.posCheckId),yield this.closeCheckIfPaid(this.posCheckId),this.isSplitFlow&&this.paidCheckIds.size<this.splitCheckIds.length?yield this.goToNextPayableSplit():(this.paymentCompleted=!0,yield this.leave())})}closeCheckIfPaid(e){return g(this,null,function*(){if(!e||!this.employeeId)return"failed";try{let t=yield this.posCheckService.closeCheck(e,{employeeId:this.employeeId});if(t?.confirmationRequired){let n=yield this.alertController.create({header:"Pour may still be posting",message:t.message||"A pour may still be posting to this check. Wait a moment before closing?",buttons:[{text:"Wait",role:"cancel"},{text:"Close anyway",role:"confirm"}]});yield n.present();let{role:i}=yield n.onDidDismiss();if(i!=="confirm")return"waiting";yield this.posCheckService.closeCheck(e,{employeeId:this.employeeId,confirmInFlightPours:!0})}return"closed"}catch(t){return console.error("[Handheld/PaySummary] closeCheck after payment failed",t),"failed"}})}openGiftCard(){this.busy||this.applyingTip||this.isFullyPaid||(this.giftCardModalOpen=!0)}onGiftCardApplied(){return g(this,null,function*(){this.giftCardModalOpen=!1,yield this.load(),this.isFullyPaid&&(yield this.settleCurrentAndContinue())})}onGiftCardClosed(){this.giftCardModalOpen=!1}payByCard(){return g(this,null,function*(){if(this.busy||this.isFullyPaid)return;let e=this.outstandingCents;if(e<=0){yield this.toast("Nothing left to charge.");return}let t=this.tipLocked?0:this.selectedTipCents;this.busy=!0,this.lastDispatchedPaymentId=null,this.paymentSub?.unsubscribe(),this.paymentSub=this.terminalPayment.startCardPresentPayment(this.posCheckId,e,t).subscribe({next:n=>g(this,null,function*(){if(n.kind==="waking"){yield this.presentNyc1WakeAlert(n.serial);return}if(yield this.dismissNyc1WakeAlert(),n.kind==="cancelled")this.busy=!1;else if(n.kind==="dispatched")this.deviceTerminalPoiid=n.poiid,this.lastDispatchedPaymentId=n.posCheckPaymentId,yield this.toast("Follow the prompt on the terminal\u2026");else if(n.kind==="captured")yield this.reloadAfterCapture(n.payment);else if(n.kind==="declined"){this.busy=!1;let i=n.message?`The terminal reported: ${n.message}`:"The card payment was declined or canceled on the terminal. You can try again.";yield this.alert("Payment declined",i)}else if(n.kind==="timedout")if(yield this.reloadCheckQuiet(),this.busy=!1,this.isFullyPaid){let i=yield this.findCapturedPayment(this.lastDispatchedPaymentId);yield this.reloadAfterCapture(i??{amountInCents:e,tipAmountInCents:0}
1)}else yield this.toast("Still waiting on the terminal \u2014 check the device, then try again.");else n.kind==="error"&&(this.busy=!1,yield this.reloadCheckQuiet(),yield this.toast(this.isFullyPaid?"This check is already paid.":n.message))}),error:()=>g(this,null,function*(){this.busy=!1,yield this.toast("Could not start the terminal payment.")})})})}presentNyc1WakeAlert(e){return g(this,null,function*(){this.nyc1WakeAlertPromise||(this.nyc1WakeAlertVisible=!0,this.nyc1WakeAlertPromise=this.alertController.create({header:"Wake the card reader",message:`Reader${e?" "+e:""} isn't responding. Press its power button to wake it \u2014 the payment will continue automatically. If it chimes, double-click the button on its side to confirm.`,backdropDismiss:!1,buttons:[{text:"Cancel",role:"cancel",handler:()=>{this.paymentSub?.unsubscribe(),this.paymentSub=null,this.busy=!1}}]}).then(t=>(this.nyc1WakeAlertVisible&&t.present(),t)),yield this.nyc1WakeAlertPromise)})}dismissNyc1WakeAlert(){return g(this,null,function*(){this.nyc1WakeAlertVisible=!1;let e=this.nyc1WakeAlertPromise;this.nyc1WakeAlertPromise=null,e&&(yield e.then(t=>t.dismiss()).catch(()=>{}))})}reloadAfterCapture(e){return g(this,null,function*(){yield this.confirmSettledWithRetry(),this.paymentCompleted=!0,this.isFullyPaid&&this.closeCheckIfPaid(this.posCheckId);let t=yield this.receiptOrchestrator.getSettings().catch(()=>null);this.paymentConfirmation={amountCents:e?.amountInCents??0,tipCents:e?.tipAmountInCents??0,canPrint:!0,printed:!1},this.busy=!1,this.resolveCapturedTipCents(e).then(n=>{this.paymentConfirmation&&(this.paymentConfirmation.tipCents=n)}),(t?.printBehavior??"PromptUser")==="AlwaysPrint"&&this.printReceipt()})}resolveCapturedTipCents(e){return g(this,null,function*(){if((e?.tipAmountInCents??0)>0)return e.tipAmountInCents;let t=e?.paymentGroupId;if(!t)return 0;try{return(yield this.posCheckPaymentService.getPaymentsForCheck(this.posCheckId))?.find(p=>p.isTip&&p.paymentGroupId===t)?.tipAmountInCents??0}catch{return 0}})}findCapturedPayment(e){return g(this,null,function*(){if(!e)return null;try{return(yield this.posCheckPaymentService.getPaymentsForCheck(this.posCheckId))?.find(n=>n.posCheckPaymentId===e)??null}catch(t){return console.error("[Handheld/PaySummary] findCapturedPayment failed",t),null}})}reloadCheckQuiet(){return g(this,null,function*(){try{this.check=yield this.posCheckService.getCheck(this.posCheckId),this.recomputeLines()}catch(e){console.error("[Handheld/PaySummary] reloadCheckQuiet failed",e)}})}confirmSettledWithRetry(){return g(this,null,function*(){for(let e=0;e<5;e++){if(yield this.reloadCheckQuiet(),this.isFullyPaid||this.outstandingCents<=0)return;yield new Promise(t=>setTimeout(t,400))}})}done(){return g(this,null,function*(){this.paymentConfirmation=null,yield this.settleCurrentAndContinue()})}presentSettledAndLeave(){return g(this,null,function*(){yield this.toast("Check settled."),yield this.leave()})}get isZeroDollarCheck(){return!this.check||this.isFullyPaid||this.check.status===ct.Closed||this.check.status===ct.Voided||this.amountPaidCents>0?!1:Math.max(this.check.effectiveTotalInCents??0,this.check.totalInCents??0)===0&&this.outstandingCents===0}get zeroDollarLineCount(){return Math.max(this.lines.length,gt(this.check))}openZeroDollarCheckPrompt(){return g(this,null,function*(){if(!this.isZeroDollarCheck||this.finishingZeroDollarCheck||this.busy)return;let e=this.zeroDollarLineCount,t=this.selectedTipCents>0&&!this.tipLocked?rn(this.formatCents(this.selectedTipCents)):"",n=yield this.alertController.create(on(e,t));yield n.present();let{role:i}=yield n.onDidDismiss();if(i==="void"||i==="close"){let p=this.posCheckId?yield this.posCheckService.getCheck(this.posCheckId):null,f=Math.max(this.lines.length,gt(p));if(!nn(p)||f!==e){yield this.toast("This check changed while the prompt was open. Nothing was done."),yield this.reloadCheckQuiet();return}}if(i==="void"){yield this.finishZeroDollarCheckAsync("void");return}i==="close"&&(yield this.finishZeroDollarCheckAsync("close"))})}finishZeroDollarCheckAsync(e){return g(this,null,function*(){let t=this.posCheckId;if(!(!t||!this.employeeId)){this.finishingZeroDollarCheck=!0;try{if(e==="void")yield an(t,this.employeeId,this.zeroDollarLineCount,{posCheckService:this.posCheckService,posOrderService:this.posOrderService,kitchenPrintDispatcher:this.kitchenPrintDispatcher}),yield this.toast("Check voided");else{let n=yield this.closeCheckIfPaid(t);if(n==="waiting")return;if(n==="failed"){yield this.toast("Could not close the check. It is still open.");return}yield this.toast("Check closed at $0.00")}if(this.paidCheckIds.add(t),this.isSplitFlow&&this.paidCheckIds.size<this.splitCheckIds.length){yield this.goToNextPayableSplit();return}this.paymentCompleted=!0,yield this.leave()}catch(n){console.error("[Handheld/PaySummary] finishing a zero dollar check failed",n),yield this.toast(n?.error?.message||n?.message||"Could not finish the check.")}finally{this.finishingZeroDollarCheck=!1}}})}leave(){return g(this,null,function*(){if(this.paymentCompleted){yield this.router.navigate(["/pos-handheld/menu"]);return}this.returnUrl?yield this.router.navigateByUrl(this.returnUrl):yield this.router.navigate(["/pos-handheld/orders"])})}get canPrintReceipt(){return!!this.integratedPrinterPoiid}get integratedPrinterPoiid(){if(this.deviceTerminalPoiid)return this.deviceTerminalPoiid;let e=this.nativeDeviceConfig.getConfig()?.posTerminalConfig;return e?.hasPaymentHardware?e.adyenPoiId??null:null}printReceipt(){return g(this,null,function*(){let e=this.check;if(this.printingReceipt||!e)return;let t=this.integratedPrinterPoiid;if(!t){yield this.toast("This device has no integrated printer.");return}this.printingReceipt=!0;try{let n=yield this.receiptOrchestrator.getSettings();if(!n){yield this.toast("No receipt settings configured.");return}let i=Me(de({},n),{paperWidth:"Mm58"}),p=(yield this.accountProvider.getSelectedCorporationName())??"EagleEye POS",f=yield this.receiptOrchestrator.getReceiptVenueContext(e.serverEmployeeId),u=yield this.receiptOrchestrator.getSuggestedGratuityContext(e).catch(()=>({suggestedGratuities:[]})),M=(yield this.posCheckPaymentService.getPaymentsForCheck(this.posCheckId))??[],w=this.order?.posCheckId===this.posCheckId?this.order:null,K=this.corporationDetailId?yield this.posGuestRecognitionService.getForCheckBestEffort(this.posCheckId,this.corporationDetailId):null,W=yield this.receiptOrchestrator.withTaxAndRefunds(Ge(e,i,p,{venueAddress:f.venueAddress,venuePhone:f.venuePhone,serverName:f.serverName,terminalName:f.terminalName,suggestedGratuities:u.suggestedGratuities,payments:M,processingFeeCents:Math.max(0,(e.effectiveTotalInCents??e.totalInCents??0)-(e.totalInCents??0)),effectiveTotalCents:e.effectiveTotalInCents??e.totalInCents??0,discountCents:w?.discount??0,discounts:He(w),returningGuestMessage:At(i,K)})),R=this.receiptFormatter.buildPreviewLines(W).map(S=>({text:S.text,bold:!!S.emphasized,doubleHeight:!1,alignment:S.align==="center"?"Centred":"Left"}));(yield this.terminalServerService.printReceiptOnAdyenTerminal({corporationDetailId:this.corporationDetailId,poiid:t,lines:R}))?.success?(this.paymentConfirmation&&(this.paymentConfirmation.printed=!0),yield this.toast("Receipt sent to the printer.")):yield this.toast("Could not print the receipt.")}catch(n){console.error("[Handheld/PaySummary] printReceipt failed",n),yield this.toast("Could not print the receipt.")}finally{this.printingReceipt=!1}})}back(){this.leave()}toast(e){return g(this,null,function*(){yield(yield this.toastController.create({message:e,duration:1800,position:"bottom"})).present()})}alert(e,t){return g(this,null,function*(){yield(yield this.alertController.create({header:e,message:t,buttons:["OK"]})).present()})}static{this.\u0275fac=function(t){return new(t||o)(_(he),_(D),_(q),_(te),_(F),_(Ne),_(me),_(fe),_(U),_(Ue),_(qe),_(ne),_(_e),_(vn),_(cn),_(Bt),_(Dt))}}static{this.\u0275cmp=k({type:o,selectors:[["app-pos-handheld-pay-summary"]],standalone:!1,decls:6,vars:12,consts:[[1,"hh-page","hh-pay"],["class","hh-page__muted",4,"ngIf"],["class","hh-page__error",4,"ngIf"],[4,"ngIf"],[3,"applied","closed","isOpen","corporationDetailId","corporationUserId","posCheckId","employeeId","balanceDueInCents","defaultAmountInCents","tipAmountInCents"],["class","hh-pay-confirm",4,"ngIf"],[1,"hh-page__muted"],[1,"hh-page__error"],["class","hh-pay__server",4,"ngIf"],["class","hh-pay__split",4,"ngIf"],[1,"hh-pay__section"],[1,"hh-pay__section-title"],["class","hh-pay__line",4,"ngFor","ngForOf"],[1,"hh-pay__section","hh-pay__totals"],["class","hh-pay__tip-line",4,"ngIf"],["class","hh-pay__paid-line",4,"ngFor","ngForOf"],[1,"hh-pay__grand"],["class","hh-pay__section hh-pay__tip",4,"ngIf"],["class","hh-pay__section hh-pay__options",4,"ngIf"],["class","hh-pay__section",4,"ngIf"],["type","button",1,"hh-pay__btn","hh-pay__btn--back",3,"click","disabled"],[1,"hh-pay__server"],[1,"hh-pay__split"],[1,"hh-pay__line"],[1,"hh-pay__line-main"],[1,"hh-pay__line-name"],["class","hh-pay__line-qty",4,"ngIf"],[1,"hh-pay__line-price"],[1,"hh-pay__line-seat"],[1,"hh-pay__line-qty"],[1,"hh-pay__tip-line"],[1,"hh-pay__paid-line"],[1,"hh-pay__section","hh-pay__tip"],[3,"tipCentsChange","check","tipCents","disabled","locked"],[1,"hh-pay__section","hh-pay__options"],["type","button","class","hh-pay__btn hh-pay__btn--split",3,"disabled","click",4,"ngIf"],["type","button",1,"hh-pay__btn","hh-pay__btn--gift",3,"click","disabled"],["type","button",1,"hh-pay__btn","hh-pay__btn--card",3,"click","disabled"],["type","button","class","hh-pay__btn hh-pay__btn--zero",3,"disabled","click",4,"ngIf"],[1,"hh-pay__cash-note"],["type","button",1,"hh-pay__btn","hh-pay__btn--split",3,"click","disabled"],["type","button",1,"hh-pay__btn","hh-pay__btn--zero",3,"click","disabled"],[1,"hh-pay__paid"],[1,"hh-pay-confirm"],[1,"hh-pay-confirm__card"],[1,"hh-pay-confirm__check"],[1,"hh-pay-confirm__title"],[1,"hh-pay-confirm__amount"],["class","hh-pay-confirm__tip",4,"ngIf"],["class","hh-pay-confirm__sub",4,"ngIf"],["type","button","class","hh-pay-confirm__print",3,"disabled","click",4,"ngIf"],["type","button",1,"hh-pay-confirm__done",3,"click"],[1,"hh-pay-confirm__tip"],[1,"hh-pay-confirm__sub"],["type","button",1,"hh-pay-confirm__print",3,"click","disabled"]],template:function(t,n){t&1&&(a(0,"div",0),m(1,vi,2,0,"p",1)(2,Ii,2,1,"p",2)(3,Gi,23,14,"ng-container",3),a(4,"app-pos-gift-card-payment-modal",4),x("applied",function(){return n.onGiftCardApplied()})("closed",function(){return n.onGiftCardClosed()}),c(),m(5,Ki,13,4,"div",5),c()),t&2&&(r(),l("ngIf",n.isLoading),r(),l("ngIf",!n.isLoading&&n.errorMessage),r(),l("ngIf",!n.isLoading&&!n.errorMessage),r(),l("isOpen",n.giftCardModalOpen)("corporationDetailId",n.corporationDetailId)("corporationUserId",n.corporationUserId)("posCheckId",n.posCheckId)("employeeId",n.employeeId)("balanceDueInCents",n.outstandingCents)("defaultAmountInCents",n.outstandingCents)("tipAmountInCents",n.tipLocked?0:n.selectedTipCents),r(),l("ngIf",n.paymentConfirmation))},dependencies:[G,j,dn,sn],styles:['@charset "UTF-8";.handheld-stub[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:32px 24px;min-height:100%;color:#f1f5f9}.handheld-stub[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%]{font-size:1.5rem;font-weight:600;margin:0 0 12px}.handheld-stub__hint[_ngcontent-%COMP%]{font-size:1rem;color:#cbd5e1;margin:0 0 8px}.handheld-stub__note[_ngcontent-%COMP%]{font-size:.8rem;color:#64748b;margin:0;font-family:ui-monospace,Cascadia Code,Fira Code,monospace}.hh-menu__grid[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
1.hh-menu__tile[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;min-height:124px;padding:20px 12px;border:1px solid #334155;border-radius:16px;background:#1e293b;color:#f1f5f9;cursor:pointer;-webkit-tap-highlight-color:transparent}.hh-menu__tile[_ngcontent-%COMP%]:active{background:#334155}.hh-menu__tile[_ngcontent-%COMP%]:disabled{opacity:.6}.hh-menu__icon[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;width:54px;height:54px;border-radius:14px;background:#60a5fa24;color:#60a5fa}.hh-menu__icon[_ngcontent-%COMP%]   svg[_ngcontent-%COMP%]{width:30px;height:30px}.hh-menu__label[_ngcontent-%COMP%]{font-size:1.05rem;font-weight:700;text-align:center}.hh-menu__reset[_ngcontent-%COMP%]{display:block;margin:18px auto 4px;padding:10px 16px;border:1px solid #475569;border-radius:12px;background:transparent;color:#94a3b8;font-size:.9rem;font-weight:600;-webkit-tap-highlight-color:transparent}.hh-menu__reset[_ngcontent-%COMP%]:active{background:#1e293b;color:#fca5a5;border-color:#b91c1c}.hh-page[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:10px;padding:16px;min-height:100%;color:#f1f5f9}.hh-page__heading[_ngcontent-%COMP%]{font-size:1.25rem;font-weight:700;margin:4px 2px 8px}.hh-page__muted[_ngcontent-%COMP%]{color:#94a3b8;font-size:.95rem;margin:8px 2px}.hh-page__error[_ngcontent-%COMP%]{color:#fca5a5;font-size:.95rem;margin:8px 2px}.hh-tile[_ngcontent-%COMP%]{display:flex;align-items:center;gap:12px;width:100%;padding:18px 16px;border:1px solid #334155;border-radius:14px;background:#1e293b;color:#f1f5f9;font-size:1.1rem;font-weight:600;text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent}.hh-tile[_ngcontent-%COMP%]:active{background:#334155}.hh-tile__label[_ngcontent-%COMP%]{flex:1 1 auto}.hh-tile__meta[_ngcontent-%COMP%]{flex:0 0 auto;font-size:.85rem;font-weight:500;color:#94a3b8}.hh-tile__chevron[_ngcontent-%COMP%]{flex:0 0 auto;color:#64748b}.hh-table[_ngcontent-%COMP%]{padding:12px 14px;border-left-width:4px}.hh-table[_ngcontent-%COMP%]:disabled{cursor:default;opacity:.55}.hh-table__seats[_ngcontent-%COMP%]{display:block;font-size:.8rem;font-weight:500;color:#94a3b8}.hh-table__state[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:flex-end;flex:0 0 auto;gap:2px}.hh-table__status[_ngcontent-%COMP%]{font-size:.85rem;font-weight:700;color:#94a3b8}.hh-table__detail[_ngcontent-%COMP%]{font-size:.8rem;font-weight:500;color:#cbd5e1}.hh-table--occupied[_ngcontent-%COMP%]{border-left-color:#38bdf8;background:#172b45}.hh-table--occupied[_ngcontent-%COMP%]   .hh-table__status[_ngcontent-%COMP%]{color:#7dd3fc}.hh-table--paid[_ngcontent-%COMP%]{border-left-color:#22c55e}.hh-table--paid[_ngcontent-%COMP%]   .hh-table__status[_ngcontent-%COMP%]{color:#86efac}.hh-table--bussing[_ngcontent-%COMP%]{border-left-color:#f59e0b}.hh-table--bussing[_ngcontent-%COMP%]   .hh-table__status[_ngcontent-%COMP%]{color:#fcd34d}.hh-cta[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:18px 16px;border:none;border-radius:14px;background:#22c55e;color:#052e16;font-size:1.1rem;font-weight:700;cursor:pointer;-webkit-tap-highlight-color:transparent}.hh-cta[_ngcontent-%COMP%]:active{background:#16a34a}.hh-cta[_ngcontent-%COMP%]:disabled{background:#334155;color:#64748b}.hh-divider[_ngcontent-%COMP%]{display:flex;align-items:center;gap:10px;margin:8px 2px 2px;color:#64748b;font-size:.8rem;text-transform:uppercase;letter-spacing:.04em}.hh-divider[_ngcontent-%COMP%]:before, .hh-divider[_ngcontent-%COMP%]:after{content:"";flex:1 1 auto;height:1px;background:#334155}.hh-order[_ngcontent-%COMP%]{padding-bottom:0}.hh-seg[_ngcontent-%COMP%]{display:flex;gap:6px;margin:4px 0 12px;padding:5px;background:#1e293b;border-radius:12px}.hh-seg__btn[_ngcontent-%COMP%]{flex:1 1 0;min-height:44px;padding:10px 8px;border:none;border-radius:9px;background:transparent;color:#94a3b8;font-size:1rem;font-weight:700;-webkit-tap-highlight-color:transparent}.hh-seg__btn--active[_ngcontent-%COMP%]{background:#0f172a;color:#f1f5f9}.hh-seats[_ngcontent-%COMP%]{display:flex;align-items:center;gap:6px;margin:0 0 12px;padding-bottom:2px;overflow-x:auto;-webkit-overflow-scrolling:touch}.hh-seats[_ngcontent-%COMP%]::-webkit-scrollbar{display:none}.hh-seats__chip[_ngcontent-%COMP%]{flex:0 0 auto;min-width:44px;padding:10px 14px;border:1px solid #334155;border-radius:999px;background:#1e293b;color:#cbd5e1;font-size:.95rem;font-weight:700;-webkit-tap-highlight-color:transparent}.hh-seats__chip--active[_ngcontent-%COMP%]{border-color:#60a5fa;background:#60a5fa2e;color:#f1f5f9}.hh-seats__add[_ngcontent-%COMP%]{flex:0 0 auto;padding:10px 14px;border:1px dashed #475569;border-radius:999px;background:transparent;color:#94a3b8;font-size:.95rem;font-weight:700;white-space:nowrap;-webkit-tap-highlight-color:transparent}.hh-seats__add[_ngcontent-%COMP%]:active{background:#1e293b}.hh-seats__add[_ngcontent-%COMP%]:disabled{opacity:.5}
1.hh-order__search[_ngcontent-%COMP%]{width:100%;padding:12px 14px;margin-bottom:10px;border-radius:12px;border:1px solid #334155;background:#0f172a;color:#f1f5f9;font-size:1rem;outline:none}.hh-order__search[_ngcontent-%COMP%]::placeholder{color:#64748b}.hh-order__group[_ngcontent-%COMP%]{font-size:.8rem;text-transform:uppercase;letter-spacing:.04em;color:#94a3b8;margin:14px 2px 6px}.hh-menu__groups[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:12px}.hh-menu__group[_ngcontent-%COMP%]{min-height:60px;padding:10px 8px;border:1px solid #334155;border-radius:12px;font-size:.95rem;font-weight:700;line-height:1.15;text-align:center;display:flex;align-items:center;justify-content:center;-webkit-tap-highlight-color:transparent}.hh-menu__group[_ngcontent-%COMP%]:active{filter:brightness(1.15)}.hh-menu__group--active[_ngcontent-%COMP%]{box-shadow:inset 0 0 0 3px #ffffffd9;font-weight:800}.hh-menu__items[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.hh-menu__item[_ngcontent-%COMP%]{flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:84px;padding:12px 10px;text-align:center}.hh-menu__item[_ngcontent-%COMP%]   .hh-tile__label[_ngcontent-%COMP%]{flex:0 0 auto;width:100%;line-height:1.15}.hh-menu__item[_ngcontent-%COMP%]   .hh-tile__meta[_ngcontent-%COMP%]{color:inherit;opacity:.8}.hh-order__table[_ngcontent-%COMP%]{margin-left:8px;font-size:.95rem;font-weight:600;color:#60a5fa}.hh-order__item[_ngcontent-%COMP%]{font-size:1rem;padding:14px 16px;margin-bottom:8px}.hh-order__line[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:10px;padding:12px 14px;border:1px solid #334155;border-radius:12px;background:#1e293b;margin-bottom:8px}.hh-order__line--selectable[_ngcontent-%COMP%]{cursor:pointer}.hh-order__line--selected[_ngcontent-%COMP%]{border-color:#60a5fa;background:#60a5fa24}.hh-order__line--held[_ngcontent-%COMP%]{border-color:#d97706;background:#d9770629}
1.hh-order__line--sent[_ngcontent-%COMP%]{opacity:.62}.hh-order__line--ready[_ngcontent-%COMP%]{border-color:#16a34a;background:#16a34a29}.hh-order__line-info[_ngcontent-%COMP%]{display:flex;justify-content:space-between;font-weight:600}.hh-order__line-name[_ngcontent-%COMP%]{flex:1 1 auto;padding-right:8px}.hh-order__line-check[_ngcontent-%COMP%]{margin-right:6px;color:#60a5fa;font-size:1.05rem}.hh-order__line-badge[_ngcontent-%COMP%]{margin-left:8px;padding:1px 7px;border-radius:999px;font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;vertical-align:middle}.hh-order__line-badge--held[_ngcontent-%COMP%]{background:#d9770640;color:#fcd34d}.hh-order__line-badge--sent[_ngcontent-%COMP%]{background:#94a3b838;color:#cbd5e1}.hh-order__line-badge--ready[_ngcontent-%COMP%]{background:#16a34a40;color:#86efac}.hh-order__kds-hint[_ngcontent-%COMP%]{margin:0 0 6px;font-size:.78rem;color:#94a3b8;text-align:center}.hh-order__stepper[_ngcontent-%COMP%]{display:flex;align-items:center;gap:10px}.hh-step[_ngcontent-%COMP%]{width:42px;height:42px;border-radius:10px;border:1px solid #475569;background:#0f172a;color:#f1f5f9;font-size:1.5rem;line-height:1}.hh-step[_ngcontent-%COMP%]:active{background:#334155}.hh-step__qty[_ngcontent-%COMP%]{min-width:26px;text-align:center;font-weight:700}.hh-order__line-actions[_ngcontent-%COMP%]{margin-left:auto;display:flex;align-items:center;gap:14px}.hh-order__mod-btn[_ngcontent-%COMP%]{background:transparent;border:none;color:#60a5fa;font-size:.9rem;font-weight:600}.hh-order__remove[_ngcontent-%COMP%]{background:transparent;border:none;color:#fca5a5;font-size:.9rem}.hh-order__item[_ngcontent-%COMP%]   .hh-tile__meta[_ngcontent-%COMP%]{color:inherit;opacity:.8}.hh-order__footer[_ngcontent-%COMP%]{position:sticky;bottom:0;margin-top:auto;padding:12px 0 6px;background:linear-gradient(180deg,#0f172a66,#0f172a 28%)}.hh-order__totals[_ngcontent-%COMP%]{font-size:.95rem;color:#cbd5e1;margin-bottom:8px}.hh-order__totals[_ngcontent-%COMP%] > div[_ngcontent-%COMP%]{display:flex;justify-content:space-between;padding:2px}.hh-order__grand[_ngcontent-%COMP%]{font-size:1.1rem;font-weight:700;color:#f1f5f9;border-top:1px solid #334155;margin-top:4px;padding-top:6px}.hh-order__paid-line[_ngcontent-%COMP%]{color:#34d399;font-weight:600}.hh-order__balance[_ngcontent-%COMP%]{font-size:1.1rem;font-weight:700;color:#f1f5f9;border-top:1px solid #334155;margin-top:4px;padding-top:6px}.hh-order__kds[_ngcontent-%COMP%]{display:block;margin-bottom:8px}.hh-order__actions[_ngcontent-%COMP%]{display:flex;gap:10px;align-items:stretch}.hh-order__print[_ngcontent-%COMP%]{flex:0 0 auto;padding:14px 12px;border:1px solid #475569;border-radius:14px;background:#1e293b;color:#e2e8f0;font-size:1.05rem;font-weight:700;white-space:nowrap;-webkit-tap-highlight-color:transparent}.hh-order__print[_ngcontent-%COMP%]:active{background:#334155}.hh-order__print[_ngcontent-%COMP%]:disabled{opacity:.6}.hh-order__discount[_ngcontent-%COMP%]{flex:0 0 auto;padding:14px 12px;border:1px solid #475569;border-radius:14px;background:#1e293b;color:#e2e8f0;font-size:1.05rem;font-weight:700;white-space:nowrap;-webkit-tap-highlight-color:transparent}.hh-order__discount[_ngcontent-%COMP%]:active{background:#334155}.hh-order__discount[_ngcontent-%COMP%]:disabled{opacity:.6}.hh-order__pay[_ngcontent-%COMP%]{flex:1 1 auto;width:100%;padding:14px 10px;white-space:nowrap;border:none;border-radius:14px;background:#22c55e;color:#052e16;font-size:1.15rem;font-weight:700}.hh-order__pay[_ngcontent-%COMP%]:active{background:#16a34a}.hh-order__pay[_ngcontent-%COMP%]:disabled{background:#334155;color:#64748b}.hh-order__pay--secondary[_ngcontent-%COMP%]:not(:disabled){border:1px solid #22c55e;background:#1e293b;color:#86efac}.hh-order__pay--secondary[_ngcontent-%COMP%]:not(:disabled):active{background:#0f172a}.hh-list__top[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:10px;margin-bottom:6px}.hh-list__tabs.hh-seg[_ngcontent-%COMP%]{margin:0}.hh-list__tabs[_ngcontent-%COMP%]   .hh-seg__btn[_ngcontent-%COMP%]{padding:10px 4px;font-size:.95rem}.hh-list__actions[_ngcontent-%COMP%]{display:flex;gap:8px}.hh-list__tables[_ngcontent-%COMP%]{flex:1 1 auto;display:flex;align-items:center;justify-content:center;padding:18px 16px;border:none;border-radius:14px;background:#22c55e;color:#052e16;font-size:1.1rem;font-weight:700;-webkit-tap-highlight-color:transparent}.hh-list__tables[_ngcontent-%COMP%]:active{background:#16a34a}.hh-list__new[_ngcontent-%COMP%]{flex:0 0 auto;padding:14px 18px;border:1px solid #475569;border-radius:14px;background:#1e293b;color:#f1f5f9;font-size:1rem;font-weight:600;-webkit-tap-highlight-color:transparent}.hh-list__new[_ngcontent-%COMP%]:active{background:#334155}.hh-list__new[_ngcontent-%COMP%]:disabled{background:#0f172a;color:#64748b}.hh-order-card[_ngcontent-%COMP%]{display:flex;align-items:stretch;gap:12px;width:100%;padding:14px;margin-bottom:8px;border:1px solid #334155;border-radius:14px;background:#1e293b;color:#f1f5f9;text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent}.hh-order-card[_ngcontent-%COMP%]:active{background:#334155}.hh-order-card--voided[_ngcontent-%COMP%]{border-left:3px solid #64748b}.hh-order-card__id[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:flex-start;gap:6px;flex:0 0 auto;min-width:64px}.hh-order-card__num[_ngcontent-%COMP%]{font-size:1.35rem;font-weight:800;line-height:1}.hh-order-card__body[_ngcontent-%COMP%]{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;justify-content:center;gap:4px}.hh-order-card__title[_ngcontent-%COMP%]{font-size:1rem;font-weight:600;line-height:1.2;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.hh-order-card__meta[_ngcontent-%COMP%]{font-size:.8rem;color:#94a3b8}.hh-order-card__approval[_ngcontent-%COMP%]{display:flex;gap:8px;margin-top:8px}.hh-approve-btn[_ngcontent-%COMP%], .hh-reject-btn[_ngcontent-%COMP%]{padding:6px 14px;border-radius:8px;font-size:.8rem;font-weight:700;border:none;cursor:pointer}.hh-approve-btn[_ngcontent-%COMP%]:disabled, .hh-reject-btn[_ngcontent-%COMP%]:disabled{opacity:.5}
1.hh-approve-btn[_ngcontent-%COMP%]{background:#059669;color:#fff}.hh-reject-btn[_ngcontent-%COMP%]{background:#ef444426;color:#f87171;border:1px solid rgba(239,68,68,.4)}.hh-order-card__amounts[_ngcontent-%COMP%]{flex:0 0 auto;align-self:center;display:flex;flex-direction:column;align-items:flex-end;gap:2px}.hh-order-card__total[_ngcontent-%COMP%]{font-size:1.05rem;font-weight:700}.hh-order-card__total--struck[_ngcontent-%COMP%]{text-decoration:line-through;color:#94a3b8}.hh-order-card__tip[_ngcontent-%COMP%]{font-size:.75rem;font-weight:600;color:#34d399;white-space:nowrap}.hh-badge[_ngcontent-%COMP%]{font-size:.62rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;padding:2px 7px;border-radius:9px;color:#fff}.hh-badge--void[_ngcontent-%COMP%]{background:#475569;color:#cbd5e1}.hh-badge--cash[_ngcontent-%COMP%]{background:#059669}.hh-badge--split[_ngcontent-%COMP%]{background:#4f46e5}.hh-mod[_ngcontent-%COMP%]{position:fixed;inset:0;z-index:1000;background:#020617b3;display:flex;flex-direction:column;justify-content:flex-end}.hh-mod__sheet[_ngcontent-%COMP%]{display:flex;flex-direction:column;max-height:92%;background:#0f172a;border-top:1px solid #334155;border-top-left-radius:18px;border-top-right-radius:18px;color:#f1f5f9}.hh-mod__header[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px;border-bottom:1px solid #1e293b}.hh-mod__title[_ngcontent-%COMP%]{font-size:1.15rem;font-weight:700}.hh-mod__close[_ngcontent-%COMP%]{flex:0 0 auto;width:40px;height:40px;border:none;background:transparent;color:#94a3b8;font-size:1.3rem}.hh-mod__body[_ngcontent-%COMP%]{padding:12px 16px;overflow-y:auto}.hh-mod__special[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%;margin-bottom:16px;padding:10px 14px;border:1px dashed #475569;border-radius:10px;background:#94a3b814;color:#e2e8f0;text-align:left}.hh-mod__special[_ngcontent-%COMP%]:disabled{opacity:.5}.hh-mod__special--set[_ngcontent-%COMP%]{border-style:solid;border-color:#f59e0b;background:#f59e0b1f}.hh-mod__special-label[_ngcontent-%COMP%]{font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:#94a3b8}.hh-mod__special-value[_ngcontent-%COMP%]{font-size:.95rem;line-height:1.3;word-break:break-word}.hh-mod__group[_ngcontent-%COMP%]{margin-bottom:16px}.hh-mod__group-name[_ngcontent-%COMP%]{display:flex;align-items:baseline;justify-content:space-between;gap:8px;font-size:1rem;font-weight:700;margin-bottom:8px}.hh-mod__group-hint[_ngcontent-%COMP%]{flex:0 0 auto;font-size:.72rem;font-weight:500;color:#94a3b8;text-transform:uppercase;letter-spacing:.03em}.hh-mod__options[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-bottom:4px}.hh-mod__opt[_ngcontent-%COMP%]{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:64px;padding:12px 10px;border:1px solid #334155;border-radius:12px;background:#1e293b;color:#f1f5f9;font-size:1rem;font-weight:600;text-align:center;line-height:1.15}.hh-mod__opt--selected[_ngcontent-%COMP%]{border-color:#22c55e;background:#14321f}.hh-mod__opt-check[_ngcontent-%COMP%]{position:absolute;top:6px;right:8px;color:#22c55e;font-weight:800;font-size:.85rem}.hh-mod__opt-name[_ngcontent-%COMP%]{width:100%}.hh-mod__opt-price[_ngcontent-%COMP%]{color:#94a3b8;font-size:.82rem;font-weight:500}.hh-mod__footer[_ngcontent-%COMP%]{display:flex;flex-direction:row;gap:12px;padding:12px 16px;border-top:1px solid #1e293b}.hh-mod__btn[_ngcontent-%COMP%]{flex:1 1 0;display:inline-flex;align-items:center;justify-content:center;padding:16px;border-radius:12px;font-size:1.05rem;font-weight:700;line-height:1;cursor:pointer;-webkit-tap-highlight-color:transparent}.hh-mod__btn--cancel[_ngcontent-%COMP%]{border:1px solid #475569;background:#1e293b;color:#e2e8f0}.hh-mod__btn--save[_ngcontent-%COMP%]{border:1px solid #22c55e;background:#22c55e;color:#052e16}.hh-mod__btn[_ngcontent-%COMP%]:disabled{opacity:.6}.hh-mod__premods[_ngcontent-%COMP%]{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:6px;margin:0 0 6px}.hh-mod__premod[_ngcontent-%COMP%]{padding:7px 13px;border:1px solid #475569;border-radius:999px;background:#0f172a;color:#cbd5e1;font-size:.85rem;font-weight:600}.hh-mod__premod--active[_ngcontent-%COMP%]{border-color:#22c55e;background:#14321f;color:#f1f5f9}.hh-mod__premod[_ngcontent-%COMP%]:disabled{opacity:.6}.hh-order__line-mods[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:2px 14px;padding-left:2px}.hh-order__line-mod[_ngcontent-%COMP%]{font-size:.82rem;line-height:1.35;color:#94a3b8}.hh-order__line-mod[_ngcontent-%COMP%]:before{content:"\\b7  ";color:#64748b}.hh-order__line-note[_ngcontent-%COMP%]{margin-top:2px;padding-left:2px;font-size:.82rem;font-style:italic;line-height:1.35;color:#fbbf24;word-break:break-word}.hh-pay-confirm[_ngcontent-%COMP%]{position:fixed;inset:0;z-index:1100;background:#020617eb;display:flex;align-items:center;justify-content:center;padding:24px}.hh-pay-confirm__card[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;width:100%;max-width:420px}.hh-pay-confirm__check[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;width:84px;height:84px;margin-bottom:6px;border-radius:999px;background:#14321f;border:2px solid #22c55e;color:#22c55e;font-size:2.6rem;font-weight:700;line-height:1}.hh-pay-confirm__title[_ngcontent-%COMP%]{font-size:1.4rem;font-weight:700;color:#f1f5f9}
1.hh-pay-confirm__amount[_ngcontent-%COMP%]{font-size:2.2rem;font-weight:800;color:#22c55e}.hh-pay-confirm__tip[_ngcontent-%COMP%]{font-size:1rem;font-weight:600;color:#86efac}.hh-pay-confirm__sub[_ngcontent-%COMP%]{font-size:.95rem;color:#94a3b8}.hh-pay-confirm__print[_ngcontent-%COMP%]{width:100%;margin-top:18px;padding:16px;border:1px solid #475569;border-radius:14px;background:#1e293b;color:#e2e8f0;font-size:1.1rem;font-weight:700}.hh-pay-confirm__print[_ngcontent-%COMP%]:active{background:#334155}.hh-pay-confirm__print[_ngcontent-%COMP%]:disabled{opacity:.6}.hh-pay-confirm__done[_ngcontent-%COMP%]{width:100%;margin-top:10px;padding:16px;border:none;border-radius:14px;background:#22c55e;color:#052e16;font-size:1.15rem;font-weight:700}.hh-pay-confirm__done[_ngcontent-%COMP%]:active{background:#16a34a}.hh-tips__top[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:flex-end;gap:10px}.hh-tips__top[_ngcontent-%COMP%]   .hh-page__heading[_ngcontent-%COMP%]{margin:0}.hh-tips__refresh[_ngcontent-%COMP%]{padding:8px 14px;border:1px solid #334155;border-radius:10px;background:#1e293b;color:#e2e8f0;font-size:.9rem;font-weight:600}.hh-tips__refresh[_ngcontent-%COMP%]:disabled{opacity:.6}.hh-tips__cards[_ngcontent-%COMP%]{display:grid;grid-template-columns:1fr 1fr;gap:8px}.hh-tips__card[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:4px;padding:12px;border:1px solid #334155;border-radius:12px;background:#0f172a}.hh-tips__card-label[_ngcontent-%COMP%]{color:#94a3b8;font-size:.78rem}.hh-tips__card-value[_ngcontent-%COMP%]{font-size:1.2rem;font-weight:700}.hh-tips__card-value--good[_ngcontent-%COMP%]{color:#34d399}.hh-tips__card-value--warn[_ngcontent-%COMP%]{color:#fcd34d}.hh-tips__pool[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:4px;padding:10px 12px;border:1px solid #334155;border-radius:12px;background:#0f172a}.hh-tips__pool-line[_ngcontent-%COMP%]{display:flex;justify-content:space-between;font-size:.9rem;color:#cbd5e1}.hh-tips__pool-out[_ngcontent-%COMP%]{color:#fcd34d;font-weight:600}.hh-tips__pool-in[_ngcontent-%COMP%]{color:#34d399;font-weight:600}.hh-tips__table[_ngcontent-%COMP%]{color:#94a3b8;font-size:.85rem}.hh-tips__check-money[_ngcontent-%COMP%]{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.hh-tips__check-tip[_ngcontent-%COMP%]{font-weight:700;color:#34d399}.hh-tips__check-grat[_ngcontent-%COMP%]{color:#a5b4fc;font-size:.85rem}.hh-tips__check-total[_ngcontent-%COMP%]{color:#64748b;font-size:.85rem}.hh-tips__pay[_ngcontent-%COMP%]{margin-left:auto;padding:6px 14px;border:none;border-radius:10px;background:#22c55e;color:#052e16;font-weight:700}.hh-tips__pay[_ngcontent-%COMP%]:active{background:#16a34a}',".hh-pay[_ngcontent-%COMP%]{padding:.75rem 1.1rem 1.75rem}.hh-pay__table[_ngcontent-%COMP%]{margin-left:.4rem;font-weight:500;color:var(--ion-color-medium, #6b7280)}.hh-pay__server[_ngcontent-%COMP%]{margin:.1rem 0 .75rem;font-size:.9rem;color:var(--ion-color-medium, #6b7280)}.hh-pay__split[_ngcontent-%COMP%]{margin:0 0 .75rem;font-size:.95rem;font-weight:700;color:var(--ion-color-primary, #3880ff)}.hh-pay__section[_ngcontent-%COMP%]{margin-top:1rem}.hh-pay__section-title[_ngcontent-%COMP%]{margin:0 0 .4rem;font-size:.78rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--ion-color-medium, #6b7280)}.hh-pay__line[_ngcontent-%COMP%]{padding:.4rem 0;border-bottom:1px solid rgba(0,0,0,.06)}.hh-pay__line-main[_ngcontent-%COMP%]{display:flex;justify-content:space-between;gap:.75rem}.hh-pay__line-name[_ngcontent-%COMP%]{font-weight:500}.hh-pay__line-qty[_ngcontent-%COMP%]{color:var(--ion-color-medium, #6b7280)}.hh-pay__line-price[_ngcontent-%COMP%]{white-space:nowrap;font-variant-numeric:tabular-nums}.hh-pay__line-seat[_ngcontent-%COMP%]{margin-top:.1rem;font-size:.78rem;color:var(--ion-color-medium, #6b7280)}.hh-pay__line-seat[_ngcontent-%COMP%]:empty{display:none}.hh-pay__totals[_ngcontent-%COMP%]   div[_ngcontent-%COMP%]{display:flex;justify-content:space-between;padding:.2rem 0}.hh-pay__paid-line[_ngcontent-%COMP%], .hh-pay__tip-line[_ngcontent-%COMP%]{color:var(--ion-color-success, #2dd36f);font-weight:500}.hh-pay__tip-grid[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem}.hh-pay__tip-chip[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.15rem;min-height:3.25rem;padding:.5rem .4rem;border:1px solid rgba(0,0,0,.18);border-radius:.6rem;background:transparent;color:var(--ion-text-color, #111827);cursor:pointer;-webkit-tap-highlight-color:transparent}.hh-pay__tip-chip[_ngcontent-%COMP%]:disabled{opacity:.5}
1.hh-pay__tip-chip--active[_ngcontent-%COMP%]{border-color:var(--ion-color-primary, #3880ff);background:#3880ff1f;color:var(--ion-color-primary, #3880ff);font-weight:700}.hh-pay__tip-pct[_ngcontent-%COMP%]{font-size:1rem;font-weight:600}.hh-pay__tip-amt[_ngcontent-%COMP%]{font-size:.78rem;color:var(--ion-color-medium, #6b7280)}.hh-pay__tip-custom[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.5rem;margin-top:.6rem}.hh-pay__tip-custom[_ngcontent-%COMP%]   input[_ngcontent-%COMP%]{width:100%;padding:.7rem .85rem;font-size:1.15rem;font-weight:600;border:1px solid rgba(0,0,0,.18);border-radius:.5rem;color:var(--ion-text-color, #111827)}.hh-pay__tip-applied[_ngcontent-%COMP%]{margin:.6rem 0 0;font-size:.85rem;font-weight:600;color:var(--ion-color-success, #2dd36f)}.hh-pay__grand[_ngcontent-%COMP%]{font-weight:700;font-size:1.05rem;border-top:1px solid rgba(0,0,0,.12);margin-top:.25rem;padding-top:.5rem!important}.hh-pay__amount[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.25rem;margin-bottom:.75rem;font-size:.85rem;color:var(--ion-color-medium, #6b7280)}.hh-pay__amount[_ngcontent-%COMP%]   input[_ngcontent-%COMP%]{font-size:1.25rem;font-weight:600;padding:.6rem .75rem;border:1px solid rgba(0,0,0,.18);border-radius:.5rem;color:var(--ion-text-color, #111827)}.hh-pay__btn[_ngcontent-%COMP%]{display:block;width:100%;padding:.95rem 1rem;margin-top:.6rem;border:none;border-radius:.6rem;font-size:1rem;font-weight:600;cursor:pointer}.hh-pay__btn[_ngcontent-%COMP%]:disabled{opacity:.5}.hh-pay__btn--split[_ngcontent-%COMP%]{background:transparent;color:var(--ion-color-primary, #3880ff);border:1px solid var(--ion-color-primary, #3880ff)}.hh-pay__btn--gift[_ngcontent-%COMP%]{background:var(--ion-color-tertiary, #5260ff);color:#fff}.hh-pay__btn--card[_ngcontent-%COMP%]{background:var(--ion-color-primary, #3880ff);color:#fff}.hh-pay__btn--zero[_ngcontent-%COMP%]{background:transparent;color:var(--ion-color-warning-shade, #b8860b);border:1px solid var(--ion-color-warning-shade, #b8860b)}.hh-pay__btn--back[_ngcontent-%COMP%]{background:transparent;color:var(--ion-color-medium, #6b7280);border:1px solid rgba(0,0,0,.18);margin-top:1.25rem}.hh-pay__cash-note[_ngcontent-%COMP%]{margin:.85rem 0 0;font-size:.8rem;line-height:1.35;color:var(--ion-color-medium, #6b7280);text-align:center}.hh-pay__paid[_ngcontent-%COMP%]{margin:0;font-weight:600;color:var(--ion-color-success, #2dd36f)}.hh-pay-confirm[_ngcontent-%COMP%]{position:fixed;inset:0;z-index:1100;display:flex;align-items:center;justify-content:center;padding:1.5rem;background:#020617f0}.hh-pay-confirm__card[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;text-align:center;gap:.5rem;width:100%;max-width:24rem}.hh-pay-confirm__check[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;width:5rem;height:5rem;margin-bottom:.25rem;border-radius:999px;background:#14321f;border:2px solid #22c55e;color:#22c55e;font-size:2.5rem;font-weight:700;line-height:1}.hh-pay-confirm__title[_ngcontent-%COMP%]{font-size:1.35rem;font-weight:700;color:#f1f5f9}.hh-pay-confirm__amount[_ngcontent-%COMP%]{font-size:2rem;font-weight:800;color:#22c55e}.hh-pay-confirm__tip[_ngcontent-%COMP%]{font-size:.95rem;font-weight:600;color:#86efac}.hh-pay-confirm__sub[_ngcontent-%COMP%]{font-size:.9rem;color:#94a3b8}.hh-pay-confirm__print[_ngcontent-%COMP%], .hh-pay-confirm__done[_ngcontent-%COMP%]{display:block;width:100%;padding:1rem;border-radius:.85rem;font-size:1.1rem;font-weight:700;cursor:pointer;-webkit-tap-highlight-color:transparent}.hh-pay-confirm__print[_ngcontent-%COMP%]{margin-top:1.25rem;border:1px solid #475569;background:#1e293b;color:#e2e8f0}.hh-pay-confirm__print[_ngcontent-%COMP%]:active{background:#334155}.hh-pay-confirm__print[_ngcontent-%COMP%]:disabled{opacity:.6}.hh-pay-confirm__done[_ngcontent-%COMP%]{margin-top:.65rem;border:none;background:#22c55e;color:#052e16}.hh-pay-confirm__done[_ngcontent-%COMP%]:active{background:#16a34a}"]})}}return o})();var Sn=(()=>{class o{static{this.\u0275fac=function(t){return new(t||o)}}static{this.\u0275cmp=k({type:o,selectors:[["app-pos-handheld-payment"]],standalone:!1,decls:5,vars:0,consts:[[1,"handheld-stub"],[1,"handheld-stub__hint"],[1,"handheld-stub__note"]],template:function(t,n){t&1&&(a(0,"div",0)(1,"p",1),d(2,"Adyen on-device payment \u2014 blocked on \xA715.G (IPP SDK)."),c(),a(3,"p",2),d(4,"Plan \xA715.F F6."),c()())},styles:['@charset "UTF-8";.handheld-stub[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:32px 24px;min-height:100%;color:#f1f5f9}.handheld-stub[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%]{font-size:1.5rem;font-weight:600;margin:0 0 12px}.handheld-stub__hint[_ngcontent-%COMP%]{font-size:1rem;color:#cbd5e1;margin:0 0 8px}.handheld-stub__note[_ngcontent-%COMP%]{font-size:.8rem;color:#64748b;margin:0;font-family:ui-monospace,Cascadia Code,Fira Code,monospace}.hh-menu__grid[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
1.hh-menu__tile[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;min-height:124px;padding:20px 12px;border:1px solid #334155;border-radius:16px;background:#1e293b;color:#f1f5f9;cursor:pointer;-webkit-tap-highlight-color:transparent}.hh-menu__tile[_ngcontent-%COMP%]:active{background:#334155}.hh-menu__tile[_ngcontent-%COMP%]:disabled{opacity:.6}.hh-menu__icon[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;width:54px;height:54px;border-radius:14px;background:#60a5fa24;color:#60a5fa}.hh-menu__icon[_ngcontent-%COMP%]   svg[_ngcontent-%COMP%]{width:30px;height:30px}.hh-menu__label[_ngcontent-%COMP%]{font-size:1.05rem;font-weight:700;text-align:center}.hh-menu__reset[_ngcontent-%COMP%]{display:block;margin:18px auto 4px;padding:10px 16px;border:1px solid #475569;border-radius:12px;background:transparent;color:#94a3b8;font-size:.9rem;font-weight:600;-webkit-tap-highlight-color:transparent}.hh-menu__reset[_ngcontent-%COMP%]:active{background:#1e293b;color:#fca5a5;border-color:#b91c1c}.hh-page[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:10px;padding:16px;min-height:100%;color:#f1f5f9}.hh-page__heading[_ngcontent-%COMP%]{font-size:1.25rem;font-weight:700;margin:4px 2px 8px}.hh-page__muted[_ngcontent-%COMP%]{color:#94a3b8;font-size:.95rem;margin:8px 2px}.hh-page__error[_ngcontent-%COMP%]{color:#fca5a5;font-size:.95rem;margin:8px 2px}.hh-tile[_ngcontent-%COMP%]{display:flex;align-items:center;gap:12px;width:100%;padding:18px 16px;border:1px solid #334155;border-radius:14px;background:#1e293b;color:#f1f5f9;font-size:1.1rem;font-weight:600;text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent}.hh-tile[_ngcontent-%COMP%]:active{background:#334155}.hh-tile__label[_ngcontent-%COMP%]{flex:1 1 auto}.hh-tile__meta[_ngcontent-%COMP%]{flex:0 0 auto;font-size:.85rem;font-weight:500;color:#94a3b8}.hh-tile__chevron[_ngcontent-%COMP%]{flex:0 0 auto;color:#64748b}.hh-table[_ngcontent-%COMP%]{padding:12px 14px;border-left-width:4px}.hh-table[_ngcontent-%COMP%]:disabled{cursor:default;opacity:.55}.hh-table__seats[_ngcontent-%COMP%]{display:block;font-size:.8rem;font-weight:500;color:#94a3b8}.hh-table__state[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:flex-end;flex:0 0 auto;gap:2px}.hh-table__status[_ngcontent-%COMP%]{font-size:.85rem;font-weight:700;color:#94a3b8}.hh-table__detail[_ngcontent-%COMP%]{font-size:.8rem;font-weight:500;color:#cbd5e1}.hh-table--occupied[_ngcontent-%COMP%]{border-left-color:#38bdf8;background:#172b45}.hh-table--occupied[_ngcontent-%COMP%]   .hh-table__status[_ngcontent-%COMP%]{color:#7dd3fc}.hh-table--paid[_ngcontent-%COMP%]{border-left-color:#22c55e}.hh-table--paid[_ngcontent-%COMP%]   .hh-table__status[_ngcontent-%COMP%]{color:#86efac}.hh-table--bussing[_ngcontent-%COMP%]{border-left-color:#f59e0b}.hh-table--bussing[_ngcontent-%COMP%]   .hh-table__status[_ngcontent-%COMP%]{color:#fcd34d}.hh-cta[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:18px 16px;border:none;border-radius:14px;background:#22c55e;color:#052e16;font-size:1.1rem;font-weight:700;cursor:pointer;-webkit-tap-highlight-color:transparent}.hh-cta[_ngcontent-%COMP%]:active{background:#16a34a}.hh-cta[_ngcontent-%COMP%]:disabled{background:#334155;color:#64748b}.hh-divider[_ngcontent-%COMP%]{display:flex;align-items:center;gap:10px;margin:8px 2px 2px;color:#64748b;font-size:.8rem;text-transform:uppercase;letter-spacing:.04em}.hh-divider[_ngcontent-%COMP%]:before, .hh-divider[_ngcontent-%COMP%]:after{content:"";flex:1 1 auto;height:1px;background:#334155}.hh-order[_ngcontent-%COMP%]{padding-bottom:0}.hh-seg[_ngcontent-%COMP%]{display:flex;gap:6px;margin:4px 0 12px;padding:5px;background:#1e293b;border-radius:12px}.hh-seg__btn[_ngcontent-%COMP%]{flex:1 1 0;min-height:44px;padding:10px 8px;border:none;border-radius:9px;background:transparent;color:#94a3b8;font-size:1rem;font-weight:700;-webkit-tap-highlight-color:transparent}.hh-seg__btn--active[_ngcontent-%COMP%]{background:#0f172a;color:#f1f5f9}.hh-seats[_ngcontent-%COMP%]{display:flex;align-items:center;gap:6px;margin:0 0 12px;padding-bottom:2px;overflow-x:auto;-webkit-overflow-scrolling:touch}.hh-seats[_ngcontent-%COMP%]::-webkit-scrollbar{display:none}.hh-seats__chip[_ngcontent-%COMP%]{flex:0 0 auto;min-width:44px;padding:10px 14px;border:1px solid #334155;border-radius:999px;background:#1e293b;color:#cbd5e1;font-size:.95rem;font-weight:700;-webkit-tap-highlight-color:transparent}.hh-seats__chip--active[_ngcontent-%COMP%]{border-color:#60a5fa;background:#60a5fa2e;color:#f1f5f9}.hh-seats__add[_ngcontent-%COMP%]{flex:0 0 auto;padding:10px 14px;border:1px dashed #475569;border-radius:999px;background:transparent;color:#94a3b8;font-size:.95rem;font-weight:700;white-space:nowrap;-webkit-tap-highlight-color:transparent}.hh-seats__add[_ngcontent-%COMP%]:active{background:#1e293b}.hh-seats__add[_ngcontent-%COMP%]:disabled{opacity:.5}
1.hh-order__search[_ngcontent-%COMP%]{width:100%;padding:12px 14px;margin-bottom:10px;border-radius:12px;border:1px solid #334155;background:#0f172a;color:#f1f5f9;font-size:1rem;outline:none}.hh-order__search[_ngcontent-%COMP%]::placeholder{color:#64748b}.hh-order__group[_ngcontent-%COMP%]{font-size:.8rem;text-transform:uppercase;letter-spacing:.04em;color:#94a3b8;margin:14px 2px 6px}.hh-menu__groups[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:12px}.hh-menu__group[_ngcontent-%COMP%]{min-height:60px;padding:10px 8px;border:1px solid #334155;border-radius:12px;font-size:.95rem;font-weight:700;line-height:1.15;text-align:center;display:flex;align-items:center;justify-content:center;-webkit-tap-highlight-color:transparent}.hh-menu__group[_ngcontent-%COMP%]:active{filter:brightness(1.15)}.hh-menu__group--active[_ngcontent-%COMP%]{box-shadow:inset 0 0 0 3px #ffffffd9;font-weight:800}.hh-menu__items[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.hh-menu__item[_ngcontent-%COMP%]{flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:84px;padding:12px 10px;text-align:center}.hh-menu__item[_ngcontent-%COMP%]   .hh-tile__label[_ngcontent-%COMP%]{flex:0 0 auto;width:100%;line-height:1.15}.hh-menu__item[_ngcontent-%COMP%]   .hh-tile__meta[_ngcontent-%COMP%]{color:inherit;opacity:.8}.hh-order__table[_ngcontent-%COMP%]{margin-left:8px;font-size:.95rem;font-weight:600;color:#60a5fa}.hh-order__item[_ngcontent-%COMP%]{font-size:1rem;padding:14px 16px;margin-bottom:8px}.hh-order__line[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:10px;padding:12px 14px;border:1px solid #334155;border-radius:12px;background:#1e293b;margin-bottom:8px}.hh-order__line--selectable[_ngcontent-%COMP%]{cursor:pointer}.hh-order__line--selected[_ngcontent-%COMP%]{border-color:#60a5fa;background:#60a5fa24}.hh-order__line--held[_ngcontent-%COMP%]{border-color:#d97706;background:#d9770629}
1.hh-order__line--sent[_ngcontent-%COMP%]{opacity:.62}.hh-order__line--ready[_ngcontent-%COMP%]{border-color:#16a34a;background:#16a34a29}.hh-order__line-info[_ngcontent-%COMP%]{display:flex;justify-content:space-between;font-weight:600}.hh-order__line-name[_ngcontent-%COMP%]{flex:1 1 auto;padding-right:8px}.hh-order__line-check[_ngcontent-%COMP%]{margin-right:6px;color:#60a5fa;font-size:1.05rem}.hh-order__line-badge[_ngcontent-%COMP%]{margin-left:8px;padding:1px 7px;border-radius:999px;font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;vertical-align:middle}.hh-order__line-badge--held[_ngcontent-%COMP%]{background:#d9770640;color:#fcd34d}.hh-order__line-badge--sent[_ngcontent-%COMP%]{background:#94a3b838;color:#cbd5e1}.hh-order__line-badge--ready[_ngcontent-%COMP%]{background:#16a34a40;color:#86efac}.hh-order__kds-hint[_ngcontent-%COMP%]{margin:0 0 6px;font-size:.78rem;color:#94a3b8;text-align:center}.hh-order__stepper[_ngcontent-%COMP%]{display:flex;align-items:center;gap:10px}.hh-step[_ngcontent-%COMP%]{width:42px;height:42px;border-radius:10px;border:1px solid #475569;background:#0f172a;color:#f1f5f9;font-size:1.5rem;line-height:1}.hh-step[_ngcontent-%COMP%]:active{background:#334155}.hh-step__qty[_ngcontent-%COMP%]{min-width:26px;text-align:center;font-weight:700}.hh-order__line-actions[_ngcontent-%COMP%]{margin-left:auto;display:flex;align-items:center;gap:14px}.hh-order__mod-btn[_ngcontent-%COMP%]{background:transparent;border:none;color:#60a5fa;font-size:.9rem;font-weight:600}.hh-order__remove[_ngcontent-%COMP%]{background:transparent;border:none;color:#fca5a5;font-size:.9rem}.hh-order__item[_ngcontent-%COMP%]   .hh-tile__meta[_ngcontent-%COMP%]{color:inherit;opacity:.8}.hh-order__footer[_ngcontent-%COMP%]{position:sticky;bottom:0;margin-top:auto;padding:12px 0 6px;background:linear-gradient(180deg,#0f172a66,#0f172a 28%)}.hh-order__totals[_ngcontent-%COMP%]{font-size:.95rem;color:#cbd5e1;margin-bottom:8px}.hh-order__totals[_ngcontent-%COMP%] > div[_ngcontent-%COMP%]{display:flex;justify-content:space-between;padding:2px}.hh-order__grand[_ngcontent-%COMP%]{font-size:1.1rem;font-weight:700;color:#f1f5f9;border-top:1px solid #334155;margin-top:4px;padding-top:6px}.hh-order__paid-line[_ngcontent-%COMP%]{color:#34d399;font-weight:600}.hh-order__balance[_ngcontent-%COMP%]{font-size:1.1rem;font-weight:700;color:#f1f5f9;border-top:1px solid #334155;margin-top:4px;padding-top:6px}.hh-order__kds[_ngcontent-%COMP%]{display:block;margin-bottom:8px}.hh-order__actions[_ngcontent-%COMP%]{display:flex;gap:10px;align-items:stretch}.hh-order__print[_ngcontent-%COMP%]{flex:0 0 auto;padding:14px 12px;border:1px solid #475569;border-radius:14px;background:#1e293b;color:#e2e8f0;font-size:1.05rem;font-weight:700;white-space:nowrap;-webkit-tap-highlight-color:transparent}.hh-order__print[_ngcontent-%COMP%]:active{background:#334155}.hh-order__print[_ngcontent-%COMP%]:disabled{opacity:.6}.hh-order__discount[_ngcontent-%COMP%]{flex:0 0 auto;padding:14px 12px;border:1px solid #475569;border-radius:14px;background:#1e293b;color:#e2e8f0;font-size:1.05rem;font-weight:700;white-space:nowrap;-webkit-tap-highlight-color:transparent}.hh-order__discount[_ngcontent-%COMP%]:active{background:#334155}.hh-order__discount[_ngcontent-%COMP%]:disabled{opacity:.6}.hh-order__pay[_ngcontent-%COMP%]{flex:1 1 auto;width:100%;padding:14px 10px;white-space:nowrap;border:none;border-radius:14px;background:#22c55e;color:#052e16;font-size:1.15rem;font-weight:700}.hh-order__pay[_ngcontent-%COMP%]:active{background:#16a34a}.hh-order__pay[_ngcontent-%COMP%]:disabled{background:#334155;color:#64748b}.hh-order__pay--secondary[_ngcontent-%COMP%]:not(:disabled){border:1px solid #22c55e;background:#1e293b;color:#86efac}.hh-order__pay--secondary[_ngcontent-%COMP%]:not(:disabled):active{background:#0f172a}.hh-list__top[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:10px;margin-bottom:6px}.hh-list__tabs.hh-seg[_ngcontent-%COMP%]{margin:0}.hh-list__tabs[_ngcontent-%COMP%]   .hh-seg__btn[_ngcontent-%COMP%]{padding:10px 4px;font-size:.95rem}.hh-list__actions[_ngcontent-%COMP%]{display:flex;gap:8px}.hh-list__tables[_ngcontent-%COMP%]{flex:1 1 auto;display:flex;align-items:center;justify-content:center;padding:18px 16px;border:none;border-radius:14px;background:#22c55e;color:#052e16;font-size:1.1rem;font-weight:700;-webkit-tap-highlight-color:transparent}.hh-list__tables[_ngcontent-%COMP%]:active{background:#16a34a}.hh-list__new[_ngcontent-%COMP%]{flex:0 0 auto;padding:14px 18px;border:1px solid #475569;border-radius:14px;background:#1e293b;color:#f1f5f9;font-size:1rem;font-weight:600;-webkit-tap-highlight-color:transparent}.hh-list__new[_ngcontent-%COMP%]:active{background:#334155}.hh-list__new[_ngcontent-%COMP%]:disabled{background:#0f172a;color:#64748b}.hh-order-card[_ngcontent-%COMP%]{display:flex;align-items:stretch;gap:12px;width:100%;padding:14px;margin-bottom:8px;border:1px solid #334155;border-radius:14px;background:#1e293b;color:#f1f5f9;text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent}.hh-order-card[_ngcontent-%COMP%]:active{background:#334155}.hh-order-card--voided[_ngcontent-%COMP%]{border-left:3px solid #64748b}.hh-order-card__id[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:flex-start;gap:6px;flex:0 0 auto;min-width:64px}.hh-order-card__num[_ngcontent-%COMP%]{font-size:1.35rem;font-weight:800;line-height:1}.hh-order-card__body[_ngcontent-%COMP%]{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;justify-content:center;gap:4px}.hh-order-card__title[_ngcontent-%COMP%]{font-size:1rem;font-weight:600;line-height:1.2;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.hh-order-card__meta[_ngcontent-%COMP%]{font-size:.8rem;color:#94a3b8}.hh-order-card__approval[_ngcontent-%COMP%]{display:flex;gap:8px;margin-top:8px}.hh-approve-btn[_ngcontent-%COMP%], .hh-reject-btn[_ngcontent-%COMP%]{padding:6px 14px;border-radius:8px;font-size:.8rem;font-weight:700;border:none;cursor:pointer}.hh-approve-btn[_ngcontent-%COMP%]:disabled, .hh-reject-btn[_ngcontent-%COMP%]:disabled{opacity:.5}
1.hh-approve-btn[_ngcontent-%COMP%]{background:#059669;color:#fff}.hh-reject-btn[_ngcontent-%COMP%]{background:#ef444426;color:#f87171;border:1px solid rgba(239,68,68,.4)}.hh-order-card__amounts[_ngcontent-%COMP%]{flex:0 0 auto;align-self:center;display:flex;flex-direction:column;align-items:flex-end;gap:2px}.hh-order-card__total[_ngcontent-%COMP%]{font-size:1.05rem;font-weight:700}.hh-order-card__total--struck[_ngcontent-%COMP%]{text-decoration:line-through;color:#94a3b8}.hh-order-card__tip[_ngcontent-%COMP%]{font-size:.75rem;font-weight:600;color:#34d399;white-space:nowrap}.hh-badge[_ngcontent-%COMP%]{font-size:.62rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;padding:2px 7px;border-radius:9px;color:#fff}.hh-badge--void[_ngcontent-%COMP%]{background:#475569;color:#cbd5e1}.hh-badge--cash[_ngcontent-%COMP%]{background:#059669}.hh-badge--split[_ngcontent-%COMP%]{background:#4f46e5}.hh-mod[_ngcontent-%COMP%]{position:fixed;inset:0;z-index:1000;background:#020617b3;display:flex;flex-direction:column;justify-content:flex-end}.hh-mod__sheet[_ngcontent-%COMP%]{display:flex;flex-direction:column;max-height:92%;background:#0f172a;border-top:1px solid #334155;border-top-left-radius:18px;border-top-right-radius:18px;color:#f1f5f9}.hh-mod__header[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px;border-bottom:1px solid #1e293b}.hh-mod__title[_ngcontent-%COMP%]{font-size:1.15rem;font-weight:700}.hh-mod__close[_ngcontent-%COMP%]{flex:0 0 auto;width:40px;height:40px;border:none;background:transparent;color:#94a3b8;font-size:1.3rem}.hh-mod__body[_ngcontent-%COMP%]{padding:12px 16px;overflow-y:auto}.hh-mod__special[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%;margin-bottom:16px;padding:10px 14px;border:1px dashed #475569;border-radius:10px;background:#94a3b814;color:#e2e8f0;text-align:left}.hh-mod__special[_ngcontent-%COMP%]:disabled{opacity:.5}.hh-mod__special--set[_ngcontent-%COMP%]{border-style:solid;border-color:#f59e0b;background:#f59e0b1f}.hh-mod__special-label[_ngcontent-%COMP%]{font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:#94a3b8}.hh-mod__special-value[_ngcontent-%COMP%]{font-size:.95rem;line-height:1.3;word-break:break-word}.hh-mod__group[_ngcontent-%COMP%]{margin-bottom:16px}.hh-mod__group-name[_ngcontent-%COMP%]{display:flex;align-items:baseline;justify-content:space-between;gap:8px;font-size:1rem;font-weight:700;margin-bottom:8px}.hh-mod__group-hint[_ngcontent-%COMP%]{flex:0 0 auto;font-size:.72rem;font-weight:500;color:#94a3b8;text-transform:uppercase;letter-spacing:.03em}.hh-mod__options[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-bottom:4px}.hh-mod__opt[_ngcontent-%COMP%]{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:64px;padding:12px 10px;border:1px solid #334155;border-radius:12px;background:#1e293b;color:#f1f5f9;font-size:1rem;font-weight:600;text-align:center;line-height:1.15}.hh-mod__opt--selected[_ngcontent-%COMP%]{border-color:#22c55e;background:#14321f}.hh-mod__opt-check[_ngcontent-%COMP%]{position:absolute;top:6px;right:8px;color:#22c55e;font-weight:800;font-size:.85rem}.hh-mod__opt-name[_ngcontent-%COMP%]{width:100%}.hh-mod__opt-price[_ngcontent-%COMP%]{color:#94a3b8;font-size:.82rem;font-weight:500}.hh-mod__footer[_ngcontent-%COMP%]{display:flex;flex-direction:row;gap:12px;padding:12px 16px;border-top:1px solid #1e293b}.hh-mod__btn[_ngcontent-%COMP%]{flex:1 1 0;display:inline-flex;align-items:center;justify-content:center;padding:16px;border-radius:12px;font-size:1.05rem;font-weight:700;line-height:1;cursor:pointer;-webkit-tap-highlight-color:transparent}.hh-mod__btn--cancel[_ngcontent-%COMP%]{border:1px solid #475569;background:#1e293b;color:#e2e8f0}.hh-mod__btn--save[_ngcontent-%COMP%]{border:1px solid #22c55e;background:#22c55e;color:#052e16}.hh-mod__btn[_ngcontent-%COMP%]:disabled{opacity:.6}.hh-mod__premods[_ngcontent-%COMP%]{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:6px;margin:0 0 6px}.hh-mod__premod[_ngcontent-%COMP%]{padding:7px 13px;border:1px solid #475569;border-radius:999px;background:#0f172a;color:#cbd5e1;font-size:.85rem;font-weight:600}.hh-mod__premod--active[_ngcontent-%COMP%]{border-color:#22c55e;background:#14321f;color:#f1f5f9}.hh-mod__premod[_ngcontent-%COMP%]:disabled{opacity:.6}.hh-order__line-mods[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:2px 14px;padding-left:2px}.hh-order__line-mod[_ngcontent-%COMP%]{font-size:.82rem;line-height:1.35;color:#94a3b8}.hh-order__line-mod[_ngcontent-%COMP%]:before{content:"\\b7  ";color:#64748b}.hh-order__line-note[_ngcontent-%COMP%]{margin-top:2px;padding-left:2px;font-size:.82rem;font-style:italic;line-height:1.35;color:#fbbf24;word-break:break-word}.hh-pay-confirm[_ngcontent-%COMP%]{position:fixed;inset:0;z-index:1100;background:#020617eb;display:flex;align-items:center;justify-content:center;padding:24px}.hh-pay-confirm__card[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;width:100%;max-width:420px}.hh-pay-confirm__check[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;width:84px;height:84px;margin-bottom:6px;border-radius:999px;background:#14321f;border:2px solid #22c55e;color:#22c55e;font-size:2.6rem;font-weight:700;line-height:1}.hh-pay-confirm__title[_ngcontent-%COMP%]{font-size:1.4rem;font-weight:700;color:#f1f5f9}
1.hh-pay-confirm__amount[_ngcontent-%COMP%]{font-size:2.2rem;font-weight:800;color:#22c55e}.hh-pay-confirm__tip[_ngcontent-%COMP%]{font-size:1rem;font-weight:600;color:#86efac}.hh-pay-confirm__sub[_ngcontent-%COMP%]{font-size:.95rem;color:#94a3b8}.hh-pay-confirm__print[_ngcontent-%COMP%]{width:100%;margin-top:18px;padding:16px;border:1px solid #475569;border-radius:14px;background:#1e293b;color:#e2e8f0;font-size:1.1rem;font-weight:700}.hh-pay-confirm__print[_ngcontent-%COMP%]:active{background:#334155}.hh-pay-confirm__print[_ngcontent-%COMP%]:disabled{opacity:.6}.hh-pay-confirm__done[_ngcontent-%COMP%]{width:100%;margin-top:10px;padding:16px;border:none;border-radius:14px;background:#22c55e;color:#052e16;font-size:1.15rem;font-weight:700}.hh-pay-confirm__done[_ngcontent-%COMP%]:active{background:#16a34a}.hh-tips__top[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:flex-end;gap:10px}.hh-tips__top[_ngcontent-%COMP%]   .hh-page__heading[_ngcontent-%COMP%]{margin:0}.hh-tips__refresh[_ngcontent-%COMP%]{padding:8px 14px;border:1px solid #334155;border-radius:10px;background:#1e293b;color:#e2e8f0;font-size:.9rem;font-weight:600}.hh-tips__refresh[_ngcontent-%COMP%]:disabled{opacity:.6}.hh-tips__cards[_ngcontent-%COMP%]{display:grid;grid-template-columns:1fr 1fr;gap:8px}.hh-tips__card[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:4px;padding:12px;border:1px solid #334155;border-radius:12px;background:#0f172a}.hh-tips__card-label[_ngcontent-%COMP%]{color:#94a3b8;font-size:.78rem}.hh-tips__card-value[_ngcontent-%COMP%]{font-size:1.2rem;font-weight:700}.hh-tips__card-value--good[_ngcontent-%COMP%]{color:#34d399}.hh-tips__card-value--warn[_ngcontent-%COMP%]{color:#fcd34d}.hh-tips__pool[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:4px;padding:10px 12px;border:1px solid #334155;border-radius:12px;background:#0f172a}.hh-tips__pool-line[_ngcontent-%COMP%]{display:flex;justify-content:space-between;font-size:.9rem;color:#cbd5e1}.hh-tips__pool-out[_ngcontent-%COMP%]{color:#fcd34d;font-weight:600}.hh-tips__pool-in[_ngcontent-%COMP%]{color:#34d399;font-weight:600}.hh-tips__table[_ngcontent-%COMP%]{color:#94a3b8;font-size:.85rem}.hh-tips__check-money[_ngcontent-%COMP%]{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.hh-tips__check-tip[_ngcontent-%COMP%]{font-weight:700;color:#34d399}.hh-tips__check-grat[_ngcontent-%COMP%]{color:#a5b4fc;font-size:.85rem}.hh-tips__check-total[_ngcontent-%COMP%]{color:#64748b;font-size:.85rem}.hh-tips__pay[_ngcontent-%COMP%]{margin-left:auto;padding:6px 14px;border:none;border-radius:10px;background:#22c55e;color:#052e16;font-weight:700}.hh-tips__pay[_ngcontent-%COMP%]:active{background:#16a34a}']})}}return o})();var zn=(()=>{class o{static{this.\u0275fac=function(t){return new(t||o)}}static{this.\u0275cmp=k({type:o,selectors:[["app-pos-handheld-receipt"]],standalone:!1,decls:5,vars:0,consts:[[1,"handheld-stub"],[1,"handheld-stub__hint"],[1,"handheld-stub__note"]],template:function(t,n){t&1&&(a(0,"div",0)(1,"p",1),d(2,"Receipt preview + integrated printer \u2014 coming soon."),c(),a(3,"p",2),d(4,"Plan \xA715.F F7."),c()())},styles:['@charset "UTF-8";.handheld-stub[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:32px 24px;min-height:100%;color:#f1f5f9}.handheld-stub[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%]{font-size:1.5rem;font-weight:600;margin:0 0 12px}.handheld-stub__hint[_ngcontent-%COMP%]{font-size:1rem;color:#cbd5e1;margin:0 0 8px}.handheld-stub__note[_ngcontent-%COMP%]{font-size:.8rem;color:#64748b;margin:0;font-family:ui-monospace,Cascadia Code,Fira Code,monospace}.hh-menu__grid[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.hh-menu__tile[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;min-height:124px;padding:20px 12px;border:1px solid #334155;border-radius:16px;background:#1e293b;color:#f1f5f9;cursor:pointer;-webkit-tap-highlight-color:transparent}.hh-menu__tile[_ngcontent-%COMP%]:active{background:#334155}
1.hh-menu__tile[_ngcontent-%COMP%]:disabled{opacity:.6}.hh-menu__icon[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;width:54px;height:54px;border-radius:14px;background:#60a5fa24;color:#60a5fa}.hh-menu__icon[_ngcontent-%COMP%]   svg[_ngcontent-%COMP%]{width:30px;height:30px}.hh-menu__label[_ngcontent-%COMP%]{font-size:1.05rem;font-weight:700;text-align:center}.hh-menu__reset[_ngcontent-%COMP%]{display:block;margin:18px auto 4px;padding:10px 16px;border:1px solid #475569;border-radius:12px;background:transparent;color:#94a3b8;font-size:.9rem;font-weight:600;-webkit-tap-highlight-color:transparent}.hh-menu__reset[_ngcontent-%COMP%]:active{background:#1e293b;color:#fca5a5;border-color:#b91c1c}.hh-page[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:10px;padding:16px;min-height:100%;color:#f1f5f9}.hh-page__heading[_ngcontent-%COMP%]{font-size:1.25rem;font-weight:700;margin:4px 2px 8px}.hh-page__muted[_ngcontent-%COMP%]{color:#94a3b8;font-size:.95rem;margin:8px 2px}.hh-page__error[_ngcontent-%COMP%]{color:#fca5a5;font-size:.95rem;margin:8px 2px}.hh-tile[_ngcontent-%COMP%]{display:flex;align-items:center;gap:12px;width:100%;padding:18px 16px;border:1px solid #334155;border-radius:14px;background:#1e293b;color:#f1f5f9;font-size:1.1rem;font-weight:600;text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent}.hh-tile[_ngcontent-%COMP%]:active{background:#334155}.hh-tile__label[_ngcontent-%COMP%]{flex:1 1 auto}.hh-tile__meta[_ngcontent-%COMP%]{flex:0 0 auto;font-size:.85rem;font-weight:500;color:#94a3b8}.hh-tile__chevron[_ngcontent-%COMP%]{flex:0 0 auto;color:#64748b}.hh-table[_ngcontent-%COMP%]{padding:12px 14px;border-left-width:4px}.hh-table[_ngcontent-%COMP%]:disabled{cursor:default;opacity:.55}.hh-table__seats[_ngcontent-%COMP%]{display:block;font-size:.8rem;font-weight:500;color:#94a3b8}.hh-table__state[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:flex-end;flex:0 0 auto;gap:2px}.hh-table__status[_ngcontent-%COMP%]{font-size:.85rem;font-weight:700;color:#94a3b8}.hh-table__detail[_ngcontent-%COMP%]{font-size:.8rem;font-weight:500;color:#cbd5e1}.hh-table--occupied[_ngcontent-%COMP%]{border-left-color:#38bdf8;background:#172b45}.hh-table--occupied[_ngcontent-%COMP%]   .hh-table__status[_ngcontent-%COMP%]{color:#7dd3fc}.hh-table--paid[_ngcontent-%COMP%]{border-left-color:#22c55e}.hh-table--paid[_ngcontent-%COMP%]   .hh-table__status[_ngcontent-%COMP%]{color:#86efac}.hh-table--bussing[_ngcontent-%COMP%]{border-left-color:#f59e0b}.hh-table--bussing[_ngcontent-%COMP%]   .hh-table__status[_ngcontent-%COMP%]{color:#fcd34d}.hh-cta[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:18px 16px;border:none;border-radius:14px;background:#22c55e;color:#052e16;font-size:1.1rem;font-weight:700;cursor:pointer;-webkit-tap-highlight-color:transparent}.hh-cta[_ngcontent-%COMP%]:active{background:#16a34a}.hh-cta[_ngcontent-%COMP%]:disabled{background:#334155;color:#64748b}.hh-divider[_ngcontent-%COMP%]{display:flex;align-items:center;gap:10px;margin:8px 2px 2px;color:#64748b;font-size:.8rem;text-transform:uppercase;letter-spacing:.04em}.hh-divider[_ngcontent-%COMP%]:before, .hh-divider[_ngcontent-%COMP%]:after{content:"";flex:1 1 auto;height:1px;background:#334155}.hh-order[_ngcontent-%COMP%]{padding-bottom:0}.hh-seg[_ngcontent-%COMP%]{display:flex;gap:6px;margin:4px 0 12px;padding:5px;background:#1e293b;border-radius:12px}.hh-seg__btn[_ngcontent-%COMP%]{flex:1 1 0;min-height:44px;padding:10px 8px;border:none;border-radius:9px;background:transparent;color:#94a3b8;font-size:1rem;font-weight:700;-webkit-tap-highlight-color:transparent}.hh-seg__btn--active[_ngcontent-%COMP%]{background:#0f172a;color:#f1f5f9}.hh-seats[_ngcontent-%COMP%]{display:flex;align-items:center;gap:6px;margin:0 0 12px;padding-bottom:2px;overflow-x:auto;-webkit-overflow-scrolling:touch}.hh-seats[_ngcontent-%COMP%]::-webkit-scrollbar{display:none}.hh-seats__chip[_ngcontent-%COMP%]{flex:0 0 auto;min-width:44px;padding:10px 14px;border:1px solid #334155;border-radius:999px;background:#1e293b;color:#cbd5e1;font-size:.95rem;font-weight:700;-webkit-tap-highlight-color:transparent}.hh-seats__chip--active[_ngcontent-%COMP%]{border-color:#60a5fa;background:#60a5fa2e;color:#f1f5f9}.hh-seats__add[_ngcontent-%COMP%]{flex:0 0 auto;padding:10px 14px;border:1px dashed #475569;border-radius:999px;background:transparent;color:#94a3b8;font-size:.95rem;font-weight:700;white-space:nowrap;-webkit-tap-highlight-color:transparent}.hh-seats__add[_ngcontent-%COMP%]:active{background:#1e293b}.hh-seats__add[_ngcontent-%COMP%]:disabled{opacity:.5}
1.hh-order__search[_ngcontent-%COMP%]{width:100%;padding:12px 14px;margin-bottom:10px;border-radius:12px;border:1px solid #334155;background:#0f172a;color:#f1f5f9;font-size:1rem;outline:none}.hh-order__search[_ngcontent-%COMP%]::placeholder{color:#64748b}.hh-order__group[_ngcontent-%COMP%]{font-size:.8rem;text-transform:uppercase;letter-spacing:.04em;color:#94a3b8;margin:14px 2px 6px}.hh-menu__groups[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:12px}.hh-menu__group[_ngcontent-%COMP%]{min-height:60px;padding:10px 8px;border:1px solid #334155;border-radius:12px;font-size:.95rem;font-weight:700;line-height:1.15;text-align:center;display:flex;align-items:center;justify-content:center;-webkit-tap-highlight-color:transparent}.hh-menu__group[_ngcontent-%COMP%]:active{filter:brightness(1.15)}.hh-menu__group--active[_ngcontent-%COMP%]{box-shadow:inset 0 0 0 3px #ffffffd9;font-weight:800}.hh-menu__items[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.hh-menu__item[_ngcontent-%COMP%]{flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:84px;padding:12px 10px;text-align:center}.hh-menu__item[_ngcontent-%COMP%]   .hh-tile__label[_ngcontent-%COMP%]{flex:0 0 auto;width:100%;line-height:1.15}.hh-menu__item[_ngcontent-%COMP%]   .hh-tile__meta[_ngcontent-%COMP%]{color:inherit;opacity:.8}.hh-order__table[_ngcontent-%COMP%]{margin-left:8px;font-size:.95rem;font-weight:600;color:#60a5fa}.hh-order__item[_ngcontent-%COMP%]{font-size:1rem;padding:14px 16px;margin-bottom:8px}.hh-order__line[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:10px;padding:12px 14px;border:1px solid #334155;border-radius:12px;background:#1e293b;margin-bottom:8px}.hh-order__line--selectable[_ngcontent-%COMP%]{cursor:pointer}.hh-order__line--selected[_ngcontent-%COMP%]{border-color:#60a5fa;background:#60a5fa24}.hh-order__line--held[_ngcontent-%COMP%]{border-color:#d97706;background:#d9770629}
1.hh-order__line--sent[_ngcontent-%COMP%]{opacity:.62}.hh-order__line--ready[_ngcontent-%COMP%]{border-color:#16a34a;background:#16a34a29}.hh-order__line-info[_ngcontent-%COMP%]{display:flex;justify-content:space-between;font-weight:600}.hh-order__line-name[_ngcontent-%COMP%]{flex:1 1 auto;padding-right:8px}.hh-order__line-check[_ngcontent-%COMP%]{margin-right:6px;color:#60a5fa;font-size:1.05rem}.hh-order__line-badge[_ngcontent-%COMP%]{margin-left:8px;padding:1px 7px;border-radius:999px;font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;vertical-align:middle}.hh-order__line-badge--held[_ngcontent-%COMP%]{background:#d9770640;color:#fcd34d}.hh-order__line-badge--sent[_ngcontent-%COMP%]{background:#94a3b838;color:#cbd5e1}.hh-order__line-badge--ready[_ngcontent-%COMP%]{background:#16a34a40;color:#86efac}.hh-order__kds-hint[_ngcontent-%COMP%]{margin:0 0 6px;font-size:.78rem;color:#94a3b8;text-align:center}.hh-order__stepper[_ngcontent-%COMP%]{display:flex;align-items:center;gap:10px}.hh-step[_ngcontent-%COMP%]{width:42px;height:42px;border-radius:10px;border:1px solid #475569;background:#0f172a;color:#f1f5f9;font-size:1.5rem;line-height:1}.hh-step[_ngcontent-%COMP%]:active{background:#334155}.hh-step__qty[_ngcontent-%COMP%]{min-width:26px;text-align:center;font-weight:700}.hh-order__line-actions[_ngcontent-%COMP%]{margin-left:auto;display:flex;align-items:center;gap:14px}.hh-order__mod-btn[_ngcontent-%COMP%]{background:transparent;border:none;color:#60a5fa;font-size:.9rem;font-weight:600}.hh-order__remove[_ngcontent-%COMP%]{background:transparent;border:none;color:#fca5a5;font-size:.9rem}.hh-order__item[_ngcontent-%COMP%]   .hh-tile__meta[_ngcontent-%COMP%]{color:inherit;opacity:.8}.hh-order__footer[_ngcontent-%COMP%]{position:sticky;bottom:0;margin-top:auto;padding:12px 0 6px;background:linear-gradient(180deg,#0f172a66,#0f172a 28%)}.hh-order__totals[_ngcontent-%COMP%]{font-size:.95rem;color:#cbd5e1;margin-bottom:8px}.hh-order__totals[_ngcontent-%COMP%] > div[_ngcontent-%COMP%]{display:flex;justify-content:space-between;padding:2px}.hh-order__grand[_ngcontent-%COMP%]{font-size:1.1rem;font-weight:700;color:#f1f5f9;border-top:1px solid #334155;margin-top:4px;padding-top:6px}.hh-order__paid-line[_ngcontent-%COMP%]{color:#34d399;font-weight:600}.hh-order__balance[_ngcontent-%COMP%]{font-size:1.1rem;font-weight:700;color:#f1f5f9;border-top:1px solid #334155;margin-top:4px;padding-top:6px}.hh-order__kds[_ngcontent-%COMP%]{display:block;margin-bottom:8px}.hh-order__actions[_ngcontent-%COMP%]{display:flex;gap:10px;align-items:stretch}.hh-order__print[_ngcontent-%COMP%]{flex:0 0 auto;padding:14px 12px;border:1px solid #475569;border-radius:14px;background:#1e293b;color:#e2e8f0;font-size:1.05rem;font-weight:700;white-space:nowrap;-webkit-tap-highlight-color:transparent}.hh-order__print[_ngcontent-%COMP%]:active{background:#334155}.hh-order__print[_ngcontent-%COMP%]:disabled{opacity:.6}.hh-order__discount[_ngcontent-%COMP%]{flex:0 0 auto;padding:14px 12px;border:1px solid #475569;border-radius:14px;background:#1e293b;color:#e2e8f0;font-size:1.05rem;font-weight:700;white-space:nowrap;-webkit-tap-highlight-color:transparent}.hh-order__discount[_ngcontent-%COMP%]:active{background:#334155}.hh-order__discount[_ngcontent-%COMP%]:disabled{opacity:.6}.hh-order__pay[_ngcontent-%COMP%]{flex:1 1 auto;width:100%;padding:14px 10px;white-space:nowrap;border:none;border-radius:14px;background:#22c55e;color:#052e16;font-size:1.15rem;font-weight:700}.hh-order__pay[_ngcontent-%COMP%]:active{background:#16a34a}.hh-order__pay[_ngcontent-%COMP%]:disabled{background:#334155;color:#64748b}.hh-order__pay--secondary[_ngcontent-%COMP%]:not(:disabled){border:1px solid #22c55e;background:#1e293b;color:#86efac}.hh-order__pay--secondary[_ngcontent-%COMP%]:not(:disabled):active{background:#0f172a}.hh-list__top[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:10px;margin-bottom:6px}.hh-list__tabs.hh-seg[_ngcontent-%COMP%]{margin:0}.hh-list__tabs[_ngcontent-%COMP%]   .hh-seg__btn[_ngcontent-%COMP%]{padding:10px 4px;font-size:.95rem}.hh-list__actions[_ngcontent-%COMP%]{display:flex;gap:8px}.hh-list__tables[_ngcontent-%COMP%]{flex:1 1 auto;display:flex;align-items:center;justify-content:center;padding:18px 16px;border:none;border-radius:14px;background:#22c55e;color:#052e16;font-size:1.1rem;font-weight:700;-webkit-tap-highlight-color:transparent}.hh-list__tables[_ngcontent-%COMP%]:active{background:#16a34a}.hh-list__new[_ngcontent-%COMP%]{flex:0 0 auto;padding:14px 18px;border:1px solid #475569;border-radius:14px;background:#1e293b;color:#f1f5f9;font-size:1rem;font-weight:600;-webkit-tap-highlight-color:transparent}.hh-list__new[_ngcontent-%COMP%]:active{background:#334155}.hh-list__new[_ngcontent-%COMP%]:disabled{background:#0f172a;color:#64748b}.hh-order-card[_ngcontent-%COMP%]{display:flex;align-items:stretch;gap:12px;width:100%;padding:14px;margin-bottom:8px;border:1px solid #334155;border-radius:14px;background:#1e293b;color:#f1f5f9;text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent}.hh-order-card[_ngcontent-%COMP%]:active{background:#334155}.hh-order-card--voided[_ngcontent-%COMP%]{border-left:3px solid #64748b}.hh-order-card__id[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:flex-start;gap:6px;flex:0 0 auto;min-width:64px}.hh-order-card__num[_ngcontent-%COMP%]{font-size:1.35rem;font-weight:800;line-height:1}.hh-order-card__body[_ngcontent-%COMP%]{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;justify-content:center;gap:4px}.hh-order-card__title[_ngcontent-%COMP%]{font-size:1rem;font-weight:600;line-height:1.2;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.hh-order-card__meta[_ngcontent-%COMP%]{font-size:.8rem;color:#94a3b8}.hh-order-card__approval[_ngcontent-%COMP%]{display:flex;gap:8px;margin-top:8px}.hh-approve-btn[_ngcontent-%COMP%], .hh-reject-btn[_ngcontent-%COMP%]{padding:6px 14px;border-radius:8px;font-size:.8rem;font-weight:700;border:none;cursor:pointer}.hh-approve-btn[_ngcontent-%COMP%]:disabled, .hh-reject-btn[_ngcontent-%COMP%]:disabled{opacity:.5}
1.hh-approve-btn[_ngcontent-%COMP%]{background:#059669;color:#fff}.hh-reject-btn[_ngcontent-%COMP%]{background:#ef444426;color:#f87171;border:1px solid rgba(239,68,68,.4)}.hh-order-card__amounts[_ngcontent-%COMP%]{flex:0 0 auto;align-self:center;display:flex;flex-direction:column;align-items:flex-end;gap:2px}.hh-order-card__total[_ngcontent-%COMP%]{font-size:1.05rem;font-weight:700}.hh-order-card__total--struck[_ngcontent-%COMP%]{text-decoration:line-through;color:#94a3b8}.hh-order-card__tip[_ngcontent-%COMP%]{font-size:.75rem;font-weight:600;color:#34d399;white-space:nowrap}.hh-badge[_ngcontent-%COMP%]{font-size:.62rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;padding:2px 7px;border-radius:9px;color:#fff}.hh-badge--void[_ngcontent-%COMP%]{background:#475569;color:#cbd5e1}.hh-badge--cash[_ngcontent-%COMP%]{background:#059669}.hh-badge--split[_ngcontent-%COMP%]{background:#4f46e5}.hh-mod[_ngcontent-%COMP%]{position:fixed;inset:0;z-index:1000;background:#020617b3;display:flex;flex-direction:column;justify-content:flex-end}.hh-mod__sheet[_ngcontent-%COMP%]{display:flex;flex-direction:column;max-height:92%;background:#0f172a;border-top:1px solid #334155;border-top-left-radius:18px;border-top-right-radius:18px;color:#f1f5f9}.hh-mod__header[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px;border-bottom:1px solid #1e293b}.hh-mod__title[_ngcontent-%COMP%]{font-size:1.15rem;font-weight:700}.hh-mod__close[_ngcontent-%COMP%]{flex:0 0 auto;width:40px;height:40px;border:none;background:transparent;color:#94a3b8;font-size:1.3rem}.hh-mod__body[_ngcontent-%COMP%]{padding:12px 16px;overflow-y:auto}.hh-mod__special[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%;margin-bottom:16px;padding:10px 14px;border:1px dashed #475569;border-radius:10px;background:#94a3b814;color:#e2e8f0;text-align:left}.hh-mod__special[_ngcontent-%COMP%]:disabled{opacity:.5}.hh-mod__special--set[_ngcontent-%COMP%]{border-style:solid;border-color:#f59e0b;background:#f59e0b1f}.hh-mod__special-label[_ngcontent-%COMP%]{font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:#94a3b8}.hh-mod__special-value[_ngcontent-%COMP%]{font-size:.95rem;line-height:1.3;word-break:break-word}.hh-mod__group[_ngcontent-%COMP%]{margin-bottom:16px}.hh-mod__group-name[_ngcontent-%COMP%]{display:flex;align-items:baseline;justify-content:space-between;gap:8px;font-size:1rem;font-weight:700;margin-bottom:8px}.hh-mod__group-hint[_ngcontent-%COMP%]{flex:0 0 auto;font-size:.72rem;font-weight:500;color:#94a3b8;text-transform:uppercase;letter-spacing:.03em}.hh-mod__options[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-bottom:4px}.hh-mod__opt[_ngcontent-%COMP%]{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:64px;padding:12px 10px;border:1px solid #334155;border-radius:12px;background:#1e293b;color:#f1f5f9;font-size:1rem;font-weight:600;text-align:center;line-height:1.15}.hh-mod__opt--selected[_ngcontent-%COMP%]{border-color:#22c55e;background:#14321f}.hh-mod__opt-check[_ngcontent-%COMP%]{position:absolute;top:6px;right:8px;color:#22c55e;font-weight:800;font-size:.85rem}.hh-mod__opt-name[_ngcontent-%COMP%]{width:100%}.hh-mod__opt-price[_ngcontent-%COMP%]{color:#94a3b8;font-size:.82rem;font-weight:500}.hh-mod__footer[_ngcontent-%COMP%]{display:flex;flex-direction:row;gap:12px;padding:12px 16px;border-top:1px solid #1e293b}.hh-mod__btn[_ngcontent-%COMP%]{flex:1 1 0;display:inline-flex;align-items:center;justify-content:center;padding:16px;border-radius:12px;font-size:1.05rem;font-weight:700;line-height:1;cursor:pointer;-webkit-tap-highlight-color:transparent}.hh-mod__btn--cancel[_ngcontent-%COMP%]{border:1px solid #475569;background:#1e293b;color:#e2e8f0}.hh-mod__btn--save[_ngcontent-%COMP%]{border:1px solid #22c55e;background:#22c55e;color:#052e16}.hh-mod__btn[_ngcontent-%COMP%]:disabled{opacity:.6}.hh-mod__premods[_ngcontent-%COMP%]{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:6px;margin:0 0 6px}.hh-mod__premod[_ngcontent-%COMP%]{padding:7px 13px;border:1px solid #475569;border-radius:999px;background:#0f172a;color:#cbd5e1;font-size:.85rem;font-weight:600}.hh-mod__premod--active[_ngcontent-%COMP%]{border-color:#22c55e;background:#14321f;color:#f1f5f9}.hh-mod__premod[_ngcontent-%COMP%]:disabled{opacity:.6}.hh-order__line-mods[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:2px 14px;padding-left:2px}.hh-order__line-mod[_ngcontent-%COMP%]{font-size:.82rem;line-height:1.35;color:#94a3b8}.hh-order__line-mod[_ngcontent-%COMP%]:before{content:"\\b7  ";color:#64748b}.hh-order__line-note[_ngcontent-%COMP%]{margin-top:2px;padding-left:2px;font-size:.82rem;font-style:italic;line-height:1.35;color:#fbbf24;word-break:break-word}.hh-pay-confirm[_ngcontent-%COMP%]{position:fixed;inset:0;z-index:1100;background:#020617eb;display:flex;align-items:center;justify-content:center;padding:24px}.hh-pay-confirm__card[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;width:100%;max-width:420px}.hh-pay-confirm__check[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;width:84px;height:84px;margin-bottom:6px;border-radius:999px;background:#14321f;border:2px solid #22c55e;color:#22c55e;font-size:2.6rem;font-weight:700;line-height:1}.hh-pay-confirm__title[_ngcontent-%COMP%]{font-size:1.4rem;font-weight:700;color:#f1f5f9}
1.hh-pay-confirm__amount[_ngcontent-%COMP%]{font-size:2.2rem;font-weight:800;color:#22c55e}.hh-pay-confirm__tip[_ngcontent-%COMP%]{font-size:1rem;font-weight:600;color:#86efac}.hh-pay-confirm__sub[_ngcontent-%COMP%]{font-size:.95rem;color:#94a3b8}.hh-pay-confirm__print[_ngcontent-%COMP%]{width:100%;margin-top:18px;padding:16px;border:1px solid #475569;border-radius:14px;background:#1e293b;color:#e2e8f0;font-size:1.1rem;font-weight:700}.hh-pay-confirm__print[_ngcontent-%COMP%]:active{background:#334155}.hh-pay-confirm__print[_ngcontent-%COMP%]:disabled{opacity:.6}.hh-pay-confirm__done[_ngcontent-%COMP%]{width:100%;margin-top:10px;padding:16px;border:none;border-radius:14px;background:#22c55e;color:#052e16;font-size:1.15rem;font-weight:700}.hh-pay-confirm__done[_ngcontent-%COMP%]:active{background:#16a34a}.hh-tips__top[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:flex-end;gap:10px}.hh-tips__top[_ngcontent-%COMP%]   .hh-page__heading[_ngcontent-%COMP%]{margin:0}.hh-tips__refresh[_ngcontent-%COMP%]{padding:8px 14px;border:1px solid #334155;border-radius:10px;background:#1e293b;color:#e2e8f0;font-size:.9rem;font-weight:600}.hh-tips__refresh[_ngcontent-%COMP%]:disabled{opacity:.6}.hh-tips__cards[_ngcontent-%COMP%]{display:grid;grid-template-columns:1fr 1fr;gap:8px}.hh-tips__card[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:4px;padding:12px;border:1px solid #334155;border-radius:12px;background:#0f172a}.hh-tips__card-label[_ngcontent-%COMP%]{color:#94a3b8;font-size:.78rem}.hh-tips__card-value[_ngcontent-%COMP%]{font-size:1.2rem;font-weight:700}.hh-tips__card-value--good[_ngcontent-%COMP%]{color:#34d399}.hh-tips__card-value--warn[_ngcontent-%COMP%]{color:#fcd34d}.hh-tips__pool[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:4px;padding:10px 12px;border:1px solid #334155;border-radius:12px;background:#0f172a}.hh-tips__pool-line[_ngcontent-%COMP%]{display:flex;justify-content:space-between;font-size:.9rem;color:#cbd5e1}.hh-tips__pool-out[_ngcontent-%COMP%]{color:#fcd34d;font-weight:600}.hh-tips__pool-in[_ngcontent-%COMP%]{color:#34d399;font-weight:600}.hh-tips__table[_ngcontent-%COMP%]{color:#94a3b8;font-size:.85rem}.hh-tips__check-money[_ngcontent-%COMP%]{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.hh-tips__check-tip[_ngcontent-%COMP%]{font-weight:700;color:#34d399}.hh-tips__check-grat[_ngcontent-%COMP%]{color:#a5b4fc;font-size:.85rem}.hh-tips__check-total[_ngcontent-%COMP%]{color:#64748b;font-size:.85rem}.hh-tips__pay[_ngcontent-%COMP%]{margin-left:auto;padding:6px 14px;border:none;border-radius:10px;background:#22c55e;color:#052e16;font-weight:700}.hh-tips__pay[_ngcontent-%COMP%]:active{background:#16a34a}']})}}return o})();var Zi=[{path:"",component:fn,children:[{path:"",pathMatch:"full",redirectTo:"menu"},{path:"menu",component:un},{path:"my-tips",component:bn,data:{title:"My Tips"}},{path:"orders",component:Pn,data:{title:"Orders"}},{path:"tables",component:ln,data:{title:"Tables"}},{path:"host",component:pn,data:{title:"Host"}},{path:"check-payment/:posCheckId",component:hn,data:{title:"Payment"}},{path:"gift-cards",data:{title:"Gift Cards"},loadChildren:()=>import("./chunk-26P7BR7X.js").then(o=>o.PosGiftCardsModule)},{path:"sections",component:yn,data:{title:"New order"}},{path:"sections/:sectionId/tables",component:Mn,data:{title:"Tables"}},{path:"order/:orderId",component:kn},{path:"pay/:posCheckId",component:In,data:{title:"Pay"}},{path:"checks/:checkId/payment",component:Sn,data:{title:"Payment"}},{path:"checks/:checkId/receipt",component:zn,data:{title:"Receipt"}}]}],Tn=(()=>{class o{static{this.\u0275fac=function(t){return new(t||o)}}static{this.\u0275mod=ve({type:o})}static{this.\u0275inj=ke({imports:[at.forChild(Zi),at]})}}return o})();var uc=(()=>{class o{static{this.\u0275fac=function(t){return new(t||o)}}static{this.\u0275mod=ve({type:o})}static{this.\u0275inj=ke({imports:[De,wt,kt,gn,Tn,et]})}}return o})();export{uc as PosHandheldModule};

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.