1"use strict";(self.webpackChunkParkAdda=self.webpackChunkParkAdda||[]).push([[816],{96498(e,t,a){var s=a(80296),n=a(65043),l=a(62582),c=a(59557),r=a(98670),o=a(4596),i=a(10705);a(54958);const f=function(e){const t=(0,r.wA)(),a=(0,c.zy)(),f=(0,n.useState)(!1),m=(0,s.A)(f,2),d=m[0],u=m[1],b=(0,n.useMemo)(function(){const e=t.caps;if(e.isBookingViewerOnly&&e.canViewBookingAnalytics)return[{to:"/staff/dashboard",label:"Dashboard"},{to:"/staff/scan",label:"Scan QR"},{to:"/staff/bookings",label:"Participants"},{to:"/staff/game-status",label:"Game status"},{to:"/staff/profile",label:"Profile"},{to:"/events",label:"Events"}];const a=[{to:"/staff",label:"Home",exact:!0},{to:"/staff/scan",label:"Scan QR"}];return e.canOperateValet&&a.push({to:"/staff/valet",label:"Valet"}),e.canOperateCart&&a.push({to:"/staff/cart",label:"Cart"}),e.canOperateVendorPay&&a.push({to:"/staff/vendorpay",label:"VendorPay"}),e.canManageAccreditation&&a.push({to:"/staff/accreditation",label:"Accreditation"}),e.canViewBookingAnalytics?(a.push({to:"/staff/dashboard",label:"Dashboard"}),a.push({to:"/staff/bookings",label:"Participants"}),a.push({to:"/staff/game-status",label:"Game status"})):(e.isCommitteeDesk||e.canRecordCash||e.isAdmin)&&a.push({to:"/staff/game-status",label:"Game status"}),e.canViewSponsors&&a.push({to:"/staff/sponsors",label:"Sponsors"}),e.canRecordCash&&a.push({to:"/staff/cash",label:"Offline cash"}),e.isAdmin&&(a.push({to:"/staff/committees",label:"Committees"}),a.push({to:"/staff/accounts",label:"Admins"})),e.canViewSiteFeedback&&a.push({to:"/staff/feedback",label:"Site feedback"}),a.push({to:"/staff/profile",label:"Profile"}),a.push({to:"/events",label:"Events"}),a},[t.caps]);if((0,n.useEffect)(function(){u(!1)},[a.pathname,a.search]),(0,n.useEffect)(function(){if(d){var e=document.body.style.overflow;return document.body.style.overflow="hidden",document.addEventListener("keydown",t),function(){document.body.style.overflow=e,document.removeEventListener("keydown",t)}}function t(e){"Escape"===e.key&&u(!1)}},[d]),"loading"===t.status||"idle"===t.status)return n.createElement("div",{className:"stf-shell stf-shell--loading"},n.createElement("div",{className:"stf-loading-center"},n.createElement(i.y$,{size:28}),n.createElement("span",null,"Loading session\u2026")));if("unauthenticated"===t.status){const e=encodeURIComponent(a.pathname+a.search);return n.createElement(c.rd,{to:"/staff/login?next="+e})}const p=t.staff||{},v=(0,r.Up)(p.role_code),h=(0,o.c)(p),E=function(e,t){if(0===e.indexOf("/staff/valet")&&t.canOperateValet){var a=[{to:"/staff/valet",label:"Dashboard",exact:!0},{to:"/staff/valet/transactions",label:"Transactions"},{to:"/staff/valet/scan",label:"Scan / Intake"},{to:"/staff/valet/pos-exit",label:"POS exit"},{to:"/staff/valet/retrievals",label:"Retrievals"},{to:"/staff/valet/keys",label:"Keys"}];return t.isAdmin&&a.push({to:"/staff/valet/admin",label:"Admin"}),a}if(0===e.indexOf("/staff/cart")&&t.canOperateCart){var s=[{to:"/staff/cart",label:"Dashboard",exact:!0},{to:"/staff/cart/requests",label:"Requests"},{to:"/staff/cart/dispatch",label:"Dispatch"},{to:"/staff/cart/scan",label:"Scan / Dispatch"},{to:"/staff/cart/pos-exit",label:"POS exit"},{to:"/staff/cart/batches",label:"Batches"}];return t.isAdmin&&s.push({to:"/staff/cart/admin",label:"Admin"}),s}if(0===e.indexOf("/staff/vendorpay")&&t.canOperateVendorPay){var n=[{to:"/staff/vendorpay",label:"Dashboard",exact:!0}];return t.canBillVendorPay&&n.push({to:"/staff/vendorpay/pos",label:"POS"}),n.push({to:"/staff/vendorpay/orders",label:"Orders"}),t.canFulfilVendorPay&&n.push({to:"/staff/vendorpay/scan",label:"Scan"}),n.push({to:"/staff/vendorpay/stock",label:"Stock"}),t.isAdmin&&n.push({to:"/staff/vendorpay/admin",label:"Admin"}),t.isAdmin&&n.push({to:"/staff/vendorpay/settlements",label:"Settlements"}),n}return[]}(a.pathname,t.caps),k=function(e,t,a){for(var s="",n="Staff",l=[a,t],c=0;c<l.length;c++)for(var r=l[c],o=0;o<r.length;o++){var i=r[o].to;(e===i||"/staff"!==i&&0===e.indexOf(i))&&i.length>=s.length&&(s=i,n=r[o].label)}return n}(a.pathname,b,E),g=function(e){if((e=e||{}).isBookingViewerOnly&&e.canViewBookingAnalytics)return[{to:"/staff/dashboard",label:"Dashboard",exact:!0},{to:"/staff/scan",label:"Scan"},{to:"/staff/bookings",label:"Participants"},{to:"/staff/game-status",label:"Results"}];var t=[{to:"/staff",label:"Home",exact:!0},{to:"/staff/scan",label:"Scan"}];e.canViewBookingAnalytics?(t.push({to:"/staff/bookings",label:"Participants"}),t.push({to:"/staff/game-status",label:"Results"})):(e.isCommitteeDesk||e.canRecordCash||e.isAdmin)&&t.push({to:"/staff/game-status",label:"Results"});e.canOperateValet&&t.push({to:"/staff/valet",label:"Valet"});e.canOperateCart&&t.push({to:"/staff/cart",label:"Cart"});e.canOperateVendorPay&&t.push({to:"/staff/vendorpay",label:"VendorPay"});return t.slice(0,5)}(t.caps||{}),y=function(e){var t={"/staff/dashboard":!0,"/staff/bookings":!0,"/staff/game-status":!0,"/staff/cash":!0,"/staff/sponsors":!0,"/staff/committees":!0,"/staff/accounts":!0,"/staff/feedback":!0},a={"/staff/profile":!0,"/events":!0},s=[{key:"work",title:"On the ground",items:[]},{key:"events",title:"Event desk",items:[]},{key:"account",title:"Account",items:[]}];return e.forEach(function(e){a[e.to]?s[2].items.push(e):t[e.to]?s[1].items.push(e):s[0].items.push(e)}),s.filter(function(e){return e.items.length>0})}(b),_=function(e){var t=String(e||"").trim().split(/\s+/).filter(
1Boolean);return t.length?1===t.length?t[0].slice(0,2).toUpperCase():(t[0].charAt(0)+t[t.length-1].charAt(0)).toUpperCase():"PA"}(h);return n.createElement("div",{className:"stf-shell"},n.createElement("header",{className:"stf-topbar"},n.createElement("button",{type:"button",className:"stf-topbar__menu"+(d?" stf-topbar__menu--open":""),"aria-expanded":d,"aria-controls":"stf-nav-drawer","aria-label":d?"Close menu":"Open menu",onClick:function(){u(function(e){return!e})}},n.createElement("span",{className:"stf-topbar__menu-icon"})),n.createElement(l.Link,{to:"/staff",className:"stf-topbar__brand"},n.createElement("span",{className:"stf-topbar__mark","aria-hidden":"true"},"P"),n.createElement("span",{className:"stf-topbar__brand-text"},"ParkAdda",n.createElement("small",null,"Staff"))),n.createElement("nav",{className:"stf-topbar__nav","aria-label":"Primary"},g.map(function(e){return n.createElement(l.NavLink,{key:"bar-"+e.to,to:e.to,exact:!!e.exact,activeClassName:"stf-topbar__nav--active"},e.label)})),n.createElement("div",{className:"stf-topbar__current"},k),n.createElement("div",{className:"stf-topbar__spacer"}),n.createElement(l.Link,{to:"/staff/profile",className:"stf-topbar__staff",title:"Open profile"},n.createElement("span",{className:"stf-avatar","aria-hidden":"true"},_),n.createElement("span",{className:"stf-topbar__staff-text"},n.createElement("strong",null,h),n.createElement("small",null,v))),n.createElement("button",{className:"stf-topbar__logout",type:"button",onClick:function(){t.logout()}},"Log out")),E.length>0?n.createElement("nav",{className:"stf-subnav","aria-label":"This section"},E.map(function(e){return n.createElement(l.NavLink,{key:"sub-"+e.to,to:e.to,exact:!!e.exact,className:"stf-subnav__link",activeClassName:"stf-subnav__link--active"},e.label)})):null,n.createElement("div",{id:"stf-nav-drawer",className:"stf-drawer"+(d?" stf-drawer--open":""),"aria-hidden":!d},n.createElement("div",{className:"stf-drawer__backdrop",onClick:function(){u(!1)}}),n.createElement("div",{className:"stf-drawer__panel",role:"dialog","aria-label":"Staff menu"},n.createElement("div",{className:"stf-drawer__head"},n.createElement("div",null,n.createElement("div",{className:"stf-drawer__brand"},"ParkAdda"),n.createElement("div",{className:"stf-drawer__brand-sub"},"Staff menu")),n.createElement("button",{type:"button",className:"stf-drawer__close","aria-label":"Close menu",onClick:function(){u(!1)}},n.createElement("span",null))),n.createElement("div",{className:"stf-drawer__scroll"},y.map(function(e){return n.createElement("div",{key:e.key,className:"stf-drawer__group"},n.createElement("div",{className:"stf-drawer__title"},e.title),e.items.map(function(e){return n.createElement(l.NavLink,{key:"drawer-"+e.to,to:e.to,exact:!!e.exact,activeClassName:"stf-drawer__link--active",className:"stf-drawer__link",onClick:function(){u(!1)}},e.label)}))}),E.length>0?n.createElement("div",{className:"stf-drawer__group"},n.createElement("div",{className:"stf-drawer__title"},"This section"),E.map(function(e){return n.createElement(l.NavLink,{key:"section-"+e.to,to:e.to,exact:!!e.exact,activeClassName:"stf-drawer__link--active",className:"stf-drawer__link",onClick:function(){u(!1)}},e.label)})):null),n.createElement("div",{className:"stf-drawer__footer"},n.createElement(l.Link,{to:"/staff/profile",className:"stf-drawer__who",onClick:function(){u(!1)}},n.createElement("span",{className:"stf-avatar stf-avatar--navy","aria-hidden":"true"},_),n.createElement("span",null,n.createElement("strong",null,h),n.createElement("span",null,v))),n.createElement("button",{type:"button",className:"stf-drawer__logout",onClick:function(){u(!1),t.logout()}},"Log out")))),n.createElement("main",{className:"stf-page"},e.children))};a.d(t,["A",0,f])},98435(e,t,a){a.r(t);var s=a(65043),n=a(62582),l=a(59557),c=a(96498),r=a(98670),o=a(4596);a(54958);const i=function(e){return s.createElement(n.Link,{className:"stf-tile",to:e.to},s.createElement("div",{className:"stf-tile__icon"},e.icon),s.createElement("div",{className:"stf-tile__label"},e.label),s.createElement("div",{className:"stf-tile__sub"},e.sub))},f=function(){const e=(0,r.wA)(),t=e.caps,a=e.staff||{};return"authenticated"===e.status&&t.isBookingViewerOnly?s.createElement(l.rd,{to:"/staff/dashboard"}):s.createElement(c.A,null,s.createElement("div",{className:"stf-home__hero"},s.createElement("h1",{className:"stf-page__title"}
1,"Welcome, ",(0,o.c)(a)),s.createElement("p",{className:"stf-page__sub"},"Signed in as ",s.createElement("strong",null,(0,r.Up)(a.role_code)),a.employee_code?" \xb7 "+a.employee_code:"",a.mobile?" \xb7 "+a.mobile:"")),s.createElement("div",{className:"stf-section"},s.createElement("h3",null,"Account")),s.createElement("div",{className:"stf-tiles"},s.createElement(i,{to:"/staff/scan",icon:"\ud83d\udcf7",label:"Scan QR",sub:"Check in, next stage, champion, or eliminated \u2014 same flow as the app."}),s.createElement(i,{to:"/events/onboarding",icon:"\ud83e\udded",label:"Event setup",sub:"How an event, its services, and ground staff are onboarded."}),s.createElement(i,{to:"/staff/profile",icon:"\ud83d\udc64",label:"Profile",sub:"Your login, role, and committee access."}),s.createElement(i,{to:"/events",icon:"\ud83c\udfab",label:"Events",sub:"Public catalogue, games, and checkout."}),s.createElement(i,{to:"/events/booking",icon:"\ud83d\udd0e",label:"Find a booking",sub:"Look up by booking ID, phone, or vehicle."})),t.canOperateValet&&s.createElement(s.Fragment,null,s.createElement("div",{className:"stf-section"},s.createElement("h3",null,"Valet")),s.createElement("div",{className:"stf-tiles"},s.createElement(i,{to:"/staff/valet",icon:"\ud83d\udcca",label:"Dashboard",sub:"Live counts, occupancy, handovers."}),s.createElement(i,{to:"/staff/valet/transactions",icon:"\ud83d\udccb",label:"Transactions",sub:"Search, filter, open any valet txn."}),s.createElement(i,{to:"/staff/valet/scan",icon:"\ud83d\udcf7",label:"Scan",sub:"Booking / key / operator QR."}),s.createElement(i,{to:"/staff/valet/retrievals",icon:"\ud83c\udfc3",label:"Retrievals",sub:"Live retrieval queue."}),s.createElement(i,{to:"/staff/valet/keys",icon:"\ud83d\udd11",label:"Keys",sub:"Key tag inventory & movements."}),t.isAdmin&&s.createElement(i,{to:"/staff/valet/admin",icon:"\u2699\ufe0f",label:"Admin",sub:"Partners, staff, config."}))),t.canOperateCart&&s.createElement(s.Fragment,null,s.createElement("div",{className:"stf-section"},s.createElement("h3",null,"Cart (MobilityOps)")),s.createElement("div",{className:"stf-tiles"},s.createElement(i,{to:"/staff/cart",icon:"\ud83d\udcca",label:"Dashboard",sub:"Queue length, active trips, drivers."}),s.createElement(i,{to:"/staff/cart/requests",icon:"\ud83d\udccb",label:"Requests",sub:"All cart requests across the event."}),s.createElement(i,{to:"/staff/cart/dispatch",icon:"\ud83d\ude90",label:"Dispatch",sub:"Queue + available carts + assign."}),s.createElement(i,{to:"/staff/cart/scan",icon:"\ud83d\udcf7",label:"Scan",sub:"Booking / driver / point QR."}),s.createElement(i,{to:"/staff/cart/batches",icon:"\ud83d\udc65",label:"Batches",sub:"Shared ride batch control."}),t.isAdmin&&s.createElement(i,{to:"/staff/cart/admin",icon:"\u2699\ufe0f",label:"Admin",sub:"Partners, drivers, carts, points."}))),t.canOperateVendorPay&&s.createElement(s.Fragment,null,s.createElement("div",{className:"stf-section"},s.createElement("h3",null,"VendorPay")),s.createElement("div",{className:"stf-tiles"},s.createElement(i,{to:"/staff/vendorpay",icon:"\ud83d\udcca",label:"Dashboard",sub:"Sales, orders, stock alerts."}),t.canBillVendorPay&&s.createElement(i,{to:"/staff/vendorpay/pos",icon:"\ud83e\uddfe",label:"POS (new bill)",sub:"Stall \u2192 items \u2192 pay \u2192 print."}),s.createElement(i,{to:"/staff/vendorpay/orders",icon:"\ud83d\udccb",label:"Orders",sub:"Search, reprint, cancel, fulfil."}),t.canFulfilVendorPay&&s.createElement(i,{to:"/staff/vendorpay/scan",icon:"\ud83d\udcf7",label:"Scan",sub:"Receipt QR \u2192 verify \u2192 fulfil."}),s.createElement(i,{to:"/staff/vendorpay/stock",icon:"\ud83d\udce6",label:"Stock",sub:"Load, adjust, track movements."}),t.isAdmin&&s.createElement(i,{to:"/staff/vendorpay/admin",icon:"\u2699\ufe0f",label:"Admin",sub:"Vendors, stalls, items, operators."}),t.isAdmin&&s.createElement(i,{to:"/staff/vendorpay/settlements",icon:"\ud83d\udcb0",label:"Settlements",sub:"Build, approve, mark paid."}))),t.canManageAccreditation&&s.createElement(s.Fragment,null,s.createElement("div",{className:"stf-section"},s.createElement("h3",null,"Accreditation")),s.createElement("div",{className:"stf-tiles"},s.createElement(i,{to:"/staff/accreditation",icon:"\ud83e\udeaa",label:"Applications",sub:"Approve, reject, and issue access cards."}))),(t.canViewBookingAnalytics||t.canRecordCash||t.isAdmin||t.canViewSponsors||t.isCommitteeDesk)&&s.createElement(s.Fragment,null,s.createElement("div",{className:"stf-section"},s.createElement("h3",null,"ZEPHYR / Event sales")),s.createElement("div",{className:"stf-tiles"},t.canViewBookingAnalytics&&s.createElement(i,{to:"/staff/dashboard",icon:"\ud83d\udcca",label:"Dashboard",sub:"Committee-wise PR and event ticket sales."}),t.canViewBookingAnalytics&&s.createElement(i,{to:"/staff/bookings",icon:"\ud83d\udc65",label:"Participants",sub:"Search, filter, and export the participant database."}),(t.canViewBookingAnalytics||t.isCommitteeDesk||t.canRecordCash||t.isAdmin)&&s.createElement(i,{to:"/staff/game-status",icon:"\ud83c\udfc6",label:"Game status",sub:"Checked in, playing, eliminated, and winners. Search and page through them."}),t.canRecordCash&&s.createElement(i,{to:"/staff/cash",icon:"\ud83d\udcb5",label:"Offline cash",sub:"Register a participant and record cash received."}),t.isAdmin&&s.createElement(i,{to:"/staff/committees",icon:"\ud83c\udff7\ufe0f",label:"Committees",sub:"Manage the Select Committee dropdown."}),t.isAdmin&&s.createElement(i,{to:"/staff/accounts",icon:"\ud83d\udc64",label:"Admin accounts",sub:"Create, deactivate, and audit staff logins."}),t.canViewSponsors&&s.createElement(i,{to:"/staff/sponsors",icon:"\ud83e\udd1d",label:"Sponsors",sub:"Sponsor records, payments, MoUs, and package pricing."}))),t.canViewSiteFeedback&&s.createElement(s.Fragment,null,s.createElement("div",{className:"stf-section"},s.createElement("h3",null,"Website")),s.createElement("div",{className:"stf-tiles"},s.createElement(i,{to:"/staff/feedback",icon:"\ud83d\udcac",label:"Site feedback",sub:"Ratings and comments from the public events pages."}))),!t.canOperateValet&&!t.canOperateCart&&!t.canOperateVendorPay&&!t.canManageAccreditation&&!t.canViewBookingAnalytics&&!t.canRecordCash&&!t.canViewSponsors&&!t.canViewSiteFeedback&&s.createElement("div",{className:"stf-empty"},"Your role does not currently have access to any operational modules. You can still open Profile, Events, and Find a booking from the tiles above."))};a.d(t,["default",0,f])},54958(){}}]); 2//# sourceMappingURL=816.e64231f2.chunk.js.map
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.