1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[50943],{19056:(e,t,n)=>{n.d(t,{H:()=>r});var a=n(77565);function r(e,t){var n;let r,x,f=null!=(n=null==t?void 0:t.additionalDigits)?n:2,g=function(e){let t,n={},a=e.split(s.dateTimeDelimiter);if(a.length>2)return n;if(/:/.test(a[0])?t=a[0]:(n.date=a[0],t=a[1],s.timeZoneDelimiter.test(n.date)&&(n.date=e.split(s.timeZoneDelimiter)[0],t=e.substr(n.date.length,e.length))),t){let e=s.timezone.exec(t);e?(n.time=t.replace(e[1],""),n.timezone=e[1]):n.time=t}return n}(e);if(g.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 r=a[1]?parseInt(a[1]):null,s=a[2]?parseInt(a[2]):null;return{year:null===s?r:100*s,restDateString:e.slice((a[1]||a[2]).length)}}(g.date,f);r=function(e,t){var n,a,r,s,l,c,u;if(null===t)return new Date(NaN);let x=e.match(i);if(!x)return new Date(NaN);let f=!!x[4],g=o(x[1]),h=o(x[2])-1,p=o(x[3]),N=o(x[4]),_=o(x[5])-1;if(f){return(n=N,a=_,n>=1&&n<=53&&a>=0&&a<=6)?function(e,t,n){let a=new Date(0);a.setUTCFullYear(e,0,4);let r=a.getUTCDay()||7;return a.setUTCDate(a.getUTCDate()+((t-1)*7+n+1-r)),a}(t,N,_):new Date(NaN)}{let e=new Date(0);return(r=t,s=h,l=p,s>=0&&s<=11&&l>=1&&l<=(m[s]||(d(r)?29:28))&&(c=t,(u=g)>=1&&u<=(d(c)?366:365)))?(e.setUTCFullYear(t,h,Math.max(g,p)),e):new Date(NaN)}}(e.restDateString,e.year)}if(!r||isNaN(r.getTime()))return new Date(NaN);let h=r.getTime(),p=0;if(g.time&&isNaN(p=function(e){var t,n,r;let s=e.match(l);if(!s)return NaN;let i=u(s[1]),c=u(s[2]),o=u(s[3]);return(t=i,n=c,r=o,24===t?0===n&&0===r:r>=0&&r<60&&n>=0&&n<60&&t>=0&&t<25)?i*a.s0+c*a.Cg+1e3*o:NaN}(g.time)))return new Date(NaN);if(g.timezone){if(isNaN(x=function(e){var t;if("Z"===e)return 0;let n=e.match(c);if(!n)return 0;let r="+"===n[1]?-1:1,s=parseInt(n[2]),i=n[3]&&parseInt(n[3])||0;return(t=i)>=0&&t<=59?r*(s*a.s0+i*a.Cg):NaN}(g.timezone)))return new Date(NaN)}else{let e=new Date(h+p),t=new Date(0);return t.setFullYear(e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate()),t.setHours(e.getUTCHours(),e.getUTCMinutes(),e.getUTCSeconds(),e.getUTCMilliseconds()),t}return new Date(h+p+x)}let s={dateTimeDelimiter:/[T ]/,timeZoneDelimiter:/[Z ]/i,timezone:/([Z+-].*)$/},i=/^-?(?:(\d{3})|(\d{2})(?:-?(\d{2}))?|W(\d{2})(?:-?(\d{1}))?|)$/,l=/^(\d{2}(?:[.,]\d*)?)(?::?(\d{2}(?:[.,]\d*)?))?(?::?(\d{2}(?:[.,]\d*)?))?$/,c=/^([+-])(\d{2})(?::?(\d{2}))?$/;function o(e){return e?parseInt(e):1}function u(e){return e&&parseFloat(e.replace(",","."))||0}let m=[31,null,31,30,31,30,31,31,30,31,30,31];function d(e){return e%400==0||e%4==0&&e%100!=0}},50943:(e,t,n)=>{n.r(t),n.d(t,{default:()=>f});var a=n(95155),r=n(30557),s=n(52619),i=n.n(s),l=n(15296),c=n(47703),o=n(44385),u=n(92038),m=n(44195);let d=["overdue","aging","fresh"],x={overdue:{label:"Overdue",range:"".concat(7,"d+"),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:"".concat(3,"â").concat(6,"d"),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:"<".concat(3,"d"),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:s}=(0,c.K)("/api/pms/expenses?status=pending"),u=(0,o.GM)(),{sum:m,count:d,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,r=null,s=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))s.fresh.count+=1,s.fresh.sum+=e;else{var l;(null===r||c<r)&&(r=c);let t=(l=Math.max(0,Math.floor((i-c)/864e5)))>=7?"overdue":l>=3?"aging":"fresh";s[t].count+=1,s[t].sum+=e}}return{sum:n,count:a,oldestDays:null===r?null:Math.max(0,Math.floor((i-r)/864e5)),buckets:s}}(null==e?void 0:e.expenses),b=null!==x&&x>=3;return(0,a.jsx)(l.r,{title:"Expenses pending approval",icon:(0,a.jsx)(r.Icon,{name:"receipt"}),loading:t&&!e,error:n,onRetry:s,empty:!t&&0===d,emptyText:"Nothing waiting on approval",footerHref:"/pms/expenses",footerLabel:"Review queue",children:d>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:m.toLocaleStr
1ing("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:d})," ",1===d?"expense":"expenses"," awaiting approval"]})]}),null!==x&&(!1!==u?(0,a.jsx)("div",{className:"mt-3",children:(0,a.jsx)(h,{days:x,stale:b})}):(0,a.jsxs)(i(),{href:"/pms/expenses","aria-label":"Oldest pending expense is ".concat(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)(h,{days:x,stale:b}),(0,a.jsx)(r.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)(p,{buckets:f,count:d}),!1!==u?(0,a.jsx)(N,{buckets:f,className:"mt-3"}):(0,a.jsx)(_,{buckets:f,className:"mt-3"})]})]})})}function g(e){return e<=0?"today":1===e?"1 day":"".concat(e," days")}function h(e){let{days:t,stale:n}=e;return(0,a.jsxs)("span",{className:(0,m.cn)("inline-flex items-center gap-1.5 rounded-[6px] px-2.5 py-1 font-lexendDeca text-[12px] font-medium",n?"bg-semantic_surface_warning_subtle text-semantic_text_warning":"bg-semantic_background_hovered text-semantic_text_secondary"),children:[n?(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)(r.Icon,{name:"clock",className:"h-3.5 w-3.5 flex-shrink-0"}),n&&(0,a.jsx)(r.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(t)})]})]})}function p(e){let{buckets:t,count:n,className:r}=e,s=n||1;return(0,a.jsx)("div",{className:(0,m.cn)("flex h-2.5 w-full overflow-hidden rounded-full bg-semantic_background_hovered",r),role:"img","aria-label":"Pending by age: ".concat(t.overdue.count," overdue, ").concat(t.aging.count," aging, ").concat(t.fresh.count," fresh"),children:d.map(e=>{let n=t[e].count;return 0===n?null:(0,a.jsx)("div",{className:(0,m.cn)("h-full transition-[width]",x[e].fill),style:{width:"".concat(n/s*100,"%")}},e)})})}function N(e){let{buckets:t,className:n}=e;return(0,a.jsx)("div",{className:(0,m.cn)("space-y-1.5",n),children:d.map(e=>{let{count:n,sum:r}=t[e],s=x[e];return(0,a.jsxs)("div",{className:(0,m.cn)("flex items-center gap-2 font-lexendDeca text-[12px]",0===n&&"opacity-40"),children:[(0,a.jsx)("span",{className:(0,m.cn)("h-2 w-2 flex-shrink-0 rounded-full",s.dot)}),(0,a.jsx)("span",{className:"text-semantic_text_secondary",children:s.label}),(0,a.jsx)("span",{className:"font-figtree tabular-nums text-semantic_text_secondary",children:s.range}),(0,a.jsx)("span",{className:(0,m.cn)("ml-auto font-figtree font-semibold tabular-nums",n>0?s.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,u.vv)(r)})]},e)})})}function _(e){let{buckets:t,className:n}=e,s=d.filter(e=>t[e].count>0);return 0===s.length?null:(0,a.jsx)("div",{className:(0,m.cn)("space-y-1.5",n),children:s.map(e=>{let{count:n,sum:s}=t[e],l=x[e];return(0,a.jsxs)(i(),{href:"/pms/expenses","aria-label":"".concat(n," ").concat(l.label.toLowerCase()," ").concat(l.range," pending, ").concat((0,u.vv)(s)," â 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,m.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,u.vv)(s)}),(0,a.jsx)(r.Icon,{name:"arrow-up-right",className:"h-4 w-4 flex-shrink-0 text-semantic_text_secondary"})]},e)})})}}
1,92038:(e,t,n)=>{n.d(t,{Dm:()=>m,S8:()=>c,Yo:()=>l,Yq:()=>o,r6:()=>u,uX:()=>x,vv:()=>i,xp:()=>d});var a=n(93811),r=n(19056);let s=new Map;function i(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=s.get(t);return n||(n=new Intl.NumberFormat("en-IN",{style:"currency",currency:"INR",minimumFractionDigits:t,maximumFractionDigits:t}),s.set(t,n)),n.format(e)}function l(e){let t=Math.abs(e),n=e<0?"-":"",a=(e,a)=>{let r=(t/e).toFixed(1).replace(/\.0$/,"");return"".concat(n,"â¹").concat(r).concat(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"):"".concat(n,"â¹").concat(Math.round(t))}function c(e){if(!e)return"â";try{return(0,a.GP)((0,r.H)(e),"dd-MM-yyyy")}catch(t){return e}}let o=c;function u(e){if(!e)return"â";try{return(0,a.GP)((0,r.H)(e),"dd-MM-yyyy, hh:mm a")}catch(t){return e}}function m(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(e){return null}}function d(e,t){return"".concat(1===e?"1 guest":"".concat(e," guests")," ⢠").concat(1===t?"1 night":"".concat(t," nights"))}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:"".concat(t,"A + ").concat(n,"C")}}}]);
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.