1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7738],{689:(e,t,n)=>{n.d(t,{Dm:()=>d,S8:()=>c,Yo:()=>l,Yq:()=>u,r6:()=>o,uX:()=>x,vv:()=>i,xp:()=>m});var a=n(36806),s=n(26612);let r=new Map;function i(e,t=0){let n=r.get(t);return n||(n=new Intl.NumberFormat("en-IN",{style:"currency",currency:"INR",minimumFractionDigits:t,maximumFractionDigits:t}),r.set(t,n)),n.format(e)}function l(e){let t=Math.abs(e),n=e<0?"-":"",a=(e,a)=>{let s=(t/e).toFixed(1).replace(/\.0$/,"");return`${n}â¹${s}${a}`};return Math.round(t/1e5)/100>=1?a(1e7,"Cr"):Math.round(t/1e3)/100>=1?a(1e5,"L"):Math.round(t/10)/100>=1?a(1e3,"K"):`${n}â¹${Math.round(t)}`}function c(e){if(!e)return"â";try{return(0,a.GP)((0,s.H)(e),"dd-MM-yyyy")}catch{return e}}let u=c;function o(e){if(!e)return"â";try{return(0,a.GP)((0,s.H)(e),"dd-MM-yyyy, hh:mm a")}catch{return e}}function d(e){if(!e)return null;try{if("string"==typeof e){let t=new Date(e);return isNaN(t.getTime())?null:t.toISOString()}if("function"==typeof e.toDate)return e.toDate().toISOString();return null}catch{return null}}function m(e,t){let n=1===e?"1 guest":`${e} guests`,a=1===t?"1 night":`${t} nights`;return`${n} \u2022 ${a}`}function x(e){let t=Number(e.numberOfAdults)||0,n=Number(e.numberOfChildren)||0,a=Number(e.numberOfGuests)||0;return n<=0||t<=0||t+n!==a?null:`${t}A + ${n}C`}},7738:(e,t,n)=>{n.r(t),n.d(t,{default:()=>f});var a=n(95155),s=n(68777),r=n(98500),i=n.n(r),l=n(65327),c=n(41998),u=n(53368),o=n(689),d=n(50603);let m=["overdue","aging","fresh"],x={overdue:{label:"Overdue",range:"7d+",fill:"bg-semantic_surface_critical_prominent",dot:"bg-semantic_icon_critical",text:"text-semantic_text_critical",chip:"bg-semantic_surface_critical_subtle text-semantic_text_critical"},aging:{label:"Aging",range:"3â6d",fill:"bg-semantic_icon_warning",dot:"bg-semantic_icon_warning",text:"text-semantic_text_warning",chip:"bg-semantic_surface_warning_subtle text-semantic_text_warning"},fresh:{label:"Fresh",range:"<3d",fill:"bg-semantic_border_prominent",dot:"bg-semantic_icon",text:"text-semantic_text_secondary",chip:"bg-semantic_background_hovered text-semantic_text_secondary"}};function f(){let{data:e,loading:t,error:n,reload:r}=(0,c.K)("/api/pms/expenses?status=pending"),o=(0,u.GM)(),{sum:d,count:m,oldestDays:x,buckets:f}=function(e){let t={sum:0,count:0,oldestDays:null,buckets:{overdue:{count:0,sum:0},aging:{count:0,sum:0},fresh:{count:0,sum:0}}};if(!e||0===e.length)return t;let n=0,a=0,s=null,r=t.buckets,i=Date.now();for(let t of e){if("pending"!==t.status)continue;let e=t.amount||0;a+=1,n+=e;let c=Date.parse(t.createdAt);if(Number.isNaN(c))r.fresh.count+=1,r.fresh.sum+=e;else{var l;(null===s||c<s)&&(s=c);let t=(l=Math.max(0,Math.floor((i-c)/864e5)))>=7?"overdue":l>=3?"aging":"fresh";r[t].count+=1,r[t].sum+=e}}return{sum:n,count:a,oldestDays:null===s?null:Math.max(0,Math.floor((i-s)/864e5)),buckets:r}}(e?.expenses),N=null!==x&&x>=3;return(0,a.jsx)(l.r,{title:"Expenses pending approval",icon:(0,a.jsx)(s.Icon,{name:"receipt"}),loading:t&&!e,error:n,onRetry:r,empty:!t&&0===m,emptyText:"Nothing waiting on approval",footerHref:"/pms/expenses",footerLabel:"Review queue",children:m>0&&(0,a.jsxs)("div",{className:"flex h-full flex-col",children:[(0,a.jsxs)("div",{className:"min-w-0",children:[(0,a.jsxs)("div",{className:"flex items-baseline gap-1.5",children:[(0,a.jsx)("span",{className:"font-figtree text-[13px] font-medium text-semantic_text_secondary",children:"â¹"}),(0,a.jsx)("span",{className:"truncate font-figtree text-[30px] font-bold leading-none tabular-nums tracking-[-0.5px] text-semantic_text lg:text-[34px]",children:d.toLocaleString("en-IN")})]}),(0,a.jsxs)("p",{className:"mt-1.5 font-lexendDeca text-[12.5px] text-semantic_text_secondary",children:["across"," ",(0,a.jsx)("span",{className:"font-figtree font-semibold tabular-nums text-semantic_text",children:m})," ",1===m?"expense":"expenses"," awaiting approval"]})]}),null!==x&&(!1!==o?(0,a.jsx)("div",{className:"mt-3",children:(0,a.jsx)(p,{days:x,stale:N})}):(0,a.jsxs)(i(),{href:"/pms/expenses","aria-label":`Oldest pending expense is ${g(x)} old â review the queue`,className:"mt-3 flex min-h-[44px] items-center justify-between gap-2 rounded-[10px] border border-semantic_border px-3 transition-colors active:bg-semantic_background_hovered",children:[(0,a.jsx)(p,{days:x,stale:N}),(0,a.jsx)(s.Icon,{name:"arrow-up-right",className:"h-4 w-4 flex-shrink-0 text-semantic_text_secondary"})]})),(0,a.jsxs)("div",{className:"mt-4 min-w-0",children:[(0,a.jsx)(h,{buckets:f,count:m}),!1!==o?(0,a.jsx)(_,{buckets:f,className:"mt-3"}):(0,a.jsx)(b,{buckets:f,className:"mt-3"})]})]})})}function g(e){return e<=0?"today":1===e?"1 day":`${e} days`}function p({days:e,stale:t}){return(0,a.jsxs)("span",{className:(0,d.cn)("inline-flex items-center gap-1.5 rounded-[6px] px-2.5 py-1 font-lexendDeca text-[12px] font-medium",t?"bg-semantic_surface_warning_subtle text-semantic_text_warning":"bg-semantic_background_hovered text-semantic_text_secondary"),children:[t?(0,a.jsxs)("span",{className:"relative flex h-2 w-2 flex-shrink-0",children:[(0,a.jsx)("span",{className:"absolute inline-flex h-full w-full animate-ping rounded-full bg-semantic_icon_warning opacity-60 motion-reduce:animate-none"}),(0,a.jsx)("span",{className:"relative inline-flex h-2 w-2 rounded-full bg-semantic_icon_warning"})]}):(0,a.jsx)(s.Icon,{name:"clock",className:"h-3.5 w-3.5 flex-shrink-0"}),t&&(0,a.jsx)(s.Icon,{name:"alert-triangle",className:"h-3.5 w-3.5 flex-shrink-0"}),(0,a.jsxs)("span",{children:["Oldest"," ",(0,a.jsx)("span",{className:"font-figtree font-semibold tabular-nums",children:g(e)})]})]})}function h({buckets:e,count:t,className:n}){let s=t||1;return(0,a.jsx)("div",{className:(0,d.cn)("flex h-2.5 w-full overflow-hidden rounded-full bg-semantic_background_hovered",n),role:"img","aria-label":`Pending by age: ${e.overdue.count} overdue, ${e.aging.count} aging, ${e.fresh.count} fresh`,children:m.map(t=>{let n=e[t].count;return 0===n?null:(0,a.jsx)("div",{className:(0,d.cn)("h-full transition-[width]",x[t].fill),style:{width:`${n/s*100}%`}},t)}
1)})}function _({buckets:e,className:t}){return(0,a.jsx)("div",{className:(0,d.cn)("space-y-1.5",t),children:m.map(t=>{let{count:n,sum:s}=e[t],r=x[t];return(0,a.jsxs)("div",{className:(0,d.cn)("flex items-center gap-2 font-lexendDeca text-[12px]",0===n&&"opacity-40"),children:[(0,a.jsx)("span",{className:(0,d.cn)("h-2 w-2 flex-shrink-0 rounded-full",r.dot)}),(0,a.jsx)("span",{className:"text-semantic_text_secondary",children:r.label}),(0,a.jsx)("span",{className:"font-figtree tabular-nums text-semantic_text_secondary",children:r.range}),(0,a.jsx)("span",{className:(0,d.cn)("ml-auto font-figtree font-semibold tabular-nums",n>0?r.text:"text-semantic_text_secondary"),children:n}),(0,a.jsx)("span",{className:"w-[68px] flex-shrink-0 text-right font-figtree tabular-nums text-semantic_text_secondary",children:(0,o.vv)(s)})]},t)})})}function b({buckets:e,className:t}){let n=m.filter(t=>e[t].count>0);return 0===n.length?null:(0,a.jsx)("div",{className:(0,d.cn)("space-y-1.5",t),children:n.map(t=>{let{count:n,sum:r}=e[t],l=x[t];return(0,a.jsxs)(i(),{href:"/pms/expenses","aria-label":`${n} ${l.label.toLowerCase()} ${l.range} pending, ${(0,o.vv)(r)} â review the queue`,className:"flex min-h-[44px] items-center gap-2.5 rounded-[10px] border border-semantic_border px-3 transition-colors active:bg-semantic_background_hovered",children:[(0,a.jsx)("span",{className:(0,d.cn)("flex h-7 min-w-[28px] items-center justify-center rounded-full px-2 font-figtree text-[13px] font-bold tabular-nums",l.chip),children:n}),(0,a.jsx)("span",{className:"min-w-0 flex-1",children:(0,a.jsxs)("span",{className:"block font-lexendDeca text-[13.5px] font-medium text-semantic_text",children:[l.label,(0,a.jsx)("span",{className:"ml-1.5 font-figtree text-[11.5px] font-normal tabular-nums text-semantic_text_secondary",children:l.range})]})}),(0,a.jsx)("span",{className:"font-figtree text-[13px] font-semibold tabular-nums text-semantic_text",children:(0,o.vv)(r)}),(0,a.jsx)(s.Icon,{name:"arrow-up-right",className:"h-4 w-4 flex-shrink-0 text-semantic_text_secondary"})]},t)})})}},26612:(e,t,n)=>{n.d(t,{H:()=>i});var a=n(77989),s=n(91993),r=n(92477);function i(e,t){let n,i,h=()=>(0,s.w)(t?.in,NaN),_=t?.additionalDigits??2,b=function(e){let t,n={},a=e.split(l);if(a.length>2)return n;if(/:/.test(a[0])?t=a[0]:(n.date=a[0],t=a[1],c.test(n.date)&&(n.date=e.split(c)[0],t=e.substr(n.date.length,e.length))),t){let e=u.exec(t);e?(n.time=t.replace(e[1],""),n.timezone=e[1]):n.time=t}return n}(e);if(b.date){let e=function(e,t){let n=RegExp("^(?:(\\d{4}|[+-]\\d{"+(4+t)+"})|(\\d{2}|[+-]\\d{"+(2+t)+"})$)"),a=e.match(n);if(!a)return{year:NaN,restDateString:""};let s=a[1]?parseInt(a[1]):null,r=a[2]?parseInt(a[2]):null;return{year:null===r?s:100*r,restDateString:e.slice((a[1]||a[2]).length)}}(b.date,_);n=function(e,t){var n,a,s,r,i,l,c,u,d,m;if(null===t)return new Date(NaN);let f=e.match(o);if(!f)return new Date(NaN);let h=!!f[4],_=x(f[1]),b=x(f[2])-1,N=x(f[3]),y=x(f[4]),w=x(f[5])-1;if(h){let e,l;return(n=y,a=w,n>=1&&n<=53&&a>=0&&a<=6)?(s=t,r=y,i=w,(e=new Date(0)).setUTCFullYear(s,0,4),l=e.getUTCDay()||7,e.setUTCDate(e.getUTCDate()+((r-1)*7+i+1-l)),e):new Date(NaN)}{let e=new Date(0);return(l=t,c=b,u=N,c>=0&&c<=11&&u>=1&&u<=(g[c]||(p(l)?29:28))&&(d=t,(m=_)>=1&&m<=(p(d)?366:365)))?(e.setUTCFullYear(t,b,Math.max(_,N)),e):new Date(NaN)}}(e.restDateString,e.year)}if(!n||isNaN(+n))return h();let N=+n,y=0;if(b.time&&isNaN(y=function(e){var t,n,s;let r=e.match(d);if(!r)return NaN;let i=f(r[1]),l=f(r[2]),c=f(r[3]);return(t=i,n=l,s=c,24===t?0===n&&0===s:s>=0&&s<60&&n>=0&&n<60&&t>=0&&t<25)?i*a.s0+l*a.Cg+1e3*c:NaN}(b.time)))return h();if(b.timezone){if(isNaN(i=function(e){var t;if("Z"===e)return 0;let n=e.match(m);if(!n)return 0;let s="+"===n[1]?-1:1,r=parseInt(n[2]),i=n[3]&&parseInt(n[3])||0;return(t=i)>=0&&t<=59?s*(r*a.s0+i*a.Cg):NaN}(b.timezone)))return h()}else{let e=new Date(N+y),n=(0,r.a)(0,t?.in);return n.setFullYear(e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate()),n.setHours(e.getUTCHours(),e.getUTCMinutes(),e.getUTCSeconds(),e.getUTCMilliseconds()),n}return(0,r.a)(N+y+i,t?.in)}let l=/[T ]/,c=/[Z ]/i,u=/([Z+-].*)$/,o=/^-?(?:(\d{3})|(\d{2})(?:-?(\d{2}))?|W(\d{2})(?:-?(\d{1}))?|)$/,d=/^(\d{2}(?:[.,]\d*)?)(?::?(\d{2}(?:[.,]\d*)?))?(?::?(\d{2}(?:[.,]\d*)?))?$/,m=/^([+-])(\d{2})(?::?(\d{2}))?$/;function x(e){return e?parseInt(e):1}function f(e){return e&&parseFloat(e.replace(",","."))||0}let g=[31,null,31,30,31,30,31,31,30,31,30,31];function p(e){return e%400==0||e%4==0&&e%100!=0}}}]);
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.